diff --git a/node_modules/.bin/har-validator b/node_modules/.bin/har-validator deleted file mode 120000 index c6ec1634..00000000 --- a/node_modules/.bin/har-validator +++ /dev/null @@ -1 +0,0 @@ -../har-validator/bin/har-validator \ No newline at end of file diff --git a/node_modules/.bin/rollup b/node_modules/.bin/rollup new file mode 120000 index 00000000..b601f1d9 --- /dev/null +++ b/node_modules/.bin/rollup @@ -0,0 +1 @@ +../rollup/bin/rollup \ No newline at end of file diff --git a/node_modules/.bin/semver b/node_modules/.bin/semver index 317eb293..96187e39 120000 --- a/node_modules/.bin/semver +++ b/node_modules/.bin/semver @@ -1 +1 @@ -../semver/bin/semver \ No newline at end of file +../normalize-package-data/node_modules/semver/bin/semver \ No newline at end of file diff --git a/node_modules/.yarn-integrity b/node_modules/.yarn-integrity new file mode 100644 index 00000000..03f612f6 --- /dev/null +++ b/node_modules/.yarn-integrity @@ -0,0 +1,335 @@ +{ + "systemParams": "linux-x64-57", + "modulesFolders": [ + "node_modules" + ], + "flags": [], + "linkedModules": [], + "topLevelPatterns": [ + "@polymer/app-layout@^3.0.0-pre.19", + "@polymer/font-roboto@^3.0.0-pre.19", + "@polymer/paper-button@^3.0.0-pre.19", + "@polymer/paper-icon-button@^3.0.0-pre.19", + "@polymer/paper-input@^3.0.0-pre.18", + "@polymer/polymer@^3.0.2", + "@webcomponents/webcomponentsjs@^2.0.4", + "rollup-plugin-collect-sass@^1.0.9", + "rollup-plugin-node-resolve@^3.3.0", + "rollup@^0.63.2" + ], + "lockfileEntries": { + "@polymer/app-layout@^3.0.0-pre.19": "https://registry.yarnpkg.com/@polymer/app-layout/-/app-layout-3.0.0-pre.21.tgz#d6312cfd3ccb70112996049334b550371cdae867", + "@polymer/font-roboto@^3.0.0-pre.19": "https://registry.yarnpkg.com/@polymer/font-roboto/-/font-roboto-3.0.0-pre.21.tgz#65674464138a51f57cfdfd043e394d8fe75990b3", + "@polymer/font-roboto@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/font-roboto/-/font-roboto-3.0.0-pre.21.tgz#65674464138a51f57cfdfd043e394d8fe75990b3", + "@polymer/iron-a11y-announcer@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/iron-a11y-announcer/-/iron-a11y-announcer-3.0.0-pre.21.tgz#717cfd1b34f281c2085ad6b45ecd724bd2ae6d84", + "@polymer/iron-a11y-keys-behavior@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/iron-a11y-keys-behavior/-/iron-a11y-keys-behavior-3.0.0-pre.21.tgz#4b79ebfea1fb59225c00a6d9b360df7ed2696c19", + "@polymer/iron-autogrow-textarea@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/iron-autogrow-textarea/-/iron-autogrow-textarea-3.0.0-pre.21.tgz#4091125483fb712f8ef3b3daf16039d9dd10ce77", + "@polymer/iron-behaviors@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/iron-behaviors/-/iron-behaviors-3.0.0-pre.21.tgz#47ea698ccf02842d4ac7a24dcdef06db8a8d9892", + "@polymer/iron-checked-element-behavior@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/iron-checked-element-behavior/-/iron-checked-element-behavior-3.0.0-pre.21.tgz#778c66d07e8273299700ebd53fb849fd65d4b3a6", + "@polymer/iron-flex-layout@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/iron-flex-layout/-/iron-flex-layout-3.0.0-pre.21.tgz#064bccb85ec2091b66366970e8867d3de7bb273d", + "@polymer/iron-form-element-behavior@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/iron-form-element-behavior/-/iron-form-element-behavior-3.0.0-pre.21.tgz#47b2aa9e4c335f77264a370534e23fe6ec83457b", + "@polymer/iron-icon@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/iron-icon/-/iron-icon-3.0.0-pre.21.tgz#5ef3e483f02823778e99c1b5e16ddac472b5dce5", + "@polymer/iron-input@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/iron-input/-/iron-input-3.0.0-pre.21.tgz#181f823406e71134c6ed42dd19094d1cb194329a", + "@polymer/iron-media-query@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/iron-media-query/-/iron-media-query-3.0.0-pre.21.tgz#bc676e139eec47db6b0d7d7da2117f3150ab61e9", + "@polymer/iron-meta@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/iron-meta/-/iron-meta-3.0.0-pre.21.tgz#e74ab386a1b490031e329f7ec032316bec24fa2a", + "@polymer/iron-resizable-behavior@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/iron-resizable-behavior/-/iron-resizable-behavior-3.0.0-pre.21.tgz#839ab0f194fd85921146d80970afe29ba835b7d7", + "@polymer/iron-scroll-target-behavior@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/iron-scroll-target-behavior/-/iron-scroll-target-behavior-3.0.0-pre.21.tgz#ff342713bb3c20ae46c4f2a96e24f371a39f5841", + "@polymer/iron-validatable-behavior@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/iron-validatable-behavior/-/iron-validatable-behavior-3.0.0-pre.21.tgz#3c26ed42c0221a1b34d3cfb39c4d1a3b68d67ffe", + "@polymer/paper-behaviors@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/paper-behaviors/-/paper-behaviors-3.0.0-pre.21.tgz#be01b8a101c221fc3a100350028cc55107b5db14", + "@polymer/paper-button@^3.0.0-pre.19": "https://registry.yarnpkg.com/@polymer/paper-button/-/paper-button-3.0.0-pre.21.tgz#fa3531b0fe3fe45371249fdb27ea7763a53aab80", + "@polymer/paper-icon-button@^3.0.0-pre.19": "https://registry.yarnpkg.com/@polymer/paper-icon-button/-/paper-icon-button-3.0.0-pre.21.tgz#09e0e3c00a1a32f0a735e5c5367ba502d639ee28", + "@polymer/paper-input@^3.0.0-pre.18": "https://registry.yarnpkg.com/@polymer/paper-input/-/paper-input-3.0.0-pre.21.tgz#637ccb08c53604bf8334f8c0b7f764e509afb424", + "@polymer/paper-ripple@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/paper-ripple/-/paper-ripple-3.0.0-pre.21.tgz#9375760af161c142591b3a0a1d4db299fb174067", + "@polymer/paper-styles@^3.0.0-pre.21": "https://registry.yarnpkg.com/@polymer/paper-styles/-/paper-styles-3.0.0-pre.21.tgz#9406bdb3c22c3d132086fae50079d0b5bf5c0541", + "@polymer/polymer@^3.0.0": "https://registry.yarnpkg.com/@polymer/polymer/-/polymer-3.0.5.tgz#eaa42e70df7de818b5e1839452c82a5f83e39929", + "@polymer/polymer@^3.0.2": "https://registry.yarnpkg.com/@polymer/polymer/-/polymer-3.0.5.tgz#eaa42e70df7de818b5e1839452c82a5f83e39929", + "@types/estree@0.0.39": "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f", + "@types/node@*": "https://registry.yarnpkg.com/@types/node/-/node-10.5.7.tgz#960d9feb3ade2233bcc9843c918d740b4f78a7cf", + "@webcomponents/shadycss@^1.2.0": "https://registry.yarnpkg.com/@webcomponents/shadycss/-/shadycss-1.4.0.tgz#2b2b66443252f81d02ebb2dd139e4a717655bfa9", + "@webcomponents/webcomponentsjs@^2.0.4": "https://registry.yarnpkg.com/@webcomponents/webcomponentsjs/-/webcomponentsjs-2.0.4.tgz#fe18c288f99b7103e9ae7a766020f9702cedcc08", + "abbrev@1": "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8", + "ajv@^5.1.0": "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965", + "ajv@^5.3.0": "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965", + "amdefine@>=0.0.4": "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5", + "ansi-regex@^2.0.0": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df", + "ansi-regex@^3.0.0": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998", + "ansi-styles@^2.2.1": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe", + "aproba@^1.0.3": "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a", + "are-we-there-yet@~1.1.2": "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21", + "arr-diff@^2.0.0": "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf", + "arr-flatten@^1.0.1": "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1", + "array-find-index@^1.0.1": "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1", + "array-unique@^0.2.1": "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53", + "asn1@~0.2.3": "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136", + "assert-plus@1.0.0": "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525", + "assert-plus@^1.0.0": "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525", + "async-foreach@^0.1.3": "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542", + "asynckit@^0.4.0": "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79", + "aws-sign2@~0.7.0": "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8", + "aws4@^1.6.0": "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f", + "aws4@^1.8.0": "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f", + "balanced-match@^1.0.0": "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767", + "bcrypt-pbkdf@^1.0.0": "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e", + "block-stream@*": "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a", + "brace-expansion@^1.1.7": "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd", + "braces@^1.8.2": "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7", + "builtin-modules@^1.0.0": "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f", + "builtin-modules@^2.0.0": "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-2.0.0.tgz#60b7ef5ae6546bd7deefa74b08b62a43a232648e", + "camelcase-keys@^2.0.0": "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7", + "camelcase@^2.0.0": "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f", + "camelcase@^3.0.0": "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a", + "caseless@~0.12.0": "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc", + "chalk@^1.1.1": "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98", + "cliui@^3.2.0": "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d", + "co@^4.6.0": "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184", + "code-point-at@^1.0.0": "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77", + "combined-stream@1.0.6": "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818", + "combined-stream@~1.0.5": "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818", + "combined-stream@~1.0.6": "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818", + "concat-map@0.0.1": "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b", + "console-control-strings@^1.0.0": "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e", + "console-control-strings@~1.1.0": "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e", + "core-util-is@1.0.2": "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7", + "core-util-is@~1.0.0": "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7", + "cross-spawn@^3.0.0": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982", + "currently-unhandled@^0.4.1": "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea", + "dashdash@^1.12.0": "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0", + "decamelize@^1.1.1": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290", + "decamelize@^1.1.2": "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290", + "delayed-stream@~1.0.0": "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619", + "delegates@^1.0.0": "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a", + "ecc-jsbn@~0.1.1": "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9", + "error-ex@^1.2.0": "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf", + "escape-string-regexp@^1.0.2": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4", + "estree-walker@^0.5.2": "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.2.tgz#d3850be7529c9580d815600b53126515e146dd39", + "expand-brackets@^0.1.4": "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b", + "expand-range@^1.8.1": "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337", + "extend@~3.0.1": "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa", + "extend@~3.0.2": "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa", + "extglob@^0.3.1": "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1", + "extsprintf@1.3.0": "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05", + "extsprintf@^1.2.0": "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f", + "fast-deep-equal@^1.0.0": "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614", + "fast-json-stable-stringify@^2.0.0": "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2", + "filename-regex@^2.0.0": "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26", + "fill-range@^2.1.0": "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565", + "find-up@^1.0.0": "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f", + "for-in@^1.0.1": "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80", + "for-own@^0.1.4": "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce", + "forever-agent@~0.6.1": "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91", + "form-data@~2.3.1": "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099", + "form-data@~2.3.2": "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099", + "fs.realpath@^1.0.0": "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f", + "fstream@^1.0.0": "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171", + "fstream@^1.0.2": "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171", + "gauge@~2.7.3": "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7", + "gaze@^1.0.0": "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a", + "get-caller-file@^1.0.1": "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a", + "get-stdin@^4.0.1": "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe", + "getpass@^0.1.1": "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa", + "glob-base@^0.3.0": "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4", + "glob-parent@^2.0.0": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28", + "glob@^6.0.4": "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22", + "glob@^7.0.0": "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15", + "glob@^7.0.3": "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15", + "glob@^7.0.5": "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15", + "glob@~7.1.1": "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15", + "globule@^1.0.0": "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d", + "graceful-fs@^4.1.2": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658", + "har-schema@^2.0.0": "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92", + "har-validator@~5.0.3": "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd", + "har-validator@~5.1.0": "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29", + "has-ansi@^2.0.0": "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91", + "has-unicode@^2.0.0": "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9", + "hosted-git-info@^2.1.4": "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047", + "http-signature@~1.2.0": "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1", + "in-publish@^2.0.0": "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51", + "indent-string@^2.1.0": "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80", + "inflight@^1.0.4": "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9", + "inherits@2": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de", + "inherits@~2.0.0": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de", + "inherits@~2.0.3": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de", + "invert-kv@^1.0.0": "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6", + "is-arrayish@^0.2.1": "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d", + "is-buffer@^1.1.5": "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be", + "is-builtin-module@^1.0.0": "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe", + "is-dotfile@^1.0.0": "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1", + "is-equal-shallow@^0.1.3": "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534", + "is-extendable@^0.1.1": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89", + "is-extglob@^1.0.0": "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0", + "is-finite@^1.0.0": "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa", + "is-fullwidth-code-point@^1.0.0": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb", + "is-fullwidth-code-point@^2.0.0": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f", + "is-glob@^2.0.0": "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863", + "is-glob@^2.0.1": "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863", + "is-module@^1.0.0": "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591", + "is-number@^2.1.0": "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f", + "is-number@^4.0.0": "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff", + "is-posix-bracket@^0.1.0": "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4", + "is-primitive@^2.0.0": "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575", + "is-typedarray@~1.0.0": "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a", + "is-utf8@^0.2.0": "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72", + "isarray@1.0.0": "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11", + "isarray@~1.0.0": "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11", + "isexe@^2.0.0": "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10", + "isobject@^2.0.0": "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89", + "isstream@~0.1.2": "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a", + "js-base64@^2.1.8": "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.8.tgz#57a9b130888f956834aa40c5b165ba59c758f033", + "jsbn@~0.1.0": "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513", + "json-schema-traverse@^0.3.0": "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340", + "json-schema@0.2.3": "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13", + "json-stringify-safe@~5.0.1": "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb", + "jsprim@^1.2.2": "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2", + "kind-of@^3.0.2": "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64", + "kind-of@^6.0.0": "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051", + "lcid@^1.0.0": "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835", + "load-json-file@^1.0.0": "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0", + "lodash.assign@^4.2.0": "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7", + "lodash.clonedeep@^4.3.2": "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef", + "lodash.mergewith@^4.6.0": "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927", + "lodash@^4.0.0": "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7", + "lodash@~4.17.10": "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7", + "loud-rejection@^1.0.0": "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f", + "lru-cache@^4.0.1": "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c", + "map-obj@^1.0.0": "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d", + "map-obj@^1.0.1": "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d", + "math-random@^1.0.1": "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac", + "meow@^3.7.0": "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb", + "micromatch@^2.3.11": "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565", + "mime-db@~1.35.0": "https://registry.yarnpkg.com/mime-db/-/mime-db-1.35.0.tgz#0569d657466491283709663ad379a99b90d9ab47", + "mime-types@^2.1.12": "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz#71e464537a7ef81c15f2db9d97e913fc0ff606f0", + "mime-types@~2.1.17": "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz#71e464537a7ef81c15f2db9d97e913fc0ff606f0", + "mime-types@~2.1.19": "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz#71e464537a7ef81c15f2db9d97e913fc0ff606f0", + "minimatch@2 || 3": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083", + "minimatch@^3.0.4": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083", + "minimatch@~3.0.2": "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083", + "minimist@0.0.8": "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d", + "minimist@^1.1.3": "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284", + "mkdirp@>=0.5 0": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903", + "mkdirp@^0.5.0": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903", + "mkdirp@^0.5.1": "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903", + "nan@^2.10.0": "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f", + "node-gyp@^3.8.0": "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c", + "node-sass@>= 3.8.0": "https://registry.yarnpkg.com/node-sass/-/node-sass-4.9.3.tgz#f407cf3d66f78308bb1e346b24fa428703196224", + "nopt@2 || 3": "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9", + "normalize-package-data@^2.3.2": "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f", + "normalize-package-data@^2.3.4": "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f", + "normalize-path@^2.0.1": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9", + "npmlog@0 || 1 || 2 || 3 || 4": "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b", + "npmlog@^4.0.0": "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b", + "number-is-nan@^1.0.0": "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d", + "oauth-sign@~0.8.2": "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43", + "oauth-sign@~0.9.0": "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455", + "object-assign@^4.0.1": "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863", + "object-assign@^4.1.0": "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863", + "object.omit@^2.0.0": "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa", + "once@^1.3.0": "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1", + "os-homedir@^1.0.0": "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3", + "os-locale@^1.4.0": "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9", + "os-tmpdir@^1.0.0": "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274", + "osenv@0": "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410", + "parse-glob@^3.0.4": "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c", + "parse-json@^2.2.0": "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9", + "path-exists@^2.0.0": "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b", + "path-is-absolute@^1.0.0": "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", + "path-parse@^1.0.5": "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c", + "path-type@^1.0.0": "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441", + "performance-now@^2.1.0": "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b", + "pify@^2.0.0": "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c", + "pinkie-promise@^2.0.0": "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa", + "pinkie@^2.0.0": "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870", + "preserve@^0.2.0": "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b", + "process-nextick-args@~2.0.0": "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa", + "pseudomap@^1.0.2": "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3", + "psl@^1.1.24": "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67", + "punycode@^1.4.1": "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e", + "qs@~6.5.1": "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36", + "qs@~6.5.2": "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36", + "randomatic@^3.0.0": "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116", + "read-pkg-up@^1.0.1": "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02", + "read-pkg@^1.0.0": "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28", + "readable-stream@^2.0.1": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf", + "readable-stream@^2.0.6": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf", + "redent@^1.0.0": "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde", + "regex-cache@^0.4.2": "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd", + "remove-trailing-separator@^1.0.1": "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef", + "repeat-element@^1.1.2": "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a", + "repeat-string@^1.5.2": "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637", + "repeating@^2.0.0": "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda", + "request@2.87.0": "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e", + "request@^2.87.0": "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef", + "require-directory@^2.1.1": "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42", + "require-main-filename@^1.0.1": "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1", + "resolve@^1.1.6": "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26", + "resolve@^1.3.3": "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26", + "rimraf@2": "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36", + "rollup-plugin-collect-sass@^1.0.9": "https://registry.yarnpkg.com/rollup-plugin-collect-sass/-/rollup-plugin-collect-sass-1.0.9.tgz#7f78e4f9ca760004182f397f47e7e6dceff99f2b", + "rollup-plugin-node-resolve@^3.3.0": "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.3.0.tgz#c26d110a36812cbefa7ce117cadcd3439aa1c713", + "rollup-pluginutils@>= 1.3.1": "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.3.1.tgz#760d185ccc237dedc12d7ae48c6bcd127b4892d0", + "rollup@^0.63.2": "https://registry.yarnpkg.com/rollup/-/rollup-0.63.5.tgz#5543eecac9a1b83b7e1be598b5be84c9c0a089db", + "safe-buffer@^5.0.1": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d", + "safe-buffer@^5.1.1": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d", + "safe-buffer@^5.1.2": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d", + "safe-buffer@~5.1.0": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d", + "safe-buffer@~5.1.1": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d", + "safer-buffer@^2.0.2": "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a", + "safer-buffer@^2.1.0": "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a", + "safer-buffer@~2.1.0": "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a", + "sass-graph@^2.2.4": "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49", + "scss-tokenizer@^0.2.3": "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1", + "semver@2 || 3 || 4 || 5": "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab", + "semver@~5.3.0": "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f", + "set-blocking@^2.0.0": "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7", + "set-blocking@~2.0.0": "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7", + "signal-exit@^3.0.0": "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d", + "source-map@^0.4.2": "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b", + "spdx-correct@^3.0.0": "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82", + "spdx-exceptions@^2.1.0": "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9", + "spdx-expression-parse@^3.0.0": "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0", + "spdx-license-ids@^3.0.0": "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87", + "sshpk@^1.7.0": "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98", + "stdout-stream@^1.4.0": "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b", + "string-width@^1.0.1": "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3", + "string-width@^1.0.2": "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3", + "string-width@^1.0.2 || 2": "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e", + "string_decoder@~1.1.1": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8", + "strip-ansi@^3.0.0": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf", + "strip-ansi@^3.0.1": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf", + "strip-ansi@^4.0.0": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f", + "strip-bom@^2.0.0": "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e", + "strip-indent@^1.0.1": "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2", + "style-inject@^0.1.0": "https://registry.yarnpkg.com/style-inject/-/style-inject-0.1.2.tgz#664127b65f40e5181a47e713b4c476002b7274ff", + "supports-color@^2.0.0": "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7", + "tar@^2.0.0": "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1", + "tough-cookie@~2.3.3": "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655", + "tough-cookie@~2.4.3": "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781", + "trim-newlines@^1.0.0": "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613", + "true-case-path@^1.0.2": "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz#7ec91130924766c7f573be3020c34f8fdfd00d62", + "tunnel-agent@^0.6.0": "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd", + "tweetnacl@^0.14.3": "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64", + "tweetnacl@~0.14.0": "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64", + "util-deprecate@~1.0.1": "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf", + "uuid@^3.1.0": "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131", + "uuid@^3.3.2": "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131", + "validate-npm-package-license@^3.0.1": "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a", + "verror@1.10.0": "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400", + "which-module@^1.0.0": "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f", + "which@1": "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a", + "which@^1.2.9": "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a", + "wide-align@^1.1.0": "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457", + "wrap-ansi@^2.0.0": "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85", + "wrappy@1": "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", + "y18n@^3.2.1": "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41", + "yallist@^2.1.2": "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52", + "yargs-parser@^5.0.0": "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a", + "yargs@^7.0.0": "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" + }, + "files": [], + "artifacts": { + "node-sass@4.9.3": [ + "vendor", + "vendor/linux-x64-57", + "vendor/linux-x64-57/binding.node" + ] + } +} \ No newline at end of file diff --git a/node_modules/@polymer/app-layout/.travis.yml b/node_modules/@polymer/app-layout/.travis.yml index e7d5b724..2f3409a6 100644 --- a/node_modules/@polymer/app-layout/.travis.yml +++ b/node_modules/@polymer/app-layout/.travis.yml @@ -1,24 +1,19 @@ language: node_js -sudo: required +sudo: 'false' dist: trusty -node_js: stable +node_js: '9' addons: - sauce_connect: true firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable -before_script: - - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run format".'' && false)' + chrome: stable +before_script: npm install -g polymer-cli script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' env: global: - - secure: aLLRRtzSz/QImXYAEO7lBZcmp8xhXH28J6HONXOboy8H2eQmie0kAG8EIL1EYw1OMomAwawvh9BMJqhJHiLg23h6+asXdEaYefF+QDKIKh11dCZFUPJ71DAwKOLQpL+3D4iV/Wmndr4dIEGASCUdPufoBbmG1ZVY5dGkQYG8TO7mAOwzCciPNRaHws5fkMhWbm+tzWCDrIoMOWKDBZiAk4Rm7pXQ7c+Vnr07R0qrWlsCuiaMMc9J34q0bqrzmnV+EWjqKHXzhv1hJEbKHvO73cJorwtdpkeqLi1UsdkDCBuA8soxLSicCcpFe7eMkpr9WrbuJZ5QOEVlq+qb3aW9tH5wABiXSL4K8J7otvaXgRIaTg6i5pRGrivmNAOS6YXzT7oQAdmfFxHSpUr4OeV3Nvm9Ik7p8sOLHMGj4Eo00djjPtbO9MutF3CBLvYuEmdfa0BRXe3WqeJdaCVyYiMAPG7lYqz+aNAl6O4qAVRLMzXIRl/+vF2cso/rG7SsZORSuMk34NZhdXiHlBI+e5lyNrdrCyirukZmTd5rLiyEfbO9ty8BgxQ5MlomEXoZM3GYgFKgViYiMFQ8QuaGBUJBdeyo0IJiqp7ohcbUZq46XOXz//5hOOcp4ddgMNNjyIqjGmBJff0+oYalhJXK56UivTAXhoiXDLIQXHsJ3rUexcE= - - secure: TqRTXbcw5+a/XY/pb3rh8a/PkbLluNZKdN9FI/ZfHOVJu1xWCQSPUcI8XNmnPks/SVz8aCSWpPi4dh6oa8k1FXo7Q0lQ+2wAdfe7imnqoj6YIt0guHbe/YWGZoUmzuptSgufygzKGRh37oZx8fOH9bMb0vyMxCTZs4PcTeaqhmRQRHfVK/W2dyDRnSuHior5niKnboLXXR+XitcT3k+0S/jUGUwice0BivjHPpB9CNgm2lChRX3tHIru4iE3XW5U4+8Eg4SulLXd8DybQ3hzMIEmapPU7T/EO/xpIe1hIfVbJBY0LB4Ri5GGCK00OEDEcHSSJmubJ4usn2jitAyfztXg8BLEg8d/1BSTmAF+l7gUKgqhJ968Prc09EUdnyBPwRmnt1sPcZpDaDZuegg+y5Gx3qmWuqDAVSsHw08BbtK37ppHFRwswtRUMFOQKuOQXM74uI10BOWshONGitqKNYFvXniZxqO7Ezc/LSAfxSn278ews/KRNl/elGLgOtw92cJPXw515h56FvWb7gc1cm5WtJir2NwX7KlhHU3IPoDYq3QDKKQ63sPmUGPhCBAtfBGRDd5Os1MbcoyChpMr4osxHv03PNvQPY5hKjg2mUnb5QwMpJiEPs70CLXdx8Q7psX56RKjDHunFpXf5M4/SQIEmVFVi2PLoUymWlpvdBc= + - secure: UFbrYeLJe/Z54rZ+WFw9R6BnkkSYwBM6RMUEcVRJmZpEErkXxna9mbIStFJgqPTBcRbEkU5CINj0NbHgQ/OOJZY8Dx1jozNPG6tHOxH9XGQKE6S78hOh4r6WlHiq4yUye0XJgYeZwfOaQDsPTbnL2IsNzTM5wuJr8OPHAylxkHbTzemyiXnrd9co6EGhe+ucwZ6eR+q84agdFxF2T+FbcA5V5a04KKbwrfVdTnUa1nb3wkfjMYNQMigp378HXUtMjaJkq4q16OGzORkmwheWGlPV1Paw/lh7ED6HtfkriTWOONKcrGSeW4XH4u3onyL8gKDjk1cAjcHsz3YD+b2+3Yh2r6tsSoHQk/Tk0z20qUpJ02VOB8PHYRXpHKBUVQjsvamPNx//UFoA95HOy3jix2GBfaf+cC9gElFd6IzBRZd80+WDQ2pdwYv+BJYG1Peyn+5UdqBkK7UzStWHVrqdLGMEC//c9aBLnvvguG7PGiu7ecQRrNgUib1zOgCE5IBHtqOIaxCIB9po29NYZmydpfPcuNsZyvBH+kjJQwJ0sp37mJ20B/nBwQ1m9I2b64BatkeHpnlhuAGtvGxTW1yg62OUAy5kYamWZo+rLEkcHBR98Jg6lh1kMRJWgd5pBxRs05JL28NXN+ITr0njCFxOhaJbcmhpcd/WQcS1Sar+lK4= + - secure: g6vl6SKb0pwi5z5YUtwg5oI5Yg2oT7PQAfkS7Sl83oiL6uXWQGzpxIrzp92BLeZJbBJ/niwh1bPPZUe8ct08VD6o+6grESvxfia3wf11UQ21xGVt0y6koQPa9aZLgsfURpVUZCLDhf8zWyFAs4jN6nBdkv8VFxaIW7eRnouuQOQyiDRQYlnZv3nP6nK+D0ItOzNCIXoI27LuEGW5TgeJNm7rfE9GuGNS5ZwLgq/BeVxq17fo/3g43TwRwFXdGah1uDnhy4b7WaCzZcXyiNdN3A0TmWnWROI9s+BhAkG5fQsT0JuKpCgZwPdPn+MK3JCykcGxSot3TdnxwelvVAwxMy18BFkA+CdG7H6X0Qd8d/VeighU8AXq1qLLi5rwB+AWylQ6nWFIsAvuroZOHPeKCpq9l3MDwa4D+t5aXVrkfpi5ZtaooZF4mPKB/U4BKU2+pprCun/9qP//cwiMnJrJkP+ObgxTzl9Z6OfzbjLAE01kHzi4B8Ju/jcLkxk08Q/AyOQANpC4H1hCl+P77RJjkNN9+F4qjiz0kJftpj6hlbwmsRqTHXVBkrItTuIQ6aBLHgw415WCYrpRWVfCOL3fhe/doZnIr1KLcGm3Ht8TwOVUXxFCFapaax80rlzSrmV3eKw8ybIkOuLHjDn3vg6xc+O6O4unWmDhs0admkoRjIM= +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/app-layout/package.json b/node_modules/@polymer/app-layout/package.json index 25e0f477..08ac8750 100644 --- a/node_modules/@polymer/app-layout/package.json +++ b/node_modules/@polymer/app-layout/package.json @@ -1,76 +1,41 @@ { - "_from": "@polymer/app-layout", - "_id": "@polymer/app-layout@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-muzusDvipeLZL7VFf+15EzpFXrHDFZOPtZyV4pohVZMSdPtGpmwVDWaAORmAveBClkFG4oZ7iPSCglYkA6zpOg==", - "_location": "/@polymer/app-layout", - "_phantomChildren": {}, - "_requested": { - "type": "tag", - "registry": true, - "raw": "@polymer/app-layout", - "name": "@polymer/app-layout", - "escapedName": "@polymer%2fapp-layout", - "scope": "@polymer", - "rawSpec": "", - "saveSpec": null, - "fetchSpec": "latest" - }, - "_requiredBy": [ - "#USER", - "/" - ], - "_resolved": "https://registry.npmjs.org/@polymer/app-layout/-/app-layout-3.0.0-pre.19.tgz", - "_shasum": "76b0ace980fa3033ffa4810b931a58d29fc48b33", - "_spec": "@polymer/app-layout", - "_where": "/home/jack/Projects/MaterialDjango", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/app-layout/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/iron-flex-layout": "^3.0.0-pre.19", - "@polymer/iron-media-query": "^3.0.0-pre.19", - "@polymer/iron-resizable-behavior": "^3.0.0-pre.19", - "@polymer/iron-scroll-target-behavior": "^3.0.0-pre.19", - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "A set of layout elements for your app", + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/app-layout" + }, + "homepage": "https://github.com/PolymerElements/app-layout", + "name": "@polymer/app-layout", + "license": "BSD-3-Clause", "devDependencies": { - "@polymer/font-roboto": "^3.0.0-pre.19", - "@polymer/gen-typescript-declarations": "^1.2.1", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@polymer/iron-icon": "^3.0.0-pre.19", - "@polymer/iron-icons": "^3.0.0-pre.19", - "@polymer/iron-list": "^3.0.0-pre.19", - "@polymer/iron-pages": "^3.0.0-pre.19", - "@polymer/iron-scroll-threshold": "^3.0.0-pre.19", - "@polymer/paper-fab": "^3.0.0-pre.19", - "@polymer/paper-icon-button": "^3.0.0-pre.19", - "@polymer/paper-item": "^3.0.0-pre.19", - "@polymer/paper-listbox": "^3.0.0-pre.19", - "@polymer/paper-progress": "^3.0.0-pre.19", - "@polymer/paper-spinner": "^3.0.0-pre.19", - "@polymer/paper-styles": "^3.0.0-pre.19", - "@polymer/paper-tabs": "^3.0.0-pre.19", - "@polymer/test-fixture": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", + "@polymer/gen-typescript-declarations": "^1.2.2", "bower": "^1.8.0", + "webmat": "^0.2.0", "es6-promise": "^4.0.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" + "@polymer/font-roboto": "^3.0.0-pre.21", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "@polymer/iron-icon": "^3.0.0-pre.21", + "@polymer/iron-icons": "^3.0.0-pre.21", + "@polymer/iron-list": "^3.0.0-pre.21", + "@polymer/iron-pages": "^3.0.0-pre.21", + "@polymer/iron-scroll-threshold": "^3.0.0-pre.21", + "@polymer/paper-fab": "^3.0.0-pre.21", + "@polymer/paper-icon-button": "^3.0.0-pre.21", + "@polymer/paper-item": "^3.0.0-pre.21", + "@polymer/paper-listbox": "^3.0.0-pre.21", + "@polymer/paper-progress": "^3.0.0-pre.21", + "@polymer/paper-spinner": "^3.0.0-pre.21", + "@polymer/paper-styles": "^3.0.0-pre.21", + "@polymer/paper-tabs": "^3.0.0-pre.21", + "@polymer/test-fixture": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" }, - "homepage": "https://github.com/PolymerElements/app-layout", - "license": "BSD-3-Clause", - "name": "@polymer/app-layout", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/app-layout.git" + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -78,9 +43,12 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "author": "The Polymer Authors", + "dependencies": { + "@polymer/iron-flex-layout": "^3.0.0-pre.21", + "@polymer/iron-media-query": "^3.0.0-pre.21", + "@polymer/iron-resizable-behavior": "^3.0.0-pre.21", + "@polymer/iron-scroll-target-behavior": "^3.0.0-pre.21", + "@polymer/polymer": "^3.0.0" + } } diff --git a/node_modules/@polymer/app-layout/wct.conf.json b/node_modules/@polymer/app-layout/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/app-layout/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/font-roboto/package.json b/node_modules/@polymer/font-roboto/package.json index 4d561bcd..60b1e232 100644 --- a/node_modules/@polymer/font-roboto/package.json +++ b/node_modules/@polymer/font-roboto/package.json @@ -1,56 +1,27 @@ { - "_from": "@polymer/font-roboto@^3.0.0-pre.19", - "_id": "@polymer/font-roboto@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-brLUbgLGzBVNlmHhpDHnWdPI6KNkHmTjtX+82dvHpeuUjPsey2uH4fFofWC+m29/yxY+GH5RGv493AfRUDcokQ==", - "_location": "/@polymer/font-roboto", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/font-roboto@^3.0.0-pre.19", - "name": "@polymer/font-roboto", - "escapedName": "@polymer%2ffont-roboto", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.19", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.19" - }, - "_requiredBy": [ - "/@polymer/paper-styles" + "description": "An HTML import for Roboto", + "keywords": [ + "font", + "roboto" ], - "_resolved": "https://registry.npmjs.org/@polymer/font-roboto/-/font-roboto-3.0.0-pre.19.tgz", - "_shasum": "d67384a000eebb2632c00c268182a8528aca4a7c", - "_spec": "@polymer/font-roboto@^3.0.0-pre.19", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/paper-styles", - "author": { - "name": "The Polymer Authors" + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/font-roboto.git" }, + "homepage": "https://github.com/PolymerElements/font-roboto/", + "name": "@polymer/font-roboto", + "version": "3.0.0-pre.21", "authors": [ "The Polymer Authors" ], - "bugs": { - "url": "https://github.com/PolymerElements/font-roboto/issues" - }, - "bundleDependencies": false, - "dependencies": {}, - "deprecated": false, - "description": "An HTML import for Roboto", + "main": "roboto.js", + "license": "BSD-3-Clause", "devDependencies": { "@polymer/gen-typescript-declarations": "^1.1.1", "bower": "^1.8.0" }, - "homepage": "https://github.com/PolymerElements/font-roboto/", - "keywords": [ - "font", - "roboto" - ], - "license": "BSD-3-Clause", - "main": "roboto.js", - "name": "@polymer/font-roboto", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/font-roboto.git" + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." }, "resolutions": { "inherits": "2.0.3", @@ -59,8 +30,6 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "author": "The Polymer Authors", + "dependencies": {} } diff --git a/node_modules/@polymer/iron-a11y-announcer/.travis.yml b/node_modules/@polymer/iron-a11y-announcer/.travis.yml index f12284e6..e75b0d2a 100644 --- a/node_modules/@polymer/iron-a11y-announcer/.travis.yml +++ b/node_modules/@polymer/iron-a11y-announcer/.travis.yml @@ -1,24 +1,19 @@ language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run format".'' && false)' +sudo: 'false' +before_script: npm install -g polymer-cli env: global: - - secure: QlyQxWnziNgzWqptOtM0Oq1s/q6YHT/GPuslA31yC0nex7Wi6X9DFoF5rNlDEY0Y6WxCh8xzsZpwXrI9vZypgKoZlAwO1e3RLDsGV0APPrWg66MyImAwlHAJolvJg+ASsLJ8pm9nxMP/xapRamciqUMTUTeZh0V/5SR82BXQCf3zXe+9cMmAFNXBrIg6LDCm77AwW+1vkE/IZAL1oShSBwXEybn9kpYsdCiOGdnvMlChhaeqRlOUXkr3LHPUDtV8hbd2EswmPeHSV+RGdB/UFyRGa4g7gPgqtz7U2FS0/BqT0G2iJlAXGCttJnS6fXwyCriREplYjXzqrX0MeRWHD5vNxAucO/Va1n2tHEmJM3OhIYgO8VDM8S3nRRUDE/ifSjsu1UgBN7b1vml0zWo7rdvpD8fedx6+g4ph390kg5XRFNJZJ03YijfcNVUfnOTEWt9LntGRq5aKPB6RSbEvkuZFjLGHHD/xQu2LfyIjmueIWJNk4JeCNrm3zFPMhBAZfu7WTJPTk3dZ2L+0mty1QbaJ/lyTWIBYbTVBwwHzXKrPbgg5u/9e6DjhT8Zg/eJvmN/+sXAlUqnmTAE9coQ0LIivg6COWPoRDmdGl2uMygiCaLkFAy4sqhjP99Aq5/ekZWXUrTTa4NGw2qnvM4JY9YcEzUC0ZqzM11gj8x8ATi0= - - secure: d0wz93AwXyNVmCr33od+TFC51nZgUzcdwHiJWxX0E+msZ8VgYCjj21D6OOZy84O7vYiPFy8vO03dvyqkj1uclEvfu2YlfiEaRxifKaxN6mQx142WjBtdHFjEUfBJR5eqm5qSeGj7aSZzPgerUl6yAkYH5tFldBatevF5Ax98Yr1dCsgpegsLCmBmusPH7tERnBilalcvXKVBfRXrnrkFkVoWroBb04W79aZSTlLGTlpBJCzR9Xe7RiXqnanSQQb1LjyCl55P0NvVVRjwpoVnikRqkIV/jehcNfIiJSC/vetepqqUehD6RdP2T8Nio7YvlLtXnW9vptlKYL2uZjhg23DyhgGW/4ZPaIABWVBqVUBbyaX6GCXo3EMyQcZhi17qCWEKnFGCrorC/4ZM6A0kJ+olOfQxszf9HrAX8+9DCaiKscn2Lz+ON/opFKFRAQngCJ9swBc27twavUxx4qNzOVJLdH8oGhCdl5DA4mgGGDWZz463X0HzagGUpi/RfME26uQnTkyK8eErL2yac+1VmA/QOx0RkYlrZ/pIEywkZPWusjJepCm9nlZGylaBr2mDpk8Kea+7IytO6sefiBwjX1RiqmnjnszO3jb/w5s0giUItWuFmDr14sOaFmj6wQB643eSGi42LSPG+FMea1RwUupyEPeLZq/aoJ0jmewGLv4= -node_js: stable + - secure: XQbLITIT7rqBNEMyMfq6HzasmHHlm46klpzJ9heLzJiX7j83ZTV3c/01XSM/1lSt+Y7uyGkZtNSYL+F7pFlBuegnw6XVlkOqTmnbKaN0h2M71TVu/mzW7w3u4yXen2wR2Yzl+zvfXGEz5fxQq9nyJs0+mVQaXWgze0a1QuyBhU9O6+x3iv1eR3baenf+5L8Zct3f8Npgg70+6OLQUKd8/mKeDI3/trDEsyKlmiwQobZ/nnwi5sOBBR3f3KqpREsUBclJdqiHmC+tir00ngGTjqdtnyuiUZAGJwtk/YU02lTtsTAg8AevBRa7NDapKr08V1Sudy1cWvCen8LaHPIzReRZ6SmWANQws1kczIiOYnLWC5NUHQBfifjvCrtm01Xao9rxT/cgvfYCnZryVZzQbKBdp6M2JiE9GSkFajeVR6IweZyJglEllGYOkx8HNRPPmW/cclamnxPO8veDjuoqudXRlKGpCSax7HblRgCDz+XEVy2oDDPEQR6lgClJLD50WpQ9DLLJ2AlsiWf61So0BXAGKrdafBnOsfBeiU/Pw/qcCM3ItlZqSsn8KR7MdkgDvjHMDEmOoGOShmJR9x3Sr3Z57YCLIIHdS0Xxx8XkDomRC298/lWpUy3OPtBLtywq2W+5+rv2c6CNxMjfP7k8GN6z78f65XCrM9V2JzgWBxA= + - secure: jwWIuEuiycRtT7OY/HGiEmVGdhdXLfoOHy9ssYhxJ3fy1muCCFrjK8845cd7X8mGuSINxVnEdFJyl3ujoXklW63g7k3x9o1WG7h6B/6JRi1w6VMT0QfyL7UQ2PokRV2aiuzbjE35fJzKXMZtAeKnUPbIzv1A0RH0Gpo9z4D7eG4CQ2j1QAcPguRBgWeAbFXThFfL8oKGgsapTONatZmX+3i4HCltfSuQKqXPfCPVpQsNPejlagFno8dZjEJ+nl/UsuVVeal7/IFSFBX+mKErsN+xsw1pu/MX0kd1fsNGL7X5SQvzeqkBGWmZbno5OY/KZ3e7Dt1syNtVsE87FkWgM+8gg/F9kqXZ8X241CDmctNNwBvD2+TrqiPCH3ORDI8aTE+MofVtatOPu6oBXGp9i8TggymwdCOpUkqvXHJ8EbiisTNlY+cR+8LJfaEZZgMr/P5n1oRwwSixDfIWz+Kxm0yDRodHPkQV+9LWE4K2PFATp3apz+w5+W68OIHIeNY2OPL39+cQ5xH1E8/Np+GgkyGVbrRoC7cPrKyA1F6zlL7mRJWWCmvVYJitm72VENpr+9KFcLCB3N36O9FKXKUU7aOfkTHfDE85rN7f3fhDPnKlJ39mROD84rxUlfYq+Lj37kzCOPPJH32HgQWdTWnQIu60bJckUK1MLK6YO6VjylI= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true + chrome: stable script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/iron-a11y-announcer/package.json b/node_modules/@polymer/iron-a11y-announcer/package.json index 9c6b46d9..ff770ea9 100644 --- a/node_modules/@polymer/iron-a11y-announcer/package.json +++ b/node_modules/@polymer/iron-a11y-announcer/package.json @@ -1,66 +1,34 @@ { - "_from": "@polymer/iron-a11y-announcer@^3.0.0-pre.19", - "_id": "@polymer/iron-a11y-announcer@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-iKD9eOlMkxZvvdd1QiwqsWQhrvbOsSF2KpjydbZjr6J+e2ADITyvN8TYocTm9ekqwmV90slF6YWWLuF3JO0OWQ==", - "_location": "/@polymer/iron-a11y-announcer", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/iron-a11y-announcer@^3.0.0-pre.19", - "name": "@polymer/iron-a11y-announcer", - "escapedName": "@polymer%2firon-a11y-announcer", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.19", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.19" - }, - "_requiredBy": [ - "/@polymer/iron-input" - ], - "_resolved": "https://registry.npmjs.org/@polymer/iron-a11y-announcer/-/iron-a11y-announcer-3.0.0-pre.19.tgz", - "_shasum": "6a3b724df1e1cfda6f1270c359136d3e55ed7363", - "_spec": "@polymer/iron-a11y-announcer@^3.0.0-pre.19", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/iron-input", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/iron-a11y-announcer/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "A singleton element that simplifies announcing text to screen readers.", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@polymer/iron-demo-helpers": "^3.0.0-pre.19", - "@polymer/iron-test-helpers": "^3.0.0-pre.19", - "@polymer/paper-button": "^3.0.0-pre.19", - "@polymer/test-fixture": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/iron-a11y-announcer#readme", "keywords": [ "web-components", "polymer", "a11y", "live" ], - "license": "BSD-3-Clause", - "main": "iron-a11y-announcer.js", - "name": "@polymer/iron-a11y-announcer", "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-a11y-announcer.git" }, + "name": "@polymer/iron-a11y-announcer", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "@polymer/iron-demo-helpers": "^3.0.0-pre.21", + "@polymer/iron-test-helpers": "^3.0.0-pre.21", + "@polymer/paper-button": "^3.0.0-pre.21", + "@polymer/test-fixture": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -68,9 +36,9 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "main": "iron-a11y-announcer.js", + "author": "The Polymer Authors", + "dependencies": { + "@polymer/polymer": "^3.0.0" + } } diff --git a/node_modules/@polymer/iron-a11y-announcer/wct.conf.json b/node_modules/@polymer/iron-a11y-announcer/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/iron-a11y-announcer/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/iron-a11y-keys-behavior/.travis.yml b/node_modules/@polymer/iron-a11y-keys-behavior/.travis.yml index 340d0efa..02eb44c6 100644 --- a/node_modules/@polymer/iron-a11y-keys-behavior/.travis.yml +++ b/node_modules/@polymer/iron-a11y-keys-behavior/.travis.yml @@ -1,23 +1,19 @@ language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run format".'' && false)' +sudo: 'false' +before_script: npm install -g polymer-cli env: global: - - secure: XJ31r/5USVGZRtziCLfr8qM1pJKKQMUN1AeYbCdDFEc6i293WxZneR8PwUVhvyptu+qdyd28uy24sH+Ob7kShFbZTUaif5P4gqHPekrYToI0aHyhmVX7C1LmT7nEL8IcT62NhUwh+83eHTAdodkXgnhfQhPn9FHV24Dkvwm8OKhhzEhtTgUGVuGX9j9FyNV6n1+gf4X3Zq63+NkEUh5vpolpue4W7ul2u0sf4l0fzg9pvKPCmywUwX2i7wwAEf3CJghMu2xup54OzXTEkjjSou/ebt1ZnxaUNV1+dblfUne0v9wTD0dPF8H3DwgewwzcZSbOZmj6lFVHRzmLzWcRJOEKdDrpJkjpg7HIhNPGCKDUcNylekafqi7ezhzrkzFwkh6JCdAj7He4mv/X/OUDNjNCClB7Ms/+WPZwtACvIcR2/pvgZ+1PHbIkbIInyAe6iVMMR0oUecei/X+d04DH7iW7rrODVEu6qdibsJki0R0lR2184rrDO9pGek4rLu9sUQBDNgEM6ZLEXXByO8lpG4xStRdkg0/uR5i1/Q8kux4gIJ9yV8WLANkS8NVlmuJgIi6kbh5n4VVKaihGhbBUuTt2aL7fLnH2I6YRwjyNI9TOIRxwk4afppFYUuq6Fv+nfPcdqDOi5Y2AOXLJ3Yvco0+H57nXe/Ny29gFVW4Kftg= - - secure: huEi/Ja2qnLatb7EJ4Jdc/XAeKphhdH6G+px7/XZY33oDawjStxakx0N/MpT0LPE1BdEWOYTzc17CzKv9R2L3ybWksqXyv/Zs+1NMTmpEAS/54Sk4E61aE3nrV5cfS2R8dBGbJhFoH1W237BDsbw9A4XhsTvhxlIsluWsZgeurbleGg+DgAmg8KlHGRddsfBFgXEk+Khhj6KPsbgPUiWhXpdnXKBPJKF7fJEAbsGR4aFK2eFbYd1OAgJg2Aye0n93IHe+SsxcKRUYteg6UK9V8fk7q5PBlvaodly4F3gH82l+zbnhcTFVW+qN0s6xDBTQzsQ55eTlO3pEezIo3u/1Lq41Yoe6scEkLs63pSYqoB3kakbhLMDJAen080ggdNg9evqvgyznKFYM7sqEcPu+KxHd043DyLTTW11y9lZ/hV3xSTdG4W8mV7+ILbIi54wMaYAcWSGMTOVM0JC/KDoVjze3tzDmfcZwiutLPBFgfrkfJQf3fyqcgvhoLKtHaWHI+76XDsXwEOS2Q5OX9oDtjoZaZ7r8Gp4dqwaKYceOrlsLbaZOLh5nJ4WnDbf4AqZkeM22QWWIfUN6aK+yhsDpQ/d+xJ+/WFENDADrMEKp0Lf3CkzAAcpHp3u65B9qsqweD5/5Je9t0GsA/NvK2xCasnNz6inYy4tAx9i4NWPcOY= -node_js: stable + - secure: xfSawWU4GnhbBfM3ntJgqz6zgKtpZZ1iKsa1gwF7jDuMcf6pnyimb30Ggxz4yInJbJWWJm8ZwyQTqnzr7cvQYjIW6VHoKP4sGWD5fQZDodIITibXatq1qKITw43KWmjWM5hvnUJziqKYTYgEtLxKbcI1sEhvCOYHXKOeEqZRguJ3q1iVeMJbUy956epNguhr1IpQLbsiuOQoM01aZNjpGT30iwPq+hWyrq+h4WEbAiRs7mNOFZgPZU5wMD4YFhpe9wyR7Q0K1E8Ej1vGCMif9cYBAryj6UF1qGe0dnb2ziT+SmCaCXViBlqsD/WKRcQuzImMnm2fZuXVEBRTa3tMQs0H599dmsNUfS1sKeEh3bOVaocw5E1KDjR1h1LILccc4UluSkZ7yPjn7uZc+mz245BOmvMtZz+k4gOmeqQp/F7Mw6nfAyHPluh4RC2KnyLeZlG9MwMM0o0O0uuxgi/jXvkEcgPg7BbfJVNorb5n89t9vQoMRCTxtcGRq4SHyyVbGXhzVRkeXOyIOpVqLPfBTLdri2N8bEck8+nI4XsbMThxoxIMItfP1hENX9dbBTHZu9oy3dUVN0dp7Bg6qsmwBOd948Ngf+KHl8eFSTonyCPhszrlI1Oa3h0mUIvg71Vm/bXh/tEuUKSz0kkg8PuE3EF9gvnQ3AZBXjGOEF/Gkjw= + - secure: QcdP92AdGfL1dwfdKdwadVc3/GAvHBdokjncfaksi4BbeLANAczx2aOja+N4xvDHaxtBhXe2fhLLSiGCWL+6Ked+whD1oeIu+65COvhQR8Pj572QxSDJxj/O1/f53tVZ4RMZ0plp//l9td1O+anFJUGGnfijAaFdQXgAPKj5rw3xKpTGNRnfvU4nKgEuC9zEFQqobCdSHNvQI9xP6n0qpKqeK3FoI4UwDV6U8QW/Q7/rYJzwP8tkmtBQB/He/AYWJ5wstl7n/7HofZnQ68qdK/CidNIGs4tJp+2B12ZjJL0lSSreIyJCx1MbwWaNvuTuYhWROvHPBLCL3eNnhcvbTigOsVOyqWKkDJk6G3s80YFi0IKoLsa+LsMUkm0fxtBi+D0yUwta1VTOkHVfHDoOdC6PV3jd2tsg16eOpwz2iaX7exx4Vuliiuz3Yk0T2MEOzkHMIShUtiRWoZXoz55hbyd2Tmr7Kt0rrN/wNmHruI5HsrKXBXD3X8a/aCXKxY5621ZOeDmGstit3CKcFnmJiqSc4zIbUKQAhG6FfBK/+rIcnAOe43p0bGlEqpgqZ9Pi4jqcNzNX+dEzHh0Nbp9pWU1BlF3N3wznVuaQRwn8K89ztYt8DFOkV95E9OqQen+jWnsWCRyii4mHHle8MxkktLIhTymwtZE9DNCJeliZgzM= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable + chrome: stable script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/iron-a11y-keys-behavior/package.json b/node_modules/@polymer/iron-a11y-keys-behavior/package.json index b4f7f103..759ae948 100644 --- a/node_modules/@polymer/iron-a11y-keys-behavior/package.json +++ b/node_modules/@polymer/iron-a11y-keys-behavior/package.json @@ -1,53 +1,5 @@ { - "_from": "@polymer/iron-a11y-keys-behavior@^3.0.0-pre.19", - "_id": "@polymer/iron-a11y-keys-behavior@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-jti4YDsjxTny2AJJxAQ89Gwq7+AMblOZLWBOQiciqDuRdj+nEelf227DAUwIejoII6cYQCV/Knw+Qit5zZx2kQ==", - "_location": "/@polymer/iron-a11y-keys-behavior", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/iron-a11y-keys-behavior@^3.0.0-pre.19", - "name": "@polymer/iron-a11y-keys-behavior", - "escapedName": "@polymer%2firon-a11y-keys-behavior", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.19", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.19" - }, - "_requiredBy": [ - "/@polymer/iron-behaviors", - "/@polymer/paper-ripple" - ], - "_resolved": "https://registry.npmjs.org/@polymer/iron-a11y-keys-behavior/-/iron-a11y-keys-behavior-3.0.0-pre.19.tgz", - "_shasum": "4a335111c773af9c4376237be483ee196ab2d966", - "_spec": "@polymer/iron-a11y-keys-behavior@^3.0.0-pre.19", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/iron-behaviors", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/iron-a11y-keys-behavior/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "A behavior that enables keybindings for greater a11y.", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@polymer/iron-demo-helpers": "^3.0.0-pre.19", - "@polymer/iron-test-helpers": "^3.0.0-pre.19", - "@polymer/test-fixture": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/iron-a11y-keys-behavior#readme", "keywords": [ "web-components", "web-component", @@ -55,13 +7,28 @@ "a11y", "input" ], - "license": "BSD-3-Clause", - "main": "iron-a11y-keys-behavior.js", - "name": "@polymer/iron-a11y-keys-behavior", "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-a11y-keys-behavior.git" }, + "name": "@polymer/iron-a11y-keys-behavior", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/iron-demo-helpers": "^3.0.0-pre.21", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "@polymer/iron-test-helpers": "^3.0.0-pre.21", + "@polymer/test-fixture": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -69,9 +36,9 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "main": "iron-a11y-keys-behavior.js", + "author": "The Polymer Authors", + "dependencies": { + "@polymer/polymer": "^3.0.0" + } } diff --git a/node_modules/@polymer/iron-a11y-keys-behavior/wct.conf.json b/node_modules/@polymer/iron-a11y-keys-behavior/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/iron-a11y-keys-behavior/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/iron-autogrow-textarea/.travis.yml b/node_modules/@polymer/iron-autogrow-textarea/.travis.yml index aca9a8c8..b99dc4fb 100644 --- a/node_modules/@polymer/iron-autogrow-textarea/.travis.yml +++ b/node_modules/@polymer/iron-autogrow-textarea/.travis.yml @@ -1,24 +1,19 @@ language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run format".'' && false)' +sudo: 'false' +before_script: npm install -g polymer-cli env: global: - - secure: TqFz1Cdu4BtLCHYLFPES0q+6wPfCnj9bnTfven9LIU+gtek70FPDT3UlnviNwp5ob3o0sbLgsLWG5OkCsRHli+HCgPEVDazSrghfwaT9mL+h/DlM/PVB079VDdIKvZM6L7xEF0zPv7t26kljBRQcZJ81O3K7h1mNjeBj6sDXHzE= - - secure: ihYM52Uu3H7FGU+x+f+hzMcWt00B7l6GZOtxzT1xYx4hb4E9/WwXYR5z9bqN+s5p10yf3FG64zbmMTuJeBvknDpSyBt/vKP+QBBZT0hxv05GifS38hiSoYT3HBxEpwhYdpjlsSJtIbKfYGR3xIXutRzRrRKSYigcrQNX83MGWFY= -node_js: stable + - secure: o46skkB1ecXdtEbRZ/6ul8v1MswXtdUWOACCWtov1YvMwx4GvMeIYC6CSu03CPr8KWPbZNLIJraBxpxJQTFKiEYfC1vMF+xG9MzJTOxbypBFrnT1QIQ7HlEYN6HdDuMjNOGS7xuRKCxi00TjR67isJhN+x6+zpje1fini3dIvTs= + - secure: OpNKeBbhQ/Plx4ZfqaZDBnkuk3B3ylEg/QIE/ffY/S8H+Gkj15o+1I4qtCJqlH1PQLaRH6ZZ+N2/RAhtozhYBP2pV8vGxfG37YoFmsat3SUB5PlBE6Xbgld+P8OA6YcKZWwyxkpbYFXtY7byVXJ/tvticA3zZstyAPT9MeEPTU8= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true + chrome: stable script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/iron-autogrow-textarea/package.json b/node_modules/@polymer/iron-autogrow-textarea/package.json index f184075e..7f7391c7 100644 --- a/node_modules/@polymer/iron-autogrow-textarea/package.json +++ b/node_modules/@polymer/iron-autogrow-textarea/package.json @@ -1,69 +1,35 @@ { - "_from": "@polymer/iron-autogrow-textarea@^3.0.0-pre.18", - "_id": "@polymer/iron-autogrow-textarea@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-YXVvjy+abONSUUIzUCV117sV9QJ8G2FB8Wbuup80o3eEfdhRtj2cz1QaUhIZZw2pUFJRTI8R4D2sC0wtGB/wow==", - "_location": "/@polymer/iron-autogrow-textarea", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/iron-autogrow-textarea@^3.0.0-pre.18", - "name": "@polymer/iron-autogrow-textarea", - "escapedName": "@polymer%2firon-autogrow-textarea", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.18", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.18" - }, - "_requiredBy": [ - "/@polymer/paper-input" - ], - "_resolved": "https://registry.npmjs.org/@polymer/iron-autogrow-textarea/-/iron-autogrow-textarea-3.0.0-pre.19.tgz", - "_shasum": "968f421aafd098fd29167423b893427b63d9ac21", - "_spec": "@polymer/iron-autogrow-textarea@^3.0.0-pre.18", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/paper-input", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/iron-autogrow-textarea/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/iron-behaviors": "^3.0.0-pre.19", - "@polymer/iron-flex-layout": "^3.0.0-pre.19", - "@polymer/iron-validatable-behavior": "^3.0.0-pre.19", - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "A textarea element that automatically grows with input", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@polymer/iron-demo-helpers": "^3.0.0-pre.19", - "@polymer/iron-test-helpers": "^3.0.0-pre.19", - "@polymer/paper-styles": "^3.0.0-pre.19", - "@polymer/test-fixture": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/iron-autogrow-textarea", "keywords": [ "web-components", "polymer", "input", "textarea" ], - "license": "BSD-3-Clause", - "main": "iron-autogrow-textarea.js", - "name": "@polymer/iron-autogrow-textarea", "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-autogrow-textarea.git" }, + "homepage": "https://github.com/PolymerElements/iron-autogrow-textarea", + "name": "@polymer/iron-autogrow-textarea", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "@polymer/iron-demo-helpers": "^3.0.0-pre.21", + "@polymer/iron-test-helpers": "^3.0.0-pre.21", + "@polymer/paper-styles": "^3.0.0-pre.21", + "@polymer/test-fixture": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -71,9 +37,12 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "main": "iron-autogrow-textarea.js", + "author": "The Polymer Authors", + "dependencies": { + "@polymer/iron-behaviors": "^3.0.0-pre.21", + "@polymer/iron-flex-layout": "^3.0.0-pre.21", + "@polymer/iron-validatable-behavior": "^3.0.0-pre.21", + "@polymer/polymer": "^3.0.0" + } } diff --git a/node_modules/@polymer/iron-autogrow-textarea/wct.conf.json b/node_modules/@polymer/iron-autogrow-textarea/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/iron-autogrow-textarea/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/iron-behaviors/.travis.yml b/node_modules/@polymer/iron-behaviors/.travis.yml index 8f45b2e4..de1c7034 100644 --- a/node_modules/@polymer/iron-behaviors/.travis.yml +++ b/node_modules/@polymer/iron-behaviors/.travis.yml @@ -1,24 +1,19 @@ language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run format".'' && false)' +sudo: 'false' +before_script: npm install -g polymer-cli env: global: - - secure: H49pcRc5C6G+ti/ehtT74GZdsUsM/xCvEVJBmKq8rpck7s18R6BbH37RkF2XgYfO4rVa1Bl4KU4Wf5S6aIDYzdaq/phGtFQ04NmDYGbmBhRjwfgxlW4dJ7mkXqXCvNZkxJtAJpgzgVG+xu/I6GsO1Lp4VjGENvVYSsrkGIlSA34= - - secure: Zq+hvOlL1RmTtMfAtO3bxqYnB7X6MY199cVCKo2J/EbsMvOHII1JvEU1+s2/UG9tgoiXkd7N2OfFOivlbQ75BDIwtvkq32KZNrUEC6vRGhbMBc8JCKkdFB/XHh1mNhQcn6Js656PhZIj2WteZYMSGYDUj7KcBBMacRZQKWuB0OU= -node_js: stable + - secure: SNZBkUosD/4wwRzRFem5xVvdAhpFtb9lX9E3mkl8T+/w7U78QJZnUSTKzqMt6GqL/ij1tmR1/bGbXp3jjudkMgbrwizJ+K177Tx2rNPfQElnq2c95rAdPAbyuX7YNs+ux4BlU5wLnmydENJ+aTsDzTPjaq0D1MBqesDJTC1Q9ec= + - secure: LaC/qLapiqLOiZJ5qMp1auGkv3ElEk9RCFRoHyNF+SdkM46KTzirPu5sUWdKb9S7GGM+82F3x6teARR8Bup4pjyNF4gUlx3jmhn3vWhpfeNOasVx2zij3Lus3VD9RWhPFaKRWGO/abe70w08MU2zQSBr1A61MlsDdZ0u8eKF8hE= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true + chrome: stable script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/iron-behaviors/package.json b/node_modules/@polymer/iron-behaviors/package.json index e191a5ff..a32319c0 100644 --- a/node_modules/@polymer/iron-behaviors/package.json +++ b/node_modules/@polymer/iron-behaviors/package.json @@ -1,59 +1,27 @@ { - "_from": "@polymer/iron-behaviors@^3.0.0-pre.19", - "_id": "@polymer/iron-behaviors@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-pxiCO2sN5by1Xmx9aVG9+t/Mpx7HRVXPUt1Aj8qxgF6lE+LlkiHWtOkl1WYqeun1F4Yh38x5LztWnCUvxe5sEw==", - "_location": "/@polymer/iron-behaviors", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/iron-behaviors@^3.0.0-pre.19", - "name": "@polymer/iron-behaviors", - "escapedName": "@polymer%2firon-behaviors", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.19", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.19" - }, - "_requiredBy": [ - "/@polymer/paper-behaviors" - ], - "_resolved": "https://registry.npmjs.org/@polymer/iron-behaviors/-/iron-behaviors-3.0.0-pre.19.tgz", - "_shasum": "0f44cf7068f9d581b896980f18556706ea0c6eaa", - "_spec": "@polymer/iron-behaviors@^3.0.0-pre.19", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/paper-behaviors", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/iron-behaviors/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/iron-a11y-keys-behavior": "^3.0.0-pre.19", - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "Provides a set of behaviors for the iron elements", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@polymer/iron-test-helpers": "^3.0.0-pre.19", - "@polymer/paper-input": "^3.0.0-pre.19", - "@polymer/paper-styles": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/iron-behaviors#readme", - "license": "BSD-3-Clause", - "name": "@polymer/iron-behaviors", "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-behaviors.git" }, + "name": "@polymer/iron-behaviors", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/paper-styles": "^3.0.0-pre.21", + "@polymer/paper-input": "^3.0.0-pre.21", + "@polymer/iron-test-helpers": "^3.0.0-pre.21", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -61,9 +29,9 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "author": "The Polymer Authors", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@polymer/iron-a11y-keys-behavior": "^3.0.0-pre.21" + } } diff --git a/node_modules/@polymer/iron-behaviors/wct.conf.json b/node_modules/@polymer/iron-behaviors/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/iron-behaviors/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/iron-checked-element-behavior/.travis.yml b/node_modules/@polymer/iron-checked-element-behavior/.travis.yml index 54388f5a..67e5e37f 100644 --- a/node_modules/@polymer/iron-checked-element-behavior/.travis.yml +++ b/node_modules/@polymer/iron-checked-element-behavior/.travis.yml @@ -1,24 +1,19 @@ language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Project is not formatted. Please run "npm run format".'' && false)' +sudo: 'false' +before_script: npm install -g polymer-cli env: global: - - secure: zj5WTkJrZAy1QK0j65jHEsHluT4B/PZl0u3iVEWnyd4CSUbHh3rS5NytZTA8wZ63DYnUcrdbhPeIQI3UKaVBUM2MO/K4MwsC2YTRpifpCLbC+wlRV9WRZNZ9CJ3hu6leshOBWHzZucUWAcKtyQRm66rAU+90ZaJcrBPC/xtgPG1n/Bm2aygr5IA36vJy80Zpwk1+yFmb08eu7jpzNVhcFor+VX0gBW3rxeX0kvzhHGn0bTLxKztNB56Oe+bzx6vU8ACjBcSylouOtPJVIk/iIh7AIDHDcpoZGzmwtVnwAV2mJQtu3V8hQ2kE8eXpDloBGID+AUfTF3YSOVQo34I1yv4T+FlB7uxWrgJo80X5IRXUe15+OoXqraZ25v736RPdTWPjV2b6cWHqdOa45wODkDY0KZ9SrmwZibF3vcfVOG21llW2jF/HC5FvDIiM7gv1ro5jsFbEIwv7ligh0KKa+TOZBphL4sEtMrpxR/zXLqBLXUbKL54A+AefHelxjDIqT3oKQylesrGZ58fEF7Fx5xDSYGJwhIEwTLsEQWIWw8sWB34yRtDBIPocqh8nNZ9pJBOdhK3oC5KK44IQnE44YrIzLRRinHzRVoywpUb5OJDxxSSvOwcqmTYbkFmRJMzfJCEj/EtYsEokmSFv8zIRRDetvenBTGouNK/VsU9xQpA= - - secure: Q3xN3fRvTQuy/HKlkYFFnVrFo01r6Q8zgzHHK8yKNKio9T/BM0+iIMYP8mRY+qvCQxCboXuUawG6gsxxT2Zn/p7SgNZ+UHq7DcLmocqxmECdGfqra6Hy9Y7BZVYPWlWIADkNUjI0RfOz69/3o/TAFlt4Cnw3BX3ip0o0Rri5/jzj0Nn+xSF+onyMnpH2gQvUE77MHvCuWTPki3R86Bz8RRzbTwKYwVa0oVca7jzdPtOjqzsnz8k9X0HVwQEpHGjqgTP3lg8EotON0rac/ayWs3J3bk9ye5AfvdTCYcZnDcz8POAN6FeC2Xey7oqQO4N8vFagru88mC3AmN67ZYqwI0fmDEYre20lnXFAFBFzsiu4FvKMgFYi/C5tG5ngSR5XcXwLskax82Un7yYYRzVbyhFSxxWZCqIC4cJ5d+E0Wex4eEYDwAlZ9AFP/hRJ2qrBVUbzXeGVMkHlg4qtdUIzHRkMUmjvEWVzTvk0Xa2wD+S0mYPcBwQcscoZy9zqdJM4hfbG9IGi02/DyrTOL3IuNH8WHHvGWS4ajDhSRkGCV4I5VtGKQ/Y3RA/pU6AaI7tVcDhbxOyIPKuOXO6PWuZOiJhhPQ/kceMkUXeh0TmsDtSBpe5OKCnjsdSn02lTT5yYf4nlVIVczP9p6zBerXorzZk1/S3CRBtqYZPgRrefbCw= -node_js: stable + - secure: F7KAxgzWNI0O6FiSz7frG/b7Yof5iufl0+U7slKPm1F5fWL3BUPpiSxHjV5MOx5KjaBaGtyvsULPTidjUpJQn+jh6D6nImbilCTsYC/bYcqwbj/y+Yc+NKem7rT5qNC6OtNgza/c4Ah7wgc8CM3pnBOh++j0sjqqPRnkc9T4h9/IU/mu6yhlZW335LBywemljDutQBwBhmcx3j301Nioq3vCg/1jXisZ92nfchn9yxs9wGlXUTtu5w1osTN8GjeqSKBOjGz4QAB/GmD6iebnPFqeqFS483romhc6Qh89De0qTxZcuJNlxWYhXGSpx8I+2c51BfPu0hN/UhCgXvVKlJAfMA5nLaEN6Gr6CTomgifwxqBoMDp1HyHSRl+QPbRr/SmJKsGkztlBo8WnjOStSmNUNtUoRaDA5Nsavu4on2z68cUmaaEDqRAvKWmpzJjYUXkr4MshNkP3KOP9nL3hCmz3bPPf9pseTnZ1z6cOm6JeDgTYsmstZq5UEIywo44Yw3Mrv/ULsUQYwkENx0UMAcOs5Ie0GENGF4hPlRwPchhErnzsHswp3w7N21ptCiULpvqk+EDsGr8DuDfIX1kCt0G7kzhbAyStiMtGUMq853zRgP19xoTMXTMEetL3vDjeU2Wc3/iOx6jWS9s/2tFYc7/v2S3yUSwrHaPf8AThGGw= + - secure: S+HLFkppDy78FsQeFha+LYcX44MXxdGg9N4nNRBieRU0GkdYh2gpp2d7A1I2+UZ+N/FbZyNLuX/hWzbK+ObB7jhP3TciT6GSTKsXHc4ySvveueitY2ZL9ZiCetlGAgxzYqfDrrnIQi6TXjdSQA6qjYZb7wufM9nNLLxgZIv9PRbT/u5DMOZTj+0l5tXp3xKzjhV5OefXH+75Z1HWLaR4Z/y/Y05k9kj8TjgiP+Gv3J6XNq31DESIjD3Z1rTiD6+RpaKo4BCCl6+A5IGXpgGHfPbp5Ez6UuFS4WRp6IzLNNMKF/XzUPnIiyB39iq5ZLSXjvdB29QtC4igveLQSvqXwNCFYFkg6Ak9wXk3OQOkYqvWJ5mtbtR5z2gG5aml/rfYALu8qIuzs84yQ/EkcwDUzn0yfc6v16fz4BpbIze2sQ55KKwtBQAphRAihFHh1Kvc8sz16V7fztTis38x8mnUrYRRENTyWHcYVcevmzJXqmwWUQD96QCQKjNE16G88q8YULPoGXJ2DbEYj4iT7XUG+qxcS28hGNkTMn5wIP1c8nJFAlPIQy2o0KVsnLXpGe1ynt0UtLKjnPWljzb9UrwPxtem5r1MmgPGXQSxgYucGRQINny++HqtsbW8yA20zJYOG1ZNrt3uEQltBQYGHnwtRS3fi9XkgYnV1vCFBm2IFig= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true + chrome: stable script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/iron-checked-element-behavior/package.json b/node_modules/@polymer/iron-checked-element-behavior/package.json index 7b3efb8f..997b95cd 100644 --- a/node_modules/@polymer/iron-checked-element-behavior/package.json +++ b/node_modules/@polymer/iron-checked-element-behavior/package.json @@ -1,118 +1,33 @@ { - "_from": "@polymer/iron-checked-element-behavior@^3.0.0-pre.19", - "_id": "@polymer/iron-checked-element-behavior@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-NEEaAhjtGvSffeqep2a0GXpTqc0K3wcgO1lR5NAMOQjNcnbh62twdkTPJyw1EGs9l+PL0IpepUAYTOI305MWXg==", - "_location": "/@polymer/iron-checked-element-behavior", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/iron-checked-element-behavior@^3.0.0-pre.19", - "name": "@polymer/iron-checked-element-behavior", - "escapedName": "@polymer%2firon-checked-element-behavior", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.19", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.19" - }, - "_requiredBy": [ - "/@polymer/paper-behaviors" - ], - "_resolved": "https://registry.npmjs.org/@polymer/iron-checked-element-behavior/-/iron-checked-element-behavior-3.0.0-pre.19.tgz", - "_shasum": "c79c8529c7bddf8b3fc5da1e81c938a286e424aa", - "_spec": "@polymer/iron-checked-element-behavior@^3.0.0-pre.19", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/paper-behaviors", - "bugs": { - "url": "https://github.com/PolymerElements/iron-checked-element-behavior/issues" - }, - "bundleDependencies": false, - "contributors": [ - { - "name": "T" - }, - { - "name": "h" - }, - { - "name": "e" - }, - {}, - { - "name": "P" - }, - { - "name": "o" - }, - { - "name": "l" - }, - { - "name": "y" - }, - { - "name": "m" - }, - { - "name": "e" - }, - { - "name": "r" - }, - {}, - { - "name": "A" - }, - { - "name": "u" - }, - { - "name": "t" - }, - { - "name": "h" - }, - { - "name": "o" - }, - { - "name": "r" - }, - { - "name": "s" - } - ], - "dependencies": { - "@polymer/iron-form-element-behavior": "^3.0.0-pre.19", - "@polymer/iron-validatable-behavior": "^3.0.0-pre.19", - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "Implements an element that has a checked attribute and can be added to a form", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@polymer/paper-button": "^3.0.0-pre.19", - "@polymer/paper-styles": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/iron-checked-element-behavior", "keywords": [ "web-components", "polymer", "iron", "behavior" ], - "license": "BSD-3-Clause", - "main": "iron-checked-element-behavior.js", - "name": "@polymer/iron-checked-element-behavior", "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-checked-element-behavior.git" }, + "homepage": "https://github.com/PolymerElements/iron-checked-element-behavior", + "name": "@polymer/iron-checked-element-behavior", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/paper-styles": "^3.0.0-pre.21", + "@polymer/paper-button": "^3.0.0-pre.21", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -120,9 +35,31 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "main": "iron-checked-element-behavior.js", + "contributors": [ + "T", + "h", + "e", + " ", + "P", + "o", + "l", + "y", + "m", + "e", + "r", + " ", + "A", + "u", + "t", + "h", + "o", + "r", + "s" + ], + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@polymer/iron-validatable-behavior": "^3.0.0-pre.21", + "@polymer/iron-form-element-behavior": "^3.0.0-pre.21" + } } diff --git a/node_modules/@polymer/iron-checked-element-behavior/wct.conf.json b/node_modules/@polymer/iron-checked-element-behavior/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/iron-checked-element-behavior/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/iron-flex-layout/.travis.yml b/node_modules/@polymer/iron-flex-layout/.travis.yml index bf9fe688..242ca3d4 100644 --- a/node_modules/@polymer/iron-flex-layout/.travis.yml +++ b/node_modules/@polymer/iron-flex-layout/.travis.yml @@ -1,24 +1,19 @@ language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run format".'' && false)' +sudo: 'false' +before_script: npm install -g polymer-cli env: global: - - secure: idlCNYtNQ7rLGCSl2NuZ++XZEwofpojkakXhL8m34pCX1ZwhGRprHsvNE7h7tz8SIV+mUjuUT8DaM7rlgZ+bLyw/Hq7G15DdmU5puUsCVibFFBBEhh82lxkdK/Rlfo+ytt0MFsbTJljEoqTSbnL0fSeC0cN/7wf6yEQs/+mTR0I= - - secure: i/rAHa9rxszmbE+RbQ2b7ln6OYzrcoUssdPk36lNeJk/B1HjBS9cfg1PMwSAw+t6yvAN3I0fbOOl4dlGB1K5T4kAtmcAcC3fbptJL08IvK9K15pz/rMEzIBWLXj9oVJliwBZR2GFH+5zv6aFdEwQxh1leBnHQwmKgl24QX8XGO4= -node_js: stable + - secure: WIm3CbGmHaki3nEpkBJDxeL2g26pl9mKWXRWOANUw1xc3a9JKCMvNCXoCmtxX8PjEz4OZsv/XRD3CSgerGO8CVEIIku06IOC2lKgOer0N9vhXzJYCIGTBdftEf5dBA1M0BfGq7oadM1eUOLSnsYIJcUdTcg+pmRCyHZ+FUhVPtQ= + - secure: El5LW32NaeNZ+PFd56aoNEOtxen7btxkNLmO+X5bcxuq8a6qVQrMXDzOGg2iR+h6uYgsJDs8J5AUFLwpAS5uNbeZTIoPBDXlQxkoTWLZ5UsIGqjDFEmHhav9EVq9YiLD/zEtNGCwM8mKE5LQaX7biJNhZhJk6ZaGF8DJTfEZKOg= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true + chrome: stable script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/iron-flex-layout/package.json b/node_modules/@polymer/iron-flex-layout/package.json index d8aa8201..b6f22d39 100644 --- a/node_modules/@polymer/iron-flex-layout/package.json +++ b/node_modules/@polymer/iron-flex-layout/package.json @@ -1,63 +1,31 @@ { - "_from": "@polymer/iron-flex-layout@^3.0.0-pre.19", - "_id": "@polymer/iron-flex-layout@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-EZ25vUjmZXLc0hKJj338Ec1fQwemBsfe+Zo5d6ThzJzoSq72uGlZ8deLYNiAhIw6UZZxWttXcN6c/2kZ4qV18A==", - "_location": "/@polymer/iron-flex-layout", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/iron-flex-layout@^3.0.0-pre.19", - "name": "@polymer/iron-flex-layout", - "escapedName": "@polymer%2firon-flex-layout", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.19", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.19" - }, - "_requiredBy": [ - "/@polymer/paper-button", - "/@polymer/paper-styles" - ], - "_resolved": "https://registry.npmjs.org/@polymer/iron-flex-layout/-/iron-flex-layout-3.0.0-pre.19.tgz", - "_shasum": "35f633ab4d4e14e44650722729128e4f5968c1e9", - "_spec": "@polymer/iron-flex-layout@^3.0.0-pre.19", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/paper-button", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/iron-flex-layout/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "Provide flexbox-based layouts", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.1.1", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@polymer/iron-demo-helpers": "^3.0.0-pre.19", - "@polymer/test-fixture": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/iron-flex-layout#readme", "keywords": [ "web-components", "polymer", "layout" ], - "license": "BSD-3-Clause", - "name": "@polymer/iron-flex-layout", "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-flex-layout.git" }, + "name": "@polymer/iron-flex-layout", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/test-fixture": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "@polymer/iron-demo-helpers": "^3.0.0-pre.21" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -65,9 +33,8 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "author": "The Polymer Authors", + "dependencies": { + "@polymer/polymer": "^3.0.0" + } } diff --git a/node_modules/@polymer/iron-flex-layout/wct.conf.json b/node_modules/@polymer/iron-flex-layout/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/iron-flex-layout/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/iron-form-element-behavior/.travis.yml b/node_modules/@polymer/iron-form-element-behavior/.travis.yml index a847fa1d..c5489749 100644 --- a/node_modules/@polymer/iron-form-element-behavior/.travis.yml +++ b/node_modules/@polymer/iron-form-element-behavior/.travis.yml @@ -1,23 +1,21 @@ language: node_js -sudo: required +sudo: 'false' before_script: - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Project is not formatted. Please run "npm run format".'' && false)' + - git checkout package-lock.json env: global: - - secure: IJ2DKBWd4T446kn7yV/2tStL8tTZcmfguzymvE+U9p9JBJl6Qu+KwfzETjJPyiEhzwS8gqcrV8takloMto2dMLCyCc9RBzJt/AHlLC5vcZ0aJ06ArYkn98/lz4q9noDDpd1dqXbzC8ea4En/b+DCgf8iei7pFmoNjFo8+RGoSMN7GvmUIBEbZ0akQnZcvMNgbWrRQQ31Qkug492ybrmizBMlBoMSRVkMjKkuKQyOr/7CTEvmj62XuapM9VoE21qr6E0T1iXrBbT9ay5HPlitkfBXe+oV3tj3ONBp81+HhEiIkZua3xnGcs0YkT9qd/fipy/1hfPAj5bBco/IyYEjVYUuIrhdJEfzFlHBwNqlWtl5yuW9srHP5V4k7NiUWBESoQ2V4AH7ZDuxcsdhBT1N/2D0dksBP4UkfyBIYQaUOYSI0a4O6BpgTQRPh7yHZ88fG6B2/k59dlX1PuPFuiI7dECPMmaLVsUGH3PMkezHsD4BNdp89HzJVk0jTM8W5oP1/Lj8EEp1X48zHg7IZo+o0rOPtvjqrYtdhw9+BVujRKkLhXBDIh+bjQeX4WpeDPtAxAaOH7bAWxWa+w1h0DbOkHzB6cV3H8jzg/oJKwZyIgmrR9aVjeaW2IP3sYxbkGq2ZM/x9+mcRo+JV3TONStYRc6lEKpmOGQgUZbVMyU0S2E= - - secure: KZmse/kaUHZKkjYYWssUihkjaWmhXFfJio6/TcyxlvzlRN+b+s8xkMx09F2mfCEzCuxbhMeYaOLYUP+x44mO/N5OKvRYqGKLBJASQ+LvsVe6ep972AfWtb2P2E6OK/b9vAdW0v52j1gTaj94KtUfjaWjxP78TTEG5slMMwadqBm5e7nW4vS+wV26sbNymnWB9NErLebJr0T+wwrXDyjXWkUTH8yPzlwFjPcfXZavQwFyM9E+k+HQVUOQ8b3oMxVnwc2aHRWLWRDu97k1S/hVk+c1j+qamOa16faJLTsG9lay7RRkeq/OQBvjdWtmsq95NkP27/uLlQrKKOY7nZZ331LlqYK/o1+i+nVjZqWAgMXun7OjTtZvU53dOFXPVroXNoIcAPhdVNxLNvlJLvTL1uoVybzjeDdiMrTpZc6FpSLRKOj9AGmnT4vy+A2MSxn3rwujvz2PlRvoXYxnN36QbONbF7Zr1Sv6i+53eN+/1xC78i7otJEsvJhKe6YAq9/7xyOBGhELhOYMIES2gy/Nbc+47pEWWgYQ/tvBO1RXuaRgKG2iwiWL83Phhgw3SAdYaAL5xk6lUTTsuCJZHmcDoD8bTDblBIjntWvtzT6Z1NPTiuUXszJXkLSwUjfNUeQtb4H9GnNWF0P4ze91RZippygyWfrDz7aQhf+NcbF/PE0= -node_js: stable + - secure: Hz8Mve/MIM0ukD+WdwzvDCtPT9EVVA2BL3q+lzfwHHIOAKb5Jt7i8oJuEpI6ivILGf3c3stiBmw4OOczVVZUmDGjiXGh2cKnCMBW5HwH25nudZFvZZMndNJNvjEHgOaLthSO7WFc4n2Uf169FpPU3jtKX1lRMdwzxXD6+urXOEBSMNoJpJgL/UQQous0y4ziHhJXXdM9kIiclE3mN5tNh3zLsbUrZjKOtWVssgy1FpCg8mpkKlAGnoEpt1tA2GXjQQDYi5ZjU95gyUErMGgq6WZP+Rdo7mVQHVxh7hX/8oWKevwp/CZl2aXW2/Bu4qb4QtX4K9rFTD2/EyBzmfEmkUc9irOISY2FZDNxQZ+mj3Iuv4hgyOz+eK7wtdFOLZ4bhBqw88Koli8FVTbnu74OLrT3395s5Go00hz6EKebnBJzUZluEK+l+h0i/NnucsKwP/bnfPKtjw0Xr/8KTXHp0bHF9wLJDMF5pAJVVvewELFN7WCNmRPW6rnsUdmL5OIT1As2Js1kg0eyfq7NB2cjWTCaH6RUto2XfCcSTC2k2SWizuWAFSEwAF17yBSd/DcpdpwnKco19owFI1ddEzpPkVaUmvsfbJpp+5CKKXMdO4eAtUtX0/MQEz84UYqa4pBxUibo25VAW5OdfJs2qPLwS7T/xyDlJ0RuFeBgf8kN2Do= + - secure: WJY2j5jMCtOlChNewlmIVHEnnRE6/TgBlosAXkyL35l6/SX3HmGXa1JeDWGp/ZjvfacYv7JOt+xWYaGjIZveCMneP36uIPxfEydetQ0HiQFf4b/AFjmbgIPboMjeScU/I3A6KmcvqH3J4oVSSh5oSd/neP2HQ4/iw9J7SdI4sZ9AmKKVhyxhrQN4l0+8GbEV+a00lpqjSm9EnozSOaC1eikiZj4z65tfCDERAnsndspJfwdLjs4ojzTESflnVsZcL7Xhuaq4QXJTwejfqHG4dCQUyQiJ+7NUsERoWS6qt/V0Swtfz7b0nGBxjaB42Sdnc+jwE+xtwkZVepL8FIoESRTDSShJUidbAFLlwWxbeNDe1PhnnGxDQMRIx9dWFV6zg4ulZ/BxbqaEMmglRgeOyjftB39VSwHmiKAmmVrwhV8wp20b3lBTC60nJyTSToD9uKzATf2B0LB4lhP1vDHtQ/TUT4mQ2m8VetmYUoRWyShJQBc4jmz3q3DiOYACWDp8BnmTyaNuinLb8Ka6mzp0UnH2E6/gZMvRCJvsF/v0gnBqHCk9RHCCwZNCA6bbzNe9E5sUUlH5arC9OF9gp7Oq2kdJ/V7aDvXMRTiweFgjOzYg9k4eKl6J3Cf3hVuorp5Fmy2YTE4C4NJmKn9KrPXInL/89goJdCzNvmFJxqJvBnE= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable + chrome: stable script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/iron-form-element-behavior/iron-form-element-behavior.js b/node_modules/@polymer/iron-form-element-behavior/iron-form-element-behavior.js index a58e5d6b..0ceb86db 100644 --- a/node_modules/@polymer/iron-form-element-behavior/iron-form-element-behavior.js +++ b/node_modules/@polymer/iron-form-element-behavior/iron-form-element-behavior.js @@ -43,7 +43,7 @@ export const IronFormElementBehavior = { /** * The value for this element. - * @type {string|number|null|undefined} + * @type {*} */ value: {notify: true, type: String}, @@ -63,7 +63,7 @@ export const IronFormElementBehavior = { _parentForm: {type: Object} }, - attached() { + attached: function() { if (!PolymerElement) { // Note: the iron-form that this element belongs to will set this // element's _parentForm property when handling this event. @@ -71,7 +71,7 @@ export const IronFormElementBehavior = { } }, - detached() { + detached: function() { if (!PolymerElement && this._parentForm) { this._parentForm.fire('iron-form-element-unregister', {target: this}); } diff --git a/node_modules/@polymer/iron-form-element-behavior/package.json b/node_modules/@polymer/iron-form-element-behavior/package.json index 5c123770..19316666 100644 --- a/node_modules/@polymer/iron-form-element-behavior/package.json +++ b/node_modules/@polymer/iron-form-element-behavior/package.json @@ -1,62 +1,30 @@ { - "_from": "@polymer/iron-form-element-behavior@^3.0.0-pre.19", - "_id": "@polymer/iron-form-element-behavior@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-ZiJ65MFcuFk2kJZqgY8ogspeV8mcrhlIOkwSaT/RWkhakeQ5WZ3++jhmjmNVQqUbYBPr0eLtZQp/TqGjd1UGyg==", - "_location": "/@polymer/iron-form-element-behavior", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/iron-form-element-behavior@^3.0.0-pre.19", - "name": "@polymer/iron-form-element-behavior", - "escapedName": "@polymer%2firon-form-element-behavior", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.19", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.19" - }, - "_requiredBy": [ - "/@polymer/iron-checked-element-behavior" - ], - "_resolved": "https://registry.npmjs.org/@polymer/iron-form-element-behavior/-/iron-form-element-behavior-3.0.0-pre.19.tgz", - "_shasum": "0fee7892af6a79cea7ef7ef1c7f738ac9f916ec6", - "_spec": "@polymer/iron-form-element-behavior@^3.0.0-pre.19", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/iron-checked-element-behavior", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/iron-form-element-behavior/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "Enables a custom element to be included in an iron-form", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@polymer/paper-styles": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/iron-form-element-behavior#readme", "keywords": [ "web-components", "polymer", "form" ], - "license": "BSD-3-Clause", - "main": "iron-form-element-behavior.js", - "name": "@polymer/iron-form-element-behavior", "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-form-element-behavior.git" }, + "name": "@polymer/iron-form-element-behavior", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "@polymer/paper-styles": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -64,9 +32,9 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "main": "iron-form-element-behavior.js", + "author": "The Polymer Authors", + "dependencies": { + "@polymer/polymer": "^3.0.0" + } } diff --git a/node_modules/@polymer/iron-form-element-behavior/wct.conf.json b/node_modules/@polymer/iron-form-element-behavior/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/iron-form-element-behavior/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/iron-icon/.travis.yml b/node_modules/@polymer/iron-icon/.travis.yml index 44c7bc11..be87f59f 100644 --- a/node_modules/@polymer/iron-icon/.travis.yml +++ b/node_modules/@polymer/iron-icon/.travis.yml @@ -1,23 +1,19 @@ language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Project is not formatted. Please run "npm run format".'' && false)' +sudo: 'false' +before_script: npm install -g polymer-cli env: global: - - secure: TTp7q3OKEpaFqnqbYczhMd8iXTa1Ya0jOQVq1OhljpJogLWb78qvHLHgnxgMWkw+/KDyE5KHW1CXhYUQa7C9QF2Zn7uoN27+7+4q7HuK3pTuUtqdfstLVuLHQrfK6VqUT4XjSpeMzNX/HxuD3EMBH0bMBR4CIr76sLJOuIL/XF8= - - secure: damHvQXygRYIJG/8Vmqh7U4zxoi5224JIZiZVQL6I5z//s5zqHq6AqwDyfOoc0zWndJCwE8NvOzKD/lmVYXIsPcY95kkZS45Dbye0krYWUzKnv42rDi/7olXcg647iAEDVhW3BRHmA+opzQtKUpAkXl97DtPVkszLL1ReyNyv3A= -node_js: stable + - secure: gNES3j88ExQDnzcy1l5sv/WpP4oGfmejGovMa9yhQkFIqTLU3bXFRI/CJDlK9GNXLcv1AeuqL9zZ/8lyPGbkpz/2N9Lk77bJTMPnYKFaGn4bLXrPVQx7NJ69AHBUnrwOEEg5Gx1vbrAjRfOE+n3W5amr5weO6yHYL7Brjq8t0MA= + - secure: d6beCXlnM9hXzNdKcZ254huVkPJlWBYhDErrt1suNz27j5zhhRmuy7+wQMJTUlBdwgeh+6TXBZfiRIrFpoc4dG1Kd2Weka706tSoY4awvP8VqDdJQKL7oN84DOAjWpAbIaWNvn/6UQpja9BQ4ELx7Y7b1bOHw+fhoerfD1wjbes= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable + chrome: stable script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/iron-icon/package.json b/node_modules/@polymer/iron-icon/package.json index 078604a6..d1916791 100644 --- a/node_modules/@polymer/iron-icon/package.json +++ b/node_modules/@polymer/iron-icon/package.json @@ -1,67 +1,33 @@ { - "_from": "@polymer/iron-icon@^3.0.0-pre.19", - "_id": "@polymer/iron-icon@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-bXL8xib8qoX/R91iAWp69lgwZa+S6lGPMmqIU4H6iFn2o5N9MlNppP45oyxgxm7OX6XNa7RMMTfKyQ2y9wcLoQ==", - "_location": "/@polymer/iron-icon", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/iron-icon@^3.0.0-pre.19", - "name": "@polymer/iron-icon", - "escapedName": "@polymer%2firon-icon", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.19", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.19" - }, - "_requiredBy": [ - "/@polymer/paper-icon-button" - ], - "_resolved": "https://registry.npmjs.org/@polymer/iron-icon/-/iron-icon-3.0.0-pre.19.tgz", - "_shasum": "8fd150463a36d3851b2b71802ebc22d48dbfa340", - "_spec": "@polymer/iron-icon@^3.0.0-pre.19", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/paper-icon-button", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/iron-icon/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/iron-flex-layout": "^3.0.0-pre.19", - "@polymer/iron-meta": "^3.0.0-pre.19", - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "An element that supports displaying an icon", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@polymer/iron-demo-helpers": "^3.0.0-pre.19", - "@polymer/iron-icons": "^3.0.0-pre.19", - "@polymer/iron-iconset": "^3.0.0-pre.19", - "@polymer/promise-polyfill": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/iron-icon#readme", "keywords": [ "web-components", "polymer", "icon" ], - "license": "BSD-3-Clause", - "main": "iron-icon.js", - "name": "@polymer/iron-icon", "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-icon.git" }, + "name": "@polymer/iron-icon", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/promise-polyfill": "^3.0.0-pre.21", + "@polymer/iron-iconset": "^3.0.0-pre.21", + "@polymer/iron-icons": "^3.0.0-pre.21", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0", + "@polymer/iron-demo-helpers": "^3.0.0-pre.21" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -69,9 +35,11 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "main": "iron-icon.js", + "author": "The Polymer Authors", + "dependencies": { + "@polymer/iron-flex-layout": "^3.0.0-pre.21", + "@polymer/iron-meta": "^3.0.0-pre.21", + "@polymer/polymer": "^3.0.0" + } } diff --git a/node_modules/@polymer/iron-icon/wct.conf.json b/node_modules/@polymer/iron-icon/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/iron-icon/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/iron-input/.travis.yml b/node_modules/@polymer/iron-input/.travis.yml index dd1bdc00..7d38fd4e 100644 --- a/node_modules/@polymer/iron-input/.travis.yml +++ b/node_modules/@polymer/iron-input/.travis.yml @@ -1,24 +1,19 @@ language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Project is not formatted. Please run "npm run format".'' && false)' +sudo: 'false' +before_script: npm install -g polymer-cli env: global: - - secure: NQunbnhwQFU/uRU1Dz8VIYXpG9cq4wEldllph4To1XJqEa21pG1Q9+a/M4+aOkW6iIPRgfI/bQ6mPWaRnE/KGrsusARqgYDytq42dJpSoLOiLYbVdRKIHI3t9cr1MiZKUxwz/vpOsKcMK8dW5RmR6zJ8k5roijNAmjFRlzfGOKY= - - secure: Ge6m7GkHZdhv6Ru7uNEVS9jUQ15CsCa9ZBcBQncA/w8zEmDfM2tzcTUJ54piZ03mo9qnWOcV4IcJj78nXsyKcYZHiGpe63w5R5NWhO3uZ72C48SMPbWQxL0Kyt6PN4u7i5MNCMJ3+a+ttyet8H9qTzxAwOLVSFCUr3On1/B1APU= -node_js: stable + - secure: o3lAmns2tp9Q9OxN+08EeErkfZoWq9ctHDzId4fQMIvhajZSTnMw2RzLk2VRrns9YxhL25z3GvdQFh427/UmgPr1cY7zc2Y+OF8QPJTmyDQL9Bp0B+HDR9R8YYwxD+SqJP5TzE3gqblV9gHDAruEDruPkg/t0hbo62HSuxL/AZc= + - secure: Vg+aDFoUprmDjqZJpkejJB1h4gMwm+rDsMcLW+l43tOcR6KpIVy1EoXgsKW0PL1rDFgJewvi80S9jXhG35t2f5Hz63S/zFMG9vmn8RyJg40DfrOkDry8rRuPwPQFeSDPW0MNNspyDayc5m+fJw+Klj2ZmsYnjUJgWUVvfG7o0NY= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true + chrome: stable script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/iron-input/package.json b/node_modules/@polymer/iron-input/package.json index 12e853bd..61637981 100644 --- a/node_modules/@polymer/iron-input/package.json +++ b/node_modules/@polymer/iron-input/package.json @@ -1,67 +1,34 @@ { - "_from": "@polymer/iron-input@^3.0.0-pre.18", - "_id": "@polymer/iron-input@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-uqG85u5j4Ca0mbCHqBZUKT9w708BkKWE9heq38pg2qavAPMp//duxfhkaC8HUyl4krqTl+U92U/Ss9g3GYjRkg==", - "_location": "/@polymer/iron-input", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/iron-input@^3.0.0-pre.18", - "name": "@polymer/iron-input", - "escapedName": "@polymer%2firon-input", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.18", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.18" - }, - "_requiredBy": [ - "/@polymer/paper-input" - ], - "_resolved": "https://registry.npmjs.org/@polymer/iron-input/-/iron-input-3.0.0-pre.19.tgz", - "_shasum": "4bcac205f927495d775a44e628013bb76ff78706", - "_spec": "@polymer/iron-input@^3.0.0-pre.18", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/paper-input", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/iron-input/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/iron-a11y-announcer": "^3.0.0-pre.19", - "@polymer/iron-validatable-behavior": "^3.0.0-pre.19", - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "An input element with data binding", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@polymer/iron-demo-helpers": "^3.0.0-pre.19", - "@polymer/iron-validator-behavior": "^3.0.0-pre.19", - "@polymer/paper-styles": "^3.0.0-pre.19", - "@polymer/test-fixture": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/iron-input", "keywords": [ "web-components", "polymer", "input" ], - "license": "BSD-3-Clause", - "main": "iron-input.js", - "name": "@polymer/iron-input", "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-input.git" }, + "homepage": "https://github.com/PolymerElements/iron-input", + "name": "@polymer/iron-input", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "@polymer/iron-demo-helpers": "^3.0.0-pre.21", + "@polymer/iron-validator-behavior": "^3.0.0-pre.21", + "@polymer/paper-styles": "^3.0.0-pre.21", + "@polymer/test-fixture": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -69,9 +36,11 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "main": "iron-input.js", + "author": "The Polymer Authors", + "dependencies": { + "@polymer/iron-a11y-announcer": "^3.0.0-pre.21", + "@polymer/iron-validatable-behavior": "^3.0.0-pre.21", + "@polymer/polymer": "^3.0.0" + } } diff --git a/node_modules/@polymer/iron-input/wct.conf.json b/node_modules/@polymer/iron-input/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/iron-input/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/iron-media-query/.travis.yml b/node_modules/@polymer/iron-media-query/.travis.yml index 99ec3a3c..4e1bce41 100644 --- a/node_modules/@polymer/iron-media-query/.travis.yml +++ b/node_modules/@polymer/iron-media-query/.travis.yml @@ -1,24 +1,19 @@ language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Project is not formatted. Please run "npm run format".'' && false)' +sudo: 'false' +before_script: npm install -g polymer-cli env: global: - - secure: efS1E9VC7v1KEZ9x/52vlWim9IA86zgJAgVEYNG78TDE86avKlAevDo+ULnrUWmJqp4pQibqZs1o+DbkGKaovfMpzKCFo2/SU1PjK1P/t4liz9Ia6cxi1fwbjZcqbe4DKfDJZwIFOtO8Vp26jlVdx8eaNqp7zm/S9TtmEvV8cfs= - - secure: DG4SkCilGKfokTPV+/uzpJ1QNMNYAK1ZWh+1Z/Z8DGwjGoCgh9ACkBxdXvi42HDYMvdd+mixDkZ2n7+rU++G8vHn9jVHPQhu5h9OjM4rmXF1TtStA0poCmjPz5ZpoFzae4Kcjaj5YrVjdAAAS/4grYMvDY9d95OtQtOZCB1bxeQ= -node_js: stable + - secure: fVsL8/CsKAJV83Z2TW3Cc2CLa0k52D8Ydkrv+7TztzB2/bZQ5gZxoSVhE+t7aPODCzK+WwVL3ss3XSyFPTuJErx7AcT2kiklHsEY0f/YiQsX7vD6EukYiF2afy94GIai6y9L576bbytUqGVbfWOHZ43x9Sc62NRjIQ5iVbxp11k= + - secure: Ze6rL4Hq26sLcq3Mqf0Rsdgq7StVqffwhBtmNZ/kLx7u+GEvZhh7ccUb0Q//ktwhtgJiotMdGZwh5ZzviX9Xh8w56w0YqotIahw8LYJyKVAvtBdo3gugXtZZRLtb47EL4eTBzoxywZz8FP0JH5JUCDVyVQA1GQ+r6fHX7afdPGA= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true + chrome: stable script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/iron-media-query/package.json b/node_modules/@polymer/iron-media-query/package.json index 700239b5..db2673e0 100644 --- a/node_modules/@polymer/iron-media-query/package.json +++ b/node_modules/@polymer/iron-media-query/package.json @@ -1,61 +1,30 @@ { - "_from": "@polymer/iron-media-query@^3.0.0-pre.19", - "_id": "@polymer/iron-media-query@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-VDLSE5b0XoR2tj4cXiwW+eKELAaS6kilJWBmScwHsB5xQ8SnU/6ArfpJYFd9gNROFid9c632ldfmP863wwLJ1g==", - "_location": "/@polymer/iron-media-query", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/iron-media-query@^3.0.0-pre.19", - "name": "@polymer/iron-media-query", - "escapedName": "@polymer%2firon-media-query", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.19", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.19" - }, - "_requiredBy": [ - "/@polymer/app-layout" - ], - "_resolved": "https://registry.npmjs.org/@polymer/iron-media-query/-/iron-media-query-3.0.0-pre.19.tgz", - "_shasum": "f98271a879ead7aa6c37f7da6231b38c8f41deca", - "_spec": "@polymer/iron-media-query@^3.0.0-pre.19", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/app-layout", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/iron-media-query/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "Lets you bind to a CSS media query", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "@polymer/paper-styles": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/iron-media-query", "keywords": [ "web-components", "polymer", "media" ], - "license": "BSD-3-Clause", - "main": "iron-media-query.js", - "name": "@polymer/iron-media-query", "repository": { "type": "git", - "url": "git://github.com/PolymerElements/iron-media-query.git" + "url": "git://github.com/PolymerElements/iron-media-query" }, + "homepage": "https://github.com/PolymerElements/iron-media-query", + "name": "@polymer/iron-media-query", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/paper-styles": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -63,9 +32,9 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "main": "iron-media-query.js", + "author": "The Polymer Authors", + "dependencies": { + "@polymer/polymer": "^3.0.0" + } } diff --git a/node_modules/@polymer/iron-media-query/wct.conf.json b/node_modules/@polymer/iron-media-query/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/iron-media-query/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/iron-meta/.travis.yml b/node_modules/@polymer/iron-meta/.travis.yml index e27a9f97..8fb9bf43 100644 --- a/node_modules/@polymer/iron-meta/.travis.yml +++ b/node_modules/@polymer/iron-meta/.travis.yml @@ -1,24 +1,19 @@ language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Project is not formatted. Please run "npm run format".'' && false)' +sudo: 'false' +before_script: npm install -g polymer-cli env: global: - - secure: mjikUCoN+UpTbFHwbGXUoKp4vtZ2qNN1JYW79WcOik7fCFmvdFzfYQPDa6y9aJvU3kgkDndGdR/ynLG4kejZjmqTS5fYtdHEwpPVPapbVYnquJvCJKbMN4S2QpGCoq51pjKQ8U3Ys6G5HkmdcDfw3SKk1uMgVzKV7fEI+6WnZ/M= - - secure: LHDnBtwK7yO2X4GNmIaAl7t85WWc1U189OiPqemD27+jTcKml0by1n9Mu/yrg94jYgeXab9mHgU3uMtIdQstNNwTDu8CgmmIP4H2EWopHrTi3KM7Z7aeofPgMJsVFXwg+WhNlcCfhEsygHZWTxjJXM4fcGOrFPDa4+BTgRa2hEE= -node_js: stable + - secure: ELhxMq2ZzFypuVUhE/g/2hFOb2M0uq/pILyDP6ABH8bh3KJkIkbDu6rhfSN7ZqNv+yp3wPERbUWvGGn8O85G22j6b/CRu7I27GxmzwtSMN86X5LaX1eHxWKEWrhNoWDw4tW8w7k5+GXZo+KekbzKlKS/BRBaCS9q7RneAR7/wEc= + - secure: w92p70VyNaErTe2UEjviuLN2f8WgHmzCraLe8g1ToFaOnnF4xrjoCAqoY9+aGqcoRQ4+7ayCNCNEZVVzkPmuEF+Cl+gJNNDgpdhuQ871I1nO05SHYr/53KSBNlUeogbS7TiGm2iM+gSoE+Na/kyfZKzsn15XO3ycfoqYjxon0tY= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true + chrome: stable script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/iron-meta/package.json b/node_modules/@polymer/iron-meta/package.json index 0ae6b671..5552903d 100644 --- a/node_modules/@polymer/iron-meta/package.json +++ b/node_modules/@polymer/iron-meta/package.json @@ -1,61 +1,29 @@ { - "_from": "@polymer/iron-meta@^3.0.0-pre.19", - "_id": "@polymer/iron-meta@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-rZk6W37srfnB1MqlYq3sbg/mZiGSYf/xpjc7xf7uJUUvX+oe0o65o4T4b1BwthVE6uqffO43p2MjFt2kDXDrjA==", - "_location": "/@polymer/iron-meta", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/iron-meta@^3.0.0-pre.19", - "name": "@polymer/iron-meta", - "escapedName": "@polymer%2firon-meta", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.19", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.19" - }, - "_requiredBy": [ - "/@polymer/iron-validatable-behavior" - ], - "_resolved": "https://registry.npmjs.org/@polymer/iron-meta/-/iron-meta-3.0.0-pre.19.tgz", - "_shasum": "c4a70c235b87679f3487429ca69e071aacc3d002", - "_spec": "@polymer/iron-meta@^3.0.0-pre.19", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/iron-validatable-behavior", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/iron-meta/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "Useful for sharing information across a DOM tree", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "@polymer/paper-styles": "^3.0.0-pre.19", - "@polymer/test-fixture": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/iron-meta#readme", "keywords": [ "web-components", "polymer" ], - "license": "BSD-3-Clause", - "main": "iron-meta.js", - "name": "@polymer/iron-meta", "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-meta.git" }, + "name": "@polymer/iron-meta", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/paper-styles": "^3.0.0-pre.21", + "@polymer/test-fixture": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -63,9 +31,9 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "main": "iron-meta.js", + "author": "The Polymer Authors", + "dependencies": { + "@polymer/polymer": "^3.0.0" + } } diff --git a/node_modules/@polymer/iron-meta/wct.conf.json b/node_modules/@polymer/iron-meta/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/iron-meta/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/iron-resizable-behavior/.github/CODEOWNERS b/node_modules/@polymer/iron-resizable-behavior/.github/CODEOWNERS index c5097c0c..9ef9eb64 100644 --- a/node_modules/@polymer/iron-resizable-behavior/.github/CODEOWNERS +++ b/node_modules/@polymer/iron-resizable-behavior/.github/CODEOWNERS @@ -1,2 +1,2 @@ -* @valdrinkoshi +* @e111077 /.travis.yml @azakus diff --git a/node_modules/@polymer/iron-resizable-behavior/.travis.yml b/node_modules/@polymer/iron-resizable-behavior/.travis.yml index e49666fd..1b709ed8 100644 --- a/node_modules/@polymer/iron-resizable-behavior/.travis.yml +++ b/node_modules/@polymer/iron-resizable-behavior/.travis.yml @@ -1,23 +1,19 @@ language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Project is not formatted. Please run "npm run format".'' && false)' +sudo: 'false' +before_script: npm install -g polymer-cli env: global: - - secure: Bsp8pa19FCij3Eee0P5eOE8ZrbylrYL99R9EIxH6rcDH+rxMhK0BIfSiXTPSFRk2iqJp++RIZN8kUu5GddetiXreRZDtnhXBA2QoYteIAS8Hzy9u2EggqI0UdGqbCiFHDVD/rEQyhSPiIfWHGCg/Moeo9J2k/eC2w6I8I9C15Zw= - - secure: j9xIW/banUkkNaLrWVGcTsasAp64zEmZJQO+eY8ExINx3uLbDh5h6Foc7xWhJ4Yu7aey3+nH5BWKYimtPTYoXUD2nIWU31yBNbqU/+G6vIppDbgPHMRcVnRiO7YZ0yW1JunvKs+1lOPhOw4ibztJjGkQ2ZK9q6ZSJvQKRbo6Au0= -node_js: stable + - secure: Oqxdd+qGvPupU4boPps+T1LvbxCYDYTSFUCcJybasEnQ+mooUn1tF8FhSZNtZyjgygjb+GYjlx0OdXuHUTOdv+ubPk0ilQmxc+9O0Fh4Dwa2dUNy4WaBHNpTfeWtwDlv8NOZyC+HuUQmDUD9xw1BPla2sZoAdGWSJ5qnQUwgUn4= + - secure: E3iy+4Gsp27GEeNg7yHlcR/5Gmm3nldvJKIgPeNxcWYFoqqnpe+iOt/GY5YqevIe3FSZ4O1d5Yw2SalTTOiWIliGy99skGO/ItjhaE3mNnYmqRisB7zpdQBMCoYSV3Qh8IHVbgOzl/cWL0FUXVORTjYs2VQ19yivqC/RaNVwi9k= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable + chrome: stable script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/iron-resizable-behavior/iron-resizable-behavior.js b/node_modules/@polymer/iron-resizable-behavior/iron-resizable-behavior.js index 7d53a44c..84ec2faf 100644 --- a/node_modules/@polymer/iron-resizable-behavior/iron-resizable-behavior.js +++ b/node_modules/@polymer/iron-resizable-behavior/iron-resizable-behavior.js @@ -12,6 +12,9 @@ import '@polymer/polymer/polymer-legacy.js'; import { useShadow } from '@polymer/polymer/lib/utils/settings.js'; import { dom } from '@polymer/polymer/lib/legacy/polymer.dom.js'; +// Contains all connected resizables that do not have a parent. +var ORPHANS = new Set(); + /** * `IronResizableBehavior` is a behavior that can be used in Polymer elements to * coordinate the flow of resize events between "resizers" (elements that @@ -63,6 +66,7 @@ export const IronResizableBehavior = { if (this._parentResizable) { this._parentResizable.stopResizeNotificationsFor(this); } else { + ORPHANS.delete(this); window.removeEventListener('resize', this._boundNotifyResize); } @@ -92,7 +96,17 @@ export const IronResizableBehavior = { * if the ancestor detects a request for notifications. */ assignParentResizable: function(parentResizable) { + if (this._parentResizable) { + this._parentResizable.stopResizeNotificationsFor(this); + } + this._parentResizable = parentResizable; + + if (parentResizable && + parentResizable._interestedResizables.indexOf(this) === -1) { + parentResizable._interestedResizables.push(this); + parentResizable.listen(this, 'iron-resize', '_onDescendantIronResize'); + } }, /** @@ -145,11 +159,6 @@ export const IronResizableBehavior = { return; } - if (this._interestedResizables.indexOf(target) === -1) { - this._interestedResizables.push(target); - this.listen(target, 'iron-resize', '_onDescendantIronResize'); - } - target.assignParentResizable(this); this._notifyDescendant(target); @@ -195,15 +204,44 @@ export const IronResizableBehavior = { _requestResizeNotifications(); }); } else { - this.fire( - 'iron-request-resize-notifications', - null, - {node: this, bubbles: true, cancelable: true}); + this._findParent(); if (!this._parentResizable) { + // If this resizable is an orphan, tell other orphans to try to find + // their parent again, in case it's this resizable. + ORPHANS.forEach(function(orphan) { + if (orphan !== this) { + orphan._findParent(); + } + }, this); + window.addEventListener('resize', this._boundNotifyResize); this.notifyResize(); + } else { + // If this resizable has a parent, tell other child resizables of + // that parent to try finding their parent again, in case it's this + // resizable. + this._parentResizable._interestedResizables + .forEach(function(resizable) { + if (resizable !== this) { + resizable._findParent(); + } + }, this); } } + }, + + _findParent: function() { + this.assignParentResizable(null); + this.fire( + 'iron-request-resize-notifications', + null, + {node: this, bubbles: true, cancelable: true}); + + if (!this._parentResizable) { + ORPHANS.add(this); + } else { + ORPHANS.delete(this); + } } }; diff --git a/node_modules/@polymer/iron-resizable-behavior/package.json b/node_modules/@polymer/iron-resizable-behavior/package.json index 56282779..321c9bd2 100644 --- a/node_modules/@polymer/iron-resizable-behavior/package.json +++ b/node_modules/@polymer/iron-resizable-behavior/package.json @@ -1,62 +1,30 @@ { - "_from": "@polymer/iron-resizable-behavior@^3.0.0-pre.19", - "_id": "@polymer/iron-resizable-behavior@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-lEpkbPPYtxMLW0SYTRxblHqvTus9M0VAhRTYA1ctz22vi06JrlBdE7NizA9hQwYLpaWU/vibGBJ7afaP/AM3Tg==", - "_location": "/@polymer/iron-resizable-behavior", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/iron-resizable-behavior@^3.0.0-pre.19", - "name": "@polymer/iron-resizable-behavior", - "escapedName": "@polymer%2firon-resizable-behavior", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.19", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.19" - }, - "_requiredBy": [ - "/@polymer/app-layout" - ], - "_resolved": "https://registry.npmjs.org/@polymer/iron-resizable-behavior/-/iron-resizable-behavior-3.0.0-pre.19.tgz", - "_shasum": "f36f4a11c48f07c55f4b0a77a9fb7827edf97fef", - "_spec": "@polymer/iron-resizable-behavior@^3.0.0-pre.19", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/app-layout", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/iron-resizable-behavior/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "Coordinates the flow of resizeable elements", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/iron-resizable-behavior#readme", "keywords": [ "web-components", "polymer", "iron", "behavior" ], - "license": "BSD-3-Clause", - "main": "iron-resizable-behavior.js", - "name": "@polymer/iron-resizable-behavior", "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-resizable-behavior.git" }, + "name": "@polymer/iron-resizable-behavior", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -64,9 +32,9 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "main": "iron-resizable-behavior.js", + "author": "The Polymer Authors", + "dependencies": { + "@polymer/polymer": "^3.0.0" + } } diff --git a/node_modules/@polymer/iron-resizable-behavior/test/iron-resizable-behavior.html b/node_modules/@polymer/iron-resizable-behavior/test/iron-resizable-behavior.html index 512613ac..29ee410e 100644 --- a/node_modules/@polymer/iron-resizable-behavior/test/iron-resizable-behavior.html +++ b/node_modules/@polymer/iron-resizable-behavior/test/iron-resizable-behavior.html @@ -44,40 +44,71 @@ suite('ancestor\'s iron-resize', function() { test('only fires once for a notifying shadow descendent', function() { + var initialCount = resizable.ironResizeCount; + resizable.$.childResizable1.notifyResize(); - expect(resizable.ironResizeCount).to.be.equal(2); + expect(resizable.ironResizeCount - initialCount).to.be.equal(1); }); test('only fires once when notifying descendent observables', function() { + var initialCount = resizable.ironResizeCount; + resizable.notifyResize(); - expect(resizable.ironResizeCount).to.be.equal(2); + expect(resizable.ironResizeCount - initialCount).to.be.equal(1); }); }); suite('descendant\'s iron-resize', function() { test('only fires once for a notifying shadow root', function() { + var childResizable1InitialCount = + resizable.$.childResizable1.ironResizeCount; + var childResizable2InitialCount = + resizable.$.childResizable2.ironResizeCount; + resizable.notifyResize(); - expect(resizable.$.childResizable1.ironResizeCount).to.be.equal(2); - expect(resizable.$.childResizable2.ironResizeCount).to.be.equal(2); + expect( + resizable.$.childResizable1.ironResizeCount - + childResizable1InitialCount) + .to.be.equal(1); + expect( + resizable.$.childResizable2.ironResizeCount - + childResizable2InitialCount) + .to.be.equal(1); }); test('only fires once for a notifying descendent observable', function() { + var initialCount = resizable.$.childResizable1.ironResizeCount; + resizable.$.childResizable1.notifyResize(); - expect(resizable.$.childResizable1.ironResizeCount).to.be.equal(2); + expect(resizable.$.childResizable1.ironResizeCount - initialCount) + .to.be.equal(1); }); }); suite('window\'s resize', function() { test('causes all iron-resize events to fire once', function() { + var rootInitialCount = resizable.ironResizeCount; + var childResizable1InitialCount = + resizable.$.childResizable1.ironResizeCount; + var childResizable2InitialCount = + resizable.$.childResizable2.ironResizeCount; + window.dispatchEvent(new CustomEvent('resize')); flush(); - expect(resizable.ironResizeCount).to.be.equal(2); - expect(resizable.$.childResizable1.ironResizeCount).to.be.equal(2); - expect(resizable.$.childResizable2.ironResizeCount).to.be.equal(2); + + expect(resizable.ironResizeCount - rootInitialCount).to.be.equal(1); + expect( + resizable.$.childResizable1.ironResizeCount - + childResizable1InitialCount) + .to.be.equal(1); + expect( + resizable.$.childResizable2.ironResizeCount - + childResizable2InitialCount) + .to.be.equal(1); }); }); }); diff --git a/node_modules/@polymer/iron-resizable-behavior/wct.conf.json b/node_modules/@polymer/iron-resizable-behavior/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/iron-resizable-behavior/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/iron-scroll-target-behavior/.travis.yml b/node_modules/@polymer/iron-scroll-target-behavior/.travis.yml index e0f04b83..2e3c7bad 100644 --- a/node_modules/@polymer/iron-scroll-target-behavior/.travis.yml +++ b/node_modules/@polymer/iron-scroll-target-behavior/.travis.yml @@ -1,24 +1,19 @@ language: node_js -node_js: stable +node_js: '9' addons: firefox: latest - sauce_connect: true - apt: - sources: - - google-chrome - packages: - - google-chrome-stable -before_script: - - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Project is not formatted. Please run "npm run format".'' && false)' + chrome: stable +before_script: npm install -g polymer-cli script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' env: global: - - secure: XVL/8kp3Mec8cVExKXhFaWVK/LRdxcXlqG/C9nwo+BZoVww+4yyI849mRxYui2s/Y9eOk8ymIMi/LK/p9XEkGjupag5dPDZ1m2LfwQ6RItBAftF4sMZQbJ6CoNuTTYoc1sSANMZD3NjbMXGTdShncUoYGvuF9EART6BYcmCulxFit4P9W9iY10TyEkzNpi/CHtudhbMrw0kquie7jYzeROS1Ko1z+RlqMEHc1+aVYVWKrAwONzMI8XpNYO+F2RE/5zdzxMC3gB6+KMaX6k0s971vpdMydjbkoLTOvYrL8/ah+v134hkBM90F1ilkbIm115zJCdMwHLO23WsOyOjFSQXwH/ZvzAAyGxAxAbG+dQw7xYwXVGL4S0bOuL721+frv0CtvwNGyhg7opGNiJzEMKZyRnZH0jIvznzxGJt0Z7g4YcM/E/lmFUmeIXUkmyjQ7Hi7HQiWOCBGpdQIbsLKQgOOeWM8t3bJGmO1f6Qel8fwtoO03MgAbq8H1gqchDaa/r4UHNvx8z3VYXlIUpjdbqZTuA4Jws5rOYcN0QO/LLthgs+Rc7lTDtbCS9yY54kg/OLtfyX7kKFh2apXBG5kMBf0pxfPF2CvnBzxUGff5PhcfIA0XBMjrpq2D5+40gNBwqaJrDY1Hlxj3YuDQIRkCTMimilOiu7R7rGokMdC5G0= - - secure: gT1TAwHroUpQiQC5m+Le7TAybLn6ULv9coCsXxVEinvddcwXGksJoSSh7zMrKn0uiEj+9LGhb+clUZ2fILUWYfkiIhsoNuwGF5oqAHvbsl4ACF2dBewy2F9PnBtUM9u78I7iJEDYwJoAiGmAOzSe1MShZVzgua3V8WA+A7jfI9VlczcK8Bbc5zTB+j56//Pfx7rWmaMHfs+iGRobdER7AJkywwFxGpPcWIiwtjbzBrDTOkd98hR5DuHN8R8tb7earrhXk2jax6OUrVizo0owg35LpSSUtehOap5FvnM1BHXGeJa4PIU9leXOOFNiVPyzXstDfmt4C4ZavTlS8ZPus9yLktJnEqiEXCd2wdzOX7IDqnGcVlsQqq5BdQirglv6oMrFKSZyRX3Jcex089x2RmPXB+GYbsI5Dg+P+WgbxdkcFCfxiAYStrkZDyECYuOVkCCquZ/nfilMun+FzaOjQxRF0dAorT3CCCs7pytZc5dRMMYEFjOebidacMOSBzJgHu9VFijxb45SoU6GL9/iBAwksbR/bljpBdQPJZBNwDiQz63cJ7Jug6Y3PaXd2zdL9/Uvu7215mYHQFRDjHBm+0ldCS4L9LGDyEtpipX/uQaUYCtHNWzlhmhwj/5DLCSvzRfGzz8pLix93kssb5Tc7cYD+JBLW+jb8aKewZLhBQc= + - secure: PhiGXVsHzKwcY5KiQ8iGmAX+LTPLP36CaplUCDRe+ufOsXrv1OHbTaxD0QvhATGjU4rBIS335DJRTm0ZJX8ejwLFeDSOV/qz0+7+/ic6S2A3DlGz3ggnhKBEUsncol+xJY6ReNU54jv1O3YT8iywD5mHXZksBdvFmtjC/sX4S3zxnVUTERPdJChdy5H01jE6/92DUVNnWoKaN0PUgzwWS3cx/snBAyLQ1Sx1VGdIYGcmL+GCeRX+SWoj66cujeTS3Jov6C0s7gPYenE+CUzQcCtczjlwqzWXzbqy76ZABMNohDTPJmVjbIgP4185dxnUbLUWgnRMqHnI5rxTrGu/04h7ZqVgpTE+8z4miwrT+6hIZjI7X3wd1EwRSR1BMV15CLwL7gh0MkCiyQD7nWU3VARTMoytd33CvFp+PyfG8bG/6Mbl7jN14bDJ1kq/fUmCKvAMvqelpZKU6bCWwwVW8LVJDyZjhoU7lGhD2ErlpLinwu7OzolyUGqenzQCex+iKbcYKKmXIAbiTbNF+T9BA4ni6EzV6ZIBTnwjjY/VF0VWLrELhicvnnPEbVB9713AweBpCIEzyvAKapjFwcJTgRDS+vY2mO1dn/KV97MInkfgILmwQEXPgDWHbK9avA2Ftxuq/pRkkRxIBHodeEh4F3HpxXtugwRYMYsH5XFWehw= + - secure: lsA+thgJAYaxjUsBTu9Rnm94RbjzSZhvZXAEuefe8SQdcl+TTpzkHow38ZWN6tQrvjNsndqUVYkJYZxyvmKFAeRru6QanNxVGYuVevIGnmhJVgGU4nWgIKwReJwK1HCt1oaZqaDfDsAhEreEdElI4XG3OFE0wjn9Lmke6Sv3fN6whLRXmdudrmab6Fl6UTFNLPiqMtVpMjkmBrrU2xQqyoB0Vw3EPYy9ss2ZB7bssB0kC8hVSttpYp/uPR0pMNRUaJN2Zupq1etlOfsNyUcG+gPSfoa68O8By+TgQES4tf8g16EKlKXzhixRgUsPJMaALsU8hsX4PqvE2hyv6Q7Lqb3NOjjgdyTHqkIhBZ4Hmu3HBSP28rOSG8S1PPVXrlLGlBAjc425tCBQZU3KgvfR3+ZaWH5LY/PAWMabU4JTCss/xMXP/ooCru0ifVHNrejyLlC9i7OT8Ag9gXmI2RkX/t0z0valNhmutujVrKP+xjeEZOi6Y+LEtvyur8sVntVUbUsL5tzEgrTNd8OKmeq6EHh3w4FjzEsB3pnFjOf5e+1UodMJxZT7/uUJmNvrDMX6fAXFlYxkWEe+acWxYfAHo0X2IXTzr8tSNKlKe8QfmRNnKEmHM4SCKZqI06/d1MvFJs//67RPPaI7m16TcM+D31+gWZr0Ll7weKt/f1X2wAA= dist: trusty -sudo: required +sudo: 'false' +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/iron-scroll-target-behavior/package.json b/node_modules/@polymer/iron-scroll-target-behavior/package.json index 1699e1fc..7c18202f 100644 --- a/node_modules/@polymer/iron-scroll-target-behavior/package.json +++ b/node_modules/@polymer/iron-scroll-target-behavior/package.json @@ -1,62 +1,31 @@ { - "_from": "@polymer/iron-scroll-target-behavior@^3.0.0-pre.19", - "_id": "@polymer/iron-scroll-target-behavior@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-hD/ztlrjo8aQRPey0ekJYGtE4ikysMLc0N/1vEwxlcg50LYT/BPkaepwgB598gTq02dDwGMhJr2heXusRshhzA==", - "_location": "/@polymer/iron-scroll-target-behavior", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/iron-scroll-target-behavior@^3.0.0-pre.19", - "name": "@polymer/iron-scroll-target-behavior", - "escapedName": "@polymer%2firon-scroll-target-behavior", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.19", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.19" - }, - "_requiredBy": [ - "/@polymer/app-layout" - ], - "_resolved": "https://registry.npmjs.org/@polymer/iron-scroll-target-behavior/-/iron-scroll-target-behavior-3.0.0-pre.19.tgz", - "_shasum": "4f13b0bd35257a2a4ba94419cc2f9431cd089789", - "_spec": "@polymer/iron-scroll-target-behavior@^3.0.0-pre.19", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/app-layout", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/iron-scroll-target-behavior/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "Allows to define a scroller target", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@polymer/iron-test-helpers": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/iron-scroll-target-behavior", "keywords": [ "web-components", "polymer", "scroll" ], - "license": "BSD-3-Clause", - "main": "iron-scroll-target-behavior.js", - "name": "@polymer/iron-scroll-target-behavior", "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-scroll-target-behavior.git" }, + "homepage": "https://github.com/PolymerElements/iron-scroll-target-behavior", + "name": "@polymer/iron-scroll-target-behavior", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "@polymer/iron-test-helpers": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -64,9 +33,9 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "main": "iron-scroll-target-behavior.js", + "author": "The Polymer Authors", + "dependencies": { + "@polymer/polymer": "^3.0.0" + } } diff --git a/node_modules/@polymer/iron-scroll-target-behavior/wct.conf.json b/node_modules/@polymer/iron-scroll-target-behavior/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/iron-scroll-target-behavior/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/iron-validatable-behavior/.travis.yml b/node_modules/@polymer/iron-validatable-behavior/.travis.yml index 460e6358..957ddcc5 100644 --- a/node_modules/@polymer/iron-validatable-behavior/.travis.yml +++ b/node_modules/@polymer/iron-validatable-behavior/.travis.yml @@ -1,24 +1,19 @@ language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Project is not formatted. Please run "npm run format".'' && false)' +sudo: 'false' +before_script: npm install -g polymer-cli env: global: - - secure: kwLs1FMf/hBnbxItbOJzbIdGtPDK2R2dngleJPgXLW9ExzpGHPgOmWsvxWL2BzlxlzZgzwpmUhnnJdxHlo8AZtQl1uq6NWl/e3oj9oeenFugF60eIcd01ak4QmhBsk3/20O426QQsz2WckGZRGcudBz5Zj2it3t5cbH3pAi90jo= - - secure: hGl3bsjz9dbKTA/bAgfdrFMlT6VawxFljIPqX6zJD556jhpYxtkno278eIW8uLlIGC5nXRTWXQzWrRhN8i9osnqw1RFhW8C9lH+TLHEkYMvDnEOp9sZ8Amv6j8FdNibcDP8IPTo2PmIRwBK1nFp0VqhcQu/Eq7WUFolSns9E27k= -node_js: stable + - secure: slh3FKFD5qXRSnl8dhLkZ8EuELL8XJIdVk8uIhPyFs7br8QfketmQVRV5IM3mOWqRoEOKrmN6eCNA1MIAeFg/927IcjTpUHtDELy2S89G9FnjwwRkD3Vw41JIuOJAGgbeIhJh0wdlk581/S33vrMGVrj8arxLERsnewyfhbWyoA= + - secure: l81I/Q9VpsVQFAWZqgmX1uBNxPWEjXNumZBygoM4GZu/xqNYd9UjTx67Ku1JY35v2E8YhQC5OruoZtSgjeAO0dBTsnQOKoS6dEw+/qOZewe7/oNyj8dKm8WK3b6BBNLGzwAAnqjtf1pyzKrCEP3ePKwDwfvorAJrX92R1HygtXQ= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true + chrome: stable script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/iron-validatable-behavior/package.json b/node_modules/@polymer/iron-validatable-behavior/package.json index 4ff9f001..b4be761f 100644 --- a/node_modules/@polymer/iron-validatable-behavior/package.json +++ b/node_modules/@polymer/iron-validatable-behavior/package.json @@ -1,119 +1,35 @@ { - "_from": "@polymer/iron-validatable-behavior@^3.0.0-pre.19", - "_id": "@polymer/iron-validatable-behavior@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-lUC48m8u4+eLxcGJbaIYr3HQepP1Bn9bVeEfrVa3PlUHVkqdj8xOYxtI2fBm1UxQpmxA+I0KWwbL9zqpD1ozuA==", - "_location": "/@polymer/iron-validatable-behavior", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/iron-validatable-behavior@^3.0.0-pre.19", - "name": "@polymer/iron-validatable-behavior", - "escapedName": "@polymer%2firon-validatable-behavior", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.19", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.19" - }, - "_requiredBy": [ - "/@polymer/iron-checked-element-behavior" - ], - "_resolved": "https://registry.npmjs.org/@polymer/iron-validatable-behavior/-/iron-validatable-behavior-3.0.0-pre.19.tgz", - "_shasum": "2168f83466e85a2caa329f0b9db7060d2de38a7d", - "_spec": "@polymer/iron-validatable-behavior@^3.0.0-pre.19", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/iron-checked-element-behavior", - "bugs": { - "url": "https://github.com/PolymerElements/iron-validatable-behavior/issues" - }, - "bundleDependencies": false, - "contributors": [ - { - "name": "T" - }, - { - "name": "h" - }, - { - "name": "e" - }, - {}, - { - "name": "P" - }, - { - "name": "o" - }, - { - "name": "l" - }, - { - "name": "y" - }, - { - "name": "m" - }, - { - "name": "e" - }, - { - "name": "r" - }, - {}, - { - "name": "A" - }, - { - "name": "u" - }, - { - "name": "t" - }, - { - "name": "h" - }, - { - "name": "o" - }, - { - "name": "r" - }, - { - "name": "s" - } - ], - "dependencies": { - "@polymer/iron-meta": "^3.0.0-pre.19", - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "Provides a behavior for an element that validates user input", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@polymer/iron-demo-helpers": "^3.0.0-pre.19", - "@polymer/iron-validator-behavior": "^3.0.0-pre.19", - "@polymer/paper-styles": "^3.0.0-pre.19", - "@polymer/test-fixture": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/iron-validatable-behavior", "keywords": [ "web-components", "polymer", "iron", "behavior" ], - "license": "BSD-3-Clause", - "main": "iron-validatable-behavior.js", - "name": "@polymer/iron-validatable-behavior", "repository": { "type": "git", "url": "git://github.com/PolymerElements/iron-validatable-behavior.git" }, + "homepage": "https://github.com/PolymerElements/iron-validatable-behavior", + "name": "@polymer/iron-validatable-behavior", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "@polymer/iron-demo-helpers": "^3.0.0-pre.21", + "@polymer/iron-validator-behavior": "^3.0.0-pre.21", + "@polymer/paper-styles": "^3.0.0-pre.21", + "@polymer/test-fixture": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -121,9 +37,30 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "main": "iron-validatable-behavior.js", + "contributors": [ + "T", + "h", + "e", + " ", + "P", + "o", + "l", + "y", + "m", + "e", + "r", + " ", + "A", + "u", + "t", + "h", + "o", + "r", + "s" + ], + "dependencies": { + "@polymer/iron-meta": "^3.0.0-pre.21", + "@polymer/polymer": "^3.0.0" + } } diff --git a/node_modules/@polymer/iron-validatable-behavior/wct.conf.json b/node_modules/@polymer/iron-validatable-behavior/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/iron-validatable-behavior/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/paper-behaviors/.travis.yml b/node_modules/@polymer/paper-behaviors/.travis.yml index 603d78f3..f38216fd 100644 --- a/node_modules/@polymer/paper-behaviors/.travis.yml +++ b/node_modules/@polymer/paper-behaviors/.travis.yml @@ -1,26 +1,19 @@ language: node_js -sudo: required -before_script: - - npm install -g polymer-cli@next - - sudo mv /usr/bin/google-chrome /usr/bin/google-chrome-old - - sudo mv /usr/bin/google-chrome-beta /usr/bin/google-chrome - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Project is not formatted. Please run "npm run format".'' && false)' +sudo: 'false' +before_script: npm install -g polymer-cli env: global: - - secure: TYkyKHfqK31bPGX+x388nfvBWtoGhD7lwYYLdunZi2pwvR2N3ngzblklwK/ADgYVDC0y+lZaJsrODvQW2cUxVdQP8p+DifXoOig5b8S2H7HFFFf83gaXv0SJ50rIaKLQmXfBdI0ICFzeQOeJ9TlKvtF3/yn/LDpYftuzgbXIyp4= - - secure: eUlJabqBW3P+MRieHvRcr446jhpV2YYRfZasOh3zh2vkAVsi5R5mPJXVBwk6xP4tdNPbRo0M3boKnMHjoK8AgFolxQwXpVaoOt/oiFUsBFIUNcwKnSdfnadQa6ON5VoDmPd9UhDwES/gq7i906XkV/1jwRKKhPkx1DCyCBfuTvM= -node_js: stable + - secure: Q7DqYWnSrdVLOmxyUl/WK/gLklAlX+dmBhZB2WZzWVLocR58L6TbD24Qw47G5fVwGmGbiaEHlYPEsvzcAZhHgVmepq+IpPA68clm4juq+gL8quphB9xHiGCLdkNTTdKtLyU0PkIha6WkMrQ/swODaeEqvKYQQWxY5hBSguQtCYI= + - secure: XyEmnfRSctjtugnNorCxITmncTRvB1Lxcm0vfSNgtV7Dmy/FNO3QebrqhFJXeansdl2MZ1NW5mJQfaTyotJuVIRrdVSYLfx37l3gdgqc7kMgc+/FaNy/NfptmHlJz2WhN2ZQOZ6heahEVSqg2kD1CG6A/ci3S/rZvl0Zk1y5ygQ= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-beta - sauce_connect: true + chrome: stable script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/paper-behaviors/package.json b/node_modules/@polymer/paper-behaviors/package.json index d2149d22..da0201c8 100644 --- a/node_modules/@polymer/paper-behaviors/package.json +++ b/node_modules/@polymer/paper-behaviors/package.json @@ -1,55 +1,5 @@ { - "_from": "@polymer/paper-behaviors@^3.0.0-pre.19", - "_id": "@polymer/paper-behaviors@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-j3/5AstflXixK3qCInVcREEm9Wz/Ay0/xAqzKI7Hz9FvOWhsbl64f+4FJTcdaKhXpb0dXbl5hPsqsf7cN+CQOg==", - "_location": "/@polymer/paper-behaviors", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/paper-behaviors@^3.0.0-pre.19", - "name": "@polymer/paper-behaviors", - "escapedName": "@polymer%2fpaper-behaviors", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.19", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.19" - }, - "_requiredBy": [ - "/@polymer/paper-button" - ], - "_resolved": "https://registry.npmjs.org/@polymer/paper-behaviors/-/paper-behaviors-3.0.0-pre.19.tgz", - "_shasum": "02fdf0accf86f3f3836b82e333776ca5e9eeb25a", - "_spec": "@polymer/paper-behaviors@^3.0.0-pre.19", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/paper-button", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/paper-behaviors/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/iron-behaviors": "^3.0.0-pre.19", - "@polymer/iron-checked-element-behavior": "^3.0.0-pre.19", - "@polymer/paper-ripple": "^3.0.0-pre.19", - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "Common behaviors across the paper elements", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@polymer/iron-test-helpers": "^3.0.0-pre.19", - "@polymer/paper-styles": "^3.0.0-pre.19", - "@polymer/test-fixture": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/paper-behaviors", "keywords": [ "web-components", "web-component", @@ -57,12 +7,29 @@ "paper", "behavior" ], - "license": "BSD-3-Clause", - "name": "@polymer/paper-behaviors", "repository": { "type": "git", - "url": "git://github.com/PolymerElements/paper-behaviors.git" + "url": "git://github.com/PolymerElements/paper-behaviors" }, + "homepage": "https://github.com/PolymerElements/paper-behaviors", + "name": "@polymer/paper-behaviors", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "@polymer/iron-test-helpers": "^3.0.0-pre.21", + "@polymer/paper-styles": "^3.0.0-pre.21", + "@polymer/test-fixture": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -70,9 +37,11 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "author": "The Polymer Authors", + "dependencies": { + "@polymer/iron-behaviors": "^3.0.0-pre.21", + "@polymer/iron-checked-element-behavior": "^3.0.0-pre.21", + "@polymer/paper-ripple": "^3.0.0-pre.21", + "@polymer/polymer": "^3.0.0" + } } diff --git a/node_modules/@polymer/paper-behaviors/wct.conf.json b/node_modules/@polymer/paper-behaviors/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/paper-behaviors/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/paper-button/.github/CODEOWNERS b/node_modules/@polymer/paper-button/.github/CODEOWNERS index c5097c0c..9ef9eb64 100644 --- a/node_modules/@polymer/paper-button/.github/CODEOWNERS +++ b/node_modules/@polymer/paper-button/.github/CODEOWNERS @@ -1,2 +1,2 @@ -* @valdrinkoshi +* @e111077 /.travis.yml @azakus diff --git a/node_modules/@polymer/paper-button/.travis.yml b/node_modules/@polymer/paper-button/.travis.yml index b6c7dab2..80212ce5 100644 --- a/node_modules/@polymer/paper-button/.travis.yml +++ b/node_modules/@polymer/paper-button/.travis.yml @@ -1,24 +1,19 @@ language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Project is not formatted. Please run "npm run format".'' && false)' +sudo: 'false' +before_script: npm install -g polymer-cli env: global: - - secure: YhRb8f1f4y3Rjs5wnp4sCzIcEcL07HOBoJcEp6U/KVgIIk/sBxkxMVmZsoUeABrNbKcdE6Gn6OS2K1lFq4VThKppJ0yjvESa1p0FjmQ0Nf1xCYxc46n936xj87khZy3rrTGHxwcOY5vAa5mvNzXI4BYxjmSjmqRsQwsJBsJHWVw= - - secure: eQjSTRxQKF5vyRa6yK2o+j5xWK480hHCKDh7RJQISEVhyzAaCzPZNmWf2pmaDj+ZoZZrahBcoRwOZAiVdHDaKQ+VLHbEECzV3OVV32/9DHi608BPCBdxVR2MDTtZVt3fGVhPQwCnFhwRTWtVVGx8y8HnTDMv/r4xW1OMSThPsbM= -node_js: stable + - secure: UCS5TSfKVWi6c8j/jJZPOX7JvLPxs2GiEua2lZOrgFD2U+SPk3oIToOJ3j/ItMdK2imcrHOtA369sEyYZbrUQVAu+XWX3B2xar5VK8uD12Mw57D1eq1WAQ5qKiDBQ4b0rhuYm2LX7pQhtU8YgUHrXs60GT8YXW0T+NeRieXHRas= + - secure: dX4A2hHUV0UUtwONe4JjODrq5BFS1d7z8WUZgoXsaPV+t4spnZOSMLCfruKu83MH1qIJltvZArMN0jcXUuiF2/tU0JffuwS1wqjNhp7LVfn0cAOQVx/XgS8+yzgKoHgbSRgb1dGvjPv4VJX5OdzCrH+asfBUegmK9XCvVPw5wOM= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true + chrome: stable script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/paper-button/package.json b/node_modules/@polymer/paper-button/package.json index b22b3e3d..b945ca7b 100644 --- a/node_modules/@polymer/paper-button/package.json +++ b/node_modules/@polymer/paper-button/package.json @@ -1,58 +1,5 @@ { - "_from": "@polymer/paper-button", - "_id": "@polymer/paper-button@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-bhjq3b4ExLhQaV7nbwXvUZNRx/hKRykAK9NAyJWWUb+9UJlA/ah41zIivSy+jO7/NzH7wFgXXWQGlcMWsJTnxg==", - "_location": "/@polymer/paper-button", - "_phantomChildren": {}, - "_requested": { - "type": "tag", - "registry": true, - "raw": "@polymer/paper-button", - "name": "@polymer/paper-button", - "escapedName": "@polymer%2fpaper-button", - "scope": "@polymer", - "rawSpec": "", - "saveSpec": null, - "fetchSpec": "latest" - }, - "_requiredBy": [ - "#USER", - "/" - ], - "_resolved": "https://registry.npmjs.org/@polymer/paper-button/-/paper-button-3.0.0-pre.19.tgz", - "_shasum": "4feaa4142419b737a4d2d67809a760000151632a", - "_spec": "@polymer/paper-button", - "_where": "/home/jack/Projects/MaterialDjango", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/paper-button/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/iron-flex-layout": "^3.0.0-pre.19", - "@polymer/paper-behaviors": "^3.0.0-pre.19", - "@polymer/paper-styles": "^3.0.0-pre.19", - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "Material design button", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@polymer/iron-demo-helpers": "^3.0.0-pre.19", - "@polymer/iron-icon": "^3.0.0-pre.19", - "@polymer/iron-icons": "^3.0.0-pre.19", - "@polymer/iron-test-helpers": "^3.0.0-pre.19", - "@polymer/test-fixture": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/paper-button", "keywords": [ "web-components", "web-component", @@ -60,13 +7,31 @@ "paper", "button" ], - "license": "BSD-3-Clause", - "main": "paper-button.js", - "name": "@polymer/paper-button", "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-button.git" }, + "homepage": "https://github.com/PolymerElements/paper-button", + "name": "@polymer/paper-button", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "@polymer/iron-demo-helpers": "^3.0.0-pre.21", + "@polymer/iron-icon": "^3.0.0-pre.21", + "@polymer/iron-icons": "^3.0.0-pre.21", + "@polymer/iron-test-helpers": "^3.0.0-pre.21", + "@polymer/test-fixture": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -74,9 +39,12 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "main": "paper-button.js", + "author": "The Polymer Authors", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@polymer/iron-flex-layout": "^3.0.0-pre.21", + "@polymer/paper-behaviors": "^3.0.0-pre.21", + "@polymer/paper-styles": "^3.0.0-pre.21" + } } diff --git a/node_modules/@polymer/paper-button/wct.conf.json b/node_modules/@polymer/paper-button/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/paper-button/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/paper-icon-button/.travis.yml b/node_modules/@polymer/paper-icon-button/.travis.yml index 440ab525..8d51ecf4 100644 --- a/node_modules/@polymer/paper-icon-button/.travis.yml +++ b/node_modules/@polymer/paper-icon-button/.travis.yml @@ -1,24 +1,19 @@ language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Project is not formatted. Please run "npm run format".'' && false)' +sudo: 'false' +before_script: npm install -g polymer-cli env: global: - - secure: HdHTMNdAamEtP+Nl5/mL2X7IKba4p2+ljpDSnvkA6gyoLzrWRZAyUjJxGjVRutQejTa8ZLOGXnBYKugSIMrGv8cblvngbhEmIHd2HBnPjd140KNwtsCtzPRDMdJMrvekVOXgpCkecmGq9G/j0WOoOnYY9oJrHB5dFy0y7LfPy6w= - - secure: XjZRR/HW23UneacknoaYle/dg2Diupr9p9UOWLR7w6ejvwIP99nUF0Bh4trZkUiXBBt29HOBoETwBTMizDHNg8vKe544EgR26Fq4Lwk5EuEHy3xeyroiHlwc56ZC9Obye1kdM3QjU6rzJ7F9NuRL2E0ttgZjt/OnM+vKx3kqGOY= -node_js: stable + - secure: CIQr8wSE0HF3cSoOtQ103PXKnIMkdcpiD65nFL5wSUxxU03zNbtUSmZ/cqcYxsHwZwKQh+GMYlpbgIoVvHftFrtpZ4ZD94DebjtCx4j4XDcxMzIcKieDO/uuKLu+kEhf3weEwtgZh/Qf9/7kuuOp9/Mm7FVJl1QtMFHN2Ny8QUI= + - secure: h8W6wuWG6f9sAKplgIH4NHan+nz5ixVxOYmChuvRH4tEVYUWGyK0SFI76GfUOt313/bwiQA8Tuyw4VoMrcXxvtlsf6pud+9o/nJuztQ9/SojYd2ZcbnaTv0d1Rwk0VvhSmP7388XKbQav6BbPt8OPDAQq+2Swx2fA+JfHbNco9o= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true + chrome: stable script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/paper-icon-button/package.json b/node_modules/@polymer/paper-icon-button/package.json index ce036465..9f2c6c9f 100644 --- a/node_modules/@polymer/paper-icon-button/package.json +++ b/node_modules/@polymer/paper-icon-button/package.json @@ -1,55 +1,5 @@ { - "_from": "@polymer/paper-icon-button", - "_id": "@polymer/paper-icon-button@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-BoV8vMtI1fGWKFa7dLcMJ1w6s7saEgzeOfpZDd+wtl2IrE4LSdo5C/kcMFDJz28f67ixXQUsKb/MwKPpRfaA6A==", - "_location": "/@polymer/paper-icon-button", - "_phantomChildren": {}, - "_requested": { - "type": "tag", - "registry": true, - "raw": "@polymer/paper-icon-button", - "name": "@polymer/paper-icon-button", - "escapedName": "@polymer%2fpaper-icon-button", - "scope": "@polymer", - "rawSpec": "", - "saveSpec": null, - "fetchSpec": "latest" - }, - "_requiredBy": [ - "#USER", - "/" - ], - "_resolved": "https://registry.npmjs.org/@polymer/paper-icon-button/-/paper-icon-button-3.0.0-pre.19.tgz", - "_shasum": "e478b5838363285394c3c1a3addd72d3bb1d789b", - "_spec": "@polymer/paper-icon-button", - "_where": "/home/jack/Projects/MaterialDjango", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/paper-icon-button/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/iron-icon": "^3.0.0-pre.19", - "@polymer/paper-behaviors": "^3.0.0-pre.19", - "@polymer/paper-styles": "^3.0.0-pre.19", - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "A material design icon button", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@polymer/iron-demo-helpers": "^3.0.0-pre.19", - "@polymer/iron-icons": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/paper-icon-button#readme", "keywords": [ "web-components", "polymer", @@ -57,13 +7,27 @@ "icon", "control" ], - "license": "BSD-3-Clause", - "main": "paper-icon-button.js", - "name": "@polymer/paper-icon-button", "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-icon-button.git" }, + "name": "@polymer/paper-icon-button", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "@polymer/iron-demo-helpers": "^3.0.0-pre.21", + "@polymer/iron-icons": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -71,9 +35,12 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "main": "paper-icon-button.js", + "author": "The Polymer Authors", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@polymer/iron-icon": "^3.0.0-pre.21", + "@polymer/paper-behaviors": "^3.0.0-pre.21", + "@polymer/paper-styles": "^3.0.0-pre.21" + } } diff --git a/node_modules/@polymer/paper-icon-button/wct.conf.json b/node_modules/@polymer/paper-icon-button/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/paper-icon-button/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/paper-input/.travis.yml b/node_modules/@polymer/paper-input/.travis.yml index 4dd7bdde..51c07ae8 100644 --- a/node_modules/@polymer/paper-input/.travis.yml +++ b/node_modules/@polymer/paper-input/.travis.yml @@ -1,24 +1,21 @@ language: node_js -sudo: required +sudo: 'false' before_script: - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Project is not formatted. Please run "npm run format".'' && false)' + - git checkout package-lock.json env: global: - - secure: Hg2KIEhKqOw0J8ZW2C3Pdgp5N4HD/f9jhdluH0tiYRCU4I/jf5grQuA3ohqsbqnJKV5l06gWVIDCdxBDwDEH0h8v9uUG5z/i2diiuLQc94SLQu8kWKkUPDOx+pUyXmfRKj6KnaRTotTLFrwlyuKDi9OfGjQbLZWTvmJUWoFwh4g= - - secure: U6/Hp/V0ezT/yxeP2bv4S99LSLScKEaOfYwQUbe0+v5dPbN5XZaCUS6iSbNP2K8Mtb1UQUEyL8uN6Zn+khFlJ8/KJshppJ6HJi235CykahBhh9/Cv7EapgDUoss14ntE8EKpm6Ijo4LvVyPVmhgqKk9wP5ykDFtvhoKD4C3guVU= -node_js: stable + - secure: PlKMLY9ofkSDxO7t1V0MUTiUiyyhrI6AOWVneAxpGrvyU1WDd9nCbh+e8wRvLw+4BHYNlrLUTemrnbquh7cyOV2a5ZKSAmXqkaA/4ISWIy+XD2AgLpoDl9ptl+VOSmxND4aTD5ErnueXLUMUI96v50Kj4jDYuTZsy/2q38861tk= + - secure: aV25bA3RceITQ0MOQAh20XDibw067hY5N9BmIHiNi0WN6pEmxicr0535EVZyFHmhvJL2VMCPcVr+YNaRAySCeXTDQ6Mn7uMQ7KfllIoqPEdLjlF3mTW+fhz8pOgrwUDza6FS2tVS7jXscE8CTKfU6rjOxIEnUNBn33UdMyXWotk= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true + chrome: stable script: - - polymer test --module-resolution=node --npm -l chrome -l firefox + - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/paper-input/package.json b/node_modules/@polymer/paper-input/package.json index 264d8dae..b7870a71 100644 --- a/node_modules/@polymer/paper-input/package.json +++ b/node_modules/@polymer/paper-input/package.json @@ -1,75 +1,38 @@ { - "_from": "@polymer/paper-input@next", - "_id": "@polymer/paper-input@3.0.0-pre.18", - "_inBundle": false, - "_integrity": "sha512-eUK0Okr3Im1eGWfx92IS8cYWOLvysQhsuCGo7b0g3rPlX3SfFMTngh2jQCEX64K7xyDuCtH4mjYBDru2U7UClw==", - "_location": "/@polymer/paper-input", - "_phantomChildren": {}, - "_requested": { - "type": "tag", - "registry": true, - "raw": "@polymer/paper-input@next", - "name": "@polymer/paper-input", - "escapedName": "@polymer%2fpaper-input", - "scope": "@polymer", - "rawSpec": "next", - "saveSpec": null, - "fetchSpec": "next" - }, - "_requiredBy": [ - "#USER", - "/" - ], - "_resolved": "https://registry.npmjs.org/@polymer/paper-input/-/paper-input-3.0.0-pre.18.tgz", - "_shasum": "4ce351eca588eadc2440cf914189f62443210847", - "_spec": "@polymer/paper-input@next", - "_where": "/home/jack/Projects/MaterialDjango", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/paper-input/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/iron-a11y-keys-behavior": "^3.0.0-pre.18", - "@polymer/iron-autogrow-textarea": "^3.0.0-pre.18", - "@polymer/iron-behaviors": "^3.0.0-pre.18", - "@polymer/iron-form-element-behavior": "^3.0.0-pre.18", - "@polymer/iron-input": "^3.0.0-pre.18", - "@polymer/paper-styles": "^3.0.0-pre.18", - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "Material design text fields", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.1.1", - "@polymer/iron-component-page": "^3.0.0-pre.18", - "@polymer/iron-demo-helpers": "^3.0.0-pre.18", - "@polymer/iron-flex-layout": "^3.0.0-pre.18", - "@polymer/iron-icon": "^3.0.0-pre.18", - "@polymer/iron-icons": "^3.0.0-pre.18", - "@polymer/iron-test-helpers": "^3.0.0-pre.18", - "@polymer/iron-validator-behavior": "^3.0.0-pre.18", - "@polymer/paper-icon-button": "^3.0.0-pre.18", - "@polymer/test-fixture": "^3.0.0-pre.18", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/paper-input", "keywords": [ "web-components", "polymer", "input" ], - "license": "BSD-3-Clause", - "name": "@polymer/paper-input", "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-input.git" }, + "homepage": "https://github.com/PolymerElements/paper-input", + "name": "@polymer/paper-input", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "@polymer/iron-demo-helpers": "^3.0.0-pre.21", + "@polymer/iron-flex-layout": "^3.0.0-pre.21", + "@polymer/iron-icon": "^3.0.0-pre.21", + "@polymer/iron-icons": "^3.0.0-pre.21", + "@polymer/iron-test-helpers": "^3.0.0-pre.21", + "@polymer/iron-validator-behavior": "^3.0.0-pre.21", + "@polymer/paper-icon-button": "^3.0.0-pre.21", + "@polymer/test-fixture": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -77,9 +40,14 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.18" + "author": "The Polymer Authors", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@polymer/iron-autogrow-textarea": "^3.0.0-pre.21", + "@polymer/iron-behaviors": "^3.0.0-pre.21", + "@polymer/iron-input": "^3.0.0-pre.21", + "@polymer/paper-styles": "^3.0.0-pre.21", + "@polymer/iron-a11y-keys-behavior": "^3.0.0-pre.21", + "@polymer/iron-form-element-behavior": "^3.0.0-pre.21" + } } diff --git a/node_modules/@polymer/paper-input/paper-input-addon-behavior.js b/node_modules/@polymer/paper-input/paper-input-addon-behavior.js index bf7f448f..68ebff3e 100644 --- a/node_modules/@polymer/paper-input/paper-input-addon-behavior.js +++ b/node_modules/@polymer/paper-input/paper-input-addon-behavior.js @@ -9,8 +9,6 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN */ import '@polymer/polymer/polymer-legacy.js'; -import { flush } from '@polymer/polymer/lib/legacy/polymer.dom.js'; - /** * Use `Polymer.PaperInputAddonBehavior` to implement an add-on for * ``. A add-on appears below the input, and may display @@ -20,8 +18,6 @@ import { flush } from '@polymer/polymer/lib/legacy/polymer.dom.js'; */ export const PaperInputAddonBehavior = { attached: function() { - // Workaround for https://github.com/webcomponents/shadydom/issues/96 - flush(); this.fire('addon-attached'); }, diff --git a/node_modules/@polymer/paper-input/paper-input-behavior.js b/node_modules/@polymer/paper-input/paper-input-behavior.js index 18536be8..71f91f67 100644 --- a/node_modules/@polymer/paper-input/paper-input-behavior.js +++ b/node_modules/@polymer/paper-input/paper-input-behavior.js @@ -55,6 +55,7 @@ export const PaperInputBehaviorImpl = { * implement your own paper-input-like element, bind this to * the ``'s `bindValue` * property, or the value property of your input that is `notify:true`. + * @type {*} */ value: {notify: true, type: String}, diff --git a/node_modules/@polymer/paper-input/paper-input-container.js b/node_modules/@polymer/paper-input/paper-input-container.js index 86b87480..0223afcb 100644 --- a/node_modules/@polymer/paper-input/paper-input-container.js +++ b/node_modules/@polymer/paper-input/paper-input-container.js @@ -564,7 +564,7 @@ Polymer({ // validation, just this once. if (this.__isFirstValueUpdate) { this.__isFirstValueUpdate = false; - if (input.value === undefined) { + if (input.value === undefined || input.value === '') { return; } } diff --git a/node_modules/@polymer/paper-input/paper-textarea.js b/node_modules/@polymer/paper-input/paper-textarea.js index bdd8048b..b9a83bdf 100644 --- a/node_modules/@polymer/paper-input/paper-textarea.js +++ b/node_modules/@polymer/paper-input/paper-textarea.js @@ -89,11 +89,16 @@ Polymer({ type: String, }, + value: { + // Required for the correct TypeScript type-generation + type: String, + }, + /** * The initial number of rows. * * @attribute rows - * @type number + * @type {number} * @default 1 */ rows: { @@ -106,7 +111,7 @@ Polymer({ * scrolls. 0 means no maximum. * * @attribute maxRows - * @type number + * @type {number} * @default 0 */ maxRows: { diff --git a/node_modules/@polymer/paper-input/test/paper-input.html b/node_modules/@polymer/paper-input/test/paper-input.html index 75c7c34c..8cbcb5e1 100644 --- a/node_modules/@polymer/paper-input/test/paper-input.html +++ b/node_modules/@polymer/paper-input/test/paper-input.html @@ -504,6 +504,35 @@ }); suite('validation', function() { + test('invalid input is not initially validated', function(done) { + var input = fixture('required'); + + // Mutation observer is async, so wait one tick. + Base.async(function() { + var error = getErrorDiv(input); + assert.ok(error, 'paper-input-error exists'); + assert.equal( + getComputedStyle(error).visibility, + 'hidden', + 'error is visibility:hidden'); + + // If we now validate it, the input will be red. + input.validate(); + + // Need to wait a tick to stamp the error message. + Base.async(function() { + var error = getErrorDiv(input); + assert.ok(error, 'paper-input-error exists'); + assert.notEqual( + getComputedStyle(error).visibility, + 'hidden', + 'error is not visibility:hidden'); + assert.isTrue(input.invalid, 'invalid is true'); + done(); + }, 1); + }, 1); + }); + test('invalid attribute updated after calling validate()', function(done) { var input = fixture('required-no-auto-validate'); diff --git a/node_modules/@polymer/paper-input/wct.conf.json b/node_modules/@polymer/paper-input/wct.conf.json index 1f55e2d0..bb2d5a8f 100644 --- a/node_modules/@polymer/paper-input/wct.conf.json +++ b/node_modules/@polymer/paper-input/wct.conf.json @@ -3,6 +3,7 @@ "local": { "browserOptions": { "chrome": [ + "no-sandbox", "headless", "disable-gpu" ], @@ -12,4 +13,4 @@ } } } -} +} \ No newline at end of file diff --git a/node_modules/@polymer/paper-ripple/.github/CODEOWNERS b/node_modules/@polymer/paper-ripple/.github/CODEOWNERS index c5097c0c..a70941e3 100644 --- a/node_modules/@polymer/paper-ripple/.github/CODEOWNERS +++ b/node_modules/@polymer/paper-ripple/.github/CODEOWNERS @@ -1,2 +1,2 @@ -* @valdrinkoshi +* @keanulee /.travis.yml @azakus diff --git a/node_modules/@polymer/paper-ripple/.travis.yml b/node_modules/@polymer/paper-ripple/.travis.yml index e7881528..1b56e4ba 100644 --- a/node_modules/@polymer/paper-ripple/.travis.yml +++ b/node_modules/@polymer/paper-ripple/.travis.yml @@ -1,23 +1,19 @@ language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Project is not formatted. Please run "npm run format".'' && false)' +sudo: 'false' +before_script: npm install -g polymer-cli env: global: - - secure: eLNXQngbn6nHUirBVQAroarZUJHGZAj8sqSJaxRBqaL08//nzaOpnzuavYUeNSJ1fOnbL95jS5yZJy8+oCUW0a6BCXZUHJCrj/N6ywG4KpgPYQnUZVnpvsLdXZJuq4L4l5jYL1GsPydMePfAlrDpSu+QzEc1+C0q7sprxsbHbbQ= - - secure: YLIZR4/tqr25Ty+daEdTInLVXoV/lSwagZCGMfT84SgHj94UYHr9u9Te3tNDeI8I83Kq1PSUn1kKE6ptT+EjuGhTDsyLx2IboVDtNlngDIo5GTSO1RBBzIlHRIb2eMS6om9cfLiOEWM3gFS/Mos/VYO3/A3ZSLE5BcNFagij724= -node_js: stable + - secure: ixs4mxf5tqF+qP+lrrCnu4ljhmljXKYCsJ0gZHbytdLHmtqiz//k5Tozf5iRWD9HuQ0qGoTuGwQu1MiYoMBq9OSt+LS6AR3C44/uo/+hk/yq+mjK/Ri6AYKYuA08uHR55FTUmbUijAS09vgPgGL9FsqKjANxNc1jalZ90cp15OU= + - secure: Pagn02PjGt5it84GEHLBGmaAqF7u2WsbEPrc1t3A7eYwZh82oGszrKDDqmVBxDlL7EICq5gdGDEMYC2iycvCyoQNW7LCQV12P0iqPITlGYhFCQbuocChEkzVC+m1RN3cf7z9wO3rZKf3nd/tfuWgFZh5VCfvpX0wPwrJPZcI1Lo= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable + chrome: stable script: - xvfb-run polymer test --module-resolution=node --npm - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/paper-ripple/package.json b/node_modules/@polymer/paper-ripple/package.json index 0cf1bc0c..cd71b429 100644 --- a/node_modules/@polymer/paper-ripple/package.json +++ b/node_modules/@polymer/paper-ripple/package.json @@ -1,66 +1,33 @@ { - "_from": "@polymer/paper-ripple@^3.0.0-pre.19", - "_id": "@polymer/paper-ripple@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-VpaTIVf8p39ARrUffeXv+C8xCKpM9tZdVlkYBXrvvHe1ERO995BW8i71p34yarYJccbl2SZq1qhdiNLZALqTNw==", - "_location": "/@polymer/paper-ripple", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/paper-ripple@^3.0.0-pre.19", - "name": "@polymer/paper-ripple", - "escapedName": "@polymer%2fpaper-ripple", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.19", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.19" - }, - "_requiredBy": [ - "/@polymer/paper-behaviors" - ], - "_resolved": "https://registry.npmjs.org/@polymer/paper-ripple/-/paper-ripple-3.0.0-pre.19.tgz", - "_shasum": "9e72d59d07c954a0e3de70b44a12c66a508b80ee", - "_spec": "@polymer/paper-ripple@^3.0.0-pre.19", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/paper-behaviors", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/paper-ripple/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/iron-a11y-keys-behavior": "^3.0.0-pre.19", - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "Adds a material design ripple to any container", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.1.1", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@polymer/iron-demo-helpers": "^3.0.0-pre.19", - "@polymer/iron-icon": "^3.0.0-pre.19", - "@polymer/iron-icons": "^3.0.0-pre.19", - "@polymer/iron-test-helpers": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/PolymerElements/paper-ripple#readme", "keywords": [ "web-components", "polymer", "ripple" ], - "license": "BSD-3-Clause", - "main": "paper-ripple.js", - "name": "@polymer/paper-ripple", "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-ripple.git" }, + "name": "@polymer/paper-ripple", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "@polymer/iron-icon": "^3.0.0-pre.21", + "@polymer/iron-icons": "^3.0.0-pre.21", + "@polymer/iron-test-helpers": "^3.0.0-pre.21", + "@polymer/iron-demo-helpers": "^3.0.0-pre.21", + "wct-browser-legacy": "^1.0.1", + "@webcomponents/webcomponentsjs": "^2.0.0" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -68,9 +35,10 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "main": "paper-ripple.js", + "author": "The Polymer Authors", + "dependencies": { + "@polymer/iron-a11y-keys-behavior": "^3.0.0-pre.21", + "@polymer/polymer": "^3.0.0" + } } diff --git a/node_modules/@polymer/paper-ripple/wct.conf.json b/node_modules/@polymer/paper-ripple/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/paper-ripple/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/paper-styles/.travis.yml b/node_modules/@polymer/paper-styles/.travis.yml index 42bb982c..87bc572f 100644 --- a/node_modules/@polymer/paper-styles/.travis.yml +++ b/node_modules/@polymer/paper-styles/.travis.yml @@ -1,26 +1,19 @@ language: node_js -sudo: required -before_script: - - npm install -g polymer-cli@next - - sudo mv /usr/bin/google-chrome /usr/bin/google-chrome-old - - sudo mv /usr/bin/google-chrome-beta /usr/bin/google-chrome - - 'npm run update-types && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run update-types".'' && false)' - - 'npm run format && git diff --exit-code || (echo -e ''\n\033[31mERROR:\033[0m Project is not formatted. Please run "npm run format".'' && false)' +sudo: 'false' +before_script: npm install -g polymer-cli env: global: - - secure: n1GTikMyHiZ8pFwPNIo2E26rcJ4qsXsWgoN9QvuhKEOikqZD9XHyLb4tuy1IkFgeAldnbSmX+erfjgM8ZQyrpJD52WjTFV/HFJiEmrMly23HQEPueQ8xykYWIusEOfOjEHyVH4EKM+lidQIw7Ac7BLBPNWxOb85DAeeCorVPN20= - - secure: X2osrH6z2xoMz1AHz3vsU4LXqZqMZggUfGDLNUZLeXzY7jwearGdRGSdXS+UFvnZ5a1s7QlWQcbOHfbZm9wVfjHRSFkl3nccVZiTz0PQ+hYoDyAPC6f4L6rC+1IabE3B/fbNbjYePfJMKI/Pwuxl8xeS+ZzIGrNWjkPlFV4MZR4= -node_js: stable + - secure: qq1hIYlSF0NJnCyGVYaGC/6oaTgirVHsip+EButDUn5KW4rA2OLDYrCzaQ6p7mKHZEOWx+LNA7rGw0O/peaL3y1xXlwS+w2AF/AiCa//OIgqBdjhS7TycL9FVGEHtTmZ05ilR/nWOHAMNCOHnGaTTGvoktjx3c/B/p2XqT8vJ1E= + - secure: kz55kbiwQHILHG/T8G3oLBRcWs0qEQa8hMj9ShyykEGraQj2RXHpvupHSz2V3OmG7x+jlqSdgcFF7iVty/Qq7iybPEGMxHNbgBtLeqt1zPSTRdgdC7hcpcWovulPjonlfNnM1rQBITKggpYj0i5qWOpuS6cmzDxZRXAyfZYcNYI= +node_js: '9' addons: firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-beta - sauce_connect: true + chrome: stable script: - - true || xvfb-run polymer test --module-resolution=node --npm - - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then true || polymer test --module-resolution=node --npm -s ''default''; fi' + - xvfb-run polymer test --module-resolution=node --npm + - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test --module-resolution=node --npm -s ''default''; fi' dist: trusty +cache: + directories: + - node_modules diff --git a/node_modules/@polymer/paper-styles/manifest.json b/node_modules/@polymer/paper-styles/manifest.json index 341039c5..6c853d4c 100644 --- a/node_modules/@polymer/paper-styles/manifest.json +++ b/node_modules/@polymer/paper-styles/manifest.json @@ -55,6 +55,10 @@ "element-styles/paper-item-styles.html": { "convertedUrl": "element-styles/paper-item-styles.js", "exports": {} + }, + "test/index.html": { + "convertedUrl": "test/index.html", + "exports": {} } } } diff --git a/node_modules/@polymer/paper-styles/package.json b/node_modules/@polymer/paper-styles/package.json index b36ea5ab..2021e1cf 100644 --- a/node_modules/@polymer/paper-styles/package.json +++ b/node_modules/@polymer/paper-styles/package.json @@ -1,63 +1,31 @@ { - "_from": "@polymer/paper-styles@^3.0.0-pre.19", - "_id": "@polymer/paper-styles@3.0.0-pre.19", - "_inBundle": false, - "_integrity": "sha512-ASspmHr6GJjDiPxOVsqR2mFSQim13nGy03iLeyBXxX9QQa1rXI6r16/HShBvg8MrncQSRRUHqkFCfRWO3CKpwA==", - "_location": "/@polymer/paper-styles", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@polymer/paper-styles@^3.0.0-pre.19", - "name": "@polymer/paper-styles", - "escapedName": "@polymer%2fpaper-styles", - "scope": "@polymer", - "rawSpec": "^3.0.0-pre.19", - "saveSpec": null, - "fetchSpec": "^3.0.0-pre.19" - }, - "_requiredBy": [ - "/@polymer/paper-button" - ], - "_resolved": "https://registry.npmjs.org/@polymer/paper-styles/-/paper-styles-3.0.0-pre.19.tgz", - "_shasum": "72ba066b0de9153d835639ebe63ce2afbe5425b0", - "_spec": "@polymer/paper-styles@^3.0.0-pre.19", - "_where": "/home/jack/Projects/MaterialDjango/node_modules/@polymer/paper-button", - "author": { - "name": "The Polymer Authors" - }, - "bugs": { - "url": "https://github.com/PolymerElements/paper-styles/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@polymer/font-roboto": "^3.0.0-pre.19", - "@polymer/iron-flex-layout": "^3.0.0-pre.19", - "@polymer/polymer": "^3.0.0" - }, - "deprecated": false, "description": "Common (global) styles for Material Design elements.", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.1.1", - "@polymer/iron-component-page": "^3.0.0-pre.19", - "@polymer/iron-demo-helpers": "^3.0.0-pre.19", - "@webcomponents/webcomponentsjs": "^2.0.0", - "bower": "^1.8.0", - "wct-browser-legacy": "^0.0.1-pre.11", - "webmat": "^0.2.0" - }, - "homepage": "https://github.com/polymerelements/paper-styles/", "keywords": [ "web-component", "polymer", "style" ], - "license": "BSD-3-Clause", - "name": "@polymer/paper-styles", "repository": { "type": "git", "url": "git://github.com/PolymerElements/paper-styles.git" }, + "homepage": "https://github.com/polymerelements/paper-styles/", + "name": "@polymer/paper-styles", + "license": "BSD-3-Clause", + "devDependencies": { + "@polymer/gen-typescript-declarations": "^1.2.2", + "bower": "^1.8.0", + "webmat": "^0.2.0", + "@polymer/iron-component-page": "^3.0.0-pre.21", + "@polymer/iron-demo-helpers": "^3.0.0-pre.21", + "@webcomponents/webcomponentsjs": "^2.0.0", + "wct-browser-legacy": "^1.0.1" + }, + "scripts": { + "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", + "format": "webmat && npm run update-types" + }, + "version": "3.0.0-pre.21", "resolutions": { "inherits": "2.0.3", "samsam": "1.1.3", @@ -65,9 +33,10 @@ "type-detect": "1.0.0", "@webcomponents/webcomponentsjs": "2.0.0-beta.2" }, - "scripts": { - "format": "webmat && npm run update-types", - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - }, - "version": "3.0.0-pre.19" + "author": "The Polymer Authors", + "dependencies": { + "@polymer/iron-flex-layout": "^3.0.0-pre.21", + "@polymer/font-roboto": "^3.0.0-pre.21", + "@polymer/polymer": "^3.0.0" + } } diff --git a/node_modules/@polymer/paper-styles/test/index.html b/node_modules/@polymer/paper-styles/test/index.html new file mode 100644 index 00000000..fe79e36c --- /dev/null +++ b/node_modules/@polymer/paper-styles/test/index.html @@ -0,0 +1,23 @@ + + + + + + + paper-styles tests + + + + + + diff --git a/node_modules/@polymer/paper-styles/wct.conf.json b/node_modules/@polymer/paper-styles/wct.conf.json new file mode 100644 index 00000000..bb2d5a8f --- /dev/null +++ b/node_modules/@polymer/paper-styles/wct.conf.json @@ -0,0 +1,16 @@ +{ + "plugins": { + "local": { + "browserOptions": { + "chrome": [ + "no-sandbox", + "headless", + "disable-gpu" + ], + "firefox": [ + "-headless" + ] + } + } + } +} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/.eslintrc.json b/node_modules/@polymer/polymer/.eslintrc.json deleted file mode 100644 index 77b19fd8..00000000 --- a/node_modules/@polymer/polymer/.eslintrc.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "extends": "eslint:recommended", - "parser": "babel-eslint", - "parserOptions": { - "ecmaVersion": 6, - "sourceType": "module" - }, - "rules": { - "no-console": "off", - "no-var": "error", - "semi": "error", - "strict": "error", - "valid-jsdoc": ["error", { - "requireReturn": false, - "prefer": { - "arg": "param", - "argument": "param", - "returns": "return" - }, - "preferType": { - "Boolean": "boolean", - "Number": "number", - "String": "string", - "object": "Object", - "array": "Array" - } - }], - "no-useless-escape": "off" - }, - "env": { - "browser": true, - "es6": true - }, - "plugins": [ - "html" - ], - "globals": { - "customElements": true, - "HTMLImports": true, - "Polymer": true, - "ShadyDOM": true, - "ShadyCSS": true, - "JSCompiler_renameProperty": true - } -} diff --git a/node_modules/@polymer/polymer/.gitattributes b/node_modules/@polymer/polymer/.gitattributes deleted file mode 100644 index 176a458f..00000000 --- a/node_modules/@polymer/polymer/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -* text=auto diff --git a/node_modules/@polymer/polymer/.github/CODEOWNERS b/node_modules/@polymer/polymer/.github/CODEOWNERS deleted file mode 100644 index 4046195b..00000000 --- a/node_modules/@polymer/polymer/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -# Code owners for Polymer -* @sorvell @kevinpschaaf @TimvdLippe @azakus \ No newline at end of file diff --git a/node_modules/@polymer/polymer/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index ffe1bc46..00000000 --- a/node_modules/@polymer/polymer/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,50 +0,0 @@ - - -### Description - - -#### Live Demo - -https://jsbin.com/luhaxab/edit - -https://glitch.com/edit/#!/polymer-repro?path=my-element.html:2:0 - - -#### Steps to Reproduce - - - -#### Expected Results - - -#### Actual Results - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Edge -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] IE 11 - -### Versions - -- Polymer: vX.X.X -- webcomponents: vX.X.X diff --git a/node_modules/@polymer/polymer/.github/PULL_REQUEST_TEMPLATE.md b/node_modules/@polymer/polymer/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 94d43316..00000000 --- a/node_modules/@polymer/polymer/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,3 +0,0 @@ - -### Reference Issue - diff --git a/node_modules/@polymer/polymer/.travis.yml b/node_modules/@polymer/polymer/.travis.yml deleted file mode 100644 index 7c7acc8f..00000000 --- a/node_modules/@polymer/polymer/.travis.yml +++ /dev/null @@ -1,26 +0,0 @@ -language: node_js -sudo: false -dist: trusty -node_js: '9' -addons: - firefox: latest - chrome: stable -cache: - directories: - - node_modules -before_script: -- npm install -g gulp-cli@1 -- gulp lint-eslint -# TODO(dfreedm): re-enable after making update-types work -#- >- -# npm run update-types && git diff --exit-code || (echo -e -# '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run -# update-types".' && false) -script: -- node ./node_modules/.bin/polymer test --npm --module-resolution=node -l chrome -- node ./node_modules/.bin/polymer test --npm --module-resolution=node -l firefox -- if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then travis_wait 30 ./util/travis-sauce-test.sh; fi -env: - global: - - secure: bfF/o1ewpOxDNqTzWfvlwgRgGfP8OXhSQLLdEwZ6izO9tckMJuSNghk3qBXCEQJwTcUEyXP6EqfzIrRAvDXPa0H3OoinbrooDyV2wIDaVRK++WR2iZIqzqo3hGOdzm4tdrGJZe5av5Rk661Hls8aPfLbjdzcGuYXi8B4wZq2xMI= - - secure: jBrKtQBdoL2dsXi9BQpw5tMkYZOsQAy2iSB+0xPOxhPI8EbXKnm8OhWQDEJ5TdduLWUxLLc12IJwjBy9ocLlC1ZvzgOXNfqOUkLD03qSPnyT/LomTXeP4XuojUAemc/w1MHd61nFz4YJaO8cQ+yfy6GOX2susabW+Y80mnIeGJk= diff --git a/node_modules/@polymer/polymer/.vscode/launch.json b/node_modules/@polymer/polymer/.vscode/launch.json deleted file mode 100644 index 194b324d..00000000 --- a/node_modules/@polymer/polymer/.vscode/launch.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - // Use IntelliSense to learn about possible Node.js debug attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "node", - "request": "launch", - "name": "Launch Chrome Tests", - "program": "${workspaceFolder}/node_modules/.bin/wct", - "args": [ - "-l", - "chrome" - ] - }, - { - "type": "node", - "request": "launch", - "name": "closure", - "program": "${workspaceRoot}/node_modules/gulp/bin/gulp.js", - "args": [ - "closure" - ] - } - ] -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/CHANGELOG.md b/node_modules/@polymer/polymer/CHANGELOG.md index fb53b5aa..c6b325d8 100644 --- a/node_modules/@polymer/polymer/CHANGELOG.md +++ b/node_modules/@polymer/polymer/CHANGELOG.md @@ -1,5 +1,88 @@ # Change Log +## [v3.0.4](https://github.com/Polymer/polymer/tree/v3.0.4) (2018-07-30) +- Ensure generated interfaces.d.ts is included in npm package ([commit](https://github.com/Polymer/polymer/commit/003b0518)) + +- [ci skip] update changelog ([commit](https://github.com/Polymer/polymer/commit/028a718c)) + +## [v3.0.3](https://github.com/Polymer/polymer/tree/v3.0.3) (2018-07-30) +- rebuild package-lock ([commit](https://github.com/Polymer/polymer/commit/95bbefd0)) + +- Generate typings for Polymer 3. ([commit](https://github.com/Polymer/polymer/commit/536030ac)) + +- Revert Promise changes. ([commit](https://github.com/Polymer/polymer/commit/ac6011e0)) + +- Lint fixes. ([commit](https://github.com/Polymer/polymer/commit/73ae8b4d)) + +- Restore some externs. ([commit](https://github.com/Polymer/polymer/commit/8b1e7934)) + +- Upstream a bunch of g3 changes. ([commit](https://github.com/Polymer/polymer/commit/3b817192)) + +- Add no-unused-vars eslint suppressions. ([commit](https://github.com/Polymer/polymer/commit/745883ea)) + +- Annotate another two ephemeral classes. ([commit](https://github.com/Polymer/polymer/commit/c96b4502)) + +- Mark some ephemeral super classes as private. ([commit](https://github.com/Polymer/polymer/commit/8728287f)) + +- Annotate Node parameter as not null. ([commit](https://github.com/Polymer/polymer/commit/642f94f8)) + +- Annotate some internal classes as private. ([commit](https://github.com/Polymer/polymer/commit/fa58519c)) + +- Fix some appliesMixin annotations still with Polymer namespace. ([commit](https://github.com/Polymer/polymer/commit/a0a6c6b9)) + +- TypeScript generator config and extra interfaces for Polymer 3. ([commit](https://github.com/Polymer/polymer/commit/3ac7eed2)) + +- Tweaks to make Polymer 3 more amenable to typings generation. ([commit](https://github.com/Polymer/polymer/commit/605c8912)) + +- Fix gulp 4 issues ([commit](https://github.com/Polymer/polymer/commit/4f0337a5)) + +- Extend Safari exceptions beyond 10.1 ([commit](https://github.com/Polymer/polymer/commit/a78732ff)) + +- Ignore shady CSS scoping in getComposedHTML ([commit](https://github.com/Polymer/polymer/commit/b1aa3058)) + +- Fix method to force CE polyfill on in 3.x ([commit](https://github.com/Polymer/polymer/commit/84455c9c)) + +- Convert object to class for better compilation ([commit](https://github.com/Polymer/polymer/commit/b2681170)) + +- Fix Typo in Readme (#5260) ([commit](https://github.com/Polymer/polymer/commit/665901ab)) + +- regen package-lock.json ([commit](https://github.com/Polymer/polymer/commit/a7152dd5)) + +- Update supported browsers in issue template ([commit](https://github.com/Polymer/polymer/commit/1bd28098)) + +- Remove modulized comment ([commit](https://github.com/Polymer/polymer/commit/07f26b26)) + +- Update package.lock ([commit](https://github.com/Polymer/polymer/commit/1e1709cc)) + +- Fix typo in jsdoc (#5248) ([commit](https://github.com/Polymer/polymer/commit/218189e2)) + +- Replace .npmignore with package.json "files" option. (#5245) ([commit](https://github.com/Polymer/polymer/commit/eb84ea04)) + +- Spelling ([commit](https://github.com/Polymer/polymer/commit/2eade585)) + +- Update template docs (#5233) ([commit](https://github.com/Polymer/polymer/commit/31e5d058)) + +- fix lint ([commit](https://github.com/Polymer/polymer/commit/44e725b8)) + +- Port disabled fixes from 2.x ([commit](https://github.com/Polymer/polymer/commit/358a1c67)) + +- Update repo URL ([commit](https://github.com/Polymer/polymer/commit/cdb34fc8)) + +- Add badges ([commit](https://github.com/Polymer/polymer/commit/41d69801)) + +- Update development instructions for 3.0 (#5226) ([commit](https://github.com/Polymer/polymer/commit/83ab5a14)) + +- [ci skip] update changelog ([commit](https://github.com/Polymer/polymer/commit/e366b368)) + +- Closure extern update ([commit](https://github.com/Polymer/polymer/commit/3c23d673)) + +- Add user-importable files to `bower.json`'s `main` field for modulizer. ([commit](https://github.com/Polymer/polymer/commit/40e312f8)) + +## [v3.0.2](https://github.com/Polymer/polymer/tree/v3.0.2) (2018-05-09) +- Add back modulizer manifest ([commit](https://github.com/Polymer/polymer/commit/d32797e9)) + +- [ci skip] update changelog ([commit](https://github.com/Polymer/polymer/commit/4794b323)) + ## [v3.0.1](https://github.com/Polymer/polymer/tree/v3.0.1) (2018-05-09) - [ci skip] update changelog ([commit](https://github.com/Polymer/polymer/commit/3a4b8b89)) diff --git a/node_modules/@polymer/polymer/CONTRIBUTING.md b/node_modules/@polymer/polymer/CONTRIBUTING.md deleted file mode 100644 index 8342c0d2..00000000 --- a/node_modules/@polymer/polymer/CONTRIBUTING.md +++ /dev/null @@ -1,162 +0,0 @@ -# Contributing to Polymer - -There are many ways to contribute to the Polymer project! We welcome and truly appreciate contribution in all forms - issues and pull requests to the [main library](https://github.com/polymer/polymer), issues and pull requests to the [elements the Polymer team maintains](https://github.com/polymerelements), issues and pull requests to one of our many [Polymer-related tools](https://github.com/polymer), and of course we love to hear about any Polymer elements that you build to share with the community! - -## Logistics - -### Communicating with the Polymer team - -Beyond GitHub, we try to have a variety of different lines of communication open: - -* [Blog](https://blog.polymer-project.org/) -* [Twitter](https://twitter.com/polymer) -* [Google+ Community](https://plus.sandbox.google.com/u/0/communities/115626364525706131031?cfem=1) -* [Mailing list](https://groups.google.com/forum/#!forum/polymer-dev) -* [Slack channel](https://bit.ly/polymerslack) - -### The Polymer Repositories - -Because of the component-based nature of the Polymer project, we tend to have lots of different repositories. Our main repository for the Polymer library itself is at [github.com/Polymer/polymer](https://github.com/polymer/polymer). File any issues or pull requests that have to do with the core library on that repository, and we'll take a look ASAP. - -We keep all of the element "product lines" that the Polymer team maintains and distributes in the [PolymerElements](https://github.com/polymerelements) organization. For any element-specific issues or pull requests, file directly on the element's repository, such as the `paper-button` repository at [github.com/polymerelements/paper-button](https://github.com/polymerelements/paper-button). Of course, the elements built by the Polymer team are just a tiny fraction of all the Polymer-based elements out there - catalogs of other web components include [https://www.webcomponents.org/](https://github.com/webcomponents/webcomponents.org) and [component.kitchen](https://component.kitchen). - -The GoogleWebComponents element product line is maintained by teams all across Google, and so is kept in a separate organization: the [GoogleWebComponents](https://github.com/googlewebcomponents) org. Feel free to file issues and PR's on those elements directly in that organization. - -We also track each element product line overall in "meta-repos", named as `$PRODUCTLINE-elements`. These include [paper-elements](https://github.com/polymerelements/paper-elements), [iron-elements](https://github.com/polymerelements/iron-elements), [gold-elements](https://github.com/polymerelements/gold-elements), and more. Feel free to file issues for element requests on those meta-repos, and the README in each repo tracks a roadmap for the product line. - -### Contributor License Agreement - -You might notice our friendly CLA-bot commenting on a pull request you open if you haven't yet signed our CLA. We use the same CLA for all open-source Google projects, so you only have to sign it once. Once you complete the CLA, all your pull-requests will automatically get the `cla: yes` tag. - -If you've already signed a CLA but are still getting bothered by the awfully insistent CLA bot, it's possible we don't have your GitHub username or you're using a different email address. Check the [information on your CLA](https://cla.developers.google.com/clas) or see this help article on [setting the email on your git commits](https://help.github.com/articles/setting-your-email-in-git/). - -[Complete the CLA](https://cla.developers.google.com/clas) - -## Contributing - -### Filing bugs - -The Polymer team heavily uses (and loves!) GitHub for all of our software management. We use GitHub issues to track all bugs and features. - -If you find an issue, please do file it on the repository. The [Polymer/polymer issues](https://github.com/polymer/polymer/issues) should be used only for issues on the Polymer library itself - bugs somewhere in the core codebase. - -For issues with elements the team maintains, please file directly on the element's repository. If you're not sure if a bug stems from the element or the library, air toward filing it on the element and we'll move the issue if necessary. - -Please file issues using the issue template provided, filling out as many fields as possible. We love examples for addressing issues - issues with a jsBin, Plunkr, jsFiddle, or glitch.me repro will be much easier for us to work on quickly. You can start with [this jsbin](http://jsbin.com/luhaxab/edit) which sets up the basics to demonstrate a Polymer element. If you need your repro to run in IE11, you can start from [this glitch](https://glitch.com/edit/#!/polymer-repro?path=my-element.html:2:0), which serves the source via polyserve for automatic transpilation, although you must sign up for a glitch.me account to ensure your code persists for more than 5 days (note the glitch.me _editing environment_ is not compatible with IE11, however the "live" view link of the running code should work). - -Occasionally we'll close issues if they appear stale or are too vague - please don't take this personally! Please feel free to re-open issues we've closed if there's something we've missed and they still need to be addressed. - -### Contributing Pull Requests - -PR's are even better than issues. We gladly accept community pull requests. In general across the core library and all of the elements, there are a few necessary steps before we can accept a pull request: - -- Open an issue describing the problem that you are looking to solve in your PR (if one is not already open), and your approach to solving it. This makes it easier to have a conversation around the best general approach for solving your problem, outside of the code itself. -- Sign the [CLA](https://cla.developers.google.com/clas), as described above. -- Fork the repo you're making the fix on to your own GitHub account. -- Code! -- Ideally, squash your commits into a single commit with a clear message of what the PR does. If it absolutely makes sense to keep multiple commits, that's OK - or perhaps consider making two separate PR's. -- **Include tests that test the range of behavior that changes with your PR.** If you PR fixes a bug, make sure your tests capture that bug. If your PR adds new behavior, make sure that behavior is fully tested. Every PR *must* include associated tests. (See [Unit tests](#unit-tests) for more.) -- Submit your PR, making sure it references the issue you created. -- If your PR fixes a bug, make sure the issue includes clear steps to reproduce the bug so we can test your fix. - -If you've completed all of these steps the core team will do its best to respond to the PR as soon as possible. - -#### Contributing Code to Elements - -Though the aim of the Polymer library is to allow lots of flexibility and not get in your way, we work to standardize our elements to make them as toolable and easy to maintain as possible. - -All elements should follow the [Polymer element style guide](http://polymerelements.github.io/style-guide/), which defines how to specify properties, documentation, and more. It's a great guide to follow when building your own elements as well, for maximum standardization and toolability. For instance, structuring elements following the style guide will ensure that they work with the [`iron-component-page`](https://github.com/polymerelements/iron-component-page) element, an incredibly easy way to turn any raw element directly into a documentation page. - -#### Contributing Code to the Polymer library - -We follow the most common javascript and HTML style guidelines for how we structure our code - in general, look at the code and you'll know how to contribute! If you'd like a bit more structure, the [Google JavaScript Styleguide](https://google.github.io/styleguide/javascriptguide.xml) is a good place to start. - -Polymer also participates in Google's [Patch Rewards Program](https://www.google.com/about/appsecurity/patch-rewards/), where you can earn cold, hard cash for qualifying security patches to the Polymer library. Visit the [patch rewards page](https://www.google.com/about/appsecurity/patch-rewards/) to find out more. - -## Unit tests - -All Polymer projects use [`web-component-tester`](https://github.com/Polymer/web-component-tester) for unit tests. -The [`polyserve`](https://github.com/PolymerLabs/polyserve) utility is helpful for running tests in the browser. - -For maximum flexibility, install `web-component-tester` and `polyserve` locally: - - npm install -g polyserve web-component-tester - -### Running the Polymer library unit tests - -To run the Polymer library unit tests: - -1. Clone the [Polymer repo](https://github.com/polymer/polymer). - -2. Install the dependencies: - - npm install && bower install - -3. Run the tests: - - npm test - - Or if you have `web-component-tester` installed locally: - - wct - -To run individual test suites: - -npm test path/to/suite - -Or: - -wct path/to/suite - -For example: - - npm test test/unit/template.html - -You can also run tests in the browser: - - polyserve - -Navigate to: - -[`http://localhost:8080/components/polymer/test/runner.html`](http://localhost:8080/components/polymer/test/runner.html) - -### Running Polymer element unit tests - -To run the element unit tests, you need a global install of `web-component-tester` or `polyserve` (or both). - -1. Clone the element repo. - -1. Install the dependencies. - - bower install - -1. Run the tests: - - wct - - Or run the tests in a browser: - - polyserve - - Navigate to: - - http://localhost:8080/components/element-name/test/runner.html - -### Configuring `web-component-tester` - -By default, `web-component-tester` runs tests on all installed browsers. You can configure it -to run tests on a subset of available browsers, or to run tests remotely using Sauce Labs. - -See the [`web-component-tester` README](https://github.com/Polymer/web-component-tester) for -information on configuring the tool. - -### Viewing the source documentation locally - -You can view the updates you make to the source documentation locally with the following steps. -Make sure to rerun step 1 after every change you make. - -1. Run `polymer analyze > analysis.json` - -1. Run `polymer serve` - -1. Open `http://127.0.0.1:PORT/components/polymer/` to view the documentation diff --git a/node_modules/@polymer/polymer/README.md b/node_modules/@polymer/polymer/README.md index 38d9123e..58a54a8a 100644 --- a/node_modules/@polymer/polymer/README.md +++ b/node_modules/@polymer/polymer/README.md @@ -1,14 +1,16 @@ # Polymer [![Build Status](https://travis-ci.org/Polymer/polymer.svg?branch=master)](https://travis-ci.org/Polymer/polymer) +[![Published on npm](https://img.shields.io/npm/v/@polymer/polymer.svg)](https://www.npmjs.com/package/@polymer/polymer) +[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/@polymer/polymer) -> ℹ️ Note: This is the current stable version of the Polymer library. At Google I/O 2018 we announced a new Web Component base class, [`LitElement`](https://github.com/PolymerLabs/lit-element), as a successor to the `PolymerElement` base class in this library. +> ℹ️ Note: This is the current stable version of the Polymer library. At Google I/O 2018 we announced a new Web Component base class, [`LitElement`](https://github.com/Polymer/lit-element), as a successor to the `PolymerElement` base class in this library. > > If you're starting a new project, we recommend that you consider using LitElement instead. > > If you have a project you've built with an earlier version of the Polymer library, we recommend that you [migrate](#about-polymer-30) to 3.0 for best compatibility with the JavaScript ecosystem. Thanks to the interoperability of Web Components, elements built with Polymer 3.0 and LitElement can be mixed and matched in the same app, so once you have updated your project to Polymer 3.0, you can migrate to LitElement incrementally, one element at a time. See our blog post on the [Polymer Project roadmap](https://www.polymer-project.org/blog/2018-05-02-roadmap-update.html) for more information. -Polymer lets you build encapsulated, reusable [Web Components](https://www.webcomponents.org/introduction) that work just like standard HTML elements, to use in building web applications. Using a Web Commponent built with Polymer is as simple as importing its definition then using it like any other HTML element: +Polymer lets you build encapsulated, reusable [Web Components](https://www.webcomponents.org/introduction) that work just like standard HTML elements, to use in building web applications. Using a Web Component built with Polymer is as simple as importing its definition then using it like any other HTML element: ```html @@ -32,7 +34,7 @@ Web Components are now implemented natively on Safari and Chrome (~70% of instal * You can also save [this HTML file](https://gist.githubusercontent.com/kevinpschaaf/8a5acbea7b25d2bb5e82eeea2b105669/raw/c3a86872f07603e2d0ddae736687e52a5c8c499f/index.html) to a local file and run it in any browser that supports [JavaScript Modules]((https://caniuse.com/#search=modules)). * When you're ready to use Polymer in a project, install it via [npm](https://www.npmjs.com/). To run the project in the browser, - a module-compatible toolchain is required. We recommend installing the [Polymer CLI](https://github.com/Polymer/polymer-cli) to and using its development server as follows. + a module-compatible toolchain is required. We recommend installing the [Polymer CLI](https://github.com/Polymer/tools/tree/master/packages/cli) to and using its development server as follows. 1. Add Polymer to your project: @@ -42,11 +44,11 @@ Web Components are now implemented natively on Safari and Chrome (~70% of instal 1. Install the Polymer CLI: - ```npm i -g polymer-cli@next``` + ```npm i -g polymer-cli``` 1. Run the development server and open a browser pointing to its URL: - ```polymer serve``` + ```polymer serve --npm``` > Polymer 3.0 is published on [npm](https://www.npmjs.com/package/@polymer/polymer) using JavaScript Modules. This means it can take advantage of the standard native JavaScript module loader available in all current major browsers. diff --git a/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/.bower.json b/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/.bower.json deleted file mode 100644 index 9b7493c3..00000000 --- a/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/.bower.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "accessibility-developer-tools", - "version": "2.12.0", - "homepage": "https://github.com/GoogleChrome/accessibility-developer-tools", - "authors": [ - "Google" - ], - "description": "This is a library of accessibility-related testing and utility code.", - "main": "dist/js/axs_testing.js", - "moduleType": [ - "amd", - "globals" - ], - "keywords": [ - "accessibility", - "testing", - "WCAG", - "module" - ], - "license": "Apache-2.0", - "ignore": [ - "**/.*", - "lib", - "scripts", - "src", - "test", - "tools", - "Gruntfile.js", - "package.json" - ], - "_release": "2.12.0", - "_resolution": { - "type": "version", - "tag": "v2.12.0", - "commit": "3616c094e090174f70b53ca4cea25529522abffb" - }, - "_source": "https://github.com/GoogleChrome/accessibility-developer-tools.git", - "_target": "^2.10.0", - "_originalSource": "accessibility-developer-tools" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/Changelog.md b/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/Changelog.md deleted file mode 100644 index e587f7ea..00000000 --- a/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/Changelog.md +++ /dev/null @@ -1,154 +0,0 @@ -## 2.11.0 - 2016-09-14 - -### Enhancements - -* Performance enhancements (#263) - -## 2.10.1-rc.0 - 2016-01-13 - -### Bug fixes: - -* Escape special characters to be used in a query selector string (PR #267) -* Fix exception thrown by RoleTooltipRequiresDescribedBy.js (#269) - -## 2.10.0 - 2015-11-13 - -## 2.10.0-rc.1 - 2015-10-19 - -### Bug fixes: - -* `linkWithUnclearPurpose` should only look at links, not `` without `href`. (#245) - -## 2.10.0-rc.0 - 2015-10-09 - -### New rules -* A tabpanel should be related to a tab via aria-controls or aria-labelledby (`src/audits/UncontrolledTabpanel.js`) -* A data table must identify row and column headers (`src/audits/TableHasAppropriateHeaders.js`) -* A tooltip element should have an aria-describedby referring to it (`src/audits/RoleTooltipRequiresDescribedBy.js`). - -### Enhancements - -* Pull DOM-related functionality out into `DOMUtils.js` - -### Bug fixes: - -* Fix `findTextAlternatives` not always correctly ignoring hidden elements (#217). -* `findTextAlternatives` now honors `alt` attribute of input type image -* Revert #150 which was causing the extension not to work. -* AX_HTML_02 (duplicate IDs) now only audits elements that are referenced by an IDREF (#141); -* Fix #171 by being smarter about finding the composed parent node. -* Tweak in canScrollTo to handle the (common) case where the container is `document.body` (#243). - -## 2.9.0 - 2015-09-04 - -## 2.9.0-rc.0 - 2015-08-21 - -### New rules - -* A label element may not have labelable descendants other than its labeled control (`src/audits/MultipleLabelableElementsPerLabel.js`) - -### Enhancements - -* Implement support for specifying audit configuration options through an object when initializing audits (#165). -* Implement support for AMD loaders. - -### Bug fixes: - -* Fix `badAriaAttributeValue` not correctly handling decimal values (#182). -* Work around null pointer exception caused by closure compiler issue (#183). -* Add a special case to handle color `"transparent"` to fix (#180). -* Fix `matchSelector` not working properly in browser environments without vendor prefixes (#189). -* Fix false positives on elements with no role for Unsupported ARIA Attribute rule (#178 and #199). -* Fix ARIA `tablist` and ARIA `tab` scope (#204) -* Fix link with clear purpose with text alternative (#156); -* Handle edge cases in number parser, e.g. "+1", ".1", "01" -* HTML button containing img with alt attribute now passes controlsWithoutLabel (#202) -* Disabled elements should be ignored by low contrast audit (#205) -* Fix input of type "text" did not find correct implied role (#225) -* Hidden links are no longer relevant for meaningful link text rule. - -## 2.8.0 - 2015-07-24 - -## 2.8.0-rc.0 - 2015-07-10 - -### Enhancements: -* Pull color code into separate file. -* Improve color suggestion algorithm. -* Descend into iframes when collecting matching elements. - -## 2.7.1 - 2015-06-30 - -## 2.7.1-rc.1 - 2015-06-23 - -### Bug fixes: - -* Check for null `textAlternatives` in `FocusableElementNotVisibleAndNotAriaHidden`'s `relevantElementMatcher` method. - -## 2.7.1-rc.0 - 2015-06-15 - -### Enhancements: -* Rework findTextAlternatives not to return non-exposed text alternatives. -* Add Bower config (#157) - -### Bug fixes: -* Check for any text alternatives when assessing unlabeled images (#154). - -## 2.7.0 - 2015-05-15 - -### New rules -* This element does not support ARIA roles, states and properties (`src/audits/AriaOnReservedElement.js`) -* aria-owns should not be used if ownership is implicit in the DOM (`src/audits/AriaOwnsDescendant.js`) -* Elements with ARIA roles must be in the correct scope (`src/audits/AriaRoleNotScoped.js`) -* An element's ID must be unique in the DOM (`src/audits/DuplicateId.js`) -* The web page should have the content's human language indicated in the markup (`src/audits/HumanLangMissing.js`) -* An element's ID must not be present in more that one aria-owns attribute at any time (`src/audits/MultipleAriaOwners.js`) -* ARIA attributes which refer to other elements by ID should refer to elements which exist in the DOM (`src/audits/NonExistentAriaRelatedElement.js` - previously `src/audits/NonExistentAriaLabeledBy.js`) -* Elements with ARIA roles must ensure required owned elements are present (`src/audits/RequiredOwnedAriaRoleMissing.js`) -* Avoid positive integer values for tabIndex (`src/audits/TabIndexGreaterThanZero.js`) -* This element has an unsupported ARIA attribute (`src/audits/UnsupportedAriaAttribute.js`) - -### Enhancements: -* Add configurable blacklist phrases and stop words to LinkWithUnclearPurpose (#99) -* Detect and warn if we reuse the same code for more than one rule. (#133) -* Force focus before testing visibility on focusable elements. (#65) -* Use getDistributedNodes to get nodes distributed into shadowRoots (#128) -* Add section to Audit Rules page for HumanLangMissing and link to it from rule (#119) -* Reference "applied role" in axs.utils.getRoles enhancement (#130) -* Add warning that AX_FOCUS_02 is not available from axs.Audit.run() (#85) - -### Bug fixes: -* Incorrect use of nth-of-type against className in utils.getQuerySelectorText (#87) -* AX_TEXT_01 Accessibility Audit test should probably ignore role=presentation elements (#97) -* Fix path to audit rules in phantomjs runner (#108) -* Label audit should fail if form fields lack a label, even with placeholder text (#81) -* False positives for controls without labels with role=presentation (#23) -* Fix "valid" flag on return value of axs.utils.getRoles (#131) - -Note: this version number is somewhat arbitrary - just bringing it vaguely in line with [the extension](https://github.com/GoogleChrome/accessibility-developer-tools-extension) since that's where the library originated - but will use semver for version bumps going forward from here. - -## 0.0.5 - 2014-02-04 - -### Enhancements: -* overlapping elements detection code made more sophisticated -* axs.properties.getFocusProperties() returns more information about visibility -* new axs.properties.hasDirectTextDescendant() method with more sophisticated detection of text content - -### Bug fixes: -* FocusableElementNotVisibleAndNotAriaHidden audit passes on elements which are brought onscreen on focus -* UnfocusableElementsWithOnclick checks for element.disabled -* Fix infinite loop when getting descendant text content of a label containing an input -* Detect elements which are out of scroll area of any parent element, not just the document scroll area -* findTextAlternatives doesn't throw TypeError if used on a HTMLSelectElement - -## 0.0.4 - 2013-10-03 - -### Enhancements: - -* axs.AuditRule.run() has a new signature: it now takes an options object. Please see method documentation for details. -* Audit Rule severity can be overridden (per Audit Rule) in AuditConfig. - -### Bug fixes: - -* axs.utils.isLowContrast() now rounds to the nearest 0.1 before checking (so `#777` is now a passing value) -* MainRoleOnInappropriateElement was always failing due to accessible name calculation taking the main role into account and not descending into content (now just gets descendant content directly) -* UnfocusableElementsWithOnClick had a dangling if-statement causing very noisy false positives diff --git a/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/LICENSE b/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/LICENSE deleted file mode 100644 index d6456956..00000000 --- a/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/README.md b/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/README.md deleted file mode 100644 index 3bc1a106..00000000 --- a/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/README.md +++ /dev/null @@ -1,222 +0,0 @@ -[![Build Status](https://travis-ci.org/GoogleChrome/accessibility-developer-tools.svg?branch=master)](https://travis-ci.org/GoogleChrome/accessibility-developer-tools) -[![npm version](https://img.shields.io/npm/v/accessibility-developer-tools.svg)](https://www.npmjs.com/package/accessibility-developer-tools) -[![npm downloads](https://img.shields.io/npm/dm/accessibility-developer-tools.svg)](https://www.npmjs.com/package/accessibility-developer-tools) - -# Accessibility Developer Tools - -This is a library of accessibility-related testing and utility code. - -Its main component is the accessibility audit: a collection of audit rules checking for common accessibility problems, and an API for running these rules in an HTML page. - -There is also a collection of accessibility-related utility code, including but not limited to: -* contrast ratio calculation and color suggestions -* retrieving and validating ARIA attributes and states -* accessible name calculation using the algorithm at [http://www.w3.org/TR/wai-aria/roles#textalternativecomputation](http://www.w3.org/TR/wai-aria/roles#textalternativecomputation) - -# Getting the code - -To include just the javascript rules, require the following file: - - https://raw.github.com/GoogleChrome/accessibility-developer-tools/stable/dist/js/axs_testing.js - - `git 1.6.5` or later: - - % git clone --recursive https://github.com/GoogleChrome/accessibility-developer-tools.git - - Before `git 1.6.5`: - - % git clone https://github.com/GoogleChrome/accessibility-developer-tools.git - % cd accessibility-developer-tools - % git submodule init; git submodule update - -# Building - -You will need `node` and `grunt-cli` to build. - -1. (Once only) Install [Node.js](http://nodejs.org/) and `npm` - useful instructions here: [https://gist.github.com/isaacs/579814](https://gist.github.com/isaacs/579814) - - Make sure you have Node.js v 0.8 or higher. - -2. (Once only) Use `npm` to install `grunt-cli` - - % npm install -g grunt-cli # May need to be run as root - -3. (Every time you make a fresh checkout) Install dependencies (including `grunt`) for this project (run from project root) - - % npm install - -4. (Rebuild if you make changes) Build using `grunt` (run from project root) - - % grunt - - -## Troubleshooting - -This project uses [Closure Compiler](https://github.com/google/closure-compiler) to build our releases. You may need to install a recent version of [JDK](http://www.oracle.com/technetwork/java/javase/downloads/index.html) in order for builds to successfully complete. - -# Using the Audit API - -## Including the library - -The simplest option is to include the generated `axs_testing.js` library on your page. After you build, you will have two versions of `axs_testings.js`: -* Distribution Build: project-root/dist/js/axs_testing.js -* Local Build (use if you make changes): project-root/tmp/build/axs_testing.js - -Work is underway to include the library in WebDriver and other automated testing frameworks. - -## The `axs.Audit.run()` method - -Once you have included `axs_testing.js`, you can call `axs.Audit.run()`. This returns an object in the following form: - - { - /** @type {axs.constants.AuditResult} */ - result, // one of PASS, FAIL or NA - - /** @type {Array.} */ - elements, // The elements which the rule fails on, if result == axs.constants.AuditResult.FAIL - - /** @type {axs.AuditRule} */ - rule // The rule which this result is for. - } - -### Command Line Runner - -The Accessibility Developer Tools project includes a command line runner for the audit. To use the runner, [install phantomjs](http://phantomjs.org/download.html) then run the following command from the project root directory. - - $ phantomjs tools/runner/audit.js - -The runner will load the specified file or URL in a headless browser, inject axs_testing.js, run the audit and output the report text. - -### Run audit from Selenium WebDriver (Scala): - val driver = org.openqa.selenium.firefox.FirefoxDriver //use driver of your choice - val jse = driver.asInstanceOf[JavascriptExecutor] - jse.executeScript(scala.io.Source.fromURL("https://raw.githubusercontent.com/GoogleChrome/" + - "accessibility-developer-tools/stable/dist/js/axs_testing.js").mkString) - val report = jse.executeScript("var results = axs.Audit.run();return axs.Audit.createReport(results);") - println(report) - -### Run audit from Selenium WebDriver (Scala)(with caching): - val cache = collection.mutable.Map[String, String]() - val driver = org.openqa.selenium.firefox.FirefoxDriver //use driver of your choice - val jse = driver.asInstanceOf[JavascriptExecutor] - def getUrlSource(arg: String): String = cache get arg match { - case Some(result) => result - case None => - val result: String = scala.io.Source.fromURL(arg).mkString - cache(arg) = result - result - } - jse.executeScript(getUrlSource("https://raw.githubusercontent.com/GoogleChrome/" + - "accessibility-developer-tools/stable/dist/js/axs_testing.js")) - val report = js.executeScript("var results = axs.Audit.run();return axs.Audit.createReport(results);") - println(report) - -If println() outputs nothing, check if you need to set DesiredCapabilities for your WebDriver (such as loggingPrefs): -https://code.google.com/p/selenium/wiki/DesiredCapabilities - -## Using the results - -### Interpreting the result - -The result may be one of three constants: -* `axs.constants.AuditResult.PASS` - This implies that there were elements on the page that may potentially have failed this audit rule, but they passed. Congratulations! -* `axs.constants.AuditResult.NA` - This implies that there were no elements on the page that may potentially have failed this audit rule. For example, an audit rule that checks video elements for subtitles would return this result if there were no video elements on the page. -* `axs.constants.AuditResult.FAIL` - This implies that there were elements on the page that did not pass this audit rule. This is the only result you will probably be interested in. - -### Creating a useful error message - -The static, global `axs.Audit.createReport(results, opt_url)` may be used to create an error message using the return value of axs.Audit.run(). This will look like the following: - - *** Begin accessibility audit results *** - An accessibility audit found 4 errors and 4 warnings on this page. - For more information, please see https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules - - Error: badAriaAttributeValue (AX_ARIA_04) failed on the following elements (1 - 3 of 3): - DIV:nth-of-type(3) > INPUT - DIV:nth-of-type(5) > INPUT - #aria-invalid - - Error: badAriaRole (AX_ARIA_01) failed on the following element: - DIV:nth-of-type(11) > SPAN - - Error: controlsWithoutLabel (AX_TEXT_01) failed on the following elements (1 - 3 of 3): - DIV > INPUT - DIV:nth-of-type(12) > DIV:nth-of-type(3) > INPUT - LABEL > INPUT - - Error: requiredAriaAttributeMissing (AX_ARIA_03) failed on the following element: - DIV:nth-of-type(13) > DIV:nth-of-type(11) > DIV - - Warning: focusableElementNotVisibleAndNotAriaHidden (AX_FOCUS_01) failed on the following element: - #notariahidden - - Warning: imagesWithoutAltText (AX_TEXT_02) failed on the following elements (1 - 2 of 2): - #deceptive-img - DIV:nth-of-type(13) > IMG - - Warning: lowContrastElements (AX_COLOR_01) failed on the following elements (1 - 2 of 2): - DIV:nth-of-type(13) > DIV - DIV:nth-of-type(13) > DIV:nth-of-type(3) - - Warning: nonExistentAriaLabelledbyElement (AX_ARIA_02) failed on the following elements (1 - 2 of 2): - DIV:nth-of-type(3) > INPUT - DIV:nth-of-type(5) > INPUT - *** End accessibility audit results *** - -Each rule will have at most five elements listed as failures, in the form of a unique query selector for each element. - -### Configuring the Audit - -If you wish to fine-tune the audit, you can create an `axs.AuditConfiguration` object, with the following options: - -#### Ignore parts of the page for a particular audit rule - -For example, say you have a separate high-contrast version of your page, and there is a CSS rule which causes certain elements (with class `pretty`) on the page to be low-contrast for stylistic reasons. Running the audit unmodified produces results something like - - Warning: lowContrastElements (AX_COLOR_01) failed on the following elements (1 - 5 of 15): - ... - -You can modify the audit to ignore the elements which are known and intended to have low contrast like this: - - var configuration = new axs.AuditConfiguration(); - configuration.ignoreSelectors('lowContrastElements', '.pretty'); - axs.Audit.run(configuration); - -The `AuditConfiguration.ignoreSelectors()` method takes a rule name, which you can find in the audit report, and a query selector string representing the parts of the page to be ignored for that audit rule. Multiple calls to `ignoreSelectors()` can be made for each audit rule, if multiple selectors need to be ignored. - -#### Restrict the scope of the entire audit to a subsection of the page - -You may have a part of the page which varies while other parts of the page stay constant, like a content area vs. a toolbar. In this case, running the audit on the entire page may give you spurious results in the part of the page which doesn't vary, which may drown out regressions in the main part of the page. - -You can set a `scope` on the `AuditConfiguration` object like this: - - var configuration = new axs.AuditConfiguration(); - configuration.scope = document.querySelector('main'); // or however you wish to choose your scope element - axs.Audit.run(configuration); - -You may also specify a configuration payload while instantiating the `axs.AuditConfiguration`, -which allows you to provide multiple configuration options at once. - - var configuration = new axs.AuditConfiguration({ - auditRulesToRun: ['badAriaRole'], - scope: document.querySelector('main'), - maxResults: 5 - }); - - axs.Audit.run(configuration); - -## License - -Copyright 2013 Google Inc. All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -[http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/bower.json b/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/bower.json deleted file mode 100644 index ab386021..00000000 --- a/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/bower.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "accessibility-developer-tools", - "version": "2.11.0", - "homepage": "https://github.com/GoogleChrome/accessibility-developer-tools", - "authors": [ - "Google" - ], - "description": "This is a library of accessibility-related testing and utility code.", - "main": "dist/js/axs_testing.js", - "moduleType": [ - "amd", - "globals" - ], - "keywords": [ - "accessibility", - "testing", - "WCAG", - "module" - ], - "license": "Apache-2.0", - "ignore": [ - "**/.*", - "lib", - "scripts", - "src", - "test", - "tools", - "Gruntfile.js", - "package.json" - ] -} diff --git a/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/main.js b/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/main.js deleted file mode 100644 index d92b110b..00000000 --- a/node_modules/@polymer/polymer/bower_components/accessibility-developer-tools/main.js +++ /dev/null @@ -1,7 +0,0 @@ -// This exposes the ./dist Javascript file for node libraries. -// It also unwraps the main axs package so Audit and other objects are exposed -// directly in the node library - -var library = require('./dist/js/axs_testing'); // eslint-disable-line no-undef - -module.exports = library.axs; // eslint-disable-line no-undef diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/.bower.json b/node_modules/@polymer/polymer/bower_components/app-layout/.bower.json deleted file mode 100644 index 1abb0ccc..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/.bower.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "name": "app-layout", - "version": "2.1.0", - "description": "A set of layout elements for your app", - "authors": [ - "The Polymer Authors" - ], - "license": "https://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/app-layout", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/app-layout" - }, - "main": "app-layout.html", - "demos": { - "Demos": "demo/index.html" - }, - "dependencies": { - "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", - "iron-media-query": "PolymerElements/iron-media-query#1 - 2", - "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#1 - 2", - "iron-scroll-target-behavior": "PolymerElements/iron-scroll-target-behavior#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "es6-promise": "stefanpenner/es6-promise#^4.0.0", - "font-roboto": "PolymerElements/font-roboto#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-icon": "PolymerElements/iron-icon#1 - 2", - "iron-icons": "PolymerElements/iron-icons#1 - 2", - "iron-list": "PolymerElements/iron-list#1 - 2", - "iron-pages": "PolymerElements/iron-pages#1 - 2", - "iron-scroll-threshold": "PolymerElements/iron-scroll-threshold#1 - 2", - "paper-fab": "PolymerElements/paper-fab#1 - 2", - "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", - "paper-item": "PolymerElements/paper-item#1 - 2", - "paper-listbox": "PolymerElements/paper-listbox#1 - 2", - "paper-progress": "PolymerElements/paper-progress#1 - 2", - "paper-spinner": "PolymerElements/paper-spinner#1 - 2", - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "paper-tabs": "PolymerElements/paper-tabs#1 - 2", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "test-fixture": "^1.0.0", - "polymer": "^1.7.1", - "webcomponentsjs": "^0.7" - } - } - }, - "ignore": [], - "private": true, - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "_release": "2.1.0", - "_resolution": { - "type": "version", - "tag": "v2.1.0", - "commit": "934f0d1cd3a635f5d5e2ed07739f217fe9dfc8ec" - }, - "_source": "https://github.com/PolymerElements/app-layout.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/app-layout" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/app-layout/.github/CODEOWNERS deleted file mode 100644 index b7cc03e4..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @keanulee @frankiefu -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/app-layout/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index d3ba4ea5..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/.travis.yml b/node_modules/@polymer/polymer/bower_components/app-layout/.travis.yml deleted file mode 100644 index 21c523bc..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/.travis.yml +++ /dev/null @@ -1,30 +0,0 @@ -language: node_js -sudo: required -dist: trusty -node_js: stable -addons: - sauce_connect: true - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -env: - global: - - secure: >- - aLLRRtzSz/QImXYAEO7lBZcmp8xhXH28J6HONXOboy8H2eQmie0kAG8EIL1EYw1OMomAwawvh9BMJqhJHiLg23h6+asXdEaYefF+QDKIKh11dCZFUPJ71DAwKOLQpL+3D4iV/Wmndr4dIEGASCUdPufoBbmG1ZVY5dGkQYG8TO7mAOwzCciPNRaHws5fkMhWbm+tzWCDrIoMOWKDBZiAk4Rm7pXQ7c+Vnr07R0qrWlsCuiaMMc9J34q0bqrzmnV+EWjqKHXzhv1hJEbKHvO73cJorwtdpkeqLi1UsdkDCBuA8soxLSicCcpFe7eMkpr9WrbuJZ5QOEVlq+qb3aW9tH5wABiXSL4K8J7otvaXgRIaTg6i5pRGrivmNAOS6YXzT7oQAdmfFxHSpUr4OeV3Nvm9Ik7p8sOLHMGj4Eo00djjPtbO9MutF3CBLvYuEmdfa0BRXe3WqeJdaCVyYiMAPG7lYqz+aNAl6O4qAVRLMzXIRl/+vF2cso/rG7SsZORSuMk34NZhdXiHlBI+e5lyNrdrCyirukZmTd5rLiyEfbO9ty8BgxQ5MlomEXoZM3GYgFKgViYiMFQ8QuaGBUJBdeyo0IJiqp7ohcbUZq46XOXz//5hOOcp4ddgMNNjyIqjGmBJff0+oYalhJXK56UivTAXhoiXDLIQXHsJ3rUexcE= - - secure: >- - TqRTXbcw5+a/XY/pb3rh8a/PkbLluNZKdN9FI/ZfHOVJu1xWCQSPUcI8XNmnPks/SVz8aCSWpPi4dh6oa8k1FXo7Q0lQ+2wAdfe7imnqoj6YIt0guHbe/YWGZoUmzuptSgufygzKGRh37oZx8fOH9bMb0vyMxCTZs4PcTeaqhmRQRHfVK/W2dyDRnSuHior5niKnboLXXR+XitcT3k+0S/jUGUwice0BivjHPpB9CNgm2lChRX3tHIru4iE3XW5U4+8Eg4SulLXd8DybQ3hzMIEmapPU7T/EO/xpIe1hIfVbJBY0LB4Ri5GGCK00OEDEcHSSJmubJ4usn2jitAyfztXg8BLEg8d/1BSTmAF+l7gUKgqhJ968Prc09EUdnyBPwRmnt1sPcZpDaDZuegg+y5Gx3qmWuqDAVSsHw08BbtK37ppHFRwswtRUMFOQKuOQXM74uI10BOWshONGitqKNYFvXniZxqO7Ezc/LSAfxSn278ews/KRNl/elGLgOtw92cJPXw515h56FvWb7gc1cm5WtJir2NwX7KlhHU3IPoDYq3QDKKQ63sPmUGPhCBAtfBGRDd5Os1MbcoyChpMr4osxHv03PNvQPY5hKjg2mUnb5QwMpJiEPs70CLXdx8Q7psX56RKjDHunFpXf5M4/SQIEmVFVi2PLoUymWlpvdBc= diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/app-layout/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/README.md b/node_modules/@polymer/polymer/bower_components/app-layout/README.md deleted file mode 100644 index 84d36d14..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/README.md +++ /dev/null @@ -1,239 +0,0 @@ -# App Layout [![Build Status](https://travis-ci.org/PolymerElements/app-layout.svg?branch=master)](https://travis-ci.org/PolymerElements/app-layout) [![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/PolymerElements/app-layout) - -A collection of elements, along with guidelines and templates that can be used to structure your app’s layout. - - -```html - - - -
My app
- - - - -
-
- - -``` - -## Install - -```bash -$ bower install PolymerElements/app-layout --save -``` - -## Import - -```html - -``` - -## What is inside - -### Elements - -- [app-box](/app-box) - A container element that can have scroll effects - visual effects based on scroll position. - -- [app-drawer](/app-drawer) - A navigation drawer that can slide in from the left or right. - -- [app-drawer-layout](/app-drawer-layout) - A wrapper element that positions an app-drawer and other content. - -- [app-grid](/app-grid) - A helper class useful for creating responsive, fluid grid layouts using custom properties. - -- [app-header](/app-header) - A container element for app-toolbars at the top of the screen that can have scroll effects - visual effects based on scroll position. - -- [app-header-layout](/app-header-layout) - A wrapper element that positions an app-header and other content. - -- [app-toolbar](/app-toolbar) - A horizontal toolbar containing items that can be used for label, navigation, search and actions. - -### Templates - -The templates are a means to define, illustrate and share best practices in App Layout. Pick a template and customize it: - -- **Getting started** -([Demo](https://polymerelements.github.io/app-layout/templates/getting-started) - [Source](/templates/getting-started)) - -- **Landing page** -([Demo](https://polymerelements.github.io/app-layout/templates/landing-page) - [Source](/templates/landing-page)) - -- **Publishing: Zuperkülblog** -([Demo](https://polymerelements.github.io/app-layout/templates/publishing) - [Source](/templates/publishing)) - -- **Shop: Shrine** -([Demo](https://polymerelements.github.io/app-layout/templates/shrine) - [Source](/templates/shrine)) - -- **Blog: Pesto** -([Demo](https://polymerelements.github.io/app-layout/templates/pesto) - [Source](/templates/pesto)) - -- **Scroll effects: Test drive** -([Demo](https://polymerelements.github.io/app-layout/templates/test-drive) - [Source](/templates/test-drive)) - -### Patterns - -Sample code for various UI patterns: - -- **Transform navigation:** -As more screen space is available, side navigation can transform into tabs. -([Demo](https://www.webcomponents.org/element/PolymerElements/app-layout/demo/patterns/transform-navigation/index.html) - [Source](/patterns/transform-navigation/x-app.html)) - -- **Expand Card:** -Content cards may expand to take up more horizontal space. -([Demo](https://www.webcomponents.org/element/PolymerElements/app-layout/demo/patterns/expand-card/index.html) - [Source](/patterns/expand-card/index.html)) - -- **Material Design Responsive Toolbar:** -Toolbar changes its height and padding to adapt mobile screen size. -([Demo](https://www.webcomponents.org/element/PolymerElements/app-layout/demo/patterns/md-responsive-toolbar/index.html) - [Source](/patterns/md-responsive-toolbar/index.html)) - -## Users - -Here are some web apps built with App Layout: - -- [Youtube Web](https://www.youtube.com/new) -- [Google I/O 2016](https://events.google.com/io2016/) -- [Polymer project site](https://www.polymer-project.org/summit) -- [Polymer summit](https://www.polymer-project.org/summit) -- [Shop](https://shop.polymer-project.org) -- [News](https://news.polymer-project.org) -- [webcomponents.org](https://www.webcomponents.org/) -- [Chrome Status](https://www.chromestatus.com/) -- [Project Fi](https://fi.google.com/about/) -- [NASA Open Source Software](https://code.nasa.gov/) - -## Tools and References - -- [Polymer App Toolbox](https://www.polymer-project.org/2.0/toolbox/) -- [Material Design Adaptive UI Pattern](https://www.google.com/design/spec/layout/adaptive-ui.html#adaptive-ui-patterns) - -## Changes in App Layout 2.0 - -- Distribution is now done with slots, so things have changed because of that, - - ##### app-drawer-layout - **1.x** - ``` - - ... -
content
-
- ``` - **2.0** - ``` - - ... -
content
-
- ``` - - ##### app-header-layout - **1.x** - ``` - - ... -
content
-
- ``` - **2.0** - ``` - - ... -
content
-
- ``` - - ##### app-box - **1.x** - ``` - - - - ``` - **2.0** - ``` - - - - ``` - -- In `app-drawer-layout`, the `drawer-toggle` element needs to be manually hidden -when `app-drawer-layout` is not in narrow layout. To add this, add the following CSS rule where -`app-drawer-layout` is used: - - ```css - app-drawer-layout:not([narrow]) [drawer-toggle] { - display: none; - } - ``` -- In `app-drawer-layout`, if you specify a value for `--app-drawer-width`, that value must be -accessible by both `app-drawer` and `app-drawer-layout`. This can be done by defining the value -on the `:host` that contains (or `html` if outside a shadow root): - - ```css - :host { - --app-drawer-width: 300px; - } - ``` -- `app-scrollpos-control` has been removed from App Layout in favor of using multiple scrolling regions to preserve the scroll position. In terms of UX, [`document.rootScroller`](https://github.com/bokand/NonDocumentRootScroller) is a new web platform API that will allow non-document scroll to hide the address bar on mobile. diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-box/README.md b/node_modules/@polymer/polymer/bower_components/app-layout/app-box/README.md deleted file mode 100644 index f7692580..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-box/README.md +++ /dev/null @@ -1,69 +0,0 @@ -## <app-box> - -app-box is a container element that can have scroll effects - visual effects based on -scroll position. For example, the parallax effect can be used to move an image at a slower -rate than the foreground. - -```html - - - -``` - -Notice the `background` attribute in the `img` element; this attribute specifies that that -image is used as the background. By adding the background to the light dom, you can compose -backgrounds that can change dynamically. Alternatively, the mixin `--app-box-background-front-layer` - allows to style the background. For example: - -```css - .parallaxAppBox { - --app-box-background-front-layer: { - background-image: url(picture.png); - }; - } -``` - -Finally, app-box can have content inside. For example: - -```html - -

Sub title

-
-``` - -#### Importing the effects - -To use the scroll effects, you must explicitly import them in addition to `app-box`: - -```html - -``` - -#### List of effects - -* **parallax-background** -A simple parallax effect that vertically translates the backgrounds based on a fraction -of the scroll position. For example: - -```css -app-header { - --app-header-background-front-layer: { - background-image: url(...); - }; -} -``` -```html - - App name - -``` - -The fraction determines how far the background moves relative to the scroll position. -This value can be assigned via the `scalar` config value and it is typically a value -between 0 and 1 inclusive. If `scalar=0`, the background doesn't move away from the header. - -## Styling - -Mixin | Description | Default -----------------|-------------|---------- -`--app-box-background-front-layer` | Applies to the front layer of the background | {} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-box/app-box.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-box/app-box.d.ts deleted file mode 100644 index e9b42fb8..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-box/app-box.d.ts +++ /dev/null @@ -1,117 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-box/app-box.html - */ - -/// -/// -/// -/// - -/** - * app-box is a container element that can have scroll effects - visual effects based on - * scroll position. For example, the parallax effect can be used to move an image at a slower - * rate than the foreground. - * - * ```html - * - * - * - * ``` - * - * Notice the `background` attribute in the `img` element; this attribute specifies that that - * image is used as the background. By adding the background to the light dom, you can compose - * backgrounds that can change dynamically. Alternatively, the mixin `--app-box-background-front-layer` - * allows to style the background. For example: - * - * ```css - * .parallaxAppBox { - * --app-box-background-front-layer: { - * background-image: url(picture.png); - * }; - * } - * ``` - * - * Finally, app-box can have content inside. For example: - * - * ```html - * - *

Sub title

- *
- * ``` - * - * #### Importing the effects - * - * To use the scroll effects, you must explicitly import them in addition to `app-box`: - * - * ```html - * - * ``` - * - * #### List of effects - * - * **parallax-background** - * A simple parallax effect that vertically translates the backgrounds based on a fraction - * of the scroll position. For example: - * - * ```css - * app-header { - * --app-header-background-front-layer: { - * background-image: url(...); - * }; - * } - * ``` - * ```html - * - * App name - * - * ``` - * - * The fraction determines how far the background moves relative to the scroll position. - * This value can be assigned via the `scalar` config value and it is typically a value - * between 0 and 1 inclusive. If `scalar=0`, the background doesn't move away from the header. - * - * ## Styling - * - * Mixin | Description | Default - * ----------------|-------------|---------- - * `--app-box-background-front-layer` | Applies to the front layer of the background | {} - */ -interface AppBoxElement extends Polymer.Element, Polymer.AppScrollEffectsBehavior, Polymer.IronResizableBehavior { - - /** - * The current scroll progress. - */ - _progress: number; - _updateScrollState(scrollTop: any): void; - - /** - * Returns true if this app-box is on the screen. - * That is, visible in the current viewport. - */ - isOnScreen(): boolean; - _getDOMRef(id: any): any; - attached(): void; - _debounceRaf(fn: any): void; - - /** - * Resets the layout. This method is automatically called when the element is attached to the DOM. - */ - resetLayout(): void; - _getElementTop(): any; - _resizeHandler(): void; - - /** - * Returns an object containing the progress value of the scroll effects. - */ - getScrollState(): object|null; -} - -interface HTMLElementTagNameMap { - "app-box": AppBoxElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-box/app-box.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-box/app-box.html deleted file mode 100644 index 01de7055..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-box/app-box.html +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-box/demo/document-scroll.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-box/demo/document-scroll.html deleted file mode 100644 index 4a67bf86..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-box/demo/document-scroll.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - - - - - - - app-box demo using the document scroll - - - - - - - - - - - - - - -
- -
POLYMER
-
- -
- -
- -
-
-
-
-

Built for Speed

-

Polymer 1.0 replaces the shadow DOM polyfill with a lightweight shim, uses a new, faster data-binding system, and significantly reduces code size.

-
- - - - -
- -
-
-
-

For Modern Browsers

-

Polymer is built from the ground up for modern browsers, using the latest web platform APIs. Polyfills provide support on evergreen browsers for APIs that aren't universal yet.

-
- - -
- -
-
-
-

Using Web Components

-

Polymer leverages web components, a new set of standards designed to provide reusable components for the web.

-
- -
- -
-
-
-

Create your own elements

-

The Polymer library makes it easy to create your own powerful elements. Give your element some markup and properties, and then use it on a site. Polymer provides useful features like templating and data binding to reduce the amount of boilerplate you need to write.

-
- -
-
- - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-box/demo/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-box/demo/index.html deleted file mode 100644 index 991839bc..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-box/demo/index.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - app-box demos - - - - - - - - - - -
-
-

app-box demos

- -
-
- - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-box/demo/scrolling-region.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-box/demo/scrolling-region.html deleted file mode 100644 index 604e0808..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-box/demo/scrolling-region.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - - - - - - - app-box using a custom scrolling region - - - - - - - - - - - - - - - -
-
- -
POLYMER
-
- - - -
- -
-
-
-

Built for Speed

-

Polymer 1.0 replaces the shadow DOM polyfill with a lightweight shim, uses a new, faster data-binding system, and significantly reduces code size.

-
- - - - - -
- -
-
-
-

For Modern Browsers

-

Polymer is built from the ground up for modern browsers, using the latest web platform APIs. Polyfills provide support on evergreen browsers for APIs that aren't universal yet.

-
- - -
- -
-
-
-

Using Web Components

-

Polymer leverages web components, a new set of standards designed to provide reusable components for the web.

-
- -
- -
-
-
-

Create your own elements

-

The Polymer library makes it easy to create your own powerful elements. Give your element some markup and properties, and then use it on a site. Polymer provides useful features like templating and data binding to reduce the amount of boilerplate you need to write.

-
- -
-
- - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/README.md b/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/README.md deleted file mode 100644 index 2ffe9b4c..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/README.md +++ /dev/null @@ -1,115 +0,0 @@ -## <app-drawer-layout> - -app-drawer-layout is a wrapper element that positions an app-drawer and other content. When -the viewport width is smaller than `responsiveWidth`, this element changes to narrow layout. -In narrow layout, the drawer will be stacked on top of the main content. The drawer will slide -in/out to hide/reveal the main content. - - -By default the drawer is aligned to the start, which is left in LTR layouts: - -```html - - - drawer content - -
- main content -
-
-``` - -Align the drawer at the end: - -```html - - - drawer content - -
- main content -
-
-``` - -With an app-header-layout: - -```html - - - drawer-content - - - - -
App name
-
-
- - main content - -
-
-``` - -Add the `drawer-toggle` attribute to elements inside `app-drawer-layout` that toggle the drawer on click events: - -```html - - - drawer-content - - - - - -
App name
-
-
- - main content - -
-
-``` - -**NOTE:** With app-layout 2.0, the `drawer-toggle` element needs to be manually hidden -when app-drawer-layout is not in narrow layout. To add this, add the following CSS rule where -app-drawer-layout is used: - -```css -app-drawer-layout:not([narrow]) [drawer-toggle] { - display: none; -} -``` - -Add the `fullbleed` attribute to app-drawer-layout to make it fit the size of its container: - -```html - - - drawer content - -
- main content -
-
-``` - -### Styling - -Custom property | Description | Default ------------------------------------------|--------------------------------------|--------- -`--app-drawer-width` | Width of the drawer | 256px -`--app-drawer-layout-content-transition` | Transition for the content container | none - -**NOTE:** If you use with and specify a value for -`--app-drawer-width`, that value must be accessible by both elements. This can be done by -defining the value on the `:host` that contains (or `html` if outside -a shadow root): - -```css -:host { - --app-drawer-width: 300px; -} -``` diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/app-drawer-layout.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/app-drawer-layout.d.ts deleted file mode 100644 index 0dfc9b94..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/app-drawer-layout.d.ts +++ /dev/null @@ -1,168 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-drawer-layout/app-drawer-layout.html - */ - -/// -/// -/// - -/** - * app-drawer-layout is a wrapper element that positions an app-drawer and other content. When - * the viewport width is smaller than `responsiveWidth`, this element changes to narrow layout. - * In narrow layout, the drawer will be stacked on top of the main content. The drawer will slide - * in/out to hide/reveal the main content. - * - * By default the drawer is aligned to the start, which is left in LTR layouts: - * - * ```html - * - * - * drawer content - * - *
- * main content - *
- *
- * ``` - * - * Align the drawer at the end: - * - * ```html - * - * - * drawer content - * - *
- * main content - *
- *
- * ``` - * - * With an app-header-layout: - * - * ```html - * - * - * drawer-content - * - * - * - * - *
App name
- *
- *
- * - * main content - * - *
- *
- * ``` - * - * Add the `drawer-toggle` attribute to elements inside `app-drawer-layout` that toggle the drawer on click events: - * - * ```html - * - * - * drawer-content - * - * - * - * - * - *
App name
- *
- *
- * - * main content - * - *
- *
- * ``` - * - * *NOTE:** With app-layout 2.0, the `drawer-toggle` element needs to be manually hidden - * when app-drawer-layout is not in narrow layout. To add this, add the following CSS rule where - * app-drawer-layout is used: - * - * ```css - * app-drawer-layout:not([narrow]) [drawer-toggle] { - * display: none; - * } - * ``` - * - * Add the `fullbleed` attribute to app-drawer-layout to make it fit the size of its container: - * - * ```html - * - * - * drawer content - * - *
- * main content - *
- *
- * ``` - * - * ### Styling - * - * Custom property | Description | Default - * -----------------------------------------|--------------------------------------|--------- - * `--app-drawer-width` | Width of the drawer | 256px - * `--app-drawer-layout-content-transition` | Transition for the content container | none - * - * *NOTE:** If you use with and specify a value for - * `--app-drawer-width`, that value must be accessible by both elements. This can be done by - * defining the value on the `:host` that contains (or `html` if outside - * a shadow root): - * - * ```css - * :host { - * --app-drawer-width: 300px; - * } - * ``` - */ -interface AppDrawerLayoutElement extends Polymer.Element, Polymer.AppLayoutBehavior { - - /** - * If true, ignore `responsiveWidth` setting and force the narrow layout. - */ - forceNarrow: boolean|null|undefined; - - /** - * If the viewport's width is smaller than this value, the panel will change to narrow - * layout. In the mode the drawer will be closed. - */ - responsiveWidth: string|null|undefined; - - /** - * Returns true if it is in narrow layout. This is useful if you need to show/hide - * elements based on the layout. - */ - readonly narrow: boolean|null|undefined; - - /** - * If true, the drawer will initially be opened when in narrow layout mode. - */ - openedWhenNarrow: boolean|null|undefined; - _drawerPosition: string|null|undefined; - - /** - * A reference to the app-drawer element. - */ - readonly drawer: any; - attached(): void; - _updateLayoutStates(): void; - _clickHandler(e: any): void; - _narrowChanged(): void; - _onQueryMatchesChanged(event: any): void; - _computeMediaQuery(forceNarrow: any, responsiveWidth: any): any; -} - -interface HTMLElementTagNameMap { - "app-drawer-layout": AppDrawerLayoutElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/app-drawer-layout.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/app-drawer-layout.html deleted file mode 100644 index f85f2612..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/app-drawer-layout.html +++ /dev/null @@ -1,306 +0,0 @@ - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/demo/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/demo/index.html deleted file mode 100644 index f08b56c3..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/demo/index.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - app-drawer-layout demo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/test/app-drawer-layout.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/test/app-drawer-layout.html deleted file mode 100644 index 51064483..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/test/app-drawer-layout.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - - - test for app-drawer-layout - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/test/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/test/index.html deleted file mode 100644 index d5eb9340..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer-layout/test/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - app-drawer-layout tests - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/README.md b/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/README.md deleted file mode 100644 index 72218133..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/README.md +++ /dev/null @@ -1,47 +0,0 @@ -## <app-drawer> - -![app-drawer](http://app-layout-assets.appspot.com/assets/docs/app-drawer/drawer.gif) - -app-drawer is a navigation drawer that can slide in from the left or right. - -Example: - -Align the drawer at the start, which is left in LTR layouts (default): - -```html - -``` - -Align the drawer at the end: - -```html - -``` - -To make the contents of the drawer scrollable, create a wrapper for the scroll -content, and apply height and overflow styles to it. - -```html - -
-
-``` - -### Styling - -Custom property | Description | Default ----------------------------------|----------------------------------------|-------------------- -`--app-drawer-width` | Width of the drawer | 256px -`--app-drawer-content-container` | Mixin for the drawer content container | {} -`--app-drawer-scrim-background` | Background for the scrim | rgba(0, 0, 0, 0.5) - -**NOTE:** If you use `` with `` and specify a value for -`--app-drawer-width`, that value must be accessible by both elements. This can be done by -defining the value on the `:host` that contains `` (or `html` if outside -a shadow root): - -```css -:host { - --app-drawer-width: 300px; -} -``` diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/app-drawer.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/app-drawer.d.ts deleted file mode 100644 index 8debab80..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/app-drawer.d.ts +++ /dev/null @@ -1,163 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-drawer/app-drawer.html - */ - -/// -/// - -/** - * app-drawer is a navigation drawer that can slide in from the left or right. - * - * Example: - * - * Align the drawer at the start, which is left in LTR layouts (default): - * - * ```html - * - * ``` - * - * Align the drawer at the end: - * - * ```html - * - * ``` - * - * To make the contents of the drawer scrollable, create a wrapper for the scroll - * content, and apply height and overflow styles to it. - * - * ```html - * - *
- *
- * ``` - * - * ### Styling - * - * Custom property | Description | Default - * ---------------------------------|----------------------------------------|-------------------- - * `--app-drawer-width` | Width of the drawer | 256px - * `--app-drawer-content-container` | Mixin for the drawer content container | {} - * `--app-drawer-scrim-background` | Background for the scrim | rgba(0, 0, 0, 0.5) - * - * *NOTE:** If you use `` with `` and specify a value for - * `--app-drawer-width`, that value must be accessible by both elements. This can be done by - * defining the value on the `:host` that contains `` (or `html` if outside - * a shadow root): - * - * ```css - * :host { - * --app-drawer-width: 300px; - * } - * ``` - */ -interface AppDrawerElement extends Polymer.Element { - - /** - * The opened state of the drawer. - */ - opened: boolean|null|undefined; - - /** - * The drawer does not have a scrim and cannot be swiped close. - */ - persistent: boolean|null|undefined; - - /** - * The transition duration of the drawer in milliseconds. - */ - transitionDuration: number|null|undefined; - - /** - * The alignment of the drawer on the screen ('left', 'right', 'start' or 'end'). - * 'start' computes to left and 'end' to right in LTR layout and vice versa in RTL - * layout. - */ - align: string|null|undefined; - - /** - * The computed, read-only position of the drawer on the screen ('left' or 'right'). - */ - readonly position: string|null|undefined; - - /** - * Create an area at the edge of the screen to swipe open the drawer. - */ - swipeOpen: boolean|null|undefined; - - /** - * Trap keyboard focus when the drawer is opened and not persistent. - */ - noFocusTrap: boolean|null|undefined; - - /** - * Disables swiping on the drawer. - */ - disableSwipe: boolean|null|undefined; - _translateOffset: number; - _trackDetails: null; - _drawerState: number; - _boundEscKeydownHandler: null; - _firstTabStop: null; - _lastTabStop: null; - _MIN_FLING_THRESHOLD: number; - _MIN_TRANSITION_VELOCITY: number; - _FLING_TIMING_FUNCTION: string; - _FLING_INITIAL_SLOPE: number; - _DRAWER_STATE: object|null; - attached(): void; - detached(): void; - - /** - * Opens the drawer. - */ - open(): void; - - /** - * Closes the drawer. - */ - close(): void; - - /** - * Toggles the drawer open and close. - */ - toggle(): void; - - /** - * Gets the width of the drawer. - * - * @returns The width of the drawer in pixels. - */ - getWidth(): number; - _isRTL(): any; - _resetPosition(): void; - _escKeydownHandler(event: any): void; - _track(event: any): void; - _trackStart(event: any): void; - _trackMove(event: any): void; - _trackEnd(event: any): void; - _calculateVelocity(event: any, trackDetails: any): any; - _flingDrawer(event: any, trackDetails: any): void; - _styleTransitionDuration(duration: any): void; - _styleTransitionTimingFunction(timingFunction: any): void; - _translateDrawer(x: any): void; - _resetDrawerTranslate(): void; - _resetDrawerState(): void; - - /** - * Resets the layout. - */ - resetLayout(): void; - _setKeyboardFocusTrap(): void; - _tabKeydownHandler(event: any): void; - _openedPersistentChanged(opened: any, persistent: any): void; -} - -interface HTMLElementTagNameMap { - "app-drawer": AppDrawerElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/app-drawer.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/app-drawer.html deleted file mode 100644 index c759f9db..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/app-drawer.html +++ /dev/null @@ -1,687 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/demo/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/demo/index.html deleted file mode 100644 index dc3bd0ac..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/demo/index.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - app-drawer demos - - - - - - - - - - -
-
-

app-drawer demos

- -
-
- - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/demo/left-drawer.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/demo/left-drawer.html deleted file mode 100644 index 3c80524d..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/demo/left-drawer.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - app-drawer demo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/demo/right-drawer.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/demo/right-drawer.html deleted file mode 100644 index 0eca3c71..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/demo/right-drawer.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - app-drawer demo - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- - - inbox - - - - favorite - - - - polymer - - - - question-answer - - - - send - - - - archive - - - - backup - - - - dashboard - -
-
- - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/test/app-drawer.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/test/app-drawer.html deleted file mode 100644 index 29c7b4ab..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/test/app-drawer.html +++ /dev/null @@ -1,817 +0,0 @@ - - - - - - test for app-drawer - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/test/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/test/index.html deleted file mode 100644 index dbe35ad3..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-drawer/test/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - app-drawer tests - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/README.md b/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/README.md deleted file mode 100644 index 2e9bf9a1..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/README.md +++ /dev/null @@ -1,128 +0,0 @@ -## <app-grid> - -app-grid is a helper class useful for creating responsive, fluid grid layouts using custom properties. -Because custom properties can be defined inside a `@media` rule, you can customize the grid layout -for different responsive breakpoints. - -Example: - -Import `app-grid-style.html` and include `app-grid-style` in the style of an element's definition. -Then, add the class `app-grid` to a container such as `ul` or `div`: - -```html - -``` - -In this example, the grid will take 3 columns per row and only 1 column if the viewport width is -smaller than 640px. - -### Expandible items - -In many cases, it's useful to expand an item more than 1 column. To achieve this type of layout, -you can specify the number of columns the item should expand to by setting the custom property -`--app-grid-expandible-item-columns`. To indicate which item should expand, apply the mixin -`--app-grid-expandible-item` to a rule with a selector to the item. For example: - -```html - -``` - -### Preserving the aspect ratio - -When the size of a grid item should preserve the aspect ratio, you can add the `has-aspect-ratio` -attribute to the element with the class `app-grid`. Now, every item element becomes a wrapper around -the item content. For example: - -```html - -``` - -### Styling - -Custom property | Description | Default -----------------------------------------------|------------------------------------------------------------|------------------ -`--app-grid-columns` | The number of columns per row. | 1 -`--app-grid-gutter` | The space between two items. | 0px -`--app-grid-item-height` | The height of the items. | auto -`--app-grid-expandible-item-columns` | The number of columns an expandible item should expand to. | 1 - -### CSS grid layout - -[CSS grid layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout) is a new layout system for CSS that lets you create complex grids. It's richer than app-grid in many cases, but it's only supported in a [few browsers](http://caniuse.com/#search=css%20grid%20layout). diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/app-grid-style.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/app-grid-style.d.ts deleted file mode 100644 index 79ea6b80..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/app-grid-style.d.ts +++ /dev/null @@ -1,120 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-grid/app-grid-style.html - */ - -/// - -/** - * app-grid is a helper class useful for creating responsive, fluid grid layouts using custom properties. - * Because custom properties can be defined inside a `@media` rule, you can customize the grid layout - * for different responsive breakpoints. - * - * Example: - * - * Import `app-grid-style.html` and include `app-grid-style` in the style of an element's definition. - * Then, add the class `app-grid` to a container such as `ul` or `div`: - * - * ```html - * - * ``` - * In the example above, the grid will take 3 columns per row. - * - * ### Expandible items - * - * In many cases, it's useful to expand an item more than 1 column. To achieve this type of layout, - * you can specify the number of columns the item should expand to by setting the custom property - * `--app-grid-expandible-item-columns`. To indicate which item should expand, apply the mixin - * `--app-grid-expandible-item` to a rule with a selector to the item. For example: - * - *

- * <template>
- *   <style include="app-grid-style">
- *     :host {
- *       --app-grid-columns: 3;
- *       --app-grid-item-height: 100px;
- *       --app-grid-expandible-item-columns: 3;
- *     }
- *
- *     /* Only the first item should expand *\/
- *     .item:first-child {
- *       @apply --app-grid-expandible-item;
- *     }
- *   </style>
- * </template>
- * 
- * - * ### Preserving the aspect ratio - * - * When the size of a grid item should preserve the aspect ratio, you can add the `has-aspect-ratio` - * attribute to the element with the class `.app-grid`. Now, every item element becomes a wrapper around - * the item content. For example: - * - * ```html - * - * ``` - * - * ### Styling - * - * Custom property | Description | Default - * ----------------------------------------------|------------------------------------------------------------|------------------ - * `--app-grid-columns` | The number of columns per row. | 1 - * `--app-grid-gutter` | The space between two items. | 0px - * `--app-grid-item-height` | The height of the items. | auto - * `--app-grid-expandible-item-columns` | The number of columns an expandible item should expand to. | 1 - */ -interface AppGridElement extends Polymer.Element { -} - -interface HTMLElementTagNameMap { - "app-grid": AppGridElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/app-grid-style.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/app-grid-style.html deleted file mode 100644 index 090e3678..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/app-grid-style.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/demo/aspect-ratio.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/demo/aspect-ratio.html deleted file mode 100644 index 4b044f0d..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/demo/aspect-ratio.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - Preserving aspect ratio using app-grid-style - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/demo/flickr-grid-layout.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/demo/flickr-grid-layout.html deleted file mode 100644 index daf8836a..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/demo/flickr-grid-layout.html +++ /dev/null @@ -1,269 +0,0 @@ - - - - - - - - - Flickr grid layout - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/demo/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/demo/index.html deleted file mode 100644 index 62804fc6..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/demo/index.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - app-grid demos - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/demo/md-grid-layout.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/demo/md-grid-layout.html deleted file mode 100644 index ace46933..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/demo/md-grid-layout.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - Material design grid layout using app-grid - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/demo/simple-responsive-grid.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/demo/simple-responsive-grid.html deleted file mode 100644 index 2dd89196..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/demo/simple-responsive-grid.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - Responsive grid layout using app-grid-style - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/test/app-grid-1.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/test/app-grid-1.html deleted file mode 100644 index 25a3ce17..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/test/app-grid-1.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - test for app-grid - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/test/app-grid-2.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/test/app-grid-2.html deleted file mode 100644 index d34928b7..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/test/app-grid-2.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - test for app-grid - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/test/app-grid-3.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/test/app-grid-3.html deleted file mode 100644 index 7609641a..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/test/app-grid-3.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - test for app-grid - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/test/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/test/index.html deleted file mode 100644 index 225bc270..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-grid/test/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - app-grid tests - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/README.md b/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/README.md deleted file mode 100644 index acf3e2d6..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/README.md +++ /dev/null @@ -1,42 +0,0 @@ -## <app-header-layout> - -app-header-layout is a wrapper element that positions an app-header and other content. This -element uses the document scroll by default, but it can also define its own scrolling region. - -Using the document scroll: - -```html - - - -
App name
-
-
-
- main content -
-
-``` - -Using an own scrolling region: - -```html - - - -
App name
-
-
-
- main content -
-
-``` - -Add the `fullbleed` attribute to app-header-layout to make it fit the size of its container: - -```html - - ... - -``` diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/app-header-layout.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/app-header-layout.d.ts deleted file mode 100644 index 0f598c30..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/app-header-layout.d.ts +++ /dev/null @@ -1,74 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-header-layout/app-header-layout.html - */ - -/// -/// -/// - -/** - * app-header-layout is a wrapper element that positions an app-header and other content. This - * element uses the document scroll by default, but it can also define its own scrolling region. - * - * Using the document scroll: - * - * ```html - * - * - * - *
App name
- *
- *
- *
- * main content - *
- *
- * ``` - * - * Using an own scrolling region: - * - * ```html - * - * - * - *
App name
- *
- *
- *
- * main content - *
- *
- * ``` - * - * Add the `fullbleed` attribute to app-header-layout to make it fit the size of its container: - * - * ```html - * - * ... - * - * ``` - */ -interface AppHeaderLayoutElement extends Polymer.Element, Polymer.AppLayoutBehavior { - - /** - * If true, the current element will have its own scrolling region. - * Otherwise, it will use the document scroll to control the header. - */ - hasScrollingRegion: boolean|null|undefined; - - /** - * A reference to the app-header element. - */ - readonly header: any; - _updateLayoutStates(): void; -} - -interface HTMLElementTagNameMap { - "app-header-layout": AppHeaderLayoutElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/app-header-layout.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/app-header-layout.html deleted file mode 100644 index 5771f0c3..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/app-header-layout.html +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/demo/footer.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/demo/footer.html deleted file mode 100644 index d39c143a..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/demo/footer.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - app-header-layout demo - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - -
My Drive
-
-
- -
- -
- -
- © Polymer project -
- -
- - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/demo/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/demo/index.html deleted file mode 100644 index faaf12cc..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/demo/index.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - app-header-layout demos - - - - - - - - - - -
-
-

app-header-layout demos

- -
-
- - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/demo/music.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/demo/music.html deleted file mode 100644 index bee31276..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/demo/music.html +++ /dev/null @@ -1,345 +0,0 @@ - - - - - - - - Music Demo - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- -
-

GIRL

-
-
Pharrell Williams
-
- - Girl is the second studio album by American recording artist and record producer Pharrell Williams. The album was released on March 3, 2014, through Williams' label i Am Other and Columbia Records. - - -
-
1
-
Marilyn Monroe
-
5:51
- -
- -
-
2
-
Brand New
-
4:31
- -
- -
-
3
-
Hunter
-
4:00
- -
- -
-
4
-
Gush
-
3:54
- -
- -
-
5
-
Happy (From "Despicable Me 2")
-
3:52
- -
- -
-
6
-
Come Get It Bae
-
3:21
- -
- -
-
7
-
Gust of Wind
-
4:45
- -
- -
-
8
-
Lost Queen
-
7:56
- -
- -
-
9
-
Know Who You Are
-
3:56
- -
- -
-
10
-
It Girl
-
4:49
- -
- -
-
11
-
Marilyn Monroe
-
5:51
- -
- -
-
12
-
Brand New
-
4:31
- -
- -
-
13
-
Hunter
-
4:00
- -
- -
-
14
-
Gush
-
3:54
- -
- -
-
15
-
Happy (From "Despicable Me 2")
-
3:52
- -
- -
-
16
-
Come Get It Bae
-
3:21
- -
- -
-
17
-
Gust of Wind
-
4:45
- -
- -
-
18
-
Lost Queen
-
7:56
- -
- -
-
19
-
Know Who You Are
-
3:56
- -
- -
-
20
-
It Girl
-
4:49
- -
-
- - - -
- - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/demo/scrolling-region.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/demo/scrolling-region.html deleted file mode 100644 index 53453cb8..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/demo/scrolling-region.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - app-header-layout demo - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - -
My Drive
-
-
- - - -
- - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/demo/simple.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/demo/simple.html deleted file mode 100644 index 59dddc19..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/demo/simple.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - app-header-layout demo - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/test/app-header-layout.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/test/app-header-layout.html deleted file mode 100644 index 70bc38ab..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/test/app-header-layout.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - test for app-header-layout - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/test/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/test/index.html deleted file mode 100644 index 58852321..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header-layout/test/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - app-header-layout tests - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/README.md b/node_modules/@polymer/polymer/bower_components/app-layout/app-header/README.md deleted file mode 100644 index 958989c0..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/README.md +++ /dev/null @@ -1,198 +0,0 @@ -## <app-header> - -![app-header](http://app-layout-assets.appspot.com/assets/docs/app-header/header.gif) - -app-header is container element for app-toolbars at the top of the screen that can have scroll -effects. By default, an app-header moves away from the viewport when scrolling down and -if using `reveals`, the header slides back when scrolling back up. For example: - -```html - - -
App name
-
-
-``` - -app-header can also condense when scrolling down. To achieve this behavior, the header -must have a larger height than the `sticky` element in the light DOM. For example: - -```html - - -
App name
-
-
-``` - -In this case the header is initially `96px` tall, and it shrinks to `64px` when scrolling down. -That is what is meant by "condensing". - -### Sticky element - -The element that is positioned fixed to top of the header's `scrollTarget` when a threshold -is reached, similar to `position: sticky` in CSS. This element **must** be an immediate -child of app-header. By default, the `sticky` element is the first `app-toolbar that -is an immediate child of app-header. - -```html - - Sticky element - -``` - -#### Customizing the sticky element - -```html - - - Sticky element - -``` - -### Scroll target - -The app-header's `scrollTarget` property allows to customize the scrollable element to which -the header responds when the user scrolls. By default, app-header uses the document as -the scroll target, but you can customize this property by setting the id of the element, e.g. - -```html -
- - -
-``` - -In this case, the `scrollTarget` property points to the outer div element. Alternatively, -you can set this property programmatically: - -```js -appHeader.scrollTarget = document.querySelector("#scrollingRegion"); -``` - -## Backgrounds -app-header has two background layers that can be used for styling when the header is condensed -or when the scrollable element is scrolled to the top. - -## Scroll effects - -Scroll effects are _optional_ visual effects applied in app-header based on scroll position. For example, -The [Material Design scrolling techniques](https://www.google.com/design/spec/patterns/scrolling-techniques.html) -recommends effects that can be installed via the `effects` property. e.g. - -```html - - App name - -``` - -#### Importing the effects - -To use the scroll effects, you must explicitly import them in addition to `app-header`: - -```html - -``` - -#### List of effects - -* **blend-background** -Fades in/out two background elements by applying CSS opacity based on scroll position. -You can use this effect to smoothly change the background color or image of the header. -For example, using the mixin `--app-header-background-rear-layer` lets you assign a different -background when the header is condensed: - -```css -app-header { - background-color: red; - --app-header-background-rear-layer: { - /* The header is blue when condensed */ - background-color: blue; - }; -} -``` - -* **fade-background** -Upon scrolling past a threshold, this effect will trigger an opacity transition to -fade in/out the backgrounds. Compared to the `blend-background` effect, -this effect doesn't interpolate the opacity based on scroll position. - -* **parallax-background** -A simple parallax effect that vertically translates the backgrounds based on a fraction -of the scroll position. For example: - -```css -app-header { - --app-header-background-front-layer: { - background-image: url(...); - }; -} -``` -```html - - App name - -``` - -The fraction determines how far the background moves relative to the scroll position. -This value can be assigned via the `scalar` config value and it is typically a value -between 0 and 1 inclusive. If `scalar=0`, the background doesn't move away from the header. - -* **resize-title** -Progressively interpolates the size of the title from the element with the `main-title` attribute -to the element with the `condensed-title` attribute as the header condenses. For example: - -```html - - -

App name

-
- -

App name

-
-
-``` - -* **resize-snapped-title** -Upon scrolling past a threshold, this effect fades in/out the titles using opacity transitions. -Similarly to `resize-title`, the `main-title` and `condensed-title` elements must be placed in the -light DOM. - -* **waterfall** -Toggles the shadow property in app-header to create a sense of depth (as recommended in the -MD spec) between the header and the underneath content. You can change the shadow by -customizing the `--app-header-shadow` mixin. For example: - -```css -app-header { - --app-header-shadow: { - box-shadow: inset 0px 5px 2px -3px rgba(0, 0, 0, 0.2); - }; -} -``` - -```html - - -

App name

-
-
-``` - -* **material** -Installs the waterfall, resize-title, blend-background and parallax-background effects. - -### Content attributes - -Attribute | Description | Default -----------|---------------------|---------------------------------------- -`sticky` | Element that remains at the top when the header condenses. | The first app-toolbar in the light DOM. - - -## Styling - -Mixin | Description | Default -------|-------------|---------- -`--app-header-background-front-layer` | Applies to the front layer of the background. | {} -`--app-header-background-rear-layer` | Applies to the rear layer of the background. | {} -`--app-header-shadow` | Applies to the shadow. | {} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/app-header.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-header/app-header.d.ts deleted file mode 100644 index fa738785..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/app-header.d.ts +++ /dev/null @@ -1,354 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-header/app-header.html - */ - -/// -/// -/// -/// - -/** - * app-header is container element for app-toolbars at the top of the screen that can have scroll - * effects. By default, an app-header moves away from the viewport when scrolling down and - * if using `reveals`, the header slides back when scrolling back up. For example: - * - * ```html - * - * - *
App name
- *
- *
- * ``` - * - * app-header can also condense when scrolling down. To achieve this behavior, the header - * must have a larger height than the `sticky` element in the light DOM. For example: - * - * ```html - * - * - *
App name
- *
- *
- * ``` - * - * In this case the header is initially `96px` tall, and it shrinks to `64px` when scrolling down. - * That is what is meant by "condensing". - * - * ### Sticky element - * - * The element that is positioned fixed to top of the header's `scrollTarget` when a threshold - * is reached, similar to `position: sticky` in CSS. This element **must** be an immediate - * child of app-header. By default, the `sticky` element is the first `app-toolbar that - * is an immediate child of app-header. - * - * ```html - * - * Sticky element - * - * ``` - * - * #### Customizing the sticky element - * - * ```html - * - * - * Sticky element - * - * ``` - * - * ### Scroll target - * - * The app-header's `scrollTarget` property allows to customize the scrollable element to which - * the header responds when the user scrolls. By default, app-header uses the document as - * the scroll target, but you can customize this property by setting the id of the element, e.g. - * - * ```html - *
- * - * - *
- * ``` - * - * In this case, the `scrollTarget` property points to the outer div element. Alternatively, - * you can set this property programmatically: - * - * ```js - * appHeader.scrollTarget = document.querySelector("#scrollingRegion"); - * ``` - * - * ## Backgrounds - * app-header has two background layers that can be used for styling when the header is condensed - * or when the scrollable element is scrolled to the top. - * - * ## Scroll effects - * - * Scroll effects are _optional_ visual effects applied in app-header based on scroll position. For example, - * The [Material Design scrolling techniques](https://www.google.com/design/spec/patterns/scrolling-techniques.html) - * recommends effects that can be installed via the `effects` property. e.g. - * - * ```html - * - * App name - * - * ``` - * - * #### Importing the effects - * - * To use the scroll effects, you must explicitly import them in addition to `app-header`: - * - * ```html - * - * ``` - * - * #### List of effects - * - * **blend-background** - * Fades in/out two background elements by applying CSS opacity based on scroll position. - * You can use this effect to smoothly change the background color or image of the header. - * For example, using the mixin `--app-header-background-rear-layer` lets you assign a different - * background when the header is condensed: - * - * ```css - * app-header { - * background-color: red; - * --app-header-background-rear-layer: { - * /* The header is blue when condensed *\/ - * background-color: blue; - * }; - * } - * ``` - * - * **fade-background** - * Upon scrolling past a threshold, this effect will trigger an opacity transition to - * fade in/out the backgrounds. Compared to the `blend-background` effect, - * this effect doesn't interpolate the opacity based on scroll position. - * - * - * **parallax-background** - * A simple parallax effect that vertically translates the backgrounds based on a fraction - * of the scroll position. For example: - * - * ```css - * app-header { - * --app-header-background-front-layer: { - * background-image: url(...); - * }; - * } - * ``` - * ```html - * - * App name - * - * ``` - * - * The fraction determines how far the background moves relative to the scroll position. - * This value can be assigned via the `scalar` config value and it is typically a value - * between 0 and 1 inclusive. If `scalar=0`, the background doesn't move away from the header. - * - * **resize-title** - * Progressively interpolates the size of the title from the element with the `main-title` attribute - * to the element with the `condensed-title` attribute as the header condenses. For example: - * - * ```html - * - * - *

App name

- *
- * - *

App name

- *
- *
- * ``` - * - * **resize-snapped-title** - * Upon scrolling past a threshold, this effect fades in/out the titles using opacity transitions. - * Similarly to `resize-title`, the `main-title` and `condensed-title` elements must be placed in the - * light DOM. - * - * **waterfall** - * Toggles the shadow property in app-header to create a sense of depth (as recommended in the - * MD spec) between the header and the underneath content. You can change the shadow by - * customizing the `--app-header-shadow` mixin. For example: - * - * ```css - * app-header { - * --app-header-shadow: { - * box-shadow: inset 0px 5px 2px -3px rgba(0, 0, 0, 0.2); - * }; - * } - * ``` - * - * ```html - * - * - *

App name

- *
- *
- * ``` - * - * **material** - * Installs the waterfall, resize-title, blend-background and parallax-background effects. - * - * ### Content attributes - * - * Attribute | Description | Default - * ----------|---------------------|---------------------------------------- - * `sticky` | Element that remains at the top when the header condenses. | The first app-toolbar in the light DOM. - * - * - * ## Styling - * - * Mixin | Description | Default - * ------|-------------|---------- - * `--app-header-background-front-layer` | Applies to the front layer of the background. | {} - * `--app-header-background-rear-layer` | Applies to the rear layer of the background. | {} - * `--app-header-shadow` | Applies to the shadow. | {} - */ -interface AppHeaderElement extends Polymer.Element, Polymer.AppScrollEffectsBehavior, Polymer.AppLayoutBehavior { - - /** - * If true, the header will automatically collapse when scrolling down. - * That is, the `sticky` element remains visible when the header is fully condensed - * whereas the rest of the elements will collapse below `sticky` element. - * - * By default, the `sticky` element is the first toolbar in the light DOM: - * - * ```html - * - * This toolbar remains on top - * - * - * - * ``` - * - * Additionally, you can specify which toolbar or element remains visible in condensed mode - * by adding the `sticky` attribute to that element. For example: if we want the last - * toolbar to remain visible, we can add the `sticky` attribute to it. - * - * ```html - * - * - * - * This toolbar remains on top - * - * ``` - * - * Note the `sticky` element must be a direct child of `app-header`. - */ - condenses: boolean|null|undefined; - - /** - * Mantains the header fixed at the top so it never moves away. - */ - fixed: boolean|null|undefined; - - /** - * Slides back the header when scrolling back up. - */ - reveals: boolean|null|undefined; - - /** - * Displays a shadow below the header. - */ - shadow: boolean|null|undefined; - - /** - * A cached offsetHeight of the current element. - */ - _height: number; - - /** - * The distance in pixels the header will be translated to when scrolling. - */ - _dHeight: number; - - /** - * The offsetTop of `_stickyEl` - */ - _stickyElTop: number; - - /** - * A reference to the element that remains visible when the header condenses. - */ - _stickyElRef: HTMLElement|null; - - /** - * The header's top value used for the `transformY` - */ - _top: number; - - /** - * The current scroll progress. - */ - _progress: number; - _wasScrollingDown: boolean; - _initScrollTop: number; - _initTimestamp: number; - _lastTimestamp: number; - _lastScrollTop: number; - - /** - * The distance the header is allowed to move away. - */ - readonly _maxHeaderTop: any; - - /** - * Returns a reference to the sticky element. - */ - readonly _stickyEl: HTMLElement|null; - - /** - * Updates the scroll state. - * - * @param forceUpdate (default: false) - */ - _updateScrollState(scrollTop: number, forceUpdate?: boolean): void; - - /** - * Returns true if the current element is on the screen. - * That is, visible in the current viewport. - */ - isOnScreen(): boolean; - - /** - * Returns true if there's content below the current element. - */ - isContentBelow(): boolean; - _getDOMRef(id: any): any; - _updateLayoutStates(): void; - _configChanged(): void; - - /** - * Returns true if the current header is allowed to move as the user scrolls. - */ - _mayMove(): boolean; - - /** - * Returns true if the current header will condense based on the size of the header - * and the `consenses` property. - */ - willCondense(): boolean; - - /** - * Transforms the header. - */ - _transformHeader(y: number): void; - _clamp(v: any, min: any, max: any): any; - _ensureBgContainers(): void; - - /** - * Returns an object containing the progress value of the scroll effects - * and the top position of the header. - */ - getScrollState(): object|null; -} - -interface HTMLElementTagNameMap { - "app-header": AppHeaderElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/app-header.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header/app-header.html deleted file mode 100644 index 38bd2fb0..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/app-header.html +++ /dev/null @@ -1,673 +0,0 @@ - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/blend-background-1.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/blend-background-1.html deleted file mode 100644 index 4412728f..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/blend-background-1.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - app-header demo - - - - - - - - - - - - - - - - - - - -

What is material? — Environment

- -
- -

What is material?

-
-
- - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/blend-background-2.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/blend-background-2.html deleted file mode 100644 index a5f913c7..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/blend-background-2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - - - app-header demo - - - - - - - - - - - - - - - - - - - -

What is material? — Environment

- -
- -

What is material?

-
-
- - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/blend-background-3.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/blend-background-3.html deleted file mode 100644 index 15793c9d..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/blend-background-3.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - app-header demo - - - - - - - - - - - - - - - - - - - -

What is material? — Environment

- -
- -

What is material?

-
-
- - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/contacts.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/contacts.html deleted file mode 100644 index 752556ad..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/contacts.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - Contacts Demo - - - - - - - - - - - - - - - - - - - - -
Pharrell Williams
- - -
- - -
Pharrell Williams
-
-
- - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/custom-sticky-element-1.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/custom-sticky-element-1.html deleted file mode 100644 index 06754340..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/custom-sticky-element-1.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - app-header demo - - - - - - - - - - - - - - - - - - - - -

- -
- - - TAB 1 - TAB 2 - TAB 3 - -
- - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/custom-sticky-element-2.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/custom-sticky-element-2.html deleted file mode 100644 index 168ce4c8..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/custom-sticky-element-2.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - app-header demo - - - - - - - - - - - - - - - - - - - - -

- -
- - - TAB 1 - TAB 2 - TAB 3 - -
- - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/give.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/give.html deleted file mode 100644 index b7be7f10..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/give.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - - - - app-header demo - - - - - - - - - - - - - - - - - - - -

GiveDirectly

- -
-

GiveDirectly

-
- - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/index.html deleted file mode 100644 index 7cf003ee..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/index.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - app-header demos - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/music.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/music.html deleted file mode 100644 index 788df0ae..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/music.html +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - - - Music Demo - - - - - - - - - - - - - - - - - - - - - - -
-

GIRL

-
-
Pharrell Williams
-
- - Girl is the second studio album by American recording artist and record producer Pharrell Williams. The album was released on March 3, 2014, through Williams' label i Am Other and Columbia Records. - - -
-
1
-
Marilyn Monroe
-
5:51
- -
- -
-
2
-
Brand New
-
4:31
- -
- -
-
3
-
Hunter
-
4:00
- -
- -
-
4
-
Gush
-
3:54
- -
- -
-
5
-
Happy (From "Despicable Me 2")
-
3:52
- -
- -
-
6
-
Come Get It Bae
-
3:21
- -
- -
-
7
-
Gust of Wind
-
4:45
- -
- -
-
8
-
Lost Queen
-
7:56
- -
- -
-
9
-
Know Who You Are
-
3:56
- -
- -
-
10
-
It Girl
-
4:49
- -
- -
-
11
-
Marilyn Monroe
-
5:51
- -
- -
-
12
-
Brand New
-
4:31
- -
- -
-
13
-
Hunter
-
4:00
- -
- -
-
14
-
Gush
-
3:54
- -
- -
-
15
-
Happy (From "Despicable Me 2")
-
3:52
- -
- -
-
16
-
Come Get It Bae
-
3:21
- -
- -
-
17
-
Gust of Wind
-
4:45
- -
- -
-
18
-
Lost Queen
-
7:56
- -
- -
-
19
-
Know Who You Are
-
3:56
- -
- -
-
20
-
It Girl
-
4:49
- -
-
- - - - - - -
- -
-
- - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/no-effects.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/no-effects.html deleted file mode 100644 index aa569670..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/no-effects.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - app-header demo that doesn't use any effects - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/notes.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/notes.html deleted file mode 100644 index 9077a67c..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/demo/notes.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - - Notes Demo - - - - - - - - - - - - - - - - - - -
- -
-
-
-
-
-
-
-
-
-
-
-
- - - - - - -
Notes
- -
-
- - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/test/app-header.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header/test/app-header.html deleted file mode 100644 index 8d532e9e..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/test/app-header.html +++ /dev/null @@ -1,514 +0,0 @@ - - - - - - test for app-header - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/test/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-header/test/index.html deleted file mode 100644 index d155e2a3..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-header/test/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - app-header tests - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-layout-behavior/app-layout-behavior.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-layout-behavior/app-layout-behavior.d.ts deleted file mode 100644 index b20340ae..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-layout-behavior/app-layout-behavior.d.ts +++ /dev/null @@ -1,32 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-layout-behavior/app-layout-behavior.html - */ - -/// -/// - -declare namespace Polymer { - - interface AppLayoutBehavior extends Polymer.IronResizableBehavior { - attached(): void; - _appResetLayoutHandler(e: any): void; - _updateLayoutStates(): void; - - /** - * Resets the layout. If you changed the size of this element via CSS - * you can notify the changes by either firing the `iron-resize` event - * or calling `resetLayout` directly. - */ - resetLayout(): void; - _notifyLayoutChanged(): void; - _notifyDescendantResize(): void; - } - - const AppLayoutBehavior: object; -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-layout-behavior/app-layout-behavior.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-layout-behavior/app-layout-behavior.html deleted file mode 100644 index b3b24b2b..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-layout-behavior/app-layout-behavior.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-layout.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-layout.d.ts deleted file mode 100644 index b1e0a642..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-layout.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-layout.html - */ - -/// -/// -/// -/// -/// -/// -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-layout.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-layout.html deleted file mode 100644 index c7443361..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-layout.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/README.md b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/README.md deleted file mode 100644 index 016d40f7..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# Scroll effects - -`Polymer.AppScrollEffectsBehavior` provides an interface that allows an element to use scrolls effects. - -### Importing the app-layout effects - -app-layout provides a set of scroll effects that can be used by explicitly importing `app-scroll-effects.html`: - -```html - -``` - -The scroll effects can also be used by individually importing `app-layout/app-scroll-effects/effects/[effectName].html`. -For example: - -```html - -``` - -### Consuming effects - -Effects can be consumed via the `effects` property. For example: - -```html - -``` - -### Creating scroll effects - -You may want to create a custom scroll effect if you need to modify the CSS of an element -based on the scroll position. - -A scroll effect definition is an object with `setUp()`, `tearDown()` and `run()` functions. - -To register the effect, you can use `Polymer.AppLayout.registerEffect(effectName, effectDef)` -For example, let's define an effect that resizes the header's logo: - -```js -Polymer.AppLayout.registerEffect('resizable-logo', { - setUp: function(config) { - // the effect's config is passed to the setUp. - this._fxResizeLogo = { logo: Polymer.dom(this).querySelector('[logo]') }; - }, - - run: function(progress) { - // the progress of the effect - this.transform('scale3d(' + progress + ', '+ progress +', 1)', this._fxResizeLogo.logo); - }, - - tearDown: function() { - // clean up and reset of states - delete this._fxResizeLogo; - } -}); -``` -Now, you can consume the effect: - -```html - - - -``` - -### Imperative API - -```js -var logoEffect = appHeader.createEffect('resizable-logo', effectConfig); -// run the effect: logoEffect.run(progress); -// tear down the effect: logoEffect.tearDown(); -``` - -### Configuring effects - -For effects installed via the `effects` property, their configuration can be set -via the `effectsConfig` property. For example: - -```html - - -``` - -All effects have a `startsAt` and `endsAt` config property. They specify at what -point the effect should start and end. This value goes from 0 to 1 inclusive. diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/app-scroll-effects-behavior.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/app-scroll-effects-behavior.d.ts deleted file mode 100644 index aa1f13eb..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/app-scroll-effects-behavior.d.ts +++ /dev/null @@ -1,256 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-scroll-effects/app-scroll-effects-behavior.html - */ - -/// -/// -/// - -declare namespace Polymer { - - /** - * `Polymer.AppScrollEffectsBehavior` provides an interface that allows an element to use scrolls effects. - * - * ### Importing the app-layout effects - * - * app-layout provides a set of scroll effects that can be used by explicitly importing - * `app-scroll-effects.html`: - * - * ```html - * - * ``` - * - * The scroll effects can also be used by individually importing - * `app-layout/app-scroll-effects/effects/[effectName].html`. For example: - * - * ```html - * - * ``` - * - * ### Consuming effects - * - * Effects can be consumed via the `effects` property. For example: - * - * ```html - * - * ``` - * - * ### Creating scroll effects - * - * You may want to create a custom scroll effect if you need to modify the CSS of an element - * based on the scroll position. - * - * A scroll effect definition is an object with `setUp()`, `tearDown()` and `run()` functions. - * - * To register the effect, you can use `Polymer.AppLayout.registerEffect(effectName, effectDef)` - * For example, let's define an effect that resizes the header's logo: - * - * ```js - * Polymer.AppLayout.registerEffect('resizable-logo', { - * setUp: function(config) { - * // the effect's config is passed to the setUp. - * this._fxResizeLogo = { logo: Polymer.dom(this).querySelector('[logo]') }; - * }, - * - * run: function(progress) { - * // the progress of the effect - * this.transform('scale3d(' + progress + ', '+ progress +', 1)', this._fxResizeLogo.logo); - * }, - * - * tearDown: function() { - * // clean up and reset of states - * delete this._fxResizeLogo; - * } - * }); - * ``` - * Now, you can consume the effect: - * - * ```html - * - * - * - * ``` - * - * ### Imperative API - * - * ```js - * var logoEffect = appHeader.createEffect('resizable-logo', effectConfig); - * // run the effect: logoEffect.run(progress); - * // tear down the effect: logoEffect.tearDown(); - * ``` - * - * ### Configuring effects - * - * For effects installed via the `effects` property, their configuration can be set - * via the `effectsConfig` property. For example: - * - * ```html - * - * - * ``` - * - * All effects have a `startsAt` and `endsAt` config property. They specify at what - * point the effect should start and end. This value goes from 0 to 1 inclusive. - */ - interface AppScrollEffectsBehavior extends Polymer.IronScrollTargetBehavior { - - /** - * A space-separated list of the effects names that will be triggered when the user scrolls. - * e.g. `waterfall parallax-background` installs the `waterfall` and `parallax-background`. - */ - effects: string|null|undefined; - - /** - * An object that configurates the effects installed via the `effects` property. e.g. - * ```js - * element.effectsConfig = { - * "blend-background": { - * "startsAt": 0.5 - * } - * }; - * ``` - * Every effect has at least two config properties: `startsAt` and `endsAt`. - * These properties indicate when the event should start and end respectively - * and relative to the overall element progress. So for example, if `blend-background` - * starts at `0.5`, the effect will only start once the current element reaches 0.5 - * of its progress. In this context, the progress is a value in the range of `[0, 1]` - * that indicates where this element is on the screen relative to the viewport. - */ - effectsConfig: object|null|undefined; - - /** - * Disables CSS transitions and scroll effects on the element. - */ - disabled: boolean|null|undefined; - - /** - * Allows to set a `scrollTop` threshold. When greater than 0, `thresholdTriggered` - * is true only when the scroll target's `scrollTop` has reached this value. - * - * For example, if `threshold = 100`, `thresholdTriggered` is true when the `scrollTop` - * is at least `100`. - */ - threshold: number|null|undefined; - - /** - * True if the `scrollTop` threshold (set in `scrollTopThreshold`) has - * been reached. - */ - readonly thresholdTriggered: boolean|null|undefined; - - /** - * List of effects handlers that will take place during scroll. - */ - _effectsRunFn: Array|null; - - /** - * List of the effects definitions installed via the `effects` property. - */ - _effects: Array|null; - - /** - * The clamped value of `_scrollTop`. - */ - readonly _clampedScrollTop: any; - - /** - * Overrides the `_scrollHandler`. - */ - _scrollHandler(): void; - - /** - * Updates the scroll state. This method should be overridden - * by the consumer of this behavior. - */ - _updateScrollState(scrollTop: number): void; - - /** - * Returns true if the current element is on the screen. - * That is, visible in the current viewport. This method should be - * overridden by the consumer of this behavior. - */ - isOnScreen(): boolean; - - /** - * Returns true if there's content below the current element. This method - * should be overridden by the consumer of this behavior. - */ - isContentBelow(): boolean; - detached(): void; - - /** - * Creates an effect object from an effect's name that can be used to run - * effects programmatically. - * - * @param effectName The effect's name registered via `Polymer.AppLayout.registerEffect`. - * @param effectConfig The effect config object. (Optional) - * @returns An effect object with the following functions: - * - * * `effect.setUp()`, Sets up the requirements for the effect. - * This function is called automatically before the `effect` function returns. - * * `effect.run(progress, y)`, Runs the effect given a `progress`. - * * `effect.tearDown()`, Cleans up any DOM nodes or element references used by the effect. - * - * Example: - * ```js - * var parallax = element.createEffect('parallax-background'); - * // runs the effect - * parallax.run(0.5, 0); - * ``` - */ - createEffect(effectName: string, effectConfig?: object|null): object|null; - - /** - * Called when `effects` or `effectsConfig` changes. - */ - _effectsChanged(effects: any, effectsConfig: any, isAttached: any): void; - - /** - * Forces layout - */ - _layoutIfDirty(): any; - - /** - * Returns an effect object bound to the current context. - * - * @param effectsConfig The effect config object if the effect accepts config values. (Optional) - */ - _boundEffect(effectDef: object|null, effectsConfig?: object|null): any; - - /** - * Sets up the effects. - */ - _setUpEffect(): void; - - /** - * Tears down the effects. - */ - _tearDownEffects(): void; - - /** - * Runs the effects. - * - * @param p The progress - * @param y The top position of the current element relative to the viewport. - */ - _runEffects(p: number, y: number): void; - - /** - * Override this method to return a reference to a node in the local DOM. - * The node is consumed by a scroll effect. - * - * @param id The id for the node. - */ - _getDOMRef(id: string): void; - _getUndefinedMsg(effectName: any): any; - } - - const AppScrollEffectsBehavior: object; -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/app-scroll-effects-behavior.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/app-scroll-effects-behavior.html deleted file mode 100644 index 3f46bfb7..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/app-scroll-effects-behavior.html +++ /dev/null @@ -1,393 +0,0 @@ - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/app-scroll-effects.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/app-scroll-effects.d.ts deleted file mode 100644 index 2d293163..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/app-scroll-effects.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-scroll-effects/app-scroll-effects.html - */ - -/// -/// -/// -/// -/// -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/app-scroll-effects.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/app-scroll-effects.html deleted file mode 100644 index d61258fe..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/app-scroll-effects.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/blend-background.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/blend-background.d.ts deleted file mode 100644 index 9443adb6..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/blend-background.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-scroll-effects/effects/blend-background.html - */ - -/// - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/blend-background.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/blend-background.html deleted file mode 100644 index 1e1dfe15..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/blend-background.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/fade-background.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/fade-background.d.ts deleted file mode 100644 index 7b59f041..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/fade-background.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-scroll-effects/effects/fade-background.html - */ - -/// - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/fade-background.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/fade-background.html deleted file mode 100644 index db1b1d34..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/fade-background.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/material.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/material.d.ts deleted file mode 100644 index 33208370..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/material.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-scroll-effects/effects/material.html - */ - -/// -/// -/// -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/material.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/material.html deleted file mode 100644 index ee04b963..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/material.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/parallax-background.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/parallax-background.d.ts deleted file mode 100644 index a6060106..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/parallax-background.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-scroll-effects/effects/parallax-background.html - */ - -/// - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/parallax-background.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/parallax-background.html deleted file mode 100644 index 7c49fb77..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/parallax-background.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/resize-snapped-title.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/resize-snapped-title.d.ts deleted file mode 100644 index 07f8febc..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/resize-snapped-title.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-scroll-effects/effects/resize-snapped-title.html - */ - -/// - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/resize-snapped-title.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/resize-snapped-title.html deleted file mode 100644 index 6a12e2ad..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/resize-snapped-title.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/resize-title.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/resize-title.d.ts deleted file mode 100644 index bb9871bc..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/resize-title.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-scroll-effects/effects/resize-title.html - */ - -/// - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/resize-title.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/resize-title.html deleted file mode 100644 index 3b3919b1..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/resize-title.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/waterfall.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/waterfall.d.ts deleted file mode 100644 index b424ab99..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/waterfall.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-scroll-effects/effects/waterfall.html - */ - -/// - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/waterfall.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/waterfall.html deleted file mode 100644 index 58f1ae3e..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/effects/waterfall.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/app-scroll-effects-behavior.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/app-scroll-effects-behavior.html deleted file mode 100644 index fc3ec4d5..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/app-scroll-effects-behavior.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - test for app-scroll-effects-behavior - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/blend-background.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/blend-background.html deleted file mode 100644 index 74a96c40..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/blend-background.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - test for the blend-background effect - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/fade-background.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/fade-background.html deleted file mode 100644 index 2cce5707..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/fade-background.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - test for the fade-background effect - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/index.html deleted file mode 100644 index 6ed69596..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/index.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - app-scroll-effects tests - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/parallax-background.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/parallax-background.html deleted file mode 100644 index 7f886adb..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/parallax-background.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - test for the parallax-background effect - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/resize-snapped-title.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/resize-snapped-title.html deleted file mode 100644 index 6f02e651..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/resize-snapped-title.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - test for the resize-snappped-title effect - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/resize-title.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/resize-title.html deleted file mode 100644 index 0e39bbed..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/resize-title.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - test for the resize-title effect - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/utils.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/utils.html deleted file mode 100644 index 5077ae2a..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/utils.html +++ /dev/null @@ -1,43 +0,0 @@ - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/waterfall.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/waterfall.html deleted file mode 100644 index f272fad1..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/waterfall.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - test for the waterfall effect - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/x-container.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/x-container.html deleted file mode 100644 index 9fc3977d..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-scroll-effects/test/x-container.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/README.md b/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/README.md deleted file mode 100644 index 46502b09..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/README.md +++ /dev/null @@ -1,43 +0,0 @@ -## <app-toolbar> - -app-toolbar is a horizontal toolbar containing items that can be used for -label, navigation, search and actions. - -### Example - -Add a title to the toolbar. - -```html - -
App name
-
-``` - -Add a button to the left and right side of the toolbar. - -```html - - -
App name
- -
-``` - -You can use the attributes `top-item` or `bottom-item` to completely fit an element -to the top or bottom of the toolbar respectively. - -### Content attributes - -Attribute | Description ----------------------|--------------------------------------------------------- -`main-title` | The main title element. -`condensed-title` | The title element if used inside a condensed app-header. -`spacer` | Adds a left margin of `64px`. -`bottom-item` | Sticks the element to the bottom of the toolbar. -`top-item` | Sticks the element to the top of the toolbar. - -### Styling - -Custom property | Description | Default ------------------------------|------------------------------|----------------------- -`--app-toolbar-font-size` | Toolbar font size | 20px diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/app-toolbar.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/app-toolbar.d.ts deleted file mode 100644 index 7df2954d..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/app-toolbar.d.ts +++ /dev/null @@ -1,62 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * app-toolbar/app-toolbar.html - */ - -/// -/// - -/** - * app-toolbar is a horizontal toolbar containing items that can be used for - * label, navigation, search and actions. - * - * ### Example - * - * Add a title to the toolbar. - * - * ```html - * - *
App name
- *
- * ``` - * - * Add a button to the left and right side of the toolbar. - * - * ```html - * - * - *
App name
- * - *
- * ``` - * - * You can use the attributes `top-item` or `bottom-item` to completely fit an element - * to the top or bottom of the toolbar respectively. - * - * ### Content attributes - * - * Attribute | Description - * ---------------------|--------------------------------------------------------- - * `main-title` | The main title element. - * `condensed-title` | The title element if used inside a condensed app-header. - * `spacer` | Adds a left margin of `64px`. - * `bottom-item` | Sticks the element to the bottom of the toolbar. - * `top-item` | Sticks the element to the top of the toolbar. - * - * ### Styling - * - * Custom property | Description | Default - * -----------------------------|------------------------------|----------------------- - * `--app-toolbar-font-size` | Toolbar font size | 20px - */ -interface AppToolbarElement extends Polymer.Element { -} - -interface HTMLElementTagNameMap { - "app-toolbar": AppToolbarElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/app-toolbar.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/app-toolbar.html deleted file mode 100644 index 98287ca9..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/app-toolbar.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/demo/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/demo/index.html deleted file mode 100644 index 3b222648..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/demo/index.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - app-toolbar demo - - - - - - - - - - - - - - - - Random Text - - - - - - - -
App name
-
- - -
App name
-
- - - -
App name
-
- - - -
App name
- -
- - - -
App name
-
- - - -
App name
- -
- - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/test/app-toolbar.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/test/app-toolbar.html deleted file mode 100644 index 67eea7e3..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/test/app-toolbar.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - test for app-toolbar - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/test/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/test/index.html deleted file mode 100644 index f5c507dd..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/app-toolbar/test/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - app-toolbar tests - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/bower.json b/node_modules/@polymer/polymer/bower_components/app-layout/bower.json deleted file mode 100644 index 271d19ae..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/bower.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "app-layout", - "version": "2.1.0", - "description": "A set of layout elements for your app", - "authors": [ - "The Polymer Authors" - ], - "license": "https://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/app-layout", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/app-layout" - }, - "main": "app-layout.html", - "demos": { - "Demos": "demo/index.html" - }, - "dependencies": { - "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", - "iron-media-query": "PolymerElements/iron-media-query#1 - 2", - "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#1 - 2", - "iron-scroll-target-behavior": "PolymerElements/iron-scroll-target-behavior#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "es6-promise": "stefanpenner/es6-promise#^4.0.0", - "font-roboto": "PolymerElements/font-roboto#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-icon": "PolymerElements/iron-icon#1 - 2", - "iron-icons": "PolymerElements/iron-icons#1 - 2", - "iron-list": "PolymerElements/iron-list#1 - 2", - "iron-pages": "PolymerElements/iron-pages#1 - 2", - "iron-scroll-threshold": "PolymerElements/iron-scroll-threshold#1 - 2", - "paper-fab": "PolymerElements/paper-fab#1 - 2", - "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", - "paper-item": "PolymerElements/paper-item#1 - 2", - "paper-listbox": "PolymerElements/paper-listbox#1 - 2", - "paper-progress": "PolymerElements/paper-progress#1 - 2", - "paper-spinner": "PolymerElements/paper-spinner#1 - 2", - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "paper-tabs": "PolymerElements/paper-tabs#1 - 2", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "test-fixture": "^1.0.0", - "polymer": "^1.7.1", - "webcomponentsjs": "^0.7" - } - } - }, - "ignore": [], - "private": true, - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/demo/contacts.json b/node_modules/@polymer/polymer/bower_components/app-layout/demo/contacts.json deleted file mode 100644 index 954b3905..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/demo/contacts.json +++ /dev/null @@ -1,11002 +0,0 @@ -[ - { - "index": 0, - "name": "Liz Grimes", - "first": "Isabel", - "last": "Conrad", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/enda/73.jpg", - "boolean": true, - "guid": "8ea90ed8-83e1-4a28-a371-e5c0e1d0e021", - "integer": 28, - "date": "Sun Aug 14 1994 03:27:03 GMT-0700 (PDT)", - "shortText": "est ad reprehenderit occaecat consequat", - "mediumText": "Non duis commodo dolore et esse non adipisicing nisi tempor. Nisi culpa adipisicing quis dolore amet anim nulla aliqua excepteur labore. Adipisicing fugiat anim commodo velit in nisi ex exercitation.", - "longText": "Id aliqua ullamco ullamco commodo ipsum Lorem. Amet ut eu voluptate cillum occaecat Lorem et cillum excepteur ullamco mollit enim. Ea nostrud dolore culpa nulla nostrud ex voluptate anim laborum esse commodo sunt. Velit laboris pariatur labore dolore occaecat enim fugiat qui. Sit in eu ex aute minim deserunt qui consectetur laboris nostrud ad quis qui id.\r\n", - "address": "3 Vista Place", - "city": "Longbranch", - "state": "North Carolina", - "zip": 64470, - "country": "Lesotho", - "email": "isabelconrad@scentric.com", - "phone": "(817) 426-2901", - "color": "rgb(76,120,108)" - }, - { - "index": 1, - "name": "Frazier Lara", - "first": "Jocelyn", - "last": "Wooten", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/guillogo/73.jpg", - "boolean": false, - "guid": "7017f9b1-690e-4c9d-8eee-f63285ca5148", - "integer": 10, - "date": "Tue May 24 1988 14:10:20 GMT-0700 (PDT)", - "shortText": "consectetur culpa adipisicing voluptate enim", - "mediumText": "Occaecat in do proident et deserunt quis commodo veniam occaecat mollit. Nulla enim elit nulla excepteur.", - "longText": "Laboris nisi cupidatat occaecat officia ea sunt ex deserunt mollit. Est laboris in amet eu reprehenderit nisi minim. Id nulla fugiat ad nostrud nostrud tempor adipisicing. Minim duis esse irure nostrud cillum cupidatat. Cupidatat proident labore id duis deserunt cupidatat do incididunt sint minim consectetur. Ea Lorem reprehenderit fugiat culpa dolore consequat exercitation labore sit sunt culpa laborum dolore.\r\nAd nisi incididunt ea ex ullamco magna tempor. Ipsum fugiat commodo reprehenderit deserunt in adipisicing. Reprehenderit aliqua mollit ut enim. Veniam ipsum occaecat nisi ut pariatur dolor magna ea tempor eiusmod adipisicing aliqua adipisicing. Fugiat irure laborum incididunt nostrud cupidatat consectetur.\r\nEx esse cupidatat exercitation aute eu est excepteur tempor consectetur elit elit amet. Ullamco sunt aliqua veniam eu eiusmod esse sit. Incididunt aute non ex irure in deserunt. Nulla sit nulla sunt quis Lorem tempor officia exercitation nulla esse ipsum. Non qui sint ullamco minim ut consequat consectetur Lorem consequat.\r\nEiusmod irure aliqua magna non ea enim incididunt. Irure ea sunt deserunt laboris qui. Officia nostrud aute commodo sit sunt nisi irure officia cillum tempor id do tempor et. Est cupidatat esse consequat laboris culpa minim exercitation laboris eu. Ea incididunt nulla fugiat est pariatur do velit consectetur. Veniam dolor mollit veniam dolore ea consequat qui dolore deserunt adipisicing officia officia eu est. Velit dolor nostrud veniam reprehenderit consectetur quis ad consequat aliquip dolore labore.\r\nIn nisi non sunt elit aute nisi elit in adipisicing excepteur ex. Anim nulla ex tempor qui nulla dolor aute fugiat et sit ipsum sunt eiusmod sunt. Irure est dolore proident qui est adipisicing minim. Sint consequat adipisicing aute amet adipisicing adipisicing. Do labore ea enim occaecat cupidatat et. Elit deserunt anim commodo ullamco. Consequat elit excepteur nisi mollit ea.\r\n", - "address": "2 Catherine Street", - "city": "Healy", - "state": "Connecticut", - "zip": 41121, - "country": "Mongolia", - "email": "jocelynwooten@scentric.com", - "phone": "(901) 441-2582", - "color": "rgb(134,91,60)" - }, - { - "index": 2, - "name": "Dora Griffith", - "first": "Valentine", - "last": "Meyer", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iboldurev/73.jpg", - "boolean": true, - "guid": "8c3bd9ad-e8d6-4ea4-85e6-d145295f3f91", - "integer": 99, - "date": "Sat Feb 17 1973 03:45:57 GMT-0800 (PST)", - "shortText": "veniam qui", - "mediumText": "Nulla ex consectetur dolore dolore cillum. Proident dolor cupidatat consequat irure enim nostrud aliqua fugiat tempor commodo et eiusmod irure. Lorem deserunt eiusmod laborum velit tempor do nostrud reprehenderit exercitation amet occaecat eiusmod aliqua sint. Dolore commodo ex ea id veniam ullamco et cupidatat dolore. Sit nostrud minim irure sint eiusmod ea est est ipsum eiusmod.", - "longText": "Ullamco eiusmod velit labore sunt deserunt excepteur commodo sunt anim incididunt ullamco adipisicing labore Lorem. Est id nostrud ad eiusmod ad ex aliqua quis irure dolore nostrud. Aute nostrud magna tempor ex pariatur cupidatat occaecat cillum ipsum reprehenderit cillum aute proident ex. Lorem ea ipsum quis adipisicing sit exercitation ipsum. Consectetur amet nulla id amet exercitation labore minim eu nisi ullamco id do. Cillum laborum sint elit laborum eiusmod irure nulla irure.\r\nId officia mollit commodo do laborum ut officia officia. Irure reprehenderit aliqua mollit pariatur. Exercitation laborum reprehenderit fugiat nisi pariatur anim mollit magna aliquip eu labore culpa reprehenderit. Irure ad quis magna laboris nisi commodo.\r\nPariatur ea exercitation labore laborum amet et mollit. Magna tempor laboris officia commodo exercitation consectetur ullamco esse. Non cillum laborum et et nisi. Culpa laboris ad amet est minim qui ea. Consequat nulla voluptate incididunt enim qui proident consectetur et adipisicing mollit. Esse elit incididunt excepteur deserunt reprehenderit quis irure eu Lorem tempor. Qui ea pariatur laborum culpa nulla eu consectetur exercitation.\r\nDo nisi occaecat eiusmod ad cupidatat nostrud deserunt ea ex ullamco do exercitation. Sit aliqua magna Lorem tempor commodo duis duis eu ex. Do labore voluptate proident elit ad id. Lorem laboris nostrud esse occaecat. Deserunt elit nisi et labore fugiat consectetur excepteur esse culpa. Amet ipsum sunt minim sint laboris incididunt. Esse excepteur excepteur mollit ea ipsum exercitation.\r\nIn dolore nulla eiusmod exercitation culpa in voluptate voluptate ipsum dolore proident. Minim enim veniam occaecat deserunt eiusmod consectetur consectetur elit id magna laboris reprehenderit nisi. Magna enim cupidatat non laborum minim anim consequat. Exercitation cupidatat tempor irure consequat.\r\n", - "address": "4 Whitty Lane", - "city": "Nicholson", - "state": "South Carolina", - "zip": 41343, - "country": "Germany", - "email": "valentinemeyer@scentric.com", - "phone": "(956) 428-2996", - "color": "rgb(201,142,97)" - }, - { - "index": 3, - "name": "Shelley Molina", - "first": "Silva", - "last": "Alexander", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/smalonso/73.jpg", - "boolean": true, - "guid": "37224065-ac71-4716-be9a-108ecddfee47", - "integer": 16, - "date": "Wed Aug 02 1995 07:03:12 GMT-0700 (PDT)", - "shortText": "laboris do velit ipsum non", - "mediumText": "Eiusmod ut magna sint ut dolor magna anim ipsum non velit. Occaecat reprehenderit ex aliquip consequat. Eu dolor non in pariatur dolore minim.", - "longText": "Cillum ullamco ullamco sunt sunt incididunt ea commodo enim nulla irure irure. Magna sunt incididunt do duis ad. Magna pariatur dolore commodo duis reprehenderit commodo aliqua anim sit deserunt veniam aute officia. Consequat non deserunt deserunt cupidatat ad do culpa. Labore aliqua aliqua ex sint ut.\r\nEnim ullamco elit eu mollit id ullamco. Tempor velit amet anim sint est ea consequat commodo ea. Aliquip magna veniam pariatur sint ullamco est aliquip do reprehenderit qui. Anim nulla occaecat commodo quis velit fugiat veniam ut.\r\nEst nisi proident id incididunt occaecat aliquip in cillum reprehenderit non et. Incididunt consectetur fugiat aute excepteur eu reprehenderit ex laboris dolore dolor reprehenderit mollit. Amet laboris ipsum ullamco id pariatur commodo excepteur est sint cillum incididunt.\r\n", - "address": "2 Berkeley Place", - "city": "Manila", - "state": "Michigan", - "zip": 22009, - "country": "Thailand", - "email": "silvaalexander@scentric.com", - "phone": "(823) 415-2224", - "color": "rgb(113,105,251)" - }, - { - "index": 4, - "name": "Rita Lopez", - "first": "Hopkins", - "last": "Wong", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/taherrapee/73.jpg", - "boolean": false, - "guid": "1ea0922e-179d-4057-abeb-d8fe63e55da8", - "integer": 94, - "date": "Wed Sep 21 2011 04:03:55 GMT-0700 (PDT)", - "shortText": "ad esse ullamco", - "mediumText": "Fugiat nostrud et consectetur mollit labore incididunt est duis nostrud id tempor veniam ad. Nulla voluptate est irure ipsum commodo do nostrud. Minim aliqua voluptate officia sit tempor nulla esse pariatur eu. Ipsum deserunt est magna veniam adipisicing nisi aute officia.", - "longText": "Officia do consequat ullamco est voluptate voluptate. Esse tempor irure aute ullamco. Aliqua veniam esse mollit veniam elit consectetur aliqua anim. Irure aute nostrud voluptate tempor consequat ut elit elit ipsum cupidatat. Aliqua duis duis minim tempor mollit qui. Labore id adipisicing laborum commodo. Tempor aliqua velit excepteur velit laborum Lorem id amet pariatur.\r\nEt nisi reprehenderit aliquip dolore ea ut aliquip duis laboris pariatur tempor cillum. Pariatur quis mollit aliquip ut proident sunt. Est aute laboris tempor officia. Sint anim qui officia deserunt amet Lorem occaecat aliquip. In eiusmod elit anim id elit eiusmod ex veniam sit sit adipisicing aliquip.\r\nQuis irure fugiat labore ex pariatur fugiat est irure. Deserunt commodo in nostrud sit Lorem amet non quis commodo eu. Nulla voluptate id enim commodo fugiat esse qui magna nostrud occaecat. Excepteur sunt cupidatat esse consequat sit voluptate ipsum magna excepteur deserunt sunt laboris labore minim. Labore ipsum ullamco dolore sint ut aliqua id nisi sunt id ipsum ea aute magna. Consequat qui commodo velit esse anim reprehenderit ea anim ut duis et veniam deserunt. Consequat amet dolor esse cupidatat incididunt exercitation laboris esse in labore.\r\nCulpa commodo commodo veniam elit elit. Consequat proident deserunt voluptate ea ut consectetur sit ex ex proident dolore nisi. Mollit est mollit sint eiusmod mollit voluptate adipisicing tempor cupidatat nisi duis dolor irure id.\r\nEu velit aliquip consectetur mollit. Officia ipsum incididunt cupidatat occaecat consequat adipisicing. Aute cupidatat quis quis consectetur aliqua. Consequat ut eu exercitation elit Lorem incididunt sint commodo ut consectetur eu non. Pariatur pariatur ut sunt aliquip exercitation nostrud mollit cillum nostrud ea cillum.\r\n", - "address": "4 Tompkins Avenue", - "city": "Movico", - "state": "Maine", - "zip": 89440, - "country": "Seychelles", - "email": "hopkinswong@scentric.com", - "phone": "(814) 488-2063", - "color": "rgb(133,126,66)" - }, - { - "index": 5, - "name": "Wagner Shelton", - "first": "Harriet", - "last": "Sherman", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ismailmayat/73.jpg", - "boolean": true, - "guid": "46a4a1bc-97af-46e0-aedd-c3cc42e6b8f5", - "integer": 27, - "date": "Wed Jul 07 2010 05:48:57 GMT-0700 (PDT)", - "shortText": "do dolore tempor labore", - "mediumText": "Enim exercitation incididunt minim eiusmod est enim qui ex sit. Sit duis eiusmod officia nostrud ullamco aliquip. Minim ipsum ad fugiat dolore sint nisi tempor. Anim minim sint nisi est ea id cillum adipisicing ullamco fugiat velit aute.", - "longText": "Do veniam eiusmod sint irure. Ad aute magna consequat sint enim duis ad laboris mollit dolore esse ex do labore. Minim pariatur incididunt velit nostrud proident minim sit ad ex Lorem dolore. Esse do do sit veniam officia non sunt aliquip non exercitation id aliquip voluptate elit.\r\n", - "address": "3 Stratford Road", - "city": "Makena", - "state": "Kansas", - "zip": 21389, - "country": "Chad", - "email": "harrietsherman@scentric.com", - "phone": "(887) 497-3612", - "color": "rgb(195,89,110)" - }, - { - "index": 6, - "name": "Bethany Adkins", - "first": "Stacie", - "last": "Bartlett", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/carlyson/73.jpg", - "boolean": false, - "guid": "17aac57d-4644-44d8-8a6b-b2eedd3d42dc", - "integer": 49, - "date": "Sun Mar 14 1999 23:13:33 GMT-0800 (PST)", - "shortText": "deserunt", - "mediumText": "Lorem dolor sint labore minim eu ullamco cupidatat ea velit minim. Sint eiusmod dolor nisi adipisicing pariatur esse sint anim labore consectetur irure exercitation cillum. Quis labore nulla occaecat incididunt qui ex dolor voluptate sunt eiusmod sunt proident occaecat excepteur. Dolore quis magna adipisicing esse enim occaecat.", - "longText": "Aute labore ipsum id proident occaecat cillum magna commodo excepteur Lorem et ea incididunt. Labore reprehenderit minim ipsum id aliquip fugiat elit. Sit in esse aute mollit id elit sint amet minim commodo id. Esse tempor aliqua enim amet anim commodo non anim nisi.\r\n", - "address": "4 Luquer Street", - "city": "Newcastle", - "state": "Iowa", - "zip": 72190, - "country": "Uruguay", - "email": "staciebartlett@scentric.com", - "phone": "(957) 412-3261", - "color": "rgb(164,84,221)" - }, - { - "index": 7, - "name": "Angelia Rowe", - "first": "Charlene", - "last": "Stevens", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thewillbeard/73.jpg", - "boolean": true, - "guid": "f3c6a195-d50e-479f-9c2a-c54c2a629852", - "integer": 13, - "date": "Sat Jan 04 1992 04:10:22 GMT-0800 (PST)", - "shortText": "eu reprehenderit aliquip minim", - "mediumText": "Fugiat ipsum ex irure dolore. Reprehenderit laborum proident commodo ut qui ea reprehenderit duis occaecat nostrud aliqua.", - "longText": "Esse ullamco veniam aliquip cillum aliqua veniam in consequat eu cupidatat. Ad amet reprehenderit sit anim dolor sit amet labore magna irure consequat duis cupidatat cillum. Voluptate aute consectetur ea elit labore nulla reprehenderit excepteur sit laboris sit.\r\nUllamco aliqua adipisicing velit adipisicing nulla anim cillum sunt mollit labore. Et anim aliquip adipisicing non. Exercitation consectetur nisi aute ipsum eiusmod nisi dolore. Excepteur deserunt reprehenderit occaecat sunt eu culpa ullamco proident qui excepteur. Sit proident sunt elit aliqua sit dolore deserunt officia fugiat laborum eiusmod nisi est dolor.\r\nQuis fugiat duis ullamco mollit do. Cillum cupidatat magna do id proident ut nisi do nostrud fugiat cillum incididunt. Est enim tempor labore tempor qui ipsum reprehenderit aliquip commodo quis est aute eiusmod.\r\nFugiat deserunt esse laborum labore sit nisi mollit eu dolore elit non ullamco. Velit id et quis aute esse culpa deserunt nostrud. Quis consequat consectetur fugiat ex aute sit proident aliqua dolor laboris et. Ipsum aliquip minim nostrud nostrud sunt quis eiusmod ea fugiat anim sint est duis aute.\r\nVelit aliqua cillum laboris sit officia deserunt incididunt. Consequat labore ad incididunt incididunt excepteur ex ad sunt dolore nulla qui pariatur. Cupidatat aute qui velit ipsum mollit. Aliqua veniam velit elit nostrud do consequat in in ea ea. Proident ea in qui adipisicing tempor irure qui eu ex dolore deserunt. Ipsum voluptate nulla id id culpa consectetur cillum nulla amet. Amet elit fugiat dolore anim laborum irure aute.\r\n", - "address": "4 Tiffany Place", - "city": "Dargan", - "state": "Vermont", - "zip": 31427, - "country": "Burkina Faso", - "email": "charlenestevens@scentric.com", - "phone": "(946) 404-2511", - "color": "rgb(99,147,74)" - }, - { - "index": 8, - "name": "Knox Rivers", - "first": "Reyes", - "last": "Hartman", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tgormtx/73.jpg", - "boolean": true, - "guid": "88e71d65-5a7a-4973-a1dc-9f5c1df485c8", - "integer": 41, - "date": "Sat May 28 1994 15:27:35 GMT-0700 (PDT)", - "shortText": "incididunt ut", - "mediumText": "Quis voluptate eu ea et id voluptate.", - "longText": "Nostrud esse proident laborum et ex. Cupidatat proident ex velit id fugiat nulla exercitation Lorem velit ullamco exercitation excepteur. Occaecat reprehenderit occaecat in in deserunt. Ea quis laborum cupidatat ullamco aliquip. Duis proident ad mollit do eiusmod non minim sint voluptate nisi in ea deserunt consequat. Nostrud aliqua voluptate sit aliqua. Do laborum dolor ex commodo irure.\r\nIrure ipsum laboris elit ullamco labore cillum consequat et esse reprehenderit culpa elit sint consectetur. Aute exercitation excepteur Lorem do occaecat voluptate ullamco ullamco commodo sint deserunt. Esse nulla laboris non dolore adipisicing fugiat enim Lorem cillum do id proident quis eu. Ullamco officia consectetur aliqua labore cupidatat anim sint. Ipsum aute aliquip magna nostrud sint officia id irure. Non ad non reprehenderit id sunt cupidatat esse tempor officia proident occaecat qui mollit ut.\r\nExcepteur excepteur ullamco aute deserunt magna laboris ipsum ullamco laborum laboris nostrud. Excepteur sunt fugiat aliquip nostrud magna cillum commodo voluptate amet ad laboris. Officia minim sint dolor nostrud fugiat. Consequat velit sint irure amet cillum enim sunt pariatur amet mollit aute ipsum cupidatat do.\r\n", - "address": "3 Wythe Place", - "city": "Coldiron", - "state": "Nebraska", - "zip": 76971, - "country": "Greenland", - "email": "reyeshartman@scentric.com", - "phone": "(910) 533-3832", - "color": "rgb(99,55,193)" - }, - { - "index": 9, - "name": "Warren Scott", - "first": "Alissa", - "last": "Duncan", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/andresenfredrik/73.jpg", - "boolean": true, - "guid": "dfc23019-ab40-4597-91fe-74bcf60a9e2b", - "integer": 54, - "date": "Sun Feb 08 2009 21:57:53 GMT-0800 (PST)", - "shortText": "ullamco aliquip veniam", - "mediumText": "Officia est sint velit magna reprehenderit.", - "longText": "Eu ipsum ipsum nisi voluptate sit voluptate occaecat sunt laborum do aute. Et id amet consequat culpa sunt. Quis aliquip adipisicing velit officia adipisicing cupidatat. Sint Lorem et consequat consectetur. Anim adipisicing ullamco dolore pariatur aliquip quis aliqua qui cillum amet amet fugiat.\r\nCupidatat fugiat exercitation duis proident in esse eiusmod dolore nisi ut. Anim dolor minim elit est ex eiusmod est. In elit pariatur non non veniam nostrud consectetur.\r\n", - "address": "4 Henderson Walk", - "city": "Oley", - "state": "Florida", - "zip": 38878, - "country": "Fiji", - "email": "alissaduncan@scentric.com", - "phone": "(876) 584-3746", - "color": "rgb(218,58,52)" - }, - { - "index": 10, - "name": "Mai Shepherd", - "first": "Christina", - "last": "Craft", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mwarkentin/73.jpg", - "boolean": false, - "guid": "7b829e11-da52-4302-a645-4711c9af7df2", - "integer": 40, - "date": "Sat Apr 18 1992 20:34:36 GMT-0700 (PDT)", - "shortText": "culpa laboris aliquip veniam nostrud", - "mediumText": "Dolore voluptate esse eiusmod ea reprehenderit aliqua sunt magna pariatur tempor veniam ad reprehenderit nostrud. Deserunt esse fugiat enim nisi in fugiat eu. Enim sit deserunt nostrud adipisicing laboris voluptate eu do non exercitation culpa deserunt. Ullamco cillum occaecat cillum adipisicing cupidatat deserunt qui. Tempor nisi duis irure cillum occaecat ullamco cillum quis enim exercitation proident proident excepteur.", - "longText": "Quis incididunt in cillum in sit deserunt excepteur ipsum magna consectetur nulla. Incididunt cillum reprehenderit ut cupidatat proident officia commodo eiusmod id nulla aliquip aliquip anim pariatur. Sint tempor do elit nisi minim consequat cupidatat non mollit ex. Laboris ullamco laborum pariatur ea exercitation eu tempor. Aute incididunt voluptate ut nulla veniam sint. Eu aliquip labore aliquip dolore sunt reprehenderit elit labore elit aliqua reprehenderit duis quis. Esse qui pariatur nostrud nostrud irure nulla aliqua non pariatur.\r\nReprehenderit sunt consequat laborum eu tempor ad Lorem commodo consequat. Incididunt officia est incididunt aliquip mollit pariatur enim qui pariatur non anim veniam aute ullamco. Fugiat nisi aliqua ex in pariatur cillum aliquip nisi elit dolor laborum labore do sit.\r\nConsectetur non sit aliqua esse est aliqua. Deserunt consequat Lorem dolore proident elit occaecat in. Esse commodo aute minim adipisicing enim eiusmod aliqua magna ea magna. Qui proident id adipisicing non ea non quis sit. Et dolore dolore labore non consequat.\r\nNostrud qui irure laborum ipsum occaecat consectetur laboris. Sunt irure eiusmod irure labore cillum veniam enim. Do aliquip proident et amet sunt laborum dolore amet reprehenderit exercitation do id duis. Sunt magna labore minim nostrud enim laborum mollit ullamco amet laborum mollit magna consequat. Sunt eiusmod cupidatat tempor duis exercitation ad minim laboris. Magna dolor nulla et ut eiusmod incididunt Lorem anim magna. Ipsum sit sint quis eu deserunt nulla nisi ad in amet proident.\r\n", - "address": "3 Ocean Court", - "city": "Fairmount", - "state": "New Jersey", - "zip": 95002, - "country": "Viet Nam", - "email": "christinacraft@scentric.com", - "phone": "(842) 503-2389", - "color": "rgb(181,253,141)" - }, - { - "index": 11, - "name": "Flora Tran", - "first": "Burt", - "last": "Landry", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/herkulano/73.jpg", - "boolean": false, - "guid": "3efeb9cc-5705-4e17-b800-42ee8e354d30", - "integer": 64, - "date": "Fri Apr 30 1982 14:23:53 GMT-0700 (PDT)", - "shortText": "nostrud ipsum", - "mediumText": "Excepteur mollit velit nulla nisi culpa irure laboris cillum sunt ullamco. Laborum minim excepteur dolore ea labore Lorem eiusmod adipisicing.", - "longText": "Laborum exercitation id cupidatat voluptate cupidatat laboris id. Do exercitation dolor anim occaecat officia. Fugiat esse et aliqua incididunt consequat.\r\n", - "address": "2 Butler Street", - "city": "Walker", - "state": "Wisconsin", - "zip": 56241, - "country": "France, Metropolitan", - "email": "burtlandry@scentric.com", - "phone": "(914) 461-3510", - "color": "rgb(95,147,193)" - }, - { - "index": 12, - "name": "Crawford Jordan", - "first": "Baldwin", - "last": "Hammond", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jonny_moon/73.jpg", - "boolean": true, - "guid": "758e8af9-6a3c-47e1-a062-b49e6263b6e8", - "integer": 80, - "date": "Sat Sep 22 2012 18:24:55 GMT-0700 (PDT)", - "shortText": "excepteur eiusmod sit irure", - "mediumText": "Ad esse ex exercitation aliqua cillum. Magna ut est nisi nisi aute enim officia excepteur aliqua. Excepteur aliqua dolor sunt mollit esse officia.", - "longText": "Esse fugiat laborum mollit labore exercitation dolor magna esse anim qui in. Excepteur proident exercitation duis laboris nostrud irure fugiat labore aute ut pariatur ea. Adipisicing labore ad laborum id et ad. Lorem laboris nulla velit pariatur ipsum. Cillum reprehenderit anim dolore mollit dolor. Ut velit veniam pariatur nisi dolor anim ut laborum cillum ut ad.\r\n", - "address": "3 Preston Court", - "city": "Vincent", - "state": "Washington", - "zip": 47560, - "country": "Uganda", - "email": "baldwinhammond@scentric.com", - "phone": "(800) 559-2165", - "color": "rgb(175,176,59)" - }, - { - "index": 13, - "name": "Stanley Williams", - "first": "Laverne", - "last": "Hampton", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/alyssalowww/73.jpg", - "boolean": false, - "guid": "718262e9-01e7-4016-b068-6edd11a14a38", - "integer": 62, - "date": "Sat Sep 27 1975 16:25:15 GMT-0700 (PDT)", - "shortText": "tempor", - "mediumText": "Sunt voluptate magna ullamco cupidatat laborum anim irure.", - "longText": "Duis magna nulla laborum reprehenderit ullamco ipsum irure. Exercitation veniam Lorem Lorem est commodo. In et occaecat et quis veniam quis esse ea anim cupidatat labore.\r\nDeserunt commodo est consectetur velit ullamco eu do nisi consequat culpa sunt. Nulla aliquip veniam anim reprehenderit irure occaecat sit nulla. Culpa Lorem in culpa adipisicing eiusmod aute cillum fugiat voluptate deserunt.\r\nDo do enim et tempor minim aliqua incididunt aute nulla ullamco fugiat magna occaecat in. Mollit aute sunt eu culpa enim magna nulla pariatur cillum amet quis consectetur et laboris. Ex officia nulla dolor ea aliqua est voluptate do Lorem aliquip irure. Lorem velit ad eiusmod aliquip. Amet irure amet consequat est aliqua quis.\r\nEt Lorem magna sunt aliquip dolore minim. Adipisicing ea ipsum dolore commodo labore eiusmod nisi consectetur. Reprehenderit culpa officia culpa mollit. Eu nostrud ullamco elit nostrud incididunt. Reprehenderit officia fugiat est sunt sunt consectetur Lorem ex magna reprehenderit.\r\nElit laboris eiusmod sunt cupidatat elit qui irure adipisicing culpa voluptate laborum eiusmod nisi. Ullamco magna minim enim ea veniam incididunt laborum aliqua qui minim commodo laborum. Consectetur nisi adipisicing voluptate velit ex. Id anim est sunt elit dolore qui incididunt aute voluptate consectetur exercitation. Sint tempor est laboris laborum incididunt fugiat dolor. Laboris est duis ullamco laborum eiusmod incididunt aliquip aute.\r\n", - "address": "4 Varet Street", - "city": "Breinigsville", - "state": "Oregon", - "zip": 54164, - "country": "Antarctica", - "email": "lavernehampton@scentric.com", - "phone": "(988) 478-3842", - "color": "rgb(225,78,134)" - }, - { - "index": 14, - "name": "Key Keith", - "first": "Kirsten", - "last": "Chang", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rafelorden/73.jpg", - "boolean": true, - "guid": "1e75c394-1574-4168-a33d-c5895f7af76d", - "integer": 47, - "date": "Tue Sep 18 1990 08:36:33 GMT-0700 (PDT)", - "shortText": "quis proident ea", - "mediumText": "Do voluptate et reprehenderit aute tempor exercitation ipsum enim quis elit dolore in quis. Veniam sunt dolore excepteur consectetur. Lorem occaecat laborum elit veniam ad commodo sint ullamco exercitation aliquip.", - "longText": "Nulla esse et consectetur in nulla nostrud laboris reprehenderit minim sit sunt nisi est fugiat. Duis elit id sit excepteur amet aute culpa incididunt. Nisi veniam ut nisi mollit sunt proident Lorem reprehenderit. Et voluptate occaecat veniam et proident ipsum non cillum aliquip laboris ad.\r\n", - "address": "4 Ryder Avenue", - "city": "Wheatfields", - "state": "Illinois", - "zip": 28092, - "country": "Kiribati", - "email": "kirstenchang@scentric.com", - "phone": "(882) 531-2818", - "color": "rgb(118,83,134)" - }, - { - "index": 15, - "name": "Lizzie Oneal", - "first": "Mercado", - "last": "Hancock", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/wim1k/73.jpg", - "boolean": false, - "guid": "8fbb9f3a-64df-4069-9aec-0d3dd0c2dd3f", - "integer": 22, - "date": "Thu Jan 02 1986 03:48:22 GMT-0800 (PST)", - "shortText": "cupidatat pariatur consequat incididunt", - "mediumText": "Non do dolore consequat nostrud. Ullamco dolore sunt anim incididunt aliqua minim mollit ad consectetur do ipsum.", - "longText": "Enim consequat dolor nostrud culpa cillum consequat mollit eu sint est commodo. Sit cillum minim incididunt id mollit eiusmod non nostrud sunt proident aliquip. Excepteur occaecat amet ullamco deserunt. Nisi elit excepteur commodo nisi anim incididunt consequat laboris exercitation pariatur occaecat deserunt sint. Aliquip in non quis enim cillum eiusmod duis pariatur elit proident consequat nostrud proident culpa.\r\nMollit culpa adipisicing laboris occaecat commodo id incididunt aliquip adipisicing ex ipsum elit elit adipisicing. Officia voluptate reprehenderit elit dolore. Consequat culpa officia id ut irure eu Lorem eu mollit excepteur adipisicing aute occaecat amet. Anim reprehenderit enim deserunt velit elit ut amet. Deserunt voluptate eiusmod labore tempor duis in est consequat adipisicing excepteur sunt consequat ea. Occaecat eiusmod fugiat do elit sunt.\r\nDeserunt fugiat velit mollit do culpa sunt in enim qui tempor anim esse sunt. Do eu fugiat culpa ex aliquip quis exercitation. Culpa non culpa duis magna officia dolore officia minim culpa non. Enim voluptate minim ullamco eiusmod dolore do sit non quis et anim incididunt aliqua tempor.\r\n", - "address": "4 Sumner Place", - "city": "Ruckersville", - "state": "West Virginia", - "zip": 65886, - "country": "Ecuador", - "email": "mercadohancock@scentric.com", - "phone": "(996) 557-3624", - "color": "rgb(244,178,231)" - }, - { - "index": 16, - "name": "Bentley Guthrie", - "first": "Obrien", - "last": "Bruce", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rpeezy/73.jpg", - "boolean": false, - "guid": "720e6095-dc65-4bef-b8bf-56b3e43c13e8", - "integer": 33, - "date": "Sat Sep 09 1989 04:51:19 GMT-0700 (PDT)", - "shortText": "nulla officia ullamco anim", - "mediumText": "Incididunt ut irure quis non ad ut tempor et labore enim Lorem eiusmod. Sit laborum elit duis pariatur occaecat fugiat labore. Laborum velit incididunt dolor minim aute aute. Cillum id amet ut in. Eiusmod tempor et fugiat do qui dolor aliquip labore mollit tempor.", - "longText": "Labore et amet excepteur ea id. Anim mollit cupidatat nulla in sint. Nulla nulla proident Lorem minim consequat ea quis. Non Lorem mollit duis aliquip labore est. Eiusmod excepteur do do eiusmod officia id nisi proident consequat. Occaecat anim eiusmod dolore nostrud culpa adipisicing commodo anim incididunt laborum.\r\nDuis occaecat qui ullamco in magna nisi ad ex. Qui laboris tempor nulla magna. Ut est nulla laboris mollit do id qui esse exercitation culpa officia exercitation. Ipsum mollit amet ad exercitation ut eu Lorem reprehenderit magna. Veniam laboris officia ea voluptate sint anim qui est quis mollit qui occaecat cillum. Officia magna deserunt eu laboris culpa proident.\r\nElit est eiusmod non dolor nisi tempor et in deserunt eiusmod veniam ea quis. Elit magna anim pariatur ea do elit in duis cupidatat incididunt quis qui laboris. Ad ad ex officia proident ullamco consequat labore nulla consequat enim.\r\nProident ut elit quis anim reprehenderit amet deserunt eiusmod sit sit velit proident deserunt sunt. Est quis magna fugiat in nisi proident. Adipisicing Lorem sint enim esse laboris sit laborum.\r\n", - "address": "2 Chester Street", - "city": "Finzel", - "state": "Mississippi", - "zip": 52444, - "country": "Bulgaria", - "email": "obrienbruce@scentric.com", - "phone": "(923) 461-2312", - "color": "rgb(52,103,133)" - }, - { - "index": 17, - "name": "Marsh Cleveland", - "first": "Pearl", - "last": "Moran", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/sectronov/73.jpg", - "boolean": true, - "guid": "9b385d87-2847-44f4-acae-a47970ff7c9f", - "integer": 8, - "date": "Tue Apr 26 1988 18:46:50 GMT-0700 (PDT)", - "shortText": "reprehenderit in reprehenderit dolor", - "mediumText": "Ex cillum in minim ullamco laborum. Dolor dolore adipisicing dolore ad.", - "longText": "Voluptate fugiat veniam do minim culpa. Proident irure mollit est exercitation est. Tempor pariatur proident excepteur aliquip cupidatat quis id ut fugiat excepteur tempor aliquip ea non. Consectetur ipsum Lorem reprehenderit laboris enim reprehenderit duis irure eu sint sit magna eu cupidatat. Sunt sunt laborum mollit ex fugiat ex quis. Proident quis labore occaecat est laborum quis ea irure ipsum magna ad nisi ut. Proident est culpa aliquip ullamco irure eu duis duis occaecat Lorem amet qui.\r\nMinim in adipisicing nostrud Lorem esse anim aute ullamco adipisicing ut enim magna. Cupidatat non dolor pariatur deserunt consectetur cillum dolor adipisicing. In proident commodo non exercitation cupidatat enim culpa officia voluptate. Et in sunt dolore mollit aute commodo sint et adipisicing. Labore velit esse occaecat esse commodo tempor veniam officia Lorem proident aute.\r\nEx magna aliqua adipisicing non esse labore non duis. Excepteur cupidatat eiusmod laborum laborum in quis reprehenderit id irure. Incididunt laboris qui adipisicing eu.\r\n", - "address": "4 Portland Avenue", - "city": "Henrietta", - "state": "Rhode Island", - "zip": 53764, - "country": "American Samoa", - "email": "pearlmoran@scentric.com", - "phone": "(964) 543-3486", - "color": "rgb(168,119,234)" - }, - { - "index": 18, - "name": "Maude Perry", - "first": "Underwood", - "last": "Barton", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/starburst1977/73.jpg", - "boolean": true, - "guid": "0f6385b5-481e-4ddf-9ad4-b91f8e951922", - "integer": 33, - "date": "Wed Apr 23 2014 06:02:36 GMT-0700 (PDT)", - "shortText": "do pariatur quis consequat ex", - "mediumText": "Sunt magna elit adipisicing sint quis minim. Commodo irure pariatur esse deserunt proident enim incididunt et deserunt sit consectetur enim anim. Esse pariatur non magna culpa cillum culpa dolore ad id ex dolor deserunt. Dolore qui amet cupidatat et pariatur fugiat voluptate eiusmod duis commodo. Proident adipisicing irure eu aliquip nisi.", - "longText": "Nisi ipsum excepteur eiusmod irure velit. Elit ad nulla culpa eu sint veniam deserunt cupidatat. Esse culpa nisi velit aliquip esse consequat dolor amet velit culpa labore est do.\r\nLorem consectetur ad proident Lorem aute eiusmod sit incididunt. Pariatur sit cupidatat enim fugiat sunt ut. Aliquip mollit fugiat ea non laboris exercitation amet Lorem cillum.\r\n", - "address": "3 Mermaid Avenue", - "city": "Deputy", - "state": "Georgia", - "zip": 58449, - "country": "Angola", - "email": "underwoodbarton@scentric.com", - "phone": "(946) 414-3492", - "color": "rgb(112,197,153)" - }, - { - "index": 19, - "name": "Knapp Pratt", - "first": "Solomon", - "last": "Lloyd", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mocabyte/73.jpg", - "boolean": true, - "guid": "895a8dab-d037-46f4-b822-795814f418d9", - "integer": 72, - "date": "Thu Apr 13 1978 08:14:17 GMT-0800 (PST)", - "shortText": "nisi quis", - "mediumText": "Officia id sint exercitation excepteur aliqua enim est id duis occaecat consectetur excepteur. Ea incididunt nulla quis ea ad et ex exercitation laboris sit sit aliquip. Est magna tempor ex commodo id aliquip nostrud aliquip id culpa quis velit excepteur.", - "longText": "Ut nostrud nisi sit sit laboris labore ea ullamco fugiat enim esse. Velit fugiat adipisicing amet amet. Sint cillum eiusmod cillum esse exercitation duis adipisicing incididunt eiusmod culpa laboris eiusmod.\r\nEu cupidatat anim mollit laboris excepteur do in voluptate. In voluptate exercitation proident commodo Lorem id. Laboris cillum dolor et eiusmod do eu. Amet veniam proident in id deserunt mollit incididunt quis exercitation sunt pariatur duis cillum proident. Sunt ad deserunt adipisicing adipisicing consectetur.\r\nLorem reprehenderit deserunt reprehenderit incididunt anim elit aliquip ipsum reprehenderit. Aliqua amet sint mollit fugiat ut est ut tempor aliquip elit laboris. Esse minim qui non aliquip exercitation dolore quis incididunt incididunt. Ullamco cillum excepteur eu duis eu id in commodo.\r\nVelit duis ullamco veniam dolore exercitation aliquip magna veniam et. Excepteur ipsum duis voluptate Lorem in veniam reprehenderit eu deserunt magna reprehenderit. Minim ullamco nostrud irure irure culpa esse. Laboris ad incididunt proident elit sit eiusmod voluptate ad culpa qui duis aute. Cillum ex esse non veniam nulla excepteur quis non.\r\nEiusmod adipisicing Lorem sunt est. Duis reprehenderit esse sint aute. Est dolore cillum minim anim Lorem adipisicing amet fugiat. Esse dolor commodo labore ea nulla ipsum nulla laboris proident consequat duis ex ut minim. Occaecat irure nostrud nulla eiusmod est aliqua proident irure laboris.\r\n", - "address": "4 Glenwood Road", - "city": "Berlin", - "state": "New Mexico", - "zip": 64625, - "country": "Bhutan", - "email": "solomonlloyd@scentric.com", - "phone": "(802) 539-3360", - "color": "rgb(69,68,176)" - }, - { - "index": 20, - "name": "Jodi Tanner", - "first": "Lyons", - "last": "Stevenson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iamasifmirza/73.jpg", - "boolean": false, - "guid": "f6a0ef12-6a1e-48a8-990a-da79c0bbf30e", - "integer": 79, - "date": "Tue Feb 11 2003 17:16:18 GMT-0800 (PST)", - "shortText": "et", - "mediumText": "Eu laboris adipisicing nostrud in in officia pariatur irure occaecat ut consequat commodo adipisicing elit.", - "longText": "Ullamco aliquip reprehenderit Lorem id duis ipsum sit exercitation id Lorem consequat enim ea. Aliquip officia minim dolore ea aliqua non. Aliqua cillum ipsum qui commodo non nostrud eiusmod duis commodo officia et nisi. Proident cillum deserunt eiusmod ea nisi quis incididunt id consectetur qui excepteur ad ipsum. Proident non dolor eu laboris proident Lorem aliquip elit sunt eu tempor sint fugiat Lorem.\r\nId mollit veniam amet labore id. Est proident tempor qui excepteur. Ipsum non irure sint minim sint eu cupidatat eu exercitation dolor et.\r\nSunt sunt nulla et mollit eu in amet est do qui ipsum mollit. Cillum voluptate excepteur consectetur sunt laboris tempor sunt laborum mollit veniam incididunt voluptate pariatur laboris. Mollit cupidatat esse aute sunt dolore cillum cillum qui sunt duis consequat anim. Sit ad laboris et do proident ipsum veniam amet dolor. Id elit anim ut et laborum. Dolor aliqua Lorem Lorem consectetur sint sunt.\r\n", - "address": "3 Cropsey Avenue", - "city": "Lewis", - "state": "Arizona", - "zip": 89420, - "country": "Dominica", - "email": "lyonsstevenson@scentric.com", - "phone": "(818) 424-2348", - "color": "rgb(178,99,182)" - }, - { - "index": 21, - "name": "Mamie Crane", - "first": "Swanson", - "last": "Richardson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/benoitboucart/73.jpg", - "boolean": true, - "guid": "66c048df-eefc-4c09-a468-b3044e4e7f11", - "integer": 26, - "date": "Sun Jun 30 2002 05:57:21 GMT-0700 (PDT)", - "shortText": "quis aliquip aliqua", - "mediumText": "Non ad sit sit veniam officia id officia laborum qui irure eiusmod elit reprehenderit. Voluptate cillum mollit adipisicing mollit esse commodo. Labore exercitation voluptate duis pariatur magna labore ex non cillum incididunt eu esse nostrud.", - "longText": "Anim ut amet laboris culpa velit sunt ea sunt. Do anim nisi minim labore. In cillum pariatur ex non minim sint.\r\n", - "address": "3 Aurelia Court", - "city": "Inkerman", - "state": "Texas", - "zip": 10482, - "country": "Egypt", - "email": "swansonrichardson@scentric.com", - "phone": "(810) 406-3416", - "color": "rgb(230,107,202)" - }, - { - "index": 22, - "name": "Cooley Macdonald", - "first": "Aida", - "last": "Hurley", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/markwienands/73.jpg", - "boolean": false, - "guid": "466a665b-b7b6-4eae-b404-e9b5a8d1641d", - "integer": 20, - "date": "Sun Jan 05 2014 15:48:57 GMT-0800 (PST)", - "shortText": "incididunt irure", - "mediumText": "Anim incididunt commodo minim voluptate enim proident aute adipisicing dolore reprehenderit commodo reprehenderit ipsum ut.", - "longText": "Id quis elit duis veniam enim cupidatat duis. Dolore proident magna minim reprehenderit Lorem. Velit tempor consequat adipisicing aute cillum exercitation eu sunt dolore.\r\nTempor ex laborum dolore voluptate aliqua in id est non. Eiusmod sunt non in culpa id magna non. Cupidatat voluptate magna aute cupidatat aliqua deserunt ut Lorem duis occaecat magna. Occaecat sit pariatur quis ipsum. Non qui non laboris cupidatat adipisicing.\r\nEst nulla aute veniam deserunt nulla labore reprehenderit reprehenderit sint. Nulla cupidatat laboris tempor labore cillum in excepteur minim laboris quis. Amet voluptate sunt in nostrud excepteur dolor in irure laborum commodo et cupidatat. Aliqua enim incididunt voluptate dolore est exercitation officia labore enim commodo quis veniam aliquip. Esse aliquip do labore eiusmod reprehenderit enim officia officia enim dolore magna dolore. Velit in sit dolore consequat.\r\nAdipisicing ea consequat voluptate proident enim commodo labore. Eu dolore ut amet aute tempor exercitation ad mollit occaecat velit non labore reprehenderit. Aute esse dolore id cillum Lorem eu quis elit exercitation ex esse sint. Sit nostrud non ullamco do esse. Voluptate velit officia eu laboris ut commodo tempor velit. Eiusmod cupidatat nostrud ex veniam sit duis. Proident fugiat laboris quis id dolor reprehenderit.\r\n", - "address": "4 Hall Street", - "city": "Stouchsburg", - "state": "District Of Columbia", - "zip": 32399, - "country": "Chile", - "email": "aidahurley@scentric.com", - "phone": "(975) 451-3272", - "color": "rgb(119,239,85)" - }, - { - "index": 23, - "name": "Snow Blankenship", - "first": "Mccormick", - "last": "Jensen", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/menghe/73.jpg", - "boolean": false, - "guid": "961f5da2-2479-4f45-9132-9e89a8bc32e4", - "integer": 70, - "date": "Tue Jan 22 1974 01:18:15 GMT-0700 (PDT)", - "shortText": "aliqua commodo", - "mediumText": "Proident est sunt aliqua cillum ex sit aliquip irure ad. Pariatur dolore cillum nulla qui excepteur deserunt culpa magna consectetur et officia.", - "longText": "Culpa id veniam minim enim nulla ea enim proident. Esse sint ipsum et culpa. Cillum cillum incididunt fugiat occaecat Lorem velit. Quis esse incididunt esse sunt labore nulla. In minim ullamco officia do ad tempor. Sint sunt labore ullamco reprehenderit dolor ullamco ut occaecat.\r\n", - "address": "3 Lewis Place", - "city": "Elizaville", - "state": "Virgin Islands", - "zip": 32784, - "country": "Norfolk Island", - "email": "mccormickjensen@scentric.com", - "phone": "(961) 443-3343", - "color": "rgb(204,198,130)" - }, - { - "index": 24, - "name": "Gabriela Brock", - "first": "Ramona", - "last": "Meyers", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/heyanata/73.jpg", - "boolean": false, - "guid": "07133f92-9308-420e-ae7b-e5ecd657aa85", - "integer": 76, - "date": "Sat Sep 15 1984 07:22:38 GMT-0700 (PDT)", - "shortText": "ex duis do", - "mediumText": "Aliqua qui dolore laborum aute culpa eiusmod ipsum incididunt. Incididunt cillum nisi culpa ea. Incididunt reprehenderit Lorem veniam occaecat elit anim mollit deserunt.", - "longText": "Magna nostrud laboris cupidatat sint esse pariatur ut irure sint dolore laborum. Ut id aute dolor laboris. Cillum officia id officia ut. Irure incididunt dolor exercitation eiusmod sunt nostrud labore. Ad do deserunt deserunt ad elit culpa commodo pariatur. Pariatur excepteur et nisi aute. Ex amet irure anim pariatur voluptate pariatur adipisicing dolor eiusmod dolore.\r\nVelit eu consectetur sint nulla culpa laboris ex et esse. Nostrud voluptate nostrud esse nisi proident quis consequat sit commodo consectetur ut. Ea ex irure labore ullamco proident ullamco consequat sit. Ipsum sit adipisicing mollit deserunt.\r\nEst quis ea magna aliquip anim. Cupidatat ea commodo amet tempor laboris commodo eu. Duis qui irure sunt aliquip velit elit. Laboris fugiat anim officia eiusmod enim ut aliqua incididunt eiusmod ad nulla aute esse. Sit in velit amet labore non consequat id id enim labore Lorem.\r\n", - "address": "3 Rodney Street", - "city": "Orin", - "state": "Puerto Rico", - "zip": 60446, - "country": "Japan", - "email": "ramonameyers@scentric.com", - "phone": "(839) 591-3993", - "color": "rgb(236,222,59)" - }, - { - "index": 25, - "name": "Graciela Orr", - "first": "Sharp", - "last": "Lindsay", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thibaut_re/73.jpg", - "boolean": true, - "guid": "0ea67b0a-5ea7-4e07-8d06-48b6e2a00c6e", - "integer": 39, - "date": "Mon May 25 1970 21:04:46 GMT-0700 (PDT)", - "shortText": "ex", - "mediumText": "Aliqua sunt commodo occaecat nisi esse aliqua labore exercitation qui in ut officia laborum ad. Tempor nisi ad aliquip ipsum nostrud nostrud et sint commodo cillum labore. Ullamco qui fugiat consectetur minim consequat cupidatat laboris. Eu irure veniam sint esse adipisicing ipsum do aliqua pariatur.", - "longText": "Tempor Lorem reprehenderit quis exercitation sit sunt labore elit. Laborum incididunt quis deserunt fugiat culpa aliquip irure esse sit excepteur. Elit elit ad et do dolore minim enim.\r\n", - "address": "2 Tech Place", - "city": "Kraemer", - "state": "Maryland", - "zip": 24019, - "country": "Saudi Arabia", - "email": "sharplindsay@scentric.com", - "phone": "(852) 538-3232", - "color": "rgb(218,74,95)" - }, - { - "index": 26, - "name": "Ethel Wood", - "first": "Dina", - "last": "Robbins", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bluesix/73.jpg", - "boolean": true, - "guid": "342d8ae0-5eea-403c-9922-a85d39738463", - "integer": 22, - "date": "Sat Jun 03 1978 07:31:03 GMT-0700 (PDT)", - "shortText": "qui", - "mediumText": "Excepteur eu laboris magna cupidatat eiusmod nostrud laborum commodo officia sunt fugiat ad. Aliqua reprehenderit duis est consequat incididunt ullamco.", - "longText": "Pariatur velit exercitation aute adipisicing et enim laborum. Laboris anim nostrud consequat Lorem eu irure non aute eiusmod tempor veniam. Aute amet elit tempor irure occaecat esse labore elit veniam anim ea anim. Consequat excepteur esse mollit tempor mollit aute et sit duis. Labore veniam cillum enim nostrud ea laborum.\r\n", - "address": "2 Plymouth Street", - "city": "Bison", - "state": "Massachusetts", - "zip": 64340, - "country": "Micronesia", - "email": "dinarobbins@scentric.com", - "phone": "(967) 410-2522", - "color": "rgb(158,62,57)" - }, - { - "index": 27, - "name": "Tameka Francis", - "first": "Franco", - "last": "Carrillo", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/w8candice/73.jpg", - "boolean": false, - "guid": "d193f8ac-79ea-4201-9a75-c66cbf504ad5", - "integer": 37, - "date": "Mon Jul 14 1986 03:07:27 GMT-0700 (PDT)", - "shortText": "do aliqua laborum", - "mediumText": "Est incididunt exercitation voluptate culpa ut excepteur voluptate velit est minim nulla. Mollit anim ipsum velit excepteur eu occaecat exercitation. Mollit ipsum commodo aliqua voluptate do incididunt ipsum quis.", - "longText": "Anim voluptate cupidatat labore amet. Ex pariatur duis officia commodo excepteur. Quis dolor esse quis veniam. Non veniam et fugiat quis magna. Cillum ad commodo ex cupidatat labore duis aute est cillum. Ad nostrud duis officia ea proident non veniam qui quis.\r\nEx enim duis Lorem sit adipisicing laboris occaecat amet consectetur labore. Pariatur deserunt qui veniam ad exercitation proident commodo dolore aliqua. Aliquip sit Lorem mollit est culpa sint veniam veniam adipisicing elit eiusmod ipsum deserunt. Sint eiusmod consequat occaecat exercitation commodo qui. Labore et consequat dolor voluptate dolor excepteur in anim aliquip ea ullamco labore exercitation ipsum. Mollit occaecat dolor proident ipsum ad esse mollit qui laboris. Anim reprehenderit nulla magna mollit exercitation labore minim.\r\n", - "address": "2 Harkness Avenue", - "city": "Hollins", - "state": "Oklahoma", - "zip": 57691, - "country": "Liberia", - "email": "francocarrillo@scentric.com", - "phone": "(812) 540-2032", - "color": "rgb(89,84,186)" - }, - { - "index": 28, - "name": "Hendricks Levy", - "first": "Guadalupe", - "last": "Odom", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mbilderbach/73.jpg", - "boolean": false, - "guid": "cb09adfd-ad50-4ada-85f2-9a6da5e61812", - "integer": 51, - "date": "Tue Sep 12 1995 23:12:02 GMT-0700 (PDT)", - "shortText": "laboris non labore elit ea", - "mediumText": "Veniam tempor cillum non deserunt duis aliquip elit velit velit do sunt est ad et. Incididunt anim id dolore reprehenderit Lorem est laborum aliqua. Cupidatat ut irure proident pariatur nulla minim nostrud minim laborum non.", - "longText": "Dolor consectetur eu Lorem ea fugiat culpa dolore magna qui magna mollit. Minim est qui eiusmod incididunt nisi ullamco incididunt irure. Tempor officia amet ea nisi elit sunt nulla dolor non labore officia ipsum sit. Esse tempor duis labore laborum cillum nostrud sunt do quis.\r\nEx quis consequat est laborum eu non consequat exercitation aute proident ea excepteur irure ex. Adipisicing nulla laborum ipsum enim dolore. Reprehenderit labore veniam Lorem qui adipisicing dolore commodo cillum anim reprehenderit cupidatat cupidatat amet.\r\nAliqua est magna incididunt amet sit et ad laboris nostrud. Labore culpa cupidatat aliquip magna tempor elit cillum ad ut irure. Ipsum irure qui ullamco aliqua ex sit do. Ut irure nisi voluptate excepteur nulla deserunt dolor dolore id ut laboris proident pariatur. Consequat est exercitation esse id nulla culpa cupidatat deserunt deserunt nostrud in est nostrud. Incididunt eiusmod non sunt deserunt reprehenderit eiusmod officia cupidatat quis ea cupidatat pariatur dolore.\r\n", - "address": "4 Terrace Place", - "city": "Salunga", - "state": "Ohio", - "zip": 43114, - "country": "Korea (South)", - "email": "guadalupeodom@scentric.com", - "phone": "(902) 544-3976", - "color": "rgb(180,227,238)" - }, - { - "index": 29, - "name": "Porter Mcpherson", - "first": "Mcguire", - "last": "Kerr", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/coreyweb/73.jpg", - "boolean": false, - "guid": "c15b43e1-5b71-49c8-8319-7c6739d3d481", - "integer": 81, - "date": "Tue Jun 05 2012 02:47:02 GMT-0700 (PDT)", - "shortText": "do", - "mediumText": "Qui est labore deserunt velit ut adipisicing quis. Aliquip ex esse enim esse commodo duis non nisi nisi incididunt anim duis sunt magna.", - "longText": "Consequat laborum est irure eiusmod fugiat dolore fugiat do. Consequat occaecat deserunt non consectetur. Do et dolore minim dolore in ex enim.\r\nMinim pariatur tempor sit anim reprehenderit quis laboris elit veniam Lorem ipsum amet. Sunt aute reprehenderit eiusmod sint mollit proident sint veniam. Eu elit amet minim excepteur aliqua esse enim. Dolor nulla magna excepteur id nostrud Lorem magna duis.\r\n", - "address": "4 Myrtle Avenue", - "city": "Waukeenah", - "state": "Nevada", - "zip": 54957, - "country": "Pakistan", - "email": "mcguirekerr@scentric.com", - "phone": "(812) 545-2648", - "color": "rgb(122,207,233)" - }, - { - "index": 30, - "name": "Rosalie Noble", - "first": "Giles", - "last": "Miller", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jeremyshimko/73.jpg", - "boolean": false, - "guid": "490401d1-d8e8-4bd1-866c-b9ddd28804a4", - "integer": 45, - "date": "Sun Apr 21 2002 02:16:55 GMT-0700 (PDT)", - "shortText": "proident ad adipisicing duis non", - "mediumText": "Veniam esse officia laborum pariatur. Esse cillum duis sunt minim nisi irure eu in. Occaecat minim culpa adipisicing do amet in amet ipsum velit minim est. Est quis voluptate deserunt id sunt exercitation reprehenderit duis ad dolor et dolor mollit.", - "longText": "Ex dolor culpa fugiat amet esse Lorem dolor ad anim reprehenderit voluptate adipisicing. Nostrud minim laborum mollit labore Lorem officia dolor Lorem. Et voluptate in nulla id ea est duis velit. Aute adipisicing sint commodo et.\r\nNon deserunt nostrud veniam velit occaecat cupidatat adipisicing exercitation. Anim duis enim enim excepteur non voluptate mollit occaecat sunt adipisicing cillum duis. Adipisicing eiusmod nulla ex minim ipsum.\r\nLabore ea dolore fugiat culpa ad aute veniam sint id nulla sit voluptate. Esse magna cupidatat mollit eiusmod. Consectetur dolor incididunt deserunt veniam veniam voluptate elit do aute officia occaecat aliquip aliqua. Ea irure incididunt ut in elit minim et laborum minim enim culpa est do. Nostrud quis ullamco excepteur amet irure ad exercitation voluptate dolore amet pariatur non nisi.\r\n", - "address": "4 Dakota Place", - "city": "Matheny", - "state": "Montana", - "zip": 48981, - "country": "Guyana", - "email": "gilesmiller@scentric.com", - "phone": "(937) 481-3812", - "color": "rgb(117,82,141)" - }, - { - "index": 31, - "name": "Katrina Stuart", - "first": "Norton", - "last": "Carr", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pavelbuben/73.jpg", - "boolean": false, - "guid": "f9c2cf75-a70b-45c5-8a9c-cbceae872250", - "integer": 77, - "date": "Sun May 09 1993 04:38:21 GMT-0700 (PDT)", - "shortText": "labore", - "mediumText": "Adipisicing tempor ad sit ut anim eiusmod exercitation laboris. Velit pariatur occaecat minim consectetur aliquip nostrud anim.", - "longText": "Commodo anim aliquip nostrud occaecat cupidatat quis tempor aliquip consequat dolore. Ea sit ullamco amet consequat elit. Magna magna amet in reprehenderit adipisicing amet cillum tempor qui nisi ad. Eu veniam ad adipisicing aliquip officia ut occaecat exercitation do ad irure do magna veniam. Reprehenderit nisi voluptate consectetur Lorem eu duis incididunt aliquip irure duis sit ea nostrud id. Reprehenderit reprehenderit ipsum in commodo.\r\nAd excepteur adipisicing aliqua eu veniam ullamco velit eu enim nisi reprehenderit non duis nulla. Voluptate aliqua sit sit duis exercitation ad. Incididunt incididunt quis aliqua eu anim esse reprehenderit ut aliqua. Ea id pariatur dolor dolor minim tempor laboris magna non culpa ut non. Officia Lorem proident elit consectetur excepteur dolor velit id velit minim mollit aliqua qui. Aliquip dolor sint aliqua ex tempor.\r\n", - "address": "3 Estate Road", - "city": "Zortman", - "state": "California", - "zip": 33484, - "country": "Poland", - "email": "nortoncarr@scentric.com", - "phone": "(807) 556-3727", - "color": "rgb(189,210,164)" - }, - { - "index": 32, - "name": "Katy Guzman", - "first": "Marcie", - "last": "Rose", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/hafeeskhan/73.jpg", - "boolean": false, - "guid": "0b1f8fd2-2acd-402f-aa66-728b60d1d8ba", - "integer": 62, - "date": "Mon Aug 05 1985 19:37:56 GMT-0700 (PDT)", - "shortText": "elit laborum esse", - "mediumText": "Nulla officia ex elit nulla aliqua magna cillum mollit ad sint. Fugiat consequat officia id ullamco ullamco excepteur aliquip. Occaecat esse eu veniam labore laboris laborum sint laborum esse eiusmod Lorem. Aliquip ex quis et adipisicing sunt cillum pariatur exercitation exercitation fugiat. Est velit anim esse consequat id in nisi adipisicing qui ad ex do non velit.", - "longText": "Amet dolor cillum voluptate occaecat quis cupidatat laborum commodo. Ut et quis ut proident qui do aliquip exercitation non. Ipsum ullamco commodo mollit Lorem do consectetur qui ad in cillum tempor irure consequat.\r\nVeniam laboris minim do exercitation eiusmod ut do sint reprehenderit anim irure proident proident. Quis adipisicing duis qui ut quis veniam dolor non velit consectetur eu voluptate. Duis mollit velit fugiat magna eu ullamco magna irure ipsum est tempor labore eu sint. Cupidatat ullamco nulla dolore quis commodo esse cupidatat quis sunt tempor proident. Labore ullamco ullamco ex Lorem laboris veniam mollit in sint eiusmod.\r\n", - "address": "4 Bedford Place", - "city": "Outlook", - "state": "Marshall Islands", - "zip": 74859, - "country": "Canada", - "email": "marcierose@scentric.com", - "phone": "(968) 546-3854", - "color": "rgb(211,242,218)" - }, - { - "index": 33, - "name": "Lindsay Vega", - "first": "Loraine", - "last": "Castro", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/timmillwood/73.jpg", - "boolean": true, - "guid": "e380ab32-0565-4177-8396-017f4ffea65f", - "integer": 16, - "date": "Thu Aug 30 1984 16:22:17 GMT-0700 (PDT)", - "shortText": "aliquip veniam duis mollit incididunt", - "mediumText": "Ut ea cillum magna nulla eiusmod velit ullamco proident quis quis duis. Culpa aliqua sint excepteur id sint velit. Ex ut consectetur occaecat officia excepteur non sit reprehenderit laboris.", - "longText": "Culpa deserunt adipisicing non anim. Elit do veniam proident incididunt dolore ut et occaecat. Ut reprehenderit commodo irure velit deserunt velit et esse nisi labore officia do nisi quis. Do reprehenderit ex exercitation tempor esse esse cupidatat. Consequat occaecat nisi adipisicing mollit excepteur adipisicing velit nostrud ex do. Et dolor labore exercitation nostrud laboris amet nostrud labore.\r\nAmet aliqua dolore velit sint non. Velit in esse aute esse nulla et quis nulla ut excepteur commodo. Culpa veniam consectetur ut ullamco minim culpa Lorem dolor aute amet qui cillum nulla id.\r\nSint excepteur in culpa occaecat minim deserunt aliquip mollit cupidatat ipsum et mollit ad deserunt. Sunt eu aliquip ut nulla cillum commodo laboris labore nisi ut dolore amet. Magna sunt ipsum ut officia pariatur dolore elit ullamco velit qui Lorem duis. Enim anim quis et incididunt aute sit consectetur. Amet non commodo exercitation quis tempor labore ex do eu et anim voluptate.\r\nIncididunt sit esse fugiat velit incididunt cillum. Est elit do deserunt elit excepteur do. Adipisicing est tempor cillum consequat.\r\nEst consectetur elit ad nisi reprehenderit tempor eiusmod culpa reprehenderit veniam anim. Mollit minim nulla commodo excepteur occaecat nulla ex deserunt irure nisi aliquip. Enim ullamco sunt duis veniam mollit nulla dolor elit nulla.\r\n", - "address": "4 Robert Street", - "city": "Ellerslie", - "state": "Indiana", - "zip": 16816, - "country": "US Minor Outlying Islands", - "email": "lorainecastro@scentric.com", - "phone": "(816) 465-3014", - "color": "rgb(76,135,180)" - }, - { - "index": 34, - "name": "Hughes Flynn", - "first": "Fry", - "last": "Harmon", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/butchewing/73.jpg", - "boolean": true, - "guid": "bcaa95bc-6077-4332-84f7-c432a0f25269", - "integer": 52, - "date": "Thu Sep 22 1983 12:18:11 GMT-0700 (PDT)", - "shortText": "consectetur voluptate et enim sint", - "mediumText": "Veniam duis ut aute id occaecat nisi officia qui ut anim magna eiusmod quis non. Qui duis ad nostrud et sint eu est consectetur amet ad id velit enim.", - "longText": "Cillum labore in voluptate sit pariatur laborum laboris veniam anim officia tempor. Ad nisi amet enim consequat do est est ut deserunt sunt commodo cupidatat aliqua. Irure ad dolor officia veniam commodo labore incididunt. Ex aliquip ad dolor fugiat exercitation minim cillum exercitation eiusmod velit. Aliqua minim minim exercitation dolore dolor laboris.\r\nEnim cillum do consectetur occaecat dolor nulla. Et officia culpa ad et ea irure culpa laboris ullamco ea enim aliquip proident eiusmod. Irure veniam ipsum fugiat sint exercitation deserunt commodo eu consectetur amet nostrud aute duis ullamco.\r\nAliqua minim veniam dolore exercitation non in ipsum irure et culpa irure labore excepteur exercitation. Ad reprehenderit officia deserunt velit aliqua consectetur commodo magna magna consectetur reprehenderit Lorem. Elit qui officia cillum do duis cillum. Non quis proident cillum et non deserunt elit voluptate commodo minim non. Ad occaecat dolor dolore incididunt voluptate proident.\r\n", - "address": "2 Logan Street", - "city": "Cataract", - "state": "Tennessee", - "zip": 16373, - "country": "East Timor", - "email": "fryharmon@scentric.com", - "phone": "(810) 510-3744", - "color": "rgb(157,152,156)" - }, - { - "index": 35, - "name": "Massey Merritt", - "first": "Cooper", - "last": "Sampson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dotmariusz/73.jpg", - "boolean": false, - "guid": "b3614dbf-f75d-410c-9a0a-8d805f386b40", - "integer": 75, - "date": "Tue Feb 03 1981 16:12:08 GMT-0800 (PST)", - "shortText": "enim ad ea mollit aute", - "mediumText": "Aute exercitation magna do veniam ea sunt qui id aliquip do eiusmod. Ipsum veniam cillum tempor labore. Est nostrud ut Lorem dolore. Id ad amet fugiat aliquip ea ut veniam nulla aliquip dolor.", - "longText": "Quis culpa quis nulla sunt proident consectetur ex reprehenderit est fugiat duis enim minim. Elit et culpa ex ipsum et amet eu quis exercitation et laborum ullamco commodo do. Tempor in elit veniam deserunt proident fugiat est ea excepteur et ipsum eu magna. Adipisicing ad elit officia ea velit veniam nostrud ullamco. Id nostrud exercitation esse labore dolore do.\r\nOfficia labore nulla amet ipsum. Reprehenderit dolore qui elit labore nisi ullamco dolor aliqua consequat sunt reprehenderit labore. Ad ea dolore anim proident quis reprehenderit quis consectetur ea.\r\n", - "address": "4 Doscher Street", - "city": "Bagtown", - "state": "Palau", - "zip": 32759, - "country": "Denmark", - "email": "coopersampson@scentric.com", - "phone": "(982) 438-3850", - "color": "rgb(248,164,122)" - }, - { - "index": 36, - "name": "Estelle Owen", - "first": "Rosa", - "last": "Velazquez", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/aaronbeashel/73.jpg", - "boolean": false, - "guid": "bb33bd2d-a4cd-4bf2-a3f7-d82b5e108068", - "integer": 67, - "date": "Fri Jul 11 2003 11:54:17 GMT-0700 (PDT)", - "shortText": "officia consequat proident", - "mediumText": "Ex velit velit mollit consectetur eiusmod in do minim id esse excepteur nulla est. Reprehenderit incididunt deserunt ea excepteur nostrud voluptate nisi exercitation ea excepteur magna deserunt cillum proident. Exercitation minim velit sit fugiat sint ut cillum consectetur ullamco exercitation enim aliqua in aute. Laborum consequat amet aliquip laborum quis.", - "longText": "Non est irure amet eiusmod Lorem nostrud. Tempor est ut nisi nisi ullamco pariatur mollit proident eu magna sit. Amet tempor sint ut deserunt sint cillum aute anim officia mollit ex exercitation ea laborum.\r\nIn proident magna exercitation ut do. Lorem minim cillum do velit amet deserunt incididunt duis adipisicing laboris dolore officia. Sint ea id culpa labore aute sit cillum. Ut ad nisi ex culpa. Aliqua nostrud do culpa incididunt ut eiusmod nulla irure duis reprehenderit cillum. Cupidatat ea est non id cillum non adipisicing et adipisicing veniam cillum dolor ex.\r\n", - "address": "2 Wakeman Place", - "city": "Morgandale", - "state": "Virginia", - "zip": 43228, - "country": "Yemen", - "email": "rosavelazquez@scentric.com", - "phone": "(887) 500-3974", - "color": "rgb(112,251,244)" - }, - { - "index": 37, - "name": "Jamie Clarke", - "first": "Claire", - "last": "Jefferson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jina/73.jpg", - "boolean": true, - "guid": "44d98ab6-0a88-43f9-8c15-02c24bfe5a10", - "integer": 47, - "date": "Mon Aug 31 1992 20:48:08 GMT-0700 (PDT)", - "shortText": "aliqua nisi excepteur dolore", - "mediumText": "Aliqua ullamco labore occaecat laborum culpa anim exercitation. Deserunt cupidatat tempor id eu cupidatat magna veniam amet aute ea mollit.", - "longText": "Amet cupidatat eiusmod occaecat nostrud eu cillum culpa irure pariatur quis sit in. Ea id anim tempor duis sunt cillum veniam laborum culpa occaecat reprehenderit do commodo minim. Dolor aliquip cillum magna Lorem aliqua exercitation officia nisi id voluptate esse. Laborum occaecat velit deserunt tempor laboris sunt duis incididunt tempor dolore. Aliquip magna amet culpa culpa reprehenderit veniam commodo dolor fugiat commodo eu. Adipisicing veniam ipsum irure quis consectetur voluptate enim officia.\r\nNon occaecat proident nostrud do cillum ipsum tempor sit magna qui. Cupidatat Lorem aliqua adipisicing mollit. Consequat sint do pariatur est. Minim laborum duis eiusmod do do do qui Lorem. Labore anim laborum do fugiat tempor ut. Aliqua culpa id aliqua velit Lorem do consectetur consequat sunt aliqua.\r\n", - "address": "2 Jerome Avenue", - "city": "Cliff", - "state": "Wyoming", - "zip": 10308, - "country": "Laos", - "email": "clairejefferson@scentric.com", - "phone": "(897) 481-2359", - "color": "rgb(219,64,230)" - }, - { - "index": 38, - "name": "Louella Vincent", - "first": "Frieda", - "last": "Butler", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gu5taf/73.jpg", - "boolean": true, - "guid": "8169ff1e-f098-4cf7-9e00-35457f189340", - "integer": 65, - "date": "Mon Sep 09 2013 00:02:00 GMT-0700 (PDT)", - "shortText": "qui cupidatat sit velit", - "mediumText": "Sunt ad et exercitation aliqua consectetur commodo commodo adipisicing magna irure. Duis sint non duis ipsum pariatur ut pariatur dolor cillum anim et mollit laboris minim.", - "longText": "Excepteur enim laborum eiusmod exercitation aute id veniam non et ullamco. Ipsum veniam adipisicing non dolor id ad quis ex. Ipsum aliquip excepteur sunt irure adipisicing enim exercitation irure minim proident nulla ipsum id nulla. Adipisicing est do aliquip esse consectetur ipsum minim exercitation pariatur. Elit irure eiusmod commodo voluptate proident veniam quis do aliquip commodo. Amet labore incididunt exercitation commodo dolore officia ipsum ea non irure occaecat voluptate pariatur. Pariatur dolore do occaecat Lorem enim culpa cillum adipisicing incididunt labore.\r\nFugiat veniam ut culpa adipisicing cupidatat exercitation ea laboris consectetur reprehenderit nulla eiusmod ut. Tempor in non esse labore dolore labore qui duis. Duis esse consequat ex duis ea dolore voluptate id exercitation sunt eiusmod pariatur nisi ut. Excepteur amet et eu magna et.\r\nReprehenderit occaecat sunt elit cupidatat. Nostrud cupidatat id fugiat fugiat veniam mollit nostrud cillum. Laboris est ut esse cillum. Aute tempor ex veniam qui culpa deserunt mollit enim commodo velit eu. Et in adipisicing veniam sint id duis sint nulla. Ad voluptate aliquip consectetur commodo in. Exercitation ea sint non exercitation labore esse cillum.\r\nFugiat deserunt reprehenderit aliquip officia exercitation labore cupidatat pariatur aliqua in Lorem. Amet aliquip excepteur laborum do eiusmod aliqua minim anim dolore elit. Elit aute ex fugiat mollit excepteur.\r\n", - "address": "3 Rockwell Place", - "city": "Grimsley", - "state": "Colorado", - "zip": 38741, - "country": "Sierra Leone", - "email": "friedabutler@scentric.com", - "phone": "(867) 520-2422", - "color": "rgb(159,133,82)" - }, - { - "index": 39, - "name": "Schultz Rosario", - "first": "Juliana", - "last": "Gutierrez", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/antonkudin/73.jpg", - "boolean": true, - "guid": "c238f75a-9f6d-41fe-bfc7-7035f020fdfa", - "integer": 62, - "date": "Tue Sep 13 1988 04:52:35 GMT-0700 (PDT)", - "shortText": "enim", - "mediumText": "Esse mollit anim dolore tempor qui aliqua Lorem. Eu adipisicing culpa nisi est commodo fugiat minim aute deserunt officia sint cillum.", - "longText": "Mollit enim deserunt aliqua nisi officia consectetur. Nostrud et ipsum eiusmod et. Proident nisi magna adipisicing occaecat consequat ut officia ea nisi proident voluptate duis commodo in. Aliquip velit fugiat Lorem ad est quis eiusmod consectetur dolore laborum voluptate minim nisi et. Pariatur non et elit laboris adipisicing reprehenderit laboris nisi. Ut laborum sint consectetur tempor excepteur in velit voluptate dolor ipsum consequat nisi.\r\nNon excepteur incididunt culpa incididunt et pariatur excepteur voluptate commodo esse. Commodo eiusmod duis ut cupidatat sint fugiat nisi ad anim enim. Pariatur qui ad aute deserunt do irure non quis et excepteur ullamco eu laboris. Qui enim velit minim tempor irure duis.\r\nQui id minim ullamco ex est elit Lorem aliqua officia ut cillum. Voluptate aute do qui pariatur nisi deserunt eu. Officia incididunt sit cillum consectetur anim fugiat sit et ad est tempor nulla fugiat mollit.\r\nEx magna ex do aute non esse excepteur. Est excepteur voluptate eiusmod eu esse ad eiusmod nisi ad. Quis irure laboris est fugiat aute culpa deserunt non ut mollit ea nisi occaecat enim.\r\nQuis dolore amet quis exercitation reprehenderit proident nisi excepteur veniam occaecat ipsum. Consectetur ad elit do quis mollit pariatur deserunt. Culpa qui cillum nulla incididunt incididunt ad nostrud duis. Deserunt pariatur non consequat sint occaecat ad dolor in mollit deserunt nulla laboris. Do eiusmod aute proident nulla eiusmod sunt voluptate.\r\n", - "address": "3 Loring Avenue", - "city": "Mulberry", - "state": "Utah", - "zip": 65299, - "country": "Nigeria", - "email": "julianagutierrez@scentric.com", - "phone": "(968) 541-2220", - "color": "rgb(102,250,175)" - }, - { - "index": 40, - "name": "April Mejia", - "first": "Mallory", - "last": "Gross", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/derekebradley/73.jpg", - "boolean": true, - "guid": "09c07ac9-6428-420c-9244-e97b458cef1c", - "integer": 95, - "date": "Mon Oct 10 1977 19:43:28 GMT-0700 (PDT)", - "shortText": "eiusmod voluptate eiusmod exercitation", - "mediumText": "Esse est laboris sint commodo enim ut fugiat excepteur pariatur eiusmod cillum. Occaecat occaecat cupidatat et occaecat do Lorem. Ad culpa sint magna tempor ex magna. Eu fugiat nisi exercitation sit ex in ad est occaecat officia ullamco pariatur non. Sit esse consequat deserunt enim.", - "longText": "Id pariatur ullamco officia excepteur. Excepteur occaecat nulla magna excepteur Lorem in laboris proident veniam veniam Lorem sint pariatur labore. Anim incididunt sint ea eiusmod tempor magna sit ullamco. Pariatur cillum id ullamco mollit tempor aute pariatur reprehenderit quis nulla quis elit. Irure duis voluptate consectetur ex anim ad. Ipsum do labore mollit commodo et cillum dolore est labore amet amet esse est. Duis et minim anim non magna sit incididunt aute consequat occaecat voluptate esse aliqua in.\r\nSint officia ad occaecat reprehenderit et velit eu consequat et esse. Occaecat et deserunt aute nulla aliqua occaecat eiusmod fugiat irure ut dolore incididunt. Ea magna magna velit consequat commodo id aliqua ad pariatur minim laborum ad.\r\nExercitation id reprehenderit enim consequat ea sunt labore cillum. Lorem tempor eiusmod elit amet velit incididunt occaecat. Amet aute tempor ea eu nostrud est velit. Amet est do duis ut do Lorem sint amet eiusmod.\r\nIrure mollit exercitation eu non. Labore ullamco do amet occaecat aute consectetur voluptate. Quis esse cillum laborum mollit exercitation. Officia quis consectetur cillum fugiat ullamco exercitation non dolore voluptate aute ex id. Ad culpa nisi quis non voluptate amet cillum in. Laborum occaecat ad aliquip aute veniam adipisicing non proident consequat voluptate commodo.\r\nVeniam anim sit officia laboris. Incididunt est ea magna nulla anim magna mollit reprehenderit adipisicing sit. Labore ex et do eu eu. Officia nostrud consectetur proident sint. Cillum dolor dolore consectetur ullamco. Reprehenderit veniam fugiat elit culpa nisi laborum magna. Consequat ea excepteur sint enim exercitation occaecat Lorem nisi culpa deserunt.\r\n", - "address": "2 Crawford Avenue", - "city": "Winchester", - "state": "Idaho", - "zip": 61697, - "country": "Netherlands", - "email": "mallorygross@scentric.com", - "phone": "(822) 493-3031", - "color": "rgb(161,51,155)" - }, - { - "index": 41, - "name": "Vicki Phelps", - "first": "Elsie", - "last": "Hahn", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/karachentsov/73.jpg", - "boolean": false, - "guid": "1dc69b61-c106-4a7b-83c6-e05dfed45668", - "integer": 88, - "date": "Wed Mar 28 2001 03:43:02 GMT-0800 (PST)", - "shortText": "ipsum eiusmod laboris proident", - "mediumText": "Nisi incididunt in commodo duis culpa voluptate sit laborum. Consectetur do exercitation irure nostrud.", - "longText": "Eu culpa eiusmod do sit aliquip consequat. Consectetur aliquip non culpa id reprehenderit labore non dolore in voluptate voluptate. Nisi in exercitation reprehenderit fugiat duis ea consequat nostrud labore enim ut sit.\r\nAdipisicing eiusmod mollit ipsum dolor et nisi irure elit sunt laboris. Proident tempor incididunt et consectetur fugiat nisi excepteur do nisi irure aliqua. Sit aliqua sint aute ut.\r\nFugiat quis ad nisi sunt consectetur ut ullamco laboris. Ut ea laboris ipsum Lorem eiusmod incididunt. Excepteur minim adipisicing nisi exercitation enim consectetur voluptate sunt. Est consequat irure ipsum ex qui laboris tempor. Commodo duis minim ullamco labore proident minim. Aliqua aliquip cillum dolore qui nostrud. Irure adipisicing mollit tempor occaecat excepteur.\r\nCupidatat nisi adipisicing adipisicing officia consectetur et. Laborum deserunt aute non culpa in ea aliqua sit. Sit esse incididunt qui veniam quis do excepteur exercitation nisi ipsum adipisicing quis. Mollit cupidatat occaecat adipisicing nisi irure pariatur exercitation id esse id tempor sunt. Quis deserunt eiusmod dolore ut esse eu consectetur consectetur ea veniam amet adipisicing nisi. Excepteur voluptate consectetur dolor sint nisi laborum aute eiusmod ea.\r\nNon ex eiusmod dolore est ea exercitation et quis deserunt culpa nostrud aliqua. Qui non qui laboris dolor reprehenderit enim deserunt cupidatat consequat dolore ex. In voluptate pariatur ullamco non laborum velit ea minim cillum consequat eu. Est ullamco proident ad fugiat aliqua occaecat est. Nisi dolore irure velit excepteur aliquip incididunt irure non voluptate.\r\n", - "address": "2 Coles Street", - "city": "Stockwell", - "state": "Arkansas", - "zip": 39778, - "country": "Morocco", - "email": "elsiehahn@scentric.com", - "phone": "(821) 517-2066", - "color": "rgb(63,164,79)" - }, - { - "index": 42, - "name": "Faulkner Mcdaniel", - "first": "Hayes", - "last": "Ball", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/emmeffess/73.jpg", - "boolean": false, - "guid": "731380cb-785a-4aa3-9e6c-281953a83daf", - "integer": 85, - "date": "Fri Jul 25 1980 06:28:07 GMT-0700 (PDT)", - "shortText": "sunt magna aliquip", - "mediumText": "Pariatur ipsum adipisicing ut quis.", - "longText": "Veniam veniam enim Lorem eu mollit consectetur ea qui est pariatur. Magna occaecat sit est exercitation exercitation irure laboris enim commodo consequat tempor mollit. Id ea elit proident exercitation. Dolore reprehenderit nostrud nostrud exercitation eiusmod nulla.\r\nDo amet duis excepteur ullamco cillum velit. Consectetur adipisicing fugiat non dolore fugiat ipsum qui est elit enim consequat Lorem laboris proident. Aliquip reprehenderit ut reprehenderit anim sunt ex. Adipisicing aliquip sint Lorem minim laborum dolor minim tempor laboris. Exercitation ad aute ullamco ea deserunt adipisicing laborum fugiat proident adipisicing veniam ut veniam laborum. Id reprehenderit labore ea esse ea officia cillum. Sit sunt pariatur cupidatat mollit velit qui ut.\r\nElit mollit do non dolor quis Lorem anim aliqua occaecat aute reprehenderit irure. Sit do labore pariatur id. Anim ad veniam ea Lorem reprehenderit ipsum minim. In elit irure nulla elit elit sit in sunt incididunt magna. Pariatur commodo anim magna ut aliquip nulla nostrud commodo aliquip incididunt commodo est. Nulla enim nostrud qui commodo reprehenderit.\r\n", - "address": "2 Cheever Place", - "city": "Interlochen", - "state": "Delaware", - "zip": 14410, - "country": "Czech Republic", - "email": "hayesball@scentric.com", - "phone": "(875) 561-3839", - "color": "rgb(215,92,182)" - }, - { - "index": 43, - "name": "Wilson Booth", - "first": "Baker", - "last": "Slater", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bmovement/73.jpg", - "boolean": false, - "guid": "4357bfc6-3fa0-41e3-8a7b-0ab1f0a2e139", - "integer": 16, - "date": "Tue Aug 18 1998 18:43:53 GMT-0700 (PDT)", - "shortText": "sunt reprehenderit fugiat in est", - "mediumText": "Exercitation nisi ut enim do incididunt eiusmod cupidatat aliquip occaecat sit occaecat elit consequat sunt. Cupidatat fugiat dolor ea proident ipsum officia exercitation reprehenderit dolore elit.", - "longText": "Et in ipsum duis amet aute qui commodo fugiat eiusmod. Enim veniam nisi non sunt ex esse eiusmod. Non amet et ex cupidatat. Veniam laboris do proident et in reprehenderit incididunt ut velit enim aliqua. Quis adipisicing tempor consequat consequat commodo consequat do. Minim laboris nostrud duis tempor aliqua fugiat pariatur incididunt Lorem nostrud velit ad.\r\nAliquip commodo laborum culpa consequat aliquip voluptate irure sit excepteur reprehenderit enim ullamco veniam do. Minim elit quis laborum eiusmod incididunt proident nostrud do laboris. Deserunt non nostrud minim ut qui proident incididunt est elit pariatur nisi. Eiusmod reprehenderit sit deserunt aliqua aliqua. Reprehenderit id pariatur magna sunt fugiat labore veniam velit pariatur minim occaecat. Nostrud duis est magna ad ad consequat proident ut laboris aliquip. Magna duis est non reprehenderit minim nulla est cupidatat ut officia do sit.\r\nPariatur officia culpa ullamco sunt. Adipisicing amet amet culpa excepteur proident officia. In dolor aliqua nostrud tempor tempor elit tempor exercitation enim sint.\r\nQuis aliqua velit magna ad occaecat minim velit eiusmod ex consequat ad nisi adipisicing. Veniam et culpa sunt ex ad non ut ad in qui magna dolor nostrud incididunt. Aliquip minim elit eu exercitation pariatur irure id non occaecat id id commodo. Ea excepteur et excepteur Lorem eiusmod elit ex laborum labore et cillum cillum. Lorem consequat non culpa eu Lorem do amet nulla velit ullamco cillum.\r\nVelit nisi consectetur dolore amet irure tempor voluptate laborum. Id sit incididunt aute nostrud fugiat adipisicing incididunt excepteur anim sunt et id deserunt. Voluptate incididunt sunt anim enim laboris. Laboris id sit aliqua nisi cillum cupidatat ipsum. Laborum veniam adipisicing velit nulla eu commodo quis do.\r\n", - "address": "2 Arlington Avenue", - "city": "Welda", - "state": "Federated States Of Micronesia", - "zip": 13497, - "country": "Cape Verde", - "email": "bakerslater@scentric.com", - "phone": "(980) 527-2867", - "color": "rgb(98,119,186)" - }, - { - "index": 44, - "name": "Galloway Michael", - "first": "Martha", - "last": "Knight", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/taiyab/73.jpg", - "boolean": false, - "guid": "a12acd83-99f7-4c53-8849-e0c0a8aef81f", - "integer": 41, - "date": "Sun Jan 15 2006 04:41:03 GMT-0800 (PST)", - "shortText": "cillum fugiat cupidatat", - "mediumText": "Cupidatat eiusmod nisi commodo aute deserunt ea labore aute aliquip consequat voluptate aliquip aliqua sunt. Culpa cillum ex quis ad in nisi enim.", - "longText": "Enim ad pariatur esse ea officia ullamco consectetur ut adipisicing culpa voluptate Lorem do. Voluptate mollit enim dolore laboris Lorem id in Lorem aliquip mollit. Enim aliquip occaecat amet cupidatat elit dolor officia magna qui aute sit. In elit tempor pariatur sunt velit ad anim laboris do dolor et nisi anim voluptate. Proident aliquip anim veniam cillum ullamco laborum. Adipisicing occaecat voluptate deserunt ad consequat fugiat laborum aute fugiat deserunt exercitation incididunt. In do tempor amet excepteur non enim tempor excepteur reprehenderit anim sit aute.\r\nAmet ea est dolor adipisicing sit occaecat occaecat incididunt commodo. Veniam officia esse excepteur excepteur nostrud deserunt elit minim amet eu quis non. Quis duis tempor pariatur aute. Anim anim tempor in nisi Lorem do do adipisicing. Exercitation fugiat elit nisi nostrud aliquip id cillum exercitation elit non cupidatat. Irure ea nulla quis aliquip nulla ex exercitation est velit eiusmod.\r\nDeserunt aute nisi exercitation sunt aliquip aute proident incididunt dolor commodo non pariatur mollit laborum. Minim tempor deserunt labore non sit duis culpa. Commodo velit duis quis aliqua fugiat sit sint labore magna officia sunt eiusmod magna. Deserunt est nisi ad fugiat consectetur commodo voluptate amet nulla sit. Incididunt do adipisicing irure minim eiusmod aliqua et pariatur pariatur tempor irure.\r\n", - "address": "4 Willoughby Street", - "city": "Calverton", - "state": "Guam", - "zip": 21650, - "country": "Madagascar", - "email": "marthaknight@scentric.com", - "phone": "(893) 423-2241", - "color": "rgb(87,159,93)" - }, - { - "index": 45, - "name": "Mcintosh Evans", - "first": "Slater", - "last": "Erickson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rigelstpierre/73.jpg", - "boolean": false, - "guid": "1fa2a893-38af-4f5a-8580-a8a20f0edffe", - "integer": 89, - "date": "Wed Sep 03 2003 04:11:03 GMT-0700 (PDT)", - "shortText": "eiusmod in labore id", - "mediumText": "Cillum labore pariatur in occaecat eu. Ipsum reprehenderit occaecat ipsum in id velit pariatur ut duis. Dolor esse dolor eiusmod est duis. Elit nulla commodo cillum proident tempor anim qui nulla laboris cillum occaecat consequat.", - "longText": "Id qui sunt excepteur Lorem in occaecat id. Culpa eu dolore cupidatat cillum labore aute officia. Cupidatat ex dolore excepteur aliqua sunt elit qui excepteur sit amet sint adipisicing dolore.\r\nSint consequat ullamco exercitation anim et commodo. Mollit ad aute dolor in veniam tempor ullamco nisi ex id cupidatat incididunt. Veniam cupidatat et enim aliqua laboris officia. Dolor ipsum excepteur elit enim ipsum enim est labore do amet duis cupidatat aliqua. Officia occaecat in ex enim officia id culpa sint. Aliquip magna duis ut ea aliquip duis non ad.\r\nDolor mollit exercitation reprehenderit commodo sunt aute commodo aliquip. Aute qui culpa aliquip magna in enim occaecat quis. Proident magna sunt do tempor. Minim laboris aliqua esse culpa anim. Eu laborum ut ea nostrud excepteur laboris. Velit veniam nostrud deserunt incididunt sit incididunt Lorem cillum enim ullamco ipsum cupidatat ea laborum.\r\n", - "address": "4 Meeker Avenue", - "city": "Mansfield", - "state": "Pennsylvania", - "zip": 64998, - "country": "Austria", - "email": "slatererickson@scentric.com", - "phone": "(916) 568-2718", - "color": "rgb(61,216,133)" - }, - { - "index": 46, - "name": "Garrison Conway", - "first": "Beck", - "last": "Potts", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/vlajki/73.jpg", - "boolean": true, - "guid": "f4aa8b8b-f3b1-4a47-9625-0213a3ab6e8d", - "integer": 90, - "date": "Thu Jun 21 1979 14:10:02 GMT-0700 (PDT)", - "shortText": "adipisicing irure", - "mediumText": "Elit do ipsum sint qui non nulla laborum aute.", - "longText": "Sint voluptate ad irure laborum. Aliqua incididunt dolore do irure enim aliquip non officia sunt nisi consectetur. Ex laborum reprehenderit dolore laborum voluptate sit adipisicing consequat adipisicing culpa nisi ipsum anim aliqua. In est fugiat officia ullamco velit ut duis sit sint anim ex minim cupidatat. Commodo incididunt cillum non adipisicing tempor. Pariatur adipisicing dolore ut aliqua magna non amet.\r\nUt ex id enim cillum veniam consectetur ipsum sit cillum. Adipisicing qui cillum mollit consequat nulla quis elit nostrud et. Cillum dolore non voluptate magna qui officia. Lorem in quis incididunt dolore ut. Adipisicing do id fugiat elit ullamco pariatur culpa nisi.\r\nCommodo culpa dolore aliqua ex ex mollit minim. Duis cupidatat ipsum sunt quis amet est minim aute Lorem non proident. Duis cillum Lorem quis velit.\r\nTempor incididunt reprehenderit eiusmod adipisicing amet exercitation. Duis occaecat eu consequat ea officia occaecat enim Lorem ullamco. Non commodo cillum sunt amet nulla ex officia ut duis sunt. Enim minim anim minim anim non minim ad magna tempor Lorem. Enim cupidatat nostrud in sunt officia occaecat esse cupidatat. Sint veniam ullamco qui consectetur duis fugiat pariatur ad proident mollit.\r\nAd consectetur elit aute sit nostrud. Culpa non esse non nostrud id anim nulla aute in laboris id duis magna cillum. Sunt cillum ut id laborum tempor reprehenderit excepteur ut velit aliqua ad ipsum ut incididunt. Eiusmod qui quis ea deserunt excepteur amet culpa eiusmod eiusmod.\r\n", - "address": "3 Troy Avenue", - "city": "Witmer", - "state": "New Hampshire", - "zip": 85501, - "country": "Venezuela", - "email": "beckpotts@scentric.com", - "phone": "(865) 596-2021", - "color": "rgb(156,172,221)" - }, - { - "index": 47, - "name": "Hopper Anthony", - "first": "Pugh", - "last": "Douglas", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/leeiio/73.jpg", - "boolean": true, - "guid": "d522fa57-486b-4ca9-9ee2-f4bddc8d8db0", - "integer": 32, - "date": "Wed Mar 16 1988 07:04:05 GMT-0800 (PST)", - "shortText": "ullamco sit elit", - "mediumText": "Nisi fugiat irure amet fugiat. Commodo ut nisi dolore cillum officia culpa. Veniam in duis aliquip voluptate do pariatur nostrud cupidatat amet consectetur reprehenderit id dolore. Anim adipisicing mollit ut enim aliqua ex elit aute ea culpa mollit. Sit cillum ut excepteur officia ullamco irure aute culpa elit.", - "longText": "Quis non cillum et sit enim culpa tempor. Veniam velit eu dolor pariatur in aute. Et tempor Lorem ad velit fugiat Lorem sunt aliqua exercitation laboris ad.\r\nExcepteur laboris et magna ea nostrud ut cillum. Exercitation anim cupidatat magna non pariatur id enim esse ullamco adipisicing deserunt anim. Duis sint nisi est voluptate deserunt proident anim nisi consequat labore culpa aliqua. Sit amet consequat ad occaecat cupidatat tempor eiusmod nostrud Lorem magna labore mollit in.\r\nPariatur qui anim culpa ex. In nostrud aliqua non adipisicing. Quis labore magna aliqua magna.\r\nAute commodo consectetur elit minim exercitation eiusmod non commodo. Aute deserunt non quis ullamco culpa ex et mollit nisi dolor. Minim amet eiusmod mollit esse Lorem eu reprehenderit nisi cillum eiusmod fugiat nostrud tempor duis. Officia quis commodo pariatur esse excepteur officia. In non incididunt aliquip mollit dolore ex labore.\r\nExcepteur commodo eu proident fugiat nulla. Minim excepteur consequat officia esse dolore irure qui anim culpa in deserunt consectetur laborum in. Exercitation in esse ad aliquip commodo. Irure duis pariatur eiusmod culpa enim mollit tempor Lorem qui proident ad. Qui exercitation elit culpa ex non dolor do pariatur proident. Anim ut velit minim voluptate labore in commodo excepteur irure proident amet officia cupidatat.\r\n", - "address": "3 Madoc Avenue", - "city": "Norfolk", - "state": "North Dakota", - "zip": 73808, - "country": "Hong Kong", - "email": "pughdouglas@scentric.com", - "phone": "(829) 562-3502", - "color": "rgb(70,112,74)" - }, - { - "index": 48, - "name": "Edwina Wiley", - "first": "Margo", - "last": "Hodges", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/brad_frost/73.jpg", - "boolean": false, - "guid": "363f5f6a-2d42-4e87-845c-7cf7b881d3fa", - "integer": 26, - "date": "Fri Dec 07 2012 11:20:25 GMT-0800 (PST)", - "shortText": "fugiat fugiat", - "mediumText": "Ex commodo sit quis commodo fugiat Lorem aliquip mollit fugiat mollit veniam.", - "longText": "Ea ea aliquip consectetur in labore eu fugiat voluptate nisi ipsum sunt. Occaecat id sit qui officia culpa laboris. Deserunt aliqua duis est sint.\r\nProident consequat occaecat cillum occaecat occaecat adipisicing laboris exercitation sit ut non dolor culpa consectetur. Ipsum ex reprehenderit veniam aliquip esse. Est commodo tempor fugiat id laborum duis do fugiat magna eiusmod eiusmod. Sit sit est anim officia consequat Lorem commodo qui velit duis. Adipisicing ipsum mollit ipsum in deserunt adipisicing ad culpa dolore. Nisi excepteur consectetur id proident fugiat proident reprehenderit magna.\r\nConsectetur duis ipsum occaecat culpa sit in. Tempor elit amet est Lorem elit consectetur fugiat tempor magna. Nulla ullamco incididunt cillum quis ea. Voluptate officia officia officia sint quis cillum sit est. Aliquip non laborum et laboris in velit dolore mollit ad dolor velit amet ut laboris. Cillum sunt irure in in eu do ullamco.\r\n", - "address": "3 Vernon Avenue", - "city": "Yettem", - "state": "Northern Mariana Islands", - "zip": 84068, - "country": "Sri Lanka", - "email": "margohodges@scentric.com", - "phone": "(852) 558-3074", - "color": "rgb(56,222,148)" - }, - { - "index": 49, - "name": "Salazar Nolan", - "first": "Polly", - "last": "Mitchell", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/alsobrooks/73.jpg", - "boolean": true, - "guid": "36295fa8-495e-4763-b920-b8e8d9e90105", - "integer": 28, - "date": "Mon May 08 2006 04:34:39 GMT-0700 (PDT)", - "shortText": "aliquip id commodo pariatur eu", - "mediumText": "Amet fugiat nisi ut eiusmod enim. Et id mollit voluptate dolore laborum cillum qui est laborum duis fugiat.", - "longText": "Qui cillum proident id irure quis sit. Sit nisi et fugiat amet exercitation eiusmod esse enim pariatur cupidatat. Esse proident velit reprehenderit fugiat.\r\nNostrud dolore eiusmod aliquip pariatur labore duis veniam laboris velit duis proident excepteur veniam. Proident fugiat velit nisi aute veniam. Irure pariatur ex eu tempor veniam nisi et eiusmod anim mollit dolore ad ex.\r\nEu quis dolor sit amet ut consequat magna nostrud quis sit. Laboris aliqua consectetur sit tempor consectetur aliqua exercitation officia minim magna duis. Laborum eu ut veniam magna. Nisi enim cillum adipisicing sint ex. Magna proident labore sint aliquip aute. Ut nulla exercitation laboris qui nulla do adipisicing voluptate do. Nulla ullamco nulla dolore cupidatat duis ea aute est ullamco.\r\n", - "address": "4 Pilling Street", - "city": "Rushford", - "state": "South Dakota", - "zip": 48734, - "country": "Turkmenistan", - "email": "pollymitchell@scentric.com", - "phone": "(891) 598-2904", - "color": "rgb(119,240,183)" - }, - { - "index": 50, - "name": "Pat Delgado", - "first": "Brown", - "last": "Perkins", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thekishpatel/73.jpg", - "boolean": true, - "guid": "ec3986d2-8262-464b-bb60-352b533f186f", - "integer": 76, - "date": "Thu Jul 17 1975 16:18:22 GMT-0700 (PDT)", - "shortText": "voluptate est labore", - "mediumText": "Duis incididunt velit nulla consectetur ut labore. Ipsum culpa consectetur quis id velit nulla mollit cupidatat magna veniam consequat. Qui elit laboris veniam amet tempor Lorem dolore. Ex voluptate officia magna ipsum nulla eu Lorem.", - "longText": "Aute proident cupidatat laboris qui officia velit amet nostrud. Aliquip cupidatat sit pariatur ut id sint duis proident laborum sint aliquip. Qui cupidatat labore quis et ut magna fugiat laboris commodo proident ad ut. Consequat aute incididunt proident in cupidatat quis nisi exercitation. Et proident qui et occaecat ea minim.\r\nMinim ex do veniam do. Aliqua commodo minim dolore voluptate ullamco ea. Aliquip ad esse aliqua exercitation laboris qui incididunt dolore eu ut.\r\n", - "address": "3 Ash Street", - "city": "Loyalhanna", - "state": "Alaska", - "zip": 49922, - "country": "Burundi", - "email": "brownperkins@scentric.com", - "phone": "(908) 488-3939", - "color": "rgb(100,214,126)" - }, - { - "index": 51, - "name": "York Marks", - "first": "Janette", - "last": "Cherry", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iqonicd/73.jpg", - "boolean": false, - "guid": "0da3bbca-40ca-4a5d-ab2d-dc983c50ed75", - "integer": 20, - "date": "Sat May 08 2004 23:04:24 GMT-0700 (PDT)", - "shortText": "occaecat velit fugiat dolor", - "mediumText": "Ea non aute incididunt proident sit enim officia. Ad ea eiusmod ex nisi qui duis non consectetur amet minim. Lorem magna tempor consectetur qui reprehenderit nostrud officia incididunt.", - "longText": "Anim dolore minim consequat pariatur non veniam consequat veniam et exercitation mollit eu deserunt. Duis irure duis et cillum nisi sint sit velit. Duis Lorem ut aliqua eu ullamco Lorem proident pariatur aliqua velit amet voluptate.\r\nVeniam dolore velit proident qui sint anim ea. Id ea id Lorem laborum ea aute nulla tempor elit laboris laboris nulla veniam. Laborum duis reprehenderit aute ipsum. Cillum anim nostrud dolore id ex cillum excepteur officia ipsum elit do. Veniam officia duis do consectetur sunt exercitation reprehenderit.\r\nVelit pariatur sunt enim magna elit ex ex excepteur ex id. Aliquip et amet anim non non minim veniam. Ut aliqua non exercitation commodo culpa pariatur sunt do ea.\r\nEu commodo enim pariatur pariatur. Velit anim esse irure ea id qui duis nostrud anim amet. Do enim ut aliquip elit laboris dolor culpa culpa voluptate irure ex. Est labore officia qui est incididunt proident laborum excepteur ullamco cupidatat. Velit dolore aute non dolore voluptate nisi. In id ullamco consectetur incididunt Lorem ullamco.\r\n", - "address": "3 Hubbard Street", - "city": "Beason", - "state": "Louisiana", - "zip": 10084, - "country": "Western Sahara", - "email": "janettecherry@scentric.com", - "phone": "(828) 500-2593", - "color": "rgb(100,221,172)" - }, - { - "index": 52, - "name": "Wilkinson Nelson", - "first": "Florine", - "last": "Hobbs", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iamlechev/73.jpg", - "boolean": false, - "guid": "4fdb5837-9e84-4ee7-8c11-0bba68a3b621", - "integer": 20, - "date": "Sun Feb 26 2012 16:07:03 GMT-0800 (PST)", - "shortText": "veniam nulla incididunt", - "mediumText": "Officia amet incididunt enim duis veniam velit aute incididunt esse qui consequat. Sit nostrud tempor minim nulla excepteur est aliquip dolor esse.", - "longText": "Pariatur commodo tempor laboris nulla minim ut nostrud nostrud in non incididunt exercitation. Pariatur enim deserunt ad dolore ut laborum cupidatat et elit ullamco voluptate eiusmod. Anim labore incididunt voluptate nulla officia dolore ipsum culpa est cupidatat laborum proident.\r\n", - "address": "2 Dodworth Street", - "city": "Hall", - "state": "Missouri", - "zip": 21320, - "country": "Mozambique", - "email": "florinehobbs@scentric.com", - "phone": "(869) 544-3589", - "color": "rgb(208,253,152)" - }, - { - "index": 53, - "name": "Alta Wright", - "first": "Farley", - "last": "Santos", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/elliotpopel/73.jpg", - "boolean": false, - "guid": "19c307c0-cabb-4ab4-8b5e-857bf94a4838", - "integer": 46, - "date": "Tue Nov 27 1973 17:48:13 GMT-0800 (PST)", - "shortText": "do mollit", - "mediumText": "Proident irure in sunt id proident. Incididunt ipsum enim cupidatat nisi qui occaecat qui esse sint mollit nulla. Officia ad eiusmod eu consectetur occaecat mollit culpa deserunt qui exercitation mollit. Duis elit dolore occaecat Lorem sit minim consectetur qui culpa. Aliqua aute irure cupidatat commodo proident labore do aliqua aliquip officia.", - "longText": "Sunt aliqua laborum enim ipsum consequat adipisicing eu consequat labore sit cillum proident veniam proident. Et et sunt commodo aute nostrud mollit labore. Consequat in eu labore in incididunt officia esse mollit in minim minim mollit duis. Enim ea anim do voluptate eiusmod ut qui velit nostrud deserunt mollit.\r\nCommodo amet duis magna deserunt eu nulla eu sunt pariatur aliqua laborum cupidatat esse in. Quis do mollit nulla eiusmod exercitation. Ea eiusmod dolore minim sunt est irure minim non exercitation dolor veniam duis.\r\nIncididunt qui ex aliqua commodo qui aliquip duis. Ea dolore est duis esse sint nisi aliqua exercitation aute aliqua. Enim deserunt laboris eu eu duis nisi eu sint. Mollit est eu cillum excepteur id sit labore occaecat culpa minim adipisicing magna nulla.\r\nAd minim exercitation sunt nostrud quis. Fugiat quis officia officia irure aute eiusmod. Quis in officia do dolore duis duis. Veniam ipsum aute mollit officia pariatur deserunt. Reprehenderit adipisicing ipsum ut qui ex cupidatat sunt id nostrud reprehenderit. Eu incididunt magna duis et nisi minim exercitation laboris nisi. Adipisicing consectetur occaecat enim ad nisi voluptate ut aliquip ea labore do nulla laboris.\r\n", - "address": "3 Hanson Place", - "city": "Madaket", - "state": "Kentucky", - "zip": 95242, - "country": "Grenada", - "email": "farleysantos@scentric.com", - "phone": "(808) 507-2955", - "color": "rgb(143,68,160)" - }, - { - "index": 54, - "name": "Ivy Sparks", - "first": "Gray", - "last": "Paul", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/diesellaws/73.jpg", - "boolean": false, - "guid": "13f75baf-1bd4-4e7d-b527-a007260fe0bf", - "integer": 12, - "date": "Thu May 18 2000 12:52:37 GMT-0700 (PDT)", - "shortText": "laborum veniam ipsum", - "mediumText": "Consequat sit labore esse culpa ex officia eu enim ad sit. Deserunt consequat magna anim adipisicing eu est ipsum mollit est in. Proident et excepteur consectetur cupidatat eu aute ea magna amet qui ea culpa.", - "longText": "Dolore laborum anim sunt ea. Incididunt velit velit Lorem incididunt reprehenderit ea. Cupidatat esse laborum consectetur minim eiusmod nostrud occaecat. Elit esse cupidatat culpa tempor dolor laboris ad.\r\nIpsum ad veniam laboris eiusmod deserunt esse qui ullamco culpa magna sunt cupidatat ad. In pariatur aliquip voluptate quis voluptate qui. Minim ea velit excepteur eiusmod Lorem id consectetur tempor ex occaecat laboris ut tempor officia. Sunt irure exercitation ipsum sint elit amet duis irure.\r\n", - "address": "2 Conklin Avenue", - "city": "Sardis", - "state": "American Samoa", - "zip": 99662, - "country": "Cote D'Ivoire (Ivory Coast)", - "email": "graypaul@scentric.com", - "phone": "(896) 543-3314", - "color": "rgb(180,93,104)" - }, - { - "index": 55, - "name": "Henrietta Riddle", - "first": "Roman", - "last": "Dunlap", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/juanpablob/73.jpg", - "boolean": false, - "guid": "51bc59d2-dab6-443d-98ea-8171f77ad676", - "integer": 79, - "date": "Mon Oct 22 2007 23:28:02 GMT-0700 (PDT)", - "shortText": "sit", - "mediumText": "Est ex duis aliqua in adipisicing enim eu eiusmod consectetur. Reprehenderit nostrud aliquip sit nulla proident eu reprehenderit et minim do. Eiusmod laborum dolor ipsum exercitation nisi amet labore eu do laboris labore. Ad enim ut sunt anim reprehenderit culpa reprehenderit duis ullamco mollit.", - "longText": "Anim commodo voluptate eu voluptate voluptate sunt ipsum irure ipsum mollit cillum anim anim reprehenderit. Nulla ut reprehenderit enim occaecat consequat. Cupidatat Lorem eu qui id id adipisicing incididunt et cillum. Id enim sit cupidatat nulla ut enim consequat est sit sit culpa. Labore do consectetur pariatur qui labore proident dolor consectetur pariatur sit do tempor Lorem dolore. Et incididunt sint aliquip occaecat non dolor aute ea.\r\n", - "address": "2 Anna Court", - "city": "Stollings", - "state": "Minnesota", - "zip": 49877, - "country": "Philippines", - "email": "romandunlap@scentric.com", - "phone": "(852) 477-2611", - "color": "rgb(73,51,135)" - }, - { - "index": 56, - "name": "Odom Hicks", - "first": "Meyer", - "last": "Blackburn", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/whale/73.jpg", - "boolean": false, - "guid": "5cd1a911-4464-4653-9db3-05e55a0f306b", - "integer": 20, - "date": "Mon Jul 24 1978 17:22:48 GMT-0700 (PDT)", - "shortText": "excepteur ex cupidatat ipsum", - "mediumText": "Proident excepteur nostrud sint voluptate ad sint. Exercitation commodo amet nostrud occaecat sunt officia nulla eu. Adipisicing enim velit officia proident sint minim laboris magna officia laborum do occaecat pariatur laboris. Commodo minim ipsum anim amet esse deserunt in ea ad.", - "longText": "Incididunt est pariatur est culpa dolor duis dolore sunt duis dolor qui laboris. Aliqua dolore nostrud dolor commodo esse ex laborum proident et anim. Ut consectetur in minim minim officia mollit id quis. Tempor aliqua dolore esse culpa.\r\nNostrud duis est minim pariatur reprehenderit in qui do nulla non id. Incididunt magna enim reprehenderit incididunt magna tempor duis esse sunt esse commodo. Nulla ex anim laborum laboris. Culpa officia anim reprehenderit ex laboris labore proident exercitation deserunt deserunt ipsum ea esse et. Laborum laborum eiusmod Lorem consectetur consequat. Aute tempor voluptate laboris pariatur amet esse ut labore dolore sint qui. Occaecat aliqua excepteur sit labore.\r\n", - "address": "3 Bleecker Street", - "city": "Albrightsville", - "state": "Hawaii", - "zip": 67670, - "country": "Bermuda", - "email": "meyerblackburn@scentric.com", - "phone": "(812) 415-2585", - "color": "rgb(132,80,57)" - }, - { - "index": 57, - "name": "Dalton Bishop", - "first": "Schwartz", - "last": "Garcia", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kalmerrautam/73.jpg", - "boolean": true, - "guid": "cb6c4011-ab62-4469-bdd6-120762fbd8dc", - "integer": 31, - "date": "Thu Aug 29 2013 04:23:49 GMT-0700 (PDT)", - "shortText": "irure cupidatat adipisicing", - "mediumText": "Elit esse aute dolor officia cupidatat adipisicing duis fugiat aliqua nisi nisi. Culpa reprehenderit consequat voluptate proident in deserunt tempor sint amet ad pariatur. Mollit incididunt magna ullamco deserunt commodo excepteur esse esse commodo duis elit est duis. Sunt amet nisi dolor id laboris dolor exercitation ex exercitation proident pariatur anim. Duis nisi occaecat fugiat tempor sint est incididunt laboris cillum consectetur non cillum.", - "longText": "Eu esse Lorem veniam et dolor. Ad laboris exercitation adipisicing voluptate culpa ullamco ad non sunt ad veniam sit officia consequat. Est ea fugiat consectetur duis aliquip id in reprehenderit. Tempor officia enim tempor aliqua eu. Ut tempor duis minim ea eu proident. Nisi non eiusmod do tempor proident et commodo nisi nisi occaecat. Ullamco cupidatat eiusmod ex magna cillum nisi est.\r\nNisi consequat qui reprehenderit laboris dolor esse Lorem officia dolore ipsum exercitation do. Nulla nulla eiusmod nostrud incididunt ad elit ea non eiusmod incididunt reprehenderit culpa minim. Sint aliqua magna aliquip et magna. Fugiat ut voluptate irure aliquip consequat ut exercitation minim amet enim culpa.\r\nCulpa est pariatur aliquip non amet eu elit veniam Lorem velit nulla aute. Excepteur do commodo minim eu commodo dolore. Ex dolore ea irure adipisicing Lorem labore. Ipsum sit consequat aliquip tempor est. Labore deserunt incididunt et occaecat dolore est laborum exercitation exercitation dolore. Fugiat ipsum est proident anim ullamco ipsum labore fugiat consequat velit. Anim elit cillum ex laborum ad exercitation voluptate ad magna Lorem voluptate tempor.\r\n", - "address": "2 Lynch Street", - "city": "Allison", - "state": "Alabama", - "zip": 19522, - "country": "Benin", - "email": "schwartzgarcia@scentric.com", - "phone": "(890) 442-3503", - "color": "rgb(97,239,223)" - }, - { - "index": 58, - "name": "Adela Key", - "first": "Thornton", - "last": "Sykes", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nicoleglynn/73.jpg", - "boolean": true, - "guid": "8b7914e5-a64e-4c6a-aa82-b62d133a71b4", - "integer": 13, - "date": "Fri Jul 22 1983 16:03:00 GMT-0700 (PDT)", - "shortText": "nisi laboris duis ullamco", - "mediumText": "Aute aliqua adipisicing adipisicing nisi anim veniam adipisicing commodo. Pariatur adipisicing exercitation ullamco quis ad irure labore ad proident magna. Ea duis duis elit Lorem tempor nulla magna dolor adipisicing esse proident deserunt anim. Anim consectetur mollit irure consectetur velit Lorem enim Lorem exercitation laborum fugiat quis reprehenderit irure.", - "longText": "Minim occaecat consequat pariatur pariatur elit amet. Ex nostrud amet in cillum esse id laborum do velit. Anim laboris cillum incididunt fugiat reprehenderit est laboris mollit aliquip occaecat aliqua excepteur irure.\r\nVeniam occaecat sunt occaecat esse occaecat quis proident aliqua est ad magna. Occaecat proident esse officia consectetur sunt consectetur labore sint aliquip veniam ullamco in consequat est. Eiusmod labore amet id nulla tempor ad.\r\nDeserunt anim ea duis eu laborum aliqua exercitation. Proident enim Lorem enim mollit esse eu est ipsum adipisicing pariatur magna laboris. Excepteur exercitation labore ut qui velit do nulla. Et incididunt consectetur incididunt ipsum Lorem anim aute in dolor consequat laborum labore velit. Adipisicing duis voluptate duis deserunt dolore. Commodo culpa eiusmod excepteur sunt qui et elit non id occaecat est fugiat ea. Et ea elit dolore officia magna ad sit tempor est ullamco fugiat elit tempor dolor.\r\n", - "address": "2 Beaver Street", - "city": "Sidman", - "state": "North Carolina", - "zip": 72662, - "country": "Lithuania", - "email": "thorntonsykes@scentric.com", - "phone": "(895) 528-2574", - "color": "rgb(134,86,134)" - }, - { - "index": 59, - "name": "Church Walls", - "first": "Webb", - "last": "Maddox", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rickdt/73.jpg", - "boolean": true, - "guid": "446ed374-2f83-4fc6-933b-60892c7e61f6", - "integer": 97, - "date": "Fri Jun 11 1993 04:18:26 GMT-0700 (PDT)", - "shortText": "officia sint amet aute aliquip", - "mediumText": "Consectetur reprehenderit duis dolor duis sint adipisicing elit anim incididunt labore aliquip enim sit adipisicing.", - "longText": "Qui sit enim sunt anim quis aliquip reprehenderit id commodo pariatur sint. Ex aliquip quis voluptate id incididunt. Et fugiat laborum aute anim proident aliquip aliquip reprehenderit eu irure sint proident officia. Ipsum in commodo sint enim consectetur aliqua laboris ea proident ex. Proident culpa eiusmod ea officia excepteur anim fugiat irure ex nostrud dolore.\r\n", - "address": "4 Hicks Street", - "city": "Derwood", - "state": "Connecticut", - "zip": 72544, - "country": "Virgin Islands (British)", - "email": "webbmaddox@scentric.com", - "phone": "(944) 564-2803", - "color": "rgb(162,85,229)" - }, - { - "index": 60, - "name": "Kristi Crosby", - "first": "Cathleen", - "last": "Nichols", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/funwatercat/73.jpg", - "boolean": true, - "guid": "7a7ad168-8ae8-492d-956e-c2a16f8578e9", - "integer": 92, - "date": "Sun Jan 01 1989 18:01:36 GMT-0800 (PST)", - "shortText": "adipisicing Lorem velit quis", - "mediumText": "Velit esse consequat exercitation eu excepteur officia minim laborum cupidatat officia id ad amet occaecat. Dolor officia qui est ea nisi non.", - "longText": "Culpa anim qui adipisicing id cillum id officia quis incididunt aliqua. Anim excepteur dolore proident amet. Cillum sunt quis pariatur proident esse Lorem eiusmod et eiusmod non. Ipsum aliquip magna esse veniam nulla Lorem pariatur nulla voluptate ullamco excepteur nostrud non ex. Nisi et occaecat pariatur est irure amet consequat consectetur nisi consequat quis in exercitation. Culpa eu amet laborum ullamco do mollit mollit.\r\nIrure aliqua dolore nulla occaecat ipsum minim Lorem dolor Lorem ut. Velit amet laborum deserunt nostrud mollit Lorem ullamco incididunt excepteur magna. Eiusmod tempor pariatur anim do esse laborum sint ea elit excepteur. Commodo cillum cupidatat duis dolor ad laboris occaecat. Occaecat ad nostrud amet exercitation laborum eiusmod.\r\nAliquip ullamco officia ullamco do mollit amet non. Do ut aute velit culpa officia ullamco aliquip voluptate consequat quis quis irure qui dolore. Labore amet reprehenderit do velit aliqua minim aliqua commodo non ipsum labore culpa dolor ad. Nisi sit occaecat proident labore officia incididunt non consectetur Lorem. Consequat anim dolore duis esse ad aliqua ea sit ad ex. Consectetur est id non esse aliqua sit ut adipisicing commodo aliqua. Exercitation nisi consectetur tempor nulla.\r\nLorem in consectetur anim fugiat dolore duis fugiat. Nisi Lorem velit occaecat cillum consectetur ipsum aliqua velit et. Do cupidatat enim sit duis eu labore officia nostrud nisi qui.\r\n", - "address": "4 Engert Avenue", - "city": "Lumberton", - "state": "South Carolina", - "zip": 64235, - "country": "Jordan", - "email": "cathleennichols@scentric.com", - "phone": "(963) 428-3124", - "color": "rgb(237,75,179)" - }, - { - "index": 61, - "name": "Winnie Coleman", - "first": "Ila", - "last": "Bentley", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ssiskind/73.jpg", - "boolean": false, - "guid": "2d8a81c0-1dd7-4c00-a89f-473446addf54", - "integer": 38, - "date": "Tue Jun 30 1998 19:23:01 GMT-0700 (PDT)", - "shortText": "incididunt", - "mediumText": "Ex velit voluptate aliquip adipisicing eiusmod. Occaecat aliqua voluptate nisi nostrud est sit sunt qui. Excepteur est nisi sunt esse ipsum ipsum reprehenderit velit deserunt minim labore est.", - "longText": "Do esse eu mollit sunt elit aute velit incididunt reprehenderit sunt. Ad ad minim adipisicing eiusmod magna pariatur irure velit labore cupidatat ea ipsum eu. Ipsum consequat ut in minim aliqua.\r\n", - "address": "2 Havemeyer Street", - "city": "Frank", - "state": "Michigan", - "zip": 60748, - "country": "Nicaragua", - "email": "ilabentley@scentric.com", - "phone": "(947) 456-2663", - "color": "rgb(77,78,128)" - }, - { - "index": 62, - "name": "Clemons Chen", - "first": "Warner", - "last": "Blair", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/the_purplebunny/73.jpg", - "boolean": true, - "guid": "1d9dfc0f-0e70-4189-9a2d-d134505173d7", - "integer": 28, - "date": "Sat Sep 12 2009 19:12:02 GMT-0700 (PDT)", - "shortText": "officia", - "mediumText": "Exercitation non labore et duis et Lorem est et irure fugiat dolore officia ex.", - "longText": "Ea aute eiusmod ipsum ipsum eu nostrud. Duis culpa consequat aute nulla nisi ut sint sit culpa et duis magna enim. Nisi sunt dolore minim quis do. Magna deserunt duis velit et ut et enim magna laborum nulla ea culpa commodo. Minim ut id culpa anim laborum laborum consectetur amet et ullamco culpa do labore.\r\nEst magna aliquip ea ullamco. Exercitation deserunt occaecat id in ut sit laborum aute. Ex ut ex anim cupidatat do amet proident mollit. Dolor magna irure id culpa. Amet ut laborum pariatur irure dolor velit aute magna cupidatat commodo amet officia reprehenderit. Aute elit nisi excepteur qui cillum nulla consequat quis veniam est fugiat sunt. Proident consequat sunt exercitation sint nostrud commodo laborum adipisicing excepteur deserunt.\r\nEiusmod sunt consequat enim non irure excepteur adipisicing. Ad id veniam consectetur fugiat excepteur ex non et velit ut Lorem. Exercitation occaecat officia fugiat consectetur tempor exercitation culpa sint enim cupidatat commodo ullamco Lorem. Aliquip non ut fugiat nisi Lorem nulla mollit aliquip voluptate et exercitation minim enim cupidatat.\r\nElit do est amet nulla aliquip proident consectetur aliquip. Lorem nulla incididunt laborum in proident. Lorem veniam enim tempor non consectetur et ea non elit. Cupidatat pariatur adipisicing quis ex in incididunt dolor officia in. Aliqua do laboris dolore eu dolore magna eiusmod consequat nostrud anim.\r\nUt ullamco voluptate fugiat ullamco irure laboris commodo officia veniam sint ex magna id nisi. Qui occaecat sit deserunt aliqua veniam. Cillum do eiusmod velit voluptate magna do sunt adipisicing adipisicing ex esse officia eiusmod. Consectetur minim sint pariatur eiusmod ipsum anim. Consectetur anim esse fugiat tempor excepteur aliqua esse deserunt consequat tempor velit magna.\r\n", - "address": "2 Woodbine Street", - "city": "Rivers", - "state": "Maine", - "zip": 35489, - "country": "South Africa", - "email": "warnerblair@scentric.com", - "phone": "(811) 480-2342", - "color": "rgb(88,244,211)" - }, - { - "index": 63, - "name": "Marcy William", - "first": "Garcia", - "last": "Carter", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/linkthief/73.jpg", - "boolean": false, - "guid": "bb80a091-a78d-4187-ab75-c5e5a6cb2362", - "integer": 3, - "date": "Wed Mar 20 1974 00:41:43 GMT-0700 (PDT)", - "shortText": "amet", - "mediumText": "Deserunt officia laboris velit enim do cillum enim. Aliquip commodo veniam dolore commodo eiusmod nostrud occaecat adipisicing amet id. Incididunt cillum sunt esse consequat magna eiusmod ex culpa. Aliquip irure excepteur sunt esse incididunt et sint.", - "longText": "Ullamco veniam exercitation velit eu aute fugiat nisi dolor do. Deserunt culpa laboris ipsum cillum sunt pariatur occaecat cillum sint qui deserunt tempor pariatur. Ex ea incididunt aute in fugiat dolor reprehenderit mollit velit ut eiusmod. Veniam sunt sit officia sint Lorem fugiat dolor commodo amet culpa. Officia nostrud eiusmod commodo ex labore nulla id ea ipsum excepteur laboris velit.\r\nFugiat eiusmod laboris pariatur labore. Non enim nisi nostrud quis amet laboris aliquip laborum et irure aute veniam. Anim ullamco in officia commodo aliqua minim. Amet in enim nostrud pariatur id est occaecat ad occaecat. Nisi commodo proident et pariatur est ea esse proident dolore aliqua sit voluptate.\r\nEt est fugiat duis cillum veniam nulla. Enim anim commodo consequat aliquip excepteur Lorem dolor adipisicing anim incididunt officia dolore laboris. Incididunt pariatur officia minim fugiat consectetur reprehenderit commodo et ut. Commodo nisi exercitation duis excepteur ea minim qui enim tempor aliqua Lorem ipsum est excepteur. Ullamco veniam occaecat excepteur et laborum. Voluptate Lorem proident id ipsum laboris consequat ullamco occaecat est cupidatat aute ipsum aliqua.\r\nAnim mollit laboris amet dolor occaecat tempor id. Adipisicing sit magna ullamco tempor dolor ullamco sunt exercitation enim dolore exercitation non ullamco eiusmod. Esse ad aliquip ullamco voluptate dolor voluptate Lorem nostrud Lorem aute id Lorem. Laborum nulla ex pariatur anim irure cillum veniam eiusmod commodo.\r\nAdipisicing est ea adipisicing incididunt nostrud reprehenderit labore pariatur est. Consequat sint deserunt ea ullamco do cupidatat incididunt mollit sunt veniam. Eu velit Lorem officia ex officia deserunt adipisicing culpa cillum mollit tempor cupidatat proident. Qui aliquip labore sunt commodo veniam aliqua est cillum. Ut esse laboris consectetur mollit eiusmod duis sunt esse duis laboris tempor.\r\n", - "address": "2 Sedgwick Place", - "city": "Malott", - "state": "Kansas", - "zip": 33342, - "country": "Mexico", - "email": "garciacarter@scentric.com", - "phone": "(838) 400-3578", - "color": "rgb(238,146,141)" - }, - { - "index": 64, - "name": "Saunders Tyler", - "first": "Bowen", - "last": "Olson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ffbel/73.jpg", - "boolean": false, - "guid": "81275503-dc66-4920-a852-66b9bb420ab7", - "integer": 83, - "date": "Sat Jun 05 2004 18:02:53 GMT-0700 (PDT)", - "shortText": "eu", - "mediumText": "Cillum eiusmod sit aliquip magna excepteur occaecat adipisicing culpa. Sint quis dolor est laborum cupidatat ea dolore eu incididunt quis ullamco. Culpa non ad consectetur aliqua sint consequat duis ea tempor cupidatat culpa minim duis aliqua.", - "longText": "Non veniam consequat laborum dolor deserunt nulla amet incididunt. Velit eu ut adipisicing labore nisi. Aute ea ex esse reprehenderit quis officia do. Labore dolor elit ea aliqua. Ex ut anim eiusmod est ullamco qui laborum consequat consequat ullamco velit nulla. Nisi id proident occaecat id ipsum cillum irure ea quis labore reprehenderit ipsum eu. Ea ex irure quis culpa proident laborum ut veniam magna nostrud ex officia.\r\nTempor ut sint sunt fugiat commodo dolore irure qui enim mollit. Lorem id cillum nulla ullamco amet. Proident anim proident ea ut aliquip in elit. Consequat eiusmod ut aliqua enim qui nulla reprehenderit laboris et ea ad aliqua commodo. Excepteur in proident irure esse.\r\n", - "address": "2 Fleet Walk", - "city": "Shelby", - "state": "Iowa", - "zip": 95437, - "country": "Sudan", - "email": "bowenolson@scentric.com", - "phone": "(895) 420-2620", - "color": "rgb(71,127,188)" - }, - { - "index": 65, - "name": "Landry Hendricks", - "first": "Kidd", - "last": "Sanders", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/labibjaffar/73.jpg", - "boolean": true, - "guid": "c1d57dbd-5b06-44aa-bf5b-ffa5bb4cc5ba", - "integer": 15, - "date": "Sat Oct 19 1996 17:52:51 GMT-0700 (PDT)", - "shortText": "elit duis", - "mediumText": "Laboris irure quis ipsum consequat consectetur culpa aliqua in.", - "longText": "Ad aliquip adipisicing eu ex sunt duis pariatur fugiat consectetur ex. Reprehenderit do Lorem velit et tempor. Duis ad ad minim dolore excepteur ex nostrud officia. Elit aute aliqua laboris enim velit esse ullamco. Cupidatat non sunt laborum labore eu aliqua exercitation ea. Mollit ex non consectetur ad ex. Dolor occaecat deserunt excepteur culpa sit proident ad sint nisi esse elit et irure anim.\r\nCupidatat ullamco aliquip in commodo laboris elit minim ad. Sit esse nulla et ipsum officia commodo. Dolore ad proident tempor aliquip occaecat tempor mollit.\r\n", - "address": "3 Union Avenue", - "city": "Shepardsville", - "state": "Vermont", - "zip": 42858, - "country": "Papua New Guinea", - "email": "kiddsanders@scentric.com", - "phone": "(857) 415-3707", - "color": "rgb(205,180,193)" - }, - { - "index": 66, - "name": "Hogan Strickland", - "first": "Deanne", - "last": "Casey", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tnrzdmr/73.jpg", - "boolean": false, - "guid": "66bcba0b-2ae4-4fba-9b76-ebf0bacf8b3c", - "integer": 23, - "date": "Tue Mar 24 2009 07:16:09 GMT-0700 (PDT)", - "shortText": "id non labore cupidatat enim", - "mediumText": "Deserunt dolor do cillum ut proident. Ad non proident laborum sint tempor velit. Voluptate eu ea commodo est ipsum laboris non nulla reprehenderit incididunt laborum proident id exercitation. Laboris amet exercitation qui proident veniam laboris.", - "longText": "Ea proident esse nisi eu officia eiusmod laborum. Occaecat aliqua eu enim ullamco culpa labore irure amet sunt adipisicing magna. Culpa enim veniam magna qui anim ad nulla. Lorem fugiat in nostrud sunt do mollit eiusmod ut. Occaecat ipsum esse laboris nostrud reprehenderit velit.\r\nVoluptate eiusmod ullamco sunt cupidatat pariatur ea qui non. Velit commodo sint esse adipisicing pariatur ut id ad Lorem cillum. Nisi ut esse quis deserunt magna eu esse minim.\r\nIncididunt ullamco sunt sunt velit. Minim quis quis quis aliqua anim quis est ad pariatur esse reprehenderit labore laboris. Irure magna dolor in nisi sunt et.\r\n", - "address": "2 Cornelia Street", - "city": "Kent", - "state": "Nebraska", - "zip": 46682, - "country": "Romania", - "email": "deannecasey@scentric.com", - "phone": "(935) 548-2580", - "color": "rgb(106,182,101)" - }, - { - "index": 67, - "name": "Hart Carlson", - "first": "Hardin", - "last": "Thornton", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jeremyjantz/73.jpg", - "boolean": true, - "guid": "7601ed4e-21fb-4024-bb7e-36d45c052b7f", - "integer": 68, - "date": "Sat Apr 20 2002 15:29:17 GMT-0700 (PDT)", - "shortText": "ex anim", - "mediumText": "Tempor veniam proident elit proident aliqua nostrud tempor eiusmod. Commodo id dolor sint amet commodo officia. Anim sint ea amet cillum. Esse cupidatat aute veniam ipsum excepteur.", - "longText": "Cillum aute voluptate veniam minim et excepteur ad nulla enim anim adipisicing incididunt aute. Aliqua adipisicing elit minim officia id mollit laborum sunt do. Nostrud do laboris fugiat ad mollit. Eu dolor dolor Lorem labore mollit esse consectetur in fugiat enim ullamco sit elit nisi. Enim eiusmod nostrud enim velit. Lorem commodo laboris excepteur eu occaecat minim.\r\nEst nulla eiusmod tempor amet dolore aute proident eu commodo minim sint proident consectetur. Cupidatat sunt quis laboris adipisicing eiusmod aliqua mollit. Elit qui nostrud commodo irure irure ex esse sunt officia. Tempor cillum nulla anim aliqua. Cillum tempor irure voluptate sunt laboris non commodo anim qui ullamco. Quis velit consectetur eu irure proident reprehenderit nisi nulla dolore sunt magna.\r\nCulpa laborum enim enim proident sit dolore pariatur eiusmod. Excepteur proident mollit in ut do non. Cillum duis non consectetur ullamco minim Lorem occaecat consequat tempor ullamco veniam labore labore aliquip.\r\nLaboris voluptate anim dolore nisi ullamco consequat nostrud dolor. Nulla do do esse aute sint deserunt qui. Ex aliqua dolore minim dolore consectetur nulla consequat ad consequat. Nulla et proident magna eu consequat ullamco excepteur in ipsum enim ut duis. Deserunt et sunt tempor quis amet deserunt cupidatat veniam. Labore reprehenderit magna minim amet nostrud amet. Reprehenderit pariatur dolore ut culpa sint dolore.\r\n", - "address": "2 Lincoln Place", - "city": "Walland", - "state": "Florida", - "zip": 37274, - "country": "Bangladesh", - "email": "hardinthornton@scentric.com", - "phone": "(905) 466-2231", - "color": "rgb(145,123,64)" - }, - { - "index": 68, - "name": "Benita Lester", - "first": "Taylor", - "last": "Irwin", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ibrahemaq/73.jpg", - "boolean": false, - "guid": "dc96c6e9-9c43-4525-8de4-9a5e504ab886", - "integer": 2, - "date": "Sat Jun 25 1977 03:55:08 GMT-0700 (PDT)", - "shortText": "ex", - "mediumText": "Anim laboris dolore non aliqua proident aliqua et est ad reprehenderit duis ipsum do. Irure Lorem voluptate tempor ipsum exercitation. Sint deserunt adipisicing Lorem sit ea duis ex. Et fugiat anim est non irure proident in commodo sunt pariatur nulla.", - "longText": "Ut aute anim amet minim nulla. Fugiat dolor pariatur quis do aute officia magna in culpa ipsum fugiat. Cupidatat cillum duis aliquip nulla ea quis aliqua. Cillum sunt laboris velit deserunt cupidatat ullamco. Incididunt eiusmod culpa proident duis ex enim ad dolor labore voluptate eiusmod.\r\nLabore culpa commodo amet eu elit magna nisi minim in irure. Dolor adipisicing aliquip laboris irure. Amet et enim fugiat mollit ad laboris sint elit cupidatat deserunt. Ut amet laborum veniam elit amet minim et laboris aute nulla consequat esse ut. Ea dolore sit excepteur eiusmod pariatur sit non non consequat aute.\r\nAute culpa aute ullamco sunt irure quis voluptate est laborum. Duis eu ut do laboris laborum ipsum. Incididunt officia culpa velit commodo elit aliquip Lorem consectetur quis dolor veniam officia. Voluptate cupidatat duis ipsum elit cupidatat.\r\nCillum non ad ad et. Ad eiusmod dolor excepteur cillum mollit laboris ullamco cillum esse est. Aliquip eiusmod cupidatat ex id aute do officia excepteur non.\r\nOccaecat ullamco velit aliqua amet labore veniam dolore officia dolor nisi deserunt nisi qui fugiat. Velit laborum duis reprehenderit reprehenderit laboris occaecat. Aute exercitation magna exercitation magna sit. Fugiat cupidatat tempor eiusmod voluptate enim. Aliqua cillum sunt deserunt ex consectetur anim in labore excepteur fugiat reprehenderit.\r\n", - "address": "4 Crosby Avenue", - "city": "Wintersburg", - "state": "New Jersey", - "zip": 37633, - "country": "Monaco", - "email": "taylorirwin@scentric.com", - "phone": "(898) 517-3041", - "color": "rgb(85,97,125)" - }, - { - "index": 69, - "name": "Cantu Owens", - "first": "Stone", - "last": "Watson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/croakx/73.jpg", - "boolean": false, - "guid": "32abd836-bc46-4a8e-a2c1-7dc92b9e8322", - "integer": 46, - "date": "Mon Nov 17 2003 17:10:32 GMT-0800 (PST)", - "shortText": "cupidatat officia anim ipsum aliquip", - "mediumText": "Elit duis non minim aliqua aliquip irure. Duis ex est ut exercitation laborum excepteur aliqua. Nostrud ut fugiat officia exercitation cupidatat adipisicing nisi in ut ipsum sit reprehenderit. Qui ea Lorem quis velit.", - "longText": "Ipsum ullamco est aute tempor culpa aute enim id incididunt commodo aliqua. Mollit aute sit eu sint cillum ea cupidatat nulla labore anim ut. Est officia tempor ex amet veniam anim non mollit nulla cillum labore adipisicing velit. Et ut nostrud Lorem quis minim laboris mollit sit.\r\nVelit officia nulla reprehenderit exercitation irure exercitation eiusmod exercitation voluptate consequat cupidatat incididunt nisi. Ipsum aliqua quis laborum est sunt. In consectetur eiusmod aute magna. Ex ullamco sit sint excepteur esse eu magna aliqua do aute elit sunt cillum adipisicing. Sunt irure pariatur laboris et fugiat irure. Amet ipsum nostrud est Lorem anim velit. Est cupidatat dolor consectetur velit occaecat mollit cillum anim est pariatur ad occaecat in dolor.\r\nUllamco incididunt fugiat sit fugiat id Lorem pariatur laborum Lorem consequat. Ullamco irure incididunt duis occaecat aliqua pariatur. Aliqua reprehenderit aliqua est non nisi et consequat commodo nisi laborum. Ipsum est qui sunt voluptate elit do voluptate culpa sint ex est officia ad.\r\n", - "address": "2 Bayard Street", - "city": "Glasgow", - "state": "Wisconsin", - "zip": 57777, - "country": "Martinique", - "email": "stonewatson@scentric.com", - "phone": "(867) 474-2146", - "color": "rgb(96,110,114)" - }, - { - "index": 70, - "name": "Colon Jarvis", - "first": "Avery", - "last": "Knox", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_dukex/73.jpg", - "boolean": false, - "guid": "9bcf96b4-7ca7-4a59-b7b7-6d6a57293012", - "integer": 28, - "date": "Sun Jan 28 2001 22:12:27 GMT-0800 (PST)", - "shortText": "pariatur officia reprehenderit ut", - "mediumText": "Ut dolore quis eiusmod culpa laboris ad fugiat.", - "longText": "Irure sunt labore commodo ea ex in dolore. Minim reprehenderit sit non et reprehenderit qui esse ex adipisicing. Duis ipsum in culpa est. Non do nisi pariatur dolore elit do qui non pariatur. Id id laboris aliquip minim sint pariatur officia consequat proident cillum sint.\r\nFugiat duis est irure mollit. Cupidatat enim anim adipisicing mollit enim ut nostrud sit. Dolore anim ut enim sint fugiat dolor dolore laboris Lorem eu nostrud pariatur ullamco. Dolore eiusmod aliquip amet esse sunt culpa eiusmod aliquip et exercitation Lorem. Mollit deserunt eiusmod ex ipsum qui consectetur ullamco velit. Reprehenderit proident cupidatat reprehenderit cupidatat. Voluptate eu sit reprehenderit veniam ut.\r\nDo consectetur culpa deserunt dolor. Laborum dolore cillum exercitation id sit veniam dolor sunt consequat. Proident est proident sit ut incididunt tempor ullamco sunt.\r\nIn amet consectetur nulla ullamco ullamco culpa. Magna deserunt esse id ad proident pariatur aliquip cupidatat elit nulla deserunt ipsum consectetur elit. Eu sint sint incididunt nulla ad consequat ex anim sit duis ut quis mollit. Id aliquip consectetur cupidatat officia irure enim eu nostrud aliqua eiusmod dolore culpa. Cillum aute laborum aliquip aute labore nostrud cillum veniam incididunt veniam amet. Sit ad in proident cupidatat elit irure nostrud dolore.\r\n", - "address": "4 Sharon Street", - "city": "Chapin", - "state": "Washington", - "zip": 80442, - "country": "Kuwait", - "email": "averyknox@scentric.com", - "phone": "(851) 582-2204", - "color": "rgb(122,179,117)" - }, - { - "index": 71, - "name": "Ratliff Kline", - "first": "Cathryn", - "last": "Rodgers", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gregsqueeb/73.jpg", - "boolean": false, - "guid": "9a177597-6ee1-4784-b217-60ded54d0072", - "integer": 32, - "date": "Fri May 07 1976 11:12:00 GMT-0700 (PDT)", - "shortText": "nostrud enim", - "mediumText": "Officia do enim nisi ullamco enim eiusmod eu enim ex tempor. Id voluptate nisi quis officia sint ut ex veniam mollit excepteur tempor. Et aliqua velit sit fugiat do voluptate ipsum aliquip veniam in sint do. Culpa ut dolore culpa sunt nostrud reprehenderit do veniam voluptate ut labore labore ullamco tempor. Voluptate voluptate veniam laborum deserunt.", - "longText": "Et laboris labore irure consequat consequat et eu minim aute consectetur. Nisi tempor sunt officia ad dolore culpa. Veniam proident minim velit nisi amet id nulla ullamco eiusmod sit ad.\r\n", - "address": "2 Burnett Street", - "city": "Tivoli", - "state": "Oregon", - "zip": 69271, - "country": "Ukraine", - "email": "cathrynrodgers@scentric.com", - "phone": "(819) 482-2099", - "color": "rgb(177,117,238)" - }, - { - "index": 72, - "name": "Burgess Mcconnell", - "first": "Head", - "last": "Cohen", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/csmnng/73.jpg", - "boolean": false, - "guid": "22894c1b-29ad-4e31-a69e-d724d00cdec3", - "integer": 51, - "date": "Fri Jan 08 1993 09:39:13 GMT-0800 (PST)", - "shortText": "cupidatat ex excepteur tempor", - "mediumText": "Proident eiusmod mollit voluptate culpa incididunt et velit commodo laborum et. Anim ex sunt id ea id excepteur commodo esse exercitation pariatur esse anim. Qui dolore irure eiusmod eu dolore.", - "longText": "Dolor incididunt eiusmod nostrud consequat mollit amet nisi ea. Officia dolore mollit eiusmod ullamco anim incididunt. Laboris sint enim ex mollit consequat consequat.\r\nMinim quis labore eu dolor adipisicing magna nulla nulla quis voluptate voluptate. Nisi tempor non veniam duis qui dolore qui et ut exercitation amet labore elit. Reprehenderit magna do aliquip aliqua cillum tempor ex veniam mollit dolore est nulla ad aute. Est amet non ipsum adipisicing sunt duis Lorem officia ad culpa do proident ad. Consectetur excepteur culpa consequat esse consequat exercitation deserunt adipisicing adipisicing occaecat nisi. Commodo officia commodo deserunt minim excepteur do fugiat consectetur. Aliqua proident ad fugiat eiusmod tempor dolore do incididunt eiusmod labore quis.\r\nLabore fugiat incididunt aliquip deserunt fugiat nostrud. Velit minim aliqua sit incididunt. Velit ad et nulla est consectetur Lorem officia ut eu consequat enim ut. Consequat labore qui magna do aute deserunt consectetur. Minim aliquip in quis minim ad mollit ut non Lorem.\r\nEu laboris culpa magna dolor pariatur anim ea amet fugiat minim. Adipisicing fugiat ea est eiusmod proident proident anim commodo quis laboris cupidatat. Labore aliquip mollit Lorem voluptate sit laborum irure id adipisicing ex. Ad cillum sunt sit magna exercitation mollit eiusmod mollit est elit. Ullamco aute esse magna deserunt irure ex et ullamco consequat laborum deserunt aute. Nulla mollit sunt nostrud in quis in est nisi eiusmod excepteur ut voluptate. Do anim ex cillum eiusmod duis ut sit.\r\nAdipisicing nisi ullamco qui sint est laborum tempor incididunt pariatur excepteur fugiat. Officia sunt proident laborum fugiat quis magna veniam. Nulla do do esse magna. Labore ad sit mollit ullamco nulla aute est sit ipsum ex cupidatat. Dolor ex duis nostrud amet incididunt incididunt reprehenderit non tempor elit magna.\r\n", - "address": "3 Hamilton Avenue", - "city": "Crisman", - "state": "Illinois", - "zip": 36121, - "country": "Guatemala", - "email": "headcohen@scentric.com", - "phone": "(930) 570-3544", - "color": "rgb(151,112,173)" - }, - { - "index": 73, - "name": "Roberta Bond", - "first": "Simone", - "last": "Whitfield", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ogmenemre/73.jpg", - "boolean": false, - "guid": "4750f9fa-37f6-41d0-8599-946f9dff2e00", - "integer": 6, - "date": "Thu Sep 06 1984 11:04:11 GMT-0700 (PDT)", - "shortText": "Lorem consectetur", - "mediumText": "Ad anim sint ex in voluptate deserunt ut nulla adipisicing. Elit non velit pariatur nostrud quis do quis cillum ea et sint Lorem. Laboris eu amet do dolor cillum esse voluptate adipisicing officia aliqua aliqua duis.", - "longText": "Commodo cupidatat velit duis elit id duis aliqua. Laboris dolor laboris ad irure laborum. Dolor amet aliqua eu sint. Anim occaecat irure ex cillum qui et adipisicing cupidatat deserunt et est consequat velit quis. Magna ut cillum nostrud ea pariatur occaecat. Culpa eu voluptate nostrud elit anim cupidatat fugiat aute dolore nisi nostrud magna nostrud pariatur. Non aliquip irure excepteur culpa irure veniam ea ad deserunt laborum reprehenderit Lorem.\r\nCillum tempor nulla do tempor eiusmod id esse officia culpa aliqua culpa et exercitation laboris. Sit sit Lorem eu fugiat Lorem. Laboris consequat incididunt aliquip Lorem cupidatat sint deserunt ut duis labore dolor ipsum laboris nulla. Deserunt adipisicing reprehenderit id commodo aute sunt dolore ex duis cillum nisi eu. Anim deserunt et adipisicing fugiat anim in.\r\nId non irure in esse incididunt aliquip ullamco magna et nulla mollit dolore. Velit aliquip excepteur pariatur magna Lorem fugiat. Exercitation nisi nostrud cupidatat elit. Velit occaecat culpa nisi nisi proident quis dolore anim cupidatat adipisicing ullamco ad cupidatat dolor.\r\nConsequat ut esse incididunt et in commodo culpa consequat ipsum laboris consequat incididunt anim incididunt. Ad et nostrud amet non Lorem enim laborum id ad Lorem magna excepteur. Ad cupidatat cillum proident exercitation dolore aute veniam nostrud ex duis esse elit. Voluptate ullamco ipsum et do est ea laborum reprehenderit irure magna. Exercitation aliqua proident magna irure ex est laboris ea aliqua esse. Ea deserunt culpa aute velit reprehenderit Lorem voluptate mollit quis Lorem deserunt Lorem amet.\r\n", - "address": "4 Hastings Street", - "city": "Linganore", - "state": "West Virginia", - "zip": 87951, - "country": "Argentina", - "email": "simonewhitfield@scentric.com", - "phone": "(959) 575-3680", - "color": "rgb(205,221,178)" - }, - { - "index": 74, - "name": "Sara Mckay", - "first": "Sue", - "last": "Cotton", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ionutmaxim/73.jpg", - "boolean": false, - "guid": "1da2f858-f774-49c1-9d77-e8a3eb040140", - "integer": 31, - "date": "Fri Nov 25 1994 01:11:26 GMT-0800 (PST)", - "shortText": "et", - "mediumText": "Pariatur Lorem veniam ullamco cupidatat sint. Cillum velit nostrud excepteur adipisicing velit Lorem fugiat proident.", - "longText": "Consectetur tempor mollit do ea anim dolore laboris in exercitation cupidatat commodo reprehenderit Lorem. Consequat exercitation sint culpa aute quis nisi. Exercitation consectetur irure aliqua cillum ut non labore exercitation ea et.\r\nUllamco dolor consequat reprehenderit dolore id mollit laborum ad. Amet ea voluptate voluptate fugiat sint adipisicing dolor dolor occaecat eu sit. Ea ea est amet enim tempor occaecat tempor sit exercitation. Ad eu nisi dolore do culpa do anim irure aliquip officia irure. Consectetur et voluptate sint sunt fugiat deserunt consectetur deserunt voluptate laborum non tempor occaecat. Amet magna velit ad qui consectetur reprehenderit deserunt voluptate commodo non ullamco proident laboris.\r\nCillum magna incididunt pariatur sunt ipsum duis voluptate in fugiat id officia cupidatat reprehenderit ipsum. Dolore anim excepteur ea laboris labore minim. Excepteur ex adipisicing eiusmod sit ut reprehenderit. Mollit elit veniam dolore quis nulla officia eiusmod minim nulla non amet. Minim nostrud veniam fugiat cillum est consectetur amet non ad dolore pariatur nisi.\r\n", - "address": "2 Fair Street", - "city": "Kingstowne", - "state": "Mississippi", - "zip": 18339, - "country": "Mauritius", - "email": "suecotton@scentric.com", - "phone": "(816) 520-2774", - "color": "rgb(241,214,199)" - }, - { - "index": 75, - "name": "Coleman Cook", - "first": "Olson", - "last": "Burch", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/teylorfeliz/73.jpg", - "boolean": true, - "guid": "0788dba4-5fa8-476e-9ba6-8f387bf77e75", - "integer": 13, - "date": "Thu Jun 21 1984 02:52:09 GMT-0700 (PDT)", - "shortText": "anim anim deserunt deserunt anim", - "mediumText": "Esse sunt irure magna amet. Adipisicing aliqua ut dolor nulla non aute tempor eu ex sit id et. Magna dolore aliqua qui velit eu officia. Est sunt magna adipisicing commodo mollit aute duis magna.", - "longText": "Duis fugiat culpa proident mollit nostrud. Dolore incididunt in esse veniam eiusmod voluptate consequat amet. Excepteur eu et duis enim proident ullamco irure minim duis quis anim consectetur. Amet excepteur et do officia fugiat mollit Lorem ut elit. Eiusmod magna tempor duis Lorem nostrud. Fugiat elit commodo non et fugiat eu eiusmod in minim veniam sint qui veniam ullamco. Aliquip sint ad culpa esse laboris elit.\r\nMinim reprehenderit quis ut incididunt incididunt cupidatat. Sit sit elit tempor irure id et aliqua deserunt Lorem aliqua exercitation. Elit nisi dolor enim amet esse incididunt ad. Aliqua elit velit nulla sit sint non occaecat ipsum ea velit minim proident. Sint laboris labore laboris elit nulla ullamco laboris cupidatat amet consectetur. Do eiusmod proident id laborum fugiat nostrud voluptate fugiat. Labore pariatur proident eiusmod laborum sunt occaecat enim nisi labore.\r\nLabore labore nisi velit consequat magna officia reprehenderit consequat. Nulla eu velit laborum voluptate. Fugiat tempor laborum labore minim nostrud tempor sit mollit laboris enim consectetur sit ut veniam. Occaecat exercitation ex consequat id occaecat elit duis reprehenderit ut enim quis magna. Non do ea fugiat quis duis esse amet deserunt eu id duis est enim.\r\nNostrud labore tempor minim proident do quis labore aliqua est mollit duis minim. Esse veniam commodo velit culpa in pariatur laborum in minim exercitation excepteur labore commodo. Mollit cillum ipsum adipisicing in nulla mollit irure. Et laborum minim sit id pariatur ad voluptate nulla ullamco deserunt veniam. Deserunt non aliquip sint amet.\r\nEsse dolor adipisicing ut pariatur pariatur dolore eu mollit reprehenderit consequat. Adipisicing fugiat sunt voluptate magna Lorem est eu anim id commodo eu consectetur. Mollit ad excepteur et do velit dolor adipisicing veniam cupidatat excepteur qui.\r\n", - "address": "2 Hull Street", - "city": "Darbydale", - "state": "Rhode Island", - "zip": 97458, - "country": "St. Helena", - "email": "olsonburch@scentric.com", - "phone": "(995) 590-2366", - "color": "rgb(91,252,80)" - }, - { - "index": 76, - "name": "Walton Wagner", - "first": "Powell", - "last": "Nunez", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/linux29/73.jpg", - "boolean": false, - "guid": "6c34053d-b9d3-4a75-a660-83b6fc0925a5", - "integer": 97, - "date": "Wed Nov 27 1996 04:47:04 GMT-0800 (PST)", - "shortText": "sunt voluptate dolor", - "mediumText": "Magna elit cillum enim sunt ut occaecat veniam elit elit laborum. Amet sint labore tempor tempor consectetur commodo aliquip magna duis non et. Aute labore est cupidatat do officia minim consectetur ea exercitation ex nostrud enim tempor veniam. Excepteur amet eiusmod velit exercitation eu cillum et minim sunt adipisicing dolor velit. Duis laboris dolor aliquip minim non laboris do veniam.", - "longText": "Ea esse officia reprehenderit do proident dolore ullamco. Quis officia minim sit anim tempor laborum in tempor dolore officia consectetur. Officia pariatur est commodo veniam in ex duis labore velit irure enim laboris id. Esse irure in adipisicing irure officia et veniam anim mollit. Qui qui tempor proident sunt enim incididunt elit aliqua Lorem dolore est do enim dolor. Deserunt consequat pariatur magna aute enim.\r\nDolor est culpa magna duis reprehenderit Lorem ad dolore tempor aute velit veniam sunt. Labore reprehenderit ea culpa ea reprehenderit sint amet in eiusmod dolore. Anim consequat ex labore qui nulla occaecat laborum. Id voluptate pariatur esse aute consequat et nisi. Proident dolor consequat anim esse eiusmod et veniam proident qui non commodo nulla cupidatat.\r\n", - "address": "2 Vanderveer Place", - "city": "Robinette", - "state": "Georgia", - "zip": 54771, - "country": "Suriname", - "email": "powellnunez@scentric.com", - "phone": "(992) 548-3878", - "color": "rgb(95,253,239)" - }, - { - "index": 77, - "name": "Harris Ewing", - "first": "Orr", - "last": "Buchanan", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/S0ufi4n3/73.jpg", - "boolean": true, - "guid": "387624b1-451d-47c6-978f-aabd0b34e707", - "integer": 69, - "date": "Sun Aug 18 1996 22:19:42 GMT-0700 (PDT)", - "shortText": "duis ea", - "mediumText": "Irure aliquip sit excepteur incididunt nisi excepteur laboris in do proident commodo ad. Culpa dolore Lorem irure magna mollit laboris officia fugiat amet. Ut ipsum est mollit quis. In occaecat mollit officia fugiat magna occaecat.", - "longText": "Magna cillum culpa esse in sint in sit. Sint aute nulla ad pariatur commodo sint aute consectetur magna dolore labore ex Lorem culpa. Officia aute magna cupidatat dolor aliquip minim voluptate mollit aliqua pariatur ullamco. Ullamco labore ex exercitation ad culpa labore laborum deserunt mollit mollit enim ut. Incididunt dolore est id cupidatat eu do aliqua minim occaecat consectetur.\r\n", - "address": "3 Ralph Avenue", - "city": "Martell", - "state": "New Mexico", - "zip": 31746, - "country": "Greece", - "email": "orrbuchanan@scentric.com", - "phone": "(861) 535-2683", - "color": "rgb(162,149,148)" - }, - { - "index": 78, - "name": "Kerr Briggs", - "first": "Helena", - "last": "Lynch", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nepdud/73.jpg", - "boolean": false, - "guid": "d16cdb93-caba-40e3-b359-8124309f23fd", - "integer": 83, - "date": "Tue Dec 27 2011 21:18:32 GMT-0800 (PST)", - "shortText": "adipisicing est laboris eiusmod", - "mediumText": "Voluptate ad eiusmod eiusmod sunt minim do et ullamco. Id incididunt do labore consectetur laborum excepteur labore id nostrud cupidatat anim officia et velit. Nostrud sunt commodo aute culpa ea et consequat laborum commodo deserunt. Dolore ad amet reprehenderit incididunt exercitation enim duis deserunt. Ea irure et veniam sunt Lorem tempor.", - "longText": "Commodo enim ullamco cupidatat ex minim et ex fugiat eiusmod exercitation minim eu. Id eu exercitation commodo fugiat elit ex laborum ea. Aute duis adipisicing mollit duis non anim anim deserunt. Nulla adipisicing irure commodo ut nostrud irure ea Lorem in enim laborum laboris laborum.\r\nSunt eiusmod dolor ullamco elit mollit esse consequat culpa non do minim reprehenderit exercitation. Id quis laborum eu id Lorem eu aute elit aliqua aliquip labore. Nisi sit mollit velit anim culpa proident esse ut sunt deserunt quis ad dolor. Incididunt excepteur non est occaecat do Lorem veniam sunt cillum velit ut exercitation et. Minim eiusmod ipsum veniam nisi nostrud anim commodo amet est amet ullamco minim ut. Magna aliquip Lorem dolore do nulla ipsum aute mollit incididunt in adipisicing pariatur ad eiusmod. Est velit Lorem incididunt ex aliquip ut laboris nulla.\r\nAd voluptate ullamco dolor culpa. Occaecat sit anim anim id esse commodo consectetur. Velit aliquip laborum fugiat occaecat consectetur magna amet tempor consequat nisi proident nisi. Aliquip et sit aliquip anim. Labore in culpa elit quis reprehenderit duis anim dolor dolore occaecat sint ad Lorem.\r\nDolore culpa irure cillum enim adipisicing enim sint ut laboris elit cillum veniam eu sit. Magna Lorem dolore sint aute cupidatat incididunt excepteur adipisicing magna ex exercitation. Duis id commodo eu adipisicing. Non labore ut laboris officia id.\r\n", - "address": "2 Wilson Avenue", - "city": "Coral", - "state": "Arizona", - "zip": 32289, - "country": "New Caledonia", - "email": "helenalynch@scentric.com", - "phone": "(880) 590-3786", - "color": "rgb(192,101,57)" - }, - { - "index": 79, - "name": "Genevieve Mooney", - "first": "Beatriz", - "last": "Case", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/amir_hooseini/73.jpg", - "boolean": false, - "guid": "f35cbf9b-3c23-45a2-80cc-959e537f5ed8", - "integer": 7, - "date": "Mon Apr 10 1972 22:46:01 GMT-0800 (PST)", - "shortText": "ut commodo excepteur cillum", - "mediumText": "Nulla aute quis minim culpa proident anim ipsum enim. Magna cillum fugiat eu dolor laboris dolore.", - "longText": "Non non eu qui nulla anim officia officia officia labore culpa. In laborum est ad aliqua laborum sit quis. Aliquip voluptate anim excepteur deserunt dolore dolor dolor ipsum.\r\nProident fugiat nisi qui eu exercitation reprehenderit sint. Elit commodo aliqua quis elit dolor eiusmod consectetur. Nostrud qui non voluptate sint sit anim laboris incididunt. Dolor labore nisi aliquip labore. Amet voluptate sunt pariatur excepteur laborum laborum anim dolor. Excepteur exercitation in labore nostrud aliquip anim duis reprehenderit aliqua dolore amet cillum est consectetur.\r\n", - "address": "4 Hoyts Lane", - "city": "Richmond", - "state": "Texas", - "zip": 12769, - "country": "Syria", - "email": "beatrizcase@scentric.com", - "phone": "(868) 586-2207", - "color": "rgb(127,85,140)" - }, - { - "index": 80, - "name": "Heidi Dillon", - "first": "Jenifer", - "last": "Contreras", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kokikillara/73.jpg", - "boolean": true, - "guid": "198e5b2c-45aa-4d86-aa99-c9e493b55d5c", - "integer": 57, - "date": "Fri Mar 05 2010 16:32:14 GMT-0800 (PST)", - "shortText": "cillum velit deserunt aute in", - "mediumText": "Mollit quis officia in commodo officia ex. Aliqua commodo incididunt cillum Lorem cillum est commodo do aliqua eiusmod. Laborum labore pariatur aute aute minim.", - "longText": "Deserunt enim nisi esse commodo enim irure ullamco eiusmod fugiat. Eiusmod sint reprehenderit minim deserunt voluptate ut sit consectetur id quis ullamco pariatur ut excepteur. Exercitation consectetur commodo ipsum minim. Culpa id occaecat non commodo amet esse magna mollit. Duis anim qui commodo voluptate aliquip ut exercitation amet ea. Quis labore ullamco irure irure ut amet consequat voluptate laborum. Nulla aliqua mollit deserunt sunt deserunt eu adipisicing ea magna ex occaecat.\r\nDuis cillum laborum et sit laborum exercitation commodo nulla magna proident duis. Nisi do excepteur enim esse minim sunt voluptate tempor dolore dolor fugiat sunt duis. Ipsum id velit mollit labore ut sunt quis aliqua adipisicing ad labore ipsum.\r\nAute cupidatat sint proident magna cupidatat sint est deserunt Lorem nisi sit ut. Duis laborum exercitation incididunt deserunt anim ipsum consectetur. Sit laborum irure commodo laboris eiusmod ut laboris ex excepteur proident labore reprehenderit mollit est. Sunt minim ea quis officia ad.\r\nCillum eiusmod ad consequat aliquip consectetur pariatur. Incididunt qui exercitation labore anim. Sint laboris ad sit est ut laboris. Aliqua sit proident cillum commodo fugiat reprehenderit ad. Est elit id sunt laborum excepteur sit Lorem. Ex anim mollit amet ex nostrud nulla irure nisi amet cupidatat non elit enim adipisicing. Cupidatat occaecat irure est fugiat amet adipisicing eu laboris aliqua quis minim sint.\r\nDolor consequat laborum sint enim qui. Sint eiusmod nostrud excepteur dolore incididunt excepteur labore amet ea non nostrud. Cupidatat nulla exercitation tempor ut adipisicing qui voluptate. Quis voluptate proident reprehenderit labore in cillum et commodo exercitation magna. Irure labore irure amet eu fugiat tempor reprehenderit laborum occaecat consectetur ut.\r\n", - "address": "4 Clove Road", - "city": "Brazos", - "state": "District Of Columbia", - "zip": 94302, - "country": "Rwanda", - "email": "jenifercontreras@scentric.com", - "phone": "(886) 401-2897", - "color": "rgb(103,86,175)" - }, - { - "index": 81, - "name": "Morrow Hendrix", - "first": "Pittman", - "last": "Powers", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/christianoliff/73.jpg", - "boolean": false, - "guid": "3e7a6c19-006a-4533-86eb-5032c524f1b9", - "integer": 87, - "date": "Mon Jun 13 1977 05:06:10 GMT-0700 (PDT)", - "shortText": "culpa dolor proident non occaecat", - "mediumText": "Consectetur commodo nulla cupidatat exercitation id aliquip.", - "longText": "Reprehenderit irure esse esse esse enim aute elit occaecat officia eiusmod nostrud. Minim labore amet veniam quis laboris cupidatat elit non. Magna amet in elit duis amet velit do duis adipisicing ut. Commodo officia dolore veniam laborum laborum pariatur aute nulla magna dolore esse laboris ea. Irure adipisicing officia velit Lorem.\r\nAd officia adipisicing commodo ipsum sunt in commodo adipisicing qui eu. Esse minim anim do officia laborum deserunt aliquip deserunt ea dolor ut eiusmod non fugiat. Dolore commodo laboris ullamco consectetur amet et non occaecat labore velit est. Veniam elit deserunt eu laboris minim esse. Et ad eu eu voluptate non ad aute nostrud in in. Sint qui mollit aliquip laboris dolor elit incididunt cillum. Mollit fugiat minim tempor amet proident et esse do.\r\nDo laborum do sunt pariatur. Cillum nulla ut exercitation consectetur ad sunt qui. Incididunt Lorem voluptate veniam minim deserunt aliqua. Veniam aute reprehenderit irure excepteur ut aute laborum eu. Sit veniam nisi qui officia. Reprehenderit voluptate tempor et cupidatat cupidatat enim aute. Aliquip reprehenderit esse ad commodo dolor deserunt nisi minim duis ut tempor pariatur quis ad.\r\nEa magna non ex laboris adipisicing deserunt. Ea ad voluptate ipsum consectetur magna voluptate amet eu fugiat. Aute do excepteur exercitation esse consequat aute enim Lorem occaecat id Lorem.\r\nAdipisicing cupidatat sunt non ipsum voluptate nulla occaecat. Pariatur magna exercitation aliqua irure ipsum cillum qui nostrud exercitation ullamco anim occaecat reprehenderit qui. Exercitation voluptate enim magna excepteur eu aliquip id enim laboris aute exercitation sint aliqua. Enim officia tempor labore nulla ut veniam ullamco reprehenderit occaecat nulla. Adipisicing officia ullamco cupidatat et dolor ut cillum enim est aliqua. Cillum et laborum nostrud ex irure do aliquip qui amet cillum nisi exercitation.\r\n", - "address": "2 Lawn Court", - "city": "Alleghenyville", - "state": "Virgin Islands", - "zip": 25057, - "country": "Puerto Rico", - "email": "pittmanpowers@scentric.com", - "phone": "(814) 551-2487", - "color": "rgb(194,148,221)" - }, - { - "index": 82, - "name": "Cook Espinoza", - "first": "Kelli", - "last": "Gallagher", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/andrey_maxim/73.jpg", - "boolean": false, - "guid": "77727f82-a7eb-40af-91dc-dd76a57e5761", - "integer": 4, - "date": "Sat Apr 29 1995 09:21:20 GMT-0700 (PDT)", - "shortText": "est ad non officia", - "mediumText": "Ipsum magna velit cillum cupidatat tempor ad ad amet adipisicing. Aliquip cillum irure id velit. Ullamco occaecat labore dolor sint. Sit dolor consequat in dolor commodo eiusmod anim ullamco consequat laboris non. Esse fugiat cupidatat laboris aliquip non nostrud officia amet.", - "longText": "Do elit consectetur nostrud reprehenderit deserunt culpa deserunt exercitation exercitation. Tempor eiusmod eiusmod incididunt minim mollit exercitation quis do sit amet duis. Culpa in consectetur esse ipsum voluptate sit non qui elit voluptate ea eu tempor excepteur. Enim minim fugiat quis velit dolor adipisicing sunt elit ipsum nulla culpa pariatur sint aliquip.\r\nAd magna enim culpa magna sint pariatur sunt nostrud ad fugiat cupidatat. Sunt non eiusmod nulla cupidatat eu ea eu laborum quis fugiat voluptate nulla laboris. Dolor ad reprehenderit minim commodo dolore commodo aliqua adipisicing dolor laborum pariatur eiusmod laborum irure. Sunt ex adipisicing culpa quis nostrud elit est occaecat ut ut exercitation ullamco ea. In et irure irure tempor est do do qui. Consectetur velit aute enim exercitation ipsum proident officia eiusmod nostrud deserunt nulla cupidatat ullamco.\r\nEsse nisi quis laborum commodo non proident ullamco. Ipsum qui in non adipisicing do incididunt. Magna incididunt amet dolor laboris commodo est voluptate cillum ea amet quis deserunt do. Non in laborum anim mollit sunt irure incididunt ex sit nostrud duis amet. Reprehenderit ipsum anim culpa in. Duis voluptate esse cillum ad eu incididunt.\r\nOccaecat officia in laboris proident aliquip pariatur consectetur consequat commodo enim tempor et. Sit do veniam duis mollit ipsum aliqua et id do do id sint cillum. Ad incididunt minim velit id tempor consequat eiusmod mollit sit do dolor commodo minim quis. Nulla laboris velit excepteur laborum exercitation labore aliqua est enim duis anim sint pariatur duis. Velit elit fugiat mollit ex amet dolor nulla nisi. Laborum ad ut enim ut tempor proident cillum sunt id voluptate et.\r\n", - "address": "2 Bay Avenue", - "city": "Frystown", - "state": "Puerto Rico", - "zip": 13050, - "country": "Korea (North)", - "email": "kelligallagher@scentric.com", - "phone": "(865) 413-3195", - "color": "rgb(105,173,239)" - }, - { - "index": 83, - "name": "Mari Nguyen", - "first": "Moss", - "last": "English", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/muringa/73.jpg", - "boolean": false, - "guid": "1aaee0b4-f194-4e72-8c8b-9eb7aada953a", - "integer": 29, - "date": "Sat Aug 22 1987 08:31:57 GMT-0700 (PDT)", - "shortText": "minim enim voluptate minim", - "mediumText": "Ut est et consequat culpa dolor culpa veniam eiusmod. Commodo adipisicing voluptate laboris nulla esse non reprehenderit pariatur veniam proident reprehenderit.", - "longText": "Pariatur quis sit tempor dolor sit commodo in. Pariatur consectetur sint ea aliquip pariatur dolor commodo et et dolore in esse occaecat. Velit labore nostrud sit deserunt Lorem. Proident labore elit irure consequat sit. Sunt est veniam ullamco pariatur incididunt ad cupidatat. Sit proident tempor anim cupidatat nostrud ullamco do incididunt. Magna in amet anim laboris labore fugiat duis culpa cupidatat enim ipsum ut mollit excepteur.\r\nLorem voluptate officia ut adipisicing occaecat cillum cupidatat. Culpa mollit magna duis pariatur officia officia ad. Reprehenderit reprehenderit reprehenderit proident deserunt. Dolor proident nostrud veniam ea ut. Nisi nisi esse aute adipisicing laborum nulla laboris magna do commodo voluptate sunt ipsum. Occaecat dolor pariatur esse velit eu sint adipisicing cillum magna nulla.\r\nAmet eu et anim nisi mollit ut sit minim. Aute proident non ea consequat do laborum ex consectetur. Cillum commodo minim id veniam duis commodo laboris consequat sunt. Sit ullamco veniam dolor occaecat nostrud dolor incididunt enim minim esse adipisicing id. Adipisicing velit nisi cupidatat velit velit culpa eu reprehenderit duis id aliquip quis tempor fugiat.\r\nAliquip ex elit nulla duis enim aliqua officia. Commodo proident aute labore nostrud nostrud. Et et ad nisi sit ex id eiusmod est Lorem. Enim pariatur velit sunt quis eu fugiat. Consectetur est aute est aliquip elit occaecat quis eiusmod tempor sunt nisi aliqua. Enim ex eu ipsum id sit Lorem excepteur ad voluptate.\r\nAute non est enim ullamco quis proident Lorem Lorem sunt dolor culpa irure. Nostrud quis aliqua ex commodo irure officia mollit Lorem reprehenderit sunt velit. Ut velit cillum velit et ea irure laborum adipisicing amet adipisicing anim. Voluptate exercitation pariatur culpa irure occaecat in reprehenderit ipsum esse. Excepteur quis cillum Lorem do. Tempor est tempor fugiat amet cupidatat nostrud aute cillum.\r\n", - "address": "2 Trucklemans Lane", - "city": "Waiohinu", - "state": "Maryland", - "zip": 78112, - "country": "Bosnia and Herzegovina", - "email": "mossenglish@scentric.com", - "phone": "(823) 570-2457", - "color": "rgb(97,59,63)" - }, - { - "index": 84, - "name": "Bauer Ruiz", - "first": "Marcia", - "last": "Farmer", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ahmedelgabri/73.jpg", - "boolean": true, - "guid": "0efaa095-a6b2-4f62-9b1d-c965c8aa4407", - "integer": 49, - "date": "Wed Oct 17 1979 09:38:39 GMT-0700 (PDT)", - "shortText": "cillum cillum ipsum pariatur excepteur", - "mediumText": "Irure dolor Lorem cillum enim esse. Consectetur duis elit aute ut tempor do ea non ad velit. Officia voluptate occaecat exercitation exercitation cillum anim. Exercitation anim tempor qui tempor nulla minim eu quis ad minim.", - "longText": "Sit proident eu velit ad do velit nostrud aute consectetur. Lorem et magna non consequat enim ut. Qui duis consectetur fugiat consectetur elit sit Lorem cupidatat. Ipsum tempor dolore sunt duis. Veniam culpa exercitation sint laboris proident exercitation dolor deserunt aute est exercitation ex laboris.\r\nEsse id non veniam ut ad nostrud ex aliquip culpa quis. Cupidatat ad anim irure pariatur. Consectetur sint officia laboris non consequat proident laboris sunt ipsum. Dolor amet culpa enim pariatur proident eu labore pariatur. Do adipisicing tempor pariatur mollit laborum mollit elit mollit laboris dolore. Aute magna reprehenderit nulla magna amet minim nostrud in aute qui eu ut sunt. Exercitation eiusmod reprehenderit sint esse reprehenderit reprehenderit.\r\nTempor est Lorem eu adipisicing adipisicing est ea. Irure nulla officia culpa laboris do tempor aute laboris elit aute pariatur occaecat qui laborum. Minim duis pariatur consectetur laboris aliquip cupidatat aute enim cillum adipisicing voluptate occaecat enim dolor.\r\nAdipisicing ut voluptate et aliquip eu. Duis laborum irure ullamco voluptate labore in non. Nostrud voluptate voluptate consectetur culpa voluptate aute. Esse dolor enim ad dolor. Aliquip sint esse elit eiusmod mollit. Ipsum in est exercitation qui. Id sit amet nulla qui minim fugiat enim.\r\n", - "address": "3 Paerdegat Avenue", - "city": "Hanover", - "state": "Massachusetts", - "zip": 30524, - "country": "France", - "email": "marciafarmer@scentric.com", - "phone": "(836) 524-2616", - "color": "rgb(169,63,64)" - }, - { - "index": 85, - "name": "Ollie Melton", - "first": "Dennis", - "last": "Hill", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bobbytwoshoes/73.jpg", - "boolean": false, - "guid": "fda2534f-880f-4794-999d-d315d49ba7a9", - "integer": 84, - "date": "Fri Mar 14 2003 11:31:33 GMT-0800 (PST)", - "shortText": "in dolore", - "mediumText": "Elit reprehenderit mollit deserunt nisi. Officia ea id minim culpa id enim consectetur laborum enim non esse et fugiat proident. Consequat magna mollit amet ipsum nisi et commodo nulla officia duis amet laboris ex. Ad ad amet nisi fugiat pariatur mollit sit non culpa consectetur eiusmod.", - "longText": "Ea commodo tempor ea culpa ea quis ipsum pariatur occaecat nulla officia. Reprehenderit laboris non eiusmod aute adipisicing esse eiusmod commodo ex exercitation occaecat. Velit est reprehenderit anim adipisicing et cillum. Sit proident ipsum est reprehenderit eiusmod nulla laborum. Laboris consectetur excepteur sunt ex commodo. Aliqua laboris quis dolor cillum tempor sint do occaecat deserunt cillum dolor ea nisi ipsum.\r\nNisi adipisicing commodo et id officia non laborum et laborum eiusmod adipisicing duis. Eiusmod tempor in quis anim do ullamco exercitation est. Consequat ad commodo adipisicing nisi dolor excepteur ex incididunt anim sunt velit reprehenderit magna. Proident eiusmod eu qui officia duis amet mollit velit elit.\r\n", - "address": "4 Pacific Street", - "city": "Osmond", - "state": "Oklahoma", - "zip": 41895, - "country": "Guinea", - "email": "dennishill@scentric.com", - "phone": "(974) 511-2460", - "color": "rgb(208,193,99)" - }, - { - "index": 86, - "name": "Carlson Petty", - "first": "Miranda", - "last": "Garner", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/milovanovicdu/73.jpg", - "boolean": false, - "guid": "4d705513-68a1-4d45-bf9d-593447e391e2", - "integer": 47, - "date": "Thu Dec 30 1976 16:50:53 GMT-0800 (PST)", - "shortText": "anim in do aliquip", - "mediumText": "Do aute est tempor dolore culpa. Ipsum commodo aute veniam officia aliqua enim laboris irure qui. Cupidatat laborum eu consequat laborum sint officia officia aliquip tempor qui nulla fugiat.", - "longText": "Eu consectetur sint aute fugiat duis consectetur anim nisi culpa ullamco. Duis irure dolore ullamco consectetur reprehenderit anim et proident. Officia consequat cupidatat adipisicing consequat amet sit cillum amet commodo. Duis magna dolore incididunt laborum.\r\nReprehenderit enim pariatur labore irure exercitation consectetur eu eu deserunt. Eiusmod excepteur qui elit qui enim adipisicing dolore aliquip anim enim deserunt aliquip et. Irure eiusmod qui quis consectetur est enim. Culpa Lorem nostrud cupidatat magna sint ad cillum culpa adipisicing dolore commodo in laborum cupidatat. Dolore sint minim cupidatat laboris fugiat est ad quis occaecat adipisicing laborum nisi. Magna labore qui anim non qui elit velit do ex veniam ullamco. Eiusmod minim sit pariatur cillum exercitation non occaecat qui et.\r\nUllamco esse ullamco amet amet fugiat occaecat ex in fugiat nulla. Deserunt magna labore fugiat qui officia qui enim minim. Adipisicing irure proident sunt commodo cillum aliqua velit. Esse est est ipsum est elit duis ipsum exercitation. Ipsum sit deserunt duis eu duis id sunt ipsum aute eiusmod.\r\nOfficia eu deserunt veniam deserunt do exercitation. Amet reprehenderit enim anim exercitation sunt do cillum officia laboris commodo mollit quis laboris irure. Duis nisi nulla nisi enim enim. Ipsum minim sit est culpa nostrud aute elit commodo minim laboris incididunt Lorem nostrud. Ullamco sint deserunt incididunt nisi.\r\nSit cillum occaecat officia laboris do cillum. Irure consectetur occaecat elit nostrud. Nisi commodo nulla culpa fugiat duis in consectetur sint proident Lorem non sunt. Fugiat Lorem deserunt duis mollit do sit id.\r\n", - "address": "2 Laurel Avenue", - "city": "Freetown", - "state": "Ohio", - "zip": 80225, - "country": "Senegal", - "email": "mirandagarner@scentric.com", - "phone": "(989) 558-3766", - "color": "rgb(201,116,189)" - }, - { - "index": 87, - "name": "Randolph Lewis", - "first": "Isabella", - "last": "Fry", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/imughal7/73.jpg", - "boolean": false, - "guid": "70e8a5f4-7b65-42d2-bdfa-cd58c31f5e45", - "integer": 2, - "date": "Mon Aug 13 1990 16:40:29 GMT-0700 (PDT)", - "shortText": "velit laboris tempor", - "mediumText": "Ullamco in esse consectetur ea tempor adipisicing ad veniam eiusmod proident.", - "longText": "Aliquip in dolore Lorem labore fugiat et ut nulla voluptate nostrud adipisicing irure. Cupidatat culpa ea consequat cillum culpa amet do deserunt amet voluptate tempor reprehenderit. Esse est excepteur incididunt esse elit laborum nulla ad. Adipisicing reprehenderit amet officia occaecat. Nisi Lorem ea duis id ex aute consequat mollit adipisicing id. Eu mollit elit nostrud labore adipisicing. Magna sunt proident duis voluptate enim ut id qui aliquip ea nisi velit.\r\nDolor duis sint tempor ad commodo sit ut minim id. Magna dolor et sunt ut laborum fugiat officia dolore adipisicing reprehenderit et ullamco nisi. Sint dolor ut laborum tempor veniam dolore eiusmod id adipisicing excepteur proident. Laborum magna fugiat pariatur dolore. Ipsum irure consequat nulla velit. Sint duis mollit exercitation enim fugiat voluptate.\r\nExcepteur adipisicing et magna sunt. Officia incididunt reprehenderit et ea culpa nostrud ex minim ad minim. Consequat magna ipsum laborum ut tempor pariatur Lorem magna minim labore cillum ad nulla nulla.\r\nMinim tempor veniam consequat veniam esse adipisicing officia sint id do veniam. Ullamco dolore ad consequat minim veniam deserunt magna sit nulla cupidatat cillum non incididunt veniam. Labore aliqua cupidatat excepteur eu veniam. Sit id id ut minim aute qui aliqua dolore id ex deserunt id ullamco laboris. Fugiat irure irure nisi in mollit ad cillum sit duis exercitation ad sint sit consectetur. Voluptate eu amet consectetur consectetur dolore ex ad.\r\n", - "address": "2 Schenck Street", - "city": "Richford", - "state": "Nevada", - "zip": 27095, - "country": "Yugoslavia", - "email": "isabellafry@scentric.com", - "phone": "(974) 558-2625", - "color": "rgb(220,182,202)" - }, - { - "index": 88, - "name": "Daniel Foley", - "first": "Stephens", - "last": "Bender", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/creative_px/73.jpg", - "boolean": false, - "guid": "e3ad719a-545a-47b0-a02a-62dfec32263f", - "integer": 98, - "date": "Thu Jan 28 1982 23:00:55 GMT-0800 (PST)", - "shortText": "anim", - "mediumText": "Dolor consequat aute ea officia non dolor consequat exercitation pariatur.", - "longText": "Sunt cupidatat officia ea officia fugiat sunt cupidatat. Esse ex adipisicing mollit ipsum aute. Consectetur non nisi nostrud eiusmod voluptate cupidatat nulla. Dolor enim nulla laboris enim qui velit tempor. Sunt Lorem do qui minim pariatur sint eu occaecat officia laboris. Pariatur reprehenderit occaecat ad ipsum occaecat ex. Magna qui ullamco laborum sint adipisicing magna velit labore sit excepteur duis ad.\r\nMagna laboris ut eiusmod tempor velit exercitation duis qui exercitation. Do occaecat ea consequat non sit eiusmod dolor aute dolor ea elit eiusmod. Ad ad qui reprehenderit culpa velit.\r\nAdipisicing non laboris magna aute pariatur. Sit irure aliquip aute minim sit velit fugiat minim excepteur. Laborum reprehenderit dolor ea ipsum aute minim Lorem velit.\r\n", - "address": "3 Aster Court", - "city": "Diaperville", - "state": "Montana", - "zip": 59636, - "country": "Uzbekistan", - "email": "stephensbender@scentric.com", - "phone": "(929) 559-3077", - "color": "rgb(214,117,159)" - }, - { - "index": 89, - "name": "Morales Mays", - "first": "Tracie", - "last": "Pate", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gabrielizalo/73.jpg", - "boolean": true, - "guid": "f420dfd4-d785-4f2d-ad37-b48a8c5e8c63", - "integer": 42, - "date": "Tue Jun 10 2014 10:24:55 GMT-0700 (PDT)", - "shortText": "elit qui deserunt veniam", - "mediumText": "Sint cupidatat laborum nostrud ullamco pariatur ea consectetur sit irure adipisicing cupidatat commodo nisi ullamco. Esse adipisicing consequat velit consequat cillum exercitation incididunt deserunt est proident. Officia incididunt et tempor esse. Adipisicing fugiat non dolor aute elit elit Lorem consectetur. Irure mollit eu est laboris ea dolor eu irure deserunt sunt nulla mollit culpa.", - "longText": "Dolor anim consequat minim exercitation incididunt voluptate dolor magna. In magna ex veniam duis ad velit commodo tempor ea excepteur. Amet veniam esse aliqua duis. Anim cupidatat voluptate culpa culpa reprehenderit in ullamco aliqua exercitation sit elit.\r\nNulla deserunt minim cupidatat labore id pariatur pariatur minim nostrud. Anim ad eu esse et incididunt labore. Incididunt culpa aliquip sit laboris magna reprehenderit Lorem quis ut commodo aliqua. Cillum velit irure eu nulla fugiat quis nisi laborum reprehenderit duis voluptate ut. Velit ea Lorem dolore ea sint excepteur eiusmod adipisicing minim proident non tempor nisi dolore. Aute dolor consectetur eu ipsum adipisicing ex exercitation consectetur proident adipisicing in.\r\nFugiat minim cupidatat ea sit velit tempor. Dolor laboris minim officia Lorem Lorem eu est ut do nisi veniam nulla adipisicing. Adipisicing veniam occaecat ex sunt id.\r\nVeniam velit ipsum Lorem est ad amet nisi adipisicing. Veniam sint pariatur velit pariatur veniam pariatur deserunt laborum ullamco sit enim et cillum commodo. Nisi incididunt et culpa occaecat aliquip. Ipsum commodo sunt proident esse amet consectetur ullamco nisi nulla voluptate magna. Consequat nostrud labore ipsum dolor mollit ullamco eu cillum occaecat.\r\nNon sit proident deserunt aliquip sunt. Ipsum quis nulla quis elit officia exercitation quis commodo. Ullamco et anim duis do nulla Lorem non commodo do ut tempor ullamco do. Commodo incididunt dolore in laborum excepteur voluptate et tempor nulla sint tempor laborum et. Consectetur amet magna consequat anim duis nisi non in. Tempor deserunt aliqua aute incididunt culpa sunt nostrud cillum laborum dolor.\r\n", - "address": "4 Herbert Street", - "city": "Wescosville", - "state": "California", - "zip": 64034, - "country": "Estonia", - "email": "traciepate@scentric.com", - "phone": "(967) 595-3876", - "color": "rgb(140,217,62)" - }, - { - "index": 90, - "name": "Christie Cobb", - "first": "Georgina", - "last": "Cardenas", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/xtr1mal2/73.jpg", - "boolean": true, - "guid": "62687023-9614-4076-85b2-5cb8b60263be", - "integer": 0, - "date": "Tue Aug 27 2002 06:22:09 GMT-0700 (PDT)", - "shortText": "aliqua", - "mediumText": "Est quis aliquip tempor est elit sint adipisicing et pariatur labore deserunt ex dolore pariatur.", - "longText": "Proident pariatur ex anim proident. Et adipisicing do amet magna id fugiat mollit. Ipsum aliqua pariatur ad eu. Id officia enim enim aliqua veniam amet commodo in incididunt velit incididunt ipsum. Id adipisicing anim voluptate labore veniam cupidatat dolore quis excepteur in velit consectetur fugiat nisi. Laborum tempor duis veniam esse ut et deserunt consequat occaecat Lorem minim aliquip exercitation.\r\nEx ex id id voluptate aliqua tempor veniam non et. Enim labore ut sit quis ullamco. Et sit ea cupidatat laborum exercitation reprehenderit laborum magna enim reprehenderit commodo ex. Et ad nostrud ea nulla. Officia commodo ea ea commodo sunt pariatur in culpa incididunt voluptate magna.\r\nElit reprehenderit minim nulla officia magna proident esse proident id officia officia ea cupidatat. Pariatur duis consectetur laboris et anim excepteur labore laboris officia voluptate proident nostrud dolor incididunt. Ad laboris laborum qui occaecat do fugiat enim officia dolore sit eu.\r\n", - "address": "2 Clinton Street", - "city": "Townsend", - "state": "Marshall Islands", - "zip": 25271, - "country": "Gambia", - "email": "georginacardenas@scentric.com", - "phone": "(917) 515-3962", - "color": "rgb(108,88,246)" - }, - { - "index": 91, - "name": "Kellie Cummings", - "first": "Carissa", - "last": "Castillo", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/eugenerifan/73.jpg", - "boolean": true, - "guid": "dbb02d06-2dc9-4b57-84cd-59d4e653047c", - "integer": 58, - "date": "Sun Jul 27 1986 08:30:17 GMT-0700 (PDT)", - "shortText": "incididunt labore aliquip", - "mediumText": "Excepteur quis proident aliquip consectetur.", - "longText": "Exercitation ea anim ex sit nisi excepteur aliqua eu cillum esse nulla deserunt ut. Cillum veniam laboris occaecat commodo est adipisicing proident. Ut deserunt enim irure officia irure deserunt ipsum labore magna. Do sint sint aliquip ullamco laboris commodo magna ea ut nostrud adipisicing et nostrud aliquip. Enim nostrud commodo do laborum fugiat incididunt quis dolore dolor voluptate tempor. Cupidatat deserunt est commodo amet cillum aliqua ullamco.\r\nEnim commodo labore id duis irure commodo eiusmod nostrud magna tempor veniam exercitation velit. Officia incididunt ut et ex anim. Esse ex cillum aliqua adipisicing et Lorem culpa elit. Commodo laborum ut in aute laboris esse exercitation eiusmod eu. Minim nulla laborum minim ad non fugiat consectetur sunt adipisicing occaecat Lorem consequat. Officia ex aliquip labore non do quis amet sit do tempor exercitation.\r\nQui do dolore officia et elit dolor magna sunt laboris nulla. Enim id deserunt ex amet non deserunt quis nisi quis pariatur commodo est excepteur cillum. Cillum commodo reprehenderit nostrud et adipisicing labore ad ex id. Adipisicing velit mollit aute eu non reprehenderit ad mollit commodo irure sit. Adipisicing cillum consequat dolor incididunt occaecat laborum et ipsum ipsum magna ipsum fugiat esse. Velit esse mollit ex nulla incididunt incididunt est sit pariatur minim fugiat.\r\nExercitation non ut id ad mollit in eu et fugiat ullamco sint ullamco consequat. Cupidatat mollit incididunt ea consectetur Lorem velit sint consectetur irure. Eiusmod sunt ipsum eu voluptate sunt. Laborum do nostrud amet commodo mollit aliqua commodo ex fugiat pariatur incididunt ea. Aute voluptate mollit culpa et cillum mollit proident ad ea proident labore. Qui aute labore pariatur ea.\r\nLaboris Lorem laborum reprehenderit sint duis adipisicing consectetur qui adipisicing cupidatat voluptate anim eu. Nostrud ea consequat officia Lorem sint enim sunt aute qui anim nulla. Est anim sit nisi magna anim. Non aliquip eu deserunt fugiat id irure voluptate labore nostrud. Qui qui ad nulla ea.\r\n", - "address": "4 Pierrepont Place", - "city": "Riviera", - "state": "Indiana", - "zip": 10834, - "country": "Nepal", - "email": "carissacastillo@scentric.com", - "phone": "(902) 528-2051", - "color": "rgb(116,122,170)" - }, - { - "index": 92, - "name": "Hooper Acosta", - "first": "Delacruz", - "last": "Hunt", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/imcoding/73.jpg", - "boolean": true, - "guid": "f3455179-b392-49d5-8f8e-0b570ff95363", - "integer": 63, - "date": "Wed Apr 18 1973 01:53:52 GMT-0800 (PST)", - "shortText": "aute consectetur", - "mediumText": "Non esse non cillum eiusmod. Velit consequat amet eiusmod do laborum est do. Id aliqua cupidatat tempor consectetur do consectetur.", - "longText": "In elit nisi dolore aliquip magna ex. Eu do in enim tempor duis adipisicing eiusmod magna ut velit velit do. Nostrud magna aliquip est exercitation qui elit sit.\r\nLabore Lorem minim id laborum proident in sit ea quis sit. Mollit excepteur voluptate sit qui. Ex in voluptate veniam magna dolor consectetur anim consectetur. Deserunt deserunt elit in id.\r\nAd incididunt aute labore commodo consectetur consectetur commodo magna irure. Duis adipisicing pariatur ea labore consequat ut pariatur labore laboris nulla occaecat. Irure aute id id eiusmod. Aute eiusmod Lorem eiusmod occaecat qui in veniam in laboris. Elit sit sit tempor tempor magna. Elit aliquip cupidatat commodo eiusmod consequat fugiat magna nisi fugiat irure aute dolore quis labore.\r\nOccaecat duis duis ad officia consectetur aute elit excepteur consectetur ullamco. Exercitation pariatur irure ad anim fugiat anim. Elit laborum velit aliquip et aliquip officia elit ad amet mollit nulla.\r\nFugiat minim minim anim labore culpa magna laborum veniam in reprehenderit id. Id sint pariatur excepteur commodo ullamco eu. Eiusmod magna commodo reprehenderit nostrud in culpa laboris occaecat aliqua. Sit pariatur nulla sit exercitation irure pariatur sit cillum occaecat exercitation. Aliqua dolore aliqua magna minim id ut eu veniam.\r\n", - "address": "3 Matthews Place", - "city": "Caron", - "state": "Tennessee", - "zip": 68234, - "country": "Falkland Islands (Malvinas)", - "email": "delacruzhunt@scentric.com", - "phone": "(928) 557-3052", - "color": "rgb(207,106,189)" - }, - { - "index": 93, - "name": "Leonor Rogers", - "first": "Claudette", - "last": "Walters", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/madhan4uu/73.jpg", - "boolean": false, - "guid": "d7ddd425-5e0b-407b-b795-4591ac988f7e", - "integer": 14, - "date": "Fri Sep 10 1982 05:35:18 GMT-0700 (PDT)", - "shortText": "nisi enim velit consequat", - "mediumText": "Velit ea anim fugiat ex esse officia.", - "longText": "Anim voluptate consequat et deserunt. Officia culpa quis consequat et occaecat adipisicing commodo ipsum culpa elit Lorem elit. Proident sunt sint id tempor. Pariatur nulla enim id ut aliqua commodo amet ex. Dolor ad tempor Lorem cupidatat cillum deserunt nisi.\r\nDo ad cillum consequat eu nulla irure eiusmod eu aute est sint tempor. Irure irure in culpa commodo esse occaecat fugiat minim sit est dolor. Do ex dolor non quis adipisicing amet incididunt non eiusmod nisi laborum.\r\nDeserunt anim consequat incididunt pariatur eiusmod. Aute nostrud id ipsum consequat laboris dolore. Aliquip in ullamco est incididunt anim esse magna ea labore in.\r\nAliquip ex nisi sit pariatur nostrud do dolor eiusmod consectetur ad quis consequat fugiat. Culpa enim cillum sint minim deserunt duis officia duis laborum mollit cillum ad aliqua. Sint consectetur proident duis velit ea adipisicing. Amet deserunt ut quis est ipsum velit Lorem tempor velit reprehenderit adipisicing consectetur occaecat sint.\r\nMagna nulla aute qui deserunt nostrud cillum magna fugiat occaecat Lorem ipsum culpa. Est anim aute do nisi dolor sint qui pariatur. Fugiat culpa reprehenderit officia excepteur elit amet excepteur enim tempor sint sit consequat. Consequat enim laboris officia nisi irure irure consequat elit. Dolor minim do velit sit deserunt cillum.\r\n", - "address": "3 Fulton Street", - "city": "Hegins", - "state": "Palau", - "zip": 78135, - "country": "Peru", - "email": "claudettewalters@scentric.com", - "phone": "(942) 474-3822", - "color": "rgb(90,63,99)" - }, - { - "index": 94, - "name": "Cote Guerra", - "first": "Trisha", - "last": "Chavez", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tirsope/73.jpg", - "boolean": false, - "guid": "da6e4096-5de2-48f3-a83e-e7e504b7ef50", - "integer": 60, - "date": "Wed Feb 14 1990 21:07:18 GMT-0800 (PST)", - "shortText": "amet officia", - "mediumText": "Pariatur nulla nulla aliqua sunt nulla excepteur id amet consequat. Nostrud eu aliquip enim esse eu non exercitation do nulla labore adipisicing dolor. Est voluptate excepteur aliquip voluptate nulla fugiat ut amet tempor.", - "longText": "Ullamco quis exercitation sunt sunt do aute sit qui duis non. Irure dolore tempor velit velit et eu sint elit. Velit esse deserunt elit minim adipisicing sint est commodo sit aute velit excepteur dolore sunt. Occaecat adipisicing occaecat pariatur do enim culpa proident nostrud labore aute consectetur esse dolor ut. Irure pariatur minim aute labore mollit eu deserunt amet deserunt. Ex velit ad quis ullamco.\r\nOfficia nostrud excepteur nisi id esse cupidatat adipisicing. Veniam ea duis nisi exercitation labore non pariatur velit officia Lorem tempor. Qui ea culpa laborum cillum commodo. Enim eu sit adipisicing voluptate est ex incididunt eu deserunt. Sit irure dolor non culpa anim. Sint ex ullamco culpa est ipsum. Id nostrud id eiusmod ea consequat anim nulla qui aliquip sunt sunt Lorem.\r\n", - "address": "4 Montauk Court", - "city": "Ryderwood", - "state": "Virginia", - "zip": 72564, - "country": "Tonga", - "email": "trishachavez@scentric.com", - "phone": "(986) 580-3064", - "color": "rgb(252,141,100)" - }, - { - "index": 95, - "name": "Stewart Bradley", - "first": "Desiree", - "last": "Sullivan", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lorenzosinisi/73.jpg", - "boolean": false, - "guid": "09ba747d-fcdd-47ec-b40f-149aad2803bd", - "integer": 14, - "date": "Mon Aug 18 2014 05:24:18 GMT-0700 (PDT)", - "shortText": "veniam officia exercitation", - "mediumText": "Sint dolor aliqua velit eu eiusmod id. Velit pariatur sit labore sit sit elit dolore fugiat veniam excepteur ex. Velit ex elit ullamco ipsum sunt magna aliqua cupidatat veniam Lorem mollit eu sit. Consequat Lorem Lorem sit aute.", - "longText": "Nulla aliquip id sunt ex reprehenderit sit et amet adipisicing pariatur sit non mollit minim. Sint nisi occaecat duis ut amet veniam mollit. Esse ipsum ea in anim. Elit est adipisicing velit cupidatat laboris in laboris eiusmod non aliquip minim. Eu commodo occaecat occaecat cupidatat cillum nulla esse mollit exercitation eu.\r\n", - "address": "4 Douglass Street", - "city": "Hiko", - "state": "Wyoming", - "zip": 58685, - "country": "Tunisia", - "email": "desireesullivan@scentric.com", - "phone": "(955) 561-2349", - "color": "rgb(67,224,233)" - }, - { - "index": 96, - "name": "Corinne Farley", - "first": "Guthrie", - "last": "May", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/celikovic/73.jpg", - "boolean": false, - "guid": "5fe813a0-75c4-4214-96b9-9b4d5fcea8bf", - "integer": 79, - "date": "Wed Aug 26 2009 12:40:36 GMT-0700 (PDT)", - "shortText": "eiusmod aliquip mollit aute", - "mediumText": "Ea irure ea pariatur laborum non commodo. Veniam est laboris ex occaecat laboris irure. Aliqua pariatur anim ut eu veniam do ex non veniam nostrud. Occaecat excepteur non est cillum commodo eu ullamco.", - "longText": "In anim esse ea excepteur est. Laboris qui ex ipsum cillum excepteur nisi. Non deserunt qui duis ut eiusmod ad laborum labore Lorem est cupidatat. Nulla eiusmod sint reprehenderit amet fugiat labore laboris.\r\nVoluptate anim minim cillum est aliquip. Occaecat eiusmod eu consectetur id id sit id aliquip minim. Id quis laboris duis dolore id pariatur officia irure ullamco cillum ullamco dolor. Ut pariatur excepteur eiusmod exercitation tempor.\r\nProident amet esse enim fugiat nostrud aute exercitation excepteur ut dolore incididunt. Eiusmod dolore irure ut tempor. Cupidatat id laboris aute nulla deserunt sint. Velit mollit ut eu commodo. Esse adipisicing veniam voluptate dolore laborum laboris qui aliquip fugiat ullamco ea exercitation voluptate. Enim veniam do aliquip aute laboris in elit magna anim. Consequat excepteur eu dolor officia eiusmod incididunt occaecat deserunt commodo nisi Lorem.\r\nMagna culpa dolore deserunt aliquip. Quis officia ut nulla et commodo officia ullamco. Cupidatat ea eiusmod nulla enim sit in.\r\nEst reprehenderit consectetur consectetur eu occaecat nulla nulla laboris est ad nulla exercitation. Amet nostrud nulla minim minim ea incididunt ea et. Exercitation qui qui mollit exercitation. Exercitation excepteur labore cillum laboris ut nulla excepteur pariatur ullamco ex ex consectetur consectetur. Lorem ex laborum in qui velit reprehenderit id pariatur esse enim. Do eu adipisicing culpa elit exercitation ea est occaecat. Et velit cupidatat excepteur sunt officia occaecat et cillum ut voluptate enim.\r\n", - "address": "3 Locust Street", - "city": "Wyano", - "state": "Colorado", - "zip": 24261, - "country": "Guadeloupe", - "email": "guthriemay@scentric.com", - "phone": "(952) 423-2212", - "color": "rgb(207,250,179)" - }, - { - "index": 97, - "name": "Heather Martinez", - "first": "Althea", - "last": "Quinn", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_kshitish/73.jpg", - "boolean": false, - "guid": "d67d7b7a-2ab1-446e-a591-4f565e74fe3d", - "integer": 13, - "date": "Mon Mar 17 2003 07:02:53 GMT-0800 (PST)", - "shortText": "adipisicing magna", - "mediumText": "Reprehenderit exercitation ut in ex voluptate dolore.", - "longText": "Pariatur pariatur do ipsum exercitation magna. Irure irure officia voluptate amet fugiat sint est proident reprehenderit cupidatat est eu. Esse ea eiusmod nostrud ad quis laborum deserunt nisi. Deserunt ut fugiat aliqua minim. Proident fugiat aliqua nostrud adipisicing Lorem velit et ipsum fugiat fugiat aliquip cupidatat Lorem.\r\nEx quis non excepteur est cillum non aute consequat ipsum aliqua nostrud sunt nisi non. Est aliquip enim aute culpa. Esse enim pariatur id velit nostrud adipisicing voluptate pariatur et sint sunt.\r\nUt quis cillum dolor minim nulla fugiat enim irure officia. Reprehenderit voluptate sint veniam velit tempor deserunt eu adipisicing id anim fugiat. Nostrud dolore esse reprehenderit enim nulla duis exercitation.\r\nCillum proident est dolore sint qui sint laborum enim exercitation aute in pariatur. Ut non eiusmod excepteur exercitation aliquip incididunt cupidatat magna deserunt in est. Excepteur duis incididunt sunt commodo amet nulla ex adipisicing incididunt in exercitation amet et. Ullamco eu nulla ipsum magna voluptate incididunt aliqua id.\r\n", - "address": "4 Arkansas Drive", - "city": "Catherine", - "state": "Utah", - "zip": 68985, - "country": "Australia", - "email": "altheaquinn@scentric.com", - "phone": "(997) 529-2688", - "color": "rgb(175,88,98)" - }, - { - "index": 98, - "name": "Good Mathis", - "first": "Hester", - "last": "Santana", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/2fockus/73.jpg", - "boolean": true, - "guid": "8046ed24-325f-4486-9067-34ecfa37746c", - "integer": 67, - "date": "Sat Mar 19 1977 20:48:42 GMT-0800 (PST)", - "shortText": "commodo incididunt officia", - "mediumText": "Velit sint reprehenderit laboris occaecat in reprehenderit dolore adipisicing nisi pariatur enim aute. Cillum velit voluptate sit irure.", - "longText": "Irure labore incididunt nisi labore sint cillum cillum. Pariatur aute dolor duis ad eu nulla veniam enim voluptate. Laborum fugiat veniam occaecat adipisicing voluptate qui pariatur voluptate quis eu. Aliquip aute anim proident excepteur do aute consectetur ipsum exercitation est velit consequat laboris. Amet proident enim aute excepteur cillum. Do occaecat ullamco proident adipisicing ullamco id anim nostrud. Laborum ullamco occaecat aliqua eiusmod culpa quis nulla ad dolore ad ullamco.\r\nEsse ex officia qui qui aute. Ipsum sint irure nostrud nulla culpa cupidatat do. Aute ullamco occaecat aliquip in tempor minim ut nisi aliquip nostrud cillum Lorem. Excepteur dolor cupidatat eiusmod Lorem. Dolore eu ad sint ullamco voluptate.\r\nSit cupidatat id mollit occaecat in officia amet in magna enim sint. Officia deserunt proident quis in ut. Excepteur incididunt amet nulla labore eu incididunt adipisicing laboris nisi. Magna nisi proident deserunt sunt do deserunt eiusmod pariatur.\r\nDo elit quis occaecat anim aliquip aliquip excepteur. Enim laborum proident labore ad nulla duis magna tempor duis. Commodo veniam tempor minim cillum ex dolor.\r\nVelit adipisicing mollit pariatur in ipsum tempor id velit excepteur laborum amet laborum laborum. Excepteur eu exercitation veniam sit veniam incididunt sit. Elit commodo eu aute tempor aliquip esse non minim mollit. Consequat amet deserunt non enim. Nostrud anim Lorem aliquip cupidatat.\r\n", - "address": "3 Fiske Place", - "city": "Klagetoh", - "state": "Idaho", - "zip": 38305, - "country": "Dominican Republic", - "email": "hestersantana@scentric.com", - "phone": "(802) 512-3640", - "color": "rgb(253,247,138)" - }, - { - "index": 99, - "name": "Hurley Eaton", - "first": "Garner", - "last": "Kirk", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dnevozhai/73.jpg", - "boolean": true, - "guid": "312f254d-5789-4396-a389-10090b30c80a", - "integer": 80, - "date": "Sun Jun 01 2008 17:44:07 GMT-0700 (PDT)", - "shortText": "enim laborum", - "mediumText": "Reprehenderit labore magna est sunt dolore excepteur ea. Duis laboris eiusmod do laboris cupidatat proident in amet quis adipisicing est nisi.", - "longText": "Sunt mollit aliqua nisi irure sit. Minim sit amet duis nisi Lorem veniam. Deserunt anim est sint consequat pariatur elit eu magna incididunt duis aliquip. Do ipsum adipisicing eu quis ut nostrud fugiat ad in nostrud est sint enim. Incididunt exercitation commodo ipsum ut eu. Irure et adipisicing esse dolor eu. Ea consequat cillum eu occaecat in magna cillum anim culpa deserunt.\r\nConsectetur adipisicing velit minim et occaecat laborum minim fugiat eu laboris minim anim id do. Sint cupidatat pariatur sit quis quis elit pariatur. Deserunt proident enim Lorem est minim nisi et laborum nisi exercitation. Mollit qui consequat proident aliqua ad quis dolor. Irure nulla nisi ut Lorem ullamco sint et nulla dolore consectetur. Esse Lorem qui do pariatur mollit in velit amet labore.\r\nAliqua magna eiusmod ea velit sit voluptate in ea ad Lorem laborum aute cillum et. Veniam ea eiusmod dolor Lorem adipisicing deserunt. Do sunt dolore do fugiat et magna id aliquip nulla occaecat mollit.\r\nId veniam voluptate irure est ea irure nostrud ex. Est anim est dolor exercitation reprehenderit minim non est commodo ex est ut Lorem. Nulla aute nulla dolore amet deserunt elit tempor reprehenderit amet. Nulla et magna aliqua laborum ut minim ad in ex mollit dolor officia.\r\n", - "address": "2 Marconi Place", - "city": "Clarktown", - "state": "Arkansas", - "zip": 81655, - "country": "Zaire", - "email": "garnerkirk@scentric.com", - "phone": "(901) 504-3233", - "color": "rgb(141,220,214)" - }, - { - "index": 100, - "name": "Ruby Schroeder", - "first": "Julianne", - "last": "Hurst", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/sebasribas/73.jpg", - "boolean": false, - "guid": "ae0e0ad1-423d-4e87-9d72-e7957011b3b1", - "integer": 51, - "date": "Tue Jun 14 1977 06:58:41 GMT-0700 (PDT)", - "shortText": "consectetur", - "mediumText": "Ex ea veniam ut velit aute dolore laborum ut. Ex proident elit cillum elit reprehenderit amet fugiat cillum cupidatat fugiat. Elit Lorem aute ad ad sit exercitation aute excepteur ex elit.", - "longText": "Eiusmod in irure exercitation aute aliquip qui sit amet ullamco cillum eiusmod enim. Ut aliquip occaecat nisi aliqua ut esse minim. Tempor deserunt dolore ea fugiat tempor cupidatat fugiat excepteur consectetur velit tempor eiusmod laborum. Adipisicing incididunt ex sit aliqua deserunt in culpa. Veniam ipsum enim duis enim ex proident do anim amet. Ipsum consequat ut labore non quis cupidatat adipisicing eiusmod amet.\r\nQui consectetur pariatur adipisicing aliquip nulla labore nulla in laborum excepteur eiusmod eu esse. Elit duis commodo ex laboris consectetur sunt in ullamco elit aliquip commodo consequat adipisicing. Labore eiusmod dolore ut voluptate proident. Officia fugiat culpa elit consectetur mollit sint ut. Duis magna cillum Lorem adipisicing amet nisi minim laboris nostrud fugiat eu nisi sunt.\r\nEa voluptate anim reprehenderit eu laboris ex ad non ut magna eu esse laborum. Eiusmod non dolor ex adipisicing sunt elit proident in officia pariatur eiusmod minim voluptate ex. Commodo excepteur enim sit dolor magna. Quis velit adipisicing pariatur ad ullamco ullamco eu fugiat consectetur. Est fugiat esse cupidatat velit ea aute laboris occaecat ullamco est velit. Aliqua adipisicing ex duis ipsum.\r\nLaboris mollit est officia in commodo consequat ullamco officia id aute non in ut. Excepteur ad magna sit dolore voluptate irure ut. Occaecat ea duis ipsum excepteur fugiat esse nulla incididunt fugiat adipisicing cupidatat labore. Voluptate eu consectetur tempor qui in quis in ad proident magna ex aliquip ad. Aute laboris consectetur proident ullamco voluptate nulla commodo tempor aliqua magna. Laborum eiusmod nulla occaecat quis elit aliquip aute id irure ut excepteur.\r\n", - "address": "3 Wyckoff Avenue", - "city": "Holcombe", - "state": "Delaware", - "zip": 49315, - "country": "China", - "email": "juliannehurst@scentric.com", - "phone": "(867) 576-3002", - "color": "rgb(191,56,212)" - }, - { - "index": 101, - "name": "Alana Wise", - "first": "Edith", - "last": "Suarez", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/cepreygolubev/73.jpg", - "boolean": true, - "guid": "19280eda-c661-4fde-88e3-e7e705ea0a83", - "integer": 59, - "date": "Wed Jun 25 2003 02:31:03 GMT-0700 (PDT)", - "shortText": "aute", - "mediumText": "Consectetur eu aute tempor mollit do aute nostrud adipisicing ad commodo id.", - "longText": "Incididunt excepteur cupidatat mollit ad tempor esse cupidatat velit ipsum non tempor est incididunt. Duis consequat dolore elit cupidatat mollit est. Exercitation et ex deserunt adipisicing tempor consectetur adipisicing ipsum deserunt amet enim tempor. Excepteur elit sit cupidatat cupidatat sit ea anim ullamco cupidatat nisi consectetur ut. Adipisicing amet duis occaecat excepteur adipisicing et exercitation enim est.\r\nCulpa nulla dolor ullamco occaecat dolor elit irure dolor velit anim id incididunt eiusmod ut. Deserunt dolore fugiat ipsum tempor ut dolore nostrud. Exercitation cillum culpa nostrud est. Quis qui sunt dolor id aliquip culpa anim nisi deserunt.\r\nLaborum eu minim aliqua excepteur ad. Sit tempor ullamco laborum excepteur pariatur deserunt cupidatat. Sint anim eiusmod sint elit. Incididunt consequat officia incididunt cillum. Reprehenderit anim reprehenderit esse officia et ea excepteur nisi magna. Lorem cupidatat in fugiat eu. Exercitation occaecat do eiusmod esse.\r\nAnim ullamco excepteur culpa deserunt enim est dolore duis ea anim exercitation. In et pariatur exercitation occaecat ad id Lorem ullamco consectetur labore ut laboris excepteur magna. Aute exercitation Lorem fugiat esse incididunt. Nulla nostrud ea ipsum eiusmod laboris nulla qui veniam aute officia eiusmod ad. Et anim ut dolor qui commodo occaecat nostrud non ex.\r\nCillum non et laborum cillum ex officia ullamco aliquip ut Lorem. Duis est sit sunt laboris ullamco deserunt dolor labore ut. Cupidatat elit do aute aliquip laborum tempor amet laboris occaecat id exercitation elit. Ullamco quis laboris voluptate amet duis elit incididunt mollit anim proident.\r\n", - "address": "4 Leonard Street", - "city": "Bluetown", - "state": "Federated States Of Micronesia", - "zip": 89344, - "country": "British Indian Ocean Territory", - "email": "edithsuarez@scentric.com", - "phone": "(920) 452-3377", - "color": "rgb(69,58,250)" - }, - { - "index": 102, - "name": "Kristen Wheeler", - "first": "Burke", - "last": "Barnes", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iamphilipjoyce/73.jpg", - "boolean": true, - "guid": "64341244-b22d-415d-8856-27b7c1b9e527", - "integer": 7, - "date": "Wed Jul 20 1994 02:28:58 GMT-0700 (PDT)", - "shortText": "duis dolore non minim est", - "mediumText": "Veniam amet sit nulla labore Lorem exercitation excepteur nostrud nulla velit proident laboris.", - "longText": "Ex incididunt do ad enim eu labore fugiat nulla enim elit. Cupidatat ipsum quis qui labore excepteur ullamco elit minim. Magna minim elit non mollit in consectetur cillum esse cillum ut esse aliquip anim. Reprehenderit ea irure eu consectetur nisi.\r\n", - "address": "2 Crooke Avenue", - "city": "Geyserville", - "state": "Guam", - "zip": 77246, - "country": "Libya", - "email": "burkebarnes@scentric.com", - "phone": "(843) 586-2743", - "color": "rgb(221,72,113)" - }, - { - "index": 103, - "name": "Clark Powell", - "first": "Hahn", - "last": "Lancaster", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/russell_baylis/73.jpg", - "boolean": true, - "guid": "d83aada5-7279-4d3c-81fe-360aa4d342af", - "integer": 44, - "date": "Tue Apr 17 2007 17:02:41 GMT-0700 (PDT)", - "shortText": "officia excepteur fugiat", - "mediumText": "Commodo consequat esse amet deserunt duis magna. Cupidatat aliquip consectetur anim incididunt laboris. Reprehenderit Lorem enim cillum pariatur est sint aliqua commodo non tempor.", - "longText": "Nisi tempor irure nulla duis. Cillum aliquip commodo in minim sunt proident exercitation do dolore velit. Nulla sunt sit officia magna ex ea.\r\nEa consequat aute duis quis elit. Sint aute deserunt commodo reprehenderit aliqua consequat commodo minim ut quis incididunt reprehenderit. Nulla elit voluptate laboris laboris dolore labore tempor pariatur deserunt reprehenderit tempor non occaecat pariatur. Elit pariatur irure ex exercitation ut ex dolore dolore consequat consectetur magna. Lorem consectetur est reprehenderit pariatur dolore sit Lorem Lorem ad ea elit.\r\nAd occaecat est ullamco occaecat voluptate. Aute proident in est adipisicing. Anim ipsum est voluptate ipsum cillum eiusmod aliquip. Officia magna irure commodo ut pariatur est eu nostrud laboris excepteur adipisicing deserunt consectetur amet. Qui consequat cupidatat laborum non.\r\nDolore do cupidatat irure quis culpa aliquip elit laboris consequat qui magna dolore. Magna esse qui exercitation dolore tempor tempor ex irure veniam cupidatat commodo qui officia fugiat. Fugiat aliqua eiusmod deserunt esse elit nisi. Reprehenderit pariatur duis excepteur eiusmod esse. Velit nulla nisi reprehenderit Lorem minim ut tempor nulla aliqua in incididunt aute esse aliquip. Duis laborum quis non commodo officia commodo. Officia nostrud do qui velit occaecat aute ex adipisicing officia et excepteur velit irure officia.\r\n", - "address": "3 Polhemus Place", - "city": "Franklin", - "state": "Pennsylvania", - "zip": 30447, - "country": "Cook Islands", - "email": "hahnlancaster@scentric.com", - "phone": "(901) 537-3991", - "color": "rgb(225,104,190)" - }, - { - "index": 104, - "name": "Tamra Cox", - "first": "Acevedo", - "last": "Bell", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kijanmaharjan/73.jpg", - "boolean": true, - "guid": "2d002e10-253b-41d7-bca7-add74579f9d5", - "integer": 0, - "date": "Thu Nov 04 1982 13:05:17 GMT-0800 (PST)", - "shortText": "ullamco in aliqua", - "mediumText": "Irure eiusmod ullamco occaecat deserunt. Ullamco nisi veniam nulla ea labore irure incididunt sit nulla ut commodo.", - "longText": "Culpa elit est velit laborum do eu cillum. Adipisicing sit incididunt ea exercitation anim irure laboris quis reprehenderit adipisicing exercitation adipisicing eu aliquip. Irure aliqua minim irure labore magna cillum fugiat sit occaecat sint. Eiusmod velit dolore est nisi do dolor id quis nisi sunt id anim ex proident. Laborum consectetur deserunt amet anim non commodo occaecat proident et.\r\nDo in magna deserunt dolor aute ad occaecat consectetur qui. Dolore in eiusmod id mollit tempor pariatur sunt reprehenderit incididunt ipsum aliquip dolor qui commodo. Eiusmod in mollit fugiat qui. Nulla nostrud officia aute minim. Officia id proident excepteur sunt amet occaecat nisi anim amet reprehenderit. Tempor duis mollit nostrud enim reprehenderit fugiat nostrud ea proident magna. Sint magna labore aliqua tempor officia do nisi ex in cillum nisi.\r\nNulla tempor in cillum et eiusmod ad qui dolor consequat do deserunt. Mollit ex anim consequat aliqua commodo. Adipisicing cillum ut nostrud ad aliquip. Ipsum occaecat reprehenderit ipsum in veniam tempor deserunt ut adipisicing dolore dolore cupidatat. Consequat velit officia quis labore mollit reprehenderit duis consectetur excepteur nisi tempor.\r\n", - "address": "4 Grand Street", - "city": "Iola", - "state": "New Hampshire", - "zip": 44737, - "country": "Iran", - "email": "acevedobell@scentric.com", - "phone": "(813) 503-2649", - "color": "rgb(84,124,140)" - }, - { - "index": 105, - "name": "Barr Higgins", - "first": "Tonia", - "last": "Walton", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/73.jpg", - "boolean": true, - "guid": "b381e41b-6b9b-4f51-85f1-661eade44d9d", - "integer": 93, - "date": "Tue Dec 24 1985 18:32:45 GMT-0800 (PST)", - "shortText": "sunt nisi laborum", - "mediumText": "Aliqua esse in cillum nostrud exercitation duis cupidatat cillum non deserunt culpa.", - "longText": "Exercitation ad do aliqua nostrud magna consequat. Ex ea commodo fugiat labore ipsum officia minim do velit proident sit. Voluptate eiusmod consequat voluptate dolor consectetur eu sunt eiusmod veniam. Exercitation eiusmod fugiat reprehenderit laboris.\r\nMollit aliqua est laboris proident non esse culpa cupidatat laborum qui nulla deserunt occaecat elit. Lorem esse quis labore dolor dolore labore nostrud ea labore veniam tempor. Anim elit nostrud ut velit pariatur sint laborum velit. Et esse culpa voluptate dolor commodo aliquip est ut. Laboris ullamco enim exercitation ea velit excepteur enim veniam in mollit irure. Qui nisi sit ad consequat veniam proident proident reprehenderit ipsum dolore proident. Nostrud occaecat quis laboris magna labore ut tempor consectetur labore cupidatat ea irure pariatur.\r\nAd consectetur commodo do excepteur. Velit fugiat qui pariatur velit nostrud enim. Et in ea enim non exercitation aliqua anim commodo cillum ullamco in nulla nostrud. Eu ex enim ut enim magna duis aliquip ullamco enim. Aute anim ex incididunt cillum eiusmod minim ut nostrud excepteur dolore. Reprehenderit nisi nisi consequat consequat mollit dolor excepteur ipsum aute est tempor. Occaecat in aute ea Lorem ex consectetur.\r\nCupidatat nulla ullamco mollit id consequat. Dolore aute sit est voluptate cillum adipisicing laboris ex non adipisicing. Minim proident labore nisi eu proident irure et et. Dolor deserunt deserunt in et qui consectetur ullamco occaecat. Magna ut tempor fugiat velit. Magna elit id Lorem quis occaecat dolor irure amet nulla. Proident ex ullamco consectetur consequat consequat eiusmod dolor proident aliquip ut.\r\nExcepteur ea aliqua elit incididunt deserunt commodo nisi. Exercitation nostrud in officia anim ea non anim laborum ullamco incididunt. Do aliqua excepteur officia reprehenderit reprehenderit cillum. Duis nostrud veniam occaecat quis exercitation magna mollit est fugiat ullamco in consectetur culpa cillum. Minim consequat elit ipsum in occaecat sit dolor sint laborum.\r\n", - "address": "4 Banker Street", - "city": "Silkworth", - "state": "North Dakota", - "zip": 14286, - "country": "Aruba", - "email": "toniawalton@scentric.com", - "phone": "(889) 461-2741", - "color": "rgb(116,194,59)" - }, - { - "index": 106, - "name": "Hickman Copeland", - "first": "Ross", - "last": "Ratliff", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/noufalibrahim/73.jpg", - "boolean": true, - "guid": "2f265cef-ebfa-484a-b328-63fa19eed885", - "integer": 91, - "date": "Tue Mar 20 1979 12:59:39 GMT-0800 (PST)", - "shortText": "eiusmod", - "mediumText": "Culpa dolor sunt culpa magna.", - "longText": "Aute amet velit labore labore culpa. Minim eiusmod eiusmod eiusmod nostrud et quis in et culpa ex sit incididunt Lorem. Cupidatat adipisicing Lorem dolore consequat elit.\r\n", - "address": "2 Euclid Avenue", - "city": "Rosewood", - "state": "Northern Mariana Islands", - "zip": 23138, - "country": "Faroe Islands", - "email": "rossratliff@scentric.com", - "phone": "(917) 466-2566", - "color": "rgb(245,137,240)" - }, - { - "index": 107, - "name": "Cervantes Mckee", - "first": "Vasquez", - "last": "Knapp", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/avclarkey/73.jpg", - "boolean": false, - "guid": "3658528d-3180-47bd-9c2e-d4f53947e409", - "integer": 27, - "date": "Sat Jan 23 1971 05:21:04 GMT-0800 (PST)", - "shortText": "eiusmod ullamco", - "mediumText": "Nulla tempor cupidatat consequat fugiat consequat irure non in. Ea eiusmod exercitation dolor labore laborum irure anim tempor exercitation.", - "longText": "Incididunt sit fugiat nulla ipsum. Veniam ex nostrud eu reprehenderit cillum. Fugiat nostrud esse eiusmod cupidatat consectetur ipsum sit duis consectetur cupidatat duis ullamco incididunt. Ea cupidatat esse sint adipisicing magna enim irure. Irure amet officia elit ullamco est cupidatat. Voluptate ut Lorem commodo occaecat nisi non id in ullamco occaecat est. Officia ea ea tempor irure commodo aute laborum et enim quis magna occaecat.\r\nAdipisicing ullamco aute duis labore duis est id Lorem ea commodo do nulla laboris. Et magna aliquip Lorem in in consectetur enim nulla do ad. Ea aute Lorem dolore eiusmod qui aliqua in cupidatat velit labore aliquip. Est esse velit sit consectetur anim nostrud ullamco commodo magna mollit in ut tempor. Lorem velit irure eiusmod duis amet et consectetur est quis non nulla incididunt et. Incididunt tempor ex minim amet reprehenderit. Anim nisi dolor ad tempor officia.\r\nEa ex esse amet excepteur tempor officia cupidatat eu cupidatat sit irure. Lorem minim quis ut non sit ullamco id tempor minim aliquip deserunt. Voluptate consectetur qui velit occaecat ullamco ea cupidatat tempor in anim ad magna. Ut velit dolore eiusmod reprehenderit incididunt irure anim laboris voluptate mollit incididunt minim ad duis.\r\n", - "address": "4 Crown Street", - "city": "Lowgap", - "state": "South Dakota", - "zip": 17680, - "country": "Zambia", - "email": "vasquezknapp@scentric.com", - "phone": "(889) 408-3991", - "color": "rgb(212,58,71)" - }, - { - "index": 108, - "name": "Juana Melendez", - "first": "Ford", - "last": "Greer", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/arindam_/73.jpg", - "boolean": false, - "guid": "b9726558-94a5-4533-9213-cc6b11fa2b5d", - "integer": 94, - "date": "Mon Jul 17 1972 18:15:51 GMT-0700 (PDT)", - "shortText": "laboris velit esse", - "mediumText": "Aute ad non aute ipsum sint commodo cupidatat elit adipisicing fugiat.", - "longText": "Veniam ex consectetur id pariatur ipsum pariatur non officia sint. Exercitation quis eiusmod nisi officia aliquip. Laborum commodo occaecat ex ipsum aliqua. Et incididunt sunt deserunt Lorem eiusmod anim. Cillum consequat nulla ipsum eiusmod nulla velit pariatur aliqua. Reprehenderit est fugiat minim adipisicing ex esse adipisicing irure eu pariatur cupidatat.\r\nIn cupidatat elit reprehenderit deserunt sint mollit laborum consectetur enim anim. Consequat fugiat velit ut ipsum et duis consectetur. Aliqua velit nisi consequat mollit anim id quis cillum anim laboris exercitation adipisicing. Aliqua commodo cillum ut tempor incididunt sint ipsum incididunt nisi proident.\r\nEst qui incididunt dolore id. Culpa enim proident consectetur sunt. Ad laborum amet eiusmod mollit velit. Amet exercitation tempor nulla ullamco dolor fugiat non nostrud magna nisi veniam mollit laborum non.\r\nDuis ipsum voluptate ut laborum veniam. Commodo adipisicing sit nostrud mollit sint consequat ullamco sint amet ut enim. Anim pariatur magna reprehenderit elit fugiat culpa incididunt elit. Est irure tempor aliquip aliqua elit consequat pariatur est proident mollit tempor magna velit. Id nisi est cillum ut officia mollit deserunt nostrud ullamco.\r\nSit anim quis fugiat ullamco ipsum nulla proident sunt. Culpa est laborum veniam labore sit in mollit minim voluptate cupidatat. Elit qui sit amet qui eiusmod dolor. Irure sunt et minim culpa cillum. Minim consequat culpa ullamco excepteur duis nostrud consectetur proident dolor mollit veniam pariatur quis. Deserunt in reprehenderit eu velit ipsum excepteur pariatur deserunt officia fugiat qui exercitation magna dolor. Eiusmod cupidatat irure nisi dolor veniam aute ea quis nostrud eu esse excepteur aliquip.\r\n", - "address": "2 Crescent Street", - "city": "Valle", - "state": "Alaska", - "zip": 40517, - "country": "Albania", - "email": "fordgreer@scentric.com", - "phone": "(816) 454-3618", - "color": "rgb(249,251,66)" - }, - { - "index": 109, - "name": "Morin Franks", - "first": "Olive", - "last": "Bernard", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/emmakardaras/73.jpg", - "boolean": false, - "guid": "9c1e0cc3-71ab-4f1f-a061-864215df9f71", - "integer": 74, - "date": "Tue Aug 17 1976 13:06:23 GMT-0700 (PDT)", - "shortText": "reprehenderit voluptate occaecat tempor", - "mediumText": "Excepteur proident officia commodo ad aute et exercitation aliqua. Consequat exercitation proident ut sit cupidatat nulla dolor occaecat sit ad fugiat. Lorem cupidatat labore tempor fugiat consequat labore. Laborum consectetur amet mollit ullamco deserunt amet cupidatat qui. Est nulla est nostrud duis proident culpa laborum ipsum mollit cupidatat proident irure nisi officia.", - "longText": "Nulla consectetur velit cupidatat dolor ex dolore pariatur ea occaecat eu quis ut non elit. Magna esse consequat eu sit laboris dolor ullamco elit dolor. Eiusmod laboris irure consequat cillum. Nisi incididunt dolor velit aliquip labore culpa voluptate proident laborum adipisicing veniam aute. Aliquip exercitation ad culpa excepteur nisi minim non quis excepteur commodo esse nostrud laborum. Enim anim do duis deserunt mollit esse laborum anim. Aliqua eiusmod sunt aliqua officia quis in voluptate deserunt magna labore enim sit laborum.\r\nVelit dolor aute est sit aliqua. Occaecat occaecat officia pariatur esse do aute aliqua. Magna nostrud consectetur amet consequat veniam magna duis non. Est eu elit pariatur minim ut sit laborum proident. Do adipisicing et est ex id dolore. Amet magna minim do dolor duis veniam ipsum ex commodo anim culpa sint.\r\n", - "address": "2 Banner Avenue", - "city": "Forbestown", - "state": "Louisiana", - "zip": 26490, - "country": "Panama", - "email": "olivebernard@scentric.com", - "phone": "(980) 446-2496", - "color": "rgb(250,59,84)" - }, - { - "index": 110, - "name": "Le Frank", - "first": "Ada", - "last": "Love", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/georgespillman/73.jpg", - "boolean": false, - "guid": "6d7f1953-73e2-4cf5-904a-467d37de4108", - "integer": 28, - "date": "Mon Aug 03 1970 01:48:44 GMT-0700 (PDT)", - "shortText": "do officia", - "mediumText": "Ad elit labore sit culpa reprehenderit non elit sunt. Officia occaecat aliquip aliqua minim eu. Lorem aute consequat sunt sint excepteur do laborum consequat do. Occaecat eu enim irure laborum occaecat elit duis. Occaecat aute ad non Lorem voluptate magna.", - "longText": "Dolore sint proident ea culpa proident ut eu ipsum pariatur culpa fugiat est nisi sunt. Voluptate ut excepteur aliquip enim adipisicing deserunt. Commodo irure irure id non officia elit do eiusmod. Voluptate ipsum dolor sint aliquip laboris fugiat cupidatat et ea proident nostrud cillum duis.\r\nAliqua eiusmod sit laboris non tempor proident ea. Ut excepteur tempor non nisi. Do id velit do non anim laborum ad est laborum consequat. Ea sunt velit do incididunt duis amet velit adipisicing exercitation anim. Duis eiusmod exercitation officia dolor aliqua officia fugiat ad fugiat dolor elit qui. Sunt reprehenderit est esse enim exercitation eiusmod et quis ea et dolore. Enim occaecat sunt sit do velit nulla cillum laboris.\r\nMinim cupidatat ex minim excepteur. Quis est enim officia proident voluptate tempor anim duis. Magna anim voluptate ullamco dolore dolore aute ipsum nulla ea est nulla exercitation eiusmod. Ex Lorem nulla et do consequat nulla ipsum enim ad amet excepteur ipsum incididunt veniam. Occaecat enim eu aliquip consectetur fugiat anim. Cillum pariatur quis ullamco minim nisi proident dolor occaecat ad ipsum commodo deserunt eu nostrud. Sunt reprehenderit et ipsum exercitation est veniam aute ut ex.\r\nAd aliquip ad et aliquip. Officia ex est qui nisi dolore velit sint. Et enim voluptate irure culpa eiusmod id incididunt minim voluptate ut eiusmod incididunt. Non occaecat cillum exercitation duis eiusmod id laboris veniam. Nisi id ut veniam excepteur.\r\n", - "address": "4 Rochester Avenue", - "city": "Chesapeake", - "state": "Missouri", - "zip": 58919, - "country": "Turks and Caicos Islands", - "email": "adalove@scentric.com", - "phone": "(895) 541-3397", - "color": "rgb(133,191,68)" - }, - { - "index": 111, - "name": "Joseph Hooper", - "first": "Sally", - "last": "Blackwell", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/fireupman/73.jpg", - "boolean": false, - "guid": "e86e14ac-2f06-4abd-93f2-552b79ec5e01", - "integer": 95, - "date": "Tue Jul 21 1987 11:15:23 GMT-0700 (PDT)", - "shortText": "anim duis", - "mediumText": "Amet ut occaecat do non nulla aute aliquip qui. Dolore sint sit ipsum ea minim reprehenderit irure quis magna elit exercitation mollit. Aute ullamco minim ut cupidatat incididunt aute occaecat aute ea consequat sint.", - "longText": "Officia commodo aute culpa sit ea in qui mollit laborum sunt aute eiusmod aliquip cillum. Velit commodo nisi qui consectetur eiusmod ad Lorem cupidatat irure adipisicing do adipisicing commodo. Laborum mollit cillum ad tempor. Anim proident culpa aliqua amet anim pariatur consequat aliquip anim cupidatat ut reprehenderit. Dolor reprehenderit magna enim dolore eu laborum consectetur do commodo proident. Duis voluptate dolor magna occaecat officia adipisicing duis voluptate adipisicing ex cupidatat. Ex aute adipisicing ullamco consectetur aute minim occaecat sit commodo Lorem duis.\r\nFugiat officia do do cillum ut adipisicing nisi nostrud culpa cupidatat. Magna velit ad excepteur et sunt sunt esse commodo velit consequat occaecat officia ea magna. Cillum culpa id aliqua in. Fugiat dolore elit do ea aliqua duis id eiusmod cillum amet ut. Dolor id magna id dolor aliqua veniam elit adipisicing qui nulla. Ex mollit consectetur adipisicing elit id eiusmod sunt deserunt veniam qui quis ut.\r\nProident exercitation aliqua occaecat anim tempor ullamco non laborum reprehenderit. Ullamco consectetur eiusmod ut quis cillum. Nulla officia in quis est sit consectetur eu ipsum sunt. Sunt cupidatat velit cillum non proident excepteur qui non aliquip.\r\nAd amet sit sint adipisicing dolore eu enim dolore velit sit deserunt. Esse labore non proident magna ut aliquip in id ex deserunt. Reprehenderit magna consequat irure ad ullamco pariatur magna consectetur pariatur magna voluptate non sunt.\r\nIpsum sint deserunt enim labore ea deserunt sint pariatur. Amet sit sint id minim esse quis magna fugiat dolore. Ullamco et magna ex dolor do commodo amet nostrud commodo adipisicing cillum. Dolor culpa mollit elit sit et enim ullamco fugiat proident occaecat.\r\n", - "address": "3 Congress Street", - "city": "Tedrow", - "state": "Kentucky", - "zip": 17527, - "country": "Christmas Island", - "email": "sallyblackwell@scentric.com", - "phone": "(883) 597-2036", - "color": "rgb(213,146,224)" - }, - { - "index": 112, - "name": "Shepherd Burt", - "first": "Pansy", - "last": "Young", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kylefrost/73.jpg", - "boolean": false, - "guid": "e82c95af-0ea1-4299-9f4e-131f39c1c537", - "integer": 49, - "date": "Sat May 24 2014 22:33:36 GMT-0700 (PDT)", - "shortText": "labore fugiat", - "mediumText": "Culpa eiusmod culpa nostrud voluptate eiusmod ea voluptate voluptate ex ut. Cillum consectetur voluptate tempor irure commodo id excepteur tempor laborum nisi. Proident eiusmod exercitation mollit sunt in est aliqua mollit non deserunt fugiat excepteur quis.", - "longText": "Sunt quis nisi cillum aute est reprehenderit non. Ullamco pariatur in est officia nisi laborum ad ut pariatur qui elit. Ipsum voluptate labore in et laboris amet quis esse occaecat dolore veniam cupidatat voluptate. In sint aute aliqua ea dolor Lorem quis sunt.\r\n", - "address": "2 Remsen Street", - "city": "Abrams", - "state": "American Samoa", - "zip": 37068, - "country": "Botswana", - "email": "pansyyoung@scentric.com", - "phone": "(938) 478-3164", - "color": "rgb(190,139,243)" - }, - { - "index": 113, - "name": "Brianna Peterson", - "first": "Carla", - "last": "Davidson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/quser/73.jpg", - "boolean": true, - "guid": "e7c8b790-5171-41b9-8926-16f6ba35a268", - "integer": 74, - "date": "Sun Aug 06 1989 02:58:01 GMT-0700 (PDT)", - "shortText": "sunt ex laboris cupidatat culpa", - "mediumText": "Ut duis eu quis nostrud irure excepteur quis. Cillum quis aute occaecat eu laborum non incididunt.", - "longText": "Tempor aute incididunt exercitation pariatur eu sunt magna excepteur. Do ex officia proident laborum ullamco cillum. In elit consequat anim velit commodo pariatur ad enim est nostrud anim proident amet nostrud. Proident duis incididunt ad deserunt nisi cupidatat irure eu cupidatat magna qui quis sunt.\r\nConsectetur occaecat sunt sint nostrud est dolor officia dolor occaecat ipsum labore consequat. Consequat eu ipsum voluptate et exercitation ex dolor commodo pariatur elit eu amet. In consectetur Lorem veniam est minim consectetur excepteur irure cillum. Ut Lorem incididunt laboris minim proident sit mollit tempor ad culpa amet amet. Quis duis velit ut dolor proident dolore proident ex sit adipisicing do.\r\nEsse elit occaecat pariatur nulla sint non elit aliquip est voluptate laboris. Consequat culpa fugiat ea eu. Et minim culpa voluptate amet. Sint qui cillum consequat quis velit et aliqua occaecat duis quis. Aute sunt aute in exercitation id exercitation cupidatat irure. Anim et minim cillum dolore irure enim eiusmod pariatur ad deserunt ea.\r\nIrure esse reprehenderit proident tempor non cupidatat incididunt laboris culpa eiusmod elit culpa velit non. Sit ullamco incididunt exercitation enim quis commodo id Lorem minim duis. Duis nulla sunt sit reprehenderit duis excepteur laborum in ut dolore consequat. Aliqua esse culpa nulla et amet ex fugiat sit non sunt. Elit nostrud commodo sunt veniam anim ut duis ullamco labore ex aliqua laboris.\r\n", - "address": "4 Oriental Court", - "city": "Valmy", - "state": "Minnesota", - "zip": 13895, - "country": "Algeria", - "email": "carladavidson@scentric.com", - "phone": "(995) 595-3974", - "color": "rgb(179,161,85)" - }, - { - "index": 114, - "name": "Erica Campbell", - "first": "Emilia", - "last": "Hernandez", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/maikelk/73.jpg", - "boolean": false, - "guid": "a14b1c62-e553-458d-ab78-cd9e278ac859", - "integer": 59, - "date": "Tue Aug 21 2012 17:43:47 GMT-0700 (PDT)", - "shortText": "ut id sit ea est", - "mediumText": "Aliquip occaecat voluptate ea dolor pariatur. Dolor amet velit adipisicing duis elit nisi aute incididunt veniam minim.", - "longText": "Id eu commodo in anim proident sit aliquip sit. Mollit dolor exercitation laborum veniam reprehenderit tempor reprehenderit. Culpa in cillum nisi occaecat elit aute duis est. Laborum quis laborum nostrud amet nulla quis exercitation non officia cupidatat culpa deserunt incididunt nulla. Exercitation exercitation ex velit ipsum excepteur esse dolor ipsum et anim non proident Lorem. Nostrud laboris consectetur et eiusmod sint. Amet adipisicing dolore Lorem deserunt ad cupidatat labore.\r\nNisi ipsum anim aliquip id sit proident reprehenderit aute. Esse duis incididunt minim nisi velit do incididunt anim nostrud. In mollit aliquip duis proident dolor. Sunt ipsum amet esse laborum.\r\nCupidatat anim enim do ut. Nostrud ipsum consectetur non ipsum officia. Aliqua commodo eiusmod eu labore laborum. Magna aliqua in est amet eu anim reprehenderit qui ullamco est anim sit et. Est deserunt tempor commodo occaecat dolore sint esse aliquip culpa sint cupidatat non cupidatat. Est reprehenderit irure esse fugiat ad pariatur fugiat. Labore non consectetur nisi aliquip adipisicing culpa incididunt ad consectetur consequat ipsum.\r\n", - "address": "2 Legion Street", - "city": "Cuylerville", - "state": "Hawaii", - "zip": 84971, - "country": "Switzerland", - "email": "emiliahernandez@scentric.com", - "phone": "(922) 599-3995", - "color": "rgb(101,247,162)" - }, - { - "index": 115, - "name": "Sheryl Waller", - "first": "Martina", - "last": "Hebert", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ifarafonow/73.jpg", - "boolean": false, - "guid": "ab359e49-0653-4622-a683-fa6bb4a5e4eb", - "integer": 39, - "date": "Mon Nov 17 2008 06:44:36 GMT-0800 (PST)", - "shortText": "sunt", - "mediumText": "Nisi dolor ad enim nostrud id proident nisi elit cupidatat nisi nostrud laborum. Ea deserunt labore est in sunt id consectetur nisi.", - "longText": "Aliqua sunt enim Lorem amet enim. Nisi laboris elit veniam irure culpa nisi non aliquip. Anim dolor duis enim tempor culpa dolor reprehenderit elit. Non sunt veniam aliqua ea occaecat do pariatur occaecat ea. Exercitation nostrud cillum mollit ipsum laboris sunt est aute nostrud velit officia esse.\r\nLabore commodo ipsum proident est et sint sint deserunt. Proident qui elit eu duis et veniam excepteur eu ipsum ea consectetur consectetur fugiat sit. Aliqua aliqua laboris aute ut sit id nisi sunt reprehenderit qui deserunt. Labore laborum et ex enim dolore ullamco est excepteur dolore labore adipisicing. Commodo cupidatat non velit qui.\r\nQui exercitation esse ullamco nulla nisi labore ex ea voluptate eu consectetur et occaecat. Ullamco laborum esse labore et ullamco sunt proident eu esse proident excepteur. Qui incididunt occaecat minim elit irure ea aliquip in fugiat. Do cupidatat aliqua veniam cupidatat magna exercitation irure mollit fugiat consectetur. Sunt fugiat esse dolor mollit in fugiat reprehenderit qui tempor laborum Lorem incididunt. Exercitation do occaecat adipisicing velit aute enim enim occaecat nisi laboris quis ex minim eu. In incididunt consequat esse dolor officia eiusmod amet aliqua ad quis.\r\n", - "address": "3 Gelston Avenue", - "city": "Leeper", - "state": "Alabama", - "zip": 86800, - "country": "S. Georgia and S. Sandwich Isls.", - "email": "martinahebert@scentric.com", - "phone": "(814) 523-3612", - "color": "rgb(240,55,85)" - }, - { - "index": 116, - "name": "Frances Dalton", - "first": "Virgie", - "last": "Fuller", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ananya159/73.jpg", - "boolean": false, - "guid": "1ca31b96-9723-4249-bb9a-7062701a66b0", - "integer": 81, - "date": "Tue Oct 01 1974 14:29:16 GMT-0700 (PDT)", - "shortText": "cillum", - "mediumText": "Aliquip nisi proident id sint velit enim cillum reprehenderit ipsum nisi dolore laboris Lorem. Velit Lorem irure irure consectetur. Aliquip veniam culpa qui Lorem cupidatat non incididunt velit irure magna in do consequat do.", - "longText": "Nostrud adipisicing aute esse ipsum anim. Nisi pariatur excepteur est minim pariatur consectetur aliquip adipisicing. Adipisicing fugiat consequat proident deserunt exercitation exercitation irure sit qui deserunt. Dolor eu cillum eiusmod id incididunt consectetur nisi ullamco mollit labore. Aliqua ullamco proident adipisicing duis minim. Lorem ut fugiat cillum aliqua sit in mollit labore sunt reprehenderit.\r\nQui aliqua pariatur voluptate fugiat fugiat duis consequat occaecat laboris cillum sit. Sit officia fugiat esse ut eiusmod eu labore nostrud est incididunt fugiat. Voluptate velit laboris veniam sunt laborum ad nulla ad. Dolor deserunt ut ut culpa laboris qui elit est non cillum eu cillum anim laborum. Mollit consequat cillum id consequat sint voluptate pariatur nisi nostrud duis ipsum mollit.\r\nIncididunt dolor laborum adipisicing mollit voluptate ad labore ad do minim occaecat proident amet anim. Commodo anim pariatur dolor officia ipsum adipisicing irure excepteur irure eiusmod deserunt. Commodo veniam exercitation ex ad. Ut aliquip aliqua laboris ipsum quis duis. Amet in dolor minim veniam mollit dolore deserunt sit exercitation sint dolore consequat. Mollit anim qui dolor enim ea irure sint consectetur. Eiusmod eu exercitation incididunt Lorem dolore non cupidatat tempor do labore duis.\r\nMinim exercitation ut cupidatat est minim enim magna eiusmod aliquip ipsum incididunt in officia. Aliquip in fugiat dolor elit quis ad. Ipsum laboris sit non amet eu dolor aute velit ullamco eu proident. Consequat commodo consectetur Lorem esse duis esse exercitation adipisicing anim.\r\n", - "address": "2 Bokee Court", - "city": "Reinerton", - "state": "North Carolina", - "zip": 90734, - "country": "Brazil", - "email": "virgiefuller@scentric.com", - "phone": "(958) 511-3488", - "color": "rgb(151,135,52)" - }, - { - "index": 117, - "name": "Charity Hall", - "first": "Mitchell", - "last": "Williamson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/horaciobella/73.jpg", - "boolean": true, - "guid": "60b57acd-e17f-4c69-85e5-5df345c25c6f", - "integer": 22, - "date": "Wed Jan 19 2005 08:59:18 GMT-0800 (PST)", - "shortText": "eu nisi elit nostrud", - "mediumText": "Nisi id voluptate velit tempor voluptate laboris. Excepteur consectetur labore id ipsum anim proident ad adipisicing dolor. Magna aute excepteur veniam nulla laborum culpa et incididunt enim velit officia. Ipsum est qui minim consequat Lorem.", - "longText": "Enim consectetur quis tempor eu laboris veniam ea eu est. Ullamco commodo commodo dolor ad mollit ex in nulla. Ipsum dolor excepteur ut in sit est nulla ad nulla in tempor laboris ipsum laborum. Lorem incididunt fugiat eu laboris laborum eiusmod dolor tempor aliquip. Minim in do deserunt pariatur adipisicing id duis consectetur nostrud proident.\r\n", - "address": "4 Dover Street", - "city": "Fannett", - "state": "Connecticut", - "zip": 11138, - "country": "Anguilla", - "email": "mitchellwilliamson@scentric.com", - "phone": "(871) 435-3743", - "color": "rgb(243,134,198)" - }, - { - "index": 118, - "name": "Rodriquez Ferguson", - "first": "Shannon", - "last": "Morrow", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thatdesigner/73.jpg", - "boolean": false, - "guid": "6c85f6cb-e2c6-46e0-a68a-2ebc38f0035b", - "integer": 50, - "date": "Sat Feb 10 1973 15:31:21 GMT-0800 (PST)", - "shortText": "incididunt aute aliquip laborum labore", - "mediumText": "Minim ipsum sint consequat cillum aute ipsum et ipsum sint cillum qui eiusmod.", - "longText": "Reprehenderit est consequat incididunt nostrud do eiusmod adipisicing. Nulla voluptate ullamco consectetur eu sit. Est dolore cupidatat amet culpa occaecat ullamco nisi non veniam do est ullamco aliqua. Qui irure nisi laboris labore duis nulla magna. Culpa velit dolor exercitation elit sint irure velit eu veniam exercitation Lorem. Pariatur ipsum veniam consectetur nulla laborum.\r\nAdipisicing eu amet duis nulla. Anim dolore magna eu culpa voluptate sunt aute proident. Elit veniam adipisicing commodo aliqua eiusmod velit mollit nisi quis veniam excepteur mollit laborum. Esse ipsum commodo cupidatat sint quis mollit veniam consequat do laborum nulla. Aliquip consequat proident et aliqua ea proident proident dolore laboris consequat ut reprehenderit quis duis. Enim cupidatat reprehenderit reprehenderit esse irure officia irure laboris. Consequat esse qui pariatur elit cillum culpa deserunt culpa veniam qui excepteur laborum.\r\n", - "address": "4 Newel Street", - "city": "Dubois", - "state": "South Carolina", - "zip": 52970, - "country": "Mayotte", - "email": "shannonmorrow@scentric.com", - "phone": "(926) 593-2505", - "color": "rgb(161,59,65)" - }, - { - "index": 119, - "name": "Lee Dejesus", - "first": "Yang", - "last": "Walter", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/snaphappydad/73.jpg", - "boolean": false, - "guid": "bf814de3-e21d-41e7-9db1-2d541665fd2c", - "integer": 40, - "date": "Mon Feb 18 2002 15:18:34 GMT-0800 (PST)", - "shortText": "pariatur nisi", - "mediumText": "Esse dolore nulla aliqua id cupidatat ullamco commodo incididunt.", - "longText": "Ipsum cupidatat amet Lorem excepteur magna quis officia tempor enim voluptate consequat id ex. Ad labore aliqua exercitation nulla et esse nostrud pariatur. Nisi minim velit consequat dolore aliquip est labore sint.\r\nAnim non irure proident cillum eiusmod. Id anim non adipisicing consectetur qui duis. Sit culpa exercitation non nostrud.\r\nOccaecat aliquip elit anim ex nulla ut in. Aliqua ut cupidatat elit dolor id occaecat. Sit consectetur consequat eiusmod veniam tempor minim non voluptate labore ullamco esse velit proident.\r\n", - "address": "2 Krier Place", - "city": "Columbus", - "state": "Michigan", - "zip": 62839, - "country": "Northern Mariana Islands", - "email": "yangwalter@scentric.com", - "phone": "(821) 518-2276", - "color": "rgb(56,241,182)" - }, - { - "index": 120, - "name": "Wise Cannon", - "first": "Cobb", - "last": "Figueroa", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/cristianovalim/73.jpg", - "boolean": false, - "guid": "e5754bf6-f162-4fd2-a3e9-e3834bad0fed", - "integer": 61, - "date": "Sun Nov 22 1970 00:54:52 GMT-0800 (PST)", - "shortText": "Lorem dolor pariatur proident", - "mediumText": "Dolor tempor veniam ad do et. Mollit enim et id veniam in irure mollit duis deserunt commodo.", - "longText": "Ex pariatur eiusmod cupidatat nisi elit ullamco Lorem. Reprehenderit minim velit laboris et incididunt tempor anim elit ad aute duis ullamco. Amet est magna consectetur in cillum duis. Sunt id Lorem laboris cupidatat aute. Cillum est ea mollit exercitation ullamco pariatur exercitation anim Lorem dolore exercitation velit ipsum.\r\nExcepteur excepteur est pariatur eiusmod quis consectetur qui aute nulla ex Lorem sunt irure. Tempor excepteur proident esse excepteur consectetur minim consequat non. Mollit nulla ea veniam excepteur eu velit.\r\n", - "address": "4 Pulaski Street", - "city": "Glenville", - "state": "Maine", - "zip": 69282, - "country": "Pitcairn", - "email": "cobbfigueroa@scentric.com", - "phone": "(901) 579-2803", - "color": "rgb(243,138,133)" - }, - { - "index": 121, - "name": "Albert Benjamin", - "first": "French", - "last": "Hays", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pmeissner/73.jpg", - "boolean": false, - "guid": "4bcb4883-f717-4bc7-b0ff-91b548b5ae5a", - "integer": 11, - "date": "Fri Jun 27 1980 15:54:19 GMT-0700 (PDT)", - "shortText": "Lorem do", - "mediumText": "Ipsum irure amet aliquip deserunt irure nisi duis fugiat et officia voluptate aliquip labore consectetur. Reprehenderit aute cupidatat tempor enim aliquip non qui consequat do qui proident id. Aliquip labore in ex consequat commodo qui adipisicing proident. Tempor veniam non laborum aute velit Lorem sunt. Fugiat anim nulla veniam anim pariatur nulla irure incididunt occaecat.", - "longText": "Enim irure eiusmod magna non tempor eu mollit nostrud anim elit. Fugiat eu officia aliqua dolore non tempor aute ipsum occaecat. Amet velit fugiat aliqua Lorem officia excepteur sunt nostrud magna est. In pariatur irure quis ea ut et esse nisi do mollit excepteur laborum minim. Nostrud sunt est duis est. In in enim Lorem tempor aliquip enim ea irure deserunt.\r\nCillum est magna fugiat dolor nostrud adipisicing mollit qui enim. Nostrud consequat amet reprehenderit commodo ut amet est aute nisi exercitation aute. Eiusmod enim reprehenderit ut ut exercitation irure proident minim commodo nostrud. Consequat ex magna aliquip cupidatat culpa excepteur non.\r\nVeniam esse esse sunt reprehenderit veniam commodo irure fugiat qui. Consequat qui dolor veniam ipsum laboris enim labore. Mollit cupidatat sit non esse voluptate in qui cupidatat qui eu. Duis incididunt ad mollit ad nisi culpa irure anim ullamco commodo tempor consectetur. Cillum pariatur labore do quis commodo non eu proident et.\r\nAmet cupidatat amet et culpa proident labore esse ipsum. Labore fugiat ea laboris irure mollit cupidatat minim exercitation occaecat velit ullamco quis. Labore esse cupidatat nulla amet et. Duis est cupidatat eu ea excepteur nulla cupidatat dolor enim ipsum sit nostrud laborum sit. Voluptate cupidatat cillum nulla reprehenderit laboris incididunt eu nostrud amet ad dolore do. Non ea eu cillum duis consectetur in. Anim consequat in adipisicing fugiat sit do anim anim aute veniam eu consectetur aliquip.\r\nMollit aliquip cillum adipisicing ipsum non laboris. Consequat mollit in incididunt mollit deserunt eiusmod nulla dolor ea fugiat. Proident reprehenderit nisi tempor nulla excepteur dolor excepteur voluptate laboris tempor consequat. Dolor et minim enim ut laboris. Ipsum ex veniam consequat cillum nisi amet nostrud. Mollit labore in consequat irure enim. Qui tempor aliquip esse enim commodo culpa mollit.\r\n", - "address": "4 Pooles Lane", - "city": "Bellfountain", - "state": "Kansas", - "zip": 98526, - "country": "Saint Vincent and The Grenadines", - "email": "frenchhays@scentric.com", - "phone": "(819) 408-2182", - "color": "rgb(238,191,114)" - }, - { - "index": 122, - "name": "Nona Salinas", - "first": "Lacey", - "last": "Donaldson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/akbarbobojonov/73.jpg", - "boolean": true, - "guid": "bd1bbab7-51f1-45a4-a0c8-ad85a536c9ec", - "integer": 9, - "date": "Thu May 01 1986 06:09:47 GMT-0700 (PDT)", - "shortText": "proident ea qui culpa", - "mediumText": "Eiusmod labore in laboris eu pariatur amet. Et nulla aliqua consectetur nulla quis ad non. Aute ut sint reprehenderit et eu et sunt labore dolor.", - "longText": "Exercitation mollit commodo ad ipsum ipsum minim quis culpa cillum ut mollit labore commodo. Anim dolor eu in deserunt occaecat enim do proident mollit exercitation laborum consequat. Irure proident exercitation voluptate in. Magna officia sint occaecat pariatur irure elit cupidatat deserunt nulla ad cillum incididunt velit. Quis veniam est est id labore enim duis culpa deserunt aliquip mollit qui. Deserunt laboris proident incididunt esse velit minim sint ex excepteur. Cillum do sint commodo qui laborum occaecat dolore sint.\r\nDeserunt culpa pariatur dolore mollit dolor velit id labore incididunt eiusmod consectetur. Sunt eu duis ut eu sint sint non aliqua ullamco sunt est id irure eiusmod. Eiusmod ex cupidatat quis ut cillum elit. Lorem tempor proident elit adipisicing. Minim sunt minim esse do amet Lorem officia occaecat sit ut. In id ullamco ipsum ex sit adipisicing mollit irure non magna ad commodo proident aute. Mollit sunt mollit eiusmod voluptate consectetur magna ex ullamco.\r\n", - "address": "4 Freeman Street", - "city": "Wollochet", - "state": "Iowa", - "zip": 21774, - "country": "Iceland", - "email": "laceydonaldson@scentric.com", - "phone": "(977) 552-3200", - "color": "rgb(51,183,113)" - }, - { - "index": 123, - "name": "Karla Downs", - "first": "Cruz", - "last": "Colon", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pjnes/73.jpg", - "boolean": true, - "guid": "2f9877c1-7121-400a-a476-36dfbedde48b", - "integer": 0, - "date": "Thu Feb 27 1992 08:28:41 GMT-0800 (PST)", - "shortText": "deserunt", - "mediumText": "Reprehenderit deserunt eiusmod sint laboris deserunt qui eiusmod ex aliqua et laborum duis magna deserunt. Officia tempor ullamco aute occaecat velit. Aliqua consectetur nulla eiusmod elit. Culpa enim reprehenderit labore incididunt id nostrud deserunt quis ad est irure laboris.", - "longText": "Ut qui adipisicing qui veniam irure fugiat. Cillum occaecat fugiat proident velit anim nostrud duis reprehenderit nostrud tempor aliquip veniam. Nostrud ipsum laboris eu enim id do. Adipisicing ea consequat enim et anim in fugiat amet ipsum.\r\nVoluptate tempor ut ut laborum et ad. Ea laboris duis ad pariatur commodo do et aute. Sit aliqua sint proident do consequat anim sit. Officia elit dolore exercitation elit anim ullamco excepteur deserunt quis quis proident esse fugiat voluptate. Culpa officia amet eu enim culpa sit et. Culpa incididunt adipisicing non eu in minim.\r\nDuis laborum laborum voluptate aliquip. Aliqua eu elit labore ipsum aliqua. Nulla reprehenderit aute labore aliqua est consectetur deserunt pariatur ut. Aute laboris voluptate ipsum nostrud enim proident amet ad.\r\nCulpa minim velit aliquip enim deserunt dolor. Commodo sit commodo enim adipisicing ea non aute consectetur proident eu do. Consequat elit irure minim dolor voluptate excepteur sunt eu et quis. Occaecat exercitation voluptate sunt ullamco reprehenderit ea amet magna. Cillum laborum commodo irure ad in sunt occaecat veniam non proident incididunt pariatur.\r\n", - "address": "3 Elm Place", - "city": "Richville", - "state": "Vermont", - "zip": 65904, - "country": "Andorra", - "email": "cruzcolon@scentric.com", - "phone": "(900) 475-3785", - "color": "rgb(165,150,188)" - }, - { - "index": 124, - "name": "Candace Gonzalez", - "first": "Debbie", - "last": "Moody", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/balintorosz/73.jpg", - "boolean": false, - "guid": "9d3734d9-4693-4ac0-9dba-85eb63a89032", - "integer": 1, - "date": "Fri May 06 2005 19:01:26 GMT-0700 (PDT)", - "shortText": "exercitation do mollit mollit proident", - "mediumText": "Ullamco ad quis laboris ea consectetur commodo anim ut irure. Sit id elit mollit eiusmod officia amet reprehenderit. Ea incididunt commodo officia qui eu ad exercitation occaecat ipsum ad aute laboris ea. Proident irure velit magna culpa proident qui amet.", - "longText": "Minim voluptate culpa mollit ad voluptate est mollit nisi cillum proident. Cillum ut aliqua esse ad esse qui magna anim mollit. Ipsum pariatur labore culpa velit ipsum mollit fugiat id velit in cillum sint. Voluptate aliquip irure reprehenderit incididunt ipsum magna duis proident commodo consequat. Eiusmod commodo labore ex commodo tempor veniam. Occaecat duis tempor cillum aute qui do officia excepteur et sunt eiusmod fugiat.\r\nConsectetur amet nulla sit commodo aute labore id commodo reprehenderit deserunt occaecat incididunt. Esse consectetur minim occaecat duis deserunt est magna aute aliqua veniam aute sunt nulla eu. Exercitation officia proident dolore ex aliqua officia laboris ullamco anim.\r\nReprehenderit exercitation veniam eu eu aute ullamco irure ex tempor. Irure tempor Lorem anim eu nulla proident nulla est sunt. Voluptate id dolor excepteur id ut quis duis.\r\nPariatur tempor aliquip consectetur reprehenderit qui dolore excepteur veniam. In aliqua aute veniam aliqua in officia aute nisi Lorem. Ea duis labore labore voluptate. Voluptate esse cillum excepteur reprehenderit.\r\n", - "address": "2 Duryea Court", - "city": "Bentonville", - "state": "Nebraska", - "zip": 43783, - "country": "Myanmar", - "email": "debbiemoody@scentric.com", - "phone": "(816) 429-3615", - "color": "rgb(209,130,75)" - }, - { - "index": 125, - "name": "Ayers Finley", - "first": "Janna", - "last": "Donovan", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/martinhn/73.jpg", - "boolean": false, - "guid": "9910153e-54e3-4464-ab3b-2f87ff4a6574", - "integer": 29, - "date": "Wed Jun 03 1987 11:23:05 GMT-0700 (PDT)", - "shortText": "occaecat dolore sunt", - "mediumText": "Esse voluptate quis laborum voluptate ut labore tempor consequat sit. Adipisicing proident ex Lorem voluptate eu esse laborum ex laborum officia veniam aliquip enim id. Incididunt eu nisi proident pariatur ut non.", - "longText": "Incididunt do qui veniam Lorem quis. Aute culpa ut dolor incididunt deserunt consequat mollit non nulla dolore. Deserunt veniam velit tempor pariatur aliquip veniam. Duis aliquip nulla sunt ullamco esse aliqua Lorem esse aliquip veniam adipisicing. Cillum et do enim commodo aliqua ullamco exercitation exercitation. Mollit magna Lorem fugiat irure excepteur adipisicing id veniam. Sit tempor aute in minim dolore aliquip minim nisi magna.\r\nVelit aliqua ullamco ea amet culpa id. Magna velit voluptate culpa fugiat fugiat amet veniam ad labore eu in. Eu deserunt quis ipsum aliqua nulla pariatur commodo. Elit nostrud id irure eu reprehenderit est dolore sunt Lorem. Esse anim quis elit elit irure consectetur irure ut non ad ullamco magna et. Ex Lorem labore deserunt consequat consectetur officia veniam non commodo magna ut non eu in.\r\nVoluptate aliqua velit magna dolor in anim dolore ad quis. Ullamco magna officia labore ex adipisicing veniam magna adipisicing in id anim ea adipisicing mollit. Irure pariatur ea incididunt culpa ex veniam pariatur eiusmod duis ea. Ut exercitation duis aliqua quis elit reprehenderit magna veniam voluptate nostrud. Id proident nostrud consectetur occaecat nostrud nostrud nisi eu labore occaecat minim. Sint ut consequat ullamco dolor duis exercitation sint eiusmod nostrud et esse labore. Anim elit ipsum occaecat sint laborum esse.\r\nAd velit aliqua irure dolor aliquip eiusmod occaecat incididunt sunt dolore elit quis sunt. Sunt veniam quis eu anim et ut laborum. Nisi duis anim non sunt consequat labore duis sit minim velit dolor adipisicing pariatur. Qui fugiat elit non amet ad nostrud voluptate veniam proident.\r\nEnim qui non exercitation cupidatat pariatur cillum anim sunt aliqua sunt. Lorem ut excepteur consectetur ipsum dolore enim sint labore sunt. Anim dolore consectetur mollit ex consectetur ex enim eiusmod.\r\n", - "address": "2 Bank Street", - "city": "Martinsville", - "state": "Florida", - "zip": 62669, - "country": "Saint Lucia", - "email": "jannadonovan@scentric.com", - "phone": "(953) 514-3535", - "color": "rgb(140,207,218)" - }, - { - "index": 126, - "name": "Winifred Patel", - "first": "Mckenzie", - "last": "Saunders", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/sasha_shestakov/73.jpg", - "boolean": true, - "guid": "0232aa09-2751-4a44-938d-2450be7353c5", - "integer": 47, - "date": "Tue May 04 2010 11:32:34 GMT-0700 (PDT)", - "shortText": "cillum culpa aliqua", - "mediumText": "Et ex ea sunt velit. Veniam amet incididunt labore consectetur incididunt do. Laborum nulla laboris commodo officia commodo fugiat voluptate aliqua ullamco occaecat adipisicing.", - "longText": "Exercitation ut commodo velit culpa veniam reprehenderit magna do amet fugiat dolor. Velit ad esse incididunt cillum eu aliquip aute in velit. Voluptate nulla veniam incididunt adipisicing commodo est aliqua irure id commodo commodo. Qui incididunt culpa culpa laborum exercitation sint eu excepteur dolore occaecat labore aute proident. Eiusmod est occaecat quis duis aliqua. Ad sit incididunt nostrud dolore velit mollit pariatur nostrud.\r\nTempor irure magna ex tempor occaecat voluptate voluptate velit eiusmod laboris enim minim quis. Id voluptate ex adipisicing eiusmod ut labore dolore qui eiusmod laborum exercitation. Irure labore laboris elit ea. Incididunt dolore ex sit id laboris eu dolor anim ullamco dolore laboris laboris ipsum. Est nulla excepteur proident enim labore. Pariatur aliquip voluptate qui amet commodo officia non.\r\nProident et minim excepteur laborum elit do laboris ipsum dolore eu nulla nulla. Id ad aliqua pariatur aliquip magna ea adipisicing occaecat. Exercitation quis Lorem consectetur eiusmod. Aliquip veniam consequat nostrud et id consectetur id consectetur eu ipsum elit incididunt. Aliquip do nostrud occaecat esse consectetur est irure nulla magna.\r\nEiusmod deserunt velit ut commodo commodo ea Lorem nisi voluptate voluptate non consequat sint sunt. Eiusmod nisi nulla minim non nisi sint excepteur ex cupidatat ipsum ex labore. Adipisicing dolore ut tempor exercitation cupidatat.\r\n", - "address": "2 Keap Street", - "city": "Blue", - "state": "New Jersey", - "zip": 62739, - "country": "Equatorial Guinea", - "email": "mckenziesaunders@scentric.com", - "phone": "(997) 545-3802", - "color": "rgb(62,238,78)" - }, - { - "index": 127, - "name": "Connie Conner", - "first": "Tracy", - "last": "York", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/vovkasolovev/73.jpg", - "boolean": true, - "guid": "8996bac9-5e0b-418e-a12c-710a15bdb763", - "integer": 8, - "date": "Thu Oct 05 2000 01:32:28 GMT-0700 (PDT)", - "shortText": "nostrud id eiusmod aliqua", - "mediumText": "Irure est aliquip magna excepteur velit cillum dolore eu veniam occaecat ex. Consequat proident nulla anim culpa ullamco sint.", - "longText": "Ipsum labore enim aliquip sit id qui elit ut ex laboris. Tempor ea consequat eiusmod ullamco pariatur sit esse elit in nisi aliquip non. Velit incididunt ea reprehenderit anim anim.\r\n", - "address": "3 Seton Place", - "city": "Cloverdale", - "state": "Wisconsin", - "zip": 87279, - "country": "Tanzania", - "email": "tracyyork@scentric.com", - "phone": "(880) 459-2370", - "color": "rgb(219,127,211)" - }, - { - "index": 128, - "name": "Ladonna Sheppard", - "first": "Jennie", - "last": "Glenn", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/urbanjahvier/73.jpg", - "boolean": false, - "guid": "5590b6a2-bb72-4d3e-8088-4af6a3a81dcb", - "integer": 4, - "date": "Mon Jun 04 1979 05:10:17 GMT-0700 (PDT)", - "shortText": "irure ea culpa", - "mediumText": "Est irure minim amet reprehenderit non minim et minim consequat cillum.", - "longText": "Minim laboris sint enim ea. Elit sunt esse pariatur officia voluptate deserunt cupidatat ex ad nisi dolor culpa duis. Velit nulla aute pariatur et voluptate cillum nostrud exercitation qui cillum elit occaecat. Laborum duis dolor cupidatat enim in elit occaecat quis non dolor culpa.\r\nIncididunt excepteur consequat consequat laborum. Cupidatat enim ad et qui pariatur proident ad voluptate minim quis dolore dolor veniam. Nisi sunt voluptate ut est aliqua. Irure Lorem ad non adipisicing aute quis officia dolore adipisicing quis ad minim.\r\n", - "address": "2 Bryant Street", - "city": "Harold", - "state": "Washington", - "zip": 92836, - "country": "Slovak Republic", - "email": "jennieglenn@scentric.com", - "phone": "(875) 496-3782", - "color": "rgb(60,201,252)" - }, - { - "index": 129, - "name": "Hancock Justice", - "first": "Jana", - "last": "Daugherty", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/betraydan/73.jpg", - "boolean": false, - "guid": "ac903149-dee1-4dbc-b0b4-01e15797af97", - "integer": 23, - "date": "Sun Dec 26 1976 01:33:58 GMT-0800 (PST)", - "shortText": "amet deserunt excepteur adipisicing", - "mediumText": "Mollit eu fugiat minim irure eu aliquip eiusmod do nisi elit minim anim commodo nisi. Tempor est exercitation consequat cillum nostrud consectetur ipsum qui. Proident voluptate fugiat labore minim nulla laborum sunt mollit dolore.", - "longText": "Commodo eiusmod nulla consequat Lorem ut ipsum esse cillum. Nostrud dolore proident proident ipsum sunt mollit esse amet. Et in adipisicing esse mollit consequat esse ipsum incididunt. Lorem est do id do qui non sit. Amet minim quis elit minim adipisicing et nisi nisi. Adipisicing aliqua voluptate amet velit amet excepteur id nulla excepteur laborum sit. Anim deserunt aute laboris duis deserunt aute quis veniam.\r\nAd elit fugiat id nisi nostrud esse aliquip. Ipsum esse labore laborum velit velit esse sit consequat non aliquip. Proident consequat est excepteur mollit.\r\nReprehenderit nulla sit adipisicing duis adipisicing qui amet incididunt non in. Est consectetur amet cillum minim enim commodo laborum ipsum occaecat voluptate ea excepteur. Duis mollit anim anim minim magna elit sunt.\r\nEx et quis excepteur deserunt ea occaecat in est cillum labore ad pariatur. Commodo ea anim ipsum qui laboris duis reprehenderit. Non commodo magna voluptate deserunt do. In officia excepteur exercitation qui. Cillum eu aute laboris culpa laborum eu eiusmod.\r\nLorem irure voluptate magna velit reprehenderit sint. Sint ea exercitation officia occaecat. Cillum veniam proident voluptate ullamco in nisi eu. Irure laboris voluptate veniam ea. Reprehenderit adipisicing incididunt enim aliquip ex. Dolore amet ullamco ullamco ad pariatur.\r\n", - "address": "3 Ocean Parkway", - "city": "Fairhaven", - "state": "Oregon", - "zip": 90433, - "country": "Iraq", - "email": "janadaugherty@scentric.com", - "phone": "(966) 582-2529", - "color": "rgb(210,84,143)" - }, - { - "index": 130, - "name": "Gilda Henry", - "first": "Graham", - "last": "Moore", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/justme_timothyg/73.jpg", - "boolean": true, - "guid": "25728c02-6a0c-45e4-8ed5-f0b169379f13", - "integer": 39, - "date": "Thu Aug 02 2001 00:17:50 GMT-0700 (PDT)", - "shortText": "irure incididunt magna", - "mediumText": "Ea do ad culpa adipisicing culpa. Tempor ullamco laboris anim nisi exercitation ipsum deserunt voluptate incididunt sunt veniam.", - "longText": "Laborum ex ut culpa occaecat. Ex ad qui amet minim. Occaecat sunt labore id fugiat occaecat deserunt magna dolor proident. Proident eu qui ut incididunt id. Id reprehenderit labore dolore do exercitation. Commodo exercitation sint nulla ullamco. Occaecat mollit velit elit aliquip ad ex.\r\nIrure deserunt mollit deserunt id elit. Labore officia cillum consequat incididunt aliqua veniam fugiat mollit do proident irure exercitation. Exercitation duis irure sunt sit ad proident mollit elit dolore sunt. Ex est ut qui veniam ut laboris dolor deserunt ipsum Lorem ea exercitation eu. Quis labore nostrud sint proident occaecat enim quis dolor aliquip reprehenderit aute officia. Magna aute irure ullamco voluptate nisi ipsum labore.\r\nIrure sit aliquip quis eiusmod nisi occaecat amet cillum minim ex. Ipsum eiusmod ut nostrud eiusmod cillum est fugiat irure qui. Enim minim consequat ullamco minim. Cupidatat culpa mollit ut et.\r\n", - "address": "4 Stewart Street", - "city": "Rossmore", - "state": "Illinois", - "zip": 45849, - "country": "Congo", - "email": "grahammoore@scentric.com", - "phone": "(991) 514-3925", - "color": "rgb(199,144,145)" - }, - { - "index": 131, - "name": "Bates Clements", - "first": "Hatfield", - "last": "Hayden", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/justinteractive/73.jpg", - "boolean": false, - "guid": "afe8d372-90a6-404f-85c7-16fd49fb9612", - "integer": 80, - "date": "Wed Feb 14 1990 23:57:58 GMT-0800 (PST)", - "shortText": "excepteur culpa voluptate consectetur", - "mediumText": "Aliqua sunt irure commodo veniam proident. Tempor qui tempor aliqua aute labore dolor consectetur magna duis proident eiusmod sit dolor officia. Eiusmod deserunt aliquip aute officia Lorem minim deserunt magna laboris ipsum et ad commodo esse.", - "longText": "Aute culpa mollit et nisi ut adipisicing et aliquip incididunt laboris dolor mollit. Deserunt elit in sit dolore ut enim eu. Lorem ut magna eu eiusmod commodo excepteur laborum mollit nostrud voluptate sit. Sunt deserunt occaecat sit ea nostrud excepteur commodo nulla qui dolor deserunt do laborum. Pariatur do qui culpa laborum velit cillum.\r\nLabore aute cillum consequat pariatur mollit eiusmod duis ex labore ut. Occaecat dolore irure excepteur mollit tempor tempor ut. Velit qui pariatur pariatur voluptate nostrud. Duis magna sint irure et labore ipsum deserunt non veniam.\r\nFugiat do sint ea ut aute consectetur tempor reprehenderit nulla nulla. Laborum cupidatat excepteur nulla dolor cupidatat duis laboris. Amet in ipsum proident deserunt consectetur in proident incididunt. Elit consectetur occaecat dolore duis aute pariatur.\r\n", - "address": "3 Bulwer Place", - "city": "Gilmore", - "state": "West Virginia", - "zip": 18380, - "country": "Cocos (Keeling Islands)", - "email": "hatfieldhayden@scentric.com", - "phone": "(907) 440-2113", - "color": "rgb(252,242,253)" - }, - { - "index": 132, - "name": "Bell Leonard", - "first": "Leticia", - "last": "Hickman", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/psdesignuk/73.jpg", - "boolean": true, - "guid": "ed4df7d0-7592-4c76-b54b-edc925ddb79d", - "integer": 77, - "date": "Tue May 03 1983 09:44:10 GMT-0700 (PDT)", - "shortText": "enim consequat ad elit sit", - "mediumText": "Aute reprehenderit officia dolor sit ullamco consectetur nostrud. Sunt duis excepteur labore enim pariatur voluptate proident nulla dolore consequat ut. Commodo aliqua anim ut Lorem. Irure nostrud ad non eiusmod duis.", - "longText": "Reprehenderit esse laboris consequat aliqua nulla. Dolore do ipsum sunt incididunt. Incididunt ipsum labore eiusmod amet dolor minim sunt velit cupidatat. Sint laboris qui occaecat dolor duis ad mollit esse dolore minim. Et nostrud deserunt magna ad adipisicing nisi deserunt mollit tempor.\r\nDeserunt exercitation consequat labore veniam. Proident aliqua Lorem pariatur anim aliqua eu elit aliqua. Pariatur anim laboris reprehenderit eu nulla consequat eu tempor sint exercitation eiusmod sint excepteur voluptate. Sunt cillum ex ex occaecat aliquip ut labore voluptate cupidatat velit incididunt consectetur reprehenderit sunt.\r\nProident ex sunt eu velit magna quis quis ea nulla. Reprehenderit id eu ullamco deserunt aliqua pariatur do nisi eu anim. Enim exercitation aute culpa aute excepteur pariatur veniam. Esse labore labore anim cupidatat exercitation aliqua Lorem consequat fugiat tempor magna. Mollit ipsum irure proident adipisicing nisi eu mollit culpa aliquip id esse occaecat. Commodo amet esse nisi velit ipsum amet id cupidatat veniam. Id veniam fugiat anim fugiat nisi non in do labore esse labore est exercitation amet.\r\n", - "address": "4 Baughman Place", - "city": "Hessville", - "state": "Mississippi", - "zip": 48135, - "country": "Saint Kitts and Nevis", - "email": "leticiahickman@scentric.com", - "phone": "(986) 415-3367", - "color": "rgb(161,161,217)" - }, - { - "index": 133, - "name": "Logan Wyatt", - "first": "Bray", - "last": "Mathews", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/teclaro/73.jpg", - "boolean": false, - "guid": "50c374de-c1b2-4bef-8dc9-9b47e6caf127", - "integer": 3, - "date": "Thu Jan 23 2014 19:45:54 GMT-0800 (PST)", - "shortText": "aliquip cupidatat sint ut", - "mediumText": "Esse elit anim consectetur reprehenderit ad excepteur eiusmod aute. Veniam in ullamco reprehenderit commodo consectetur tempor quis. Nisi enim tempor tempor est est amet esse mollit mollit sint officia et amet duis. Sint sit in sit et enim et eu aliquip nostrud proident.", - "longText": "Amet aliqua eiusmod enim occaecat tempor do adipisicing labore mollit culpa adipisicing dolor nisi id. Elit consequat mollit commodo minim labore excepteur nisi est consectetur. Ad ut laborum enim fugiat cillum eu labore.\r\nReprehenderit pariatur aliqua anim aliquip. Aliqua tempor labore Lorem nulla ut velit aliquip ea amet labore qui exercitation incididunt. Velit pariatur eu sunt mollit velit deserunt mollit ad veniam aute. Cupidatat laboris qui proident eu mollit do qui. Lorem id aliqua occaecat irure proident. Commodo dolor commodo laborum excepteur nisi consequat esse culpa aute laboris do in.\r\nLaborum ex excepteur incididunt sint ipsum. Aliquip cillum nulla sit labore Lorem ut do mollit Lorem. Reprehenderit commodo dolore sint mollit. Laboris et culpa sunt ut ipsum deserunt eiusmod exercitation dolore. Do Lorem deserunt voluptate reprehenderit ex deserunt labore nulla excepteur qui nisi voluptate. Amet ipsum excepteur amet qui nostrud adipisicing elit fugiat veniam nostrud deserunt id sunt laborum. Incididunt eu dolore dolore qui quis qui pariatur pariatur ad nostrud.\r\n", - "address": "2 Cherry Street", - "city": "Kieler", - "state": "Rhode Island", - "zip": 44229, - "country": "Spain", - "email": "braymathews@scentric.com", - "phone": "(945) 538-3851", - "color": "rgb(223,145,248)" - }, - { - "index": 134, - "name": "Elva Beard", - "first": "Riley", - "last": "Wallace", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/eyronn/73.jpg", - "boolean": true, - "guid": "7c00ca0a-94ea-41ec-babd-533d61c3c1db", - "integer": 26, - "date": "Tue Sep 20 2005 17:05:43 GMT-0700 (PDT)", - "shortText": "incididunt", - "mediumText": "Tempor reprehenderit ullamco labore irure velit Lorem nulla excepteur sunt nostrud ea exercitation. Exercitation nisi reprehenderit consequat enim voluptate est aute qui dolor aliqua amet quis cupidatat. Elit non aliquip esse in officia enim tempor pariatur aliquip est. Reprehenderit ipsum ea voluptate commodo qui deserunt. Cupidatat nostrud magna eu nisi mollit voluptate sint qui.", - "longText": "Reprehenderit mollit eu est adipisicing amet quis id ipsum est nisi occaecat. Veniam aute aute adipisicing aliquip et ea dolor commodo cillum esse Lorem. Dolore cillum cillum ex consectetur nostrud velit elit voluptate adipisicing deserunt dolore consectetur. Amet proident aliquip enim pariatur occaecat in aliquip deserunt in occaecat qui mollit eu. Deserunt laboris dolor quis do.\r\nVelit ea voluptate culpa veniam mollit excepteur culpa laboris. Dolor est qui sint irure cillum proident labore nulla adipisicing cillum. Incididunt aliquip dolor est consectetur nulla ad aliqua esse sit elit. Eiusmod et fugiat dolore aliquip excepteur ullamco sunt sit enim do fugiat in excepteur cupidatat. Lorem nostrud irure velit quis consectetur.\r\nNulla amet do excepteur in esse reprehenderit nulla aliqua reprehenderit ipsum dolore Lorem sunt. Quis aliqua ex esse voluptate aliquip do incididunt proident exercitation commodo. Commodo enim mollit dolor laboris dolore ex fugiat sit commodo Lorem. Lorem sint mollit reprehenderit ipsum elit qui exercitation incididunt. Non excepteur non duis nulla sunt dolor in qui proident. Proident pariatur adipisicing eu sunt laboris voluptate cillum ut adipisicing. Labore ut esse consectetur in consequat velit cupidatat esse nisi.\r\nVelit Lorem ad sunt labore irure enim ut aliqua officia velit dolor. Sint tempor sunt et amet nostrud. Sint laboris eiusmod elit excepteur.\r\n", - "address": "4 Herkimer Court", - "city": "Jacumba", - "state": "Georgia", - "zip": 87900, - "country": "Guinea-Bissau", - "email": "rileywallace@scentric.com", - "phone": "(908) 527-2510", - "color": "rgb(150,183,57)" - }, - { - "index": 135, - "name": "Jeanne Walker", - "first": "Noemi", - "last": "Castaneda", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gulian/73.jpg", - "boolean": false, - "guid": "954a476d-62d8-4190-94a1-ba084f44049d", - "integer": 52, - "date": "Thu Jul 28 1977 23:23:02 GMT-0700 (PDT)", - "shortText": "duis", - "mediumText": "Aliqua nostrud excepteur est veniam cillum et aute ut. Sint ex nostrud incididunt deserunt duis. Velit laborum occaecat mollit culpa aliquip nisi aliquip ad. Laboris eu adipisicing nostrud aliquip elit consectetur ea nulla quis minim non proident laboris. Laboris exercitation laboris ut exercitation deserunt quis irure irure officia sunt sit cillum ad.", - "longText": "Ipsum occaecat veniam cupidatat enim tempor irure ea reprehenderit esse commodo non. Aliquip est sit ipsum ipsum officia aliquip mollit quis sint adipisicing nisi sint tempor esse. Occaecat fugiat minim tempor excepteur ut minim dolor non voluptate.\r\nAdipisicing sunt excepteur amet aliquip duis anim excepteur ipsum nostrud occaecat non aliquip nulla Lorem. Labore ut sint mollit anim aliquip elit. Incididunt excepteur et deserunt anim laborum voluptate quis nulla ut. Aliqua qui culpa et culpa magna consequat irure culpa Lorem veniam. Qui sit qui labore cillum sunt elit consectetur officia qui Lorem sint elit dolor veniam. Ex labore ullamco quis ut elit Lorem in excepteur officia dolore tempor aute irure. Sunt ut eu deserunt aliquip aliqua sint elit elit.\r\nDolore ex cupidatat cupidatat elit adipisicing exercitation mollit eu officia et ullamco incididunt dolor. Qui incididunt voluptate aliquip fugiat proident ea. Officia minim laboris tempor est aliqua ipsum velit aliqua et culpa voluptate quis. Sint amet commodo dolor ad excepteur veniam cillum amet ut officia commodo velit.\r\nIpsum exercitation laboris occaecat duis non nisi cupidatat ad incididunt voluptate et. Duis ea enim nostrud non reprehenderit laborum culpa sint. Ullamco dolor non in excepteur culpa amet. Consectetur occaecat eiusmod tempor ad tempor veniam dolore aliqua ad id. Exercitation in amet fugiat ea mollit ut in officia velit dolore nostrud est amet anim. Eu do dolore eu ut adipisicing qui aute aute occaecat labore esse.\r\nDo quis laborum minim aliqua non dolor cupidatat labore velit dolor eiusmod. Minim labore sint ipsum duis nisi. Nostrud duis deserunt consectetur magna laborum mollit ea laboris. Consectetur exercitation dolor eu exercitation reprehenderit non ipsum.\r\n", - "address": "4 Montague Street", - "city": "Why", - "state": "New Mexico", - "zip": 97706, - "country": "Cameroon", - "email": "noemicastaneda@scentric.com", - "phone": "(867) 475-2648", - "color": "rgb(130,190,155)" - }, - { - "index": 136, - "name": "Jasmine Talley", - "first": "Debra", - "last": "Dunn", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/drebbits/73.jpg", - "boolean": false, - "guid": "d0121c9c-7074-450a-9234-7d97fd437785", - "integer": 91, - "date": "Mon Feb 01 1988 23:12:40 GMT-0800 (PST)", - "shortText": "non", - "mediumText": "Veniam in voluptate laboris exercitation labore velit enim occaecat eiusmod officia cupidatat ex non mollit. Irure occaecat adipisicing dolore labore officia aliquip in. Elit et consequat adipisicing aliquip irure qui sunt amet Lorem eiusmod fugiat tempor sint fugiat. Consectetur esse eu pariatur et cupidatat sint. Nulla enim Lorem exercitation eu id cillum sint qui est deserunt culpa.", - "longText": "Eiusmod aliquip pariatur minim commodo qui labore aliquip sint non officia consequat. Aliquip culpa anim amet id labore nulla enim cupidatat consectetur eiusmod. Dolor nulla pariatur sunt pariatur est labore excepteur velit dolore nisi.\r\nQuis amet fugiat occaecat anim. Elit aliqua non veniam commodo. Lorem enim ut laboris dolore ad esse est culpa aute aliqua aliqua. Elit deserunt ea cillum ad. Laboris ipsum cupidatat laborum veniam officia quis aute sit pariatur commodo reprehenderit in velit.\r\nEnim aliqua culpa do voluptate et deserunt velit est. Nisi elit voluptate ipsum officia mollit nulla anim labore magna laboris dolor proident. Ea excepteur laborum aute excepteur officia qui proident. Nisi ad ipsum et cupidatat sint cupidatat veniam eiusmod eu id eiusmod pariatur cupidatat. Mollit eiusmod culpa labore reprehenderit minim dolore et veniam non labore tempor sunt Lorem ex. Laborum officia Lorem duis enim magna exercitation ullamco elit ut veniam reprehenderit magna quis adipisicing. Dolor est amet commodo nulla deserunt Lorem reprehenderit consectetur.\r\n", - "address": "2 Woodpoint Road", - "city": "Shaft", - "state": "Arizona", - "zip": 57801, - "country": "Niger", - "email": "debradunn@scentric.com", - "phone": "(815) 574-3583", - "color": "rgb(79,212,186)" - }, - { - "index": 137, - "name": "Marquez Stark", - "first": "Gallegos", - "last": "Harris", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/alexhaniotis/73.jpg", - "boolean": true, - "guid": "2dc3bab6-4120-4941-8c99-3f350a894c8f", - "integer": 76, - "date": "Tue Jul 05 2005 22:08:38 GMT-0700 (PDT)", - "shortText": "id officia", - "mediumText": "Mollit dolor quis quis velit elit id ex esse sit cillum sit aliquip.", - "longText": "Est laboris reprehenderit nisi duis eu qui elit ipsum excepteur cillum officia. Qui dolor eiusmod nulla elit enim pariatur tempor. Sunt aliquip voluptate mollit magna nisi eu sit do adipisicing laboris. Officia fugiat id quis eu consequat nulla anim irure quis exercitation adipisicing deserunt elit.\r\nAnim minim nostrud reprehenderit aute labore irure voluptate. Laborum incididunt ipsum culpa nulla qui esse mollit veniam. Dolor commodo ad aliqua aliquip ea consequat occaecat culpa veniam consequat. Incididunt reprehenderit enim veniam deserunt laboris cillum sint occaecat labore eiusmod ullamco veniam. Dolor culpa culpa laboris id cillum. Exercitation qui id laboris minim fugiat ea do aute duis. Do velit laborum adipisicing ad amet consequat laboris Lorem pariatur.\r\nConsequat dolor amet cillum minim exercitation sit in velit fugiat id anim. Fugiat tempor laborum nostrud ea eiusmod esse laborum. Labore aliquip ullamco ipsum aliqua consectetur ipsum ad. Et voluptate incididunt id cillum labore fugiat aliquip veniam sunt sunt nisi adipisicing. Cillum nisi qui reprehenderit qui nostrud sunt.\r\n", - "address": "2 Franklin Street", - "city": "Orovada", - "state": "Texas", - "zip": 68862, - "country": "Malta", - "email": "gallegosharris@scentric.com", - "phone": "(994) 597-2534", - "color": "rgb(67,106,191)" - }, - { - "index": 138, - "name": "James Gregory", - "first": "Davis", - "last": "Burton", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/twahlin/73.jpg", - "boolean": false, - "guid": "7ff8b299-328d-46dc-ab4f-b59c0d6e3ad8", - "integer": 32, - "date": "Sat Jan 08 1994 09:01:56 GMT-0800 (PST)", - "shortText": "tempor", - "mediumText": "Id nisi nulla non culpa laborum dolor adipisicing aute in. Cillum consectetur sit occaecat officia. Nulla Lorem aliqua nulla velit nisi dolore magna sint in sint incididunt sunt sit nostrud. Pariatur sunt labore Lorem est nulla minim culpa velit tempor elit ipsum in eiusmod. Ad fugiat anim incididunt sint consectetur.", - "longText": "Esse reprehenderit laborum commodo aute nostrud incididunt. Voluptate do consectetur excepteur minim laboris ea et ut cupidatat. Magna qui aute sint minim do nostrud laborum magna labore. Lorem sunt veniam ullamco cupidatat.\r\nEt ullamco aute ex cupidatat cillum laboris aliqua laborum irure. Laboris ex laboris dolore non Lorem. Reprehenderit excepteur occaecat laborum laboris voluptate exercitation eu est consectetur tempor est nisi. Cillum fugiat do deserunt non dolor eiusmod Lorem dolore voluptate. Nisi minim enim Lorem minim quis exercitation reprehenderit eu nulla qui aute.\r\nIrure anim eiusmod id adipisicing aliqua. Nulla minim laboris nulla esse do elit aliqua eiusmod aute cillum elit. Ex consequat laboris aliquip dolor dolore pariatur consequat ut reprehenderit.\r\nFugiat minim eiusmod tempor commodo amet deserunt consectetur elit aliquip ex labore laborum veniam eu. Cillum aliquip aliquip non culpa eiusmod elit non dolore. Eiusmod ullamco cillum dolor ea voluptate et adipisicing ut enim. Sunt duis ea fugiat aute qui reprehenderit ut. Ullamco minim cillum aliqua nulla amet excepteur reprehenderit ut reprehenderit. Duis eu aliqua ad dolore consectetur labore quis occaecat cillum qui sint commodo deserunt est. Duis sunt deserunt enim duis est anim commodo elit id ad magna occaecat in.\r\n", - "address": "4 Macdougal Street", - "city": "Limestone", - "state": "District Of Columbia", - "zip": 74514, - "country": "Antigua and Barbuda", - "email": "davisburton@scentric.com", - "phone": "(916) 551-3269", - "color": "rgb(215,141,197)" - }, - { - "index": 139, - "name": "Thomas Lowery", - "first": "Hutchinson", - "last": "Weeks", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ntfblog/73.jpg", - "boolean": false, - "guid": "6ae3a7b3-9d8c-46bc-9d8c-af55345a1168", - "integer": 68, - "date": "Sat May 27 1978 05:40:06 GMT-0700 (PDT)", - "shortText": "irure sit", - "mediumText": "Officia proident tempor do et aliquip in cupidatat labore anim esse.", - "longText": "Labore elit laboris dolor fugiat ut sit minim aliquip adipisicing culpa nostrud. Id do adipisicing nisi adipisicing proident. Cupidatat tempor aliquip anim consequat fugiat eiusmod laborum adipisicing. Et sunt velit magna cupidatat commodo et consequat. Exercitation voluptate ex aliquip laboris. Aliqua qui voluptate anim deserunt reprehenderit.\r\nPariatur dolore pariatur laborum excepteur duis. Dolore consequat veniam fugiat sint cillum quis sit deserunt laborum eiusmod culpa id. Eiusmod incididunt magna cupidatat irure. Ex eu ad non non non consectetur sit non cillum sit anim cupidatat. Ea minim ut exercitation sint ullamco culpa cupidatat ipsum eu sit.\r\nEnim aliquip officia occaecat esse exercitation nulla esse. Commodo magna et sint sint consequat velit excepteur occaecat ex ea tempor proident. Officia laboris proident commodo eu laboris consectetur sunt pariatur aliqua pariatur. Fugiat reprehenderit reprehenderit cillum exercitation consequat duis ullamco in quis exercitation est est excepteur.\r\nEsse duis in elit cupidatat non cillum non aute sunt nulla mollit ipsum enim. Sit deserunt do nostrud quis dolor qui aliqua qui exercitation ex minim velit esse. Aliqua irure do ex eiusmod cupidatat non veniam est exercitation. Ea culpa eu Lorem id aute dolore.\r\n", - "address": "4 Hazel Court", - "city": "Lafferty", - "state": "Virgin Islands", - "zip": 50828, - "country": "Kazakhstan", - "email": "hutchinsonweeks@scentric.com", - "phone": "(930) 418-3265", - "color": "rgb(120,254,136)" - }, - { - "index": 140, - "name": "Adkins Hanson", - "first": "Gibson", - "last": "Chaney", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/commoncentssss/73.jpg", - "boolean": false, - "guid": "9f6901ec-fedc-4d3c-963a-46d2245a15d6", - "integer": 63, - "date": "Thu Dec 30 1971 20:07:08 GMT-0800 (PST)", - "shortText": "elit tempor labore labore", - "mediumText": "Esse duis dolore officia voluptate velit culpa incididunt reprehenderit nisi. Eiusmod dolor ut non ea ut consequat dolor veniam aliqua ut cupidatat pariatur sunt.", - "longText": "Culpa tempor sint ullamco minim aute ad. Mollit laboris minim amet incididunt proident proident magna elit qui fugiat non velit irure. Nostrud incididunt non sunt ex veniam minim proident exercitation aliqua veniam laboris dolor est.\r\nPariatur aute adipisicing tempor occaecat. Laborum sit quis irure commodo sit. Incididunt do enim sit ad. Voluptate dolore fugiat ipsum id. Lorem Lorem laborum excepteur nostrud ut.\r\nCulpa tempor velit esse commodo eiusmod excepteur in aliqua. Quis culpa Lorem non et sunt elit. Incididunt ullamco ipsum duis laboris minim do mollit quis non minim laboris adipisicing sit Lorem. Culpa consectetur Lorem aute amet culpa deserunt fugiat. Deserunt amet officia cupidatat ea cupidatat nisi enim cupidatat reprehenderit dolore et reprehenderit nulla cupidatat. Velit ipsum ea ad exercitation eu sunt nisi nostrud ullamco nisi commodo aliqua.\r\nAdipisicing aute reprehenderit in enim do ipsum pariatur et cupidatat deserunt consectetur mollit sunt laboris. Exercitation voluptate dolor quis quis commodo. Laboris sunt consectetur veniam id fugiat magna ipsum ad cillum officia in sunt. Sunt ut magna culpa ad proident id sit in. Sint laborum commodo culpa deserunt et aliquip dolor laborum. Laboris adipisicing exercitation aliqua qui labore irure Lorem culpa aute minim Lorem aliquip. Sint nostrud et ut irure nisi non.\r\n", - "address": "4 Croton Loop", - "city": "Cresaptown", - "state": "Puerto Rico", - "zip": 63679, - "country": "Bahrain", - "email": "gibsonchaney@scentric.com", - "phone": "(973) 550-3569", - "color": "rgb(147,126,185)" - }, - { - "index": 141, - "name": "Catalina Rojas", - "first": "Angie", - "last": "Mcknight", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/anissa_anwar/73.jpg", - "boolean": true, - "guid": "2a7b1f3c-602a-4977-b1d0-b2e1f3101dbd", - "integer": 61, - "date": "Sun Jan 31 1982 15:49:23 GMT-0800 (PST)", - "shortText": "in adipisicing reprehenderit cillum officia", - "mediumText": "Commodo voluptate est elit aliquip irure qui. Ullamco labore et non irure. Ea sunt excepteur ea in. Consequat deserunt sint id et aliquip officia et nisi esse amet reprehenderit quis. Ut enim quis et culpa.", - "longText": "Labore ullamco ea ipsum aute veniam adipisicing irure culpa adipisicing mollit. Qui aute velit labore veniam enim exercitation reprehenderit tempor nisi ullamco cillum tempor ea fugiat. Nulla incididunt dolore exercitation irure ut. Fugiat dolor duis ad deserunt in proident. Est elit nisi magna do culpa aliquip proident elit cupidatat. Adipisicing fugiat commodo ullamco eiusmod mollit veniam. Nisi cupidatat ullamco cillum velit qui Lorem sint ad non esse eu.\r\n", - "address": "4 Thomas Street", - "city": "Marenisco", - "state": "Maryland", - "zip": 83481, - "country": "India", - "email": "angiemcknight@scentric.com", - "phone": "(852) 571-3576", - "color": "rgb(180,187,55)" - }, - { - "index": 142, - "name": "Waller Rios", - "first": "Sherri", - "last": "Jones", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/btrig/73.jpg", - "boolean": true, - "guid": "33336c68-2dc7-4da4-83df-770c5d0ac6a1", - "integer": 23, - "date": "Thu Aug 06 2009 20:38:56 GMT-0700 (PDT)", - "shortText": "cillum ullamco deserunt", - "mediumText": "In voluptate sit consequat ex eu consectetur labore et qui in. Nostrud do enim ut non dolore cupidatat duis sint. Est laboris aute veniam mollit ea dolore occaecat pariatur. Fugiat adipisicing amet cupidatat cillum sit reprehenderit velit cillum ex anim velit tempor. Ullamco do aliquip est Lorem duis nulla ipsum.", - "longText": "Enim aliqua ut eu excepteur cupidatat nostrud dolore. Anim in ut est laboris. Id sunt ex labore commodo pariatur laborum sint labore fugiat nostrud.\r\nVelit commodo voluptate irure eu officia aute veniam et quis laboris. Nisi excepteur excepteur deserunt dolor. Sunt ex enim do eiusmod aliqua consequat aute cupidatat incididunt sint eiusmod ex ea Lorem. Fugiat nisi adipisicing ullamco anim enim quis eu fugiat.\r\nTempor aliqua consequat nisi deserunt cillum. Nulla eu fugiat nostrud aliquip ut consequat consectetur dolor labore duis ut deserunt eu. Mollit ut irure irure dolore ad occaecat cillum. Consectetur Lorem nostrud veniam fugiat. Qui mollit pariatur tempor consequat. Ut consequat veniam consequat exercitation non cillum ullamco sit velit Lorem qui aliqua anim.\r\nIrure ad minim consectetur mollit consectetur. Ex est laborum fugiat non. Aute consequat aliquip qui ex proident. Ad occaecat deserunt aliqua non sint consectetur voluptate in enim quis do mollit velit. Reprehenderit quis dolor laborum dolor mollit.\r\nIrure Lorem aliquip elit id minim sit. Exercitation laborum deserunt irure incididunt deserunt veniam ullamco dolor. Aliqua excepteur quis culpa labore in elit reprehenderit voluptate duis consectetur. Irure occaecat consequat commodo enim ex enim deserunt.\r\n", - "address": "2 Etna Street", - "city": "Gorham", - "state": "Massachusetts", - "zip": 76332, - "country": "Qatar", - "email": "sherrijones@scentric.com", - "phone": "(905) 514-2725", - "color": "rgb(167,172,139)" - }, - { - "index": 143, - "name": "Fulton Richmond", - "first": "Nannie", - "last": "Preston", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ug_rick/73.jpg", - "boolean": false, - "guid": "d342e219-1ba1-46ae-aaea-371e1c50562a", - "integer": 14, - "date": "Thu Aug 06 1987 21:37:44 GMT-0700 (PDT)", - "shortText": "proident sunt tempor", - "mediumText": "Fugiat aliquip nisi eiusmod et. Adipisicing eiusmod quis magna aliquip ut ullamco nulla veniam dolor irure exercitation dolore. Lorem nostrud do non do cupidatat eiusmod ea ipsum aliqua pariatur aute Lorem voluptate.", - "longText": "Commodo adipisicing est ea do nostrud Lorem in adipisicing magna dolor pariatur consectetur. Esse adipisicing Lorem qui nostrud occaecat ipsum aute deserunt esse minim elit amet. Ad sint dolore minim consectetur enim. Cupidatat culpa amet mollit ut dolore aliqua laborum nulla voluptate voluptate eu sint voluptate Lorem. Irure et laboris tempor aute qui veniam id nulla sint nostrud eu officia ea commodo.\r\nAliquip et magna exercitation velit quis incididunt velit. Nostrud fugiat in nulla Lorem qui tempor nulla adipisicing anim eiusmod duis sunt ad ex. Nulla Lorem aliqua do esse commodo. Ea ullamco anim non magna reprehenderit id ad ut aliquip magna velit tempor est. Consequat laboris tempor cupidatat velit nulla ea reprehenderit aute excepteur commodo eu qui nisi amet. Commodo excepteur enim sint dolor tempor eu nulla elit non dolor.\r\nDo id incididunt aute consequat cillum. Voluptate sunt in ut id enim fugiat occaecat. Consectetur cillum sint tempor commodo duis veniam ad anim laboris deserunt consequat. Nisi duis aliqua consectetur ullamco nisi culpa ea aliqua.\r\n", - "address": "2 Lott Street", - "city": "Lydia", - "state": "Oklahoma", - "zip": 37848, - "country": "Vatican City State (Holy See)", - "email": "nanniepreston@scentric.com", - "phone": "(801) 531-2586", - "color": "rgb(58,230,86)" - }, - { - "index": 144, - "name": "Juanita Mcfadden", - "first": "Preston", - "last": "Koch", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/blakestevenson/73.jpg", - "boolean": false, - "guid": "d10bde3c-7451-4455-bcab-d6a9467128b3", - "integer": 35, - "date": "Sat Dec 29 2007 19:47:26 GMT-0800 (PST)", - "shortText": "fugiat", - "mediumText": "Deserunt mollit proident mollit pariatur aliquip amet sit sunt ea aliquip non ad irure voluptate. Mollit eu veniam do veniam esse laboris velit dolor velit aliqua Lorem sint dolore cupidatat. Ea est irure incididunt deserunt officia Lorem culpa proident non do cillum.", - "longText": "Reprehenderit sint est consequat do. Qui irure ad voluptate proident nulla nulla quis nisi minim quis ullamco eiusmod sint. Nulla exercitation tempor incididunt qui. Adipisicing velit sit ad exercitation cillum esse exercitation sit laboris. Nostrud commodo aliquip esse quis in irure exercitation.\r\nEnim nisi in dolor cillum nulla ipsum. Qui velit cupidatat esse sit quis ullamco consequat deserunt irure exercitation. Culpa tempor ut ex id id aliqua ipsum cillum est proident ullamco nulla reprehenderit. Amet proident duis sunt proident consectetur non pariatur officia in. Voluptate enim anim eiusmod fugiat occaecat ut sunt sit nulla proident. Elit dolore consectetur velit occaecat.\r\n", - "address": "4 Jewel Street", - "city": "Washington", - "state": "Ohio", - "zip": 55293, - "country": "Malaysia", - "email": "prestonkoch@scentric.com", - "phone": "(824) 598-3313", - "color": "rgb(188,204,126)" - }, - { - "index": 145, - "name": "Hunter Morin", - "first": "Aguilar", - "last": "Willis", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/karalek/73.jpg", - "boolean": false, - "guid": "b6d849a7-e16f-4caf-8ddf-0232c5ccb47c", - "integer": 14, - "date": "Fri Oct 11 2013 10:09:38 GMT-0700 (PDT)", - "shortText": "mollit elit incididunt exercitation esse", - "mediumText": "Nisi tempor cupidatat do sint in nostrud nulla magna labore tempor amet. Qui ut anim adipisicing veniam veniam voluptate cupidatat culpa duis minim adipisicing veniam excepteur proident. Tempor eiusmod sint et nulla voluptate irure et quis sunt. Sit exercitation ex adipisicing consectetur sit veniam velit et laboris minim Lorem excepteur in.", - "longText": "Elit dolore dolore mollit deserunt fugiat Lorem ad nostrud occaecat magna. Sint deserunt sunt incididunt ad qui. Cupidatat nostrud ea sunt officia non sunt ea aliqua ipsum cillum adipisicing. Esse eiusmod minim magna culpa culpa.\r\n", - "address": "2 Cox Place", - "city": "Escondida", - "state": "Nevada", - "zip": 76788, - "country": "Belize", - "email": "aguilarwillis@scentric.com", - "phone": "(878) 446-2425", - "color": "rgb(137,240,219)" - }, - { - "index": 146, - "name": "Kathy Sutton", - "first": "Kendra", - "last": "Blevins", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/elusiveanmol/73.jpg", - "boolean": false, - "guid": "4ad8c3c8-a316-4762-a596-e9477c0fa2cd", - "integer": 31, - "date": "Thu Dec 09 2004 16:04:29 GMT-0800 (PST)", - "shortText": "nisi", - "mediumText": "Minim incididunt amet sint velit officia eiusmod cillum velit duis adipisicing magna laborum deserunt eiusmod.", - "longText": "Sunt culpa tempor deserunt ea ea labore. Occaecat consectetur anim anim ipsum dolor. Consectetur nulla commodo non velit reprehenderit cillum tempor aliquip aliqua consequat dolore.\r\nAnim minim ipsum velit consectetur sit incididunt magna cillum. Commodo deserunt consectetur esse aliqua ullamco dolor pariatur. Mollit sint voluptate aute dolor fugiat minim veniam anim ad aute. In aliquip anim ullamco dolore proident proident ipsum sunt sunt. Sint dolor pariatur aute excepteur sunt laborum magna qui.\r\nIn eu excepteur commodo eiusmod aliqua ad amet. Fugiat eu adipisicing et eu commodo nostrud elit consectetur incididunt deserunt. Non velit qui do pariatur. Lorem pariatur ullamco voluptate cillum do duis.\r\nEnim ut velit tempor nulla nostrud duis non ex amet. Fugiat cillum cillum dolore aliquip aliqua duis proident sit eu deserunt culpa esse ad. Laboris dolore nulla in ullamco ullamco ut ad. Veniam amet ea Lorem consequat officia ut consectetur ea Lorem duis cupidatat id. Irure non cupidatat ipsum do incididunt duis minim elit dolor deserunt velit. Deserunt laboris fugiat ea incididunt qui excepteur ad non irure incididunt aliquip fugiat occaecat non.\r\nElit proident exercitation quis in labore et sint ea cillum ex occaecat deserunt. Ex laboris fugiat non et excepteur. Labore non nisi exercitation do minim incididunt commodo culpa est dolor. Mollit minim proident ea id. Aliquip est nulla aliquip sint culpa eu amet magna exercitation reprehenderit culpa. Ex commodo aliqua mollit veniam fugiat officia sint duis ad sit.\r\n", - "address": "3 Prince Street", - "city": "Urbana", - "state": "Montana", - "zip": 58650, - "country": "Singapore", - "email": "kendrablevins@scentric.com", - "phone": "(956) 553-2050", - "color": "rgb(224,79,174)" - }, - { - "index": 147, - "name": "Noel Morrison", - "first": "Puckett", - "last": "Shannon", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/shoo7830/73.jpg", - "boolean": false, - "guid": "3257d65a-9945-47b8-8159-7e2304b15eef", - "integer": 32, - "date": "Wed Oct 31 1973 14:26:42 GMT-0800 (PST)", - "shortText": "sit enim nisi dolor occaecat", - "mediumText": "Deserunt deserunt excepteur aliquip proident aliquip sunt voluptate qui. Incididunt Lorem laboris dolore cillum incididunt. Qui magna excepteur ad id fugiat nostrud ea sunt mollit.", - "longText": "Eiusmod irure est incididunt cillum id sit enim quis. Eiusmod consequat deserunt proident fugiat velit ut pariatur mollit eiusmod tempor reprehenderit nisi. Nulla id ea occaecat culpa sit aute pariatur sit ullamco sint. Reprehenderit minim irure ut laborum irure nisi consectetur. Velit laborum aliquip eu ea quis veniam dolore nulla in mollit labore. Dolor velit est eiusmod est ullamco magna excepteur culpa deserunt aliqua culpa Lorem ea.\r\nTempor adipisicing sit elit ea commodo dolore dolore incididunt anim cillum nulla. In exercitation excepteur cupidatat nisi do. Id et aliqua incididunt officia pariatur dolor officia in eu ea. Eiusmod duis sint Lorem in officia velit sit qui labore aliqua fugiat quis magna ea. Laborum reprehenderit exercitation reprehenderit veniam anim nisi qui est. Ad velit incididunt ut labore consequat culpa nisi do voluptate aliquip.\r\nDo dolore occaecat amet aliquip excepteur aute nisi non. Cillum incididunt nostrud excepteur eiusmod consequat mollit voluptate dolor aliquip non. Veniam pariatur ad dolor commodo velit. Sunt dolore sunt dolore adipisicing pariatur sit nulla magna exercitation dolor proident amet dolore. Lorem adipisicing cillum laboris anim ex pariatur minim proident cillum deserunt incididunt est nostrud.\r\nEiusmod dolore eiusmod ad irure. Id nulla voluptate ad cillum duis aute veniam est mollit do. Dolore adipisicing cupidatat officia magna mollit incididunt ea. Ipsum commodo aute eu consequat ea sit. Pariatur cupidatat veniam voluptate est ex. Officia sint laboris voluptate anim laborum occaecat in ad. Consequat amet occaecat commodo deserunt duis.\r\nEnim minim dolor in anim enim. Sint ad adipisicing ullamco dolor cillum aute proident ea sint quis laboris sit. Dolor voluptate qui duis do ut labore magna incididunt occaecat tempor esse reprehenderit. Proident fugiat nulla tempor magna sit ut aliquip proident voluptate esse.\r\n", - "address": "2 Vanderbilt Avenue", - "city": "Nanafalia", - "state": "California", - "zip": 57562, - "country": "Trinidad and Tobago", - "email": "puckettshannon@scentric.com", - "phone": "(963) 414-2787", - "color": "rgb(74,128,154)" - }, - { - "index": 148, - "name": "Reeves Combs", - "first": "Trudy", - "last": "Newton", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/oanacr/73.jpg", - "boolean": false, - "guid": "53ffc997-22cc-4acc-94b5-13907ae8737f", - "integer": 12, - "date": "Sun Feb 19 1984 10:56:10 GMT-0800 (PST)", - "shortText": "consequat quis ea laboris", - "mediumText": "Commodo minim culpa cillum proident dolor occaecat mollit.", - "longText": "Proident consectetur officia consectetur laborum eiusmod sunt. Et magna labore nostrud culpa ullamco cillum duis pariatur laboris irure. Anim laborum enim laboris velit pariatur cupidatat. Aliqua minim eu labore est ex excepteur ullamco laboris deserunt ex id tempor. Laboris dolor elit officia anim incididunt nostrud incididunt nostrud officia voluptate. Voluptate nostrud fugiat consectetur cillum adipisicing elit sint sit duis. Dolor labore do pariatur do officia ullamco.\r\nQui nulla occaecat dolore ad labore excepteur reprehenderit magna sint irure culpa est. In mollit cupidatat laborum duis ipsum mollit. Eiusmod excepteur aliquip do anim occaecat quis mollit id laborum Lorem consectetur commodo. Officia nisi Lorem veniam officia consectetur proident duis anim ullamco sunt enim nostrud. Laboris ad eu et esse sit nisi.\r\nNulla proident eu duis sunt nostrud minim laboris fugiat nisi pariatur occaecat. Et cupidatat mollit laborum ipsum sint ea amet enim aliqua. Exercitation eiusmod eu labore tempor mollit id commodo amet magna.\r\n", - "address": "3 Fayette Street", - "city": "Noxen", - "state": "Marshall Islands", - "zip": 85920, - "country": "Namibia", - "email": "trudynewton@scentric.com", - "phone": "(873) 577-2869", - "color": "rgb(219,169,181)" - }, - { - "index": 149, - "name": "Oconnor Chan", - "first": "Beasley", - "last": "Larson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/elamyr/73.jpg", - "boolean": true, - "guid": "1f90bd42-2c77-42fe-aa6b-fa4cd66676e6", - "integer": 10, - "date": "Fri Dec 30 1983 09:19:48 GMT-0800 (PST)", - "shortText": "adipisicing magna dolore", - "mediumText": "Commodo fugiat enim est minim. Amet quis amet mollit ipsum. Ex laboris eiusmod ut cillum nostrud sit excepteur qui est aliquip irure.", - "longText": "Laborum aliquip ullamco id irure anim esse nisi pariatur incididunt enim tempor. Sit voluptate aliquip non duis commodo. Dolor pariatur sunt ex nulla occaecat commodo ad minim minim eiusmod laborum consectetur. Veniam aute pariatur excepteur deserunt veniam voluptate tempor magna laborum minim consectetur officia consectetur. Enim aliquip incididunt dolor qui labore.\r\nAdipisicing fugiat commodo eiusmod cillum reprehenderit amet anim id. Aute laboris irure culpa est officia eiusmod esse minim ut irure ut. Nulla eu tempor nulla est eiusmod exercitation deserunt est. Nisi commodo amet sunt laborum non dolore sint eiusmod adipisicing officia elit ea occaecat.\r\nAdipisicing do ex aliqua aute ex nisi veniam excepteur consequat proident Lorem. Occaecat sit nisi amet occaecat consectetur id cillum dolore ad do laborum fugiat eiusmod. Cillum officia mollit qui non ad occaecat ea. Aliqua do pariatur culpa ullamco aliquip nisi enim tempor tempor ad quis nisi. Elit ipsum nisi nostrud magna excepteur sunt nisi excepteur ipsum nulla proident. Adipisicing mollit anim dolore eu mollit amet tempor.\r\n", - "address": "3 Sedgwick Street", - "city": "Wyoming", - "state": "Indiana", - "zip": 32307, - "country": "Paraguay", - "email": "beasleylarson@scentric.com", - "phone": "(816) 493-2742", - "color": "rgb(72,189,192)" - }, - { - "index": 150, - "name": "Cherry Barrett", - "first": "Jodie", - "last": "Logan", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/hmenchaca2/73.jpg", - "boolean": false, - "guid": "cf368c96-a982-4646-9b54-5fac8d17760e", - "integer": 86, - "date": "Tue Jun 30 2009 10:25:53 GMT-0700 (PDT)", - "shortText": "minim aliqua deserunt officia reprehenderit", - "mediumText": "Sunt ea eu occaecat aliqua.", - "longText": "Do anim id incididunt enim eiusmod quis sit id anim laboris proident. Fugiat nostrud dolore ex sit excepteur aliqua ex laborum ipsum deserunt mollit in laboris excepteur. Voluptate fugiat aliquip cillum sint magna voluptate labore veniam commodo deserunt excepteur. Nisi laborum commodo magna laborum ullamco ullamco est incididunt. Fugiat ex do pariatur reprehenderit velit pariatur proident. Laborum nulla laborum fugiat minim ut est voluptate elit reprehenderit.\r\nVelit enim enim ex eiusmod quis quis. Est minim adipisicing eu labore et dolor. Occaecat non laborum sint officia aliquip. Sint voluptate est incididunt ullamco anim duis cillum nostrud consectetur consequat amet quis labore. Ullamco eu amet eu est esse. Pariatur commodo incididunt dolore commodo sint consequat qui consectetur ea eu et. Amet quis non fugiat sint nostrud magna eiusmod incididunt ullamco.\r\nConsequat Lorem id ea consectetur cupidatat veniam adipisicing quis est proident eu quis. Labore magna ut esse amet qui non commodo exercitation. Adipisicing ut fugiat dolor sit ex sint mollit aute occaecat officia ipsum ut. Dolore consectetur laboris sint ex consectetur. Labore proident Lorem sunt sunt amet. Laboris ad in consectetur laboris nostrud culpa veniam pariatur esse adipisicing.\r\nIrure qui nostrud magna elit nulla velit consequat magna aliqua. Esse in consectetur velit laborum nostrud Lorem quis. Ipsum consectetur adipisicing sint adipisicing labore sit Lorem elit veniam nisi excepteur fugiat.\r\nAliqua ut qui enim sit nulla nulla nulla labore aliqua Lorem Lorem do. Voluptate id non pariatur aliquip eiusmod sit in nisi excepteur aliquip nostrud ut. Non id sunt Lorem nostrud cillum ad incididunt. Et aliquip ipsum Lorem deserunt magna do ullamco pariatur exercitation ad id anim in. Anim fugiat nostrud eu commodo velit. Aute labore est anim duis et minim qui non voluptate velit incididunt.\r\n", - "address": "3 Kenilworth Place", - "city": "Foxworth", - "state": "Tennessee", - "zip": 15225, - "country": "Macau", - "email": "jodielogan@scentric.com", - "phone": "(804) 506-3585", - "color": "rgb(200,139,149)" - }, - { - "index": 151, - "name": "Pennington Mccormick", - "first": "Georgette", - "last": "Clay", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dparrelli/73.jpg", - "boolean": false, - "guid": "c449450f-7ccb-4b65-9f9d-2b392e612960", - "integer": 15, - "date": "Tue Nov 10 1992 06:22:21 GMT-0800 (PST)", - "shortText": "adipisicing non officia", - "mediumText": "Dolore tempor qui cupidatat et velit ipsum ut officia.", - "longText": "Laboris nostrud cillum esse velit veniam non occaecat. Consequat pariatur reprehenderit qui culpa cupidatat fugiat ad amet irure non. Consequat magna laboris occaecat laborum est elit et magna voluptate cillum occaecat amet. Sit elit proident duis tempor nulla ullamco est qui nostrud. Duis non aliqua ea duis labore elit pariatur elit. Aliquip amet id ea aliqua.\r\nLorem Lorem exercitation eiusmod laboris culpa ipsum qui occaecat irure elit. Do occaecat reprehenderit pariatur non nisi magna nisi labore cupidatat anim proident quis ad ipsum. Non qui aute cupidatat irure dolor excepteur excepteur. Veniam eiusmod non nulla ex amet in minim non dolore excepteur anim. Ipsum non magna minim ea consequat officia et eu velit do. Aliqua veniam dolor officia incididunt occaecat. Ipsum est magna non fugiat mollit sunt consectetur veniam dolore id proident exercitation exercitation consectetur.\r\n", - "address": "2 Blake Avenue", - "city": "Haring", - "state": "Palau", - "zip": 47253, - "country": "Mauritania", - "email": "georgetteclay@scentric.com", - "phone": "(941) 573-3108", - "color": "rgb(166,137,160)" - }, - { - "index": 152, - "name": "Freda Coffey", - "first": "Rice", - "last": "Savage", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/okansurreel/73.jpg", - "boolean": true, - "guid": "0645d81f-1761-4eb4-b3ec-5c83f1d37a29", - "integer": 84, - "date": "Sun May 07 1978 23:30:05 GMT-0700 (PDT)", - "shortText": "deserunt voluptate officia consequat magna", - "mediumText": "Adipisicing esse tempor proident irure dolore eu sit.", - "longText": "Exercitation cupidatat voluptate exercitation quis nulla laborum. Tempor elit elit est commodo commodo ipsum elit quis minim ut cupidatat aliqua. Elit officia enim occaecat nisi fugiat nulla qui quis. Nisi cillum ullamco eu proident mollit velit.\r\n", - "address": "4 Ludlam Place", - "city": "Dotsero", - "state": "Virginia", - "zip": 28698, - "country": "Ghana", - "email": "ricesavage@scentric.com", - "phone": "(885) 508-3868", - "color": "rgb(209,117,128)" - }, - { - "index": 153, - "name": "Robin Merrill", - "first": "Harrington", - "last": "Simpson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lwilsonsmith/73.jpg", - "boolean": false, - "guid": "13382562-593b-4d3d-8633-025dec9ff8d2", - "integer": 71, - "date": "Sun Jul 15 1973 12:02:34 GMT-0700 (PDT)", - "shortText": "ad", - "mediumText": "Incididunt est minim non mollit amet est. Id nulla fugiat in pariatur nisi non aliqua deserunt cillum fugiat labore occaecat. Laborum Lorem laborum sit esse amet veniam. Occaecat exercitation anim consectetur nisi.", - "longText": "Anim nisi ex sint laboris incididunt id mollit sunt voluptate laboris qui sunt ad aliqua. Consectetur et esse aliqua in esse cupidatat pariatur ea nulla cillum ea. Exercitation commodo consectetur do quis aute officia est exercitation tempor nisi. Ut mollit Lorem anim cupidatat tempor aute consequat labore Lorem do enim reprehenderit.\r\nLorem magna tempor incididunt aliqua in magna Lorem. Fugiat qui minim est excepteur dolore laboris non consequat. Ullamco consequat eiusmod et sint aliquip et in anim.\r\nSunt incididunt nostrud nulla cillum veniam laborum proident exercitation occaecat incididunt nulla cillum. Labore exercitation in ea aliquip est anim cillum aliqua dolore aliqua adipisicing dolore. Ex et qui sint mollit nisi id aliqua nostrud nostrud eiusmod dolore ut proident qui.\r\nExcepteur cillum ea est eu ad eu exercitation commodo non amet in sint. Amet esse proident consequat elit consequat in laboris ea quis. Duis cillum do dolore sit culpa cillum irure enim tempor qui consectetur magna. Anim cillum esse cillum labore mollit reprehenderit. Sint consequat aliqua in id labore in adipisicing est non sit. Laborum esse voluptate proident excepteur occaecat.\r\n", - "address": "2 Duffield Street", - "city": "Soham", - "state": "Wyoming", - "zip": 36147, - "country": "Moldova", - "email": "harringtonsimpson@scentric.com", - "phone": "(920) 448-3636", - "color": "rgb(166,121,227)" - }, - { - "index": 154, - "name": "Petty Olsen", - "first": "Mcleod", - "last": "Oliver", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/klimmka/73.jpg", - "boolean": true, - "guid": "f4ae116d-6e1a-45dc-a540-636907772467", - "integer": 43, - "date": "Tue May 07 1991 17:32:07 GMT-0700 (PDT)", - "shortText": "proident laborum irure", - "mediumText": "Culpa laborum laboris adipisicing irure commodo.", - "longText": "Culpa incididunt dolore minim laboris eu fugiat occaecat esse cupidatat excepteur exercitation. Est quis Lorem mollit deserunt quis dolore sunt. In laboris ullamco nisi culpa velit deserunt nisi cupidatat irure adipisicing. Veniam in cupidatat irure reprehenderit mollit ut laboris esse consectetur. Ipsum dolore aliquip mollit nulla magna officia. Eiusmod est culpa eiusmod nostrud adipisicing reprehenderit proident adipisicing do velit nisi et ea do. Ut aute officia esse in ad magna voluptate magna tempor mollit labore consequat quis.\r\nUt ut cupidatat et velit magna aliquip nostrud aute nulla deserunt reprehenderit. Ex consequat labore mollit est officia sint esse labore. Consectetur nulla dolor cupidatat ad irure sint anim ea dolor ullamco ex. Amet pariatur ex reprehenderit amet sit minim eu ullamco enim commodo sunt occaecat cillum id.\r\nEnim elit nostrud exercitation qui. Laboris consequat enim cillum quis aliquip officia sint laborum nisi in reprehenderit aute velit. Duis nisi excepteur mollit nisi duis. Aliquip elit laboris anim fugiat minim. Adipisicing minim excepteur sunt ea irure velit qui voluptate commodo.\r\n", - "address": "4 Malta Street", - "city": "Irwin", - "state": "Colorado", - "zip": 85637, - "country": "Costa Rica", - "email": "mcleodoliver@scentric.com", - "phone": "(805) 533-2119", - "color": "rgb(190,184,203)" - }, - { - "index": 155, - "name": "Misty Hardy", - "first": "Barber", - "last": "Boone", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/m_kalibry/73.jpg", - "boolean": true, - "guid": "9c45bc8a-25cf-4c5b-8b71-30364fcf1924", - "integer": 43, - "date": "Sun Oct 16 1994 17:51:06 GMT-0700 (PDT)", - "shortText": "magna", - "mediumText": "Exercitation nulla aliquip deserunt dolore nisi.", - "longText": "Minim exercitation sint laborum nulla. Amet sunt aliquip veniam pariatur est ex qui proident mollit est. Fugiat do est elit mollit dolore enim labore aliquip tempor consectetur fugiat culpa et labore. Do anim enim incididunt sit excepteur dolore quis commodo ea reprehenderit sit eiusmod. Labore sint deserunt laborum esse deserunt voluptate sint consequat culpa duis proident. Excepteur enim ipsum minim enim enim elit nulla duis dolore reprehenderit amet enim. Sunt ea esse veniam nostrud aliquip Lorem sunt ex exercitation dolor officia ullamco.\r\nConsectetur proident magna sit est enim magna exercitation elit pariatur excepteur laborum id. Mollit nostrud est excepteur consequat aliqua ea irure. Deserunt velit dolore incididunt exercitation.\r\nLabore anim minim dolor excepteur officia est est in magna minim. Laboris pariatur aute elit esse esse ipsum eiusmod sit esse tempor voluptate irure quis adipisicing. Ea Lorem consectetur irure magna tempor ullamco eu esse magna sit Lorem mollit enim tempor. Do qui consequat dolore est sint aliquip ullamco reprehenderit ut et incididunt. Fugiat non est proident aute.\r\nSunt deserunt consequat anim aliqua aliquip minim ullamco in consectetur. Nisi fugiat cillum pariatur duis in magna pariatur eu nisi ea est esse sunt in. Occaecat proident tempor excepteur cillum.\r\nCupidatat laborum ex commodo excepteur deserunt quis nulla amet labore cupidatat. Enim ipsum id laborum duis anim nulla ex dolor eu officia incididunt aute laboris mollit. Dolore laboris do laborum magna amet minim ea eu eiusmod. Deserunt duis laboris nostrud qui.\r\n", - "address": "3 Clark Street", - "city": "Suitland", - "state": "Utah", - "zip": 21043, - "country": "El Salvador", - "email": "barberboone@scentric.com", - "phone": "(828) 457-2049", - "color": "rgb(233,144,205)" - }, - { - "index": 156, - "name": "Tessa Ward", - "first": "Janie", - "last": "Bailey", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dhoot_amit/73.jpg", - "boolean": false, - "guid": "fa4f8583-7893-484e-a2fa-3daeb6c18ffc", - "integer": 38, - "date": "Thu Jun 19 1975 01:08:42 GMT-0700 (PDT)", - "shortText": "ex proident", - "mediumText": "Esse cupidatat duis non ullamco dolor aliquip aute tempor voluptate. Dolore cillum voluptate nulla eiusmod sint dolor minim consectetur.", - "longText": "Sunt occaecat officia aliqua nostrud incididunt est nisi laborum. Labore qui do sint dolore nisi qui sunt fugiat dolor Lorem adipisicing voluptate. Aliqua culpa dolor dolore nulla culpa labore duis sint ex.\r\n", - "address": "2 Wilson Street", - "city": "Rowe", - "state": "Idaho", - "zip": 55794, - "country": "Oman", - "email": "janiebailey@scentric.com", - "phone": "(949) 462-3512", - "color": "rgb(159,233,70)" - }, - { - "index": 157, - "name": "Wilda Booker", - "first": "Ramsey", - "last": "Kemp", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/actionsmile/73.jpg", - "boolean": false, - "guid": "53cfead6-8964-4112-84a9-ab158fff3aef", - "integer": 66, - "date": "Sun Jun 03 2007 03:34:39 GMT-0700 (PDT)", - "shortText": "ex id", - "mediumText": "Esse veniam laborum enim exercitation nisi ut duis elit incididunt consequat. Amet anim non proident commodo. Voluptate ex irure ex occaecat veniam velit.", - "longText": "Nisi aliqua id ad et sunt esse ad sunt. Quis irure velit anim aute consequat dolore eu sunt est proident commodo magna irure. Minim ullamco ex duis sint nisi nulla occaecat quis. Dolor dolore est anim aute qui fugiat in veniam incididunt Lorem ad sint qui sit.\r\nOfficia est ullamco laborum duis eu reprehenderit do excepteur Lorem pariatur sit consectetur excepteur deserunt. Sit magna laborum nulla exercitation et ex laboris est incididunt minim. Ipsum cupidatat sint minim do commodo minim ea laboris ea occaecat ut exercitation qui anim. Reprehenderit voluptate sit voluptate occaecat commodo. Adipisicing nisi ipsum eiusmod exercitation non. Nostrud ad incididunt laboris fugiat veniam esse ex laboris enim.\r\nElit fugiat minim nostrud in proident ex nisi ea eiusmod sint adipisicing anim reprehenderit culpa. Exercitation anim do id ad. Nulla esse aliquip sint qui occaecat excepteur irure incididunt dolor. Aliquip commodo veniam laborum enim quis enim dolor laboris excepteur. Laborum consequat tempor reprehenderit elit velit magna pariatur officia nostrud tempor quis elit laboris pariatur. Id consequat reprehenderit in dolor aliquip enim officia occaecat et labore labore.\r\n", - "address": "2 Denton Place", - "city": "Hartsville/Hartley", - "state": "Arkansas", - "zip": 66806, - "country": "Belgium", - "email": "ramseykemp@scentric.com", - "phone": "(856) 582-2727", - "color": "rgb(83,54,244)" - }, - { - "index": 158, - "name": "Owens Bowman", - "first": "Tyson", - "last": "Bowers", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/craftified/73.jpg", - "boolean": true, - "guid": "77abfb3a-ed05-4caf-bf96-82e827a650f0", - "integer": 14, - "date": "Wed Mar 28 1990 07:53:40 GMT-0800 (PST)", - "shortText": "qui ullamco pariatur incididunt", - "mediumText": "Laborum pariatur sit pariatur veniam aliqua sint exercitation esse.", - "longText": "Occaecat nostrud sint nisi reprehenderit. Irure est enim esse irure dolor eu pariatur aute ea dolor id nulla. Adipisicing culpa elit adipisicing velit elit cillum sint nisi et deserunt eu.\r\nAd anim fugiat amet commodo do anim ea adipisicing irure ad aliquip cupidatat deserunt. Nulla consequat ut sit consectetur ea non ut aliqua. Nulla nisi sit anim incididunt cillum laborum. Quis deserunt velit ullamco esse non do eu aliquip aliqua consequat quis. Occaecat in in et occaecat proident commodo aliqua mollit magna elit mollit adipisicing elit aute. Consectetur culpa exercitation cillum aliqua cillum proident pariatur enim ut ea amet. Voluptate adipisicing enim esse laborum elit duis consequat labore sunt officia adipisicing adipisicing.\r\nEt magna commodo aute duis ipsum et exercitation eiusmod quis do ipsum. Tempor adipisicing incididunt deserunt eu adipisicing id anim Lorem est. Elit proident esse sunt tempor eiusmod dolor Lorem irure mollit. Qui sit proident duis quis magna qui. Tempor id velit fugiat elit duis nostrud velit id amet velit minim deserunt laboris aute.\r\nAliqua voluptate minim elit consectetur laborum ex proident. Commodo minim tempor veniam duis veniam irure sint do aliqua ut reprehenderit velit ut sunt. Ea nostrud irure Lorem est officia ea esse ad. Ipsum fugiat voluptate irure consequat veniam quis commodo fugiat.\r\nPariatur commodo ex anim nostrud consectetur tempor. Ipsum minim Lorem nostrud elit voluptate ullamco eu labore ipsum Lorem. Excepteur magna ea tempor deserunt eu aliquip pariatur excepteur. Minim fugiat proident quis incididunt laboris. Est nisi esse consectetur pariatur.\r\n", - "address": "4 Canda Avenue", - "city": "Crayne", - "state": "Delaware", - "zip": 12406, - "country": "Kyrgyzstan", - "email": "tysonbowers@scentric.com", - "phone": "(951) 408-3515", - "color": "rgb(163,140,145)" - }, - { - "index": 159, - "name": "Violet Salazar", - "first": "Roy", - "last": "Rosa", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/aleksitappura/73.jpg", - "boolean": true, - "guid": "dd706aa0-2c9a-4b30-8ada-4c21111ff80c", - "integer": 60, - "date": "Wed Jun 24 1998 10:59:00 GMT-0700 (PDT)", - "shortText": "cillum", - "mediumText": "Amet aute amet occaecat enim cupidatat excepteur mollit et aute fugiat. In labore Lorem elit mollit aliquip est adipisicing excepteur ullamco. Velit reprehenderit magna et minim exercitation duis laborum ut consectetur minim. Enim duis adipisicing nostrud ea esse occaecat reprehenderit anim Lorem exercitation anim consequat sint non. Nisi duis occaecat excepteur consequat ullamco et nostrud laboris fugiat elit pariatur sit consequat mollit.", - "longText": "Est veniam irure excepteur aliquip excepteur aliqua fugiat. Labore aliquip anim fugiat est mollit dolor aute incididunt duis. Quis exercitation eiusmod laboris ullamco velit dolor deserunt cillum eiusmod ea. Excepteur velit ullamco reprehenderit fugiat laborum quis velit.\r\nCupidatat adipisicing irure cillum esse non ullamco incididunt amet adipisicing nisi. Consequat enim excepteur voluptate magna laborum incididunt in do incididunt duis. Minim qui Lorem velit incididunt cillum sunt quis aute nulla dolore pariatur labore ipsum. Amet in non amet et cillum duis exercitation aliqua et. Velit et voluptate excepteur amet anim deserunt mollit eu. Lorem commodo proident labore elit mollit cillum ad et et quis. Magna sint ut proident nisi duis.\r\nVoluptate ad dolor incididunt ex esse enim deserunt incididunt commodo esse irure laboris labore. Occaecat ad deserunt do et. Fugiat do sint nulla incididunt elit nulla est nulla et fugiat nulla nostrud in. Consectetur aute et nulla excepteur tempor do ut Lorem. Consequat magna qui adipisicing eiusmod irure amet laboris ea Lorem eu ut deserunt consectetur do.\r\nConsequat sunt incididunt sit voluptate proident minim anim. Aute est adipisicing occaecat officia cupidatat Lorem labore officia nulla culpa non elit ipsum. Commodo amet amet id enim cupidatat amet. Anim minim duis deserunt veniam sit sint sint ullamco magna.\r\n", - "address": "3 Royce Street", - "city": "Leroy", - "state": "Federated States Of Micronesia", - "zip": 13161, - "country": "Swaziland", - "email": "royrosa@scentric.com", - "phone": "(805) 581-2201", - "color": "rgb(150,213,255)" - }, - { - "index": 160, - "name": "Laurel Harvey", - "first": "Yvonne", - "last": "Foster", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nicollerich/73.jpg", - "boolean": true, - "guid": "1fb04afe-2620-4b3d-bf7d-c0ae6504d91a", - "integer": 27, - "date": "Sun May 20 1973 10:47:10 GMT-0700 (PDT)", - "shortText": "sit officia", - "mediumText": "Lorem laboris sit dolore nulla est enim eu eu. Enim fugiat officia elit cillum fugiat nostrud nostrud aute non aliquip laborum culpa amet fugiat. Elit esse laboris aliquip labore reprehenderit elit fugiat nostrud duis aliquip consequat.", - "longText": "Commodo elit amet sit irure id. Deserunt laboris commodo aute incididunt nisi esse occaecat irure non magna. Irure nisi nisi irure consequat dolore fugiat dolor reprehenderit veniam qui cupidatat ipsum. Cillum sint in ut quis ullamco eu ut laborum exercitation reprehenderit culpa. Consectetur dolor duis exercitation irure et eiusmod.\r\n", - "address": "3 Matthews Court", - "city": "Chesterfield", - "state": "Guam", - "zip": 42757, - "country": "Slovenia", - "email": "yvonnefoster@scentric.com", - "phone": "(981) 600-2987", - "color": "rgb(131,169,121)" - }, - { - "index": 161, - "name": "Mills Cruz", - "first": "Lydia", - "last": "Trevino", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mrmartineau/73.jpg", - "boolean": false, - "guid": "cd0f0296-ec14-4221-a846-ca3bf425bbbc", - "integer": 86, - "date": "Sun Feb 10 2002 20:01:40 GMT-0800 (PST)", - "shortText": "est dolore pariatur", - "mediumText": "Duis non quis tempor enim non sunt mollit esse. Irure ipsum ea elit commodo aute dolore ad sint reprehenderit. Velit aute ad commodo sint nisi ipsum. Sunt ex nostrud laboris anim amet tempor exercitation laboris in commodo non excepteur. Ea duis cupidatat eu enim est veniam.", - "longText": "Amet anim eu fugiat amet. Non cillum veniam consectetur nulla proident eu minim enim irure et. Proident exercitation est laboris ullamco anim. Commodo consectetur nostrud labore irure.\r\nDolore sunt id mollit aliquip. Nulla ullamco sint eu et reprehenderit nulla nostrud officia sint. Culpa consequat qui nulla dolore aliquip ipsum aliqua occaecat. Et ea ad magna ipsum magna tempor. Aliquip laborum proident cillum ut aliquip irure minim ut ad nostrud aliquip. Id veniam duis aliqua fugiat aliquip amet tempor ut deserunt proident eu pariatur anim pariatur.\r\n", - "address": "3 Rutherford Place", - "city": "Jeff", - "state": "Pennsylvania", - "zip": 59522, - "country": "Mali", - "email": "lydiatrevino@scentric.com", - "phone": "(958) 545-3599", - "color": "rgb(58,191,253)" - }, - { - "index": 162, - "name": "Craft Gould", - "first": "Simon", - "last": "Durham", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kuldarkalvik/73.jpg", - "boolean": true, - "guid": "fddbf917-d75d-4698-8f07-cad884331664", - "integer": 58, - "date": "Sat Apr 02 1983 08:39:43 GMT-0800 (PST)", - "shortText": "excepteur", - "mediumText": "Magna tempor do quis est pariatur culpa aliqua tempor ipsum. Laborum velit irure qui nostrud aute non amet est consectetur esse deserunt ad elit. Eiusmod velit proident culpa labore anim velit ex.", - "longText": "Ad tempor excepteur id incididunt. Elit culpa dolor ullamco exercitation non minim proident ex ipsum. Dolore veniam sit non Lorem aute ipsum enim deserunt nostrud est labore. Amet minim ut magna pariatur. Velit qui ipsum irure excepteur eiusmod sint. Irure sit dolor deserunt do proident ex aliquip anim enim. Ipsum nulla sunt ex magna sunt et enim exercitation.\r\n", - "address": "4 Love Lane", - "city": "Weedville", - "state": "New Hampshire", - "zip": 37752, - "country": "Cyprus", - "email": "simondurham@scentric.com", - "phone": "(934) 533-3438", - "color": "rgb(168,60,232)" - }, - { - "index": 163, - "name": "Michelle Thomas", - "first": "Gretchen", - "last": "Carson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/erickmazer/73.jpg", - "boolean": true, - "guid": "f7385e18-ca3a-4a01-b518-4de10115efad", - "integer": 17, - "date": "Sun Mar 23 1980 04:08:07 GMT-0800 (PST)", - "shortText": "eiusmod officia ex", - "mediumText": "Officia ipsum in tempor amet fugiat sunt ex id ullamco anim pariatur. Sint eu ad consequat tempor mollit dolor est minim duis. Nulla esse amet dolore veniam exercitation aute velit laboris aute ex velit nostrud officia. Enim Lorem elit laboris culpa ut minim ut veniam enim aliqua dolor quis sunt consectetur.", - "longText": "Id esse dolor laborum magna reprehenderit ut culpa enim. Sit dolore aute culpa nisi. Nulla qui quis culpa nostrud duis sint proident mollit velit pariatur.\r\nIrure commodo consequat anim in sunt. Commodo nisi fugiat ullamco sunt excepteur cillum reprehenderit veniam dolor cillum proident exercitation pariatur. Adipisicing consectetur aliquip veniam nostrud ex qui duis amet non quis elit. Ad non consectetur pariatur occaecat occaecat tempor magna.\r\nCillum enim proident dolore dolore eiusmod consectetur consectetur eiusmod in dolor. Deserunt exercitation incididunt esse non excepteur laborum elit tempor deserunt et officia. Ut magna mollit occaecat anim irure nulla aliqua consequat minim. Officia qui mollit veniam do cillum non non. Enim fugiat nostrud fugiat velit exercitation ea. Sunt eu officia non laborum anim occaecat qui tempor eu consectetur ad ipsum dolor.\r\n", - "address": "2 Irwin Street", - "city": "Brandywine", - "state": "North Dakota", - "zip": 74057, - "country": "Georgia", - "email": "gretchencarson@scentric.com", - "phone": "(963) 572-3829", - "color": "rgb(206,131,97)" - }, - { - "index": 164, - "name": "Fowler Kirby", - "first": "Christi", - "last": "Rivas", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/guischmitt/73.jpg", - "boolean": true, - "guid": "1a236923-53b2-47df-88a0-9304e14dcc9c", - "integer": 4, - "date": "Tue Jul 06 1971 07:33:44 GMT-0700 (PDT)", - "shortText": "ut sunt incididunt ea", - "mediumText": "Enim ea excepteur nostrud id commodo do pariatur ipsum dolore excepteur incididunt. Id commodo id fugiat commodo incididunt sint laboris proident quis reprehenderit. Fugiat labore magna do in consequat cillum commodo sint laborum. Ex cillum sint dolor eiusmod dolore in voluptate voluptate ut reprehenderit.", - "longText": "Excepteur elit ad esse incididunt nulla in duis. Ut Lorem labore nulla aute ipsum occaecat esse voluptate enim in sit officia magna. Qui aliquip excepteur laborum esse nostrud et deserunt consectetur reprehenderit aliquip enim nulla. Eiusmod magna consequat sit officia aliquip laboris laborum aliquip non irure.\r\nIncididunt dolor officia exercitation sit sit tempor enim proident qui anim reprehenderit amet aliqua anim. Amet consectetur laboris occaecat labore aliquip veniam sunt do esse nostrud fugiat ex quis. Ex irure tempor laboris eiusmod qui id pariatur dolor tempor cillum et aute culpa aliqua.\r\n", - "address": "2 Clara Street", - "city": "Bladensburg", - "state": "Northern Mariana Islands", - "zip": 47563, - "country": "Djibouti", - "email": "christirivas@scentric.com", - "phone": "(934) 580-3784", - "color": "rgb(163,213,79)" - }, - { - "index": 165, - "name": "Coleen Alford", - "first": "Bobbie", - "last": "Wells", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mariosmaselli/73.jpg", - "boolean": false, - "guid": "a38427b2-d0ac-4dae-aae3-2c4504338bf7", - "integer": 72, - "date": "Fri Aug 23 1985 16:39:58 GMT-0700 (PDT)", - "shortText": "sit labore cupidatat nulla", - "mediumText": "Magna ullamco in nulla officia dolor in mollit labore proident nulla do officia dolor.", - "longText": "Enim mollit proident magna adipisicing laborum duis magna officia exercitation incididunt mollit. Id Lorem in nostrud sit ut est culpa. Nulla mollit cillum reprehenderit fugiat ipsum occaecat occaecat qui nostrud.\r\nExcepteur consectetur eu aliqua aliqua esse cupidatat do excepteur quis culpa officia culpa aute cupidatat. Lorem id officia irure cillum cupidatat duis duis enim officia duis nisi anim. Elit ipsum nulla aliqua magna dolore eiusmod veniam est laborum. Veniam laboris deserunt duis voluptate. Laborum est eu ullamco exercitation non commodo minim minim nostrud irure deserunt deserunt cupidatat.\r\n", - "address": "4 Lyme Avenue", - "city": "Orick", - "state": "South Dakota", - "zip": 76909, - "country": "Tokelau", - "email": "bobbiewells@scentric.com", - "phone": "(968) 545-3385", - "color": "rgb(144,250,135)" - }, - { - "index": 166, - "name": "Victoria Hull", - "first": "Velasquez", - "last": "Buck", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/m_ahmadyunus/73.jpg", - "boolean": false, - "guid": "f0102b51-dc32-496c-984f-1df5f9e71231", - "integer": 19, - "date": "Fri Jul 04 2003 19:23:27 GMT-0700 (PDT)", - "shortText": "occaecat reprehenderit nostrud cupidatat ullamco", - "mediumText": "Aute proident minim amet amet.", - "longText": "Dolor deserunt nulla ex occaecat. Pariatur consequat culpa ex nostrud. Pariatur laborum voluptate tempor do qui aliqua esse aliquip nisi aliquip aute. Deserunt sit ex cupidatat mollit mollit ipsum eiusmod.\r\nAliquip do ullamco pariatur elit. Qui aliqua pariatur excepteur minim aute anim consequat ipsum esse pariatur laboris eu dolore ea. Adipisicing velit cillum est deserunt ea magna laboris irure. Pariatur reprehenderit cupidatat aliqua laborum excepteur sunt eiusmod nulla. Consequat ex Lorem consequat eu laboris est cupidatat.\r\nCupidatat ea reprehenderit sint minim ipsum anim culpa Lorem enim elit proident quis cupidatat cillum. Elit est et cupidatat irure labore minim est. Dolor veniam consectetur commodo id in anim. Fugiat et qui ex aliquip magna fugiat excepteur id. Qui mollit non veniam excepteur. Lorem adipisicing anim ullamco excepteur officia proident ea.\r\n", - "address": "4 Vermont Street", - "city": "Klondike", - "state": "Alaska", - "zip": 29219, - "country": "San Marino", - "email": "velasquezbuck@scentric.com", - "phone": "(872) 448-3197", - "color": "rgb(113,227,172)" - }, - { - "index": 167, - "name": "Kimberly Allen", - "first": "Valencia", - "last": "Duran", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/anggit_pradito/73.jpg", - "boolean": true, - "guid": "8bfa6dca-8fd4-4050-b184-2e523d1bdc9e", - "integer": 59, - "date": "Thu Nov 29 2012 14:27:53 GMT-0800 (PST)", - "shortText": "non adipisicing aliqua aliquip", - "mediumText": "Dolor dolor ea sit id elit aute dolore. Commodo amet ut fugiat tempor in aliquip.", - "longText": "Sunt fugiat duis nulla laborum excepteur. Cupidatat consequat consectetur Lorem elit velit mollit cillum dolore duis culpa. Commodo elit adipisicing ut tempor proident reprehenderit. Excepteur laboris occaecat labore dolor enim in. Elit et sunt minim deserunt ex adipisicing sit Lorem deserunt sit eu amet dolore eiusmod. Dolor ullamco elit sint quis ex sunt consequat id est mollit aliqua cupidatat magna dolore. Adipisicing laborum cupidatat id deserunt eu velit Lorem aliquip aliquip amet minim culpa nulla ex.\r\nLaboris ipsum Lorem tempor labore anim fugiat quis velit. Sint sunt incididunt anim cupidatat eiusmod ea aute exercitation tempor Lorem. Nulla amet eu voluptate eu in ut veniam dolor elit ullamco. Labore elit eu id tempor esse. Incididunt cupidatat cillum do non amet ullamco cillum nulla Lorem. Mollit fugiat ea et sit veniam nulla qui duis laboris non magna irure consectetur dolor. Id eu officia mollit est dolore voluptate anim ex.\r\nIrure ipsum commodo reprehenderit labore et nulla. Sunt et nulla id commodo quis laboris ipsum irure elit ad officia. Aute Lorem anim dolore non est occaecat in esse quis duis.\r\n", - "address": "2 Judge Street", - "city": "Bedias", - "state": "Louisiana", - "zip": 39058, - "country": "Vanuatu", - "email": "valenciaduran@scentric.com", - "phone": "(933) 441-3632", - "color": "rgb(160,71,158)" - }, - { - "index": 168, - "name": "Gill Meadows", - "first": "Diann", - "last": "Fox", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/saschamt/73.jpg", - "boolean": true, - "guid": "a9cbf409-9e60-457a-a048-b16302e1615a", - "integer": 88, - "date": "Sat Oct 13 2001 11:08:26 GMT-0700 (PDT)", - "shortText": "quis ea et amet sint", - "mediumText": "Dolor reprehenderit duis nulla ea cupidatat sit cupidatat Lorem fugiat. Cupidatat laborum fugiat eu do incididunt id adipisicing aute laborum minim occaecat. Culpa pariatur culpa dolor anim ullamco sit proident Lorem ex sunt fugiat mollit proident elit. Culpa mollit nulla aute fugiat qui ad ut incididunt veniam dolor officia irure esse.", - "longText": "Occaecat do proident enim et. Dolore minim mollit eiusmod exercitation exercitation eu laborum laboris laborum ipsum eiusmod. Reprehenderit pariatur sint dolor consequat.\r\nElit consectetur enim aute sit culpa. Nostrud irure do et voluptate nostrud. Officia et magna occaecat nisi excepteur sit veniam ipsum ipsum eiusmod culpa. Id sunt excepteur culpa et. Eu sunt aute aliquip excepteur labore incididunt laborum cupidatat. Eu deserunt occaecat culpa Lorem aliquip excepteur cillum et esse est.\r\nAdipisicing non est voluptate anim proident tempor. Pariatur est eiusmod magna id consectetur consectetur nostrud in est id exercitation commodo minim nostrud. Aute esse veniam tempor sint sunt. Ut elit exercitation laborum voluptate voluptate. Id eu proident nostrud laborum exercitation elit commodo non aliquip quis irure.\r\nAnim quis eu sit qui esse deserunt ut. Officia voluptate deserunt cupidatat sint nostrud anim. Ipsum ut eiusmod ullamco irure exercitation aliqua incididunt in nostrud. Eu fugiat nulla esse deserunt et laboris consequat. Ipsum occaecat quis irure exercitation magna duis elit reprehenderit ad sunt cillum est do. Id qui ipsum dolor laboris commodo voluptate exercitation commodo. Laborum veniam culpa minim culpa eiusmod nulla est commodo dolor minim irure minim cupidatat.\r\nEx eu duis sit velit. Laborum excepteur nisi voluptate sunt adipisicing irure pariatur incididunt ullamco proident ea labore. Culpa velit occaecat ea pariatur esse amet proident nostrud cillum velit qui elit ullamco commodo. Pariatur ad qui ad in qui in est laborum enim incididunt qui. Commodo excepteur commodo veniam est Lorem veniam velit quis veniam incididunt laborum esse in proident. Id aliquip aliquip exercitation labore dolore in laboris nostrud enim.\r\n", - "address": "3 Poplar Avenue", - "city": "Day", - "state": "Missouri", - "zip": 72123, - "country": "Somalia", - "email": "diannfox@scentric.com", - "phone": "(862) 462-3513", - "color": "rgb(115,148,158)" - }, - { - "index": 169, - "name": "Peggy Sandoval", - "first": "Kathleen", - "last": "Ryan", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/anasnakawa/73.jpg", - "boolean": false, - "guid": "5c6b1295-b453-4328-a4f4-e137d434c520", - "integer": 52, - "date": "Sat Feb 04 1978 00:31:29 GMT-0800 (PST)", - "shortText": "esse laborum duis fugiat dolore", - "mediumText": "Reprehenderit quis ut incididunt laborum sint non culpa tempor. Sint irure voluptate consectetur irure amet.", - "longText": "Ipsum mollit nostrud tempor amet nostrud aliqua ea eiusmod. Consequat exercitation consectetur mollit qui reprehenderit. Incididunt irure deserunt deserunt eu ullamco non proident et velit. Adipisicing ea ad dolore aliquip sint qui ut. Eiusmod laboris cupidatat dolore aliquip ullamco cillum exercitation.\r\nEsse non fugiat ex culpa. Veniam aliquip amet elit qui culpa commodo duis. Ad officia culpa ut adipisicing aliqua adipisicing consequat non mollit. Quis exercitation aute exercitation esse duis do. Velit consectetur ipsum magna incididunt proident fugiat laborum aliqua irure occaecat sit. Excepteur aliquip qui est nostrud deserunt velit ullamco aute ipsum enim mollit deserunt. Consectetur velit velit Lorem exercitation laboris irure mollit sunt voluptate ex cupidatat non occaecat culpa.\r\nConsequat occaecat magna aliqua reprehenderit velit excepteur incididunt. Incididunt est ea ea proident consectetur excepteur non minim minim pariatur adipisicing deserunt ipsum. Reprehenderit amet non quis esse reprehenderit. Enim et elit Lorem id sit in culpa eiusmod aliquip ipsum.\r\nSunt sit aliquip ullamco laborum voluptate officia laborum nisi commodo deserunt sint. Sit nostrud sit eu nisi dolor sit voluptate duis exercitation. Eiusmod mollit nulla labore ea labore et labore tempor ad magna in sunt.\r\n", - "address": "2 Lake Avenue", - "city": "Hamilton", - "state": "Kentucky", - "zip": 57827, - "country": "Maldives", - "email": "kathleenryan@scentric.com", - "phone": "(868) 529-3500", - "color": "rgb(213,148,139)" - }, - { - "index": 170, - "name": "Julia Palmer", - "first": "Harrell", - "last": "Galloway", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/just_watt/73.jpg", - "boolean": true, - "guid": "8de12a66-7b83-4add-91a8-87d6b817555b", - "integer": 3, - "date": "Sat Oct 15 1994 03:18:04 GMT-0700 (PDT)", - "shortText": "elit occaecat", - "mediumText": "Veniam sunt elit id ad amet ut. Quis in reprehenderit qui amet mollit exercitation sint esse anim. Reprehenderit anim ex sint adipisicing dolor dolore quis.", - "longText": "Exercitation consequat incididunt amet ad nisi anim ipsum aliqua velit do excepteur laborum eiusmod veniam. Mollit do est adipisicing ipsum Lorem elit consequat sunt aliquip aliquip nisi enim incididunt. Reprehenderit adipisicing ea in aliquip consectetur non nostrud aliquip irure aliqua irure irure. Ad officia adipisicing nisi laboris non esse officia cillum voluptate proident magna minim ad voluptate. Eu aute dolore sit elit proident est id in. Esse eiusmod reprehenderit consequat labore proident incididunt est ut.\r\nOfficia non voluptate non quis fugiat deserunt consequat ullamco dolor et enim eu. Ullamco eu reprehenderit tempor Lorem aliqua amet duis ullamco laborum. Exercitation ad aliqua tempor cillum excepteur adipisicing Lorem velit.\r\nMinim ipsum proident labore esse duis adipisicing eu cillum nostrud tempor. Esse commodo enim officia amet dolore esse. Incididunt tempor labore sit culpa aliqua est ut do anim.\r\nVoluptate in sint eu sint culpa do aliqua incididunt ullamco consequat duis. Est esse dolore excepteur aute Lorem consequat enim nulla in nisi ex proident dolore. Ad velit eiusmod esse do minim commodo duis occaecat aute eiusmod adipisicing qui non nostrud.\r\nDolor do sit culpa amet irure occaecat nisi aliquip est ad. Dolor ullamco officia anim amet occaecat elit minim. Anim exercitation elit ipsum magna sit ut sunt aliqua. Do quis occaecat culpa mollit aute qui. Irure officia dolor cillum veniam esse. Exercitation sint fugiat sint sint in aliquip commodo magna mollit minim irure deserunt.\r\n", - "address": "2 Guider Avenue", - "city": "Tonopah", - "state": "American Samoa", - "zip": 59756, - "country": "Israel", - "email": "harrellgalloway@scentric.com", - "phone": "(824) 588-3680", - "color": "rgb(122,79,220)" - }, - { - "index": 171, - "name": "Luann Gates", - "first": "Gwendolyn", - "last": "Weaver", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/caiifr/73.jpg", - "boolean": false, - "guid": "f87dd269-a351-4ca6-864e-d1262763c0ed", - "integer": 35, - "date": "Wed Feb 26 1992 22:47:04 GMT-0800 (PST)", - "shortText": "nulla esse do consequat", - "mediumText": "Veniam cupidatat ut tempor amet. Cillum amet irure aliquip non.", - "longText": "Incididunt amet adipisicing eiusmod ipsum sit et aute voluptate veniam nostrud. Ea ex ullamco sint minim. Proident minim quis aute nulla minim nisi sunt. Incididunt sit irure duis exercitation anim deserunt sunt Lorem ex enim incididunt. Non et sint amet minim culpa fugiat ut esse. Dolor do commodo minim incididunt laborum do magna cillum commodo mollit consectetur labore id exercitation.\r\nNon fugiat Lorem enim cillum duis voluptate. Exercitation aliqua irure consequat amet sint occaecat aliqua sunt ea tempor ut reprehenderit. Occaecat pariatur duis adipisicing consequat. Amet sunt qui veniam mollit officia ea magna.\r\nEnim esse amet cillum mollit fugiat laborum Lorem. Consectetur anim labore dolor velit magna magna nisi dolore deserunt ad eu eu ex velit. Pariatur magna esse ipsum veniam ipsum sint tempor magna consectetur dolor eiusmod nulla eiusmod. Eiusmod veniam et ex incididunt ea sunt quis dolor ex. Laborum deserunt elit ullamco quis amet adipisicing magna eiusmod ad nostrud amet culpa sint eiusmod. Id Lorem occaecat in velit ex cupidatat aliquip dolore reprehenderit laboris. Consequat nostrud magna non occaecat ut laboris aliqua amet anim.\r\nNisi veniam id anim minim elit elit veniam. Do id voluptate mollit duis adipisicing mollit officia do enim eu consectetur. Culpa duis ad tempor laborum proident sint commodo aliquip sunt occaecat eu culpa. Eu ullamco exercitation excepteur aute voluptate mollit ex.\r\n", - "address": "2 Claver Place", - "city": "Moraida", - "state": "Minnesota", - "zip": 14017, - "country": "Reunion", - "email": "gwendolynweaver@scentric.com", - "phone": "(926) 595-3032", - "color": "rgb(170,147,167)" - }, - { - "index": 172, - "name": "Tyler Gardner", - "first": "Collins", - "last": "Warner", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/briandiazme/73.jpg", - "boolean": false, - "guid": "e9934a5e-c84e-4920-979e-2c6496359125", - "integer": 41, - "date": "Sat Jun 23 1990 16:08:31 GMT-0700 (PDT)", - "shortText": "esse velit commodo", - "mediumText": "Est consequat velit elit exercitation irure laboris commodo do cillum proident commodo. Laborum fugiat aute Lorem reprehenderit exercitation.", - "longText": "Sint enim est amet nulla anim consequat duis nostrud id excepteur ut. Dolor cillum sit do duis nostrud laborum. Id mollit enim id ad nostrud culpa reprehenderit mollit enim exercitation minim fugiat. Eiusmod esse aliqua aute aliquip ullamco aute est in in veniam cillum ipsum aute. Laboris tempor mollit non veniam officia velit ea. Laboris cillum fugiat id consectetur labore proident est. Fugiat mollit ullamco do fugiat nulla incididunt commodo nisi aliqua consectetur voluptate.\r\nIncididunt velit quis mollit laborum esse occaecat id. Aute ut tempor et commodo magna anim consequat reprehenderit tempor proident eu. Et deserunt aliquip est fugiat anim nostrud exercitation Lorem sint labore non nisi. Magna nostrud do culpa aliqua consequat proident in sunt consequat qui Lorem sunt magna culpa. Id velit in consequat pariatur irure cupidatat ipsum eiusmod Lorem fugiat et.\r\nEiusmod proident amet cupidatat ea et. Veniam minim consectetur dolor officia aliquip exercitation culpa. Sunt et tempor magna laboris sunt aliquip excepteur ea nostrud aliqua. Laboris pariatur commodo tempor in dolor aliqua fugiat elit deserunt tempor esse.\r\n", - "address": "2 Dearborn Court", - "city": "Avoca", - "state": "Hawaii", - "zip": 49354, - "country": "Taiwan", - "email": "collinswarner@scentric.com", - "phone": "(803) 510-3885", - "color": "rgb(192,229,65)" - }, - { - "index": 173, - "name": "Ruthie Mcintyre", - "first": "Rowena", - "last": "Sellers", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/productpeopletv/73.jpg", - "boolean": true, - "guid": "e7f9037c-1145-4e46-a079-2b461a550ad8", - "integer": 21, - "date": "Mon Aug 25 2014 19:53:08 GMT-0700 (PDT)", - "shortText": "occaecat velit", - "mediumText": "Lorem ut adipisicing deserunt quis fugiat aute.", - "longText": "Exercitation quis exercitation magna dolor elit cillum sit sint. Officia consequat dolore ex proident exercitation labore qui aliquip. Exercitation adipisicing sit culpa ullamco laborum.\r\nIpsum veniam amet occaecat incididunt officia consectetur ullamco fugiat quis dolor incididunt. Ea deserunt id ipsum labore exercitation enim officia aliquip labore anim eiusmod. In sint dolore cupidatat sint fugiat culpa ipsum veniam sunt sit consequat nisi labore nulla.\r\n", - "address": "3 Varanda Place", - "city": "Drummond", - "state": "Alabama", - "zip": 57942, - "country": "Cuba", - "email": "rowenasellers@scentric.com", - "phone": "(969) 592-2871", - "color": "rgb(181,199,125)" - }, - { - "index": 174, - "name": "Nguyen Stewart", - "first": "Robert", - "last": "Russell", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/darioalbini/73.jpg", - "boolean": false, - "guid": "28ef7fb5-18c4-4dd2-927c-3ddc4d9199c4", - "integer": 75, - "date": "Wed Sep 06 1972 12:28:29 GMT-0700 (PDT)", - "shortText": "in minim qui veniam nulla", - "mediumText": "Esse laboris aliquip ex est deserunt ut minim Lorem Lorem non proident minim. Est et ad Lorem laborum laboris nostrud tempor eu magna. Incididunt sint mollit ullamco sint sunt fugiat voluptate ut nostrud.", - "longText": "Irure est cillum duis pariatur et ut. In laborum Lorem velit ad anim voluptate sit amet laboris consectetur officia aliquip. Do ex proident id ullamco velit incididunt in proident ut duis amet sunt voluptate nisi. Et nostrud eiusmod laboris ipsum ad. Officia anim laborum commodo et excepteur quis consectetur et labore amet commodo ea consectetur esse. Laboris ea sit officia pariatur est enim irure consequat non consectetur commodo mollit reprehenderit incididunt.\r\n", - "address": "3 Pierrepont Street", - "city": "Ferney", - "state": "North Carolina", - "zip": 89796, - "country": "Turkey", - "email": "robertrussell@scentric.com", - "phone": "(833) 512-2279", - "color": "rgb(198,215,99)" - }, - { - "index": 175, - "name": "Acosta Herman", - "first": "Becker", - "last": "Le", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_pandajs/73.jpg", - "boolean": false, - "guid": "fc0ce1b2-66dd-4e0a-8a4d-192b563ab3af", - "integer": 17, - "date": "Mon Jul 25 2011 16:50:08 GMT-0700 (PDT)", - "shortText": "veniam officia ipsum ad do", - "mediumText": "Mollit do laborum aliquip elit occaecat qui do. Ullamco mollit velit pariatur amet exercitation.", - "longText": "Excepteur voluptate irure proident enim nulla eiusmod anim enim nisi id et incididunt velit. Id anim excepteur excepteur aliquip elit ex. Voluptate id veniam sunt occaecat consequat ad aliquip sunt aliquip esse aute tempor. Mollit cupidatat reprehenderit et eu excepteur sint amet elit ad veniam nostrud laboris. Voluptate sint amet anim cupidatat velit ut incididunt ex laborum ea. Et minim pariatur laboris nostrud cillum aute Lorem ipsum adipisicing dolore nulla magna. Incididunt incididunt occaecat consequat proident sint sit mollit qui nulla sint.\r\n", - "address": "2 Moore Place", - "city": "Cavalero", - "state": "Connecticut", - "zip": 55194, - "country": "Solomon Islands", - "email": "beckerle@scentric.com", - "phone": "(968) 520-2781", - "color": "rgb(220,63,86)" - }, - { - "index": 176, - "name": "Lucy England", - "first": "Wilma", - "last": "Spencer", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/wellnext/73.jpg", - "boolean": false, - "guid": "912d4bf7-1356-4736-9560-45d3c9f56f54", - "integer": 99, - "date": "Fri Jun 24 1977 07:55:22 GMT-0700 (PDT)", - "shortText": "qui exercitation reprehenderit", - "mediumText": "Ipsum voluptate ex cupidatat sunt sit fugiat amet quis irure ex. Esse esse deserunt magna non occaecat ullamco aliqua do laboris ad exercitation elit mollit enim. Enim irure commodo enim excepteur officia officia esse tempor fugiat nisi cillum. Reprehenderit nulla sunt exercitation est sunt laboris aliquip excepteur in eu anim.", - "longText": "In et labore id deserunt do non dolor reprehenderit nisi magna veniam veniam eiusmod. Deserunt Lorem non adipisicing non pariatur. Est cillum sint proident sint proident eu aliqua commodo. Pariatur qui laboris eiusmod amet mollit ullamco amet. Voluptate cillum quis aliquip elit ad et nulla sit et mollit irure voluptate. Et in ullamco in adipisicing deserunt. Tempor consectetur exercitation mollit incididunt et sunt minim.\r\n", - "address": "4 Milford Street", - "city": "Wacissa", - "state": "South Carolina", - "zip": 79777, - "country": "Malawi", - "email": "wilmaspencer@scentric.com", - "phone": "(850) 473-3863", - "color": "rgb(73,237,50)" - }, - { - "index": 177, - "name": "Selena Beach", - "first": "Florence", - "last": "Charles", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/skylark64/73.jpg", - "boolean": false, - "guid": "ed115112-8db3-4cae-a08d-983100a10c85", - "integer": 88, - "date": "Wed Jun 19 1996 04:58:57 GMT-0700 (PDT)", - "shortText": "quis nulla", - "mediumText": "Duis dolor id et elit nostrud eiusmod labore eiusmod incididunt eu ex enim magna exercitation. Velit do elit pariatur proident.", - "longText": "Eiusmod qui voluptate do commodo exercitation ex proident laborum ullamco. Laboris ad officia dolore duis minim. In proident ullamco et duis qui ullamco exercitation. Exercitation est consectetur minim exercitation commodo sunt officia exercitation laboris. Laborum elit in incididunt quis et pariatur adipisicing.\r\nLorem esse ea sit nostrud adipisicing laborum nostrud tempor commodo adipisicing. Et officia dolore do ex sit in laborum officia occaecat laboris duis irure voluptate. Labore mollit reprehenderit ullamco ut velit voluptate. Amet adipisicing Lorem officia laboris enim nostrud velit non velit culpa et Lorem. Deserunt qui pariatur occaecat sit cillum cupidatat deserunt dolore ut anim labore in ut. Minim velit do dolor deserunt duis. Velit ad aliquip exercitation nulla voluptate dolore exercitation velit laborum.\r\n", - "address": "2 Chester Avenue", - "city": "Faxon", - "state": "Michigan", - "zip": 60214, - "country": "Samoa", - "email": "florencecharles@scentric.com", - "phone": "(854) 538-2605", - "color": "rgb(142,199,175)" - }, - { - "index": 178, - "name": "Leon Reilly", - "first": "Trevino", - "last": "Schneider", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lisekyle/73.jpg", - "boolean": false, - "guid": "f0c018ba-4648-46ab-bd0f-3d92f2370954", - "integer": 92, - "date": "Fri May 13 1983 05:44:49 GMT-0700 (PDT)", - "shortText": "sunt", - "mediumText": "Mollit velit id proident ex pariatur ea.", - "longText": "Enim ex tempor ad esse cupidatat officia aute. Ea duis Lorem culpa voluptate duis deserunt pariatur tempor Lorem aliqua nostrud et Lorem minim. Et consequat adipisicing esse labore. Sunt consequat cupidatat proident magna dolore. Labore irure magna est do sint et labore pariatur laboris tempor sint aute tempor. Quis nulla non qui eiusmod Lorem nulla.\r\nUllamco cillum magna exercitation reprehenderit cupidatat officia nostrud veniam laborum ad adipisicing. Sint laborum sit enim nostrud sint proident consectetur. Culpa reprehenderit ullamco est eiusmod qui non eiusmod elit deserunt nisi exercitation velit occaecat quis. Commodo est qui velit irure eiusmod officia.\r\nDolor Lorem officia qui sint duis nostrud esse qui magna qui. Duis ullamco irure labore ut mollit. Deserunt in laboris proident culpa sit eu.\r\nAnim minim excepteur id reprehenderit laboris adipisicing Lorem non. Aliqua anim anim cillum aliqua excepteur elit ut. Tempor aliqua qui esse nulla fugiat minim proident dolore ea officia culpa reprehenderit ullamco cupidatat.\r\n", - "address": "2 Barbey Street", - "city": "Spelter", - "state": "Maine", - "zip": 33752, - "country": "United Kingdom", - "email": "trevinoschneider@scentric.com", - "phone": "(919) 571-3870", - "color": "rgb(199,207,59)" - }, - { - "index": 179, - "name": "Margie Caldwell", - "first": "Drake", - "last": "Frost", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/zumwalt/73.jpg", - "boolean": false, - "guid": "1c2ba2bb-24b8-4fa7-8755-0fd72201985e", - "integer": 26, - "date": "Thu Oct 27 1977 23:39:23 GMT-0700 (PDT)", - "shortText": "aliqua labore id excepteur", - "mediumText": "Sit in irure voluptate ex sint cillum sint duis cillum.", - "longText": "Reprehenderit eiusmod adipisicing officia consectetur ullamco. Aliqua reprehenderit esse do labore mollit mollit non tempor anim anim incididunt. Id reprehenderit amet laborum do.\r\nEa eu nisi do tempor exercitation exercitation aliquip cupidatat ut veniam esse aliqua nostrud ea. Laboris in laborum nostrud proident duis elit fugiat in labore. Cupidatat exercitation culpa elit sit do fugiat. Id eiusmod est ut deserunt tempor quis. Est sint sunt occaecat exercitation aliquip mollit minim aute non esse. Ex officia Lorem qui eu adipisicing occaecat do. Aute cupidatat incididunt velit ut cillum id proident labore id pariatur mollit fugiat.\r\nIncididunt deserunt cillum officia eiusmod enim elit laboris. Labore elit excepteur adipisicing eiusmod consectetur proident exercitation pariatur. Lorem labore excepteur cillum duis ea adipisicing fugiat adipisicing sit cupidatat. Culpa proident proident aute nostrud ad occaecat velit in. Labore non ad cillum adipisicing quis sit. Occaecat minim cupidatat reprehenderit veniam est incididunt sunt ut aliquip adipisicing.\r\nQui sunt exercitation aute sint pariatur. Id do do dolore sunt ad sit velit exercitation proident adipisicing proident ea qui. In quis excepteur incididunt in. Enim adipisicing laborum nulla nisi commodo incididunt non ipsum ex sint aliquip. Elit labore ex ullamco veniam id.\r\n", - "address": "4 Wortman Avenue", - "city": "Cetronia", - "state": "Kansas", - "zip": 73451, - "country": "French Guiana", - "email": "drakefrost@scentric.com", - "phone": "(993) 559-2273", - "color": "rgb(240,117,178)" - }, - { - "index": 180, - "name": "Floyd Whitehead", - "first": "Monique", - "last": "Barron", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/the_winslet/73.jpg", - "boolean": true, - "guid": "5505bea5-acce-4d67-b22e-850228beae52", - "integer": 30, - "date": "Wed Jul 15 2009 01:03:18 GMT-0700 (PDT)", - "shortText": "id eu", - "mediumText": "Quis et sit amet reprehenderit esse ex velit. Id Lorem ea irure consectetur deserunt excepteur. Consectetur reprehenderit qui eu pariatur proident do adipisicing consectetur nulla amet nulla ea laboris magna. Occaecat ut commodo non esse aliqua est velit amet deserunt sit enim adipisicing in. Mollit aliquip nostrud nisi esse.", - "longText": "In enim consectetur aliqua tempor do sint fugiat officia ea proident esse cillum. Lorem magna ipsum amet aute deserunt. Pariatur aliqua dolor veniam in. Consequat dolore et cillum ea mollit esse dolor. Ipsum aute officia pariatur id do fugiat nisi incididunt mollit labore voluptate deserunt duis.\r\nNulla in sit incididunt nisi ad laborum tempor ipsum irure aliquip aliquip id nostrud officia. Pariatur fugiat consequat excepteur aliqua enim. Sunt minim dolore elit esse nostrud. Laboris eiusmod officia incididunt Lorem ullamco non amet ut in veniam cupidatat. Id nisi cupidatat ea esse exercitation fugiat minim sit ex exercitation.\r\nExercitation non reprehenderit ipsum aliqua quis. Qui labore mollit voluptate aliqua nostrud ex id sit pariatur nostrud veniam in qui. In consequat ullamco commodo deserunt magna Lorem labore ullamco velit deserunt veniam cupidatat elit. Dolor fugiat ea in magna dolor occaecat aliquip cillum id. Ipsum amet veniam dolore incididunt nostrud cupidatat velit velit exercitation cupidatat ad enim do deserunt. Mollit officia sit anim elit. Veniam ipsum nulla culpa occaecat non mollit.\r\nAute ex quis est et laborum dolore duis velit. Dolor laborum Lorem occaecat consectetur eu deserunt cillum ea culpa culpa est enim culpa. Ut veniam do anim consectetur sit id. Officia fugiat ad dolor veniam eu deserunt eiusmod proident enim veniam nulla. Exercitation proident aute esse fugiat veniam cupidatat. Proident non incididunt duis eiusmod officia nulla elit eiusmod adipisicing est.\r\nIn qui aliqua nisi eiusmod proident exercitation ad in sit elit minim amet. Culpa est Lorem Lorem irure exercitation et dolore. Qui sit dolor velit do laborum voluptate excepteur qui nostrud.\r\n", - "address": "4 Pershing Loop", - "city": "Floriston", - "state": "Iowa", - "zip": 14548, - "country": "Latvia", - "email": "moniquebarron@scentric.com", - "phone": "(944) 573-3509", - "color": "rgb(215,200,175)" - }, - { - "index": 181, - "name": "Langley Kidd", - "first": "Lowe", - "last": "Luna", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kikillo/73.jpg", - "boolean": false, - "guid": "5934f42f-1f3e-41a3-8465-8453fbd97653", - "integer": 87, - "date": "Sat Jul 27 2002 15:35:16 GMT-0700 (PDT)", - "shortText": "ex laborum", - "mediumText": "Proident excepteur duis dolor nostrud aute in aliquip excepteur exercitation laboris fugiat consectetur amet.", - "longText": "Elit ea pariatur aliqua minim enim voluptate est voluptate dolore eiusmod mollit dolor voluptate nisi. Qui et ex fugiat irure velit voluptate. Deserunt sunt enim et dolor dolor occaecat magna est aliquip officia tempor minim et. Ex aliquip duis labore nisi amet deserunt et quis non elit consequat et fugiat.\r\nAd est irure veniam aliqua sint ad. Cillum quis ex tempor ex irure proident duis id pariatur ipsum irure. Id ea ad excepteur enim voluptate consectetur id. Non cupidatat do in tempor aute commodo in magna. Non irure minim Lorem sunt ex nulla cillum.\r\nEx commodo proident tempor incididunt velit velit mollit sint excepteur quis adipisicing nostrud laboris irure. Commodo proident nisi enim ipsum nostrud ullamco elit aliquip velit fugiat eiusmod. Ipsum do qui nostrud amet ullamco et adipisicing aliquip voluptate voluptate laborum. Laborum ex aute tempor esse velit ut.\r\nVeniam esse cillum ut cupidatat reprehenderit minim eu elit minim velit aute consequat tempor tempor. Nisi et aute ea elit veniam sit dolore proident minim. Ut tempor aute dolor aliquip. Do consequat tempor nulla tempor labore duis eu commodo aliquip commodo id fugiat tempor enim.\r\n", - "address": "3 Caton Place", - "city": "Stevens", - "state": "Vermont", - "zip": 87533, - "country": "Netherlands Antilles", - "email": "loweluna@scentric.com", - "phone": "(996) 562-3285", - "color": "rgb(206,231,90)" - }, - { - "index": 182, - "name": "Eunice Pace", - "first": "Margaret", - "last": "Mueller", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/hndragnwn/73.jpg", - "boolean": true, - "guid": "3f9b897f-6674-476f-9dd8-31c86f3401c7", - "integer": 98, - "date": "Mon Jan 19 1970 12:04:31 GMT-0800 (PST)", - "shortText": "exercitation eu ipsum ipsum cillum", - "mediumText": "Ullamco ullamco velit sit et elit et excepteur laboris reprehenderit.", - "longText": "Officia cupidatat consectetur tempor amet. Excepteur aute elit do eiusmod aute voluptate quis est voluptate occaecat ut pariatur. Aliqua incididunt cillum proident aute quis deserunt. Voluptate do magna nulla reprehenderit ea eiusmod minim aliquip do est laboris. Velit consequat ut veniam ut cillum dolore tempor nostrud eu. Non Lorem Lorem non nostrud minim commodo minim qui non. Velit aliqua duis occaecat dolor laborum sint est culpa nulla elit occaecat reprehenderit consectetur culpa.\r\nSunt non id labore Lorem do Lorem enim. Adipisicing deserunt excepteur est ipsum nulla deserunt in. Proident tempor dolore sint ullamco proident velit. Nisi Lorem enim ullamco elit culpa occaecat labore officia consequat enim. Eu consectetur ad anim incididunt sit excepteur exercitation cupidatat enim proident irure sunt non cupidatat. Id aute cupidatat irure pariatur laboris nostrud. Est enim commodo quis anim incididunt nostrud proident occaecat anim.\r\n", - "address": "4 Erasmus Street", - "city": "Watrous", - "state": "Nebraska", - "zip": 91145, - "country": "Colombia", - "email": "margaretmueller@scentric.com", - "phone": "(881) 442-3317", - "color": "rgb(248,53,68)" - }, - { - "index": 183, - "name": "Hess Ross", - "first": "Knowles", - "last": "Drake", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/fc987/73.jpg", - "boolean": false, - "guid": "b34d191e-f646-4fd0-8e89-ed523ceb5127", - "integer": 73, - "date": "Tue Jul 11 2006 08:13:58 GMT-0700 (PDT)", - "shortText": "quis reprehenderit amet", - "mediumText": "Id ut laboris aliquip dolor aliqua incididunt cillum dolore qui aliqua. Tempor officia esse aliquip irure cillum ipsum esse ea ea. Aliqua pariatur laboris cillum do ad ea pariatur nostrud amet amet do.", - "longText": "Tempor mollit exercitation sit elit duis magna et veniam nisi ex. Sit amet veniam velit commodo ad proident duis exercitation consequat eiusmod officia pariatur. Tempor occaecat consequat aliquip cupidatat veniam ad qui enim pariatur.\r\nIpsum dolor occaecat in minim sint eu. Non duis anim quis pariatur qui adipisicing sunt laborum sunt cillum exercitation sit. Reprehenderit amet elit labore ad culpa excepteur. Cillum commodo eu dolore dolor ea velit id. Eu Lorem nostrud esse elit aliqua in deserunt elit exercitation sunt sunt aliquip eu amet. Cupidatat incididunt aliquip anim proident magna velit in veniam tempor.\r\nEx non ex irure exercitation sint ad commodo commodo. Exercitation eiusmod qui est labore non velit velit velit voluptate id. Nisi est velit ut do velit quis ipsum voluptate. In consequat esse tempor cillum fugiat ex. Ut est mollit consequat duis esse non magna incididunt eu laboris velit incididunt ullamco. Adipisicing enim sint amet velit do irure. Exercitation labore deserunt pariatur est exercitation veniam laborum ad.\r\n", - "address": "2 Indiana Place", - "city": "Lawrence", - "state": "Florida", - "zip": 64631, - "country": "Wallis and Futuna Islands", - "email": "knowlesdrake@scentric.com", - "phone": "(995) 490-2638", - "color": "rgb(50,148,194)" - }, - { - "index": 184, - "name": "Terri Mayo", - "first": "Rachael", - "last": "Sharp", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lettershoppe/73.jpg", - "boolean": false, - "guid": "c14b363a-8dae-4656-908d-6fe410ad32e5", - "integer": 98, - "date": "Sat Mar 10 1973 06:27:24 GMT-0800 (PST)", - "shortText": "occaecat consequat minim enim aute", - "mediumText": "Officia ex pariatur velit sint officia sunt deserunt nisi. Exercitation sit commodo sit quis dolor esse pariatur.", - "longText": "Eiusmod culpa voluptate eiusmod excepteur pariatur mollit enim irure ad commodo. Irure reprehenderit ea officia eu ullamco occaecat ad exercitation aute reprehenderit est adipisicing adipisicing est. Exercitation pariatur cillum exercitation laborum sint pariatur do mollit ipsum cillum exercitation. Non duis aliquip veniam occaecat fugiat cupidatat Lorem eu.\r\n", - "address": "3 Jamison Lane", - "city": "Hayden", - "state": "New Jersey", - "zip": 21158, - "country": "Bouvet Island", - "email": "rachaelsharp@scentric.com", - "phone": "(920) 458-2923", - "color": "rgb(224,219,109)" - }, - { - "index": 185, - "name": "Lorie Stephenson", - "first": "Vaughan", - "last": "Hardin", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/akashsharma39/73.jpg", - "boolean": true, - "guid": "3277febc-0447-4b3c-ac7a-f98c0a22432d", - "integer": 43, - "date": "Sat Mar 30 1974 11:23:57 GMT-0700 (PDT)", - "shortText": "qui pariatur voluptate eiusmod elit", - "mediumText": "Tempor mollit fugiat ex quis excepteur.", - "longText": "Elit eiusmod eu irure nostrud labore enim. Incididunt esse aliquip amet in nulla mollit amet nostrud est mollit. Eiusmod cupidatat et esse ea quis sunt ex. Ut duis fugiat laboris eiusmod excepteur. Occaecat do incididunt mollit officia. Enim ea sunt ad amet labore enim esse nulla occaecat eiusmod.\r\n", - "address": "2 Truxton Street", - "city": "Caroleen", - "state": "Wisconsin", - "zip": 98807, - "country": "Niue", - "email": "vaughanhardin@scentric.com", - "phone": "(954) 576-2820", - "color": "rgb(76,217,135)" - }, - { - "index": 186, - "name": "Jacqueline Estes", - "first": "Gale", - "last": "Hutchinson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/fgin69/73.jpg", - "boolean": false, - "guid": "07994b68-513f-4c9d-a92d-edfc3ade4825", - "integer": 17, - "date": "Sun Jul 16 2000 16:12:37 GMT-0700 (PDT)", - "shortText": "sunt laboris tempor ut do", - "mediumText": "Nulla consequat dolore enim velit excepteur. Qui ipsum elit occaecat ea in. Laborum irure ipsum consectetur ullamco quis consectetur enim. Dolore laboris nisi excepteur nostrud. Aliqua ipsum nostrud velit labore tempor nisi eu.", - "longText": "Adipisicing ipsum exercitation culpa consectetur voluptate aliqua proident fugiat ut laborum ex deserunt. Et ullamco non sint tempor do officia cillum ex quis enim dolor aliqua. Cupidatat id incididunt irure ad quis commodo ut laborum labore. Dolore cillum reprehenderit adipisicing nulla qui in ea cillum enim excepteur quis sit sint non. Duis reprehenderit consequat eu eiusmod id.\r\nQui velit aliquip fugiat reprehenderit eiusmod mollit ex commodo mollit anim occaecat excepteur duis. Eiusmod nisi et in ex laborum. Nulla officia nulla nostrud ullamco proident ut ipsum excepteur. Occaecat et quis est eu aliqua. Labore enim esse ullamco est laborum nulla incididunt fugiat cillum pariatur sit et. Sunt irure duis laborum id ea Lorem sint.\r\nExercitation anim duis ad minim eiusmod eiusmod dolor mollit enim qui laborum ad aliquip magna. Reprehenderit veniam exercitation minim incididunt excepteur exercitation tempor. Pariatur do esse consequat do. Voluptate do pariatur qui aliqua laboris aute consequat eu reprehenderit dolore. Laborum amet in veniam sit. Adipisicing sint labore officia deserunt nulla do cillum aliquip ipsum minim anim.\r\nDolore sit pariatur dolore proident est minim irure do qui laborum laboris. Sunt quis nisi consequat tempor est ullamco amet sunt dolor. Minim voluptate cupidatat eu pariatur aliquip esse minim voluptate commodo esse. Nulla non minim eu sunt nostrud aliquip. Elit ullamco do sunt mollit labore officia quis proident fugiat amet labore. Culpa elit nisi incididunt ipsum anim non. Cupidatat exercitation laboris pariatur reprehenderit culpa.\r\n", - "address": "3 Columbia Street", - "city": "Clayville", - "state": "Washington", - "zip": 55909, - "country": "Sweden", - "email": "galehutchinson@scentric.com", - "phone": "(853) 433-2272", - "color": "rgb(234,208,240)" - }, - { - "index": 187, - "name": "Linda Steele", - "first": "Weber", - "last": "Barlow", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pdugan19/73.jpg", - "boolean": false, - "guid": "39847382-b9bd-4f9d-823a-9a8ff0b6a952", - "integer": 57, - "date": "Sun May 24 1992 04:47:58 GMT-0700 (PDT)", - "shortText": "aliqua ut", - "mediumText": "Ea excepteur consequat Lorem aute. Id nisi est ad ipsum enim. Consequat elit do mollit cillum. Ea voluptate tempor laborum sit. Culpa ex officia mollit et in ullamco.", - "longText": "Culpa deserunt velit enim amet excepteur. Labore anim laboris aliquip nisi amet ad. Irure duis cillum exercitation labore do deserunt ullamco nulla ea do mollit. Et ut dolor cillum laboris ex dolor.\r\n", - "address": "2 Bragg Court", - "city": "Rehrersburg", - "state": "Oregon", - "zip": 16492, - "country": "Bolivia", - "email": "weberbarlow@scentric.com", - "phone": "(816) 478-3071", - "color": "rgb(253,113,243)" - }, - { - "index": 188, - "name": "Humphrey Rocha", - "first": "Watson", - "last": "Martin", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bluehaus/73.jpg", - "boolean": true, - "guid": "bf36a00a-c264-4e8c-b2cf-37b558a6331d", - "integer": 56, - "date": "Wed Feb 18 1981 11:26:50 GMT-0800 (PST)", - "shortText": "ad sint", - "mediumText": "In ea ea aute est aute. Ex fugiat ullamco duis deserunt quis eiusmod non do quis enim officia ea consequat. Lorem cupidatat nisi officia irure veniam consectetur commodo cupidatat et laborum exercitation exercitation veniam proident. Enim minim non velit dolore esse aute ullamco officia cillum ea deserunt magna ut.", - "longText": "Aliqua laborum non officia aute deserunt deserunt voluptate sunt sint do do culpa. Adipisicing anim qui id elit consectetur ad veniam nostrud magna. Culpa dolor culpa irure minim elit occaecat eiusmod.\r\nDo dolore cillum incididunt reprehenderit laboris proident mollit occaecat laborum eu. Tempor aute aliqua aute Lorem velit sunt sint ad ad. Eu minim adipisicing duis nulla nulla et excepteur occaecat. Consectetur aliqua excepteur reprehenderit eu reprehenderit mollit veniam adipisicing ut culpa consectetur enim. Nisi consequat sit fugiat anim ut anim. Culpa et occaecat consectetur reprehenderit. Id sunt mollit labore ipsum eiusmod est adipisicing dolor esse.\r\n", - "address": "3 Main Street", - "city": "Chumuckla", - "state": "Illinois", - "zip": 25127, - "country": "Barbados", - "email": "watsonmartin@scentric.com", - "phone": "(870) 511-2367", - "color": "rgb(180,100,61)" - }, - { - "index": 189, - "name": "Carter Berry", - "first": "Copeland", - "last": "Fernandez", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/angeloffonline/73.jpg", - "boolean": true, - "guid": "c95f429b-45ba-4d2e-9fb0-990a65f0f1ed", - "integer": 94, - "date": "Mon Sep 10 1973 19:09:26 GMT-0700 (PDT)", - "shortText": "nostrud elit", - "mediumText": "Sint ullamco ipsum commodo nisi duis exercitation reprehenderit minim id elit ipsum incididunt id minim.", - "longText": "Ea et officia cillum labore consectetur proident fugiat veniam. Adipisicing proident quis nulla duis consectetur culpa deserunt. Aliquip ea non incididunt nisi. Culpa irure adipisicing est aute excepteur sunt laboris minim officia. Minim dolor incididunt deserunt aliqua qui velit laborum. Sint eu sunt ut ea ut cillum tempor excepteur sit voluptate.\r\nLorem nostrud sit dolor dolor consectetur labore anim ad excepteur ipsum eu sunt consequat dolore. Velit irure officia esse mollit voluptate aliquip fugiat enim ipsum minim occaecat. Consectetur tempor irure sint quis irure anim. Nulla esse adipisicing nulla eiusmod dolor eu id dolor ipsum qui nostrud. In excepteur eiusmod ipsum commodo eu labore duis irure adipisicing in deserunt commodo.\r\nExcepteur ullamco ex est occaecat sit Lorem eu. Amet pariatur dolor reprehenderit irure dolor et culpa. Laboris cupidatat est esse veniam qui consectetur eu eu irure. Exercitation eiusmod ipsum ipsum non esse consectetur nostrud enim nostrud eu adipisicing culpa. Lorem aliquip duis tempor proident do aliqua cillum. Esse aliquip fugiat veniam aliquip magna pariatur.\r\n", - "address": "3 Cooke Court", - "city": "Brethren", - "state": "West Virginia", - "zip": 48527, - "country": "Haiti", - "email": "copelandfernandez@scentric.com", - "phone": "(916) 428-2390", - "color": "rgb(225,220,78)" - }, - { - "index": 190, - "name": "Mcgee Price", - "first": "Christian", - "last": "Brown", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/yalozhkin/73.jpg", - "boolean": true, - "guid": "25386af0-7fef-4915-afcb-e29e3996bfc1", - "integer": 99, - "date": "Fri Jun 10 1977 22:37:49 GMT-0700 (PDT)", - "shortText": "velit aliqua qui", - "mediumText": "Proident velit et consequat qui veniam et eiusmod officia sint laborum Lorem sit exercitation. Voluptate dolore qui excepteur eu tempor et irure ea id consectetur. Nostrud ullamco quis nulla laboris labore qui ullamco occaecat veniam. Ut excepteur tempor in non cillum deserunt dolor velit magna excepteur est ullamco. Officia quis adipisicing aliquip Lorem consectetur veniam labore non exercitation.", - "longText": "Anim officia fugiat aliquip deserunt enim culpa commodo. Amet mollit labore tempor adipisicing cupidatat aute sunt incididunt sit duis cupidatat fugiat nisi labore. Eiusmod non sunt commodo laborum ex cillum anim eu mollit. Duis in duis cillum commodo officia qui Lorem duis do exercitation amet occaecat.\r\nNisi culpa magna dolore ut tempor amet commodo. Nisi ut mollit et sint id aliquip Lorem quis ipsum non sunt. Ad adipisicing qui ad nulla cillum id culpa. Occaecat duis magna deserunt dolor adipisicing ex in Lorem dolor occaecat enim laboris cupidatat eiusmod.\r\nDo velit occaecat cupidatat labore ut qui et ipsum pariatur excepteur aliqua sunt ad. Ut eu eu consectetur ut laborum aute culpa. Consequat qui irure ad magna qui exercitation nostrud ex ullamco Lorem consequat. Esse sunt do sunt consectetur tempor.\r\n", - "address": "4 Withers Street", - "city": "Aberdeen", - "state": "Mississippi", - "zip": 14870, - "country": "Heard and McDonald Islands", - "email": "christianbrown@scentric.com", - "phone": "(981) 586-2200", - "color": "rgb(211,68,198)" - }, - { - "index": 191, - "name": "Browning Harrison", - "first": "Wanda", - "last": "Dorsey", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/solid_color/73.jpg", - "boolean": false, - "guid": "18e2fdcf-33bc-447e-9d9e-95cd992f3b01", - "integer": 99, - "date": "Fri Apr 12 1996 19:22:55 GMT-0700 (PDT)", - "shortText": "nostrud", - "mediumText": "Minim velit ex mollit officia deserunt mollit.", - "longText": "In enim culpa ea quis occaecat Lorem voluptate voluptate. Ad occaecat dolore cillum exercitation laborum. Amet ex labore in sint dolor Lorem eiusmod elit voluptate magna. Dolore quis dolore ullamco velit. Occaecat incididunt ex laboris nulla sit amet sit. Proident nisi elit exercitation sunt incididunt ipsum ex laboris aliquip elit id fugiat id. Sint nulla irure labore mollit reprehenderit irure cupidatat exercitation.\r\nProident aliqua aliquip irure reprehenderit aliquip et nulla in ea do cillum. Anim esse culpa adipisicing do reprehenderit aliquip elit sunt fugiat velit aliqua excepteur. Irure nulla nulla elit esse qui magna qui adipisicing eu consectetur ea. Sint magna labore esse occaecat ad est. Voluptate ex sit anim ipsum consequat est aliquip quis. Quis eu anim officia reprehenderit dolore veniam labore.\r\nEiusmod quis cillum nisi officia. Consequat laborum amet enim deserunt occaecat cillum. Labore cupidatat eu sit officia ea.\r\nCillum mollit occaecat dolor labore dolore sint laborum irure commodo magna id officia. Ullamco minim reprehenderit nulla ea non commodo. Amet eu fugiat officia quis labore pariatur. Duis anim ad eiusmod magna ad voluptate dolore anim anim exercitation reprehenderit cillum labore. Nulla esse nisi ipsum cillum. Nulla incididunt consequat ut elit aute et Lorem ea enim do sint id proident. Voluptate et magna dolor deserunt sint laborum eu.\r\nAliquip laborum labore exercitation culpa duis sunt magna consequat excepteur. Sunt incididunt ad consectetur ullamco sit esse et fugiat mollit irure adipisicing. Ipsum enim enim sunt est. Ipsum officia incididunt dolore aute elit elit fugiat est commodo esse. Sunt minim et cillum excepteur deserunt. In id mollit quis et occaecat cupidatat irure velit dolor reprehenderit in commodo ad velit. Excepteur est et magna elit fugiat amet cupidatat ea anim.\r\n", - "address": "4 Irving Street", - "city": "Winesburg", - "state": "Rhode Island", - "zip": 33983, - "country": "United States", - "email": "wandadorsey@scentric.com", - "phone": "(857) 473-2997", - "color": "rgb(188,149,116)" - }, - { - "index": 192, - "name": "Beth Clark", - "first": "Stuart", - "last": "Potter", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/panghal0/73.jpg", - "boolean": false, - "guid": "885c3d9f-8acb-4fa6-82d0-3b1f8066fa8e", - "integer": 90, - "date": "Fri Sep 25 1998 20:49:56 GMT-0700 (PDT)", - "shortText": "ipsum voluptate qui est", - "mediumText": "Elit proident mollit qui reprehenderit labore minim aliquip ut ea dolore aliquip qui. Commodo sint non minim pariatur veniam.", - "longText": "Aliqua deserunt officia pariatur fugiat dolore magna pariatur exercitation elit esse elit. Ad enim consectetur nisi est amet irure aliqua nulla labore consequat cillum. In cupidatat laborum deserunt aliqua veniam mollit veniam nulla ex.\r\nEiusmod sint nostrud duis ad minim magna sit consequat commodo nostrud do laborum mollit id. Consequat exercitation dolore mollit exercitation aute id. Veniam minim laboris Lorem enim aliqua nulla et. Aliquip dolor officia duis cupidatat enim ad velit ad. Fugiat irure Lorem sunt deserunt consectetur id cillum elit. Nulla officia commodo enim labore sit dolore ipsum ad sint nisi consectetur esse.\r\n", - "address": "4 Dewitt Avenue", - "city": "Somerset", - "state": "Georgia", - "zip": 62165, - "country": "Jamaica", - "email": "stuartpotter@scentric.com", - "phone": "(868) 542-3034", - "color": "rgb(93,172,196)" - }, - { - "index": 193, - "name": "Neal Mcgee", - "first": "Daisy", - "last": "Lucas", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/renettarenula/73.jpg", - "boolean": true, - "guid": "a86f246d-1555-4d68-b633-713d56a7357a", - "integer": 66, - "date": "Wed Jan 22 1975 14:12:25 GMT-0800 (PST)", - "shortText": "aliquip quis", - "mediumText": "Pariatur nostrud irure dolor ad et. Commodo tempor mollit nisi consequat officia ex exercitation.", - "longText": "Velit deserunt ipsum Lorem id laboris et laborum in. Aute ea consequat elit magna sit ad voluptate nostrud dolor pariatur labore ipsum mollit consectetur. Fugiat velit ipsum et aute elit. Aliqua Lorem ullamco ad mollit ex. Sint cupidatat esse minim exercitation. Laborum ipsum quis ut commodo proident elit et et. Duis excepteur ut sit duis cupidatat mollit mollit.\r\nVeniam pariatur minim duis esse est mollit exercitation esse enim. Esse aliqua labore velit minim qui cillum excepteur qui occaecat excepteur quis Lorem sint. Culpa sint do commodo pariatur reprehenderit et adipisicing. Dolore Lorem minim in pariatur nulla incididunt magna amet qui. Excepteur velit adipisicing cupidatat aliquip cupidatat consectetur adipisicing consequat fugiat eiusmod consectetur consequat. Ea laborum occaecat voluptate do.\r\nCommodo minim adipisicing cupidatat labore velit. Commodo eu officia sunt ea sit exercitation nisi quis fugiat non Lorem duis. Culpa adipisicing mollit aliqua dolore aute mollit veniam non qui occaecat sunt.\r\n", - "address": "3 Cadman Plaza", - "city": "Kula", - "state": "New Mexico", - "zip": 50567, - "country": "Sao Tome and Principe", - "email": "daisylucas@scentric.com", - "phone": "(922) 417-2649", - "color": "rgb(242,147,241)" - }, - { - "index": 194, - "name": "Wall Vasquez", - "first": "Kara", - "last": "Avery", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kevin_granger/73.jpg", - "boolean": true, - "guid": "4ca5b46e-7470-4364-8a00-55922d238841", - "integer": 2, - "date": "Sun Oct 27 2002 02:24:06 GMT-0800 (PST)", - "shortText": "consequat ut", - "mediumText": "Culpa id occaecat pariatur eu id adipisicing est non adipisicing nisi et nostrud eu voluptate. Reprehenderit sit adipisicing eiusmod ex excepteur occaecat Lorem consectetur. Mollit exercitation ex adipisicing culpa non ullamco aute aliqua laborum anim deserunt id. Est magna do Lorem Lorem Lorem officia ullamco in eiusmod ut.", - "longText": "Nostrud eu elit voluptate consequat nisi. Dolor qui consequat minim ea sit eiusmod duis aliquip ex. Labore aliquip culpa quis velit id fugiat. Veniam exercitation exercitation aliquip magna eiusmod ad cupidatat sint ullamco consequat pariatur est consequat deserunt. Dolore qui nostrud velit labore magna proident enim in aliquip velit. Mollit ullamco sunt ut do do reprehenderit nostrud do.\r\nConsequat eiusmod adipisicing qui exercitation do minim consequat deserunt non elit sint. Elit dolore ullamco nostrud duis fugiat minim mollit Lorem. Occaecat incididunt officia do tempor dolor velit excepteur laborum. Occaecat cillum aliquip cupidatat anim. Laborum nostrud occaecat irure qui. Id tempor nulla enim irure cillum non culpa non ea enim ad tempor.\r\nQui qui laborum aliquip irure ipsum excepteur do tempor est pariatur nisi. Enim tempor et cupidatat tempor pariatur officia excepteur aliqua. Culpa incididunt laborum ea cupidatat culpa reprehenderit occaecat. Qui do dolor officia aliqua fugiat quis est ex irure. Proident dolor proident dolore proident amet duis labore sunt enim.\r\nSit incididunt deserunt veniam et velit. Eu voluptate esse dolor ullamco nisi sint reprehenderit. Excepteur pariatur est eiusmod eiusmod irure nostrud aliqua aliqua anim. Elit nisi aliqua incididunt tempor dolor commodo eiusmod sit sit ea nostrud eiusmod adipisicing ad. Et occaecat non enim proident nostrud voluptate reprehenderit veniam do exercitation pariatur ut quis. Minim labore ea deserunt deserunt eiusmod anim irure aliquip irure qui sit tempor ad.\r\nSunt sint nulla duis cupidatat. Culpa Lorem eu Lorem eu enim veniam voluptate irure nostrud est ullamco proident non. Aliqua tempor adipisicing proident aliquip cillum do esse laboris. Voluptate eu sint pariatur velit nisi dolore.\r\n", - "address": "2 Clinton Avenue", - "city": "Konterra", - "state": "Arizona", - "zip": 98633, - "country": "Belarus", - "email": "karaavery@scentric.com", - "phone": "(870) 572-3252", - "color": "rgb(192,119,159)" - }, - { - "index": 195, - "name": "Booker Mcgowan", - "first": "Olga", - "last": "Tucker", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/maxsmeagol/73.jpg", - "boolean": true, - "guid": "06e837ae-b847-48ce-8b91-832435eb8867", - "integer": 72, - "date": "Sat May 02 2009 00:56:50 GMT-0700 (PDT)", - "shortText": "anim commodo exercitation", - "mediumText": "Elit id enim esse ad Lorem irure laboris in laborum dolore aliquip.", - "longText": "Deserunt eu aute cillum excepteur dolore do do enim fugiat veniam ad. Dolore dolor eu aliquip et. Culpa excepteur aliqua excepteur nisi id eiusmod Lorem eiusmod duis est proident dolor occaecat anim. Aliqua laboris in incididunt sint labore. Incididunt eiusmod quis nostrud occaecat fugiat do cupidatat eu ex reprehenderit nostrud ea proident. Ad reprehenderit consequat laborum eu elit qui occaecat. Quis non magna duis minim amet consequat sunt.\r\nEa consequat do ex qui laboris amet mollit amet nulla. Veniam in sit nisi ad pariatur nulla cillum et ea ad eiusmod. Tempor aliqua eu amet esse dolore nisi pariatur cillum in.\r\nLaborum in ipsum dolor fugiat. Nostrud consectetur nostrud proident aliqua veniam et esse. Occaecat culpa et adipisicing magna ea sint sit fugiat consectetur.\r\nUllamco amet pariatur ipsum duis incididunt laborum ad commodo. Voluptate laborum ea culpa esse nulla dolor reprehenderit duis ut laboris ullamco minim adipisicing aute. Commodo id ad dolor nulla non aliquip eiusmod sint tempor cillum enim.\r\n", - "address": "4 Monroe Place", - "city": "Waterloo", - "state": "Texas", - "zip": 94273, - "country": "Russian Federation", - "email": "olgatucker@scentric.com", - "phone": "(902) 400-3059", - "color": "rgb(136,215,127)" - }, - { - "index": 196, - "name": "Blankenship Henson", - "first": "Staci", - "last": "King", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jvhleb/73.jpg", - "boolean": false, - "guid": "c0bdad68-d176-4514-8d66-d4ae0ae03bdf", - "integer": 41, - "date": "Wed Jan 10 1990 09:56:54 GMT-0800 (PST)", - "shortText": "elit velit exercitation deserunt", - "mediumText": "Labore exercitation excepteur non incididunt. Et reprehenderit anim exercitation ipsum id eu eu irure magna et adipisicing occaecat quis.", - "longText": "Officia nulla cillum duis nostrud labore mollit eiusmod labore ut aliqua elit incididunt. Minim exercitation consequat non eiusmod sint magna voluptate incididunt ex consectetur labore sunt nulla anim. Commodo ipsum aute ipsum mollit veniam reprehenderit reprehenderit irure amet. Nisi voluptate esse consectetur cillum. In eu in duis culpa deserunt ea tempor elit. Nisi tempor fugiat pariatur irure.\r\nQuis ex sunt cupidatat anim aliqua aliquip tempor minim incididunt fugiat officia. Et sunt eiusmod eu culpa incididunt aute culpa. Excepteur Lorem ipsum dolore labore amet occaecat elit fugiat. Eiusmod velit aute occaecat sunt qui ad irure in do id consequat sunt amet cupidatat. Non dolor sunt elit velit excepteur anim deserunt ut occaecat culpa aute aute.\r\n", - "address": "2 Beach Place", - "city": "Slovan", - "state": "District Of Columbia", - "zip": 43413, - "country": "Croatia (Hrvatska)", - "email": "staciking@scentric.com", - "phone": "(964) 422-3068", - "color": "rgb(123,169,84)" - }, - { - "index": 197, - "name": "Essie Hoover", - "first": "Lourdes", - "last": "Mayer", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nbirckel/73.jpg", - "boolean": true, - "guid": "d4eca4a8-9d42-4800-9776-b3f2f858b3e5", - "integer": 7, - "date": "Wed Jul 02 1986 21:56:11 GMT-0700 (PDT)", - "shortText": "incididunt nisi minim id officia", - "mediumText": "Ex sint esse labore sit cillum cupidatat cupidatat consequat dolor aliquip elit sunt fugiat quis.", - "longText": "Minim veniam dolor tempor cupidatat nostrud dolore quis sint Lorem duis eiusmod consectetur. Incididunt irure consequat ipsum id cillum culpa qui ad magna nisi. Consequat quis adipisicing dolor consequat reprehenderit incididunt ipsum enim laborum duis. Dolor sit do ex magna do culpa dolor anim incididunt tempor nisi ipsum ex voluptate. Quis exercitation dolore voluptate veniam amet nostrud dolore consequat nulla quis anim amet. Veniam ut do incididunt culpa eiusmod proident in sint nostrud voluptate.\r\nVeniam sint excepteur laboris duis nostrud. Eiusmod commodo mollit est ex incididunt fugiat labore proident. Ea enim commodo non tempor non aliquip culpa non laborum. Anim veniam sit sunt adipisicing adipisicing ea cillum duis incididunt excepteur ut ad non ad. Ex in nulla exercitation laborum Lorem ex deserunt commodo esse dolore nostrud.\r\nOccaecat reprehenderit Lorem culpa tempor dolor et dolore nulla nostrud eiusmod dolor magna voluptate aliquip. Dolore consectetur exercitation proident aliquip cupidatat veniam ea ad anim nostrud enim nulla labore. Incididunt duis deserunt laborum mollit veniam irure est ad enim commodo eiusmod.\r\nCulpa consequat duis deserunt magna laborum magna amet eiusmod. Ut ipsum id aute duis reprehenderit. Nulla nisi sint mollit amet ex esse laborum nulla ullamco cupidatat nostrud. Enim consequat aute tempor veniam adipisicing aliqua laborum irure duis mollit Lorem eu ipsum quis. Dolor culpa est et reprehenderit occaecat. Amet ex ad do mollit sint mollit non culpa nisi laborum qui aliquip sit. Laborum officia ullamco pariatur non sit esse est sint duis reprehenderit laborum aute qui.\r\nLabore dolor occaecat anim deserunt anim duis Lorem incididunt anim amet amet ut eu dolore. Consequat commodo laborum ipsum id magna non occaecat adipisicing et non. Deserunt cupidatat culpa in reprehenderit mollit aliqua aute amet.\r\n", - "address": "2 Merit Court", - "city": "Curtice", - "state": "Virgin Islands", - "zip": 27446, - "country": "Indonesia", - "email": "lourdesmayer@scentric.com", - "phone": "(844) 447-3638", - "color": "rgb(56,235,218)" - }, - { - "index": 198, - "name": "Bridget Wilcox", - "first": "Danielle", - "last": "Delacruz", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/irida168/73.jpg", - "boolean": false, - "guid": "4072c5a4-5842-4c17-85c4-d9c472e32f5d", - "integer": 1, - "date": "Thu Mar 18 1993 10:26:24 GMT-0800 (PST)", - "shortText": "quis", - "mediumText": "Lorem in aliquip ullamco labore consequat elit nisi ex tempor. Enim exercitation cupidatat in laborum nulla.", - "longText": "Veniam ea qui pariatur laborum minim. Duis tempor commodo ad qui tempor est. Do enim incididunt Lorem elit proident ex nulla elit exercitation voluptate ex laborum ullamco deserunt. Ad voluptate mollit dolore sint exercitation anim laborum voluptate Lorem deserunt. Anim ullamco minim commodo non consequat est qui nostrud ullamco laboris mollit. Ipsum laborum anim ex labore laboris cillum cupidatat elit ex enim quis.\r\nAliquip anim ea fugiat aute nostrud occaecat culpa magna ut nisi ea tempor ex. Quis dolore aute cupidatat officia esse anim occaecat. Anim occaecat incididunt sit ea enim mollit consectetur aute anim. Voluptate sint et occaecat adipisicing eiusmod excepteur aliquip eu. Cillum enim et aliquip non cupidatat eu consequat voluptate culpa veniam esse. Commodo officia enim excepteur id cupidatat.\r\nSunt reprehenderit id voluptate deserunt irure veniam fugiat elit ipsum exercitation excepteur ut. Elit ut eu in Lorem reprehenderit reprehenderit aliqua duis dolor. Velit voluptate aute magna voluptate id do mollit enim nisi consequat veniam elit cupidatat et.\r\nEt sint adipisicing officia ipsum commodo do ea sunt anim. Laborum ullamco elit aute occaecat adipisicing exercitation labore nulla ipsum. Cupidatat sit eiusmod aliqua esse eu ullamco in. Laborum eiusmod excepteur ad magna exercitation occaecat amet ad sint ullamco aliquip excepteur. Nisi sit consequat laboris nulla consequat dolore fugiat. Lorem cupidatat adipisicing do esse nisi fugiat eu culpa fugiat ullamco quis elit in.\r\nMagna in cupidatat duis dolor quis cillum occaecat. Pariatur minim ipsum irure qui officia veniam incididunt adipisicing consectetur Lorem. Ex esse cillum ut sint minim. Esse ex excepteur id do culpa laboris nisi nisi non. Exercitation minim consectetur dolor aliqua culpa commodo dolor. Ut tempor sint mollit Lorem incididunt laborum laboris sit cupidatat ex esse. Enim amet sunt sit anim veniam fugiat ea mollit.\r\n", - "address": "4 Leonora Court", - "city": "Bradenville", - "state": "Puerto Rico", - "zip": 59719, - "country": "Nauru", - "email": "danielledelacruz@scentric.com", - "phone": "(952) 548-3787", - "color": "rgb(168,148,116)" - }, - { - "index": 199, - "name": "Mccarthy Fletcher", - "first": "Janis", - "last": "Fischer", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kevin_py/73.jpg", - "boolean": true, - "guid": "010c3410-51e3-409d-ae76-1ef43f546c53", - "integer": 21, - "date": "Thu Feb 27 2014 18:02:21 GMT-0800 (PST)", - "shortText": "non ullamco exercitation voluptate", - "mediumText": "Ea velit ullamco ullamco excepteur culpa est in nisi cillum amet deserunt quis laborum. Tempor in duis cupidatat proident.", - "longText": "Labore reprehenderit deserunt sint reprehenderit officia et culpa sunt exercitation velit ipsum cupidatat veniam. Cupidatat ut elit cillum cupidatat qui sit tempor veniam consequat labore dolor minim. Ad duis laboris ad voluptate ea non velit elit excepteur sint elit consectetur non. Velit tempor officia quis cillum duis et culpa voluptate ipsum.\r\nMinim labore nostrud deserunt ipsum est qui aliqua Lorem ullamco non nostrud. Reprehenderit cillum consectetur ex aute est dolor laboris minim aliqua aliqua elit aliqua. Sint pariatur nostrud enim qui do exercitation occaecat mollit anim mollit.\r\nUllamco ea adipisicing duis est consectetur enim. Cillum esse et enim duis qui quis est elit. Occaecat sunt cupidatat voluptate consectetur anim ut non deserunt veniam ullamco laboris cupidatat incididunt pariatur. Id consequat nisi non aliquip voluptate esse. Cupidatat fugiat anim anim id quis aliquip sint nisi fugiat sit. Ipsum voluptate do officia quis culpa nulla et.\r\nEt commodo ea irure aliquip consectetur dolore. Eu nostrud non ad tempor commodo. Est tempor aliquip nisi mollit tempor excepteur. Enim consectetur cillum laborum do anim labore deserunt culpa exercitation commodo dolore commodo dolore nulla. Laboris ex officia officia incididunt fugiat reprehenderit officia proident laborum qui consectetur eiusmod et. Aute adipisicing eiusmod do cupidatat id commodo. Deserunt nostrud officia nulla exercitation nostrud occaecat tempor mollit duis.\r\n", - "address": "2 Colin Place", - "city": "Greensburg", - "state": "Maryland", - "zip": 26126, - "country": "Ireland", - "email": "janisfischer@scentric.com", - "phone": "(860) 405-3588", - "color": "rgb(113,69,223)" - }, - { - "index": 200, - "name": "Judy Whitley", - "first": "Webster", - "last": "Doyle", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ratbus/73.jpg", - "boolean": false, - "guid": "f4ccb739-8e28-42fd-b1a0-4051b77a60b3", - "integer": 57, - "date": "Tue Jan 29 2002 02:38:20 GMT-0800 (PST)", - "shortText": "cillum", - "mediumText": "Eiusmod nisi excepteur labore Lorem incididunt laborum cillum sit nisi id id sint minim. Proident reprehenderit excepteur cupidatat culpa dolor labore. Irure labore aute amet nostrud ad voluptate non.", - "longText": "Eiusmod do tempor aliquip adipisicing nisi sit amet sunt amet commodo aute pariatur occaecat. Labore incididunt qui incididunt duis non dolore eu voluptate. Veniam minim esse ipsum non do. Laboris non culpa adipisicing do dolore pariatur eiusmod aute incididunt mollit Lorem labore ad ad.\r\nEt fugiat ad deserunt exercitation pariatur. Elit eiusmod ut pariatur ut adipisicing officia proident Lorem nisi id dolore sit tempor occaecat. Et minim fugiat incididunt ad ullamco Lorem.\r\nElit ea cupidatat elit adipisicing magna ex culpa aliqua enim. Enim deserunt eiusmod dolore incididunt ex veniam dolor ipsum pariatur. Ipsum elit tempor eiusmod occaecat qui fugiat quis elit non nisi anim. Fugiat ut sit cillum ad dolore duis qui. Deserunt amet et sunt nulla duis nisi ea. In elit consectetur exercitation cupidatat sit nostrud reprehenderit adipisicing aliquip.\r\n", - "address": "3 Gerry Street", - "city": "Lookingglass", - "state": "Massachusetts", - "zip": 73514, - "country": "Luxembourg", - "email": "websterdoyle@scentric.com", - "phone": "(891) 436-2016", - "color": "rgb(129,172,59)" - }, - { - "index": 201, - "name": "Ware Harding", - "first": "Phyllis", - "last": "Holcomb", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/sprayaga/73.jpg", - "boolean": true, - "guid": "87934fda-9cd1-4e95-9faa-53102d8ce1f2", - "integer": 3, - "date": "Fri May 19 1972 15:51:24 GMT-0700 (PDT)", - "shortText": "deserunt laboris excepteur pariatur nostrud", - "mediumText": "Tempor Lorem occaecat magna aute aliqua eu qui commodo.", - "longText": "Laboris deserunt anim excepteur magna et. Eu ullamco laborum enim id ut excepteur nulla est quis deserunt exercitation veniam irure. Sint officia anim cupidatat nostrud culpa aute ut. Amet id elit incididunt do excepteur. Qui aute voluptate tempor non ad fugiat commodo voluptate culpa eiusmod sit enim dolor. Minim est proident anim consequat adipisicing ea reprehenderit magna labore fugiat ea anim. Velit aute incididunt aute commodo aliquip veniam do fugiat ut anim.\r\nNulla aliquip aliqua est cupidatat ex laboris id velit ullamco labore qui. Commodo labore mollit esse laboris deserunt duis. Sunt velit ex excepteur cillum officia sint ad id commodo. Irure amet est laboris officia occaecat anim id ut irure sunt aute. Deserunt quis deserunt et ad mollit nulla. Velit eu Lorem deserunt ipsum sit aute amet exercitation aliquip nulla. Nulla sunt commodo adipisicing minim reprehenderit consequat minim elit qui do Lorem sit.\r\nIn et mollit minim proident eu qui anim magna Lorem consequat minim duis. Esse culpa eu commodo sit. Nostrud laborum magna id elit proident. Laboris commodo ipsum culpa laboris esse non enim id id mollit elit. Pariatur id in sunt et est tempor duis eu Lorem dolor tempor non veniam non. Ipsum officia aliquip anim id. Ex culpa aute et et consequat in qui.\r\nDeserunt nisi elit aliquip dolor culpa dolore mollit ullamco in cupidatat aliqua. Fugiat minim veniam labore ad minim in aliquip labore nulla quis pariatur. Est nisi pariatur duis culpa cupidatat labore in. Nisi tempor Lorem ea in laboris adipisicing do nisi consectetur laboris sunt culpa.\r\nDolore dolore veniam irure aute elit fugiat magna in. Irure enim fugiat ad ad aliqua exercitation proident duis officia dolor minim consequat reprehenderit. Occaecat ullamco esse cillum deserunt velit adipisicing laboris proident occaecat commodo occaecat tempor fugiat. Sint voluptate sunt anim sint do amet sint eiusmod ea enim Lorem. Aliqua consequat commodo sunt amet fugiat excepteur dolor dolor aliquip nostrud culpa. Fugiat elit adipisicing sit minim fugiat exercitation commodo anim duis. Ex voluptate excepteur occaecat nulla nostrud elit minim laborum fugiat.\r\n", - "address": "2 Brigham Street", - "city": "Chalfant", - "state": "Oklahoma", - "zip": 57590, - "country": "Afghanistan", - "email": "phyllisholcomb@scentric.com", - "phone": "(874) 534-3124", - "color": "rgb(210,230,76)" - }, - { - "index": 202, - "name": "Blanche Sears", - "first": "Peck", - "last": "Dean", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/hai_ninh_nguyen/73.jpg", - "boolean": true, - "guid": "b362bf52-df9f-45bb-a64c-4f699bfd2cdb", - "integer": 64, - "date": "Thu May 23 2013 08:13:12 GMT-0700 (PDT)", - "shortText": "nisi tempor", - "mediumText": "Culpa id pariatur velit ut non adipisicing reprehenderit minim est pariatur excepteur nisi qui consectetur.", - "longText": "Voluptate minim deserunt reprehenderit anim ullamco. Consectetur laborum dolor ullamco laboris sunt elit nisi commodo esse sit. Voluptate dolor labore minim consectetur.\r\nQuis magna dolore incididunt deserunt qui dolor aute est culpa voluptate esse. Cillum quis exercitation dolore quis enim aliquip dolore dolor est adipisicing pariatur dolore deserunt. Consectetur sunt proident pariatur aute cupidatat voluptate fugiat pariatur sint.\r\nPariatur eiusmod consequat velit mollit ut reprehenderit irure. Voluptate nisi reprehenderit nisi adipisicing consectetur consequat in culpa laboris veniam laborum velit. Incididunt laboris cupidatat commodo sit commodo esse. Adipisicing proident cupidatat pariatur aute.\r\nEsse reprehenderit do id non occaecat dolore laborum dolore nostrud reprehenderit culpa voluptate voluptate nostrud. Laboris nostrud officia id consequat ullamco. Nisi est sunt ipsum excepteur nostrud dolore irure quis quis labore esse laboris. Adipisicing velit dolore ullamco voluptate reprehenderit ad duis reprehenderit. Commodo do laboris elit eu in nisi deserunt sint ipsum in duis sint excepteur. Culpa est est Lorem sint labore. Et qui ad anim ad.\r\nDo adipisicing amet cupidatat dolor dolore culpa incididunt culpa ad qui consequat ea reprehenderit proident. Irure qui ad adipisicing veniam irure nostrud esse id. Culpa do proident ex id eu Lorem veniam. Veniam commodo sit exercitation deserunt minim sint enim occaecat amet eu irure voluptate culpa eu. Deserunt ad laborum fugiat ex eu incididunt dolore adipisicing. Labore commodo aliquip deserunt aute eiusmod nisi. Est commodo duis excepteur nulla sunt laboris.\r\n", - "address": "4 Garden Place", - "city": "Ironton", - "state": "Ohio", - "zip": 89350, - "country": "St. Pierre and Miquelon", - "email": "peckdean@scentric.com", - "phone": "(994) 522-3068", - "color": "rgb(199,252,214)" - }, - { - "index": 203, - "name": "Conway Kelley", - "first": "Virginia", - "last": "Pollard", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gaborenton/73.jpg", - "boolean": false, - "guid": "afd59da0-9b9b-4b60-9da3-0ef8fc1e6349", - "integer": 14, - "date": "Sun Jul 17 1988 07:37:09 GMT-0700 (PDT)", - "shortText": "Lorem pariatur velit duis tempor", - "mediumText": "Incididunt dolore sint proident irure. Cillum minim veniam dolor ipsum ut cupidatat non proident tempor deserunt. Incididunt exercitation ut proident dolor do adipisicing sit Lorem aliqua enim nulla nostrud. Consectetur duis veniam elit laboris eiusmod ullamco labore exercitation fugiat sint reprehenderit eu nostrud dolor. Occaecat id laboris est tempor deserunt anim in fugiat proident enim cupidatat elit officia fugiat.", - "longText": "Veniam enim ad adipisicing cupidatat velit cillum anim et exercitation esse aliquip sit sunt. Irure mollit est sint minim consectetur labore sunt. Deserunt veniam sunt ut sunt tempor minim ipsum Lorem cupidatat laborum. Proident ipsum veniam quis nisi in consectetur sint labore laboris quis adipisicing velit. Dolore laboris exercitation quis sit. Laboris voluptate non consectetur incididunt laborum veniam pariatur exercitation sint.\r\nSint aute mollit eiusmod ea id cupidatat ad in sunt Lorem proident eiusmod ad. Proident ex occaecat pariatur excepteur labore consectetur laboris. Ut pariatur in adipisicing sit ipsum minim. Ut est elit eiusmod fugiat deserunt mollit fugiat incididunt laboris. Aute officia amet cupidatat in.\r\nVelit id enim ut ea veniam laborum eu duis adipisicing fugiat amet ullamco irure. Dolor et ad culpa esse in. Ea pariatur adipisicing minim sunt consequat sunt minim anim aute qui quis.\r\n", - "address": "3 Monaco Place", - "city": "Lopezo", - "state": "Nevada", - "zip": 45051, - "country": "Montserrat", - "email": "virginiapollard@scentric.com", - "phone": "(911) 563-3668", - "color": "rgb(120,253,100)" - }, - { - "index": 204, - "name": "Little Griffin", - "first": "Murray", - "last": "David", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/uralozden/73.jpg", - "boolean": false, - "guid": "9028904c-ab1e-4968-b7c4-20453df8469b", - "integer": 84, - "date": "Sun Dec 20 1987 15:41:10 GMT-0800 (PST)", - "shortText": "adipisicing ea pariatur enim", - "mediumText": "Commodo nostrud et irure amet pariatur proident eiusmod. Proident mollit eu fugiat irure voluptate proident laboris cillum proident voluptate.", - "longText": "Nisi et consectetur aute in tempor. Occaecat ad sint incididunt ullamco reprehenderit dolore. Nisi adipisicing in velit sint aliquip. Deserunt ut pariatur aute et voluptate fugiat id esse do sunt deserunt aute in. Excepteur adipisicing excepteur irure tempor sit culpa culpa mollit. Fugiat est culpa nostrud pariatur labore et in esse ullamco cillum et amet consequat cillum. Sint laboris cillum ea labore occaecat sunt enim.\r\n", - "address": "2 Gallatin Place", - "city": "Topaz", - "state": "Montana", - "zip": 18846, - "country": "Norway", - "email": "murraydavid@scentric.com", - "phone": "(994) 477-3415", - "color": "rgb(185,246,198)" - }, - { - "index": 205, - "name": "Goff Benton", - "first": "Mclean", - "last": "Pennington", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/attacks/73.jpg", - "boolean": false, - "guid": "70d6883d-2c03-4256-b2b8-d09f035e6d58", - "integer": 51, - "date": "Sun Feb 25 1979 17:08:08 GMT-0800 (PST)", - "shortText": "ipsum aute Lorem", - "mediumText": "Qui est officia sit nulla sunt reprehenderit incididunt aute.", - "longText": "Lorem eu proident exercitation do veniam. Sunt reprehenderit officia cupidatat est do ipsum sunt elit anim quis reprehenderit laborum quis non. Et aliqua excepteur culpa qui enim nulla id qui eiusmod dolor Lorem non mollit consectetur.\r\nLorem amet velit esse magna Lorem voluptate nostrud labore. Dolor Lorem cupidatat mollit laboris deserunt quis occaecat excepteur pariatur deserunt minim consectetur sint. Ad quis veniam dolore quis nostrud laboris ex anim quis eu nisi tempor. Consectetur voluptate id officia culpa anim enim eiusmod in amet amet. Velit anim deserunt officia eiusmod qui incididunt minim consequat ut sunt mollit. Ex enim aliquip enim quis enim irure sunt mollit laborum nisi.\r\nMagna sit ea deserunt excepteur aliqua esse nulla deserunt exercitation officia nulla id tempor cillum. Occaecat nulla sit tempor aute fugiat commodo. Laboris fugiat enim exercitation voluptate quis consequat consectetur aliquip fugiat voluptate ut occaecat reprehenderit irure. Esse sit laboris quis commodo ea in velit ad labore veniam. Aliquip dolor laborum commodo ad elit aliqua velit qui.\r\nElit exercitation culpa officia adipisicing amet in dolor eiusmod. Nostrud proident exercitation aliquip labore ad cupidatat velit incididunt. Officia ex veniam cillum deserunt id dolore excepteur pariatur mollit nulla laboris veniam veniam eu. Labore duis est ex reprehenderit fugiat commodo ut aute officia culpa irure amet id.\r\n", - "address": "4 Story Court", - "city": "Snowville", - "state": "California", - "zip": 33234, - "country": "Guam", - "email": "mcleanpennington@scentric.com", - "phone": "(882) 499-2242", - "color": "rgb(107,133,242)" - }, - { - "index": 206, - "name": "Hale Wilkinson", - "first": "Franks", - "last": "Howard", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mymyboy/73.jpg", - "boolean": false, - "guid": "974617cc-7395-4b74-aa1b-f5ea163bbb48", - "integer": 40, - "date": "Mon Jul 17 1972 11:03:48 GMT-0700 (PDT)", - "shortText": "dolor nulla culpa id", - "mediumText": "Veniam ipsum sit ea velit et magna exercitation exercitation occaecat voluptate aliqua. Deserunt nisi qui dolor mollit in anim labore. Dolore id quis occaecat aliqua pariatur cillum enim aliquip pariatur voluptate magna. Excepteur magna officia excepteur voluptate excepteur laboris.", - "longText": "Sit elit quis laborum do magna culpa Lorem magna incididunt. Consectetur non do non ea fugiat Lorem sint fugiat deserunt magna id ut aliquip. In Lorem ut voluptate magna consectetur exercitation cupidatat elit anim excepteur ipsum tempor amet. Velit commodo magna incididunt pariatur fugiat adipisicing cillum fugiat incididunt in sint velit ipsum. Sint non eiusmod quis minim anim. Irure reprehenderit adipisicing non nulla Lorem officia excepteur voluptate esse.\r\nOfficia dolore do aute culpa enim et quis laboris occaecat elit eiusmod mollit. Est non irure amet ad pariatur exercitation pariatur ad ex quis. Sunt ea minim id exercitation laborum dolore nulla et incididunt do. Aliqua amet Lorem eiusmod pariatur ipsum amet reprehenderit elit sit. Eu quis cillum voluptate magna ullamco.\r\nEa proident sit laborum commodo fugiat in elit amet. Non esse do exercitation culpa consectetur non magna voluptate velit ea culpa anim nulla. Eiusmod labore Lorem aute occaecat nulla fugiat.\r\nEst excepteur laborum ut amet Lorem ad veniam elit reprehenderit. Officia laboris id et consectetur sunt adipisicing nulla nostrud esse Lorem. Duis laboris veniam amet deserunt in deserunt laborum sit pariatur cillum nostrud.\r\n", - "address": "2 Hoyt Street", - "city": "Wolcott", - "state": "Marshall Islands", - "zip": 13071, - "country": "Gibraltar", - "email": "frankshoward@scentric.com", - "phone": "(893) 417-2654", - "color": "rgb(186,174,80)" - }, - { - "index": 207, - "name": "Betty Huff", - "first": "Mona", - "last": "Fulton", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tristanlegros/73.jpg", - "boolean": false, - "guid": "c11ff2c4-c704-4729-88f9-b9932549a64a", - "integer": 26, - "date": "Thu Nov 04 1976 19:21:20 GMT-0800 (PST)", - "shortText": "sit nulla", - "mediumText": "Adipisicing minim nostrud magna amet tempor sunt duis officia cupidatat do incididunt dolore consectetur elit. Duis proident deserunt proident eu elit aliquip sint. Qui officia commodo voluptate deserunt amet ipsum magna dolore. Dolore labore eiusmod fugiat ad.", - "longText": "Aliquip in consequat nulla Lorem velit in cupidatat ut ut. Minim dolore cillum ut esse dolore ex. Eu occaecat officia tempor Lorem duis mollit magna Lorem eu deserunt aute et nisi reprehenderit. Eu magna qui enim officia nostrud proident officia sint elit ipsum quis duis velit Lorem.\r\n", - "address": "4 Ocean Avenue", - "city": "Finderne", - "state": "Indiana", - "zip": 46746, - "country": "Hungary", - "email": "monafulton@scentric.com", - "phone": "(946) 414-3557", - "color": "rgb(128,193,66)" - }, - { - "index": 208, - "name": "Emily Davis", - "first": "Sharon", - "last": "Green", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/allfordesign/73.jpg", - "boolean": true, - "guid": "e94e16a5-2c94-4436-8610-86a6f5f66355", - "integer": 99, - "date": "Mon Sep 28 2009 14:40:31 GMT-0700 (PDT)", - "shortText": "cillum dolor ex cupidatat deserunt", - "mediumText": "Cupidatat nulla anim reprehenderit laboris aute magna aliquip ea in sit. Reprehenderit reprehenderit amet id et ad ea. Deserunt veniam cillum dolor ullamco Lorem non cillum amet.", - "longText": "Quis voluptate ex cillum incididunt incididunt nisi. Dolor aliqua culpa dolor cillum eiusmod cillum tempor cillum. Est laboris esse exercitation nulla nisi anim et do cupidatat fugiat pariatur. Laborum duis eu fugiat anim duis.\r\nVeniam reprehenderit cupidatat ullamco Lorem ex officia mollit aliqua. Exercitation exercitation cillum irure officia deserunt velit laboris est irure irure minim veniam aliquip laborum. Ipsum ipsum sit ipsum ex veniam voluptate. Adipisicing do ex occaecat do. Laboris reprehenderit ad velit deserunt. Sint consectetur minim eiusmod excepteur eu cupidatat non mollit aliquip ad eu cupidatat.\r\nFugiat mollit ut ullamco veniam sint proident occaecat ad. Est exercitation laborum nisi laboris anim laborum magna. Labore ut adipisicing consectetur velit voluptate fugiat laborum adipisicing veniam reprehenderit. Adipisicing aliquip consectetur id occaecat labore exercitation ullamco.\r\nVoluptate reprehenderit occaecat eiusmod pariatur ipsum est eu. Id dolor laborum elit commodo duis et Lorem laboris. Sit officia do elit amet adipisicing. Exercitation commodo est do eu. In amet ad reprehenderit commodo.\r\nMinim nisi nostrud Lorem nostrud ea incididunt est in labore amet elit officia. Quis nostrud fugiat consequat culpa. Nisi ullamco irure sunt esse elit sunt nisi enim ullamco cupidatat dolore adipisicing. Ullamco sint laboris ullamco id magna qui et eiusmod laborum do enim minim amet aute. Ad fugiat elit velit amet officia nisi aliquip qui. Ut quis amet tempor ea ex id quis Lorem. Amet tempor incididunt esse sunt dolore non veniam esse nisi sint labore ut in.\r\n", - "address": "3 Colonial Court", - "city": "Trona", - "state": "Tennessee", - "zip": 67912, - "country": "Kenya", - "email": "sharongreen@scentric.com", - "phone": "(832) 403-3692", - "color": "rgb(208,118,108)" - }, - { - "index": 209, - "name": "Shelly Payne", - "first": "Doyle", - "last": "Vazquez", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/serk002/73.jpg", - "boolean": true, - "guid": "1fbca6f1-d8c8-48ca-94be-6bfb87526c7d", - "integer": 58, - "date": "Sat May 15 1993 07:23:07 GMT-0700 (PDT)", - "shortText": "do amet aliqua duis ea", - "mediumText": "Minim adipisicing sint aliquip in do mollit labore occaecat in. Est commodo et deserunt aute. Ut consectetur exercitation et voluptate qui quis ex.", - "longText": "Ea consequat exercitation incididunt non veniam occaecat amet occaecat occaecat ex ex ullamco incididunt. Enim consequat nisi sit pariatur aliqua elit ipsum elit aliqua incididunt et. Cupidatat occaecat velit nostrud id consequat cupidatat. Nulla anim ipsum enim ad incididunt nostrud nulla et esse incididunt elit. Culpa commodo ad non sint anim. Ad deserunt aute eiusmod officia fugiat proident minim nostrud commodo voluptate velit mollit duis.\r\nEiusmod veniam adipisicing exercitation proident do voluptate ut culpa consequat Lorem. Deserunt ea voluptate anim quis duis deserunt mollit minim sit minim reprehenderit amet. Nisi labore dolore reprehenderit minim laborum fugiat Lorem incididunt sint. Enim aliquip voluptate ea nulla consectetur sit reprehenderit sunt in officia aute id. Pariatur sint sint eiusmod ea do est sint.\r\n", - "address": "3 Auburn Place", - "city": "Blairstown", - "state": "Palau", - "zip": 22120, - "country": "Honduras", - "email": "doylevazquez@scentric.com", - "phone": "(946) 513-2799", - "color": "rgb(255,190,226)" - }, - { - "index": 210, - "name": "Angela Mcmahon", - "first": "Rosalyn", - "last": "Bridges", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/keremk/73.jpg", - "boolean": true, - "guid": "92811c3f-0e5f-4f04-9543-6d026e4b26c4", - "integer": 16, - "date": "Fri Jan 16 1998 10:02:55 GMT-0800 (PST)", - "shortText": "velit", - "mediumText": "Lorem cupidatat dolor voluptate magna excepteur eiusmod est in.", - "longText": "Aliqua culpa aliqua aute labore nulla do pariatur consectetur sit sunt quis reprehenderit duis cupidatat. Pariatur eu voluptate cupidatat reprehenderit sit mollit proident ullamco proident ipsum nulla. Nulla qui ullamco sint eiusmod dolore. Minim esse et sit cupidatat dolore esse. Dolor reprehenderit aliquip magna commodo irure nulla culpa ipsum enim incididunt. Cillum velit minim incididunt qui velit nulla.\r\nConsectetur amet ex elit eu commodo sint enim. Proident et labore ipsum consequat pariatur irure. Fugiat non occaecat ipsum ullamco commodo. Nisi exercitation cupidatat nisi pariatur non culpa. Non do deserunt labore non amet excepteur ea sint. Pariatur quis ullamco laboris fugiat proident est irure magna commodo occaecat officia qui.\r\nPariatur et commodo officia ullamco do qui est nisi in. Laborum sint do minim aute aute dolore est consequat officia id. Nostrud velit ex ut eu dolore occaecat magna minim. Culpa amet sunt duis aliquip Lorem voluptate. Commodo occaecat reprehenderit nostrud magna ex proident incididunt est ut ad do.\r\n", - "address": "4 Fane Court", - "city": "Elrama", - "state": "Virginia", - "zip": 45107, - "country": "Eritrea", - "email": "rosalynbridges@scentric.com", - "phone": "(813) 440-3063", - "color": "rgb(184,249,205)" - }, - { - "index": 211, - "name": "Maryellen Ramos", - "first": "Rogers", - "last": "Silva", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/surjithctly/73.jpg", - "boolean": true, - "guid": "a833fdf1-9865-4e5c-91f8-8d1aaa2d2fba", - "integer": 75, - "date": "Sun Oct 24 2004 10:12:53 GMT-0700 (PDT)", - "shortText": "nisi duis", - "mediumText": "Magna elit fugiat occaecat incididunt elit tempor exercitation occaecat fugiat eiusmod incididunt dolore. Ad quis ea commodo reprehenderit sint sit esse quis quis. Minim esse anim aute eiusmod fugiat.", - "longText": "Voluptate id ullamco do aliqua ad deserunt commodo ex. Et aute excepteur elit adipisicing. Labore consequat consequat consequat qui aute non et ad deserunt. Ex adipisicing sunt sunt mollit do nulla eiusmod esse aute dolor. Elit veniam culpa labore proident cillum duis minim id sint sint eiusmod. Est deserunt in ut laboris fugiat ut sint consequat. Ullamco ex incididunt reprehenderit adipisicing occaecat.\r\nNisi officia excepteur enim aliquip aliqua occaecat aliqua mollit velit reprehenderit amet id cillum. Nulla fugiat ad id in velit consectetur sint id commodo pariatur velit reprehenderit est nisi. Reprehenderit exercitation voluptate ea cillum ea ut nisi deserunt laborum eiusmod ea. Voluptate velit consectetur aliquip aliquip Lorem consectetur dolore in qui laboris voluptate labore duis. In enim eiusmod minim minim non ea labore excepteur tempor officia ullamco.\r\nUt pariatur tempor aliquip eu quis cupidatat esse ad. Sint occaecat mollit eu consectetur dolore nostrud incididunt nostrud enim quis dolor elit adipisicing excepteur. Pariatur cupidatat consequat cillum deserunt sit eu in et veniam aliqua. Proident nostrud nostrud incididunt tempor ad nisi amet. Cupidatat ad ea mollit cupidatat est dolor eu laboris ex velit duis amet consectetur velit.\r\nCillum occaecat ex voluptate cupidatat est cillum qui. Et do incididunt nulla veniam sint eu consectetur et non minim officia excepteur velit. Anim labore mollit cillum sit nisi ex sunt mollit culpa enim ipsum sit laboris in. Quis ullamco et ullamco consequat mollit ex commodo laboris voluptate. Magna qui aute aliqua sit adipisicing id. Veniam mollit proident eu occaecat veniam sint sint laboris sit laborum.\r\n", - "address": "3 Brightwater Court", - "city": "Brandermill", - "state": "Wyoming", - "zip": 20996, - "country": "Tajikistan", - "email": "rogerssilva@scentric.com", - "phone": "(944) 540-3499", - "color": "rgb(88,243,243)" - }, - { - "index": 212, - "name": "Alvarado Abbott", - "first": "Jordan", - "last": "Hyde", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dimitris_d_/73.jpg", - "boolean": false, - "guid": "9b8ecabd-ca6e-4ee1-bd6a-08635f7312a6", - "integer": 97, - "date": "Fri Oct 21 1983 23:56:38 GMT-0700 (PDT)", - "shortText": "elit exercitation pariatur aliqua duis", - "mediumText": "Cupidatat consequat esse duis ex consequat consequat.", - "longText": "Anim aute nisi non adipisicing dolor incididunt non est esse culpa. Proident eiusmod et voluptate sint. Anim ex incididunt do ipsum dolor Lorem Lorem ut. Quis eiusmod esse anim aliqua ullamco. Non in ad qui excepteur minim adipisicing Lorem tempor elit. Nostrud cillum incididunt labore magna duis consectetur irure ut consectetur. Veniam eu officia qui sint pariatur culpa.\r\nSunt ea amet tempor minim labore consequat duis qui. Aliqua non nisi sint incididunt et veniam minim Lorem. Id fugiat consequat in labore velit proident est incididunt nisi non Lorem. Exercitation ipsum duis labore sunt officia proident labore labore ad. Sunt enim culpa adipisicing aute cillum. Officia in adipisicing tempor minim eiusmod dolor. Ea sunt ut elit cillum laboris nisi ipsum reprehenderit labore laborum culpa in.\r\nFugiat est eiusmod amet incididunt minim adipisicing voluptate. Ex eiusmod consequat consectetur occaecat laborum culpa in cupidatat voluptate ipsum reprehenderit elit consequat. Ut fugiat commodo qui aute consequat. Nostrud dolor duis magna minim do.\r\nId non fugiat pariatur pariatur Lorem nostrud irure. Tempor laboris voluptate velit magna. Ut ea ea sunt mollit aliqua. Ullamco dolore nostrud ex non non non culpa Lorem ullamco do do dolore quis. Id sunt magna laboris laboris enim. Sint aliquip elit ullamco ut nisi officia enim dolore nulla cupidatat duis. Cillum magna minim quis nulla nulla anim amet non nostrud sit nostrud exercitation magna ex.\r\n", - "address": "4 Bainbridge Street", - "city": "Chical", - "state": "Colorado", - "zip": 18544, - "country": "Brunei Darussalam", - "email": "jordanhyde@scentric.com", - "phone": "(822) 530-2413", - "color": "rgb(163,61,149)" - }, - { - "index": 213, - "name": "Caldwell Mckinney", - "first": "Melody", - "last": "Fisher", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bogdanroberta/73.jpg", - "boolean": true, - "guid": "7e4dcc0a-5507-4cee-948f-06e4315a2af8", - "integer": 41, - "date": "Wed May 03 1972 14:18:30 GMT-0700 (PDT)", - "shortText": "adipisicing", - "mediumText": "Aliqua laboris enim proident cillum ut id aute nulla ea.", - "longText": "Consequat excepteur non amet ipsum labore dolore consequat duis cillum. Enim occaecat nisi aute aliqua occaecat enim nulla. Eiusmod est adipisicing et in. Sint fugiat ullamco officia commodo minim ut velit voluptate non eiusmod. Est quis sunt nisi exercitation in nostrud laboris.\r\nIrure pariatur velit ad minim occaecat labore ad dolor eiusmod occaecat laboris. Et culpa voluptate minim aliquip. Sit commodo nostrud veniam in dolore magna officia eu ea nisi ex velit.\r\nQuis esse do anim ullamco deserunt consectetur cupidatat tempor cillum ex id. Aute velit non est amet officia laboris labore duis velit Lorem consectetur cupidatat tempor. Cupidatat eiusmod anim et elit ipsum esse minim. Irure eiusmod nisi duis velit id.\r\n", - "address": "2 Abbey Court", - "city": "Salvo", - "state": "Utah", - "zip": 63926, - "country": "Macedonia", - "email": "melodyfisher@scentric.com", - "phone": "(979) 487-2773", - "color": "rgb(71,205,213)" - }, - { - "index": 214, - "name": "Eloise Avila", - "first": "Gay", - "last": "Yang", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/shammellee/73.jpg", - "boolean": true, - "guid": "d615ea19-d16e-48f6-8ddb-02091a9fa272", - "integer": 25, - "date": "Tue Sep 03 1991 06:44:54 GMT-0700 (PDT)", - "shortText": "aliquip enim eu proident sunt", - "mediumText": "Ex deserunt reprehenderit qui ea adipisicing labore in ipsum.", - "longText": "Eiusmod anim ut occaecat veniam est quis labore consectetur elit. Sint minim nostrud non ad aliqua do. Dolor et ullamco aliqua cillum consectetur sunt. Tempor aliquip id labore anim voluptate aute cupidatat consequat. Et nostrud eu cillum sunt nisi excepteur laborum sint labore amet.\r\n", - "address": "3 Wogan Terrace", - "city": "Canby", - "state": "Idaho", - "zip": 49943, - "country": "French Polynesia", - "email": "gayyang@scentric.com", - "phone": "(951) 538-3316", - "color": "rgb(75,210,111)" - }, - { - "index": 215, - "name": "Christine Strong", - "first": "Sofia", - "last": "Alvarez", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/donjain/73.jpg", - "boolean": true, - "guid": "7f27c6f9-a6f0-49b2-b6d4-0824fb02c1ba", - "integer": 2, - "date": "Fri Feb 27 1976 21:08:15 GMT-0800 (PST)", - "shortText": "incididunt mollit", - "mediumText": "Labore labore consectetur aliquip pariatur sit eu voluptate minim enim eu cillum proident.", - "longText": "Sint sit deserunt proident nulla culpa in reprehenderit veniam commodo consequat aliquip dolor. Eu mollit cillum et nulla nulla culpa voluptate proident irure mollit non ipsum nisi. Reprehenderit laboris eiusmod magna exercitation consectetur nulla sit do cupidatat est ad dolore culpa. Eiusmod commodo eiusmod dolore est ad reprehenderit occaecat irure. Adipisicing quis aliqua qui non labore consectetur ullamco aliquip.\r\nLorem fugiat excepteur do cupidatat labore elit tempor fugiat et. Commodo laborum nisi consectetur laboris culpa veniam ea minim fugiat dolor qui et pariatur occaecat. Culpa est ullamco in esse. Ut aliquip id dolore aute ullamco et velit veniam et est aute sunt. Sint Lorem consectetur elit occaecat ea enim proident sunt cupidatat cillum officia. Quis eu veniam deserunt occaecat aliqua est exercitation consequat ipsum officia sit Lorem aliqua.\r\nAmet mollit in ad sit. Adipisicing occaecat laboris qui enim ut aute deserunt proident. Ipsum labore laboris sunt nulla amet ad. Duis voluptate ut veniam est quis amet et occaecat.\r\nDuis pariatur voluptate ut veniam aliquip commodo ipsum commodo do. Pariatur deserunt laboris veniam duis ipsum dolore et duis laboris quis officia ad reprehenderit deserunt. Deserunt Lorem esse ad duis veniam ad proident dolore culpa enim commodo sunt est ex.\r\nExcepteur deserunt deserunt ea dolor nulla. Laborum irure elit ut fugiat deserunt amet nisi. Magna do elit est esse pariatur qui mollit proident esse. Id laborum amet fugiat ipsum tempor reprehenderit.\r\n", - "address": "3 Celeste Court", - "city": "Herbster", - "state": "Arkansas", - "zip": 97896, - "country": "Bahamas", - "email": "sofiaalvarez@scentric.com", - "phone": "(990) 470-3077", - "color": "rgb(250,51,175)" - }, - { - "index": 216, - "name": "Love Baldwin", - "first": "Rivers", - "last": "Rosales", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/21lab/73.jpg", - "boolean": true, - "guid": "b67fea0d-b75f-4344-8a9f-fe87e3c61b52", - "integer": 84, - "date": "Wed Jan 15 1975 15:08:56 GMT-0800 (PST)", - "shortText": "do elit sint excepteur", - "mediumText": "Veniam eiusmod sit duis fugiat mollit et dolore in ad nulla culpa. Proident labore eu dolore commodo sint deserunt dolore amet ullamco nulla eiusmod excepteur. Excepteur nisi duis consectetur qui. Exercitation laborum est aliquip deserunt.", - "longText": "Quis ea et cillum aliqua culpa commodo velit cupidatat ut ea. Nisi non qui esse labore veniam veniam sit. Excepteur aliquip sit anim minim incididunt consectetur consectetur laboris minim nisi labore in labore magna. Incididunt tempor eiusmod dolor elit et duis ex mollit.\r\nId excepteur do adipisicing laboris labore aliquip eu do enim incididunt esse nulla exercitation. Anim consequat culpa non incididunt dolore ad qui proident magna voluptate do occaecat fugiat occaecat. Velit pariatur amet ullamco quis sint.\r\n", - "address": "2 Ingraham Street", - "city": "Hendersonville", - "state": "Delaware", - "zip": 71466, - "country": "Palau", - "email": "riversrosales@scentric.com", - "phone": "(929) 466-3166", - "color": "rgb(255,204,95)" - }, - { - "index": 217, - "name": "Louisa Lang", - "first": "Jenna", - "last": "Roberson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ionuss/73.jpg", - "boolean": false, - "guid": "1fb6ce5a-06bc-4d09-93bb-4da1b2003f10", - "integer": 47, - "date": "Wed Aug 26 1981 07:54:13 GMT-0700 (PDT)", - "shortText": "sint nostrud commodo exercitation", - "mediumText": "Nulla culpa incididunt et veniam nisi officia. Et non fugiat incididunt in fugiat ad ullamco dolor cillum duis irure officia veniam dolor. Pariatur qui veniam cillum sunt consequat eiusmod ipsum.", - "longText": "Quis consequat ea velit ea labore do dolore. Aute in dolore occaecat sint dolor labore. Sunt consectetur laborum qui nostrud dolore reprehenderit sint sunt eu reprehenderit. Ullamco proident labore occaecat nostrud. Sint velit in do ut duis laborum ut ullamco. Tempor sunt consectetur officia veniam. Et cillum occaecat mollit tempor proident sunt mollit.\r\nOccaecat incididunt esse occaecat et non culpa culpa aliqua ex. Aute cillum magna nostrud ea. Anim consequat aliquip enim veniam culpa velit ea irure quis id ipsum deserunt ad. Elit dolor proident laboris nostrud id pariatur aute ut deserunt. Mollit consequat occaecat eiusmod ad voluptate laboris duis. Quis nulla culpa occaecat ea ullamco voluptate cupidatat irure. Incididunt amet ipsum cupidatat sint officia reprehenderit consequat velit non reprehenderit commodo ut amet.\r\nAliqua commodo ipsum ex officia esse veniam elit ullamco. Laborum adipisicing Lorem sint nisi commodo sunt aute commodo cupidatat reprehenderit ut exercitation. Eu ea magna anim in fugiat mollit proident exercitation ullamco amet. Ex ullamco et nulla non deserunt ullamco occaecat officia enim. Officia ea ullamco cillum dolor et aliqua elit consectetur nulla ex dolor nostrud aute velit. Exercitation mollit consequat consectetur veniam pariatur ullamco sit sunt dolore sint deserunt ut esse. Sint ullamco voluptate est veniam ullamco sit.\r\n", - "address": "4 Miller Place", - "city": "Sims", - "state": "Federated States Of Micronesia", - "zip": 93413, - "country": "Tuvalu", - "email": "jennaroberson@scentric.com", - "phone": "(943) 474-3085", - "color": "rgb(143,132,181)" - }, - { - "index": 218, - "name": "Snyder Cortez", - "first": "Ronda", - "last": "Nielsen", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bameyrick/73.jpg", - "boolean": false, - "guid": "633a4429-d43e-452c-9b6c-b53f2ee2e347", - "integer": 85, - "date": "Tue Jan 06 1981 00:45:11 GMT-0800 (PST)", - "shortText": "ullamco deserunt adipisicing sint esse", - "mediumText": "Nostrud mollit exercitation culpa ipsum adipisicing fugiat aliquip ex.", - "longText": "Cupidatat veniam officia quis fugiat proident eu. Lorem voluptate enim do aute ut veniam ut. Ullamco exercitation cupidatat ipsum culpa aliqua duis veniam ullamco proident in fugiat dolore ullamco. Quis in irure adipisicing occaecat.\r\nVeniam consectetur labore consectetur consequat enim irure sunt. Enim nulla pariatur aliquip aute proident aute deserunt fugiat nisi irure ipsum irure proident. Ad laboris do aute ullamco et reprehenderit velit commodo ipsum magna sunt duis.\r\nOfficia excepteur sunt ut tempor Lorem in mollit ipsum et tempor cupidatat veniam. Aliqua id dolore Lorem officia quis velit. Ut tempor elit fugiat incididunt quis ad eiusmod in.\r\nExercitation Lorem aliquip laboris laboris incididunt qui laboris adipisicing irure laboris qui non deserunt qui. Voluptate sit aliquip ullamco anim. Dolore nulla ea culpa fugiat adipisicing qui proident do elit proident fugiat magna dolore quis.\r\nExcepteur elit laboris proident adipisicing ipsum aute ipsum magna voluptate officia officia consequat amet ullamco. Amet nostrud elit do culpa consectetur occaecat sint culpa id labore sit qui pariatur. Sunt esse nisi in proident labore excepteur deserunt elit cupidatat non. Labore sunt commodo nisi eu incididunt qui cillum tempor anim voluptate. Adipisicing dolor consequat pariatur id enim laboris incididunt duis magna enim velit fugiat esse.\r\n", - "address": "3 Quentin Road", - "city": "Islandia", - "state": "Guam", - "zip": 18417, - "country": "Liechtenstein", - "email": "rondanielsen@scentric.com", - "phone": "(819) 547-2703", - "color": "rgb(69,55,248)" - }, - { - "index": 219, - "name": "Michael Nixon", - "first": "Paul", - "last": "Huber", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/p_cherkashin/73.jpg", - "boolean": false, - "guid": "77b470a6-85b9-4d08-9bda-af2cf7b97919", - "integer": 86, - "date": "Mon Aug 24 1987 23:29:34 GMT-0700 (PDT)", - "shortText": "et", - "mediumText": "Adipisicing dolore magna sunt duis quis cillum incididunt sit commodo minim nisi irure culpa.", - "longText": "Sit qui excepteur consequat veniam. Qui deserunt nostrud esse velit nulla culpa ex. Enim esse nostrud quis consectetur ea ex. Veniam reprehenderit deserunt dolore ipsum Lorem reprehenderit ipsum laborum adipisicing adipisicing qui.\r\n", - "address": "3 Baltic Street", - "city": "Marienthal", - "state": "Pennsylvania", - "zip": 77950, - "country": "Virgin Islands (US)", - "email": "paulhuber@scentric.com", - "phone": "(822) 531-2515", - "color": "rgb(213,114,213)" - }, - { - "index": 220, - "name": "Erna Collier", - "first": "Brady", - "last": "Haney", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tube_man/73.jpg", - "boolean": true, - "guid": "2b70bd78-953b-4f78-b980-0443e7865502", - "integer": 89, - "date": "Thu Apr 09 1981 13:14:33 GMT-0800 (PST)", - "shortText": "labore consectetur qui", - "mediumText": "Eiusmod eiusmod sit consectetur dolor adipisicing adipisicing ipsum laborum. Nostrud est non sunt est Lorem aliquip non incididunt. Ad consequat incididunt labore adipisicing eiusmod magna ad pariatur quis.", - "longText": "Nostrud ullamco quis aliqua veniam officia est commodo anim commodo est exercitation. Dolor reprehenderit dolore occaecat anim cillum deserunt. Nostrud laboris esse quis voluptate magna esse. Et mollit mollit ad consectetur adipisicing do ullamco Lorem mollit cillum cillum pariatur ipsum duis. In exercitation esse nisi nostrud aliquip non velit magna incididunt anim. Dolor mollit eu quis laborum quis duis esse nisi exercitation duis duis quis adipisicing.\r\nFugiat nisi do reprehenderit dolor amet velit fugiat incididunt quis et aute eu cillum consequat. Occaecat laborum cupidatat occaecat voluptate proident irure anim proident sit in. In culpa ex pariatur deserunt sint in consectetur eiusmod. Aliqua cupidatat aute ullamco eiusmod fugiat.\r\nEx officia ut Lorem ex nisi pariatur incididunt qui. Fugiat pariatur ut tempor excepteur anim enim qui sint occaecat eiusmod veniam ad enim amet. Anim magna nulla magna pariatur. Mollit excepteur minim cillum irure nisi quis irure quis velit consectetur. Laboris sint aliquip minim aliqua incididunt eiusmod dolor amet. Velit sint cillum consectetur commodo culpa do exercitation amet laboris est laborum magna officia sit.\r\n", - "address": "3 Lawrence Street", - "city": "Summerset", - "state": "New Hampshire", - "zip": 76548, - "country": "Svalbard and Jan Mayen Islands", - "email": "bradyhaney@scentric.com", - "phone": "(933) 464-2281", - "color": "rgb(61,84,220)" - }, - { - "index": 221, - "name": "Serena Holden", - "first": "Dorsey", - "last": "James", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nicolaseek/73.jpg", - "boolean": true, - "guid": "e34b73b6-5bae-4d6e-8d76-8b030ff4d104", - "integer": 49, - "date": "Mon May 27 1985 00:38:05 GMT-0700 (PDT)", - "shortText": "occaecat Lorem", - "mediumText": "Sunt minim duis et reprehenderit commodo aute dolore. Elit veniam occaecat adipisicing officia ex.", - "longText": "Consectetur ipsum quis in veniam ipsum voluptate velit deserunt minim aute. Consectetur in commodo aliquip voluptate anim. Culpa veniam enim in voluptate do nulla culpa deserunt. Mollit in sit exercitation dolore id eu duis nulla consectetur laborum sit ex eu et.\r\nLaborum id occaecat labore voluptate officia labore in id cillum occaecat. Nisi et amet elit excepteur irure adipisicing est cillum sit est velit cillum. Irure Lorem qui qui Lorem qui id. Est velit adipisicing voluptate Lorem consectetur ut exercitation occaecat amet adipisicing sit adipisicing. Cillum sint quis incididunt sint anim et. Adipisicing veniam pariatur id laboris amet est cillum. Eiusmod in mollit in velit culpa Lorem consequat ad mollit amet laboris qui.\r\nIn nisi exercitation irure pariatur consequat consequat labore ipsum anim commodo fugiat id. Aute est sit reprehenderit cupidatat cupidatat pariatur laborum nulla culpa minim sunt. Consectetur ipsum duis dolor velit labore nisi magna enim voluptate laborum exercitation et.\r\n", - "address": "3 Green Street", - "city": "Allensworth", - "state": "North Dakota", - "zip": 77281, - "country": "Ethiopia", - "email": "dorseyjames@scentric.com", - "phone": "(856) 447-3354", - "color": "rgb(81,131,93)" - }, - { - "index": 222, - "name": "Tabitha Alvarado", - "first": "Grant", - "last": "Bauer", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/joshjoshmatson/73.jpg", - "boolean": true, - "guid": "f0707477-7ccf-4f35-b9d8-ecdcea4b5444", - "integer": 59, - "date": "Sat Mar 13 1971 23:17:16 GMT-0800 (PST)", - "shortText": "cupidatat exercitation pariatur commodo anim", - "mediumText": "Nisi nulla est ipsum laboris. Ut et ea pariatur aute. Fugiat dolore esse laborum sunt.", - "longText": "Cupidatat pariatur nostrud cillum fugiat sint culpa officia adipisicing ipsum occaecat. Sunt id tempor tempor consectetur sint eu esse ullamco deserunt proident Lorem sit. Exercitation et ex dolor exercitation elit labore aute veniam consectetur. Duis mollit ut eiusmod reprehenderit duis anim qui.\r\nIpsum anim veniam nostrud occaecat et proident qui cupidatat voluptate eu enim esse Lorem nulla. Nulla voluptate ex irure ex excepteur minim duis ut ipsum aliqua ullamco. Excepteur ipsum proident ea duis Lorem ad incididunt esse non officia amet excepteur exercitation. Sit amet sint velit velit officia fugiat. Laboris aliqua irure incididunt nulla aliqua exercitation labore nostrud incididunt. Labore eu amet magna deserunt.\r\nAliqua adipisicing et aute ut occaecat laboris nulla. Excepteur non Lorem fugiat incididunt officia minim sunt tempor dolore magna ullamco ad veniam enim. Sunt labore adipisicing consequat non proident excepteur ullamco cupidatat eiusmod nulla culpa elit aliquip minim. Fugiat qui sint Lorem velit ea.\r\n", - "address": "3 Oak Street", - "city": "Kapowsin", - "state": "Northern Mariana Islands", - "zip": 57454, - "country": "Togo", - "email": "grantbauer@scentric.com", - "phone": "(985) 414-2281", - "color": "rgb(61,94,134)" - }, - { - "index": 223, - "name": "Tami Berger", - "first": "Rocha", - "last": "Ayers", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jacopobassan/73.jpg", - "boolean": false, - "guid": "e0993984-2847-4494-bcec-273869d52b83", - "integer": 68, - "date": "Sun Nov 14 1971 20:32:38 GMT-0800 (PST)", - "shortText": "reprehenderit", - "mediumText": "Sit pariatur pariatur commodo magna fugiat aliquip proident qui. In tempor eu commodo id elit qui. Dolore do irure Lorem officia minim sit nostrud ad qui enim enim. Ut est nisi voluptate qui quis anim dolor sunt ad duis commodo. Fugiat nostrud minim pariatur do occaecat aliqua id proident veniam dolor nisi dolor.", - "longText": "Ad culpa eu proident mollit est duis eu ad et tempor dolore. Amet exercitation nostrud dolore nulla fugiat veniam dolor. Velit sit tempor aliquip ut officia. Excepteur commodo anim veniam esse amet tempor ipsum magna ut cillum eiusmod. Aute eiusmod in aliqua Lorem do aliqua ut id aliquip consectetur ut. Deserunt irure veniam voluptate eu esse in ea eiusmod.\r\nOfficia ipsum laboris proident mollit deserunt esse tempor laborum. Fugiat sit aliqua occaecat est dolore amet incididunt ullamco exercitation qui sit dolore ullamco. Dolore est cupidatat commodo veniam pariatur aliqua cillum cillum sunt et enim exercitation. Ut eu consequat culpa anim. Adipisicing enim et deserunt ullamco adipisicing dolor eu. Laboris velit labore labore consectetur ea pariatur quis.\r\nCulpa anim consectetur ad sint tempor aliquip. Ad magna cillum ut Lorem exercitation esse id labore sint nulla enim. Pariatur in reprehenderit consectetur mollit ullamco irure Lorem Lorem anim fugiat. Aliquip est elit sunt nisi labore. Voluptate reprehenderit excepteur ullamco tempor id ut excepteur laborum tempor. Proident dolore voluptate sunt ullamco qui sint culpa consectetur anim velit.\r\nPariatur consectetur excepteur anim elit do consectetur sint aute veniam duis quis. Ut ipsum mollit amet culpa laborum. Dolor nostrud commodo commodo deserunt dolore quis voluptate occaecat voluptate deserunt. Anim ipsum proident non eu eu ea nulla aliqua aliqua amet sit officia ut. Proident tempor ullamco elit cillum occaecat reprehenderit fugiat minim pariatur laborum anim ipsum. Velit Lorem Lorem do mollit occaecat ullamco adipisicing ut officia. Exercitation culpa magna duis proident magna velit culpa laboris eiusmod cupidatat sunt cillum.\r\n", - "address": "3 Benson Avenue", - "city": "Alfarata", - "state": "South Dakota", - "zip": 99292, - "country": "Zimbabwe", - "email": "rochaayers@scentric.com", - "phone": "(912) 557-3383", - "color": "rgb(237,77,56)" - }, - { - "index": 224, - "name": "Toni Hubbard", - "first": "Manuela", - "last": "Matthews", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/benhalllondon/73.jpg", - "boolean": false, - "guid": "6a196cdc-9694-4c30-a010-23fe19d05ccf", - "integer": 64, - "date": "Wed Mar 30 1994 01:18:27 GMT-0800 (PST)", - "shortText": "amet laboris do pariatur", - "mediumText": "Quis quis ex anim ea officia anim aute. Duis nostrud adipisicing consectetur dolor aute laboris deserunt eu. Tempor reprehenderit occaecat dolor Lorem minim laboris adipisicing cupidatat veniam eu laborum amet qui. Do Lorem anim do cupidatat.", - "longText": "Sit cupidatat ullamco esse sit Lorem laboris. Nisi culpa excepteur aute ad consectetur. Ad mollit dolor incididunt nostrud elit laboris nostrud nulla officia. Exercitation cillum proident deserunt aute minim proident.\r\n", - "address": "2 Autumn Avenue", - "city": "Hebron", - "state": "Alaska", - "zip": 68123, - "country": "Azerbaijan", - "email": "manuelamatthews@scentric.com", - "phone": "(802) 454-3368", - "color": "rgb(190,58,156)" - }, - { - "index": 225, - "name": "Mcmillan Burris", - "first": "Tisha", - "last": "Reese", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/umurgdk/73.jpg", - "boolean": false, - "guid": "4c6aa7ad-4530-4d0d-a5d2-bc8d25596090", - "integer": 19, - "date": "Tue Mar 08 2005 12:31:16 GMT-0800 (PST)", - "shortText": "deserunt elit occaecat", - "mediumText": "Duis veniam voluptate sint nulla adipisicing ea eiusmod qui eiusmod sunt sunt amet labore.", - "longText": "Dolor sint nostrud velit sit deserunt dolore. Duis velit commodo do tempor enim. Ex non occaecat ea commodo sint id officia aute. Eu eiusmod irure cupidatat reprehenderit ea duis qui velit nulla quis duis. Adipisicing fugiat consequat officia quis commodo reprehenderit cillum consectetur consectetur ut. Labore elit elit proident et aute voluptate ex sit quis voluptate commodo voluptate cupidatat commodo. Nulla deserunt elit in non cillum fugiat laborum pariatur esse in.\r\nQui aliqua quis eu enim cillum occaecat labore. Qui cupidatat nisi cillum commodo. Lorem nisi eu sint esse excepteur do.\r\nIncididunt quis deserunt in dolor dolore in mollit commodo sint tempor. Ullamco pariatur magna ad amet voluptate mollit aliquip. Ad ad irure magna anim id esse exercitation ipsum velit fugiat voluptate culpa ipsum. Officia ullamco fugiat minim dolor aliqua nulla amet eu nulla commodo. Duis ea et sunt laborum.\r\nLabore excepteur non aliquip sunt ad anim. Consectetur ipsum officia amet consectetur est. Fugiat duis exercitation nulla aliqua esse tempor aliquip et sunt qui.\r\nDeserunt nostrud sunt elit enim id id pariatur proident enim duis. Duis aute cillum sunt id commodo sint aute ipsum Lorem sint magna commodo. Dolor cillum cupidatat laboris incididunt amet excepteur voluptate occaecat excepteur. Veniam et nulla non tempor.\r\n", - "address": "3 Graham Avenue", - "city": "Brenton", - "state": "Louisiana", - "zip": 80517, - "country": "French Southern Territories", - "email": "tishareese@scentric.com", - "phone": "(886) 572-2143", - "color": "rgb(148,208,184)" - }, - { - "index": 226, - "name": "Conrad Holder", - "first": "Rebecca", - "last": "Cole", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_vectorhugo/73.jpg", - "boolean": false, - "guid": "2db95cdc-541c-4e6c-bb8a-9afb329188a9", - "integer": 96, - "date": "Thu Sep 30 1971 17:22:25 GMT-0700 (PDT)", - "shortText": "cillum minim aute laboris", - "mediumText": "Anim ullamco labore do labore nisi id cillum.", - "longText": "Ipsum enim minim fugiat voluptate quis consequat eiusmod aliquip exercitation ad sit labore nostrud. Dolore qui enim irure dolore anim enim amet et cupidatat. Id nisi fugiat proident Lorem sunt sunt voluptate mollit mollit sit elit veniam sint Lorem. Consectetur pariatur commodo ullamco duis nostrud. Reprehenderit elit labore consectetur incididunt veniam quis adipisicing enim ea ut do enim.\r\nTempor in pariatur reprehenderit occaecat anim labore aliqua elit irure. Duis fugiat deserunt commodo occaecat pariatur sint. Dolore aliqua aute ut aliqua qui.\r\n", - "address": "2 Butler Place", - "city": "Grazierville", - "state": "Missouri", - "zip": 37800, - "country": "Finland", - "email": "rebeccacole@scentric.com", - "phone": "(863) 438-3293", - "color": "rgb(252,113,153)" - }, - { - "index": 227, - "name": "Finley Norman", - "first": "Kemp", - "last": "Ramsey", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/traicyer/73.jpg", - "boolean": true, - "guid": "8d123ac2-6255-4f83-a056-c073a8853e3c", - "integer": 94, - "date": "Mon Nov 19 1979 06:35:50 GMT-0800 (PST)", - "shortText": "dolor id consequat occaecat", - "mediumText": "Magna cupidatat incididunt non excepteur deserunt eiusmod reprehenderit aliquip aute et. Culpa mollit laboris qui et veniam reprehenderit do eu sit id.", - "longText": "Mollit minim culpa ipsum aute ullamco. Tempor esse dolor exercitation in enim culpa ipsum sint eu laborum. Ea enim laboris veniam non duis quis. Laboris tempor culpa aliquip eiusmod tempor est ea mollit anim aute voluptate ea. Adipisicing incididunt irure cillum nisi sunt enim duis. Fugiat nostrud officia enim ea.\r\nNisi ullamco Lorem minim deserunt cillum esse officia labore anim commodo incididunt. Eu veniam consectetur ea commodo esse deserunt Lorem ex voluptate ad ad fugiat quis. Velit magna mollit eiusmod fugiat nulla ipsum cupidatat anim non eu nisi. Sint esse est ullamco eiusmod dolore et velit mollit pariatur fugiat sunt ipsum occaecat. Proident quis magna in occaecat aliqua nisi exercitation ea in.\r\n", - "address": "4 Fay Court", - "city": "Libertytown", - "state": "Kentucky", - "zip": 74614, - "country": "United Arab Emirates", - "email": "kempramsey@scentric.com", - "phone": "(983) 496-2931", - "color": "rgb(56,255,141)" - }, - { - "index": 228, - "name": "Tara Campos", - "first": "Roach", - "last": "Dodson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/brunodesign1206/73.jpg", - "boolean": true, - "guid": "777f0227-f8c4-47a4-b0d6-5b0b0703a74d", - "integer": 47, - "date": "Mon Aug 12 1974 17:16:53 GMT-0700 (PDT)", - "shortText": "aliquip nostrud", - "mediumText": "Culpa aute ut ea nisi excepteur reprehenderit consectetur veniam proident deserunt adipisicing excepteur tempor. Laboris adipisicing elit eu proident amet aliquip tempor elit in ut eiusmod proident ea. Aliquip sint quis sit nulla esse ut ullamco qui nostrud nisi sit. Velit cupidatat tempor sit esse. Anim ad officia dolore do mollit et excepteur cupidatat veniam.", - "longText": "Exercitation mollit et Lorem qui aliqua ex pariatur aliquip. Quis elit amet esse eiusmod labore. Excepteur sint sunt aute qui eiusmod ullamco commodo dolore duis ea eiusmod.\r\nConsequat irure minim mollit id amet pariatur qui. Exercitation aute nostrud veniam minim Lorem commodo velit. Nostrud sunt officia dolor aliquip veniam veniam cupidatat. Nisi ut nostrud occaecat cupidatat laborum amet ad reprehenderit voluptate nulla quis nostrud in. Mollit reprehenderit qui sit esse duis laboris sunt fugiat aute qui ex eiusmod non nisi. Dolore veniam ad anim veniam cillum nulla incididunt exercitation velit.\r\nNostrud tempor deserunt est minim aute anim dolore. Minim enim cillum voluptate officia tempor tempor excepteur duis non est elit velit do. Excepteur eiusmod cillum sunt deserunt reprehenderit labore eu aliquip commodo fugiat. Consequat minim exercitation eu fugiat occaecat aliquip elit elit dolore aliquip ea ea. Aliqua ex irure cillum labore ut mollit esse veniam sit.\r\nAliqua nisi non eu ad est enim reprehenderit culpa laborum. Mollit aute esse velit est labore quis irure. Nostrud tempor labore labore aliquip laboris excepteur ad. Lorem incididunt proident pariatur laboris do. Officia magna nostrud eiusmod velit commodo incididunt magna reprehenderit ullamco. Dolore culpa culpa cillum minim voluptate in.\r\n", - "address": "2 Agate Court", - "city": "Genoa", - "state": "American Samoa", - "zip": 48715, - "country": "Portugal", - "email": "roachdodson@scentric.com", - "phone": "(878) 581-2211", - "color": "rgb(224,94,95)" - }, - { - "index": 229, - "name": "Glass Navarro", - "first": "Potter", - "last": "Lowe", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/michalhron/73.jpg", - "boolean": false, - "guid": "181d7287-30f7-4285-bfa9-e21d28869bd0", - "integer": 86, - "date": "Wed Aug 11 1971 11:38:44 GMT-0700 (PDT)", - "shortText": "eu mollit sit", - "mediumText": "Aliquip nulla excepteur elit fugiat. Aliqua do enim eu dolor ipsum nostrud exercitation et veniam ad dolor. Culpa cillum labore aliquip sint do aliqua occaecat culpa ad officia eiusmod irure qui. Occaecat nostrud ad ullamco consequat.", - "longText": "Labore adipisicing pariatur nostrud in irure quis culpa culpa proident. Nulla et est exercitation id Lorem quis in. Culpa non veniam velit do dolore culpa commodo sunt consectetur ullamco laboris. Aliqua est fugiat reprehenderit occaecat qui. Et do Lorem veniam anim cillum do ullamco tempor elit amet.\r\nAliqua exercitation in aute excepteur aute elit nisi ex minim. Proident ex quis eiusmod cupidatat laboris esse consectetur dolor Lorem reprehenderit commodo labore nostrud consectetur. Ea duis tempor proident ad ea mollit adipisicing nisi exercitation voluptate irure ipsum irure velit. Tempor anim eiusmod sint aliquip cillum consectetur deserunt.\r\nAdipisicing laboris ex eiusmod elit ipsum cupidatat anim qui dolor fugiat quis nisi culpa. Sint consequat irure laborum in enim elit irure incididunt sit. Magna consequat quis deserunt ad mollit deserunt. Non id anim consectetur culpa ut do anim do sint veniam. Est amet ea minim minim labore Lorem.\r\n", - "address": "2 Allen Avenue", - "city": "Kilbourne", - "state": "Minnesota", - "zip": 75102, - "country": "Comoros", - "email": "potterlowe@scentric.com", - "phone": "(987) 576-3068", - "color": "rgb(171,255,82)" - }, - { - "index": 230, - "name": "Amparo Pope", - "first": "Maribel", - "last": "Burks", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/itskylemacey/73.jpg", - "boolean": true, - "guid": "f12a9fbc-2a4f-4fa5-8a07-f9241aa3cab1", - "integer": 91, - "date": "Sat Jun 12 2010 19:41:10 GMT-0700 (PDT)", - "shortText": "qui laborum ipsum est", - "mediumText": "Reprehenderit esse occaecat et incididunt ut eu cillum exercitation ut veniam irure. Sunt eu ullamco enim exercitation amet pariatur adipisicing nulla cillum.", - "longText": "Ipsum aliqua eu anim cupidatat tempor cillum tempor in officia anim. Culpa tempor adipisicing qui elit culpa eiusmod aliquip commodo. Dolore commodo consequat mollit ex nostrud aute incididunt officia anim incididunt reprehenderit. Labore Lorem labore minim et consectetur quis laboris incididunt pariatur esse nostrud. Dolore aute mollit esse esse.\r\nIncididunt sunt cillum nisi ea. Fugiat culpa excepteur id est magna sit proident labore commodo. Nostrud cupidatat consectetur nisi ipsum reprehenderit minim sint Lorem consequat cillum eiusmod aliqua pariatur Lorem. Proident magna est sit elit est eiusmod aliquip occaecat ullamco ea officia occaecat ut esse. Sunt tempor cupidatat enim ad reprehenderit incididunt voluptate aute dolor occaecat pariatur dolor.\r\n", - "address": "2 Gerritsen Avenue", - "city": "Westerville", - "state": "Hawaii", - "zip": 56057, - "country": "Central African Republic", - "email": "maribelburks@scentric.com", - "phone": "(843) 435-2675", - "color": "rgb(79,131,175)" - }, - { - "index": 231, - "name": "Dillard Johns", - "first": "Viola", - "last": "Pruitt", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mikaeljorhult/73.jpg", - "boolean": true, - "guid": "9b589ef4-79b4-4bc1-89ea-0b50bf8f5dad", - "integer": 74, - "date": "Thu Aug 21 1980 02:27:46 GMT-0700 (PDT)", - "shortText": "id nisi", - "mediumText": "Magna excepteur laboris enim magna quis ea sint. Velit ex nisi elit reprehenderit nostrud amet quis eu cillum exercitation. Ex elit adipisicing exercitation esse.", - "longText": "Sint nisi cillum ipsum laboris. Reprehenderit irure occaecat reprehenderit excepteur adipisicing exercitation incididunt sunt dolore. Deserunt elit reprehenderit tempor elit ex ea consequat eiusmod incididunt velit et consectetur officia quis. Id sunt enim quis ex nulla in ullamco voluptate anim esse nulla. Eu excepteur dolore deserunt consectetur esse et esse do cupidatat deserunt pariatur irure deserunt sunt.\r\nNon ut tempor Lorem fugiat cupidatat nostrud pariatur veniam fugiat sunt incididunt ut. Exercitation anim officia incididunt irure nulla sunt commodo eu non. Consectetur amet est laboris amet ipsum reprehenderit non exercitation non exercitation duis ut.\r\nEu laborum dolor amet sint deserunt mollit officia est. Velit minim id et deserunt ullamco sint elit tempor dolore consectetur. Cillum aute ut consequat aliqua laboris. Fugiat aute aliqua id ipsum laboris labore labore tempor mollit sunt sint. Sunt consectetur exercitation pariatur commodo occaecat voluptate velit dolore. Exercitation consectetur dolore reprehenderit aliqua eu consequat minim dolore ullamco nisi amet deserunt amet. Occaecat amet nulla incididunt ut cupidatat.\r\nPariatur irure sunt duis Lorem ad veniam ea duis. Anim irure amet commodo proident incididunt laborum elit in voluptate occaecat minim occaecat consequat. Dolore Lorem ex ipsum nulla deserunt dolore aute. Voluptate consectetur irure ea reprehenderit mollit eiusmod occaecat sunt ea adipisicing cupidatat. Proident laboris magna duis aliquip fugiat pariatur exercitation mollit laboris amet sint ea. Sit ex ex consequat sit.\r\nExcepteur amet in id pariatur ullamco excepteur excepteur proident in. Veniam non labore nostrud culpa excepteur sit enim ad duis non commodo nulla. Minim incididunt in ad reprehenderit. Culpa esse magna duis exercitation laboris. Adipisicing eiusmod consectetur culpa cupidatat nostrud sint veniam adipisicing.\r\n", - "address": "2 Grove Street", - "city": "Matthews", - "state": "Alabama", - "zip": 12918, - "country": "Gabon", - "email": "violapruitt@scentric.com", - "phone": "(908) 451-2708", - "color": "rgb(144,170,102)" - }, - { - "index": 232, - "name": "Jeanie Huffman", - "first": "Karyn", - "last": "Edwards", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ryoseptiian/73.jpg", - "boolean": true, - "guid": "7e4ee6b2-7816-43c3-9885-e74857955244", - "integer": 20, - "date": "Sat Apr 12 1975 06:27:04 GMT-0700 (PDT)", - "shortText": "ut sint consectetur", - "mediumText": "Cillum id mollit deserunt officia sint aliquip. Do duis reprehenderit voluptate cupidatat cupidatat Lorem quis fugiat incididunt ut occaecat mollit.", - "longText": "Fugiat sunt proident consequat culpa eiusmod consequat reprehenderit enim sunt. Sit ea ex ex qui labore in. Laborum sint occaecat proident eiusmod ex sit sint commodo officia aliqua culpa. Aliqua reprehenderit exercitation labore Lorem mollit fugiat.\r\nOfficia laborum reprehenderit amet laboris ex. Ullamco qui adipisicing ex laboris do minim proident veniam. Quis voluptate deserunt elit in culpa. Lorem id sint ut exercitation non qui.\r\nEu officia do irure veniam proident in veniam irure. Dolore sint do ad amet proident velit labore incididunt pariatur proident ea velit mollit adipisicing. Anim dolor in reprehenderit sunt ea nostrud est pariatur non do ad.\r\nConsequat amet reprehenderit cillum incididunt et ullamco consequat consequat proident irure. Est veniam tempor ea ad. Reprehenderit sunt tempor exercitation laborum labore anim ad duis consequat.\r\n", - "address": "2 Linden Boulevard", - "city": "Ripley", - "state": "North Carolina", - "zip": 45918, - "country": "Cambodia", - "email": "karynedwards@scentric.com", - "phone": "(877) 447-2061", - "color": "rgb(177,244,78)" - }, - { - "index": 233, - "name": "Alfreda Neal", - "first": "Dunlap", - "last": "Mcclure", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/olivierpineda/73.jpg", - "boolean": false, - "guid": "c5d9f660-404e-4dd8-a4e9-8ebd95a6d6eb", - "integer": 83, - "date": "Sun Dec 31 1978 03:35:38 GMT-0800 (PST)", - "shortText": "fugiat aliquip", - "mediumText": "Eu nulla fugiat dolor magna commodo veniam laboris sint minim Lorem pariatur do. Do elit esse magna voluptate aute nisi cillum. Voluptate culpa aliquip ea quis sunt cillum dolore cupidatat.", - "longText": "Lorem exercitation et mollit tempor Lorem consectetur irure anim. Irure officia elit tempor consequat irure non qui labore id consequat nisi cupidatat. Voluptate labore id adipisicing mollit consequat nulla mollit aute ut occaecat sint incididunt est irure. Tempor irure eiusmod commodo cillum. Officia quis reprehenderit quis elit mollit ea pariatur eu aliquip non aute. Incididunt amet consequat ad velit consequat dolore elit velit qui ea. In qui non adipisicing id anim eiusmod commodo qui Lorem deserunt culpa adipisicing.\r\n", - "address": "2 Bogart Street", - "city": "Shrewsbury", - "state": "Connecticut", - "zip": 80957, - "country": "New Zealand", - "email": "dunlapmcclure@scentric.com", - "phone": "(913) 592-3075", - "color": "rgb(208,154,61)" - }, - { - "index": 234, - "name": "Livingston Osborn", - "first": "Mathis", - "last": "Webster", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/aaronalfred/73.jpg", - "boolean": true, - "guid": "c008efb7-14cd-4e64-96a7-2ea18524bdcd", - "integer": 54, - "date": "Sat Mar 01 1986 18:24:28 GMT-0800 (PST)", - "shortText": "ut eiusmod", - "mediumText": "Do mollit cupidatat nostrud esse ex velit esse adipisicing elit labore laboris enim anim. Magna dolore nulla cillum qui laborum et sint anim culpa non aute et. Tempor nisi eiusmod laboris ex aliquip commodo id. Eiusmod aliqua aliqua sunt non ipsum veniam aliqua consequat.", - "longText": "Elit do reprehenderit eiusmod minim quis cillum ad culpa. Cupidatat eu laborum amet duis consectetur culpa fugiat dolore aute. Lorem veniam exercitation cupidatat veniam et nulla. Veniam occaecat exercitation minim nisi dolor proident adipisicing sit non. Occaecat dolore ea minim in deserunt.\r\nSint aliqua magna Lorem nostrud nisi consequat mollit. Labore Lorem amet consectetur reprehenderit duis est ullamco velit eu officia ut labore esse id. Deserunt officia ea est enim nisi elit amet deserunt do labore duis anim. Aliquip non dolore cillum dolore dolor ex tempor velit aliqua enim.\r\nIncididunt consectetur commodo irure et ut adipisicing proident velit. Qui quis consequat id irure. Mollit amet proident irure incididunt deserunt magna.\r\nLaboris ut sint incididunt sit proident officia ex non. Consequat laborum Lorem aute voluptate est laborum quis Lorem nulla. Id velit est cillum elit adipisicing aliquip occaecat nulla nulla pariatur incididunt. In veniam occaecat occaecat ad amet culpa tempor. Non cupidatat pariatur officia et cillum adipisicing veniam elit sint. In cillum minim in occaecat adipisicing. Exercitation labore in ipsum veniam non veniam amet quis.\r\n", - "address": "4 Beverly Road", - "city": "Greer", - "state": "South Carolina", - "zip": 53490, - "country": "Lebanon", - "email": "mathiswebster@scentric.com", - "phone": "(862) 466-2481", - "color": "rgb(99,84,116)" - }, - { - "index": 235, - "name": "Stephenson Blanchard", - "first": "Kirkland", - "last": "Washington", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mrebay007/73.jpg", - "boolean": false, - "guid": "8dc10004-46f6-432d-ad1a-b1e2ed707ea2", - "integer": 48, - "date": "Mon Feb 20 2012 00:23:49 GMT-0800 (PST)", - "shortText": "officia", - "mediumText": "Incididunt cupidatat non esse ut adipisicing mollit aliquip ipsum eiusmod ullamco id aute nostrud veniam. Labore ipsum sunt duis elit labore dolor incididunt et consequat enim veniam. Ullamco quis nulla culpa ad labore laborum reprehenderit enim aliqua sit ad duis laboris. Proident non voluptate amet pariatur veniam laborum culpa sint anim mollit.", - "longText": "Nostrud mollit aliquip consectetur voluptate cillum. Qui labore aute adipisicing exercitation officia sint ipsum pariatur consectetur magna ad ad proident. Aute commodo esse veniam deserunt elit. Quis magna occaecat culpa eiusmod ipsum elit occaecat culpa. Excepteur laborum tempor ad consequat consectetur quis tempor anim. Mollit ex magna mollit ad voluptate excepteur.\r\nAmet incididunt veniam sunt deserunt non dolor. Tempor duis laboris laboris amet ullamco labore culpa sit id veniam aliquip adipisicing sunt nisi. Laboris et irure veniam pariatur quis anim officia ad. Ullamco labore anim ipsum labore ex velit nisi fugiat. Ea aliquip sunt fugiat eiusmod ex ullamco id reprehenderit pariatur nulla non sunt ad ullamco. Aliqua enim occaecat tempor ex eu magna eu nulla ex exercitation aute.\r\nQui excepteur dolore aute sunt. Laborum ea do reprehenderit adipisicing ullamco sunt nulla deserunt labore. Adipisicing eiusmod consequat in velit proident voluptate cillum. Ipsum eu adipisicing dolore aute dolor fugiat id deserunt aute veniam. Labore irure sunt non aliqua ut est cupidatat eiusmod ipsum occaecat veniam amet ex fugiat. Consequat voluptate et dolor sint cupidatat anim eiusmod enim veniam.\r\nIncididunt quis non quis ea exercitation. Cupidatat sint duis est commodo sit nulla aliqua ut amet quis fugiat. Amet aliquip aliqua duis minim aute fugiat. Quis veniam sunt ipsum voluptate. Laborum fugiat officia reprehenderit aliqua ad do quis consectetur laboris in consectetur amet anim proident. Deserunt veniam ut pariatur sunt magna aute sit pariatur. Cupidatat dolor mollit aliqua est occaecat dolore laboris sint.\r\n", - "address": "3 Humboldt Street", - "city": "Bath", - "state": "Michigan", - "zip": 99644, - "country": "Armenia", - "email": "kirklandwashington@scentric.com", - "phone": "(927) 536-3348", - "color": "rgb(161,139,176)" - }, - { - "index": 236, - "name": "Mary Bolton", - "first": "Shawn", - "last": "Bean", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thisisgordon/73.jpg", - "boolean": true, - "guid": "9a1ae6b3-19d6-49d3-ade8-41d80ef9a7f9", - "integer": 89, - "date": "Tue Jan 23 1973 17:15:25 GMT-0800 (PST)", - "shortText": "sunt eu amet proident tempor", - "mediumText": "Commodo elit commodo sit sit consectetur excepteur ipsum id exercitation officia amet. Enim amet occaecat reprehenderit ipsum cillum tempor.", - "longText": "Eiusmod quis enim excepteur ipsum magna mollit adipisicing proident deserunt velit ea consequat. Cillum cillum commodo sit ipsum enim ullamco elit consequat non. Ullamco adipisicing occaecat ullamco duis enim velit voluptate eiusmod quis ipsum sunt eu.\r\nEiusmod consectetur id ea ut velit ad eu. Cillum adipisicing id nostrud qui aliquip excepteur anim. Non nulla dolor proident culpa. Adipisicing ea laborum minim occaecat cupidatat sint. Id commodo ipsum laboris ullamco esse excepteur. Duis deserunt consequat proident irure sit ad fugiat.\r\nEx ipsum amet minim cillum ut mollit minim ullamco. Dolor nostrud non dolor est tempor ad ipsum. Minim pariatur ut reprehenderit Lorem.\r\nUllamco eu tempor id fugiat officia in eu incididunt ut elit culpa. Amet eiusmod tempor eiusmod sunt. Nostrud eiusmod eiusmod exercitation sit voluptate dolore. Sint magna officia et consectetur aute nostrud qui. Officia est non non laborum aliqua eu nisi magna do id. Do amet sit culpa pariatur do sunt et eiusmod veniam. Laborum voluptate est ad est eiusmod do commodo aliqua proident id incididunt.\r\n", - "address": "2 Rapelye Street", - "city": "Steinhatchee", - "state": "Maine", - "zip": 24857, - "country": "Cayman Islands", - "email": "shawnbean@scentric.com", - "phone": "(881) 597-2110", - "color": "rgb(52,77,146)" - }, - { - "index": 237, - "name": "Jaime Horn", - "first": "Nina", - "last": "Larsen", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rainfalls/73.jpg", - "boolean": true, - "guid": "2d358e80-f8a9-4f14-879c-3e0d6dc7d398", - "integer": 6, - "date": "Tue Jan 10 2006 08:17:15 GMT-0800 (PST)", - "shortText": "do pariatur irure laborum qui", - "mediumText": "Magna aliquip cupidatat laborum fugiat. Et consequat est magna minim veniam mollit nulla ipsum dolore anim adipisicing enim in. Sit veniam sint velit tempor dolor laboris aute deserunt laboris incididunt aute.", - "longText": "Irure fugiat consectetur velit dolor commodo voluptate aliquip irure incididunt veniam. Cillum ipsum cupidatat qui velit consequat. Dolor laboris voluptate irure exercitation aute fugiat. Eu reprehenderit eu Lorem ex. Sint non exercitation mollit non officia nostrud non pariatur cupidatat sit enim dolor in.\r\nId qui pariatur labore commodo ex irure amet. Ex eiusmod esse consequat consequat. Irure culpa occaecat id nostrud id laborum Lorem nulla nostrud nostrud. Velit nulla voluptate cupidatat laboris do. Nisi amet anim fugiat irure esse anim exercitation non. Incididunt in id sit Lorem anim consectetur tempor ex do. Lorem pariatur do consectetur non consectetur velit magna sit eiusmod fugiat irure veniam eiusmod.\r\nMinim consequat ad nostrud sint occaecat et ea non ad et. Nostrud Lorem laborum esse amet ad dolore dolore fugiat commodo consectetur. Fugiat sint et incididunt nulla et est laborum esse ad aliqua. Quis est cupidatat sit ad reprehenderit eu commodo. Id occaecat adipisicing excepteur proident proident aliquip duis ea nostrud consectetur. Ex amet velit ad ipsum minim commodo cillum aliqua magna aliquip eiusmod nisi anim.\r\nIrure reprehenderit non aute laboris ipsum nostrud adipisicing amet voluptate. Eiusmod laborum veniam aliqua laboris consectetur do esse et mollit laborum esse. Quis excepteur officia sunt eu eiusmod enim laboris in aute. Minim nisi ipsum labore laborum. Officia eiusmod nostrud qui consectetur.\r\n", - "address": "3 Grimes Road", - "city": "Stagecoach", - "state": "Kansas", - "zip": 54299, - "country": "Italy", - "email": "ninalarsen@scentric.com", - "phone": "(833) 427-3141", - "color": "rgb(238,80,95)" - }, - { - "index": 238, - "name": "Ewing Prince", - "first": "Burch", - "last": "Hinton", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/eldelentes/73.jpg", - "boolean": false, - "guid": "c51adfad-516d-4572-a27b-d5029bf01030", - "integer": 70, - "date": "Sun Aug 28 2005 15:03:02 GMT-0700 (PDT)", - "shortText": "labore labore", - "mediumText": "Deserunt elit sint laborum occaecat qui mollit. In anim ad ea dolor enim nisi ut veniam. Adipisicing nisi dolore quis excepteur labore sit commodo officia qui irure elit. Ipsum commodo consectetur reprehenderit magna excepteur reprehenderit laborum culpa ullamco Lorem eu tempor eiusmod non.", - "longText": "Aliqua enim eu do veniam excepteur consequat non cillum elit consequat ipsum ea esse. Elit sit et nulla laboris ad consectetur minim ut tempor consequat do. Enim aute pariatur nostrud aliqua nulla amet adipisicing.\r\nCulpa nulla dolore exercitation dolore nulla officia. Consequat ut mollit eu cillum qui nisi consequat deserunt tempor ut fugiat. Commodo reprehenderit dolore mollit ut. Et irure consequat qui ad ipsum enim cillum in in. Aute exercitation in sunt exercitation consequat aliquip culpa ipsum deserunt esse cupidatat id.\r\nQuis deserunt quis deserunt reprehenderit sint do. Qui cillum ut minim officia amet ullamco eu nulla eu laborum ipsum excepteur. Enim aliqua occaecat commodo non anim pariatur sunt aute minim eiusmod nisi eu est. Minim esse duis nisi exercitation id dolor. Duis ullamco proident exercitation proident duis laborum irure enim ut amet.\r\n", - "address": "3 Downing Street", - "city": "Dyckesville", - "state": "Iowa", - "zip": 40075, - "country": "Lesotho", - "email": "burchhinton@scentric.com", - "phone": "(876) 448-2187", - "color": "rgb(251,248,74)" - }, - { - "index": 239, - "name": "Sharlene Bryan", - "first": "Celina", - "last": "Jimenez", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/robinclediere/73.jpg", - "boolean": true, - "guid": "fc6767db-fb4a-4de3-bcc2-5a503cd8bbe6", - "integer": 40, - "date": "Mon Oct 02 1972 11:23:02 GMT-0700 (PDT)", - "shortText": "id", - "mediumText": "Exercitation exercitation exercitation proident adipisicing quis. Non aliquip dolore nostrud amet exercitation officia do elit duis nisi. Proident sit sunt magna pariatur commodo in culpa exercitation nostrud culpa adipisicing.", - "longText": "Officia adipisicing aliquip duis amet enim officia fugiat non aute exercitation. Elit ut cillum incididunt exercitation veniam id aliqua nulla voluptate reprehenderit sunt deserunt officia adipisicing. Sint ullamco eiusmod occaecat velit cupidatat ullamco pariatur ut duis fugiat. Non ullamco non aliqua cupidatat occaecat ipsum ea ut. Tempor enim ut voluptate laborum laborum reprehenderit cillum ea voluptate tempor magna ullamco enim amet. Dolor cupidatat sint do mollit.\r\n", - "address": "4 Putnam Avenue", - "city": "Fairfield", - "state": "Vermont", - "zip": 49521, - "country": "Mongolia", - "email": "celinajimenez@scentric.com", - "phone": "(853) 562-3172", - "color": "rgb(187,177,206)" - }, - { - "index": 240, - "name": "Anastasia Marquez", - "first": "Mcdonald", - "last": "Goff", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nerrsoft/73.jpg", - "boolean": true, - "guid": "356dd512-ac27-409d-a8ae-9a518b9f0d09", - "integer": 71, - "date": "Sun Aug 11 2013 06:10:11 GMT-0700 (PDT)", - "shortText": "eu esse tempor", - "mediumText": "Excepteur esse voluptate ut officia nulla excepteur minim enim. Dolore tempor dolore ex sunt pariatur irure.", - "longText": "Irure consequat qui labore nulla veniam. Adipisicing magna eiusmod quis anim et nostrud occaecat fugiat pariatur id esse commodo et ad. Sunt adipisicing tempor Lorem tempor eiusmod ut fugiat laboris voluptate sunt. Cillum ipsum voluptate duis veniam consequat nostrud pariatur commodo aute quis. Sit aute ex quis voluptate minim incididunt veniam. Excepteur nulla qui proident id est. Id aliquip excepteur proident culpa sunt enim non ad.\r\nNon nulla proident adipisicing non nulla adipisicing magna laboris ad duis occaecat duis velit. Sunt eiusmod nulla laboris quis adipisicing adipisicing excepteur. Ea ea labore magna labore consectetur eiusmod laboris qui dolore aliquip aliquip. Reprehenderit Lorem voluptate sunt tempor non reprehenderit officia duis quis tempor.\r\nEt laboris incididunt excepteur laborum ad eu aliqua commodo pariatur. Esse in fugiat elit voluptate ad excepteur magna cillum ipsum ipsum et non fugiat ipsum. Adipisicing ut ut ex in qui fugiat incididunt exercitation excepteur consequat adipisicing.\r\nExcepteur mollit amet enim dolore ad laborum esse exercitation. Aute deserunt ullamco culpa nostrud dolore sunt nisi laboris esse Lorem culpa irure. Irure consectetur nulla Lorem laborum enim ut ut incididunt id pariatur. Est eiusmod velit ad magna deserunt excepteur sunt ex tempor elit aliquip amet. Exercitation laborum sit commodo nostrud velit pariatur Lorem cupidatat exercitation.\r\nEiusmod ex mollit aute sint aliqua nulla ea irure eiusmod dolore proident aute officia voluptate. Ipsum consequat sunt ea aliquip ea enim sint irure Lorem. Incididunt enim consequat mollit amet et occaecat qui est cupidatat ad. Cupidatat voluptate consequat cupidatat et amet in. Cupidatat id laboris duis nostrud et reprehenderit fugiat. Sit laborum non duis et.\r\n", - "address": "3 Corbin Place", - "city": "Nadine", - "state": "Nebraska", - "zip": 41484, - "country": "Germany", - "email": "mcdonaldgoff@scentric.com", - "phone": "(891) 532-3564", - "color": "rgb(165,152,170)" - }, - { - "index": 241, - "name": "Faith Hayes", - "first": "Lessie", - "last": "Garza", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/hsinyo23/73.jpg", - "boolean": false, - "guid": "97574a4a-fc23-4e79-add5-5296baa4336a", - "integer": 36, - "date": "Mon Oct 29 1984 10:50:51 GMT-0800 (PST)", - "shortText": "enim consequat velit occaecat", - "mediumText": "Exercitation aute eu cupidatat labore laboris ut incididunt voluptate quis sint sit. Enim id incididunt officia aliqua adipisicing ipsum. Et duis laboris tempor velit fugiat.", - "longText": "Magna do nisi exercitation qui. Amet nostrud magna magna deserunt Lorem consectetur consectetur. Laborum exercitation magna occaecat ex commodo. Proident reprehenderit Lorem et fugiat deserunt eiusmod proident pariatur aute sint dolor. Nisi deserunt labore mollit labore eiusmod. Culpa ad aute deserunt occaecat fugiat. Ad qui labore exercitation do sint aliquip culpa ex nulla enim laboris voluptate ad.\r\nLaborum proident sit laborum excepteur. Eiusmod id in dolore sunt pariatur laboris esse. Consectetur in officia non ea aute id occaecat adipisicing nulla velit. Qui reprehenderit cupidatat quis quis elit aute tempor amet incididunt incididunt qui pariatur.\r\nConsequat veniam labore laborum cillum nostrud. Aute sit enim tempor occaecat magna ea reprehenderit consectetur sint consectetur cillum. Qui proident eiusmod quis quis duis. Ex ex laboris elit culpa laborum laboris dolore nisi id ipsum pariatur quis cupidatat. Velit id fugiat Lorem veniam. Elit pariatur culpa incididunt eiusmod anim ullamco dolore. Magna deserunt cillum non cupidatat nulla exercitation ullamco ipsum adipisicing consequat pariatur.\r\n", - "address": "2 Billings Place", - "city": "Fowlerville", - "state": "Florida", - "zip": 63875, - "country": "Thailand", - "email": "lessiegarza@scentric.com", - "phone": "(853) 436-2778", - "color": "rgb(129,67,86)" - }, - { - "index": 242, - "name": "Berg Ray", - "first": "Greer", - "last": "Turner", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/axel/73.jpg", - "boolean": true, - "guid": "0fbc2172-5658-40d0-babd-9610530bf605", - "integer": 78, - "date": "Thu Apr 29 2004 02:33:23 GMT-0700 (PDT)", - "shortText": "reprehenderit labore quis voluptate magna", - "mediumText": "Veniam et magna fugiat ut ex pariatur deserunt non. Ullamco dolor esse esse ut laboris reprehenderit eiusmod amet enim. Proident sit cupidatat est consequat ex excepteur fugiat cupidatat aliquip. Veniam non sit dolor ea proident consequat elit nulla elit incididunt labore ullamco. Ut proident incididunt laboris esse.", - "longText": "Dolor tempor duis veniam excepteur nulla nostrud. Officia consectetur est adipisicing do duis quis laborum. Tempor proident proident qui consequat eu. Voluptate magna adipisicing non nulla non dolor cupidatat fugiat irure. Pariatur Lorem culpa ex sunt cupidatat. Non incididunt cupidatat mollit esse Lorem. Est et laborum enim et laborum officia non amet aliquip deserunt.\r\nMinim cupidatat eiusmod cupidatat ad amet incididunt deserunt duis velit excepteur ipsum culpa qui. Tempor eiusmod incididunt voluptate dolore id dolor dolor. Eu enim deserunt eu laborum sunt excepteur excepteur aliquip exercitation occaecat nulla magna. Est officia proident irure quis consectetur. Ut magna veniam aliquip laborum fugiat ex ea ut sint laboris sint. Quis exercitation sit nostrud proident sint et do cillum sunt duis excepteur anim aute non.\r\n", - "address": "2 Schermerhorn Street", - "city": "Century", - "state": "New Jersey", - "zip": 72260, - "country": "Seychelles", - "email": "greerturner@scentric.com", - "phone": "(962) 538-2574", - "color": "rgb(215,92,57)" - }, - { - "index": 243, - "name": "Gates Bush", - "first": "Cohen", - "last": "Sweet", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/traneblow/73.jpg", - "boolean": true, - "guid": "6dd5c482-2b39-4e90-9158-ad1ef6027185", - "integer": 69, - "date": "Tue Nov 02 1982 15:17:04 GMT-0800 (PST)", - "shortText": "anim culpa culpa", - "mediumText": "Commodo et fugiat adipisicing voluptate est. Occaecat laborum ad reprehenderit in nulla dolore. Quis aute excepteur fugiat aute laboris. Ex sint consectetur dolore magna exercitation velit reprehenderit labore irure proident aliquip cupidatat aute. Ad eiusmod anim id magna elit aliqua.", - "longText": "Proident amet commodo elit sunt aliqua et irure officia. Eu quis pariatur dolore mollit esse cupidatat ut do. Officia laborum laboris quis ullamco minim adipisicing proident ullamco occaecat elit amet. Ad magna ea est dolore. Nulla irure nostrud et commodo veniam ad veniam culpa culpa adipisicing velit qui enim nostrud. Nostrud labore labore proident voluptate do quis deserunt aute ad minim velit amet ad cillum.\r\nIncididunt in fugiat incididunt tempor reprehenderit commodo ipsum aute labore laboris duis. Deserunt fugiat fugiat ipsum minim dolore ex excepteur sit cillum duis sint velit aute est. Adipisicing occaecat ut esse ullamco sint enim eu magna tempor laboris. Pariatur aute nisi id dolore mollit do occaecat ad. Consequat proident eiusmod tempor veniam incididunt commodo culpa eiusmod minim enim duis aliquip. Dolore irure eiusmod laboris nostrud ipsum laborum Lorem. Amet proident enim exercitation id duis dolor officia sunt.\r\nIn ea fugiat pariatur mollit proident fugiat do labore id Lorem aute. Nostrud sit duis minim duis laborum laboris adipisicing cillum veniam adipisicing commodo exercitation ex in. Aliqua enim velit consequat do tempor enim laborum dolore sit. Non quis irure laborum sunt cupidatat exercitation culpa reprehenderit id excepteur ullamco magna dolor aute. Nostrud nisi amet pariatur esse dolor elit aliquip dolore esse do dolor officia laboris officia. Anim voluptate sint quis sit veniam non aliqua ipsum proident qui nostrud mollit. Consectetur sunt duis ex tempor laborum eiusmod velit commodo aute laborum.\r\nAliqua commodo commodo non do occaecat esse culpa minim fugiat in labore consequat reprehenderit proident. Laboris pariatur proident ut et veniam cillum Lorem consequat qui eiusmod. Enim veniam nisi enim aliquip exercitation cillum fugiat.\r\nProident dolor ipsum aliqua amet sit do labore aute commodo. Laboris fugiat id laboris occaecat. Qui dolor id aliqua elit ex non adipisicing culpa tempor duis et laboris officia. Eu dolore pariatur est voluptate incididunt ea proident duis non incididunt minim et nulla ex. Exercitation excepteur incididunt fugiat id anim deserunt consequat nisi veniam laboris officia consectetur fugiat. Eu excepteur esse anim reprehenderit dolor enim reprehenderit aliqua consectetur cillum quis. Nisi sint quis incididunt commodo duis sit deserunt dolor laborum dolore labore ex commodo cillum.\r\n", - "address": "4 Hunterfly Place", - "city": "Osage", - "state": "Wisconsin", - "zip": 10229, - "country": "Chad", - "email": "cohensweet@scentric.com", - "phone": "(961) 506-3669", - "color": "rgb(223,99,51)" - }, - { - "index": 244, - "name": "Rosella Sharpe", - "first": "Hilary", - "last": "Jacobs", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thimo_cz/73.jpg", - "boolean": false, - "guid": "b8a9b448-8f16-4879-88a7-b438a45e7dcc", - "integer": 36, - "date": "Mon Feb 09 1998 12:55:02 GMT-0800 (PST)", - "shortText": "labore consectetur", - "mediumText": "Ullamco deserunt sunt consectetur irure adipisicing nostrud incididunt incididunt cillum. Amet aute dolor labore pariatur aliquip reprehenderit sunt.", - "longText": "Nisi ad esse nulla reprehenderit elit. Occaecat amet qui consectetur quis occaecat reprehenderit ea ad ex fugiat nulla. Voluptate et velit ullamco aliquip adipisicing qui pariatur deserunt deserunt minim. Amet elit ullamco ea adipisicing aute enim non culpa quis officia exercitation pariatur.\r\nMollit qui ut nulla elit. Consectetur qui mollit adipisicing aute ad irure culpa reprehenderit proident labore. Lorem aliquip consequat tempor laborum duis id dolore aliqua. Ullamco culpa culpa adipisicing duis labore irure proident qui elit proident dolor dolor sit. Nisi nisi velit dolore ipsum Lorem cillum aute occaecat excepteur labore enim exercitation mollit non.\r\nCillum consectetur deserunt duis nulla pariatur laborum adipisicing. Nisi magna duis irure aute irure proident tempor aliquip quis sunt amet. Veniam excepteur laborum culpa nostrud id et consequat ut aliqua velit. In quis enim sunt minim esse est proident elit consequat. Ipsum id ad pariatur officia pariatur cupidatat qui sunt. Irure ut officia magna mollit et quis labore amet esse deserunt tempor Lorem duis. Duis exercitation officia ea est ipsum sunt.\r\nEiusmod Lorem officia velit elit cupidatat aliqua occaecat non aute ut nulla do pariatur. Mollit enim ad officia eiusmod sint qui ex non incididunt. Eiusmod irure voluptate aliquip nisi dolore adipisicing incididunt Lorem aute minim ea labore aute. Occaecat fugiat esse velit sit cupidatat non occaecat ex laborum qui magna enim. Laboris eu nisi nostrud incididunt est. Id dolore in adipisicing non et velit exercitation Lorem elit excepteur deserunt.\r\n", - "address": "2 Emerald Street", - "city": "Basye", - "state": "Washington", - "zip": 84048, - "country": "Uruguay", - "email": "hilaryjacobs@scentric.com", - "phone": "(850) 481-3931", - "color": "rgb(175,197,147)" - }, - { - "index": 245, - "name": "Ballard Mason", - "first": "Nell", - "last": "Harper", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/majksner/73.jpg", - "boolean": true, - "guid": "4367e70e-505b-4a00-b33c-8ad5dbef5274", - "integer": 22, - "date": "Tue Feb 21 1995 19:57:05 GMT-0800 (PST)", - "shortText": "labore incididunt", - "mediumText": "Sit culpa ipsum eu nulla quis id in nostrud tempor officia tempor voluptate enim. Anim ut ullamco reprehenderit eu. Enim veniam do labore eiusmod enim elit dolor.", - "longText": "Duis do esse cillum ea esse ad. Quis incididunt nulla commodo eiusmod. Magna ipsum reprehenderit sit dolor non esse culpa anim aliquip. Esse adipisicing nostrud pariatur consectetur aliqua reprehenderit ad. Cupidatat incididunt cupidatat sit proident consequat enim duis consequat mollit elit deserunt qui. Deserunt dolor do nisi quis laboris dolor irure esse excepteur. Ex consequat incididunt id et in esse officia laboris nostrud.\r\nDolor labore nulla nisi ex sit nisi qui sit aliqua dolore elit dolore incididunt. Laboris qui do duis ipsum pariatur nulla magna. Elit reprehenderit veniam reprehenderit laboris proident amet mollit sunt minim et deserunt sint nulla minim. Nisi sunt eu aute ea ut pariatur est magna voluptate tempor anim. Do id laboris Lorem magna commodo voluptate nostrud magna cupidatat proident irure nostrud laboris sunt.\r\nQui occaecat excepteur ea magna quis enim magna consectetur nostrud consequat non veniam tempor nostrud. Mollit et ex aute aute consectetur veniam aute ut sunt culpa eu. Ullamco amet voluptate adipisicing nulla consectetur in. Minim excepteur enim aliquip nisi velit duis ea. Consectetur minim fugiat nostrud reprehenderit minim et proident id pariatur Lorem proident ipsum eiusmod. Ea nulla enim ullamco aute do. Laborum consequat sint ipsum consectetur.\r\nIrure ullamco dolore aute occaecat excepteur proident dolor. Nulla ut sunt adipisicing dolor elit duis sit laboris commodo do est. Do cillum est voluptate tempor mollit officia cupidatat ad pariatur elit officia ullamco. Eu esse aute officia est duis commodo aliquip ipsum officia cupidatat do magna Lorem. Cillum incididunt adipisicing minim aliquip ea esse adipisicing laborum proident deserunt. Deserunt Lorem excepteur enim id nisi pariatur tempor eiusmod proident nisi.\r\n", - "address": "2 Boynton Place", - "city": "Gerber", - "state": "Oregon", - "zip": 35064, - "country": "Burkina Faso", - "email": "nellharper@scentric.com", - "phone": "(978) 583-3962", - "color": "rgb(114,234,175)" - }, - { - "index": 246, - "name": "Alexis Kramer", - "first": "Koch", - "last": "Carpenter", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/angelcreative/73.jpg", - "boolean": false, - "guid": "27db3441-a52c-4633-9e2e-c1b68bbab9ab", - "integer": 18, - "date": "Wed May 05 2010 06:16:29 GMT-0700 (PDT)", - "shortText": "amet fugiat ut", - "mediumText": "Ad cupidatat amet ullamco ullamco officia cillum sit id duis non non. Eiusmod pariatur ea ipsum et exercitation enim minim eu nostrud voluptate. Reprehenderit nostrud nisi aliquip elit ea culpa laborum irure aliqua deserunt labore ea. Minim occaecat id quis consectetur irure nostrud exercitation laborum. Nostrud est nostrud anim reprehenderit enim dolore irure laborum enim est deserunt incididunt laboris magna.", - "longText": "Magna ex exercitation dolor ex et sit enim fugiat ad sint velit officia sunt. Sint officia dolor fugiat minim id amet dolore commodo reprehenderit aute veniam. Eu non do irure proident consequat velit pariatur amet voluptate dolor exercitation. Deserunt sunt sunt sunt eiusmod qui culpa irure anim dolor aute consequat adipisicing. Enim velit est esse ea laboris Lorem do.\r\nLabore est aliqua exercitation minim et. Proident occaecat eu aliquip minim sit mollit Lorem. Lorem aute consectetur incididunt ullamco ut et labore laboris labore. Exercitation aute ullamco velit duis.\r\nUt velit tempor proident ut. Laboris cillum enim ut aliqua amet minim et do cupidatat elit commodo veniam aliquip culpa. Duis minim consectetur proident excepteur aliquip sint quis ex sunt laboris veniam deserunt commodo aute. Commodo ipsum laborum quis exercitation nostrud aute ad laboris. Anim sint sit et minim amet officia. Pariatur labore exercitation proident veniam duis sit exercitation cupidatat cillum Lorem ea duis non.\r\nEa veniam ad voluptate labore dolore esse in. Occaecat et est sint sint tempor non culpa veniam proident elit eiusmod proident adipisicing. Proident cupidatat et nulla amet nulla.\r\nEx est duis consequat proident est. Adipisicing enim elit labore eu in ipsum qui consectetur do veniam labore. Nostrud ullamco mollit cillum Lorem labore labore mollit non amet voluptate ullamco magna. Ex id quis eiusmod eiusmod Lorem est. Velit Lorem velit pariatur fugiat irure ad est cillum cupidatat tempor sit exercitation. Lorem ea cillum aliqua nisi veniam nostrud excepteur. Magna cillum aliquip anim irure dolor.\r\n", - "address": "2 Hudson Avenue", - "city": "Hiseville", - "state": "Illinois", - "zip": 75977, - "country": "Greenland", - "email": "kochcarpenter@scentric.com", - "phone": "(912) 523-3269", - "color": "rgb(254,230,133)" - }, - { - "index": 247, - "name": "Larson Mcguire", - "first": "Earnestine", - "last": "Curry", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/marcus3de/73.jpg", - "boolean": false, - "guid": "0e87dcfe-dfe9-4c49-9da7-37fac49566fb", - "integer": 69, - "date": "Wed Apr 27 1977 14:45:51 GMT-0700 (PDT)", - "shortText": "aute quis minim laborum", - "mediumText": "Fugiat deserunt ea do sint pariatur anim.", - "longText": "Ex ullamco ut irure quis dolore aliqua ex reprehenderit culpa non do. Amet mollit dolore esse anim velit. Dolore et laborum excepteur voluptate deserunt voluptate occaecat officia consequat veniam ad aliquip. Nisi commodo in Lorem consequat ut irure fugiat quis deserunt dolore.\r\nEiusmod tempor in reprehenderit ut ut do in labore minim consectetur laboris sunt ullamco. Eu ut fugiat enim magna elit proident. Velit laborum ipsum pariatur laborum elit pariatur quis.\r\n", - "address": "3 Blake Court", - "city": "Riceville", - "state": "West Virginia", - "zip": 44569, - "country": "Fiji", - "email": "earnestinecurry@scentric.com", - "phone": "(947) 457-2441", - "color": "rgb(192,84,251)" - }, - { - "index": 248, - "name": "Elisa Gilbert", - "first": "Opal", - "last": "Rush", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lizpradal/73.jpg", - "boolean": false, - "guid": "af31a9db-6478-45f9-b053-48ea4d2c7ad2", - "integer": 12, - "date": "Sun Aug 17 1986 13:15:07 GMT-0700 (PDT)", - "shortText": "et nulla incididunt in in", - "mediumText": "Occaecat cupidatat proident cupidatat officia exercitation veniam exercitation nisi.", - "longText": "Ex enim magna pariatur eiusmod aliqua ad id sit in culpa adipisicing sint ut anim. Ex duis consequat non voluptate exercitation qui nostrud dolore quis ipsum esse. Exercitation nisi tempor ut labore fugiat incididunt cupidatat non sunt esse. Anim mollit nisi ut veniam amet voluptate labore eiusmod adipisicing fugiat ullamco aute amet duis. Ea fugiat dolore ipsum dolore ex velit laborum aliquip eu mollit minim. Eu non dolor adipisicing sint elit labore eiusmod et aliqua.\r\nIpsum cupidatat laborum consequat excepteur quis fugiat ex veniam sint tempor ullamco sit ut aliquip. Magna ex exercitation duis proident anim ipsum esse commodo in dolor irure. Ullamco occaecat culpa elit aliquip do.\r\n", - "address": "2 Belmont Avenue", - "city": "Manitou", - "state": "Mississippi", - "zip": 31901, - "country": "Viet Nam", - "email": "opalrush@scentric.com", - "phone": "(944) 429-3751", - "color": "rgb(73,188,227)" - }, - { - "index": 249, - "name": "Richardson Pena", - "first": "Lauri", - "last": "Macias", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mironcatalin/73.jpg", - "boolean": true, - "guid": "d2190b02-e2b9-47da-9a5d-43ab822a4242", - "integer": 1, - "date": "Sat Apr 25 1981 19:27:16 GMT-0800 (PST)", - "shortText": "dolor culpa", - "mediumText": "Veniam excepteur elit esse ex mollit. Aliquip adipisicing consectetur occaecat aliquip consectetur nisi ut est ipsum tempor cillum eiusmod excepteur.", - "longText": "Sint labore cillum sit elit consequat est sunt voluptate. Irure velit enim anim elit ea culpa ut consequat aute magna dolore. Sit reprehenderit elit eiusmod in enim. Sint elit officia laborum qui do eiusmod voluptate sunt et consequat. Duis laboris consequat culpa excepteur sunt qui irure est cupidatat eiusmod dolor mollit. Eiusmod est irure quis ut ad aliqua consectetur fugiat consectetur.\r\nDeserunt voluptate laboris occaecat pariatur elit. Ad eiusmod pariatur incididunt cillum irure duis labore labore. Nostrud nostrud minim aliquip nostrud eiusmod sunt ipsum reprehenderit labore enim ea tempor. Nostrud laboris mollit enim eu labore deserunt.\r\nOfficia non reprehenderit laborum quis cupidatat sit. Consectetur dolore est non tempor Lorem sint eu ea cupidatat occaecat dolor. Culpa sunt aliquip id dolore mollit aliquip esse qui culpa in amet sit incididunt. Ullamco est laborum aliqua incididunt. Aliquip id mollit minim proident sit.\r\nCulpa nostrud culpa deserunt culpa Lorem laborum minim sit sit. Ullamco qui do sunt est duis. Voluptate magna deserunt ipsum esse laborum dolor cillum. Magna cillum laborum sit veniam.\r\nQuis enim deserunt et mollit adipisicing. Eu sunt in esse adipisicing eu consequat magna dolore commodo labore culpa elit. Consequat elit fugiat ullamco in non dolor. Eu irure adipisicing laborum nisi commodo ipsum consequat officia ipsum in dolore laboris culpa.\r\n", - "address": "2 Atkins Avenue", - "city": "Bynum", - "state": "Rhode Island", - "zip": 45405, - "country": "France, Metropolitan", - "email": "laurimacias@scentric.com", - "phone": "(889) 487-2711", - "color": "rgb(140,77,221)" - }, - { - "index": 250, - "name": "James Christensen", - "first": "Atkinson", - "last": "White", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/michaelbowden3/73.jpg", - "boolean": true, - "guid": "5b8652f2-a3c4-4f58-b4ae-df90d92002f2", - "integer": 99, - "date": "Tue Jan 30 1979 23:03:56 GMT-0800 (PST)", - "shortText": "veniam mollit ad nisi", - "mediumText": "Labore veniam anim aliqua duis deserunt dolor aliquip. Excepteur est non labore eiusmod id duis. Exercitation occaecat occaecat excepteur sit sint sit nisi labore ex tempor consequat duis.", - "longText": "Excepteur laborum velit eu irure dolor magna sit proident. Sint minim cillum commodo pariatur anim reprehenderit laborum occaecat reprehenderit pariatur ullamco. Cupidatat consectetur est incididunt enim exercitation.\r\nDeserunt tempor aliqua velit laboris qui dolore nulla culpa. Minim exercitation ut minim laborum anim aliquip minim eu dolore veniam. Ut anim do elit fugiat fugiat ad dolor ea sit velit qui dolor. Excepteur voluptate ea anim ullamco labore tempor aliqua sunt cillum occaecat cupidatat irure tempor. Consectetur fugiat elit ullamco nisi reprehenderit exercitation. Ipsum adipisicing ullamco laboris pariatur consectetur eu amet reprehenderit. Veniam aliqua sit aute pariatur sit.\r\nAdipisicing esse ad non laboris irure dolore Lorem adipisicing. Voluptate pariatur sit et eiusmod. Est do aute elit ipsum. Non velit irure magna amet sunt ex.\r\nVeniam sint labore velit ad eu velit deserunt occaecat elit exercitation dolor. Aute proident sit nisi incididunt laborum consectetur ea minim nisi anim mollit do ipsum. Consectetur ullamco nulla eu elit non ex pariatur magna labore. Nisi reprehenderit Lorem quis commodo sit elit sunt eu occaecat ad velit excepteur irure. Exercitation reprehenderit aute consectetur velit dolore incididunt elit quis anim dolore aliqua laboris ex.\r\nDo ut in mollit sunt irure id enim cillum nulla elit cupidatat. Duis nulla enim mollit in in incididunt est anim occaecat commodo ea magna. Tempor enim excepteur nostrud nostrud non nostrud non esse. In id incididunt labore pariatur veniam ipsum Lorem.\r\n", - "address": "4 Kay Court", - "city": "Veyo", - "state": "Georgia", - "zip": 60806, - "country": "Uganda", - "email": "atkinsonwhite@scentric.com", - "phone": "(912) 432-3782", - "color": "rgb(177,214,156)" - }, - { - "index": 251, - "name": "Berry Greene", - "first": "Carey", - "last": "Hawkins", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bermonpainter/73.jpg", - "boolean": true, - "guid": "6f4e5523-3a13-4b9c-98c4-99a1f8a24e7e", - "integer": 50, - "date": "Tue Sep 23 1980 15:29:12 GMT-0700 (PDT)", - "shortText": "id pariatur eu ut dolor", - "mediumText": "Mollit aute aliquip veniam irure do enim commodo excepteur culpa occaecat commodo eiusmod in reprehenderit. Non reprehenderit sint officia aliqua. Nostrud fugiat minim pariatur dolore in minim ea ut cillum do pariatur mollit proident.", - "longText": "Ad amet sunt ea aliqua incididunt ea non tempor cillum et et tempor. Esse ullamco consectetur tempor fugiat fugiat fugiat. Ex elit consequat nisi quis ut anim cillum sit ipsum esse. Tempor ex adipisicing ea culpa aute do ipsum et. Ipsum eu fugiat velit dolore exercitation sunt Lorem minim dolore quis ut nulla fugiat. Ut consectetur commodo aute nulla reprehenderit voluptate dolor fugiat ullamco.\r\nQui excepteur fugiat incididunt Lorem exercitation dolore dolore magna qui. Eiusmod non adipisicing sit et nisi occaecat pariatur sint elit esse et aute laborum pariatur. Commodo sit ut esse irure incididunt non veniam labore occaecat commodo aliquip.\r\nCommodo incididunt ex deserunt exercitation reprehenderit. Exercitation consequat amet cillum incididunt enim aute nostrud. Sit esse reprehenderit nulla Lorem magna in.\r\nTempor fugiat ipsum sint excepteur enim magna fugiat irure fugiat ad nulla anim minim. Exercitation et veniam exercitation aute nulla do quis reprehenderit sint nostrud duis Lorem qui enim. Cillum pariatur aliqua et ex irure exercitation elit id minim nostrud in. Eiusmod do fugiat veniam cupidatat deserunt amet velit enim adipisicing.\r\nCupidatat est et labore fugiat eu elit consectetur et culpa voluptate. Exercitation dolor excepteur veniam eiusmod ullamco laboris et deserunt velit proident aliquip. Adipisicing Lorem do amet sunt enim. Pariatur labore qui aliquip elit excepteur culpa nulla velit ea laborum consequat commodo ipsum proident. Est est reprehenderit incididunt sint officia ex quis dolor enim et veniam.\r\n", - "address": "2 Tillary Street", - "city": "Fivepointville", - "state": "New Mexico", - "zip": 85127, - "country": "Antarctica", - "email": "careyhawkins@scentric.com", - "phone": "(868) 519-2817", - "color": "rgb(74,226,202)" - }, - { - "index": 252, - "name": "Melva Frederick", - "first": "Haley", - "last": "Morris", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/parasenak/73.jpg", - "boolean": true, - "guid": "0280cd72-ee64-4c9c-aa16-67f76f572d10", - "integer": 13, - "date": "Thu Aug 27 1992 14:36:33 GMT-0700 (PDT)", - "shortText": "magna incididunt duis adipisicing consequat", - "mediumText": "Ea exercitation voluptate mollit consequat voluptate eu minim. Quis aute ullamco labore reprehenderit non elit laboris aute sunt mollit mollit sunt. Do velit ad enim nulla reprehenderit laboris mollit.", - "longText": "Ullamco eu cupidatat eiusmod aute. Ex non aute ea fugiat duis qui velit. Culpa est duis consequat pariatur ad dolor exercitation. Elit nostrud cillum officia esse incididunt. Excepteur et in ex nulla eiusmod anim aliqua qui Lorem do amet. Anim voluptate sint culpa aute esse exercitation ex proident ullamco elit deserunt duis. Qui culpa tempor exercitation anim ipsum.\r\nReprehenderit cupidatat est pariatur adipisicing ad laboris cillum aute laboris adipisicing exercitation fugiat. Nisi reprehenderit fugiat nulla et proident ut enim excepteur commodo. Laboris laborum quis fugiat consequat et do. Minim adipisicing reprehenderit tempor laborum voluptate occaecat incididunt in aliqua ipsum reprehenderit est duis deserunt. Mollit cillum cupidatat Lorem incididunt duis laborum aute incididunt do. Nisi ea amet excepteur sit aliqua nulla. Sunt fugiat consequat commodo nostrud deserunt sunt nostrud ad esse dolor.\r\n", - "address": "2 Anthony Street", - "city": "Vivian", - "state": "Arizona", - "zip": 87173, - "country": "Kiribati", - "email": "haleymorris@scentric.com", - "phone": "(914) 569-3745", - "color": "rgb(77,218,207)" - }, - { - "index": 253, - "name": "Moses Leach", - "first": "Margret", - "last": "Baird", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/duyvk/73.jpg", - "boolean": false, - "guid": "2da52347-1212-4146-ad5b-1d770195f05c", - "integer": 57, - "date": "Sat May 31 1980 05:14:11 GMT-0700 (PDT)", - "shortText": "veniam voluptate minim elit amet", - "mediumText": "Voluptate in elit laborum commodo quis do proident pariatur aliqua velit exercitation cupidatat consequat. Sint quis ex aliqua velit commodo non cillum amet magna velit laborum amet reprehenderit ipsum.", - "longText": "Mollit nostrud cillum duis do ipsum duis cillum sint veniam ipsum. Qui ad ex ad id do labore enim proident est aute. Lorem quis pariatur pariatur id dolore id. Nulla esse ullamco eu enim eu Lorem et adipisicing est nisi eiusmod proident. Nostrud deserunt duis qui ad ad. Adipisicing esse aute amet consectetur aliquip incididunt laboris id est quis.\r\nEsse sint cillum commodo deserunt elit anim excepteur elit nostrud exercitation consequat ad. Aliqua consequat ea minim sunt dolor nulla elit sunt. Ut id do culpa amet adipisicing aliqua ipsum. Reprehenderit velit ad aliquip ullamco mollit elit ea. Deserunt quis labore aliquip culpa id cupidatat irure duis aliqua nostrud tempor.\r\n", - "address": "2 Orange Street", - "city": "Rosine", - "state": "Texas", - "zip": 86725, - "country": "Ecuador", - "email": "margretbaird@scentric.com", - "phone": "(991) 577-2455", - "color": "rgb(212,247,87)" - }, - { - "index": 254, - "name": "Mindy Mendoza", - "first": "Valdez", - "last": "Mack", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/abdullindenis/73.jpg", - "boolean": true, - "guid": "c19cb89a-c62c-4a3b-a815-dc686df99a69", - "integer": 97, - "date": "Sun Sep 28 2008 12:27:09 GMT-0700 (PDT)", - "shortText": "aliqua laborum", - "mediumText": "Ea commodo et minim id consectetur ipsum ad sit dolor. Laborum laborum in irure ex cillum sunt officia. Ullamco quis cupidatat labore occaecat amet elit consequat aute aliquip esse.", - "longText": "Cillum eu mollit ex Lorem est duis sint incididunt est ullamco. Pariatur amet sit sunt et sint officia dolor elit aliqua laboris officia. Sunt duis non sint ea ut adipisicing ut Lorem ut velit do ad culpa mollit. Irure magna elit dolore do officia mollit commodo id aute. Culpa nostrud esse officia exercitation.\r\nAliqua aliqua aute reprehenderit aute cupidatat veniam. Aliquip sint veniam deserunt amet. Quis adipisicing tempor id officia non. Laborum tempor cupidatat reprehenderit ut reprehenderit quis proident veniam ipsum. Mollit voluptate officia exercitation proident enim nisi eiusmod veniam do id sint eu.\r\n", - "address": "3 Woodside Avenue", - "city": "Skyland", - "state": "District Of Columbia", - "zip": 24057, - "country": "Bulgaria", - "email": "valdezmack@scentric.com", - "phone": "(831) 594-3993", - "color": "rgb(223,79,247)" - }, - { - "index": 255, - "name": "Charles Sosa", - "first": "Ashley", - "last": "Adams", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/umutahmet29/73.jpg", - "boolean": true, - "guid": "26a576e9-cccf-480d-8ed3-bb6f7da211ef", - "integer": 89, - "date": "Thu Apr 03 1975 03:38:57 GMT-0700 (PDT)", - "shortText": "anim adipisicing", - "mediumText": "Do minim excepteur aliquip id sit non laboris sint reprehenderit. Consectetur eu pariatur et commodo velit Lorem labore consequat quis reprehenderit commodo nisi. Adipisicing deserunt consectetur non reprehenderit deserunt elit esse elit culpa sunt.", - "longText": "Et ea anim tempor labore magna tempor est deserunt eu ullamco ipsum elit. Dolore nulla ipsum do exercitation. Sit fugiat pariatur ullamco sit tempor amet reprehenderit consectetur magna.\r\nCommodo do exercitation amet deserunt eu ea mollit. Sint labore sint occaecat reprehenderit cillum sint qui pariatur et deserunt adipisicing. Mollit excepteur qui minim culpa tempor ea. Qui esse labore dolore occaecat. Cillum duis dolor id cupidatat veniam non pariatur voluptate deserunt laboris. Quis proident occaecat veniam nulla occaecat proident occaecat ullamco. Aliqua laborum aliqua enim mollit quis.\r\n", - "address": "3 Kensington Street", - "city": "Dana", - "state": "Virgin Islands", - "zip": 96003, - "country": "American Samoa", - "email": "ashleyadams@scentric.com", - "phone": "(903) 572-3575", - "color": "rgb(125,107,131)" - }, - { - "index": 256, - "name": "Turner Franco", - "first": "Norman", - "last": "George", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pinceladasdaweb/73.jpg", - "boolean": true, - "guid": "ab082048-531a-4b8d-8801-29979233e2c1", - "integer": 41, - "date": "Sun Nov 19 1989 19:54:28 GMT-0800 (PST)", - "shortText": "consequat mollit qui aute laboris", - "mediumText": "Sint in reprehenderit commodo ex cillum ipsum est Lorem dolore amet. Eu consequat nisi nostrud est velit et ex cupidatat quis sint duis do. Irure eiusmod amet esse occaecat proident occaecat sit laborum incididunt adipisicing amet enim. Ut ex ut sunt eu eu eiusmod duis do dolor occaecat commodo deserunt exercitation.", - "longText": "Aliqua sit tempor et consequat irure elit incididunt et id sint ex ad ipsum aliquip. Aliqua fugiat sint sint reprehenderit proident pariatur nostrud. Excepteur in do non minim sunt exercitation magna et sint quis aliqua eiusmod Lorem. Nostrud exercitation proident in velit aliqua dolore nisi irure veniam quis adipisicing et excepteur. Duis dolore dolor non et reprehenderit cillum commodo. Deserunt officia labore nostrud anim id fugiat anim ex voluptate dolore esse do commodo sit.\r\nEsse ut sunt commodo sint exercitation consequat ex ea exercitation reprehenderit. Nulla in laboris qui eiusmod adipisicing ex occaecat qui qui culpa aliquip magna quis. Fugiat reprehenderit exercitation ipsum reprehenderit et Lorem cillum. Lorem et dolor minim est et et.\r\nNisi ullamco ea minim ad nulla deserunt eu aute culpa ipsum ut voluptate. Ea cupidatat eiusmod est cillum amet velit aliqua esse sunt cupidatat eu aliqua reprehenderit. Voluptate voluptate proident duis ipsum minim qui. Id ex esse excepteur reprehenderit. Eiusmod adipisicing minim quis laboris aute nostrud irure officia velit fugiat. Ad minim tempor enim commodo exercitation elit cillum proident nulla cupidatat aliqua.\r\nLaboris amet aliqua nisi ut sint ex minim ullamco voluptate in. Sunt consequat ea proident occaecat aliquip est quis officia. Cillum Lorem laboris nostrud aliquip nulla laborum dolore quis aliqua nulla. Anim sint eiusmod ea in Lorem magna aliquip cillum velit.\r\nCommodo sunt nostrud deserunt id mollit do aliqua ullamco incididunt et et sunt sunt ad. Reprehenderit consequat consectetur aliquip non in. Eiusmod dolore id labore voluptate do aute ut et amet tempor tempor. Do irure laborum reprehenderit elit eiusmod cupidatat id sunt. Nisi cupidatat cillum eu sint duis et proident aliquip commodo id minim ullamco. Magna laborum exercitation elit minim dolore irure eu velit commodo Lorem.\r\n", - "address": "2 Fanchon Place", - "city": "Siglerville", - "state": "Puerto Rico", - "zip": 95024, - "country": "Angola", - "email": "normangeorge@scentric.com", - "phone": "(909) 404-3929", - "color": "rgb(236,187,197)" - }, - { - "index": 257, - "name": "Mandy Mann", - "first": "Mccoy", - "last": "Daniels", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/chris_gooley/73.jpg", - "boolean": true, - "guid": "119c0379-dc8c-4fdf-a4ca-4dd7e8367fcd", - "integer": 8, - "date": "Sat Jul 18 1970 18:24:18 GMT-0700 (PDT)", - "shortText": "pariatur nulla", - "mediumText": "Sint mollit amet elit consectetur culpa. Exercitation minim laboris culpa reprehenderit est ut deserunt in est eiusmod nostrud nostrud esse. Labore laboris incididunt sit voluptate id ut. In incididunt mollit reprehenderit ea dolor commodo anim aliquip.", - "longText": "In cupidatat enim aliquip velit nisi. Elit deserunt ad excepteur deserunt consectetur nisi proident ea exercitation laboris tempor sunt. Lorem sint incididunt proident mollit est et.\r\n", - "address": "2 Lamont Court", - "city": "Rew", - "state": "Maryland", - "zip": 15110, - "country": "Bhutan", - "email": "mccoydaniels@scentric.com", - "phone": "(912) 520-2618", - "color": "rgb(135,249,131)" - }, - { - "index": 258, - "name": "Arlene Dominguez", - "first": "Felecia", - "last": "Hines", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jodyferry/73.jpg", - "boolean": true, - "guid": "280bf6b0-99d1-4792-acc8-8dde2e0f0deb", - "integer": 34, - "date": "Sat Feb 15 1992 18:16:30 GMT-0800 (PST)", - "shortText": "do non", - "mediumText": "Qui velit nulla adipisicing mollit. Officia adipisicing laboris veniam dolor enim eu laboris eu nulla tempor. Id id velit magna anim sint tempor. Voluptate nostrud anim elit laborum ut labore anim reprehenderit. Dolore ipsum do proident quis nostrud fugiat.", - "longText": "Quis veniam reprehenderit nulla quis aute deserunt cillum mollit commodo voluptate consectetur. Officia nostrud nulla tempor nulla. Dolor ipsum eu magna cillum amet velit enim amet voluptate id Lorem velit qui.\r\nProident ex amet voluptate cupidatat laborum. Laboris sint reprehenderit in minim exercitation dolor cupidatat ut proident. Aute consectetur id sunt aute pariatur velit excepteur reprehenderit adipisicing pariatur labore ea nulla mollit. Anim nulla aliqua quis minim exercitation amet sunt nulla commodo est nostrud non tempor veniam. Mollit aliquip officia consequat ex minim voluptate cillum esse. Eu sint adipisicing proident eiusmod adipisicing non. Ut excepteur mollit cupidatat anim elit sint aute magna ullamco Lorem duis dolor ullamco occaecat.\r\nDeserunt esse reprehenderit ullamco cillum velit mollit. Duis aliquip aliquip id incididunt officia magna nisi deserunt laboris magna. Enim exercitation mollit do elit voluptate minim. Sint aute incididunt Lorem nulla.\r\nConsectetur consequat nostrud et voluptate est sint ullamco adipisicing laboris. Do cillum velit enim quis reprehenderit tempor. Enim commodo duis deserunt ex et in. Voluptate Lorem qui amet anim nulla enim. Nisi voluptate do ad ea minim laborum ullamco aute amet velit officia ad et. Consequat dolore pariatur nostrud nisi ut et consequat fugiat. Occaecat aute ea officia incididunt.\r\nConsequat mollit laborum reprehenderit sit minim sunt et. Elit mollit magna in mollit cupidatat enim magna exercitation elit pariatur quis. Amet cupidatat in reprehenderit elit consectetur cillum ea aute ad exercitation quis. Velit enim officia do pariatur ex eiusmod.\r\n", - "address": "3 Howard Alley", - "city": "Corinne", - "state": "Massachusetts", - "zip": 62986, - "country": "Dominica", - "email": "feleciahines@scentric.com", - "phone": "(800) 422-3688", - "color": "rgb(143,174,64)" - }, - { - "index": 259, - "name": "Hollie Boyer", - "first": "Steele", - "last": "Schwartz", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/reetajayendra/73.jpg", - "boolean": true, - "guid": "45ab7abb-8d65-4596-9843-554f49ed1ab3", - "integer": 87, - "date": "Sun Jun 06 1971 17:15:13 GMT-0700 (PDT)", - "shortText": "veniam exercitation do est laborum", - "mediumText": "Irure sunt voluptate esse minim dolor adipisicing fugiat occaecat in cupidatat do laborum. Sunt consequat nulla pariatur sit labore velit cillum cillum quis id laboris ipsum.", - "longText": "Adipisicing culpa excepteur excepteur labore. Duis esse occaecat pariatur velit qui fugiat occaecat magna et in duis. Pariatur consectetur dolore culpa esse anim cillum sint ad non adipisicing labore duis. Nisi eiusmod laboris adipisicing ea veniam cupidatat duis ad ut incididunt deserunt cupidatat. Incididunt aliqua cillum mollit dolor amet laboris dolor. Ea laborum qui Lorem duis ipsum deserunt dolore velit adipisicing minim veniam nostrud et. Irure officia Lorem labore irure ullamco.\r\nAdipisicing ullamco exercitation labore in ut. Sunt ex aliquip voluptate dolor qui ipsum est cillum magna. Dolore magna proident officia exercitation. Velit occaecat laborum laboris veniam excepteur nisi duis aliquip dolore. Consequat pariatur elit pariatur eiusmod. Minim occaecat aliquip exercitation sunt nisi dolor elit. Anim esse fugiat commodo minim.\r\nLorem incididunt aute exercitation enim qui aute. Dolore minim do proident laborum sit nulla ullamco excepteur quis sit consectetur dolore nisi. Voluptate Lorem aliqua enim aliqua mollit tempor et laborum ut aute dolor enim. Ipsum laborum anim deserunt aliquip occaecat nisi fugiat esse non cupidatat excepteur ut. Laboris velit Lorem quis aute nostrud elit dolor ullamco eiusmod exercitation. Exercitation eu ullamco cillum Lorem Lorem irure aliqua cillum anim. Adipisicing enim dolore id non enim reprehenderit voluptate velit voluptate Lorem officia.\r\n", - "address": "3 Thames Street", - "city": "Denio", - "state": "Oklahoma", - "zip": 28577, - "country": "Egypt", - "email": "steeleschwartz@scentric.com", - "phone": "(951) 401-2034", - "color": "rgb(203,161,146)" - }, - { - "index": 260, - "name": "Maxwell Levine", - "first": "Rutledge", - "last": "Vang", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/namankreative/73.jpg", - "boolean": false, - "guid": "ae81b7e2-6532-41e4-b7a5-0336231f8d86", - "integer": 22, - "date": "Tue Feb 28 1989 01:26:44 GMT-0800 (PST)", - "shortText": "id sunt eiusmod", - "mediumText": "Sunt nulla aliquip ex ullamco magna mollit laborum ea cillum. Ea ad voluptate excepteur dolor tempor nulla pariatur pariatur.", - "longText": "Dolor quis magna dolor id irure laborum cillum irure. Minim ea ipsum ipsum aute officia. Commodo adipisicing aliqua voluptate eiusmod ipsum incididunt quis dolor culpa velit. Id quis duis tempor ipsum cillum do velit adipisicing do excepteur culpa magna laboris. Voluptate enim do id laborum veniam. Excepteur do adipisicing eiusmod ea laboris laborum. Nostrud sunt fugiat ut velit ex magna nisi non magna sint pariatur eiusmod minim.\r\nElit dolore nulla ipsum ullamco deserunt deserunt amet incididunt. Reprehenderit eiusmod adipisicing commodo duis eu id ad esse dolor consequat cupidatat elit. Aliquip eu fugiat consequat non sit nisi quis est id. Proident amet culpa sunt irure nostrud do ad aliqua sunt. Ut amet eiusmod ea eu aute cupidatat minim laboris qui consequat deserunt consectetur quis reprehenderit. Occaecat id proident in amet adipisicing elit tempor esse veniam elit.\r\nAdipisicing qui fugiat nostrud et magna do eu commodo minim excepteur non qui. Magna do do fugiat sint irure elit tempor deserunt. Ullamco aliqua ullamco nostrud qui incididunt cupidatat. Nisi reprehenderit in cupidatat velit et tempor. Lorem ut Lorem elit quis deserunt ut. Aliquip do Lorem eu ipsum amet eu laborum pariatur aliquip minim. Id id eu exercitation consequat.\r\n", - "address": "4 Scholes Street", - "city": "Rodanthe", - "state": "Ohio", - "zip": 39404, - "country": "Chile", - "email": "rutledgevang@scentric.com", - "phone": "(827) 440-2145", - "color": "rgb(207,158,249)" - }, - { - "index": 261, - "name": "Jimenez Mullins", - "first": "Hines", - "last": "Cooley", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/paulfarino/73.jpg", - "boolean": true, - "guid": "c3fd3b86-c437-427d-9f1d-0dd5cc03af2a", - "integer": 31, - "date": "Thu Jul 22 1999 00:58:27 GMT-0700 (PDT)", - "shortText": "nisi", - "mediumText": "Eiusmod enim irure cupidatat consectetur aliquip ut labore fugiat exercitation Lorem et irure.", - "longText": "Reprehenderit duis cupidatat duis commodo enim pariatur ut ea ex elit ut adipisicing consectetur. Fugiat fugiat veniam sit esse laborum commodo laboris ipsum magna pariatur. Ipsum laborum proident mollit exercitation labore. Laborum voluptate pariatur eiusmod ad excepteur minim tempor non adipisicing consectetur proident amet.\r\nAute occaecat excepteur voluptate reprehenderit ea. Officia consequat proident et quis aliqua. Dolor et et cupidatat sit consectetur. Aute sit cillum excepteur reprehenderit enim sint voluptate occaecat.\r\n", - "address": "2 Clay Street", - "city": "Lisco", - "state": "Nevada", - "zip": 95904, - "country": "Norfolk Island", - "email": "hinescooley@scentric.com", - "phone": "(871) 552-3958", - "color": "rgb(236,51,80)" - }, - { - "index": 262, - "name": "Lesley Ashley", - "first": "Williamson", - "last": "Glass", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/overcloacked/73.jpg", - "boolean": true, - "guid": "a3928300-14e0-42c0-9f8b-600a529a789b", - "integer": 17, - "date": "Wed May 25 2005 15:38:13 GMT-0700 (PDT)", - "shortText": "labore esse pariatur nulla excepteur", - "mediumText": "Eiusmod elit eiusmod deserunt enim irure Lorem sint culpa ea. Esse proident in dolor sit qui pariatur Lorem. Culpa consequat minim ullamco sit culpa voluptate occaecat consequat. Ex ex non voluptate excepteur irure ut consectetur tempor.", - "longText": "Ullamco ex id nostrud esse. Exercitation adipisicing eu est ipsum commodo. Aute aliqua exercitation eiusmod ex nulla. Enim cillum nisi tempor id. Irure proident ipsum commodo reprehenderit tempor eu ut officia labore tempor sit tempor.\r\nFugiat ut sit tempor ut aliquip ea irure. Ullamco irure nulla reprehenderit id amet fugiat. Anim Lorem ullamco ea elit esse nisi id elit occaecat. Elit voluptate aute dolore anim aliquip veniam laborum. Duis esse aliquip aute pariatur fugiat veniam velit anim irure ipsum laboris. Duis nostrud occaecat ipsum eu non mollit. Fugiat exercitation sunt ullamco sunt mollit.\r\nLabore eiusmod mollit voluptate sunt duis id enim excepteur eiusmod elit quis voluptate enim aliqua. Minim nostrud excepteur voluptate ipsum id aliqua esse pariatur consequat. Dolore aliqua Lorem veniam deserunt pariatur tempor do nisi veniam nulla voluptate. Ut velit consectetur deserunt eiusmod cupidatat. Non culpa pariatur enim eu et ut irure labore. Ut nisi aute voluptate excepteur sint culpa ad id adipisicing ut enim.\r\nQui do consectetur laborum laborum ipsum eu ex do fugiat duis est irure sunt sunt. Ullamco in velit minim veniam ea do veniam anim adipisicing in sunt occaecat in aliquip. Aliquip nisi elit fugiat cupidatat enim mollit ex mollit. Aute laborum consequat anim deserunt. Cillum est sint dolor irure laboris ad eiusmod. Lorem aliquip in est et deserunt nostrud est consequat duis ad minim. Magna qui est ullamco sit cillum cupidatat eu amet mollit commodo esse.\r\n", - "address": "4 Village Court", - "city": "Southmont", - "state": "Montana", - "zip": 63679, - "country": "Japan", - "email": "williamsonglass@scentric.com", - "phone": "(915) 505-2620", - "color": "rgb(119,251,208)" - }, - { - "index": 263, - "name": "Robertson Mcintosh", - "first": "Constance", - "last": "Sexton", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/maysundays/73.jpg", - "boolean": false, - "guid": "0dd239a2-9d56-4eec-a3e1-94411aacdc3f", - "integer": 71, - "date": "Sat Aug 01 1970 03:44:02 GMT-0700 (PDT)", - "shortText": "excepteur ut labore", - "mediumText": "Incididunt proident mollit elit velit sit in ipsum dolor duis ex labore aliqua culpa. Cupidatat amet ea proident ad duis. Id occaecat aliquip quis fugiat dolor aliqua consectetur.", - "longText": "Sunt ullamco culpa quis cillum mollit. Exercitation amet magna magna velit pariatur aliquip laborum ad est cupidatat. Nostrud elit irure ullamco occaecat id. Anim elit laborum ad pariatur occaecat minim tempor ullamco. Deserunt exercitation elit commodo sint reprehenderit sit proident ut labore. Eu eu officia nulla labore aliquip ut ex.\r\nVeniam non tempor laborum ea dolor nostrud laboris cupidatat deserunt sit est. Reprehenderit aliquip sint nostrud eu pariatur laborum ea. Aute id laboris esse in in amet excepteur ea laborum. Cupidatat commodo minim nostrud in aute in aute culpa eiusmod.\r\nAmet dolore commodo aute commodo commodo non voluptate officia elit amet est sint sit. Nulla est occaecat elit magna elit esse mollit cillum anim exercitation. Adipisicing non occaecat nisi irure duis aliquip occaecat culpa consectetur ex mollit aute nostrud. Et mollit nisi ad culpa dolor tempor nisi Lorem culpa aliqua. Sunt ut minim dolore voluptate sit. Minim enim ex elit excepteur voluptate.\r\nProident proident esse commodo qui laboris. Enim laboris cillum fugiat exercitation elit. Nostrud ea labore sit culpa. Reprehenderit amet minim mollit ea nulla duis duis veniam est tempor enim ut proident. Tempor consectetur culpa occaecat exercitation id ea nulla ea. Duis culpa ea labore sint culpa consectetur eu proident esse.\r\nLaborum nulla excepteur commodo sint irure veniam nisi. Duis ex ad anim et anim voluptate commodo eiusmod ea magna ut do magna ut. Mollit anim nulla ullamco et aute excepteur qui aute. Exercitation aliquip proident labore tempor consequat aute officia esse ut dolor eu mollit. Veniam occaecat amet velit in irure Lorem excepteur aliquip sunt sit. Dolor nulla sit ad anim officia cillum minim ipsum ad dolor qui sint. Incididunt velit qui ea fugiat.\r\n", - "address": "3 Driggs Avenue", - "city": "Goldfield", - "state": "California", - "zip": 10392, - "country": "Saudi Arabia", - "email": "constancesexton@scentric.com", - "phone": "(923) 433-2666", - "color": "rgb(246,200,148)" - }, - { - "index": 264, - "name": "Audra Ortega", - "first": "Anne", - "last": "Crawford", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_iamnyasha/73.jpg", - "boolean": false, - "guid": "a1000f3b-0edd-4f94-8864-4f0567d089ef", - "integer": 74, - "date": "Thu Oct 19 1978 15:43:40 GMT-0700 (PDT)", - "shortText": "et voluptate", - "mediumText": "Quis nulla minim do deserunt commodo laborum laboris veniam sint pariatur voluptate ullamco eu. Laboris adipisicing ex dolore voluptate ea occaecat duis enim nulla eiusmod.", - "longText": "Voluptate velit duis reprehenderit est tempor dolor dolor deserunt ullamco. Sit proident eiusmod consectetur occaecat dolore in laborum in aliqua id sint. Aute aliqua eu est aliqua officia aliqua minim do sint ullamco voluptate tempor velit ex. Adipisicing mollit velit non cillum exercitation sunt sunt ipsum ex irure laboris ut. Fugiat aliquip aliquip ad deserunt minim minim nisi dolore ea et. Dolore magna fugiat commodo veniam commodo do deserunt. Irure sint reprehenderit nulla sunt est nostrud id do excepteur mollit nostrud ea.\r\nId pariatur nisi eu deserunt nisi minim in deserunt deserunt ex. Adipisicing excepteur officia sint exercitation mollit deserunt non velit ex fugiat laboris id. Sit eiusmod excepteur occaecat id dolore laborum fugiat ea. Commodo velit non incididunt enim aliquip magna irure. Nulla aute ipsum veniam fugiat duis cupidatat et exercitation laboris Lorem culpa. Do reprehenderit ullamco occaecat id veniam sunt non nulla excepteur exercitation.\r\n", - "address": "2 Wallabout Street", - "city": "Waikele", - "state": "Marshall Islands", - "zip": 86465, - "country": "Micronesia", - "email": "annecrawford@scentric.com", - "phone": "(986) 502-2226", - "color": "rgb(235,169,166)" - }, - { - "index": 265, - "name": "Francis Carver", - "first": "Gallagher", - "last": "Britt", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/culttm/73.jpg", - "boolean": false, - "guid": "0556fe07-8214-442d-9f9c-08231097de52", - "integer": 6, - "date": "Sun Nov 28 2010 03:23:33 GMT-0800 (PST)", - "shortText": "sint ex in aliquip excepteur", - "mediumText": "Laboris anim ad nulla tempor dolor quis tempor ipsum incididunt eiusmod aute. Ea irure ea laboris irure do et aliquip dolor exercitation excepteur. Exercitation sunt dolor excepteur sunt id quis velit esse non dolore ut nostrud officia.", - "longText": "Ad ipsum minim tempor velit Lorem irure cupidatat. Minim laborum laboris esse sunt voluptate amet amet nostrud sint esse. Irure incididunt et reprehenderit magna. Mollit esse non Lorem excepteur ad. In labore ad minim id commodo tempor non irure nisi.\r\nLaboris ut veniam cillum eiusmod ad ut reprehenderit. Ad pariatur ad ea culpa. Ad est irure enim ex Lorem nulla irure do adipisicing nulla non aute. Fugiat irure quis veniam consequat ea ullamco reprehenderit ipsum.\r\nTempor cillum culpa in sint enim sit irure consequat Lorem labore deserunt. Magna magna est sunt magna mollit laboris minim irure incididunt deserunt. Est pariatur adipisicing reprehenderit mollit ea aute dolor deserunt aute ut proident eiusmod.\r\nIrure in adipisicing culpa pariatur qui aliquip amet id. Veniam deserunt labore mollit in quis. Quis nostrud dolor ullamco ut reprehenderit nisi.\r\nCillum veniam laboris ut nulla commodo est nulla reprehenderit cupidatat. Voluptate adipisicing aute magna dolore consequat dolor enim veniam Lorem incididunt pariatur amet. Qui anim pariatur et voluptate labore incididunt. Amet duis velit eu in proident ipsum culpa et nulla eu Lorem aliquip ut. Lorem fugiat aute veniam Lorem ea sit. Nisi pariatur qui excepteur ad ullamco ea non culpa non incididunt sint ex. Et nulla velit elit adipisicing sit non irure et.\r\n", - "address": "2 Oakland Place", - "city": "Brookfield", - "state": "Indiana", - "zip": 53481, - "country": "Liberia", - "email": "gallagherbritt@scentric.com", - "phone": "(835) 444-3138", - "color": "rgb(204,219,96)" - }, - { - "index": 266, - "name": "Fischer Simmons", - "first": "Gertrude", - "last": "Stephens", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pollobrav0/73.jpg", - "boolean": false, - "guid": "829192ff-f636-4781-b023-9f3085717193", - "integer": 31, - "date": "Thu Nov 01 2007 09:01:49 GMT-0700 (PDT)", - "shortText": "et cupidatat ad", - "mediumText": "Ad esse officia proident adipisicing sunt excepteur. Culpa ad sint dolor aute aute est. Proident aliqua fugiat officia mollit. Minim sunt consequat irure ut tempor laborum dolor cupidatat est aliqua consequat et.", - "longText": "Officia non fugiat tempor ad enim dolor. In irure commodo culpa ut Lorem aliqua laborum. Qui in cupidatat consequat eiusmod Lorem occaecat consectetur fugiat quis sit pariatur proident. Lorem sint reprehenderit pariatur eiusmod veniam reprehenderit incididunt. Cupidatat reprehenderit in sit consectetur sint. Et excepteur sit do aliquip ea veniam eu reprehenderit deserunt non sunt magna mollit anim.\r\nAmet cupidatat culpa dolore elit minim adipisicing veniam laboris. Reprehenderit exercitation et et velit qui ea nostrud. Exercitation esse nostrud cupidatat dolor dolor fugiat cupidatat eu magna commodo velit ex.\r\nMagna sint voluptate veniam in occaecat aliquip duis nisi. Aliqua elit veniam ea nostrud nisi id cillum esse ullamco eiusmod reprehenderit culpa. Lorem velit id culpa aliquip voluptate dolore nulla officia dolore mollit in aliquip velit elit.\r\n", - "address": "4 Stoddard Place", - "city": "Whitmer", - "state": "Tennessee", - "zip": 27389, - "country": "Korea (South)", - "email": "gertrudestephens@scentric.com", - "phone": "(940) 497-2705", - "color": "rgb(171,153,217)" - }, - { - "index": 267, - "name": "Boyd Blake", - "first": "Delaney", - "last": "Anderson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/carlosblanco_eu/73.jpg", - "boolean": false, - "guid": "031a10d0-2fe9-4ef3-af8e-f7b7c611cb73", - "integer": 33, - "date": "Mon Aug 10 1970 14:35:08 GMT-0700 (PDT)", - "shortText": "adipisicing fugiat qui dolore aute", - "mediumText": "Sit sunt pariatur incididunt est aute consectetur quis laboris nisi cillum deserunt in dolore. Sit fugiat labore enim consequat amet elit aliquip adipisicing. In excepteur laboris irure dolor laborum esse id. Minim nulla adipisicing in eiusmod enim dolor pariatur mollit velit amet proident mollit sunt.", - "longText": "Nisi laboris culpa in sit veniam anim nisi pariatur pariatur adipisicing non occaecat reprehenderit ut. Laborum nulla occaecat laboris qui aliqua laborum excepteur excepteur commodo. Fugiat anim proident proident exercitation esse nulla aute. Adipisicing in laborum fugiat eu tempor ullamco qui qui Lorem cupidatat sint ipsum aliqua. Labore commodo amet consequat officia incididunt cillum proident deserunt sint excepteur. Enim nostrud occaecat ipsum sint adipisicing quis sunt pariatur et sunt eu. Veniam nulla cupidatat officia culpa.\r\n", - "address": "3 Branton Street", - "city": "Ada", - "state": "Palau", - "zip": 48926, - "country": "Pakistan", - "email": "delaneyanderson@scentric.com", - "phone": "(879) 508-2698", - "color": "rgb(181,108,214)" - }, - { - "index": 268, - "name": "Foreman Jennings", - "first": "Nieves", - "last": "Browning", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/giakodes/73.jpg", - "boolean": false, - "guid": "f3328487-a346-46cd-986a-180b1336ce46", - "integer": 34, - "date": "Thu Aug 18 1977 11:28:15 GMT-0700 (PDT)", - "shortText": "culpa laborum nostrud proident qui", - "mediumText": "Tempor sunt anim occaecat in irure occaecat enim cupidatat voluptate ex laboris enim. Exercitation fugiat ad eu culpa est pariatur ea laboris aliquip laboris exercitation proident consectetur. Enim officia laboris elit quis. Occaecat fugiat tempor ea labore exercitation irure sint elit sint elit reprehenderit. Cupidatat anim sit eu nulla exercitation Lorem ipsum veniam.", - "longText": "Esse aute reprehenderit enim officia culpa. Reprehenderit duis mollit voluptate exercitation officia Lorem laborum laborum irure pariatur. Exercitation ex laboris magna excepteur qui labore culpa. Ut esse incididunt aliqua incididunt dolor deserunt esse. Et magna magna quis ipsum cupidatat voluptate incididunt aute sint consectetur officia.\r\nConsequat elit nostrud laborum veniam. Pariatur id consectetur duis et id adipisicing velit et ipsum pariatur proident nostrud reprehenderit. Culpa ad amet eiusmod quis reprehenderit aute eiusmod.\r\nPariatur nulla veniam amet sit fugiat ipsum velit fugiat consequat eu irure est labore. Ut veniam excepteur excepteur nisi fugiat. Ipsum enim excepteur pariatur est laboris deserunt aliqua velit fugiat. Irure ut duis laboris culpa quis ad deserunt sunt fugiat adipisicing. Aute est consectetur ad minim deserunt do.\r\n", - "address": "3 Berriman Street", - "city": "Chaparrito", - "state": "Virginia", - "zip": 46246, - "country": "Guyana", - "email": "nievesbrowning@scentric.com", - "phone": "(876) 426-2122", - "color": "rgb(247,203,76)" - }, - { - "index": 269, - "name": "Corine Woodard", - "first": "Santana", - "last": "Everett", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/komplexb/73.jpg", - "boolean": true, - "guid": "92e47eb5-8a17-4884-9c8b-2789bc456ed9", - "integer": 84, - "date": "Tue Dec 26 1978 20:05:16 GMT-0800 (PST)", - "shortText": "Lorem aute", - "mediumText": "Qui irure duis reprehenderit duis. Ut consectetur mollit sint sint occaecat id nulla sint aute consectetur anim laborum aliquip commodo.", - "longText": "Ea officia culpa cupidatat enim fugiat mollit in quis excepteur culpa. Tempor et nulla irure nostrud qui adipisicing nulla consequat dolor veniam. Ex qui et duis anim irure laboris.\r\nDo commodo aute ipsum ullamco. Velit pariatur est sit laboris reprehenderit nisi voluptate consequat voluptate laborum sunt dolor velit. Occaecat cillum ex ad anim sint. Voluptate cupidatat magna labore veniam. Cupidatat ea nostrud est ipsum in. Deserunt sint adipisicing incididunt sint labore duis minim velit tempor. Lorem sint anim sunt sunt ipsum esse ea reprehenderit elit dolore aute sint.\r\nMagna commodo cupidatat nisi aute. Qui consequat culpa enim elit minim exercitation qui amet in cillum officia. Amet amet nulla aute elit sit irure pariatur proident est sint labore.\r\nProident dolore ut mollit enim veniam aliqua minim ex voluptate Lorem ullamco amet enim. Officia laborum enim sit aute incididunt nisi nulla magna Lorem officia aute mollit. Ullamco commodo incididunt excepteur sunt. Tempor veniam commodo minim dolore eu dolore est deserunt veniam ullamco.\r\nMagna dolor voluptate sint dolor tempor anim dolore quis aute magna reprehenderit ad. Incididunt fugiat aliqua culpa ullamco quis duis pariatur ullamco consequat voluptate enim velit. Duis aute qui qui voluptate elit ut amet elit anim. Excepteur esse proident laborum occaecat.\r\n", - "address": "4 Melrose Street", - "city": "Chelsea", - "state": "Wyoming", - "zip": 81598, - "country": "Poland", - "email": "santanaeverett@scentric.com", - "phone": "(993) 537-2899", - "color": "rgb(144,158,112)" - }, - { - "index": 270, - "name": "Maria Stokes", - "first": "Chambers", - "last": "Riggs", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/migl40d/73.jpg", - "boolean": true, - "guid": "cacd37bf-31ec-400b-bc9e-7ecb3a35d9be", - "integer": 9, - "date": "Thu Feb 06 2003 08:01:13 GMT-0800 (PST)", - "shortText": "veniam magna enim ullamco", - "mediumText": "Eiusmod culpa laboris est consequat in proident eiusmod occaecat consequat sit et mollit. Dolor aliquip anim ex laboris id non occaecat nisi amet eu anim ipsum proident eiusmod. Consequat esse Lorem quis aliquip duis quis minim quis duis. Occaecat commodo nulla minim ipsum do velit laborum consectetur id.", - "longText": "Dolor anim velit labore duis sunt nostrud duis sint ex irure. Voluptate laboris ipsum deserunt nisi voluptate dolor magna. Voluptate veniam amet reprehenderit laborum amet incididunt elit voluptate minim pariatur incididunt aute. Nulla excepteur eiusmod ad amet magna velit eu ea sit do Lorem ex nulla qui. Officia labore ut sint nostrud quis consectetur labore. Et quis voluptate non duis adipisicing quis sunt veniam incididunt velit consectetur.\r\nAdipisicing sit non consequat qui consequat commodo pariatur tempor consectetur. Adipisicing dolore aliquip ipsum nulla in incididunt mollit nulla. Pariatur non cillum do voluptate aliqua non aliquip esse qui voluptate aliquip magna esse. Dolor aliquip esse deserunt velit adipisicing adipisicing. Veniam in dolore do mollit ad exercitation commodo veniam eu. Magna non nulla proident occaecat.\r\nOccaecat magna magna ex culpa. Aliquip commodo laboris amet anim cillum elit officia esse id. Dolor mollit adipisicing velit excepteur anim commodo aute proident sunt. Irure reprehenderit ullamco amet id minim commodo tempor aute exercitation laboris amet incididunt et. Nostrud laborum mollit aliquip non eiusmod sint exercitation eiusmod labore cillum duis enim aute occaecat. Amet aute ea eiusmod dolore. Magna sit veniam nisi ullamco culpa.\r\n", - "address": "4 Jamaica Avenue", - "city": "Lupton", - "state": "Colorado", - "zip": 55948, - "country": "Canada", - "email": "chambersriggs@scentric.com", - "phone": "(825) 422-3231", - "color": "rgb(211,239,230)" - }, - { - "index": 271, - "name": "Montoya Battle", - "first": "Susanne", - "last": "Stein", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/erwinhines/73.jpg", - "boolean": false, - "guid": "386137ac-8367-4191-bca0-0385b64defbc", - "integer": 1, - "date": "Tue Feb 18 1986 07:03:21 GMT-0800 (PST)", - "shortText": "aliqua amet", - "mediumText": "Enim aliqua minim ipsum amet incididunt labore nulla labore enim. Esse eu ea occaecat consectetur labore exercitation do ut consequat est dolor Lorem. Do dolor nostrud nostrud labore.", - "longText": "Officia qui tempor cupidatat nostrud sunt cillum qui commodo pariatur non. Aliqua consectetur commodo ad consequat in est nisi. Cupidatat in eiusmod deserunt veniam. Sunt incididunt enim ex sunt aliqua excepteur non quis deserunt magna eiusmod anim. Enim ex proident laborum excepteur ea anim sint. Consectetur anim esse et id ut incididunt sunt officia consectetur sunt anim do ea ipsum. Magna Lorem ullamco ad eu amet deserunt consectetur.\r\nEa consectetur aute laborum commodo irure excepteur ipsum cupidatat reprehenderit duis. Deserunt exercitation labore quis adipisicing amet reprehenderit ad minim esse eu esse. Qui adipisicing aliquip sunt laborum duis occaecat.\r\nPariatur eiusmod nostrud nostrud excepteur non ex anim non do voluptate. Nulla ut deserunt deserunt in aliqua duis laborum ex. Eiusmod eiusmod nostrud esse eiusmod deserunt ullamco adipisicing aute non nulla. Eiusmod eiusmod consequat proident culpa ullamco laborum.\r\nDo non veniam aliquip officia. Amet dolor excepteur qui exercitation voluptate laboris culpa laboris Lorem ullamco fugiat mollit exercitation excepteur. Esse occaecat magna reprehenderit in eiusmod magna fugiat sit occaecat consectetur velit consequat veniam aliquip. Excepteur aliquip ipsum duis sunt enim aliqua elit exercitation eu in cillum deserunt. Qui fugiat exercitation eu elit minim officia minim ex enim adipisicing incididunt ut.\r\n", - "address": "3 Porter Avenue", - "city": "Bentley", - "state": "Utah", - "zip": 67531, - "country": "US Minor Outlying Islands", - "email": "susannestein@scentric.com", - "phone": "(972) 556-2548", - "color": "rgb(176,88,163)" - }, - { - "index": 272, - "name": "Antoinette Cooper", - "first": "Stout", - "last": "Ferrell", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/chelseabeachem/73.jpg", - "boolean": false, - "guid": "b2443100-77a3-48fc-825f-671f2f386da1", - "integer": 35, - "date": "Tue Sep 09 2008 23:36:55 GMT-0700 (PDT)", - "shortText": "tempor mollit", - "mediumText": "Eiusmod aliqua irure velit nostrud dolor nostrud.", - "longText": "Amet voluptate dolor sunt culpa eiusmod ipsum Lorem officia eiusmod est nulla. Ut minim veniam veniam sunt excepteur. Fugiat ut amet deserunt ex voluptate ex. Aute deserunt adipisicing ipsum eiusmod eiusmod duis eiusmod laborum voluptate ut commodo.\r\n", - "address": "2 Cortelyou Road", - "city": "Websterville", - "state": "Idaho", - "zip": 50360, - "country": "East Timor", - "email": "stoutferrell@scentric.com", - "phone": "(884) 588-3785", - "color": "rgb(207,67,59)" - }, - { - "index": 273, - "name": "Chavez Rhodes", - "first": "Jennifer", - "last": "Solomon", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bouyghajden/73.jpg", - "boolean": true, - "guid": "cf0294a4-b641-4b2a-94ce-7db7921d670c", - "integer": 62, - "date": "Fri Oct 04 1996 10:43:24 GMT-0700 (PDT)", - "shortText": "nostrud id eiusmod", - "mediumText": "Qui dolore nisi ut eu ea duis elit ipsum aliquip aliqua. Sunt cupidatat ut reprehenderit sit nulla laborum consectetur fugiat magna elit esse nulla.", - "longText": "Sit irure nulla excepteur ad velit excepteur exercitation enim eu fugiat deserunt duis. Amet veniam adipisicing aliquip tempor irure. Mollit non culpa amet tempor magna sint esse ad proident. Duis cupidatat nostrud esse veniam pariatur voluptate cupidatat dolor ullamco occaecat magna aliquip sunt esse.\r\nNostrud deserunt proident velit tempor esse exercitation ex ipsum velit proident aute ullamco amet velit. Occaecat veniam sit ipsum do dolore nisi aute occaecat. Amet pariatur occaecat aliqua sint velit aliquip non consequat eiusmod occaecat qui aliquip enim exercitation. Id labore duis quis voluptate nulla aute occaecat. Sunt amet dolore ad minim laborum sit officia amet eu dolore Lorem quis adipisicing esse. Non quis consequat anim nostrud id in in. Sit et esse nostrud quis eu aute excepteur qui.\r\nIrure non sint sint Lorem occaecat quis aliquip exercitation adipisicing amet tempor Lorem sint consequat. Commodo tempor consectetur commodo labore et veniam sunt. Cupidatat commodo anim reprehenderit qui culpa aliqua aliquip enim dolor.\r\nDolore do nisi est exercitation nisi irure et et Lorem sint ullamco non enim duis. Sint nostrud ipsum veniam anim et dolor id amet id fugiat consequat non. Sunt laboris culpa ut deserunt ut ut irure fugiat dolore eiusmod fugiat quis.\r\nDeserunt qui veniam nostrud in nostrud adipisicing sunt veniam consequat consectetur duis esse magna ipsum. Deserunt anim dolore ullamco aute fugiat mollit adipisicing sit exercitation Lorem. Incididunt Lorem duis qui enim adipisicing sint anim. Ex velit ullamco commodo pariatur amet. Sit et voluptate occaecat mollit fugiat pariatur id elit.\r\n", - "address": "3 Ruby Street", - "city": "Goochland", - "state": "Arkansas", - "zip": 63056, - "country": "Denmark", - "email": "jennifersolomon@scentric.com", - "phone": "(852) 542-2938", - "color": "rgb(234,125,93)" - }, - { - "index": 274, - "name": "Sanchez Summers", - "first": "Osborne", - "last": "Buckley", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/butusai/73.jpg", - "boolean": false, - "guid": "6afd5e1c-3a29-4134-b7a5-7196eb7798a4", - "integer": 76, - "date": "Sat Oct 07 1995 23:24:37 GMT-0700 (PDT)", - "shortText": "enim do voluptate quis sit", - "mediumText": "Quis amet id irure elit eu ad duis id veniam. Qui in mollit in consectetur reprehenderit ex est. Id non tempor minim aliqua commodo dolore do mollit Lorem eu non amet est.", - "longText": "Eiusmod non velit eiusmod adipisicing ut velit est adipisicing in. Eiusmod dolore et non dolore esse velit id anim proident nisi commodo. Amet fugiat magna cupidatat est esse duis et.\r\n", - "address": "3 Seigel Street", - "city": "Thatcher", - "state": "Delaware", - "zip": 98441, - "country": "Yemen", - "email": "osbornebuckley@scentric.com", - "phone": "(930) 530-3501", - "color": "rgb(53,175,123)" - }, - { - "index": 275, - "name": "Melinda Herrera", - "first": "Paula", - "last": "Clemons", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ainsleywagon/73.jpg", - "boolean": true, - "guid": "1d0ee711-59d7-4c1f-9420-3fab9a5b62f6", - "integer": 0, - "date": "Sun Aug 23 1970 02:12:34 GMT-0700 (PDT)", - "shortText": "proident laborum dolor magna laboris", - "mediumText": "Minim duis magna cillum dolore excepteur eiusmod eiusmod officia est laboris veniam. Officia amet occaecat esse non dolor. Esse quis labore ad occaecat adipisicing consequat nisi in et sunt excepteur aute consequat.", - "longText": "Mollit magna nulla exercitation commodo excepteur amet. Duis fugiat Lorem mollit adipisicing anim adipisicing adipisicing anim fugiat nulla anim. Eu adipisicing irure Lorem qui enim nisi velit exercitation duis. Aliquip ea labore commodo et nostrud. Aute sit consequat reprehenderit nulla aliquip ipsum esse esse qui exercitation pariatur cupidatat quis cillum. Do esse in ad id est id laboris incididunt.\r\nQui non quis ipsum qui fugiat pariatur. Dolore incididunt sunt eiusmod laboris nisi nulla. Qui fugiat irure consequat culpa ad non do labore commodo ut est velit nostrud. Cillum dolor aliquip elit est enim tempor consectetur. Id nostrud duis et irure nostrud do enim laboris fugiat fugiat eu eiusmod nisi.\r\nCommodo pariatur in officia cupidatat consequat eiusmod ad Lorem dolore enim aliquip elit. Ex in commodo enim sunt eiusmod. Labore consequat culpa quis voluptate aliqua. Fugiat reprehenderit cupidatat esse eiusmod duis consequat. Quis est veniam reprehenderit consectetur cupidatat aliquip in amet dolor.\r\nMagna est esse excepteur sint enim Lorem nisi deserunt pariatur non. Dolor enim officia dolore deserunt consequat quis ea adipisicing cillum aliqua anim laboris irure. In do consectetur est culpa. Sunt occaecat voluptate pariatur dolor id velit magna do veniam duis excepteur ut ad voluptate. Ut excepteur laboris ea ut.\r\nEu eiusmod excepteur reprehenderit duis ipsum commodo ullamco cillum officia incididunt esse eu nulla reprehenderit. Aliquip elit consequat dolor labore. Laborum proident ullamco excepteur dolor esse occaecat et aliqua. Commodo ad exercitation minim ad occaecat ullamco. Veniam id dolor aliquip cupidatat. Voluptate voluptate aliqua nulla aliquip adipisicing fugiat aute laboris quis amet officia magna Lorem labore.\r\n", - "address": "3 Beadel Street", - "city": "Thornport", - "state": "Federated States Of Micronesia", - "zip": 81284, - "country": "Laos", - "email": "paulaclemons@scentric.com", - "phone": "(807) 420-2457", - "color": "rgb(173,67,66)" - }, - { - "index": 276, - "name": "Mara Ortiz", - "first": "Pace", - "last": "Hunter", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/chadbercea/73.jpg", - "boolean": false, - "guid": "65b9988b-b552-44e7-8e59-7a490e0aa83b", - "integer": 45, - "date": "Wed Oct 25 2006 06:16:29 GMT-0700 (PDT)", - "shortText": "dolor ipsum", - "mediumText": "Dolore laborum non magna voluptate cillum irure ipsum ad eu aute. Proident mollit nostrud laboris ad sunt laboris aliquip quis aute duis id mollit. Commodo qui anim adipisicing anim. Eu deserunt dolor Lorem elit quis laboris nulla enim.", - "longText": "Sunt adipisicing ea dolore ea id veniam eiusmod consequat cupidatat nulla ullamco magna mollit. Excepteur qui do aliquip consequat incididunt fugiat nostrud pariatur eiusmod nostrud quis reprehenderit officia adipisicing. Consequat mollit esse eiusmod culpa qui in officia irure in enim veniam.\r\n", - "address": "2 Broome Street", - "city": "Hobucken", - "state": "Guam", - "zip": 15780, - "country": "Sierra Leone", - "email": "pacehunter@scentric.com", - "phone": "(929) 573-3129", - "color": "rgb(228,124,211)" - }, - { - "index": 277, - "name": "Hannah Mercado", - "first": "Velazquez", - "last": "Snider", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/devinhalladay/73.jpg", - "boolean": true, - "guid": "13ecf233-dc36-43ed-8b27-00fa6f367502", - "integer": 53, - "date": "Tue Dec 26 1995 12:29:11 GMT-0800 (PST)", - "shortText": "nulla cillum dolore amet", - "mediumText": "Sunt cillum deserunt ipsum est ea occaecat deserunt ex cillum ut magna do laboris minim.", - "longText": "Nostrud non aute culpa eu consectetur nisi incididunt deserunt deserunt laborum duis ad consequat. Ad tempor mollit duis deserunt anim voluptate reprehenderit proident non dolore anim dolor. Reprehenderit excepteur mollit culpa Lorem dolore. Exercitation incididunt id non esse magna qui nostrud ad.\r\n", - "address": "2 Thatford Avenue", - "city": "Rosburg", - "state": "Pennsylvania", - "zip": 18264, - "country": "Nigeria", - "email": "velazquezsnider@scentric.com", - "phone": "(948) 461-3658", - "color": "rgb(146,114,59)" - }, - { - "index": 278, - "name": "King Murray", - "first": "Lawrence", - "last": "Floyd", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mateaodviteza/73.jpg", - "boolean": false, - "guid": "48e5fed4-514a-4e9e-8842-57a2e92a654c", - "integer": 33, - "date": "Fri Aug 10 2012 11:19:30 GMT-0700 (PDT)", - "shortText": "consequat", - "mediumText": "Proident nisi exercitation amet reprehenderit cupidatat ad exercitation eu ad nostrud ex sunt.", - "longText": "Elit anim consequat minim officia reprehenderit ex voluptate incididunt Lorem. Incididunt qui incididunt Lorem do pariatur. Id aute anim elit amet labore non eiusmod sint culpa sunt ullamco irure. Adipisicing officia ea ad aliqua. Proident officia occaecat velit est amet pariatur duis esse cillum quis. Et mollit culpa ipsum ad do adipisicing sint amet.\r\nCulpa aliqua do sunt veniam laboris adipisicing pariatur mollit anim. Fugiat cupidatat labore eu eu do ea. Voluptate quis dolore ex quis culpa. Nostrud ea enim elit reprehenderit. Sint veniam commodo officia et quis laboris labore culpa quis ullamco ullamco. Labore occaecat nulla et incididunt consectetur.\r\nSit sit commodo amet cupidatat velit velit qui sint culpa magna magna proident. Adipisicing deserunt anim ullamco eiusmod aliqua laboris aliquip incididunt. Ipsum nisi velit nulla ex elit sit nostrud qui. Magna irure laboris quis Lorem enim culpa. Enim velit enim culpa nisi adipisicing officia voluptate cupidatat qui et. Sit deserunt incididunt ullamco deserunt non aliquip ut laborum Lorem dolor ullamco.\r\nAute esse dolore nisi ut sit fugiat dolore aute aliqua. Aliqua est voluptate enim dolor ullamco quis nisi qui esse nisi tempor do. Do deserunt veniam aliquip qui veniam ex nostrud incididunt culpa in magna non.\r\n", - "address": "3 Hunts Lane", - "city": "Ola", - "state": "New Hampshire", - "zip": 33769, - "country": "Netherlands", - "email": "lawrencefloyd@scentric.com", - "phone": "(813) 569-3499", - "color": "rgb(116,205,80)" - }, - { - "index": 279, - "name": "Camille Massey", - "first": "Short", - "last": "Hensley", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/vickyshits/73.jpg", - "boolean": false, - "guid": "08757590-e154-4bf1-b5a4-3a8763c63417", - "integer": 8, - "date": "Tue Dec 26 1989 15:35:16 GMT-0800 (PST)", - "shortText": "officia", - "mediumText": "Sint excepteur adipisicing veniam consectetur incididunt nostrud duis nulla velit laborum. Eu incididunt qui duis deserunt veniam. Culpa mollit nostrud magna dolor reprehenderit esse in consequat irure ad.", - "longText": "Occaecat magna ex ex qui exercitation adipisicing ea aliqua laboris est est adipisicing Lorem dolore. Sunt cillum labore ea amet eiusmod sunt qui. Duis deserunt do irure sit quis voluptate eu duis eiusmod. Ad incididunt anim fugiat esse ipsum aliquip ut cillum tempor eiusmod.\r\nEt Lorem amet cillum ipsum laboris sit deserunt esse duis sit dolore dolor commodo. Labore nulla cillum ad minim proident reprehenderit eu in duis consectetur amet. Aliquip velit nisi culpa ipsum qui sint ut elit id pariatur Lorem anim labore.\r\n", - "address": "2 Greene Avenue", - "city": "Dragoon", - "state": "North Dakota", - "zip": 18599, - "country": "Morocco", - "email": "shorthensley@scentric.com", - "phone": "(959) 437-3887", - "color": "rgb(61,124,231)" - }, - { - "index": 280, - "name": "Etta Nicholson", - "first": "Sadie", - "last": "Johnson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kamal_chaneman/73.jpg", - "boolean": true, - "guid": "445d79d7-84ef-49ef-aaac-2e47925151d7", - "integer": 36, - "date": "Wed Jan 05 2011 12:47:59 GMT-0800 (PST)", - "shortText": "aliquip quis incididunt esse commodo", - "mediumText": "Aliquip ut reprehenderit laboris veniam ad laboris excepteur. Et ut qui fugiat consequat qui aliquip aute incididunt magna non.", - "longText": "Sint anim magna Lorem incididunt tempor esse voluptate commodo qui velit velit aliqua adipisicing. Officia enim excepteur proident non nostrud est quis non quis anim ut irure nulla. Culpa officia velit et magna non sunt culpa laboris nulla enim. Et dolor laborum amet quis occaecat irure. Labore proident ea nulla aute anim do.\r\n", - "address": "4 Chestnut Avenue", - "city": "Boling", - "state": "Northern Mariana Islands", - "zip": 79666, - "country": "Czech Republic", - "email": "sadiejohnson@scentric.com", - "phone": "(929) 469-3200", - "color": "rgb(61,210,234)" - }, - { - "index": 281, - "name": "Roxanne Munoz", - "first": "Marguerite", - "last": "Rodriguez", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_yardenoon/73.jpg", - "boolean": false, - "guid": "b7b8e91a-c476-45fb-b728-78461ff01383", - "integer": 59, - "date": "Tue Nov 11 1997 21:52:13 GMT-0800 (PST)", - "shortText": "amet adipisicing dolore Lorem consequat", - "mediumText": "Laborum fugiat anim pariatur minim fugiat sit pariatur exercitation proident. Incididunt ea duis nisi et. Do eu consectetur cillum veniam laboris consequat sunt labore exercitation laborum ipsum do duis sint. Pariatur id tempor cupidatat cillum ad eiusmod. Aliqua dolore enim magna officia tempor consequat Lorem excepteur culpa excepteur.", - "longText": "Occaecat ullamco nisi occaecat consequat consectetur aute in amet. Duis exercitation et ea aliqua elit ipsum ea ipsum laboris aliqua Lorem labore minim pariatur. Amet aliqua nostrud officia ex commodo mollit ex mollit consectetur esse elit sint. Est pariatur irure occaecat aute labore cillum nisi id.\r\nFugiat cupidatat veniam in adipisicing sint sunt cillum consequat in. Quis excepteur ad mollit occaecat et anim voluptate cupidatat. Sunt sit nisi amet excepteur voluptate. Cupidatat do ea fugiat sint minim elit nostrud. Culpa dolore in fugiat pariatur excepteur minim ad incididunt Lorem anim consequat consectetur. Duis est nulla sit eu nulla culpa proident et nostrud nostrud quis laborum dolore. Aute tempor et culpa amet.\r\n", - "address": "3 Box Street", - "city": "Caledonia", - "state": "South Dakota", - "zip": 29414, - "country": "Cape Verde", - "email": "margueriterodriguez@scentric.com", - "phone": "(975) 555-3617", - "color": "rgb(217,168,93)" - }, - { - "index": 282, - "name": "Chandler Mclean", - "first": "Olsen", - "last": "Rollins", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/daniloc/73.jpg", - "boolean": true, - "guid": "18eb19e2-f53c-42f3-b3c0-f92ba5058e72", - "integer": 86, - "date": "Mon Nov 05 2012 21:48:32 GMT-0800 (PST)", - "shortText": "sunt", - "mediumText": "Sit magna labore veniam eu dolor.", - "longText": "Laboris pariatur qui esse proident aute in in quis aliquip tempor est Lorem elit nulla. Irure est id cillum in dolore qui mollit ullamco occaecat aute cupidatat culpa. Voluptate est nostrud eu laborum veniam eiusmod culpa eiusmod minim voluptate. Cupidatat cillum eiusmod aute nostrud exercitation est do anim in. Aliquip elit ullamco voluptate incididunt. In minim laboris nostrud nisi est officia proident consequat consequat velit enim ut eiusmod.\r\nSunt ex sunt ipsum dolor proident mollit cillum. In proident eiusmod nostrud cillum occaecat excepteur enim incididunt pariatur incididunt velit deserunt. Ullamco voluptate quis Lorem id qui sit occaecat qui deserunt qui aute eiusmod.\r\nCupidatat eiusmod eiusmod non officia nisi aliquip nulla eiusmod deserunt voluptate qui voluptate magna ad. Duis sit pariatur sint ea enim do esse cillum sit proident sunt. Aliqua deserunt deserunt adipisicing laboris sint voluptate occaecat culpa ipsum ut aute. Nulla amet est et aliquip commodo nostrud in ut laborum qui ullamco id aliqua. Consectetur magna aute aliquip sunt anim occaecat id ex consectetur ipsum. Eiusmod occaecat culpa laborum fugiat. Minim in sunt occaecat eu ex velit sit eiusmod ad reprehenderit.\r\nMinim nulla commodo qui velit proident. Nisi reprehenderit ullamco in in non eu. Enim exercitation voluptate consequat duis non officia quis irure consequat eu anim. Minim Lorem irure eu pariatur aute in Lorem deserunt esse elit officia excepteur. Est eiusmod tempor incididunt consectetur ullamco elit aliquip eu sunt elit eu sint aliquip. Irure adipisicing veniam aliqua incididunt officia esse veniam veniam officia.\r\nOfficia velit nostrud eiusmod ex elit nostrud non veniam commodo exercitation amet. Enim non mollit cupidatat magna aute anim tempor. Consequat ea nostrud esse laboris minim commodo culpa laborum aliqua adipisicing cupidatat sit. Ullamco enim fugiat tempor minim officia ipsum duis et sunt sint.\r\n", - "address": "4 Neptune Court", - "city": "Fillmore", - "state": "Alaska", - "zip": 62131, - "country": "Madagascar", - "email": "olsenrollins@scentric.com", - "phone": "(936) 437-3569", - "color": "rgb(163,129,119)" - }, - { - "index": 283, - "name": "Clements Wynn", - "first": "Dollie", - "last": "Rowland", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jamesmbickerton/73.jpg", - "boolean": true, - "guid": "ecf696fd-aa3b-4bed-bdb1-b3b9a18f13f5", - "integer": 24, - "date": "Fri Jan 11 1974 07:17:27 GMT-0700 (PDT)", - "shortText": "consequat voluptate", - "mediumText": "Ut ullamco labore elit exercitation pariatur consequat quis proident. Tempor aute ex consectetur ut eu qui incididunt aliqua anim duis sit. Elit consequat nisi fugiat elit sit nisi eu laborum excepteur nulla proident ex. Eiusmod qui culpa quis velit elit consequat nulla.", - "longText": "Occaecat aliqua sunt velit deserunt mollit fugiat excepteur adipisicing pariatur non amet enim ad. Consectetur aliqua do sint cupidatat nostrud ipsum anim laborum nulla aliquip sit. Labore mollit amet Lorem quis. Ex cillum minim sit eu duis. Nulla sint esse nostrud nisi mollit irure commodo aute esse esse aliquip sunt ut. Ipsum et nulla cupidatat tempor consequat do occaecat ut.\r\nConsequat tempor et qui exercitation non in commodo. Aute minim nostrud laboris dolore reprehenderit. Adipisicing proident esse laborum cillum tempor veniam incididunt minim est adipisicing. Dolor nisi nisi dolore amet ea ipsum mollit amet.\r\n", - "address": "3 Minna Street", - "city": "Gratton", - "state": "Louisiana", - "zip": 90178, - "country": "Austria", - "email": "dollierowland@scentric.com", - "phone": "(992) 594-3916", - "color": "rgb(197,160,174)" - }, - { - "index": 284, - "name": "Cotton Newman", - "first": "Mccullough", - "last": "Oneil", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ddang33/73.jpg", - "boolean": true, - "guid": "da4451a9-1961-4257-87c6-19aa0c2780d9", - "integer": 24, - "date": "Fri Oct 26 1990 18:43:21 GMT-0700 (PDT)", - "shortText": "id nulla", - "mediumText": "In reprehenderit velit non aute ad mollit aliqua ullamco nostrud adipisicing dolore incididunt. Mollit et consequat eiusmod in laborum nulla in irure qui. Ex consequat est in laboris. Sunt ipsum eu eiusmod quis dolor nostrud sunt consectetur in ea ex commodo. Do enim occaecat labore et occaecat mollit consequat.", - "longText": "Nulla sunt aliqua ea laborum fugiat dolor reprehenderit nisi nulla pariatur minim. Duis aliquip in incididunt sunt sit nulla sunt cillum ut anim elit. Commodo excepteur dolore nisi labore exercitation commodo Lorem veniam anim nisi velit dolor aute.\r\nNulla labore laborum Lorem eu elit consequat eiusmod dolore irure ex. Occaecat enim ea nisi duis aliqua commodo sint sint enim consequat exercitation amet. Cupidatat Lorem culpa quis qui dolore. Proident non eu sint eiusmod id ullamco nisi nisi.\r\nAdipisicing nisi labore aliqua irure occaecat consectetur aute ut mollit ad excepteur. Magna et non laboris velit ipsum. Id et cillum aute nulla consectetur esse est quis culpa consequat. Veniam enim dolore dolore consequat pariatur aute elit consequat. Ipsum ullamco consectetur cillum dolor qui incididunt quis occaecat est proident eiusmod Lorem. Proident excepteur et mollit ipsum culpa duis ut fugiat tempor in ea.\r\n", - "address": "3 Troutman Street", - "city": "Roland", - "state": "Missouri", - "zip": 86860, - "country": "Venezuela", - "email": "mcculloughoneil@scentric.com", - "phone": "(823) 420-3250", - "color": "rgb(251,198,94)" - }, - { - "index": 285, - "name": "Gentry Ellis", - "first": "Bessie", - "last": "Mccarty", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/captnphilip/73.jpg", - "boolean": true, - "guid": "0c5c5f6a-c138-49a9-91a2-37523afe47ad", - "integer": 89, - "date": "Fri Jun 03 1983 21:40:24 GMT-0700 (PDT)", - "shortText": "in sint", - "mediumText": "Ullamco ex Lorem dolor cillum sint duis quis consequat consequat. Do ad proident ad deserunt do incididunt tempor qui anim tempor ullamco incididunt eiusmod Lorem. Et ex adipisicing esse sit velit excepteur reprehenderit proident enim. Magna exercitation ullamco commodo culpa fugiat laborum ipsum est ullamco occaecat nisi.", - "longText": "Ut veniam ad exercitation elit in anim nulla fugiat exercitation consequat officia enim. Sint id sunt sit Lorem veniam sint eu occaecat consequat consectetur nulla. Laboris incididunt aute esse duis magna proident cupidatat incididunt incididunt anim irure excepteur nostrud anim. Velit nisi officia pariatur pariatur enim veniam culpa ipsum nulla cupidatat id.\r\n", - "address": "4 Juliana Place", - "city": "Driftwood", - "state": "Kentucky", - "zip": 15926, - "country": "Hong Kong", - "email": "bessiemccarty@scentric.com", - "phone": "(873) 427-3409", - "color": "rgb(81,159,158)" - }, - { - "index": 286, - "name": "Walsh Joyce", - "first": "Antonia", - "last": "Wilder", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rangafangs/73.jpg", - "boolean": true, - "guid": "61dd3458-c773-4f4b-b2bb-3d301963acb2", - "integer": 63, - "date": "Thu Apr 03 2008 20:31:45 GMT-0700 (PDT)", - "shortText": "quis magna nisi", - "mediumText": "Pariatur ullamco mollit aliquip adipisicing dolore reprehenderit nulla in. Et do dolor pariatur est laboris ea amet proident elit proident est. Lorem et est nisi deserunt dolor consectetur cupidatat ea ex sunt. Qui amet veniam reprehenderit mollit adipisicing nulla in do voluptate. Fugiat irure esse proident esse anim Lorem et pariatur dolor.", - "longText": "Aute commodo incididunt eu consequat. Exercitation esse dolor id id in Lorem tempor laboris ex esse. Reprehenderit eiusmod consequat commodo consequat est. Ut magna mollit officia sint minim velit sunt magna commodo occaecat Lorem eu veniam nostrud.\r\nQui eu duis aliquip dolor dolor aliquip. Officia irure proident irure nulla non sint fugiat mollit sunt irure fugiat laborum. Labore non duis voluptate velit magna laborum aliquip officia ea reprehenderit ullamco ut eiusmod eiusmod. Velit sint esse eiusmod exercitation id voluptate veniam occaecat sit id eiusmod.\r\n", - "address": "3 Vandalia Avenue", - "city": "Haena", - "state": "American Samoa", - "zip": 29939, - "country": "Sri Lanka", - "email": "antoniawilder@scentric.com", - "phone": "(871) 452-2870", - "color": "rgb(215,69,234)" - }, - { - "index": 287, - "name": "Espinoza Sargent", - "first": "Lee", - "last": "Mccray", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/zachbruggeman/73.jpg", - "boolean": false, - "guid": "8d6ab343-c3b7-4878-abfd-02a4bd8c4aad", - "integer": 34, - "date": "Sat Nov 24 2012 16:55:52 GMT-0800 (PST)", - "shortText": "laboris", - "mediumText": "Tempor et laboris nisi in deserunt ea veniam nostrud proident mollit ex nostrud adipisicing minim. Aliqua commodo eiusmod laborum labore. Velit et occaecat laborum aliqua labore culpa elit aute.", - "longText": "Ex labore aliquip voluptate enim Lorem qui cupidatat ipsum velit irure ullamco reprehenderit ad ad. Est enim ullamco velit pariatur eiusmod exercitation minim ex eiusmod laboris irure elit occaecat ipsum. Occaecat culpa dolore id veniam in. Consequat deserunt proident sit ad consequat proident. Dolore do voluptate ipsum eiusmod elit culpa irure in laborum aute. Ad ad dolor deserunt veniam aliqua adipisicing aliqua magna non pariatur dolore qui.\r\nNon in duis aliquip in nostrud magna ipsum ullamco. Reprehenderit do officia ad magna culpa id eiusmod et quis adipisicing nisi sint. Ullamco tempor cupidatat quis aliquip anim velit.\r\nDo id dolore veniam voluptate voluptate in ullamco dolor aliqua. Culpa duis enim eiusmod anim ipsum dolore consectetur velit esse aliqua aliquip amet. Nulla sit nulla et veniam eu. Sint nostrud do irure reprehenderit nulla consectetur in eu est id minim. Incididunt consectetur sint non nisi do anim veniam laboris in ad. Ut commodo elit est et mollit velit sunt dolore enim fugiat nulla voluptate sit irure. Laborum fugiat pariatur ut dolore ut qui minim.\r\nCupidatat nulla elit non ex elit. Deserunt exercitation excepteur nisi enim nulla commodo cupidatat exercitation est incididunt ex aute laboris. Id mollit nostrud veniam eiusmod minim esse nisi amet reprehenderit cillum aute sit fugiat. Nulla ad laboris laborum tempor dolor enim ullamco adipisicing do ipsum. Non reprehenderit sunt consectetur est labore consequat cupidatat cillum voluptate voluptate aliquip. Voluptate consectetur duis ipsum do mollit. Aute deserunt anim tempor veniam exercitation ut.\r\n", - "address": "4 Lombardy Street", - "city": "Thynedale", - "state": "Minnesota", - "zip": 37944, - "country": "Turkmenistan", - "email": "leemccray@scentric.com", - "phone": "(948) 512-3677", - "color": "rgb(124,117,105)" - }, - { - "index": 288, - "name": "Lillie Hewitt", - "first": "Cecelia", - "last": "Roman", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/orkuncaylar/73.jpg", - "boolean": true, - "guid": "fd80b277-7170-4ff2-ad97-36272ea38b7d", - "integer": 54, - "date": "Mon Jul 11 1977 01:50:59 GMT-0700 (PDT)", - "shortText": "excepteur", - "mediumText": "Incididunt reprehenderit Lorem mollit consectetur adipisicing tempor occaecat nulla irure. Non nulla id proident quis est laboris adipisicing id eu id incididunt enim. Elit cillum sit ut elit nisi ea.", - "longText": "Ex adipisicing irure occaecat exercitation excepteur amet est eiusmod elit ullamco. Non tempor sit Lorem laborum laboris veniam elit sunt consequat. Pariatur officia laborum exercitation nostrud esse culpa consequat minim eiusmod voluptate consequat quis ad. Deserunt duis et Lorem labore do irure nostrud sit. Ullamco ad id sint sint cupidatat labore.\r\nEiusmod elit dolor qui nostrud eiusmod. Tempor veniam officia do exercitation. Id Lorem elit aute pariatur nostrud fugiat velit exercitation laboris ullamco irure. Laborum mollit occaecat reprehenderit dolore elit aliqua. Labore irure dolore proident non nisi culpa amet est anim non. Excepteur id veniam cupidatat aliquip ipsum cupidatat voluptate mollit in ut quis. Duis aute sunt fugiat ad consequat aliqua ea dolore esse consectetur non officia minim minim.\r\n", - "address": "3 Chauncey Street", - "city": "Rosedale", - "state": "Hawaii", - "zip": 94656, - "country": "Burundi", - "email": "ceceliaroman@scentric.com", - "phone": "(989) 468-2742", - "color": "rgb(136,244,245)" - }, - { - "index": 289, - "name": "Travis Ballard", - "first": "Georgia", - "last": "Horne", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/adamnac/73.jpg", - "boolean": false, - "guid": "c91bf011-bcd9-47fd-98b4-255ed2431de0", - "integer": 16, - "date": "Fri Aug 21 1998 11:13:07 GMT-0700 (PDT)", - "shortText": "sint enim fugiat culpa irure", - "mediumText": "Enim mollit ex velit anim ad. Mollit nulla sit est in minim voluptate ea deserunt commodo excepteur.", - "longText": "Consectetur aute officia nisi sint ut enim consequat. Id culpa in velit tempor nulla officia culpa. Ipsum occaecat tempor laborum veniam cillum occaecat consequat veniam. Nostrud aute velit veniam pariatur sint nostrud Lorem ipsum. Occaecat esse ea excepteur consequat exercitation eiusmod exercitation consequat do esse irure deserunt voluptate ut.\r\nConsectetur irure nostrud nulla ipsum fugiat nisi ex eu. Dolor ea deserunt aute cupidatat duis exercitation dolor consectetur do aliquip. Excepteur in ea cupidatat quis fugiat. Voluptate labore id tempor veniam pariatur excepteur ipsum.\r\nMagna qui ad aliqua minim sunt. Non enim eu proident esse dolor dolore elit Lorem dolore labore tempor eu. Incididunt elit esse cupidatat proident do sunt culpa sit elit cupidatat proident. Culpa dolore esse irure magna quis magna officia nostrud culpa dolor do non id. Esse laborum ea consequat commodo fugiat duis. Pariatur enim proident minim cupidatat dolor occaecat irure do. Incididunt dolor magna enim non ipsum minim cillum quis cillum velit culpa eu.\r\nEst esse eu commodo ea sint. Labore adipisicing cupidatat fugiat ea nostrud adipisicing ipsum. Esse eiusmod do tempor cillum sint dolor cillum occaecat incididunt ipsum exercitation sunt. Minim est ex commodo amet id sunt elit ea amet dolor ad. Ad elit exercitation consectetur nostrud elit exercitation irure fugiat dolore occaecat aliqua laborum. Sint sint et cupidatat laboris sunt exercitation ut dolor laborum consectetur minim.\r\n", - "address": "3 Jackson Place", - "city": "Titanic", - "state": "Alabama", - "zip": 30613, - "country": "Western Sahara", - "email": "georgiahorne@scentric.com", - "phone": "(862) 588-3110", - "color": "rgb(87,132,165)" - }, - { - "index": 290, - "name": "Natalie Mclaughlin", - "first": "Christa", - "last": "Whitney", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jeremydowe/73.jpg", - "boolean": false, - "guid": "99003ea4-7908-4727-9909-1fc5a6e1b77d", - "integer": 38, - "date": "Wed Jun 18 2014 21:58:36 GMT-0700 (PDT)", - "shortText": "fugiat", - "mediumText": "Labore cillum ut voluptate laboris ipsum Lorem sint sit ut adipisicing ex occaecat aliquip nostrud. Deserunt officia minim sunt labore excepteur.", - "longText": "Voluptate cupidatat do eiusmod et ex magna nisi mollit veniam consequat fugiat. Velit culpa veniam sint nostrud aute aliquip id commodo consectetur. Reprehenderit aute consequat eu ullamco irure duis excepteur. Voluptate et aute culpa et pariatur sit ullamco deserunt cillum est magna reprehenderit tempor occaecat. Duis elit dolor id Lorem cupidatat sit aliquip. Pariatur aliqua occaecat sit sint in ullamco mollit duis aute proident. Et commodo pariatur nostrud est.\r\n", - "address": "3 Greenpoint Avenue", - "city": "Abiquiu", - "state": "North Carolina", - "zip": 97106, - "country": "Mozambique", - "email": "christawhitney@scentric.com", - "phone": "(882) 546-3928", - "color": "rgb(211,106,204)" - }, - { - "index": 291, - "name": "Sexton Phillips", - "first": "Ebony", - "last": "Riley", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/adamawesomeface/73.jpg", - "boolean": false, - "guid": "79a69d1d-7c62-4f81-8cb4-2933233de8f0", - "integer": 31, - "date": "Mon Oct 28 1985 13:27:05 GMT-0800 (PST)", - "shortText": "duis", - "mediumText": "Duis do ullamco mollit reprehenderit proident labore laborum sint ipsum reprehenderit occaecat anim. Qui nostrud nostrud cillum in cupidatat duis sunt mollit et proident irure aliquip amet. Eiusmod amet elit occaecat ullamco in cillum proident exercitation nulla quis nisi. Velit qui ex nisi officia. Ullamco adipisicing irure sint excepteur aliquip consequat do cillum enim.", - "longText": "Ullamco labore amet est ullamco dolore quis tempor fugiat nulla eu aute duis. Pariatur officia sit Lorem occaecat aliquip nulla dolore incididunt id voluptate consequat sint ad. Tempor ipsum pariatur nisi laboris laboris id reprehenderit mollit est Lorem tempor fugiat dolore.\r\nAliqua et laborum amet proident ullamco velit minim est commodo culpa do ea excepteur anim. Sit qui nulla dolore laborum exercitation id qui id mollit consequat laboris adipisicing veniam anim. Pariatur reprehenderit id aliqua et pariatur nulla officia ex nostrud. Dolore ea do dolor nulla. Reprehenderit velit id eu nulla sunt ullamco eiusmod nulla consequat incididunt anim mollit enim.\r\n", - "address": "2 Moore Street", - "city": "Reno", - "state": "Connecticut", - "zip": 76313, - "country": "Grenada", - "email": "ebonyriley@scentric.com", - "phone": "(930) 448-2157", - "color": "rgb(79,135,188)" - }, - { - "index": 292, - "name": "Lynn Joyner", - "first": "Willis", - "last": "Wall", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/low_res/73.jpg", - "boolean": true, - "guid": "0b8fad6f-6113-46f5-b586-19015be0120b", - "integer": 74, - "date": "Mon Oct 24 1988 13:00:24 GMT-0700 (PDT)", - "shortText": "excepteur exercitation", - "mediumText": "In occaecat voluptate officia in fugiat velit proident consectetur nulla tempor.", - "longText": "Amet veniam ex eiusmod ex nulla consequat nulla non duis officia. Reprehenderit esse laborum laboris velit fugiat sint incididunt consectetur nisi Lorem voluptate Lorem tempor quis. Voluptate veniam ea dolor laborum ea nostrud voluptate qui. Deserunt aliqua dolor culpa tempor ex consequat in. Esse est incididunt exercitation ad ex ad est. Aute culpa Lorem cillum est sunt adipisicing tempor eu cupidatat. Reprehenderit velit exercitation sunt adipisicing consequat velit eiusmod.\r\nDuis ex minim Lorem aute labore exercitation ipsum do magna minim. Lorem ipsum dolor laboris non minim. Ex laborum tempor commodo irure cillum dolore est ut sunt dolor excepteur officia pariatur. Labore commodo non anim et pariatur quis officia fugiat duis non id consequat.\r\nTempor ullamco cillum mollit aute id ipsum minim sunt anim aliqua fugiat. Ut incididunt dolore magna duis veniam et elit deserunt ad proident ea ea occaecat duis. Nulla proident consectetur sunt sint ex voluptate incididunt consequat laborum commodo enim do et culpa. Aute consequat minim elit Lorem adipisicing excepteur culpa.\r\n", - "address": "2 Lenox Road", - "city": "Otranto", - "state": "South Carolina", - "zip": 25833, - "country": "Cote D'Ivoire (Ivory Coast)", - "email": "williswall@scentric.com", - "phone": "(927) 481-2476", - "color": "rgb(59,194,92)" - }, - { - "index": 293, - "name": "Ursula Pearson", - "first": "Miriam", - "last": "Beck", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tomas_janousek/73.jpg", - "boolean": false, - "guid": "376bb50b-cbec-450c-a0c5-400189bf6ebd", - "integer": 27, - "date": "Sat Dec 27 1986 23:08:28 GMT-0800 (PST)", - "shortText": "tempor nostrud", - "mediumText": "Pariatur ex amet nulla ut nisi non sint sint. Labore minim aute id id ex. Consectetur eu aute ad aute irure proident. Tempor tempor velit labore nulla culpa sunt aliquip.", - "longText": "Exercitation culpa do nisi elit sit. Et fugiat mollit incididunt dolor esse consequat. Ut culpa duis sit laboris in enim fugiat exercitation. Nostrud ex qui laboris Lorem magna ea non nostrud ad esse. Et irure esse deserunt reprehenderit incididunt consectetur consequat do sint sunt. Nostrud cillum adipisicing quis duis.\r\nMollit eu officia velit velit ea consectetur fugiat amet nisi. Eiusmod sit culpa tempor fugiat reprehenderit irure proident. Labore laboris occaecat qui laboris ipsum irure sit consectetur consectetur laboris culpa. Minim ad aliquip enim Lorem qui culpa. Minim proident ipsum et ea sunt. Nulla et consectetur esse aute.\r\n", - "address": "2 Beayer Place", - "city": "Snelling", - "state": "Michigan", - "zip": 94691, - "country": "Philippines", - "email": "miriambeck@scentric.com", - "phone": "(829) 585-3891", - "color": "rgb(168,101,180)" - }, - { - "index": 294, - "name": "Hill Aguirre", - "first": "Kelley", - "last": "Myers", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jghyllebert/73.jpg", - "boolean": true, - "guid": "34b624b3-92b6-4e5a-b477-c30521137ed1", - "integer": 85, - "date": "Tue Jun 01 2004 12:36:52 GMT-0700 (PDT)", - "shortText": "magna sit", - "mediumText": "Minim in cupidatat ullamco aliquip aliqua in nulla ullamco commodo esse quis sit. Ut aliquip elit cillum ad. Ex exercitation occaecat nulla nostrud elit aliquip nostrud commodo. Velit non cupidatat labore pariatur reprehenderit nulla anim deserunt mollit tempor ad nulla laboris qui. Exercitation aute fugiat quis anim aute.", - "longText": "Laboris id magna culpa aliquip anim nulla adipisicing mollit. Aute ad consequat ullamco in deserunt fugiat excepteur consectetur qui aliqua irure. Veniam ut in proident adipisicing dolore Lorem anim. Lorem veniam enim adipisicing nulla sint esse enim cupidatat. Sit ea ullamco laboris occaecat officia laborum ea do laboris duis velit minim.\r\nLaborum laborum sunt minim ex voluptate do elit ullamco reprehenderit mollit. Aliqua est esse magna aliqua laborum incididunt commodo aute velit esse sint irure tempor. Ut ut cupidatat quis exercitation exercitation. Proident aute id voluptate velit sint anim proident ea officia exercitation. Aliqua do labore veniam duis occaecat commodo. Anim duis elit esse non elit ut.\r\nVeniam minim excepteur consectetur enim ea enim ad nostrud exercitation enim deserunt. Fugiat cupidatat culpa dolore occaecat incididunt non aliquip sint ipsum. Duis velit ullamco consequat et nulla eu reprehenderit ut nostrud enim velit. Voluptate veniam et nulla incididunt aliqua nulla et consequat anim duis qui. Ullamco ipsum velit amet eu proident proident nisi qui aliquip sint. Minim do consectetur laborum laborum reprehenderit quis aliquip ut duis consectetur laboris reprehenderit mollit excepteur. Eiusmod aliquip deserunt aute ex.\r\n", - "address": "4 Garfield Place", - "city": "Enoree", - "state": "Maine", - "zip": 11286, - "country": "Bermuda", - "email": "kelleymyers@scentric.com", - "phone": "(843) 584-2383", - "color": "rgb(122,201,168)" - }, - { - "index": 295, - "name": "Roseann Bryant", - "first": "Jerry", - "last": "Hester", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gkaam/73.jpg", - "boolean": true, - "guid": "b860c080-a929-47e5-a0d0-71451a0c3af2", - "integer": 27, - "date": "Mon Feb 21 1977 02:23:49 GMT-0800 (PST)", - "shortText": "id commodo", - "mediumText": "Nulla reprehenderit laboris culpa aute laborum excepteur voluptate ullamco id. Consequat ut veniam occaecat officia dolore do. Laborum exercitation reprehenderit nostrud aute ut do. Esse laborum sit Lorem sint do mollit.", - "longText": "Dolore in cupidatat officia sunt. Sunt elit labore nisi est laboris dolore veniam. Esse pariatur in ex magna veniam aute.\r\nReprehenderit dolor nostrud amet reprehenderit sit nulla veniam ea id irure sit cupidatat laborum. Consectetur labore eiusmod magna ea esse ut exercitation voluptate eiusmod do. Ut cupidatat officia fugiat irure anim eu eu cillum minim ex ullamco.\r\nLabore reprehenderit culpa laboris irure cillum aliqua. Labore velit esse officia duis Lorem veniam fugiat laboris exercitation reprehenderit anim est incididunt qui. Cillum velit excepteur duis ullamco officia amet. Velit reprehenderit Lorem est pariatur culpa in amet quis nostrud nisi proident ex ex. Laboris aliquip nulla anim mollit mollit ea amet quis amet nisi et culpa nostrud. Magna esse in sit cillum eu sunt anim sit officia culpa ea aliqua ipsum. Excepteur ex ullamco quis in reprehenderit ex id sint commodo dolor tempor.\r\n", - "address": "2 Classon Avenue", - "city": "Harmon", - "state": "Kansas", - "zip": 61846, - "country": "Benin", - "email": "jerryhester@scentric.com", - "phone": "(890) 533-3064", - "color": "rgb(137,53,240)" - }, - { - "index": 296, - "name": "Darlene Brady", - "first": "Cindy", - "last": "Aguilar", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ahmetalpbalkan/73.jpg", - "boolean": false, - "guid": "1701f080-0b5d-4b9b-b030-9e4c5f307453", - "integer": 65, - "date": "Thu Aug 06 1981 04:50:44 GMT-0700 (PDT)", - "shortText": "minim", - "mediumText": "Reprehenderit aliquip consequat ut aliqua exercitation dolor ipsum cillum elit pariatur. Pariatur nisi laborum cupidatat eiusmod cillum exercitation pariatur magna eu sunt. Dolore culpa ut non occaecat.", - "longText": "Do occaecat do quis qui laboris veniam. Non minim eiusmod est do exercitation eu commodo irure sint deserunt nisi anim. Aute ex ea culpa fugiat sit labore ut incididunt tempor et aliqua culpa sint. Duis cillum laborum officia eiusmod qui veniam laborum incididunt. Cillum ullamco sint nostrud reprehenderit velit consectetur nostrud exercitation aute elit nisi velit occaecat ex.\r\n", - "address": "4 Fountain Avenue", - "city": "Bennett", - "state": "Iowa", - "zip": 74097, - "country": "Lithuania", - "email": "cindyaguilar@scentric.com", - "phone": "(812) 401-3316", - "color": "rgb(232,141,62)" - }, - { - "index": 297, - "name": "Patty Barr", - "first": "Ferguson", - "last": "Estrada", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/Silveredge9/73.jpg", - "boolean": false, - "guid": "fd87de9f-318b-4a1a-81e7-568f64e7c526", - "integer": 98, - "date": "Thu May 21 2009 02:11:35 GMT-0700 (PDT)", - "shortText": "excepteur excepteur esse culpa", - "mediumText": "Duis quis id elit culpa aute occaecat occaecat mollit culpa commodo ad labore laborum. Aliqua ea dolor Lorem ad laboris deserunt.", - "longText": "Ex in occaecat enim voluptate ex nisi officia. Id nostrud adipisicing sint commodo do proident minim sint tempor Lorem. Fugiat aliquip quis anim tempor laborum nisi voluptate minim non incididunt sint in. Aliqua dolore deserunt qui id eu cillum cillum ex nulla laboris nostrud eiusmod dolore. Qui dolor ullamco dolore proident aliqua.\r\nMagna consequat ex sunt occaecat enim deserunt dolor. Proident deserunt enim nulla eiusmod esse ea. Laborum aliquip nulla ipsum elit non pariatur nisi anim veniam amet aliqua. Ullamco cillum deserunt ex consectetur. Esse ex fugiat dolor ea ullamco dolor sit non. Esse eu occaecat dolore quis ipsum. Labore sint qui veniam fugiat est laboris sit.\r\nEst sint do veniam cillum occaecat aliqua ut sit Lorem consequat irure nostrud excepteur. Veniam dolore Lorem et nostrud quis esse est. Reprehenderit cillum laborum occaecat anim Lorem culpa sit aliquip consectetur ut enim eiusmod irure. Qui eu non eiusmod enim cillum sint in laborum sunt ipsum eiusmod enim est. Et labore occaecat dolor aliquip anim esse pariatur. Labore sit incididunt deserunt dolore ad deserunt. Lorem deserunt ex cillum qui amet adipisicing dolor eiusmod culpa id.\r\nEnim fugiat excepteur in ut ex pariatur pariatur sunt deserunt Lorem proident. Ipsum eu enim fugiat est ut ipsum do sint proident ipsum esse deserunt. Culpa minim duis ut aliquip sint sunt velit dolore amet. Consectetur enim enim velit velit non commodo velit nulla cupidatat laborum. Aliqua duis sint cupidatat excepteur adipisicing. Laboris proident irure aliqua esse irure aliqua ex consectetur.\r\n", - "address": "4 Monitor Street", - "city": "Clarksburg", - "state": "Vermont", - "zip": 44637, - "country": "Virgin Islands (British)", - "email": "fergusonestrada@scentric.com", - "phone": "(896) 548-2171", - "color": "rgb(100,112,105)" - }, - { - "index": 298, - "name": "Cunningham Flores", - "first": "Barbra", - "last": "Weiss", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_rennerlisa/73.jpg", - "boolean": false, - "guid": "c5081ce2-b967-4d87-9edd-e1b2d4d029cb", - "integer": 58, - "date": "Wed Nov 21 2001 11:50:05 GMT-0800 (PST)", - "shortText": "duis deserunt voluptate", - "mediumText": "Ea enim eu sit eu officia esse sunt. Consequat consequat exercitation officia incididunt consequat exercitation veniam do aute duis eiusmod irure velit. Anim labore ut exercitation excepteur irure incididunt laborum. Adipisicing et pariatur sit officia dolor laboris. Duis ipsum amet ipsum sit labore ipsum elit aliqua eiusmod.", - "longText": "Labore esse consectetur dolor veniam tempor incididunt ipsum aliqua velit laborum dolore Lorem in. Duis proident occaecat Lorem eu officia labore ullamco duis Lorem. Eu deserunt amet laboris aliqua anim sunt aliqua. Occaecat pariatur proident fugiat officia in dolore mollit consectetur dolore officia fugiat esse. Proident culpa veniam sit commodo. Quis sunt in velit id magna tempor est. Velit veniam aliquip cupidatat sunt quis veniam et minim.\r\nLorem ut fugiat in sit eiusmod officia in ad ad culpa culpa. Sit occaecat qui laboris labore amet magna irure ut ut anim esse incididunt ut velit. Dolor minim id reprehenderit reprehenderit labore. Dolore sint ipsum esse ut ex. Dolor esse est Lorem Lorem commodo veniam minim. Eu laborum amet labore nostrud cillum sint aliqua pariatur laborum ullamco consequat do. Quis proident in sunt laborum officia qui aliquip.\r\nIn cillum do cupidatat qui sint. Irure aliqua dolor proident esse tempor cupidatat laborum cillum. Culpa laboris nostrud esse eiusmod.\r\nReprehenderit non duis amet dolore excepteur ad et. Officia magna quis ipsum fugiat eu in nostrud labore culpa. Ullamco ullamco duis irure sit dolore amet aute non dolor adipisicing.\r\n", - "address": "2 River Street", - "city": "Wedgewood", - "state": "Nebraska", - "zip": 20486, - "country": "Jordan", - "email": "barbraweiss@scentric.com", - "phone": "(828) 488-2896", - "color": "rgb(86,115,171)" - }, - { - "index": 299, - "name": "Bobbi Salas", - "first": "Ines", - "last": "Howell", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kulturpessimist/73.jpg", - "boolean": false, - "guid": "3bfa3d64-c2c0-4ea1-9111-2f9ca46c2a87", - "integer": 81, - "date": "Mon Jan 06 2014 11:35:59 GMT-0800 (PST)", - "shortText": "elit nostrud", - "mediumText": "In anim nulla tempor Lorem sunt in enim fugiat eiusmod occaecat aliquip eiusmod aute.", - "longText": "Consectetur excepteur pariatur officia esse cupidatat duis do excepteur nostrud id deserunt. Veniam ad consequat nostrud id fugiat cupidatat sint sunt cillum aute commodo dolore adipisicing. Eu dolor exercitation ullamco enim consequat ad pariatur incididunt. Nisi dolor eiusmod reprehenderit non. Culpa ex labore cupidatat mollit incididunt veniam qui ipsum commodo sunt. In qui aliqua tempor excepteur ut ea cillum.\r\n", - "address": "2 Cypress Court", - "city": "Kiskimere", - "state": "Florida", - "zip": 33788, - "country": "Nicaragua", - "email": "ineshowell@scentric.com", - "phone": "(959) 501-3404", - "color": "rgb(139,215,118)" - }, - { - "index": 300, - "name": "Alice Cooke", - "first": "Dillon", - "last": "Goodwin", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/picard102/73.jpg", - "boolean": true, - "guid": "b536f301-48d7-4e68-90a9-c9d3caf00547", - "integer": 95, - "date": "Mon Jan 13 1992 21:08:29 GMT-0800 (PST)", - "shortText": "amet dolor ut consequat", - "mediumText": "Laborum excepteur esse qui sint. Enim ullamco amet anim commodo sunt incididunt dolore. Pariatur mollit esse consectetur fugiat ex esse voluptate enim.", - "longText": "Occaecat duis sit labore magna. Aute veniam ex reprehenderit irure dolor. Aliquip dolor quis sint eu do sunt commodo nulla cillum. Non minim fugiat nulla amet ullamco ipsum ex. Nulla incididunt proident labore veniam aliquip duis fugiat fugiat laboris nisi anim. Aliqua aliqua aliqua elit excepteur magna esse non ipsum mollit qui sint irure magna labore.\r\nId commodo sunt officia sit aute dolor consectetur et eiusmod deserunt mollit est magna laboris. Est laborum nulla in ex adipisicing veniam. Nisi anim ut dolore cupidatat fugiat eu. Eiusmod et culpa ex quis fugiat nostrud culpa. Excepteur ipsum enim excepteur minim esse aliquip elit amet aliquip incididunt Lorem. Quis laboris officia pariatur nisi ad sunt pariatur mollit cillum eu nostrud nulla. Ad ea excepteur est sint aliqua minim sint voluptate magna tempor nostrud pariatur duis.\r\nEu laboris ea esse adipisicing est veniam sint elit eiusmod. Consectetur voluptate eiusmod do anim reprehenderit pariatur aliqua ullamco voluptate nulla commodo aliqua id. Voluptate deserunt irure Lorem velit amet consectetur amet deserunt. Excepteur id esse eiusmod cupidatat laborum fugiat. Ea labore et amet non.\r\nAmet ea aute magna tempor. Duis voluptate culpa voluptate culpa ut irure. Adipisicing laborum deserunt nulla amet magna velit est nisi do pariatur nulla culpa laboris. Amet proident voluptate cillum ullamco cupidatat. Elit est incididunt sint fugiat tempor.\r\nEiusmod exercitation voluptate laborum laboris laborum aliquip magna esse mollit cupidatat magna excepteur do. Magna tempor excepteur ex dolor. Pariatur sunt duis minim duis aute cupidatat qui in anim qui. Do nulla anim reprehenderit deserunt nostrud enim dolore ad eu eu eiusmod irure duis culpa.\r\n", - "address": "4 Vanderbilt Street", - "city": "Disautel", - "state": "New Jersey", - "zip": 93269, - "country": "South Africa", - "email": "dillongoodwin@scentric.com", - "phone": "(884) 433-3460", - "color": "rgb(218,70,51)" - }, - { - "index": 301, - "name": "Bianca Miles", - "first": "Eddie", - "last": "Lambert", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/e_zrra/73.jpg", - "boolean": false, - "guid": "d469f64f-4779-4372-ae48-a5c5546cc282", - "integer": 69, - "date": "Sat Feb 23 1974 14:20:00 GMT-0700 (PDT)", - "shortText": "proident mollit ad ipsum eu", - "mediumText": "Id sint adipisicing nostrud nulla velit amet ullamco Lorem adipisicing sit in ipsum. Ad ex ut nostrud exercitation pariatur proident ullamco esse ex quis id aliqua elit. Culpa et laborum enim laboris.", - "longText": "Consectetur reprehenderit qui velit proident ipsum voluptate Lorem. Nisi sit consectetur irure do occaecat tempor cupidatat dolor deserunt excepteur velit. Culpa incididunt veniam consequat veniam ex nisi nulla deserunt. Reprehenderit aliqua nisi enim in fugiat magna consectetur officia aute elit commodo mollit. Quis ipsum eiusmod fugiat ut consequat amet do eu.\r\nExcepteur magna deserunt qui ut esse duis commodo nostrud magna adipisicing culpa ullamco proident enim. Laboris aliquip non dolor in enim quis eu. Ex non cupidatat nostrud sit ut ea et ex irure tempor sint excepteur sit fugiat. Id cupidatat elit amet sit ullamco sint tempor sit tempor. Incididunt Lorem magna veniam occaecat duis aute minim duis sint.\r\nCillum pariatur non esse amet incididunt. Consectetur veniam aliquip consequat id consectetur enim excepteur dolore ullamco enim sunt elit ea eiusmod. Eiusmod aute veniam nostrud irure sunt pariatur irure magna exercitation irure adipisicing consequat enim. In et ex occaecat occaecat velit. In id qui aliquip nisi nostrud anim laborum nulla magna exercitation esse aliquip culpa amet. Exercitation tempor adipisicing culpa sit eu est fugiat consequat. Laboris minim nulla nisi labore enim sint consequat pariatur.\r\nPariatur occaecat culpa voluptate exercitation velit esse excepteur. Exercitation eiusmod et enim labore. Sunt sunt qui non ipsum nostrud nostrud veniam dolor velit velit qui. Anim qui reprehenderit ut quis mollit cillum. Eu dolor reprehenderit excepteur do ipsum eu. Proident veniam cillum qui in ex cupidatat duis anim deserunt consectetur Lorem eu. Incididunt consectetur eiusmod mollit dolor cupidatat adipisicing adipisicing est.\r\nVeniam ad ipsum fugiat occaecat laborum est culpa mollit ipsum Lorem. Ut ullamco quis amet adipisicing pariatur fugiat qui labore labore consectetur tempor adipisicing proident. Proident tempor reprehenderit ut ea dolor Lorem nisi. Labore adipisicing commodo ad eu sit nulla cillum. Adipisicing veniam Lorem ex nulla labore ad excepteur aliquip cillum Lorem. Ea incididunt proident ullamco incididunt tempor esse est. Incididunt quis nostrud deserunt irure sit do.\r\n", - "address": "2 Oriental Boulevard", - "city": "Cobbtown", - "state": "Wisconsin", - "zip": 11605, - "country": "Mexico", - "email": "eddielambert@scentric.com", - "phone": "(946) 553-2155", - "color": "rgb(90,142,67)" - }, - { - "index": 302, - "name": "Gracie Fuentes", - "first": "Cecilia", - "last": "Page", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/voldy333/73.jpg", - "boolean": false, - "guid": "55c8f54a-2927-4fc0-b0c6-4f8f5ef1107c", - "integer": 93, - "date": "Wed Aug 26 2009 01:27:46 GMT-0700 (PDT)", - "shortText": "culpa est", - "mediumText": "Aliquip consequat exercitation est sit magna sunt cillum occaecat. Nulla qui aute non eu exercitation.", - "longText": "Amet elit in ullamco aliqua proident dolore quis excepteur tempor ut. Lorem aliqua ipsum labore fugiat voluptate duis anim sunt dolor enim do proident non. Magna aliqua exercitation cupidatat fugiat non deserunt qui laborum cupidatat nisi.\r\nCommodo ullamco incididunt est dolore ad sint culpa sunt dolor enim. Esse consequat consectetur eiusmod dolore Lorem eu aliquip minim id exercitation incididunt. Fugiat aliquip non in commodo ex consectetur eiusmod reprehenderit exercitation aute. Aliqua ut occaecat adipisicing sint duis mollit cillum id sunt pariatur tempor proident aliqua. Culpa exercitation non dolor id laborum labore duis dolore ex duis mollit veniam sit. Ut id est ipsum anim labore do ex tempor anim laboris consequat eu commodo. Cillum do Lorem aliqua Lorem in sunt non ullamco velit aliquip.\r\nUllamco minim quis eu consequat. Et labore irure adipisicing cillum fugiat in in. Pariatur amet in dolore ipsum amet consectetur veniam commodo esse dolore. Nostrud sit aliquip ipsum incididunt enim commodo qui irure. Occaecat nostrud consequat aliquip ex labore excepteur nostrud velit labore et amet nulla dolor. Ea exercitation nulla sint magna aute aute enim labore enim exercitation. Est dolor ipsum mollit aliquip sunt voluptate amet veniam ullamco.\r\nEiusmod ea aute pariatur pariatur et tempor. Veniam eiusmod incididunt ullamco nulla. Esse excepteur culpa veniam sunt. Aliquip duis amet laboris qui est nostrud consequat. Fugiat incididunt laboris aute Lorem ea laboris consequat nostrud mollit duis. Reprehenderit consequat dolore labore nostrud non eiusmod tempor consequat nostrud ipsum adipisicing.\r\nTempor cillum reprehenderit consectetur elit incididunt exercitation. Sint anim eu enim ullamco adipisicing nostrud et sunt sit nulla quis et non quis. Ut eiusmod elit dolor ea commodo reprehenderit non. Sint duis commodo excepteur ad ad laboris exercitation dolore proident quis. Eu laborum exercitation consequat mollit esse. Aute tempor ipsum veniam exercitation labore culpa duis qui.\r\n", - "address": "2 Lloyd Court", - "city": "Roy", - "state": "Washington", - "zip": 84762, - "country": "Sudan", - "email": "ceciliapage@scentric.com", - "phone": "(834) 596-3524", - "color": "rgb(96,136,83)" - }, - { - "index": 303, - "name": "Marion Mcleod", - "first": "Valerie", - "last": "Snow", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jasonmarkjones/73.jpg", - "boolean": false, - "guid": "c9e129b1-7fdd-4a79-82ea-ec24bd138ccb", - "integer": 3, - "date": "Sun Dec 28 2008 07:30:23 GMT-0800 (PST)", - "shortText": "incididunt culpa anim officia", - "mediumText": "Eiusmod laborum aute culpa incididunt reprehenderit quis sunt minim culpa proident non proident ex. Ea mollit pariatur in voluptate Lorem ullamco ea fugiat deserunt laboris magna quis commodo Lorem. Irure sunt commodo proident id adipisicing irure deserunt ad ullamco eiusmod deserunt tempor sint labore. Eiusmod fugiat commodo aliquip excepteur nisi irure deserunt esse.", - "longText": "Est consectetur adipisicing est officia. Fugiat esse dolor qui aliquip aute est eu irure excepteur incididunt. Consectetur qui nulla culpa ea cupidatat labore adipisicing. Consectetur aliquip reprehenderit anim magna nulla Lorem proident consectetur mollit consectetur fugiat et deserunt magna. Incididunt culpa Lorem velit ut fugiat irure dolore enim nulla ut. Commodo elit enim incididunt deserunt incididunt officia.\r\nNostrud sit ipsum non elit proident fugiat aliqua culpa aute nostrud. Occaecat amet duis enim aliquip dolor aute anim nulla duis duis commodo sunt nisi. Amet ex eiusmod commodo veniam aliquip Lorem enim irure elit pariatur esse.\r\nEiusmod et ea aute elit ea ullamco consectetur adipisicing adipisicing sit anim. Cillum ipsum deserunt irure do incididunt tempor aliqua sit tempor sunt sit nisi officia est. Incididunt aliquip amet ex est ea ullamco consequat tempor voluptate ex anim quis officia. Pariatur commodo velit amet deserunt. Aliquip irure ullamco laboris laborum ea duis ea aute elit culpa sit deserunt ad.\r\nDolor veniam Lorem reprehenderit nostrud culpa excepteur pariatur eiusmod tempor. Amet nisi excepteur id laborum minim veniam. Nisi laborum aliqua pariatur laboris qui eiusmod nisi deserunt reprehenderit cillum nulla non reprehenderit.\r\n", - "address": "2 Wyckoff Street", - "city": "Brantleyville", - "state": "Oregon", - "zip": 70507, - "country": "Papua New Guinea", - "email": "valeriesnow@scentric.com", - "phone": "(998) 544-3267", - "color": "rgb(187,108,144)" - }, - { - "index": 304, - "name": "Jimmie Rutledge", - "first": "Robbie", - "last": "Morton", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/r_oy/73.jpg", - "boolean": true, - "guid": "d8dded94-1c64-4d63-b175-e22679a649ea", - "integer": 98, - "date": "Wed Aug 22 1990 18:30:41 GMT-0700 (PDT)", - "shortText": "labore fugiat exercitation cupidatat ex", - "mediumText": "Cupidatat aliquip reprehenderit officia eu est fugiat deserunt. Fugiat labore do elit quis et nisi culpa. Exercitation labore laborum ad irure deserunt consequat. Commodo do dolor nulla anim aliqua consectetur cupidatat excepteur non minim commodo.", - "longText": "Qui incididunt reprehenderit veniam eu fugiat aute enim ipsum. Quis aliquip ea commodo proident exercitation tempor duis. Non commodo in duis id cillum excepteur eu elit. Deserunt Lorem proident in laboris quis ea et. Cupidatat irure veniam sit incididunt. Dolor ut dolor labore ullamco enim. Qui deserunt ullamco ex aute elit nulla officia sit exercitation.\r\nDo commodo officia esse sint. Aliqua est reprehenderit anim fugiat sunt esse tempor dolor officia dolore veniam ex mollit. Ad ea culpa laboris ea anim commodo. Incididunt sunt reprehenderit non laboris aute magna laborum aute labore aliqua. Esse nulla nostrud id occaecat pariatur laborum ut voluptate. Ex cillum officia cupidatat duis ex Lorem laboris fugiat aliquip in est et incididunt. Veniam laboris commodo nostrud consequat sunt dolore.\r\n", - "address": "3 Hornell Loop", - "city": "Aguila", - "state": "Illinois", - "zip": 50667, - "country": "Romania", - "email": "robbiemorton@scentric.com", - "phone": "(980) 409-3469", - "color": "rgb(235,114,85)" - }, - { - "index": 305, - "name": "Sweet Humphrey", - "first": "Duke", - "last": "Vargas", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/boericke/73.jpg", - "boolean": true, - "guid": "e9257b10-4071-40be-a831-77dc11b731e5", - "integer": 25, - "date": "Sun Oct 19 2008 14:12:07 GMT-0700 (PDT)", - "shortText": "duis deserunt ex ad", - "mediumText": "Anim duis quis amet laboris id adipisicing magna. Lorem ullamco magna consequat adipisicing dolor magna.", - "longText": "Velit mollit pariatur fugiat cupidatat veniam est. Laborum non reprehenderit qui in labore nisi. Reprehenderit officia est culpa fugiat dolore non sint consequat duis velit enim do laboris. Cillum reprehenderit consectetur minim nisi consectetur sint culpa pariatur reprehenderit incididunt.\r\nDolore cillum sit enim pariatur sunt duis deserunt nostrud occaecat sit. Aliqua do ut cillum aliquip adipisicing qui. Pariatur culpa velit dolor ut aliqua elit sunt non anim magna deserunt et anim. Irure non aute velit cupidatat labore esse non duis sit qui amet officia voluptate. Deserunt et proident amet anim duis consectetur commodo mollit. Commodo voluptate deserunt eiusmod sit.\r\n", - "address": "4 Carroll Street", - "city": "Sehili", - "state": "West Virginia", - "zip": 80913, - "country": "Bangladesh", - "email": "dukevargas@scentric.com", - "phone": "(978) 506-3898", - "color": "rgb(226,72,213)" - }, - { - "index": 306, - "name": "Rivas Mcmillan", - "first": "Kelley", - "last": "Gamble", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/phanalpha/73.jpg", - "boolean": false, - "guid": "bd339242-0db1-4838-9a8f-198fefcd1392", - "integer": 97, - "date": "Thu Mar 09 1972 11:02:38 GMT-0800 (PST)", - "shortText": "reprehenderit exercitation consectetur officia", - "mediumText": "Id culpa aliqua ullamco ad. Dolor eu cillum minim officia quis occaecat. Labore nulla ea dolore aliquip exercitation enim. Non ipsum dolore Lorem esse incididunt tempor culpa nulla.", - "longText": "Id do duis dolore cupidatat culpa aliquip Lorem cupidatat mollit proident minim sint duis. Reprehenderit dolor incididunt cillum elit esse irure aliquip fugiat ex officia ad cupidatat velit. Ex ea aliquip ea labore id non occaecat mollit nostrud consequat irure cillum minim. Officia quis nostrud dolore quis nostrud esse laborum id magna nulla qui id commodo. Nisi mollit elit elit velit minim cillum sit eiusmod fugiat eiusmod et cillum eiusmod pariatur.\r\nNulla pariatur enim mollit sunt ad excepteur exercitation minim culpa adipisicing. Anim qui adipisicing pariatur aliquip. Proident cupidatat veniam in et est magna labore reprehenderit in. Qui Lorem reprehenderit in in.\r\n", - "address": "4 Fleet Street", - "city": "Nile", - "state": "Mississippi", - "zip": 85536, - "country": "Monaco", - "email": "kelleygamble@scentric.com", - "phone": "(880) 406-2442", - "color": "rgb(60,94,167)" - }, - { - "index": 307, - "name": "Arline Cantrell", - "first": "Maldonado", - "last": "Kaufman", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/miguellagran/73.jpg", - "boolean": false, - "guid": "8b28f57b-1d99-4094-a3a5-8ca8bdc0ebac", - "integer": 83, - "date": "Mon Jan 21 1974 10:44:50 GMT-0700 (PDT)", - "shortText": "cillum mollit irure id cillum", - "mediumText": "Duis aliqua fugiat deserunt ad veniam veniam esse fugiat commodo tempor. Non consectetur commodo eu dolore eu veniam. Mollit ullamco ut minim mollit. Qui enim aliqua nisi officia. Ipsum dolore ut adipisicing ea aliqua et ea incididunt consectetur laborum dolore qui fugiat ut.", - "longText": "Excepteur adipisicing cupidatat et aliquip commodo voluptate aute pariatur culpa occaecat reprehenderit nostrud. Reprehenderit occaecat eiusmod ut elit magna occaecat. Et aute duis consectetur dolor ut consequat ad.\r\nProident ad cillum sit ullamco. Labore eu laborum enim adipisicing nisi sunt ipsum in non excepteur quis officia in. Anim anim eu consectetur est sint et quis. Amet amet cupidatat reprehenderit aliquip. Elit voluptate ad anim dolore anim tempor nostrud tempor.\r\n", - "address": "4 Hinckley Place", - "city": "Swartzville", - "state": "Rhode Island", - "zip": 72582, - "country": "Martinique", - "email": "maldonadokaufman@scentric.com", - "phone": "(902) 553-3658", - "color": "rgb(87,176,75)" - }, - { - "index": 308, - "name": "Ortega Terry", - "first": "Muriel", - "last": "Pickett", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dustinlamont/73.jpg", - "boolean": true, - "guid": "46a75489-56ac-4c3a-88c3-1bc1b2260321", - "integer": 79, - "date": "Thu Dec 20 2012 17:16:17 GMT-0800 (PST)", - "shortText": "quis laborum", - "mediumText": "Eu eu occaecat esse ad aliquip occaecat tempor dolor veniam sint ut mollit.", - "longText": "Elit labore ex culpa ad consectetur mollit. Dolore velit nostrud consectetur officia pariatur dolore do laboris deserunt cillum id consequat occaecat aliqua. Mollit est sit aute cillum tempor laborum officia. Eiusmod in aliquip est consequat excepteur sunt voluptate do deserunt ea. Tempor non laborum aliqua ad sit culpa consequat laborum.\r\nAmet tempor ipsum et laborum adipisicing non nulla ad. Nostrud in ex incididunt minim et ullamco velit. Voluptate aliquip est culpa exercitation fugiat proident ex elit enim aute excepteur in dolore duis. Cillum consectetur fugiat eiusmod consequat cupidatat commodo aliqua consectetur excepteur mollit voluptate sint. Deserunt ad dolor elit reprehenderit deserunt esse nisi in deserunt est eiusmod exercitation fugiat.\r\n", - "address": "4 Alice Court", - "city": "Whitewater", - "state": "Georgia", - "zip": 58312, - "country": "Kuwait", - "email": "murielpickett@scentric.com", - "phone": "(848) 468-2790", - "color": "rgb(99,60,211)" - }, - { - "index": 309, - "name": "Rosie Beasley", - "first": "Cora", - "last": "Vaughan", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mrzero158/73.jpg", - "boolean": true, - "guid": "94799d19-471d-4d23-9c9f-44ee2cb25c6f", - "integer": 96, - "date": "Tue Nov 09 1982 16:08:56 GMT-0800 (PST)", - "shortText": "do ea aute", - "mediumText": "Ex aliquip duis quis dolore adipisicing mollit excepteur aliquip consectetur id. Adipisicing eu ipsum cupidatat ullamco voluptate. Duis occaecat occaecat mollit incididunt cillum ipsum id tempor. Officia ex eiusmod pariatur dolore fugiat aute ad. Sit ad non ipsum nulla.", - "longText": "Officia officia ad non commodo anim. Anim ad non ut excepteur voluptate amet consequat Lorem sunt ad. Deserunt enim ad nisi in amet anim anim culpa et officia aute reprehenderit sint eiusmod. Anim laborum occaecat culpa aute ipsum do. Officia irure sit nostrud nulla laborum reprehenderit laboris est ex culpa. Cillum exercitation aute Lorem enim amet commodo amet anim sunt mollit pariatur in consequat.\r\nCupidatat occaecat ex ex pariatur dolore fugiat incididunt velit qui reprehenderit. Ullamco enim nisi deserunt laborum aute. Aliquip duis do enim adipisicing cupidatat. Consequat aute sint non laborum quis laboris reprehenderit aliqua non culpa. Enim est amet nostrud ullamco minim duis eu labore ut magna excepteur.\r\nAmet sint pariatur ad nostrud irure qui do eiusmod irure id ea. Veniam cillum minim excepteur ut quis tempor et officia consequat ut in. Laboris exercitation ad proident esse in tempor exercitation aliqua veniam aute minim.\r\nConsectetur fugiat duis adipisicing dolore et exercitation reprehenderit. Eu nostrud qui veniam non. Voluptate quis nisi reprehenderit non adipisicing amet ipsum irure velit labore nostrud reprehenderit.\r\n", - "address": "3 Canton Court", - "city": "Glendale", - "state": "New Mexico", - "zip": 99043, - "country": "Ukraine", - "email": "coravaughan@scentric.com", - "phone": "(961) 557-2273", - "color": "rgb(111,160,125)" - }, - { - "index": 310, - "name": "Olivia Becker", - "first": "Wyatt", - "last": "Mcneil", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/donaldjohns/73.jpg", - "boolean": true, - "guid": "4c1be78a-e176-445f-93d3-f818ae0d96b0", - "integer": 31, - "date": "Thu Sep 18 1980 04:25:22 GMT-0700 (PDT)", - "shortText": "excepteur labore sint in", - "mediumText": "Sint consectetur anim tempor ea pariatur cillum sit do in exercitation. Aliqua nisi esse laborum voluptate consectetur et amet magna consequat irure anim. Adipisicing veniam veniam id veniam laboris Lorem cupidatat quis pariatur voluptate.", - "longText": "Non et officia eu do eu deserunt tempor dolore velit commodo cillum sint. Consectetur aliqua sunt pariatur sint. Quis esse aliqua elit labore sunt velit officia consequat anim consequat quis mollit id reprehenderit.\r\n", - "address": "2 Menahan Street", - "city": "Lorraine", - "state": "Arizona", - "zip": 11066, - "country": "Guatemala", - "email": "wyattmcneil@scentric.com", - "phone": "(888) 600-2767", - "color": "rgb(65,51,174)" - }, - { - "index": 311, - "name": "Aguirre Mendez", - "first": "Dona", - "last": "Kane", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ah_lice/73.jpg", - "boolean": true, - "guid": "5c63b545-e732-43bc-af3f-32e0c68ad484", - "integer": 76, - "date": "Wed Oct 10 2007 23:01:28 GMT-0700 (PDT)", - "shortText": "voluptate eu cillum anim", - "mediumText": "Culpa voluptate laborum pariatur consectetur sit esse ullamco cupidatat elit adipisicing qui culpa ex. Ut ad tempor ipsum ut quis ipsum. Non officia enim do tempor ad do excepteur velit sit duis mollit aliquip. Dolore aliqua eiusmod commodo nostrud amet cillum dolore.", - "longText": "Ullamco laborum esse mollit aliqua aute deserunt Lorem. Officia eiusmod fugiat exercitation esse consequat commodo veniam. Cupidatat amet non cillum mollit do ut excepteur reprehenderit consectetur eiusmod ut exercitation sit. Sint id irure ullamco quis anim labore. Culpa duis aliquip qui elit ex laborum.\r\nAdipisicing et est culpa deserunt irure. Ullamco ut sit do fugiat. Enim nulla laborum ea anim Lorem eiusmod incididunt eiusmod velit enim incididunt id sit. Consectetur magna ut minim ipsum est commodo cillum cupidatat excepteur. Nostrud minim veniam veniam laborum anim. Nulla consectetur ea nostrud et culpa dolor est.\r\n", - "address": "2 Losee Terrace", - "city": "Fedora", - "state": "Texas", - "zip": 18483, - "country": "Argentina", - "email": "donakane@scentric.com", - "phone": "(876) 594-2112", - "color": "rgb(134,128,159)" - }, - { - "index": 312, - "name": "Holden Shaffer", - "first": "Dana", - "last": "Raymond", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/enda/73.jpg", - "boolean": true, - "guid": "2f0136bc-47e0-4206-b4f4-d87b45b44a4a", - "integer": 94, - "date": "Thu Jul 04 2002 17:43:16 GMT-0700 (PDT)", - "shortText": "quis ex cillum enim", - "mediumText": "Sit incididunt reprehenderit velit elit laborum sint est nulla. Ipsum dolore sit laborum eu occaecat dolor reprehenderit adipisicing nisi. Et aliquip officia fugiat consequat aliquip exercitation.", - "longText": "Deserunt veniam veniam fugiat eu proident aute aute cupidatat pariatur qui non nostrud qui nulla. Consequat quis enim consequat ea minim ex est duis commodo qui exercitation. Ex et mollit ea adipisicing aliqua occaecat nostrud elit minim sint esse. Magna deserunt nulla voluptate aute. Duis ullamco tempor voluptate adipisicing eu veniam ad quis quis enim. Ea adipisicing veniam eu nostrud amet laborum.\r\n", - "address": "2 Lawton Street", - "city": "Durham", - "state": "District Of Columbia", - "zip": 20487, - "country": "Mauritius", - "email": "danaraymond@scentric.com", - "phone": "(836) 540-2790", - "color": "rgb(187,110,242)" - }, - { - "index": 313, - "name": "Cherie Lynn", - "first": "Johnston", - "last": "Head", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/guillogo/73.jpg", - "boolean": true, - "guid": "72ab6b5a-bd21-4563-b6b0-ab24cff5caed", - "integer": 80, - "date": "Fri May 10 1974 03:24:27 GMT-0700 (PDT)", - "shortText": "ad enim", - "mediumText": "Ut adipisicing excepteur ex Lorem cupidatat esse ipsum deserunt nisi irure in ut. Quis reprehenderit sunt non amet consectetur Lorem ut sit. Culpa ex laboris pariatur nisi quis qui. Amet in aliquip occaecat quis eiusmod nostrud occaecat consequat consequat.", - "longText": "Adipisicing esse occaecat sint quis nostrud. Sint incididunt elit mollit excepteur dolore. Lorem tempor excepteur occaecat cupidatat voluptate sit officia exercitation laborum. Cupidatat id reprehenderit deserunt minim.\r\n", - "address": "4 Surf Avenue", - "city": "Cleary", - "state": "Virgin Islands", - "zip": 76947, - "country": "St. Helena", - "email": "johnstonhead@scentric.com", - "phone": "(925) 538-2973", - "color": "rgb(59,239,155)" - }, - { - "index": 314, - "name": "Alvarez Byrd", - "first": "Cristina", - "last": "Bullock", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iboldurev/73.jpg", - "boolean": true, - "guid": "11934487-0dbb-4d2a-bf49-4f9e5938f248", - "integer": 88, - "date": "Fri Mar 12 1993 09:02:34 GMT-0800 (PST)", - "shortText": "veniam ad ullamco", - "mediumText": "Quis labore cillum magna incididunt. Nisi enim magna et tempor voluptate amet aute proident.", - "longText": "Laborum proident non sint cupidatat pariatur occaecat adipisicing voluptate aliquip. Mollit elit ut voluptate eu labore Lorem. Ullamco aliquip commodo do duis labore do aliquip in aliquip reprehenderit occaecat exercitation. Duis cillum voluptate ipsum minim sit commodo occaecat ex ipsum ex. Anim et Lorem ex elit fugiat.\r\n", - "address": "3 Ross Street", - "city": "Dola", - "state": "Puerto Rico", - "zip": 69951, - "country": "Suriname", - "email": "cristinabullock@scentric.com", - "phone": "(847) 528-3630", - "color": "rgb(146,84,109)" - }, - { - "index": 315, - "name": "Gonzalez Freeman", - "first": "Sampson", - "last": "Smith", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/smalonso/73.jpg", - "boolean": true, - "guid": "62c47315-656a-41e7-b9b4-7ee380ad77e8", - "integer": 58, - "date": "Sat Feb 15 2003 14:30:07 GMT-0800 (PST)", - "shortText": "sint", - "mediumText": "Excepteur tempor magna eiusmod pariatur anim consequat mollit excepteur nulla duis ut eu esse pariatur. Deserunt cillum amet incididunt nisi ut laboris quis enim labore. Eiusmod cupidatat qui officia ex dolor sint occaecat elit fugiat ex.", - "longText": "Do consequat voluptate duis aliqua Lorem cillum labore. Reprehenderit commodo esse anim aliqua exercitation qui. Elit nostrud officia esse aliquip in eiusmod ipsum duis ullamco. Elit deserunt magna voluptate mollit. Quis dolore esse reprehenderit sunt dolore nulla sunt duis fugiat.\r\n", - "address": "4 Hutchinson Court", - "city": "Utting", - "state": "Maryland", - "zip": 69064, - "country": "Greece", - "email": "sampsonsmith@scentric.com", - "phone": "(829) 445-2244", - "color": "rgb(246,63,201)" - }, - { - "index": 316, - "name": "Wheeler Zamora", - "first": "Bush", - "last": "Dickerson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/taherrapee/73.jpg", - "boolean": true, - "guid": "a91485a2-e0b1-4e16-afa8-afb990283828", - "integer": 25, - "date": "Mon Jun 05 2006 06:35:22 GMT-0700 (PDT)", - "shortText": "sit pariatur", - "mediumText": "Officia minim occaecat nostrud dolor eiusmod. Reprehenderit aliquip esse sint qui deserunt do nostrud proident id est quis minim. Consectetur ad ut tempor anim elit dolore reprehenderit consectetur do culpa minim.", - "longText": "Exercitation officia est aute sunt nisi. Et officia irure eu deserunt enim est nulla. Commodo commodo consequat dolor eiusmod dolor. Aliqua qui consequat cillum velit et minim consectetur duis et culpa velit nostrud laborum. Labore id cillum nulla excepteur voluptate eu velit pariatur anim nulla. Ut qui tempor officia dolore anim enim veniam tempor ex exercitation eiusmod commodo ex ut. Non aute veniam sunt esse culpa non aliqua quis elit culpa elit.\r\nCommodo ut cillum quis laboris aliquip in. Mollit nisi amet cillum nisi laboris est officia. Non laborum fugiat ea non nisi. Et velit incididunt enim magna. Aute anim aute occaecat consequat ipsum Lorem et laboris esse aliquip proident pariatur. Consectetur non consectetur labore laboris ea est.\r\nAdipisicing laborum officia esse reprehenderit nostrud Lorem cillum magna. Labore ad ullamco pariatur irure. Sit ea aliquip ad Lorem ut consequat quis. Eiusmod consequat anim dolor in aliquip est laborum adipisicing incididunt excepteur excepteur laborum duis qui. Sunt consequat voluptate sunt cupidatat nostrud nisi. Ullamco reprehenderit anim est laboris et nulla.\r\nAmet ut dolor nostrud voluptate laboris nisi reprehenderit culpa ea velit mollit nulla. Esse qui sint anim ut incididunt. Nisi mollit ut nisi laborum ut deserunt magna dolor eiusmod. Elit enim sit reprehenderit cupidatat et. Aliqua dolore id fugiat occaecat occaecat ipsum.\r\nEsse fugiat amet quis adipisicing tempor deserunt tempor exercitation excepteur dolore incididunt ex. Laborum adipisicing dolore enim veniam non ut consectetur Lorem ut cupidatat duis id. Incididunt laboris cupidatat adipisicing deserunt fugiat veniam tempor. Fugiat officia eu ullamco magna sunt fugiat consectetur. Occaecat irure proident do officia. Laborum nulla quis non incididunt velit.\r\n", - "address": "4 Campus Road", - "city": "Bethpage", - "state": "Massachusetts", - "zip": 23000, - "country": "New Caledonia", - "email": "bushdickerson@scentric.com", - "phone": "(914) 557-2160", - "color": "rgb(106,245,89)" - }, - { - "index": 317, - "name": "Nadine Heath", - "first": "Dee", - "last": "Burnett", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ismailmayat/73.jpg", - "boolean": false, - "guid": "315f838f-f59d-4c6c-bae4-f431576cf508", - "integer": 59, - "date": "Wed Aug 06 1980 08:47:43 GMT-0700 (PDT)", - "shortText": "nostrud labore culpa sint occaecat", - "mediumText": "Dolore irure officia consequat commodo exercitation non et consectetur minim fugiat.", - "longText": "Velit ipsum enim laboris cillum qui quis deserunt laborum. Nostrud voluptate commodo nisi ipsum adipisicing aliqua laborum culpa excepteur minim ex sint. Non minim voluptate pariatur consectetur. Dolor minim aute sint anim exercitation id laborum laborum.\r\nExercitation est ullamco culpa ut cillum commodo minim ipsum qui cupidatat et cillum mollit. Incididunt anim esse veniam veniam. Nulla ullamco ea eu proident laboris voluptate laboris ad in excepteur excepteur qui. Incididunt aute nisi irure quis commodo aute. Elit nisi labore qui sunt est velit anim cupidatat nostrud.\r\nCulpa anim consequat occaecat sunt. Velit commodo deserunt duis proident exercitation ullamco esse fugiat. Ullamco velit elit pariatur ut qui ex. Tempor voluptate labore consectetur id elit. Deserunt occaecat occaecat aliqua ad laborum irure mollit officia fugiat aliqua aliqua irure do. Sit id duis occaecat cupidatat ullamco nulla. Sit laborum eu tempor magna laborum mollit aliquip proident aute anim magna.\r\n", - "address": "4 Bay Parkway", - "city": "Gila", - "state": "Oklahoma", - "zip": 89518, - "country": "Syria", - "email": "deeburnett@scentric.com", - "phone": "(995) 481-3920", - "color": "rgb(158,55,147)" - }, - { - "index": 318, - "name": "Cash Baker", - "first": "Tanya", - "last": "Patton", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/carlyson/73.jpg", - "boolean": true, - "guid": "4f3b7c6f-78ec-4074-b24d-b1e0788829a9", - "integer": 17, - "date": "Mon Jun 19 1972 16:40:48 GMT-0700 (PDT)", - "shortText": "proident duis eiusmod pariatur", - "mediumText": "Ullamco qui dolore fugiat id ad non.", - "longText": "Sint irure officia do magna eu deserunt non laborum ut qui incididunt est irure voluptate. Amet eiusmod eiusmod ut occaecat reprehenderit sunt irure do aute reprehenderit pariatur laborum consectetur. Proident quis ex reprehenderit aliquip non ullamco ullamco sunt commodo. Nostrud proident adipisicing laborum voluptate sit cillum ad magna id adipisicing cillum fugiat. Anim sit do quis cupidatat reprehenderit tempor pariatur deserunt. Tempor culpa reprehenderit adipisicing ea.\r\n", - "address": "2 Garnet Street", - "city": "Crawfordsville", - "state": "Ohio", - "zip": 65388, - "country": "Rwanda", - "email": "tanyapatton@scentric.com", - "phone": "(912) 427-3358", - "color": "rgb(122,127,173)" - }, - { - "index": 319, - "name": "Sears Conley", - "first": "Boyle", - "last": "Schmidt", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thewillbeard/73.jpg", - "boolean": true, - "guid": "17ce3452-2b9d-4fe3-b1db-7009a74b7e32", - "integer": 69, - "date": "Sat May 18 1996 00:26:16 GMT-0700 (PDT)", - "shortText": "amet consequat", - "mediumText": "Nulla non deserunt elit nostrud dolore elit Lorem sit qui aliqua aute aliquip elit. Mollit aliqua enim velit ea consectetur dolor duis minim ea. Ipsum aute ut labore duis labore nostrud labore. Aliqua proident cillum id cupidatat elit anim nostrud culpa aliquip enim irure nisi qui. Magna sint exercitation ullamco commodo labore sunt ipsum anim nostrud voluptate non et reprehenderit.", - "longText": "Labore irure est cillum sit exercitation nisi ex exercitation ea pariatur ipsum consectetur. Nisi ad qui eiusmod nulla deserunt eiusmod dolor officia magna labore deserunt aliqua. Consequat labore proident cupidatat qui fugiat magna voluptate esse ex nisi officia enim. Ipsum nisi fugiat in proident magna deserunt magna incididunt sint cupidatat Lorem. Sunt veniam consectetur ut ea. Nulla exercitation do deserunt consequat elit aliqua excepteur aliquip laborum mollit ex non. Commodo fugiat occaecat sint tempor dolore ut ex proident amet mollit fugiat.\r\nVeniam ex consequat consectetur incididunt. Qui enim eu incididunt anim. Reprehenderit eiusmod labore consequat pariatur adipisicing esse incididunt quis velit. Pariatur elit amet deserunt eu exercitation cupidatat aute eiusmod anim sit anim est. Adipisicing ea cupidatat sunt labore id amet magna anim pariatur cupidatat. Sint ex sunt nulla elit ut aute laboris deserunt cillum. Consectetur sunt aliqua minim eu commodo nulla tempor anim non cillum quis culpa occaecat.\r\nFugiat veniam qui ut sunt Lorem. Sint elit do deserunt laborum. Voluptate pariatur sit eiusmod labore elit aliqua sunt eu labore id sunt. Officia id non minim cillum. Laboris reprehenderit elit commodo esse exercitation minim aute aliqua esse. Dolor Lorem fugiat non reprehenderit occaecat dolore magna.\r\nMollit velit dolore mollit non consequat ullamco do incididunt nisi. Dolore ex eiusmod ex anim consequat deserunt qui. Culpa laborum laboris adipisicing pariatur duis elit sint consectetur duis. Ut ea consectetur dolore ullamco amet est irure Lorem. Aliqua do reprehenderit id incididunt amet fugiat id amet. Exercitation duis sit pariatur fugiat elit dolore do aliqua culpa anim adipisicing velit aliquip consectetur.\r\nElit ex excepteur do aute enim incididunt. Est eu aute occaecat quis dolor eiusmod quis ut quis fugiat enim id. Duis incididunt esse pariatur voluptate. Velit dolore ut aliqua culpa officia quis esse.\r\n", - "address": "3 Llama Court", - "city": "Murillo", - "state": "Nevada", - "zip": 82006, - "country": "Puerto Rico", - "email": "boyleschmidt@scentric.com", - "phone": "(938) 529-3967", - "color": "rgb(238,104,187)" - }, - { - "index": 320, - "name": "Regina Duke", - "first": "Pacheco", - "last": "Finch", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tgormtx/73.jpg", - "boolean": true, - "guid": "1cd2ce04-b8d2-4d31-8130-6c88fda8666e", - "integer": 28, - "date": "Sun Sep 22 1974 11:52:41 GMT-0700 (PDT)", - "shortText": "deserunt proident voluptate anim", - "mediumText": "Tempor eiusmod culpa incididunt esse mollit elit anim Lorem magna et occaecat. Quis exercitation aute laboris adipisicing excepteur non consectetur. Eu sunt esse velit sint ad voluptate cillum est. Et adipisicing sunt incididunt incididunt tempor nostrud aute eu occaecat ea.", - "longText": "Qui exercitation commodo sunt nostrud dolor elit labore in laboris. Minim cillum Lorem enim sunt nostrud culpa sint reprehenderit. Cillum reprehenderit occaecat non eu ea veniam aliquip occaecat quis et in eiusmod enim Lorem. Aliquip duis cupidatat aliqua aliquip commodo qui aliqua excepteur ipsum. Lorem labore tempor nisi ut deserunt. Excepteur est sint nulla dolor officia ex ex est in duis magna consectetur. Occaecat anim irure pariatur sit fugiat.\r\nFugiat nulla mollit quis ex deserunt non id anim proident. Officia sint fugiat eiusmod qui fugiat consequat ut magna Lorem. Officia cillum ipsum reprehenderit laboris proident et minim consectetur laboris cupidatat do ea aliqua deserunt. Ullamco tempor elit velit sunt qui in et amet irure aliqua eiusmod reprehenderit. Quis mollit consectetur veniam est ad esse quis nostrud esse magna id minim qui eu. Occaecat elit ullamco in aliqua aute sint. Incididunt qui esse ad voluptate nisi.\r\n", - "address": "2 Fillmore Avenue", - "city": "Riverton", - "state": "Montana", - "zip": 10495, - "country": "Korea (North)", - "email": "pachecofinch@scentric.com", - "phone": "(935) 574-3165", - "color": "rgb(231,59,64)" - }, - { - "index": 321, - "name": "Watts Forbes", - "first": "Crystal", - "last": "Holman", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/andresenfredrik/73.jpg", - "boolean": true, - "guid": "78f69b15-a996-41aa-be22-2350d747a215", - "integer": 37, - "date": "Sat Oct 27 2001 01:47:57 GMT-0700 (PDT)", - "shortText": "duis", - "mediumText": "Sit sint ut incididunt esse irure do tempor esse est velit aliqua consectetur consectetur fugiat.", - "longText": "Dolore sunt mollit nisi adipisicing esse laboris. Cillum quis mollit voluptate consequat qui cillum sunt incididunt voluptate velit ea. Enim id ut duis minim pariatur. Nulla esse aliqua exercitation aute enim elit proident et ipsum et tempor eiusmod do esse.\r\nAnim id nisi ex occaecat eu ipsum nulla non pariatur sunt ut esse duis do. Exercitation est anim sit eiusmod qui pariatur dolore. Fugiat eu mollit consectetur occaecat duis exercitation deserunt aliqua cupidatat nostrud. Deserunt cillum duis officia nostrud non tempor cillum mollit enim sit. Ad commodo nostrud adipisicing mollit culpa non dolore. Amet pariatur sunt officia irure enim minim ea. Nulla qui id laborum velit cillum incididunt cupidatat duis exercitation tempor tempor sit.\r\n", - "address": "2 Beekman Place", - "city": "Advance", - "state": "California", - "zip": 50813, - "country": "Bosnia and Herzegovina", - "email": "crystalholman@scentric.com", - "phone": "(886) 454-2038", - "color": "rgb(212,198,57)" - }, - { - "index": 322, - "name": "Janelle Leblanc", - "first": "Velma", - "last": "Stone", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mwarkentin/73.jpg", - "boolean": true, - "guid": "84151da3-43cb-4cb5-ac3f-dce5eac66594", - "integer": 10, - "date": "Wed Mar 15 1995 04:06:56 GMT-0800 (PST)", - "shortText": "sit duis", - "mediumText": "Sint incididunt in ex officia cupidatat consectetur fugiat eiusmod labore.", - "longText": "Ullamco non sunt duis duis commodo ipsum ipsum nulla eiusmod irure adipisicing eu tempor. Elit labore magna incididunt est. Officia id incididunt minim pariatur officia consequat sunt. Non ut voluptate proident ipsum. Irure nulla cillum aute exercitation. Aliqua sit eu occaecat minim.\r\nAd excepteur qui est culpa. Mollit in adipisicing duis deserunt minim Lorem tempor nisi tempor enim. Nulla ex aliqua nostrud id. Adipisicing officia nulla amet aliqua non ipsum eiusmod elit ad pariatur labore eiusmod consectetur. Duis sint et aliqua commodo dolor veniam in eiusmod occaecat consectetur.\r\nConsectetur ea voluptate ullamco tempor nisi in. Lorem anim mollit fugiat tempor. Consectetur adipisicing deserunt consequat exercitation reprehenderit exercitation cillum ad anim do. Commodo occaecat ad do et laborum veniam aliqua cupidatat. Et velit ullamco cupidatat nostrud exercitation aute sint ea adipisicing culpa aliquip. Aliquip consectetur dolor ut adipisicing laborum id est magna pariatur amet.\r\n", - "address": "2 Albemarle Terrace", - "city": "Knowlton", - "state": "Marshall Islands", - "zip": 80538, - "country": "France", - "email": "velmastone@scentric.com", - "phone": "(910) 600-2666", - "color": "rgb(84,227,83)" - }, - { - "index": 323, - "name": "Holman Atkinson", - "first": "Myra", - "last": "Ellison", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/herkulano/73.jpg", - "boolean": false, - "guid": "51f45fc6-fc94-4be1-8769-ac78341d3d69", - "integer": 13, - "date": "Mon Jan 24 2011 03:20:14 GMT-0800 (PST)", - "shortText": "labore sit eiusmod sit", - "mediumText": "Qui ipsum tempor occaecat ullamco Lorem officia voluptate. Consequat cillum ea sunt cupidatat est quis quis pariatur.", - "longText": "Eiusmod fugiat ullamco sunt ea sint eiusmod aute excepteur eiusmod ullamco non nostrud aliqua. Pariatur pariatur aute aliqua nisi nisi amet. Non officia ipsum eu do veniam excepteur ea sit sint consequat. Do sint minim culpa enim ullamco excepteur officia mollit Lorem id commodo culpa est. Laborum ex anim Lorem et. Cupidatat mollit esse do adipisicing.\r\nEu velit ipsum officia ex. Deserunt esse et tempor magna duis ex ut sunt dolore do. Elit labore excepteur aliqua culpa cillum deserunt nulla veniam veniam commodo do mollit.\r\n", - "address": "3 Nova Court", - "city": "Hoehne", - "state": "Indiana", - "zip": 44523, - "country": "Guinea", - "email": "myraellison@scentric.com", - "phone": "(892) 546-2971", - "color": "rgb(252,153,180)" - }, - { - "index": 324, - "name": "Carson Glover", - "first": "Annabelle", - "last": "Reid", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jonny_moon/73.jpg", - "boolean": false, - "guid": "560ce64c-d4a7-43a1-a119-c815a7d0eddc", - "integer": 43, - "date": "Sun Oct 21 1979 10:07:45 GMT-0700 (PDT)", - "shortText": "qui reprehenderit", - "mediumText": "Ullamco incididunt minim ullamco id exercitation.", - "longText": "In veniam fugiat laboris incididunt excepteur ad proident. Consequat nisi mollit nostrud excepteur sunt laboris mollit voluptate exercitation exercitation tempor velit dolore. Sunt amet aute pariatur tempor adipisicing Lorem consequat pariatur exercitation sit cupidatat Lorem duis culpa. Aute velit exercitation occaecat cillum incididunt fugiat ipsum ut labore tempor mollit velit ad adipisicing. Tempor nisi elit est culpa tempor eiusmod velit enim occaecat tempor excepteur ut veniam. Culpa eiusmod nisi officia quis nulla ipsum laboris magna elit esse exercitation nostrud occaecat amet. Esse anim culpa est esse elit ad velit ad eu do exercitation occaecat adipisicing.\r\nIn duis enim Lorem id ullamco cillum veniam. Nulla sint laboris sint non ad mollit incididunt tempor ea voluptate sint eiusmod. Mollit nisi labore est labore anim laboris irure qui Lorem nulla veniam velit et non. Do occaecat excepteur aliqua in ea pariatur elit incididunt.\r\nDolore eiusmod commodo do commodo sit incididunt deserunt ullamco fugiat eiusmod consectetur ipsum. Fugiat eiusmod consectetur elit aliquip tempor labore cillum. Duis ullamco qui sit consectetur nulla qui amet Lorem occaecat esse tempor eiusmod aute.\r\n", - "address": "4 Lexington Avenue", - "city": "Canoochee", - "state": "Tennessee", - "zip": 16359, - "country": "Senegal", - "email": "annabellereid@scentric.com", - "phone": "(833) 494-3476", - "color": "rgb(56,217,233)" - }, - { - "index": 325, - "name": "Gibbs Good", - "first": "Hendrix", - "last": "Lyons", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/alyssalowww/73.jpg", - "boolean": false, - "guid": "2a5302bc-b0dd-4ccc-8688-7df77439ace5", - "integer": 21, - "date": "Thu Jan 01 1976 12:47:48 GMT-0800 (PST)", - "shortText": "aliqua tempor", - "mediumText": "Commodo pariatur enim velit ut reprehenderit in culpa. Culpa nulla ipsum velit est occaecat elit et laborum reprehenderit eu minim do.", - "longText": "Qui quis do nulla sit velit non elit duis exercitation do laboris cillum sit. Eiusmod reprehenderit sit aliqua qui dolor sunt qui commodo. Tempor aute Lorem labore aliqua ea minim duis irure sint non veniam. Ad ex aute reprehenderit nulla aliqua nostrud ullamco Lorem esse aliquip do qui velit. Nostrud elit esse ad duis occaecat culpa. Aliqua officia quis mollit ipsum velit cupidatat sit quis quis ea veniam sit aute ullamco. Laboris et ad cillum veniam nulla fugiat.\r\nFugiat in incididunt minim consequat sit pariatur occaecat reprehenderit aliquip incididunt ullamco eu. Nostrud qui nostrud laboris magna. Aute ullamco veniam consequat nulla aute nulla culpa. Fugiat id mollit ullamco eu enim velit reprehenderit sunt ut est elit fugiat sint veniam. Reprehenderit amet ea anim veniam consectetur proident commodo. Aliquip Lorem amet occaecat cupidatat dolor officia quis pariatur. Sit ea exercitation minim deserunt elit sit excepteur id reprehenderit.\r\nIpsum in tempor culpa esse fugiat mollit esse. Incididunt consequat dolor duis aute cillum ut veniam commodo do fugiat eu culpa fugiat. Enim pariatur reprehenderit elit ex proident aute aliqua. Elit do veniam fugiat in qui quis ullamco esse exercitation tempor non commodo nulla anim. Non Lorem sunt cupidatat aliquip dolor labore laboris Lorem fugiat. Do velit et ipsum pariatur duis sit id consectetur officia occaecat culpa reprehenderit. Nulla est in commodo nostrud ea deserunt duis culpa.\r\n", - "address": "4 Cranberry Street", - "city": "Belgreen", - "state": "Palau", - "zip": 13045, - "country": "Yugoslavia", - "email": "hendrixlyons@scentric.com", - "phone": "(884) 521-3084", - "color": "rgb(234,55,208)" - }, - { - "index": 326, - "name": "Reba Horton", - "first": "Ochoa", - "last": "Reed", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rafelorden/73.jpg", - "boolean": false, - "guid": "b51d4b79-1289-46e1-9874-cac40d2a3f4c", - "integer": 89, - "date": "Mon Sep 06 2010 03:05:58 GMT-0700 (PDT)", - "shortText": "sint reprehenderit", - "mediumText": "Consectetur velit id fugiat amet aliquip laboris deserunt. Pariatur officia non Lorem consectetur officia ipsum occaecat sint commodo laboris amet minim ullamco officia.", - "longText": "Deserunt consequat eiusmod commodo qui adipisicing et. Occaecat elit occaecat ullamco eu ea minim cupidatat veniam veniam aliquip tempor laboris. Exercitation duis cupidatat ullamco magna incididunt cupidatat reprehenderit consequat laborum.\r\nOfficia occaecat quis quis fugiat aliquip et. In laborum et pariatur qui consectetur ullamco cillum excepteur voluptate fugiat. Eiusmod nulla elit qui in irure. Nulla enim consectetur proident nostrud.\r\nVeniam sit tempor laboris aute dolor officia laborum. Deserunt ad consequat non nulla dolor eiusmod elit veniam tempor. Esse sint amet nisi et ea labore amet. Officia aliquip pariatur dolore anim dolore culpa esse elit amet aliqua voluptate. Esse elit ex ipsum proident occaecat deserunt non amet reprehenderit. Voluptate anim sunt fugiat consectetur ut quis esse sit.\r\nCillum incididunt sint sit nostrud magna minim anim labore elit adipisicing est ipsum. Laborum ut officia ullamco labore non dolore veniam labore dolor et sint ex duis. Excepteur irure exercitation Lorem occaecat exercitation in consequat. Nulla est excepteur elit qui magna quis nulla laboris amet. Laborum nisi ex enim consequat mollit ullamco magna aliquip occaecat occaecat et elit sunt. Consectetur reprehenderit magna officia do aliquip proident minim. Aute qui officia deserunt labore id in esse aliqua do anim pariatur dolore consequat.\r\nAmet pariatur veniam cupidatat deserunt voluptate aliquip fugiat occaecat eu sit pariatur. Consectetur eu quis proident reprehenderit nisi. Voluptate aliquip quis culpa proident anim culpa esse. Mollit eiusmod magna cupidatat nostrud non ad duis. Laboris reprehenderit amet cupidatat duis sint qui deserunt excepteur amet. Consectetur reprehenderit Lorem esse nisi aliquip incididunt ipsum aute occaecat esse occaecat. Laboris sit Lorem incididunt laborum in.\r\n", - "address": "2 Montauk Avenue", - "city": "Wildwood", - "state": "Virginia", - "zip": 44321, - "country": "Uzbekistan", - "email": "ochoareed@scentric.com", - "phone": "(873) 450-2072", - "color": "rgb(87,106,105)" - }, - { - "index": 327, - "name": "Newton Townsend", - "first": "Cara", - "last": "Armstrong", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/wim1k/73.jpg", - "boolean": false, - "guid": "396fee22-8931-4acb-9aa0-ef4e3d463f65", - "integer": 32, - "date": "Sun Feb 20 2011 09:27:11 GMT-0800 (PST)", - "shortText": "magna", - "mediumText": "Magna aute elit cupidatat ipsum velit reprehenderit. Occaecat qui fugiat nostrud quis excepteur commodo. Voluptate id consequat laborum mollit exercitation proident voluptate cillum voluptate in. Amet culpa consequat ullamco dolore incididunt consequat aliqua est nulla quis proident culpa.", - "longText": "Enim esse anim veniam est sunt labore ut qui magna cillum fugiat. Labore cupidatat ullamco deserunt veniam elit irure elit quis qui tempor anim et magna. Ex commodo ex adipisicing non laborum. Aliquip ex consequat dolor ut non consequat excepteur. Laboris laborum adipisicing cupidatat est. Id est aliqua laborum mollit incididunt excepteur. Enim commodo in culpa Lorem.\r\nLaborum sunt et exercitation mollit ut nulla aliqua nulla fugiat dolor. Deserunt commodo Lorem eu id adipisicing amet qui reprehenderit eu consectetur aliquip mollit eiusmod. Ad sit anim qui irure et ipsum laboris qui consectetur.\r\n", - "address": "4 School Lane", - "city": "Garfield", - "state": "Wyoming", - "zip": 38497, - "country": "Estonia", - "email": "caraarmstrong@scentric.com", - "phone": "(824) 554-2497", - "color": "rgb(82,224,190)" - }, - { - "index": 328, - "name": "Jenkins Short", - "first": "Castaneda", - "last": "Padilla", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rpeezy/73.jpg", - "boolean": true, - "guid": "bf4be80d-f135-468d-adab-23bf03ffb166", - "integer": 12, - "date": "Thu Sep 22 1994 12:13:32 GMT-0700 (PDT)", - "shortText": "et duis Lorem occaecat deserunt", - "mediumText": "Voluptate sint non minim elit. Est tempor tempor tempor nisi id cupidatat sunt.", - "longText": "In esse voluptate velit dolore ullamco in. Deserunt anim fugiat laboris sunt pariatur. Magna veniam ad eu labore aliquip non quis do adipisicing. Quis esse ad nostrud commodo. Non non aliquip sit laboris quis commodo laboris.\r\nPariatur laborum ad in ut et deserunt labore aute sint eiusmod. Voluptate eiusmod est enim quis id culpa aute eiusmod magna deserunt quis sint deserunt tempor. Deserunt quis deserunt enim elit. Esse duis irure eu officia ut tempor in velit in pariatur. Ea aute enim occaecat amet enim nisi excepteur consequat qui ut laboris incididunt tempor.\r\nIpsum enim dolore irure esse incididunt. Voluptate elit qui mollit aliquip ex proident ad adipisicing ipsum. Tempor dolore minim esse esse sint irure pariatur esse.\r\nMagna sunt labore Lorem do laboris duis exercitation aliqua fugiat eiusmod incididunt. Dolor mollit sunt commodo occaecat dolor eu sunt id occaecat sint. Et sunt esse eiusmod veniam nisi magna culpa voluptate nisi esse.\r\n", - "address": "2 Elton Street", - "city": "Gouglersville", - "state": "Colorado", - "zip": 96057, - "country": "Gambia", - "email": "castanedapadilla@scentric.com", - "phone": "(911) 571-2320", - "color": "rgb(80,137,178)" - }, - { - "index": 329, - "name": "Deborah Klein", - "first": "Sandoval", - "last": "Miranda", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/sectronov/73.jpg", - "boolean": true, - "guid": "9daaa0e4-d04c-4232-a637-24e733f0b9ac", - "integer": 76, - "date": "Sun Aug 14 1994 19:32:54 GMT-0700 (PDT)", - "shortText": "exercitation mollit reprehenderit dolore deserunt", - "mediumText": "Quis sint eu occaecat ex ex amet pariatur deserunt ea magna excepteur. Laborum in fugiat eiusmod amet sunt nostrud officia qui magna id et. Non fugiat eu consectetur veniam tempor. Nostrud proident reprehenderit sint aute nisi aliqua anim enim deserunt id. Labore excepteur sit dolor nisi occaecat velit pariatur id aliquip.", - "longText": "Labore officia tempor adipisicing amet. Aliqua amet deserunt dolore nisi commodo velit aliqua. Eu nisi fugiat minim duis ipsum esse adipisicing eu nulla ex ad.\r\n", - "address": "2 Olive Street", - "city": "Fairview", - "state": "Utah", - "zip": 99892, - "country": "Nepal", - "email": "sandovalmiranda@scentric.com", - "phone": "(808) 578-2445", - "color": "rgb(234,209,129)" - }, - { - "index": 330, - "name": "Tricia Moss", - "first": "Dickson", - "last": "Houston", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/starburst1977/73.jpg", - "boolean": true, - "guid": "f41db055-f748-45e3-9ce3-4d867e00f776", - "integer": 9, - "date": "Mon Jun 15 1992 12:38:40 GMT-0700 (PDT)", - "shortText": "esse consectetur", - "mediumText": "Non nisi ut aliqua ipsum consequat excepteur culpa labore labore. Incididunt adipisicing qui mollit elit eiusmod aliqua aute. Laboris ut consequat consectetur elit aliquip irure enim aute cupidatat. Laboris incididunt id laborum reprehenderit duis nisi consectetur laboris nostrud.", - "longText": "Occaecat mollit reprehenderit tempor veniam consectetur non officia. Laboris consequat velit mollit in quis. Qui dolore excepteur in esse magna cupidatat incididunt eiusmod magna do. Laboris consectetur adipisicing occaecat cillum mollit duis. Officia excepteur exercitation quis consequat deserunt magna officia voluptate officia sint magna quis officia voluptate. Ullamco qui nostrud id incididunt veniam eu Lorem ad voluptate.\r\nConsequat cupidatat laborum sint consectetur. Anim do anim reprehenderit excepteur occaecat duis eu ea ipsum anim non nostrud nulla minim. Voluptate eu id officia consequat minim. Proident nulla qui amet qui veniam mollit non.\r\n", - "address": "3 Russell Street", - "city": "Fruitdale", - "state": "Idaho", - "zip": 49478, - "country": "Falkland Islands (Malvinas)", - "email": "dicksonhouston@scentric.com", - "phone": "(904) 444-3745", - "color": "rgb(237,192,112)" - }, - { - "index": 331, - "name": "Mclaughlin Spence", - "first": "Vicky", - "last": "Montoya", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mocabyte/73.jpg", - "boolean": true, - "guid": "b76384d1-fb6b-4500-ad6a-f266c0a380ce", - "integer": 95, - "date": "Tue Apr 18 1995 21:15:18 GMT-0700 (PDT)", - "shortText": "aute aliqua", - "mediumText": "Aliquip ea ad aute pariatur exercitation ex elit.", - "longText": "Labore veniam officia officia dolore. Ea quis et incididunt irure. Ut exercitation proident nostrud eiusmod quis ad. Laboris et Lorem qui quis ullamco dolore minim do incididunt. Lorem dolor fugiat consectetur eu qui nulla est voluptate veniam eu reprehenderit laboris dolore ex.\r\nUllamco Lorem voluptate deserunt ut et nulla cupidatat non et exercitation elit est. Mollit esse aute excepteur eiusmod commodo pariatur. Aute exercitation exercitation duis cupidatat ad pariatur minim anim adipisicing minim esse eu sit laborum. Laboris excepteur eu commodo dolor amet eiusmod. Officia quis reprehenderit dolor laborum non amet pariatur sit. Minim anim minim minim nulla minim ut non adipisicing consequat esse.\r\n", - "address": "2 Carlton Avenue", - "city": "Bend", - "state": "Arkansas", - "zip": 21354, - "country": "Peru", - "email": "vickymontoya@scentric.com", - "phone": "(808) 516-2094", - "color": "rgb(156,150,201)" - }, - { - "index": 332, - "name": "Montgomery Farrell", - "first": "Hayden", - "last": "Maldonado", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iamasifmirza/73.jpg", - "boolean": false, - "guid": "098a567c-1dc4-4f48-aa95-7c039f017b7e", - "integer": 99, - "date": "Sat Jul 30 2005 17:18:13 GMT-0700 (PDT)", - "shortText": "do culpa elit magna tempor", - "mediumText": "Non esse aliqua dolor irure cillum labore excepteur. Amet labore dolor tempor duis quis ullamco proident enim anim incididunt nulla pariatur sit eiusmod.", - "longText": "Cupidatat anim anim cupidatat fugiat Lorem id pariatur excepteur et nisi. Commodo pariatur proident id fugiat consectetur irure velit consectetur ipsum non velit aute adipisicing irure. Do aliqua aute id esse Lorem. Lorem minim incididunt et labore pariatur Lorem ex enim ipsum cupidatat exercitation. Amet aliquip nisi cupidatat laboris eu officia aute velit. Dolor non sit consequat elit eu ut qui occaecat. Proident ut reprehenderit commodo ipsum deserunt ex quis elit.\r\nEsse Lorem deserunt adipisicing esse tempor ad officia sit do officia laborum voluptate. Do voluptate voluptate eiusmod magna in quis minim consectetur. Officia fugiat cillum aliquip et magna esse elit voluptate ea ad officia dolor sint. Ad velit aliqua reprehenderit consectetur quis incididunt nisi.\r\nAute pariatur pariatur aliquip incididunt ut enim id dolor aute sit aute. Elit occaecat labore nostrud enim veniam. Eu laborum mollit quis sit ut incididunt et. Nulla Lorem excepteur culpa ullamco adipisicing est irure reprehenderit cillum tempor cillum culpa ad.\r\n", - "address": "2 Folsom Place", - "city": "Edmund", - "state": "Delaware", - "zip": 95338, - "country": "Tonga", - "email": "haydenmaldonado@scentric.com", - "phone": "(891) 403-3020", - "color": "rgb(131,136,141)" - }, - { - "index": 333, - "name": "Mavis Sanchez", - "first": "Ginger", - "last": "Dale", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/benoitboucart/73.jpg", - "boolean": true, - "guid": "ba039378-7a45-4b1c-8ec3-cb2714651e82", - "integer": 67, - "date": "Sun Dec 13 1992 23:12:22 GMT-0800 (PST)", - "shortText": "adipisicing sint", - "mediumText": "Pariatur minim ipsum aliquip nulla qui voluptate irure irure est anim culpa laboris cupidatat. Enim adipisicing exercitation eiusmod sunt ex ad irure id labore. Aute labore voluptate amet eu. Dolor ea non enim nostrud elit aliqua qui amet aliqua et.", - "longText": "Occaecat mollit pariatur ea nisi veniam. Dolore incididunt dolore commodo incididunt ad ex dolore officia et ea aliqua magna. Ad sunt est proident nostrud consectetur. Ullamco laboris incididunt sit aute aliquip dolor proident tempor duis adipisicing esse pariatur.\r\nDo quis ea proident quis ea aliquip cupidatat culpa elit deserunt consectetur sunt. Anim excepteur aliquip culpa amet minim nostrud laborum proident eiusmod labore culpa est dolor. Amet et fugiat irure nisi commodo tempor irure aliqua nostrud nostrud. Dolore tempor sit laborum anim.\r\nOfficia commodo dolore duis officia do. Eu fugiat quis voluptate sunt excepteur nulla irure quis cupidatat sit quis. Ex irure non cupidatat ex. Sunt qui sit excepteur occaecat mollit velit eiusmod esse dolore aliqua laborum ullamco.\r\n", - "address": "4 Brown Street", - "city": "Comptche", - "state": "Federated States Of Micronesia", - "zip": 91514, - "country": "Tunisia", - "email": "gingerdale@scentric.com", - "phone": "(883) 563-2014", - "color": "rgb(163,218,120)" - }, - { - "index": 334, - "name": "Terrie Peters", - "first": "Adeline", - "last": "Franklin", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/markwienands/73.jpg", - "boolean": false, - "guid": "7eb5d929-28c8-4d9e-8728-a158423e70eb", - "integer": 69, - "date": "Thu Mar 20 1986 06:50:48 GMT-0800 (PST)", - "shortText": "commodo", - "mediumText": "Nisi nulla enim ad deserunt proident qui. Aliqua duis id ea deserunt. Ut amet adipisicing sint consequat qui ut nisi et sit cillum amet. Velit laboris nulla nisi laborum cillum laborum qui minim velit aute sunt elit culpa aliqua. Adipisicing aliqua nulla proident sit sit laborum ea eu.", - "longText": "Fugiat dolor cupidatat sunt ex quis labore proident esse. Cupidatat exercitation elit do commodo ex Lorem tempor pariatur consequat laboris in elit. Ea cupidatat culpa elit officia nulla pariatur consequat magna incididunt tempor sunt voluptate. Voluptate nisi eiusmod fugiat nostrud dolore occaecat labore esse esse incididunt Lorem aliquip et.\r\nCupidatat consectetur dolor culpa cillum cupidatat occaecat. Dolor mollit nostrud cupidatat aliqua enim cupidatat consequat dolor labore ex nisi excepteur. Elit aliqua quis aliquip magna. Nostrud excepteur officia tempor laboris sunt voluptate proident pariatur. Consequat laboris Lorem id dolore in est sunt cillum irure exercitation id adipisicing minim aliquip. Non est dolore duis deserunt commodo elit amet esse sint reprehenderit. Aliqua quis fugiat elit duis minim exercitation consectetur.\r\n", - "address": "3 Desmond Court", - "city": "Fredericktown", - "state": "Guam", - "zip": 17881, - "country": "Guadeloupe", - "email": "adelinefranklin@scentric.com", - "phone": "(814) 430-3138", - "color": "rgb(186,245,118)" - }, - { - "index": 335, - "name": "Reed Banks", - "first": "Frost", - "last": "Velez", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/menghe/73.jpg", - "boolean": true, - "guid": "0ea4f50e-f8d5-4d36-b794-5124c98c0103", - "integer": 38, - "date": "Fri Feb 13 1981 04:31:25 GMT-0800 (PST)", - "shortText": "do adipisicing", - "mediumText": "Sit dolor occaecat sint ipsum. Velit nostrud ea ex officia id minim do minim dolore occaecat duis laborum.", - "longText": "Aute ullamco eu ad quis voluptate dolore qui. Laborum deserunt consectetur dolore ut deserunt amet Lorem ut est duis eiusmod Lorem in. Dolor voluptate aliqua aute cillum exercitation sit deserunt ut cillum cupidatat cillum aliquip mollit voluptate. Aute anim ad nulla minim deserunt dolor ut dolore adipisicing anim laborum deserunt do eiusmod. Id excepteur nisi enim ullamco sunt esse minim velit dolore aliqua. Elit adipisicing laborum est est Lorem quis est.\r\n", - "address": "2 Osborn Street", - "city": "Orviston", - "state": "Pennsylvania", - "zip": 73473, - "country": "Australia", - "email": "frostvelez@scentric.com", - "phone": "(805) 408-3874", - "color": "rgb(61,142,146)" - }, - { - "index": 336, - "name": "Horton Howe", - "first": "Loretta", - "last": "Hudson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/heyanata/73.jpg", - "boolean": false, - "guid": "22d30b57-493f-4a7d-9b75-bb3a630d6a21", - "integer": 97, - "date": "Sat Oct 11 1975 04:15:11 GMT-0700 (PDT)", - "shortText": "do enim", - "mediumText": "Ea magna cillum aliqua reprehenderit consequat velit laboris aliqua. Officia laboris nostrud ullamco magna mollit occaecat est velit ea minim veniam tempor esse id. Consequat dolore quis id pariatur velit mollit quis. Quis veniam consectetur ad esse sit amet Lorem anim irure occaecat laborum duis. Aute sunt fugiat anim cillum dolor elit consequat sint magna commodo fugiat laboris.", - "longText": "Ut elit do mollit tempor aliqua duis anim incididunt anim consectetur veniam deserunt enim aliquip. Ad velit ad cupidatat ad deserunt reprehenderit aliqua ut elit sit. Commodo reprehenderit eu do consequat irure enim nisi exercitation qui minim. Minim fugiat culpa excepteur duis ea laborum. Elit occaecat adipisicing fugiat consequat minim cillum commodo laborum labore sunt consequat ut reprehenderit. Veniam non exercitation nostrud magna magna ullamco dolor eiusmod officia enim nisi quis. Enim nisi eu velit excepteur et exercitation irure.\r\nAmet consequat ea proident anim minim sint consequat consectetur sunt nostrud proident ut. Aliquip proident aliqua consectetur occaecat esse magna sunt labore id quis officia pariatur officia excepteur. Occaecat Lorem ut esse irure. Ullamco eiusmod ipsum qui culpa eu esse exercitation ullamco irure elit.\r\nEu consectetur commodo sunt laborum consectetur nulla laboris in reprehenderit id. Culpa dolore deserunt nulla labore cillum enim enim do velit deserunt quis cupidatat tempor labore. Enim proident sunt aliquip dolor laborum labore sint eu cillum. Ut irure quis proident laboris cupidatat et anim anim qui. Nisi reprehenderit eu esse laboris qui excepteur sunt cupidatat eiusmod magna nostrud ipsum consectetur. Non ut amet velit non laboris fugiat duis.\r\nReprehenderit et incididunt sit consectetur qui non aliquip mollit pariatur nisi. Enim eu dolor id eu. Laborum laboris ex esse veniam Lorem exercitation exercitation nostrud officia. Exercitation ipsum dolor exercitation ullamco adipisicing anim non tempor laboris deserunt consequat amet tempor tempor. Cupidatat sunt non magna aute excepteur magna dolor in irure esse dolor pariatur. Eiusmod commodo minim ipsum elit. Ut reprehenderit veniam ex magna mollit duis magna.\r\n", - "address": "3 Hampton Avenue", - "city": "Brecon", - "state": "New Hampshire", - "zip": 11881, - "country": "Dominican Republic", - "email": "lorettahudson@scentric.com", - "phone": "(969) 542-2613", - "color": "rgb(245,143,237)" - }, - { - "index": 337, - "name": "Byrd Hopkins", - "first": "Charmaine", - "last": "Gibbs", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thibaut_re/73.jpg", - "boolean": false, - "guid": "bf3bdf33-82fb-4240-b2be-d215fbaff029", - "integer": 55, - "date": "Wed Sep 12 2001 15:08:00 GMT-0700 (PDT)", - "shortText": "esse", - "mediumText": "Minim culpa et ea labore labore ad do officia eiusmod. Incididunt duis elit sit cupidatat mollit qui ea. Dolor id adipisicing est tempor commodo.", - "longText": "Consequat consequat eiusmod sint esse ex. Nisi eu est magna esse cillum exercitation velit ea. Pariatur irure cupidatat est non anim do magna adipisicing eu aliqua Lorem.\r\nSunt tempor qui id aliqua minim culpa non adipisicing in id elit. Laborum laboris aliquip ea mollit excepteur aute. Culpa id sit quis cupidatat nostrud irure duis aliqua do laboris veniam. Ullamco aute cillum in excepteur enim. Ipsum amet voluptate aliqua mollit commodo sint.\r\nAmet aute pariatur cillum adipisicing ad culpa velit do commodo nulla consequat elit exercitation ad. Do nisi in laboris id proident deserunt. Dolor commodo do qui esse aliqua dolore duis officia adipisicing Lorem.\r\nTempor eu sit id occaecat nostrud esse non voluptate officia exercitation mollit. Aliqua elit commodo incididunt nulla labore nostrud est duis. Pariatur ut laboris laboris laborum mollit anim consequat. Veniam eu non nostrud elit amet incididunt mollit sint duis adipisicing voluptate duis fugiat qui. Velit labore nostrud anim ex laboris ullamco elit. Ad in adipisicing anim culpa. Aliqua ullamco quis cupidatat exercitation qui.\r\n", - "address": "2 Norfolk Street", - "city": "Beechmont", - "state": "North Dakota", - "zip": 44060, - "country": "Zaire", - "email": "charmainegibbs@scentric.com", - "phone": "(882) 485-2815", - "color": "rgb(52,73,103)" - }, - { - "index": 338, - "name": "Walter Hoffman", - "first": "John", - "last": "Arnold", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bluesix/73.jpg", - "boolean": true, - "guid": "775148e8-ce9f-4917-b50d-93d7d88dcc90", - "integer": 64, - "date": "Sat Oct 10 1992 03:41:40 GMT-0700 (PDT)", - "shortText": "culpa esse eiusmod amet nisi", - "mediumText": "Excepteur sunt fugiat dolor dolor cupidatat laboris esse sint incididunt elit fugiat reprehenderit aliqua dolor.", - "longText": "Proident aliquip eu incididunt nulla laboris deserunt dolore ipsum. Officia elit in laboris nulla nostrud. Voluptate dolore Lorem qui consectetur id amet qui esse est. Ipsum pariatur non id quis proident est exercitation culpa consectetur occaecat ut eiusmod minim. Nostrud dolore id nulla ullamco mollit aute minim ad quis.\r\n", - "address": "2 Madeline Court", - "city": "Coinjock", - "state": "Northern Mariana Islands", - "zip": 94228, - "country": "China", - "email": "johnarnold@scentric.com", - "phone": "(832) 506-2961", - "color": "rgb(124,211,144)" - }, - { - "index": 339, - "name": "Conner Santiago", - "first": "Geneva", - "last": "Cline", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/w8candice/73.jpg", - "boolean": true, - "guid": "42040b16-aa43-4862-94d5-186ca3462e87", - "integer": 42, - "date": "Sat Jan 30 1988 20:47:01 GMT-0800 (PST)", - "shortText": "pariatur enim fugiat", - "mediumText": "Pariatur voluptate mollit deserunt voluptate proident sit sint Lorem magna sunt deserunt ipsum. Exercitation nostrud proident consequat amet.", - "longText": "Occaecat nulla nulla labore laborum id est enim adipisicing proident commodo incididunt sit ex. Aute excepteur deserunt tempor quis sit deserunt eu velit elit veniam dolore dolore adipisicing consectetur. Consequat tempor nostrud excepteur laboris quis. Duis aute magna do mollit ullamco ex ipsum occaecat aute sunt.\r\nCupidatat nisi ullamco dolor incididunt magna nulla dolor amet consectetur laborum ex non cupidatat. Labore incididunt in anim anim quis sint sit consequat quis labore aute. Magna nisi sint nostrud ea esse voluptate.\r\nLorem ex cupidatat Lorem aute sunt consectetur proident. Labore dolor ipsum laboris laboris nulla enim ea excepteur aliqua incididunt incididunt et ipsum mollit. Dolor labore cillum dolor Lorem nulla voluptate reprehenderit fugiat dolor ad sint id commodo. Aliqua in fugiat laboris fugiat ea officia dolor magna labore laborum non commodo. In labore consequat incididunt ut minim. Lorem enim tempor mollit minim esse deserunt anim ex labore. Officia nulla reprehenderit dolore eu duis eu.\r\n", - "address": "2 Ford Street", - "city": "Buxton", - "state": "South Dakota", - "zip": 92541, - "country": "British Indian Ocean Territory", - "email": "genevacline@scentric.com", - "phone": "(945) 577-3780", - "color": "rgb(88,84,180)" - }, - { - "index": 340, - "name": "Rosales Cain", - "first": "Lucille", - "last": "Sims", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mbilderbach/73.jpg", - "boolean": false, - "guid": "05c0e183-2ebf-459b-8755-1581a4a5e362", - "integer": 66, - "date": "Thu Oct 16 1997 15:05:12 GMT-0700 (PDT)", - "shortText": "esse labore", - "mediumText": "Ipsum cillum sunt laboris reprehenderit quis nulla.", - "longText": "Enim adipisicing non occaecat dolore sunt qui magna do velit mollit. Adipisicing enim esse quis Lorem sit ut elit est. Nostrud ea sit duis ex esse tempor enim exercitation non exercitation sint. Occaecat ipsum ex id elit eu id occaecat ea pariatur nisi tempor velit. Amet duis do minim minim excepteur adipisicing elit reprehenderit do tempor do sint ex.\r\nElit eu laboris mollit ullamco. Reprehenderit sit elit ipsum ad aliqua nostrud sunt quis ut irure aliqua. Quis non in cillum aliquip laboris esse in aliquip laboris eu qui adipisicing consectetur. Magna tempor irure officia duis sunt.\r\nSit ad dolore mollit fugiat do culpa in anim aliqua. Ad adipisicing esse occaecat ullamco proident. Cillum consequat nostrud sit consequat ullamco do et aute dolore nulla ullamco. Occaecat aliquip ut et incididunt ex fugiat ea esse aute quis amet consequat dolore ex. Officia aute incididunt esse exercitation culpa.\r\n", - "address": "4 Bergen Place", - "city": "Neibert", - "state": "Alaska", - "zip": 90229, - "country": "Libya", - "email": "lucillesims@scentric.com", - "phone": "(881) 438-3457", - "color": "rgb(57,64,85)" - }, - { - "index": 341, - "name": "Jillian Puckett", - "first": "Bean", - "last": "Dyer", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/coreyweb/73.jpg", - "boolean": false, - "guid": "a5317fd0-0be0-41ea-bbe9-a86a56e64aee", - "integer": 79, - "date": "Fri Oct 22 2004 15:49:39 GMT-0700 (PDT)", - "shortText": "ipsum aliqua", - "mediumText": "Occaecat ut eu consectetur sit Lorem nulla incididunt magna mollit reprehenderit fugiat.", - "longText": "Ad non eiusmod ullamco consectetur. In incididunt officia ex irure id. Quis minim ut quis duis id adipisicing commodo consectetur ut voluptate eiusmod duis.\r\nCulpa aliquip amet esse tempor do adipisicing. Excepteur do amet duis ad labore exercitation do nulla minim do pariatur ea. Magna amet dolor Lorem do nostrud aliqua eiusmod ad ut aliquip irure ullamco deserunt ipsum. Eu enim amet ut ut tempor sit cupidatat magna dolore. Laborum magna irure sit incididunt quis duis ex.\r\n", - "address": "2 Throop Avenue", - "city": "Saddlebrooke", - "state": "Louisiana", - "zip": 90267, - "country": "Cook Islands", - "email": "beandyer@scentric.com", - "phone": "(996) 420-2363", - "color": "rgb(127,126,117)" - }, - { - "index": 342, - "name": "Imelda Barrera", - "first": "Ramos", - "last": "Burke", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jeremyshimko/73.jpg", - "boolean": true, - "guid": "7af4342e-1e1e-4807-8c51-aa37e8b7e551", - "integer": 25, - "date": "Thu Apr 19 2012 18:26:05 GMT-0700 (PDT)", - "shortText": "excepteur in culpa duis ullamco", - "mediumText": "In minim officia mollit veniam esse deserunt enim ullamco adipisicing ullamco deserunt quis.", - "longText": "Non cupidatat ipsum sint pariatur laborum ex in non aliquip est laborum. Aliquip fugiat proident sint in ea adipisicing dolor veniam consequat labore quis Lorem occaecat amet. Exercitation do commodo sunt nisi elit aliqua aliqua consectetur. Reprehenderit eu qui ea aliquip labore eiusmod cillum sunt.\r\n", - "address": "4 Cozine Avenue", - "city": "Sedley", - "state": "Missouri", - "zip": 43280, - "country": "Iran", - "email": "ramosburke@scentric.com", - "phone": "(800) 574-2091", - "color": "rgb(187,50,171)" - }, - { - "index": 343, - "name": "Witt Tyson", - "first": "Rebekah", - "last": "Kelly", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pavelbuben/73.jpg", - "boolean": false, - "guid": "81d76694-4ec9-4a0d-b1d2-87c3513414e3", - "integer": 92, - "date": "Thu Jul 31 1975 13:57:11 GMT-0700 (PDT)", - "shortText": "do quis", - "mediumText": "Reprehenderit veniam in sit magna nulla non ad ut enim culpa consequat in nisi id. Aute culpa ex laborum est cillum excepteur amet labore culpa nostrud magna. Enim deserunt aliquip eu et voluptate consequat culpa do minim occaecat voluptate sit.", - "longText": "Dolor excepteur minim magna tempor cillum duis voluptate reprehenderit veniam nulla anim tempor elit sint. Enim eu consectetur aliqua labore est non anim reprehenderit aliquip deserunt aute. Consequat et veniam id id ullamco amet adipisicing eiusmod. Ullamco fugiat quis ad sit consequat aliqua ipsum labore. Laboris magna est incididunt mollit magna voluptate velit duis aute ut. Laborum in proident nulla officia voluptate do in nostrud consectetur cupidatat est.\r\nLorem elit nulla tempor officia incididunt consequat aliqua. Voluptate anim labore esse veniam. Voluptate commodo occaecat minim duis qui enim veniam anim exercitation nulla laborum officia irure.\r\nNulla est eiusmod duis deserunt ea. Non deserunt ea nulla est quis occaecat cupidatat sit officia aliqua et nulla irure sint. Ea duis aliqua veniam reprehenderit culpa eiusmod sint. Quis et eu eu dolore. Nulla est officia adipisicing laborum est dolore duis culpa. Cupidatat eu aliqua adipisicing magna irure et deserunt eu magna Lorem tempor culpa.\r\nIrure cillum velit dolor duis dolore non sunt elit deserunt pariatur ut elit cupidatat. Qui irure sint duis ad nostrud dolore laborum. Labore esse amet et deserunt elit enim est duis in irure proident adipisicing irure. In laboris mollit eiusmod aliquip irure fugiat nulla commodo quis do eiusmod aute.\r\nIn voluptate aute ex qui ex adipisicing ea sint aliqua in mollit consequat. Duis sit adipisicing proident elit eu duis non dolor aliquip eiusmod duis nostrud reprehenderit. Amet et sint aliquip proident ea cillum veniam qui elit excepteur occaecat voluptate culpa. Mollit ea labore nulla mollit Lorem velit velit sit commodo nostrud. Ex deserunt laborum ea laborum culpa culpa sit eu dolor aute sunt amet. Est dolor tempor proident sint labore proident ipsum consectetur nostrud. Qui commodo qui aliqua commodo esse aute non enim.\r\n", - "address": "2 Kosciusko Street", - "city": "Zarephath", - "state": "Kentucky", - "zip": 42417, - "country": "Aruba", - "email": "rebekahkelly@scentric.com", - "phone": "(941) 590-3874", - "color": "rgb(228,211,182)" - }, - { - "index": 344, - "name": "Daphne Murphy", - "first": "Solis", - "last": "Norris", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/hafeeskhan/73.jpg", - "boolean": true, - "guid": "aba2b0e9-cd59-410a-b0d2-70b43acabbc0", - "integer": 71, - "date": "Sun Apr 30 1972 14:07:42 GMT-0700 (PDT)", - "shortText": "aute consequat voluptate adipisicing ex", - "mediumText": "Dolore commodo sit ea sunt in consectetur fugiat laboris incididunt aliquip.", - "longText": "Sunt dolor duis fugiat voluptate veniam. In cillum irure nisi quis reprehenderit est ipsum. Dolore duis est ea duis labore laborum ea ex nisi minim. Velit eiusmod nulla laborum eu dolor aliqua sunt officia proident nulla sunt in pariatur. Pariatur sit do ullamco nostrud commodo ex et ex in. Labore excepteur tempor et qui nisi Lorem culpa eu. Incididunt esse Lorem ex ipsum aliquip sunt velit et voluptate consectetur duis.\r\nAdipisicing esse ipsum tempor eu. Voluptate aliqua laborum incididunt excepteur veniam. Laboris sunt id quis sint voluptate duis ex.\r\nQui dolore culpa reprehenderit est est do. Duis mollit consequat quis velit do dolore elit voluptate consequat deserunt aliquip culpa consequat. Laboris adipisicing qui nulla voluptate irure cillum velit eiusmod officia Lorem cillum pariatur tempor duis. Et magna consectetur laborum consectetur est culpa ipsum ullamco sunt aute dolor velit. Duis ipsum reprehenderit quis adipisicing voluptate do laborum.\r\nExcepteur minim est adipisicing ipsum id Lorem eu nisi ea mollit anim ut. Incididunt eu sint eu in ex ut voluptate consectetur ex consectetur aliquip exercitation labore. Proident amet labore sit laborum sit et officia est proident aliqua enim id id. Ea consectetur minim deserunt non. Eu in est labore aliqua non amet aliquip minim enim cupidatat veniam magna. Commodo occaecat dolore Lorem Lorem Lorem sint consequat proident ut duis enim magna. Aute occaecat nisi duis culpa velit sunt.\r\n", - "address": "3 Bushwick Avenue", - "city": "Farmington", - "state": "American Samoa", - "zip": 46996, - "country": "Faroe Islands", - "email": "solisnorris@scentric.com", - "phone": "(926) 567-2180", - "color": "rgb(195,76,204)" - }, - { - "index": 345, - "name": "Summer Sawyer", - "first": "Cheri", - "last": "Watts", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/timmillwood/73.jpg", - "boolean": false, - "guid": "edf13e03-caa7-418a-8781-3ec09c26861d", - "integer": 75, - "date": "Tue May 08 2012 18:10:55 GMT-0700 (PDT)", - "shortText": "incididunt excepteur", - "mediumText": "Ullamco adipisicing id culpa irure anim non fugiat. Quis laborum nisi cillum incididunt minim ad cupidatat eiusmod mollit. Et nostrud eiusmod dolor et Lorem aliquip deserunt. In minim ut pariatur commodo. Ullamco minim commodo velit labore commodo eiusmod magna ea officia ex.", - "longText": "Mollit irure non aute magna. Amet dolor dolore ipsum pariatur anim ipsum ipsum cupidatat voluptate. Veniam excepteur eiusmod labore voluptate. Ipsum cillum anim esse aliqua ex consequat. Tempor adipisicing aute laborum deserunt magna labore duis deserunt.\r\nEt fugiat amet esse aliquip veniam magna est ad. Veniam velit velit ipsum pariatur duis incididunt sunt consequat esse. Cillum eiusmod duis aliqua ullamco. Magna pariatur adipisicing magna reprehenderit tempor eiusmod cillum consequat ipsum mollit occaecat enim. Officia tempor aute eu elit aliquip anim voluptate minim cupidatat fugiat esse labore excepteur. Nulla ex aliqua ipsum irure minim. Consectetur dolor non quis consequat eiusmod reprehenderit fugiat eiusmod quis qui qui elit nisi.\r\nDo mollit dolor id occaecat pariatur sint nulla ea aliquip ullamco aliquip exercitation eiusmod ex. Duis magna nulla amet fugiat Lorem tempor duis nisi ex exercitation ex. Non irure ullamco reprehenderit nulla consectetur in.\r\nNisi proident cillum labore anim consectetur in. Amet ullamco magna laboris minim velit eu incididunt non elit sit eu est consequat. Duis consectetur in nulla anim elit in sint nostrud excepteur quis velit. Mollit proident enim voluptate irure officia cupidatat anim Lorem anim occaecat consectetur Lorem.\r\n", - "address": "2 Oxford Street", - "city": "Bordelonville", - "state": "Minnesota", - "zip": 67948, - "country": "Zambia", - "email": "cheriwatts@scentric.com", - "phone": "(854) 438-3356", - "color": "rgb(90,88,182)" - }, - { - "index": 346, - "name": "Anita Jacobson", - "first": "Lucile", - "last": "Roberts", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/butchewing/73.jpg", - "boolean": false, - "guid": "c88108ef-0dce-42ae-b03e-770b8b26ecf0", - "integer": 37, - "date": "Mon Apr 18 1977 02:05:21 GMT-0800 (PST)", - "shortText": "nostrud", - "mediumText": "Deserunt fugiat veniam minim ipsum consequat ipsum tempor voluptate ut. Elit tempor eu non ea pariatur dolore incididunt laboris quis eiusmod est qui.", - "longText": "Fugiat tempor dolore proident adipisicing fugiat minim. Sunt in veniam dolor anim non Lorem id proident in anim sint. Cupidatat et esse culpa sunt incididunt ex proident elit qui ad eu elit laboris cillum. Laboris culpa pariatur ea sit culpa et ea minim fugiat. Eu nulla est excepteur deserunt officia.\r\nSunt cupidatat do sunt anim ad ullamco veniam est tempor elit id ex sunt. Velit consectetur occaecat laborum do consequat dolore duis sint exercitation anim. Ad sunt aliqua culpa dolore fugiat excepteur elit magna labore. Nostrud cupidatat aliquip et officia aliquip incididunt. Fugiat excepteur pariatur officia magna. Ex id velit enim amet culpa.\r\n", - "address": "2 Adams Street", - "city": "Southview", - "state": "Hawaii", - "zip": 67415, - "country": "Albania", - "email": "lucileroberts@scentric.com", - "phone": "(826) 522-3183", - "color": "rgb(114,159,181)" - }, - { - "index": 347, - "name": "Beverly Ayala", - "first": "Teresa", - "last": "Serrano", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dotmariusz/73.jpg", - "boolean": false, - "guid": "e5824ea2-1204-42b5-8075-232d1e648cfc", - "integer": 47, - "date": "Mon Jul 24 2000 15:52:57 GMT-0700 (PDT)", - "shortText": "non cillum mollit enim ullamco", - "mediumText": "Amet do eu non culpa ea eiusmod culpa reprehenderit aute adipisicing duis nostrud in dolor. Do sint ex anim consectetur reprehenderit.", - "longText": "Et quis laboris ad ea do quis id enim. Ex culpa cupidatat velit nostrud cupidatat voluptate velit ipsum. Eu amet culpa aute officia non commodo irure fugiat. Qui sit consectetur labore exercitation officia cillum veniam enim.\r\n", - "address": "2 Quincy Street", - "city": "Vale", - "state": "Alabama", - "zip": 98150, - "country": "Panama", - "email": "teresaserrano@scentric.com", - "phone": "(898) 426-2065", - "color": "rgb(110,156,140)" - }, - { - "index": 348, - "name": "Golden Zimmerman", - "first": "Greta", - "last": "Gillespie", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/aaronbeashel/73.jpg", - "boolean": true, - "guid": "e4300d91-7791-4fcb-b61e-c551eeed9488", - "integer": 57, - "date": "Thu Sep 20 2007 17:36:22 GMT-0700 (PDT)", - "shortText": "cillum", - "mediumText": "Lorem duis adipisicing et ea dolore dolore non anim nisi exercitation enim. Ea incididunt velit quis mollit nisi dolor proident. Ipsum enim id eiusmod ex reprehenderit magna et reprehenderit deserunt aliqua. Qui mollit sit occaecat sunt ex veniam excepteur ex velit ea commodo ad.", - "longText": "Do dolore culpa cillum officia aliqua cillum. Fugiat nisi ipsum proident reprehenderit velit. Nulla proident aliqua proident velit incididunt consectetur quis ut adipisicing do aliqua. Amet laboris elit amet commodo adipisicing. Nisi esse minim ut elit. Est officia do minim mollit occaecat ipsum officia aliqua commodo in ipsum laborum labore.\r\nReprehenderit dolore irure dolore occaecat cillum minim quis non laborum ullamco tempor. Irure ut magna ad esse nostrud nostrud ut. Eiusmod sunt nulla commodo officia incididunt nisi aliqua. Eiusmod occaecat non do non qui eiusmod. Amet sit dolore fugiat aliquip.\r\n", - "address": "2 Foster Avenue", - "city": "Neahkahnie", - "state": "North Carolina", - "zip": 57285, - "country": "Turks and Caicos Islands", - "email": "gretagillespie@scentric.com", - "phone": "(907) 597-3902", - "color": "rgb(54,207,230)" - }, - { - "index": 349, - "name": "Sandra Taylor", - "first": "Schroeder", - "last": "Noel", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jina/73.jpg", - "boolean": false, - "guid": "10f56b06-75ab-4405-929b-533362c0fd8f", - "integer": 65, - "date": "Thu Jul 19 1979 21:31:02 GMT-0700 (PDT)", - "shortText": "laboris pariatur anim est", - "mediumText": "Velit nostrud voluptate labore eu irure laboris proident reprehenderit.", - "longText": "Ex irure sit ut quis exercitation enim voluptate laborum. Cillum deserunt amet est et. Nostrud consequat ullamco minim sit deserunt amet officia sit dolore. Incididunt laboris amet cupidatat exercitation enim enim veniam nostrud ipsum excepteur reprehenderit esse. Adipisicing esse do et est esse nulla duis nisi veniam sint.\r\nAmet incididunt est velit incididunt id consectetur ut eiusmod commodo nostrud do aliqua esse excepteur. Ullamco laborum proident ullamco aliqua nisi aliquip ex id. Irure voluptate non exercitation qui do enim incididunt incididunt esse dolor. Eiusmod aute id consectetur ullamco laboris cupidatat consequat.\r\nSunt commodo amet deserunt sit esse ad eiusmod tempor. Excepteur deserunt ea aliquip tempor nostrud nostrud labore eu et et. Dolore ex mollit officia voluptate non consequat. Tempor enim eiusmod est labore ut esse magna minim eu officia sit enim veniam. Quis do veniam magna elit enim amet est veniam irure.\r\nMollit sit incididunt sunt tempor adipisicing Lorem incididunt. Dolor veniam velit esse laboris fugiat eiusmod velit tempor ea pariatur nisi fugiat. Velit proident ex ipsum id cillum amet ad.\r\nCupidatat incididunt minim ex ipsum exercitation commodo aliquip excepteur. Voluptate labore reprehenderit quis in ex magna. Ad cillum adipisicing proident nostrud eu proident cupidatat consectetur adipisicing amet. Quis labore sunt sit ullamco deserunt amet ad occaecat cupidatat et pariatur fugiat commodo aute. Enim et veniam proident Lorem sint. Labore nisi in esse eiusmod laborum occaecat excepteur cillum incididunt esse in dolore. Aliqua eiusmod velit id occaecat sunt qui ex ea.\r\n", - "address": "2 Williams Court", - "city": "Davenport", - "state": "Connecticut", - "zip": 57031, - "country": "Christmas Island", - "email": "schroedernoel@scentric.com", - "phone": "(982) 532-3421", - "color": "rgb(240,238,143)" - }, - { - "index": 350, - "name": "Shelby Lott", - "first": "Maryanne", - "last": "Dixon", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gu5taf/73.jpg", - "boolean": false, - "guid": "86ccb30c-436b-4e11-b33f-231007768e3c", - "integer": 16, - "date": "Wed Jan 07 1970 01:58:18 GMT-0800 (PST)", - "shortText": "anim officia nulla aliqua", - "mediumText": "Officia et eu enim esse veniam. Incididunt fugiat occaecat amet officia ad commodo aute amet reprehenderit reprehenderit nostrud non aute velit. Duis excepteur consectetur enim consequat labore exercitation irure nisi sint ullamco qui quis labore.", - "longText": "Tempor culpa mollit id anim labore sit Lorem cillum. Occaecat cupidatat sit ad voluptate tempor non do. Ullamco id laborum et ex esse. Do ex ad excepteur magna consequat. Qui proident qui occaecat ut aute nostrud.\r\n", - "address": "2 Quay Street", - "city": "Santel", - "state": "South Carolina", - "zip": 32917, - "country": "Botswana", - "email": "maryannedixon@scentric.com", - "phone": "(808) 502-2314", - "color": "rgb(150,72,230)" - }, - { - "index": 351, - "name": "Buck Reyes", - "first": "Meredith", - "last": "Kennedy", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/antonkudin/73.jpg", - "boolean": true, - "guid": "1836f1d4-6bef-4b29-8a27-b11d78119e5a", - "integer": 56, - "date": "Wed Jul 03 2013 04:17:00 GMT-0700 (PDT)", - "shortText": "cillum enim aute ea enim", - "mediumText": "Voluptate do Lorem veniam ullamco id excepteur. Mollit et occaecat ut amet nostrud dolore consectetur id minim. Eu esse nisi incididunt nulla occaecat sunt. Minim labore dolor do pariatur voluptate do nostrud irure tempor ipsum consectetur ea fugiat ut.", - "longText": "Et ex ipsum eu commodo aliquip sit officia id. Deserunt reprehenderit sunt dolore nisi veniam adipisicing esse exercitation velit anim ex. Eiusmod do aliquip magna cillum dolore cillum excepteur. Excepteur dolore quis nisi veniam quis eiusmod occaecat. Amet nulla ut excepteur duis officia dolor esse incididunt ipsum. Laboris est aliqua qui nostrud labore duis eu non do.\r\nDo id commodo et deserunt aliquip. Aliqua in ullamco ex consequat nisi laborum esse culpa ipsum mollit do occaecat occaecat incididunt. Tempor est irure irure ex incididunt laboris. Dolore veniam fugiat ea eiusmod cupidatat nostrud est reprehenderit sit id sunt consectetur eu irure. In laborum voluptate proident et dolor aute. Deserunt dolore dolor ad sit duis veniam.\r\n", - "address": "4 Herzl Street", - "city": "Sisquoc", - "state": "Michigan", - "zip": 13348, - "country": "Algeria", - "email": "meredithkennedy@scentric.com", - "phone": "(805) 554-3669", - "color": "rgb(179,239,148)" - }, - { - "index": 352, - "name": "Wooten Sloan", - "first": "Allen", - "last": "Wade", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/derekebradley/73.jpg", - "boolean": false, - "guid": "dc87dc7f-bf6e-4633-9a8e-2e7ce98a216b", - "integer": 94, - "date": "Fri Mar 13 1998 22:52:34 GMT-0800 (PST)", - "shortText": "consectetur ipsum eu velit", - "mediumText": "Lorem commodo sit nostrud culpa esse deserunt laboris magna. Elit esse id Lorem ut.", - "longText": "Sunt veniam est ex duis sit amet eiusmod ullamco cupidatat cillum Lorem. Deserunt ex do mollit consequat elit. Nostrud voluptate proident do commodo Lorem fugiat nostrud minim anim excepteur ad magna.\r\nQui et velit consequat Lorem occaecat irure anim esse. Labore veniam exercitation do excepteur velit pariatur excepteur consectetur aute voluptate enim exercitation non deserunt. Mollit irure magna id elit laborum. Elit pariatur aute pariatur nulla deserunt. Deserunt sit consectetur anim tempor duis laborum do quis enim.\r\nDolore dolore nostrud voluptate ipsum qui. Ea laboris culpa proident duis officia sit. Non do pariatur aute elit dolor aliqua cillum. Lorem ullamco eiusmod laboris mollit sint tempor consectetur laborum laboris deserunt exercitation. Eu fugiat nulla irure excepteur aliqua enim et consequat culpa. Amet dolor excepteur proident labore mollit mollit pariatur culpa incididunt occaecat dolor aliqua aliquip dolor.\r\nIn qui enim cupidatat quis magna do qui aliquip magna. Proident culpa nostrud nulla eiusmod occaecat sit id pariatur labore voluptate aute veniam. Eu amet labore labore aliqua amet adipisicing commodo. Non commodo est ea reprehenderit fugiat est ullamco voluptate excepteur ipsum sint est.\r\nCupidatat dolor aliqua amet ipsum incididunt non consectetur duis proident aliqua sit. Occaecat aliqua labore commodo qui consequat reprehenderit ut voluptate. Sint velit minim mollit elit occaecat laboris aliqua dolor enim do.\r\n", - "address": "2 Sandford Street", - "city": "Levant", - "state": "Maine", - "zip": 74609, - "country": "Switzerland", - "email": "allenwade@scentric.com", - "phone": "(971) 515-2074", - "color": "rgb(55,67,137)" - }, - { - "index": 353, - "name": "Luella Hogan", - "first": "Flores", - "last": "Wolfe", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/karachentsov/73.jpg", - "boolean": true, - "guid": "3e88723e-2180-4ee0-8c96-fd9c48538abd", - "integer": 65, - "date": "Thu Sep 03 1998 10:25:29 GMT-0700 (PDT)", - "shortText": "commodo reprehenderit anim", - "mediumText": "Magna in quis irure duis. Nisi duis non pariatur magna ipsum excepteur ea. Ea exercitation culpa commodo consectetur. Do cillum Lorem nisi ipsum nulla cupidatat officia sunt pariatur ea. Dolor deserunt enim reprehenderit in in.", - "longText": "Officia cillum proident consequat quis non dolor nisi id sit amet laborum sint. Elit enim ex laborum amet nulla qui. Ut amet eiusmod mollit id.\r\nEt fugiat laborum adipisicing laboris adipisicing. Sint ea est non ut laborum velit irure officia cupidatat excepteur. Eu cillum occaecat minim id proident incididunt.\r\nLaboris enim aliqua id et duis laborum dolore mollit proident. Culpa commodo dolor labore tempor minim nulla minim esse cupidatat do. Adipisicing ut non ullamco magna do commodo est dolore elit ea est eu. Est dolore duis Lorem culpa adipisicing. Tempor qui sunt qui et. Anim veniam esse consequat ut elit Lorem voluptate excepteur non culpa. Quis veniam Lorem aliqua culpa.\r\nNisi duis ex sunt magna enim proident et sint proident minim. In excepteur id pariatur ullamco. Nulla ea cupidatat sunt ut pariatur minim duis.\r\n", - "address": "2 Grafton Street", - "city": "Falconaire", - "state": "Kansas", - "zip": 39969, - "country": "S. Georgia and S. Sandwich Isls.", - "email": "floreswolfe@scentric.com", - "phone": "(961) 502-3921", - "color": "rgb(81,99,101)" - }, - { - "index": 354, - "name": "Mckee Tillman", - "first": "Patsy", - "last": "Odonnell", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/emmeffess/73.jpg", - "boolean": true, - "guid": "3cc7cc1e-1856-4b5a-a9f7-0e938e0206e5", - "integer": 14, - "date": "Fri Jan 11 1985 09:25:30 GMT-0800 (PST)", - "shortText": "minim in proident", - "mediumText": "Duis eiusmod pariatur consectetur et laboris magna. Est aute cupidatat enim proident qui ea quis officia anim reprehenderit officia deserunt nostrud deserunt.", - "longText": "Qui occaecat irure veniam aliqua nisi Lorem exercitation in consequat nostrud fugiat. Magna cupidatat incididunt tempor in. Esse cillum ullamco minim et nisi tempor nostrud tempor. Fugiat duis veniam enim enim consequat. Incididunt anim fugiat in Lorem sunt sit fugiat. Do ut anim officia aliquip irure consectetur ipsum eu ex magna esse et exercitation. Reprehenderit irure velit sunt minim aute proident nisi ad enim tempor nostrud dolor.\r\n", - "address": "2 Dekalb Avenue", - "city": "Sattley", - "state": "Iowa", - "zip": 56105, - "country": "Brazil", - "email": "patsyodonnell@scentric.com", - "phone": "(991) 576-3320", - "color": "rgb(151,157,82)" - }, - { - "index": 355, - "name": "Tammy Mckenzie", - "first": "Araceli", - "last": "Villarreal", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bmovement/73.jpg", - "boolean": true, - "guid": "645a7c4c-a0cf-4361-9c6d-5d32d77d5500", - "integer": 69, - "date": "Sun Dec 24 2006 07:06:15 GMT-0800 (PST)", - "shortText": "anim laborum nisi", - "mediumText": "Incididunt consectetur culpa nisi Lorem eiusmod cillum non nisi tempor mollit irure nisi ut cupidatat. Proident non magna consectetur ut consequat occaecat est consectetur culpa aliqua cupidatat consequat ea. Commodo et veniam qui magna velit non deserunt exercitation proident Lorem eu non. Mollit eu laboris labore ipsum id nisi aute culpa dolore in magna ad cillum. Ea adipisicing Lorem ad irure exercitation amet aliqua esse.", - "longText": "Ea laboris in irure labore cillum. Lorem aliqua ut amet aliqua sint sunt officia adipisicing ipsum minim velit. Elit in reprehenderit occaecat et et elit sint. In consequat quis nulla cillum cillum sint ullamco do officia. Excepteur id fugiat ullamco elit adipisicing veniam deserunt tempor. Nisi dolor tempor amet irure in amet consequat ea. Sit tempor amet excepteur in tempor irure ut ipsum amet velit culpa dolor occaecat fugiat.\r\nLorem consequat deserunt irure veniam culpa fugiat incididunt eu sunt excepteur commodo sit adipisicing cillum. Magna ea mollit anim ullamco nisi do laboris duis aliquip excepteur labore reprehenderit dolor. Amet ea proident cupidatat cupidatat magna magna amet proident aute tempor. Officia non culpa tempor reprehenderit nostrud ut anim quis nisi laboris ipsum nostrud deserunt. Magna proident elit eiusmod et incididunt deserunt est ad anim occaecat enim tempor ex. Id veniam ad commodo ad proident reprehenderit. Veniam in culpa do dolore excepteur pariatur mollit.\r\nCupidatat ex occaecat nulla irure excepteur. Duis sit do nisi officia. Ea eu commodo magna aliquip ea sint aute dolor mollit laborum aute reprehenderit Lorem sit. Proident laboris incididunt sit in sint. Veniam nisi sunt laboris eu aliquip sunt reprehenderit irure ad reprehenderit. In ea ullamco ullamco amet cillum irure pariatur veniam.\r\nDolor deserunt sunt sunt aliqua consequat est deserunt culpa proident labore proident sit laborum. Cupidatat aute nostrud ad non consequat laboris. Cupidatat dolor magna et occaecat laboris. Ipsum magna id amet non consectetur adipisicing veniam. Aliqua anim pariatur nostrud anim in sint sit deserunt anim. Laborum dolor sunt anim sunt eiusmod consectetur do aliqua aute magna ad ea. Enim amet exercitation culpa deserunt proident.\r\nCommodo nisi officia commodo Lorem irure occaecat qui. Est eu Lorem et labore excepteur elit enim. Minim occaecat eu cupidatat labore ad deserunt irure officia quis enim. Consequat eiusmod labore minim ex ipsum velit ea veniam. Elit minim do non eiusmod cillum incididunt proident. In excepteur exercitation nisi aliquip adipisicing consequat qui.\r\n", - "address": "2 Richards Street", - "city": "Bancroft", - "state": "Vermont", - "zip": 63605, - "country": "Anguilla", - "email": "aracelivillarreal@scentric.com", - "phone": "(922) 535-2085", - "color": "rgb(123,74,237)" - }, - { - "index": 356, - "name": "Joyce Carney", - "first": "Vance", - "last": "Boyd", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/taiyab/73.jpg", - "boolean": true, - "guid": "0714e7c1-db9c-4bc9-ae14-47d72e9f36b2", - "integer": 29, - "date": "Sat Jan 18 1986 13:37:09 GMT-0800 (PST)", - "shortText": "Lorem non cillum laborum culpa", - "mediumText": "Laboris Lorem anim cillum et deserunt nostrud laborum ex laborum laboris laborum sint nostrud. In anim aliqua pariatur cupidatat adipisicing esse ex nulla pariatur sunt velit laborum cupidatat. Culpa irure elit occaecat ea in aliqua. Aliqua ex sint anim elit aute enim consectetur ea culpa pariatur. Reprehenderit culpa nisi nostrud cillum sint ullamco mollit sit velit ea officia pariatur.", - "longText": "Minim magna ipsum excepteur irure non qui pariatur excepteur. Minim velit ea ullamco irure quis est duis velit est enim do labore. Irure laboris mollit commodo fugiat. Elit dolor ipsum non veniam culpa id esse.\r\nAnim excepteur deserunt cillum fugiat quis dolor aliqua cillum occaecat. Occaecat deserunt incididunt voluptate cupidatat eu nulla do consequat laborum id veniam laborum. Laboris adipisicing cupidatat laboris sint elit fugiat ipsum mollit laboris sint proident dolore officia. Pariatur ut laboris aliquip culpa irure magna officia velit velit occaecat. Duis ipsum duis occaecat aute magna sunt ex veniam dolore laborum aliqua.\r\nUllamco deserunt minim et qui consequat esse. Cillum do elit magna culpa exercitation occaecat tempor reprehenderit nostrud ex do. Ex laborum irure aliquip ipsum. Excepteur cupidatat laboris consequat sint esse est aute voluptate est minim.\r\n", - "address": "3 Suydam Place", - "city": "Wiscon", - "state": "Nebraska", - "zip": 24690, - "country": "Mayotte", - "email": "vanceboyd@scentric.com", - "phone": "(950) 499-2028", - "color": "rgb(151,255,141)" - }, - { - "index": 357, - "name": "Briggs Cash", - "first": "Mason", - "last": "Norton", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rigelstpierre/73.jpg", - "boolean": true, - "guid": "06751f30-d76a-46ef-a97a-3d8233acee4e", - "integer": 36, - "date": "Wed Oct 22 1997 23:32:22 GMT-0700 (PDT)", - "shortText": "qui aliquip laborum", - "mediumText": "Velit eiusmod est incididunt sint ipsum qui ullamco amet. Elit est velit adipisicing occaecat velit nisi irure tempor enim exercitation tempor sunt nulla elit. Incididunt ad quis officia nostrud aliqua incididunt commodo. Duis ex quis sint mollit laboris sint in ipsum enim.", - "longText": "Nisi excepteur culpa ipsum cillum aute cupidatat nisi. Culpa aliqua in excepteur et elit eu est irure laboris amet pariatur. Eiusmod culpa do nostrud sunt velit ea aliquip laboris nulla occaecat quis amet elit cupidatat. Excepteur sit mollit fugiat laborum nostrud sint pariatur. Officia ullamco consequat ex est quis. Dolor est laboris sint eu in laborum culpa.\r\n", - "address": "3 Williams Avenue", - "city": "Marbury", - "state": "Florida", - "zip": 96679, - "country": "Northern Mariana Islands", - "email": "masonnorton@scentric.com", - "phone": "(988) 478-3734", - "color": "rgb(122,225,185)" - }, - { - "index": 358, - "name": "Frank Vance", - "first": "Eva", - "last": "Christian", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/vlajki/73.jpg", - "boolean": false, - "guid": "90639571-dc94-4c8f-98c8-db8781d4d7e2", - "integer": 11, - "date": "Thu Jan 05 1984 02:00:59 GMT-0800 (PST)", - "shortText": "laboris non cillum laborum amet", - "mediumText": "Nulla consequat aute non non esse elit nostrud labore dolor consectetur. Fugiat culpa dolore commodo aute et enim exercitation reprehenderit. Mollit velit anim labore est dolor. Id fugiat proident qui in Lorem eiusmod. Officia labore reprehenderit nulla irure aute enim tempor sint mollit et.", - "longText": "Duis ad proident anim sint eu. Qui aute dolore minim nisi proident cillum consequat laboris. Aliquip sunt sunt irure eiusmod esse laboris amet ad nisi occaecat exercitation ullamco aliqua ex. Ipsum minim labore ut officia ut ut minim officia qui. Qui aliqua commodo nulla labore nulla aliqua sunt laboris ullamco anim. Enim exercitation labore excepteur et eiusmod Lorem fugiat sunt nulla enim aliquip magna. Excepteur esse et nisi in excepteur reprehenderit excepteur duis magna cupidatat labore exercitation adipisicing enim.\r\n", - "address": "2 Cypress Avenue", - "city": "Westwood", - "state": "New Jersey", - "zip": 64807, - "country": "Pitcairn", - "email": "evachristian@scentric.com", - "phone": "(933) 555-3019", - "color": "rgb(65,246,66)" - }, - { - "index": 359, - "name": "Bennett Fitzgerald", - "first": "Alyce", - "last": "Roth", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/leeiio/73.jpg", - "boolean": true, - "guid": "abc6eb23-4f14-4711-aaa1-0356ef6ac47e", - "integer": 79, - "date": "Mon Dec 15 1986 02:54:47 GMT-0800 (PST)", - "shortText": "veniam adipisicing velit magna deserunt", - "mediumText": "Laboris fugiat cupidatat ad aute laboris aliquip qui magna cupidatat cupidatat reprehenderit occaecat do.", - "longText": "Incididunt pariatur qui et ad adipisicing laborum. Aliqua eiusmod qui occaecat incididunt laboris sit. Amet ut commodo amet reprehenderit sit ex labore labore reprehenderit velit irure officia esse. Fugiat dolor ullamco sit ex ipsum aliqua irure aute dolore dolor.\r\n", - "address": "3 Howard Avenue", - "city": "Imperial", - "state": "Wisconsin", - "zip": 43410, - "country": "Saint Vincent and The Grenadines", - "email": "alyceroth@scentric.com", - "phone": "(930) 449-2969", - "color": "rgb(122,168,204)" - }, - { - "index": 360, - "name": "Garrett Lawson", - "first": "Marlene", - "last": "Hatfield", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/brad_frost/73.jpg", - "boolean": true, - "guid": "ea670adf-3aa0-4b5f-9ffc-4e448f9ad69b", - "integer": 63, - "date": "Sun Nov 16 1986 08:23:14 GMT-0800 (PST)", - "shortText": "aliqua sit aliquip id elit", - "mediumText": "Anim qui adipisicing enim est consequat duis qui aliquip. Elit excepteur tempor in eu ex exercitation. Dolor ex velit amet laboris. Sit non nisi anim ut et quis qui non irure elit pariatur nulla.", - "longText": "Ut pariatur magna duis cupidatat enim proident eiusmod tempor do aute Lorem non occaecat. Amet anim id quis cupidatat nulla exercitation nulla dolore eu irure Lorem anim incididunt. Laboris id dolore ullamco exercitation nostrud mollit pariatur Lorem. Consequat labore ea Lorem elit duis cupidatat nostrud do nulla. Elit amet proident fugiat commodo nostrud ipsum incididunt. Incididunt sunt qui laborum officia sit proident aute. Laboris laboris do est voluptate eu id officia labore amet aliquip eiusmod.\r\nLorem tempor elit nisi sunt. Laboris eu ea id id. Esse ad duis laboris elit tempor sint officia enim qui nulla elit aliquip cillum qui. Ex id culpa consequat laboris et voluptate esse irure.\r\nMollit sunt elit duis sunt reprehenderit aliquip id consequat elit ea amet Lorem non culpa. Et ad qui est mollit laboris mollit aute amet ut. Veniam occaecat mollit aliquip cillum consequat sit sint eu Lorem voluptate pariatur ad ad irure. Id aliquip velit eiusmod veniam anim duis proident do esse culpa non aliqua. Irure duis aute fugiat aliquip esse sint mollit aute non magna aliquip. Aliqua Lorem officia veniam cillum ad. Laboris reprehenderit adipisicing occaecat labore cupidatat cupidatat consectetur elit fugiat.\r\nUt amet tempor qui irure ex sunt nisi nostrud. Ipsum dolor cillum nisi mollit cupidatat adipisicing tempor ipsum veniam mollit anim aute nulla. Dolor aliqua occaecat aliqua eiusmod Lorem voluptate laborum. Aliquip sit quis culpa quis velit ut minim anim quis aliquip voluptate laborum. Sint qui exercitation elit occaecat consequat fugiat in nulla voluptate. Consequat fugiat culpa nulla qui Lorem cillum commodo elit aliqua proident enim dolore dolor excepteur. Voluptate pariatur ad culpa eiusmod ad nisi.\r\nSint eiusmod non reprehenderit proident Lorem anim nostrud id id. Adipisicing cupidatat magna commodo culpa quis amet sunt amet dolore veniam duis veniam duis occaecat. Cillum exercitation elit fugiat non. Consequat enim deserunt et nisi id. Ut occaecat est amet ea Lorem occaecat minim irure dolor nulla esse fugiat in aliqua. Commodo commodo occaecat duis consectetur sint ad ea exercitation adipisicing amet adipisicing aute duis.\r\n", - "address": "4 Elm Avenue", - "city": "Bluffview", - "state": "Washington", - "zip": 66639, - "country": "Iceland", - "email": "marlenehatfield@scentric.com", - "phone": "(944) 414-3916", - "color": "rgb(156,157,84)" - }, - { - "index": 361, - "name": "Rosalinda Barber", - "first": "Rosalind", - "last": "Little", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/alsobrooks/73.jpg", - "boolean": true, - "guid": "301b4435-b804-43a6-b90e-8b509a8d7482", - "integer": 30, - "date": "Mon Dec 21 2009 13:14:30 GMT-0800 (PST)", - "shortText": "ea veniam dolor enim", - "mediumText": "Excepteur et labore esse commodo in. In irure quis qui veniam cillum. Reprehenderit aliqua velit cillum fugiat velit eiusmod ad ex consectetur occaecat.", - "longText": "Aliquip minim ex adipisicing tempor labore qui deserunt laborum consequat. Cillum excepteur id cupidatat minim ex. Consequat officia voluptate aliqua cupidatat qui.\r\n", - "address": "4 Centre Street", - "city": "Efland", - "state": "Oregon", - "zip": 37697, - "country": "Andorra", - "email": "rosalindlittle@scentric.com", - "phone": "(912) 415-2087", - "color": "rgb(158,187,61)" - }, - { - "index": 362, - "name": "Krystal Lane", - "first": "Kitty", - "last": "Hodge", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thekishpatel/73.jpg", - "boolean": true, - "guid": "8918af69-f5ee-41e7-b442-d3e13fa03f20", - "integer": 88, - "date": "Tue Apr 11 1978 05:39:13 GMT-0800 (PST)", - "shortText": "adipisicing quis dolore ullamco exercitation", - "mediumText": "Nulla ipsum mollit sunt ad fugiat officia labore velit Lorem elit id. Tempor magna aliquip nulla laborum labore ea voluptate.", - "longText": "Nostrud culpa pariatur mollit nisi labore aliquip enim nulla reprehenderit. Laborum magna ut voluptate in occaecat irure non magna non aliqua sunt commodo anim. Consectetur officia irure proident enim. Sit amet nulla duis minim cillum consequat labore anim cillum. Cillum minim voluptate commodo ex aute duis nulla do. Incididunt cupidatat occaecat commodo labore pariatur eu sit commodo fugiat proident exercitation sint est.\r\nSunt voluptate sunt quis pariatur excepteur et. Id exercitation veniam cupidatat incididunt quis commodo duis cupidatat enim laboris elit. Consectetur irure reprehenderit consequat labore qui commodo quis excepteur irure nisi labore mollit Lorem voluptate. Aute dolore consectetur voluptate cillum anim qui incididunt.\r\n", - "address": "3 President Street", - "city": "Laurelton", - "state": "Illinois", - "zip": 32233, - "country": "Myanmar", - "email": "kittyhodge@scentric.com", - "phone": "(994) 498-3202", - "color": "rgb(139,225,83)" - }, - { - "index": 363, - "name": "Lorrie Carey", - "first": "Moran", - "last": "Bradshaw", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iqonicd/73.jpg", - "boolean": false, - "guid": "8040adde-26e1-416b-9053-e33e98a911a9", - "integer": 0, - "date": "Sat May 27 1972 21:40:25 GMT-0700 (PDT)", - "shortText": "culpa fugiat", - "mediumText": "Commodo cillum Lorem duis laborum minim cillum labore irure nostrud excepteur ut fugiat fugiat anim. Occaecat do eiusmod proident irure. Voluptate id nisi veniam tempor. Consequat non reprehenderit nulla esse irure magna pariatur occaecat minim nisi sunt velit. Labore reprehenderit ad consectetur et exercitation esse commodo.", - "longText": "Ad occaecat amet cillum nisi culpa pariatur sint Lorem ex. Ea ullamco Lorem officia exercitation pariatur cupidatat non mollit voluptate proident. Fugiat tempor irure pariatur eu minim nisi fugiat cupidatat. Ad anim ad qui occaecat. Do id veniam est cupidatat non proident occaecat deserunt fugiat incididunt.\r\nAliqua ea adipisicing elit est officia. Dolor voluptate ex labore proident aute laboris fugiat fugiat. Et fugiat enim qui et laborum sint. Aute excepteur ut ad duis. Voluptate duis adipisicing cupidatat ullamco magna.\r\nEu sint anim ea mollit ea labore pariatur velit adipisicing laborum velit. Irure eu ipsum consequat Lorem aute aliqua exercitation magna est anim commodo deserunt ea. Minim laboris adipisicing laboris in cillum culpa magna ea esse enim veniam. Non enim velit qui veniam commodo do incididunt. Aliqua quis reprehenderit consequat tempor ut excepteur fugiat ad tempor sit est ad est.\r\nUllamco quis et ea ex est deserunt ut. Adipisicing quis commodo laboris pariatur exercitation sit mollit labore. Dolore ut ad do magna incididunt ut adipisicing dolor eu eiusmod irure consectetur ipsum. Exercitation magna incididunt exercitation eiusmod. Esse veniam mollit Lorem qui eu officia aute.\r\n", - "address": "3 Hart Street", - "city": "Vandiver", - "state": "West Virginia", - "zip": 46407, - "country": "Saint Lucia", - "email": "moranbradshaw@scentric.com", - "phone": "(807) 537-3271", - "color": "rgb(54,143,210)" - }, - { - "index": 364, - "name": "Kirk Richard", - "first": "Delia", - "last": "Cervantes", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iamlechev/73.jpg", - "boolean": false, - "guid": "42e322d1-8045-429a-8eeb-8c62ba84d618", - "integer": 75, - "date": "Sat Nov 22 2003 15:26:15 GMT-0800 (PST)", - "shortText": "eu in consequat qui", - "mediumText": "Ullamco elit eu id excepteur incididunt Lorem ipsum pariatur laboris incididunt Lorem ullamco. Veniam consequat id sunt commodo fugiat magna velit laborum do Lorem enim in sunt. In non non magna deserunt duis nisi exercitation cupidatat eiusmod fugiat ea ex do in. Reprehenderit non consequat sit nostrud.", - "longText": "Dolor excepteur exercitation et ullamco. Non nulla duis qui cillum aliqua nostrud elit sunt dolor. Ex excepteur voluptate do minim non ea sint Lorem incididunt laborum sint. Officia elit labore reprehenderit proident. Laborum eiusmod occaecat eu nulla nisi voluptate. Dolor id in ullamco laborum ut ea est laborum adipisicing tempor et. Incididunt laborum consequat quis anim proident irure amet do.\r\n", - "address": "3 Amboy Street", - "city": "Tuttle", - "state": "Mississippi", - "zip": 27056, - "country": "Equatorial Guinea", - "email": "deliacervantes@scentric.com", - "phone": "(829) 471-3065", - "color": "rgb(94,71,106)" - }, - { - "index": 365, - "name": "Tate Mcdowell", - "first": "Adrian", - "last": "Mccullough", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/elliotpopel/73.jpg", - "boolean": false, - "guid": "9e89b9c6-cf38-4f45-99ed-c7f3f5623d7c", - "integer": 86, - "date": "Sat Jul 23 1977 13:14:21 GMT-0700 (PDT)", - "shortText": "exercitation", - "mediumText": "In non excepteur est ex sunt laborum commodo esse ex. Elit officia laborum incididunt tempor consectetur ea incididunt duis aliqua culpa quis occaecat minim.", - "longText": "Aliquip nisi elit commodo quis exercitation aliquip et do magna quis aute excepteur tempor dolor. Laborum deserunt ullamco aute velit fugiat non labore aliquip. Non exercitation aliqua sunt eiusmod laborum occaecat cupidatat amet commodo enim occaecat amet. Duis laboris labore enim dolor nisi deserunt id cupidatat id. Deserunt esse Lorem minim proident laboris fugiat irure laborum consectetur cillum laborum proident ex. Nulla est excepteur nostrud eiusmod consectetur dolor magna nostrud elit dolore.\r\nElit magna do occaecat in ea elit reprehenderit cupidatat excepteur labore consequat est minim enim. Laborum culpa id commodo esse elit nulla. Irure nulla aliquip adipisicing deserunt nisi ut duis sint. Duis culpa id ex duis incididunt irure nostrud excepteur.\r\nDolor cillum nisi eiusmod ea Lorem sint. Aute duis proident aute in aliquip. Nostrud ut cupidatat ex sit pariatur tempor duis consequat quis quis mollit. Ullamco nostrud id consequat ut. Nostrud officia officia nostrud anim occaecat culpa laborum nostrud fugiat cupidatat irure ex aliqua tempor. Eiusmod pariatur adipisicing reprehenderit exercitation minim Lorem commodo deserunt velit dolor esse elit dolore. Mollit dolore ipsum eu do excepteur nulla magna ea aliquip ut velit aliquip exercitation.\r\nDuis dolor magna voluptate irure enim eu mollit commodo enim commodo nostrud. Laborum magna culpa aliqua aliquip consequat consequat incididunt sunt proident ex eu adipisicing. Sunt esse non exercitation excepteur quis quis fugiat. Qui anim sint nisi proident non quis cillum magna. Ipsum amet veniam anim esse sint et occaecat occaecat in.\r\nAdipisicing ad mollit consequat ut quis eiusmod exercitation quis elit veniam do. Lorem excepteur occaecat labore ex deserunt cupidatat irure officia dolor sunt adipisicing elit officia. Laboris labore aliqua aliqua dolore Lorem laboris ipsum in. Irure ut mollit adipisicing incididunt magna.\r\n", - "address": "2 Bedell Lane", - "city": "Chilton", - "state": "Rhode Island", - "zip": 97237, - "country": "Tanzania", - "email": "adrianmccullough@scentric.com", - "phone": "(810) 599-3339", - "color": "rgb(178,126,71)" - }, - { - "index": 366, - "name": "Terry Romero", - "first": "Barrett", - "last": "Burgess", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/diesellaws/73.jpg", - "boolean": true, - "guid": "f92c32bc-6e74-46d1-85b4-49fefcf41773", - "integer": 59, - "date": "Thu Mar 25 2004 20:56:10 GMT-0800 (PST)", - "shortText": "amet ex aliqua dolor", - "mediumText": "Ullamco mollit in excepteur et sit do ad nulla in ex. Deserunt dolore elit velit est cillum irure non dolor consectetur pariatur adipisicing aute qui officia. Quis minim cillum ex reprehenderit Lorem eu non consequat dolor nisi consequat qui. Ex do eu ad velit ad do ut dolor aliquip id. Aliqua ullamco elit cupidatat laborum laborum ut velit quis aliquip.", - "longText": "In duis aute elit nostrud sint ut veniam. Aute sunt tempor laborum et consectetur. Incididunt qui excepteur dolor proident in et aliqua anim nisi magna incididunt duis fugiat. Irure amet laboris excepteur consequat dolore est magna. Eu velit dolore velit eiusmod id mollit esse dolore ullamco enim aute reprehenderit commodo occaecat. Ea quis cillum cillum ea consequat dolor non ea aute ipsum.\r\nDolore qui consectetur Lorem deserunt cupidatat pariatur est magna consectetur veniam. Pariatur ullamco nostrud commodo cillum fugiat cillum id ipsum ad. Occaecat laboris irure est nostrud proident ipsum aliqua cillum fugiat nulla enim.\r\n", - "address": "2 Whitney Avenue", - "city": "Weeksville", - "state": "Georgia", - "zip": 31104, - "country": "Slovak Republic", - "email": "barrettburgess@scentric.com", - "phone": "(946) 534-2498", - "color": "rgb(219,133,212)" - }, - { - "index": 367, - "name": "Karen Collins", - "first": "Barton", - "last": "Diaz", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/juanpablob/73.jpg", - "boolean": true, - "guid": "98c26038-07d2-4135-bbd2-9a3f427c12e0", - "integer": 8, - "date": "Sat Sep 17 2005 00:39:48 GMT-0700 (PDT)", - "shortText": "aute aute nulla Lorem", - "mediumText": "Aliqua aliquip adipisicing veniam aliqua magna adipisicing dolor officia nisi nulla non voluptate ut.", - "longText": "Qui aliqua culpa sunt ea eu ipsum velit reprehenderit. Do eu veniam ad velit proident ea ea ut cupidatat elit sunt. Nisi cillum est tempor anim veniam. Sit nostrud exercitation veniam minim magna. Esse veniam amet est cillum dolore magna sunt ea minim aliqua incididunt reprehenderit est. Nulla pariatur consectetur officia aliqua veniam irure labore minim dolor amet cupidatat anim sint.\r\nCulpa id amet esse officia. Officia esse ex cillum velit. Cupidatat in in adipisicing exercitation deserunt. Amet id adipisicing ipsum deserunt.\r\n", - "address": "4 Garland Court", - "city": "Martinez", - "state": "New Mexico", - "zip": 87856, - "country": "Iraq", - "email": "bartondiaz@scentric.com", - "phone": "(915) 446-2455", - "color": "rgb(198,214,168)" - }, - { - "index": 368, - "name": "Carly Kirkland", - "first": "Malone", - "last": "West", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/whale/73.jpg", - "boolean": true, - "guid": "a0fe6dd2-da36-4fe8-9172-64d79b76016a", - "integer": 40, - "date": "Thu Sep 03 2009 05:16:20 GMT-0700 (PDT)", - "shortText": "dolor culpa", - "mediumText": "Incididunt nulla est do proident qui culpa ea non eu et velit.", - "longText": "Quis non exercitation in cupidatat ad. Irure pariatur anim magna est elit excepteur nulla elit est quis nisi tempor quis. Sint irure consectetur consequat nostrud. Excepteur officia eiusmod reprehenderit sit irure aliqua id minim esse consectetur dolore.\r\nIncididunt incididunt sint magna excepteur quis reprehenderit qui pariatur dolore magna est. Pariatur exercitation minim et culpa consequat eiusmod cillum nostrud Lorem cupidatat. Amet labore amet laborum qui qui id laborum. Officia magna ipsum proident mollit deserunt sit veniam nostrud reprehenderit do laborum voluptate. Excepteur laboris excepteur pariatur proident pariatur minim dolor. Fugiat veniam nostrud ut non duis fugiat ex culpa. Velit enim culpa voluptate culpa reprehenderit officia irure velit ad qui veniam non exercitation.\r\nLaborum fugiat ea ex sint. Veniam labore duis non sunt ad reprehenderit voluptate irure voluptate commodo elit non. Eiusmod labore elit magna irure dolor aliquip.\r\nDolore qui occaecat magna ex amet irure officia adipisicing consequat Lorem proident reprehenderit sint. Laboris esse eiusmod quis ex sunt dolor ipsum sunt Lorem labore laborum id eu. Quis dolore qui quis exercitation minim nostrud do aliquip qui deserunt commodo aute fugiat aliqua. Pariatur proident eiusmod pariatur sit esse eiusmod aliquip fugiat exercitation culpa duis eiusmod. Mollit pariatur commodo ex qui et incididunt.\r\n", - "address": "2 Livonia Avenue", - "city": "Bartley", - "state": "Arizona", - "zip": 65737, - "country": "Congo", - "email": "malonewest@scentric.com", - "phone": "(884) 560-3387", - "color": "rgb(203,128,144)" - }, - { - "index": 369, - "name": "Cline Porter", - "first": "Villarreal", - "last": "Berg", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kalmerrautam/73.jpg", - "boolean": true, - "guid": "bc0ae406-a0b0-46b8-a78c-e814bf6e352a", - "integer": 34, - "date": "Sat Dec 17 2011 17:11:11 GMT-0800 (PST)", - "shortText": "aliquip", - "mediumText": "Sit eu exercitation deserunt fugiat sunt. Duis amet Lorem sint fugiat aliquip sint nisi nulla officia. Mollit magna esse magna mollit ex aliquip sit voluptate occaecat. Sint ea reprehenderit pariatur ut proident consequat tempor do irure.", - "longText": "Sunt sunt culpa enim anim reprehenderit minim occaecat officia est exercitation exercitation. Magna irure consequat aliquip nisi sint. Ad excepteur et exercitation consectetur. Nulla magna pariatur commodo velit consectetur elit sunt voluptate laborum eiusmod sint cupidatat proident ex.\r\nConsectetur minim aute in eu tempor enim laboris deserunt. Proident laboris fugiat cupidatat ullamco ex. Laboris et eu qui tempor nisi non anim magna sunt est commodo qui et. In sint eu quis ea. Adipisicing ad nisi non mollit officia elit. Reprehenderit veniam aute consequat qui aliqua incididunt.\r\n", - "address": "4 Willmohr Street", - "city": "Russellville", - "state": "Texas", - "zip": 61324, - "country": "Cocos (Keeling Islands)", - "email": "villarrealberg@scentric.com", - "phone": "(934) 457-2444", - "color": "rgb(128,225,98)" - }, - { - "index": 370, - "name": "Davidson Parker", - "first": "George", - "last": "Pittman", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nicoleglynn/73.jpg", - "boolean": true, - "guid": "4d0d0e84-953f-4ab2-819d-ae72aa4552f7", - "integer": 2, - "date": "Sat Jun 23 1979 15:10:33 GMT-0700 (PDT)", - "shortText": "adipisicing Lorem", - "mediumText": "Est ullamco qui est cupidatat magna velit cupidatat do sunt officia ad.", - "longText": "Velit enim nostrud et ut elit nostrud laboris mollit. Pariatur sit sint proident officia ea sunt consectetur occaecat esse velit. Nulla Lorem ad anim ut aute nostrud amet sit labore sint ullamco nisi ad.\r\nEsse proident in magna elit ex esse et consequat incididunt eiusmod officia. Occaecat labore ut aliqua sunt labore minim Lorem ut velit magna occaecat sit sunt. Commodo ut magna cillum minim.\r\nDolor cupidatat et ullamco velit elit labore. Sint dolore incididunt anim nisi aliquip. Ullamco id laboris cillum id enim cillum exercitation non.\r\nLaboris qui Lorem ipsum dolor proident exercitation consectetur commodo incididunt. Ad pariatur cillum et aute. Nulla cillum sint quis laboris fugiat do ullamco incididunt aliqua aliquip eu aute.\r\nLorem irure nisi magna ex do voluptate tempor consequat. Aliquip dolore ullamco laboris reprehenderit Lorem elit. Dolor esse minim veniam eu ex reprehenderit. Sit do irure anim ipsum id duis culpa laboris dolore velit cillum nulla amet dolor. Exercitation enim proident ut aliqua culpa ipsum. Aute ad irure ipsum exercitation fugiat ut. Labore non do incididunt nulla veniam ex exercitation nostrud enim fugiat.\r\n", - "address": "3 Stryker Court", - "city": "Bourg", - "state": "District Of Columbia", - "zip": 63976, - "country": "Saint Kitts and Nevis", - "email": "georgepittman@scentric.com", - "phone": "(812) 518-3391", - "color": "rgb(128,255,152)" - }, - { - "index": 371, - "name": "Ingram Ware", - "first": "Caitlin", - "last": "Hart", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/rickdt/73.jpg", - "boolean": true, - "guid": "b6de624e-cbfa-436a-9fcb-b5d584616793", - "integer": 24, - "date": "Thu Feb 14 1974 18:30:07 GMT-0700 (PDT)", - "shortText": "tempor reprehenderit nulla quis", - "mediumText": "Qui id adipisicing do deserunt laboris anim. Eiusmod magna dolor labore fugiat aute amet commodo ad sit. Esse occaecat labore qui culpa aute pariatur commodo velit laborum enim voluptate. Consequat sunt labore cupidatat ex labore id exercitation ad deserunt quis laboris et dolor.", - "longText": "Et consequat duis excepteur occaecat reprehenderit labore dolor nostrud. Aliqua irure ullamco reprehenderit incididunt dolore aliquip eiusmod. Et et in commodo quis.\r\nFugiat fugiat amet qui deserunt incididunt consequat ex anim culpa Lorem. Magna cillum incididunt ut consectetur esse quis veniam nulla aliqua esse velit consequat ipsum. Veniam ut amet officia tempor aliquip ad ad ad commodo ut et. Ad esse mollit adipisicing adipisicing cillum.\r\nUllamco dolore ullamco adipisicing in duis enim eiusmod sit. Proident nisi nostrud ea ipsum. Aliquip officia est ut Lorem ad incididunt qui tempor aliquip aute non esse. Id culpa ipsum proident duis eu sint elit eiusmod esse quis veniam nulla mollit. Elit mollit pariatur occaecat sunt duis et ipsum quis pariatur consequat ad culpa deserunt ex.\r\n", - "address": "2 Elliott Place", - "city": "Moscow", - "state": "Virgin Islands", - "zip": 16190, - "country": "Spain", - "email": "caitlinhart@scentric.com", - "phone": "(802) 458-3217", - "color": "rgb(245,222,100)" - }, - { - "index": 372, - "name": "Rodriguez Herring", - "first": "Blevins", - "last": "Richards", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/funwatercat/73.jpg", - "boolean": false, - "guid": "16027d94-5563-418b-b92e-879c2bfe66a2", - "integer": 27, - "date": "Thu Aug 04 1977 16:52:59 GMT-0700 (PDT)", - "shortText": "ea incididunt commodo", - "mediumText": "Fugiat culpa duis velit ullamco cupidatat esse pariatur deserunt laborum. Irure nostrud nulla culpa cupidatat est quis sunt veniam culpa. Aliqua anim mollit nulla aliquip quis dolore irure aliquip non est.", - "longText": "Anim laborum aliquip et culpa mollit eiusmod laboris. Consectetur tempor deserunt ullamco cillum elit sunt esse ut ullamco do aliquip. Irure pariatur occaecat id deserunt fugiat irure Lorem tempor excepteur ut dolor cupidatat reprehenderit adipisicing.\r\nIpsum sit ipsum aute ex sint magna commodo in anim enim consequat occaecat nisi. Qui do pariatur do ea. Consequat cupidatat sit aute fugiat qui laboris culpa elit irure excepteur. Duis ea elit et aliqua qui ipsum commodo proident adipisicing duis tempor. Duis ad nulla dolore minim anim dolore aute amet tempor.\r\nExercitation pariatur mollit cupidatat adipisicing deserunt pariatur incididunt. Sit deserunt consequat nisi do irure et duis quis. Cupidatat ea et ut velit ullamco ad dolore fugiat voluptate cillum.\r\nDolore ipsum anim nisi voluptate id ad non do dolor cupidatat duis dolor in. Excepteur esse aliquip ex dolor aute adipisicing duis dolore. Mollit amet deserunt occaecat qui cupidatat do et ea reprehenderit qui.\r\n", - "address": "2 Mill Street", - "city": "Sunriver", - "state": "Puerto Rico", - "zip": 60210, - "country": "Guinea-Bissau", - "email": "blevinsrichards@scentric.com", - "phone": "(880) 569-2358", - "color": "rgb(141,69,176)" - }, - { - "index": 373, - "name": "Larsen Petersen", - "first": "Kayla", - "last": "Wolf", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ssiskind/73.jpg", - "boolean": false, - "guid": "a7e99e07-e0c7-499a-a66b-a5b931143a55", - "integer": 25, - "date": "Fri Nov 24 1995 21:45:58 GMT-0800 (PST)", - "shortText": "elit exercitation", - "mediumText": "Minim in laboris culpa cupidatat ea nostrud sunt id dolore officia ea ipsum sit.", - "longText": "Id amet fugiat voluptate labore ea. Velit fugiat qui magna cillum ullamco duis eu qui pariatur. Do laboris irure nulla id. Minim enim commodo non ut sint. Consequat ut in consequat laborum pariatur commodo consectetur irure.\r\nDolor in aute mollit anim. Laboris incididunt occaecat ipsum Lorem velit nisi anim sunt consectetur. Occaecat aliquip ex irure adipisicing. Culpa elit dolore deserunt nisi. Laboris quis nulla in incididunt culpa proident culpa Lorem ea. Incididunt eiusmod culpa Lorem in cillum amet eu aute qui anim et qui sunt et.\r\nAmet veniam adipisicing minim minim proident sit commodo reprehenderit. Duis consequat do ex mollit minim consectetur. Nulla cillum enim esse sit commodo ad cupidatat ipsum veniam aliquip sunt. Ut dolore ullamco velit est minim laboris incididunt consequat.\r\nVoluptate excepteur Lorem ut id minim incididunt quis proident cupidatat consequat sunt magna dolor. Nostrud aliqua laborum exercitation dolor Lorem. Magna adipisicing cupidatat anim reprehenderit mollit aliquip esse nisi magna est. Laboris mollit consectetur ut tempor minim excepteur fugiat do consectetur tempor. Enim fugiat tempor labore occaecat elit est minim. Enim ex quis pariatur est eiusmod.\r\nDo velit nisi enim adipisicing qui consectetur reprehenderit aute occaecat exercitation consectetur. Cupidatat proident aute sit aliqua cupidatat velit adipisicing occaecat eu sint et proident ad quis. Qui laboris dolore id proident mollit labore aliqua sint aliquip. Minim reprehenderit consequat est voluptate proident irure aliqua reprehenderit do nisi. Nulla culpa culpa eu ea laborum minim ad culpa Lorem enim. Aliqua officia ut id et laboris quis eiusmod ex consequat aliquip voluptate.\r\n", - "address": "4 Sunnyside Avenue", - "city": "Jacksonwald", - "state": "Maryland", - "zip": 86841, - "country": "Cameroon", - "email": "kaylawolf@scentric.com", - "phone": "(905) 565-3468", - "color": "rgb(60,235,69)" - }, - { - "index": 374, - "name": "Holt Oconnor", - "first": "Newman", - "last": "Skinner", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/the_purplebunny/73.jpg", - "boolean": true, - "guid": "b20aa0b1-320a-4487-8af0-78e7cbf30443", - "integer": 29, - "date": "Sun Apr 26 1981 19:50:41 GMT-0700 (PDT)", - "shortText": "non duis elit", - "mediumText": "Esse fugiat ut incididunt fugiat minim enim sit. Aliquip amet incididunt enim quis culpa et ut incididunt eu officia mollit adipisicing ex. Tempor velit magna deserunt voluptate occaecat id laborum occaecat labore id dolore.", - "longText": "Ut deserunt ut minim consequat. Non aute commodo minim proident ex ex id. Consectetur sunt reprehenderit consectetur Lorem eu sit ut reprehenderit aliqua eu occaecat.\r\nEiusmod occaecat dolor mollit adipisicing aute enim do. Aliqua ut sit tempor velit sunt. Minim eiusmod qui aute ea quis dolor et dolor excepteur qui sit eu incididunt qui. Ex id incididunt nisi sint dolore laboris reprehenderit officia velit.\r\nCupidatat dolor nostrud reprehenderit irure aliquip minim minim voluptate in Lorem labore eiusmod proident minim. Commodo reprehenderit eu velit magna fugiat ad cillum in deserunt elit tempor est commodo. Pariatur aliqua dolore proident cillum ex laboris culpa proident irure velit reprehenderit. Irure sit ad ipsum mollit ex. Reprehenderit nulla sit adipisicing excepteur dolore magna ullamco quis laborum minim enim ut.\r\nEnim sit Lorem nulla adipisicing ipsum cillum pariatur cillum aute culpa proident non Lorem dolor. Ea cupidatat anim labore duis nisi et ex id proident tempor. Qui sunt est aliqua in non do ea fugiat. Aute aliqua consectetur sunt culpa nisi sunt. Ipsum nulla quis ad ut elit proident ad culpa deserunt enim elit ea. Ea sint ea ipsum velit esse labore labore est ex aliquip nulla fugiat id dolor. Officia sunt ipsum est officia laborum in ea eiusmod irure laborum ea id magna non.\r\nAliquip nostrud nisi dolor aliquip commodo. Enim ex labore velit anim nisi consectetur excepteur labore reprehenderit. Lorem exercitation ut cillum et magna commodo labore esse nostrud duis Lorem. Cillum incididunt deserunt eu in cupidatat. Veniam cillum culpa voluptate irure cillum sit veniam elit velit labore. Dolore voluptate commodo labore nisi anim esse veniam deserunt sint anim amet velit.\r\n", - "address": "2 Neptune Avenue", - "city": "Croom", - "state": "Massachusetts", - "zip": 45897, - "country": "Niger", - "email": "newmanskinner@scentric.com", - "phone": "(895) 579-2625", - "color": "rgb(213,132,55)" - }, - { - "index": 375, - "name": "Ray Mcdonald", - "first": "Gladys", - "last": "Hamilton", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/linkthief/73.jpg", - "boolean": true, - "guid": "129213d5-185b-462e-9d98-ec5d7ebbf584", - "integer": 29, - "date": "Fri Oct 24 2008 13:24:33 GMT-0700 (PDT)", - "shortText": "sit in", - "mediumText": "Sit ut sit ut ullamco pariatur.", - "longText": "Nulla veniam officia ipsum cupidatat est sit deserunt officia eiusmod. Ut aliquip mollit sint qui do laborum esse id. Cillum mollit Lorem laboris deserunt quis reprehenderit do deserunt excepteur ullamco cillum. Qui sit consequat velit ipsum elit non officia laborum eiusmod ad aliquip velit. Minim consectetur reprehenderit nisi irure ullamco occaecat ipsum.\r\nEu fugiat do in ad dolore reprehenderit aute ullamco sit non. Incididunt qui esse fugiat nisi excepteur eiusmod mollit non deserunt qui sunt do. Velit deserunt ex culpa sunt ipsum elit veniam aute. Dolor occaecat officia eiusmod sint sint non aute consectetur quis ea.\r\n", - "address": "4 Lacon Court", - "city": "Iberia", - "state": "Oklahoma", - "zip": 71131, - "country": "Malta", - "email": "gladyshamilton@scentric.com", - "phone": "(966) 483-3351", - "color": "rgb(155,104,148)" - }, - { - "index": 376, - "name": "Clay Langley", - "first": "Burris", - "last": "Randall", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ffbel/73.jpg", - "boolean": true, - "guid": "51f80793-c017-41ad-9079-d752d4d47d9e", - "integer": 53, - "date": "Mon Jun 07 1982 18:22:42 GMT-0700 (PDT)", - "shortText": "elit", - "mediumText": "Irure in cillum eiusmod do laboris. Magna sit consectetur elit quis dolore quis ea esse. Minim velit adipisicing consequat mollit veniam. Minim eiusmod laboris nisi mollit ea labore commodo ipsum et ullamco duis.", - "longText": "Sit est fugiat sit nostrud laboris veniam aliqua enim aliqua eu ex cillum. Incididunt occaecat minim consectetur duis eiusmod. Pariatur laborum nostrud dolore minim excepteur sunt pariatur aute. Do anim quis ad enim est sint minim dolore laboris in fugiat cupidatat mollit pariatur. Ipsum est dolor aliqua aute. Sunt proident duis pariatur qui veniam sunt. Ea anim consequat nostrud reprehenderit ea ad non.\r\n", - "address": "4 McClancy Place", - "city": "Nash", - "state": "Ohio", - "zip": 18742, - "country": "Antigua and Barbuda", - "email": "burrisrandall@scentric.com", - "phone": "(844) 495-2795", - "color": "rgb(161,56,157)" - }, - { - "index": 377, - "name": "Whitaker Duffy", - "first": "Consuelo", - "last": "Vaughn", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/labibjaffar/73.jpg", - "boolean": false, - "guid": "d79e9e47-4d77-47c0-9b13-a19147d76339", - "integer": 69, - "date": "Tue Apr 18 1989 16:24:01 GMT-0700 (PDT)", - "shortText": "adipisicing", - "mediumText": "Cillum mollit amet fugiat aliquip proident. Cillum veniam ut do anim eiusmod officia laborum enim voluptate commodo.", - "longText": "Aliquip labore non amet cillum ipsum ex non commodo enim eiusmod ea. Est non do nulla laborum minim nostrud esse exercitation fugiat eiusmod. Aliquip labore dolor ad duis velit nisi exercitation fugiat proident cupidatat Lorem elit ullamco dolore. Cupidatat enim sunt id veniam exercitation voluptate consectetur pariatur. Irure labore tempor sint adipisicing nisi anim. Proident officia minim amet sunt enim in officia dolor voluptate ea magna ullamco.\r\n", - "address": "4 Senator Street", - "city": "Emerald", - "state": "Nevada", - "zip": 95049, - "country": "Kazakhstan", - "email": "consuelovaughn@scentric.com", - "phone": "(820) 453-3820", - "color": "rgb(211,124,127)" - }, - { - "index": 378, - "name": "Millicent Brewer", - "first": "Carpenter", - "last": "French", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tnrzdmr/73.jpg", - "boolean": true, - "guid": "fc81e8c8-56bf-4cc7-9a99-bc5e5336cc44", - "integer": 10, - "date": "Mon Dec 20 2004 03:29:39 GMT-0800 (PST)", - "shortText": "cillum elit dolore id", - "mediumText": "Consectetur laboris velit culpa nisi est nostrud ea laboris et. Voluptate incididunt qui cillum velit occaecat nisi deserunt. Ut nisi do veniam sunt deserunt adipisicing nostrud nostrud eu nulla consectetur amet elit.", - "longText": "Enim aliquip ipsum voluptate ut adipisicing anim dolor. Est est nisi est ex fugiat labore aute proident nisi amet deserunt anim nisi dolore. Eiusmod elit Lorem et officia cillum in proident cillum sint do. Laboris dolore ad cupidatat anim et eu.\r\nIn aute eiusmod esse commodo officia culpa Lorem quis laboris. Ipsum pariatur pariatur dolore amet ipsum amet ex laboris laboris. Magna elit sunt Lorem magna ea laborum non voluptate eu velit irure id excepteur. Adipisicing non pariatur culpa sit tempor ea anim officia aute. Magna eu cupidatat sint nostrud veniam sunt irure non. Lorem mollit eiusmod ea magna qui consectetur quis aliqua nulla nulla. Ipsum deserunt cupidatat irure fugiat et commodo ut.\r\nVelit anim eiusmod Lorem incididunt id deserunt mollit voluptate. Commodo id excepteur id occaecat sit. Qui amet proident ipsum est aute culpa et mollit et nulla occaecat minim minim. Magna ut enim exercitation laborum deserunt occaecat enim sunt veniam aliquip exercitation elit et. Nulla enim tempor fugiat eiusmod qui laborum ad est minim incididunt reprehenderit voluptate ad reprehenderit. Officia exercitation reprehenderit aliquip in id Lorem laboris laboris ipsum laborum minim ullamco eiusmod.\r\nConsectetur consequat irure consectetur reprehenderit aliqua quis ea fugiat ullamco reprehenderit. Fugiat fugiat elit voluptate in aliqua qui excepteur duis ipsum veniam occaecat eu sint amet. Aliquip deserunt ea ipsum ea pariatur in magna dolore voluptate.\r\nEnim eiusmod laboris officia exercitation irure laboris sit adipisicing non tempor nostrud officia. Quis ut esse deserunt qui laborum do velit eu amet dolore. Consequat adipisicing nulla officia ipsum veniam eiusmod. Occaecat deserunt veniam tempor sint labore nisi irure. Ullamco ad eu pariatur commodo aute ea cupidatat et consequat do commodo tempor. Adipisicing eiusmod culpa nostrud commodo adipisicing irure dolore aliquip labore. Ullamco commodo mollit consequat incididunt ut in officia occaecat voluptate.\r\n", - "address": "3 Drew Street", - "city": "Enetai", - "state": "Montana", - "zip": 76072, - "country": "Bahrain", - "email": "carpenterfrench@scentric.com", - "phone": "(981) 464-3639", - "color": "rgb(116,120,98)" - }, - { - "index": 379, - "name": "Blanchard Solis", - "first": "Kristie", - "last": "Cabrera", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/jeremyjantz/73.jpg", - "boolean": false, - "guid": "c2c84ffa-4a75-48e1-998f-924681ab4240", - "integer": 1, - "date": "Sat Jul 09 1988 08:58:08 GMT-0700 (PDT)", - "shortText": "excepteur velit quis dolore amet", - "mediumText": "Culpa magna fugiat est consequat deserunt elit eiusmod ullamco. Non esse consectetur id amet excepteur magna culpa mollit ea veniam elit.", - "longText": "Nulla et laboris qui aute commodo sunt enim occaecat ad eu. Enim eu consequat in id irure minim. Id pariatur commodo duis ea aute deserunt. Cillum consequat ea nostrud cillum proident.\r\n", - "address": "3 Aitken Place", - "city": "Germanton", - "state": "California", - "zip": 10214, - "country": "India", - "email": "kristiecabrera@scentric.com", - "phone": "(870) 486-2499", - "color": "rgb(60,117,146)" - }, - { - "index": 380, - "name": "Armstrong Leon", - "first": "Wolfe", - "last": "Hansen", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ibrahemaq/73.jpg", - "boolean": true, - "guid": "ae0fcdb0-49fc-4ff8-85f2-7414f67b99f6", - "integer": 60, - "date": "Fri Feb 27 1970 07:01:10 GMT-0800 (PST)", - "shortText": "velit", - "mediumText": "Laboris adipisicing consectetur qui do nostrud occaecat in consectetur sit. Esse nisi commodo voluptate magna eu nisi fugiat amet nostrud.", - "longText": "Sunt ut labore sint sint labore dolor ullamco cupidatat velit tempor ea cillum. Veniam sit ex dolor sint irure ut. Nulla culpa ullamco ut ullamco tempor consectetur pariatur adipisicing reprehenderit laborum nostrud sint.\r\nEnim nisi aliquip pariatur non laboris ea. Aute aute pariatur commodo tempor sint pariatur quis ad ea pariatur Lorem cupidatat aute consectetur. Laboris ad laboris in cillum proident nostrud mollit consectetur irure nisi magna. Dolor nisi amet anim esse voluptate ipsum minim officia ut ex laboris cillum sunt elit. Tempor quis ex ullamco pariatur officia. Ad excepteur enim ea laborum id officia aliquip cillum est. Do ut labore aliquip dolor sit commodo.\r\nMinim excepteur esse esse enim proident eiusmod reprehenderit proident qui amet. Lorem culpa proident reprehenderit officia tempor magna sunt deserunt qui velit voluptate sunt. Ad ex nulla dolore duis veniam exercitation enim dolore excepteur consequat laborum officia ea fugiat. Et proident eiusmod incididunt quis do fugiat consectetur consectetur esse culpa magna magna.\r\nIn excepteur eu esse duis et excepteur. Qui incididunt eu dolore tempor pariatur occaecat. Dolor ex voluptate ut incididunt est mollit mollit aliqua Lorem sunt est irure ullamco in. Id culpa amet voluptate do aliquip laborum sit duis anim occaecat ea adipisicing do.\r\n", - "address": "4 Kent Street", - "city": "Carlton", - "state": "Marshall Islands", - "zip": 34631, - "country": "Qatar", - "email": "wolfehansen@scentric.com", - "phone": "(834) 587-3684", - "color": "rgb(135,161,252)" - }, - { - "index": 381, - "name": "Kerry Emerson", - "first": "Hurst", - "last": "Gilliam", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/croakx/73.jpg", - "boolean": false, - "guid": "454852cf-301c-42cc-88a5-fef2dce8ac2d", - "integer": 54, - "date": "Mon Jan 15 1990 07:32:08 GMT-0800 (PST)", - "shortText": "amet ullamco", - "mediumText": "Sunt tempor irure nulla do esse aliqua. Velit fugiat incididunt aliqua voluptate nisi qui ut.", - "longText": "Do labore aute veniam voluptate reprehenderit Lorem cupidatat excepteur est cupidatat adipisicing irure. Veniam consectetur fugiat esse et. Excepteur magna dolore duis ea occaecat. Voluptate occaecat id occaecat velit nostrud.\r\nFugiat sint eiusmod reprehenderit magna consequat esse. Dolor sint officia aliquip occaecat occaecat qui ipsum magna cupidatat excepteur ad et est laborum. Ut consectetur ex proident elit.\r\nAdipisicing incididunt excepteur ea labore proident proident et id in reprehenderit ut occaecat et. Et aliquip incididunt enim ea enim ea minim ut eiusmod. Velit mollit sunt voluptate laboris aliquip incididunt. Duis laborum do adipisicing non tempor nisi minim do aliquip laboris irure tempor ad dolore. Aliqua amet adipisicing eu Lorem esse fugiat fugiat velit.\r\nSunt irure ex reprehenderit nostrud minim magna. Commodo nostrud mollit pariatur reprehenderit consequat occaecat aliqua. Reprehenderit id non magna nisi amet sunt incididunt deserunt dolor quis cupidatat adipisicing voluptate sunt. Tempor proident magna amet culpa est est. Mollit sint eiusmod reprehenderit est. Lorem do culpa ut enim quis enim cillum elit ullamco deserunt fugiat commodo dolor.\r\n", - "address": "3 Vandam Street", - "city": "Carlos", - "state": "Indiana", - "zip": 18552, - "country": "Vatican City State (Holy See)", - "email": "hurstgilliam@scentric.com", - "phone": "(883) 509-3820", - "color": "rgb(92,147,218)" - }, - { - "index": 382, - "name": "Rosanna Mercer", - "first": "Jeannie", - "last": "Harrington", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_dukex/73.jpg", - "boolean": true, - "guid": "81b02f40-06df-4e1f-bb59-400a488d75c1", - "integer": 9, - "date": "Thu Apr 29 1982 09:20:09 GMT-0700 (PDT)", - "shortText": "velit exercitation laborum excepteur nulla", - "mediumText": "Lorem minim consequat sunt eu commodo. Irure occaecat do irure ex dolore. Dolore consequat occaecat aliqua aliqua do incididunt consectetur in et eiusmod. Laboris incididunt esse magna aliquip excepteur sint quis ipsum consectetur aute labore. Et non consequat reprehenderit ipsum incididunt nisi do.", - "longText": "Dolor esse nostrud in culpa. Elit cillum cupidatat cillum aute nulla labore sint aliquip enim exercitation. Nulla do tempor labore sit adipisicing. Ex sint deserunt in pariatur veniam. Ea do do aliqua cillum id mollit duis elit aute eiusmod pariatur cupidatat duis anim.\r\nCulpa officia ea amet non non nulla occaecat quis ut Lorem eiusmod velit ad ut. Ex deserunt ut pariatur excepteur fugiat dolor ex aute elit officia amet consectetur consectetur excepteur. Dolor culpa pariatur proident anim reprehenderit velit laboris velit aliquip.\r\nSit velit amet laboris incididunt qui excepteur irure excepteur. Nulla adipisicing pariatur enim nisi. Dolore ea veniam adipisicing mollit eiusmod. Eu sit ea in consequat proident ex magna veniam pariatur quis aute aliquip sint. Ullamco irure nisi anim tempor.\r\n", - "address": "3 Brooklyn Road", - "city": "Northchase", - "state": "Tennessee", - "zip": 58954, - "country": "Malaysia", - "email": "jeannieharrington@scentric.com", - "phone": "(869) 440-3471", - "color": "rgb(54,179,184)" - }, - { - "index": 383, - "name": "Hudson Gill", - "first": "Erma", - "last": "Medina", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gregsqueeb/73.jpg", - "boolean": true, - "guid": "5cc52dab-f9b6-4d23-9718-12faaca42aaa", - "integer": 29, - "date": "Fri Nov 07 1975 23:03:48 GMT-0800 (PST)", - "shortText": "elit consequat", - "mediumText": "Exercitation aliqua fugiat Lorem fugiat amet est elit. Incididunt voluptate sunt sint ut veniam. Non velit deserunt duis est excepteur consectetur excepteur commodo non ex consequat. Non et ullamco ipsum eiusmod.", - "longText": "Sint ea duis commodo sunt elit ut nulla. Tempor consectetur id aliqua voluptate. Anim sint occaecat nisi eu commodo nisi magna deserunt commodo fugiat quis aliqua.\r\nEiusmod aliquip incididunt dolore elit et fugiat in ex. Qui cupidatat duis tempor amet aute. Nulla et cillum culpa irure consequat sit exercitation ex quis ex. Qui sit ipsum non laboris esse cupidatat eu excepteur. Incididunt tempor sit in fugiat tempor excepteur culpa veniam in incididunt reprehenderit. Ad quis enim cillum quis anim.\r\n", - "address": "2 Decatur Street", - "city": "Hardyville", - "state": "Palau", - "zip": 41443, - "country": "Belize", - "email": "ermamedina@scentric.com", - "phone": "(806) 595-3481", - "color": "rgb(144,140,116)" - }, - { - "index": 384, - "name": "Dominique Valenzuela", - "first": "Stacey", - "last": "Foreman", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/csmnng/73.jpg", - "boolean": true, - "guid": "11147a9a-0058-436d-96c3-f7ae0639677c", - "integer": 82, - "date": "Sat Jul 25 1992 11:14:15 GMT-0700 (PDT)", - "shortText": "excepteur", - "mediumText": "Enim aliqua aute nostrud ad veniam eiusmod Lorem occaecat sit magna aliqua. Ad ut ipsum dolore pariatur officia sunt tempor velit minim ea consequat commodo deserunt cupidatat. Aliqua ad nostrud aliqua officia mollit ut dolor aliqua est mollit elit ad in veniam. Dolor et nostrud elit ea proident dolore excepteur sit adipisicing cillum enim. Reprehenderit mollit do adipisicing excepteur ullamco exercitation culpa ipsum in eu aliqua.", - "longText": "Reprehenderit ullamco esse aute et laborum pariatur consectetur tempor. Consequat eiusmod fugiat commodo incididunt laborum. Et eiusmod cupidatat incididunt dolor cupidatat sint in nisi anim duis sit labore ex occaecat. Excepteur ipsum officia ut qui ad tempor eu ad cillum commodo.\r\nMagna quis nisi nostrud sint et eiusmod laborum laborum ut. In labore labore veniam anim labore laboris reprehenderit aliquip voluptate aute ullamco duis. Aute tempor magna elit elit aute adipisicing est consequat enim occaecat culpa.\r\nIn aliqua adipisicing aliquip do consequat ipsum Lorem. Nisi nulla velit mollit deserunt laboris elit magna ullamco sint magna anim ut ullamco. Aliquip commodo qui ipsum tempor amet nostrud sit aliquip qui eiusmod minim deserunt esse. Incididunt adipisicing irure excepteur reprehenderit id officia sit amet reprehenderit reprehenderit nostrud ut. Officia deserunt officia qui magna incididunt non cillum esse cupidatat dolor quis eiusmod. Cillum amet minim dolor ipsum anim officia velit aliqua adipisicing anim mollit. Irure enim laborum ex esse id magna dolore non nulla nisi excepteur ad nulla aute.\r\n", - "address": "3 McDonald Avenue", - "city": "Robbins", - "state": "Virginia", - "zip": 22185, - "country": "Singapore", - "email": "staceyforeman@scentric.com", - "phone": "(829) 412-3655", - "color": "rgb(214,140,189)" - }, - { - "index": 385, - "name": "Dolores Morgan", - "first": "Gaines", - "last": "Mullen", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ogmenemre/73.jpg", - "boolean": false, - "guid": "ee76f873-95bb-4f4d-84fd-c7313d26386b", - "integer": 51, - "date": "Mon Feb 22 1999 15:26:58 GMT-0800 (PST)", - "shortText": "officia proident", - "mediumText": "Aliquip proident ad incididunt veniam.", - "longText": "Esse excepteur ex sunt id sit laborum. Ut ea qui esse esse qui aliqua ut ex in. Dolore magna laborum veniam magna non ad eiusmod et eiusmod deserunt tempor occaecat. Eiusmod voluptate ut do non. Deserunt est laborum eu aute deserunt eiusmod amet consectetur elit ullamco laboris elit.\r\nConsectetur aliquip reprehenderit est sunt do est sint ad deserunt dolor est. Pariatur id Lorem nostrud elit proident in nulla anim. Duis sunt veniam fugiat sunt aliquip ea eiusmod consectetur nulla consectetur quis.\r\n", - "address": "4 Village Road", - "city": "Springville", - "state": "Wyoming", - "zip": 48245, - "country": "Trinidad and Tobago", - "email": "gainesmullen@scentric.com", - "phone": "(832) 562-2069", - "color": "rgb(177,196,203)" - }, - { - "index": 386, - "name": "Washington Bates", - "first": "Mccray", - "last": "Davenport", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ionutmaxim/73.jpg", - "boolean": false, - "guid": "97224884-727c-4a89-b596-60fbca7914a7", - "integer": 34, - "date": "Thu Nov 13 1980 22:28:43 GMT-0800 (PST)", - "shortText": "enim nostrud", - "mediumText": "Sunt fugiat esse ad sint sint duis ex tempor enim excepteur ullamco. Dolor ipsum occaecat laborum enim. Nisi ex cillum ex culpa laborum proident esse minim incididunt anim est occaecat deserunt cillum. Excepteur aliqua dolore duis do non adipisicing anim excepteur. Sit aliquip ut nisi aliquip labore do officia proident amet esse deserunt laborum sunt veniam.", - "longText": "Aute magna amet irure mollit ex. Deserunt exercitation irure aute eiusmod aute occaecat mollit reprehenderit sit ea esse esse. Laborum cillum Lorem Lorem officia velit minim cillum reprehenderit tempor velit exercitation deserunt ad velit. Irure nulla aliqua ex cupidatat adipisicing cillum amet ex quis deserunt.\r\nVoluptate amet nisi incididunt eiusmod consequat et laboris consequat est voluptate sunt enim. Adipisicing nostrud pariatur aute commodo minim veniam. Anim mollit velit esse cupidatat aliquip exercitation est id est. Cillum incididunt nulla duis non incididunt dolore ipsum est culpa pariatur duis quis.\r\nAd commodo laborum ex voluptate commodo non fugiat ut. Id labore quis aute eiusmod deserunt cupidatat. Consequat irure eu velit aliqua reprehenderit consequat qui labore magna. Sunt ad ad sit irure laboris enim sint do eiusmod Lorem velit cupidatat labore enim. Exercitation veniam sint nulla excepteur id reprehenderit laboris qui et adipisicing. Anim occaecat duis cupidatat dolore labore id duis ad ipsum do.\r\nCulpa fugiat minim cupidatat nisi occaecat reprehenderit sit. Ipsum laboris incididunt tempor irure adipisicing veniam. Nisi laborum cupidatat anim quis fugiat velit ea ad commodo cupidatat. Aliquip esse eu deserunt sint.\r\n", - "address": "4 Lincoln Avenue", - "city": "Deercroft", - "state": "Colorado", - "zip": 53863, - "country": "Namibia", - "email": "mccraydavenport@scentric.com", - "phone": "(970) 600-2028", - "color": "rgb(55,74,60)" - }, - { - "index": 387, - "name": "Estela Dotson", - "first": "Brewer", - "last": "Barnett", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/teylorfeliz/73.jpg", - "boolean": false, - "guid": "ec7da2db-8a36-430c-bb60-68be4ca38e6f", - "integer": 50, - "date": "Tue Sep 10 1985 22:13:34 GMT-0700 (PDT)", - "shortText": "pariatur do deserunt enim velit", - "mediumText": "Nulla consequat incididunt sint do. Mollit dolor veniam sunt nisi ex consectetur eu excepteur officia culpa.", - "longText": "Veniam proident laboris fugiat id. Ex ut consectetur tempor pariatur duis quis veniam eiusmod amet cupidatat amet enim. Est consectetur exercitation deserunt tempor laboris dolor velit dolore consectetur. Amet anim excepteur sunt sunt ut exercitation minim. Cillum velit aliqua enim magna sunt cillum exercitation esse.\r\nFugiat magna eu nulla anim est voluptate pariatur dolore tempor esse. Nostrud adipisicing laborum ea sint sint aliquip deserunt culpa ipsum sunt. Dolor deserunt ex quis duis dolor sint labore. Et tempor eu cillum est aliqua non. Proident dolore irure est labore duis. Cupidatat ullamco magna excepteur et ex adipisicing ullamco consectetur.\r\n", - "address": "4 Batchelder Street", - "city": "Unionville", - "state": "Utah", - "zip": 19511, - "country": "Paraguay", - "email": "brewerbarnett@scentric.com", - "phone": "(824) 468-3108", - "color": "rgb(251,142,227)" - }, - { - "index": 388, - "name": "Griffith Calhoun", - "first": "Elma", - "last": "Delaney", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/linux29/73.jpg", - "boolean": false, - "guid": "bcdb801c-da6b-4e33-8b60-cb63d7391110", - "integer": 26, - "date": "Thu Oct 07 2004 12:09:01 GMT-0700 (PDT)", - "shortText": "incididunt commodo est", - "mediumText": "Ullamco aliqua excepteur nisi veniam dolor veniam excepteur aute est. Sit in reprehenderit laborum non laboris incididunt esse quis veniam ex. In sit laboris enim ex mollit. Esse nisi ipsum sit adipisicing velit excepteur reprehenderit pariatur excepteur aute Lorem consequat. Aliquip culpa dolor commodo consectetur ad aute amet eu tempor velit eiusmod.", - "longText": "Do velit in aliqua id eu occaecat duis ex officia amet. Aliquip consectetur fugiat quis labore. Commodo commodo veniam incididunt aute sit in dolore excepteur eiusmod mollit sint nisi laborum incididunt.\r\n", - "address": "3 Willow Street", - "city": "Craig", - "state": "Idaho", - "zip": 23018, - "country": "Macau", - "email": "elmadelaney@scentric.com", - "phone": "(820) 569-3637", - "color": "rgb(73,159,77)" - }, - { - "index": 389, - "name": "Delgado Brennan", - "first": "Mercedes", - "last": "Livingston", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/S0ufi4n3/73.jpg", - "boolean": true, - "guid": "f39cc1c7-24fe-4b1d-a1ae-3a5b625510ee", - "integer": 14, - "date": "Wed May 28 2008 07:59:57 GMT-0700 (PDT)", - "shortText": "sint", - "mediumText": "Sit et labore aute exercitation cupidatat deserunt proident proident et ad occaecat. Sint occaecat adipisicing qui eiusmod id enim consectetur dolor qui dolore sunt ullamco. Laboris ex ad ad nostrud nisi laborum est sint occaecat elit. Ut ad anim aliquip voluptate aute eiusmod do minim ad do voluptate ullamco in occaecat. Irure deserunt culpa dolor consectetur eu ad magna officia nostrud ea.", - "longText": "Ex id adipisicing non ipsum sint tempor in anim. Fugiat consequat culpa dolor eu non sint quis velit nulla voluptate. Et commodo laborum laboris anim ut fugiat occaecat sunt pariatur. Commodo adipisicing cillum consectetur proident velit deserunt. Dolore veniam aute ipsum minim velit occaecat. Ut aute laborum quis in mollit. Quis labore sit sint elit deserunt nostrud deserunt elit ex cillum.\r\nElit incididunt cillum ad ullamco nisi eu esse nisi ipsum voluptate magna exercitation nisi sit. Adipisicing mollit dolore magna duis. Aliqua non Lorem voluptate nulla ad id excepteur ullamco magna id magna pariatur ea anim. Officia voluptate laborum reprehenderit consequat.\r\nMagna deserunt consequat dolor elit ullamco. Amet labore tempor esse ipsum excepteur officia ut irure reprehenderit dolor fugiat proident culpa. Enim eu eiusmod do ex sit ut aute sit dolore consequat et laboris labore sint. Elit elit laborum exercitation velit consectetur. Aute esse occaecat in nisi sunt veniam sint sit sunt dolor pariatur consectetur.\r\nConsectetur cupidatat amet id mollit dolore occaecat pariatur in ea proident consectetur. Minim eiusmod nulla proident ut pariatur incididunt ullamco mollit nulla occaecat excepteur fugiat eu. Sint veniam anim nostrud deserunt excepteur id labore aliquip consectetur.\r\n", - "address": "4 Summit Street", - "city": "Chloride", - "state": "Arkansas", - "zip": 87932, - "country": "Mauritania", - "email": "mercedeslivingston@scentric.com", - "phone": "(982) 574-2165", - "color": "rgb(166,233,208)" - }, - { - "index": 390, - "name": "Melanie Gilmore", - "first": "Michael", - "last": "Rodriquez", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nepdud/73.jpg", - "boolean": false, - "guid": "7505cfd7-3696-48c3-8cb0-20a4ddd83340", - "integer": 30, - "date": "Sun Dec 27 1992 18:33:54 GMT-0800 (PST)", - "shortText": "cupidatat est in excepteur dolor", - "mediumText": "Consectetur est Lorem do dolore reprehenderit irure. Culpa et aliquip nulla pariatur aute sit aliqua incididunt enim. Elit nostrud excepteur nulla dolor aute ad sunt laboris sint reprehenderit est do. Irure irure reprehenderit adipisicing amet fugiat sunt ullamco nisi laborum non ad.", - "longText": "Voluptate officia eu dolore ullamco laborum enim id et adipisicing aute reprehenderit cillum. Incididunt et deserunt mollit elit incididunt qui dolore quis. Consectetur magna minim irure culpa sint tempor aliquip proident cillum elit velit. Elit pariatur aliquip cillum id enim.\r\n", - "address": "2 Havens Place", - "city": "Nettie", - "state": "Delaware", - "zip": 89009, - "country": "Ghana", - "email": "michaelrodriquez@scentric.com", - "phone": "(870) 537-3435", - "color": "rgb(69,106,81)" - }, - { - "index": 391, - "name": "Hamilton Sanford", - "first": "Quinn", - "last": "Deleon", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/amir_hooseini/73.jpg", - "boolean": true, - "guid": "f4a9b5c2-7e54-4d86-ac2b-dd1367a2ddb7", - "integer": 84, - "date": "Mon Feb 27 2006 05:53:41 GMT-0800 (PST)", - "shortText": "consequat cupidatat dolore veniam", - "mediumText": "Do id aliquip esse Lorem anim mollit est velit laborum deserunt.", - "longText": "Quis commodo esse aute qui ea anim ex Lorem duis culpa ipsum. Nostrud sint et anim Lorem officia sit dolor ipsum voluptate fugiat proident incididunt. Deserunt magna eu aute aliquip culpa exercitation. Voluptate et sit non dolor reprehenderit non proident enim qui. Ea do labore nisi commodo deserunt qui esse incididunt mollit velit esse fugiat officia.\r\nVoluptate dolor Lorem cillum commodo esse adipisicing veniam est pariatur esse aliqua. Aliquip commodo tempor fugiat ea quis deserunt sint nostrud minim. Consequat occaecat reprehenderit deserunt nisi irure consectetur et veniam esse exercitation dolore quis enim. Lorem deserunt anim ut occaecat culpa. Magna reprehenderit quis sunt deserunt ipsum.\r\nLaboris ut labore aliqua ut in anim sint. Ex fugiat duis elit ullamco veniam excepteur laboris. Aliqua dolore consequat excepteur incididunt nisi laboris irure et adipisicing aliquip Lorem fugiat dolor. Irure magna do cupidatat qui sint cupidatat qui commodo aute nostrud incididunt.\r\nPariatur minim proident excepteur ad pariatur mollit ipsum. Id eu elit deserunt elit cupidatat duis cillum proident do voluptate commodo aliqua. Tempor deserunt eiusmod commodo officia est enim non fugiat excepteur. Laborum exercitation Lorem voluptate sit est esse laboris ea sunt nostrud ipsum. Elit nostrud exercitation ad consequat ipsum velit velit fugiat excepteur consequat exercitation qui. Fugiat ex aliqua officia velit occaecat sint dolore. Excepteur cupidatat sit dolor dolore et eu.\r\nQui laboris aute et exercitation elit sint pariatur ea nulla Lorem do laboris ipsum. Fugiat nostrud proident laboris laborum adipisicing. Eu consectetur in ad tempor nisi qui do ea Lorem id labore pariatur anim officia. Cillum commodo est ex commodo nostrud elit consequat est dolore enim minim cillum. Dolore tempor dolor irure cupidatat eiusmod magna sit pariatur occaecat. Consequat non sit pariatur consequat nulla dolore adipisicing.\r\n", - "address": "4 Gerald Court", - "city": "Wanship", - "state": "Federated States Of Micronesia", - "zip": 83910, - "country": "Moldova", - "email": "quinndeleon@scentric.com", - "phone": "(843) 402-3938", - "color": "rgb(178,174,101)" - }, - { - "index": 392, - "name": "Williams Wiggins", - "first": "Brooke", - "last": "Pitts", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kokikillara/73.jpg", - "boolean": true, - "guid": "4ed6c0c9-de4f-460e-807c-24402159047d", - "integer": 8, - "date": "Mon May 03 1976 22:14:52 GMT-0700 (PDT)", - "shortText": "velit elit", - "mediumText": "Voluptate ea officia laborum exercitation ullamco veniam aliquip mollit duis dolor eu et. Veniam exercitation fugiat aute ipsum cupidatat. Mollit ad id irure enim adipisicing. Ullamco aliqua voluptate laborum non commodo pariatur aliquip.", - "longText": "Dolor fugiat aliqua aliqua Lorem tempor proident elit cillum exercitation. Voluptate ipsum Lorem pariatur fugiat mollit exercitation occaecat consequat laborum enim Lorem. Elit exercitation tempor eu sint nostrud aliquip aliquip enim in. Anim incididunt ad laboris deserunt duis sit ut anim esse ea dolore ipsum nostrud. Id pariatur velit velit pariatur elit sunt aliqua excepteur. Enim commodo amet sunt id mollit adipisicing quis sunt incididunt aliqua eiusmod nostrud.\r\nOfficia id sunt nulla adipisicing laborum. Laborum laborum eiusmod velit commodo non labore eu. Non nostrud sint do Lorem. Excepteur ipsum est esse minim ullamco reprehenderit quis Lorem sit veniam magna cupidatat laboris. Incididunt est in officia qui sit sit dolore. Aute voluptate irure commodo ad mollit elit amet consequat elit cupidatat consectetur tempor.\r\nOccaecat Lorem aliquip amet sint enim. Ullamco sunt quis commodo cupidatat voluptate ea. Est sint commodo exercitation sunt duis duis mollit reprehenderit. Incididunt consectetur eu et esse et pariatur velit laborum tempor. Nulla ea ea est pariatur et non.\r\nIn irure pariatur non commodo est cillum ut esse. Amet aliquip proident culpa Lorem velit et nostrud amet. Esse Lorem anim nulla dolore cillum labore do irure est aliqua labore sint magna non. Quis consequat nulla ex deserunt ex. Eiusmod commodo magna voluptate qui ex. Ex anim exercitation deserunt duis proident ea voluptate non enim.\r\nAd fugiat dolor officia cupidatat aute dolor dolor consectetur sit. Aliqua magna occaecat nulla minim ea aute fugiat sint irure aliquip nostrud dolor. Amet et non duis fugiat enim excepteur ipsum nisi. Ex amet dolore ex reprehenderit elit consectetur sunt sint laboris et. Ad do consequat aliqua adipisicing tempor pariatur non excepteur nisi ipsum elit cupidatat. Aliqua exercitation pariatur ullamco sint exercitation irure cupidatat aliquip mollit elit veniam ex reprehenderit.\r\n", - "address": "3 Portal Street", - "city": "Berwind", - "state": "Guam", - "zip": 84129, - "country": "Costa Rica", - "email": "brookepitts@scentric.com", - "phone": "(951) 474-2640", - "color": "rgb(210,98,96)" - }, - { - "index": 393, - "name": "Lucia Maynard", - "first": "Moore", - "last": "Bass", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/christianoliff/73.jpg", - "boolean": false, - "guid": "044b1bae-19f0-48c3-a675-b3840c1f0350", - "integer": 13, - "date": "Sun Jun 29 2008 08:11:07 GMT-0700 (PDT)", - "shortText": "eiusmod", - "mediumText": "Est ullamco aute deserunt minim duis sunt dolore cillum tempor exercitation sit. Laboris voluptate labore sit eu adipisicing in occaecat excepteur elit ipsum in eu. Eiusmod est minim veniam do excepteur laborum amet aute. Laboris tempor deserunt cillum ipsum.", - "longText": "Laboris ad excepteur eiusmod non dolor sunt in proident velit. Incididunt laborum eiusmod enim pariatur exercitation ut. Laboris culpa fugiat consequat qui. Do aliquip incididunt et labore minim ex mollit. Occaecat id duis velit velit occaecat laborum ex officia. Veniam irure fugiat cillum dolore nostrud. Amet ea consectetur incididunt ut minim.\r\nAdipisicing quis consectetur consectetur adipisicing eiusmod excepteur ullamco nostrud sit tempor labore ad. Ea incididunt commodo occaecat qui ea veniam nulla sunt ex. Non aliquip incididunt aute cillum magna nisi. Aliqua culpa deserunt nulla ad fugiat. Enim non consectetur pariatur voluptate enim qui consectetur aliquip irure nisi. Minim eu commodo aliquip laboris elit sint quis.\r\nMagna commodo laborum fugiat commodo voluptate quis. Adipisicing laborum in anim exercitation proident. Magna est cillum voluptate consectetur reprehenderit. Velit veniam laboris fugiat anim est esse aliquip. Cupidatat aliquip excepteur voluptate laboris.\r\nOfficia anim laborum anim velit adipisicing et. Velit magna quis culpa ipsum. Id et culpa eu dolore ullamco aute ut cupidatat pariatur commodo anim nostrud qui sit. Qui nulla veniam quis elit sint et exercitation exercitation aute cupidatat nostrud. Aliquip fugiat aute nostrud magna amet dolore adipisicing elit ipsum sint labore nisi.\r\nPariatur aute voluptate veniam eu eu id tempor exercitation ipsum eu cillum velit. Elit fugiat commodo officia in. Laboris do sunt excepteur ut deserunt aliquip. Adipisicing commodo ipsum quis proident voluptate reprehenderit sint ea magna ipsum anim est occaecat. Aliqua do eu elit aute dolor culpa nisi cupidatat incididunt. Id eu veniam adipisicing veniam qui sint velit voluptate. Laborum amet ea minim minim nulla sint sit labore dolor pariatur.\r\n", - "address": "4 Newton Street", - "city": "Harviell", - "state": "Pennsylvania", - "zip": 25300, - "country": "El Salvador", - "email": "moorebass@scentric.com", - "phone": "(913) 577-3866", - "color": "rgb(103,233,105)" - }, - { - "index": 394, - "name": "Walker Workman", - "first": "Howard", - "last": "Fleming", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/andrey_maxim/73.jpg", - "boolean": true, - "guid": "ec870357-2a02-4dff-b9c5-a4574e39ddcf", - "integer": 73, - "date": "Sun Jun 02 1974 13:38:40 GMT-0700 (PDT)", - "shortText": "officia dolore consequat", - "mediumText": "Aliqua ex nisi adipisicing tempor elit pariatur voluptate cillum dolore duis excepteur commodo do eiusmod. Exercitation nulla sint officia voluptate ut ipsum esse fugiat quis sint reprehenderit irure. Voluptate voluptate deserunt sit aliqua Lorem et labore. Magna qui eu nisi do cupidatat eu ea. Nulla sint eiusmod in ipsum est dolor qui.", - "longText": "Magna elit sunt qui ut dolor et. Enim adipisicing aliquip dolore ex consectetur dolor ut. Ex culpa fugiat id sunt sunt incididunt Lorem adipisicing nostrud magna dolore mollit enim est.\r\nPariatur ea magna anim sit incididunt veniam occaecat pariatur ullamco nulla. Sit commodo cupidatat elit commodo eu do officia nostrud. Eu consequat ipsum amet eiusmod elit commodo ut enim ex.\r\nIrure ipsum ipsum ullamco magna deserunt pariatur in consectetur. Mollit nisi mollit reprehenderit et laboris in esse irure minim. Ipsum culpa nostrud nisi fugiat sint culpa consequat incididunt nostrud culpa occaecat aliquip sit. Commodo cupidatat nulla qui cupidatat sint anim. Ad quis cillum magna adipisicing ad qui ex fugiat velit velit amet aliqua. Ea laboris laborum dolor amet sunt. Fugiat sit dolor ipsum ut.\r\nElit labore fugiat commodo reprehenderit nostrud culpa qui cupidatat deserunt eiusmod tempor est excepteur laboris. Aliqua aliqua elit occaecat magna ullamco nisi commodo enim. Reprehenderit et mollit mollit aliqua ex tempor sint minim magna eu. Voluptate ullamco voluptate excepteur ullamco ea consectetur non do. Officia deserunt duis ullamco Lorem officia esse. Consequat et quis cupidatat officia.\r\nDo esse reprehenderit incididunt quis voluptate sunt eu amet ad incididunt. Do occaecat amet in culpa anim id. Fugiat est fugiat Lorem enim adipisicing do qui officia. Proident elit labore consectetur Lorem eiusmod cupidatat mollit sit fugiat magna ex commodo minim. Ea nisi amet non enim culpa veniam aliqua ad labore.\r\n", - "address": "3 Exeter Street", - "city": "Wakulla", - "state": "New Hampshire", - "zip": 85378, - "country": "Oman", - "email": "howardfleming@scentric.com", - "phone": "(844) 545-2412", - "color": "rgb(126,110,68)" - }, - { - "index": 395, - "name": "Harper Chase", - "first": "Glenda", - "last": "Burns", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/muringa/73.jpg", - "boolean": false, - "guid": "d6866e9e-6cc1-4021-9e8e-c0657bd2f64c", - "integer": 36, - "date": "Sun Dec 12 1971 00:30:23 GMT-0800 (PST)", - "shortText": "ad aliquip consequat", - "mediumText": "Consectetur exercitation commodo ut labore incididunt velit laborum labore velit aute. Aliquip velit id enim sit. Nostrud magna est veniam excepteur commodo irure. Sunt ex sint irure nisi anim. Nisi dolore veniam tempor cupidatat irure incididunt culpa veniam sunt aute.", - "longText": "Duis enim ex officia reprehenderit consectetur esse. Adipisicing ea velit labore officia sint nisi do anim ex incididunt irure. Laborum amet fugiat laboris proident. Ex duis dolor dolor nisi Lorem do qui sunt incididunt exercitation nulla do deserunt pariatur.\r\nOfficia et dolor incididunt elit non quis. Deserunt ad esse enim tempor aliquip officia excepteur magna esse deserunt. Excepteur dolore veniam commodo non quis. Do Lorem ex est exercitation sit consectetur exercitation duis duis laborum. Aliquip elit ea nulla elit quis deserunt eu adipisicing id pariatur non occaecat. Irure dolore nulla nisi irure qui tempor quis ut minim.\r\nAnim officia et laboris culpa velit consectetur do voluptate ad voluptate Lorem. Nostrud fugiat ut ad amet est elit duis consequat cupidatat. Ad minim cillum dolore incididunt sunt enim deserunt. Dolor aliqua qui nulla aliquip enim magna incididunt. Minim enim occaecat dolor in aliqua. Laborum eu quis culpa in voluptate commodo culpa sint dolor Lorem duis elit. Incididunt sint et enim sit laboris pariatur laboris eu sit eu anim.\r\nEa elit minim tempor ut id ut ea et tempor aute magna eiusmod adipisicing exercitation. Culpa elit esse tempor proident sint duis consequat. Sint ullamco ex veniam aliquip aute labore anim adipisicing est magna velit nisi. Ipsum dolore labore proident id irure qui velit anim. Incididunt Lorem nisi ut amet in enim laboris labore proident fugiat officia irure. Occaecat dolor Lorem qui nulla. Aliqua officia ipsum et cillum aliquip adipisicing ex.\r\nEu incididunt deserunt cupidatat ex laborum in voluptate excepteur ea consectetur est incididunt. Occaecat qui aliqua consequat nostrud in ex labore dolor eiusmod. Enim duis eu laboris consectetur culpa aliquip commodo. Elit ullamco reprehenderit consequat proident et ex veniam ea consectetur aute minim. Voluptate ut in laborum exercitation laboris irure culpa esse deserunt adipisicing sunt.\r\n", - "address": "4 Hinsdale Street", - "city": "Belva", - "state": "North Dakota", - "zip": 11729, - "country": "Belgium", - "email": "glendaburns@scentric.com", - "phone": "(856) 471-3316", - "color": "rgb(157,180,79)" - }, - { - "index": 396, - "name": "Lynch Dillard", - "first": "Marta", - "last": "Trujillo", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ahmedelgabri/73.jpg", - "boolean": true, - "guid": "66702f6f-a19b-4e41-8b5c-0df08d432b1b", - "integer": 55, - "date": "Mon Nov 21 1983 17:47:19 GMT-0800 (PST)", - "shortText": "culpa qui ullamco", - "mediumText": "Lorem dolor esse veniam minim culpa aliquip dolore occaecat Lorem quis.", - "longText": "Ea est sunt et duis dolor irure voluptate. Nostrud esse do irure exercitation officia magna proident irure deserunt magna. Dolore minim exercitation qui exercitation proident. Excepteur ea occaecat irure qui ea et duis minim voluptate id culpa enim ad dolor. Enim anim aliquip sint aliqua veniam Lorem id.\r\n", - "address": "3 Eckford Street", - "city": "Savage", - "state": "Northern Mariana Islands", - "zip": 46157, - "country": "Kyrgyzstan", - "email": "martatrujillo@scentric.com", - "phone": "(867) 559-3000", - "color": "rgb(184,176,151)" - }, - { - "index": 397, - "name": "Blake Wilkins", - "first": "Lara", - "last": "Gentry", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/bobbytwoshoes/73.jpg", - "boolean": false, - "guid": "e4e03f54-413f-4638-be7c-12175f24c458", - "integer": 5, - "date": "Sun Oct 10 1971 04:19:14 GMT-0700 (PDT)", - "shortText": "ex", - "mediumText": "Ullamco ut ex tempor est irure proident.", - "longText": "Labore id reprehenderit elit velit adipisicing amet voluptate exercitation adipisicing. Eiusmod anim officia sint Lorem ullamco cupidatat. Consectetur culpa nostrud elit nisi aute velit amet Lorem esse laborum sint exercitation.\r\nNon labore proident adipisicing duis veniam. Mollit ad irure Lorem minim ullamco elit aliqua occaecat excepteur. Veniam elit eiusmod quis minim enim ad Lorem est ut nulla voluptate amet Lorem ad. In dolore irure magna elit officia. Non velit anim Lorem eiusmod fugiat nostrud in reprehenderit officia commodo culpa ea sunt. Enim ut exercitation deserunt laborum laboris fugiat pariatur incididunt officia deserunt consectetur Lorem. Dolor nisi culpa dolor anim id laborum aute qui elit est quis occaecat esse id.\r\nEu ullamco aliquip enim qui cillum non anim reprehenderit. Nulla et tempor enim nulla consectetur. Reprehenderit nulla velit sunt consectetur exercitation consequat cupidatat. Anim dolor qui enim ex do labore dolore commodo voluptate ut laborum. Ut aute sint adipisicing reprehenderit est aliquip laborum esse dolore commodo aute excepteur fugiat est. Ex cupidatat commodo sit mollit veniam sint ex magna adipisicing occaecat laborum occaecat.\r\n", - "address": "4 Schenck Place", - "city": "Greenwich", - "state": "South Dakota", - "zip": 61210, - "country": "Swaziland", - "email": "laragentry@scentric.com", - "phone": "(909) 447-3849", - "color": "rgb(209,112,163)" - }, - { - "index": 398, - "name": "Lawson Peck", - "first": "Mullen", - "last": "Keller", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/milovanovicdu/73.jpg", - "boolean": false, - "guid": "27329629-6fcc-48e1-a7b9-e3158f75ea79", - "integer": 2, - "date": "Wed Jul 31 1974 10:57:47 GMT-0700 (PDT)", - "shortText": "ut", - "mediumText": "Irure ut velit ea nisi enim est fugiat magna non duis pariatur. Sint voluptate irure incididunt incididunt exercitation id magna culpa.", - "longText": "Ex labore ut aliquip magna. Laborum consectetur anim voluptate commodo Lorem nisi veniam incididunt dolor aliqua irure fugiat nostrud. Amet aliquip elit in sint. Proident voluptate nisi nulla culpa tempor. Fugiat dolor minim elit dolor elit ex incididunt Lorem non eu. Ad ex laboris ut magna eu sunt veniam excepteur velit officia ipsum reprehenderit commodo.\r\nEu irure ullamco aute qui ex mollit. Officia anim proident non officia. Aute in voluptate mollit eiusmod voluptate. Culpa esse deserunt nostrud culpa consectetur mollit. Minim fugiat amet cillum anim eu velit qui non et duis ut.\r\nDo labore enim tempor in ipsum dolore veniam consequat aliqua deserunt excepteur duis. Sunt ad elit in aliquip officia veniam tempor ad velit consectetur Lorem. Voluptate sint commodo ullamco nisi sunt minim enim labore labore. In sit laboris officia exercitation labore minim ex velit ullamco. Adipisicing ex consectetur mollit occaecat id. Officia minim dolore qui do magna exercitation. Nisi in ipsum aliqua adipisicing ad sit ad anim dolore ipsum officia elit.\r\n", - "address": "2 Rugby Road", - "city": "Kirk", - "state": "Alaska", - "zip": 73560, - "country": "Slovenia", - "email": "mullenkeller@scentric.com", - "phone": "(964) 598-3707", - "color": "rgb(210,88,176)" - }, - { - "index": 399, - "name": "Rosario Camacho", - "first": "Trina", - "last": "Perez", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/imughal7/73.jpg", - "boolean": true, - "guid": "2f75ea28-cf05-4abd-8600-a3f69265392c", - "integer": 41, - "date": "Mon Jul 19 1993 06:30:42 GMT-0700 (PDT)", - "shortText": "est fugiat tempor", - "mediumText": "Irure cupidatat et officia velit ut ipsum exercitation. Aliquip pariatur enim enim duis labore duis. Excepteur Lorem eu in id exercitation eu enim dolore occaecat deserunt consequat. Aute commodo amet incididunt cillum ipsum adipisicing in. Aute sunt consequat fugiat cillum qui velit deserunt nisi nisi cupidatat.", - "longText": "Minim elit nisi enim pariatur tempor consequat et voluptate. Proident officia ipsum aliqua esse deserunt ex id nisi. Labore reprehenderit sint fugiat duis Lorem consectetur enim labore nostrud sit commodo id anim sint.\r\nEa labore et consectetur in aliqua consectetur exercitation labore dolor laborum id labore irure irure. Commodo elit ex culpa amet ex velit eiusmod consequat. Nostrud consequat id excepteur consequat et ad labore. Tempor sint consequat exercitation consectetur ex ad laboris et. Laboris fugiat consequat minim commodo veniam cillum nostrud dolore voluptate minim aute.\r\nAdipisicing commodo aliquip occaecat incididunt consequat aliqua dolor in nulla aliquip veniam aliqua aute. Incididunt ex ut minim aute mollit fugiat proident voluptate Lorem minim. Ipsum eiusmod ullamco consectetur sint in. Qui magna occaecat cillum eu et consectetur. Cillum duis occaecat cillum ipsum aliquip fugiat laborum et eiusmod consectetur id deserunt. Minim minim qui ea cillum sit quis duis non anim.\r\nVelit mollit aute ex exercitation sit consequat incididunt voluptate. Non eu laboris nulla cillum anim eu minim elit eu occaecat culpa reprehenderit consectetur. Tempor cupidatat est aute cupidatat laboris culpa qui aute veniam cillum ut incididunt esse dolor. Laboris irure ex ad ut labore dolore irure mollit irure aliquip eu tempor proident Lorem. Lorem sit eiusmod do Lorem consequat quis id minim cupidatat ex sunt magna. Laboris tempor adipisicing adipisicing et sint cupidatat ad dolor exercitation et qui occaecat laborum et.\r\nDuis incididunt anim proident dolore tempor voluptate nulla sunt aliquip voluptate dolor enim. Laborum anim sunt anim adipisicing exercitation commodo eu esse. Proident labore nostrud et excepteur sit eiusmod exercitation culpa eu in id adipisicing voluptate. Pariatur officia aute mollit amet et nisi aute sit. Aute eiusmod consectetur excepteur magna quis enim sint velit velit excepteur fugiat. Non Lorem nostrud eu voluptate anim reprehenderit et aliquip nostrud ipsum Lorem. Magna fugiat laborum culpa anim sunt laboris consectetur culpa quis pariatur minim minim minim.\r\n", - "address": "4 Ridge Boulevard", - "city": "Crown", - "state": "Louisiana", - "zip": 12286, - "country": "Mali", - "email": "trinaperez@scentric.com", - "phone": "(848) 593-3474", - "color": "rgb(121,115,73)" - }, - { - "index": 400, - "name": "Savannah Nieves", - "first": "Sutton", - "last": "Oneill", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/creative_px/73.jpg", - "boolean": true, - "guid": "2a23bf3c-f5ec-4e78-90bc-ace28f8f2bab", - "integer": 2, - "date": "Thu Apr 23 1992 13:29:05 GMT-0700 (PDT)", - "shortText": "excepteur", - "mediumText": "Et aute minim non exercitation ut in aliqua officia consequat.", - "longText": "Elit officia excepteur aliqua deserunt est. Exercitation magna culpa ut aute. Laborum Lorem aliquip labore enim velit in. Dolore in do do dolor do do qui.\r\nLabore sunt laborum id sit esse pariatur amet ea. Nostrud irure excepteur Lorem ea duis adipisicing est ea voluptate. Ea consectetur dolor duis anim. Non laborum incididunt aliquip mollit pariatur. Amet laborum esse enim velit aute sit fugiat sit laborum commodo. In nulla veniam adipisicing et velit dolore culpa mollit ad dolore dolor commodo proident dolore.\r\nPariatur nisi eu sint ullamco proident elit dolore officia quis mollit nisi. Do officia cillum minim occaecat duis. Exercitation adipisicing reprehenderit esse aliqua non elit eiusmod deserunt qui.\r\nMinim culpa aliqua sit id ex. Qui do ea in sint cillum Lorem non. Consequat Lorem sunt est nulla Lorem exercitation culpa esse ex. Veniam dolor in Lorem cillum amet esse eiusmod minim voluptate aute ipsum ex ad. Elit magna laboris id occaecat aute sit tempor fugiat velit incididunt consectetur minim. Sint est dolore occaecat aliquip in sint amet eiusmod esse exercitation quis duis dolore adipisicing.\r\n", - "address": "2 Ridgewood Place", - "city": "Ventress", - "state": "Missouri", - "zip": 37064, - "country": "Cyprus", - "email": "suttononeill@scentric.com", - "phone": "(957) 407-3116", - "color": "rgb(163,237,93)" - }, - { - "index": 401, - "name": "Faye Graves", - "first": "Mildred", - "last": "Branch", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gabrielizalo/73.jpg", - "boolean": true, - "guid": "12b69605-f47d-4b63-b96d-48e2e24c1031", - "integer": 82, - "date": "Wed Feb 04 1981 06:07:39 GMT-0800 (PST)", - "shortText": "tempor occaecat ullamco", - "mediumText": "Velit aute non nisi elit laborum. Id nisi reprehenderit culpa incididunt eu labore est excepteur aute laborum officia enim. Qui proident deserunt voluptate commodo elit id irure voluptate. Consequat quis dolor id ea tempor ipsum culpa.", - "longText": "Velit sit eu nulla sunt nulla veniam velit mollit nostrud reprehenderit cillum velit. Nostrud non deserunt culpa Lorem quis. Sit elit ex tempor amet officia cupidatat. Dolore laboris et est consectetur elit dolor. Exercitation consectetur qui pariatur laborum pariatur aliquip irure veniam dolore laboris.\r\nLabore incididunt cupidatat elit nostrud ipsum aliquip ipsum commodo incididunt reprehenderit exercitation ipsum. Voluptate et ipsum qui nisi irure esse cillum ut. Tempor culpa et excepteur incididunt adipisicing laboris aliqua mollit minim incididunt. Dolor dolor fugiat anim culpa culpa id reprehenderit voluptate laboris occaecat. Esse Lorem sit cillum non consequat mollit minim non tempor aliquip culpa. Pariatur velit amet ad reprehenderit esse cillum veniam in ad. Nisi dolore irure dolore deserunt.\r\nNon amet elit pariatur nisi id dolor in adipisicing nisi elit sit. Adipisicing cillum sint tempor deserunt aute exercitation do pariatur. Nulla et eiusmod do dolore elit ullamco magna mollit. Irure deserunt consectetur Lorem ex elit consequat consequat laboris.\r\nDuis aute sint nisi tempor in ipsum laboris. Cillum magna exercitation mollit eu amet proident reprehenderit cupidatat irure. Ea minim dolor magna id aliquip. Ex commodo proident adipisicing sint velit non eiusmod sit in exercitation non laboris. Consequat nulla laborum sint qui dolor sint amet non. Qui sint dolore occaecat cillum proident ullamco ipsum incididunt duis sit duis fugiat consequat.\r\nQuis occaecat nulla officia quis nulla sunt reprehenderit nostrud. Cillum anim duis irure do nulla id. Sunt eiusmod quis dolor aliqua occaecat non. Sit velit elit sit laborum et cupidatat est veniam aliqua enim. In dolore veniam amet duis incididunt. Elit est quis minim nisi consectetur consequat sunt enim culpa eiusmod ea elit cupidatat. Officia reprehenderit in do consequat.\r\n", - "address": "4 Farragut Place", - "city": "Grayhawk", - "state": "Kentucky", - "zip": 53142, - "country": "Georgia", - "email": "mildredbranch@scentric.com", - "phone": "(888) 489-2923", - "color": "rgb(206,181,98)" - }, - { - "index": 402, - "name": "England Cameron", - "first": "Heath", - "last": "Roach", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/xtr1mal2/73.jpg", - "boolean": false, - "guid": "7eecdcf4-46f8-401c-aff2-9c22abf751ae", - "integer": 92, - "date": "Mon Jul 02 1990 04:55:35 GMT-0700 (PDT)", - "shortText": "velit", - "mediumText": "Cillum minim qui ex officia magna velit sunt nisi. Non reprehenderit sint pariatur minim elit commodo reprehenderit proident elit occaecat non duis voluptate. Aliquip ullamco ut duis officia do magna minim cupidatat in. Ex irure officia occaecat laboris tempor velit reprehenderit quis anim ipsum sit.", - "longText": "Cupidatat excepteur officia veniam id tempor sit amet. Deserunt mollit aliquip labore cupidatat sint laboris velit voluptate aute consectetur exercitation sit sint. Labore et pariatur laboris quis labore. Irure consectetur labore sit et. Aute consectetur veniam veniam id nulla pariatur deserunt. Deserunt nulla proident id nulla.\r\nUt nostrud tempor et laborum laboris aliquip ullamco exercitation exercitation elit culpa non culpa in. Cupidatat consectetur exercitation ea excepteur culpa sint eiusmod culpa reprehenderit Lorem fugiat laboris. Veniam sint mollit dolor consequat sunt officia. Irure ipsum culpa et non. Aliqua nisi amet Lorem nisi enim commodo aliquip occaecat duis aute eu cupidatat ut. Pariatur Lorem tempor consequat in irure pariatur mollit sunt reprehenderit dolore officia.\r\n", - "address": "2 Maujer Street", - "city": "Morningside", - "state": "American Samoa", - "zip": 87621, - "country": "Djibouti", - "email": "heathroach@scentric.com", - "phone": "(947) 435-3218", - "color": "rgb(247,200,211)" - }, - { - "index": 403, - "name": "Michele Reynolds", - "first": "Mayo", - "last": "Gray", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/eugenerifan/73.jpg", - "boolean": false, - "guid": "826af78f-bd69-4f81-a45e-1a38d5afb1a8", - "integer": 54, - "date": "Mon Nov 02 2009 06:31:46 GMT-0800 (PST)", - "shortText": "exercitation adipisicing et", - "mediumText": "Aliqua ex amet anim proident nostrud et id Lorem aliqua. Quis reprehenderit veniam cupidatat fugiat.", - "longText": "Ipsum ullamco commodo aliqua non consectetur culpa in. Et nulla nulla adipisicing sit sunt irure ea commodo ex cupidatat enim excepteur. Aliqua eu dolore commodo culpa est nostrud velit exercitation irure. Ad est fugiat duis ipsum non Lorem deserunt esse.\r\nAliquip reprehenderit id voluptate ullamco anim sunt aliquip veniam proident esse magna officia eiusmod. Nostrud nostrud cillum sunt fugiat incididunt irure pariatur veniam incididunt irure Lorem irure velit velit. Eiusmod occaecat proident culpa Lorem labore culpa ad. Eu dolor ad cupidatat sunt fugiat sint. Ea sunt quis amet nulla labore dolor occaecat consequat ea nulla. Sint magna qui et veniam cillum.\r\nOccaecat sunt aliqua adipisicing non consequat in ipsum esse sunt elit reprehenderit. Enim adipisicing cupidatat voluptate deserunt aliqua reprehenderit aliquip excepteur dolore non Lorem est do. Dolor ipsum non ex id tempor tempor mollit. Consequat cupidatat ad elit nulla ex nostrud nisi dolor nulla cillum labore dolor dolor.\r\nFugiat exercitation nulla irure aliqua id. Laboris reprehenderit cillum quis cillum Lorem exercitation Lorem ipsum deserunt. Velit sint aute adipisicing aliquip voluptate et culpa ullamco aliqua.\r\nNon cillum magna elit sunt aliqua ea. Veniam eu esse in est proident non reprehenderit nulla enim. Nisi non sunt et laborum minim non qui nisi nisi elit excepteur nisi. Ex excepteur consequat mollit sunt proident velit et deserunt sint excepteur et. Ullamco qui ipsum labore culpa aliquip. Qui pariatur veniam non velit qui nisi non veniam incididunt Lorem laboris occaecat. Ut duis qui labore anim amet dolor.\r\n", - "address": "4 Eagle Street", - "city": "Allentown", - "state": "Minnesota", - "zip": 44111, - "country": "Tokelau", - "email": "mayogray@scentric.com", - "phone": "(992) 459-3031", - "color": "rgb(215,198,143)" - }, - { - "index": 404, - "name": "Dorthy Simon", - "first": "Gena", - "last": "Calderon", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/imcoding/73.jpg", - "boolean": false, - "guid": "6afa8867-330b-419e-b186-df524f163ef0", - "integer": 1, - "date": "Mon Jun 09 2014 19:43:18 GMT-0700 (PDT)", - "shortText": "esse", - "mediumText": "Incididunt ea id eu id mollit eu. Culpa fugiat dolor minim mollit.", - "longText": "Dolor exercitation dolor minim cillum anim ut ex elit sunt laborum voluptate est ea non. Sunt tempor deserunt aute ut aliqua. Nostrud eu ullamco in est eu ea mollit qui. Ad mollit fugiat quis ex elit. Proident duis cupidatat ex amet sint dolore laboris elit. Excepteur cupidatat minim id consequat dolor.\r\nTempor ipsum eu commodo ipsum ut. Elit elit eiusmod fugiat ullamco labore. Mollit est ea nulla ea cupidatat excepteur.\r\nDeserunt duis ipsum adipisicing in laboris sit. Esse incididunt in aliqua non anim esse consectetur. Exercitation dolor deserunt eiusmod incididunt et ea culpa. Mollit anim non mollit adipisicing est. Pariatur aliqua dolore ullamco aliqua.\r\nEt id laboris sit adipisicing adipisicing eu occaecat et quis sint. Proident voluptate ad et velit. Quis aliqua elit deserunt consectetur sunt. Incididunt sit qui ex excepteur et culpa et. Non occaecat ea amet commodo Lorem. Minim mollit eu eiusmod id ipsum esse ut mollit do do.\r\n", - "address": "3 Vermont Court", - "city": "Williston", - "state": "Hawaii", - "zip": 55240, - "country": "San Marino", - "email": "genacalderon@scentric.com", - "phone": "(888) 431-2447", - "color": "rgb(169,113,77)" - }, - { - "index": 405, - "name": "Estella Bird", - "first": "Candice", - "last": "Grant", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/madhan4uu/73.jpg", - "boolean": true, - "guid": "acee6de8-e101-4121-92a2-004058e99752", - "integer": 82, - "date": "Sat Sep 14 2002 06:24:28 GMT-0700 (PDT)", - "shortText": "id pariatur in tempor", - "mediumText": "Reprehenderit nulla consectetur minim minim ut consequat id tempor anim labore. Occaecat reprehenderit in consequat velit occaecat Lorem.", - "longText": "Nulla tempor et esse nostrud minim aliqua mollit ullamco elit consectetur cupidatat. Non non aliqua labore aute Lorem magna excepteur tempor. Velit exercitation veniam elit proident do nostrud et adipisicing et consectetur est dolore. Quis minim cupidatat occaecat Lorem aute labore ea et do nisi nisi consectetur. Do aute commodo labore elit laboris. In ipsum quis voluptate nulla est officia eu.\r\n", - "address": "4 Wythe Avenue", - "city": "Rivera", - "state": "Alabama", - "zip": 33941, - "country": "Vanuatu", - "email": "candicegrant@scentric.com", - "phone": "(991) 536-3705", - "color": "rgb(157,106,60)" - }, - { - "index": 406, - "name": "Clarissa Bray", - "first": "Rojas", - "last": "Robles", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/tirsope/73.jpg", - "boolean": false, - "guid": "bfc3f083-ca88-443f-8639-1467b45a7b5e", - "integer": 54, - "date": "Fri Jul 03 1970 19:21:58 GMT-0700 (PDT)", - "shortText": "consectetur duis ullamco est", - "mediumText": "Excepteur qui sint nulla pariatur reprehenderit ex fugiat anim ut. Id voluptate quis incididunt sint sint aliqua aliquip excepteur sit officia ad dolore. Aute eu elit tempor laborum eu voluptate ipsum duis sunt. Reprehenderit fugiat ex Lorem aute quis nostrud commodo Lorem.", - "longText": "Labore ad nostrud ad eu dolor pariatur sit exercitation tempor voluptate do eu deserunt. Consectetur culpa culpa veniam nisi eu elit minim est est. Mollit cillum sit pariatur quis. Cupidatat ex reprehenderit ad eu ad amet id esse aliqua. Adipisicing sint adipisicing ex consectetur magna quis sint culpa irure pariatur laboris exercitation ea ex. Elit fugiat proident dolor amet minim cillum et sint. Non nostrud nulla ipsum eu.\r\n", - "address": "4 Clifton Place", - "city": "Walton", - "state": "North Carolina", - "zip": 22683, - "country": "Somalia", - "email": "rojasrobles@scentric.com", - "phone": "(829) 530-3596", - "color": "rgb(58,225,142)" - }, - { - "index": 407, - "name": "Jody Schultz", - "first": "Baird", - "last": "Robinson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lorenzosinisi/73.jpg", - "boolean": false, - "guid": "7a26e07a-6210-47eb-8a15-d60b73f0b0ba", - "integer": 34, - "date": "Sat Oct 25 1980 07:30:41 GMT-0700 (PDT)", - "shortText": "dolor qui", - "mediumText": "Aliqua sunt magna esse aute veniam occaecat tempor aliquip aliquip adipisicing aliquip qui deserunt incididunt.", - "longText": "Laboris dolore anim pariatur laboris in veniam irure. Lorem laborum nulla amet dolore cupidatat. Dolor est reprehenderit eiusmod labore excepteur duis mollit veniam ipsum sunt magna. Minim ut aliquip sunt ut irure voluptate voluptate duis ea. Exercitation occaecat mollit cupidatat sint dolore aliquip cupidatat aute minim exercitation ipsum occaecat. Consequat sit tempor esse ut culpa tempor duis irure duis quis. Enim incididunt sint consequat adipisicing veniam fugiat eiusmod.\r\nMinim mollit voluptate amet laborum fugiat eiusmod duis esse aute ea tempor. Ea minim ipsum sint pariatur amet voluptate ipsum. Excepteur magna pariatur esse culpa ipsum do. Ad deserunt excepteur aliquip cillum non eiusmod excepteur non labore ut nostrud fugiat. Minim sunt duis dolor ex ipsum reprehenderit. Magna incididunt reprehenderit tempor reprehenderit voluptate. Irure magna non minim quis sunt laboris ut velit velit eu consequat ad.\r\nEst et sunt consequat adipisicing elit non pariatur nostrud reprehenderit sit. Pariatur irure veniam veniam aliquip velit fugiat adipisicing. Consectetur ex mollit tempor cillum commodo ad magna dolore Lorem. Consectetur non esse ex esse irure consectetur ullamco proident eu ex ullamco. Ipsum ut tempor Lorem exercitation et voluptate nulla aute commodo. Adipisicing nostrud laboris quis elit minim.\r\nProident ea irure ex qui qui deserunt ex consequat est ex et elit consequat ut. Sunt deserunt tempor dolor esse reprehenderit excepteur est. Mollit eu occaecat anim voluptate.\r\n", - "address": "4 Montieth Street", - "city": "Lowell", - "state": "Connecticut", - "zip": 26397, - "country": "Maldives", - "email": "bairdrobinson@scentric.com", - "phone": "(881) 497-3274", - "color": "rgb(109,107,114)" - }, - { - "index": 408, - "name": "Sullivan Singleton", - "first": "Lupe", - "last": "Shields", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/celikovic/73.jpg", - "boolean": false, - "guid": "77364f56-0bf3-44a2-b715-57adc5471291", - "integer": 76, - "date": "Sun Jan 30 2000 05:01:36 GMT-0800 (PST)", - "shortText": "eiusmod enim officia", - "mediumText": "Deserunt sunt nulla ex reprehenderit nulla laborum fugiat consectetur aliqua est. Dolor qui laborum non anim in. Nisi amet commodo ullamco id excepteur ipsum veniam. Id quis nulla amet sint pariatur. Velit irure exercitation ut excepteur pariatur anim amet deserunt.", - "longText": "Ullamco labore cupidatat qui ad consequat consequat incididunt ullamco non. Id tempor est laboris non. Pariatur incididunt veniam irure Lorem aute. Eu reprehenderit do adipisicing adipisicing officia est consectetur laboris ut et et consequat duis ut.\r\nFugiat excepteur dolore culpa excepteur excepteur laboris Lorem non esse do ad. Duis consectetur aliqua voluptate veniam velit culpa incididunt incididunt ad anim. Quis id elit officia in ut.\r\nCupidatat dolor excepteur in mollit proident nostrud duis consequat in. Duis ullamco eu qui culpa. Nostrud culpa eu cupidatat occaecat. Eu reprehenderit ex nisi voluptate aliqua aute.\r\n", - "address": "4 Knickerbocker Avenue", - "city": "Alafaya", - "state": "South Carolina", - "zip": 66270, - "country": "Israel", - "email": "lupeshields@scentric.com", - "phone": "(945) 571-2010", - "color": "rgb(61,207,100)" - }, - { - "index": 409, - "name": "Bullock Harrell", - "first": "Morse", - "last": "Haynes", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_kshitish/73.jpg", - "boolean": false, - "guid": "4176d27b-2ff0-44dd-9f1e-17963821d222", - "integer": 45, - "date": "Sat Feb 20 1999 17:08:27 GMT-0800 (PST)", - "shortText": "id nostrud fugiat irure culpa", - "mediumText": "Reprehenderit quis elit id amet laborum labore.", - "longText": "Nulla pariatur in cupidatat qui fugiat. Id incididunt ad aute consequat velit anim ad velit fugiat labore. Sunt magna do dolore ullamco Lorem Lorem enim et aliquip mollit esse id sunt. Nisi reprehenderit magna sit non officia Lorem eu fugiat. Elit non occaecat laborum in sunt consequat amet in non.\r\nSit ipsum mollit proident pariatur ea esse. Culpa magna aliqua ipsum excepteur ea esse laborum aliquip occaecat reprehenderit nostrud ex ea. Non esse exercitation nulla nostrud esse in sunt. Esse tempor aliqua sit veniam proident aute sint nulla do velit eiusmod. Qui duis occaecat tempor do aliquip irure cillum elit. Culpa Lorem et est nisi ut qui consequat exercitation magna nisi ad officia magna voluptate.\r\nTempor enim sit deserunt do nisi amet enim ipsum ea dolore eu. Proident excepteur aliqua sit sit qui duis ad nostrud adipisicing qui. Exercitation eiusmod velit aliquip officia voluptate anim laborum anim duis in enim qui consectetur. Ad est occaecat occaecat do ex esse ipsum ipsum Lorem veniam. Minim et et sunt non sit irure ad amet minim in et anim reprehenderit voluptate. Irure anim id nisi eiusmod eu eiusmod proident aute sunt. Consequat et aute ipsum ullamco do aute ad do Lorem ipsum in minim.\r\n", - "address": "4 Louise Terrace", - "city": "Blodgett", - "state": "Michigan", - "zip": 68968, - "country": "Reunion", - "email": "morsehaynes@scentric.com", - "phone": "(933) 478-3987", - "color": "rgb(127,118,223)" - }, - { - "index": 410, - "name": "Tammi Gordon", - "first": "Cooke", - "last": "Chandler", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/2fockus/73.jpg", - "boolean": true, - "guid": "c65f8ce1-2436-4ef2-9dc8-74fcc3a09b55", - "integer": 7, - "date": "Wed Jan 12 2005 21:50:12 GMT-0800 (PST)", - "shortText": "laboris est ipsum", - "mediumText": "Id dolore quis voluptate dolor ullamco enim velit cillum mollit dolor occaecat officia.", - "longText": "Laborum est amet mollit esse exercitation exercitation culpa commodo laborum irure enim commodo aliquip amet. Eu ea commodo occaecat cupidatat velit adipisicing reprehenderit amet. Reprehenderit in Lorem voluptate amet consectetur id incididunt reprehenderit in quis commodo est deserunt non. Pariatur pariatur in elit labore ut esse esse irure. Tempor mollit labore laborum voluptate ut. Ut occaecat mollit mollit cillum aliquip ipsum quis voluptate veniam. Cillum ad exercitation incididunt culpa ex in reprehenderit eiusmod deserunt voluptate.\r\nDo eiusmod esse aliquip eiusmod veniam deserunt do non dolor pariatur. Occaecat dolore minim irure proident laborum in nostrud sit. Ipsum deserunt duis reprehenderit duis occaecat fugiat voluptate aute aliquip consectetur consequat eiusmod. Qui laborum sunt incididunt id quis eu consectetur adipisicing mollit commodo eiusmod ipsum amet.\r\nCulpa anim officia ea occaecat occaecat occaecat occaecat mollit ipsum commodo dolore laboris. Ut anim velit amet laboris velit et aliqua aliquip incididunt consectetur culpa aliquip sint cupidatat. Enim eu adipisicing ut non. Amet duis nostrud est ad dolore non cupidatat veniam in. Voluptate nostrud sint aliqua voluptate culpa qui Lorem tempor.\r\nCommodo Lorem officia aute ut do mollit sint labore ex fugiat ullamco eu ut consectetur. Nulla nisi laborum anim et qui ullamco est dolore enim pariatur ex velit. Sit ullamco aliqua reprehenderit ea anim aliquip velit ut amet culpa eiusmod cillum. Aute eu sit aute proident Lorem dolor ea pariatur. Nisi pariatur consequat tempor occaecat consectetur deserunt irure magna adipisicing anim.\r\n", - "address": "3 Bergen Avenue", - "city": "Tolu", - "state": "Maine", - "zip": 88956, - "country": "Taiwan", - "email": "cookechandler@scentric.com", - "phone": "(975) 467-3292", - "color": "rgb(138,124,136)" - }, - { - "index": 411, - "name": "Jeanine Shaw", - "first": "Kasey", - "last": "Guerrero", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dnevozhai/73.jpg", - "boolean": false, - "guid": "be3a2408-087f-4d1d-ba80-0cffdd225a29", - "integer": 82, - "date": "Sun May 13 2001 01:14:30 GMT-0700 (PDT)", - "shortText": "sint", - "mediumText": "Non quis officia mollit labore velit est in Lorem culpa laboris voluptate et. Exercitation dolor non sit magna Lorem consequat.", - "longText": "Labore ea elit irure eiusmod deserunt aliqua. Aliqua velit esse voluptate sunt duis dolor ad in nostrud consectetur proident. Amet aliquip excepteur veniam commodo dolore do voluptate non. Lorem sunt duis anim officia sunt culpa laborum dolor occaecat.\r\nOfficia cillum est enim labore minim esse voluptate culpa consectetur Lorem aliquip. Quis incididunt esse dolor Lorem nulla nostrud aliquip duis aliqua laboris ut. Qui nisi proident voluptate nostrud anim. Sunt culpa est elit exercitation magna sint.\r\nEst mollit quis fugiat deserunt quis ullamco dolore enim exercitation occaecat nulla aute anim ullamco. Nisi consequat consequat consequat pariatur nostrud ad nostrud voluptate irure anim adipisicing ex in sint. Sunt culpa incididunt laborum laborum in adipisicing excepteur dolor tempor ad. Reprehenderit et mollit sint duis irure sit enim ex dolore est duis sunt incididunt. Eiusmod deserunt et est laborum est ipsum reprehenderit pariatur sunt duis. Sunt minim magna consectetur do occaecat. Duis ut tempor ullamco sunt dolor sit deserunt nisi amet.\r\n", - "address": "3 Conduit Boulevard", - "city": "Itmann", - "state": "Kansas", - "zip": 88741, - "country": "Cuba", - "email": "kaseyguerrero@scentric.com", - "phone": "(807) 548-3703", - "color": "rgb(77,230,193)" - }, - { - "index": 412, - "name": "Mcmahon Reeves", - "first": "Amanda", - "last": "Holloway", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/sebasribas/73.jpg", - "boolean": false, - "guid": "d7d7d64e-e5c2-426c-b930-5d2e09aba244", - "integer": 32, - "date": "Thu May 08 1986 15:44:35 GMT-0700 (PDT)", - "shortText": "ut", - "mediumText": "Dolor aute Lorem irure occaecat. Dolore culpa eu ex id eu ad ad quis.", - "longText": "Nisi officia commodo consequat consequat aliquip. Eu non esse sit sit ipsum duis exercitation tempor. Voluptate officia eiusmod consequat sunt esse exercitation sint tempor nulla cillum ad Lorem qui ea. Id dolore elit ullamco ex ea commodo reprehenderit consequat. Anim dolore id ullamco laborum commodo dolore proident ex.\r\nEnim minim elit adipisicing occaecat occaecat veniam. Dolor culpa occaecat adipisicing proident ex id. Incididunt ullamco aute ex anim est ullamco magna nisi. Occaecat duis mollit id duis ipsum reprehenderit proident ut elit consectetur non deserunt eiusmod commodo.\r\nIrure do nulla consequat fugiat. Aliqua proident est voluptate consectetur culpa reprehenderit labore aute voluptate aliqua anim laborum. Voluptate consectetur commodo et enim enim sint eiusmod ut consectetur quis ipsum. Proident dolor ipsum duis cillum sunt.\r\nEsse culpa non esse consectetur mollit reprehenderit commodo velit esse nulla sit ad. Ex ad amet exercitation irure velit reprehenderit. Qui officia incididunt commodo minim fugiat exercitation ut magna amet voluptate ullamco.\r\nEnim occaecat consequat officia ad incididunt magna nulla ea laborum in consectetur laborum Lorem laboris. Deserunt esse cillum nulla anim. Ea laborum amet ex aliquip aliquip.\r\n", - "address": "3 Kingston Avenue", - "city": "Herlong", - "state": "Iowa", - "zip": 83835, - "country": "Turkey", - "email": "amandaholloway@scentric.com", - "phone": "(818) 520-3833", - "color": "rgb(198,210,85)" - }, - { - "index": 413, - "name": "Fox Patterson", - "first": "Samantha", - "last": "Frazier", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/cepreygolubev/73.jpg", - "boolean": true, - "guid": "24f589f7-f6f9-4cab-9292-d754c16d9e45", - "integer": 63, - "date": "Fri Mar 16 2007 14:40:33 GMT-0700 (PDT)", - "shortText": "adipisicing velit Lorem", - "mediumText": "Anim amet dolore eiusmod sit ea officia duis aliqua ipsum ea consequat Lorem. Lorem sunt non amet ullamco elit. Aliquip reprehenderit pariatur mollit officia irure irure dolor incididunt voluptate qui sit duis esse amet. Tempor aliqua magna excepteur ad aliqua. In fugiat et aliqua irure excepteur dolore ipsum voluptate.", - "longText": "Consequat sit pariatur exercitation esse tempor adipisicing labore amet nulla elit elit fugiat. Laborum id in ad laborum officia nulla id cillum occaecat. Esse consectetur fugiat veniam ex minim eiusmod nostrud.\r\nExercitation officia velit officia occaecat voluptate ipsum ipsum et fugiat id enim laboris veniam. Commodo eu velit reprehenderit cupidatat. Do incididunt anim irure laborum ut voluptate est aute elit anim. Duis dolor dolore ex sit adipisicing ipsum voluptate voluptate anim. Non adipisicing aute nostrud anim magna id qui quis.\r\nEst sint irure eu pariatur elit id non cupidatat. Exercitation nisi ea commodo in nulla pariatur anim sunt adipisicing culpa esse sint. Quis et culpa ad anim cillum mollit excepteur. Cillum fugiat amet reprehenderit nisi ullamco. In ipsum commodo nisi ut reprehenderit. Deserunt eiusmod labore enim consequat.\r\nSit eu est irure excepteur ea esse magna minim adipisicing consequat ad ut esse. Laboris ut duis culpa nulla cillum sunt sint velit. Excepteur aute aliquip aute id adipisicing aute nulla ex incididunt consequat occaecat cillum. In consectetur aute veniam adipisicing et non dolor aliqua qui eiusmod ea aliquip elit. Ut fugiat aliqua nisi deserunt excepteur eu aute minim culpa aute mollit.\r\nQui et laborum deserunt proident dolore mollit fugiat labore. Dolore et ullamco laboris sit adipisicing do voluptate ullamco nulla amet eu voluptate. Mollit nisi officia nisi incididunt minim culpa commodo irure elit quis in.\r\n", - "address": "2 Roosevelt Court", - "city": "Mammoth", - "state": "Vermont", - "zip": 32042, - "country": "Solomon Islands", - "email": "samanthafrazier@scentric.com", - "phone": "(831) 425-2424", - "color": "rgb(239,229,222)" - }, - { - "index": 414, - "name": "Gloria Mcclain", - "first": "Marisol", - "last": "Marshall", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/iamphilipjoyce/73.jpg", - "boolean": true, - "guid": "0eb44c61-37e0-4715-9356-2231abd957a0", - "integer": 93, - "date": "Thu Nov 03 2005 21:43:21 GMT-0800 (PST)", - "shortText": "quis nisi ad ut commodo", - "mediumText": "Consequat tempor ad id sint consectetur officia aliqua excepteur duis. Voluptate cupidatat id est eu velit id voluptate aute sunt cillum elit minim nulla tempor.", - "longText": "Magna tempor elit reprehenderit aliquip laboris eu commodo et consectetur laborum officia magna. Veniam fugiat minim ut occaecat incididunt nisi. Sunt adipisicing quis aliqua sit in aliquip eiusmod laborum.\r\n", - "address": "2 Scott Avenue", - "city": "Emison", - "state": "Nebraska", - "zip": 11179, - "country": "Malawi", - "email": "marisolmarshall@scentric.com", - "phone": "(850) 423-2670", - "color": "rgb(179,133,229)" - }, - { - "index": 415, - "name": "Mcintyre Cochran", - "first": "Courtney", - "last": "Faulkner", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/russell_baylis/73.jpg", - "boolean": true, - "guid": "07e7e322-9ff5-428a-a8d7-1d9e39a2bc7c", - "integer": 19, - "date": "Tue Aug 26 1975 19:13:06 GMT-0700 (PDT)", - "shortText": "ullamco fugiat", - "mediumText": "Ipsum veniam commodo consectetur occaecat. Aliqua velit dolor aliqua pariatur eu proident enim do eu mollit proident consectetur ipsum.", - "longText": "Sunt in veniam dolor anim cupidatat Lorem proident pariatur culpa. Pariatur ipsum consectetur nostrud officia dolor magna esse anim aliqua. Exercitation ex nisi enim irure veniam eiusmod et ipsum sint do. Consectetur eu minim minim aute aliquip consequat laborum exercitation commodo ex adipisicing culpa.\r\nNulla anim velit amet laboris. Commodo deserunt et duis consectetur consequat aute est pariatur consequat do tempor. Voluptate reprehenderit irure esse minim. Qui tempor id eiusmod id aliquip sit quis quis anim exercitation nulla. Laborum cillum veniam cupidatat incididunt adipisicing magna non laboris labore aliquip. Minim sit sint id ea in adipisicing et ex cillum reprehenderit. Pariatur tempor ea fugiat in irure.\r\nEa culpa proident aliquip officia sint irure Lorem consectetur. Ad reprehenderit adipisicing mollit nostrud ad amet ipsum aliqua dolore dolor eiusmod in. Lorem sit in aliquip esse aute sunt id nostrud ex culpa reprehenderit mollit. Qui laboris anim culpa id fugiat veniam. Reprehenderit exercitation sint pariatur mollit sint sunt. Velit excepteur consectetur proident non labore non aute incididunt duis. Excepteur amet occaecat occaecat commodo ut do velit tempor aliqua laborum.\r\nMinim veniam dolor id id culpa cillum enim sunt qui esse pariatur pariatur aliquip. Esse et ad dolor aliquip. Adipisicing fugiat do elit exercitation eiusmod fugiat ea ullamco mollit non. Minim occaecat ipsum dolore elit anim velit occaecat cupidatat. Irure irure reprehenderit fugiat ad mollit ullamco esse sit. Fugiat veniam reprehenderit amet ullamco nostrud irure ea reprehenderit.\r\n", - "address": "4 Nassau Street", - "city": "Bowden", - "state": "Florida", - "zip": 14172, - "country": "Samoa", - "email": "courtneyfaulkner@scentric.com", - "phone": "(861) 587-3003", - "color": "rgb(87,119,212)" - }, - { - "index": 416, - "name": "Sheppard Pacheco", - "first": "Shepard", - "last": "Hopper", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kijanmaharjan/73.jpg", - "boolean": false, - "guid": "25a22dc2-f676-4e38-b172-8b3d6598cafd", - "integer": 98, - "date": "Thu Jun 19 2003 12:30:27 GMT-0700 (PDT)", - "shortText": "incididunt ad ad nulla elit", - "mediumText": "Consectetur magna dolore consequat consectetur officia labore culpa aute deserunt officia laboris exercitation. Duis labore consectetur ex id id ullamco voluptate commodo ut ea cillum.", - "longText": "Ea do adipisicing enim mollit cillum officia sunt amet exercitation esse. Incididunt deserunt dolore deserunt sunt ut tempor. Quis magna consectetur commodo nisi eiusmod cupidatat ea velit. Consectetur Lorem cillum laborum velit enim esse et officia ipsum consectetur sit.\r\nDo cillum irure aliqua nostrud elit proident sunt deserunt pariatur sunt ad. Esse adipisicing fugiat sunt irure duis eu non officia eiusmod fugiat. Quis ut officia commodo elit ad veniam ut eu amet do. Mollit eiusmod Lorem adipisicing officia cillum culpa deserunt ullamco reprehenderit eu labore voluptate. Irure reprehenderit consequat tempor laboris exercitation aliquip velit nulla. Tempor quis adipisicing et esse. Lorem ea nulla consequat culpa aliquip tempor amet.\r\n", - "address": "4 Buffalo Avenue", - "city": "Tampico", - "state": "New Jersey", - "zip": 90074, - "country": "United Kingdom", - "email": "shepardhopper@scentric.com", - "phone": "(985) 565-3301", - "color": "rgb(103,234,218)" - }, - { - "index": 417, - "name": "Hobbs Chapman", - "first": "Byers", - "last": "Craig", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/73.jpg", - "boolean": true, - "guid": "355ebabb-a1d0-4ed7-adfb-e8a0515d4ee5", - "integer": 3, - "date": "Fri Mar 26 2010 15:05:55 GMT-0700 (PDT)", - "shortText": "cupidatat", - "mediumText": "Aute sit fugiat nostrud enim proident ad quis reprehenderit irure. Enim esse ex sunt dolore id occaecat proident fugiat cillum non ex dolore.", - "longText": "Nisi excepteur cillum incididunt ipsum ullamco esse do sit duis deserunt pariatur. Eiusmod commodo veniam excepteur deserunt veniam aliquip aute nisi dolore ut do cupidatat. Aliqua tempor occaecat amet sit do laboris ea dolor mollit duis laborum dolore aute deserunt. Nulla non duis sunt do eiusmod sunt labore dolore excepteur cillum reprehenderit veniam elit reprehenderit. Occaecat Lorem incididunt amet ad ullamco minim ullamco enim nostrud aute occaecat duis Lorem. Ea labore in nostrud pariatur ea fugiat deserunt. Laborum eu enim officia amet sint et qui in id.\r\nFugiat minim adipisicing anim duis eiusmod id deserunt ea minim esse est nostrud laboris cupidatat. Ex ut reprehenderit commodo veniam. Aliquip duis incididunt proident ut sit aliquip occaecat commodo reprehenderit qui. Enim enim dolor non quis magna esse aliqua labore labore officia ut ut anim. Ex dolor velit aliqua pariatur.\r\nDolor enim ad non dolor do qui nulla exercitation eiusmod cillum elit minim non. Esse sint voluptate ullamco et sit esse. Ut ullamco non eiusmod anim quis anim ullamco irure amet. Amet ut pariatur ad mollit eu occaecat aliqua adipisicing. Dolore et sint veniam qui ad veniam fugiat aliqua dolor. Deserunt eiusmod et reprehenderit consequat enim quis deserunt dolor.\r\nCillum amet aliquip laborum eiusmod. Consequat commodo aliquip velit quis fugiat velit. Lorem nulla nostrud deserunt aliquip Lorem sunt et. Ea sunt duis officia Lorem elit do commodo. Tempor nostrud incididunt sunt nisi fugiat ex eu. Commodo nisi do duis non culpa consectetur ut exercitation ad in. Laborum laborum tempor sit laborum labore reprehenderit voluptate.\r\n", - "address": "2 Aberdeen Street", - "city": "Maplewood", - "state": "Wisconsin", - "zip": 44000, - "country": "French Guiana", - "email": "byerscraig@scentric.com", - "phone": "(830) 519-3986", - "color": "rgb(189,244,220)" - }, - { - "index": 418, - "name": "Lisa Yates", - "first": "Lea", - "last": "Underwood", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/noufalibrahim/73.jpg", - "boolean": true, - "guid": "dc5b7819-35b2-4a5e-b228-74fa3c7bdf7a", - "integer": 38, - "date": "Mon Nov 07 2011 03:37:10 GMT-0800 (PST)", - "shortText": "laborum ipsum enim et quis", - "mediumText": "Nulla proident ut aliquip consectetur occaecat aliqua laboris incididunt. Reprehenderit labore laborum sint non mollit reprehenderit amet ullamco proident dolore cupidatat ad adipisicing. Cupidatat consectetur mollit enim sit ipsum sunt consequat.", - "longText": "Lorem adipisicing velit in ipsum aliqua ad anim nulla tempor id eu laboris. Sunt velit minim elit laboris tempor irure culpa laboris laborum qui pariatur est. Ea laboris id nostrud exercitation non. Aute irure do eiusmod in. Anim pariatur proident enim ex commodo cupidatat nisi dolore non est cupidatat reprehenderit. Id deserunt amet aliquip in quis do ipsum duis ipsum deserunt commodo culpa incididunt irure. Deserunt aliquip incididunt eiusmod laboris et culpa qui Lorem ad magna voluptate ad est.\r\nMollit velit ut eu magna non proident ullamco. Aliquip incididunt consectetur nostrud sunt sint eu labore magna ex. Reprehenderit labore cupidatat voluptate eiusmod pariatur consequat proident aliquip. Ea irure ad aliqua eu exercitation ullamco laborum duis. Ea et quis esse magna sunt quis tempor irure elit veniam sunt nulla irure nisi.\r\nIrure consequat veniam esse ea nostrud excepteur ipsum. Dolore minim tempor in ad ex aliquip amet. Sint id excepteur commodo ipsum ullamco consequat ut nisi nulla.\r\nQuis sunt reprehenderit ad quis. Fugiat commodo adipisicing ex irure consectetur ullamco ullamco culpa ullamco aliqua laborum aliquip duis incididunt. Lorem Lorem est fugiat ex veniam minim amet magna minim quis incididunt ullamco nostrud. Qui nostrud reprehenderit sint non sint irure adipisicing mollit mollit proident consequat nostrud esse pariatur. Ex aute velit magna enim veniam enim id eiusmod. Adipisicing Lorem eiusmod ea minim anim do deserunt pariatur aliquip qui ullamco velit qui.\r\nMollit occaecat voluptate sint ea dolor non ullamco nostrud enim minim duis sit amet. Enim ex reprehenderit nisi ipsum deserunt. Aliqua sit Lorem esse qui et deserunt esse.\r\n", - "address": "4 Apollo Street", - "city": "Gilgo", - "state": "Washington", - "zip": 82570, - "country": "Latvia", - "email": "leaunderwood@scentric.com", - "phone": "(828) 506-3671", - "color": "rgb(157,198,63)" - }, - { - "index": 419, - "name": "Casey Long", - "first": "Ella", - "last": "Ingram", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/avclarkey/73.jpg", - "boolean": false, - "guid": "9594164f-bed6-4350-84a7-8006ac0ac9a1", - "integer": 72, - "date": "Sun Nov 13 1988 09:05:46 GMT-0800 (PST)", - "shortText": "irure labore", - "mediumText": "Esse aliquip est ullamco velit. Amet tempor est consectetur consequat voluptate. Tempor ipsum fugiat enim et. Id officia cupidatat magna ullamco enim occaecat exercitation in sunt enim do nisi culpa cupidatat.", - "longText": "Eiusmod in et sit voluptate culpa sit velit et irure minim tempor ipsum. Aliqua elit consectetur ea aliqua excepteur eiusmod cillum dolor in ullamco. Commodo quis qui laborum labore minim. Ipsum est do proident labore incididunt nisi. Adipisicing magna velit sit consequat mollit proident commodo quis. Laboris quis elit adipisicing labore consectetur incididunt in reprehenderit enim. Magna cillum enim id veniam velit aliquip amet deserunt ea.\r\nReprehenderit ea ullamco do id tempor in duis nulla pariatur. Eiusmod adipisicing in consectetur exercitation. Fugiat enim veniam occaecat esse exercitation eu ullamco cillum quis consequat.\r\nAliqua non enim sunt amet cillum id proident do nulla eiusmod eu. Fugiat in nisi incididunt irure enim. Occaecat culpa tempor culpa anim laborum dolore consectetur Lorem eu.\r\nOfficia et aliqua aliqua ex occaecat est magna officia enim. Commodo officia dolor officia esse aute eiusmod. Velit quis reprehenderit reprehenderit laborum occaecat voluptate. Eiusmod dolor culpa irure do mollit excepteur ullamco aute est culpa. Ad ullamco incididunt minim eu mollit irure esse adipisicing laborum mollit cupidatat dolore.\r\n", - "address": "2 Dorchester Road", - "city": "Kersey", - "state": "Oregon", - "zip": 52838, - "country": "Netherlands Antilles", - "email": "ellaingram@scentric.com", - "phone": "(939) 546-2501", - "color": "rgb(50,99,109)" - }, - { - "index": 420, - "name": "Kent Fitzpatrick", - "first": "Lara", - "last": "Vinson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/arindam_/73.jpg", - "boolean": true, - "guid": "8c5b6ef8-755b-48a6-9d5c-2fbfc73015b9", - "integer": 94, - "date": "Wed Nov 13 1991 18:16:19 GMT-0800 (PST)", - "shortText": "labore", - "mediumText": "Esse ipsum culpa magna consequat fugiat magna aute.", - "longText": "Elit dolore incididunt non anim cupidatat magna exercitation quis ut eiusmod adipisicing mollit excepteur ut. Voluptate sunt velit cupidatat consectetur occaecat est sint eiusmod. Ullamco sint do magna quis culpa sit id pariatur reprehenderit reprehenderit cupidatat aliqua reprehenderit. Et cillum est nisi laborum nisi officia sint ut deserunt eiusmod in. Incididunt dolore duis eiusmod eiusmod officia.\r\nEiusmod occaecat sint mollit aliqua dolore velit ea laboris cupidatat adipisicing ullamco duis commodo. Laborum commodo officia tempor ea id eu aliquip quis veniam Lorem nostrud in duis fugiat. Quis aliquip esse cupidatat cillum quis sint. Aute sunt qui dolore laboris.\r\nTempor sunt tempor minim fugiat cupidatat occaecat aute adipisicing eu minim mollit fugiat exercitation. Tempor occaecat sint ad enim sit occaecat Lorem nisi. Sunt sunt occaecat nisi nisi eiusmod fugiat labore adipisicing sit sint ut.\r\nConsequat minim ad laboris et est. Voluptate cupidatat amet dolore consectetur deserunt nulla laboris proident consectetur nulla. Ex voluptate magna velit ex cillum do. Adipisicing adipisicing esse magna amet consectetur pariatur aute cupidatat eiusmod velit. Fugiat sint occaecat tempor qui cillum ad nulla. Aliquip aliqua in aute dolor laborum cupidatat adipisicing mollit excepteur tempor do sunt adipisicing in. Ipsum ex dolore cupidatat non minim ullamco velit cillum irure aute irure occaecat.\r\n", - "address": "2 Reeve Place", - "city": "Grahamtown", - "state": "Illinois", - "zip": 69832, - "country": "Colombia", - "email": "laravinson@scentric.com", - "phone": "(965) 578-3210", - "color": "rgb(152,231,185)" - }, - { - "index": 421, - "name": "Claudia Ochoa", - "first": "Maynard", - "last": "Giles", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/emmakardaras/73.jpg", - "boolean": true, - "guid": "97fdeebe-aaf9-4f67-a240-254056b3fbc4", - "integer": 43, - "date": "Thu Oct 04 2007 14:11:47 GMT-0700 (PDT)", - "shortText": "commodo nostrud", - "mediumText": "Consectetur aliquip reprehenderit magna id ex sint nostrud aute aliquip adipisicing. Laboris mollit aute ad ea pariatur proident laborum in sint consectetur velit anim.", - "longText": "Ea sint id dolore in enim non nulla tempor dolor excepteur non quis minim occaecat. Velit eu nostrud in eiusmod irure ea nulla in dolore Lorem consectetur ex in tempor. Ad duis ullamco dolor elit Lorem est dolore irure et non enim. Tempor laborum dolor velit consequat incididunt.\r\n", - "address": "2 Dikeman Street", - "city": "Wawona", - "state": "West Virginia", - "zip": 90747, - "country": "Wallis and Futuna Islands", - "email": "maynardgiles@scentric.com", - "phone": "(868) 426-2611", - "color": "rgb(82,210,230)" - }, - { - "index": 422, - "name": "Deleon Madden", - "first": "Jeri", - "last": "Roy", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/georgespillman/73.jpg", - "boolean": true, - "guid": "0eeed2b0-573c-4b2a-8cf7-24f3929d42f6", - "integer": 3, - "date": "Mon Jul 24 2006 08:25:36 GMT-0700 (PDT)", - "shortText": "tempor", - "mediumText": "Veniam mollit ut veniam anim ex proident nostrud. Qui dolore aute velit non voluptate sit ad reprehenderit sunt mollit. Reprehenderit fugiat occaecat duis mollit.", - "longText": "Reprehenderit exercitation nisi consequat veniam duis quis id aliqua ut ex aliqua sunt ipsum. Ad ad amet qui mollit officia Lorem exercitation dolore nulla. Quis commodo mollit sunt labore aliquip ipsum. Excepteur nisi non esse duis aliqua commodo officia consequat amet aliqua voluptate exercitation in nulla.\r\nConsectetur aute sit quis qui laboris. Laboris anim nulla in voluptate. Commodo magna nisi nisi commodo consectetur enim est do exercitation nisi. Mollit aliquip sint ea qui laborum.\r\nConsectetur eiusmod magna nisi mollit sint sunt id nostrud dolor eu. Exercitation mollit fugiat anim nisi nisi irure ipsum tempor eu. Est nisi consequat occaecat voluptate ad velit mollit amet. Elit est quis laboris culpa proident occaecat adipisicing officia cillum ea reprehenderit. Do quis ex aliqua culpa.\r\nIn minim proident enim nisi quis consequat. Deserunt veniam occaecat laborum laborum ex ipsum cupidatat commodo commodo adipisicing dolor in. Ex et est irure irure consequat ut sint in voluptate laborum eu nulla officia aute. Non enim magna nostrud deserunt minim pariatur irure elit ex qui minim. Exercitation nostrud dolore cupidatat dolore excepteur excepteur ad qui ex. Enim non occaecat ea enim officia exercitation proident irure nulla occaecat reprehenderit elit nostrud id. Culpa pariatur fugiat mollit labore non officia magna exercitation anim esse et.\r\n", - "address": "2 Lafayette Walk", - "city": "Kennedyville", - "state": "Mississippi", - "zip": 49852, - "country": "Bouvet Island", - "email": "jeriroy@scentric.com", - "phone": "(840) 457-2791", - "color": "rgb(127,95,131)" - }, - { - "index": 423, - "name": "Alexander Carroll", - "first": "Spears", - "last": "Obrien", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/fireupman/73.jpg", - "boolean": false, - "guid": "36236dec-3738-49d8-befd-946c2774fd1e", - "integer": 88, - "date": "Tue Jul 01 1986 19:56:06 GMT-0700 (PDT)", - "shortText": "aute non ex Lorem", - "mediumText": "Proident Lorem aliqua laboris adipisicing ullamco velit consequat exercitation nisi. Laborum enim duis nulla reprehenderit est eu ad laboris ad.", - "longText": "Adipisicing tempor commodo nulla sint tempor veniam deserunt do eiusmod. Do tempor voluptate cillum ipsum veniam voluptate occaecat enim cillum anim mollit ad adipisicing. Consequat consequat aute dolor anim ut. Incididunt Lorem mollit anim esse veniam.\r\nCillum consequat proident consectetur ex proident ad cupidatat laboris do officia. Amet deserunt eu eiusmod aliquip esse ipsum laboris. Do dolor nostrud dolore sint quis nulla pariatur quis adipisicing. Culpa exercitation incididunt ullamco culpa sit.\r\nDolore irure sunt eiusmod tempor. Esse deserunt ex elit Lorem et nulla esse officia ipsum culpa. Lorem sunt duis tempor nostrud enim ea excepteur ad. Ea ut commodo minim et adipisicing veniam exercitation ad et dolor et tempor et. Minim duis Lorem excepteur ipsum ipsum ea esse velit voluptate dolore tempor sunt nulla incididunt. Excepteur est est consectetur in. Aliquip nisi ipsum deserunt nulla.\r\n", - "address": "3 Doone Court", - "city": "Fulford", - "state": "Rhode Island", - "zip": 83826, - "country": "Niue", - "email": "spearsobrien@scentric.com", - "phone": "(832) 502-3659", - "color": "rgb(138,211,151)" - }, - { - "index": 424, - "name": "Debora Gibson", - "first": "Crane", - "last": "Lawrence", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kylefrost/73.jpg", - "boolean": false, - "guid": "0a2de76d-c5db-4e74-89e0-3ff39bf504ad", - "integer": 29, - "date": "Fri Apr 01 1977 03:54:28 GMT-0800 (PST)", - "shortText": "reprehenderit", - "mediumText": "Esse veniam veniam in do incididunt non culpa laborum.", - "longText": "Ullamco exercitation deserunt enim est ea. Ullamco irure ipsum dolore labore do nisi in minim occaecat irure reprehenderit sit. Elit culpa officia ut labore nulla duis ullamco magna culpa veniam. Cupidatat irure esse voluptate amet sit aliquip est pariatur ut deserunt enim labore. Nulla occaecat cupidatat et ex amet qui esse. Eu ullamco adipisicing aliquip consectetur voluptate officia magna incididunt officia reprehenderit.\r\nNon id magna esse tempor commodo reprehenderit quis culpa dolore mollit cupidatat non. Ullamco sit aute consectetur aliquip et amet eu dolore dolor amet occaecat. Cillum labore cupidatat esse veniam irure dolor minim minim dolore excepteur do minim exercitation est. Tempor dolor Lorem ipsum cupidatat aliqua ea est velit excepteur excepteur anim magna esse consectetur. Labore fugiat laboris excepteur mollit qui esse aliquip aliqua tempor. Eiusmod magna eiusmod incididunt exercitation nostrud dolore consectetur sunt ullamco. Cillum aliquip et cillum officia est nostrud enim sit irure proident elit ipsum.\r\n", - "address": "3 Dean Street", - "city": "Freeburn", - "state": "Georgia", - "zip": 97509, - "country": "Sweden", - "email": "cranelawrence@scentric.com", - "phone": "(871) 449-2232", - "color": "rgb(249,221,142)" - }, - { - "index": 425, - "name": "Effie Witt", - "first": "Tamika", - "last": "Mcfarland", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/quser/73.jpg", - "boolean": false, - "guid": "24996c53-4fce-4e30-9a15-01ad7f8a690e", - "integer": 72, - "date": "Sun Nov 03 1991 09:36:14 GMT-0800 (PST)", - "shortText": "dolore ullamco do dolor", - "mediumText": "Ad ex aliquip minim exercitation ex incididunt adipisicing sit sit aliqua. Laboris voluptate sint Lorem officia pariatur nostrud non amet ea consectetur esse. Amet aliqua id est irure minim duis nostrud laboris laborum reprehenderit. Ea anim proident nisi adipisicing dolor. Magna mollit do irure do veniam minim proident.", - "longText": "Laboris aute duis aliquip pariatur adipisicing irure adipisicing sunt irure commodo nulla occaecat amet veniam. Nostrud ex voluptate elit nulla voluptate culpa dolore excepteur. Qui ea ex adipisicing proident sint adipisicing ea. Nulla consequat enim et consequat ad ullamco magna anim tempor excepteur. Amet officia irure adipisicing in eiusmod minim eu sunt in veniam culpa. Quis eu aliqua proident in aute proident ea. Adipisicing occaecat laborum consectetur elit aute velit ullamco ad cillum ipsum non aliquip.\r\nCommodo qui incididunt deserunt enim excepteur ut fugiat. Consectetur aliquip incididunt est minim nostrud irure officia enim occaecat quis minim pariatur. Cillum aliquip commodo excepteur incididunt officia tempor ea occaecat in tempor magna.\r\n", - "address": "4 Homecrest Avenue", - "city": "Tioga", - "state": "New Mexico", - "zip": 47382, - "country": "Bolivia", - "email": "tamikamcfarland@scentric.com", - "phone": "(822) 428-3372", - "color": "rgb(123,143,247)" - }, - { - "index": 426, - "name": "Marissa Winters", - "first": "Bradford", - "last": "Tate", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/maikelk/73.jpg", - "boolean": true, - "guid": "03ba235d-b8bd-446d-a82f-209ef1f02bc3", - "integer": 21, - "date": "Sat Feb 21 1987 11:19:00 GMT-0800 (PST)", - "shortText": "deserunt mollit", - "mediumText": "Velit non amet irure dolore nisi proident nisi.", - "longText": "Et ad occaecat ipsum amet aliquip sit nisi. Adipisicing ut esse dolore aliquip ut. Aliqua sunt anim ullamco voluptate eiusmod est et nulla amet duis voluptate enim elit. Ea consequat ea aliquip nulla enim in enim mollit ea consequat.\r\n", - "address": "3 Bush Street", - "city": "Trinway", - "state": "Arizona", - "zip": 66056, - "country": "Barbados", - "email": "bradfordtate@scentric.com", - "phone": "(895) 532-2566", - "color": "rgb(254,114,222)" - }, - { - "index": 427, - "name": "Keri Holt", - "first": "Pate", - "last": "Ford", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ifarafonow/73.jpg", - "boolean": true, - "guid": "fe01b1c1-e14b-4167-92b2-6eef711b41a3", - "integer": 74, - "date": "Sun Jul 01 1979 19:51:30 GMT-0700 (PDT)", - "shortText": "eiusmod pariatur sunt sit", - "mediumText": "Tempor officia velit commodo aute laborum nostrud incididunt id id et. Esse cillum do deserunt sit tempor nisi ipsum sint proident sint. Aute officia esse voluptate pariatur ut. In consequat eiusmod exercitation nostrud reprehenderit et.", - "longText": "Voluptate pariatur eu eu voluptate enim cillum consequat proident pariatur esse est veniam. Qui nisi nulla laborum adipisicing irure occaecat. Mollit amet ullamco velit et reprehenderit amet. Ex ex quis do et anim fugiat exercitation nulla fugiat. Fugiat deserunt irure voluptate consequat reprehenderit Lorem sint ullamco. Ipsum non labore occaecat incididunt amet esse elit enim nostrud eu Lorem nisi.\r\nId culpa non enim aliquip dolore. Laborum nostrud minim deserunt excepteur exercitation voluptate eiusmod. Adipisicing pariatur occaecat voluptate reprehenderit aute. Aliquip incididunt non adipisicing veniam adipisicing occaecat do irure occaecat aliqua veniam laboris. Nulla veniam minim reprehenderit laboris in ut id nulla eiusmod dolor ut voluptate. Tempor enim nostrud ut velit eu cupidatat amet.\r\nAute ipsum ex nulla ut labore ex exercitation nulla anim. Pariatur sit voluptate reprehenderit enim amet. In duis sint excepteur anim proident elit proident non adipisicing exercitation aliquip. Reprehenderit occaecat duis ipsum eu et ad elit do sunt fugiat aliqua. Ea enim mollit dolore qui reprehenderit pariatur nostrud. Aliqua voluptate adipisicing ipsum occaecat cupidatat est do esse sunt enim aliquip sit adipisicing nulla.\r\nId ullamco amet ad deserunt. Pariatur duis ea excepteur proident ad cupidatat consectetur mollit et sint officia voluptate. Sunt et aliqua anim quis proident culpa cillum. Deserunt consequat dolore do anim eiusmod magna. Quis dolor adipisicing anim aliquip exercitation quis adipisicing. Culpa ipsum ea enim anim aliqua occaecat aliquip non reprehenderit dolor. Non proident labore enim est.\r\nProident reprehenderit sunt est aliqua. Dolor ex voluptate occaecat Lorem velit minim do voluptate aute in aliqua. Aute ut voluptate Lorem eu occaecat non deserunt nulla Lorem do minim magna. Duis sit nisi commodo aliquip enim pariatur. Cillum velit officia proident irure dolor.\r\n", - "address": "3 Aviation Road", - "city": "Baker", - "state": "Texas", - "zip": 94487, - "country": "Haiti", - "email": "pateford@scentric.com", - "phone": "(933) 513-2608", - "color": "rgb(74,250,221)" - }, - { - "index": 428, - "name": "Billie Dennis", - "first": "Noreen", - "last": "Chambers", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ananya159/73.jpg", - "boolean": true, - "guid": "1277af24-5433-4c02-a123-9dbc3554824d", - "integer": 91, - "date": "Tue Jun 01 1999 05:28:24 GMT-0700 (PDT)", - "shortText": "anim consectetur minim esse", - "mediumText": "Sunt eu velit irure ipsum velit.", - "longText": "Culpa ipsum irure eiusmod et ad esse cillum. In ipsum qui dolor dolor. Ex deserunt incididunt duis exercitation quis est esse. Anim adipisicing ipsum aute qui mollit. Occaecat veniam excepteur velit nostrud cillum in nostrud ex magna ex.\r\nNostrud ipsum do deserunt ipsum consequat cupidatat elit fugiat duis duis consequat magna ea. Do labore ea do et cupidatat mollit et eiusmod. Exercitation exercitation aliqua ea irure duis. Lorem ipsum eu veniam ad nulla nisi ipsum in eu laborum pariatur ipsum cupidatat officia. Adipisicing pariatur velit commodo ipsum sint fugiat elit esse dolore ipsum ut exercitation officia excepteur.\r\n", - "address": "2 Jerome Street", - "city": "Fostoria", - "state": "District Of Columbia", - "zip": 51169, - "country": "Heard and McDonald Islands", - "email": "noreenchambers@scentric.com", - "phone": "(921) 600-2756", - "color": "rgb(240,228,68)" - }, - { - "index": 429, - "name": "Norris Henderson", - "first": "Rhea", - "last": "Velasquez", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/horaciobella/73.jpg", - "boolean": true, - "guid": "f6c07756-a3f1-410c-a912-acb877dca497", - "integer": 10, - "date": "Thu Jul 17 2008 11:56:06 GMT-0700 (PDT)", - "shortText": "adipisicing irure cillum", - "mediumText": "Sint duis irure cupidatat aliqua nostrud magna aliquip do do quis mollit occaecat.", - "longText": "Dolor et duis nisi est elit dolore amet enim et ad officia duis. Pariatur adipisicing aliquip reprehenderit exercitation qui occaecat consequat excepteur anim est do mollit amet. In eu eiusmod ea elit. Laborum duis culpa reprehenderit reprehenderit.\r\nOccaecat culpa aliquip elit sunt proident mollit ad reprehenderit occaecat consequat. Id pariatur commodo consectetur cillum laboris et dolor ea voluptate. Laborum magna nisi sunt eu ut mollit amet esse consectetur sunt. Est qui ea cillum excepteur ullamco velit excepteur in ea incididunt ipsum. Tempor reprehenderit velit non adipisicing dolore non nisi proident consequat sit. Nulla est incididunt sint proident do sunt ipsum adipisicing Lorem ad.\r\nNulla excepteur enim ipsum est. Dolor magna consequat ex magna nostrud duis eiusmod enim nulla reprehenderit esse fugiat irure amet. Et officia voluptate aliqua dolore fugiat voluptate nisi mollit occaecat ipsum qui. Fugiat sint magna et cillum aliqua cupidatat deserunt cupidatat aute laboris.\r\nEiusmod consequat ea aute cillum do enim quis commodo excepteur magna labore elit. Voluptate nisi velit dolore consequat elit irure fugiat. Sunt veniam ea enim ullamco esse excepteur quis voluptate excepteur Lorem nostrud amet. Ad commodo labore excepteur velit sunt ut. Ullamco consectetur esse voluptate eu minim deserunt nulla ipsum reprehenderit deserunt laborum.\r\nDuis adipisicing reprehenderit enim qui. Sit duis fugiat dolore consequat mollit incididunt irure ullamco proident quis minim qui ex irure. Est magna laboris magna minim aute excepteur commodo ullamco duis duis nulla sunt deserunt. Irure sunt ea do ipsum aliquip nisi nulla ex ex nostrud. Elit amet voluptate commodo id minim ut est ut minim adipisicing in. Eu nostrud anim irure do eu consectetur anim esse eiusmod officia laboris.\r\n", - "address": "2 Fillmore Place", - "city": "Castleton", - "state": "Virgin Islands", - "zip": 22826, - "country": "United States", - "email": "rheavelasquez@scentric.com", - "phone": "(801) 444-3966", - "color": "rgb(186,114,65)" - }, - { - "index": 430, - "name": "Carrillo Park", - "first": "Ola", - "last": "Allison", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/thatdesigner/73.jpg", - "boolean": true, - "guid": "3a544cbd-1319-4b62-b664-89f96dc2d58f", - "integer": 79, - "date": "Wed Feb 03 1999 14:08:18 GMT-0800 (PST)", - "shortText": "tempor", - "mediumText": "Id et eiusmod ad sunt laborum. Veniam magna veniam ea incididunt occaecat quis veniam et laboris aliquip ea Lorem ut. Eu officia incididunt eu veniam.", - "longText": "Voluptate reprehenderit nostrud non adipisicing ad ex enim. Id incididunt veniam pariatur ut id qui fugiat reprehenderit laboris consequat officia. Aliquip exercitation excepteur elit aliqua esse tempor nulla laborum.\r\nIn mollit reprehenderit irure duis cupidatat ad velit irure ad. Est et laborum non reprehenderit. Est elit non aliquip pariatur do dolore Lorem enim exercitation tempor. Amet culpa ut nostrud dolor fugiat.\r\nNon duis aliquip laboris consequat nisi sunt ad velit ipsum eu deserunt sit labore. Qui velit ipsum cupidatat ad irure nisi adipisicing eu. Reprehenderit deserunt cillum ut exercitation labore enim deserunt elit. Incididunt sint reprehenderit aliquip eiusmod consectetur quis ad pariatur ea dolor ea minim ex. Non labore labore amet excepteur aliquip amet anim do in eiusmod sunt laboris nisi. Est qui qui laboris veniam elit elit sunt in. Tempor commodo ex ea laborum.\r\nDolore dolore dolore labore velit fugiat commodo consectetur. Ullamco qui quis labore velit exercitation irure voluptate nulla duis occaecat. Ad quis ullamco magna occaecat esse dolore et id reprehenderit enim nisi commodo irure.\r\nFugiat proident deserunt nulla et pariatur ullamco do. Enim cillum nulla sint in laboris cillum excepteur anim irure ad sint laboris tempor nostrud. Enim pariatur amet sint non nisi commodo. Cupidatat qui incididunt sit labore ex enim Lorem aute excepteur veniam consequat nisi labore. Proident dolor excepteur aute et proident. Veniam excepteur veniam laboris deserunt sint.\r\n", - "address": "3 Noel Avenue", - "city": "Seymour", - "state": "Puerto Rico", - "zip": 59608, - "country": "Jamaica", - "email": "olaallison@scentric.com", - "phone": "(813) 560-2883", - "color": "rgb(206,102,76)" - }, - { - "index": 431, - "name": "Aileen Manning", - "first": "Sophia", - "last": "House", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/snaphappydad/73.jpg", - "boolean": false, - "guid": "832335a5-d05a-4d43-8c98-091dad23386f", - "integer": 82, - "date": "Fri Feb 17 2012 22:56:46 GMT-0800 (PST)", - "shortText": "amet est Lorem velit tempor", - "mediumText": "Cupidatat incididunt do aliqua velit occaecat officia occaecat amet occaecat Lorem veniam eu ipsum cillum. Amet esse aliqua in qui excepteur commodo veniam ut velit.", - "longText": "Officia esse consectetur proident consequat. Ex eiusmod cupidatat labore velit anim fugiat amet ipsum labore. Ut velit id ullamco occaecat et. Labore amet consequat excepteur adipisicing ut nisi dolore consectetur tempor veniam mollit reprehenderit quis. Esse ad irure elit et.\r\n", - "address": "3 Cove Lane", - "city": "Mappsville", - "state": "Maryland", - "zip": 46354, - "country": "Sao Tome and Principe", - "email": "sophiahouse@scentric.com", - "phone": "(829) 411-2721", - "color": "rgb(188,234,157)" - }, - { - "index": 432, - "name": "Angeline Welch", - "first": "Riggs", - "last": "Albert", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/cristianovalim/73.jpg", - "boolean": true, - "guid": "ff60a0af-9800-4828-beec-cc4ad3e7a4f5", - "integer": 75, - "date": "Wed Oct 28 1992 15:16:43 GMT-0800 (PST)", - "shortText": "laborum aliquip minim", - "mediumText": "Minim est qui proident deserunt nostrud commodo nisi non in veniam duis. Nisi minim aliqua cupidatat est dolore consequat nisi. Proident ut incididunt aute ea qui id reprehenderit veniam commodo.", - "longText": "Eu velit exercitation id amet. Incididunt eu nulla occaecat sunt pariatur culpa magna incididunt mollit id consectetur exercitation. Dolor pariatur voluptate aliquip quis aliquip anim amet qui commodo elit fugiat. Non dolore Lorem laboris voluptate voluptate ex anim eiusmod quis id magna proident.\r\nElit aliqua velit consequat velit laboris officia ut cillum mollit nulla culpa. Ut ea qui minim deserunt aliquip cillum ea proident duis. Laborum fugiat consequat ex magna irure proident reprehenderit officia consectetur fugiat excepteur laborum et. Est veniam non elit nisi minim. Ex sunt elit minim incididunt eu officia excepteur mollit nisi ad. Do est nisi magna et tempor culpa. Elit irure ex ut cillum ipsum ipsum ex esse dolor.\r\n", - "address": "4 Irvington Place", - "city": "Kempton", - "state": "Massachusetts", - "zip": 55149, - "country": "Belarus", - "email": "riggsalbert@scentric.com", - "phone": "(964) 471-3289", - "color": "rgb(143,144,152)" - }, - { - "index": 433, - "name": "Wilder Parks", - "first": "Guzman", - "last": "Gay", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pmeissner/73.jpg", - "boolean": true, - "guid": "34d47442-340f-4017-a323-333b9d8966a7", - "integer": 46, - "date": "Sat May 01 1982 19:47:12 GMT-0700 (PDT)", - "shortText": "fugiat nisi fugiat", - "mediumText": "Lorem ipsum ipsum elit ad reprehenderit do culpa proident qui labore ea cillum tempor aute. Velit nisi anim excepteur commodo tempor. Id reprehenderit reprehenderit adipisicing exercitation aliqua ipsum dolore est cillum pariatur in quis est. Ad adipisicing irure qui ullamco eiusmod excepteur laborum.", - "longText": "Lorem id elit est velit veniam ullamco voluptate et do. Non ea ad minim Lorem in. Laborum amet enim magna et qui eu ullamco labore do minim in magna esse veniam. Incididunt nostrud nulla ut excepteur et et. Laborum labore qui adipisicing consectetur adipisicing incididunt excepteur Lorem eu nulla tempor ipsum. Ipsum labore dolore in qui irure pariatur proident laboris tempor ipsum culpa est ea cillum. Lorem sunt eu proident enim.\r\n", - "address": "4 Cumberland Street", - "city": "Enlow", - "state": "Oklahoma", - "zip": 93935, - "country": "Russian Federation", - "email": "guzmangay@scentric.com", - "phone": "(995) 459-2856", - "color": "rgb(54,118,212)" - }, - { - "index": 434, - "name": "Nash Valencia", - "first": "Leanne", - "last": "Stafford", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/akbarbobojonov/73.jpg", - "boolean": false, - "guid": "0594778f-1bb9-4338-88af-480e9dcce7ec", - "integer": 12, - "date": "Wed Aug 07 1985 09:48:17 GMT-0700 (PDT)", - "shortText": "exercitation", - "mediumText": "Incididunt commodo exercitation do eu laborum do fugiat aute dolore nostrud proident tempor. Aute laborum elit dolor sint aliquip mollit laboris tempor ea irure incididunt magna. Id aliquip sit do magna.", - "longText": "Consectetur voluptate duis cupidatat incididunt laborum. Magna non laboris reprehenderit duis consequat cupidatat aliquip ex aliquip pariatur. Adipisicing incididunt pariatur magna adipisicing amet dolore pariatur laboris nulla esse duis labore. Dolore est aute do do culpa pariatur. Consequat ea minim qui laborum culpa velit id fugiat nostrud sint. Ipsum irure cillum quis officia eu laboris.\r\nLorem ex duis eu deserunt minim cupidatat et non non et sunt. Pariatur ut culpa et non non voluptate ut velit sunt eu non. Cillum exercitation veniam nostrud est id laboris. Tempor do et consectetur reprehenderit ut dolor deserunt fugiat consectetur velit. Nulla elit deserunt dolor do cupidatat amet velit consectetur. Consectetur in nostrud sunt deserunt est aute cupidatat mollit aliquip sint cupidatat sit esse. Ut eu ut veniam sunt do proident cillum velit voluptate.\r\nCupidatat et aute tempor dolore. Aute exercitation sunt eiusmod ut consequat ut pariatur et excepteur. Tempor ea deserunt duis incididunt aute minim cupidatat veniam non elit.\r\nEiusmod occaecat culpa ipsum enim deserunt qui irure. Reprehenderit dolor quis dolor dolore culpa aliquip ipsum. Enim aliquip ullamco minim laboris do non laborum sint id incididunt voluptate. Do ea enim cupidatat deserunt ipsum nulla mollit ullamco laborum sint.\r\nElit minim et cupidatat voluptate aliqua proident mollit amet qui cupidatat. Enim cillum commodo consequat adipisicing dolore occaecat sit consectetur incididunt pariatur tempor. Ea eu do ea elit et.\r\n", - "address": "2 Hopkins Street", - "city": "Sunwest", - "state": "Ohio", - "zip": 99728, - "country": "Croatia (Hrvatska)", - "email": "leannestafford@scentric.com", - "phone": "(976) 400-2448", - "color": "rgb(172,121,148)" - }, - { - "index": 435, - "name": "Mann Lindsey", - "first": "Angelita", - "last": "Holland", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pjnes/73.jpg", - "boolean": true, - "guid": "b158f0bc-58b6-497c-b8e9-827e2fd5adcb", - "integer": 86, - "date": "Tue Mar 30 1999 04:50:25 GMT-0800 (PST)", - "shortText": "nulla", - "mediumText": "Cupidatat sint laboris irure irure quis irure laborum anim ex aliquip ad. Ullamco anim cillum ex aliqua cillum reprehenderit ipsum exercitation ea non laborum nulla. Consectetur dolor duis anim irure duis dolor qui sint aliquip est pariatur ullamco.", - "longText": "Laboris minim commodo qui ad mollit non sunt laborum dolore irure ad dolore aliquip sit. Eu ullamco nulla magna velit non. Cupidatat nulla reprehenderit qui elit nisi mollit adipisicing anim. Irure laborum aute culpa nisi et voluptate esse minim.\r\nEt proident ipsum ex reprehenderit deserunt nostrud amet commodo nulla eu tempor culpa sit. Aute fugiat dolor commodo quis laboris nulla ea laboris. Et excepteur laborum aute et.\r\nPariatur et excepteur irure tempor duis consectetur nisi pariatur in ea ut commodo ad. Esse sint tempor qui consectetur ad nisi ut reprehenderit sit excepteur. Dolore mollit voluptate ipsum ad in aliqua nisi. Officia nulla aliquip tempor do culpa velit. Ut Lorem non cillum ipsum. Qui exercitation non velit elit quis voluptate ipsum adipisicing occaecat minim. Est consectetur duis minim irure reprehenderit.\r\nVoluptate deserunt duis ut elit ut cillum officia nulla sint do. Elit deserunt est mollit mollit et ullamco dolore. Amet consequat pariatur cupidatat velit. Eiusmod elit qui mollit nisi ipsum enim. Ullamco eu commodo est consequat. Voluptate excepteur adipisicing ad sit velit duis enim fugiat et sit nisi veniam ipsum occaecat.\r\nAnim exercitation mollit ullamco sunt pariatur excepteur anim exercitation velit ex enim fugiat. Ullamco excepteur ex sint nulla laboris qui anim sunt nisi. Esse ea exercitation dolore adipisicing. Quis amet aute consequat occaecat officia ea nulla.\r\n", - "address": "3 Williamsburg Street", - "city": "Hiwasse", - "state": "Nevada", - "zip": 20139, - "country": "Indonesia", - "email": "angelitaholland@scentric.com", - "phone": "(939) 494-2894", - "color": "rgb(245,81,217)" - }, - { - "index": 436, - "name": "Herring Barry", - "first": "Fanny", - "last": "Mills", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/balintorosz/73.jpg", - "boolean": true, - "guid": "80d4034b-37c2-4d36-8a84-8902d6dbd1e8", - "integer": 7, - "date": "Thu Feb 26 1987 04:22:07 GMT-0800 (PST)", - "shortText": "culpa veniam laborum", - "mediumText": "Eu culpa qui cillum nulla occaecat irure proident laboris. Enim Lorem eiusmod minim magna ea eu reprehenderit eu ea nulla aute. Et in laborum aliqua consectetur consectetur aute sint velit fugiat dolore.", - "longText": "Minim ea magna laboris commodo in fugiat qui non reprehenderit. Sint tempor labore qui ullamco nisi tempor consequat tempor quis. Aute dolore minim nulla magna ut ex commodo mollit dolor ipsum dolor. Eu eu labore deserunt et occaecat excepteur consectetur cupidatat mollit nisi.\r\nTempor aute culpa sit occaecat consequat. Culpa ullamco proident aliquip labore. Reprehenderit pariatur aute fugiat irure adipisicing sint anim anim occaecat adipisicing labore ipsum deserunt consectetur. Voluptate eiusmod eu pariatur proident nostrud sint labore. Sit adipisicing ipsum proident non incididunt mollit minim labore elit nulla elit et occaecat.\r\nSit culpa veniam id minim minim dolore elit culpa ut enim est. Ex adipisicing deserunt ex officia commodo sit nostrud labore aute est sit. Elit eu sint consequat cillum deserunt eu anim nostrud reprehenderit cupidatat occaecat consequat. Sint anim est ullamco non sint dolore excepteur.\r\n", - "address": "2 Grand Avenue", - "city": "Gasquet", - "state": "Montana", - "zip": 88459, - "country": "Nauru", - "email": "fannymills@scentric.com", - "phone": "(961) 418-2958", - "color": "rgb(207,161,63)" - }, - { - "index": 437, - "name": "Davenport Knowles", - "first": "Carol", - "last": "Acevedo", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/martinhn/73.jpg", - "boolean": true, - "guid": "20017740-0bff-43ce-a66b-b139bdd82fdf", - "integer": 10, - "date": "Sat Aug 12 1989 13:36:36 GMT-0700 (PDT)", - "shortText": "tempor fugiat ex do", - "mediumText": "Culpa quis minim eiusmod veniam ullamco cupidatat velit dolore cillum aute duis reprehenderit. Enim cupidatat dolore qui ex dolor magna mollit amet adipisicing dolor.", - "longText": "Voluptate ex duis culpa est ullamco magna ullamco id. Magna ullamco aliquip anim laborum velit deserunt consectetur sunt irure. Anim nulla ullamco veniam sint ex culpa eu minim dolor excepteur. Adipisicing ex tempor duis ea. Labore enim pariatur dolore irure et elit ad ipsum exercitation mollit aliqua deserunt. Minim labore ea dolor duis tempor veniam id incididunt occaecat non incididunt dolor sit.\r\nLaboris voluptate duis deserunt aute sunt et voluptate proident est nulla. Labore aute esse est nisi in excepteur laborum irure. Fugiat sint qui esse excepteur duis qui do labore. Non incididunt elit nulla ex officia cupidatat elit culpa id aliqua. Ex aute esse ex reprehenderit. Veniam excepteur aliquip irure laborum eiusmod. Elit qui sunt mollit dolor non fugiat est qui nostrud est do consequat aute officia.\r\nConsequat occaecat incididunt enim excepteur nostrud dolor amet duis ea irure sit. Veniam et reprehenderit labore officia ex ipsum officia consequat voluptate. Incididunt duis commodo deserunt aute deserunt dolore sunt Lorem. Veniam non ea laborum mollit aliquip qui eu fugiat duis. Fugiat id sunt aute mollit elit sit incididunt veniam tempor. Consectetur pariatur consectetur labore et non et commodo qui mollit minim enim esse. Et proident elit minim est occaecat.\r\nDo aliquip excepteur nulla elit. Laboris consequat do officia veniam laboris. Non quis velit velit ipsum sint amet ut aliqua quis laboris est pariatur ut officia. Eu esse consequat irure dolore quis in sit. Labore ipsum minim ad ut voluptate ea non. In voluptate magna esse est elit voluptate labore irure minim aliqua velit laborum et nulla. Ipsum nostrud est consequat tempor velit culpa sint fugiat dolor.\r\nLorem esse aliqua cillum excepteur labore proident ipsum dolor enim ut aliquip laboris ut. Ullamco aliqua pariatur enim dolore est irure. Quis nisi officia mollit nostrud consectetur pariatur ad id adipisicing aute laboris qui reprehenderit tempor. Nulla non nostrud excepteur duis excepteur quis. Ex do voluptate sit Lorem ea irure eu velit culpa.\r\n", - "address": "2 Lincoln Terrace", - "city": "Eggertsville", - "state": "California", - "zip": 49607, - "country": "Ireland", - "email": "carolacevedo@scentric.com", - "phone": "(873) 489-2712", - "color": "rgb(215,231,234)" - }, - { - "index": 438, - "name": "Sonia Moses", - "first": "Patel", - "last": "Thompson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/sasha_shestakov/73.jpg", - "boolean": false, - "guid": "e3a9a23d-000c-47aa-8039-4fce46c5565c", - "integer": 26, - "date": "Sun Jan 13 1991 10:21:14 GMT-0800 (PST)", - "shortText": "enim tempor ea", - "mediumText": "Deserunt consectetur velit proident ipsum aute sunt ullamco incididunt consequat aliqua sit mollit. Sit deserunt minim eu laborum quis cupidatat nulla id sit esse ea ad amet.", - "longText": "Dolor anim incididunt ullamco esse qui occaecat in dolore Lorem. Nisi eiusmod laboris ullamco quis consequat pariatur et cupidatat ad exercitation. In eu cillum occaecat amet tempor cillum. Exercitation id ullamco mollit non. Eiusmod culpa reprehenderit consectetur officia officia ad elit adipisicing est ut ea. Fugiat dolor nostrud occaecat consequat elit nulla ex. Ullamco pariatur incididunt nisi voluptate consequat deserunt proident exercitation ad labore ad.\r\nExcepteur tempor dolor eu duis Lorem deserunt elit ipsum. Cillum velit dolor esse Lorem commodo. Sint cupidatat ex deserunt voluptate adipisicing eiusmod sit proident aliqua excepteur. Consequat cillum irure sint ex reprehenderit incididunt est.\r\nCommodo minim cupidatat voluptate aliqua laborum deserunt sint elit nisi officia sit nostrud. Lorem exercitation laborum mollit adipisicing quis. Ad officia nisi cillum consequat non sunt sunt. Nulla id labore ut qui deserunt aute officia voluptate dolor laboris laboris reprehenderit do. Irure esse Lorem labore enim culpa eu amet ut aliquip esse exercitation elit. Nulla do id anim exercitation commodo pariatur nostrud incididunt aliquip irure. Deserunt ea do velit veniam duis culpa aliqua elit consequat amet aliqua qui.\r\nAliquip et nostrud tempor occaecat amet nulla duis non amet. Ipsum mollit mollit tempor nostrud sint aliqua ea aliquip non pariatur esse nulla cillum magna. Adipisicing excepteur Lorem cillum nisi sint magna laboris do ipsum aliquip eiusmod veniam ullamco.\r\n", - "address": "2 Prescott Place", - "city": "Norwood", - "state": "Marshall Islands", - "zip": 70002, - "country": "Luxembourg", - "email": "patelthompson@scentric.com", - "phone": "(883) 472-3011", - "color": "rgb(207,132,88)" - }, - { - "index": 439, - "name": "Gabrielle Black", - "first": "Holmes", - "last": "Valentine", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/vovkasolovev/73.jpg", - "boolean": false, - "guid": "4bc9e815-0354-4c95-b76c-945cd74c26d0", - "integer": 40, - "date": "Mon May 10 2010 09:38:40 GMT-0700 (PDT)", - "shortText": "Lorem", - "mediumText": "Eiusmod velit ea exercitation voluptate qui labore voluptate amet proident. Ullamco nulla cupidatat id in anim. Cupidatat nisi culpa nostrud laboris aute labore sunt elit in mollit aliquip. Incididunt incididunt consequat aliqua ullamco velit.", - "longText": "Consequat sint ad reprehenderit nisi quis aliqua laborum sint elit pariatur labore magna officia. Occaecat culpa do laboris amet mollit ex velit. Proident fugiat sint laborum nostrud aute ex in veniam fugiat. Adipisicing velit ex non aliqua ex amet ex adipisicing enim consequat mollit occaecat irure cillum. Ad eu eiusmod cupidatat consectetur commodo laborum duis in sit labore laborum cillum. Enim qui cupidatat amet non fugiat.\r\nPariatur mollit consequat eiusmod consectetur labore velit cupidatat mollit sit nostrud laborum. Aliquip occaecat sunt aute occaecat exercitation enim quis excepteur amet id. Ullamco sunt est consequat do voluptate. Incididunt do anim do voluptate do ut deserunt minim enim non. Occaecat proident aute officia fugiat do sint in reprehenderit. Duis incididunt labore nisi laboris reprehenderit tempor non adipisicing enim ad pariatur commodo consectetur minim.\r\nTempor elit est et esse. Sit sint culpa laborum id et cupidatat qui cupidatat. Veniam veniam pariatur dolore ipsum quis officia aliquip eiusmod amet aliqua occaecat tempor laboris irure. Aute in pariatur cillum irure. Fugiat in nisi Lorem sit sint amet amet. Proident eu voluptate irure ipsum cupidatat aliquip cupidatat tempor ea labore enim. Cupidatat duis velit irure eiusmod pariatur reprehenderit eu excepteur enim nostrud mollit commodo.\r\nVelit mollit Lorem enim ullamco nostrud exercitation. Enim occaecat Lorem aliquip nulla velit fugiat. Ullamco voluptate non fugiat non minim voluptate velit. Duis dolor laborum qui est enim ut. Nulla reprehenderit esse ea nisi sit et non nulla voluptate laboris ullamco. Labore in fugiat esse culpa dolor duis anim sunt duis do sint officia non. Laborum dolor pariatur consequat ullamco fugiat.\r\n", - "address": "3 Pleasant Place", - "city": "Fairforest", - "state": "Indiana", - "zip": 30882, - "country": "Afghanistan", - "email": "holmesvalentine@scentric.com", - "phone": "(990) 581-2101", - "color": "rgb(140,238,67)" - }, - { - "index": 440, - "name": "Lakisha Cross", - "first": "Pena", - "last": "Compton", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/urbanjahvier/73.jpg", - "boolean": false, - "guid": "cd35d1ad-004f-43fa-a754-2ab807d0ab4d", - "integer": 1, - "date": "Mon Feb 27 2012 17:16:59 GMT-0800 (PST)", - "shortText": "adipisicing anim velit esse", - "mediumText": "Dolor excepteur non id laboris. Consectetur in duis sint labore duis ut. Consequat elit adipisicing amet cillum non tempor pariatur.", - "longText": "Ipsum non enim aliqua culpa velit enim deserunt proident laboris sunt. Sunt esse officia qui est ut ad cillum eu est cupidatat Lorem proident incididunt. Officia duis culpa duis in exercitation irure officia quis aliquip. Tempor nulla consequat exercitation eu nulla.\r\nEu enim labore excepteur proident. Commodo aliqua Lorem aute dolore ullamco ipsum mollit exercitation veniam. Labore enim veniam ea aliquip esse non id aliqua aliquip nostrud aliquip eu voluptate. Do reprehenderit velit proident ad occaecat sit dolor. Occaecat proident tempor aute nisi ipsum commodo dolore ipsum labore do laborum ea in. Non esse ut qui anim sint cupidatat amet est in consequat aliqua eiusmod. Reprehenderit consectetur amet commodo incididunt do amet laboris.\r\nVeniam magna consequat consequat eiusmod aliqua nulla commodo aliquip magna aute. Excepteur culpa ea consectetur sint velit sunt nulla Lorem ex. Irure in amet cupidatat duis occaecat pariatur.\r\nUt commodo laboris incididunt amet exercitation consectetur adipisicing eu. Aliqua in ex cillum Lorem reprehenderit cillum esse non ut cupidatat. Dolore et dolore duis exercitation sunt fugiat. Irure commodo eiusmod est fugiat ipsum anim ullamco ut. Duis amet duis non sint. Fugiat excepteur dolore et aliqua veniam aute elit mollit sit eu. Eiusmod dolore in magna voluptate reprehenderit pariatur non qui in qui Lorem ipsum.\r\nConsequat mollit tempor do sunt Lorem do est reprehenderit. Lorem aliqua culpa irure duis laborum non ut elit ad. Ad ipsum cillum nisi est aute nisi ad et. Aliquip voluptate voluptate elit amet in laboris fugiat. Non voluptate amet ut cillum exercitation veniam. Ea Lorem nostrud aliquip ex.\r\n", - "address": "4 Belvidere Street", - "city": "Whitestone", - "state": "Tennessee", - "zip": 30601, - "country": "St. Pierre and Miquelon", - "email": "penacompton@scentric.com", - "phone": "(979) 573-3861", - "color": "rgb(191,149,118)" - }, - { - "index": 441, - "name": "Concetta Whitaker", - "first": "Lora", - "last": "Mccarthy", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/betraydan/73.jpg", - "boolean": false, - "guid": "4527d6de-ed39-4b47-8916-33b23feda2f9", - "integer": 64, - "date": "Tue Jul 24 2012 12:23:04 GMT-0700 (PDT)", - "shortText": "voluptate", - "mediumText": "Id pariatur aliqua ea id id duis qui sint mollit commodo.", - "longText": "Incididunt voluptate do id labore. Voluptate aliqua tempor quis anim magna quis pariatur et quis voluptate dolor occaecat. In veniam commodo sunt quis consectetur non minim. Laboris velit fugiat aliqua deserunt nostrud amet sint ad Lorem Lorem cupidatat cillum. Ullamco enim minim et eu non Lorem eu laborum magna duis velit esse reprehenderit laboris. Ad enim irure dolor laboris excepteur fugiat exercitation occaecat commodo aliqua ex.\r\nMinim ex est culpa ipsum cupidatat ullamco exercitation cupidatat exercitation veniam cillum. Proident enim elit cupidatat sunt aliqua non minim officia. Laboris veniam laboris id cillum labore occaecat quis cupidatat velit excepteur aute nostrud est anim. Non do ut dolore veniam dolor labore reprehenderit sunt velit officia.\r\n", - "address": "4 Remsen Avenue", - "city": "Northridge", - "state": "Palau", - "zip": 32997, - "country": "Montserrat", - "email": "loramccarthy@scentric.com", - "phone": "(878) 505-2614", - "color": "rgb(124,101,157)" - }, - { - "index": 442, - "name": "Tammie Juarez", - "first": "Liza", - "last": "Daniel", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/justme_timothyg/73.jpg", - "boolean": false, - "guid": "0ed69dca-4d57-43c4-835b-b4f0d9654df4", - "integer": 11, - "date": "Sun Jul 08 2012 11:35:08 GMT-0700 (PDT)", - "shortText": "cillum", - "mediumText": "Culpa nulla aliqua nulla adipisicing reprehenderit. Labore nisi non dolore deserunt ut elit anim ullamco ullamco eiusmod cupidatat. Nisi proident qui culpa deserunt velit aliquip cillum deserunt tempor exercitation dolore eu. Do non anim aliquip id dolore anim velit qui ut sunt consequat deserunt. Eiusmod ea proident culpa exercitation enim occaecat.", - "longText": "Minim ex labore Lorem eiusmod laboris voluptate irure est. Dolore occaecat excepteur commodo ullamco deserunt irure cillum. Nisi nostrud in sint sunt excepteur culpa sunt do eu aute deserunt. Irure pariatur proident sit proident exercitation ex aute aliquip eiusmod est Lorem adipisicing laborum officia. Aute consectetur dolor occaecat incididunt cillum eiusmod culpa anim cupidatat est exercitation est. Sunt culpa quis cillum et sint dolor pariatur enim non nostrud dolore sunt proident do.\r\nQui enim do qui aliqua velit ullamco irure culpa aliqua adipisicing velit in tempor aute. Amet consectetur officia do elit. Aute laborum esse ullamco dolore id ullamco velit Lorem. Fugiat dolore et velit velit ut.\r\nSunt non anim veniam proident id est magna ullamco exercitation consequat est. Laborum culpa eiusmod non eu ipsum occaecat excepteur minim occaecat velit magna. Voluptate aliquip tempor do excepteur est enim. Do tempor laboris ut laborum in tempor Lorem occaecat dolore. Est id veniam dolore dolor eiusmod enim ea adipisicing fugiat ad nostrud ullamco ex. Occaecat nisi et ea eiusmod duis Lorem labore enim non veniam labore.\r\nMagna occaecat dolor nisi sint est magna magna tempor sunt. Minim amet sunt exercitation incididunt ea dolore tempor tempor magna pariatur aliqua. Mollit amet et in veniam. Reprehenderit do ut cupidatat incididunt. Eu anim Lorem laboris qui cillum officia amet aute minim magna proident officia.\r\n", - "address": "2 Friel Place", - "city": "Waverly", - "state": "Virginia", - "zip": 15976, - "country": "Norway", - "email": "lizadaniel@scentric.com", - "phone": "(837) 444-2117", - "color": "rgb(169,145,105)" - }, - { - "index": 443, - "name": "Bettie Osborne", - "first": "Daugherty", - "last": "Randolph", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/justinteractive/73.jpg", - "boolean": true, - "guid": "3d66fd94-2bfe-43f5-9b83-14c609449f27", - "integer": 7, - "date": "Sat Jan 20 2007 20:48:29 GMT-0800 (PST)", - "shortText": "velit", - "mediumText": "Veniam quis ea ipsum adipisicing quis excepteur proident laboris fugiat id reprehenderit aute occaecat.", - "longText": "Sunt anim reprehenderit eu in sit culpa enim. Magna voluptate pariatur fugiat commodo fugiat ad voluptate ipsum ut elit ullamco dolor amet. Ut cupidatat consectetur velit velit est labore. Ex cillum ad duis excepteur irure officia eiusmod labore in culpa exercitation duis anim non. Deserunt ullamco consequat tempor tempor incididunt esse laboris.\r\nProident ex dolor anim laboris aliqua velit sit est. Aute aute velit eiusmod non irure nostrud pariatur anim tempor pariatur ipsum labore do. Lorem laborum ipsum minim eu nulla minim ullamco culpa in ex velit veniam aliqua cillum. Exercitation aliquip sit proident nostrud. Dolor ipsum aute nulla Lorem dolore amet dolor nisi enim irure.\r\nIpsum deserunt cupidatat ea nisi anim aliquip et excepteur pariatur nisi dolor. Quis exercitation ea pariatur eiusmod. Sint qui Lorem eu velit aute.\r\n", - "address": "3 Utica Avenue", - "city": "Glenbrook", - "state": "Wyoming", - "zip": 52525, - "country": "Guam", - "email": "daughertyrandolph@scentric.com", - "phone": "(978) 484-3479", - "color": "rgb(158,76,101)" - }, - { - "index": 444, - "name": "Valenzuela Swanson", - "first": "Buckner", - "last": "Dawson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/psdesignuk/73.jpg", - "boolean": true, - "guid": "4fe81672-768e-44ba-b3d5-c57fbb9c3507", - "integer": 27, - "date": "Mon Feb 03 1975 20:36:41 GMT-0800 (PST)", - "shortText": "fugiat fugiat", - "mediumText": "Eiusmod eu elit do in occaecat dolor consectetur non mollit. Officia eiusmod consectetur veniam laboris consequat velit commodo exercitation tempor officia commodo. Voluptate elit Lorem elit non elit. Dolor consequat exercitation cillum labore do cillum irure exercitation. Lorem et irure velit eiusmod sit ut.", - "longText": "Amet enim eiusmod anim culpa non ipsum dolor deserunt adipisicing fugiat. Ut irure ipsum et incididunt veniam proident ex veniam. Magna eu dolor do minim elit culpa labore. Commodo non amet qui nisi nisi anim ex. Sit ipsum nulla fugiat ea exercitation duis in sint ex ea. Minim est ut minim in laboris est esse culpa minim pariatur exercitation ex. Ex voluptate sint sunt velit in adipisicing.\r\n", - "address": "4 Bridge Street", - "city": "Byrnedale", - "state": "Colorado", - "zip": 22776, - "country": "Gibraltar", - "email": "bucknerdawson@scentric.com", - "phone": "(822) 533-3432", - "color": "rgb(72,149,99)" - }, - { - "index": 445, - "name": "Bernice Hood", - "first": "Dionne", - "last": "Russo", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/teclaro/73.jpg", - "boolean": true, - "guid": "604ff26f-12a6-4e76-bbcc-b8004c60fc12", - "integer": 25, - "date": "Sat Sep 15 2001 19:47:51 GMT-0700 (PDT)", - "shortText": "id commodo aute eu", - "mediumText": "Aliquip ut proident ad consequat proident velit magna. Non excepteur Lorem labore et fugiat quis laboris anim ut fugiat tempor consectetur laborum aute. Ullamco dolor nulla esse nisi aliquip fugiat fugiat dolor.", - "longText": "Elit ipsum voluptate laborum veniam cillum reprehenderit aliqua quis incididunt id excepteur. Reprehenderit qui fugiat nostrud quis. Ad nostrud amet do quis pariatur laborum in reprehenderit. Irure ipsum qui aute deserunt deserunt amet adipisicing eu dolor minim. Ad dolor aliquip quis sit nulla culpa nulla commodo aliqua non. Proident enim consequat elit tempor ut non est. Qui aliquip dolor ut consequat officia reprehenderit ea minim nisi cillum irure.\r\nCillum eu nisi consequat ipsum est aliqua cillum ad et laborum. Lorem incididunt occaecat ex ullamco et nostrud sint elit proident sunt adipisicing eu quis. Voluptate mollit sit sunt ad velit nisi commodo cupidatat. Nisi tempor nostrud minim magna id occaecat aliquip aute.\r\nEiusmod elit sit adipisicing reprehenderit nisi eiusmod incididunt eiusmod laboris mollit mollit do. Do aliqua adipisicing nostrud eu voluptate. Officia ut aliquip excepteur aute consequat sit pariatur amet id dolor.\r\nMagna cillum aliquip laborum anim aliquip in officia excepteur id dolore excepteur nostrud ullamco commodo. Excepteur enim anim esse occaecat quis cupidatat consectetur. Reprehenderit tempor fugiat laborum labore fugiat eiusmod quis.\r\n", - "address": "2 Verona Place", - "city": "Connerton", - "state": "Utah", - "zip": 18395, - "country": "Hungary", - "email": "dionnerusso@scentric.com", - "phone": "(890) 461-3250", - "color": "rgb(229,252,247)" - }, - { - "index": 446, - "name": "Schneider Small", - "first": "West", - "last": "Buckner", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/eyronn/73.jpg", - "boolean": true, - "guid": "4fdfdfc4-3a77-47b8-acab-91a565572331", - "integer": 44, - "date": "Fri Jul 16 2004 09:13:39 GMT-0700 (PDT)", - "shortText": "sunt esse Lorem", - "mediumText": "Irure dolor minim dolore voluptate ut laborum Lorem nostrud nostrud voluptate nisi sunt culpa. Proident pariatur sit id occaecat do qui reprehenderit laboris exercitation qui ad.", - "longText": "Labore nostrud consequat laboris amet do sint pariatur. Commodo incididunt amet reprehenderit laboris enim eu nostrud ea velit. In nisi proident ullamco in deserunt elit labore. Irure exercitation ipsum officia sint magna tempor do et sit.\r\nMollit nulla aliquip pariatur excepteur dolore sint ipsum mollit qui consectetur id. In amet laborum ea deserunt duis ipsum dolor magna aliquip non ea reprehenderit proident. Excepteur labore dolore reprehenderit elit. Est commodo esse est ea. Amet cupidatat exercitation eiusmod id sit.\r\nAliqua dolor anim est in esse ex id ad incididunt mollit occaecat ad sint. Lorem dolore ipsum ad amet cillum excepteur sint anim pariatur. Ipsum consectetur irure dolore fugiat duis anim id. Esse non est id mollit quis proident qui ex labore sit. Consequat mollit veniam nisi irure cupidatat nostrud.\r\n", - "address": "2 Fuller Place", - "city": "Felt", - "state": "Idaho", - "zip": 83579, - "country": "Kenya", - "email": "westbuckner@scentric.com", - "phone": "(972) 592-3400", - "color": "rgb(90,160,183)" - }, - { - "index": 447, - "name": "Jones Fields", - "first": "Trujillo", - "last": "Morales", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/gulian/73.jpg", - "boolean": true, - "guid": "c09e1f92-8061-47f3-a5ae-13fe4589613e", - "integer": 97, - "date": "Wed Feb 14 2007 05:02:54 GMT-0800 (PST)", - "shortText": "tempor laborum commodo nostrud", - "mediumText": "Cillum nulla veniam ipsum exercitation nulla dolor anim in amet. Velit proident excepteur nisi et minim anim incididunt sit. Et sit eu eu est anim nulla. Ex consectetur fugiat cupidatat eiusmod in commodo cupidatat irure.", - "longText": "Aute ex exercitation nulla pariatur eu. Labore veniam amet voluptate occaecat consectetur consectetur nostrud laborum. Sit consequat nulla tempor culpa minim labore exercitation laboris incididunt sint. Dolor nisi quis id ullamco eu qui non ullamco esse amet irure dolor aute non. Ex exercitation irure ad laboris eiusmod non minim non anim ex in magna.\r\nCommodo ullamco excepteur culpa cillum incididunt. Ad nostrud est aliqua officia. Aliqua et laboris incididunt est. Irure reprehenderit ea ut minim culpa.\r\n", - "address": "3 Goodwin Place", - "city": "Lacomb", - "state": "Arkansas", - "zip": 64762, - "country": "Honduras", - "email": "trujillomorales@scentric.com", - "phone": "(908) 595-3540", - "color": "rgb(252,248,234)" - }, - { - "index": 448, - "name": "Ester Weber", - "first": "Eve", - "last": "Bonner", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/drebbits/73.jpg", - "boolean": true, - "guid": "daccfe7a-2e90-4485-b570-2ea85b7b196f", - "integer": 29, - "date": "Wed Aug 08 1979 00:51:20 GMT-0700 (PDT)", - "shortText": "qui", - "mediumText": "Magna dolore commodo aute ad excepteur ex proident non veniam proident irure dolore adipisicing deserunt. Anim mollit velit laboris velit labore pariatur. Non amet qui ut magna.", - "longText": "Cupidatat ea sit dolor eu sit tempor culpa magna. Ipsum excepteur nulla elit sit laboris dolor commodo. Deserunt aliquip officia minim sunt non sunt. Elit tempor consequat ullamco irure in ullamco. Ad do adipisicing sunt nisi eu veniam aliquip anim.\r\nAute ullamco incididunt dolore mollit fugiat deserunt adipisicing occaecat cupidatat sunt aute. Velit excepteur ullamco excepteur incididunt velit. Do adipisicing aute sint commodo qui adipisicing aliqua incididunt mollit. Adipisicing consectetur nulla consequat sunt nulla est sunt anim consequat ipsum ad dolor.\r\n", - "address": "4 Furman Avenue", - "city": "Devon", - "state": "Delaware", - "zip": 13560, - "country": "Eritrea", - "email": "evebonner@scentric.com", - "phone": "(993) 461-3721", - "color": "rgb(220,194,238)" - }, - { - "index": 449, - "name": "Jaclyn Bright", - "first": "Christy", - "last": "Graham", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/alexhaniotis/73.jpg", - "boolean": true, - "guid": "3d5752b1-b775-4866-9151-376be7d53cdd", - "integer": 47, - "date": "Fri Oct 07 1994 14:59:41 GMT-0700 (PDT)", - "shortText": "ut minim in laboris officia", - "mediumText": "Esse mollit ad sunt incididunt labore dolore exercitation nostrud commodo minim nisi sit. Enim tempor tempor veniam culpa laboris incididunt sunt ex magna fugiat. Quis veniam adipisicing est sunt proident aliquip enim commodo sunt duis sint est nulla Lorem.", - "longText": "Sint aliquip qui aliqua ipsum magna eiusmod non ea exercitation non duis cupidatat officia. Proident esse mollit culpa excepteur irure consectetur consequat amet ipsum sit ut officia amet. Deserunt non in qui sit aliquip et irure et commodo mollit esse ullamco consequat. Commodo ea mollit incididunt ex anim labore sint eu sint sunt deserunt commodo irure ex. Magna reprehenderit voluptate anim commodo et excepteur amet nulla sint. Qui laboris qui et veniam eiusmod pariatur voluptate eiusmod ea occaecat cillum dolore velit magna.\r\nNostrud in esse est tempor minim ex fugiat qui Lorem. Non enim tempor amet consequat pariatur irure voluptate enim aliqua tempor exercitation. Lorem reprehenderit et deserunt velit deserunt pariatur elit et consectetur irure. Culpa velit aliquip sit sunt adipisicing exercitation. Eiusmod mollit consequat laboris non nostrud pariatur laborum quis anim consectetur veniam amet culpa esse. Consequat irure aute commodo incididunt tempor elit aliqua est reprehenderit sunt ex veniam id.\r\nProident eu cillum est eiusmod sint quis in eiusmod occaecat adipisicing quis tempor adipisicing ea. Adipisicing reprehenderit exercitation eu reprehenderit elit cupidatat nostrud pariatur. Veniam officia quis Lorem magna reprehenderit esse ipsum minim quis laborum reprehenderit.\r\n", - "address": "3 Kathleen Court", - "city": "Groveville", - "state": "Federated States Of Micronesia", - "zip": 97417, - "country": "Tajikistan", - "email": "christygraham@scentric.com", - "phone": "(943) 493-3287", - "color": "rgb(201,124,187)" - }, - { - "index": 450, - "name": "Burton Valdez", - "first": "Aurora", - "last": "Morse", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/twahlin/73.jpg", - "boolean": true, - "guid": "7ea797c6-ef0a-49c2-b043-2ca76a30e148", - "integer": 66, - "date": "Mon Jul 09 1984 05:20:31 GMT-0700 (PDT)", - "shortText": "officia", - "mediumText": "Nulla ut eiusmod consequat sunt est proident mollit elit laboris nulla ex Lorem tempor culpa.", - "longText": "Laborum labore ad cupidatat fugiat laborum proident mollit elit Lorem elit. Voluptate ex magna voluptate ex incididunt eiusmod dolor anim sit. Aliquip sint reprehenderit officia ex irure veniam aliquip laborum eu exercitation magna veniam enim. Minim culpa Lorem et sit. Velit aute elit et incididunt do velit mollit qui.\r\n", - "address": "2 Sheffield Avenue", - "city": "Sheatown", - "state": "Guam", - "zip": 73715, - "country": "Brunei Darussalam", - "email": "auroramorse@scentric.com", - "phone": "(866) 493-3254", - "color": "rgb(60,132,78)" - }, - { - "index": 451, - "name": "Sharpe Mccall", - "first": "Leanna", - "last": "Day", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ntfblog/73.jpg", - "boolean": false, - "guid": "241e6ae2-b23e-44bc-b8ed-aeb9d50f0395", - "integer": 7, - "date": "Sun Oct 27 2002 01:07:01 GMT-0700 (PDT)", - "shortText": "sit", - "mediumText": "Commodo commodo nostrud deserunt nostrud velit tempor culpa exercitation occaecat. Officia officia fugiat consectetur deserunt eu sunt ullamco commodo elit veniam nostrud dolore. Aute duis occaecat nisi culpa nulla laborum deserunt aliquip irure.", - "longText": "Qui do ex nostrud qui officia velit. Quis laborum aute nulla sint excepteur magna nisi est eu. Commodo qui id ex pariatur est sit. Do quis mollit minim consectetur exercitation. Elit reprehenderit labore minim laboris laborum adipisicing incididunt adipisicing. Ad reprehenderit enim reprehenderit sit.\r\nIpsum veniam nulla et enim. Consectetur sint laborum voluptate nulla non non eiusmod. Incididunt laborum voluptate voluptate cupidatat amet minim culpa sint laborum commodo. Ad mollit ea culpa sit fugiat.\r\nEx ex incididunt eu dolore laboris duis culpa duis magna eu minim sint. Ea sunt sunt mollit ut voluptate duis. Magna sit irure voluptate Lorem tempor consectetur eu aute sunt eiusmod deserunt laboris anim. Ut aliqua irure pariatur cillum eiusmod Lorem cupidatat qui mollit laborum excepteur irure. Officia voluptate aute officia incididunt deserunt velit enim sint anim mollit aliqua deserunt. Excepteur dolor irure sint quis nulla ipsum sint duis consectetur. Eiusmod id cillum exercitation veniam in anim tempor velit id culpa in.\r\nLabore amet non culpa ea in ullamco duis dolore cillum commodo laborum. In et elit ex aliqua commodo labore dolor proident et mollit. Dolor Lorem deserunt ipsum adipisicing sunt enim nulla ullamco. Enim ullamco ea irure sit elit cillum reprehenderit mollit voluptate enim aliquip ad officia.\r\nLaborum eiusmod esse sit excepteur duis. Quis magna cillum proident tempor qui ex sunt amet ex cillum id elit. Lorem sit cillum exercitation eu reprehenderit ea ex. Fugiat commodo irure elit est esse labore laboris do ullamco dolor. Adipisicing excepteur et culpa occaecat. Ea aute et deserunt quis laborum eiusmod et exercitation mollit excepteur duis nulla.\r\n", - "address": "2 Sapphire Street", - "city": "Delco", - "state": "Pennsylvania", - "zip": 99885, - "country": "Macedonia", - "email": "leannaday@scentric.com", - "phone": "(926) 463-2373", - "color": "rgb(219,81,203)" - }, - { - "index": 452, - "name": "Richmond Clayton", - "first": "Sherrie", - "last": "Robertson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/commoncentssss/73.jpg", - "boolean": true, - "guid": "dd129f81-2042-434a-9563-8047b70bad0a", - "integer": 45, - "date": "Sat Apr 07 2001 06:49:07 GMT-0700 (PDT)", - "shortText": "in", - "mediumText": "Adipisicing excepteur ad proident id veniam consectetur sit.", - "longText": "Amet commodo do aliquip ipsum sunt dolor id magna officia officia commodo minim. Qui duis occaecat in cillum ipsum pariatur excepteur officia velit incididunt exercitation irure mollit quis. Et cillum id velit elit et fugiat qui nisi officia incididunt voluptate cupidatat duis. Ut fugiat dolore eiusmod non ad aliquip labore sit proident. Duis amet aliqua deserunt commodo do anim quis elit excepteur. Sunt dolore magna dolore enim labore minim do enim anim officia cupidatat cupidatat. Aliqua anim veniam tempor sit incididunt quis ex ex laboris reprehenderit Lorem.\r\nExercitation irure tempor proident culpa. Ut enim culpa nulla ipsum consectetur enim eu dolor fugiat occaecat pariatur ex. Fugiat aliqua anim veniam aliquip irure nostrud adipisicing id. Tempor laborum enim excepteur ipsum dolore pariatur anim sit id qui duis duis sit duis. Dolore deserunt do est irure consectetur consequat ea aliqua veniam enim qui Lorem. Ipsum et nulla eiusmod Lorem et id anim aliquip. Velit mollit dolor non ullamco do aliqua qui mollit excepteur qui amet.\r\n", - "address": "4 Opal Court", - "city": "Dawn", - "state": "New Hampshire", - "zip": 25154, - "country": "French Polynesia", - "email": "sherrierobertson@scentric.com", - "phone": "(950) 518-2372", - "color": "rgb(116,89,161)" - }, - { - "index": 453, - "name": "Small Church", - "first": "Sylvia", - "last": "Terrell", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/anissa_anwar/73.jpg", - "boolean": true, - "guid": "5653dcb2-2ec5-4de9-93a5-534b963da42d", - "integer": 32, - "date": "Sat Mar 10 2001 07:02:05 GMT-0800 (PST)", - "shortText": "velit et non in sint", - "mediumText": "Commodo aute irure cillum laboris aliquip aute aliqua consequat qui esse do Lorem deserunt adipisicing. Velit esse nulla in do ut aliquip proident ut qui occaecat reprehenderit nisi. Velit tempor eu non in officia cupidatat fugiat culpa. Proident nostrud irure cupidatat quis enim nisi reprehenderit qui deserunt tempor eiusmod cupidatat nulla. Proident exercitation esse sint esse sunt qui ad magna eu do magna esse sunt nulla.", - "longText": "Consequat proident id laboris id labore ipsum officia officia non consectetur dolore esse cupidatat. In commodo et amet qui in et exercitation non eiusmod dolore sunt nostrud. Non quis fugiat Lorem amet voluptate excepteur. Proident officia labore aliquip sunt Lorem ex nulla fugiat incididunt. In dolore aute enim esse cupidatat commodo cupidatat commodo ipsum nulla. Officia dolore dolore eu reprehenderit.\r\nAd occaecat consequat adipisicing do eiusmod voluptate proident. Eu dolore aute aliqua cillum enim incididunt non adipisicing ipsum laborum sunt Lorem Lorem. Ex ad excepteur occaecat quis aliqua do nostrud irure in sunt aliqua amet. Commodo ea voluptate sit mollit nisi excepteur reprehenderit incididunt. Do cillum aliquip in eu.\r\n", - "address": "2 Wolcott Street", - "city": "Salix", - "state": "North Dakota", - "zip": 11231, - "country": "Bahamas", - "email": "sylviaterrell@scentric.com", - "phone": "(823) 424-2163", - "color": "rgb(216,232,199)" - }, - { - "index": 454, - "name": "Alyson Dudley", - "first": "Mckay", - "last": "Holmes", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/btrig/73.jpg", - "boolean": false, - "guid": "c1a70e93-2f1c-402a-aafb-f66c1441b471", - "integer": 36, - "date": "Fri May 18 2001 01:24:33 GMT-0700 (PDT)", - "shortText": "veniam ipsum ullamco", - "mediumText": "Sunt culpa in consectetur tempor consectetur non eu ex elit aliquip incididunt eu cillum quis. Dolor laborum pariatur nulla nostrud culpa quis dolor ipsum deserunt fugiat non amet non. Magna sint sint ea voluptate nostrud consequat labore elit.", - "longText": "Enim ex consequat quis proident ipsum commodo labore dolore esse fugiat. Commodo sit eu ullamco incididunt ipsum. Qui officia eiusmod adipisicing dolor exercitation. Laborum occaecat proident deserunt dolore labore est in. Exercitation enim sunt reprehenderit est est. Ullamco dolor laborum ea quis aute aliqua.\r\nNulla sint in aliqua do minim aliqua voluptate enim deserunt occaecat esse excepteur. Qui est veniam proident anim fugiat velit qui aliqua eiusmod proident mollit. Qui velit est in consectetur ad esse consequat aute laborum. Amet cupidatat cupidatat et amet.\r\nDeserunt qui labore veniam irure eiusmod ad nisi anim non aliqua culpa ea consequat ea. Id sunt mollit minim qui sunt consequat in aliquip eu consectetur. Et nostrud velit excepteur in magna dolor elit. Reprehenderit nisi enim dolor amet ipsum in voluptate veniam voluptate consectetur aliquip. Quis sint duis ut dolor ea. Magna deserunt sunt aute quis veniam laboris aute ea ex velit irure cupidatat.\r\nQui qui labore voluptate velit ad eu mollit sit cillum non exercitation cillum aliqua. Quis tempor consectetur eiusmod aliqua id. Qui duis elit ut do nisi nostrud et ullamco mollit. Labore officia fugiat nisi dolore. Adipisicing in voluptate aliquip occaecat mollit anim pariatur occaecat sint aliqua. Anim esse adipisicing aliqua tempor sit elit deserunt sunt. Eiusmod consectetur anim ipsum est elit laborum magna consectetur id aliquip Lorem.\r\n", - "address": "3 Walker Court", - "city": "Wattsville", - "state": "Northern Mariana Islands", - "zip": 63152, - "country": "Palau", - "email": "mckayholmes@scentric.com", - "phone": "(951) 589-2723", - "color": "rgb(163,183,107)" - }, - { - "index": 455, - "name": "Curry Webb", - "first": "Sheena", - "last": "Wilkerson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/ug_rick/73.jpg", - "boolean": true, - "guid": "5fdb3b33-e4f6-42fd-9ef8-f5187a85f89a", - "integer": 86, - "date": "Sat Jun 12 1976 02:00:05 GMT-0700 (PDT)", - "shortText": "labore laborum", - "mediumText": "Nostrud nisi incididunt quis enim esse proident aliquip laboris. Velit officia quis amet cillum sint pariatur aliqua velit eiusmod. Adipisicing in nisi qui duis anim dolor laborum esse aute est ex amet sit.", - "longText": "Pariatur magna sit reprehenderit sint est non velit sint veniam. Laboris qui labore esse consequat tempor ut elit elit aliquip dolor duis tempor velit cupidatat. Consequat duis fugiat id excepteur. Duis veniam laboris est ut pariatur ullamco reprehenderit elit irure. Aute elit excepteur officia pariatur labore. Commodo sit officia ullamco reprehenderit sit exercitation ad consequat.\r\nEsse nostrud voluptate anim Lorem aute do tempor cupidatat do adipisicing magna commodo et dolore. Quis eiusmod velit est in laborum sit. Elit veniam ipsum id dolor. Labore eiusmod ex anim amet. Do velit cillum velit voluptate nostrud sint consequat ipsum ullamco do eiusmod sint. Reprehenderit minim reprehenderit et sunt aliqua nisi sint magna mollit aliquip. Esse esse labore minim cillum ut cupidatat dolor incididunt proident dolor.\r\nVoluptate aute anim commodo occaecat non voluptate magna. Laboris do quis laborum qui cillum qui commodo amet minim consectetur voluptate. Labore anim tempor sint ut. Tempor nisi sit officia Lorem.\r\nMinim consectetur ex velit nulla occaecat id sunt. Veniam laboris cupidatat reprehenderit ullamco eiusmod. Cupidatat velit non nulla amet aliqua fugiat aute ullamco nisi aliqua adipisicing exercitation quis proident. Ut ullamco dolor pariatur nisi excepteur occaecat commodo proident nisi minim est consequat.\r\nOccaecat aliquip duis duis deserunt cupidatat sint. Anim id et dolore labore nostrud ad Lorem sunt pariatur ad adipisicing. Qui enim nostrud officia adipisicing voluptate ea in nisi duis velit consectetur. Ut nisi voluptate dolor quis est anim in fugiat. Eu tempor dolore reprehenderit ut est aliqua elit in non velit velit. In adipisicing ullamco minim laboris incididunt enim voluptate ea minim sint dolor ut laborum amet. Aliquip est ut ipsum veniam.\r\n", - "address": "4 Lee Avenue", - "city": "Chamberino", - "state": "South Dakota", - "zip": 13592, - "country": "Tuvalu", - "email": "sheenawilkerson@scentric.com", - "phone": "(879) 403-2513", - "color": "rgb(118,194,142)" - }, - { - "index": 456, - "name": "Christian Snyder", - "first": "Lawanda", - "last": "Bradford", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/blakestevenson/73.jpg", - "boolean": true, - "guid": "bfb51aa2-d989-470d-97e5-64f04272b0ec", - "integer": 77, - "date": "Sat Jul 05 2014 23:12:53 GMT-0700 (PDT)", - "shortText": "quis ex et", - "mediumText": "Consectetur sit veniam excepteur Lorem commodo.", - "longText": "Qui dolor ut ipsum ex fugiat deserunt irure fugiat. Nisi anim culpa est non adipisicing ullamco dolore aute ex occaecat minim. Occaecat reprehenderit aliqua aute fugiat veniam officia cillum quis nostrud minim ullamco velit officia. Lorem ex labore magna qui velit commodo anim dolore veniam dolor et reprehenderit.\r\nDolor ad irure esse tempor commodo ullamco adipisicing dolore amet magna aliqua enim adipisicing. Laboris irure culpa est excepteur mollit magna consectetur id aliquip magna. Occaecat commodo elit pariatur reprehenderit eiusmod labore. Nisi aliquip minim est labore quis fugiat. Minim nulla Lorem dolore nostrud reprehenderit nulla mollit incididunt anim adipisicing.\r\n", - "address": "4 Newport Street", - "city": "Indio", - "state": "Alaska", - "zip": 48616, - "country": "Liechtenstein", - "email": "lawandabradford@scentric.com", - "phone": "(888) 481-3858", - "color": "rgb(247,122,60)" - }, - { - "index": 457, - "name": "Contreras Jenkins", - "first": "Lester", - "last": "Garrett", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/karalek/73.jpg", - "boolean": true, - "guid": "0618babd-91c3-4050-8bf8-5d1f94383568", - "integer": 14, - "date": "Fri Mar 31 1972 00:34:05 GMT-0800 (PST)", - "shortText": "commodo aliqua", - "mediumText": "Ullamco commodo consequat id officia duis duis amet quis incididunt consectetur consequat laboris ex dolore. Aliquip dolore cupidatat sit aliqua dolore sit irure reprehenderit anim nulla adipisicing est. Cupidatat et fugiat minim exercitation eiusmod est esse eiusmod proident.", - "longText": "Qui cillum ipsum amet adipisicing veniam Lorem ullamco. Aute ea sunt veniam nisi laboris cupidatat officia minim. Consectetur deserunt cupidatat fugiat deserunt mollit mollit. Elit magna consequat qui tempor in non velit ea cillum tempor non. Consectetur est mollit aliqua adipisicing elit cillum consequat duis enim. Reprehenderit in et dolor nulla duis.\r\nEsse cillum Lorem veniam officia voluptate eu tempor. Consectetur dolore fugiat proident duis ullamco dolore occaecat dolore sit. Consequat commodo fugiat dolor minim elit elit laborum elit do. Exercitation occaecat exercitation cillum eu occaecat sit sit magna voluptate dolor aliqua ad commodo esse. Cillum fugiat excepteur sunt incididunt nisi.\r\nLabore aute eiusmod aute ullamco sunt sint nisi aute laboris reprehenderit duis qui incididunt labore. Sint occaecat sint id esse. Consectetur pariatur minim proident do magna mollit veniam dolore commodo et officia adipisicing commodo pariatur. Consequat eu id pariatur occaecat eu nostrud proident enim eu. Id cillum consequat aliquip reprehenderit. Adipisicing Lorem eu et veniam aliquip pariatur commodo culpa anim adipisicing commodo labore. Qui adipisicing incididunt in eiusmod.\r\n", - "address": "4 Morton Street", - "city": "Yonah", - "state": "Louisiana", - "zip": 53661, - "country": "Virgin Islands (US)", - "email": "lestergarrett@scentric.com", - "phone": "(972) 517-3113", - "color": "rgb(239,120,56)" - }, - { - "index": 458, - "name": "Holly Jackson", - "first": "Susie", - "last": "Watkins", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/elusiveanmol/73.jpg", - "boolean": true, - "guid": "2a001ee1-bb06-41ce-ba9b-334ce428a78e", - "integer": 45, - "date": "Tue Aug 24 1993 08:13:13 GMT-0700 (PDT)", - "shortText": "qui ex deserunt veniam enim", - "mediumText": "Dolore deserunt proident ex non ullamco amet esse cillum adipisicing adipisicing tempor sunt dolore. Amet mollit velit enim qui elit nostrud duis quis duis deserunt ut quis minim incididunt. Proident duis laboris sunt esse laborum duis officia esse irure esse. Cupidatat incididunt labore pariatur mollit. Sint officia aliquip adipisicing sint id et officia nulla.", - "longText": "Officia labore fugiat tempor sint est labore aliqua quis nisi labore adipisicing. Deserunt occaecat occaecat cupidatat occaecat. Minim consequat nisi non reprehenderit tempor. Irure nulla minim veniam laboris ut duis adipisicing. Occaecat culpa cillum magna sint nisi sit ex. Reprehenderit quis aliqua officia ipsum dolor irure nulla ipsum ex.\r\nIpsum proident esse tempor in ut proident reprehenderit reprehenderit fugiat pariatur reprehenderit cillum. Ipsum ipsum velit labore id do sint. Ea velit tempor cillum officia qui elit id excepteur. Fugiat laboris amet ullamco et dolor. Enim ut id fugiat qui. Sunt anim pariatur nisi fugiat ex. In ipsum nulla officia ipsum ex aliquip ad cupidatat aliqua amet adipisicing anim in amet.\r\nMagna pariatur nisi occaecat veniam reprehenderit esse dolor aliqua culpa labore. Elit do aliquip est magna culpa officia id pariatur id commodo non officia incididunt proident. Quis consequat laborum consectetur nostrud magna amet irure do irure ipsum culpa reprehenderit. Exercitation elit magna irure mollit cillum velit ullamco tempor ex.\r\nIpsum mollit reprehenderit elit aliqua nulla laborum dolor voluptate commodo ipsum laboris. Elit ut enim tempor elit nisi tempor ipsum. Ullamco velit incididunt elit aliqua amet commodo amet dolore dolore fugiat id.\r\n", - "address": "3 Beard Street", - "city": "Sterling", - "state": "Missouri", - "zip": 70724, - "country": "Svalbard and Jan Mayen Islands", - "email": "susiewatkins@scentric.com", - "phone": "(837) 537-2963", - "color": "rgb(172,67,201)" - }, - { - "index": 459, - "name": "Josefina Gonzales", - "first": "Erickson", - "last": "Bennett", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/shoo7830/73.jpg", - "boolean": true, - "guid": "88320e02-8633-4df8-a096-8b6cd39d0786", - "integer": 31, - "date": "Tue Jul 27 2010 06:12:05 GMT-0700 (PDT)", - "shortText": "proident nostrud", - "mediumText": "Cupidatat officia duis do sunt veniam voluptate exercitation. Ea excepteur tempor magna fugiat Lorem adipisicing dolor sit amet sunt aute laboris. Ea sunt fugiat ad commodo amet elit elit minim nostrud occaecat magna. Incididunt ea do id id laboris magna do ea. Eu duis amet cupidatat proident culpa deserunt.", - "longText": "Lorem ipsum culpa voluptate labore consectetur reprehenderit anim duis fugiat anim consequat tempor officia. Occaecat culpa tempor ad ea excepteur ad enim incididunt. Adipisicing commodo elit nisi magna incididunt. Ea est occaecat et dolor reprehenderit fugiat est id dolore. Culpa commodo ullamco est voluptate ad mollit sunt deserunt. Pariatur tempor excepteur laborum ex ea ea consectetur enim ut ad sunt nulla.\r\n", - "address": "4 Malbone Street", - "city": "Eagletown", - "state": "Kentucky", - "zip": 72696, - "country": "Ethiopia", - "email": "ericksonbennett@scentric.com", - "phone": "(937) 528-2434", - "color": "rgb(132,110,89)" - }, - { - "index": 460, - "name": "Sybil Boyle", - "first": "Rosetta", - "last": "Joseph", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/oanacr/73.jpg", - "boolean": true, - "guid": "3cf8b3eb-9567-4dbe-ad09-b792ef4b7f81", - "integer": 86, - "date": "Thu Aug 06 1992 04:15:43 GMT-0700 (PDT)", - "shortText": "reprehenderit", - "mediumText": "Consectetur irure ut minim proident laboris. Ea est et mollit voluptate aliquip qui enim incididunt nisi magna sunt tempor nulla. Pariatur officia id velit laborum quis id tempor cillum aliquip dolore sunt eiusmod enim. Elit id cillum occaecat sit exercitation fugiat eiusmod fugiat sunt cillum. Incididunt magna aliqua cupidatat fugiat voluptate nostrud voluptate.", - "longText": "Qui sunt irure veniam occaecat commodo sint labore nostrud qui do mollit. Non enim anim elit aute incididunt. Voluptate qui ullamco in sit cillum consectetur voluptate commodo. Non laboris anim minim anim nisi duis consectetur ad aute nisi nostrud. Id quis dolor consequat consequat nostrud ullamco dolore enim labore ipsum ipsum do voluptate aute.\r\nNisi dolor dolor elit veniam sint nisi eu officia incididunt ut labore elit id eu. Fugiat magna ex esse consectetur excepteur occaecat deserunt eiusmod ullamco ullamco do incididunt. Labore ad anim occaecat ullamco pariatur proident duis commodo. Quis reprehenderit consectetur exercitation fugiat dolor anim laboris dolor eu cupidatat adipisicing adipisicing Lorem. Ad voluptate officia pariatur ipsum Lorem ex aute sit non officia officia sint. Veniam aliqua labore ut enim in incididunt sit aute culpa magna officia ex officia nisi.\r\nNostrud incididunt consectetur nulla voluptate pariatur qui excepteur amet incididunt cupidatat culpa laboris sint. Sunt Lorem aute proident in velit ipsum. Magna fugiat veniam excepteur esse eiusmod sint cillum aute deserunt. Mollit magna quis excepteur in ex irure sit ea proident magna enim.\r\nConsectetur nisi culpa mollit eu in do consectetur sunt ad aliqua. Esse laboris adipisicing Lorem aute reprehenderit Lorem excepteur nisi id cupidatat aliqua cupidatat occaecat sit. Lorem Lorem ad ullamco quis reprehenderit nostrud elit enim ullamco incididunt. Culpa tempor consectetur exercitation velit consequat consequat dolore excepteur elit qui tempor est excepteur.\r\n", - "address": "4 Harman Street", - "city": "Sylvanite", - "state": "American Samoa", - "zip": 13569, - "country": "Togo", - "email": "rosettajoseph@scentric.com", - "phone": "(981) 470-3813", - "color": "rgb(209,237,158)" - }, - { - "index": 461, - "name": "Case Decker", - "first": "Santos", - "last": "Rice", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/elamyr/73.jpg", - "boolean": false, - "guid": "bf49a638-bbff-435c-9756-52b76f67815d", - "integer": 66, - "date": "Tue Apr 29 2003 07:40:21 GMT-0700 (PDT)", - "shortText": "ullamco aliqua sunt fugiat", - "mediumText": "Mollit Lorem exercitation cupidatat occaecat eiusmod qui. Magna et reprehenderit labore in. Excepteur ad enim aliqua aute ullamco cupidatat esse. Officia quis qui sunt nisi ipsum eu deserunt nulla fugiat magna sunt et quis pariatur. Voluptate cillum nostrud aliqua minim nulla minim dolore labore magna.", - "longText": "Laboris amet irure aute ipsum anim irure quis elit Lorem enim non id officia. Qui quis fugiat do esse. Eiusmod anim quis magna deserunt labore proident ullamco consequat cupidatat velit laboris ut aute. Quis excepteur ullamco officia ad reprehenderit. Irure occaecat reprehenderit ad consequat id laborum amet nisi tempor eu laboris. Irure sit cillum proident occaecat in ipsum. Quis esse officia sunt sunt anim ullamco ad amet ullamco Lorem.\r\nReprehenderit excepteur est officia consequat ea cupidatat excepteur sunt id ad adipisicing occaecat magna minim. Exercitation quis irure nostrud irure eiusmod laborum pariatur fugiat commodo id velit culpa reprehenderit id. Commodo mollit aute esse laboris fugiat pariatur mollit voluptate nulla. Commodo esse proident anim aliqua et duis exercitation cupidatat incididunt est laborum incididunt laborum. Aliqua est aute qui ullamco sunt ut cillum commodo cupidatat. Est sint est id consectetur ad duis duis culpa fugiat sit sit id aute. Dolor occaecat non cillum amet proident cupidatat laboris.\r\nIn sit non nostrud labore laboris commodo sit ea nisi commodo irure reprehenderit nostrud reprehenderit. Nostrud ad velit enim magna esse adipisicing. Labore occaecat anim irure magna sit duis ullamco exercitation ipsum mollit. Laboris irure ipsum occaecat ea anim id sunt irure deserunt eu et. Incididunt ex fugiat Lorem aliquip. Anim ea duis duis aliquip ex. Qui Lorem officia cillum nisi irure Lorem.\r\n", - "address": "3 Suydam Street", - "city": "Waumandee", - "state": "Minnesota", - "zip": 74848, - "country": "Zimbabwe", - "email": "santosrice@scentric.com", - "phone": "(890) 599-3600", - "color": "rgb(95,54,177)" - }, - { - "index": 462, - "name": "Snider Monroe", - "first": "Jensen", - "last": "Atkins", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/hmenchaca2/73.jpg", - "boolean": true, - "guid": "f24bb864-fe55-4bd6-9144-5bc756f08b1c", - "integer": 74, - "date": "Mon Sep 14 1981 09:51:33 GMT-0700 (PDT)", - "shortText": "eu", - "mediumText": "Laboris proident ullamco ipsum ea ullamco non minim id dolore ad labore. Culpa cillum nostrud deserunt ea in sunt eu ex. Est ullamco sint nulla irure anim velit in. Do sint id exercitation labore do adipisicing.", - "longText": "Non labore culpa laborum fugiat nostrud sunt labore id duis ullamco aliquip exercitation sint. Ex nisi duis nostrud consequat occaecat. Cupidatat dolore occaecat do ea ut ex amet duis mollit magna et commodo aliquip fugiat. Nostrud ut tempor est voluptate sunt enim. Labore commodo consequat ad fugiat.\r\nAute consequat enim ut esse laboris excepteur est nisi laboris veniam esse veniam Lorem Lorem. Aliquip aliquip laboris sit quis. Lorem id ipsum et eiusmod aliqua tempor ipsum cupidatat Lorem anim ipsum aute do consectetur.\r\n", - "address": "3 Boerum Street", - "city": "Crucible", - "state": "Hawaii", - "zip": 89416, - "country": "Azerbaijan", - "email": "jensenatkins@scentric.com", - "phone": "(839) 445-3763", - "color": "rgb(116,98,175)" - }, - { - "index": 463, - "name": "Calderon Pugh", - "first": "Monroe", - "last": "Travis", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dparrelli/73.jpg", - "boolean": true, - "guid": "c9c9f502-618c-4896-b09e-c4d5fb42384c", - "integer": 81, - "date": "Sat Jan 21 1978 16:37:46 GMT-0800 (PST)", - "shortText": "commodo aliqua ullamco mollit excepteur", - "mediumText": "Consequat et ad nulla id velit officia aliqua nulla eu anim sit magna. Enim in ad Lorem consequat amet nisi magna pariatur in in proident esse mollit sit.", - "longText": "In ut dolore enim ullamco non culpa ea voluptate. Enim Lorem est labore magna reprehenderit laboris amet aliqua sint eiusmod cupidatat amet. Non sit eu quis minim ut. Ex mollit qui aliqua quis adipisicing consectetur esse adipisicing sunt ex tempor. Ad mollit in laboris amet occaecat cupidatat eiusmod id. Aliqua sint pariatur proident ad laboris consequat nostrud quis dolore laborum. Excepteur ipsum ea veniam minim dolore nostrud veniam et voluptate cupidatat elit.\r\nEnim laborum dolore ullamco veniam. Mollit nostrud eu occaecat eu qui laborum sit reprehenderit excepteur amet magna tempor sunt et. Nostrud pariatur qui reprehenderit Lorem amet ullamco sint sint commodo cupidatat est sint officia ea. Ut ut dolore eiusmod magna occaecat incididunt minim consequat quis dolor et duis sunt.\r\n", - "address": "3 Hawthorne Street", - "city": "Coalmont", - "state": "Alabama", - "zip": 60080, - "country": "French Southern Territories", - "email": "monroetravis@scentric.com", - "phone": "(806) 479-3754", - "color": "rgb(93,63,172)" - }, - { - "index": 464, - "name": "Colleen Haley", - "first": "Conley", - "last": "Stanley", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/okansurreel/73.jpg", - "boolean": false, - "guid": "05acd8c3-414b-4b60-ac92-b0b7eba4e0c3", - "integer": 42, - "date": "Mon Mar 02 2009 03:09:26 GMT-0800 (PST)", - "shortText": "enim ad", - "mediumText": "Esse tempor voluptate aliqua culpa laborum pariatur cillum sint reprehenderit adipisicing. Elit esse anim sint duis voluptate nostrud culpa proident esse fugiat Lorem velit ut. Nostrud officia dolore voluptate proident eu ex consequat ipsum ad velit nisi laborum ea. Laboris in consequat elit et in ut. Qui ex ea reprehenderit sit dolor eiusmod minim deserunt.", - "longText": "Est dolor Lorem consequat excepteur excepteur nisi enim velit. Tempor velit veniam tempor cillum ea dolore est deserunt anim ex. Enim non id proident officia fugiat amet laborum veniam ullamco dolor est consequat incididunt occaecat. Enim culpa qui ipsum est. Amet sunt consectetur reprehenderit aute excepteur quis consequat minim tempor ullamco.\r\nEt ad aute non ut magna mollit sunt dolore laborum. Elit voluptate anim mollit est consequat officia laborum ad officia eu. Irure quis qui ipsum pariatur commodo commodo proident amet deserunt ut ea officia voluptate elit. Nulla Lorem voluptate commodo minim veniam dolore irure nulla excepteur ipsum eu pariatur. Ipsum amet commodo velit cillum. Laborum esse enim laboris sit esse labore quis proident sint officia ea Lorem.\r\nEnim quis enim consectetur elit ex duis. Tempor culpa labore excepteur mollit ea enim non reprehenderit fugiat elit laborum ea. Occaecat dolore excepteur adipisicing incididunt excepteur esse fugiat pariatur ut labore id consequat aliqua sunt. Elit est irure nisi labore quis magna consequat eiusmod culpa voluptate fugiat excepteur pariatur Lorem. Laboris magna irure consequat enim incididunt consectetur aute. Amet aliquip occaecat laboris ea. Fugiat ea non qui culpa pariatur quis nostrud commodo.\r\nDolore non do dolor culpa enim. Elit reprehenderit voluptate cupidatat fugiat. Aute enim occaecat nostrud cillum commodo mollit voluptate in esse labore fugiat. In nulla sit ullamco nisi velit. Et nostrud qui dolore ad laboris excepteur minim esse quis qui pariatur irure eu exercitation. Commodo labore in ex sint occaecat sint id esse reprehenderit commodo voluptate. Enim nostrud anim id velit id officia laborum deserunt laboris nostrud.\r\nNon excepteur exercitation eiusmod dolor laborum nulla laborum irure adipisicing id. Lorem cillum aliqua eu enim exercitation. Proident incididunt irure exercitation amet ad occaecat.\r\n", - "address": "2 Knapp Street", - "city": "Shindler", - "state": "North Carolina", - "zip": 55329, - "country": "Finland", - "email": "conleystanley@scentric.com", - "phone": "(887) 439-2117", - "color": "rgb(90,231,64)" - }, - { - "index": 465, - "name": "Barry Andrews", - "first": "Leona", - "last": "Nash", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lwilsonsmith/73.jpg", - "boolean": false, - "guid": "d6109791-de8e-41c5-9d94-00e69ae0b6e5", - "integer": 45, - "date": "Sun Jan 10 2010 12:46:09 GMT-0800 (PST)", - "shortText": "laborum", - "mediumText": "Commodo eiusmod do fugiat nostrud laborum id incididunt nulla. Tempor amet nostrud commodo id occaecat veniam. Ad ea eu eiusmod minim nostrud deserunt adipisicing reprehenderit ut ea occaecat.", - "longText": "Pariatur ea veniam fugiat officia incididunt aliquip occaecat commodo. Enim anim officia aliquip eu. Occaecat nostrud veniam laboris in Lorem excepteur laboris laborum duis laboris incididunt. Eu proident incididunt sint nostrud reprehenderit esse duis exercitation et ipsum exercitation consectetur aliquip Lorem.\r\nAdipisicing non nisi consectetur est consectetur ullamco enim dolore. Commodo eu Lorem consectetur esse. Cillum eiusmod incididunt exercitation elit labore duis esse. Adipisicing occaecat aliquip adipisicing pariatur laborum aute laboris velit incididunt amet. Nulla aliqua id ex velit consequat ex mollit minim Lorem. Irure anim ad laboris ullamco minim et consectetur adipisicing sunt sint in.\r\nEx magna excepteur esse consequat ex commodo commodo. Commodo non incididunt consequat consequat mollit duis quis Lorem non adipisicing pariatur incididunt ex nulla. Ex ut in laboris labore consequat mollit. Sint ex minim adipisicing velit cupidatat id anim excepteur nostrud consectetur proident. Commodo minim eiusmod veniam pariatur laboris cupidatat. Labore ullamco consequat velit ad consequat occaecat et tempor dolore ut sint esse ullamco amet.\r\nQui officia laborum laborum laborum. Ipsum Lorem ipsum sunt tempor exercitation dolore. Dolore reprehenderit do sit nulla dolor ea incididunt do id esse. Consectetur nulla enim ipsum velit reprehenderit non irure non.\r\n", - "address": "4 Highland Avenue", - "city": "Innsbrook", - "state": "Connecticut", - "zip": 62850, - "country": "United Arab Emirates", - "email": "leonanash@scentric.com", - "phone": "(892) 484-3082", - "color": "rgb(232,187,145)" - }, - { - "index": 466, - "name": "Lynette Shepard", - "first": "Walls", - "last": "Baxter", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/klimmka/73.jpg", - "boolean": false, - "guid": "f477123a-40c0-4cb9-8d64-cbf4c127e7bf", - "integer": 54, - "date": "Tue May 06 2008 02:57:35 GMT-0700 (PDT)", - "shortText": "officia ea ullamco", - "mediumText": "Do deserunt aute duis non proident commodo occaecat do reprehenderit eu aliqua est aliqua dolor. Culpa do laboris eiusmod do eiusmod enim irure ex nostrud. Dolor eiusmod enim pariatur duis non sunt quis dolor. Cupidatat aliqua ut cillum adipisicing non. Eiusmod labore in aliquip dolore magna cillum aliqua mollit irure.", - "longText": "Sunt consequat eiusmod qui irure ex excepteur culpa. Consectetur nostrud exercitation aliquip ex dolore quis. Mollit esse et non cupidatat proident eu voluptate et dolor pariatur fugiat. Amet qui ut quis do voluptate eu dolor enim tempor adipisicing.\r\nExercitation laboris pariatur deserunt laborum irure tempor ullamco id sit adipisicing nisi enim. Do amet consectetur ullamco culpa laborum dolor ut amet sit. Exercitation magna incididunt consectetur laborum excepteur. Laboris tempor ad sint esse ipsum irure culpa eiusmod labore cillum ad fugiat magna magna. Quis ut magna labore sunt laborum nostrud excepteur exercitation aliqua do aliqua velit esse pariatur. Aliqua Lorem qui proident aliqua culpa voluptate non officia.\r\nIncididunt do sunt ex dolor aute ut anim nisi nisi et fugiat. Id pariatur do aliqua ullamco fugiat eu irure reprehenderit ea sint excepteur. Minim aliquip culpa ea nulla aliqua id pariatur culpa ut deserunt magna. Laboris eiusmod ad eu fugiat id adipisicing occaecat qui tempor culpa aute ipsum in. Ea sit veniam dolore consectetur non cupidatat velit fugiat cillum. Cillum labore id labore fugiat consequat consequat cillum laboris amet velit adipisicing ipsum pariatur. Pariatur in irure ipsum consectetur laborum esse labore sint esse occaecat irure.\r\nDolore dolor esse esse ut labore anim deserunt tempor id reprehenderit irure veniam pariatur exercitation. Proident incididunt non ad Lorem est eiusmod aute elit qui Lorem enim. Mollit magna Lorem laboris excepteur occaecat consectetur tempor commodo irure. Sunt in eiusmod ullamco ad commodo laboris Lorem Lorem ullamco cupidatat. Lorem culpa ea do voluptate voluptate exercitation nulla. Officia adipisicing ullamco nisi officia laboris reprehenderit et ipsum. Dolor excepteur duis anim exercitation quis culpa culpa anim eiusmod ex laborum cillum.\r\nDo pariatur ad laborum occaecat labore occaecat amet non. Consequat non sit ullamco nulla cupidatat officia qui duis. Laborum duis ad velit eiusmod ea eu. Tempor incididunt tempor eiusmod duis.\r\n", - "address": "2 Forest Place", - "city": "Sabillasville", - "state": "South Carolina", - "zip": 36003, - "country": "Portugal", - "email": "wallsbaxter@scentric.com", - "phone": "(910) 431-2449", - "color": "rgb(74,195,121)" - }, - { - "index": 467, - "name": "Vega Dickson", - "first": "Bishop", - "last": "Stout", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/m_kalibry/73.jpg", - "boolean": true, - "guid": "c40dd867-a925-4993-a4f1-e7e411637845", - "integer": 69, - "date": "Sun May 04 2008 00:14:56 GMT-0700 (PDT)", - "shortText": "sit sunt", - "mediumText": "Adipisicing sit cillum nostrud nostrud commodo. Sunt labore veniam dolor enim nostrud deserunt. Consectetur est aute laboris aliqua. Sit velit ad dolore cupidatat nisi nisi nostrud minim in est.", - "longText": "Labore esse occaecat commodo pariatur consectetur Lorem. Et minim sint in laborum. Do laborum nulla culpa ex dolor ipsum ut excepteur id deserunt ad quis aliquip. Ipsum proident amet cupidatat labore veniam aliquip ipsum laboris. Incididunt sunt excepteur non ut pariatur aute. Duis exercitation cillum cillum do nostrud minim. Labore eiusmod eiusmod voluptate consectetur id.\r\n", - "address": "3 Seeley Street", - "city": "Westmoreland", - "state": "Michigan", - "zip": 41497, - "country": "Comoros", - "email": "bishopstout@scentric.com", - "phone": "(988) 498-2056", - "color": "rgb(228,157,219)" - }, - { - "index": 468, - "name": "Noelle Mosley", - "first": "Barnes", - "last": "Bowen", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/dhoot_amit/73.jpg", - "boolean": false, - "guid": "987c2384-3ee6-442a-859a-8839de50f5b6", - "integer": 90, - "date": "Thu Feb 26 2009 03:38:03 GMT-0800 (PST)", - "shortText": "voluptate", - "mediumText": "Lorem enim in incididunt proident commodo adipisicing laborum ut. Magna velit nostrud ipsum velit occaecat. Laborum duis reprehenderit reprehenderit id elit aute est occaecat nostrud exercitation reprehenderit esse. Reprehenderit adipisicing laborum laboris culpa magna commodo ullamco amet dolore.", - "longText": "Commodo occaecat magna consectetur esse culpa. Sunt ea adipisicing dolore laboris adipisicing officia proident culpa adipisicing et. Duis reprehenderit sunt proident sint exercitation enim irure esse voluptate mollit irure sint. Occaecat non amet nisi nisi Lorem duis aute incididunt nostrud elit veniam adipisicing proident. Fugiat id nostrud Lorem veniam aliquip Lorem occaecat ea nulla veniam. Sit amet laboris consequat esse excepteur dolore minim.\r\nAliqua ut dolor ex esse laboris consectetur incididunt. Dolore in commodo duis et enim consectetur eiusmod anim sit officia. Eu ut excepteur labore mollit sunt aliqua culpa sunt deserunt eiusmod.\r\nVeniam occaecat reprehenderit magna nisi elit deserunt. Dolore ullamco nisi aute excepteur aliquip aliquip duis eu laboris eu exercitation tempor. Lorem anim commodo esse fugiat enim aliquip aliqua consequat ullamco non aute magna veniam qui. Esse enim eu dolor aliqua pariatur culpa ea.\r\n", - "address": "2 Barwell Terrace", - "city": "Norvelt", - "state": "Maine", - "zip": 82709, - "country": "Central African Republic", - "email": "barnesbowen@scentric.com", - "phone": "(874) 465-2581", - "color": "rgb(201,251,62)" - }, - { - "index": 469, - "name": "Parrish Fowler", - "first": "Glenna", - "last": "Gaines", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/actionsmile/73.jpg", - "boolean": false, - "guid": "82d27516-08d2-4a84-9d5c-ed237bcbbee1", - "integer": 75, - "date": "Sun Oct 29 2000 13:21:37 GMT-0800 (PST)", - "shortText": "aliqua magna ad", - "mediumText": "In qui do velit aliquip voluptate duis eu in deserunt officia fugiat exercitation irure do.", - "longText": "Qui dolor nisi adipisicing mollit laboris velit ad sunt. Magna do esse nostrud excepteur aliqua duis ea cupidatat ut. Nostrud dolore laborum id incididunt duis consectetur sint amet aliqua aliquip elit laborum minim. Proident in anim sunt enim in commodo occaecat magna. Magna est excepteur duis laboris laborum anim esse aute Lorem adipisicing.\r\nAnim voluptate minim adipisicing irure sit ipsum. Dolor dolore velit quis eu. Ex sit ex consequat minim consequat nisi aliqua incididunt voluptate incididunt id anim irure. Velit sit aliquip incididunt do commodo officia enim excepteur ut nisi laborum culpa anim. Ea sint fugiat quis nulla do. Tempor deserunt reprehenderit veniam pariatur velit velit labore culpa ut consequat reprehenderit ipsum. Eu reprehenderit ut excepteur do velit occaecat duis.\r\n", - "address": "2 Dare Court", - "city": "Muse", - "state": "Kansas", - "zip": 37729, - "country": "Gabon", - "email": "glennagaines@scentric.com", - "phone": "(819) 430-2612", - "color": "rgb(196,125,143)" - }, - { - "index": 470, - "name": "Booth Goodman", - "first": "Kathrine", - "last": "Curtis", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/craftified/73.jpg", - "boolean": false, - "guid": "15c7abe9-175a-412b-b120-6bd621022908", - "integer": 6, - "date": "Sat Mar 28 1992 21:26:09 GMT-0800 (PST)", - "shortText": "proident reprehenderit", - "mediumText": "Deserunt id occaecat reprehenderit sint ea reprehenderit mollit eiusmod ea. Sint velit voluptate non Lorem deserunt dolore voluptate enim sunt laborum ad ullamco reprehenderit enim. Excepteur pariatur veniam amet qui in culpa magna. Commodo sit ad veniam deserunt excepteur aute laborum incididunt laborum ut.", - "longText": "Dolor do est occaecat ut ipsum nulla est anim minim voluptate incididunt officia dolor. Adipisicing in id sunt cillum nisi laborum cillum amet laborum aute consectetur. Officia sit dolor elit consequat adipisicing magna magna eu do non pariatur velit dolore ipsum.\r\nReprehenderit Lorem mollit irure laborum voluptate aute. Tempor enim nulla aliquip Lorem id dolor exercitation Lorem minim cupidatat irure et ipsum. Aliqua aute mollit culpa non ex labore quis eu do esse. In laborum adipisicing voluptate culpa pariatur ad et adipisicing. Ut eiusmod esse proident reprehenderit magna ut in nisi cillum sunt consequat pariatur. Consequat enim eiusmod fugiat magna nulla veniam nostrud veniam Lorem adipisicing amet consequat labore. Occaecat duis ad esse sint et cupidatat consequat culpa sint pariatur officia quis.\r\nCulpa id sit qui ea incididunt laboris laboris nisi voluptate nostrud. Enim in voluptate cillum dolore irure occaecat cupidatat pariatur ad elit excepteur. Lorem anim reprehenderit aliqua ipsum officia esse quis incididunt sint sunt esse. Deserunt culpa cillum nulla eiusmod incididunt est exercitation do ea. Voluptate magna occaecat excepteur incididunt tempor occaecat exercitation ad incididunt cupidatat dolor occaecat voluptate.\r\n", - "address": "3 Interborough Parkway", - "city": "Bethany", - "state": "Iowa", - "zip": 27481, - "country": "Cambodia", - "email": "kathrinecurtis@scentric.com", - "phone": "(857) 508-2561", - "color": "rgb(174,52,167)" - }, - { - "index": 471, - "name": "Benton Waters", - "first": "Marietta", - "last": "Cantu", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/aleksitappura/73.jpg", - "boolean": false, - "guid": "f166dfbf-b1f4-4bbf-8d31-7979b09bc29c", - "integer": 84, - "date": "Sat Aug 15 1970 03:51:29 GMT-0700 (PDT)", - "shortText": "ipsum", - "mediumText": "Commodo duis laborum ut aliqua et nostrud incididunt. Cillum et sint do pariatur quis non ex duis deserunt esse eiusmod nulla aliqua id. Consequat amet cupidatat ea non ea ipsum Lorem nulla ut ipsum aliqua eiusmod do nostrud. Quis elit est esse officia.", - "longText": "In magna quis duis et. Veniam consectetur dolor excepteur aute sit minim aute aute ipsum dolor id sint quis. Ex aute Lorem commodo sit et qui esse nulla excepteur tempor. Cillum consectetur nulla consequat nisi elit ex labore. Ex officia labore sunt exercitation aliquip culpa elit commodo fugiat aute ut. Id velit velit sunt qui aliquip laborum nulla ea sit in commodo.\r\nPariatur commodo excepteur aliquip voluptate esse do velit do deserunt. Laboris anim deserunt laborum duis cillum aliqua esse cillum sunt. Ad fugiat nostrud amet sunt ipsum. Laborum deserunt qui eiusmod consequat.\r\nIrure qui enim voluptate laboris ex ad esse irure sunt officia aliquip do elit esse. Eu do commodo in excepteur ad. Aliquip nulla Lorem nisi sunt quis ex in eu fugiat minim elit consectetur occaecat.\r\n", - "address": "3 Falmouth Street", - "city": "Manchester", - "state": "Vermont", - "zip": 34619, - "country": "New Zealand", - "email": "mariettacantu@scentric.com", - "phone": "(932) 598-2276", - "color": "rgb(156,114,200)" - }, - { - "index": 472, - "name": "Lambert Spears", - "first": "Harding", - "last": "Woodward", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/nicollerich/73.jpg", - "boolean": false, - "guid": "32d3c3aa-0997-4d88-b2e7-9b28713b91bd", - "integer": 85, - "date": "Fri Feb 10 2006 11:58:14 GMT-0800 (PST)", - "shortText": "ullamco enim aliquip amet veniam", - "mediumText": "Excepteur magna velit est et minim veniam.", - "longText": "Ut nostrud elit dolor eiusmod est id. Sit aliqua tempor incididunt quis magna aliquip irure in elit in. Exercitation pariatur deserunt irure ullamco laboris excepteur ea. Deserunt labore laboris fugiat reprehenderit laborum quis occaecat duis voluptate labore culpa nisi aliqua ea. Veniam ea duis sint quis anim do.\r\nFugiat reprehenderit proident minim irure aliqua sunt non quis sunt ut. Eiusmod et occaecat ad quis. Velit ipsum in amet qui aliquip consequat sit voluptate est consequat. Nostrud laborum proident incididunt proident voluptate do sint minim officia.\r\n", - "address": "3 Guernsey Street", - "city": "Magnolia", - "state": "Nebraska", - "zip": 56924, - "country": "Lebanon", - "email": "hardingwoodward@scentric.com", - "phone": "(852) 477-3706", - "color": "rgb(148,78,220)" - }, - { - "index": 473, - "name": "Ferrell Gallegos", - "first": "Marie", - "last": "Flowers", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mrmartineau/73.jpg", - "boolean": true, - "guid": "3b7ed12d-4299-4fd6-a79a-42a27d171c9e", - "integer": 92, - "date": "Sun Jun 07 1992 13:29:12 GMT-0700 (PDT)", - "shortText": "sunt non veniam", - "mediumText": "Lorem officia duis consequat minim occaecat enim incididunt et labore consequat esse amet. Ea incididunt dolore eiusmod dolor mollit veniam laborum et cupidatat proident. Mollit sint fugiat tempor consectetur veniam ad cupidatat.", - "longText": "Do et sint pariatur in ex consectetur esse. Sit deserunt sit pariatur Lorem laboris duis ex est Lorem sunt. Qui id occaecat proident irure non aliquip tempor velit voluptate dolor adipisicing ullamco enim irure.\r\n", - "address": "4 Harden Street", - "city": "Worton", - "state": "Florida", - "zip": 87914, - "country": "Armenia", - "email": "marieflowers@scentric.com", - "phone": "(867) 463-2219", - "color": "rgb(245,149,165)" - }, - { - "index": 474, - "name": "Elena Hale", - "first": "Leola", - "last": "Byers", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kuldarkalvik/73.jpg", - "boolean": false, - "guid": "248816ef-ebc8-48b6-83b8-ddf059001caf", - "integer": 36, - "date": "Fri Nov 08 1974 22:54:38 GMT-0800 (PST)", - "shortText": "sint ea eu aliqua elit", - "mediumText": "Dolor velit ullamco ullamco dolor nostrud. Qui deserunt mollit ea id cillum eu. Consectetur dolor irure esse velit sunt nostrud nostrud voluptate cillum tempor ipsum mollit do. Laboris ea esse do laboris adipisicing nisi. Labore excepteur cupidatat nostrud sit aliqua ad labore Lorem do aliquip ea veniam veniam.", - "longText": "Et esse non incididunt sunt aliqua eiusmod. Enim id ullamco in ex dolor est non eiusmod reprehenderit. Quis velit pariatur irure labore id enim. Anim esse voluptate fugiat ipsum do amet nisi velit pariatur deserunt culpa. Duis ullamco anim quis deserunt labore id laboris. Minim laborum id ex ex. Nulla mollit id esse do reprehenderit eu velit eu dolor commodo dolore aute sit.\r\nMollit magna reprehenderit velit consequat pariatur officia dolore laborum. Do sit reprehenderit qui fugiat voluptate ut cupidatat sit magna mollit sit velit Lorem. Id anim veniam aliquip aliqua adipisicing.\r\n", - "address": "2 Elliott Walk", - "city": "Gwynn", - "state": "New Jersey", - "zip": 23849, - "country": "Cayman Islands", - "email": "leolabyers@scentric.com", - "phone": "(800) 419-2994", - "color": "rgb(62,183,119)" - }, - { - "index": 475, - "name": "Deloris Warren", - "first": "Lacy", - "last": "Elliott", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/erickmazer/73.jpg", - "boolean": true, - "guid": "75cda396-a179-4462-bd5f-c87f9cdcb07d", - "integer": 16, - "date": "Tue Mar 20 2012 21:38:59 GMT-0700 (PDT)", - "shortText": "labore fugiat et", - "mediumText": "Fugiat velit exercitation commodo dolor deserunt commodo cupidatat eiusmod excepteur ea. Voluptate est deserunt eiusmod nostrud.", - "longText": "Adipisicing qui esse voluptate aliqua magna aliquip esse. Tempor ad aliquip ullamco fugiat. Aliqua Lorem velit consectetur amet velit deserunt.\r\nIrure tempor anim cillum aliqua pariatur fugiat. Nostrud amet dolore nisi cillum qui sit excepteur magna fugiat aute fugiat. Irure culpa incididunt est velit non anim adipisicing culpa est qui. Pariatur est reprehenderit amet officia mollit eu.\r\nId anim exercitation ex culpa dolor amet culpa sint sint sint esse dolore ea cupidatat. Ut laborum ullamco elit proident. Sit aute id proident nulla et. Incididunt excepteur ut cupidatat reprehenderit. Labore qui laboris consequat pariatur do cillum.\r\n", - "address": "3 Ditmars Street", - "city": "Carrizo", - "state": "Wisconsin", - "zip": 21484, - "country": "Italy", - "email": "lacyelliott@scentric.com", - "phone": "(927) 422-3415", - "color": "rgb(69,169,92)" - }, - { - "index": 476, - "name": "Young Lee", - "first": "Kay", - "last": "Montgomery", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/guischmitt/73.jpg", - "boolean": true, - "guid": "c41e7a43-d02b-4c42-9d72-38d7ba926b78", - "integer": 99, - "date": "Wed Sep 26 1979 16:42:55 GMT-0700 (PDT)", - "shortText": "Lorem consequat esse occaecat irure", - "mediumText": "Ex velit deserunt veniam dolor et fugiat. Mollit excepteur occaecat cupidatat mollit ut magna et. Nostrud magna esse consectetur exercitation irure magna Lorem do nulla. Sit laboris cupidatat ullamco eiusmod nisi ex.", - "longText": "Enim cupidatat magna sint velit cupidatat Lorem sint est eiusmod irure officia ea occaecat. Laborum qui officia voluptate anim enim velit cillum ipsum. Irure labore irure eiusmod Lorem sint minim laboris deserunt irure dolor. Anim quis laborum cupidatat ex ex in. Dolor ipsum fugiat ad mollit proident labore consectetur dolore labore laborum cillum sint dolore. Et ex mollit sit est. Anim incididunt deserunt incididunt proident ea velit enim anim laboris adipisicing.\r\nEa officia laborum veniam duis irure labore. Aliquip velit et quis officia veniam cillum dolor nostrud non ipsum sint sint fugiat. Occaecat tempor ea consequat consequat voluptate.\r\nNostrud officia aliquip est eu quis ex dolor sint commodo commodo reprehenderit laborum. Do deserunt voluptate laboris do. Velit fugiat incididunt fugiat proident cillum ad excepteur aute aliqua minim. Nulla voluptate fugiat sint ea incididunt esse laboris sint incididunt dolor cillum irure magna. Tempor culpa anim duis qui adipisicing culpa enim magna duis. Nisi mollit qui nisi excepteur ut ut. Dolor laboris ad in reprehenderit enim sint excepteur laborum irure aliquip.\r\nLorem sit ad excepteur cillum ad consequat fugiat aliqua mollit veniam labore sit aliquip aute. Laborum dolore proident in aute labore ad dolore duis pariatur culpa mollit commodo esse. Enim occaecat officia ipsum ad eiusmod exercitation tempor nisi proident irure ut ut. Elit amet ad ex irure enim laboris elit ex anim magna sint sunt tempor in. Et magna ipsum laborum Lorem incididunt. Amet cillum ut magna dolore elit aute.\r\nSit nulla sint non velit aliquip occaecat sint laborum. Aliqua tempor dolore velit nisi tempor magna labore sunt elit et. Occaecat nisi commodo sunt et tempor ut ullamco. Sint tempor adipisicing consequat commodo tempor deserunt voluptate ea Lorem exercitation id culpa.\r\n", - "address": "4 India Street", - "city": "Elliott", - "state": "Washington", - "zip": 78397, - "country": "Lesotho", - "email": "kaymontgomery@scentric.com", - "phone": "(803) 429-2640", - "color": "rgb(217,203,52)" - }, - { - "index": 477, - "name": "Lynn Kim", - "first": "Ericka", - "last": "Todd", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/mariosmaselli/73.jpg", - "boolean": true, - "guid": "e055ce4f-15a9-429c-91eb-a66e77b390f4", - "integer": 98, - "date": "Tue Mar 14 1972 10:31:22 GMT-0800 (PST)", - "shortText": "ullamco excepteur", - "mediumText": "Tempor sunt aliqua aliquip labore nisi ad eu in et eu laboris deserunt commodo ex. Ipsum minim ex dolor reprehenderit magna ullamco eu quis.", - "longText": "Sint dolore ipsum eu nulla amet amet aute commodo exercitation duis sit occaecat id. Eiusmod ex occaecat consequat tempor fugiat non ad minim anim Lorem. Magna dolore duis exercitation cupidatat elit ipsum Lorem eu mollit sint nulla reprehenderit ullamco elit. Ea est ea commodo eu do. In dolor magna reprehenderit ad dolor dolor id amet tempor occaecat. In laboris do incididunt occaecat elit quis ad amet. Anim sint elit culpa ullamco enim anim officia reprehenderit sunt.\r\nOfficia mollit cupidatat aliquip in laborum consectetur ea. Exercitation voluptate sint labore sunt excepteur eiusmod nostrud voluptate quis pariatur nulla. Esse commodo excepteur pariatur sit tempor ea laborum reprehenderit irure ex tempor.\r\nQuis labore et ad fugiat nostrud id labore non excepteur ipsum elit. Ea nulla laboris dolore nostrud quis irure magna est. Eiusmod mollit voluptate non laborum nostrud voluptate nisi voluptate. Est veniam veniam ad elit nostrud proident adipisicing ullamco aliquip commodo aliquip laborum laborum ad. Amet incididunt esse consequat nisi et consectetur. Adipisicing sunt irure Lorem elit aliqua dolore quis nostrud. Ex magna nisi excepteur occaecat veniam non dolore minim nostrud.\r\n", - "address": "3 Irving Avenue", - "city": "Stonybrook", - "state": "Oregon", - "zip": 25156, - "country": "Mongolia", - "email": "erickatodd@scentric.com", - "phone": "(854) 460-2134", - "color": "rgb(88,191,173)" - }, - { - "index": 478, - "name": "Duran Rasmussen", - "first": "Irene", - "last": "Guy", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/m_ahmadyunus/73.jpg", - "boolean": false, - "guid": "ebebb8d9-3261-4d1f-b04c-580c3537cf32", - "integer": 5, - "date": "Mon Dec 14 1992 15:07:33 GMT-0800 (PST)", - "shortText": "excepteur", - "mediumText": "Aute ut nostrud cillum irure non veniam minim exercitation ex mollit sint veniam voluptate. Est culpa eiusmod aliquip anim. Nisi aliquip duis magna nulla est Lorem cupidatat nisi ut proident nostrud voluptate.", - "longText": "Aute consectetur qui sunt enim ad nulla velit et laborum culpa. Laboris officia exercitation nulla aute incididunt excepteur. Dolor et aliqua nulla mollit incididunt velit laborum nisi non ad excepteur. Exercitation ea dolore aliqua sunt minim dolore laboris Lorem culpa ex ut commodo.\r\nVoluptate occaecat et eu elit mollit commodo laboris eiusmod cillum mollit eiusmod est sunt labore. Ea commodo nisi culpa Lorem velit sit labore elit anim est sit sunt ex pariatur. Fugiat consectetur laborum deserunt sit excepteur exercitation qui veniam culpa sint.\r\nTempor aliquip excepteur consectetur commodo dolor magna. Aute elit esse mollit nisi dolore non laboris velit cillum cupidatat proident proident pariatur aute. Labore cillum ex magna anim voluptate esse deserunt consectetur anim est proident. Cillum Lorem sint aliqua fugiat eu qui. Aute eiusmod est qui aliqua incididunt cillum esse est laboris. Cillum et aute culpa excepteur nisi amet veniam incididunt do do sint esse in sint. Culpa ad ipsum ad nostrud id laborum.\r\n", - "address": "4 Dunham Place", - "city": "Vicksburg", - "state": "Illinois", - "zip": 21064, - "country": "Germany", - "email": "ireneguy@scentric.com", - "phone": "(895) 490-2069", - "color": "rgb(65,241,108)" - }, - { - "index": 479, - "name": "Gomez Kent", - "first": "Beverley", - "last": "Garrison", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/anggit_pradito/73.jpg", - "boolean": false, - "guid": "1f6414f6-bcb1-4a8e-9bd3-1f4bd3657fb8", - "integer": 52, - "date": "Sun Nov 21 1982 20:33:30 GMT-0800 (PST)", - "shortText": "sint cillum non dolore sit", - "mediumText": "Aliquip ad elit nulla veniam quis.", - "longText": "Incididunt in veniam laboris laboris. Ipsum laboris Lorem ea cupidatat laboris deserunt cillum esse. Elit qui id dolor mollit incididunt veniam aute in eiusmod. Occaecat est adipisicing dolor velit enim. Ipsum laboris nulla Lorem ex ut exercitation nulla commodo nisi occaecat excepteur et Lorem ex. Proident eu exercitation exercitation aliqua enim. Tempor magna excepteur enim aliqua.\r\nMollit fugiat veniam minim esse reprehenderit. Cillum exercitation qui elit anim proident. Aliquip ullamco irure aliqua sit commodo veniam cillum adipisicing proident ad aliquip dolore minim.\r\nQuis pariatur sint commodo mollit reprehenderit et incididunt commodo aliqua sint. Sunt nulla deserunt ad nulla in sit incididunt laborum nulla magna culpa excepteur. Deserunt ad non ullamco in amet do elit qui excepteur.\r\nQui ut do ex pariatur tempor. Anim qui labore sunt nisi amet laborum occaecat adipisicing incididunt fugiat labore. Laborum nisi duis minim pariatur labore ea consequat exercitation. Cillum reprehenderit eiusmod aute cillum laborum labore dolor aliqua in magna.\r\n", - "address": "4 Lafayette Avenue", - "city": "Esmont", - "state": "West Virginia", - "zip": 45346, - "country": "Thailand", - "email": "beverleygarrison@scentric.com", - "phone": "(923) 547-3876", - "color": "rgb(69,99,135)" - }, - { - "index": 480, - "name": "Bowers Benson", - "first": "Cannon", - "last": "Cunningham", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/saschamt/73.jpg", - "boolean": false, - "guid": "de1acbb3-f26f-4448-8284-168962e64357", - "integer": 18, - "date": "Sat Jan 23 1988 03:15:57 GMT-0800 (PST)", - "shortText": "tempor dolore pariatur laboris", - "mediumText": "Cillum proident sint eiusmod qui ullamco dolore. Elit sit nisi et laboris labore Lorem tempor nulla. Dolore incididunt deserunt aute dolor ad elit nisi magna ad tempor.", - "longText": "Eiusmod id tempor id officia aliqua aliquip cillum est minim in. Est reprehenderit pariatur reprehenderit laborum nulla. Proident sit do anim minim anim minim in proident laborum pariatur laborum magna est.\r\nDolor exercitation ad enim est dolore excepteur consequat non pariatur. Eiusmod do et cupidatat ad esse do cillum elit in laboris. Labore consequat cupidatat officia do commodo sit consectetur ipsum irure consectetur. Ullamco commodo cillum officia cupidatat Lorem id.\r\nId anim culpa ex et reprehenderit do proident laboris reprehenderit. Proident quis irure duis irure ex ut velit mollit consectetur anim Lorem. Id consectetur laborum enim consectetur eiusmod excepteur id excepteur. In sunt anim magna duis ad occaecat cillum amet tempor pariatur sunt Lorem et proident. Officia in ipsum sunt aute Lorem.\r\n", - "address": "3 Eldert Lane", - "city": "Torboy", - "state": "Mississippi", - "zip": 21587, - "country": "Seychelles", - "email": "cannoncunningham@scentric.com", - "phone": "(922) 457-2557", - "color": "rgb(214,152,137)" - }, - { - "index": 481, - "name": "Duffy Moreno", - "first": "Combs", - "last": "Lamb", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/anasnakawa/73.jpg", - "boolean": false, - "guid": "cc6e70c6-d769-4d53-94c3-3f39685f92b0", - "integer": 62, - "date": "Sat May 08 1971 07:47:14 GMT-0700 (PDT)", - "shortText": "ipsum in sint id amet", - "mediumText": "Voluptate sit occaecat velit elit culpa pariatur deserunt minim tempor. Ipsum sint ad voluptate ipsum.", - "longText": "Non ex consectetur nostrud et incididunt et tempor laborum fugiat aliqua ex sunt. Consectetur velit cillum ea elit anim ut qui velit sit. Dolore cillum eu sint dolore consequat est enim minim sunt dolore dolor est ut aliqua. Tempor ullamco eiusmod incididunt esse quis adipisicing ut et voluptate aliqua ullamco in. Adipisicing irure dolor irure esse velit dolore. Ea ullamco consectetur anim et in quis laboris nulla nisi sint ipsum. Enim aliquip deserunt voluptate quis sint.\r\nCommodo cupidatat occaecat elit Lorem dolor excepteur aliquip est incididunt. Sit minim aute non dolore voluptate nisi. Id non sit nostrud ad.\r\nExercitation deserunt officia nostrud occaecat qui et veniam laborum nostrud dolor dolore id. Ullamco enim esse ex aute ad incididunt aliquip. Tempor id voluptate fugiat ex fugiat dolor.\r\nAd ipsum voluptate ipsum cillum id. Exercitation labore velit occaecat adipisicing non excepteur aute amet. Culpa exercitation deserunt aute excepteur sit enim eiusmod esse Lorem anim aliqua laborum et. Dolore deserunt minim dolore nulla cupidatat proident commodo nisi. Qui exercitation sit elit aliquip mollit aliqua. Proident cupidatat labore culpa ea.\r\n", - "address": "4 Rutledge Street", - "city": "Waterford", - "state": "Rhode Island", - "zip": 58081, - "country": "Chad", - "email": "combslamb@scentric.com", - "phone": "(880) 495-3320", - "color": "rgb(104,242,253)" - }, - { - "index": 482, - "name": "Leach Middleton", - "first": "Molina", - "last": "Parsons", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/just_watt/73.jpg", - "boolean": false, - "guid": "e824a101-32db-4fdd-98bc-f68a09cc9790", - "integer": 36, - "date": "Mon May 13 1996 08:23:43 GMT-0700 (PDT)", - "shortText": "est irure exercitation reprehenderit tempor", - "mediumText": "Cupidatat amet id duis occaecat ad elit quis ea consectetur consequat nostrud qui fugiat. Ea cupidatat est nisi reprehenderit in et sit et ad veniam do elit adipisicing sit. Non Lorem anim consequat velit occaecat excepteur. Officia esse magna veniam dolore ullamco fugiat enim.", - "longText": "In sunt in velit ipsum laborum minim enim sunt duis. Ut duis elit occaecat voluptate eiusmod. Cupidatat dolor laboris aliquip officia magna voluptate incididunt.\r\nFugiat irure ad quis ea aliqua proident ipsum quis ut incididunt. Aliquip culpa velit magna exercitation nostrud. Minim cupidatat irure exercitation excepteur cupidatat dolore. Excepteur amet laborum nulla adipisicing minim aliquip minim cillum nulla officia ut. Nostrud quis eu laboris quis qui minim ad quis ea reprehenderit. Proident ipsum aliquip cupidatat nisi.\r\nConsectetur sint magna id est cupidatat minim. Non cillum aliqua amet commodo aute eiusmod dolor et ad ut non culpa duis incididunt. Sint aliquip excepteur aliqua aliquip mollit commodo amet mollit. Irure minim nisi eu ea sit. Voluptate esse culpa adipisicing excepteur laborum proident laborum proident. Excepteur duis eu fugiat eiusmod labore velit do qui esse dolore labore enim. Esse quis ipsum Lorem voluptate tempor est fugiat enim reprehenderit duis.\r\nVeniam magna qui velit nulla velit incididunt aliqua qui dolore esse ex ad. Fugiat do nostrud do magna excepteur eiusmod et adipisicing aute aliquip cupidatat fugiat irure. Aliqua officia qui anim esse duis est minim excepteur est esse dolor id deserunt.\r\n", - "address": "2 Woods Place", - "city": "Leyner", - "state": "Georgia", - "zip": 45379, - "country": "Uruguay", - "email": "molinaparsons@scentric.com", - "phone": "(825) 403-3345", - "color": "rgb(74,223,146)" - }, - { - "index": 483, - "name": "Della Gomez", - "first": "Lamb", - "last": "Pierce", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/caiifr/73.jpg", - "boolean": false, - "guid": "19a7f089-3845-4441-b5ad-2b14bf2ca81a", - "integer": 50, - "date": "Mon Sep 28 1998 02:00:36 GMT-0700 (PDT)", - "shortText": "proident", - "mediumText": "Cupidatat in duis aliquip nisi consequat enim. Consectetur velit et nostrud et ea exercitation et aliquip pariatur aliqua velit eu ipsum reprehenderit.", - "longText": "Nulla nostrud ex eiusmod adipisicing. Exercitation ad dolore excepteur laborum quis non nisi duis dolor incididunt veniam fugiat laboris. Occaecat officia et eu proident ullamco dolor exercitation non laborum ea aliquip duis laborum. Exercitation voluptate ex aute nisi magna non laboris ea consequat. Est enim do tempor enim aute esse duis voluptate dolor. Aute enim minim cillum id.\r\nMollit eiusmod excepteur nisi est enim labore amet. Enim proident labore mollit dolor do incididunt deserunt irure exercitation irure magna. Incididunt irure officia consectetur magna fugiat quis fugiat voluptate nulla voluptate eu velit. Cupidatat qui proident deserunt reprehenderit veniam sunt non magna velit. Laboris labore consectetur ea et et. Non ex commodo amet enim.\r\nVeniam ex consequat minim ea adipisicing aute elit ea in in pariatur. Consequat nostrud sit non eiusmod voluptate consectetur velit cupidatat qui consectetur esse. Eu laboris cillum quis mollit minim id commodo quis laboris esse sint est irure.\r\nDolore pariatur officia sint qui consequat sunt minim culpa cillum amet qui. Anim adipisicing enim voluptate non nulla anim cupidatat ullamco consectetur elit qui culpa excepteur. Ad enim labore aliqua nulla sint consectetur ipsum occaecat occaecat ut cupidatat ad id ex. Mollit magna qui reprehenderit officia irure nisi ullamco excepteur consequat esse. Dolore commodo laboris ad culpa cillum eu laborum consectetur non occaecat. Sunt magna voluptate occaecat sunt occaecat exercitation magna sint sunt ullamco Lorem labore aliquip. Excepteur pariatur mollit ex incididunt.\r\n", - "address": "2 Dwight Street", - "city": "Newkirk", - "state": "New Mexico", - "zip": 24042, - "country": "Burkina Faso", - "email": "lambpierce@scentric.com", - "phone": "(996) 559-3096", - "color": "rgb(154,210,165)" - }, - { - "index": 484, - "name": "Holder Barker", - "first": "Patrick", - "last": "Best", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/briandiazme/73.jpg", - "boolean": true, - "guid": "c45e5d59-d200-42b3-9f8f-4ecba7a5c540", - "integer": 99, - "date": "Fri Nov 12 1971 21:30:45 GMT-0800 (PST)", - "shortText": "ea", - "mediumText": "Velit in qui nisi cupidatat qui deserunt. Quis pariatur nulla non cupidatat ad magna. Eu anim velit eu qui Lorem officia esse irure magna nulla eiusmod. Do adipisicing minim ad nulla.", - "longText": "Amet id duis eu tempor. Proident nisi pariatur id sit non adipisicing ex nostrud commodo consectetur sint sunt sunt exercitation. Eiusmod sunt est in eiusmod. Enim ut consectetur anim ea qui enim id irure deserunt eu. Tempor aute id nulla velit nostrud dolor veniam esse sint laborum ea. Non aliquip sunt nulla cupidatat amet aliqua non non.\r\nNisi ex ad ad enim eu sit proident aliquip ut incididunt reprehenderit nostrud pariatur. Sint dolor in veniam excepteur enim qui sit sunt cupidatat. Sunt velit magna culpa consectetur quis consectetur veniam do quis irure. Cupidatat aute laborum aute adipisicing amet mollit cillum amet ut. Nostrud magna adipisicing culpa sint esse ex pariatur cupidatat reprehenderit reprehenderit anim deserunt elit sunt. Ullamco minim consequat id in tempor.\r\nAmet veniam anim ullamco eu ea eiusmod est nulla velit. Aliqua nostrud laborum esse commodo laborum dolore. Pariatur magna officia eiusmod velit velit anim ad magna ipsum aliquip.\r\n", - "address": "4 Strauss Street", - "city": "Muir", - "state": "Arizona", - "zip": 26765, - "country": "Greenland", - "email": "patrickbest@scentric.com", - "phone": "(824) 579-3730", - "color": "rgb(171,74,141)" - }, - { - "index": 485, - "name": "Pitts Soto", - "first": "Vincent", - "last": "Hughes", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/productpeopletv/73.jpg", - "boolean": true, - "guid": "fe55de6c-660f-4642-8677-5fdea19e5504", - "integer": 34, - "date": "Mon Dec 20 1971 02:47:54 GMT-0800 (PST)", - "shortText": "dolore officia", - "mediumText": "Et in laboris tempor laborum eu nisi consequat adipisicing et eu aliqua anim sunt sint. Culpa est esse eu reprehenderit mollit dolore. Tempor esse laboris esse ea duis dolore in nulla excepteur sit veniam enim velit.", - "longText": "Quis nostrud exercitation ullamco eiusmod proident non officia do mollit laborum exercitation. Velit irure incididunt in nisi laboris consequat eu cupidatat velit cillum nisi pariatur nostrud. Laborum ex reprehenderit culpa dolor duis culpa ut amet deserunt tempor amet. Laborum labore officia dolor occaecat elit. Lorem ullamco consectetur commodo elit et commodo deserunt enim. Sunt consequat cillum proident irure. Pariatur adipisicing ad proident culpa pariatur in tempor irure id ex sint adipisicing nulla tempor.\r\nEu cupidatat culpa non Lorem minim aliqua qui. Non ex aliquip ut reprehenderit anim aute nulla duis sit sunt ut. Nulla cupidatat non commodo adipisicing. Nisi exercitation quis veniam velit cillum incididunt. Do exercitation ut nulla Lorem culpa qui minim laboris quis ipsum elit sunt irure nulla.\r\nEt aute aliquip adipisicing labore ad irure quis consequat occaecat sunt. Reprehenderit fugiat ea eiusmod pariatur Lorem laboris anim non quis labore nisi. Mollit exercitation pariatur incididunt consequat reprehenderit officia nostrud labore duis aute quis sint. Exercitation ipsum esse sit in nulla anim.\r\nIpsum minim tempor et culpa adipisicing nisi tempor nisi laborum anim. Labore enim in sint minim duis Lorem fugiat nisi adipisicing do est elit excepteur. Velit dolore ea aliqua quis qui sit aliquip anim quis velit occaecat. Officia adipisicing ipsum ullamco cillum pariatur ad officia consectetur voluptate aliquip. Est adipisicing incididunt exercitation sunt aliqua irure consectetur excepteur adipisicing sint. Aute non ut ea ea enim. Aliqua Lorem excepteur voluptate nostrud ad proident reprehenderit ad dolore labore sit excepteur excepteur.\r\nAd tempor et veniam consequat. Duis commodo labore eiusmod reprehenderit consectetur adipisicing sint cillum laboris aliquip laboris occaecat sit. Sunt officia mollit labore culpa ea ut. Sunt commodo ea non Lorem culpa incididunt incididunt esse labore et irure tempor ex. Dolor culpa ea amet laboris ad ad mollit qui.\r\n", - "address": "2 Battery Avenue", - "city": "Westphalia", - "state": "Texas", - "zip": 12235, - "country": "Fiji", - "email": "vincenthughes@scentric.com", - "phone": "(947) 521-2627", - "color": "rgb(241,60,119)" - }, - { - "index": 486, - "name": "Morrison Frye", - "first": "Mae", - "last": "Ramirez", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/darioalbini/73.jpg", - "boolean": true, - "guid": "03d96011-46bd-43a9-8186-6b5a9c45ef96", - "integer": 94, - "date": "Sat Dec 29 2012 13:16:12 GMT-0800 (PST)", - "shortText": "duis reprehenderit", - "mediumText": "Sit fugiat exercitation ut laborum.", - "longText": "Ea proident aliqua aute quis Lorem sunt ad. Qui irure fugiat aute dolore sint non sit magna. Nostrud tempor nulla eiusmod fugiat nostrud ad pariatur elit ea laboris.\r\nElit eiusmod mollit anim pariatur ea duis commodo sit eu consectetur non. Officia nisi sunt eu voluptate eu dolor laborum et irure aliquip aliquip consequat sint exercitation. Aliqua anim eiusmod laboris pariatur sit proident irure excepteur amet sint culpa dolor commodo nisi. Quis laborum est occaecat aute quis aliqua proident minim. Cillum tempor occaecat dolore irure labore nisi labore ut mollit proident eu. Eu adipisicing labore elit esse proident proident.\r\nDolore velit do ullamco ad occaecat veniam fugiat. Nulla excepteur aliqua sit magna ipsum pariatur. Anim magna esse laboris eiusmod Lorem ex. Quis mollit nostrud voluptate aliqua ea aliqua sunt non. Quis sint dolor do eu voluptate ad laborum. Eiusmod occaecat elit est labore qui ad ullamco. Esse sit nisi occaecat esse ullamco aliquip cupidatat mollit occaecat esse anim aliqua ea id.\r\nLaborum nostrud anim non excepteur aliqua ullamco minim sunt esse. Consequat ipsum aute id culpa quis minim incididunt. Dolor duis cupidatat ea cupidatat sunt magna consequat in ullamco aliqua eu voluptate. Pariatur proident esse consectetur Lorem id aliquip dolor quis occaecat eiusmod. Ad laboris reprehenderit fugiat amet excepteur. Sunt sit eu qui ad tempor cillum.\r\n", - "address": "4 Willow Place", - "city": "Biehle", - "state": "District Of Columbia", - "zip": 30874, - "country": "Viet Nam", - "email": "maeramirez@scentric.com", - "phone": "(866) 481-3384", - "color": "rgb(104,176,225)" - }, - { - "index": 487, - "name": "Diane Patrick", - "first": "Esperanza", - "last": "Rivera", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/_pandajs/73.jpg", - "boolean": false, - "guid": "7f120012-357d-44c7-8dbe-9cfee5ca1f70", - "integer": 30, - "date": "Fri Jun 30 2000 14:03:45 GMT-0700 (PDT)", - "shortText": "tempor elit cupidatat labore", - "mediumText": "Exercitation reprehenderit tempor tempor esse magna in voluptate ea. Incididunt quis voluptate pariatur irure. Aliquip duis duis velit ullamco consequat ullamco ut proident Lorem dolore proident. Est qui amet ut ad exercitation aute cillum. Pariatur sit ea in consectetur qui amet minim nisi eu.", - "longText": "Adipisicing sit ut duis est tempor incididunt fugiat deserunt ad do voluptate amet eu. Excepteur eiusmod in id amet minim. Anim non velit velit id. Consequat proident irure aliquip est mollit proident cillum commodo veniam exercitation irure nostrud non. Tempor aliquip id fugiat duis elit sint. Enim ea pariatur ex ipsum cupidatat. Nulla proident labore in irure qui.\r\n", - "address": "2 Monument Walk", - "city": "Newry", - "state": "Virgin Islands", - "zip": 40958, - "country": "France, Metropolitan", - "email": "esperanzarivera@scentric.com", - "phone": "(909) 486-2560", - "color": "rgb(164,161,80)" - }, - { - "index": 488, - "name": "Ellen Rich", - "first": "Chandra", - "last": "Cote", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/wellnext/73.jpg", - "boolean": true, - "guid": "02e9640e-9e9f-4b08-85b4-cb797b3b3a9b", - "integer": 71, - "date": "Sat May 01 2004 01:19:45 GMT-0700 (PDT)", - "shortText": "veniam", - "mediumText": "Irure labore ea ex culpa reprehenderit. Et ad irure aute ut quis elit. Proident magna qui sint fugiat culpa commodo aute duis proident. Officia do enim id proident occaecat fugiat eiusmod sint sint laborum ea.", - "longText": "Sunt duis est et magna excepteur laboris culpa anim pariatur officia veniam proident et. Quis tempor excepteur labore eiusmod enim. Ipsum fugiat nisi nulla minim consequat anim aliqua aliqua laboris est labore. Occaecat est qui labore ut fugiat est magna quis esse magna ex irure proident non. In dolore voluptate minim veniam anim qui reprehenderit sit irure sint duis veniam nulla qui. Sunt minim ex consequat incididunt sit ipsum cupidatat esse fugiat.\r\nExercitation magna anim adipisicing minim qui esse eiusmod. Excepteur minim Lorem pariatur in incididunt pariatur sit ipsum deserunt irure laborum. Cillum irure elit nisi dolor cupidatat eiusmod officia eu incididunt aliqua sint excepteur deserunt laboris. Non sint et velit et in aute do cupidatat nostrud sunt excepteur. Aliqua aute voluptate et exercitation exercitation tempor quis aute.\r\nLaboris ut voluptate nisi dolore fugiat. Nulla deserunt cupidatat do quis excepteur reprehenderit nostrud aute laboris Lorem eiusmod sunt. Aliquip voluptate voluptate Lorem non qui adipisicing magna occaecat ad duis.\r\nSit magna amet laboris qui deserunt eu aliquip. Eu ad nulla adipisicing occaecat eu Lorem officia magna nulla amet labore proident minim voluptate. Laboris consequat sint amet cupidatat aute aute sit aliquip excepteur minim ad reprehenderit. Et et sit amet laboris reprehenderit incididunt esse. Non ipsum sit qui anim eiusmod.\r\n", - "address": "4 Ashford Street", - "city": "Dunnavant", - "state": "Puerto Rico", - "zip": 54991, - "country": "Uganda", - "email": "chandracote@scentric.com", - "phone": "(964) 526-3818", - "color": "rgb(172,172,60)" - }, - { - "index": 489, - "name": "Adele Stanton", - "first": "Allison", - "last": "Maxwell", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/skylark64/73.jpg", - "boolean": false, - "guid": "94d8f372-ebe3-4cd7-8456-4b12af0dbc7f", - "integer": 45, - "date": "Sun Oct 28 1990 07:28:14 GMT-0800 (PST)", - "shortText": "reprehenderit", - "mediumText": "Exercitation excepteur nisi duis est laboris ipsum sint est laboris enim ex officia nostrud. Nisi pariatur dolor elit irure aliqua.", - "longText": "Lorem ea id veniam proident exercitation culpa dolor deserunt do cillum dolor ullamco cillum id. Esse sit tempor consectetur elit consequat laborum. Enim ea fugiat ad Lorem aliqua pariatur exercitation ipsum incididunt elit Lorem ipsum amet. Est nisi id adipisicing deserunt dolore aliquip proident commodo. Dolor qui quis excepteur eu proident.\r\nNostrud dolor fugiat nisi dolore qui sunt. Velit ullamco anim do eu. Culpa Lorem id excepteur nostrud culpa Lorem cupidatat culpa ea eiusmod laborum ex. Excepteur veniam voluptate tempor eu ex amet incididunt aute veniam magna.\r\nLabore velit dolor est consectetur ad non officia. Tempor pariatur dolor amet tempor amet eu non anim. Voluptate in fugiat est duis ad est. Id id sit fugiat sunt. Tempor ipsum nisi ea non proident id duis non exercitation ipsum minim proident. Do deserunt sit aute deserunt. Enim quis pariatur ad velit culpa dolor.\r\n", - "address": "2 Bedford Avenue", - "city": "Woodlake", - "state": "Maryland", - "zip": 25064, - "country": "Antarctica", - "email": "allisonmaxwell@scentric.com", - "phone": "(899) 448-3606", - "color": "rgb(240,230,119)" - }, - { - "index": 490, - "name": "Ilene Alston", - "first": "Cecile", - "last": "Woods", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lisekyle/73.jpg", - "boolean": false, - "guid": "1580bd0d-10e4-45df-8d7a-a7d5028512d8", - "integer": 95, - "date": "Sun Mar 29 2009 19:07:07 GMT-0700 (PDT)", - "shortText": "ullamco incididunt", - "mediumText": "Occaecat elit cillum laboris nulla culpa veniam sit non aliquip occaecat. Proident do aliquip exercitation quis proident culpa. Veniam et est incididunt reprehenderit reprehenderit sit elit eiusmod velit qui nulla tempor non. Eiusmod reprehenderit mollit non veniam nisi eiusmod mollit ullamco culpa.", - "longText": "Ea irure est pariatur est qui fugiat ut sit non enim mollit tempor. Aliquip sunt nulla pariatur dolore eu fugiat enim sunt est laboris. Aliquip reprehenderit exercitation id occaecat. Incididunt amet ex dolor sunt.\r\nDuis culpa occaecat deserunt dolore laborum. Sit non officia nisi exercitation do id minim. Voluptate esse velit do officia consectetur duis Lorem proident consequat duis laborum eiusmod officia amet.\r\nCupidatat adipisicing esse laborum sit nisi occaecat reprehenderit officia aute. Sit elit in nisi nulla ipsum mollit. Voluptate fugiat proident incididunt pariatur. Dolor consectetur occaecat est laborum id nisi minim consectetur occaecat. Minim duis occaecat commodo nulla pariatur ex.\r\n", - "address": "3 Gunnison Court", - "city": "Clara", - "state": "Massachusetts", - "zip": 31477, - "country": "Kiribati", - "email": "cecilewoods@scentric.com", - "phone": "(937) 412-3586", - "color": "rgb(218,151,77)" - }, - { - "index": 491, - "name": "Page Marsh", - "first": "Medina", - "last": "Wilson", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/zumwalt/73.jpg", - "boolean": false, - "guid": "4dfb0026-3202-4699-aba7-d815792762f2", - "integer": 42, - "date": "Mon Nov 03 1975 16:09:28 GMT-0800 (PST)", - "shortText": "commodo ex", - "mediumText": "Do ex ullamco eu id consectetur est.", - "longText": "Non consectetur est amet dolore pariatur adipisicing et exercitation pariatur. Duis cillum reprehenderit magna ex esse. Ex incididunt aute in dolore duis. Nisi deserunt quis ex ipsum officia. Esse ea consectetur amet aliquip sunt incididunt.\r\nConsectetur enim aute ad commodo do. Veniam fugiat culpa voluptate minim exercitation eiusmod dolore qui excepteur in laboris incididunt. Ad tempor dolore consectetur ullamco. Ad officia enim laborum minim voluptate fugiat. Laboris eu deserunt ex est. Incididunt est nulla excepteur do ipsum occaecat deserunt esse et. Officia fugiat eiusmod ut sint enim laborum pariatur dolor labore.\r\n", - "address": "4 Lewis Avenue", - "city": "Venice", - "state": "Oklahoma", - "zip": 93431, - "country": "Ecuador", - "email": "medinawilson@scentric.com", - "phone": "(915) 547-2479", - "color": "rgb(97,200,182)" - }, - { - "index": 492, - "name": "Raquel Torres", - "first": "Winters", - "last": "Moon", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/the_winslet/73.jpg", - "boolean": true, - "guid": "2b4cd0b5-6c14-4253-afd2-667d28e069e5", - "integer": 6, - "date": "Sat May 22 1993 08:02:57 GMT-0700 (PDT)", - "shortText": "commodo consectetur culpa aliquip", - "mediumText": "Anim voluptate Lorem laborum consequat ex cillum ipsum exercitation consectetur elit. Pariatur ex qui nostrud enim consectetur eu mollit qui esse irure magna. Reprehenderit aliquip magna sunt labore. Aliqua nisi Lorem ad cupidatat laborum commodo irure non. Ut cupidatat ipsum do adipisicing incididunt.", - "longText": "Magna dolor ut incididunt pariatur cupidatat ullamco. Nisi veniam nulla est est. Nulla ex minim non excepteur quis laborum excepteur ut deserunt eiusmod consequat adipisicing mollit excepteur. Duis id tempor et aliqua laborum.\r\nVoluptate aliquip commodo sit laboris ea nisi id minim consectetur qui. Magna culpa ullamco ea enim excepteur nisi. Anim cillum nostrud ex consectetur. Sint duis voluptate est voluptate eu eu.\r\nConsectetur eiusmod officia qui exercitation ad magna. Ipsum voluptate ex culpa qui fugiat irure magna mollit nisi duis. Non laboris sit adipisicing ipsum dolor eiusmod Lorem aliqua velit ea sit reprehenderit minim aliquip. Reprehenderit non esse voluptate non aute non. Exercitation ex cillum ex sunt incididunt reprehenderit ipsum deserunt ex aliquip. Consectetur esse ut minim duis tempor ex reprehenderit veniam in proident.\r\nLaboris magna labore sint irure. Sit amet cupidatat adipisicing exercitation deserunt sint ad incididunt. Fugiat culpa adipisicing magna est voluptate. Consequat consequat velit reprehenderit aliqua anim commodo fugiat adipisicing qui occaecat dolore sint proident. Ex et officia ullamco labore ipsum consequat magna labore laboris. Adipisicing laboris non non dolore magna tempor do dolore qui nostrud sint. Incididunt enim excepteur aliqua adipisicing culpa irure eiusmod ex ullamco aliquip id cillum commodo ex.\r\n", - "address": "2 Amber Street", - "city": "Masthope", - "state": "Ohio", - "zip": 34479, - "country": "Bulgaria", - "email": "wintersmoon@scentric.com", - "phone": "(812) 514-3427", - "color": "rgb(129,103,138)" - }, - { - "index": 493, - "name": "Sasha Kinney", - "first": "Nielsen", - "last": "Callahan", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/kikillo/73.jpg", - "boolean": false, - "guid": "8d605d34-eb11-4110-9917-e890666b46c9", - "integer": 25, - "date": "Sun Feb 25 1996 00:22:49 GMT-0800 (PST)", - "shortText": "dolor velit", - "mediumText": "Proident occaecat voluptate eiusmod nisi ea non duis. Nostrud fugiat aliquip est exercitation laboris ipsum in dolor nisi duis magna minim. Pariatur pariatur ipsum incididunt excepteur.", - "longText": "Ex duis tempor fugiat mollit sunt enim elit commodo. Laboris in velit magna dolor. Labore labore incididunt veniam eiusmod mollit irure proident voluptate incididunt quis deserunt ad. Eiusmod eiusmod non reprehenderit aute amet eiusmod consectetur magna ea.\r\nTempor ad in cupidatat sunt dolore consectetur sunt. Anim nostrud nulla nostrud consequat. Consequat ullamco enim reprehenderit eu eu ea do duis reprehenderit quis cillum laborum pariatur. Est laborum reprehenderit in commodo enim ullamco mollit. Aute laboris incididunt elit laborum incididunt id tempor.\r\nEt do nulla voluptate magna labore ea commodo ex deserunt. Nostrud pariatur ipsum voluptate do esse non aliqua sint elit laboris ad adipisicing Lorem. Ut fugiat officia nostrud reprehenderit nisi aliqua.\r\n", - "address": "3 Lorraine Street", - "city": "Kidder", - "state": "Nevada", - "zip": 69726, - "country": "American Samoa", - "email": "nielsencallahan@scentric.com", - "phone": "(897) 548-2921", - "color": "rgb(58,212,98)" - }, - { - "index": 494, - "name": "Justice Johnston", - "first": "Francis", - "last": "Walsh", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/hndragnwn/73.jpg", - "boolean": false, - "guid": "93cc4a8b-fe24-4849-a976-a91a2adabb91", - "integer": 60, - "date": "Fri Feb 24 2006 00:14:57 GMT-0800 (PST)", - "shortText": "mollit magna anim exercitation amet", - "mediumText": "Consectetur proident id adipisicing incididunt commodo fugiat tempor amet cupidatat enim nostrud laboris. Non do adipisicing proident id et voluptate enim magna exercitation ut est aliqua pariatur. Enim aute voluptate non elit id commodo commodo aliqua nisi.", - "longText": "Qui aute sunt sint mollit ullamco nisi sunt elit ut cupidatat quis reprehenderit. Amet ullamco sit esse fugiat aliqua proident ut. Nisi ea magna occaecat labore amet fugiat eiusmod cupidatat nulla nostrud mollit et laborum commodo. Lorem commodo anim magna anim in sunt cillum elit deserunt do exercitation labore nisi. Nostrud dolore consequat amet esse deserunt in fugiat non dolore magna laborum.\r\n", - "address": "3 Bethel Loop", - "city": "Williams", - "state": "Montana", - "zip": 30034, - "country": "Angola", - "email": "franciswalsh@scentric.com", - "phone": "(922) 539-3195", - "color": "rgb(80,154,75)" - }, - { - "index": 495, - "name": "Leonard Hess", - "first": "Kate", - "last": "Mccoy", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/fc987/73.jpg", - "boolean": true, - "guid": "0ef972c8-2eaa-4e56-baca-ec8204dee737", - "integer": 89, - "date": "Thu May 26 1988 06:59:06 GMT-0700 (PDT)", - "shortText": "tempor", - "mediumText": "Sunt quis minim magna consectetur ullamco.", - "longText": "Cupidatat incididunt minim laboris eiusmod et ex ad laboris ut commodo ex aliqua. Ea fugiat consectetur sit ut occaecat non est nostrud id in pariatur. Est amet Lorem reprehenderit adipisicing consectetur culpa sit sunt nisi.\r\n", - "address": "4 Caton Avenue", - "city": "Biddle", - "state": "California", - "zip": 25530, - "country": "Bhutan", - "email": "katemccoy@scentric.com", - "phone": "(843) 483-2519", - "color": "rgb(132,225,73)" - }, - { - "index": 496, - "name": "Weiss Malone", - "first": "Buchanan", - "last": "Austin", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/lettershoppe/73.jpg", - "boolean": false, - "guid": "cfc771a6-aeb0-47ec-a5a2-c5240c1b6768", - "integer": 6, - "date": "Fri Feb 14 2014 14:08:10 GMT-0800 (PST)", - "shortText": "id ipsum culpa occaecat reprehenderit", - "mediumText": "Fugiat pariatur in Lorem ipsum ex id. Ex commodo magna enim non ullamco nulla officia velit. Et et ipsum deserunt ex pariatur laboris aliqua in elit sunt excepteur quis exercitation consequat. Fugiat est eiusmod esse amet anim ex aliquip ipsum id aliquip dolor. Qui proident veniam enim enim exercitation deserunt ex voluptate consequat.", - "longText": "Fugiat consequat incididunt aute Lorem aliquip labore tempor consequat quis cillum. Incididunt sunt ullamco proident pariatur ad incididunt. Labore pariatur reprehenderit mollit duis proident incididunt do. Excepteur ullamco cupidatat nisi culpa Lorem sit ea ea sint et sint eu. Aliqua dolore amet nulla sit amet irure nostrud nulla non ex. Lorem deserunt sint commodo amet amet incididunt irure aliqua reprehenderit ea minim adipisicing proident. Irure duis enim non commodo ut adipisicing anim ad fugiat amet qui voluptate fugiat.\r\nEiusmod voluptate nulla anim tempor nulla est excepteur ut. Tempor sunt cillum et mollit mollit anim dolore laboris aute et duis consectetur. Proident quis aliqua nisi incididunt minim voluptate eiusmod id ea. Est labore pariatur nulla incididunt anim. Anim eu mollit voluptate pariatur cillum officia exercitation. Dolor amet mollit officia exercitation minim tempor do eu.\r\nProident est do aliqua eiusmod aliquip ex veniam culpa et occaecat. Et reprehenderit ad et nulla ullamco duis pariatur labore duis ex ea minim laboris nulla. Ex cillum nostrud consectetur dolor et esse.\r\n", - "address": "2 Stockholm Street", - "city": "Darrtown", - "state": "Marshall Islands", - "zip": 54123, - "country": "Dominica", - "email": "buchananaustin@scentric.com", - "phone": "(875) 459-2571", - "color": "rgb(115,116,180)" - }, - { - "index": 497, - "name": "Hawkins Parrish", - "first": "Sandy", - "last": "Poole", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/akashsharma39/73.jpg", - "boolean": true, - "guid": "00fdef08-9189-40f0-9960-6a59ab906f66", - "integer": 70, - "date": "Sun Apr 24 1994 02:10:50 GMT-0700 (PDT)", - "shortText": "deserunt non ex", - "mediumText": "Do eiusmod nostrud sint consectetur nulla elit est amet et qui voluptate consectetur ullamco elit. Voluptate enim nostrud consequat elit laboris non consequat. Consequat nulla veniam ea eiusmod nulla sunt consequat mollit.", - "longText": "Irure quis duis sint fugiat ut sunt proident esse ut. Aliquip aliqua ea ex magna mollit duis elit non elit labore veniam laborum. Deserunt ex cillum culpa qui non elit culpa ad laboris est.\r\nCillum exercitation ullamco adipisicing cillum irure ipsum sunt dolor irure ullamco. Lorem cupidatat cupidatat occaecat proident dolor sit irure quis do est non reprehenderit. Lorem elit dolore ea fugiat elit dolor. Excepteur est anim velit qui in. Minim sint adipisicing quis ullamco ipsum excepteur. Ullamco Lorem exercitation aute laboris fugiat incididunt.\r\nTempor aliqua cupidatat mollit anim Lorem irure exercitation magna non ullamco eu labore dolore velit. Aliqua enim reprehenderit consectetur est sunt labore aliqua consequat deserunt proident proident tempor mollit ad. Cupidatat velit culpa consequat ea incididunt. Pariatur irure dolore cillum voluptate ut amet sunt labore cillum laboris. Esse id aliquip labore consequat adipisicing culpa amet proident. Laborum voluptate nisi velit qui consectetur. Minim cillum duis pariatur est.\r\nCupidatat sunt consectetur laborum ex cupidatat quis ea ad sint aliqua non. Adipisicing ullamco voluptate mollit ullamco id irure proident ex culpa qui incididunt sint nostrud. Amet mollit occaecat non adipisicing tempor aliqua irure ex id. Velit dolore ea mollit fugiat velit elit eiusmod do exercitation.\r\n", - "address": "3 Manor Court", - "city": "Naomi", - "state": "Indiana", - "zip": 12933, - "country": "Egypt", - "email": "sandypoole@scentric.com", - "phone": "(945) 488-2696", - "color": "rgb(79,165,87)" - }, - { - "index": 498, - "name": "Dena Sweeney", - "first": "Kaitlin", - "last": "Brooks", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/fgin69/73.jpg", - "boolean": true, - "guid": "805425f6-7a36-4326-a622-fbd1a52bccca", - "integer": 37, - "date": "Thu Aug 03 1989 21:21:57 GMT-0700 (PDT)", - "shortText": "non in", - "mediumText": "Irure ullamco excepteur commodo aute magna dolore in reprehenderit commodo deserunt quis officia. Anim incididunt velit anim adipisicing dolore reprehenderit voluptate est nisi in amet.", - "longText": "Ea exercitation ipsum aliquip excepteur cillum ipsum cupidatat fugiat in do nostrud. Non culpa irure officia qui dolor esse velit. Sint officia proident occaecat laborum quis non ullamco dolor consectetur ipsum do nisi. Commodo adipisicing quis proident culpa.\r\nCupidatat adipisicing ipsum incididunt sunt consequat Lorem dolore. Aliquip adipisicing reprehenderit pariatur occaecat anim incididunt ad cillum. Voluptate cupidatat nostrud aliquip laborum esse irure duis ex culpa laborum laboris incididunt magna duis. Velit do commodo aute pariatur sunt ut voluptate quis minim. Eu mollit tempor excepteur nulla anim officia est dolor deserunt minim duis nostrud.\r\n", - "address": "4 Harrison Avenue", - "city": "Fairacres", - "state": "Tennessee", - "zip": 70961, - "country": "Chile", - "email": "kaitlinbrooks@scentric.com", - "phone": "(894) 591-3716", - "color": "rgb(131,63,152)" - }, - { - "index": 499, - "name": "Saundra Mcbride", - "first": "Rosemary", - "last": "Grimes", - "image": "https://s3.amazonaws.com/uifaces/faces/twitter/pdugan19/73.jpg", - "boolean": true, - "guid": "824a5e8d-254c-4041-8370-00c4d28ce820", - "integer": 65, - "date": "Mon Aug 28 2006 02:30:47 GMT-0700 (PDT)", - "shortText": "laborum", - "mediumText": "Aliqua magna proident exercitation elit occaecat ut duis. Ad ipsum duis aliqua qui pariatur cupidatat sint pariatur eiusmod do.", - "longText": "Amet sint officia anim officia nisi reprehenderit. Incididunt magna esse nisi nostrud ipsum. Dolor qui eu enim ipsum commodo deserunt ex ad reprehenderit. Commodo commodo amet ullamco aliquip deserunt excepteur aliqua minim ipsum eu. Culpa minim sunt do dolor excepteur dolore id et culpa id aliquip.\r\nNon excepteur culpa nulla consequat velit amet id. Cupidatat qui id aute reprehenderit adipisicing. Duis consectetur nostrud voluptate laboris culpa ipsum labore irure magna.\r\nLorem mollit cillum velit non proident ex ea esse anim nulla sunt ad laboris. Officia nisi culpa exercitation qui pariatur adipisicing ea incididunt consectetur Lorem. Amet minim labore aliqua nostrud. Eu cillum nulla qui enim non occaecat. Laboris exercitation ea sint cillum velit officia velit officia adipisicing do esse dolore aliqua mollit.\r\nCommodo minim sint excepteur aliquip ex consequat veniam ea culpa reprehenderit consequat est amet dolore. Eu ex amet minim quis dolore voluptate deserunt aliquip consectetur consectetur aliqua officia consequat sunt. Duis ut ex consectetur fugiat laborum duis Lorem cupidatat cupidatat excepteur amet. Id consequat dolor mollit elit pariatur dolor occaecat. Consequat ullamco excepteur cillum eu veniam aliqua ex cupidatat labore ex veniam. Dolore ad et veniam sint eiusmod anim minim.\r\nSint pariatur est enim veniam laboris eu occaecat duis. Ad veniam voluptate occaecat aliquip nostrud culpa aliquip duis proident dolor. Consectetur esse ut laborum elit sunt irure ex duis. Ex laborum eu esse incididunt laborum dolore non aute anim elit deserunt. Non Lorem deserunt culpa do ea exercitation fugiat.\r\n", - "address": "4 Chestnut Street", - "city": "Joes", - "state": "Palau", - "zip": 62428, - "country": "Norfolk Island", - "email": "rosemarygrimes@scentric.com", - "phone": "(923) 453-2279", - "color": "rgb(171,145,136)" - } -] \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo1.html b/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo1.html deleted file mode 100644 index 8827a7bf..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo1.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - demo1 - - - - - - - - - - - - - - - - - - - - - - -
- -
- - -
My App
-
-
- - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo2.html b/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo2.html deleted file mode 100644 index 8c2e79fc..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo2.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - demo2 - - - - - - - - - - - - - - - - - - - - - - - - - App name - - - - - - - -
My Drive
-
-
- - - -
- -
- - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo3.html b/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo3.html deleted file mode 100644 index 5337ab0c..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo3.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - demo3 - - - - - - - - - - - - - - - - - - - - - - - - - App name - - - - - - - - - - -
My Drive
-
-
- - - -
- -
- - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo4.html b/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo4.html deleted file mode 100644 index e12310f1..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo4.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - demo4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo5.html b/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo5.html deleted file mode 100644 index 9c951258..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo5.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - - - demo5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Inbox
-
-
- - - - Option Name - - - - Option Name - - - - Option Name - - - - Option Name - - - - Option Name - - - - Option Name - - - - Option Name - - - - Option Name - - -
-
- - - - - - -
- - -
- - -
My Drive
-
-
- - - -
- -
- - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo6.html b/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo6.html deleted file mode 100644 index b6d98629..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo6.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - demo6 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Inbox
-
-
- - - - -
- - Inbox - - - Snoozed - - - Done - - - Drafts - - - Sent - - - Trash - - - Spam - -
-
- - - -
- -
- - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo7.html b/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo7.html deleted file mode 100644 index b05cf15a..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/demo/demo7.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - demo7 - - - - - - - - - - - - - - - - - - - - - - - - - - - -
My Drive
- -
-
- - - -
- - - App name - - -
- - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/demo/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/demo/index.html deleted file mode 100644 index 444f9f00..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/demo/index.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - app-layout demos - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/demo/sample-content.html b/node_modules/@polymer/polymer/bower_components/app-layout/demo/sample-content.html deleted file mode 100644 index aea8865b..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/demo/sample-content.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/docs.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/docs.d.ts deleted file mode 100644 index a32a6265..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/docs.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * docs.html - */ - -/// -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/docs.html b/node_modules/@polymer/polymer/bower_components/app-layout/docs.html deleted file mode 100644 index 4296757e..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/docs.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - app-layout - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/gen-tsd.json b/node_modules/@polymer/polymer/bower_components/app-layout/gen-tsd.json deleted file mode 100644 index e9c91a33..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/gen-tsd.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "excludeFiles": [ - "index.html", - "**/test/**", - "**/demo/**", - "templates/**" - ] -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/helpers/helpers.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/helpers/helpers.d.ts deleted file mode 100644 index 2d0366bc..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/helpers/helpers.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * helpers/helpers.html - */ - -/// - -declare namespace Polymer { - - namespace AppLayout { - } -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/helpers/helpers.html b/node_modules/@polymer/polymer/bower_components/app-layout/helpers/helpers.html deleted file mode 100644 index f54c3f90..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/helpers/helpers.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/helpers/test/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/helpers/test/index.html deleted file mode 100644 index 6a7ad3ee..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/helpers/test/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - helpers tests - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/helpers/test/register-effect.html b/node_modules/@polymer/polymer/bower_components/app-layout/helpers/test/register-effect.html deleted file mode 100644 index bbdcef9e..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/helpers/test/register-effect.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - registerEffect - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/helpers/test/scroll.html b/node_modules/@polymer/polymer/bower_components/app-layout/helpers/test/scroll.html deleted file mode 100644 index e17d8371..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/helpers/test/scroll.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - scroll - - - - - - - - - - - - - -
-
- -
-
-
- - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/index.html deleted file mode 100644 index 8a5a6b34..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - app-layout - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/package.json b/node_modules/@polymer/polymer/bower_components/app-layout/package.json deleted file mode 100644 index a575da64..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/app-layout", - "private": true, - "description": "A set of layout elements for your app", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/app-layout" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.1", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/patterns/expand-card/index.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/patterns/expand-card/index.d.ts deleted file mode 100644 index 5cfbcd7b..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/patterns/expand-card/index.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * patterns/expand-card/index.html - */ - -/// -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/patterns/expand-card/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/patterns/expand-card/index.html deleted file mode 100644 index 5b398b8e..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/patterns/expand-card/index.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - Expand Card - - - - - - - - - - - - - - - -
-
-
- - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/patterns/md-responsive-toolbar/index.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/patterns/md-responsive-toolbar/index.d.ts deleted file mode 100644 index de4251e0..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/patterns/md-responsive-toolbar/index.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * patterns/md-responsive-toolbar/index.html - */ - -/// -/// -/// -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/patterns/md-responsive-toolbar/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/patterns/md-responsive-toolbar/index.html deleted file mode 100644 index cf1559ed..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/patterns/md-responsive-toolbar/index.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - Material Design Responsive Toolbar - - - - - - - - - - - - - - - - - - - -
Title
- -
- - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/patterns/transform-navigation/index.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/patterns/transform-navigation/index.d.ts deleted file mode 100644 index 58bae880..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/patterns/transform-navigation/index.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * patterns/transform-navigation/index.html - */ - -/// -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/patterns/transform-navigation/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/patterns/transform-navigation/index.html deleted file mode 100644 index 07a694dd..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/patterns/transform-navigation/index.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - Navigation transformation - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/patterns/transform-navigation/x-app.d.ts b/node_modules/@polymer/polymer/bower_components/app-layout/patterns/transform-navigation/x-app.d.ts deleted file mode 100644 index c35e5c87..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/patterns/transform-navigation/x-app.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * patterns/transform-navigation/x-app.html - */ - -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// - -interface XAppElement extends Polymer.Element { - selected: string|null|undefined; - wideLayout: boolean|null|undefined; - items: any[]|null|undefined; - onLayoutChange(wide: any): void; -} - -interface HTMLElementTagNameMap { - "x-app": XAppElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/patterns/transform-navigation/x-app.html b/node_modules/@polymer/polymer/bower_components/app-layout/patterns/transform-navigation/x-app.html deleted file mode 100644 index ff213dde..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/patterns/transform-navigation/x-app.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/getting-started/bower.json b/node_modules/@polymer/polymer/bower_components/app-layout/templates/getting-started/bower.json deleted file mode 100644 index 5104ad35..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/getting-started/bower.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "getting-started", - "authors": [ - "The Polymer Authors" - ], - "private": true, - "dependencies": { - "app-layout": "PolymerElements/app-layout#1 - 2", - "iron-icons": "PolymerElements/iron-icons#1 - 2", - "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "polymer/polymer#^1.9" - }, - "resolutions": { - "webcomponentsjs": "^0.7", - "polymer": "^1.9" - } - } - } -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/getting-started/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/getting-started/index.html deleted file mode 100644 index d088f244..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/getting-started/index.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - Getting Started - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/getting-started/x-app.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/getting-started/x-app.html deleted file mode 100644 index 31e3defc..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/getting-started/x-app.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/landing-page/bower.json b/node_modules/@polymer/polymer/bower_components/app-layout/templates/landing-page/bower.json deleted file mode 100644 index 18c209f8..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/landing-page/bower.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "landing-page", - "authors": [ - "The Polymer Authors" - ], - "private": true, - "dependencies": { - "app-layout": "polymerelements/app-layout#1 - 2", - "iron-flex-layout": "polymerelements/iron-flex-layout#1 - 2", - "iron-icons": "polymerelements/iron-icons#1 - 2", - "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "polymer/polymer#^1.9" - }, - "resolutions": { - "webcomponentsjs": "^0.7", - "polymer": "^1.9" - } - } - } -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/landing-page/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/landing-page/index.html deleted file mode 100644 index 817c1f53..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/landing-page/index.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - Landing Page - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/landing-page/x-app.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/landing-page/x-app.html deleted file mode 100644 index 35a64f56..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/landing-page/x-app.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/bower.json b/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/bower.json deleted file mode 100644 index afce7597..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/bower.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "pesto", - "authors": [ - "The Polymer Authors" - ], - "private": true, - "dependencies": { - "app-layout": "polymerelements/app-layout#1 - 2", - "app-route": "polymerelements/app-route#1 - 2", - "es6-promise": "stefanpenner/es6-promise#^4.0.0", - "iron-ajax": "polymerelements/iron-ajax#1 - 2", - "iron-flex-layout": "polymerelements/iron-flex-layout#1 - 2", - "iron-pages": "polymerelements/iron-pages#1 - 2", - "iron-selector": "polymerelements/iron-selector#1 - 2", - "iron-icon": "polymerelements/iron-icon#1 - 2", - "iron-iconset-svg": "polymerelements/iron-iconset-svg#1 - 2", - "paper-card": "PolymerElements/paper-card#1 - 2", - "paper-fab": "PolymerElements/paper-fab#1 - 2", - "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", - "paper-item": "PolymerElements/paper-item#1 - 2", - "paper-listbox": "PolymerElements/paper-listbox#1 - 2", - "paper-menu-button": "PolymerElements/paper-menu-button#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "polymer/polymer#^1.9" - }, - "resolutions": { - "webcomponentsjs": "^0.7", - "polymer": "^1.9" - } - } - } -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/data/recipes.json b/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/data/recipes.json deleted file mode 100644 index 5d71240f..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/data/recipes.json +++ /dev/null @@ -1,402 +0,0 @@ -[ - { - - "id": "1", - "name": "Pesto Bruchetta", - "author": "Peter Carlsson", - "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/image2-01.png", - "description": "Bask in greens this season by trying this delightful take on traditional bruschetta. Top with a dollop of homemade pesto, and season with freshly ground sea salt and pepper.", - "ingredients": [{ - "amount": "6 pieces", - "description": "Mozzarella cheese" - }, { - "amount": "6 pieces", - "description": "Toasts" - }, { - "amount": "⅔ cup", - "description": "Homemade pesto" - }, { - "amount": "1tbsp", - "description": "Freshly ground pepper" - }, { - "amount": "1 tsp", - "description": "Salt" - }], - "steps": [{ - "duration": "3 min", - "description": "Stir" - }, { - "duration": "45 min", - "description": "Cook" - }] - }, - { - "id": "2", - "name": "Rustic purple mash", - "author": "Trevor Hansen", - "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/blue-potato.jpg", - "description": "Abundant in color, and healthy, delicious goodness, cooking with these South American purple potatoes is a treat. Boil, mash, bake, or roast them. For taste cook with chicken stock, and a dash of extra virgin olive oil.", - "ingredients": [{ - "amount": "2 lbs", - "description": "Purple potatoes, skin on" - }, { - "amount": "1 tsp", - "description": "Salt" - }, { - "amount": "2 tsp", - "description": "Lemon" - }, { - "amount": "4 cups", - "description": "Chicken stock" - }, { - "amount": "1tbsp", - "description": "Extra virgin olive oil" - }], - "steps": [{ - "duration": "3 min", - "description": "Stir" - }, { - "duration": "45 min", - "description": "Cook" - }] - }, - { - "id": "3", - "name": "Bacon Sprouts", - "author": "Ali Connors", - "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/image1-01.png", - "description": "This beautiful sprouts recipe is the most glorious side dish on a cold winter’s night. Construct it with bacon or fake-on, but always make sure the sprouts are deliciously seasoned and appropriately sautéed.", - "ingredients": [{ - "amount": "2 lbs", - "description": "Brussel sprouts" - }, { - "amount": "3 lbs", - "description": "Bacon" - }, { - "amount": "⅔ cup", - "description": "Shaved parmesan cheese" - }, { - "amount": "1tbsp", - "description": "Extra virgin olive oil" - }, { - "amount": "1 tsp", - "description": "Lemon juice" - }, { - "amount": "1/2 cup", - "description": "Sun dried tomatoes" - }], - "steps": [{ - "duration": "3 min", - "description": "Stir" - }, { - "duration": "45 min", - "description": "Cook" - }] - }, - { - "id": "4", - "name": "Oven Sausage", - "author": "Sandra Adams", - "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/sausage.jpg", - "description": "Robust cuts of portuguese sausage add layers of flavour. Bake or fry until sausages are slightly browned and with a crispy skin. Serve warm and with cuts of pineapple for a delightful mix of sweet and savory flavour. This is the perfect dish after a swim in the sea.", - "ingredients": [{ - "amount": "1 1/2 lbs", - "description": "Linguisa" - }, { - "amount": "1 lbs", - "description": "Pineapple or other fresh citrus fruit" - }], - "steps": [{ - "duration": "3 min", - "description": "Stir" - }, { - "duration": "45 min", - "description": "Cook" - }] - }, - { - "id": "5", - "name": "Chicken tostadas", - "author": "Peter Carlsson", - "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/image5.png", - "description": "Crisp flavours and a bit of spice make this roasted chicken dish an easy go to when cooking for large groups. Top with Baja sauce for an extra kick of spice.", - "ingredients": [{ - "amount": "4-6", - "description": "Small corn tortillas" - }, { - "amount": "½ cup", - "description": "Chopped onion" - }, { - "amount": "⅔", - "description": "Cream" - }, { - "amount": "3-4oz", - "description": "Roasted, shredded chicken breast" - }], - "steps": [{ - "duration": "3 min", - "description": "Stir" - }, { - "duration": "45 min", - "description": "Cook" - }] - }, - { - "id": "6", - "name": "Coconut rice", - "author": "Ali Connors", - "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/white-rice.jpg", - "description": "This dish is a terrific pairing to almost any main. Bonus- it’s quick, easy to make, and turns even the simplest of dishes into a delicacy. Sweet coconut cream will leave your mouth watering, with yummy caramelized flecks of rice adding an extra bit of taste. Fluff with fork before serving for best results.", - "ingredients": [{ - "amount": "2 cups", - "description": "Jasmine rice" - }, { - "amount": "1 1/2 cups", - "description": "Water" - }, { - "amount": "1 cup", - "description": "Coconut milk" - }, { - "amount": "1 1/2 tbsp", - "description": "Sugar" - }, { - "amount": "1tsp", - "description": "Salt" - }], - "steps": [{ - "duration": "3 min", - "description": "Stir" - }, { - "duration": "45 min", - "description": "Cook" - }] - }, - { - "id": "7", - "name": "Gin basil cocktail", - "author": "Trevor Hansen", - "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/IMG_5447.jpg", - "description": "This mellow and herb filled blending of simple ingredients is easy enough to mix that a novice host will feel like a seasoned bartender. Top with crushed basil, shake or stir.", - "ingredients": [{ - "amount": "3 parts", - "description": "Gin" - }, { - "amount": "1 part", - "description": "Fresh lemon juice" - }, { - "amount": "½ part", - "description": "Simple syrup" - }, { - "amount": "5", - "description": "Basil leaves, crushed" - }], - "steps": [{ - "duration": "3 min", - "description": "Stir" - }, { - "duration": "45 min", - "description": "Cook" - }] - }, - { - "id": "8", - "name": "Seared sesame fish", - "author": "Ali Connors", - "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/fish-steaks.jpg", - "description": "Cuts of fish like this are perfect for simple searing with bright flavours. Try Sesame seeds on these fillets for crusty skin filled with crunch. For added flavour try dipping in a homemade ponzu sauce - delicious.", - "ingredients": [{ - "amount": "1 ½ lbs", - "description": "Thin fish fillets" - }, { - "amount": "1 lb", - "description": "Salt and black pepper to taste" - }, { - "amount": "3/4 cup", - "description": "Sesame seeds" - }, { - "amount": "2tbsp", - "description": "Sesame oil" - }, { - "amount": "1tbsp", - "description": "Lime juice" - }, { - "amount": "2 tbsp", - "description": "Soy sauce" - }], - "steps": [{ - "duration": "3 min", - "description": "Stir" - }, { - "duration": "45 min", - "description": "Cook" - }] - }, - { - "id": "9", - "name": "Herb artichoke", - "author": "Sandra Adams", - "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/IMG_5438.png", - "description": "This tasty and healthy veggie is a favorite. Artichoke like this can be paired with a hearty main or works well as a small meal with some white wine on the side. Simple and fresh, all foodies love tasty artichoke.", - "ingredients": [{ - "amount": "1", - "description": "Small garlic clove, peeled" - }, { - "amount": "2", - "description": "Whole artichokes" - }, { - "amount": "4 tbsp", - "description": "Fresh lemon juice" - }, { - "amount": "4 tbsp", - "description": "Unsalted butter" - }, { - "amount": "2 tbsp", - "description": "Extra-virgin olive oil" - }, { - "amount": "1⁄4 tsp", - "description": "Freshly ground black pepper" - }], - "steps": [{ - "duration": "3 min", - "description": "Stir" - }, { - "duration": "45 min", - "description": "Cook" - }] - }, - { - "id": "10", - "name": "Pesto bruschetta", - "author": "Trevor Hansen", - "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/IMG_5332.png", - "description": "Life is good when you add amazingly warm bread, fresh pesto sauce, and roasted tomatoes to the table. This a classic starter to break out in a pinch. It’s easy to make and extra tasty.", - "ingredients": [{ - "amount": "1 loaf", - "description": "Sliced French bread" - }, { - "amount": "½ cup", - "description": "Cheese" - }, { - "amount": "1 cup", - "description": "Heirloom tomatoes" - }, { - "amount": "1 cup", - "description": "Fresh basil" - }, { - "amount": "1 clove", - "description": "Garlic " - }, { - "amount": "½ tbsp", - "description": "Olive oil" - }, { - "amount": "3tsp", - "description": "White wine vinegar" - }, { - "amount": "¼ tsp", - "description": "Sea salt" - }], - "steps": [{ - "duration": "3 min", - "description": "Stir" - }, { - "duration": "45 min", - "description": "Cook" - }] - }, - { - "id": "11", - "name": "Garlic bok choy", - "author": "Sandra Adams", - "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/bok-choy.jpg", - "description": "Great stir-fried bok choy starts at the market. For me, nothing says tasty like garlic and baby bok choy. Choose fresh, crisp greens. Once home, wash, chop, and then ready for the wok. No family style spread is complete without these greens.", - "ingredients": [{ - "amount": "1/2 cup", - "description": "Chick broth" - }, { - "amount": "1 tbsp", - "description": "Soy sauce" - }, { - "amount": "¼ cup", - "description": "Sliced garlic" - }, { - "amount": "2-3 lbs", - "description": "Bok choy" - }, { - "amount": "2 tsp", - "description": "Sesame oil" - }], - "steps": [{ - "duration": "3 min", - "description": "Stir" - }, { - "duration": "45 min", - "description": "Cook" - }] - }, - { - "id": "12", - "name": "Fresh Fettuccine", - "author": "Ali Connors", - "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/pasta.png", - "description": "Satisfy a need for rich, creamy homemade goodness with this classic. Creamy fettuccine alfredo will have you hitting the gym the next day, but it’s so good it’s worth it.", - "ingredients": [{ - "amount": "¾ cup", - "description": "Milk" - }, { - "amount": "1 ½ tsp", - "description": "Salt" - }, { - "amount": "1 tbsp", - "description": "Olive oil" - }, { - "amount": "8oz", - "description": "Fettuccine" - }, { - "amount": "½ cup", - "description": "Fresh basil" - }, { - "amount": "½ cup", - "description": "Fresh ground pepper" - }], - "steps": [{ - "duration": "3 min", - "description": "Stir" - }, { - "duration": "45 min", - "description": "Cook" - }] - }, - { - "id": "13", - "name": "Sicilian-Style sardines", - "author": "Peter Carlsson", - "imageUrl": "https://app-layout-assets.appspot.com/assets/pesto/food/IMG_0575.jpg", - "description": "My go to way to eat sardines is with a splash of tangy lemon and fresh fennel drizzled on top. The best thing about this dish is the flavour it packs. Prepaid with wild caught sardines or canned.", - "ingredients": [{ - "amount": "1/4 cup", - "description": "Dry white wine" - }, { - "amount": "1", - "description": "Finely chopped shallot" - }, { - "amount": "2 tbsp", - "description": "Fresh lemon juice" - }, { - "amount": "1 tbsp", - "description": "Fennel seeds, crushed" - }, { - "amount": "4 tbsp", - "description": "Extra virgin olive oil, to taste" - }, { - "amount": "2 cans", - "description": "Sardines in oil, drained" - }], - "steps": [{ - "duration": "3 min", - "description": "Stir" - }, { - "duration": "45 min", - "description": "Cook" - }] - } -] diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/index.html deleted file mode 100644 index f27d628d..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/index.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - Pesto by Polymer - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/manifest.json b/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/manifest.json deleted file mode 100644 index afb1283a..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/manifest.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "short_name": "Pesto", - "name": "Pesto by Polymer", - "display": "standalone", - "icons": [{ - "src": "https://app-layout-assets.appspot.com/assets/pesto/icon-144.png", - "sizes": "144x144", - "type": "image/png" - }, { - "src": "https://app-layout-assets.appspot.com/assets/pesto/icon-256.png", - "sizes": "256x256", - "type": "image/png" - }], - "start_url": "index.html" -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/src/app-icons.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/src/app-icons.html deleted file mode 100644 index c3946e0c..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/src/app-icons.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/src/recipe-app.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/src/recipe-app.html deleted file mode 100644 index 5822a3c6..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/src/recipe-app.html +++ /dev/null @@ -1,256 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/src/recipe-detail.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/src/recipe-detail.html deleted file mode 100644 index 69a37455..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/src/recipe-detail.html +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/src/recipe-list.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/src/recipe-list.html deleted file mode 100644 index 1de0bfc1..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/pesto/src/recipe-list.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/bower.json b/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/bower.json deleted file mode 100644 index a87fcbce..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/bower.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "publishing", - "authors": [ - "The Polymer Authors" - ], - "private": true, - "dependencies": { - "app-layout": "polymerelements/app-layout#1 - 2", - "app-route": "polymerelements/app-route#1 - 2", - "es6-promise": "stefanpenner/es6-promise#^4.0.0", - "font-roboto": "polymerelements/font-roboto#^1.0.0", - "iron-ajax": "polymerelements/iron-ajax#1 - 2", - "iron-flex-layout": "polymerelements/iron-flex-layout#1 - 2", - "iron-pages": "polymerelements/iron-pages#1 - 2", - "iron-selector": "polymerelements/iron-selector#1 - 2", - "iron-icon": "polymerelements/iron-icon#1 - 2", - "iron-iconset-svg": "polymerelements/iron-iconset-svg#1 - 2", - "iron-media-query": "polymerelements/iron-media-query#1 - 2", - "paper-fab": "PolymerElements/paper-fab#1 - 2", - "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "polymer/polymer#^1.9" - }, - "resolutions": { - "polymer": "^1.9", - "webcomponentsjs": "^0.7" - } - } - } -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/data/articles.json b/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/data/articles.json deleted file mode 100644 index e1eba51d..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/data/articles.json +++ /dev/null @@ -1,111 +0,0 @@ -[ - { - "name":"art", - "title":"Art", - "items":[ - { - "id": "1", - "title":"Tooling Up", - "author":"Amber Bravo", - "date":"June 14 2015", - "primaryColor":"#5a7785", - "secondaryColor":"#455a64", - "image":"https://g-design.storage.googleapis.com/production/v5/assets/tooling-up-header-a13cfd9a.svg", - "desc":"How a new generation of prototyping tools at Google will help designers build better software.", - "content":"The road from design to production is often hard-won, filled with well-intended design detours, steep learning curves, and the occasional road block. Here’s a common scenario: A team of designers begins building wireframes for a new product. Several weeks, revisions, and pin-ups later, they emerge with a “final,” “shippable” file, which they hand off to the development team. The engineers poke holes in the design, deeming several elements “unbuildable,” and begin rendering out some semblance of the design in code. Several weeks later, they deliver a staging site. The designers are thrilled—this is the first time they’ve seen their design IRL—but are quickly deflated when they realize how much of the design has been lost in translation. The typography is wonky. The animations and interactive elements need to be re-tuned. A volley of annotated emails with screenshots ensues, until finally, the designer and developer sit side-by-side, and visually adjust the design directly in code." - }, - { - "id": "2", - "title":"Expressing Brand in Material", - "author":"Viktor Persson & Rachel Been", - "date":"July 4 2015", - "primaryColor":"#202226", - "secondaryColor":"#333", - "image":"https://g-design.storage.googleapis.com/production/v5/assets/article_brand_2x1_202226-fc539618.svg", - "desc":"Material design offers a system for designing functional and elegant software. How does your brand fit into the framework? We’ve created a step-by-step guide to staying on-brand while going material.", - "content":"Nobody knows your brand better than you do. This is why when we set out to create the framework for material design, we were sensitive to the ways in which third-party developers might leverage the system. We wanted material design to give comprehensive guidance for designing effective and elegant UIs — taking a strong position on motion, dimensionality, color, and graphic hierarchy — but with enough latitude to allow for various levels of engagement. You don’t have to adopt every element of the material design system in order for it to be beneficial to your identity system. Whether it’s a custom font, a unique color story, or distinct voice, everything that provides stylistic distinction in a product should be celebrated and supported in the material design framework. We’ve laid out the top brand touchpoints to help illustrate the system’s flexibility and give designers and developers a road map for showcasing their brand identity." - }, - { - "id": "3", - "title":"New Design Tools", - "author":"Amber Bravo", - "date":"July 29 2015", - "primaryColor":"#3e50b4", - "secondaryColor":"#303fc3", - "image":"https://g-design.storage.googleapis.com/production/v5/assets/150727_GD_Article_ToolingUpFurther_1x1Tile-01-86c8e03e.svg", - "desc":"See Also: (More) thoughts on design tools", - "content":"This week on Google Design, we published a roundtable discussion with Matias Duarte and the founders of Pixate and RelativeWave, Paul Colton and Max Wiesel. To prepare for the interview, I turned to my design brethren on Medium (and beyond!) to learn more about their experiences working with some of the more popular prototyping tools available today, as well as their hopes and dreams for the next generation of design software. Here are a few of the stories I found helpful for framing the discussion. A thorough account of using Form (pre 1.3) for the first time, from the perspective of a designer who is less familiar with Quarz Composer, with built prototypes to help synthesize the material covered in each section. Also worth reading: Ces’ great tutorial exploring material design in Origami." - } - ] - }, - { - "name":"film", - "title":"Film", - "items":[ - { - "id": "1", - "title":"Design from iOS to Android (and Back Again)", - "author":"Roman Nurik & Viltor Persson", - "date":"Aug 20 2015", - "primaryColor":"#3e50b4", - "secondaryColor":"#303F9F", - "image":"https://g-design.storage.googleapis.com/production/v5/assets/renditions/Article_iOS_to_Android_Header_3e50b4-f064882f-1240.png", - "desc":"A practical guide to designing across platforms", - "content":"Designing and developing between platforms is a lot like traveling through different countries. You go through the same motions — sleeping, eating, sightseeing, regardless of where you are — but the customs of the country you’re visiting dictate how you go about doing them. In some countries, it’s ok to push people into the train, or eat a burger with a knife and fork. Similarly, if you developed your product first for iOS, you shouldn’t simply expect that you can port it into Android without issue, because your app will feel lost in translation. It’s important to understand the idioms and behaviors of each platform before you start design and development. That way your users will be able to use and easily understand your app on the platform that is native to them, and you will have the most clear and true version of your product — no matter where it’s used. This guide will walk you through some practical tips for moving from iOS to Android (and back again) without suffering a cultural divide." - }, - { - "id": "2", - "title":"Demystifying Density", - "author":"Sebastien Gabriel", - "date":"July 10 2015", - "primaryColor":"#00ccb8", - "secondaryColor":"#00b7a5", - "image":"https://g-design.storage.googleapis.com/production/v5/assets/article_dpi_00ccb8-34fdd39e.svg", - "desc":"Sebastien Gabriel takes one for the team with his exhaustive guide to DPI & PPI", - "content":"Dots Per Inch and Pixels Per Inch, DPI and PPI respectively, are units for measuring the tiny bits of color that come together to form a printed image or an image on a screen. The higher the density of those dots or pixels, the higher the resolution. For most, a rudimentary understanding of DPI or PPI amounts to knowing whether or not an image is clear but small enough to print, email, or post to social media. However, for designers, understanding screen density and ratio is essential to delivering delightful user experiences across devices. Designing for phones, tablets, laptops, watches, and hybrids without a proper knowledge of dpi and ratio is a lot like building a house using the wrong measurement — things are going to look very weird very quickly (and good luck getting through the door!)." - }, - { - "id": "3", - "title":"Pixate and Form 1.3", - "author":"Google Design", - "date":"May 30 2015", - "primaryColor":"#eeeeee", - "secondaryColor":"#9e9e9e", - "image":"https://g-design.storage.googleapis.com/production/v5/assets/pixate-and-form-1-3-header-2061f19f.svg", - "desc":"Discover the latest features and start designing native prototypes on your device.", - "content":"We’re thrilled to announce that Pixate has joined Google! Pixate adds to our ongoing effort to develop new design and prototyping tools, including Form 1.3. Explore the latest features of both products below, and check out our roundtable conversation with Matias Duarte, VP Design at Google, and the the founders of Pixate and Form. A visual prototyping platform that allows designers to create sophisticated, fluid mobile prototypes that run natively on iOS and Android devices. Creating complete app prototypes or crafting carefully choreographed interactions that look and feel completely real, and sharing them so entire product teams or clients can experience them right on their device." - }, - { - "id": "4", - "title":"Welcome to the New Google Design", - "author":"Google Design", - "date":"Sep 10 2015", - "primaryColor":"#3367d6", - "secondaryColor":"#2755CC", - "image":"https://g-design.storage.googleapis.com/production/v5/assets/Article_Welcome_Header_2880-ce3ec22d.svg", - "desc":"More design, all the time", - "content":"Much has happened in the year since we launched Google Design and introduced our material design framework at Google I/O 2014. We hosted FORM, Google’s first-ever design conference in San Francisco and engaged in numerous outreach efforts through workshops, design sprints, and online discussions. We’ve continued to improve and expand on the material design guidelines and have witnessed countless teams both inside and outside Google adopt the framework and ship beautiful, materialized products across platforms. To better capture all this great design work happening at Google and around the community, we’ve completely reconceived Google Design. In addition to all the guidelines and resources you’ve come to rely on, we’ve also released guides for TV, Auto, and Cardboard, our virtual reality product. Our new Icon Library allows you to download our icon font and source from the over 800 material system icons. We’ve also added a whole new layer of written and video content — everything from tutorials, case-studies, interviews, and essays, to a listing of job opportunities and design-related events, like our upcoming FORM conference. The goal is to provide a new perspective on our design process and ample opportunity for cross pollination. Now you can watch an animated color tutorial before you dive into the nitty gritty details in our material design guidelines, or get some practical guidance around designing between platforms. Our Making Material Design series takes you behind-the-scenes to find out what it takes to create a new visual framework for Google. Additionally, we’ve launched new Dribbble and YouTube channels to complement our active Twitter and Google+ presence and can share even more real-time content from our design teams. We hope you enjoy the the new Google Design, and we look forward to hearing your feedback on Twitter and Google+. After all, good design is never done." - } - ] - }, - { - "name":"photography", - "title":"Photography", - "items":[] - }, - { - "name":"design", - "title":"Design", - "items":[] - }, - { - "name":"topten", - "title":"Top Ten", - "items":[] - }, - { - "name":"aday", - "title":"A Day in the Life", - "items":[] - } -] \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/index.html deleted file mode 100644 index 2bce8da8..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/index.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - ZUPERKÜLBLOG - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/manifest.json b/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/manifest.json deleted file mode 100644 index 2ccb9479..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/manifest.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Zuperkülblog", - "short_name": "Zuperkülblog", - "icons": [{ - "src": "//app-layout-assets.appspot.com/assets/zuperkulblog/launcher-icon-128x128.png", - "sizes": "128x128", - "type": "image/png" - }, { - "src": "//app-layout-assets.appspot.com/assets/zuperkulblog/launcher-icon-192x192.png", - "sizes": "192x192", - "type": "image/png" - },{ - "src": "//app-layout-assets.appspot.com/assets/zuperkulblog/launcher-icon-384x384.png", - "sizes": "384x384", - "type": "image/png" - }], - "start_url": "index.html", - "background_color": "#fafafa", - "display": "standalone", - "theme_color": "#fafafa" -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/src/app-icons.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/src/app-icons.html deleted file mode 100644 index 94ef2c91..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/src/app-icons.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/src/article-detail.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/src/article-detail.html deleted file mode 100644 index c9b9a957..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/src/article-detail.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/src/article-headline.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/src/article-headline.html deleted file mode 100644 index d1bed52c..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/src/article-headline.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/src/blog-app.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/src/blog-app.html deleted file mode 100644 index 711aef5e..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/src/blog-app.html +++ /dev/null @@ -1,357 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/src/two-columns-grid.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/src/two-columns-grid.html deleted file mode 100644 index f01d7b3a..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/publishing/src/two-columns-grid.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/bower.json b/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/bower.json deleted file mode 100644 index 1fb52e75..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/bower.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "shrine", - "authors": [ - "The Polymer Authors" - ], - "private": true, - "dependencies": { - "app-layout": "PolymerElements/app-layout#1 - 2", - "app-route": "PolymerElements/app-route#1 - 2", - "es6-promise": "stefanpenner/es6-promise#^4.0.0", - "iron-ajax": "PolymerElements/iron-ajax#1 - 2", - "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", - "iron-pages": "PolymerElements/iron-pages#1 - 2", - "iron-icon": "PolymerElements/iron-icon#1 - 2", - "iron-icons": "PolymerElements/iron-icons#1 - 2", - "iron-media-query": "PolymerElements/iron-media-query#1 - 2", - "paper-fab": "PolymerElements/paper-fab#1 - 2", - "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", - "paper-tabs": "PolymerElements/paper-tabs#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "polymer/polymer#^1.9" - }, - "resolutions": { - "webcomponentsjs": "^0.7", - "polymer": "^1.9" - } - } - } -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/data/featured.json b/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/data/featured.json deleted file mode 100644 index a2092b32..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/data/featured.json +++ /dev/null @@ -1,72 +0,0 @@ -[ - { - "id": 16, - "title": "Green comfort chair", - "quote": "Leave the tunnel and the rain is fallin amazing things happen when you wait", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/chair.png", - "storeName": "Ali’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/ali-connors.png", - "price": "$300", - "category": "Feature" - }, - { - "id": 12, - "title": "Beautiful little teapot", - "quote": "Leave the tunnel and the rain is fallin amazing things happen when you wait", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/beachball.png", - "storeName": "Trevor’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/zach.jpg", - "price": "$300", - "category": "Latest" - }, - { - "id": 6, - "title": "Original Sunnies For U", - "quote": "Leave the tunnel and the rain is fallin amazing things happen when you wait", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/chucks.png", - "storeName": "Sandra’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/sandra-adams.jpg", - "price": "$300", - "category": "Fashion" - }, - { - "id": 17, - "title": "Folding Chair", - "quote": "Leave the tunnel and the rain is fallin amazing things happen when you wait", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/lawn_chair.png", - "storeName": "Stella’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/16c477b.jpg", - "price": "$300", - "category": "Furniture" - }, - { - "id": 18, - "title": "Better wearing heels", - "quote": "Leave the tunnel and the rain is fallin amazing things happen when you wait", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/heels.png", - "storeName": "Peter’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/peter-carlsson.png", - "price": "$300", - "category": "Beauty" - }, - { - "id": 3, - "title": "Red Popsicle", - "quote": "Leave the tunnel and the rain is fallin amazing things happen when you wait", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/popsicle.png", - "storeName": "Trevor’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/zach.jpg", - "price": "$300", - "category": "Food" - }, - { - "id": 10, - "title": "Best gift for the traveler", - "quote": "Leave the tunnel and the rain is fallin amazing things happen when you wait", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/backpack.png", - "storeName": "Sandra’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/sandra-adams.jpg", - "price": "$300", - "category": "Travel" - } -] \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/data/items.json b/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/data/items.json deleted file mode 100644 index 52e5af9c..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/data/items.json +++ /dev/null @@ -1,192 +0,0 @@ -[{ - "id": 0, - "title": "Vintage Bluetooth Radio", - "description": "Isn’t it cool when things look old, but their not. Looks Old But Not makes awesome vintage goods that are super smart. This ol’ radio just got an upgrade. Connect to it with an app and jam out to some top forty.", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/radio.png", - "price": "$300", - "storeName": "Sandra’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/sandra-adams.jpg", - "storeDescription": "Sandra specializes in furniture, beauty and travel products with a classic vibe. Custom orders are available if you’re looking for a certain color or material.", - "featured": false -}, -{ - - "id": 1, - "title": "Sunglasses", - "description": "Be an optimist. Carry Sunglasses with you at all times. All Tints and Shades products come with polarized lenses and super duper UV protection so you can look at the sun for however long you want. Sunglasses make you look cool, wear them.", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/sunnies.png", - "price": "$70", - "storeName": "Trevor’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/zach.jpg", - "storeDescription": "Trevor Hanson sources housewares and styles from just about everywhere. Super cool and extra awesome all of his shop’s goods are handmade with love.", - "featured": false -}, -{ - - "id": 2, - "title": "Clock", - "description": "Timekeeper Co makes clocks that tell time precisely. Clock is very simple to use, set the time using your phone, hang it, and viola! You’ll never be late again.", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/clock.png", - "price": "$120", - "storeName": "Trevor’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/zach.jpg", - "storeDescription": "Trevor Hanson sources housewares and styles from just about everywhere. Super cool and extra awesome all of his shop’s goods are handmade with love.", - "featured": false -}, -{ - - "id": 3, - "title": "Red Popsicle", - "description": "Looks can be deceiving. This Red Popsicle comes in a wide variety of flavors, including strawberry, that burst as soon as it hits the mouth. Red Popsicles melt slow, so savor the flavor.", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/popsicle.png", - "price": "$300", - "storeName": "Stella’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/16c477b.jpg", - "storeDescription": "Stella sells awesome stuff at lovely prices. made by hand and sometimes by machine, but always with love and care. Custom orders are available upon request if you need something extra special.", - "featured": false -}, -{ - - "id": 4, - "title": "Green Slip-ons", - "description": "Feetsy has been making extraordinary slip-ons for decades. With each pair of shoes purchased Feetsy donates a pair to those in need. Buy yourself a pair, buy someone else a pair. Very Comfortable.", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/green-shoes.png", - "price": "$75", - "storeName": "Sandra’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/sandra-adams.jpg", - "storeDescription": "Sandra specializes in furniture, beauty and travel products with a classic vibe. Custom orders are available if you’re looking for a certain color or material.", - "featured": false -}, -{ - - "id": 5, - "title": "Teapot", - "description": "Impress your guests with Teapot by Kitchen Stuff. Teapot holds extremely hot liquids and pours them from the spout. Use the handle, shown on the left, so your fingers don’t get burnt while pouring.", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/teapot.png", - "price": "$210", - "storeName": "Ali’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/ali-connors.png", - "storeDescription": "Ali Connor’s makes custom goods for folks of all shapes and sizes made by hand and sometimes by machine, but always with love and care. Custom orders are available upon request if you need something extra special.", - "featured": false -}, -{ - - "id": 6, - "title": "Blue suede shoes", - "description": "Who needs pants when you have shoes! Blue suede shoes were meant to go dancing in, so you may want to pick up a few of these. These things are stylish.", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/chucks.png", - "price": "$89", - "storeName": "Trevor’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/zach.jpg", - "storeDescription": "Trevor Hanson sources housewares and styles from just about everywhere. Super cool and extra awesome all of his shop’s goods are handmade with love.", - "featured": true -}, -{ - - "id": 7, - "title": "Dipped Brush", - "description": "WeDipIt does it again. This handle dipped 4 inch brush is a perfect for painting 4 inch lines, or coloring in big areas with paint. Just be sure you don’t drop it in a bucket of red paint, then it won’t look dipped anymore.", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/brush.png", - "price": "$25", - "storeName": "Stella’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/16c477b.jpg", - "storeDescription": "Stella sells awesome stuff at lovely prices. made by hand and sometimes by machine, but always with love and care. Custom orders are available upon request if you need something extra special.", - "featured": true -}, -{ - - "id": 8, - "title": "Perfect Goldfish Bowl", - "description": "The Perfect Bowl Co makes the best bowls for just about anything you can think of. This Perfect Goldfish Bowl holds water and fish perfectly. Looks great in living rooms. Keep out of reach from cats.", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/fish_bowl.png", - "price": "$25", - "storeName": "Ali’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/ali-connors.png", - "storeDescription": "Ali Connor’s makes custom goods for folks of all shapes and sizes made by hand and sometimes by machine, but always with love and care. Custom orders are available upon request if you need something extra special.", - "featured": false -}, -{ - - "id": 9, - "title": "Red Lipstick Set", - "description": "Trying to find the perfect shade to match your mood? Try no longer. Red Lipstick Set by StickLips has you covered for those nights when you need to get out, or even if you’re just headed to work.", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/lipstick.png", - "price": "$25", - "storeName": "Sandra’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/sandra-adams.jpg", - "storeDescription": "Sandra specializes in furniture, beauty and travel products with a classic vibe. Custom orders are available if you’re looking for a certain color or material.", - "featured": false -}, -{ - - "id": 10, - "title": "Backpack", - "description": "This backpack by Bags ‘n’ stuff can hold just about anything: a laptop, a pen, a protractor, notebooks, small animals, plugs for your devices, sunglasses, gym clothes, shoes, gloves, two kittens, and even lunch!", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/backpack.png", - "price": "$25", - "storeName": "Peter’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/peter-carlsson.png", - "storeDescription": "Peter makes great stuff for awesome people like you. Super cool and extra awesome all of his shop’s goods are handmade with love. Custom orders are available upon request if you need something extra special.", - "featured": false -}, -{ - - "id": 11, - "title": "Half Shield Helmet", - "description": "Half Shield is the right helmet for those warm summer days on the road. Dot approved, these helmets have been rigorously tested. Keep that noggin protected.", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/helmet.png", - "price": "$25", - "storeName": "Ali’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/ali-connors.png", - "storeDescription": "Ali Connor’s makes custom goods for folks of all shapes and sizes made by hand and sometimes by machine, but always with love and care. Custom orders are available upon request if you need something extra special.", - "featured": false -}, -{ - - "id": 12, - "title": "Beachball", - "description": "Are you at a baseball game and feeling bored? At a pool party and looking for a laugh? Do you need something to take your anger out on? Beachball, by inflatable fun, is the perfect outlet.", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/beachball.png", - "price": "$25", - "storeName": "Peter’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/peter-carlsson.png", - "storeDescription": "Peter makes great stuff for awesome people like you. Super cool and extra awesome all of his shop’s goods are handmade with love. Custom orders are available upon request if you need something extra special.", - "featured": false -}, -{ - - "id": 13, - "title": "Old Binoculars", - "description": "These Binoculars by See Through are amazing and can make things that are really far away seem like they’re right in front of you. Bring them to the beach. Now you can buy the cheap seats at the big game and feel like you’re right in the action.", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/binoculars.png", - "price": "$25", - "storeName": "Stella’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/16c477b.jpg", - "storeDescription": "Stella sells awesome stuff at lovely prices. made by hand and sometimes by machine, but always with love and care. Custom orders are available upon request if you need something extra special.", - "featured": false -}, -{ - - "id": 14, - "title": "Lime Flippers", - "description": "Flippers are a nice tool to have when you’re being chased by an oversized sea turtle. Never get caught again with these fast water shoes. You’re like a fish, but more graceful.", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/flippers.png", - "price": "$25", - "storeName": "Peter’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/peter-carlsson.png", - "storeDescription": "Peter makes great stuff for awesome people like you. Super cool and extra awesome all of his shop’s goods are handmade with love. Custom orders are available upon request if you need something extra special.", - "featured": true -}, -{ - - "id": 15, - "title": "Surfboard", - "description": "Who says you can’t walk on water? With Surfboard, by Surfboard Supply, you can fly on water. This beast is fast and handles like a porsche. Hang Ten Bro!", - "imageUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/surfboard.png", - "price": "$25", - "storeName": "Stella’s shop", - "storeAvatarUrl": "https://www.gstatic.com/angular/material-adaptive/shrine/16c477b.jpg", - "storeDescription": "Stella sells awesome stuff at lovely prices. made by hand and sometimes by machine, but always with love and care. Custom orders are available upon request if you need something extra special.", - "featured": true -} -] \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/index.html deleted file mode 100644 index 9c50f412..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - Shrine - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/manifest.json b/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/manifest.json deleted file mode 100644 index 48f3cad3..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/manifest.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Shrine", - "short_name": "Shrine by Polymer", - "icons": [{ - "src": "//app-layout-assets.appspot.com/assets/shrine/launcher-icon-128x128.png", - "sizes": "128x128", - "type": "image/png" - }, { - "src": "//app-layout-assets.appspot.com/assets/shrine/launcher-icon-192x192.png", - "sizes": "192x192", - "type": "image/png" - },{ - "src": "//app-layout-assets.appspot.com/assets/shrine/launcher-icon-384x384.png", - "sizes": "384x384", - "type": "image/png" - }], - "start_url": "index.html", - "background_color": "#fff", - "display": "standalone", - "theme_color": "#fff" -} - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-app.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-app.html deleted file mode 100644 index a0b30fc1..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-app.html +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-detail.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-detail.html deleted file mode 100644 index 290d5d90..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-detail.html +++ /dev/null @@ -1,297 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-featured-item.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-featured-item.html deleted file mode 100644 index 5ee22a2b..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-featured-item.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-item.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-item.html deleted file mode 100644 index 80be85cd..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-item.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-list.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-list.html deleted file mode 100644 index 0487e408..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-list.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-simple-item.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-simple-item.html deleted file mode 100644 index 048193d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/shrine/src/shrine-simple-item.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/test-drive/bower.json b/node_modules/@polymer/polymer/bower_components/app-layout/templates/test-drive/bower.json deleted file mode 100644 index 10724d9a..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/test-drive/bower.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "test-drive", - "authors": [ - "The Polymer Authors" - ], - "private": true, - "dependencies": { - "app-layout": "polymerelements/app-layout#1 - 2", - "iron-iconset-svg": "polymerelements/iron-iconset-svg#1 - 2", - "paper-checkbox": "PolymerElements/paper-checkbox#1 - 2", - "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "polymer/polymer#^1.9" - }, - "resolutions": { - "webcomponentsjs": "^0.7", - "polymer": "^1.9" - } - } - } -} diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/test-drive/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/test-drive/index.html deleted file mode 100644 index ffe363c7..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/test-drive/index.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - Test Drive - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/templates/test-drive/test-app.html b/node_modules/@polymer/polymer/bower_components/app-layout/templates/test-drive/test-app.html deleted file mode 100644 index 1a964c6e..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/templates/test-drive/test-app.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/app-layout/test/index.html b/node_modules/@polymer/polymer/bower_components/app-layout/test/index.html deleted file mode 100644 index 18330d87..00000000 --- a/node_modules/@polymer/polymer/bower_components/app-layout/test/index.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - Tests - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/async/CHANGELOG.md b/node_modules/@polymer/polymer/bower_components/async/CHANGELOG.md deleted file mode 100644 index f15e0812..00000000 --- a/node_modules/@polymer/polymer/bower_components/async/CHANGELOG.md +++ /dev/null @@ -1,125 +0,0 @@ -# v1.5.2 -- Allow using `"consructor"` as an argument in `memoize` (#998) -- Give a better error messsage when `auto` dependency checking fails (#994) -- Various doc updates (#936, #956, #979, #1002) - -# v1.5.1 -- Fix issue with `pause` in `queue` with concurrency enabled (#946) -- `while` and `until` now pass the final result to callback (#963) -- `auto` will properly handle concurrency when there is no callback (#966) -- `auto` will now properly stop execution when an error occurs (#988, #993) -- Various doc fixes (#971, #980) - -# v1.5.0 - -- Added `transform`, analogous to [`_.transform`](http://lodash.com/docs#transform) (#892) -- `map` now returns an object when an object is passed in, rather than array with non-numeric keys. `map` will begin always returning an array with numeric indexes in the next major release. (#873) -- `auto` now accepts an optional `concurrency` argument to limit the number of running tasks (#637) -- Added `queue#workersList()`, to retrieve the list of currently running tasks. (#891) -- Various code simplifications (#896, #904) -- Various doc fixes :scroll: (#890, #894, #903, #905, #912) - -# v1.4.2 - -- Ensure coverage files don't get published on npm (#879) - -# v1.4.1 - -- Add in overlooked `detectLimit` method (#866) -- Removed unnecessary files from npm releases (#861) -- Removed usage of a reserved word to prevent :boom: in older environments (#870) - -# v1.4.0 - -- `asyncify` now supports promises (#840) -- Added `Limit` versions of `filter` and `reject` (#836) -- Add `Limit` versions of `detect`, `some` and `every` (#828, #829) -- `some`, `every` and `detect` now short circuit early (#828, #829) -- Improve detection of the global object (#804), enabling use in WebWorkers -- `whilst` now called with arguments from iterator (#823) -- `during` now gets called with arguments from iterator (#824) -- Code simplifications and optimizations aplenty ([diff](https://github.com/caolan/async/compare/v1.3.0...v1.4.0)) - - -# v1.3.0 - -New Features: -- Added `constant` -- Added `asyncify`/`wrapSync` for making sync functions work with callbacks. (#671, #806) -- Added `during` and `doDuring`, which are like `whilst` with an async truth test. (#800) -- `retry` now accepts an `interval` parameter to specify a delay between retries. (#793) -- `async` should work better in Web Workers due to better `root` detection (#804) -- Callbacks are now optional in `whilst`, `doWhilst`, `until`, and `doUntil` (#642) -- Various internal updates (#786, #801, #802, #803) -- Various doc fixes (#790, #794) - -Bug Fixes: -- `cargo` now exposes the `payload` size, and `cargo.payload` can be changed on the fly after the `cargo` is created. (#740, #744, #783) - - -# v1.2.1 - -Bug Fix: - -- Small regression with synchronous iterator behavior in `eachSeries` with a 1-element array. Before 1.1.0, `eachSeries`'s callback was called on the same tick, which this patch restores. In 2.0.0, it will be called on the next tick. (#782) - - -# v1.2.0 - -New Features: - -- Added `timesLimit` (#743) -- `concurrency` can be changed after initialization in `queue` by setting `q.concurrency`. The new concurrency will be reflected the next time a task is processed. (#747, #772) - -Bug Fixes: - -- Fixed a regression in `each` and family with empty arrays that have additional properties. (#775, #777) - - -# v1.1.1 - -Bug Fix: - -- Small regression with synchronous iterator behavior in `eachSeries` with a 1-element array. Before 1.1.0, `eachSeries`'s callback was called on the same tick, which this patch restores. In 2.0.0, it will be called on the next tick. (#782) - - -# v1.1.0 - -New Features: - -- `cargo` now supports all of the same methods and event callbacks as `queue`. -- Added `ensureAsync` - A wrapper that ensures an async function calls its callback on a later tick. (#769) -- Optimized `map`, `eachOf`, and `waterfall` families of functions -- Passing a `null` or `undefined` array to `map`, `each`, `parallel` and families will be treated as an empty array (#667). -- The callback is now optional for the composed results of `compose` and `seq`. (#618) -- Reduced file size by 4kb, (minified version by 1kb) -- Added code coverage through `nyc` and `coveralls` (#768) - -Bug Fixes: - -- `forever` will no longer stack overflow with a synchronous iterator (#622) -- `eachLimit` and other limit functions will stop iterating once an error occurs (#754) -- Always pass `null` in callbacks when there is no error (#439) -- Ensure proper conditions when calling `drain()` after pushing an empty data set to a queue (#668) -- `each` and family will properly handle an empty array (#578) -- `eachSeries` and family will finish if the underlying array is modified during execution (#557) -- `queue` will throw if a non-function is passed to `q.push()` (#593) -- Doc fixes (#629, #766) - - -# v1.0.0 - -No known breaking changes, we are simply complying with semver from here on out. - -Changes: - -- Start using a changelog! -- Add `forEachOf` for iterating over Objects (or to iterate Arrays with indexes available) (#168 #704 #321) -- Detect deadlocks in `auto` (#663) -- Better support for require.js (#527) -- Throw if queue created with concurrency `0` (#714) -- Fix unneeded iteration in `queue.resume()` (#758) -- Guard against timer mocking overriding `setImmediate` (#609 #611) -- Miscellaneous doc fixes (#542 #596 #615 #628 #631 #690 #729) -- Use single noop function internally (#546) -- Optimize internal `_each`, `_map` and `_keys` functions. diff --git a/node_modules/@polymer/polymer/bower_components/async/LICENSE b/node_modules/@polymer/polymer/bower_components/async/LICENSE deleted file mode 100644 index 8f296985..00000000 --- a/node_modules/@polymer/polymer/bower_components/async/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2010-2014 Caolan McMahon - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/node_modules/@polymer/polymer/bower_components/async/README.md b/node_modules/@polymer/polymer/bower_components/async/README.md deleted file mode 100644 index 316c4050..00000000 --- a/node_modules/@polymer/polymer/bower_components/async/README.md +++ /dev/null @@ -1,1877 +0,0 @@ -# Async.js - -[![Build Status via Travis CI](https://travis-ci.org/caolan/async.svg?branch=master)](https://travis-ci.org/caolan/async) -[![NPM version](http://img.shields.io/npm/v/async.svg)](https://www.npmjs.org/package/async) -[![Coverage Status](https://coveralls.io/repos/caolan/async/badge.svg?branch=master)](https://coveralls.io/r/caolan/async?branch=master) -[![Join the chat at https://gitter.im/caolan/async](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/caolan/async?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - - -Async is a utility module which provides straight-forward, powerful functions -for working with asynchronous JavaScript. Although originally designed for -use with [Node.js](http://nodejs.org) and installable via `npm install async`, -it can also be used directly in the browser. - -Async is also installable via: - -- [bower](http://bower.io/): `bower install async` -- [component](https://github.com/component/component): `component install - caolan/async` -- [jam](http://jamjs.org/): `jam install async` -- [spm](http://spmjs.io/): `spm install async` - -Async provides around 20 functions that include the usual 'functional' -suspects (`map`, `reduce`, `filter`, `each`…) as well as some common patterns -for asynchronous control flow (`parallel`, `series`, `waterfall`…). All these -functions assume you follow the Node.js convention of providing a single -callback as the last argument of your `async` function. - - -## Quick Examples - -```javascript -async.map(['file1','file2','file3'], fs.stat, function(err, results){ - // results is now an array of stats for each file -}); - -async.filter(['file1','file2','file3'], fs.exists, function(results){ - // results now equals an array of the existing files -}); - -async.parallel([ - function(){ ... }, - function(){ ... } -], callback); - -async.series([ - function(){ ... }, - function(){ ... } -]); -``` - -There are many more functions available so take a look at the docs below for a -full list. This module aims to be comprehensive, so if you feel anything is -missing please create a GitHub issue for it. - -## Common Pitfalls [(StackOverflow)](http://stackoverflow.com/questions/tagged/async.js) -### Synchronous iteration functions - -If you get an error like `RangeError: Maximum call stack size exceeded.` or other stack overflow issues when using async, you are likely using a synchronous iterator. By *synchronous* we mean a function that calls its callback on the same tick in the javascript event loop, without doing any I/O or using any timers. Calling many callbacks iteratively will quickly overflow the stack. If you run into this issue, just defer your callback with `async.setImmediate` to start a new call stack on the next tick of the event loop. - -This can also arise by accident if you callback early in certain cases: - -```js -async.eachSeries(hugeArray, function iterator(item, callback) { - if (inCache(item)) { - callback(null, cache[item]); // if many items are cached, you'll overflow - } else { - doSomeIO(item, callback); - } -}, function done() { - //... -}); -``` - -Just change it to: - -```js -async.eachSeries(hugeArray, function iterator(item, callback) { - if (inCache(item)) { - async.setImmediate(function () { - callback(null, cache[item]); - }); - } else { - doSomeIO(item, callback); - //... -``` - -Async guards against synchronous functions in some, but not all, cases. If you are still running into stack overflows, you can defer as suggested above, or wrap functions with [`async.ensureAsync`](#ensureAsync) Functions that are asynchronous by their nature do not have this problem and don't need the extra callback deferral. - -If JavaScript's event loop is still a bit nebulous, check out [this article](http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop-explained/) or [this talk](http://2014.jsconf.eu/speakers/philip-roberts-what-the-heck-is-the-event-loop-anyway.html) for more detailed information about how it works. - - -### Multiple callbacks - -Make sure to always `return` when calling a callback early, otherwise you will cause multiple callbacks and unpredictable behavior in many cases. - -```js -async.waterfall([ - function (callback) { - getSomething(options, function (err, result) { - if (err) { - callback(new Error("failed getting something:" + err.message)); - // we should return here - } - // since we did not return, this callback still will be called and - // `processData` will be called twice - callback(null, result); - }); - }, - processData -], done) -``` - -It is always good practice to `return callback(err, result)` whenever a callback call is not the last statement of a function. - - -### Binding a context to an iterator - -This section is really about `bind`, not about `async`. If you are wondering how to -make `async` execute your iterators in a given context, or are confused as to why -a method of another library isn't working as an iterator, study this example: - -```js -// Here is a simple object with an (unnecessarily roundabout) squaring method -var AsyncSquaringLibrary = { - squareExponent: 2, - square: function(number, callback){ - var result = Math.pow(number, this.squareExponent); - setTimeout(function(){ - callback(null, result); - }, 200); - } -}; - -async.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){ - // result is [NaN, NaN, NaN] - // This fails because the `this.squareExponent` expression in the square - // function is not evaluated in the context of AsyncSquaringLibrary, and is - // therefore undefined. -}); - -async.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){ - // result is [1, 4, 9] - // With the help of bind we can attach a context to the iterator before - // passing it to async. Now the square function will be executed in its - // 'home' AsyncSquaringLibrary context and the value of `this.squareExponent` - // will be as expected. -}); -``` - -## Download - -The source is available for download from -[GitHub](https://github.com/caolan/async/blob/master/lib/async.js). -Alternatively, you can install using Node Package Manager (`npm`): - - npm install async - -As well as using Bower: - - bower install async - -__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed - -## In the Browser - -So far it's been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. - -Usage: - -```html - - -``` - -## Documentation - -Some functions are also available in the following forms: -* `Series` - the same as `` but runs only a single async operation at a time -* `Limit` - the same as `` but runs a maximum of `limit` async operations at a time - -### Collections - -* [`each`](#each), `eachSeries`, `eachLimit` -* [`forEachOf`](#forEachOf), `forEachOfSeries`, `forEachOfLimit` -* [`map`](#map), `mapSeries`, `mapLimit` -* [`filter`](#filter), `filterSeries`, `filterLimit` -* [`reject`](#reject), `rejectSeries`, `rejectLimit` -* [`reduce`](#reduce), [`reduceRight`](#reduceRight) -* [`detect`](#detect), `detectSeries`, `detectLimit` -* [`sortBy`](#sortBy) -* [`some`](#some), `someLimit` -* [`every`](#every), `everyLimit` -* [`concat`](#concat), `concatSeries` - -### Control Flow - -* [`series`](#seriestasks-callback) -* [`parallel`](#parallel), `parallelLimit` -* [`whilst`](#whilst), [`doWhilst`](#doWhilst) -* [`until`](#until), [`doUntil`](#doUntil) -* [`during`](#during), [`doDuring`](#doDuring) -* [`forever`](#forever) -* [`waterfall`](#waterfall) -* [`compose`](#compose) -* [`seq`](#seq) -* [`applyEach`](#applyEach), `applyEachSeries` -* [`queue`](#queue), [`priorityQueue`](#priorityQueue) -* [`cargo`](#cargo) -* [`auto`](#auto) -* [`retry`](#retry) -* [`iterator`](#iterator) -* [`times`](#times), `timesSeries`, `timesLimit` - -### Utils - -* [`apply`](#apply) -* [`nextTick`](#nextTick) -* [`memoize`](#memoize) -* [`unmemoize`](#unmemoize) -* [`ensureAsync`](#ensureAsync) -* [`constant`](#constant) -* [`asyncify`](#asyncify) -* [`wrapSync`](#wrapSync) -* [`log`](#log) -* [`dir`](#dir) -* [`noConflict`](#noConflict) - -## Collections - - - -### each(arr, iterator, [callback]) - -Applies the function `iterator` to each item in `arr`, in parallel. -The `iterator` is called with an item from the list, and a callback for when it -has finished. If the `iterator` passes an error to its `callback`, the main -`callback` (for the `each` function) is immediately called with the error. - -Note, that since this function applies `iterator` to each item in parallel, -there is no guarantee that the iterator functions will complete in order. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err)` which must be called once it has - completed. If no error has occurred, the `callback` should be run without - arguments or with an explicit `null` argument. The array index is not passed - to the iterator. If you need the index, use [`forEachOf`](#forEachOf). -* `callback(err)` - *Optional* A callback which is called when all `iterator` functions - have finished, or an error occurs. - -__Examples__ - - -```js -// assuming openFiles is an array of file names and saveFile is a function -// to save the modified contents of that file: - -async.each(openFiles, saveFile, function(err){ - // if any of the saves produced an error, err would equal that error -}); -``` - -```js -// assuming openFiles is an array of file names - -async.each(openFiles, function(file, callback) { - - // Perform operation on file here. - console.log('Processing file ' + file); - - if( file.length > 32 ) { - console.log('This file name is too long'); - callback('File name too long'); - } else { - // Do work to process file here - console.log('File processed'); - callback(); - } -}, function(err){ - // if any of the file processing produced an error, err would equal that error - if( err ) { - // One of the iterations produced an error. - // All processing will now stop. - console.log('A file failed to process'); - } else { - console.log('All files have been processed successfully'); - } -}); -``` - -__Related__ - -* eachSeries(arr, iterator, [callback]) -* eachLimit(arr, limit, iterator, [callback]) - ---------------------------------------- - - - - -### forEachOf(obj, iterator, [callback]) - -Like `each`, except that it iterates over objects, and passes the key as the second argument to the iterator. - -__Arguments__ - -* `obj` - An object or array to iterate over. -* `iterator(item, key, callback)` - A function to apply to each item in `obj`. -The `key` is the item's key, or index in the case of an array. The iterator is -passed a `callback(err)` which must be called once it has completed. If no -error has occurred, the callback should be run without arguments or with an -explicit `null` argument. -* `callback(err)` - *Optional* A callback which is called when all `iterator` functions have finished, or an error occurs. - -__Example__ - -```js -var obj = {dev: "/dev.json", test: "/test.json", prod: "/prod.json"}; -var configs = {}; - -async.forEachOf(obj, function (value, key, callback) { - fs.readFile(__dirname + value, "utf8", function (err, data) { - if (err) return callback(err); - try { - configs[key] = JSON.parse(data); - } catch (e) { - return callback(e); - } - callback(); - }) -}, function (err) { - if (err) console.error(err.message); - // configs is now a map of JSON data - doSomethingWith(configs); -}) -``` - -__Related__ - -* forEachOfSeries(obj, iterator, [callback]) -* forEachOfLimit(obj, limit, iterator, [callback]) - ---------------------------------------- - - -### map(arr, iterator, [callback]) - -Produces a new array of values by mapping each value in `arr` through -the `iterator` function. The `iterator` is called with an item from `arr` and a -callback for when it has finished processing. Each of these callback takes 2 arguments: -an `error`, and the transformed item from `arr`. If `iterator` passes an error to its -callback, the main `callback` (for the `map` function) is immediately called with the error. - -Note, that since this function applies the `iterator` to each item in parallel, -there is no guarantee that the `iterator` functions will complete in order. -However, the results array will be in the same order as the original `arr`. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err, transformed)` which must be called once - it has completed with an error (which can be `null`) and a transformed item. -* `callback(err, results)` - *Optional* A callback which is called when all `iterator` - functions have finished, or an error occurs. Results is an array of the - transformed items from the `arr`. - -__Example__ - -```js -async.map(['file1','file2','file3'], fs.stat, function(err, results){ - // results is now an array of stats for each file -}); -``` - -__Related__ -* mapSeries(arr, iterator, [callback]) -* mapLimit(arr, limit, iterator, [callback]) - ---------------------------------------- - - - -### filter(arr, iterator, [callback]) - -__Alias:__ `select` - -Returns a new array of all the values in `arr` which pass an async truth test. -_The callback for each `iterator` call only accepts a single argument of `true` or -`false`; it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like `fs.exists`. This operation is -performed in parallel, but the results array will be in the same order as the -original. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A truth test to apply to each item in `arr`. - The `iterator` is passed a `callback(truthValue)`, which must be called with a - boolean argument once it has completed. -* `callback(results)` - *Optional* A callback which is called after all the `iterator` - functions have finished. - -__Example__ - -```js -async.filter(['file1','file2','file3'], fs.exists, function(results){ - // results now equals an array of the existing files -}); -``` - -__Related__ - -* filterSeries(arr, iterator, [callback]) -* filterLimit(arr, limit, iterator, [callback]) - ---------------------------------------- - - -### reject(arr, iterator, [callback]) - -The opposite of [`filter`](#filter). Removes values that pass an `async` truth test. - -__Related__ - -* rejectSeries(arr, iterator, [callback]) -* rejectLimit(arr, limit, iterator, [callback]) - ---------------------------------------- - - -### reduce(arr, memo, iterator, [callback]) - -__Aliases:__ `inject`, `foldl` - -Reduces `arr` into a single value using an async `iterator` to return -each successive step. `memo` is the initial state of the reduction. -This function only operates in series. - -For performance reasons, it may make sense to split a call to this function into -a parallel map, and then use the normal `Array.prototype.reduce` on the results. -This function is for situations where each step in the reduction needs to be async; -if you can get the data before reducing it, then it's probably a good idea to do so. - -__Arguments__ - -* `arr` - An array to iterate over. -* `memo` - The initial state of the reduction. -* `iterator(memo, item, callback)` - A function applied to each item in the - array to produce the next step in the reduction. The `iterator` is passed a - `callback(err, reduction)` which accepts an optional error as its first - argument, and the state of the reduction as the second. If an error is - passed to the callback, the reduction is stopped and the main `callback` is - immediately called with the error. -* `callback(err, result)` - *Optional* A callback which is called after all the `iterator` - functions have finished. Result is the reduced value. - -__Example__ - -```js -async.reduce([1,2,3], 0, function(memo, item, callback){ - // pointless async: - process.nextTick(function(){ - callback(null, memo + item) - }); -}, function(err, result){ - // result is now equal to the last value of memo, which is 6 -}); -``` - ---------------------------------------- - - -### reduceRight(arr, memo, iterator, [callback]) - -__Alias:__ `foldr` - -Same as [`reduce`](#reduce), only operates on `arr` in reverse order. - - ---------------------------------------- - - -### detect(arr, iterator, [callback]) - -Returns the first value in `arr` that passes an async truth test. The -`iterator` is applied in parallel, meaning the first iterator to return `true` will -fire the detect `callback` with that result. That means the result might not be -the first item in the original `arr` (in terms of order) that passes the test. - -If order within the original `arr` is important, then look at [`detectSeries`](#detectSeries). - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A truth test to apply to each item in `arr`. - The iterator is passed a `callback(truthValue)` which must be called with a - boolean argument once it has completed. **Note: this callback does not take an error as its first argument.** -* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns - `true`, or after all the `iterator` functions have finished. Result will be - the first item in the array that passes the truth test (iterator) or the - value `undefined` if none passed. **Note: this callback does not take an error as its first argument.** - -__Example__ - -```js -async.detect(['file1','file2','file3'], fs.exists, function(result){ - // result now equals the first file in the list that exists -}); -``` - -__Related__ - -* detectSeries(arr, iterator, [callback]) -* detectLimit(arr, limit, iterator, [callback]) - ---------------------------------------- - - -### sortBy(arr, iterator, [callback]) - -Sorts a list by the results of running each `arr` value through an async `iterator`. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err, sortValue)` which must be called once it - has completed with an error (which can be `null`) and a value to use as the sort - criteria. -* `callback(err, results)` - *Optional* A callback which is called after all the `iterator` - functions have finished, or an error occurs. Results is the items from - the original `arr` sorted by the values returned by the `iterator` calls. - -__Example__ - -```js -async.sortBy(['file1','file2','file3'], function(file, callback){ - fs.stat(file, function(err, stats){ - callback(err, stats.mtime); - }); -}, function(err, results){ - // results is now the original array of files sorted by - // modified date -}); -``` - -__Sort Order__ - -By modifying the callback parameter the sorting order can be influenced: - -```js -//ascending order -async.sortBy([1,9,3,5], function(x, callback){ - callback(null, x); -}, function(err,result){ - //result callback -} ); - -//descending order -async.sortBy([1,9,3,5], function(x, callback){ - callback(null, x*-1); //<- x*-1 instead of x, turns the order around -}, function(err,result){ - //result callback -} ); -``` - ---------------------------------------- - - -### some(arr, iterator, [callback]) - -__Alias:__ `any` - -Returns `true` if at least one element in the `arr` satisfies an async test. -_The callback for each iterator call only accepts a single argument of `true` or -`false`; it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like `fs.exists`. Once any iterator -call returns `true`, the main `callback` is immediately called. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A truth test to apply to each item in the array - in parallel. The iterator is passed a `callback(truthValue)`` which must be - called with a boolean argument once it has completed. -* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns - `true`, or after all the iterator functions have finished. Result will be - either `true` or `false` depending on the values of the async tests. - - **Note: the callbacks do not take an error as their first argument.** -__Example__ - -```js -async.some(['file1','file2','file3'], fs.exists, function(result){ - // if result is true then at least one of the files exists -}); -``` - -__Related__ - -* someLimit(arr, limit, iterator, callback) - ---------------------------------------- - - -### every(arr, iterator, [callback]) - -__Alias:__ `all` - -Returns `true` if every element in `arr` satisfies an async test. -_The callback for each `iterator` call only accepts a single argument of `true` or -`false`; it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like `fs.exists`. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A truth test to apply to each item in the array - in parallel. The iterator is passed a `callback(truthValue)` which must be - called with a boolean argument once it has completed. -* `callback(result)` - *Optional* A callback which is called as soon as any iterator returns - `false`, or after all the iterator functions have finished. Result will be - either `true` or `false` depending on the values of the async tests. - - **Note: the callbacks do not take an error as their first argument.** - -__Example__ - -```js -async.every(['file1','file2','file3'], fs.exists, function(result){ - // if result is true then every file exists -}); -``` - -__Related__ - -* everyLimit(arr, limit, iterator, callback) - ---------------------------------------- - - -### concat(arr, iterator, [callback]) - -Applies `iterator` to each item in `arr`, concatenating the results. Returns the -concatenated list. The `iterator`s are called in parallel, and the results are -concatenated as they return. There is no guarantee that the results array will -be returned in the original order of `arr` passed to the `iterator` function. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err, results)` which must be called once it - has completed with an error (which can be `null`) and an array of results. -* `callback(err, results)` - *Optional* A callback which is called after all the `iterator` - functions have finished, or an error occurs. Results is an array containing - the concatenated results of the `iterator` function. - -__Example__ - -```js -async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ - // files is now a list of filenames that exist in the 3 directories -}); -``` - -__Related__ - -* concatSeries(arr, iterator, [callback]) - - -## Control Flow - - -### series(tasks, [callback]) - -Run the functions in the `tasks` array in series, each one running once the previous -function has completed. If any functions in the series pass an error to its -callback, no more functions are run, and `callback` is immediately called with the value of the error. -Otherwise, `callback` receives an array of results when `tasks` have completed. - -It is also possible to use an object instead of an array. Each property will be -run as a function, and the results will be passed to the final `callback` as an object -instead of an array. This can be a more readable way of handling results from -[`series`](#series). - -**Note** that while many implementations preserve the order of object properties, the -[ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) -explicitly states that - -> The mechanics and order of enumerating the properties is not specified. - -So if you rely on the order in which your series of functions are executed, and want -this to work on all platforms, consider using an array. - -__Arguments__ - -* `tasks` - An array or object containing functions to run, each function is passed - a `callback(err, result)` it must call on completion with an error `err` (which can - be `null`) and an optional `result` value. -* `callback(err, results)` - An optional callback to run once all the functions - have completed. This function gets a results array (or object) containing all - the result arguments passed to the `task` callbacks. - -__Example__ - -```js -async.series([ - function(callback){ - // do some stuff ... - callback(null, 'one'); - }, - function(callback){ - // do some more stuff ... - callback(null, 'two'); - } -], -// optional callback -function(err, results){ - // results is now equal to ['one', 'two'] -}); - - -// an example using an object instead of an array -async.series({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - } -}, -function(err, results) { - // results is now equal to: {one: 1, two: 2} -}); -``` - ---------------------------------------- - - -### parallel(tasks, [callback]) - -Run the `tasks` array of functions in parallel, without waiting until the previous -function has completed. If any of the functions pass an error to its -callback, the main `callback` is immediately called with the value of the error. -Once the `tasks` have completed, the results are passed to the final `callback` as an -array. - -**Note:** `parallel` is about kicking-off I/O tasks in parallel, not about parallel execution of code. If your tasks do not use any timers or perform any I/O, they will actually be executed in series. Any synchronous setup sections for each task will happen one after the other. JavaScript remains single-threaded. - -It is also possible to use an object instead of an array. Each property will be -run as a function and the results will be passed to the final `callback` as an object -instead of an array. This can be a more readable way of handling results from -[`parallel`](#parallel). - - -__Arguments__ - -* `tasks` - An array or object containing functions to run. Each function is passed - a `callback(err, result)` which it must call on completion with an error `err` - (which can be `null`) and an optional `result` value. -* `callback(err, results)` - An optional callback to run once all the functions - have completed successfully. This function gets a results array (or object) containing all - the result arguments passed to the task callbacks. - -__Example__ - -```js -async.parallel([ - function(callback){ - setTimeout(function(){ - callback(null, 'one'); - }, 200); - }, - function(callback){ - setTimeout(function(){ - callback(null, 'two'); - }, 100); - } -], -// optional callback -function(err, results){ - // the results array will equal ['one','two'] even though - // the second function had a shorter timeout. -}); - - -// an example using an object instead of an array -async.parallel({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - } -}, -function(err, results) { - // results is now equals to: {one: 1, two: 2} -}); -``` - -__Related__ - -* parallelLimit(tasks, limit, [callback]) - ---------------------------------------- - - -### whilst(test, fn, callback) - -Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when stopped, -or an error occurs. - -__Arguments__ - -* `test()` - synchronous truth test to perform before each execution of `fn`. -* `fn(callback)` - A function which is called each time `test` passes. The function is - passed a `callback(err)`, which must be called once it has completed with an - optional `err` argument. -* `callback(err, [results])` - A callback which is called after the test - function has failed and repeated execution of `fn` has stopped. `callback` - will be passed an error and any arguments passed to the final `fn`'s callback. - -__Example__ - -```js -var count = 0; - -async.whilst( - function () { return count < 5; }, - function (callback) { - count++; - setTimeout(function () { - callback(null, count); - }, 1000); - }, - function (err, n) { - // 5 seconds have passed, n = 5 - } -); -``` - ---------------------------------------- - - -### doWhilst(fn, test, callback) - -The post-check version of [`whilst`](#whilst). To reflect the difference in -the order of operations, the arguments `test` and `fn` are switched. - -`doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript. - ---------------------------------------- - - -### until(test, fn, callback) - -Repeatedly call `fn` until `test` returns `true`. Calls `callback` when stopped, -or an error occurs. `callback` will be passed an error and any arguments passed -to the final `fn`'s callback. - -The inverse of [`whilst`](#whilst). - ---------------------------------------- - - -### doUntil(fn, test, callback) - -Like [`doWhilst`](#doWhilst), except the `test` is inverted. Note the argument ordering differs from `until`. - ---------------------------------------- - - -### during(test, fn, callback) - -Like [`whilst`](#whilst), except the `test` is an asynchronous function that is passed a callback in the form of `function (err, truth)`. If error is passed to `test` or `fn`, the main callback is immediately called with the value of the error. - -__Example__ - -```js -var count = 0; - -async.during( - function (callback) { - return callback(null, count < 5); - }, - function (callback) { - count++; - setTimeout(callback, 1000); - }, - function (err) { - // 5 seconds have passed - } -); -``` - ---------------------------------------- - - -### doDuring(fn, test, callback) - -The post-check version of [`during`](#during). To reflect the difference in -the order of operations, the arguments `test` and `fn` are switched. - -Also a version of [`doWhilst`](#doWhilst) with asynchronous `test` function. - ---------------------------------------- - - -### forever(fn, [errback]) - -Calls the asynchronous function `fn` with a callback parameter that allows it to -call itself again, in series, indefinitely. - -If an error is passed to the callback then `errback` is called with the -error, and execution stops, otherwise it will never be called. - -```js -async.forever( - function(next) { - // next is suitable for passing to things that need a callback(err [, whatever]); - // it will result in this function being called again. - }, - function(err) { - // if next is called with a value in its first parameter, it will appear - // in here as 'err', and execution will stop. - } -); -``` - ---------------------------------------- - - -### waterfall(tasks, [callback]) - -Runs the `tasks` array of functions in series, each passing their results to the next in -the array. However, if any of the `tasks` pass an error to their own callback, the -next function is not executed, and the main `callback` is immediately called with -the error. - -__Arguments__ - -* `tasks` - An array of functions to run, each function is passed a - `callback(err, result1, result2, ...)` it must call on completion. The first - argument is an error (which can be `null`) and any further arguments will be - passed as arguments in order to the next task. -* `callback(err, [results])` - An optional callback to run once all the functions - have completed. This will be passed the results of the last task's callback. - - - -__Example__ - -```js -async.waterfall([ - function(callback) { - callback(null, 'one', 'two'); - }, - function(arg1, arg2, callback) { - // arg1 now equals 'one' and arg2 now equals 'two' - callback(null, 'three'); - }, - function(arg1, callback) { - // arg1 now equals 'three' - callback(null, 'done'); - } -], function (err, result) { - // result now equals 'done' -}); -``` -Or, with named functions: - -```js -async.waterfall([ - myFirstFunction, - mySecondFunction, - myLastFunction, -], function (err, result) { - // result now equals 'done' -}); -function myFirstFunction(callback) { - callback(null, 'one', 'two'); -} -function mySecondFunction(arg1, arg2, callback) { - // arg1 now equals 'one' and arg2 now equals 'two' - callback(null, 'three'); -} -function myLastFunction(arg1, callback) { - // arg1 now equals 'three' - callback(null, 'done'); -} -``` - -Or, if you need to pass any argument to the first function: - -```js -async.waterfall([ - async.apply(myFirstFunction, 'zero'), - mySecondFunction, - myLastFunction, -], function (err, result) { - // result now equals 'done' -}); -function myFirstFunction(arg1, callback) { - // arg1 now equals 'zero' - callback(null, 'one', 'two'); -} -function mySecondFunction(arg1, arg2, callback) { - // arg1 now equals 'one' and arg2 now equals 'two' - callback(null, 'three'); -} -function myLastFunction(arg1, callback) { - // arg1 now equals 'three' - callback(null, 'done'); -} -``` - ---------------------------------------- - -### compose(fn1, fn2...) - -Creates a function which is a composition of the passed asynchronous -functions. Each function consumes the return value of the function that -follows. Composing functions `f()`, `g()`, and `h()` would produce the result of -`f(g(h()))`, only this version uses callbacks to obtain the return values. - -Each function is executed with the `this` binding of the composed function. - -__Arguments__ - -* `functions...` - the asynchronous functions to compose - - -__Example__ - -```js -function add1(n, callback) { - setTimeout(function () { - callback(null, n + 1); - }, 10); -} - -function mul3(n, callback) { - setTimeout(function () { - callback(null, n * 3); - }, 10); -} - -var add1mul3 = async.compose(mul3, add1); - -add1mul3(4, function (err, result) { - // result now equals 15 -}); -``` - ---------------------------------------- - -### seq(fn1, fn2...) - -Version of the compose function that is more natural to read. -Each function consumes the return value of the previous function. -It is the equivalent of [`compose`](#compose) with the arguments reversed. - -Each function is executed with the `this` binding of the composed function. - -__Arguments__ - -* `functions...` - the asynchronous functions to compose - - -__Example__ - -```js -// Requires lodash (or underscore), express3 and dresende's orm2. -// Part of an app, that fetches cats of the logged user. -// This example uses `seq` function to avoid overnesting and error -// handling clutter. -app.get('/cats', function(request, response) { - var User = request.models.User; - async.seq( - _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data)) - function(user, fn) { - user.getCats(fn); // 'getCats' has signature (callback(err, data)) - } - )(req.session.user_id, function (err, cats) { - if (err) { - console.error(err); - response.json({ status: 'error', message: err.message }); - } else { - response.json({ status: 'ok', message: 'Cats found', data: cats }); - } - }); -}); -``` - ---------------------------------------- - -### applyEach(fns, args..., callback) - -Applies the provided arguments to each function in the array, calling -`callback` after all functions have completed. If you only provide the first -argument, then it will return a function which lets you pass in the -arguments as if it were a single function call. - -__Arguments__ - -* `fns` - the asynchronous functions to all call with the same arguments -* `args...` - any number of separate arguments to pass to the function -* `callback` - the final argument should be the callback, called when all - functions have completed processing - - -__Example__ - -```js -async.applyEach([enableSearch, updateSchema], 'bucket', callback); - -// partial application example: -async.each( - buckets, - async.applyEach([enableSearch, updateSchema]), - callback -); -``` - -__Related__ - -* applyEachSeries(tasks, args..., [callback]) - ---------------------------------------- - - -### queue(worker, [concurrency]) - -Creates a `queue` object with the specified `concurrency`. Tasks added to the -`queue` are processed in parallel (up to the `concurrency` limit). If all -`worker`s are in progress, the task is queued until one becomes available. -Once a `worker` completes a `task`, that `task`'s callback is called. - -__Arguments__ - -* `worker(task, callback)` - An asynchronous function for processing a queued - task, which must call its `callback(err)` argument when finished, with an - optional `error` as an argument. If you want to handle errors from an individual task, pass a callback to `q.push()`. -* `concurrency` - An `integer` for determining how many `worker` functions should be - run in parallel. If omitted, the concurrency defaults to `1`. If the concurrency is `0`, an error is thrown. - -__Queue objects__ - -The `queue` object returned by this function has the following properties and -methods: - -* `length()` - a function returning the number of items waiting to be processed. -* `started` - a function returning whether or not any items have been pushed and processed by the queue -* `running()` - a function returning the number of items currently being processed. -* `workersList()` - a function returning the array of items currently being processed. -* `idle()` - a function returning false if there are items waiting or being processed, or true if not. -* `concurrency` - an integer for determining how many `worker` functions should be - run in parallel. This property can be changed after a `queue` is created to - alter the concurrency on-the-fly. -* `push(task, [callback])` - add a new task to the `queue`. Calls `callback` once - the `worker` has finished processing the task. Instead of a single task, a `tasks` array - can be submitted. The respective callback is used for every task in the list. -* `unshift(task, [callback])` - add a new task to the front of the `queue`. -* `saturated` - a callback that is called when the `queue` length hits the `concurrency` limit, - and further tasks will be queued. -* `empty` - a callback that is called when the last item from the `queue` is given to a `worker`. -* `drain` - a callback that is called when the last item from the `queue` has returned from the `worker`. -* `paused` - a boolean for determining whether the queue is in a paused state -* `pause()` - a function that pauses the processing of tasks until `resume()` is called. -* `resume()` - a function that resumes the processing of queued tasks when the queue is paused. -* `kill()` - a function that removes the `drain` callback and empties remaining tasks from the queue forcing it to go idle. - -__Example__ - -```js -// create a queue object with concurrency 2 - -var q = async.queue(function (task, callback) { - console.log('hello ' + task.name); - callback(); -}, 2); - - -// assign a callback -q.drain = function() { - console.log('all items have been processed'); -} - -// add some items to the queue - -q.push({name: 'foo'}, function (err) { - console.log('finished processing foo'); -}); -q.push({name: 'bar'}, function (err) { - console.log('finished processing bar'); -}); - -// add some items to the queue (batch-wise) - -q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) { - console.log('finished processing item'); -}); - -// add some items to the front of the queue - -q.unshift({name: 'bar'}, function (err) { - console.log('finished processing bar'); -}); -``` - - ---------------------------------------- - - -### priorityQueue(worker, concurrency) - -The same as [`queue`](#queue) only tasks are assigned a priority and completed in ascending priority order. There are two differences between `queue` and `priorityQueue` objects: - -* `push(task, priority, [callback])` - `priority` should be a number. If an array of - `tasks` is given, all tasks will be assigned the same priority. -* The `unshift` method was removed. - ---------------------------------------- - - -### cargo(worker, [payload]) - -Creates a `cargo` object with the specified payload. Tasks added to the -cargo will be processed altogether (up to the `payload` limit). If the -`worker` is in progress, the task is queued until it becomes available. Once -the `worker` has completed some tasks, each callback of those tasks is called. -Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966) for how `cargo` and `queue` work. - -While [queue](#queue) passes only one task to one of a group of workers -at a time, cargo passes an array of tasks to a single worker, repeating -when the worker is finished. - -__Arguments__ - -* `worker(tasks, callback)` - An asynchronous function for processing an array of - queued tasks, which must call its `callback(err)` argument when finished, with - an optional `err` argument. -* `payload` - An optional `integer` for determining how many tasks should be - processed per round; if omitted, the default is unlimited. - -__Cargo objects__ - -The `cargo` object returned by this function has the following properties and -methods: - -* `length()` - A function returning the number of items waiting to be processed. -* `payload` - An `integer` for determining how many tasks should be - process per round. This property can be changed after a `cargo` is created to - alter the payload on-the-fly. -* `push(task, [callback])` - Adds `task` to the `queue`. The callback is called - once the `worker` has finished processing the task. Instead of a single task, an array of `tasks` - can be submitted. The respective callback is used for every task in the list. -* `saturated` - A callback that is called when the `queue.length()` hits the concurrency and further tasks will be queued. -* `empty` - A callback that is called when the last item from the `queue` is given to a `worker`. -* `drain` - A callback that is called when the last item from the `queue` has returned from the `worker`. -* `idle()`, `pause()`, `resume()`, `kill()` - cargo inherits all of the same methods and event calbacks as [`queue`](#queue) - -__Example__ - -```js -// create a cargo object with payload 2 - -var cargo = async.cargo(function (tasks, callback) { - for(var i=0; i -### auto(tasks, [concurrency], [callback]) - -Determines the best order for running the functions in `tasks`, based on their requirements. Each function can optionally depend on other functions being completed first, and each function is run as soon as its requirements are satisfied. - -If any of the functions pass an error to their callback, the `auto` sequence will stop. Further tasks will not execute (so any other functions depending on it will not run), and the main `callback` is immediately called with the error. Functions also receive an object containing the results of functions which have completed so far. - -Note, all functions are called with a `results` object as a second argument, -so it is unsafe to pass functions in the `tasks` object which cannot handle the -extra argument. - -For example, this snippet of code: - -```js -async.auto({ - readData: async.apply(fs.readFile, 'data.txt', 'utf-8') -}, callback); -``` - -will have the effect of calling `readFile` with the results object as the last -argument, which will fail: - -```js -fs.readFile('data.txt', 'utf-8', cb, {}); -``` - -Instead, wrap the call to `readFile` in a function which does not forward the -`results` object: - -```js -async.auto({ - readData: function(cb, results){ - fs.readFile('data.txt', 'utf-8', cb); - } -}, callback); -``` - -__Arguments__ - -* `tasks` - An object. Each of its properties is either a function or an array of - requirements, with the function itself the last item in the array. The object's key - of a property serves as the name of the task defined by that property, - i.e. can be used when specifying requirements for other tasks. - The function receives two arguments: (1) a `callback(err, result)` which must be - called when finished, passing an `error` (which can be `null`) and the result of - the function's execution, and (2) a `results` object, containing the results of - the previously executed functions. -* `concurrency` - An optional `integer` for determining the maximum number of tasks that can be run in parallel. By default, as many as possible. -* `callback(err, results)` - An optional callback which is called when all the - tasks have been completed. It receives the `err` argument if any `tasks` - pass an error to their callback. Results are always returned; however, if - an error occurs, no further `tasks` will be performed, and the results - object will only contain partial results. - - -__Example__ - -```js -async.auto({ - get_data: function(callback){ - console.log('in get_data'); - // async code to get some data - callback(null, 'data', 'converted to array'); - }, - make_folder: function(callback){ - console.log('in make_folder'); - // async code to create a directory to store a file in - // this is run at the same time as getting the data - callback(null, 'folder'); - }, - write_file: ['get_data', 'make_folder', function(callback, results){ - console.log('in write_file', JSON.stringify(results)); - // once there is some data and the directory exists, - // write the data to a file in the directory - callback(null, 'filename'); - }], - email_link: ['write_file', function(callback, results){ - console.log('in email_link', JSON.stringify(results)); - // once the file is written let's email a link to it... - // results.write_file contains the filename returned by write_file. - callback(null, {'file':results.write_file, 'email':'user@example.com'}); - }] -}, function(err, results) { - console.log('err = ', err); - console.log('results = ', results); -}); -``` - -This is a fairly trivial example, but to do this using the basic parallel and -series functions would look like this: - -```js -async.parallel([ - function(callback){ - console.log('in get_data'); - // async code to get some data - callback(null, 'data', 'converted to array'); - }, - function(callback){ - console.log('in make_folder'); - // async code to create a directory to store a file in - // this is run at the same time as getting the data - callback(null, 'folder'); - } -], -function(err, results){ - async.series([ - function(callback){ - console.log('in write_file', JSON.stringify(results)); - // once there is some data and the directory exists, - // write the data to a file in the directory - results.push('filename'); - callback(null); - }, - function(callback){ - console.log('in email_link', JSON.stringify(results)); - // once the file is written let's email a link to it... - callback(null, {'file':results.pop(), 'email':'user@example.com'}); - } - ]); -}); -``` - -For a complicated series of `async` tasks, using the [`auto`](#auto) function makes adding -new tasks much easier (and the code more readable). - - ---------------------------------------- - - -### retry([opts = {times: 5, interval: 0}| 5], task, [callback]) - -Attempts to get a successful response from `task` no more than `times` times before -returning an error. If the task is successful, the `callback` will be passed the result -of the successful task. If all attempts fail, the callback will be passed the error and -result (if any) of the final attempt. - -__Arguments__ - -* `opts` - Can be either an object with `times` and `interval` or a number. - * `times` - The number of attempts to make before giving up. The default is `5`. - * `interval` - The time to wait between retries, in milliseconds. The default is `0`. - * If `opts` is a number, the number specifies the number of times to retry, with the default interval of `0`. -* `task(callback, results)` - A function which receives two arguments: (1) a `callback(err, result)` - which must be called when finished, passing `err` (which can be `null`) and the `result` of - the function's execution, and (2) a `results` object, containing the results of - the previously executed functions (if nested inside another control flow). -* `callback(err, results)` - An optional callback which is called when the - task has succeeded, or after the final failed attempt. It receives the `err` and `result` arguments of the last attempt at completing the `task`. - -The [`retry`](#retry) function can be used as a stand-alone control flow by passing a callback, as shown below: - -```js -// try calling apiMethod 3 times -async.retry(3, apiMethod, function(err, result) { - // do something with the result -}); -``` - -```js -// try calling apiMethod 3 times, waiting 200 ms between each retry -async.retry({times: 3, interval: 200}, apiMethod, function(err, result) { - // do something with the result -}); -``` - -```js -// try calling apiMethod the default 5 times no delay between each retry -async.retry(apiMethod, function(err, result) { - // do something with the result -}); -``` - -It can also be embedded within other control flow functions to retry individual methods -that are not as reliable, like this: - -```js -async.auto({ - users: api.getUsers.bind(api), - payments: async.retry(3, api.getPayments.bind(api)) -}, function(err, results) { - // do something with the results -}); -``` - - ---------------------------------------- - - -### iterator(tasks) - -Creates an iterator function which calls the next function in the `tasks` array, -returning a continuation to call the next one after that. It's also possible to -“peek” at the next iterator with `iterator.next()`. - -This function is used internally by the `async` module, but can be useful when -you want to manually control the flow of functions in series. - -__Arguments__ - -* `tasks` - An array of functions to run. - -__Example__ - -```js -var iterator = async.iterator([ - function(){ sys.p('one'); }, - function(){ sys.p('two'); }, - function(){ sys.p('three'); } -]); - -node> var iterator2 = iterator(); -'one' -node> var iterator3 = iterator2(); -'two' -node> iterator3(); -'three' -node> var nextfn = iterator2.next(); -node> nextfn(); -'three' -``` - ---------------------------------------- - - -### apply(function, arguments..) - -Creates a continuation function with some arguments already applied. - -Useful as a shorthand when combined with other control flow functions. Any arguments -passed to the returned function are added to the arguments originally passed -to apply. - -__Arguments__ - -* `function` - The function you want to eventually apply all arguments to. -* `arguments...` - Any number of arguments to automatically apply when the - continuation is called. - -__Example__ - -```js -// using apply - -async.parallel([ - async.apply(fs.writeFile, 'testfile1', 'test1'), - async.apply(fs.writeFile, 'testfile2', 'test2'), -]); - - -// the same process without using apply - -async.parallel([ - function(callback){ - fs.writeFile('testfile1', 'test1', callback); - }, - function(callback){ - fs.writeFile('testfile2', 'test2', callback); - } -]); -``` - -It's possible to pass any number of additional arguments when calling the -continuation: - -```js -node> var fn = async.apply(sys.puts, 'one'); -node> fn('two', 'three'); -one -two -three -``` - ---------------------------------------- - - -### nextTick(callback), setImmediate(callback) - -Calls `callback` on a later loop around the event loop. In Node.js this just -calls `process.nextTick`; in the browser it falls back to `setImmediate(callback)` -if available, otherwise `setTimeout(callback, 0)`, which means other higher priority -events may precede the execution of `callback`. - -This is used internally for browser-compatibility purposes. - -__Arguments__ - -* `callback` - The function to call on a later loop around the event loop. - -__Example__ - -```js -var call_order = []; -async.nextTick(function(){ - call_order.push('two'); - // call_order now equals ['one','two'] -}); -call_order.push('one') -``` - - -### times(n, iterator, [callback]) - -Calls the `iterator` function `n` times, and accumulates results in the same manner -you would use with [`map`](#map). - -__Arguments__ - -* `n` - The number of times to run the function. -* `iterator` - The function to call `n` times. -* `callback` - see [`map`](#map) - -__Example__ - -```js -// Pretend this is some complicated async factory -var createUser = function(id, callback) { - callback(null, { - id: 'user' + id - }) -} -// generate 5 users -async.times(5, function(n, next){ - createUser(n, function(err, user) { - next(err, user) - }) -}, function(err, users) { - // we should now have 5 users -}); -``` - -__Related__ - -* timesSeries(n, iterator, [callback]) -* timesLimit(n, limit, iterator, [callback]) - - -## Utils - - -### memoize(fn, [hasher]) - -Caches the results of an `async` function. When creating a hash to store function -results against, the callback is omitted from the hash and an optional hash -function can be used. - -If no hash function is specified, the first argument is used as a hash key, which may work reasonably if it is a string or a data type that converts to a distinct string. Note that objects and arrays will not behave reasonably. Neither will cases where the other arguments are significant. In such cases, specify your own hash function. - -The cache of results is exposed as the `memo` property of the function returned -by `memoize`. - -__Arguments__ - -* `fn` - The function to proxy and cache results from. -* `hasher` - An optional function for generating a custom hash for storing - results. It has all the arguments applied to it apart from the callback, and - must be synchronous. - -__Example__ - -```js -var slow_fn = function (name, callback) { - // do something - callback(null, result); -}; -var fn = async.memoize(slow_fn); - -// fn can now be used as if it were slow_fn -fn('some name', function () { - // callback -}); -``` - - -### unmemoize(fn) - -Undoes a [`memoize`](#memoize)d function, reverting it to the original, unmemoized -form. Handy for testing. - -__Arguments__ - -* `fn` - the memoized function - ---------------------------------------- - - -### ensureAsync(fn) - -Wrap an async function and ensure it calls its callback on a later tick of the event loop. If the function already calls its callback on a next tick, no extra deferral is added. This is useful for preventing stack overflows (`RangeError: Maximum call stack size exceeded`) and generally keeping [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony) contained. - -__Arguments__ - -* `fn` - an async function, one that expects a node-style callback as its last argument - -Returns a wrapped function with the exact same call signature as the function passed in. - -__Example__ - -```js -function sometimesAsync(arg, callback) { - if (cache[arg]) { - return callback(null, cache[arg]); // this would be synchronous!! - } else { - doSomeIO(arg, callback); // this IO would be asynchronous - } -} - -// this has a risk of stack overflows if many results are cached in a row -async.mapSeries(args, sometimesAsync, done); - -// this will defer sometimesAsync's callback if necessary, -// preventing stack overflows -async.mapSeries(args, async.ensureAsync(sometimesAsync), done); - -``` - ---------------------------------------- - - -### constant(values...) - -Returns a function that when called, calls-back with the values provided. Useful as the first function in a `waterfall`, or for plugging values in to `auto`. - -__Example__ - -```js -async.waterfall([ - async.constant(42), - function (value, next) { - // value === 42 - }, - //... -], callback); - -async.waterfall([ - async.constant(filename, "utf8"), - fs.readFile, - function (fileData, next) { - //... - } - //... -], callback); - -async.auto({ - hostname: async.constant("https://server.net/"), - port: findFreePort, - launchServer: ["hostname", "port", function (cb, options) { - startServer(options, cb); - }], - //... -}, callback); - -``` - ---------------------------------------- - - - -### asyncify(func) - -__Alias:__ `wrapSync` - -Take a sync function and make it async, passing its return value to a callback. This is useful for plugging sync functions into a waterfall, series, or other async functions. Any arguments passed to the generated function will be passed to the wrapped function (except for the final callback argument). Errors thrown will be passed to the callback. - -__Example__ - -```js -async.waterfall([ - async.apply(fs.readFile, filename, "utf8"), - async.asyncify(JSON.parse), - function (data, next) { - // data is the result of parsing the text. - // If there was a parsing error, it would have been caught. - } -], callback) -``` - -If the function passed to `asyncify` returns a Promise, that promises's resolved/rejected state will be used to call the callback, rather than simply the synchronous return value. Example: - -```js -async.waterfall([ - async.apply(fs.readFile, filename, "utf8"), - async.asyncify(function (contents) { - return db.model.create(contents); - }), - function (model, next) { - // `model` is the instantiated model object. - // If there was an error, this function would be skipped. - } -], callback) -``` - -This also means you can asyncify ES2016 `async` functions. - -```js -var q = async.queue(async.asyncify(async function (file) { - var intermediateStep = await processFile(file); - return await somePromise(intermediateStep) -})); - -q.push(files); -``` - ---------------------------------------- - - -### log(function, arguments) - -Logs the result of an `async` function to the `console`. Only works in Node.js or -in browsers that support `console.log` and `console.error` (such as FF and Chrome). -If multiple arguments are returned from the async function, `console.log` is -called on each argument in order. - -__Arguments__ - -* `function` - The function you want to eventually apply all arguments to. -* `arguments...` - Any number of arguments to apply to the function. - -__Example__ - -```js -var hello = function(name, callback){ - setTimeout(function(){ - callback(null, 'hello ' + name); - }, 1000); -}; -``` -```js -node> async.log(hello, 'world'); -'hello world' -``` - ---------------------------------------- - - -### dir(function, arguments) - -Logs the result of an `async` function to the `console` using `console.dir` to -display the properties of the resulting object. Only works in Node.js or -in browsers that support `console.dir` and `console.error` (such as FF and Chrome). -If multiple arguments are returned from the async function, `console.dir` is -called on each argument in order. - -__Arguments__ - -* `function` - The function you want to eventually apply all arguments to. -* `arguments...` - Any number of arguments to apply to the function. - -__Example__ - -```js -var hello = function(name, callback){ - setTimeout(function(){ - callback(null, {hello: name}); - }, 1000); -}; -``` -```js -node> async.dir(hello, 'world'); -{hello: 'world'} -``` - ---------------------------------------- - - -### noConflict() - -Changes the value of `async` back to its original value, returning a reference to the -`async` object. diff --git a/node_modules/@polymer/polymer/bower_components/chai/.bower.json b/node_modules/@polymer/polymer/bower_components/chai/.bower.json deleted file mode 100644 index ed4bb733..00000000 --- a/node_modules/@polymer/polymer/bower_components/chai/.bower.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "chai", - "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", - "license": "MIT", - "keywords": [ - "test", - "assertion", - "assert", - "testing", - "chai" - ], - "main": "chai.js", - "ignore": [ - "build", - "components", - "lib", - "node_modules", - "support", - "test", - "index.js", - "Makefile", - ".*" - ], - "dependencies": {}, - "devDependencies": {}, - "homepage": "https://github.com/chaijs/chai", - "version": "3.5.0", - "_release": "3.5.0", - "_resolution": { - "type": "version", - "tag": "3.5.0", - "commit": "57c85f624a7e19ffaf1a2c7d07d81180db17bec7" - }, - "_source": "https://github.com/chaijs/chai.git", - "_target": "^3.2.0", - "_originalSource": "chai" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/chai/CODE_OF_CONDUCT.md b/node_modules/@polymer/polymer/bower_components/chai/CODE_OF_CONDUCT.md deleted file mode 100644 index 5194527f..00000000 --- a/node_modules/@polymer/polymer/bower_components/chai/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,58 +0,0 @@ -# Contributor Code of Conduct - -> Read in: [Español](http://contributor-covenant.org/version/1/3/0/es/) | -[Français](http://contributor-covenant.org/version/1/3/0/fr/) | -[Italiano](http://contributor-covenant.org/version/1/3/0/it/) | -[Magyar](http://contributor-covenant.org/version/1/3/0/hu/) | -[Polskie](http://contributor-covenant.org/version/1/3/0/pl/) | -[Português](http://contributor-covenant.org/version/1/3/0/pt/) | -[Português do Brasil](http://contributor-covenant.org/version/1/3/0/pt_br/) - -As contributors and maintainers of this project, and in the interest of -fostering an open and welcoming community, we pledge to respect all people who -contribute through reporting issues, posting feature requests, updating -documentation, submitting pull requests or patches, and other activities. - -We are committed to making participation in this project a harassment-free -experience for everyone, regardless of level of experience, gender, gender -identity and expression, sexual orientation, disability, personal appearance, -body size, race, ethnicity, age, religion, or nationality. - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery -* Personal attacks -* Trolling or insulting/derogatory comments -* Public or private harassment -* Publishing other's private information, such as physical or electronic - addresses, without explicit permission -* Other unethical or unprofessional conduct - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -By adopting this Code of Conduct, project maintainers commit themselves to -fairly and consistently applying these principles to every aspect of managing -this project. Project maintainers who do not follow or enforce the Code of -Conduct may be permanently removed from the project team. - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting a project maintainer at [INSERT EMAIL ADDRESS]. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. Maintainers are -obligated to maintain confidentiality with regard to the reporter of an -incident. - - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 1.3.0, available at -[http://contributor-covenant.org/version/1/3/0/][version] - -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/3/0/ diff --git a/node_modules/@polymer/polymer/bower_components/chai/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/chai/CONTRIBUTING.md deleted file mode 100644 index 8de9ba8e..00000000 --- a/node_modules/@polymer/polymer/bower_components/chai/CONTRIBUTING.md +++ /dev/null @@ -1,214 +0,0 @@ -# Chai Contribution Guidelines - -We like to encourage you to contribute to the Chai.js repository. This should be as easy as possible for you but there are a few things to consider when contributing. The following guidelines for contribution should be followed if you want to submit a pull request or open an issue. - -Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue or assessing patches and features. - -#### Table of Contents - -- [TLDR;](#tldr) -- [Contributing](#contributing) - - [Bug Reports](#bugs) - - [Feature Requests](#features) - - [Pull Requests](#pull-requests) -- [Releasing](#releasing) -- [Support](#support) - - [Resources](#resources) - - [Core Contributors](#contributors) - - -## TLDR; - -- Creating an Issue or Pull Request requires a [GitHub](http://github.com) account. -- Issue reports should be **clear**, **concise** and **reproducible**. Check to see if your issue has already been resolved in the [master]() branch or already reported in Chai's [GitHub Issue Tracker](https://github.com/chaijs/chai/issues). -- Pull Requests must adhere to strict [coding style guidelines](https://github.com/chaijs/chai/wiki/Chai-Coding-Style-Guide). -- In general, avoid submitting PRs for new Assertions without asking core contributors first. More than likely it would be better implemented as a plugin. -- Additional support is available via the [Google Group](http://groups.google.com/group/chaijs) or on irc.freenode.net#chaijs. -- **IMPORTANT**: By submitting a patch, you agree to allow the project owner to license your work under the same license as that used by the project. - - - - -## Contributing - -The issue tracker is the preferred channel for [bug reports](#bugs), -[feature requests](#features) and [submitting pull -requests](#pull-requests), but please respect the following restrictions: - -* Please **do not** use the issue tracker for personal support requests (use - [Google Group](https://groups.google.com/forum/#!forum/chaijs) or IRC). -* Please **do not** derail or troll issues. Keep the discussion on topic and - respect the opinions of others - - -### Bug Reports - -A bug is a **demonstrable problem** that is caused by the code in the repository. - -Guidelines for bug reports: - -1. **Use the GitHub issue search** — check if the issue has already been reported. -2. **Check if the issue has been fixed** — try to reproduce it using the latest `master` or development branch in the repository. -3. **Isolate the problem** — create a test case to demonstrate your issue. Provide either a repo, gist, or code sample to demonstrate you problem. - -A good bug report shouldn't leave others needing to chase you up for more information. Please try to be as detailed as possible in your report. What is your environment? What steps will reproduce the issue? What browser(s) and/or Node.js versions experience the problem? What would you expect to be the outcome? All these details will help people to fix any potential bugs. - -Example: - -> Short and descriptive example bug report title -> -> A summary of the issue and the browser/OS environment in which it occurs. If suitable, include the steps required to reproduce the bug. -> -> 1. This is the first step -> 2. This is the second step -> 3. Further steps, etc. -> -> `` - a link to the reduced test case OR -> ```js -> expect(a).to.equal('a'); -> // code sample -> ``` -> -> Any other information you want to share that is relevant to the issue being reported. This might include the lines of code that you have identified as causing the bug, and potential solutions (and your opinions on their merits). - - -### Feature Requests - -Feature requests are welcome. But take a moment to find out whether your idea fits with the scope and aims of the project. It's up to *you* to make a strong case to convince the project's developers of the merits of this feature. Please provide as much detail and context as possible. - -Furthermore, since Chai.js has a [robust plugin API](http://chaijs.com/guide/plugins/), we encourage you to publish **new Assertions** as plugins. If your feature is an enhancement to an **existing Assertion**, please propose your changes as an issue prior to opening a pull request. If the core Chai.js contributors feel your plugin would be better suited as a core assertion, they will invite you to open a PR in [chaijs/chai](https://github.com/chaijs/chai). - - -### Pull Requests - -- PRs for new core-assertions are advised against. -- PRs for core-assertion bug fixes are always welcome. -- PRs for enhancing the interfaces are always welcome. -- PRs that increase test coverage are always welcome. -- PRs are scrutinized for coding-style. - -Good pull requests - patches, improvements, new features - are a fantastic help. They should remain focused in scope and avoid containing unrelated commits. - -**Please ask first** before embarking on any significant pull request (e.g. implementing features, refactoring code), otherwise you risk spending a lot of time working on something that the project's developers might not want to merge into the project. - -Please adhere to the coding conventions used throughout a project (indentation, accurate comments, etc.) and any other requirements (such as test coverage). Please review the [Chai.js Coding Style Guide](https://github.com/chaijs/chai/wiki/Chai-Coding-Style-Guide). - -Follow this process if you'd like your work considered for inclusion in the project: - -1. [Fork](http://help.github.com/fork-a-repo/) the project, clone your fork, and configure the remotes: - -```bash -# Clone your fork of the repo into the current directory -git clone https://github.com// -# Navigate to the newly cloned directory -cd -# Assign the original repo to a remote called "upstream" -git remote add upstream https://github.com// -``` - -2. If you cloned a while ago, get the latest changes from upstream: - -```bash -git checkout -git pull upstream -``` - -3. Create a new topic branch (off the main project development branch) to contain your feature, change, or fix: - -```bash -git checkout -b -``` - -4. Commit your changes in logical chunks. Use Git's [interactive rebase](https://help.github.com/articles/interactive-rebase) feature to tidy up your commits before making them public. - -5. Run you code to make sure it works. If you're still having problems please try to run `make clean` and then test your code again. - -```bash -npm test -# when finished running tests... -git checkout chai.js -``` - -6. Locally merge (or rebase) the upstream development branch into your topic branch: - -```bash -git pull [--rebase] upstream -``` - -7. Push your topic branch up to your fork: - -```bash -git push origin -``` - -8. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/) with a clear title and description. - -**IMPORTANT**: By submitting a patch, you agree to allow the project owner to license your work under the same license as that used by the project. - - -## Releasing - -Releases can be **prepared** by anyone with access to the code. - -Simply run `make release-major`, `make release-minor`, or `make-release-patch` -and it will automatically do the following: - - - Build chai.js - - Bump the version numbers accross the project - - Make a commit within git - -All you need to do is push the commit up and make a pull request, one of the core contributors will merge it and publish a release. - -### Publishing a Release - -Anyone who is a core contributor (see the [Core Contributors Heading in the Readme](https://github.com/chaijs/chai#core-contributors)) can publish a release: - -1. Go to te [Releases page on Github](https://github.com/chaijs/chai/releases) -2. Hit "Draft a new release" (if you can't see this, you're not a core contributor!) -3. Write human-friendly Release Notes based on changelog. - - The release title is "x.x.x / YYYY-MM-DD" (where x.x.x is the version number) - - If breaking changes, write migration tutorial(s) and reasoning. - - Callouts for community contributions (PRs) with links to PR and contributing user. - - Callouts for other fixes made by core contributors with links to issue. -4. Hit "Save Draft" and get other core contributors to check your work, or alternatively hit "Publish release" -5. That's it! - - -## Support - - -### Resources - -For most of the documentation you are going to want to visit [ChaiJS.com](http://chaijs.com). - -- [Getting Started Guide](http://chaijs.com/guide/) -- [API Reference](http://chaijs.com/api/) -- [Plugins](http://chaijs.com/plugins/) - -Alternatively, the [wiki](https://github.com/chaijs/chai/wiki) might be what you are looking for. - -- [Chai Coding Style Guide](https://github.com/chaijs/chai/wiki/Chai-Coding-Style-Guide) -- [Third-party Resources](https://github.com/chaijs/chai/wiki/Third-Party-Resources) - -Or finally, you may find a core-contributor or like-minded developer in any of our support channels. - -- IRC: irc.freenode.org #chaijs -- [Mailing List / Google Group](https://groups.google.com/forum/#!forum/chaijs) - - -### Core Contributors - -Feel free to reach out to any of the core-contributors with you questions or concerns. We will do our best to respond in a timely manner. - -- Jake Luer - - GH: [@logicalparadox](https://github.com/logicalparadox) - - TW: [@jakeluer](http://twitter.com/jakeluer) - - IRC: logicalparadox -- Veselin Todorov - - GH: [@vesln](https://github.com/vesln/) - - TW: [@vesln](http://twitter.com/vesln) - - IRC: vesln -- Keith Cirkel - - GH: [@keithamus](https://github.com/keithamus) - - TW: [@keithamus](http://twitter.com/keithamus) - - IRC: keithamus diff --git a/node_modules/@polymer/polymer/bower_components/chai/History.md b/node_modules/@polymer/polymer/bower_components/chai/History.md deleted file mode 100644 index ae4d323e..00000000 --- a/node_modules/@polymer/polymer/bower_components/chai/History.md +++ /dev/null @@ -1,1059 +0,0 @@ -### Note - -As of 3.0.0, the History.md file has been deprecated. [Please refer to the full -commit logs available on GitHub](https://github.com/chaijs/chai/commits/master). - ---- - -2.3.0 / 2015-04-26 -================== - - * Merge pull request #423 from ehntoo/patch-1 - * Merge pull request #422 from ljharb/fix_descriptor_tests - * Fix a small bug in the .null assertion docs - * Use a regex to account for property ordering issues across engines. - * Add `make test-firefox` - * Merge pull request #417 from astorije/astorije/minimalist-typo - * Remove trailing whitespaces - * Fix super minor typo in an example - * Merge pull request #408 from ljharb/enumerableProperty - * Add `ownPropertyDescriptor` assertion. - -2.2.0 / 2015-03-26 -================== - - * Merge pull request #405 from chaijs/deep-escape-doc-tweaks - * Tweak documentation on `.deep` flag. - * Merge pull request #402 from umireon/escaping-dot-should-be-taken - * Documentation of escaping in `.deep` flag. - * take regular expression apart - * Feature: backslash-escaping in `.deep.property` - * Escaping dot should be taken in deep property - -2.1.2 / 2015-03-15 -================== - - * Merge pull request #396 from chaijs/add-keith-cirkel-contributing-md - * Add Keith Cirkel to CONTRIBUTING.md - * Merge pull request #395 from cjqed/386-assert-operator-no-eval - * No longer using eval on assert operator #386 - * Merge pull request #389 from chaijs/update-git-summary - * Update `git summary` in README - -2.1.1 / 2015-03-04 -================== - - * Merge pull request #385 from eldritch-fossicker/master - * updates to reflect code style preference from @keithamus - * fix indexing into array with deep propery - * Merge pull request #382 from astorije/patch-2 - * Merge pull request #383 from gurdiga/config-doc-wording-improvement - * config.truncateThreshold docs: simpler wording - * Add missing docstring for showDiff argument of assert - * Merge pull request #381 from astorije/patch-1 - * Add a minor precision that empty asserts on strings too. - * Merge pull request #379 from dcneiner/should-primitive-fix - * Primitives now use valueOf in shouldGetter - -2.1.0 / 2015-02-23 -================== - - * Merge pull request #374 from jmm/v2.0.1 - * Increment version to 2.0.1. - * Merge pull request #365 from chaijs/fix-travis - * Fix travis.yml deploy - * Merge pull request #356 from Soviut/master - * documented fail methods for expect and should interfaces - * fail method added directly to expect - -2.0.0 / 2015-02-09 -================== - - * Merge pull request #361 from gregglind/b265-keys-object - * fix #359. Add `.keys(object)` - * Merge pull request #359 from gregglind/b359-unexpected-keys-sort - * Fix #359 keys() sorts input unexpectedly - * contrib: publish release strategy and travis npm creds #337 - * Merge pull request #357 from danilovaz/master - * Update copyright date - * Merge pull request #349 from toastynerd/add-which-chain-method - * add the which chain method as per issue #347 - * Merge pull request #333 from cmpolis/change-assertions - * more `by` cleanup - * cleaned out `.by` for #333 - * Merge pull request #335 from DingoEatingFuzz/expose-util - * Expose chai util through the chai object - * cleanup (per notes on pr #333) - * updated `change` to work w/ non-number values + tests - * Merge pull request #334 from hurrymaplelad/patch-1 - * Typo, the flag is called 'contains' with an 's' - * updated assertion interface with `change` (#330) - * added `change`,`increase`,`decrease` assertions (#330) - * assert tests for `change`,`increase`,`decrease` - * expect/should tests for `change`,`increase`,`decrease` - * Merge pull request #328 from lo1tuma/issue-327 - * Add includes and contains alias (fixes #327) - * Merge pull request #325 from chasenlehara/overwriteChainableMethodDocs - * Fix docs for overwriteChainableMethod parameters - * Merge pull request #317 from jasonkarns/patch-2 - * Merge pull request #318 from jasonkarns/patch-3 - * Merge pull request #316 from jasonkarns/patch-1 - * typos in docs - * minor docs typo - * update docs: getAllFlags -> transferFlags - * Merge pull request #313 from cjqed/254-expect-any-all - * Added the all and any flags for keys assertion, with all being the default behavior - * Merge pull request #312 from cjqed/291-assert-same-deep-members - * Changed public comment of sameDeepMemebers to be more clear - * Fixes issue #291, adds assert.sameDeepMembers - * Merge pull request #311 from cjqed/305-above-below-on-assert - * Merge pull request #308 from prodatakey/hasproperty - * Issue #305 fixed, added assert.isAbove and assert.isBelow - * Fix typo - * More unit tests for new utility functions - * Refactor common functionality, document, test - * Refactor if statement out - * Small unit test fix - * Handle array indexing terminating paths - * Merge pull request #309 from ericdouglas/iterableEqual-couting-once - * couting variables just once - * Fix properties with `undefined` value pass property assertion - * Merge pull request #306 from chaijs/revert-297-noopchainfunc - * Revert "Allows writing lint-friendly tests" - -1.10.0 / 2014-11-10 -================== - - * Merge pull request #297 from prodatakey/noopchainfunc - * Merge pull request #300 from julienw/299-fix-getMessage-test - * Fix #299: the test is defining global variables - * Add a couple more unit tests - * Add unit tests for chained terminating property asserts - * Revise documentation wording - * Add docs for function style NOOP asserts - * Make the NOOP function a shared constant - * Merge pull request #298 from dasilvacontin/negativeZeroLogging - * why not more assertions - * added test for inspecting `-0` - * a more readable/simple condition statement, as pointed out by @keithamus - * added check for logging negative zero - * Change test to not trigger argument bug - * Allows writing lint-friendly tests - * readme: update contributors for 1.9.2 - -1.9.2 / 2014-09-29 -================== - - * Merge pull request #268 from charlierudolph/cr-lazyMessages - * Merge pull request #269 from charlierudolph/cr-codeCleanup - * Merge pull request #277 from charlierudolph/fix-doc - * Merge pull request #279 from mohayonao/fix-closeTo - * Merge pull request #292 from boneskull/mocha - * resolves #255: upgrade mocha - * Merge pull request #289 from charlierudolph/cr-dryUpCode - * Dry up code - * Merge pull request #275 from DrRataplan/master - * assert: .closeTo() verify value's type before assertion - * Rewrite pretty-printing HTML elements to prevent throwing internal errors Fixes errors occuring when using a non-native DOM implementation - * Fix assert documentation - * Remove unused argument - * Allow messages to be functions - * Merge pull request #267 from shinnn/master - * Use SVG badge - * Merge pull request #264 from cjthompson/keys_diff - * Show diff for keys assertion - -1.9.1 / 2014-03-19 -================== - - * deps update - * util: [getActual] select actual logic now allows undefined for actual. Closes #183 - * docs: [config] make public, express param type - * Merge pull request #251 from romario333/threshold3 - * Fix issue #166 - configurable threshold in objDisplay. - * Move configuration options to config.js. - * Merge pull request #233 from Empeeric/master - * Merge pull request #244 from leider/fix_for_contains - * Merge pull request #247 from didoarellano/typo-fixes - * Fix typos - * Merge pull request #245 from lfac-pt/patch-1 - * Update `exports.version` to 1.9.0 - * aborting loop on finding - * declaring variable only once - * additional test finds incomplete implementation - * simplified code - * fixing #239 (without changing chai.js) - * ssfi as it should be - * Merge pull request #228 from duncanbeevers/deep_members - * Deep equality check for collection membership - -1.9.0 / 2014-01-29 -================== - - * docs: add contributing.md #238 - * assert: .throws() returns thrown error. Closes #185 - * Merge pull request #232 from laconbass/assert-throws - * assert: .fail() parameter mismatch. Closes #206 - * Merge branch 'karma-fixes' - * Add karma phantomjs launcher - * Use latest karma and sauce launcher - * Karma tweaks - * Merge pull request #230 from jkroso/include - * Merge pull request #237 from chaijs/coverage - * Add coverage to npmignore - * Remove lib-cov from test-travisci dependents - * Remove the not longer needed lcov reporter - * Test coverage with istanbul - * Remove jscoverage - * Remove coveralls - * Merge pull request #226 from duncanbeevers/add_has - * Avoid error instantiation if possible on assert.throws - * Merge pull request #231 from duncanbeevers/update_copyright_year - * Update Copyright notices to 2014 - * handle negation correctly - * add failing test case - * support `{a:1,b:2}.should.include({a:1})` - * Merge pull request #224 from vbardales/master - * Add `has` to language chains - * Merge pull request #219 from demands/overwrite_chainable - * return error on throw method to chain on error properties, possibly different from message - * util: store chainable behavior in a __methods object on ctx - * util: code style fix - * util: add overwriteChainableMethod utility (for #215) - * Merge pull request #217 from demands/test_cleanup - * test: make it possible to run utilities tests with --watch - * makefile: change location of karma-runner bin script - * Merge pull request #202 from andreineculau/patch-2 - * test: add tests for throwing custom errors - * Merge pull request #201 from andreineculau/patch-1 - * test: updated for the new assertion errors - * core: improve message for assertion errors (throw assertion) - -1.8.1 / 2013-10-10 -================== - - * pkg: update deep-eql version - -1.8.0 / 2013-09-18 -================== - - * test: [sauce] add a few more browsers - * Merge branch 'refactor/deep-equal' - * util: remove embedded deep equal utility - * util: replace embedded deep equal with external module - * Merge branch 'feature/karma' - * docs: add sauce badge to readme [ci skip] - * test: [sauce] use karma@canary to prevent timeouts - * travis: only run on node 0.10 - * test: [karma] use karma phantomjs runner - * Merge pull request #181 from tricknotes/fix-highlight - * Fix highlight for example code - -1.7.2 / 2013-06-27 -================== - - * coverage: add coveralls badge - * test: [coveralls] add coveralls api integration. testing travis-ci integration - * Merge branch 'master' of github.com:chaijs/chai - * Merge branch 'feature/bower' - * Merge pull request #180 from tricknotes/modify-method-title - * Merge pull request #179 from tricknotes/highlight-code-example - * Modify method title to include argument name - * Fix to highlight code example - * bower: granular ignores - -1.7.1 / 2013-06-24 -================== - - * Merge branch 'feature/bower'. #175 - * bower: add json file - * build: browser - -1.7.0 / 2013-06-17 -================== - - * error: remove internal assertion error constructor - * core: [assertion-error] replace internal assertion error with dep - * deps: add chaijs/assertion-error@1.0.0 - * docs: fix typo in source file. #174 - * Merge pull request #174 from piecioshka/master - * typo - * Merge branch 'master' of github.com:chaijs/chai - * pkg: lock mocha/mocha-phantomjs versions (for now) - * Merge pull request #173 from chaijs/inspect-fix - * Fix `utils.inspect` with custom object-returning inspect()s. - * Merge pull request #171 from Bartvds/master - * replaced tabs with 2 spaces - * added assert.notOk() - * Merge pull request #169 from katsgeorgeek/topics/master - * Fix comparison objects. - -1.6.1 / 2013-06-05 -================== - - * Merge pull request #168 from katsgeorgeek/topics/master - * Add test for different RegExp flags. - * Add test for regexp comparison. - * Downgrade mocha version for fix running Phantom tests. - * Fix comparison equality of two regexps. - * Merge pull request #161 from brandonpayton/master - * Fix documented name for assert interfaces isDefined method - -1.6.0 / 2013-04-29 -================== - - * build: browser - * assert: [(not)include] throw on incompatible haystack. Closes #142 - * assert: [notInclude] add assert.notInclude. Closes #158 - * browser build - * makefile: force browser build on browser-test - * makefile: use component for browser build - * core: [assertions] remove extraneous comments - * Merge branch 'master' of github.com:chaijs/chai - * test: [assert] deep equal ordering - * Merge pull request #153 from NickHeiner/array-assertions - * giving members a no-flag assertion - * Code review comments - changing syntax - * Code review comments - * Adding members and memberEquals assertions for checking for subsets and set equality. Implements chaijs/chai#148. - * Merge pull request #140 from RubenVerborgh/function-prototype - * Restore the `call` and `apply` methods of Function when adding a chainable method. - * readme: 2013 - * notes: migration notes for deep equal changes - * test: for ever err() there must be a passing version - -1.5.0 / 2013-02-03 -================== - - * docs: add Release Notes for non-gitlog summary of changes. - * lib: update copyright to 2013 - * Merge branch 'refactor/travis' - * makefile: remove test-component for full test run - * pkg: script test now runs make test so travis will test browser - * browser: build - * tests: refactor some tests to support new objDisplay output - * test: [bootstrap] normalize boostrap across all test scenarios - * assertions: refactor some assertions to use objDisplay instead of inspect - * util: [objDisplay] normalize output of functions - * makefile: refactor for full build scenarios - * component: fix build bug where missing util:type file - * assertions: [throw] code cleanup - * Merge branch 'refactor/typeDetection' - * browser: build - * makefile: chai.js is .PHONY so it builds every time - * test: [expect] add arguments type detection test - * core/assertions: [type] (a/an) refactor to use type detection utility - * util: add cross-browser type detection utility - * Merge branch 'feature/component' - * browser: build - * component: add component.json file - * makefile: refactor for fine grain control of testing scenarios - * test: add mochaPhantomJS support and component test file - * deps: add component and mocha-phantomjs for browser testing - * ignore: update ignore files for component support - * travis: run for all branches - * Merge branch 'feature/showDiff' - * test: [Assertion] configruable showDiff flag. Closes #132 - * lib: [Assertion] add configurable showDiff flag. #132 - * Merge branch 'feature/saucelabs' - * Merge branch 'master' into feature/saucelabs - * browser: build - * support: add mocha cloud runner, client, and html test page - * test: [saucelabs] add auth placeholder - * deps: add mocha-cloud - * Merge pull request #136 from whatthejeff/message_fix - * Merge pull request #138 from timnew/master - * Fix issue #137, test message existence by using message!=null rather than using message - * Fixed backwards negation messages. - * Merge pull request #133 from RubenVerborgh/throw - * Functions throwing strings can reliably be tested. - * Merge pull request #131 from RubenVerborgh/proto - * Cache whether __proto__ is supported. - * Use __proto__ if available. - * Determine the property names to exclude beforehand. - * Merge pull request #126 from RubenVerborgh/eqls - * Add alias eqls for eql. - * Use inherited enumerable properties in deep equality comparison. - * Show inherited properties when inspecting an object. - * Add new getProperties and getEnumerableProperties utils. - * showDiff: force true for equal and eql - -1.4.2 / 2012-12-21 -================== - - * browser build: (object diff support when used with mocha) #106 - * test: [display] array test for mocha object diff - * browser: no longer need different AssertionError constructor - -1.4.1 / 2012-12-21 -================== - - * showDiff: force diff for equal and eql. #106 - * test: [expect] type null. #122 - * Merge pull request #115 from eshao/fix-assert-Throw - * FIX: assert.Throw checks error type/message - * TST: assert.Throw should check error type/message - -1.4.0 / 2012-11-29 -================== - - * pre-release browser build - * clean up index.js to not check for cov, revert package.json to use index.js - * convert tests to use new bootstrap - * refactor testing bootstrap - * use spaces (not tabs). Clean up #114 - * Merge pull request #114 from trantorLiu/master - * Add most() (alias: lte) and least() (alias: gte) to the API with new chainers "at" and "of". - * Change `main` to ./lib/chai. Fixes #28. - * Merge pull request #104 from connec/deep_equals_circular_references_ - * Merge pull request #109 from nnarhinen/patch-1 - * Check for 'actual' type - * Added support for circular references when checking deep (in)equality. - -1.3.0 / 2012-10-01 -================== - - * browser build w/ folio >= 0.3.4. Closes #99 - * add back buffer test for deep equal - * do not write flags to assertion.prototype - * remove buffer test from expect - * browser build - * improve documentation of custom error messages - * Merge branch 'master' of git://github.com/Liffft/chai into Liffft-master - * browser build - * improved buffer deep equal checking - * mocha is npm test command - * Cleaning up the js style… - * expect tests now include message pass-through - * packaging up browser-side changes… - * Increasing Throws error message verbosity - * Should syntax: piping message through - * Make globalShould test work in browser too. - * Add a setter for `Object.prototype.should`. Closes #86. - -1.2.0 / 2012-08-07 -================== - - * Merge branch 'feature/errmsg' - * browser build - * comment updates for utilities - * tweak objDislay to only kick in if object inspection is too long - * Merge branch 'master' into feature/errmsg - * add display sample for error message refactor - * first draft of error message refactor. #93 - * add `closeTo` assertion to `assert` interface. Closes #89. - * update folio build for better require.js handling. Closes #85 - * Merge pull request #92 from paulmillr/topics/add-dom-checks - * Add check for DOM objects. - * browser build - * Merge branch 'master' of github.com:chaijs/chai - * bug - getActual not defaulting to assertion subject - * Merge pull request #88 from pwnall/master - * Don't inspect() assertion arguments if the assertion passes. - -1.1.1 / 2012-07-09 -================== - - * improve commonjs support on browser build - * Merge pull request #83 from tkazec/equals - * Document .equals - * Add .equals as an alias of .equal - * remove unused browser prefix/suffix - * Merge branch 'feature/folio-build' - * browser build - * using folio to compile - * clean up makefile - * early folio 0.3.x support - -1.1.0 / 2012-06-26 -================== - - * browser build - * Disable "Assertion.includeStack is false" test in IE. - * Use `utils.getName` for all function inspections. - * Merge pull request #80 from kilianc/closeTo - * fixes #79 - * browser build - * expand docs to indicate change of subject for chaining. Closes #78 - * add `that` chain noop - * Merge branch 'bug/74' - * comments on how to property use `length` as chain. Closes #74 - * tests for length as chainable property. #74 - * add support for `length` as chainable prop/method. - * Merge branch 'bug/77' - * tests for getPathValue when working with nested arrays. Closes #77 - * add getPathValue support for nested arrays - * browser build - * fix bug for missing browser utils - * compile tool aware of new folder layout - * Merge branch 'refactor/1dot1' - * move core assertions to own file and refactor all using utils - * rearrange folder structure - -1.0.4 / 2012-06-03 -================== - - * Merge pull request #68 from fizker/itself - * Added itself chain. - * simplify error inspections for cross browser compatibility - * fix safari `addChainableMethod` errors. Closes #69 - -1.0.3 / 2012-05-27 -================== - - * Point Travis badge to the right place. - * Make error message for eql/deep.equal more clear. - * Fix .not.deep.equal. - * contributors list - -1.0.2 / 2012-05-26 -================== - - * Merge pull request #67 from chaijs/chaining-and-flags - * Browser build. - * Use `addChainableMethod` to get away from `__proto__` manipulation. - * New `addChainableMethod` utility. - * Replace `getAllFlags` with `transferFlags` utility. - * browser build - * test - get all flags - * utility - get all flags - * Add .mailmap to .npmignore. - * Add a .mailmap file to fix my name in shortlogs. - -1.0.1 / 2012-05-18 -================== - - * browser build - * Fixing "an" vs. "a" grammar in type assertions. - * Uniformize `assert` interface inline docs. - * Don't use `instanceof` for `assert.isArray`. - * Add `deep` flag for equality and property value. - * Merge pull request #64 from chaijs/assertion-docs - * Uniformize assertion inline docs. - * Add npm-debug.log to .gitignore. - * no reserved words as actuals. #62 - -1.0.0 / 2012-05-15 -================== - - * readme cleanup - * browser build - * utility comments - * removed docs - * update to package.json - * docs build - * comments / docs updates - * plugins app cleanup - * Merge pull request #61 from joliss/doc - * Fix and improve documentation of assert.equal and friends - * browser build - * doc checkpoint - texture - * Update chai-jquery link - * Use defined return value of Assertion extension functions - * Update utility docs - -1.0.0-rc3 / 2012-05-09 -================== - - * Merge branch 'feature/rc3' - * docs update - * browser build - * assert test conformity for minor refactor api - * assert minor refactor - * update util tests for new add/overwrite prop/method format - * added chai.Assertion.add/overwrite prop/method for plugin toolbox - * add/overwrite prop/method don't make assumptions about context - * doc test suite - * docs don't need coverage - * refactor all simple chains into one forEach loop, for clean documentation - * updated npm ignore - * remove old docs - * docs checkpoint - guide styled - * Merge pull request #59 from joliss/doc - * Document how to run the test suite - * don't need to rebuild docs to view - * dep update - * docs checkpoint - api section - * comment updates for docs - * new doc site checkpoint - plugin directory! - * Merge pull request #57 from kossnocorp/patch-1 - * Fix typo: devDependancies → devDependencies - * Using message flag in `getMessage` util instead of old `msg` property. - * Adding self to package.json contributors. - * `getMessage` shouldn't choke on null/omitted messages. - * `return this` not necessary in example. - * `return this` not necessary in example. - * Sinon–Chai has a dash - * updated plugins list for docs - -1.0.0-rc2 / 2012-05-06 -================== - - * Merge branch 'feature/test-cov' - * browser build - * missing assert tests for ownProperty - * appropriate assert equivalent for expect.to.have.property(key, val) - * reset AssertionError to include full stack - * test for plugin utilities - * overwrite Property and Method now ensure chain - * version notes in readme - -1.0.0-rc1 / 2012-05-04 -================== - - * browser build (rc1) - * assert match/notMatch tests - * assert interface - notMatch, ownProperty, notOwnProperty, ownPropertyVal, ownPropertyNotVal - * cleaner should interface export. - * added chai.Assertion.prototype._obj (getter) for quick access to object flag - * moved almostEqual / almostDeepEqual to stats plugin - * added mocha.opts - * Add test for `utils.addMethod` - * Fix a typo - * Add test for `utils.overwriteMethod` - * Fix a typo - * Browser build - * Add undefined assertion - * Add null assertion - * Fix an issue with `mocha --watch` - * travis no longer tests on node 0.4.x - * removing unnecissary carbon dep - * Merge branch 'feature/plugins-app' - * docs build - * templates for docs express app for plugin directory - * express app for plugin and static serving - * added web server deps - * Merge pull request #54 from josher19/master - * Remove old test.assert code - * Use util.inspect instead of inspect for deepAlmostEqual and almostEqual - * browser build - * Added almostEqual and deepAlmostEqual to assert test suite. - * bug - context determinants for utils - * dec=0 means rounding, so assert.deepAlmostEqual({pi: 3.1416}, {pi: 3}, 0) is true - * wrong travis link - * readme updates for version information - * travis tests 0.5.x branch as well - * [bug] util `addProperty` not correctly exporting - * read me version notes - * browser build 1.0.0alpha1 - * not using reserved words in internal assertions. #52 - * version tick - * clean up redundant tests - * Merge branch 'refs/heads/0.6.x' - * update version tag in package 1.0.0alpha1 - * browser build - * added utility tests to browser specs - * beginning utility testing - * updated utility comments - * utility - overwriteMethod - * utility - overwriteProperty - * utility - addMethod - * utility - addProperty - * missing ; - * contributors list update - * Merge branch 'refs/heads/0.6.x-docs' into 0.6.x - * Added guide link to docs. WIP - * Include/contain are now both properties and methods - * Add an alias annotation - * Remove usless function wrapper - * Fix a typo - * A/an are now both properties and methods - * [docs] new site homepage layout / color checkpoint - * Ignore IE-specific error properties. - * Fixing order of error message test. - * New cross-browser `getName` util. - * Fixing up `AssertionError` inheritance. - * backup docs - * Add doctypes - * [bug] was still using `constructor.name` in `throw` assertion - * [bug] flag Object.create(null) instead of new Object - * [test] browser build - * [refactor] all usage of Assertion.prototype.assert now uses template tags and flags - * [refactor] remove Assertion.prototype.inspect for testable object inspection - * [refactor] object to test is now stored in flag, with ssfi and custom message - * [bug] flag util - don't return on `set` - * [docs] comments for getMessage utility - * [feature] getMessage - * [feature] testing utilities - * [refactor] flag doesn't require `call` - * Make order of source files well-defined - * Added support for throw(errorInstance). - * Use a foolproof method of grabbing an error's name. - * Removed constructor.name check from throw. - * disabled stackTrack configuration tests until api is stable again - * first version of line displayed error for node js (unstable) - * refactor core Assertion to use flag utility for negation - * added flag utility - * tests for assert interface negatives. Closed #42 - * added assertion negatives that were missing. #42 - * Support for expected and actual parameters in assert-style error object - * chai as promised - readme - * Added assert.fail. Closes #40 - * better error message for assert.operator. Closes #39 - * [refactor] Assertion#property to use getPathValue property - * added getPathValue utility helper - * removed todo about browser build - * version notes - * version bumb 0.6.0 - * browser build - * [refactor] browser compile function to replace with `require('./error')' with 'require('./browser/error')' - * [feature] browser uses different error.js - * [refactor] error without chai.fail - * Assertion & interfaces use new utils helper export - * [refactor] primary export for new plugin util usage - * added util index.js helper - * added 2012 to copyright headers - * Added DeepEqual assertions - -0.5.3 / 2012-04-21 -================== - - * Merge branch 'refs/heads/jgonera-oldbrowsers' - * browser build - * fixed reserved names for old browsers in interface/assert - * fixed reserved names for old browsers in interface/should - * fixed: chai.js no longer contains fail() - * fixed reserved names for old browsers in Assertion - * Merge pull request #49 from joliss/build-order - * Make order of source files well-defined - * Merge pull request #43 from zzen/patch-1 - * Support for expected and actual parameters in assert-style error object - * chai as promised - readme - -0.5.2 / 2012-03-21 -================== - - * browser build - * Merge branch 'feature/assert-fail' - * Added assert.fail. Closes #40 - * Merge branch 'bug/operator-msg' - * better error message for assert.operator. Closes #39 - * version notes - -0.5.1 / 2012-03-14 -================== - - * chai.fail no longer exists - * Merge branch 'feature/assertdefined' - * Added asset#isDefined. Closes #37. - * dev docs update for Assertion#assert - -0.5.0 / 2012-03-07 -================== - - * [bug] on inspect of reg on n 0.4.12 - * Merge branch 'bug/33-throws' - * Merge pull request #35 from logicalparadox/empty-object - * browser build - * updated #throw docs - * Assertion#throw `should` tests updated - * Assertion#throw `expect` tests - * Should interface supports multiple throw parameters - * Update Assertion#throw to support strings and type checks. - * Add more tests for `empty` in `should`. - * Add more tests for `empty` in `expect`. - * Merge branch 'master' into empty-object - * don't switch act/exp - * Merge pull request #34 from logicalparadox/assert-operator - * Update the compiled verison. - * Add `assert.operator`. - * Notes on messages. #22 - * browser build - * have been test - * below tests - * Merge branch 'feature/actexp' - * browser build - * remove unnecessary fail export - * full support for actual/expected where relevant - * Assertion.assert support expected value - * clean up error - * Update the compiled version. - * Add object & sane arguments support to `Assertion#empty`. - -0.4.2 / 2012-02-28 -================== - - * fix for `process` not available in browser when used via browserify. Closes #28 - * Merge pull request #31 from joliss/doc - * Document that "should" works in browsers other than IE - * Merge pull request #30 from logicalparadox/assert-tests - * Update the browser version of chai. - * Update `assert.doesNotThrow` test in order to check the use case when type is a string. - * Add test for `assert.ifError`. - * Falsey -> falsy. - * Full coverage for `assert.throws` and `assert.doesNotThrow`. - * Add test for `assert.doesNotThrow`. - * Add test for `assert.throws`. - * Add test for `assert.length`. - * Add test for `assert.include`. - * Add test for `assert.isBoolean`. - * Fix the implementation of `assert.isNumber`. - * Add test for `assert.isNumber`. - * Add test for `assert.isString`. - * Add test for `assert.isArray`. - * Add test for `assert.isUndefined`. - * Add test for `assert.isNotNull`. - * Fix `assert.isNotNull` implementation. - * Fix `assert.isNull` implementation. - * Add test for `assert.isNull`. - * Add test for `assert.notDeepEqual`. - * Add test for `assert.deepEqual`. - * Add test for `assert.notStrictEqual`. - * Add test for `assert.strictEqual`. - * Add test for `assert.notEqual`. - -0.4.1 / 2012-02-26 -================== - - * Merge pull request #27 from logicalparadox/type-fix - * Update the browser version. - * Add should tests for type checks. - * Add function type check test. - * Add more type checks tests. - * Add test for `new Number` type check. - * Fix type of actual checks. - -0.4.0 / 2012-02-25 -================== - - * docs and readme for upcoming 0.4.0 - * docs generated - * putting coverage and tests for docs in docs/out/support - * make docs - * makefile copy necessary resources for tests in docs - * rename configuration test - * Merge pull request #21 from logicalparadox/close-to - * Update the browser version. - * Update `closeTo()` docs. - * Add `Assertion.closeTo()` method. - * Add `.closeTo()` should test. - * Add `.closeTo()` expect test. - * Merge pull request #20 from logicalparadox/satisfy - * Update the browser version. - * `..` -> `()` in `.satisfy()` should test. - * Update example for `.satisfy()`. - * Update the compiled browser version. - * Add `Assertion.satisfy()` method. - * Add `.satisfy()` should test. - * Add `.satisfy()` expect test. - * Merge pull request #19 from logicalparadox/respond-to - * Update the compiled browser version. - * Add `respondTo` Assertion. - * Add `respondTo` should test. - * Add `respondTo` expect test. - * Merge branch 'feature/coverage' - * mocha coverage support - * doc contributors - * README contributors - -0.3.4 / 2012-02-23 -================== - - * inline comment typos for #15 - * Merge branch 'refs/heads/jeffbski-configErrorStackCompat' - * includeStack documentation for all interfaces - * suite name more generic - * Update test to be compatible with browsers that do not support err.stack - * udpated compiled chai.js and added to browser tests - * Allow inclusion of stack trace for Assert error messages to be configurable - * docs sharing buttons - * sinon-chai link - * doc updates - * read me updates include plugins - -0.3.3 / 2012-02-12 -================== - - * Merge pull request #14 from jfirebaugh/configurable_properties - * Make Assertion.prototype properties configurable - -0.3.2 / 2012-02-10 -================== - - * codex version - * docs - * docs cleanup - -0.3.1 / 2012-02-07 -================== - - * node 0.4.x compat - -0.3.0 / 2012-02-07 -================== - - * Merge branch 'feature/03x' - * browser build - * remove html/json/headers testign - * regex error.message testing - * tests for using plugins - * Merge pull request #11 from domenic/master - * Make `chai.use` a no-op if the function has already been used. - -0.2.4 / 2012-02-02 -================== - - * added in past tense switch for `been` - -0.2.3 / 2012-02-01 -================== - - * try that again - -0.2.2 / 2012-02-01 -================== - - * added `been` (past of `be`) alias - -0.2.1 / 2012-01-29 -================== - - * added Throw, with a capital T, as an alias to `throw` (#7) - -0.2.0 / 2012-01-26 -================== - - * update gitignore for vim *.swp - * Merge branch 'feature/plugins' - * browser build - * interfaces now work with use - * simple .use function. See #9. - * readme notice on browser compat - -0.1.7 / 2012-01-25 -================== - - * added assert tests to browser test runner - * browser update - * `should` interface patch for primitives support in FF - * fix isObject() Thanks @milewise - * travis only on branch `master` - * add instanceof alias `instanceOf`. #6 - * some tests for assert module - -0.1.6 / 2012-01-02 -================== - - * commenting for assert interface - * updated codex dep - -0.1.5 / 2012-01-02 -================== - - * browser tests pass - * type in should.not.equal - * test for should (not) exist - * added should.exist and should.not.exist - * browser uses tdd - * convert tests to tdd - -0.1.4 / 2011-12-26 -================== - - * browser lib update for new assert interface compatiblitiy - * inspect typos - * added strict equal + negatives and ifError - * interface assert had doesNotThrow - * added should tests to browser - * new expect empty tests - * should test browser compat - * Fix typo for instanceof docs. Closes #3 [ci skip] - -0.1.3 / 2011-12-18 -================== - - * much cleaner reporting string on error. - -0.1.2 / 2011-12-18 -================== - - * [docs] for upcoming 0.1.2 - * browser version built with pre/suffix … all tests passing - * make / compile now use prefix/suffix correctly - * code clean - * prefix/suffix to wrap browser output to prevent conflicts with other `require` methods. - * Merge branch 'feature/should4xcompatibility' - * compile for browser tests.. all pass - * added header/status/html/json - * throw tests - * should.throw & should.not.throw shortcuts - * improved `throw` type detection and messaging - * contain is now `include` … keys modifier is now `contain` - * removed object() test - * removed #respondTo - * Merge branch 'bug/2' - * replaced __defineGetter__ with defineProperty for all uses - * [docs] change mp tracking code - * docs site updated with assert (TDD) interface - * updated doc comments for assert interface - -0.1.1 / 2011-12-16 -================== - - * docs ready for upcoming 0.1.1 - * readme image fixed [ci skip] - * more readme tweaks [ci skip] - * réadmet image fixed [ci skip] - * documentation - * codex locked in version 0.0.5 - * more comments to assertions for docs - * assertions fully commented, browser library updated - * adding codex as doc dependancy - * prepping for docs - * assertion component completely commented for documentation - * added exist test - * var expect outside of browser if check - * added keywords to package.json - -0.1.0 / 2011-12-15 -================== - - * failing on purpose successful .. back to normal - * testing travis failure - * assert#arguments getter - * readme typo - * updated README - * added travis and npmignore - * copyright notices … think i got them all - * moved expect interface to own file for consistency - * assert ui deepEqual - * browser tests expect (all working) - * browser version built - * chai.fail (should ui) - * expect tests browser compatible - * tests for should and expect (all pass) - * moved fail to primary export - * should compatibility testing - * within, greaterThan, object, keys, - * Aliases - * Assertion#property now correctly works with negate and undefined values - * error message language matches should - * Assertion#respondTo - * Assertion now uses inspect util - * git ignore node modules - * should is exported - * AssertionError __proto__ from Error.prototype - * add should interface for should.js compatibility - * moved eql to until folder and added inspect from (joyent/node) - * added mocha for testing - * browser build for current api - * multiple .property assertions - * added deep equal from node - -0.0.2 / 2011-12-07 -================== - - * cleaner output on error - * improved exists detection - * package remnant artifact - * empty deep equal - * test browser build - * assertion cleanup - * client compile script - * makefile - * most of the basic assertions - * allow no parameters to assertion error - * name change - * assertion error instance - * main exports: assert() & expect() - * initialize diff --git a/node_modules/@polymer/polymer/bower_components/chai/README.md b/node_modules/@polymer/polymer/bower_components/chai/README.md deleted file mode 100644 index c61bfa8b..00000000 --- a/node_modules/@polymer/polymer/bower_components/chai/README.md +++ /dev/null @@ -1,83 +0,0 @@ -[![Chai Documentation](http://chaijs.com/public/img/chai-logo.png)](http://chaijs.com) - -[![license:mit](https://img.shields.io/badge/license-mit-green.svg?style=flat-square)](#license)
-[![tag:?](https://img.shields.io/github/tag/chaijs/chai.svg?style=flat-square)](https://github.com/chaijs/chai/releases) -[![build:?](https://img.shields.io/travis/chaijs/chai/master.svg?style=flat-square)](https://travis-ci.org/chaijs/chai) -[![coverage:?](https://img.shields.io/coveralls/chaijs/chai/master.svg?style=flat-square)](https://coveralls.io/r/chaijs/chai)
-[![npm:](https://img.shields.io/npm/v/chai.svg?style=flat-square)](https://www.npmjs.com/packages/chai) -[![dependencies:?](https://img.shields.io/npm/dm/chai.svg?style=flat-square)](https://www.npmjs.com/packages/chai) -[![devDependencies:?](https://img.shields.io/david/chaijs/chai.svg?style=flat-square)](https://david-dm.org/chaijs/chai) - -[![Selenium Test Status](https://saucelabs.com/browser-matrix/chaijs.svg)](https://saucelabs.com/u/chaijs) - -[![Slack Status](https://chai-slack.herokuapp.com/badge.svg)]( https://chai-slack.herokuapp.com/) -[![Join the chat at https://gitter.im/chaijs/chai](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/chaijs/chai) - -Chai is a BDD / TDD assertion library for [node](http://nodejs.org) and the browser that -can be delightfully paired with any javascript testing framework. - -For more information or to download plugins, view the [documentation](http://chaijs.com). - -### Plugins - -Chai offers a robust Plugin architecture for extending Chai's assertions and interfaces. - -- Need a plugin? View the [official plugin list](http://chaijs.com/plugins). -- Have a plugin and want it listed? Open a Pull Request at [chaijs/chai-docs:plugin.js](https://github.com/chaijs/chai-docs/blob/master/plugins.js#L1-L12). -- Want to build a plugin? Read the [plugin api documentation](http://chaijs.com/guide/plugins/). - -### Related Projects - -- [chaijs / assertion-error](https://github.com/chaijs/assertion-error): Custom `Error` constructor thrown upon an assertion failing. -- [chaijs / deep-eql](https://github.com/chaijs/deep-eql): Improved deep equality testing for Node.js and the browser. -- [chaijs / type-detect](https://github.com/chaijs/type-detect): Improved typeof detection for node.js and the browser. - -### Contributing - -Thank you very much for considering to contribute! - -Here are a few issues other contributors frequently ran into when opening pull requests: - -- Please do not commit changes to the `chai.js` build. We do it once per release. -- Before pushing your commits, please make sure you [rebase](https://github.com/chaijs/chai/blob/master/CONTRIBUTING.md#pull-requests) them. - -We also strongly encourage you to read our detailed [contribution guidelines](https://github.com/chaijs/chai/blob/master/CONTRIBUTING.md). - -### Contributors - -Please see the full -[Contributors Graph](https://github.com/chaijs/chai/graphs/contributors) for our -list of contributors. - -### Core Contributors - -Feel free to reach out to any of the core contributors with your questions or -concerns. We will do our best to respond in a timely manner. - -[![Jake Luer](https://avatars3.githubusercontent.com/u/58988?v=3&s=50)](https://github.com/logicalparadox) -[![Veselin Todorov](https://avatars3.githubusercontent.com/u/330048?v=3&s=50)](https://github.com/vesln) -[![Keith Cirkel](https://avatars3.githubusercontent.com/u/118266?v=3&s=50)](https://github.com/keithamus) - -## License - -(The MIT License) - -Copyright (c) 2011-2015 Jake Luer - -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/@polymer/polymer/bower_components/chai/ReleaseNotes.md b/node_modules/@polymer/polymer/bower_components/chai/ReleaseNotes.md deleted file mode 100644 index 2a80d5ce..00000000 --- a/node_modules/@polymer/polymer/bower_components/chai/ReleaseNotes.md +++ /dev/null @@ -1,737 +0,0 @@ -# Release Notes - -## Note - -As of 3.0.0, the ReleaseNotes.md file has been deprecated. [Please refer to the release notes available on Github](https://github.com/chaijs/chai/releases). Or -[the release notes on the chaijs.com website](https://chaijs.com/releases). - ---- - -## 2.3.0 / 2015-04-26 - -Added `ownPropertyDescriptor` assertion: - -```js -expect('test').to.have.ownPropertyDescriptor('length'); -expect('test').to.have.ownPropertyDescriptor('length', { enumerable: false, configurable: false, writable: false, value: 4 }); -expect('test').not.to.have.ownPropertyDescriptor('length', { enumerable: false, configurable: false, writable: false, value: 3 }); -expect('test').ownPropertyDescriptor('length').to.have.property('enumerable', false); -expect('test').ownPropertyDescriptor('length').to.have.keys('value'); -``` - -### Community Contributions - -#### Code Features & Fixes - - * [#408](https://github.com/chaijs/chai/pull/408) Add `ownPropertyDescriptor` - assertion. - By [@ljharb](https://github.com/ljharb) - * [#422](https://github.com/chaijs/chai/pull/422) Improve ownPropertyDescriptor - tests. - By [@ljharb](https://github.com/ljharb) - -#### Documentation fixes - - * [#417](https://github.com/chaijs/chai/pull/417) Fix documentation typo - By [@astorije](https://github.com/astorije) - * [#423](https://github.com/chaijs/chai/pull/423) Fix inconsistency in docs. - By [@ehntoo](https://github.com/ehntoo) - - -## 2.2.0 / 2015-03-26 - -Deep property strings can now be escaped using `\\` - for example: - -```js -var deepCss = { '.link': { '[target]': 42 }}; -expect(deepCss).to.have.deep.property('\\.link.\\[target\\]', 42) -``` - -### Community Contributions - -#### Code Features & Fixes - - * [#402](https://github.com/chaijs/chai/pull/402) Allow escaping of deep - property keys. - By [@umireon](https://github.com/umireon) - -#### Documentation fixes - - * [#405](https://github.com/chaijs/chai/pull/405) Tweak documentation around - deep property escaping. - By [@keithamus](https://github.com/keithamus) - - -## 2.1.2 / 2015-03-15 - -A minor bug fix. No new features. - -### Community Contributions - -#### Code Features & Fixes - - * [#395](https://github.com/chaijs/chai/pull/395) Fix eval-related bugs with - assert.operator ([#386](https://github.com/chaijs/chai/pull/386)). - By [@cjqed](https://github.com/cjqed) - -## 2.1.1 / 2015-03-04 - -Two minor bugfixes. No new features. - -### Community Contributions - -#### Code Features & Fixes - - * [#385](https://github.com/chaijs/chai/pull/385) Fix a bug (also described in - [#387](https://github.com/chaijs/chai/pull/385)) where `deep.property` would not work with single - key names. By [@eldritch-fossicker](https://github.com/eldritch-fossicker) - * [#379](https://github.com/chaijs/chai/pull/379) Fix bug where tools which overwrite - primitive prototypes, such as Babel or core-js would fail. - By [@dcneiner](https://github.com/dcneiner) - -#### Documentation fixes - - * [#382](https://github.com/chaijs/chai/pull/382) Add doc for showDiff argument in assert. - By [@astorije](https://github.com/astorije) - * [#383](https://github.com/chaijs/chai/pull/383) Improve wording for truncateTreshold docs - By [@gurdiga](https://github.com/gurdiga) - * [#381](https://github.com/chaijs/chai/pull/381) Improve wording for assert.empty docs - By [@astorije](https://github.com/astorije) - -## 2.1.0 / 2015-02-23 - -Small release; fixes an issue where the Chai lib was incorrectly reporting the -version number. - -Adds new `should.fail()` and `expect.fail()` methods, which are convinience -methods to throw Assertion Errors. - -### Community Contributions - -#### Code Features & Fixes - - * [#356](https://github.com/chaijs/chai/pull/356) Add should.fail(), expect.fail(). By [@Soviut](https://github.com/Soviut) - * [#374](https://github.com/chaijs/chai/pull/374) Increment version. By [@jmm](https://github.com/jmm) - -## 2.0.0 / 2015-02-09 - -Unfortunately with 1.10.0 - compatibility broke with older versions because of -the `addChainableNoop`. This change has been reverted. - -Any plugins using `addChainableNoop` should cease to do so. - -Any developers wishing for this behaviour can use [dirty-chai](https://www.npmjs.com/package/dirty-chai) -by [@joshperry](https://github.com/joshperry) - -### Community Contributions - -#### Code Features & Fixes - - * [#361](https://github.com/chaijs/chai/pull/361) `.keys()` now accepts Objects, extracting keys from them. By [@gregglind](https://github.com/gregglind) - * [#359](https://github.com/chaijs/chai/pull/359) `.keys()` no longer mutates passed arrays. By [@gregglind](https://github.com/gregglind) - * [#349](https://github.com/chaijs/chai/pull/349) Add a new chainable keyword - `.which`. By [@toastynerd](https://github.com/toastynerd) - * [#333](https://github.com/chaijs/chai/pull/333) Add `.change`, `.increase` and `.decrease` assertions. By [@cmpolis](https://github.com/cmpolis) - * [#335](https://github.com/chaijs/chai/pull/335) `chai.util` is now exposed [@DingoEatingFuzz](https://github.com/DingoEatingFuzz) - * [#328](https://github.com/chaijs/chai/pull/328) Add `.includes` and `.contains` aliases (for `.include` and `.contain`). By [@lo1tuma](https://github.com/lo1tuma) - * [#313](https://github.com/chaijs/chai/pull/313) Add `.any.keys()` and `.all.keys()` qualifiers. By [@cjqed](https://github.com/cjqed) - * [#312](https://github.com/chaijs/chai/pull/312) Add `assert.sameDeepMembers()`. By [@cjqed](https://github.com/cjqed) - * [#311](https://github.com/chaijs/chai/pull/311) Add `assert.isAbove()` and `assert.isBelow()`. By [@cjqed](https://github.com/cjqed) - * [#308](https://github.com/chaijs/chai/pull/308) `property` and `deep.property` now pass if a value is set to `undefined`. By [@prodatakey](https://github.com/prodatakey) - * [#309](https://github.com/chaijs/chai/pull/309) optimize deep equal in Arrays. By [@ericdouglas](https://github.com/ericdouglas) - * [#306](https://github.com/chaijs/chai/pull/306) revert #297 - allowing lint-friendly tests. By [@keithamus](https://github.com/keithamus) - -#### Documentation fixes - - * [#357](https://github.com/chaijs/chai/pull/357) Copyright year updated in docs. By [@danilovaz](https://github.com/danilovaz) - * [#325](https://github.com/chaijs/chai/pull/325) Fix documentation for overwriteChainableMethod. By [@chasenlehara](https://github.com/chasenlehara) - * [#334](https://github.com/chaijs/chai/pull/334) Typo fix. By [@hurrymaplelad](https://github.com/hurrymaplelad) - * [#317](https://github.com/chaijs/chai/pull/317) Typo fix. By [@jasonkarns](https://github.com/jasonkarns) - * [#318](https://github.com/chaijs/chai/pull/318) Typo fix. By [@jasonkarns](https://github.com/jasonkarns) - * [#316](https://github.com/chaijs/chai/pull/316) Typo fix. By [@jasonkarns](https://github.com/jasonkarns) - - -## 1.10.0 / 2014-11-10 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - No changes required -- **Plugin Developers:** - - Review `addChainableNoop` notes below. -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### Noop Function for Terminating Assertion Properties - -The following assertions can now also be used in the function-call form: - -* ok -* true -* false -* null -* undefined -* exist -* empty -* arguments -* Arguments - -The above list of assertions are property getters that assert immediately on -access. Because of that, they were written to be used by terminating the assertion -chain with a property access. - -```js -expect(true).to.be.true; -foo.should.be.ok; -``` - -This syntax is definitely aesthetically pleasing but, if you are linting your -test code, your linter will complain with an error something like "Expected an -assignment or function call and instead saw an expression." Since the linter -doesn't know about the property getter it assumes this line has no side-effects, -and throws a warning in case you made a mistake. - -Squelching these errors is not a good solution as test code is getting to be -just as important as, if not more than, production code. Catching syntactical -errors in tests using static analysis is a great tool to help make sure that your -tests are well-defined and free of typos. - -A better option was to provide a function-call form for these assertions so that -the code's intent is more clear and the linters stop complaining about something -looking off. This form is added in addition to the existing property access form -and does not impact existing test code. - -```js -expect(true).to.be.true(); -foo.should.be.ok(); -``` - -These forms can also be mixed in any way, these are all functionally identical: - -```js -expect(true).to.be.true.and.not.false(); -expect(true).to.be.true().and.not.false; -expect(true).to.be.true.and.not.false; -``` - -#### Plugin Authors - -If you would like to provide this function-call form for your terminating assertion -properties, there is a new function to register these types of asserts. Instead -of using `addProperty` to register terminating assertions, simply use `addChainableNoop` -instead; the arguments to both are identical. The latter will make the assertion -available in both the attribute and function-call forms and should have no impact -on existing users of your plugin. - -### Community Contributions - -- [#297](https://github.com/chaijs/chai/pull/297) Allow writing lint-friendly tests. [@joshperry](https://github.com/joshperry) -- [#298](https://github.com/chaijs/chai/pull/298) Add check for logging `-0`. [@dasilvacontin](https://github.com/dasilvacontin) -- [#300](https://github.com/chaijs/chai/pull/300) Fix #299: the test is defining global variables [@julienw](https://github.com/julienw) - -Thank you to all who took time to contribute! - -## 1.9.2 / 2014-09-29 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - No changes required -- **Plugin Developers:** - - No changes required -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### Community Contributions - -- [#264](https://github.com/chaijs/chai/pull/264) Show diff for keys assertions [@cjthompson](https://github.com/cjthompson) -- [#267](https://github.com/chaijs/chai/pull/267) Use SVG badges [@shinnn](https://github.com/shinnn) -- [#268](https://github.com/chaijs/chai/pull/268) Allow messages to be functions (sinon-compat) [@charlierudolph](https://github.com/charlierudolph) -- [#269](https://github.com/chaijs/chai/pull/269) Remove unused argument for #lengthOf [@charlierudolph](https://github.com/charlierudolph) -- [#275](https://github.com/chaijs/chai/pull/275) Rewrite pretty-printing HTML elements to prevent throwing internal errors [@DrRataplan](https://github.com/DrRataplan) -- [#277](https://github.com/chaijs/chai/pull/277) Fix assert documentation for #sameMembers [@charlierudolph](https://github.com/charlierudolph) -- [#279](https://github.com/chaijs/chai/pull/279) closeTo should check value's type before assertion [@mohayonao](https://github.com/mohayonao) -- [#289](https://github.com/chaijs/chai/pull/289) satisfy is called twice [@charlierudolph](https://github.com/charlierudolph) -- [#292](https://github.com/chaijs/chai/pull/292) resolve conflicts with node-webkit and global usage [@boneskull](https://github.com/boneskull) - -Thank you to all who took time to contribute! - -## 1.9.1 / 2014-03-19 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - Migrate configuration options to new interface. (see notes) -- **Plugin Developers:** - - No changes required -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### Configuration - -There have been requests for changes and additions to the configuration mechanisms -and their impact in the Chai architecture. As such, we have decoupled the -configuration from the `Assertion` constructor. This not only allows for centralized -configuration, but will allow us to shift the responsibility from the `Assertion` -constructor to the `assert` interface in future releases. - -These changes have been implemented in a non-breaking way, but a depretiation -warning will be presented to users until they migrate. The old config method will -be removed in either `v1.11.0` or `v2.0.0`, whichever comes first. - -#### Quick Migration - -```js -// change this: -chai.Assertion.includeStack = true; -chai.Assertion.showDiff = false; - -// ... to this: -chai.config.includeStack = true; -chai.config.showDiff = false; -``` - -#### All Config Options - -##### config.includeStack - -- **@param** _{Boolean}_ -- **@default** `false` - -User configurable property, influences whether stack trace is included in -Assertion error message. Default of `false` suppresses stack trace in the error -message. - -##### config.showDiff - -- **@param** _{Boolean}_ -- **@default** `true` - -User configurable property, influences whether or not the `showDiff` flag -should be included in the thrown AssertionErrors. `false` will always be `false`; -`true` will be true when the assertion has requested a diff be shown. - -##### config.truncateThreshold **(NEW)** - -- **@param** _{Number}_ -- **@default** `40` - -User configurable property, sets length threshold for actual and expected values -in assertion errors. If this threshold is exceeded, the value is truncated. - -Set it to zero if you want to disable truncating altogether. - -```js -chai.config.truncateThreshold = 0; // disable truncating -``` - -### Community Contributions - -- [#228](https://github.com/chaijs/chai/pull/228) Deep equality check for memebers. [@duncanbeevers](https://github.com/duncanbeevers) -- [#247](https://github.com/chaijs/chai/pull/247) Proofreading. [@didorellano](https://github.com/didoarellano) -- [#244](https://github.com/chaijs/chai/pull/244) Fix `contain`/`include` 1.9.0 regression. [@leider](https://github.com/leider) -- [#233](https://github.com/chaijs/chai/pull/233) Improvements to `ssfi` for `assert` interface. [@refack](https://github.com/refack) -- [#251](https://github.com/chaijs/chai/pull/251) New config option: object display threshold. [@romario333](https://github.com/romario333) - -Thank you to all who took time to contribute! - -### Other Bug Fixes - -- [#183](https://github.com/chaijs/chai/issues/183) Allow `undefined` for actual. (internal api) -- Update Karam(+plugins)/Istanbul to most recent versions. - -## 1.9.0 / 2014-01-29 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - No changes required -- **Plugin Developers:** - - Review [#219](https://github.com/chaijs/chai/pull/219). -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### Community Contributions - -- [#202](https://github.com/chaijs/chai/pull/201) Improve error message for .throw(). [@andreineculau](https://github.com/andreineculau) -- [#217](https://github.com/chaijs/chai/pull/217) Chai tests can be run with `--watch`. [@demands](https://github.com/demands) -- [#219](https://github.com/chaijs/chai/pull/219) Add overwriteChainableMethod utility. [@demands](https://github.com/demands) -- [#224](https://github.com/chaijs/chai/pull/224) Return error on throw method to chain on error properties. [@vbardales](https://github.com/vbardales) -- [#226](https://github.com/chaijs/chai/pull/226) Add `has` to language chains. [@duncanbeevers](https://github.com/duncanbeevers) -- [#230](https://github.com/chaijs/chai/pull/230) Support `{a:1,b:2}.should.include({a:1})` [@jkroso](https://github.com/jkroso) -- [#231](https://github.com/chaijs/chai/pull/231) Update Copyright notices to 2014 [@duncanbeevers](https://github.com/duncanbeevers) -- [#232](https://github.com/chaijs/chai/pull/232) Avoid error instantiation if possible on assert.throws. [@laconbass](https://github.com/laconbass) - -Thank you to all who took time to contribute! - -### Other Bug Fixes - -- [#225](https://github.com/chaijs/chai/pull/225) Improved AMD wrapper provided by upstream `component(1)`. -- [#185](https://github.com/chaijs/chai/issues/185) `assert.throws()` returns thrown error for further assertions. -- [#237](https://github.com/chaijs/chai/pull/237) Remove coveralls/jscoverage, include istanbul coverage report in travis test. -- Update Karma and Sauce runner versions for consistent CI results. No more karma@canary. - -## 1.8.1 / 2013-10-10 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - Refresh `node_modules` folder for updated dependencies. -- **Plugin Developers:** - - No changes required -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### Browserify - -This is a small patch that updates the dependency tree so browserify users can install -chai. (Remove conditional requires) - -## 1.8.0 / 2013-09-18 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - See `deep.equal` notes. -- **Plugin Developers:** - - No changes required -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### Deep Equals - -This version of Chai focused on a overhaul to the deep equal utility. The code for this -tool has been removed from the core lib and can now be found at: -[chai / deep-eql](https://github.com/chaijs/deep-eql). As stated in previous releases, -this is part of a larger initiative to provide transparency, independent testing, and coverage for -some of the more complicated internal tools. - -For the most part `.deep.equal` will behave the same as it has. However, in order to provide a -consistent ruleset across all types being tested, the following changes have been made and _might_ -require changes to your tests. - -**1.** Strict equality for non-traversable nodes according to [egal](http://wiki.ecmascript.org/doku.php?id=harmony:egal). - -_Previously:_ Non-traversable equal via `===`. - -```js -expect(NaN).to.deep.equal(NaN); -expect(-0).to.not.deep.equal(+0); -``` - -**2.** Arguments are not Arrays (and all types must be equal): - -_Previously:_ Some crazy nonsense that led to empty arrays deep equaling empty objects deep equaling dates. - -```js -expect(arguments).to.not.deep.equal([]); -expect(Array.prototype.slice.call(arguments)).to.deep.equal([]); -``` - -- [#156](https://github.com/chaijs/chai/issues/156) Empty object is eql to empty array -- [#192](https://github.com/chaijs/chai/issues/192) empty object is eql to a Date object -- [#194](https://github.com/chaijs/chai/issues/194) refactor deep-equal utility - -### CI and Browser Testing - -Chai now runs the browser CI suite using [Karma](http://karma-runner.github.io/) directed at -[SauceLabs](https://saucelabs.com/). This means we get to know where our browser support stands... -and we get a cool badge: - -[![Selenium Test Status](https://saucelabs.com/browser-matrix/logicalparadox.svg)](https://saucelabs.com/u/logicalparadox) - -Look for the list of browsers/versions to expand over the coming releases. - -- [#195](https://github.com/chaijs/chai/issues/195) karma test framework - -## 1.7.2 / 2013-06-27 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - No changes required. -- **Plugin Developers:** - - No changes required -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### Coverage Reporting - -Coverage reporting has always been available for core-developers but the data has never been published -for our end users. In our ongoing effort to improve accountability this data will now be published via -the [coveralls.io](https://coveralls.io/) service. A badge has been added to the README and the full report -can be viewed online at the [chai coveralls project](https://coveralls.io/r/chaijs/chai). Furthermore, PRs -will receive automated messages indicating how their PR impacts test coverage. This service is tied to TravisCI. - -### Other Fixes - -- [#175](https://github.com/chaijs/chai/issues/175) Add `bower.json`. (Fix ignore all) - -## 1.7.1 / 2013-06-24 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - No changes required. -- **Plugin Developers:** - - No changes required -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### Official Bower Support - -Support has been added for the Bower Package Manager ([bower.io])(http://bower.io/). Though -Chai could be installed via Bower in the past, this update adds official support via the `bower.json` -specification file. - -- [#175](https://github.com/chaijs/chai/issues/175) Add `bower.json`. - -## 1.7.0 / 2013-06-17 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - No changes required. -- **Plugin Developers:** - - Review AssertionError update notice. -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### AssertionError Update Notice - -Chai now uses [chaijs/assertion-error](https://github.com/chaijs/assertion-error) instead an internal -constructor. This will allow for further iteration/experimentation of the AssertionError constructor -independant of Chai. Future plans include stack parsing for callsite support. - -This update constructor has a different constructor param signature that conforms more with the standard -`Error` object. If your plugin throws and `AssertionError` directly you will need to update your plugin -with the new signature. - -```js -var AssertionError = require('chai').AssertionError; - -/** - * previous - * - * @param {Object} options - */ - -throw new AssertionError({ - message: 'An assertion error occurred' - , actual: actual - , expect: expect - , startStackFunction: arguments.callee - , showStack: true -}); - -/** - * new - * - * @param {String} message - * @param {Object} options - * @param {Function} start stack function - */ - -throw new AssertionError('An assertion error occurred', { - actual: actual - , expect: expect - , showStack: true -}, arguments.callee); - -// other signatures -throw new AssertionError('An assertion error occurred'); -throw new AssertionError('An assertion error occurred', null, arguments.callee); -``` - -#### External Dependencies - -This is the first non-developement dependency for Chai. As Chai continues to evolve we will begin adding -more; the next will likely be improved type detection and deep equality. With Chai's userbase continually growing -there is an higher need for accountability and documentation. External dependencies will allow us to iterate and -test on features independent from our interfaces. - -Note: The browser packaged version `chai.js` will ALWAYS contain all dependencies needed to run Chai. - -### Community Contributions - -- [#169](https://github.com/chaijs/chai/pull/169) Fix deep equal comparison for Date/Regexp types. [@katsgeorgeek](https://github.com/katsgeorgeek) -- [#171](https://github.com/chaijs/chai/pull/171) Add `assert.notOk()`. [@Bartvds](https://github.com/Bartvds) -- [#173](https://github.com/chaijs/chai/pull/173) Fix `inspect` utility. [@domenic](https://github.com/domenic) - -Thank you to all who took the time to contribute! - -## 1.6.1 / 2013-06-05 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - No changes required. -- **Plugin Developers:** - - No changes required. -- **Core Contributors:** - - Refresh `node_modules` folder for updated developement dependencies. - -### Deep Equality - -Regular Expressions are now tested as part of all deep equality assertions. In previous versions -they silently passed for all scenarios. Thanks to [@katsgeorgeek](https://github.com/katsgeorgeek) for the contribution. - -### Community Contributions - -- [#161](https://github.com/chaijs/chai/pull/161) Fix documented name for assert interface's isDefined method. [@brandonpayton](https://github.com/brandonpayton) -- [#168](https://github.com/chaijs/chai/pull/168) Fix comparison equality of two regexps for when using deep equality. [@katsgeorgeek](https://github.com/katsgeorgeek) - -Thank you to all who took the time to contribute! - -### Additional Notes - -- Mocha has been locked at version `1.8.x` to ensure `mocha-phantomjs` compatibility. - -## 1.6.0 / 2013-04-29 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - No changes required. -- **Plugin Developers:** - - No changes required. -- **Core Contributors:** - - Refresh `node_modules` folder for updated developement dependencies. - -### New Assertions - -#### Array Members Inclusion - -Asserts that the target is a superset of `set`, or that the target and `set` have the same members. -Order is not taken into account. Thanks to [@NickHeiner](https://github.com/NickHeiner) for the contribution. - -```js -// (expect/should) full set -expect([4, 2]).to.have.members([2, 4]); -expect([5, 2]).to.not.have.members([5, 2, 1]); - -// (expect/should) inclusion -expect([1, 2, 3]).to.include.members([3, 2]); -expect([1, 2, 3]).to.not.include.members([3, 2, 8]); - -// (assert) full set -assert.sameMembers([ 1, 2, 3 ], [ 2, 1, 3 ], 'same members'); - -// (assert) inclusion -assert.includeMembers([ 1, 2, 3 ], [ 2, 1 ], 'include members'); - -``` - -#### Non-inclusion for Assert Interface - -Most `assert` functions have a negative version, like `instanceOf()` has a corresponding `notInstaceOf()`. -However `include()` did not have a corresponding `notInclude()`. This has been added. - -```js -assert.notInclude([ 1, 2, 3 ], 8); -assert.notInclude('foobar', 'baz'); -``` - -### Community Contributions - -- [#140](https://github.com/chaijs/chai/pull/140) Restore `call`/`apply` methods for plugin interface. [@RubenVerborgh](https://github.com/RubenVerborgh) -- [#148](https://github.com/chaijs/chai/issues/148)/[#153](https://github.com/chaijs/chai/pull/153) Add `members` and `include.members` assertions. [#NickHeiner](https://github.com/NickHeiner) - -Thank you to all who took time to contribute! - -### Other Bug Fixes - -- [#142](https://github.com/chaijs/chai/issues/142) `assert#include` will no longer silently pass on wrong-type haystack. -- [#158](https://github.com/chaijs/chai/issues/158) `assert#notInclude` has been added. -- Travis-CI now tests Node.js `v0.10.x`. Support for `v0.6.x` has been removed. `v0.8.x` is still tested as before. - -## 1.5.0 / 2013-02-03 - -### Migration Requirements - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - _Update [2013-02-04]:_ Some users may notice a small subset of deep equality assertions will no longer pass. This is the result of - [#120](https://github.com/chaijs/chai/issues/120), an improvement to our deep equality algorithm. Users will need to revise their assertions - to be more granular should this occur. Further information: [#139](https://github.com/chaijs/chai/issues/139). -- **Plugin Developers:** - - No changes required. -- **Core Contributors:** - - Refresh `node_modules` folder for updated developement dependencies. - -### Community Contributions - -- [#126](https://github.com/chaijs/chai/pull/126): Add `eqls` alias for `eql`. [@RubenVerborgh](https://github.com/RubenVerborgh) -- [#127](https://github.com/chaijs/chai/issues/127): Performance refactor for chainable methods. [@RubenVerborgh](https://github.com/RubenVerborgh) -- [#133](https://github.com/chaijs/chai/pull/133): Assertion `.throw` support for primitives. [@RubenVerborgh](https://github.com/RubenVerborgh) -- [#137](https://github.com/chaijs/chai/issues/137): Assertion `.throw` support for empty messages. [@timnew](https://github.com/timnew) -- [#136](https://github.com/chaijs/chai/pull/136): Fix backward negation messages when using `.above()` and `.below()`. [@whatthejeff](https://github.com/whatthejeff) - -Thank you to all who took time to contribute! - -### Other Bug Fixes - -- Improve type detection of `.a()`/`.an()` to work in cross-browser scenarios. -- [#116](https://github.com/chaijs/chai/issues/116): `.throw()` has cleaner display of errors when WebKit browsers. -- [#120](https://github.com/chaijs/chai/issues/120): `.eql()` now works to compare dom nodes in browsers. - - -### Usage Updates - -#### For Users - -**1. Component Support:** Chai now included the proper configuration to be installed as a -[component](https://github.com/component/component). Component users are encouraged to consult -[chaijs.com](http://chaijs.com) for the latest version number as using the master branch -does not gaurantee stability. - -```js -// relevant component.json - devDependencies: { - "chaijs/chai": "1.5.0" - } -``` - -Alternatively, bleeding-edge is available: - - $ component install chaijs/chai - -**2. Configurable showDiff:** Some test runners (such as [mocha](http://visionmedia.github.com/mocha/)) -include support for showing the diff of strings and objects when an equality error occurs. Chai has -already included support for this, however some users may not prefer this display behavior. To revert to -no diff display, the following configuration is available: - -```js -chai.Assertion.showDiff = false; // diff output disabled -chai.Assertion.showDiff = true; // default, diff output enabled -``` - -#### For Plugin Developers - -**1. New Utility - type**: The new utility `.type()` is available as a better implementation of `typeof` -that can be used cross-browser. It handles the inconsistencies of Array, `null`, and `undefined` detection. - -- **@param** _{Mixed}_ object to detect type of -- **@return** _{String}_ object type - -```js -chai.use(function (c, utils) { - // some examples - utils.type({}); // 'object' - utils.type(null); // `null' - utils.type(undefined); // `undefined` - utils.type([]); // `array` -}); -``` - -#### For Core Contributors - -**1. Browser Testing**: Browser testing of the `./chai.js` file is now available in the command line -via PhantomJS. `make test` and Travis-CI will now also rebuild and test `./chai.js`. Consequently, all -pull requests will now be browser tested in this way. - -_Note: Contributors opening pull requests should still NOT include the browser build._ - -**2. SauceLabs Testing**: Early SauceLab support has been enabled with the file `./support/mocha-cloud.js`. -Those interested in trying it out should create a free [Open Sauce](https://saucelabs.com/signup/plan) account -and include their credentials in `./test/auth/sauce.json`. diff --git a/node_modules/@polymer/polymer/bower_components/chai/bower.json b/node_modules/@polymer/polymer/bower_components/chai/bower.json deleted file mode 100644 index af2ee029..00000000 --- a/node_modules/@polymer/polymer/bower_components/chai/bower.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "chai", - "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", - "license": "MIT", - "keywords": [ - "test", - "assertion", - "assert", - "testing", - "chai" - ], - "main": "chai.js", - "ignore": [ - "build", - "components", - "lib", - "node_modules", - "support", - "test", - "index.js", - "Makefile", - ".*" - ], - "dependencies": {}, - "devDependencies": {} -} diff --git a/node_modules/@polymer/polymer/bower_components/chai/chai.js b/node_modules/@polymer/polymer/bower_components/chai/chai.js deleted file mode 100644 index 1d30296a..00000000 --- a/node_modules/@polymer/polymer/bower_components/chai/chai.js +++ /dev/null @@ -1,6142 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.chai = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o - * MIT Licensed - */ - -var used = [] - , exports = module.exports = {}; - -/*! - * Chai version - */ - -exports.version = '3.5.0'; - -/*! - * Assertion Error - */ - -exports.AssertionError = require('assertion-error'); - -/*! - * Utils for plugins (not exported) - */ - -var util = require('./chai/utils'); - -/** - * # .use(function) - * - * Provides a way to extend the internals of Chai - * - * @param {Function} - * @returns {this} for chaining - * @api public - */ - -exports.use = function (fn) { - if (!~used.indexOf(fn)) { - fn(this, util); - used.push(fn); - } - - return this; -}; - -/*! - * Utility Functions - */ - -exports.util = util; - -/*! - * Configuration - */ - -var config = require('./chai/config'); -exports.config = config; - -/*! - * Primary `Assertion` prototype - */ - -var assertion = require('./chai/assertion'); -exports.use(assertion); - -/*! - * Core Assertions - */ - -var core = require('./chai/core/assertions'); -exports.use(core); - -/*! - * Expect interface - */ - -var expect = require('./chai/interface/expect'); -exports.use(expect); - -/*! - * Should interface - */ - -var should = require('./chai/interface/should'); -exports.use(should); - -/*! - * Assert interface - */ - -var assert = require('./chai/interface/assert'); -exports.use(assert); - -},{"./chai/assertion":3,"./chai/config":4,"./chai/core/assertions":5,"./chai/interface/assert":6,"./chai/interface/expect":7,"./chai/interface/should":8,"./chai/utils":22,"assertion-error":30}],3:[function(require,module,exports){ -/*! - * chai - * http://chaijs.com - * Copyright(c) 2011-2014 Jake Luer - * MIT Licensed - */ - -var config = require('./config'); - -module.exports = function (_chai, util) { - /*! - * Module dependencies. - */ - - var AssertionError = _chai.AssertionError - , flag = util.flag; - - /*! - * Module export. - */ - - _chai.Assertion = Assertion; - - /*! - * Assertion Constructor - * - * Creates object for chaining. - * - * @api private - */ - - function Assertion (obj, msg, stack) { - flag(this, 'ssfi', stack || arguments.callee); - flag(this, 'object', obj); - flag(this, 'message', msg); - } - - Object.defineProperty(Assertion, 'includeStack', { - get: function() { - console.warn('Assertion.includeStack is deprecated, use chai.config.includeStack instead.'); - return config.includeStack; - }, - set: function(value) { - console.warn('Assertion.includeStack is deprecated, use chai.config.includeStack instead.'); - config.includeStack = value; - } - }); - - Object.defineProperty(Assertion, 'showDiff', { - get: function() { - console.warn('Assertion.showDiff is deprecated, use chai.config.showDiff instead.'); - return config.showDiff; - }, - set: function(value) { - console.warn('Assertion.showDiff is deprecated, use chai.config.showDiff instead.'); - config.showDiff = value; - } - }); - - Assertion.addProperty = function (name, fn) { - util.addProperty(this.prototype, name, fn); - }; - - Assertion.addMethod = function (name, fn) { - util.addMethod(this.prototype, name, fn); - }; - - Assertion.addChainableMethod = function (name, fn, chainingBehavior) { - util.addChainableMethod(this.prototype, name, fn, chainingBehavior); - }; - - Assertion.overwriteProperty = function (name, fn) { - util.overwriteProperty(this.prototype, name, fn); - }; - - Assertion.overwriteMethod = function (name, fn) { - util.overwriteMethod(this.prototype, name, fn); - }; - - Assertion.overwriteChainableMethod = function (name, fn, chainingBehavior) { - util.overwriteChainableMethod(this.prototype, name, fn, chainingBehavior); - }; - - /** - * ### .assert(expression, message, negateMessage, expected, actual, showDiff) - * - * Executes an expression and check expectations. Throws AssertionError for reporting if test doesn't pass. - * - * @name assert - * @param {Philosophical} expression to be tested - * @param {String|Function} message or function that returns message to display if expression fails - * @param {String|Function} negatedMessage or function that returns negatedMessage to display if negated expression fails - * @param {Mixed} expected value (remember to check for negation) - * @param {Mixed} actual (optional) will default to `this.obj` - * @param {Boolean} showDiff (optional) when set to `true`, assert will display a diff in addition to the message if expression fails - * @api private - */ - - Assertion.prototype.assert = function (expr, msg, negateMsg, expected, _actual, showDiff) { - var ok = util.test(this, arguments); - if (true !== showDiff) showDiff = false; - if (true !== config.showDiff) showDiff = false; - - if (!ok) { - var msg = util.getMessage(this, arguments) - , actual = util.getActual(this, arguments); - throw new AssertionError(msg, { - actual: actual - , expected: expected - , showDiff: showDiff - }, (config.includeStack) ? this.assert : flag(this, 'ssfi')); - } - }; - - /*! - * ### ._obj - * - * Quick reference to stored `actual` value for plugin developers. - * - * @api private - */ - - Object.defineProperty(Assertion.prototype, '_obj', - { get: function () { - return flag(this, 'object'); - } - , set: function (val) { - flag(this, 'object', val); - } - }); -}; - -},{"./config":4}],4:[function(require,module,exports){ -module.exports = { - - /** - * ### config.includeStack - * - * User configurable property, influences whether stack trace - * is included in Assertion error message. Default of false - * suppresses stack trace in the error message. - * - * chai.config.includeStack = true; // enable stack on error - * - * @param {Boolean} - * @api public - */ - - includeStack: false, - - /** - * ### config.showDiff - * - * User configurable property, influences whether or not - * the `showDiff` flag should be included in the thrown - * AssertionErrors. `false` will always be `false`; `true` - * will be true when the assertion has requested a diff - * be shown. - * - * @param {Boolean} - * @api public - */ - - showDiff: true, - - /** - * ### config.truncateThreshold - * - * User configurable property, sets length threshold for actual and - * expected values in assertion errors. If this threshold is exceeded, for - * example for large data structures, the value is replaced with something - * like `[ Array(3) ]` or `{ Object (prop1, prop2) }`. - * - * Set it to zero if you want to disable truncating altogether. - * - * This is especially userful when doing assertions on arrays: having this - * set to a reasonable large value makes the failure messages readily - * inspectable. - * - * chai.config.truncateThreshold = 0; // disable truncating - * - * @param {Number} - * @api public - */ - - truncateThreshold: 40 - -}; - -},{}],5:[function(require,module,exports){ -/*! - * chai - * http://chaijs.com - * Copyright(c) 2011-2014 Jake Luer - * MIT Licensed - */ - -module.exports = function (chai, _) { - var Assertion = chai.Assertion - , toString = Object.prototype.toString - , flag = _.flag; - - /** - * ### Language Chains - * - * The following are provided as chainable getters to - * improve the readability of your assertions. They - * do not provide testing capabilities unless they - * have been overwritten by a plugin. - * - * **Chains** - * - * - to - * - be - * - been - * - is - * - that - * - which - * - and - * - has - * - have - * - with - * - at - * - of - * - same - * - * @name language chains - * @namespace BDD - * @api public - */ - - [ 'to', 'be', 'been' - , 'is', 'and', 'has', 'have' - , 'with', 'that', 'which', 'at' - , 'of', 'same' ].forEach(function (chain) { - Assertion.addProperty(chain, function () { - return this; - }); - }); - - /** - * ### .not - * - * Negates any of assertions following in the chain. - * - * expect(foo).to.not.equal('bar'); - * expect(goodFn).to.not.throw(Error); - * expect({ foo: 'baz' }).to.have.property('foo') - * .and.not.equal('bar'); - * - * @name not - * @namespace BDD - * @api public - */ - - Assertion.addProperty('not', function () { - flag(this, 'negate', true); - }); - - /** - * ### .deep - * - * Sets the `deep` flag, later used by the `equal` and - * `property` assertions. - * - * expect(foo).to.deep.equal({ bar: 'baz' }); - * expect({ foo: { bar: { baz: 'quux' } } }) - * .to.have.deep.property('foo.bar.baz', 'quux'); - * - * `.deep.property` special characters can be escaped - * by adding two slashes before the `.` or `[]`. - * - * var deepCss = { '.link': { '[target]': 42 }}; - * expect(deepCss).to.have.deep.property('\\.link.\\[target\\]', 42); - * - * @name deep - * @namespace BDD - * @api public - */ - - Assertion.addProperty('deep', function () { - flag(this, 'deep', true); - }); - - /** - * ### .any - * - * Sets the `any` flag, (opposite of the `all` flag) - * later used in the `keys` assertion. - * - * expect(foo).to.have.any.keys('bar', 'baz'); - * - * @name any - * @namespace BDD - * @api public - */ - - Assertion.addProperty('any', function () { - flag(this, 'any', true); - flag(this, 'all', false) - }); - - - /** - * ### .all - * - * Sets the `all` flag (opposite of the `any` flag) - * later used by the `keys` assertion. - * - * expect(foo).to.have.all.keys('bar', 'baz'); - * - * @name all - * @namespace BDD - * @api public - */ - - Assertion.addProperty('all', function () { - flag(this, 'all', true); - flag(this, 'any', false); - }); - - /** - * ### .a(type) - * - * The `a` and `an` assertions are aliases that can be - * used either as language chains or to assert a value's - * type. - * - * // typeof - * expect('test').to.be.a('string'); - * expect({ foo: 'bar' }).to.be.an('object'); - * expect(null).to.be.a('null'); - * expect(undefined).to.be.an('undefined'); - * expect(new Error).to.be.an('error'); - * expect(new Promise).to.be.a('promise'); - * expect(new Float32Array()).to.be.a('float32array'); - * expect(Symbol()).to.be.a('symbol'); - * - * // es6 overrides - * expect({[Symbol.toStringTag]:()=>'foo'}).to.be.a('foo'); - * - * // language chain - * expect(foo).to.be.an.instanceof(Foo); - * - * @name a - * @alias an - * @param {String} type - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function an (type, msg) { - if (msg) flag(this, 'message', msg); - type = type.toLowerCase(); - var obj = flag(this, 'object') - , article = ~[ 'a', 'e', 'i', 'o', 'u' ].indexOf(type.charAt(0)) ? 'an ' : 'a '; - - this.assert( - type === _.type(obj) - , 'expected #{this} to be ' + article + type - , 'expected #{this} not to be ' + article + type - ); - } - - Assertion.addChainableMethod('an', an); - Assertion.addChainableMethod('a', an); - - /** - * ### .include(value) - * - * The `include` and `contain` assertions can be used as either property - * based language chains or as methods to assert the inclusion of an object - * in an array or a substring in a string. When used as language chains, - * they toggle the `contains` flag for the `keys` assertion. - * - * expect([1,2,3]).to.include(2); - * expect('foobar').to.contain('foo'); - * expect({ foo: 'bar', hello: 'universe' }).to.include.keys('foo'); - * - * @name include - * @alias contain - * @alias includes - * @alias contains - * @param {Object|String|Number} obj - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function includeChainingBehavior () { - flag(this, 'contains', true); - } - - function include (val, msg) { - _.expectTypes(this, ['array', 'object', 'string']); - - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - var expected = false; - - if (_.type(obj) === 'array' && _.type(val) === 'object') { - for (var i in obj) { - if (_.eql(obj[i], val)) { - expected = true; - break; - } - } - } else if (_.type(val) === 'object') { - if (!flag(this, 'negate')) { - for (var k in val) new Assertion(obj).property(k, val[k]); - return; - } - var subset = {}; - for (var k in val) subset[k] = obj[k]; - expected = _.eql(subset, val); - } else { - expected = (obj != undefined) && ~obj.indexOf(val); - } - this.assert( - expected - , 'expected #{this} to include ' + _.inspect(val) - , 'expected #{this} to not include ' + _.inspect(val)); - } - - Assertion.addChainableMethod('include', include, includeChainingBehavior); - Assertion.addChainableMethod('contain', include, includeChainingBehavior); - Assertion.addChainableMethod('contains', include, includeChainingBehavior); - Assertion.addChainableMethod('includes', include, includeChainingBehavior); - - /** - * ### .ok - * - * Asserts that the target is truthy. - * - * expect('everything').to.be.ok; - * expect(1).to.be.ok; - * expect(false).to.not.be.ok; - * expect(undefined).to.not.be.ok; - * expect(null).to.not.be.ok; - * - * @name ok - * @namespace BDD - * @api public - */ - - Assertion.addProperty('ok', function () { - this.assert( - flag(this, 'object') - , 'expected #{this} to be truthy' - , 'expected #{this} to be falsy'); - }); - - /** - * ### .true - * - * Asserts that the target is `true`. - * - * expect(true).to.be.true; - * expect(1).to.not.be.true; - * - * @name true - * @namespace BDD - * @api public - */ - - Assertion.addProperty('true', function () { - this.assert( - true === flag(this, 'object') - , 'expected #{this} to be true' - , 'expected #{this} to be false' - , this.negate ? false : true - ); - }); - - /** - * ### .false - * - * Asserts that the target is `false`. - * - * expect(false).to.be.false; - * expect(0).to.not.be.false; - * - * @name false - * @namespace BDD - * @api public - */ - - Assertion.addProperty('false', function () { - this.assert( - false === flag(this, 'object') - , 'expected #{this} to be false' - , 'expected #{this} to be true' - , this.negate ? true : false - ); - }); - - /** - * ### .null - * - * Asserts that the target is `null`. - * - * expect(null).to.be.null; - * expect(undefined).to.not.be.null; - * - * @name null - * @namespace BDD - * @api public - */ - - Assertion.addProperty('null', function () { - this.assert( - null === flag(this, 'object') - , 'expected #{this} to be null' - , 'expected #{this} not to be null' - ); - }); - - /** - * ### .undefined - * - * Asserts that the target is `undefined`. - * - * expect(undefined).to.be.undefined; - * expect(null).to.not.be.undefined; - * - * @name undefined - * @namespace BDD - * @api public - */ - - Assertion.addProperty('undefined', function () { - this.assert( - undefined === flag(this, 'object') - , 'expected #{this} to be undefined' - , 'expected #{this} not to be undefined' - ); - }); - - /** - * ### .NaN - * Asserts that the target is `NaN`. - * - * expect('foo').to.be.NaN; - * expect(4).not.to.be.NaN; - * - * @name NaN - * @namespace BDD - * @api public - */ - - Assertion.addProperty('NaN', function () { - this.assert( - isNaN(flag(this, 'object')) - , 'expected #{this} to be NaN' - , 'expected #{this} not to be NaN' - ); - }); - - /** - * ### .exist - * - * Asserts that the target is neither `null` nor `undefined`. - * - * var foo = 'hi' - * , bar = null - * , baz; - * - * expect(foo).to.exist; - * expect(bar).to.not.exist; - * expect(baz).to.not.exist; - * - * @name exist - * @namespace BDD - * @api public - */ - - Assertion.addProperty('exist', function () { - this.assert( - null != flag(this, 'object') - , 'expected #{this} to exist' - , 'expected #{this} to not exist' - ); - }); - - - /** - * ### .empty - * - * Asserts that the target's length is `0`. For arrays and strings, it checks - * the `length` property. For objects, it gets the count of - * enumerable keys. - * - * expect([]).to.be.empty; - * expect('').to.be.empty; - * expect({}).to.be.empty; - * - * @name empty - * @namespace BDD - * @api public - */ - - Assertion.addProperty('empty', function () { - var obj = flag(this, 'object') - , expected = obj; - - if (Array.isArray(obj) || 'string' === typeof object) { - expected = obj.length; - } else if (typeof obj === 'object') { - expected = Object.keys(obj).length; - } - - this.assert( - !expected - , 'expected #{this} to be empty' - , 'expected #{this} not to be empty' - ); - }); - - /** - * ### .arguments - * - * Asserts that the target is an arguments object. - * - * function test () { - * expect(arguments).to.be.arguments; - * } - * - * @name arguments - * @alias Arguments - * @namespace BDD - * @api public - */ - - function checkArguments () { - var obj = flag(this, 'object') - , type = Object.prototype.toString.call(obj); - this.assert( - '[object Arguments]' === type - , 'expected #{this} to be arguments but got ' + type - , 'expected #{this} to not be arguments' - ); - } - - Assertion.addProperty('arguments', checkArguments); - Assertion.addProperty('Arguments', checkArguments); - - /** - * ### .equal(value) - * - * Asserts that the target is strictly equal (`===`) to `value`. - * Alternately, if the `deep` flag is set, asserts that - * the target is deeply equal to `value`. - * - * expect('hello').to.equal('hello'); - * expect(42).to.equal(42); - * expect(1).to.not.equal(true); - * expect({ foo: 'bar' }).to.not.equal({ foo: 'bar' }); - * expect({ foo: 'bar' }).to.deep.equal({ foo: 'bar' }); - * - * @name equal - * @alias equals - * @alias eq - * @alias deep.equal - * @param {Mixed} value - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function assertEqual (val, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - if (flag(this, 'deep')) { - return this.eql(val); - } else { - this.assert( - val === obj - , 'expected #{this} to equal #{exp}' - , 'expected #{this} to not equal #{exp}' - , val - , this._obj - , true - ); - } - } - - Assertion.addMethod('equal', assertEqual); - Assertion.addMethod('equals', assertEqual); - Assertion.addMethod('eq', assertEqual); - - /** - * ### .eql(value) - * - * Asserts that the target is deeply equal to `value`. - * - * expect({ foo: 'bar' }).to.eql({ foo: 'bar' }); - * expect([ 1, 2, 3 ]).to.eql([ 1, 2, 3 ]); - * - * @name eql - * @alias eqls - * @param {Mixed} value - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function assertEql(obj, msg) { - if (msg) flag(this, 'message', msg); - this.assert( - _.eql(obj, flag(this, 'object')) - , 'expected #{this} to deeply equal #{exp}' - , 'expected #{this} to not deeply equal #{exp}' - , obj - , this._obj - , true - ); - } - - Assertion.addMethod('eql', assertEql); - Assertion.addMethod('eqls', assertEql); - - /** - * ### .above(value) - * - * Asserts that the target is greater than `value`. - * - * expect(10).to.be.above(5); - * - * Can also be used in conjunction with `length` to - * assert a minimum length. The benefit being a - * more informative error message than if the length - * was supplied directly. - * - * expect('foo').to.have.length.above(2); - * expect([ 1, 2, 3 ]).to.have.length.above(2); - * - * @name above - * @alias gt - * @alias greaterThan - * @param {Number} value - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function assertAbove (n, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - if (flag(this, 'doLength')) { - new Assertion(obj, msg).to.have.property('length'); - var len = obj.length; - this.assert( - len > n - , 'expected #{this} to have a length above #{exp} but got #{act}' - , 'expected #{this} to not have a length above #{exp}' - , n - , len - ); - } else { - this.assert( - obj > n - , 'expected #{this} to be above ' + n - , 'expected #{this} to be at most ' + n - ); - } - } - - Assertion.addMethod('above', assertAbove); - Assertion.addMethod('gt', assertAbove); - Assertion.addMethod('greaterThan', assertAbove); - - /** - * ### .least(value) - * - * Asserts that the target is greater than or equal to `value`. - * - * expect(10).to.be.at.least(10); - * - * Can also be used in conjunction with `length` to - * assert a minimum length. The benefit being a - * more informative error message than if the length - * was supplied directly. - * - * expect('foo').to.have.length.of.at.least(2); - * expect([ 1, 2, 3 ]).to.have.length.of.at.least(3); - * - * @name least - * @alias gte - * @param {Number} value - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function assertLeast (n, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - if (flag(this, 'doLength')) { - new Assertion(obj, msg).to.have.property('length'); - var len = obj.length; - this.assert( - len >= n - , 'expected #{this} to have a length at least #{exp} but got #{act}' - , 'expected #{this} to have a length below #{exp}' - , n - , len - ); - } else { - this.assert( - obj >= n - , 'expected #{this} to be at least ' + n - , 'expected #{this} to be below ' + n - ); - } - } - - Assertion.addMethod('least', assertLeast); - Assertion.addMethod('gte', assertLeast); - - /** - * ### .below(value) - * - * Asserts that the target is less than `value`. - * - * expect(5).to.be.below(10); - * - * Can also be used in conjunction with `length` to - * assert a maximum length. The benefit being a - * more informative error message than if the length - * was supplied directly. - * - * expect('foo').to.have.length.below(4); - * expect([ 1, 2, 3 ]).to.have.length.below(4); - * - * @name below - * @alias lt - * @alias lessThan - * @param {Number} value - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function assertBelow (n, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - if (flag(this, 'doLength')) { - new Assertion(obj, msg).to.have.property('length'); - var len = obj.length; - this.assert( - len < n - , 'expected #{this} to have a length below #{exp} but got #{act}' - , 'expected #{this} to not have a length below #{exp}' - , n - , len - ); - } else { - this.assert( - obj < n - , 'expected #{this} to be below ' + n - , 'expected #{this} to be at least ' + n - ); - } - } - - Assertion.addMethod('below', assertBelow); - Assertion.addMethod('lt', assertBelow); - Assertion.addMethod('lessThan', assertBelow); - - /** - * ### .most(value) - * - * Asserts that the target is less than or equal to `value`. - * - * expect(5).to.be.at.most(5); - * - * Can also be used in conjunction with `length` to - * assert a maximum length. The benefit being a - * more informative error message than if the length - * was supplied directly. - * - * expect('foo').to.have.length.of.at.most(4); - * expect([ 1, 2, 3 ]).to.have.length.of.at.most(3); - * - * @name most - * @alias lte - * @param {Number} value - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function assertMost (n, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - if (flag(this, 'doLength')) { - new Assertion(obj, msg).to.have.property('length'); - var len = obj.length; - this.assert( - len <= n - , 'expected #{this} to have a length at most #{exp} but got #{act}' - , 'expected #{this} to have a length above #{exp}' - , n - , len - ); - } else { - this.assert( - obj <= n - , 'expected #{this} to be at most ' + n - , 'expected #{this} to be above ' + n - ); - } - } - - Assertion.addMethod('most', assertMost); - Assertion.addMethod('lte', assertMost); - - /** - * ### .within(start, finish) - * - * Asserts that the target is within a range. - * - * expect(7).to.be.within(5,10); - * - * Can also be used in conjunction with `length` to - * assert a length range. The benefit being a - * more informative error message than if the length - * was supplied directly. - * - * expect('foo').to.have.length.within(2,4); - * expect([ 1, 2, 3 ]).to.have.length.within(2,4); - * - * @name within - * @param {Number} start lowerbound inclusive - * @param {Number} finish upperbound inclusive - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - Assertion.addMethod('within', function (start, finish, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object') - , range = start + '..' + finish; - if (flag(this, 'doLength')) { - new Assertion(obj, msg).to.have.property('length'); - var len = obj.length; - this.assert( - len >= start && len <= finish - , 'expected #{this} to have a length within ' + range - , 'expected #{this} to not have a length within ' + range - ); - } else { - this.assert( - obj >= start && obj <= finish - , 'expected #{this} to be within ' + range - , 'expected #{this} to not be within ' + range - ); - } - }); - - /** - * ### .instanceof(constructor) - * - * Asserts that the target is an instance of `constructor`. - * - * var Tea = function (name) { this.name = name; } - * , Chai = new Tea('chai'); - * - * expect(Chai).to.be.an.instanceof(Tea); - * expect([ 1, 2, 3 ]).to.be.instanceof(Array); - * - * @name instanceof - * @param {Constructor} constructor - * @param {String} message _optional_ - * @alias instanceOf - * @namespace BDD - * @api public - */ - - function assertInstanceOf (constructor, msg) { - if (msg) flag(this, 'message', msg); - var name = _.getName(constructor); - this.assert( - flag(this, 'object') instanceof constructor - , 'expected #{this} to be an instance of ' + name - , 'expected #{this} to not be an instance of ' + name - ); - }; - - Assertion.addMethod('instanceof', assertInstanceOf); - Assertion.addMethod('instanceOf', assertInstanceOf); - - /** - * ### .property(name, [value]) - * - * Asserts that the target has a property `name`, optionally asserting that - * the value of that property is strictly equal to `value`. - * If the `deep` flag is set, you can use dot- and bracket-notation for deep - * references into objects and arrays. - * - * // simple referencing - * var obj = { foo: 'bar' }; - * expect(obj).to.have.property('foo'); - * expect(obj).to.have.property('foo', 'bar'); - * - * // deep referencing - * var deepObj = { - * green: { tea: 'matcha' } - * , teas: [ 'chai', 'matcha', { tea: 'konacha' } ] - * }; - * - * expect(deepObj).to.have.deep.property('green.tea', 'matcha'); - * expect(deepObj).to.have.deep.property('teas[1]', 'matcha'); - * expect(deepObj).to.have.deep.property('teas[2].tea', 'konacha'); - * - * You can also use an array as the starting point of a `deep.property` - * assertion, or traverse nested arrays. - * - * var arr = [ - * [ 'chai', 'matcha', 'konacha' ] - * , [ { tea: 'chai' } - * , { tea: 'matcha' } - * , { tea: 'konacha' } ] - * ]; - * - * expect(arr).to.have.deep.property('[0][1]', 'matcha'); - * expect(arr).to.have.deep.property('[1][2].tea', 'konacha'); - * - * Furthermore, `property` changes the subject of the assertion - * to be the value of that property from the original object. This - * permits for further chainable assertions on that property. - * - * expect(obj).to.have.property('foo') - * .that.is.a('string'); - * expect(deepObj).to.have.property('green') - * .that.is.an('object') - * .that.deep.equals({ tea: 'matcha' }); - * expect(deepObj).to.have.property('teas') - * .that.is.an('array') - * .with.deep.property('[2]') - * .that.deep.equals({ tea: 'konacha' }); - * - * Note that dots and bracket in `name` must be backslash-escaped when - * the `deep` flag is set, while they must NOT be escaped when the `deep` - * flag is not set. - * - * // simple referencing - * var css = { '.link[target]': 42 }; - * expect(css).to.have.property('.link[target]', 42); - * - * // deep referencing - * var deepCss = { '.link': { '[target]': 42 }}; - * expect(deepCss).to.have.deep.property('\\.link.\\[target\\]', 42); - * - * @name property - * @alias deep.property - * @param {String} name - * @param {Mixed} value (optional) - * @param {String} message _optional_ - * @returns value of property for chaining - * @namespace BDD - * @api public - */ - - Assertion.addMethod('property', function (name, val, msg) { - if (msg) flag(this, 'message', msg); - - var isDeep = !!flag(this, 'deep') - , descriptor = isDeep ? 'deep property ' : 'property ' - , negate = flag(this, 'negate') - , obj = flag(this, 'object') - , pathInfo = isDeep ? _.getPathInfo(name, obj) : null - , hasProperty = isDeep - ? pathInfo.exists - : _.hasProperty(name, obj) - , value = isDeep - ? pathInfo.value - : obj[name]; - - if (negate && arguments.length > 1) { - if (undefined === value) { - msg = (msg != null) ? msg + ': ' : ''; - throw new Error(msg + _.inspect(obj) + ' has no ' + descriptor + _.inspect(name)); - } - } else { - this.assert( - hasProperty - , 'expected #{this} to have a ' + descriptor + _.inspect(name) - , 'expected #{this} to not have ' + descriptor + _.inspect(name)); - } - - if (arguments.length > 1) { - this.assert( - val === value - , 'expected #{this} to have a ' + descriptor + _.inspect(name) + ' of #{exp}, but got #{act}' - , 'expected #{this} to not have a ' + descriptor + _.inspect(name) + ' of #{act}' - , val - , value - ); - } - - flag(this, 'object', value); - }); - - - /** - * ### .ownProperty(name) - * - * Asserts that the target has an own property `name`. - * - * expect('test').to.have.ownProperty('length'); - * - * @name ownProperty - * @alias haveOwnProperty - * @param {String} name - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function assertOwnProperty (name, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - this.assert( - obj.hasOwnProperty(name) - , 'expected #{this} to have own property ' + _.inspect(name) - , 'expected #{this} to not have own property ' + _.inspect(name) - ); - } - - Assertion.addMethod('ownProperty', assertOwnProperty); - Assertion.addMethod('haveOwnProperty', assertOwnProperty); - - /** - * ### .ownPropertyDescriptor(name[, descriptor[, message]]) - * - * Asserts that the target has an own property descriptor `name`, that optionally matches `descriptor`. - * - * expect('test').to.have.ownPropertyDescriptor('length'); - * expect('test').to.have.ownPropertyDescriptor('length', { enumerable: false, configurable: false, writable: false, value: 4 }); - * expect('test').not.to.have.ownPropertyDescriptor('length', { enumerable: false, configurable: false, writable: false, value: 3 }); - * expect('test').ownPropertyDescriptor('length').to.have.property('enumerable', false); - * expect('test').ownPropertyDescriptor('length').to.have.keys('value'); - * - * @name ownPropertyDescriptor - * @alias haveOwnPropertyDescriptor - * @param {String} name - * @param {Object} descriptor _optional_ - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function assertOwnPropertyDescriptor (name, descriptor, msg) { - if (typeof descriptor === 'string') { - msg = descriptor; - descriptor = null; - } - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - var actualDescriptor = Object.getOwnPropertyDescriptor(Object(obj), name); - if (actualDescriptor && descriptor) { - this.assert( - _.eql(descriptor, actualDescriptor) - , 'expected the own property descriptor for ' + _.inspect(name) + ' on #{this} to match ' + _.inspect(descriptor) + ', got ' + _.inspect(actualDescriptor) - , 'expected the own property descriptor for ' + _.inspect(name) + ' on #{this} to not match ' + _.inspect(descriptor) - , descriptor - , actualDescriptor - , true - ); - } else { - this.assert( - actualDescriptor - , 'expected #{this} to have an own property descriptor for ' + _.inspect(name) - , 'expected #{this} to not have an own property descriptor for ' + _.inspect(name) - ); - } - flag(this, 'object', actualDescriptor); - } - - Assertion.addMethod('ownPropertyDescriptor', assertOwnPropertyDescriptor); - Assertion.addMethod('haveOwnPropertyDescriptor', assertOwnPropertyDescriptor); - - /** - * ### .length - * - * Sets the `doLength` flag later used as a chain precursor to a value - * comparison for the `length` property. - * - * expect('foo').to.have.length.above(2); - * expect([ 1, 2, 3 ]).to.have.length.above(2); - * expect('foo').to.have.length.below(4); - * expect([ 1, 2, 3 ]).to.have.length.below(4); - * expect('foo').to.have.length.within(2,4); - * expect([ 1, 2, 3 ]).to.have.length.within(2,4); - * - * *Deprecation notice:* Using `length` as an assertion will be deprecated - * in version 2.4.0 and removed in 3.0.0. Code using the old style of - * asserting for `length` property value using `length(value)` should be - * switched to use `lengthOf(value)` instead. - * - * @name length - * @namespace BDD - * @api public - */ - - /** - * ### .lengthOf(value[, message]) - * - * Asserts that the target's `length` property has - * the expected value. - * - * expect([ 1, 2, 3]).to.have.lengthOf(3); - * expect('foobar').to.have.lengthOf(6); - * - * @name lengthOf - * @param {Number} length - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function assertLengthChain () { - flag(this, 'doLength', true); - } - - function assertLength (n, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - new Assertion(obj, msg).to.have.property('length'); - var len = obj.length; - - this.assert( - len == n - , 'expected #{this} to have a length of #{exp} but got #{act}' - , 'expected #{this} to not have a length of #{act}' - , n - , len - ); - } - - Assertion.addChainableMethod('length', assertLength, assertLengthChain); - Assertion.addMethod('lengthOf', assertLength); - - /** - * ### .match(regexp) - * - * Asserts that the target matches a regular expression. - * - * expect('foobar').to.match(/^foo/); - * - * @name match - * @alias matches - * @param {RegExp} RegularExpression - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - function assertMatch(re, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - this.assert( - re.exec(obj) - , 'expected #{this} to match ' + re - , 'expected #{this} not to match ' + re - ); - } - - Assertion.addMethod('match', assertMatch); - Assertion.addMethod('matches', assertMatch); - - /** - * ### .string(string) - * - * Asserts that the string target contains another string. - * - * expect('foobar').to.have.string('bar'); - * - * @name string - * @param {String} string - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - Assertion.addMethod('string', function (str, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - new Assertion(obj, msg).is.a('string'); - - this.assert( - ~obj.indexOf(str) - , 'expected #{this} to contain ' + _.inspect(str) - , 'expected #{this} to not contain ' + _.inspect(str) - ); - }); - - - /** - * ### .keys(key1, [key2], [...]) - * - * Asserts that the target contains any or all of the passed-in keys. - * Use in combination with `any`, `all`, `contains`, or `have` will affect - * what will pass. - * - * When used in conjunction with `any`, at least one key that is passed - * in must exist in the target object. This is regardless whether or not - * the `have` or `contain` qualifiers are used. Note, either `any` or `all` - * should be used in the assertion. If neither are used, the assertion is - * defaulted to `all`. - * - * When both `all` and `contain` are used, the target object must have at - * least all of the passed-in keys but may have more keys not listed. - * - * When both `all` and `have` are used, the target object must both contain - * all of the passed-in keys AND the number of keys in the target object must - * match the number of keys passed in (in other words, a target object must - * have all and only all of the passed-in keys). - * - * expect({ foo: 1, bar: 2 }).to.have.any.keys('foo', 'baz'); - * expect({ foo: 1, bar: 2 }).to.have.any.keys('foo'); - * expect({ foo: 1, bar: 2 }).to.contain.any.keys('bar', 'baz'); - * expect({ foo: 1, bar: 2 }).to.contain.any.keys(['foo']); - * expect({ foo: 1, bar: 2 }).to.contain.any.keys({'foo': 6}); - * expect({ foo: 1, bar: 2 }).to.have.all.keys(['bar', 'foo']); - * expect({ foo: 1, bar: 2 }).to.have.all.keys({'bar': 6, 'foo': 7}); - * expect({ foo: 1, bar: 2, baz: 3 }).to.contain.all.keys(['bar', 'foo']); - * expect({ foo: 1, bar: 2, baz: 3 }).to.contain.all.keys({'bar': 6}); - * - * - * @name keys - * @alias key - * @param {...String|Array|Object} keys - * @namespace BDD - * @api public - */ - - function assertKeys (keys) { - var obj = flag(this, 'object') - , str - , ok = true - , mixedArgsMsg = 'keys must be given single argument of Array|Object|String, or multiple String arguments'; - - switch (_.type(keys)) { - case "array": - if (arguments.length > 1) throw (new Error(mixedArgsMsg)); - break; - case "object": - if (arguments.length > 1) throw (new Error(mixedArgsMsg)); - keys = Object.keys(keys); - break; - default: - keys = Array.prototype.slice.call(arguments); - } - - if (!keys.length) throw new Error('keys required'); - - var actual = Object.keys(obj) - , expected = keys - , len = keys.length - , any = flag(this, 'any') - , all = flag(this, 'all'); - - if (!any && !all) { - all = true; - } - - // Has any - if (any) { - var intersection = expected.filter(function(key) { - return ~actual.indexOf(key); - }); - ok = intersection.length > 0; - } - - // Has all - if (all) { - ok = keys.every(function(key){ - return ~actual.indexOf(key); - }); - if (!flag(this, 'negate') && !flag(this, 'contains')) { - ok = ok && keys.length == actual.length; - } - } - - // Key string - if (len > 1) { - keys = keys.map(function(key){ - return _.inspect(key); - }); - var last = keys.pop(); - if (all) { - str = keys.join(', ') + ', and ' + last; - } - if (any) { - str = keys.join(', ') + ', or ' + last; - } - } else { - str = _.inspect(keys[0]); - } - - // Form - str = (len > 1 ? 'keys ' : 'key ') + str; - - // Have / include - str = (flag(this, 'contains') ? 'contain ' : 'have ') + str; - - // Assertion - this.assert( - ok - , 'expected #{this} to ' + str - , 'expected #{this} to not ' + str - , expected.slice(0).sort() - , actual.sort() - , true - ); - } - - Assertion.addMethod('keys', assertKeys); - Assertion.addMethod('key', assertKeys); - - /** - * ### .throw(constructor) - * - * Asserts that the function target will throw a specific error, or specific type of error - * (as determined using `instanceof`), optionally with a RegExp or string inclusion test - * for the error's message. - * - * var err = new ReferenceError('This is a bad function.'); - * var fn = function () { throw err; } - * expect(fn).to.throw(ReferenceError); - * expect(fn).to.throw(Error); - * expect(fn).to.throw(/bad function/); - * expect(fn).to.not.throw('good function'); - * expect(fn).to.throw(ReferenceError, /bad function/); - * expect(fn).to.throw(err); - * - * Please note that when a throw expectation is negated, it will check each - * parameter independently, starting with error constructor type. The appropriate way - * to check for the existence of a type of error but for a message that does not match - * is to use `and`. - * - * expect(fn).to.throw(ReferenceError) - * .and.not.throw(/good function/); - * - * @name throw - * @alias throws - * @alias Throw - * @param {ErrorConstructor} constructor - * @param {String|RegExp} expected error message - * @param {String} message _optional_ - * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types - * @returns error for chaining (null if no error) - * @namespace BDD - * @api public - */ - - function assertThrows (constructor, errMsg, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - new Assertion(obj, msg).is.a('function'); - - var thrown = false - , desiredError = null - , name = null - , thrownError = null; - - if (arguments.length === 0) { - errMsg = null; - constructor = null; - } else if (constructor && (constructor instanceof RegExp || 'string' === typeof constructor)) { - errMsg = constructor; - constructor = null; - } else if (constructor && constructor instanceof Error) { - desiredError = constructor; - constructor = null; - errMsg = null; - } else if (typeof constructor === 'function') { - name = constructor.prototype.name; - if (!name || (name === 'Error' && constructor !== Error)) { - name = constructor.name || (new constructor()).name; - } - } else { - constructor = null; - } - - try { - obj(); - } catch (err) { - // first, check desired error - if (desiredError) { - this.assert( - err === desiredError - , 'expected #{this} to throw #{exp} but #{act} was thrown' - , 'expected #{this} to not throw #{exp}' - , (desiredError instanceof Error ? desiredError.toString() : desiredError) - , (err instanceof Error ? err.toString() : err) - ); - - flag(this, 'object', err); - return this; - } - - // next, check constructor - if (constructor) { - this.assert( - err instanceof constructor - , 'expected #{this} to throw #{exp} but #{act} was thrown' - , 'expected #{this} to not throw #{exp} but #{act} was thrown' - , name - , (err instanceof Error ? err.toString() : err) - ); - - if (!errMsg) { - flag(this, 'object', err); - return this; - } - } - - // next, check message - var message = 'error' === _.type(err) && "message" in err - ? err.message - : '' + err; - - if ((message != null) && errMsg && errMsg instanceof RegExp) { - this.assert( - errMsg.exec(message) - , 'expected #{this} to throw error matching #{exp} but got #{act}' - , 'expected #{this} to throw error not matching #{exp}' - , errMsg - , message - ); - - flag(this, 'object', err); - return this; - } else if ((message != null) && errMsg && 'string' === typeof errMsg) { - this.assert( - ~message.indexOf(errMsg) - , 'expected #{this} to throw error including #{exp} but got #{act}' - , 'expected #{this} to throw error not including #{act}' - , errMsg - , message - ); - - flag(this, 'object', err); - return this; - } else { - thrown = true; - thrownError = err; - } - } - - var actuallyGot = '' - , expectedThrown = name !== null - ? name - : desiredError - ? '#{exp}' //_.inspect(desiredError) - : 'an error'; - - if (thrown) { - actuallyGot = ' but #{act} was thrown' - } - - this.assert( - thrown === true - , 'expected #{this} to throw ' + expectedThrown + actuallyGot - , 'expected #{this} to not throw ' + expectedThrown + actuallyGot - , (desiredError instanceof Error ? desiredError.toString() : desiredError) - , (thrownError instanceof Error ? thrownError.toString() : thrownError) - ); - - flag(this, 'object', thrownError); - }; - - Assertion.addMethod('throw', assertThrows); - Assertion.addMethod('throws', assertThrows); - Assertion.addMethod('Throw', assertThrows); - - /** - * ### .respondTo(method) - * - * Asserts that the object or class target will respond to a method. - * - * Klass.prototype.bar = function(){}; - * expect(Klass).to.respondTo('bar'); - * expect(obj).to.respondTo('bar'); - * - * To check if a constructor will respond to a static function, - * set the `itself` flag. - * - * Klass.baz = function(){}; - * expect(Klass).itself.to.respondTo('baz'); - * - * @name respondTo - * @alias respondsTo - * @param {String} method - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function respondTo (method, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object') - , itself = flag(this, 'itself') - , context = ('function' === _.type(obj) && !itself) - ? obj.prototype[method] - : obj[method]; - - this.assert( - 'function' === typeof context - , 'expected #{this} to respond to ' + _.inspect(method) - , 'expected #{this} to not respond to ' + _.inspect(method) - ); - } - - Assertion.addMethod('respondTo', respondTo); - Assertion.addMethod('respondsTo', respondTo); - - /** - * ### .itself - * - * Sets the `itself` flag, later used by the `respondTo` assertion. - * - * function Foo() {} - * Foo.bar = function() {} - * Foo.prototype.baz = function() {} - * - * expect(Foo).itself.to.respondTo('bar'); - * expect(Foo).itself.not.to.respondTo('baz'); - * - * @name itself - * @namespace BDD - * @api public - */ - - Assertion.addProperty('itself', function () { - flag(this, 'itself', true); - }); - - /** - * ### .satisfy(method) - * - * Asserts that the target passes a given truth test. - * - * expect(1).to.satisfy(function(num) { return num > 0; }); - * - * @name satisfy - * @alias satisfies - * @param {Function} matcher - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function satisfy (matcher, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - var result = matcher(obj); - this.assert( - result - , 'expected #{this} to satisfy ' + _.objDisplay(matcher) - , 'expected #{this} to not satisfy' + _.objDisplay(matcher) - , this.negate ? false : true - , result - ); - } - - Assertion.addMethod('satisfy', satisfy); - Assertion.addMethod('satisfies', satisfy); - - /** - * ### .closeTo(expected, delta) - * - * Asserts that the target is equal `expected`, to within a +/- `delta` range. - * - * expect(1.5).to.be.closeTo(1, 0.5); - * - * @name closeTo - * @alias approximately - * @param {Number} expected - * @param {Number} delta - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function closeTo(expected, delta, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - - new Assertion(obj, msg).is.a('number'); - if (_.type(expected) !== 'number' || _.type(delta) !== 'number') { - throw new Error('the arguments to closeTo or approximately must be numbers'); - } - - this.assert( - Math.abs(obj - expected) <= delta - , 'expected #{this} to be close to ' + expected + ' +/- ' + delta - , 'expected #{this} not to be close to ' + expected + ' +/- ' + delta - ); - } - - Assertion.addMethod('closeTo', closeTo); - Assertion.addMethod('approximately', closeTo); - - function isSubsetOf(subset, superset, cmp) { - return subset.every(function(elem) { - if (!cmp) return superset.indexOf(elem) !== -1; - - return superset.some(function(elem2) { - return cmp(elem, elem2); - }); - }) - } - - /** - * ### .members(set) - * - * Asserts that the target is a superset of `set`, - * or that the target and `set` have the same strictly-equal (===) members. - * Alternately, if the `deep` flag is set, set members are compared for deep - * equality. - * - * expect([1, 2, 3]).to.include.members([3, 2]); - * expect([1, 2, 3]).to.not.include.members([3, 2, 8]); - * - * expect([4, 2]).to.have.members([2, 4]); - * expect([5, 2]).to.not.have.members([5, 2, 1]); - * - * expect([{ id: 1 }]).to.deep.include.members([{ id: 1 }]); - * - * @name members - * @param {Array} set - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - Assertion.addMethod('members', function (subset, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - - new Assertion(obj).to.be.an('array'); - new Assertion(subset).to.be.an('array'); - - var cmp = flag(this, 'deep') ? _.eql : undefined; - - if (flag(this, 'contains')) { - return this.assert( - isSubsetOf(subset, obj, cmp) - , 'expected #{this} to be a superset of #{act}' - , 'expected #{this} to not be a superset of #{act}' - , obj - , subset - ); - } - - this.assert( - isSubsetOf(obj, subset, cmp) && isSubsetOf(subset, obj, cmp) - , 'expected #{this} to have the same members as #{act}' - , 'expected #{this} to not have the same members as #{act}' - , obj - , subset - ); - }); - - /** - * ### .oneOf(list) - * - * Assert that a value appears somewhere in the top level of array `list`. - * - * expect('a').to.be.oneOf(['a', 'b', 'c']); - * expect(9).to.not.be.oneOf(['z']); - * expect([3]).to.not.be.oneOf([1, 2, [3]]); - * - * var three = [3]; - * // for object-types, contents are not compared - * expect(three).to.not.be.oneOf([1, 2, [3]]); - * // comparing references works - * expect(three).to.be.oneOf([1, 2, three]); - * - * @name oneOf - * @param {Array<*>} list - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function oneOf (list, msg) { - if (msg) flag(this, 'message', msg); - var expected = flag(this, 'object'); - new Assertion(list).to.be.an('array'); - - this.assert( - list.indexOf(expected) > -1 - , 'expected #{this} to be one of #{exp}' - , 'expected #{this} to not be one of #{exp}' - , list - , expected - ); - } - - Assertion.addMethod('oneOf', oneOf); - - - /** - * ### .change(function) - * - * Asserts that a function changes an object property - * - * var obj = { val: 10 }; - * var fn = function() { obj.val += 3 }; - * var noChangeFn = function() { return 'foo' + 'bar'; } - * expect(fn).to.change(obj, 'val'); - * expect(noChangeFn).to.not.change(obj, 'val') - * - * @name change - * @alias changes - * @alias Change - * @param {String} object - * @param {String} property name - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function assertChanges (object, prop, msg) { - if (msg) flag(this, 'message', msg); - var fn = flag(this, 'object'); - new Assertion(object, msg).to.have.property(prop); - new Assertion(fn).is.a('function'); - - var initial = object[prop]; - fn(); - - this.assert( - initial !== object[prop] - , 'expected .' + prop + ' to change' - , 'expected .' + prop + ' to not change' - ); - } - - Assertion.addChainableMethod('change', assertChanges); - Assertion.addChainableMethod('changes', assertChanges); - - /** - * ### .increase(function) - * - * Asserts that a function increases an object property - * - * var obj = { val: 10 }; - * var fn = function() { obj.val = 15 }; - * expect(fn).to.increase(obj, 'val'); - * - * @name increase - * @alias increases - * @alias Increase - * @param {String} object - * @param {String} property name - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function assertIncreases (object, prop, msg) { - if (msg) flag(this, 'message', msg); - var fn = flag(this, 'object'); - new Assertion(object, msg).to.have.property(prop); - new Assertion(fn).is.a('function'); - - var initial = object[prop]; - fn(); - - this.assert( - object[prop] - initial > 0 - , 'expected .' + prop + ' to increase' - , 'expected .' + prop + ' to not increase' - ); - } - - Assertion.addChainableMethod('increase', assertIncreases); - Assertion.addChainableMethod('increases', assertIncreases); - - /** - * ### .decrease(function) - * - * Asserts that a function decreases an object property - * - * var obj = { val: 10 }; - * var fn = function() { obj.val = 5 }; - * expect(fn).to.decrease(obj, 'val'); - * - * @name decrease - * @alias decreases - * @alias Decrease - * @param {String} object - * @param {String} property name - * @param {String} message _optional_ - * @namespace BDD - * @api public - */ - - function assertDecreases (object, prop, msg) { - if (msg) flag(this, 'message', msg); - var fn = flag(this, 'object'); - new Assertion(object, msg).to.have.property(prop); - new Assertion(fn).is.a('function'); - - var initial = object[prop]; - fn(); - - this.assert( - object[prop] - initial < 0 - , 'expected .' + prop + ' to decrease' - , 'expected .' + prop + ' to not decrease' - ); - } - - Assertion.addChainableMethod('decrease', assertDecreases); - Assertion.addChainableMethod('decreases', assertDecreases); - - /** - * ### .extensible - * - * Asserts that the target is extensible (can have new properties added to - * it). - * - * var nonExtensibleObject = Object.preventExtensions({}); - * var sealedObject = Object.seal({}); - * var frozenObject = Object.freeze({}); - * - * expect({}).to.be.extensible; - * expect(nonExtensibleObject).to.not.be.extensible; - * expect(sealedObject).to.not.be.extensible; - * expect(frozenObject).to.not.be.extensible; - * - * @name extensible - * @namespace BDD - * @api public - */ - - Assertion.addProperty('extensible', function() { - var obj = flag(this, 'object'); - - // In ES5, if the argument to this method is not an object (a primitive), then it will cause a TypeError. - // In ES6, a non-object argument will be treated as if it was a non-extensible ordinary object, simply return false. - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible - // The following provides ES6 behavior when a TypeError is thrown under ES5. - - var isExtensible; - - try { - isExtensible = Object.isExtensible(obj); - } catch (err) { - if (err instanceof TypeError) isExtensible = false; - else throw err; - } - - this.assert( - isExtensible - , 'expected #{this} to be extensible' - , 'expected #{this} to not be extensible' - ); - }); - - /** - * ### .sealed - * - * Asserts that the target is sealed (cannot have new properties added to it - * and its existing properties cannot be removed). - * - * var sealedObject = Object.seal({}); - * var frozenObject = Object.freeze({}); - * - * expect(sealedObject).to.be.sealed; - * expect(frozenObject).to.be.sealed; - * expect({}).to.not.be.sealed; - * - * @name sealed - * @namespace BDD - * @api public - */ - - Assertion.addProperty('sealed', function() { - var obj = flag(this, 'object'); - - // In ES5, if the argument to this method is not an object (a primitive), then it will cause a TypeError. - // In ES6, a non-object argument will be treated as if it was a sealed ordinary object, simply return true. - // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isSealed - // The following provides ES6 behavior when a TypeError is thrown under ES5. - - var isSealed; - - try { - isSealed = Object.isSealed(obj); - } catch (err) { - if (err instanceof TypeError) isSealed = true; - else throw err; - } - - this.assert( - isSealed - , 'expected #{this} to be sealed' - , 'expected #{this} to not be sealed' - ); - }); - - /** - * ### .frozen - * - * Asserts that the target is frozen (cannot have new properties added to it - * and its existing properties cannot be modified). - * - * var frozenObject = Object.freeze({}); - * - * expect(frozenObject).to.be.frozen; - * expect({}).to.not.be.frozen; - * - * @name frozen - * @namespace BDD - * @api public - */ - - Assertion.addProperty('frozen', function() { - var obj = flag(this, 'object'); - - // In ES5, if the argument to this method is not an object (a primitive), then it will cause a TypeError. - // In ES6, a non-object argument will be treated as if it was a frozen ordinary object, simply return true. - // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen - // The following provides ES6 behavior when a TypeError is thrown under ES5. - - var isFrozen; - - try { - isFrozen = Object.isFrozen(obj); - } catch (err) { - if (err instanceof TypeError) isFrozen = true; - else throw err; - } - - this.assert( - isFrozen - , 'expected #{this} to be frozen' - , 'expected #{this} to not be frozen' - ); - }); -}; - -},{}],6:[function(require,module,exports){ -/*! - * chai - * Copyright(c) 2011-2014 Jake Luer - * MIT Licensed - */ - - -module.exports = function (chai, util) { - - /*! - * Chai dependencies. - */ - - var Assertion = chai.Assertion - , flag = util.flag; - - /*! - * Module export. - */ - - /** - * ### assert(expression, message) - * - * Write your own test expressions. - * - * assert('foo' !== 'bar', 'foo is not bar'); - * assert(Array.isArray([]), 'empty arrays are arrays'); - * - * @param {Mixed} expression to test for truthiness - * @param {String} message to display on error - * @name assert - * @namespace Assert - * @api public - */ - - var assert = chai.assert = function (express, errmsg) { - var test = new Assertion(null, null, chai.assert); - test.assert( - express - , errmsg - , '[ negation message unavailable ]' - ); - }; - - /** - * ### .fail(actual, expected, [message], [operator]) - * - * Throw a failure. Node.js `assert` module-compatible. - * - * @name fail - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @param {String} operator - * @namespace Assert - * @api public - */ - - assert.fail = function (actual, expected, message, operator) { - message = message || 'assert.fail()'; - throw new chai.AssertionError(message, { - actual: actual - , expected: expected - , operator: operator - }, assert.fail); - }; - - /** - * ### .isOk(object, [message]) - * - * Asserts that `object` is truthy. - * - * assert.isOk('everything', 'everything is ok'); - * assert.isOk(false, 'this will fail'); - * - * @name isOk - * @alias ok - * @param {Mixed} object to test - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isOk = function (val, msg) { - new Assertion(val, msg).is.ok; - }; - - /** - * ### .isNotOk(object, [message]) - * - * Asserts that `object` is falsy. - * - * assert.isNotOk('everything', 'this will fail'); - * assert.isNotOk(false, 'this will pass'); - * - * @name isNotOk - * @alias notOk - * @param {Mixed} object to test - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotOk = function (val, msg) { - new Assertion(val, msg).is.not.ok; - }; - - /** - * ### .equal(actual, expected, [message]) - * - * Asserts non-strict equality (`==`) of `actual` and `expected`. - * - * assert.equal(3, '3', '== coerces values to strings'); - * - * @name equal - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.equal = function (act, exp, msg) { - var test = new Assertion(act, msg, assert.equal); - - test.assert( - exp == flag(test, 'object') - , 'expected #{this} to equal #{exp}' - , 'expected #{this} to not equal #{act}' - , exp - , act - ); - }; - - /** - * ### .notEqual(actual, expected, [message]) - * - * Asserts non-strict inequality (`!=`) of `actual` and `expected`. - * - * assert.notEqual(3, 4, 'these numbers are not equal'); - * - * @name notEqual - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notEqual = function (act, exp, msg) { - var test = new Assertion(act, msg, assert.notEqual); - - test.assert( - exp != flag(test, 'object') - , 'expected #{this} to not equal #{exp}' - , 'expected #{this} to equal #{act}' - , exp - , act - ); - }; - - /** - * ### .strictEqual(actual, expected, [message]) - * - * Asserts strict equality (`===`) of `actual` and `expected`. - * - * assert.strictEqual(true, true, 'these booleans are strictly equal'); - * - * @name strictEqual - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.strictEqual = function (act, exp, msg) { - new Assertion(act, msg).to.equal(exp); - }; - - /** - * ### .notStrictEqual(actual, expected, [message]) - * - * Asserts strict inequality (`!==`) of `actual` and `expected`. - * - * assert.notStrictEqual(3, '3', 'no coercion for strict equality'); - * - * @name notStrictEqual - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notStrictEqual = function (act, exp, msg) { - new Assertion(act, msg).to.not.equal(exp); - }; - - /** - * ### .deepEqual(actual, expected, [message]) - * - * Asserts that `actual` is deeply equal to `expected`. - * - * assert.deepEqual({ tea: 'green' }, { tea: 'green' }); - * - * @name deepEqual - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.deepEqual = function (act, exp, msg) { - new Assertion(act, msg).to.eql(exp); - }; - - /** - * ### .notDeepEqual(actual, expected, [message]) - * - * Assert that `actual` is not deeply equal to `expected`. - * - * assert.notDeepEqual({ tea: 'green' }, { tea: 'jasmine' }); - * - * @name notDeepEqual - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notDeepEqual = function (act, exp, msg) { - new Assertion(act, msg).to.not.eql(exp); - }; - - /** - * ### .isAbove(valueToCheck, valueToBeAbove, [message]) - * - * Asserts `valueToCheck` is strictly greater than (>) `valueToBeAbove` - * - * assert.isAbove(5, 2, '5 is strictly greater than 2'); - * - * @name isAbove - * @param {Mixed} valueToCheck - * @param {Mixed} valueToBeAbove - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isAbove = function (val, abv, msg) { - new Assertion(val, msg).to.be.above(abv); - }; - - /** - * ### .isAtLeast(valueToCheck, valueToBeAtLeast, [message]) - * - * Asserts `valueToCheck` is greater than or equal to (>=) `valueToBeAtLeast` - * - * assert.isAtLeast(5, 2, '5 is greater or equal to 2'); - * assert.isAtLeast(3, 3, '3 is greater or equal to 3'); - * - * @name isAtLeast - * @param {Mixed} valueToCheck - * @param {Mixed} valueToBeAtLeast - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isAtLeast = function (val, atlst, msg) { - new Assertion(val, msg).to.be.least(atlst); - }; - - /** - * ### .isBelow(valueToCheck, valueToBeBelow, [message]) - * - * Asserts `valueToCheck` is strictly less than (<) `valueToBeBelow` - * - * assert.isBelow(3, 6, '3 is strictly less than 6'); - * - * @name isBelow - * @param {Mixed} valueToCheck - * @param {Mixed} valueToBeBelow - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isBelow = function (val, blw, msg) { - new Assertion(val, msg).to.be.below(blw); - }; - - /** - * ### .isAtMost(valueToCheck, valueToBeAtMost, [message]) - * - * Asserts `valueToCheck` is less than or equal to (<=) `valueToBeAtMost` - * - * assert.isAtMost(3, 6, '3 is less than or equal to 6'); - * assert.isAtMost(4, 4, '4 is less than or equal to 4'); - * - * @name isAtMost - * @param {Mixed} valueToCheck - * @param {Mixed} valueToBeAtMost - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isAtMost = function (val, atmst, msg) { - new Assertion(val, msg).to.be.most(atmst); - }; - - /** - * ### .isTrue(value, [message]) - * - * Asserts that `value` is true. - * - * var teaServed = true; - * assert.isTrue(teaServed, 'the tea has been served'); - * - * @name isTrue - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isTrue = function (val, msg) { - new Assertion(val, msg).is['true']; - }; - - /** - * ### .isNotTrue(value, [message]) - * - * Asserts that `value` is not true. - * - * var tea = 'tasty chai'; - * assert.isNotTrue(tea, 'great, time for tea!'); - * - * @name isNotTrue - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotTrue = function (val, msg) { - new Assertion(val, msg).to.not.equal(true); - }; - - /** - * ### .isFalse(value, [message]) - * - * Asserts that `value` is false. - * - * var teaServed = false; - * assert.isFalse(teaServed, 'no tea yet? hmm...'); - * - * @name isFalse - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isFalse = function (val, msg) { - new Assertion(val, msg).is['false']; - }; - - /** - * ### .isNotFalse(value, [message]) - * - * Asserts that `value` is not false. - * - * var tea = 'tasty chai'; - * assert.isNotFalse(tea, 'great, time for tea!'); - * - * @name isNotFalse - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotFalse = function (val, msg) { - new Assertion(val, msg).to.not.equal(false); - }; - - /** - * ### .isNull(value, [message]) - * - * Asserts that `value` is null. - * - * assert.isNull(err, 'there was no error'); - * - * @name isNull - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNull = function (val, msg) { - new Assertion(val, msg).to.equal(null); - }; - - /** - * ### .isNotNull(value, [message]) - * - * Asserts that `value` is not null. - * - * var tea = 'tasty chai'; - * assert.isNotNull(tea, 'great, time for tea!'); - * - * @name isNotNull - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotNull = function (val, msg) { - new Assertion(val, msg).to.not.equal(null); - }; - - /** - * ### .isNaN - * Asserts that value is NaN - * - * assert.isNaN('foo', 'foo is NaN'); - * - * @name isNaN - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNaN = function (val, msg) { - new Assertion(val, msg).to.be.NaN; - }; - - /** - * ### .isNotNaN - * Asserts that value is not NaN - * - * assert.isNotNaN(4, '4 is not NaN'); - * - * @name isNotNaN - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - assert.isNotNaN = function (val, msg) { - new Assertion(val, msg).not.to.be.NaN; - }; - - /** - * ### .isUndefined(value, [message]) - * - * Asserts that `value` is `undefined`. - * - * var tea; - * assert.isUndefined(tea, 'no tea defined'); - * - * @name isUndefined - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isUndefined = function (val, msg) { - new Assertion(val, msg).to.equal(undefined); - }; - - /** - * ### .isDefined(value, [message]) - * - * Asserts that `value` is not `undefined`. - * - * var tea = 'cup of chai'; - * assert.isDefined(tea, 'tea has been defined'); - * - * @name isDefined - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isDefined = function (val, msg) { - new Assertion(val, msg).to.not.equal(undefined); - }; - - /** - * ### .isFunction(value, [message]) - * - * Asserts that `value` is a function. - * - * function serveTea() { return 'cup of tea'; }; - * assert.isFunction(serveTea, 'great, we can have tea now'); - * - * @name isFunction - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isFunction = function (val, msg) { - new Assertion(val, msg).to.be.a('function'); - }; - - /** - * ### .isNotFunction(value, [message]) - * - * Asserts that `value` is _not_ a function. - * - * var serveTea = [ 'heat', 'pour', 'sip' ]; - * assert.isNotFunction(serveTea, 'great, we have listed the steps'); - * - * @name isNotFunction - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotFunction = function (val, msg) { - new Assertion(val, msg).to.not.be.a('function'); - }; - - /** - * ### .isObject(value, [message]) - * - * Asserts that `value` is an object of type 'Object' (as revealed by `Object.prototype.toString`). - * _The assertion does not match subclassed objects._ - * - * var selection = { name: 'Chai', serve: 'with spices' }; - * assert.isObject(selection, 'tea selection is an object'); - * - * @name isObject - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isObject = function (val, msg) { - new Assertion(val, msg).to.be.a('object'); - }; - - /** - * ### .isNotObject(value, [message]) - * - * Asserts that `value` is _not_ an object of type 'Object' (as revealed by `Object.prototype.toString`). - * - * var selection = 'chai' - * assert.isNotObject(selection, 'tea selection is not an object'); - * assert.isNotObject(null, 'null is not an object'); - * - * @name isNotObject - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotObject = function (val, msg) { - new Assertion(val, msg).to.not.be.a('object'); - }; - - /** - * ### .isArray(value, [message]) - * - * Asserts that `value` is an array. - * - * var menu = [ 'green', 'chai', 'oolong' ]; - * assert.isArray(menu, 'what kind of tea do we want?'); - * - * @name isArray - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isArray = function (val, msg) { - new Assertion(val, msg).to.be.an('array'); - }; - - /** - * ### .isNotArray(value, [message]) - * - * Asserts that `value` is _not_ an array. - * - * var menu = 'green|chai|oolong'; - * assert.isNotArray(menu, 'what kind of tea do we want?'); - * - * @name isNotArray - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotArray = function (val, msg) { - new Assertion(val, msg).to.not.be.an('array'); - }; - - /** - * ### .isString(value, [message]) - * - * Asserts that `value` is a string. - * - * var teaOrder = 'chai'; - * assert.isString(teaOrder, 'order placed'); - * - * @name isString - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isString = function (val, msg) { - new Assertion(val, msg).to.be.a('string'); - }; - - /** - * ### .isNotString(value, [message]) - * - * Asserts that `value` is _not_ a string. - * - * var teaOrder = 4; - * assert.isNotString(teaOrder, 'order placed'); - * - * @name isNotString - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotString = function (val, msg) { - new Assertion(val, msg).to.not.be.a('string'); - }; - - /** - * ### .isNumber(value, [message]) - * - * Asserts that `value` is a number. - * - * var cups = 2; - * assert.isNumber(cups, 'how many cups'); - * - * @name isNumber - * @param {Number} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNumber = function (val, msg) { - new Assertion(val, msg).to.be.a('number'); - }; - - /** - * ### .isNotNumber(value, [message]) - * - * Asserts that `value` is _not_ a number. - * - * var cups = '2 cups please'; - * assert.isNotNumber(cups, 'how many cups'); - * - * @name isNotNumber - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotNumber = function (val, msg) { - new Assertion(val, msg).to.not.be.a('number'); - }; - - /** - * ### .isBoolean(value, [message]) - * - * Asserts that `value` is a boolean. - * - * var teaReady = true - * , teaServed = false; - * - * assert.isBoolean(teaReady, 'is the tea ready'); - * assert.isBoolean(teaServed, 'has tea been served'); - * - * @name isBoolean - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isBoolean = function (val, msg) { - new Assertion(val, msg).to.be.a('boolean'); - }; - - /** - * ### .isNotBoolean(value, [message]) - * - * Asserts that `value` is _not_ a boolean. - * - * var teaReady = 'yep' - * , teaServed = 'nope'; - * - * assert.isNotBoolean(teaReady, 'is the tea ready'); - * assert.isNotBoolean(teaServed, 'has tea been served'); - * - * @name isNotBoolean - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotBoolean = function (val, msg) { - new Assertion(val, msg).to.not.be.a('boolean'); - }; - - /** - * ### .typeOf(value, name, [message]) - * - * Asserts that `value`'s type is `name`, as determined by - * `Object.prototype.toString`. - * - * assert.typeOf({ tea: 'chai' }, 'object', 'we have an object'); - * assert.typeOf(['chai', 'jasmine'], 'array', 'we have an array'); - * assert.typeOf('tea', 'string', 'we have a string'); - * assert.typeOf(/tea/, 'regexp', 'we have a regular expression'); - * assert.typeOf(null, 'null', 'we have a null'); - * assert.typeOf(undefined, 'undefined', 'we have an undefined'); - * - * @name typeOf - * @param {Mixed} value - * @param {String} name - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.typeOf = function (val, type, msg) { - new Assertion(val, msg).to.be.a(type); - }; - - /** - * ### .notTypeOf(value, name, [message]) - * - * Asserts that `value`'s type is _not_ `name`, as determined by - * `Object.prototype.toString`. - * - * assert.notTypeOf('tea', 'number', 'strings are not numbers'); - * - * @name notTypeOf - * @param {Mixed} value - * @param {String} typeof name - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notTypeOf = function (val, type, msg) { - new Assertion(val, msg).to.not.be.a(type); - }; - - /** - * ### .instanceOf(object, constructor, [message]) - * - * Asserts that `value` is an instance of `constructor`. - * - * var Tea = function (name) { this.name = name; } - * , chai = new Tea('chai'); - * - * assert.instanceOf(chai, Tea, 'chai is an instance of tea'); - * - * @name instanceOf - * @param {Object} object - * @param {Constructor} constructor - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.instanceOf = function (val, type, msg) { - new Assertion(val, msg).to.be.instanceOf(type); - }; - - /** - * ### .notInstanceOf(object, constructor, [message]) - * - * Asserts `value` is not an instance of `constructor`. - * - * var Tea = function (name) { this.name = name; } - * , chai = new String('chai'); - * - * assert.notInstanceOf(chai, Tea, 'chai is not an instance of tea'); - * - * @name notInstanceOf - * @param {Object} object - * @param {Constructor} constructor - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notInstanceOf = function (val, type, msg) { - new Assertion(val, msg).to.not.be.instanceOf(type); - }; - - /** - * ### .include(haystack, needle, [message]) - * - * Asserts that `haystack` includes `needle`. Works - * for strings and arrays. - * - * assert.include('foobar', 'bar', 'foobar contains string "bar"'); - * assert.include([ 1, 2, 3 ], 3, 'array contains value'); - * - * @name include - * @param {Array|String} haystack - * @param {Mixed} needle - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.include = function (exp, inc, msg) { - new Assertion(exp, msg, assert.include).include(inc); - }; - - /** - * ### .notInclude(haystack, needle, [message]) - * - * Asserts that `haystack` does not include `needle`. Works - * for strings and arrays. - * - * assert.notInclude('foobar', 'baz', 'string not include substring'); - * assert.notInclude([ 1, 2, 3 ], 4, 'array not include contain value'); - * - * @name notInclude - * @param {Array|String} haystack - * @param {Mixed} needle - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notInclude = function (exp, inc, msg) { - new Assertion(exp, msg, assert.notInclude).not.include(inc); - }; - - /** - * ### .match(value, regexp, [message]) - * - * Asserts that `value` matches the regular expression `regexp`. - * - * assert.match('foobar', /^foo/, 'regexp matches'); - * - * @name match - * @param {Mixed} value - * @param {RegExp} regexp - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.match = function (exp, re, msg) { - new Assertion(exp, msg).to.match(re); - }; - - /** - * ### .notMatch(value, regexp, [message]) - * - * Asserts that `value` does not match the regular expression `regexp`. - * - * assert.notMatch('foobar', /^foo/, 'regexp does not match'); - * - * @name notMatch - * @param {Mixed} value - * @param {RegExp} regexp - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notMatch = function (exp, re, msg) { - new Assertion(exp, msg).to.not.match(re); - }; - - /** - * ### .property(object, property, [message]) - * - * Asserts that `object` has a property named by `property`. - * - * assert.property({ tea: { green: 'matcha' }}, 'tea'); - * - * @name property - * @param {Object} object - * @param {String} property - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.property = function (obj, prop, msg) { - new Assertion(obj, msg).to.have.property(prop); - }; - - /** - * ### .notProperty(object, property, [message]) - * - * Asserts that `object` does _not_ have a property named by `property`. - * - * assert.notProperty({ tea: { green: 'matcha' }}, 'coffee'); - * - * @name notProperty - * @param {Object} object - * @param {String} property - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notProperty = function (obj, prop, msg) { - new Assertion(obj, msg).to.not.have.property(prop); - }; - - /** - * ### .deepProperty(object, property, [message]) - * - * Asserts that `object` has a property named by `property`, which can be a - * string using dot- and bracket-notation for deep reference. - * - * assert.deepProperty({ tea: { green: 'matcha' }}, 'tea.green'); - * - * @name deepProperty - * @param {Object} object - * @param {String} property - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.deepProperty = function (obj, prop, msg) { - new Assertion(obj, msg).to.have.deep.property(prop); - }; - - /** - * ### .notDeepProperty(object, property, [message]) - * - * Asserts that `object` does _not_ have a property named by `property`, which - * can be a string using dot- and bracket-notation for deep reference. - * - * assert.notDeepProperty({ tea: { green: 'matcha' }}, 'tea.oolong'); - * - * @name notDeepProperty - * @param {Object} object - * @param {String} property - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notDeepProperty = function (obj, prop, msg) { - new Assertion(obj, msg).to.not.have.deep.property(prop); - }; - - /** - * ### .propertyVal(object, property, value, [message]) - * - * Asserts that `object` has a property named by `property` with value given - * by `value`. - * - * assert.propertyVal({ tea: 'is good' }, 'tea', 'is good'); - * - * @name propertyVal - * @param {Object} object - * @param {String} property - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.propertyVal = function (obj, prop, val, msg) { - new Assertion(obj, msg).to.have.property(prop, val); - }; - - /** - * ### .propertyNotVal(object, property, value, [message]) - * - * Asserts that `object` has a property named by `property`, but with a value - * different from that given by `value`. - * - * assert.propertyNotVal({ tea: 'is good' }, 'tea', 'is bad'); - * - * @name propertyNotVal - * @param {Object} object - * @param {String} property - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.propertyNotVal = function (obj, prop, val, msg) { - new Assertion(obj, msg).to.not.have.property(prop, val); - }; - - /** - * ### .deepPropertyVal(object, property, value, [message]) - * - * Asserts that `object` has a property named by `property` with value given - * by `value`. `property` can use dot- and bracket-notation for deep - * reference. - * - * assert.deepPropertyVal({ tea: { green: 'matcha' }}, 'tea.green', 'matcha'); - * - * @name deepPropertyVal - * @param {Object} object - * @param {String} property - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.deepPropertyVal = function (obj, prop, val, msg) { - new Assertion(obj, msg).to.have.deep.property(prop, val); - }; - - /** - * ### .deepPropertyNotVal(object, property, value, [message]) - * - * Asserts that `object` has a property named by `property`, but with a value - * different from that given by `value`. `property` can use dot- and - * bracket-notation for deep reference. - * - * assert.deepPropertyNotVal({ tea: { green: 'matcha' }}, 'tea.green', 'konacha'); - * - * @name deepPropertyNotVal - * @param {Object} object - * @param {String} property - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.deepPropertyNotVal = function (obj, prop, val, msg) { - new Assertion(obj, msg).to.not.have.deep.property(prop, val); - }; - - /** - * ### .lengthOf(object, length, [message]) - * - * Asserts that `object` has a `length` property with the expected value. - * - * assert.lengthOf([1,2,3], 3, 'array has length of 3'); - * assert.lengthOf('foobar', 6, 'string has length of 6'); - * - * @name lengthOf - * @param {Mixed} object - * @param {Number} length - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.lengthOf = function (exp, len, msg) { - new Assertion(exp, msg).to.have.length(len); - }; - - /** - * ### .throws(function, [constructor/string/regexp], [string/regexp], [message]) - * - * Asserts that `function` will throw an error that is an instance of - * `constructor`, or alternately that it will throw an error with message - * matching `regexp`. - * - * assert.throws(fn, 'function throws a reference error'); - * assert.throws(fn, /function throws a reference error/); - * assert.throws(fn, ReferenceError); - * assert.throws(fn, ReferenceError, 'function throws a reference error'); - * assert.throws(fn, ReferenceError, /function throws a reference error/); - * - * @name throws - * @alias throw - * @alias Throw - * @param {Function} function - * @param {ErrorConstructor} constructor - * @param {RegExp} regexp - * @param {String} message - * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types - * @namespace Assert - * @api public - */ - - assert.throws = function (fn, errt, errs, msg) { - if ('string' === typeof errt || errt instanceof RegExp) { - errs = errt; - errt = null; - } - - var assertErr = new Assertion(fn, msg).to.throw(errt, errs); - return flag(assertErr, 'object'); - }; - - /** - * ### .doesNotThrow(function, [constructor/regexp], [message]) - * - * Asserts that `function` will _not_ throw an error that is an instance of - * `constructor`, or alternately that it will not throw an error with message - * matching `regexp`. - * - * assert.doesNotThrow(fn, Error, 'function does not throw'); - * - * @name doesNotThrow - * @param {Function} function - * @param {ErrorConstructor} constructor - * @param {RegExp} regexp - * @param {String} message - * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types - * @namespace Assert - * @api public - */ - - assert.doesNotThrow = function (fn, type, msg) { - if ('string' === typeof type) { - msg = type; - type = null; - } - - new Assertion(fn, msg).to.not.Throw(type); - }; - - /** - * ### .operator(val1, operator, val2, [message]) - * - * Compares two values using `operator`. - * - * assert.operator(1, '<', 2, 'everything is ok'); - * assert.operator(1, '>', 2, 'this will fail'); - * - * @name operator - * @param {Mixed} val1 - * @param {String} operator - * @param {Mixed} val2 - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.operator = function (val, operator, val2, msg) { - var ok; - switch(operator) { - case '==': - ok = val == val2; - break; - case '===': - ok = val === val2; - break; - case '>': - ok = val > val2; - break; - case '>=': - ok = val >= val2; - break; - case '<': - ok = val < val2; - break; - case '<=': - ok = val <= val2; - break; - case '!=': - ok = val != val2; - break; - case '!==': - ok = val !== val2; - break; - default: - throw new Error('Invalid operator "' + operator + '"'); - } - var test = new Assertion(ok, msg); - test.assert( - true === flag(test, 'object') - , 'expected ' + util.inspect(val) + ' to be ' + operator + ' ' + util.inspect(val2) - , 'expected ' + util.inspect(val) + ' to not be ' + operator + ' ' + util.inspect(val2) ); - }; - - /** - * ### .closeTo(actual, expected, delta, [message]) - * - * Asserts that the target is equal `expected`, to within a +/- `delta` range. - * - * assert.closeTo(1.5, 1, 0.5, 'numbers are close'); - * - * @name closeTo - * @param {Number} actual - * @param {Number} expected - * @param {Number} delta - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.closeTo = function (act, exp, delta, msg) { - new Assertion(act, msg).to.be.closeTo(exp, delta); - }; - - /** - * ### .approximately(actual, expected, delta, [message]) - * - * Asserts that the target is equal `expected`, to within a +/- `delta` range. - * - * assert.approximately(1.5, 1, 0.5, 'numbers are close'); - * - * @name approximately - * @param {Number} actual - * @param {Number} expected - * @param {Number} delta - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.approximately = function (act, exp, delta, msg) { - new Assertion(act, msg).to.be.approximately(exp, delta); - }; - - /** - * ### .sameMembers(set1, set2, [message]) - * - * Asserts that `set1` and `set2` have the same members. - * Order is not taken into account. - * - * assert.sameMembers([ 1, 2, 3 ], [ 2, 1, 3 ], 'same members'); - * - * @name sameMembers - * @param {Array} set1 - * @param {Array} set2 - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.sameMembers = function (set1, set2, msg) { - new Assertion(set1, msg).to.have.same.members(set2); - } - - /** - * ### .sameDeepMembers(set1, set2, [message]) - * - * Asserts that `set1` and `set2` have the same members - using a deep equality checking. - * Order is not taken into account. - * - * assert.sameDeepMembers([ {b: 3}, {a: 2}, {c: 5} ], [ {c: 5}, {b: 3}, {a: 2} ], 'same deep members'); - * - * @name sameDeepMembers - * @param {Array} set1 - * @param {Array} set2 - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.sameDeepMembers = function (set1, set2, msg) { - new Assertion(set1, msg).to.have.same.deep.members(set2); - } - - /** - * ### .includeMembers(superset, subset, [message]) - * - * Asserts that `subset` is included in `superset`. - * Order is not taken into account. - * - * assert.includeMembers([ 1, 2, 3 ], [ 2, 1 ], 'include members'); - * - * @name includeMembers - * @param {Array} superset - * @param {Array} subset - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.includeMembers = function (superset, subset, msg) { - new Assertion(superset, msg).to.include.members(subset); - } - - /** - * ### .includeDeepMembers(superset, subset, [message]) - * - * Asserts that `subset` is included in `superset` - using deep equality checking. - * Order is not taken into account. - * Duplicates are ignored. - * - * assert.includeDeepMembers([ {a: 1}, {b: 2}, {c: 3} ], [ {b: 2}, {a: 1}, {b: 2} ], 'include deep members'); - * - * @name includeDeepMembers - * @param {Array} superset - * @param {Array} subset - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.includeDeepMembers = function (superset, subset, msg) { - new Assertion(superset, msg).to.include.deep.members(subset); - } - - /** - * ### .oneOf(inList, list, [message]) - * - * Asserts that non-object, non-array value `inList` appears in the flat array `list`. - * - * assert.oneOf(1, [ 2, 1 ], 'Not found in list'); - * - * @name oneOf - * @param {*} inList - * @param {Array<*>} list - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.oneOf = function (inList, list, msg) { - new Assertion(inList, msg).to.be.oneOf(list); - } - - /** - * ### .changes(function, object, property) - * - * Asserts that a function changes the value of a property - * - * var obj = { val: 10 }; - * var fn = function() { obj.val = 22 }; - * assert.changes(fn, obj, 'val'); - * - * @name changes - * @param {Function} modifier function - * @param {Object} object - * @param {String} property name - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.changes = function (fn, obj, prop) { - new Assertion(fn).to.change(obj, prop); - } - - /** - * ### .doesNotChange(function, object, property) - * - * Asserts that a function does not changes the value of a property - * - * var obj = { val: 10 }; - * var fn = function() { console.log('foo'); }; - * assert.doesNotChange(fn, obj, 'val'); - * - * @name doesNotChange - * @param {Function} modifier function - * @param {Object} object - * @param {String} property name - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.doesNotChange = function (fn, obj, prop) { - new Assertion(fn).to.not.change(obj, prop); - } - - /** - * ### .increases(function, object, property) - * - * Asserts that a function increases an object property - * - * var obj = { val: 10 }; - * var fn = function() { obj.val = 13 }; - * assert.increases(fn, obj, 'val'); - * - * @name increases - * @param {Function} modifier function - * @param {Object} object - * @param {String} property name - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.increases = function (fn, obj, prop) { - new Assertion(fn).to.increase(obj, prop); - } - - /** - * ### .doesNotIncrease(function, object, property) - * - * Asserts that a function does not increase object property - * - * var obj = { val: 10 }; - * var fn = function() { obj.val = 8 }; - * assert.doesNotIncrease(fn, obj, 'val'); - * - * @name doesNotIncrease - * @param {Function} modifier function - * @param {Object} object - * @param {String} property name - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.doesNotIncrease = function (fn, obj, prop) { - new Assertion(fn).to.not.increase(obj, prop); - } - - /** - * ### .decreases(function, object, property) - * - * Asserts that a function decreases an object property - * - * var obj = { val: 10 }; - * var fn = function() { obj.val = 5 }; - * assert.decreases(fn, obj, 'val'); - * - * @name decreases - * @param {Function} modifier function - * @param {Object} object - * @param {String} property name - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.decreases = function (fn, obj, prop) { - new Assertion(fn).to.decrease(obj, prop); - } - - /** - * ### .doesNotDecrease(function, object, property) - * - * Asserts that a function does not decreases an object property - * - * var obj = { val: 10 }; - * var fn = function() { obj.val = 15 }; - * assert.doesNotDecrease(fn, obj, 'val'); - * - * @name doesNotDecrease - * @param {Function} modifier function - * @param {Object} object - * @param {String} property name - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.doesNotDecrease = function (fn, obj, prop) { - new Assertion(fn).to.not.decrease(obj, prop); - } - - /*! - * ### .ifError(object) - * - * Asserts if value is not a false value, and throws if it is a true value. - * This is added to allow for chai to be a drop-in replacement for Node's - * assert class. - * - * var err = new Error('I am a custom error'); - * assert.ifError(err); // Rethrows err! - * - * @name ifError - * @param {Object} object - * @namespace Assert - * @api public - */ - - assert.ifError = function (val) { - if (val) { - throw(val); - } - }; - - /** - * ### .isExtensible(object) - * - * Asserts that `object` is extensible (can have new properties added to it). - * - * assert.isExtensible({}); - * - * @name isExtensible - * @alias extensible - * @param {Object} object - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.isExtensible = function (obj, msg) { - new Assertion(obj, msg).to.be.extensible; - }; - - /** - * ### .isNotExtensible(object) - * - * Asserts that `object` is _not_ extensible. - * - * var nonExtensibleObject = Object.preventExtensions({}); - * var sealedObject = Object.seal({}); - * var frozenObject = Object.freese({}); - * - * assert.isNotExtensible(nonExtensibleObject); - * assert.isNotExtensible(sealedObject); - * assert.isNotExtensible(frozenObject); - * - * @name isNotExtensible - * @alias notExtensible - * @param {Object} object - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.isNotExtensible = function (obj, msg) { - new Assertion(obj, msg).to.not.be.extensible; - }; - - /** - * ### .isSealed(object) - * - * Asserts that `object` is sealed (cannot have new properties added to it - * and its existing properties cannot be removed). - * - * var sealedObject = Object.seal({}); - * var frozenObject = Object.seal({}); - * - * assert.isSealed(sealedObject); - * assert.isSealed(frozenObject); - * - * @name isSealed - * @alias sealed - * @param {Object} object - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.isSealed = function (obj, msg) { - new Assertion(obj, msg).to.be.sealed; - }; - - /** - * ### .isNotSealed(object) - * - * Asserts that `object` is _not_ sealed. - * - * assert.isNotSealed({}); - * - * @name isNotSealed - * @alias notSealed - * @param {Object} object - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.isNotSealed = function (obj, msg) { - new Assertion(obj, msg).to.not.be.sealed; - }; - - /** - * ### .isFrozen(object) - * - * Asserts that `object` is frozen (cannot have new properties added to it - * and its existing properties cannot be modified). - * - * var frozenObject = Object.freeze({}); - * assert.frozen(frozenObject); - * - * @name isFrozen - * @alias frozen - * @param {Object} object - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.isFrozen = function (obj, msg) { - new Assertion(obj, msg).to.be.frozen; - }; - - /** - * ### .isNotFrozen(object) - * - * Asserts that `object` is _not_ frozen. - * - * assert.isNotFrozen({}); - * - * @name isNotFrozen - * @alias notFrozen - * @param {Object} object - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.isNotFrozen = function (obj, msg) { - new Assertion(obj, msg).to.not.be.frozen; - }; - - /*! - * Aliases. - */ - - (function alias(name, as){ - assert[as] = assert[name]; - return alias; - }) - ('isOk', 'ok') - ('isNotOk', 'notOk') - ('throws', 'throw') - ('throws', 'Throw') - ('isExtensible', 'extensible') - ('isNotExtensible', 'notExtensible') - ('isSealed', 'sealed') - ('isNotSealed', 'notSealed') - ('isFrozen', 'frozen') - ('isNotFrozen', 'notFrozen'); -}; - -},{}],7:[function(require,module,exports){ -/*! - * chai - * Copyright(c) 2011-2014 Jake Luer - * MIT Licensed - */ - -module.exports = function (chai, util) { - chai.expect = function (val, message) { - return new chai.Assertion(val, message); - }; - - /** - * ### .fail(actual, expected, [message], [operator]) - * - * Throw a failure. - * - * @name fail - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @param {String} operator - * @namespace Expect - * @api public - */ - - chai.expect.fail = function (actual, expected, message, operator) { - message = message || 'expect.fail()'; - throw new chai.AssertionError(message, { - actual: actual - , expected: expected - , operator: operator - }, chai.expect.fail); - }; -}; - -},{}],8:[function(require,module,exports){ -/*! - * chai - * Copyright(c) 2011-2014 Jake Luer - * MIT Licensed - */ - -module.exports = function (chai, util) { - var Assertion = chai.Assertion; - - function loadShould () { - // explicitly define this method as function as to have it's name to include as `ssfi` - function shouldGetter() { - if (this instanceof String || this instanceof Number || this instanceof Boolean ) { - return new Assertion(this.valueOf(), null, shouldGetter); - } - return new Assertion(this, null, shouldGetter); - } - function shouldSetter(value) { - // See https://github.com/chaijs/chai/issues/86: this makes - // `whatever.should = someValue` actually set `someValue`, which is - // especially useful for `global.should = require('chai').should()`. - // - // Note that we have to use [[DefineProperty]] instead of [[Put]] - // since otherwise we would trigger this very setter! - Object.defineProperty(this, 'should', { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } - // modify Object.prototype to have `should` - Object.defineProperty(Object.prototype, 'should', { - set: shouldSetter - , get: shouldGetter - , configurable: true - }); - - var should = {}; - - /** - * ### .fail(actual, expected, [message], [operator]) - * - * Throw a failure. - * - * @name fail - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @param {String} operator - * @namespace Should - * @api public - */ - - should.fail = function (actual, expected, message, operator) { - message = message || 'should.fail()'; - throw new chai.AssertionError(message, { - actual: actual - , expected: expected - , operator: operator - }, should.fail); - }; - - /** - * ### .equal(actual, expected, [message]) - * - * Asserts non-strict equality (`==`) of `actual` and `expected`. - * - * should.equal(3, '3', '== coerces values to strings'); - * - * @name equal - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @namespace Should - * @api public - */ - - should.equal = function (val1, val2, msg) { - new Assertion(val1, msg).to.equal(val2); - }; - - /** - * ### .throw(function, [constructor/string/regexp], [string/regexp], [message]) - * - * Asserts that `function` will throw an error that is an instance of - * `constructor`, or alternately that it will throw an error with message - * matching `regexp`. - * - * should.throw(fn, 'function throws a reference error'); - * should.throw(fn, /function throws a reference error/); - * should.throw(fn, ReferenceError); - * should.throw(fn, ReferenceError, 'function throws a reference error'); - * should.throw(fn, ReferenceError, /function throws a reference error/); - * - * @name throw - * @alias Throw - * @param {Function} function - * @param {ErrorConstructor} constructor - * @param {RegExp} regexp - * @param {String} message - * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types - * @namespace Should - * @api public - */ - - should.Throw = function (fn, errt, errs, msg) { - new Assertion(fn, msg).to.Throw(errt, errs); - }; - - /** - * ### .exist - * - * Asserts that the target is neither `null` nor `undefined`. - * - * var foo = 'hi'; - * - * should.exist(foo, 'foo exists'); - * - * @name exist - * @namespace Should - * @api public - */ - - should.exist = function (val, msg) { - new Assertion(val, msg).to.exist; - } - - // negation - should.not = {} - - /** - * ### .not.equal(actual, expected, [message]) - * - * Asserts non-strict inequality (`!=`) of `actual` and `expected`. - * - * should.not.equal(3, 4, 'these numbers are not equal'); - * - * @name not.equal - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @namespace Should - * @api public - */ - - should.not.equal = function (val1, val2, msg) { - new Assertion(val1, msg).to.not.equal(val2); - }; - - /** - * ### .throw(function, [constructor/regexp], [message]) - * - * Asserts that `function` will _not_ throw an error that is an instance of - * `constructor`, or alternately that it will not throw an error with message - * matching `regexp`. - * - * should.not.throw(fn, Error, 'function does not throw'); - * - * @name not.throw - * @alias not.Throw - * @param {Function} function - * @param {ErrorConstructor} constructor - * @param {RegExp} regexp - * @param {String} message - * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types - * @namespace Should - * @api public - */ - - should.not.Throw = function (fn, errt, errs, msg) { - new Assertion(fn, msg).to.not.Throw(errt, errs); - }; - - /** - * ### .not.exist - * - * Asserts that the target is neither `null` nor `undefined`. - * - * var bar = null; - * - * should.not.exist(bar, 'bar does not exist'); - * - * @name not.exist - * @namespace Should - * @api public - */ - - should.not.exist = function (val, msg) { - new Assertion(val, msg).to.not.exist; - } - - should['throw'] = should['Throw']; - should.not['throw'] = should.not['Throw']; - - return should; - }; - - chai.should = loadShould; - chai.Should = loadShould; -}; - -},{}],9:[function(require,module,exports){ -/*! - * Chai - addChainingMethod utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/*! - * Module dependencies - */ - -var transferFlags = require('./transferFlags'); -var flag = require('./flag'); -var config = require('../config'); - -/*! - * Module variables - */ - -// Check whether `__proto__` is supported -var hasProtoSupport = '__proto__' in Object; - -// Without `__proto__` support, this module will need to add properties to a function. -// However, some Function.prototype methods cannot be overwritten, -// and there seems no easy cross-platform way to detect them (@see chaijs/chai/issues/69). -var excludeNames = /^(?:length|name|arguments|caller)$/; - -// Cache `Function` properties -var call = Function.prototype.call, - apply = Function.prototype.apply; - -/** - * ### addChainableMethod (ctx, name, method, chainingBehavior) - * - * Adds a method to an object, such that the method can also be chained. - * - * utils.addChainableMethod(chai.Assertion.prototype, 'foo', function (str) { - * var obj = utils.flag(this, 'object'); - * new chai.Assertion(obj).to.be.equal(str); - * }); - * - * Can also be accessed directly from `chai.Assertion`. - * - * chai.Assertion.addChainableMethod('foo', fn, chainingBehavior); - * - * The result can then be used as both a method assertion, executing both `method` and - * `chainingBehavior`, or as a language chain, which only executes `chainingBehavior`. - * - * expect(fooStr).to.be.foo('bar'); - * expect(fooStr).to.be.foo.equal('foo'); - * - * @param {Object} ctx object to which the method is added - * @param {String} name of method to add - * @param {Function} method function to be used for `name`, when called - * @param {Function} chainingBehavior function to be called every time the property is accessed - * @namespace Utils - * @name addChainableMethod - * @api public - */ - -module.exports = function (ctx, name, method, chainingBehavior) { - if (typeof chainingBehavior !== 'function') { - chainingBehavior = function () { }; - } - - var chainableBehavior = { - method: method - , chainingBehavior: chainingBehavior - }; - - // save the methods so we can overwrite them later, if we need to. - if (!ctx.__methods) { - ctx.__methods = {}; - } - ctx.__methods[name] = chainableBehavior; - - Object.defineProperty(ctx, name, - { get: function () { - chainableBehavior.chainingBehavior.call(this); - - var assert = function assert() { - var old_ssfi = flag(this, 'ssfi'); - if (old_ssfi && config.includeStack === false) - flag(this, 'ssfi', assert); - var result = chainableBehavior.method.apply(this, arguments); - return result === undefined ? this : result; - }; - - // Use `__proto__` if available - if (hasProtoSupport) { - // Inherit all properties from the object by replacing the `Function` prototype - var prototype = assert.__proto__ = Object.create(this); - // Restore the `call` and `apply` methods from `Function` - prototype.call = call; - prototype.apply = apply; - } - // Otherwise, redefine all properties (slow!) - else { - var asserterNames = Object.getOwnPropertyNames(ctx); - asserterNames.forEach(function (asserterName) { - if (!excludeNames.test(asserterName)) { - var pd = Object.getOwnPropertyDescriptor(ctx, asserterName); - Object.defineProperty(assert, asserterName, pd); - } - }); - } - - transferFlags(this, assert); - return assert; - } - , configurable: true - }); -}; - -},{"../config":4,"./flag":13,"./transferFlags":29}],10:[function(require,module,exports){ -/*! - * Chai - addMethod utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -var config = require('../config'); - -/** - * ### .addMethod (ctx, name, method) - * - * Adds a method to the prototype of an object. - * - * utils.addMethod(chai.Assertion.prototype, 'foo', function (str) { - * var obj = utils.flag(this, 'object'); - * new chai.Assertion(obj).to.be.equal(str); - * }); - * - * Can also be accessed directly from `chai.Assertion`. - * - * chai.Assertion.addMethod('foo', fn); - * - * Then can be used as any other assertion. - * - * expect(fooStr).to.be.foo('bar'); - * - * @param {Object} ctx object to which the method is added - * @param {String} name of method to add - * @param {Function} method function to be used for name - * @namespace Utils - * @name addMethod - * @api public - */ -var flag = require('./flag'); - -module.exports = function (ctx, name, method) { - ctx[name] = function () { - var old_ssfi = flag(this, 'ssfi'); - if (old_ssfi && config.includeStack === false) - flag(this, 'ssfi', ctx[name]); - var result = method.apply(this, arguments); - return result === undefined ? this : result; - }; -}; - -},{"../config":4,"./flag":13}],11:[function(require,module,exports){ -/*! - * Chai - addProperty utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -var config = require('../config'); -var flag = require('./flag'); - -/** - * ### addProperty (ctx, name, getter) - * - * Adds a property to the prototype of an object. - * - * utils.addProperty(chai.Assertion.prototype, 'foo', function () { - * var obj = utils.flag(this, 'object'); - * new chai.Assertion(obj).to.be.instanceof(Foo); - * }); - * - * Can also be accessed directly from `chai.Assertion`. - * - * chai.Assertion.addProperty('foo', fn); - * - * Then can be used as any other assertion. - * - * expect(myFoo).to.be.foo; - * - * @param {Object} ctx object to which the property is added - * @param {String} name of property to add - * @param {Function} getter function to be used for name - * @namespace Utils - * @name addProperty - * @api public - */ - -module.exports = function (ctx, name, getter) { - Object.defineProperty(ctx, name, - { get: function addProperty() { - var old_ssfi = flag(this, 'ssfi'); - if (old_ssfi && config.includeStack === false) - flag(this, 'ssfi', addProperty); - - var result = getter.call(this); - return result === undefined ? this : result; - } - , configurable: true - }); -}; - -},{"../config":4,"./flag":13}],12:[function(require,module,exports){ -/*! - * Chai - expectTypes utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * ### expectTypes(obj, types) - * - * Ensures that the object being tested against is of a valid type. - * - * utils.expectTypes(this, ['array', 'object', 'string']); - * - * @param {Mixed} obj constructed Assertion - * @param {Array} type A list of allowed types for this assertion - * @namespace Utils - * @name expectTypes - * @api public - */ - -var AssertionError = require('assertion-error'); -var flag = require('./flag'); -var type = require('type-detect'); - -module.exports = function (obj, types) { - var obj = flag(obj, 'object'); - types = types.map(function (t) { return t.toLowerCase(); }); - types.sort(); - - // Transforms ['lorem', 'ipsum'] into 'a lirum, or an ipsum' - var str = types.map(function (t, index) { - var art = ~[ 'a', 'e', 'i', 'o', 'u' ].indexOf(t.charAt(0)) ? 'an' : 'a'; - var or = types.length > 1 && index === types.length - 1 ? 'or ' : ''; - return or + art + ' ' + t; - }).join(', '); - - if (!types.some(function (expected) { return type(obj) === expected; })) { - throw new AssertionError( - 'object tested must be ' + str + ', but ' + type(obj) + ' given' - ); - } -}; - -},{"./flag":13,"assertion-error":30,"type-detect":35}],13:[function(require,module,exports){ -/*! - * Chai - flag utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * ### flag(object, key, [value]) - * - * Get or set a flag value on an object. If a - * value is provided it will be set, else it will - * return the currently set value or `undefined` if - * the value is not set. - * - * utils.flag(this, 'foo', 'bar'); // setter - * utils.flag(this, 'foo'); // getter, returns `bar` - * - * @param {Object} object constructed Assertion - * @param {String} key - * @param {Mixed} value (optional) - * @namespace Utils - * @name flag - * @api private - */ - -module.exports = function (obj, key, value) { - var flags = obj.__flags || (obj.__flags = Object.create(null)); - if (arguments.length === 3) { - flags[key] = value; - } else { - return flags[key]; - } -}; - -},{}],14:[function(require,module,exports){ -/*! - * Chai - getActual utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * # getActual(object, [actual]) - * - * Returns the `actual` value for an Assertion - * - * @param {Object} object (constructed Assertion) - * @param {Arguments} chai.Assertion.prototype.assert arguments - * @namespace Utils - * @name getActual - */ - -module.exports = function (obj, args) { - return args.length > 4 ? args[4] : obj._obj; -}; - -},{}],15:[function(require,module,exports){ -/*! - * Chai - getEnumerableProperties utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * ### .getEnumerableProperties(object) - * - * This allows the retrieval of enumerable property names of an object, - * inherited or not. - * - * @param {Object} object - * @returns {Array} - * @namespace Utils - * @name getEnumerableProperties - * @api public - */ - -module.exports = function getEnumerableProperties(object) { - var result = []; - for (var name in object) { - result.push(name); - } - return result; -}; - -},{}],16:[function(require,module,exports){ -/*! - * Chai - message composition utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/*! - * Module dependancies - */ - -var flag = require('./flag') - , getActual = require('./getActual') - , inspect = require('./inspect') - , objDisplay = require('./objDisplay'); - -/** - * ### .getMessage(object, message, negateMessage) - * - * Construct the error message based on flags - * and template tags. Template tags will return - * a stringified inspection of the object referenced. - * - * Message template tags: - * - `#{this}` current asserted object - * - `#{act}` actual value - * - `#{exp}` expected value - * - * @param {Object} object (constructed Assertion) - * @param {Arguments} chai.Assertion.prototype.assert arguments - * @namespace Utils - * @name getMessage - * @api public - */ - -module.exports = function (obj, args) { - var negate = flag(obj, 'negate') - , val = flag(obj, 'object') - , expected = args[3] - , actual = getActual(obj, args) - , msg = negate ? args[2] : args[1] - , flagMsg = flag(obj, 'message'); - - if(typeof msg === "function") msg = msg(); - msg = msg || ''; - msg = msg - .replace(/#\{this\}/g, function () { return objDisplay(val); }) - .replace(/#\{act\}/g, function () { return objDisplay(actual); }) - .replace(/#\{exp\}/g, function () { return objDisplay(expected); }); - - return flagMsg ? flagMsg + ': ' + msg : msg; -}; - -},{"./flag":13,"./getActual":14,"./inspect":23,"./objDisplay":24}],17:[function(require,module,exports){ -/*! - * Chai - getName utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * # getName(func) - * - * Gets the name of a function, in a cross-browser way. - * - * @param {Function} a function (usually a constructor) - * @namespace Utils - * @name getName - */ - -module.exports = function (func) { - if (func.name) return func.name; - - var match = /^\s?function ([^(]*)\(/.exec(func); - return match && match[1] ? match[1] : ""; -}; - -},{}],18:[function(require,module,exports){ -/*! - * Chai - getPathInfo utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -var hasProperty = require('./hasProperty'); - -/** - * ### .getPathInfo(path, object) - * - * This allows the retrieval of property info in an - * object given a string path. - * - * The path info consists of an object with the - * following properties: - * - * * parent - The parent object of the property referenced by `path` - * * name - The name of the final property, a number if it was an array indexer - * * value - The value of the property, if it exists, otherwise `undefined` - * * exists - Whether the property exists or not - * - * @param {String} path - * @param {Object} object - * @returns {Object} info - * @namespace Utils - * @name getPathInfo - * @api public - */ - -module.exports = function getPathInfo(path, obj) { - var parsed = parsePath(path), - last = parsed[parsed.length - 1]; - - var info = { - parent: parsed.length > 1 ? _getPathValue(parsed, obj, parsed.length - 1) : obj, - name: last.p || last.i, - value: _getPathValue(parsed, obj) - }; - info.exists = hasProperty(info.name, info.parent); - - return info; -}; - - -/*! - * ## parsePath(path) - * - * Helper function used to parse string object - * paths. Use in conjunction with `_getPathValue`. - * - * var parsed = parsePath('myobject.property.subprop'); - * - * ### Paths: - * - * * Can be as near infinitely deep and nested - * * Arrays are also valid using the formal `myobject.document[3].property`. - * * Literal dots and brackets (not delimiter) must be backslash-escaped. - * - * @param {String} path - * @returns {Object} parsed - * @api private - */ - -function parsePath (path) { - var str = path.replace(/([^\\])\[/g, '$1.[') - , parts = str.match(/(\\\.|[^.]+?)+/g); - return parts.map(function (value) { - var re = /^\[(\d+)\]$/ - , mArr = re.exec(value); - if (mArr) return { i: parseFloat(mArr[1]) }; - else return { p: value.replace(/\\([.\[\]])/g, '$1') }; - }); -} - - -/*! - * ## _getPathValue(parsed, obj) - * - * Helper companion function for `.parsePath` that returns - * the value located at the parsed address. - * - * var value = getPathValue(parsed, obj); - * - * @param {Object} parsed definition from `parsePath`. - * @param {Object} object to search against - * @param {Number} object to search against - * @returns {Object|Undefined} value - * @api private - */ - -function _getPathValue (parsed, obj, index) { - var tmp = obj - , res; - - index = (index === undefined ? parsed.length : index); - - for (var i = 0, l = index; i < l; i++) { - var part = parsed[i]; - if (tmp) { - if ('undefined' !== typeof part.p) - tmp = tmp[part.p]; - else if ('undefined' !== typeof part.i) - tmp = tmp[part.i]; - if (i == (l - 1)) res = tmp; - } else { - res = undefined; - } - } - return res; -} - -},{"./hasProperty":21}],19:[function(require,module,exports){ -/*! - * Chai - getPathValue utility - * Copyright(c) 2012-2014 Jake Luer - * @see https://github.com/logicalparadox/filtr - * MIT Licensed - */ - -var getPathInfo = require('./getPathInfo'); - -/** - * ### .getPathValue(path, object) - * - * This allows the retrieval of values in an - * object given a string path. - * - * var obj = { - * prop1: { - * arr: ['a', 'b', 'c'] - * , str: 'Hello' - * } - * , prop2: { - * arr: [ { nested: 'Universe' } ] - * , str: 'Hello again!' - * } - * } - * - * The following would be the results. - * - * getPathValue('prop1.str', obj); // Hello - * getPathValue('prop1.att[2]', obj); // b - * getPathValue('prop2.arr[0].nested', obj); // Universe - * - * @param {String} path - * @param {Object} object - * @returns {Object} value or `undefined` - * @namespace Utils - * @name getPathValue - * @api public - */ -module.exports = function(path, obj) { - var info = getPathInfo(path, obj); - return info.value; -}; - -},{"./getPathInfo":18}],20:[function(require,module,exports){ -/*! - * Chai - getProperties utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * ### .getProperties(object) - * - * This allows the retrieval of property names of an object, enumerable or not, - * inherited or not. - * - * @param {Object} object - * @returns {Array} - * @namespace Utils - * @name getProperties - * @api public - */ - -module.exports = function getProperties(object) { - var result = Object.getOwnPropertyNames(object); - - function addProperty(property) { - if (result.indexOf(property) === -1) { - result.push(property); - } - } - - var proto = Object.getPrototypeOf(object); - while (proto !== null) { - Object.getOwnPropertyNames(proto).forEach(addProperty); - proto = Object.getPrototypeOf(proto); - } - - return result; -}; - -},{}],21:[function(require,module,exports){ -/*! - * Chai - hasProperty utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -var type = require('type-detect'); - -/** - * ### .hasProperty(object, name) - * - * This allows checking whether an object has - * named property or numeric array index. - * - * Basically does the same thing as the `in` - * operator but works properly with natives - * and null/undefined values. - * - * var obj = { - * arr: ['a', 'b', 'c'] - * , str: 'Hello' - * } - * - * The following would be the results. - * - * hasProperty('str', obj); // true - * hasProperty('constructor', obj); // true - * hasProperty('bar', obj); // false - * - * hasProperty('length', obj.str); // true - * hasProperty(1, obj.str); // true - * hasProperty(5, obj.str); // false - * - * hasProperty('length', obj.arr); // true - * hasProperty(2, obj.arr); // true - * hasProperty(3, obj.arr); // false - * - * @param {Objuect} object - * @param {String|Number} name - * @returns {Boolean} whether it exists - * @namespace Utils - * @name getPathInfo - * @api public - */ - -var literals = { - 'number': Number - , 'string': String -}; - -module.exports = function hasProperty(name, obj) { - var ot = type(obj); - - // Bad Object, obviously no props at all - if(ot === 'null' || ot === 'undefined') - return false; - - // The `in` operator does not work with certain literals - // box these before the check - if(literals[ot] && typeof obj !== 'object') - obj = new literals[ot](obj); - - return name in obj; -}; - -},{"type-detect":35}],22:[function(require,module,exports){ -/*! - * chai - * Copyright(c) 2011 Jake Luer - * MIT Licensed - */ - -/*! - * Main exports - */ - -var exports = module.exports = {}; - -/*! - * test utility - */ - -exports.test = require('./test'); - -/*! - * type utility - */ - -exports.type = require('type-detect'); - -/*! - * expectTypes utility - */ -exports.expectTypes = require('./expectTypes'); - -/*! - * message utility - */ - -exports.getMessage = require('./getMessage'); - -/*! - * actual utility - */ - -exports.getActual = require('./getActual'); - -/*! - * Inspect util - */ - -exports.inspect = require('./inspect'); - -/*! - * Object Display util - */ - -exports.objDisplay = require('./objDisplay'); - -/*! - * Flag utility - */ - -exports.flag = require('./flag'); - -/*! - * Flag transferring utility - */ - -exports.transferFlags = require('./transferFlags'); - -/*! - * Deep equal utility - */ - -exports.eql = require('deep-eql'); - -/*! - * Deep path value - */ - -exports.getPathValue = require('./getPathValue'); - -/*! - * Deep path info - */ - -exports.getPathInfo = require('./getPathInfo'); - -/*! - * Check if a property exists - */ - -exports.hasProperty = require('./hasProperty'); - -/*! - * Function name - */ - -exports.getName = require('./getName'); - -/*! - * add Property - */ - -exports.addProperty = require('./addProperty'); - -/*! - * add Method - */ - -exports.addMethod = require('./addMethod'); - -/*! - * overwrite Property - */ - -exports.overwriteProperty = require('./overwriteProperty'); - -/*! - * overwrite Method - */ - -exports.overwriteMethod = require('./overwriteMethod'); - -/*! - * Add a chainable method - */ - -exports.addChainableMethod = require('./addChainableMethod'); - -/*! - * Overwrite chainable method - */ - -exports.overwriteChainableMethod = require('./overwriteChainableMethod'); - -},{"./addChainableMethod":9,"./addMethod":10,"./addProperty":11,"./expectTypes":12,"./flag":13,"./getActual":14,"./getMessage":16,"./getName":17,"./getPathInfo":18,"./getPathValue":19,"./hasProperty":21,"./inspect":23,"./objDisplay":24,"./overwriteChainableMethod":25,"./overwriteMethod":26,"./overwriteProperty":27,"./test":28,"./transferFlags":29,"deep-eql":31,"type-detect":35}],23:[function(require,module,exports){ -// This is (almost) directly from Node.js utils -// https://github.com/joyent/node/blob/f8c335d0caf47f16d31413f89aa28eda3878e3aa/lib/util.js - -var getName = require('./getName'); -var getProperties = require('./getProperties'); -var getEnumerableProperties = require('./getEnumerableProperties'); - -module.exports = inspect; - -/** - * Echos the value of a value. Trys to print the value out - * in the best way possible given the different types. - * - * @param {Object} obj The object to print out. - * @param {Boolean} showHidden Flag that shows hidden (not enumerable) - * properties of objects. - * @param {Number} depth Depth in which to descend in object. Default is 2. - * @param {Boolean} colors Flag to turn on ANSI escape codes to color the - * output. Default is false (no coloring). - * @namespace Utils - * @name inspect - */ -function inspect(obj, showHidden, depth, colors) { - var ctx = { - showHidden: showHidden, - seen: [], - stylize: function (str) { return str; } - }; - return formatValue(ctx, obj, (typeof depth === 'undefined' ? 2 : depth)); -} - -// Returns true if object is a DOM element. -var isDOMElement = function (object) { - if (typeof HTMLElement === 'object') { - return object instanceof HTMLElement; - } else { - return object && - typeof object === 'object' && - object.nodeType === 1 && - typeof object.nodeName === 'string'; - } -}; - -function formatValue(ctx, value, recurseTimes) { - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (value && typeof value.inspect === 'function' && - // Filter out the util module, it's inspect function is special - value.inspect !== exports.inspect && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - var ret = value.inspect(recurseTimes); - if (typeof ret !== 'string') { - ret = formatValue(ctx, ret, recurseTimes); - } - return ret; - } - - // Primitive types cannot have properties - var primitive = formatPrimitive(ctx, value); - if (primitive) { - return primitive; - } - - // If this is a DOM element, try to get the outer HTML. - if (isDOMElement(value)) { - if ('outerHTML' in value) { - return value.outerHTML; - // This value does not have an outerHTML attribute, - // it could still be an XML element - } else { - // Attempt to serialize it - try { - if (document.xmlVersion) { - var xmlSerializer = new XMLSerializer(); - return xmlSerializer.serializeToString(value); - } else { - // Firefox 11- do not support outerHTML - // It does, however, support innerHTML - // Use the following to render the element - var ns = "http://www.w3.org/1999/xhtml"; - var container = document.createElementNS(ns, '_'); - - container.appendChild(value.cloneNode(false)); - html = container.innerHTML - .replace('><', '>' + value.innerHTML + '<'); - container.innerHTML = ''; - return html; - } - } catch (err) { - // This could be a non-native DOM implementation, - // continue with the normal flow: - // printing the element as if it is an object. - } - } - } - - // Look up the keys of the object. - var visibleKeys = getEnumerableProperties(value); - var keys = ctx.showHidden ? getProperties(value) : visibleKeys; - - // Some type of object without properties can be shortcutted. - // In IE, errors have a single `stack` property, or if they are vanilla `Error`, - // a `stack` plus `description` property; ignore those for consistency. - if (keys.length === 0 || (isError(value) && ( - (keys.length === 1 && keys[0] === 'stack') || - (keys.length === 2 && keys[0] === 'description' && keys[1] === 'stack') - ))) { - if (typeof value === 'function') { - var name = getName(value); - var nameSuffix = name ? ': ' + name : ''; - return ctx.stylize('[Function' + nameSuffix + ']', 'special'); - } - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } - if (isDate(value)) { - return ctx.stylize(Date.prototype.toUTCString.call(value), 'date'); - } - if (isError(value)) { - return formatError(value); - } - } - - var base = '', array = false, braces = ['{', '}']; - - // Make Array say that they are Array - if (isArray(value)) { - array = true; - braces = ['[', ']']; - } - - // Make functions say that they are functions - if (typeof value === 'function') { - var name = getName(value); - var nameSuffix = name ? ': ' + name : ''; - base = ' [Function' + nameSuffix + ']'; - } - - // Make RegExps say that they are RegExps - if (isRegExp(value)) { - base = ' ' + RegExp.prototype.toString.call(value); - } - - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + Date.prototype.toUTCString.call(value); - } - - // Make error with message first say the error - if (isError(value)) { - return formatError(value); - } - - if (keys.length === 0 && (!array || value.length == 0)) { - return braces[0] + base + braces[1]; - } - - if (recurseTimes < 0) { - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } else { - return ctx.stylize('[Object]', 'special'); - } - } - - ctx.seen.push(value); - - var output; - if (array) { - output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); - } else { - output = keys.map(function(key) { - return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); - }); - } - - ctx.seen.pop(); - - return reduceToSingleString(output, base, braces); -} - - -function formatPrimitive(ctx, value) { - switch (typeof value) { - case 'undefined': - return ctx.stylize('undefined', 'undefined'); - - case 'string': - var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') + '\''; - return ctx.stylize(simple, 'string'); - - case 'number': - if (value === 0 && (1/value) === -Infinity) { - return ctx.stylize('-0', 'number'); - } - return ctx.stylize('' + value, 'number'); - - case 'boolean': - return ctx.stylize('' + value, 'boolean'); - } - // For some reason typeof null is "object", so special case here. - if (value === null) { - return ctx.stylize('null', 'null'); - } -} - - -function formatError(value) { - return '[' + Error.prototype.toString.call(value) + ']'; -} - - -function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { - var output = []; - for (var i = 0, l = value.length; i < l; ++i) { - if (Object.prototype.hasOwnProperty.call(value, String(i))) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - String(i), true)); - } else { - output.push(''); - } - } - keys.forEach(function(key) { - if (!key.match(/^\d+$/)) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - key, true)); - } - }); - return output; -} - - -function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { - var name, str; - if (value.__lookupGetter__) { - if (value.__lookupGetter__(key)) { - if (value.__lookupSetter__(key)) { - str = ctx.stylize('[Getter/Setter]', 'special'); - } else { - str = ctx.stylize('[Getter]', 'special'); - } - } else { - if (value.__lookupSetter__(key)) { - str = ctx.stylize('[Setter]', 'special'); - } - } - } - if (visibleKeys.indexOf(key) < 0) { - name = '[' + key + ']'; - } - if (!str) { - if (ctx.seen.indexOf(value[key]) < 0) { - if (recurseTimes === null) { - str = formatValue(ctx, value[key], null); - } else { - str = formatValue(ctx, value[key], recurseTimes - 1); - } - if (str.indexOf('\n') > -1) { - if (array) { - str = str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n').substr(2); - } else { - str = '\n' + str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n'); - } - } - } else { - str = ctx.stylize('[Circular]', 'special'); - } - } - if (typeof name === 'undefined') { - if (array && key.match(/^\d+$/)) { - return str; - } - name = JSON.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); - name = ctx.stylize(name, 'name'); - } else { - name = name.replace(/'/g, "\\'") - .replace(/\\"/g, '"') - .replace(/(^"|"$)/g, "'"); - name = ctx.stylize(name, 'string'); - } - } - - return name + ': ' + str; -} - - -function reduceToSingleString(output, base, braces) { - var numLinesEst = 0; - var length = output.reduce(function(prev, cur) { - numLinesEst++; - if (cur.indexOf('\n') >= 0) numLinesEst++; - return prev + cur.length + 1; - }, 0); - - if (length > 60) { - return braces[0] + - (base === '' ? '' : base + '\n ') + - ' ' + - output.join(',\n ') + - ' ' + - braces[1]; - } - - return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; -} - -function isArray(ar) { - return Array.isArray(ar) || - (typeof ar === 'object' && objectToString(ar) === '[object Array]'); -} - -function isRegExp(re) { - return typeof re === 'object' && objectToString(re) === '[object RegExp]'; -} - -function isDate(d) { - return typeof d === 'object' && objectToString(d) === '[object Date]'; -} - -function isError(e) { - return typeof e === 'object' && objectToString(e) === '[object Error]'; -} - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - -},{"./getEnumerableProperties":15,"./getName":17,"./getProperties":20}],24:[function(require,module,exports){ -/*! - * Chai - flag utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/*! - * Module dependancies - */ - -var inspect = require('./inspect'); -var config = require('../config'); - -/** - * ### .objDisplay (object) - * - * Determines if an object or an array matches - * criteria to be inspected in-line for error - * messages or should be truncated. - * - * @param {Mixed} javascript object to inspect - * @name objDisplay - * @namespace Utils - * @api public - */ - -module.exports = function (obj) { - var str = inspect(obj) - , type = Object.prototype.toString.call(obj); - - if (config.truncateThreshold && str.length >= config.truncateThreshold) { - if (type === '[object Function]') { - return !obj.name || obj.name === '' - ? '[Function]' - : '[Function: ' + obj.name + ']'; - } else if (type === '[object Array]') { - return '[ Array(' + obj.length + ') ]'; - } else if (type === '[object Object]') { - var keys = Object.keys(obj) - , kstr = keys.length > 2 - ? keys.splice(0, 2).join(', ') + ', ...' - : keys.join(', '); - return '{ Object (' + kstr + ') }'; - } else { - return str; - } - } else { - return str; - } -}; - -},{"../config":4,"./inspect":23}],25:[function(require,module,exports){ -/*! - * Chai - overwriteChainableMethod utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * ### overwriteChainableMethod (ctx, name, method, chainingBehavior) - * - * Overwites an already existing chainable method - * and provides access to the previous function or - * property. Must return functions to be used for - * name. - * - * utils.overwriteChainableMethod(chai.Assertion.prototype, 'length', - * function (_super) { - * } - * , function (_super) { - * } - * ); - * - * Can also be accessed directly from `chai.Assertion`. - * - * chai.Assertion.overwriteChainableMethod('foo', fn, fn); - * - * Then can be used as any other assertion. - * - * expect(myFoo).to.have.length(3); - * expect(myFoo).to.have.length.above(3); - * - * @param {Object} ctx object whose method / property is to be overwritten - * @param {String} name of method / property to overwrite - * @param {Function} method function that returns a function to be used for name - * @param {Function} chainingBehavior function that returns a function to be used for property - * @namespace Utils - * @name overwriteChainableMethod - * @api public - */ - -module.exports = function (ctx, name, method, chainingBehavior) { - var chainableBehavior = ctx.__methods[name]; - - var _chainingBehavior = chainableBehavior.chainingBehavior; - chainableBehavior.chainingBehavior = function () { - var result = chainingBehavior(_chainingBehavior).call(this); - return result === undefined ? this : result; - }; - - var _method = chainableBehavior.method; - chainableBehavior.method = function () { - var result = method(_method).apply(this, arguments); - return result === undefined ? this : result; - }; -}; - -},{}],26:[function(require,module,exports){ -/*! - * Chai - overwriteMethod utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * ### overwriteMethod (ctx, name, fn) - * - * Overwites an already existing method and provides - * access to previous function. Must return function - * to be used for name. - * - * utils.overwriteMethod(chai.Assertion.prototype, 'equal', function (_super) { - * return function (str) { - * var obj = utils.flag(this, 'object'); - * if (obj instanceof Foo) { - * new chai.Assertion(obj.value).to.equal(str); - * } else { - * _super.apply(this, arguments); - * } - * } - * }); - * - * Can also be accessed directly from `chai.Assertion`. - * - * chai.Assertion.overwriteMethod('foo', fn); - * - * Then can be used as any other assertion. - * - * expect(myFoo).to.equal('bar'); - * - * @param {Object} ctx object whose method is to be overwritten - * @param {String} name of method to overwrite - * @param {Function} method function that returns a function to be used for name - * @namespace Utils - * @name overwriteMethod - * @api public - */ - -module.exports = function (ctx, name, method) { - var _method = ctx[name] - , _super = function () { return this; }; - - if (_method && 'function' === typeof _method) - _super = _method; - - ctx[name] = function () { - var result = method(_super).apply(this, arguments); - return result === undefined ? this : result; - } -}; - -},{}],27:[function(require,module,exports){ -/*! - * Chai - overwriteProperty utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * ### overwriteProperty (ctx, name, fn) - * - * Overwites an already existing property getter and provides - * access to previous value. Must return function to use as getter. - * - * utils.overwriteProperty(chai.Assertion.prototype, 'ok', function (_super) { - * return function () { - * var obj = utils.flag(this, 'object'); - * if (obj instanceof Foo) { - * new chai.Assertion(obj.name).to.equal('bar'); - * } else { - * _super.call(this); - * } - * } - * }); - * - * - * Can also be accessed directly from `chai.Assertion`. - * - * chai.Assertion.overwriteProperty('foo', fn); - * - * Then can be used as any other assertion. - * - * expect(myFoo).to.be.ok; - * - * @param {Object} ctx object whose property is to be overwritten - * @param {String} name of property to overwrite - * @param {Function} getter function that returns a getter function to be used for name - * @namespace Utils - * @name overwriteProperty - * @api public - */ - -module.exports = function (ctx, name, getter) { - var _get = Object.getOwnPropertyDescriptor(ctx, name) - , _super = function () {}; - - if (_get && 'function' === typeof _get.get) - _super = _get.get - - Object.defineProperty(ctx, name, - { get: function () { - var result = getter(_super).call(this); - return result === undefined ? this : result; - } - , configurable: true - }); -}; - -},{}],28:[function(require,module,exports){ -/*! - * Chai - test utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/*! - * Module dependancies - */ - -var flag = require('./flag'); - -/** - * # test(object, expression) - * - * Test and object for expression. - * - * @param {Object} object (constructed Assertion) - * @param {Arguments} chai.Assertion.prototype.assert arguments - * @namespace Utils - * @name test - */ - -module.exports = function (obj, args) { - var negate = flag(obj, 'negate') - , expr = args[0]; - return negate ? !expr : expr; -}; - -},{"./flag":13}],29:[function(require,module,exports){ -/*! - * Chai - transferFlags utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * ### transferFlags(assertion, object, includeAll = true) - * - * Transfer all the flags for `assertion` to `object`. If - * `includeAll` is set to `false`, then the base Chai - * assertion flags (namely `object`, `ssfi`, and `message`) - * will not be transferred. - * - * - * var newAssertion = new Assertion(); - * utils.transferFlags(assertion, newAssertion); - * - * var anotherAsseriton = new Assertion(myObj); - * utils.transferFlags(assertion, anotherAssertion, false); - * - * @param {Assertion} assertion the assertion to transfer the flags from - * @param {Object} object the object to transfer the flags to; usually a new assertion - * @param {Boolean} includeAll - * @namespace Utils - * @name transferFlags - * @api private - */ - -module.exports = function (assertion, object, includeAll) { - var flags = assertion.__flags || (assertion.__flags = Object.create(null)); - - if (!object.__flags) { - object.__flags = Object.create(null); - } - - includeAll = arguments.length === 3 ? includeAll : true; - - for (var flag in flags) { - if (includeAll || - (flag !== 'object' && flag !== 'ssfi' && flag != 'message')) { - object.__flags[flag] = flags[flag]; - } - } -}; - -},{}],30:[function(require,module,exports){ -/*! - * assertion-error - * Copyright(c) 2013 Jake Luer - * MIT Licensed - */ - -/*! - * Return a function that will copy properties from - * one object to another excluding any originally - * listed. Returned function will create a new `{}`. - * - * @param {String} excluded properties ... - * @return {Function} - */ - -function exclude () { - var excludes = [].slice.call(arguments); - - function excludeProps (res, obj) { - Object.keys(obj).forEach(function (key) { - if (!~excludes.indexOf(key)) res[key] = obj[key]; - }); - } - - return function extendExclude () { - var args = [].slice.call(arguments) - , i = 0 - , res = {}; - - for (; i < args.length; i++) { - excludeProps(res, args[i]); - } - - return res; - }; -}; - -/*! - * Primary Exports - */ - -module.exports = AssertionError; - -/** - * ### AssertionError - * - * An extension of the JavaScript `Error` constructor for - * assertion and validation scenarios. - * - * @param {String} message - * @param {Object} properties to include (optional) - * @param {callee} start stack function (optional) - */ - -function AssertionError (message, _props, ssf) { - var extend = exclude('name', 'message', 'stack', 'constructor', 'toJSON') - , props = extend(_props || {}); - - // default values - this.message = message || 'Unspecified AssertionError'; - this.showDiff = false; - - // copy from properties - for (var key in props) { - this[key] = props[key]; - } - - // capture stack trace - ssf = ssf || arguments.callee; - if (ssf && Error.captureStackTrace) { - Error.captureStackTrace(this, ssf); - } else { - this.stack = new Error().stack; - } -} - -/*! - * Inherit from Error.prototype - */ - -AssertionError.prototype = Object.create(Error.prototype); - -/*! - * Statically set name - */ - -AssertionError.prototype.name = 'AssertionError'; - -/*! - * Ensure correct constructor - */ - -AssertionError.prototype.constructor = AssertionError; - -/** - * Allow errors to be converted to JSON for static transfer. - * - * @param {Boolean} include stack (default: `true`) - * @return {Object} object that can be `JSON.stringify` - */ - -AssertionError.prototype.toJSON = function (stack) { - var extend = exclude('constructor', 'toJSON', 'stack') - , props = extend({ name: this.name }, this); - - // include stack if exists and not turned off - if (false !== stack && this.stack) { - props.stack = this.stack; - } - - return props; -}; - -},{}],31:[function(require,module,exports){ -module.exports = require('./lib/eql'); - -},{"./lib/eql":32}],32:[function(require,module,exports){ -/*! - * deep-eql - * Copyright(c) 2013 Jake Luer - * MIT Licensed - */ - -/*! - * Module dependencies - */ - -var type = require('type-detect'); - -/*! - * Buffer.isBuffer browser shim - */ - -var Buffer; -try { Buffer = require('buffer').Buffer; } -catch(ex) { - Buffer = {}; - Buffer.isBuffer = function() { return false; } -} - -/*! - * Primary Export - */ - -module.exports = deepEqual; - -/** - * Assert super-strict (egal) equality between - * two objects of any type. - * - * @param {Mixed} a - * @param {Mixed} b - * @param {Array} memoised (optional) - * @return {Boolean} equal match - */ - -function deepEqual(a, b, m) { - if (sameValue(a, b)) { - return true; - } else if ('date' === type(a)) { - return dateEqual(a, b); - } else if ('regexp' === type(a)) { - return regexpEqual(a, b); - } else if (Buffer.isBuffer(a)) { - return bufferEqual(a, b); - } else if ('arguments' === type(a)) { - return argumentsEqual(a, b, m); - } else if (!typeEqual(a, b)) { - return false; - } else if (('object' !== type(a) && 'object' !== type(b)) - && ('array' !== type(a) && 'array' !== type(b))) { - return sameValue(a, b); - } else { - return objectEqual(a, b, m); - } -} - -/*! - * Strict (egal) equality test. Ensures that NaN always - * equals NaN and `-0` does not equal `+0`. - * - * @param {Mixed} a - * @param {Mixed} b - * @return {Boolean} equal match - */ - -function sameValue(a, b) { - if (a === b) return a !== 0 || 1 / a === 1 / b; - return a !== a && b !== b; -} - -/*! - * Compare the types of two given objects and - * return if they are equal. Note that an Array - * has a type of `array` (not `object`) and arguments - * have a type of `arguments` (not `array`/`object`). - * - * @param {Mixed} a - * @param {Mixed} b - * @return {Boolean} result - */ - -function typeEqual(a, b) { - return type(a) === type(b); -} - -/*! - * Compare two Date objects by asserting that - * the time values are equal using `saveValue`. - * - * @param {Date} a - * @param {Date} b - * @return {Boolean} result - */ - -function dateEqual(a, b) { - if ('date' !== type(b)) return false; - return sameValue(a.getTime(), b.getTime()); -} - -/*! - * Compare two regular expressions by converting them - * to string and checking for `sameValue`. - * - * @param {RegExp} a - * @param {RegExp} b - * @return {Boolean} result - */ - -function regexpEqual(a, b) { - if ('regexp' !== type(b)) return false; - return sameValue(a.toString(), b.toString()); -} - -/*! - * Assert deep equality of two `arguments` objects. - * Unfortunately, these must be sliced to arrays - * prior to test to ensure no bad behavior. - * - * @param {Arguments} a - * @param {Arguments} b - * @param {Array} memoize (optional) - * @return {Boolean} result - */ - -function argumentsEqual(a, b, m) { - if ('arguments' !== type(b)) return false; - a = [].slice.call(a); - b = [].slice.call(b); - return deepEqual(a, b, m); -} - -/*! - * Get enumerable properties of a given object. - * - * @param {Object} a - * @return {Array} property names - */ - -function enumerable(a) { - var res = []; - for (var key in a) res.push(key); - return res; -} - -/*! - * Simple equality for flat iterable objects - * such as Arrays or Node.js buffers. - * - * @param {Iterable} a - * @param {Iterable} b - * @return {Boolean} result - */ - -function iterableEqual(a, b) { - if (a.length !== b.length) return false; - - var i = 0; - var match = true; - - for (; i < a.length; i++) { - if (a[i] !== b[i]) { - match = false; - break; - } - } - - return match; -} - -/*! - * Extension to `iterableEqual` specifically - * for Node.js Buffers. - * - * @param {Buffer} a - * @param {Mixed} b - * @return {Boolean} result - */ - -function bufferEqual(a, b) { - if (!Buffer.isBuffer(b)) return false; - return iterableEqual(a, b); -} - -/*! - * Block for `objectEqual` ensuring non-existing - * values don't get in. - * - * @param {Mixed} object - * @return {Boolean} result - */ - -function isValue(a) { - return a !== null && a !== undefined; -} - -/*! - * Recursively check the equality of two objects. - * Once basic sameness has been established it will - * defer to `deepEqual` for each enumerable key - * in the object. - * - * @param {Mixed} a - * @param {Mixed} b - * @return {Boolean} result - */ - -function objectEqual(a, b, m) { - if (!isValue(a) || !isValue(b)) { - return false; - } - - if (a.prototype !== b.prototype) { - return false; - } - - var i; - if (m) { - for (i = 0; i < m.length; i++) { - if ((m[i][0] === a && m[i][1] === b) - || (m[i][0] === b && m[i][1] === a)) { - return true; - } - } - } else { - m = []; - } - - try { - var ka = enumerable(a); - var kb = enumerable(b); - } catch (ex) { - return false; - } - - ka.sort(); - kb.sort(); - - if (!iterableEqual(ka, kb)) { - return false; - } - - m.push([ a, b ]); - - var key; - for (i = ka.length - 1; i >= 0; i--) { - key = ka[i]; - if (!deepEqual(a[key], b[key], m)) { - return false; - } - } - - return true; -} - -},{"buffer":undefined,"type-detect":33}],33:[function(require,module,exports){ -module.exports = require('./lib/type'); - -},{"./lib/type":34}],34:[function(require,module,exports){ -/*! - * type-detect - * Copyright(c) 2013 jake luer - * MIT Licensed - */ - -/*! - * Primary Exports - */ - -var exports = module.exports = getType; - -/*! - * Detectable javascript natives - */ - -var natives = { - '[object Array]': 'array' - , '[object RegExp]': 'regexp' - , '[object Function]': 'function' - , '[object Arguments]': 'arguments' - , '[object Date]': 'date' -}; - -/** - * ### typeOf (obj) - * - * Use several different techniques to determine - * the type of object being tested. - * - * - * @param {Mixed} object - * @return {String} object type - * @api public - */ - -function getType (obj) { - var str = Object.prototype.toString.call(obj); - if (natives[str]) return natives[str]; - if (obj === null) return 'null'; - if (obj === undefined) return 'undefined'; - if (obj === Object(obj)) return 'object'; - return typeof obj; -} - -exports.Library = Library; - -/** - * ### Library - * - * Create a repository for custom type detection. - * - * ```js - * var lib = new type.Library; - * ``` - * - */ - -function Library () { - this.tests = {}; -} - -/** - * #### .of (obj) - * - * Expose replacement `typeof` detection to the library. - * - * ```js - * if ('string' === lib.of('hello world')) { - * // ... - * } - * ``` - * - * @param {Mixed} object to test - * @return {String} type - */ - -Library.prototype.of = getType; - -/** - * #### .define (type, test) - * - * Add a test to for the `.test()` assertion. - * - * Can be defined as a regular expression: - * - * ```js - * lib.define('int', /^[0-9]+$/); - * ``` - * - * ... or as a function: - * - * ```js - * lib.define('bln', function (obj) { - * if ('boolean' === lib.of(obj)) return true; - * var blns = [ 'yes', 'no', 'true', 'false', 1, 0 ]; - * if ('string' === lib.of(obj)) obj = obj.toLowerCase(); - * return !! ~blns.indexOf(obj); - * }); - * ``` - * - * @param {String} type - * @param {RegExp|Function} test - * @api public - */ - -Library.prototype.define = function (type, test) { - if (arguments.length === 1) return this.tests[type]; - this.tests[type] = test; - return this; -}; - -/** - * #### .test (obj, test) - * - * Assert that an object is of type. Will first - * check natives, and if that does not pass it will - * use the user defined custom tests. - * - * ```js - * assert(lib.test('1', 'int')); - * assert(lib.test('yes', 'bln')); - * ``` - * - * @param {Mixed} object - * @param {String} type - * @return {Boolean} result - * @api public - */ - -Library.prototype.test = function (obj, type) { - if (type === getType(obj)) return true; - var test = this.tests[type]; - - if (test && 'regexp' === getType(test)) { - return test.test(obj); - } else if (test && 'function' === getType(test)) { - return test(obj); - } else { - throw new ReferenceError('Type test "' + type + '" not defined or invalid.'); - } -}; - -},{}],35:[function(require,module,exports){ -arguments[4][33][0].apply(exports,arguments) -},{"./lib/type":36,"dup":33}],36:[function(require,module,exports){ -/*! - * type-detect - * Copyright(c) 2013 jake luer - * MIT Licensed - */ - -/*! - * Primary Exports - */ - -var exports = module.exports = getType; - -/** - * ### typeOf (obj) - * - * Use several different techniques to determine - * the type of object being tested. - * - * - * @param {Mixed} object - * @return {String} object type - * @api public - */ -var objectTypeRegexp = /^\[object (.*)\]$/; - -function getType(obj) { - var type = Object.prototype.toString.call(obj).match(objectTypeRegexp)[1].toLowerCase(); - // Let "new String('')" return 'object' - if (typeof Promise === 'function' && obj instanceof Promise) return 'promise'; - // PhantomJS has type "DOMWindow" for null - if (obj === null) return 'null'; - // PhantomJS has type "DOMWindow" for undefined - if (obj === undefined) return 'undefined'; - return type; -} - -exports.Library = Library; - -/** - * ### Library - * - * Create a repository for custom type detection. - * - * ```js - * var lib = new type.Library; - * ``` - * - */ - -function Library() { - if (!(this instanceof Library)) return new Library(); - this.tests = {}; -} - -/** - * #### .of (obj) - * - * Expose replacement `typeof` detection to the library. - * - * ```js - * if ('string' === lib.of('hello world')) { - * // ... - * } - * ``` - * - * @param {Mixed} object to test - * @return {String} type - */ - -Library.prototype.of = getType; - -/** - * #### .define (type, test) - * - * Add a test to for the `.test()` assertion. - * - * Can be defined as a regular expression: - * - * ```js - * lib.define('int', /^[0-9]+$/); - * ``` - * - * ... or as a function: - * - * ```js - * lib.define('bln', function (obj) { - * if ('boolean' === lib.of(obj)) return true; - * var blns = [ 'yes', 'no', 'true', 'false', 1, 0 ]; - * if ('string' === lib.of(obj)) obj = obj.toLowerCase(); - * return !! ~blns.indexOf(obj); - * }); - * ``` - * - * @param {String} type - * @param {RegExp|Function} test - * @api public - */ - -Library.prototype.define = function(type, test) { - if (arguments.length === 1) return this.tests[type]; - this.tests[type] = test; - return this; -}; - -/** - * #### .test (obj, test) - * - * Assert that an object is of type. Will first - * check natives, and if that does not pass it will - * use the user defined custom tests. - * - * ```js - * assert(lib.test('1', 'int')); - * assert(lib.test('yes', 'bln')); - * ``` - * - * @param {Mixed} object - * @param {String} type - * @return {Boolean} result - * @api public - */ - -Library.prototype.test = function(obj, type) { - if (type === getType(obj)) return true; - var test = this.tests[type]; - - if (test && 'regexp' === getType(test)) { - return test.test(obj); - } else if (test && 'function' === getType(test)) { - return test(obj); - } else { - throw new ReferenceError('Type test "' + type + '" not defined or invalid.'); - } -}; - -},{}]},{},[1])(1) -}); \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/chai/karma.conf.js b/node_modules/@polymer/polymer/bower_components/chai/karma.conf.js deleted file mode 100644 index 48cf5419..00000000 --- a/node_modules/@polymer/polymer/bower_components/chai/karma.conf.js +++ /dev/null @@ -1,28 +0,0 @@ -module.exports = function(config) { - config.set({ - frameworks: [ 'mocha' ] - , files: [ - 'chai.js' - , 'test/bootstrap/karma.js' - , 'test/*.js' - ] - , reporters: [ 'progress' ] - , colors: true - , logLevel: config.LOG_INFO - , autoWatch: false - , browsers: [ 'PhantomJS' ] - , browserDisconnectTimeout: 10000 - , browserDisconnectTolerance: 2 - , browserNoActivityTimeout: 20000 - , singleRun: true - }); - - switch (process.env.CHAI_TEST_ENV) { - case 'sauce': - require('./karma.sauce')(config); - break; - default: - // ... - break; - }; -}; diff --git a/node_modules/@polymer/polymer/bower_components/chai/karma.sauce.js b/node_modules/@polymer/polymer/bower_components/chai/karma.sauce.js deleted file mode 100644 index e57d5e0d..00000000 --- a/node_modules/@polymer/polymer/bower_components/chai/karma.sauce.js +++ /dev/null @@ -1,41 +0,0 @@ -var version = require('./package.json').version; -var ts = new Date().getTime(); - -module.exports = function(config) { - var auth; - - try { - auth = require('./test/auth/index'); - } catch(ex) { - auth = {}; - auth.SAUCE_USERNAME = process.env.SAUCE_USERNAME || null; - auth.SAUCE_ACCESS_KEY = process.env.SAUCE_ACCESS_KEY || null; - } - - if (!auth.SAUCE_USERNAME || !auth.SAUCE_ACCESS_KEY) return; - if (process.env.SKIP_SAUCE) return; - - var branch = process.env.TRAVIS_BRANCH || 'local' - var browserConfig = require('./sauce.browsers'); - var browsers = Object.keys(browserConfig); - var tags = [ 'chaijs_' + version, auth.SAUCE_USERNAME + '@' + branch ]; - var tunnel = process.env.TRAVIS_JOB_NUMBER || ts; - - if (process.env.TRAVIS_JOB_NUMBER) { - tags.push('travis@' + process.env.TRAVIS_JOB_NUMBER); - } - - config.browsers = config.browsers.concat(browsers); - config.customLaunchers = browserConfig; - config.reporters.push('saucelabs'); - config.transports = [ 'xhr-polling' ]; - - config.sauceLabs = { - username: auth.SAUCE_USERNAME - , accessKey: auth.SAUCE_ACCESS_KEY - , startConnect: true - , tags: tags - , testName: 'ChaiJS' - , tunnelIdentifier: tunnel - }; -}; diff --git a/node_modules/@polymer/polymer/bower_components/chai/package.json b/node_modules/@polymer/polymer/bower_components/chai/package.json deleted file mode 100644 index d8868553..00000000 --- a/node_modules/@polymer/polymer/bower_components/chai/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "author": "Jake Luer ", - "name": "chai", - "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", - "keywords": [ - "test", - "assertion", - "assert", - "testing", - "chai" - ], - "homepage": "http://chaijs.com", - "license": "MIT", - "contributors": [ - "Jake Luer ", - "Domenic Denicola (http://domenicdenicola.com)", - "Veselin Todorov ", - "John Firebaugh " - ], - "version": "3.5.0", - "repository": { - "type": "git", - "url": "https://github.com/chaijs/chai" - }, - "bugs": { - "url": "https://github.com/chaijs/chai/issues" - }, - "main": "./index", - "scripts": { - "test": "make test" - }, - "engines": { - "node": ">= 0.4.0" - }, - "dependencies": { - "assertion-error": "^1.0.1", - "deep-eql": "^0.1.3", - "type-detect": "^1.0.0" - }, - "devDependencies": { - "browserify": "^10.2.1", - "bump-cli": "^1.1.3", - "karma": "^0.13.16", - "karma-mocha": "^0.1.10", - "karma-sauce-launcher": "^0.2.11", - "karma-phantomjs-launcher": "^0.2.0", - "karma-firefox-launcher": "^0.1.6", - "mocha": "^2.2.5", - "istanbul": "^0.3.14" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/chai/sauce.browsers.js b/node_modules/@polymer/polymer/bower_components/chai/sauce.browsers.js deleted file mode 100644 index 690c7cca..00000000 --- a/node_modules/@polymer/polymer/bower_components/chai/sauce.browsers.js +++ /dev/null @@ -1,128 +0,0 @@ - -/*! - * Chrome - */ - -exports['SL_Chrome'] = { - base: 'SauceLabs' - , browserName: 'chrome' -}; - -/*! - * Firefox - */ - -/*! - * TODO: Karma doesn't seem to like this, though sauce boots its up - * - -exports['SL_Firefox_23'] = { - base: 'SauceLabs' - , browserName: 'firefox' - , platform: 'Windows XP' - , version: '23' -}; - -*/ - -exports['SL_Firefox_22'] = { - base: 'SauceLabs' - , browserName: 'firefox' - , platform: 'Windows 7' - , version: '22' -}; - -/*! - * Opera - */ - -exports['SL_Opera_12'] = { - base: 'SauceLabs' - , browserName: 'opera' - , platform: 'Windows 7' - , version: '12' -}; - -exports['SL_Opera_11'] = { - base: 'SauceLabs' - , browserName: 'opera' - , platform: 'Windows 7' - , version: '11' -}; - -/*! - * Internet Explorer - */ - -exports['SL_IE_10'] = { - base: 'SauceLabs' - , browserName: 'internet explorer' - , platform: 'Windows 2012' - , version: '10' -}; - -/*! - * Safari - */ - -exports['SL_Safari_6'] = { - base: 'SauceLabs' - , browserName: 'safari' - , platform: 'Mac 10.8' - , version: '6' -}; - -exports['SL_Safari_5'] = { - base: 'SauceLabs' - , browserName: 'safari' - , platform: 'Mac 10.6' - , version: '5' -}; - -/*! - * iPhone - */ - -/*! - * TODO: These take forever to boot or shut down. Causes timeout. - * - -exports['SL_iPhone_6'] = { - base: 'SauceLabs' - , browserName: 'iphone' - , platform: 'Mac 10.8' - , version: '6' -}; - -exports['SL_iPhone_5-1'] = { - base: 'SauceLabs' - , browserName: 'iphone' - , platform: 'Mac 10.8' - , version: '5.1' -}; - -exports['SL_iPhone_5'] = { - base: 'SauceLabs' - , browserName: 'iphone' - , platform: 'Mac 10.6' - , version: '5' -}; - -*/ - -/*! - * Android - */ - -/*! - * TODO: fails because of error serialization - * - -exports['SL_Android_4'] = { - base: 'SauceLabs' - , browserName: 'android' - , platform: 'Linux' - , version: '4' -}; - -*/ diff --git a/node_modules/@polymer/polymer/bower_components/font-roboto/.bower.json b/node_modules/@polymer/polymer/bower_components/font-roboto/.bower.json deleted file mode 100644 index 525574c6..00000000 --- a/node_modules/@polymer/polymer/bower_components/font-roboto/.bower.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "font-roboto", - "version": "1.1.0", - "description": "An HTML import for Roboto", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "font", - "roboto" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/font-roboto.git" - }, - "main": "roboto.html", - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/font-roboto/", - "ignore": [ - "/.*" - ], - "_release": "1.1.0", - "_resolution": { - "type": "version", - "tag": "v1.1.0", - "commit": "014b084ae51314648053e792cf6c870946942953" - }, - "_source": "https://github.com/PolymerElements/font-roboto.git", - "_target": "^1.0.1", - "_originalSource": "PolymerElements/font-roboto" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/font-roboto/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/font-roboto/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/font-roboto/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/font-roboto/README.md b/node_modules/@polymer/polymer/bower_components/font-roboto/README.md deleted file mode 100644 index 61c6394c..00000000 --- a/node_modules/@polymer/polymer/bower_components/font-roboto/README.md +++ /dev/null @@ -1 +0,0 @@ -# font-roboto diff --git a/node_modules/@polymer/polymer/bower_components/font-roboto/bower.json b/node_modules/@polymer/polymer/bower_components/font-roboto/bower.json deleted file mode 100644 index 7099d7ff..00000000 --- a/node_modules/@polymer/polymer/bower_components/font-roboto/bower.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "font-roboto", - "version": "1.0.3", - "description": "An HTML import for Roboto", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "font", - "roboto" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/font-roboto.git" - }, - "main": "roboto.html", - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/font-roboto/", - "ignore": [ - "/.*" - ] -} diff --git a/node_modules/@polymer/polymer/bower_components/font-roboto/package.json b/node_modules/@polymer/polymer/bower_components/font-roboto/package.json deleted file mode 100644 index a74ad2b7..00000000 --- a/node_modules/@polymer/polymer/bower_components/font-roboto/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@polymerelements/font-roboto", - "version": "1.0.1", - "description": "An HTML import for Roboto", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "font", - "roboto" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/font-roboto.git" - }, - "main": "roboto.html", - "license": "BSD-3-Clause", - "homepage": "https://github.com/PolymerElements/font-roboto/", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.1.1", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/font-roboto/roboto.d.ts b/node_modules/@polymer/polymer/bower_components/font-roboto/roboto.d.ts deleted file mode 100644 index 12fab1ef..00000000 --- a/node_modules/@polymer/polymer/bower_components/font-roboto/roboto.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * roboto.html - */ - diff --git a/node_modules/@polymer/polymer/bower_components/font-roboto/roboto.html b/node_modules/@polymer/polymer/bower_components/font-roboto/roboto.html deleted file mode 100644 index 417ee18c..00000000 --- a/node_modules/@polymer/polymer/bower_components/font-roboto/roboto.html +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/.bower.json deleted file mode 100644 index cfc23be1..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/.bower.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "name": "iron-a11y-announcer", - "version": "2.1.0", - "description": "A singleton element that simplifies announcing text to screen readers.", - "keywords": [ - "web-components", - "polymer", - "a11y", - "live" - ], - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-a11y-announcer.git" - }, - "main": "iron-a11y-announcer.html", - "license": "http://polymer.github.io/LICENSE.txt", - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", - "paper-button": "PolymerElements/paper-button#1 - 2", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "ignore": [], - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", - "paper-button": "PolymerElements/paper-button#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "Polymer/web-component-tester#^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "homepage": "https://github.com/PolymerElements/iron-a11y-announcer", - "_release": "2.1.0", - "_resolution": { - "type": "version", - "tag": "v2.1.0", - "commit": "7e2c529fcb96582cb8c13905896fcf8496763966" - }, - "_source": "https://github.com/PolymerElements/iron-a11y-announcer.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-a11y-announcer" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/.github/CODEOWNERS deleted file mode 100644 index cc86f1ec..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @notwaldorf -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 594376ff..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/.travis.yml deleted file mode 100644 index d13ba205..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/.travis.yml +++ /dev/null @@ -1,30 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -env: - global: - - secure: >- - QlyQxWnziNgzWqptOtM0Oq1s/q6YHT/GPuslA31yC0nex7Wi6X9DFoF5rNlDEY0Y6WxCh8xzsZpwXrI9vZypgKoZlAwO1e3RLDsGV0APPrWg66MyImAwlHAJolvJg+ASsLJ8pm9nxMP/xapRamciqUMTUTeZh0V/5SR82BXQCf3zXe+9cMmAFNXBrIg6LDCm77AwW+1vkE/IZAL1oShSBwXEybn9kpYsdCiOGdnvMlChhaeqRlOUXkr3LHPUDtV8hbd2EswmPeHSV+RGdB/UFyRGa4g7gPgqtz7U2FS0/BqT0G2iJlAXGCttJnS6fXwyCriREplYjXzqrX0MeRWHD5vNxAucO/Va1n2tHEmJM3OhIYgO8VDM8S3nRRUDE/ifSjsu1UgBN7b1vml0zWo7rdvpD8fedx6+g4ph390kg5XRFNJZJ03YijfcNVUfnOTEWt9LntGRq5aKPB6RSbEvkuZFjLGHHD/xQu2LfyIjmueIWJNk4JeCNrm3zFPMhBAZfu7WTJPTk3dZ2L+0mty1QbaJ/lyTWIBYbTVBwwHzXKrPbgg5u/9e6DjhT8Zg/eJvmN/+sXAlUqnmTAE9coQ0LIivg6COWPoRDmdGl2uMygiCaLkFAy4sqhjP99Aq5/ekZWXUrTTa4NGw2qnvM4JY9YcEzUC0ZqzM11gj8x8ATi0= - - secure: >- - d0wz93AwXyNVmCr33od+TFC51nZgUzcdwHiJWxX0E+msZ8VgYCjj21D6OOZy84O7vYiPFy8vO03dvyqkj1uclEvfu2YlfiEaRxifKaxN6mQx142WjBtdHFjEUfBJR5eqm5qSeGj7aSZzPgerUl6yAkYH5tFldBatevF5Ax98Yr1dCsgpegsLCmBmusPH7tERnBilalcvXKVBfRXrnrkFkVoWroBb04W79aZSTlLGTlpBJCzR9Xe7RiXqnanSQQb1LjyCl55P0NvVVRjwpoVnikRqkIV/jehcNfIiJSC/vetepqqUehD6RdP2T8Nio7YvlLtXnW9vptlKYL2uZjhg23DyhgGW/4ZPaIABWVBqVUBbyaX6GCXo3EMyQcZhi17qCWEKnFGCrorC/4ZM6A0kJ+olOfQxszf9HrAX8+9DCaiKscn2Lz+ON/opFKFRAQngCJ9swBc27twavUxx4qNzOVJLdH8oGhCdl5DA4mgGGDWZz463X0HzagGUpi/RfME26uQnTkyK8eErL2yac+1VmA/QOx0RkYlrZ/pIEywkZPWusjJepCm9nlZGylaBr2mDpk8Kea+7IytO6sefiBwjX1RiqmnjnszO3jb/w5s0giUItWuFmDr14sOaFmj6wQB643eSGi42LSPG+FMea1RwUupyEPeLZq/aoJ0jmewGLv4= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/README.md b/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/README.md deleted file mode 100644 index 8b997a30..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/README.md +++ /dev/null @@ -1,55 +0,0 @@ - - - -[![Build status](https://travis-ci.org/PolymerElements/iron-a11y-announcer.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-a11y-announcer) - -_[Demo and API docs](https://elements.polymer-project.org/elements/iron-a11y-announcer)_ - - -##<iron-a11y-announcer> - -`iron-a11y-announcer` is a singleton element that is intended to add a11y -to features that require on-demand announcement from screen readers. In -order to make use of the announcer, it is best to request its availability -in the announcing element. - -Example: - -```javascript -Polymer({ - - is: 'x-chatty', - - attached: function() { - // This will create the singleton element if it has not - // been created yet: - Polymer.IronA11yAnnouncer.requestAvailability(); - } -}); -``` - -After the `iron-a11y-announcer` has been made available, elements can -make announces by firing bubbling `iron-announce` events. - -Example: - -```javascript -this.fire('iron-announce', { - text: 'This is an announcement!' -}, { bubbles: true }); -``` - -Note: announcements are only audible if you have a screen reader enabled. - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/bower.json b/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/bower.json deleted file mode 100644 index 524c047b..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/bower.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "iron-a11y-announcer", - "version": "2.0.0", - "description": "A singleton element that simplifies announcing text to screen readers.", - "keywords": [ - "web-components", - "polymer", - "a11y", - "live" - ], - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-a11y-announcer.git" - }, - "main": "iron-a11y-announcer.html", - "license": "http://polymer.github.io/LICENSE.txt", - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", - "paper-button": "PolymerElements/paper-button#1 - 2", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "ignore": [], - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", - "paper-button": "PolymerElements/paper-button#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "Polymer/web-component-tester#^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/demo/index.html b/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/demo/index.html deleted file mode 100644 index 8d5aa4c4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/demo/index.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - iron-a11y-announcer demo - - - - - - - - - - - - -
-

Note: in order to hear the announcements, be sure to turn on your favorite screen reader!

- -

Announcer used directly on the main document

- - - - -

Announcer used inside a custom element

- - - -
- - diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/demo/x-announces.html b/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/demo/x-announces.html deleted file mode 100644 index b46d49d5..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/demo/x-announces.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/index.html b/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/index.html deleted file mode 100644 index 1f8889a8..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/index.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - iron-a11y-announcer - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/iron-a11y-announcer.d.ts b/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/iron-a11y-announcer.d.ts deleted file mode 100644 index e777c372..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/iron-a11y-announcer.d.ts +++ /dev/null @@ -1,68 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-a11y-announcer.html - */ - -/// - -declare namespace Polymer { - - /** - * `iron-a11y-announcer` is a singleton element that is intended to add a11y - * to features that require on-demand announcement from screen readers. In - * order to make use of the announcer, it is best to request its availability - * in the announcing element. - * - * Example: - * - * Polymer({ - * - * is: 'x-chatty', - * - * attached: function() { - * // This will create the singleton element if it has not - * // been created yet: - * Polymer.IronA11yAnnouncer.requestAvailability(); - * } - * }); - * - * After the `iron-a11y-announcer` has been made available, elements can - * make announces by firing bubbling `iron-announce` events. - * - * Example: - * - * this.fire('iron-announce', { - * text: 'This is an announcement!' - * }, { bubbles: true }); - * - * Note: announcements are only audible if you have a screen reader enabled. - */ - class IronA11yAnnouncer extends Polymer.Element { - - /** - * The value of mode is used to set the `aria-live` attribute - * for the element that will be announced. Valid values are: `off`, - * `polite` and `assertive`. - */ - mode: string|null|undefined; - _text: string|null|undefined; - created(): void; - - /** - * Cause a text string to be announced by screen readers. - * - * @param text The text that should be announced. - */ - announce(text: string): void; - _onIronAnnounce(event: any): void; - } -} - -interface HTMLElementTagNameMap { - "iron-a11y-announcer": Polymer.IronA11yAnnouncer; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/iron-a11y-announcer.html b/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/iron-a11y-announcer.html deleted file mode 100644 index 11a8809f..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/iron-a11y-announcer.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/package.json b/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/package.json deleted file mode 100644 index ee95f424..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/iron-a11y-announcer", - "private": true, - "description": "A singleton element that simplifies announcing text to screen readers.", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-a11y-announcer.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/test/index.html deleted file mode 100644 index fb7c0ce5..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/test/index.html +++ /dev/null @@ -1,22 +0,0 @@ - - - iron-a11y-announcer tests - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/test/iron-a11y-announcer.html b/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/test/iron-a11y-announcer.html deleted file mode 100644 index 510bf6f9..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-announcer/test/iron-a11y-announcer.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - iron-a11y-announcer - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/.bower.json deleted file mode 100644 index 9445e980..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/.bower.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "iron-a11y-keys-behavior", - "version": "2.1.0", - "description": "A behavior that enables keybindings for greater a11y.", - "keywords": [ - "web-components", - "web-component", - "polymer", - "a11y", - "input" - ], - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-a11y-keys-behavior.git" - }, - "main": "iron-a11y-keys-behavior.html", - "license": "http://polymer.github.io/LICENSE.txt", - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "homepage": "https://github.com/PolymerElements/iron-a11y-keys-behavior", - "_release": "2.1.0", - "_resolution": { - "type": "version", - "tag": "v2.1.0", - "commit": "b6c34e5b7e1876bcf1a6b6b18915c83d43c8bcb9" - }, - "_source": "https://github.com/PolymerElements/iron-a11y-keys-behavior.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-a11y-keys-behavior" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/.github/CODEOWNERS deleted file mode 100644 index c5097c0c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @valdrinkoshi -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 7d936048..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/.travis.yml deleted file mode 100644 index ef5fc675..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g bower polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -env: - global: - - secure: >- - XJ31r/5USVGZRtziCLfr8qM1pJKKQMUN1AeYbCdDFEc6i293WxZneR8PwUVhvyptu+qdyd28uy24sH+Ob7kShFbZTUaif5P4gqHPekrYToI0aHyhmVX7C1LmT7nEL8IcT62NhUwh+83eHTAdodkXgnhfQhPn9FHV24Dkvwm8OKhhzEhtTgUGVuGX9j9FyNV6n1+gf4X3Zq63+NkEUh5vpolpue4W7ul2u0sf4l0fzg9pvKPCmywUwX2i7wwAEf3CJghMu2xup54OzXTEkjjSou/ebt1ZnxaUNV1+dblfUne0v9wTD0dPF8H3DwgewwzcZSbOZmj6lFVHRzmLzWcRJOEKdDrpJkjpg7HIhNPGCKDUcNylekafqi7ezhzrkzFwkh6JCdAj7He4mv/X/OUDNjNCClB7Ms/+WPZwtACvIcR2/pvgZ+1PHbIkbIInyAe6iVMMR0oUecei/X+d04DH7iW7rrODVEu6qdibsJki0R0lR2184rrDO9pGek4rLu9sUQBDNgEM6ZLEXXByO8lpG4xStRdkg0/uR5i1/Q8kux4gIJ9yV8WLANkS8NVlmuJgIi6kbh5n4VVKaihGhbBUuTt2aL7fLnH2I6YRwjyNI9TOIRxwk4afppFYUuq6Fv+nfPcdqDOi5Y2AOXLJ3Yvco0+H57nXe/Ny29gFVW4Kftg= - - secure: >- - huEi/Ja2qnLatb7EJ4Jdc/XAeKphhdH6G+px7/XZY33oDawjStxakx0N/MpT0LPE1BdEWOYTzc17CzKv9R2L3ybWksqXyv/Zs+1NMTmpEAS/54Sk4E61aE3nrV5cfS2R8dBGbJhFoH1W237BDsbw9A4XhsTvhxlIsluWsZgeurbleGg+DgAmg8KlHGRddsfBFgXEk+Khhj6KPsbgPUiWhXpdnXKBPJKF7fJEAbsGR4aFK2eFbYd1OAgJg2Aye0n93IHe+SsxcKRUYteg6UK9V8fk7q5PBlvaodly4F3gH82l+zbnhcTFVW+qN0s6xDBTQzsQ55eTlO3pEezIo3u/1Lq41Yoe6scEkLs63pSYqoB3kakbhLMDJAen080ggdNg9evqvgyznKFYM7sqEcPu+KxHd043DyLTTW11y9lZ/hV3xSTdG4W8mV7+ILbIi54wMaYAcWSGMTOVM0JC/KDoVjze3tzDmfcZwiutLPBFgfrkfJQf3fyqcgvhoLKtHaWHI+76XDsXwEOS2Q5OX9oDtjoZaZ7r8Gp4dqwaKYceOrlsLbaZOLh5nJ4WnDbf4AqZkeM22QWWIfUN6aK+yhsDpQ/d+xJ+/WFENDADrMEKp0Lf3CkzAAcpHp3u65B9qsqweD5/5Je9t0GsA/NvK2xCasnNz6inYy4tAx9i4NWPcOY= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/README.md b/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/README.md deleted file mode 100644 index 87f99026..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/README.md +++ /dev/null @@ -1,45 +0,0 @@ - -[![Build status](https://travis-ci.org/PolymerElements/iron-a11y-keys-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-a11y-keys-behavior) - -_[Demo and API docs](https://elements.polymer-project.org/elements/iron-a11y-keys-behavior)_ - - -## Polymer.IronA11yKeysBehavior - -`Polymer.IronA11yKeysBehavior` provides a normalized interface for processing -keyboard commands that pertain to [WAI-ARIA best practices](http://www.w3.org/TR/wai-aria-practices/#kbd_general_binding). -The element takes care of browser differences with respect to Keyboard events -and uses an expressive syntax to filter key presses. - -Use the `keyBindings` prototype property to express what combination of keys -will trigger the callback. A key binding has the format -`"KEY+MODIFIER:EVENT": "callback"` (`"KEY": "callback"` or -`"KEY:EVENT": "callback"` are valid as well). Some examples: - -```javascript - keyBindings: { - 'space': '_onKeydown', // same as 'space:keydown' - 'shift+tab': '_onKeydown', - 'enter:keypress': '_onKeypress', - 'esc:keyup': '_onKeyup' - } -``` - -The callback will receive with an event containing the following information in `event.detail`: - -```javascript - _onKeydown: function(event) { - console.log(event.detail.combo); // KEY+MODIFIER, e.g. "shift+tab" - console.log(event.detail.key); // KEY only, e.g. "tab" - console.log(event.detail.event); // EVENT, e.g. "keydown" - console.log(event.detail.keyboardEvent); // the original KeyboardEvent - } -``` - -Use the `keyEventTarget` attribute to set up event handlers on a specific -node. - -See the [demo source code](https://github.com/PolymerElements/iron-a11y-keys-behavior/blob/master/demo/x-key-aware.html) -for an example. - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/bower.json b/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/bower.json deleted file mode 100644 index bbd92378..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/bower.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "iron-a11y-keys-behavior", - "version": "2.0.1", - "description": "A behavior that enables keybindings for greater a11y.", - "keywords": [ - "web-components", - "web-component", - "polymer", - "a11y", - "input" - ], - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-a11y-keys-behavior.git" - }, - "main": "iron-a11y-keys-behavior.html", - "license": "http://polymer.github.io/LICENSE.txt", - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/demo/index.html b/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/demo/index.html deleted file mode 100644 index e7685e83..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/demo/index.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - Iron A11y Keys Behavior demo - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/demo/x-key-aware.html b/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/demo/x-key-aware.html deleted file mode 100644 index 9f4f4633..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/demo/x-key-aware.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/index.html b/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/index.html deleted file mode 100644 index c53ba6cf..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - iron-a11y-keys-behavior - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.d.ts b/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.d.ts deleted file mode 100644 index 180d1288..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.d.ts +++ /dev/null @@ -1,104 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-a11y-keys-behavior.html - */ - -/// - -declare namespace Polymer { - - /** - * `Polymer.IronA11yKeysBehavior` provides a normalized interface for processing - * keyboard commands that pertain to [WAI-ARIA best practices](http://www.w3.org/TR/wai-aria-practices/#kbd_general_binding). - * The element takes care of browser differences with respect to Keyboard events - * and uses an expressive syntax to filter key presses. - * - * Use the `keyBindings` prototype property to express what combination of keys - * will trigger the callback. A key binding has the format - * `"KEY+MODIFIER:EVENT": "callback"` (`"KEY": "callback"` or - * `"KEY:EVENT": "callback"` are valid as well). Some examples: - * - * keyBindings: { - * 'space': '_onKeydown', // same as 'space:keydown' - * 'shift+tab': '_onKeydown', - * 'enter:keypress': '_onKeypress', - * 'esc:keyup': '_onKeyup' - * } - * - * The callback will receive with an event containing the following information in `event.detail`: - * - * _onKeydown: function(event) { - * console.log(event.detail.combo); // KEY+MODIFIER, e.g. "shift+tab" - * console.log(event.detail.key); // KEY only, e.g. "tab" - * console.log(event.detail.event); // EVENT, e.g. "keydown" - * console.log(event.detail.keyboardEvent); // the original KeyboardEvent - * } - * - * Use the `keyEventTarget` attribute to set up event handlers on a specific - * node. - * - * See the [demo source code](https://github.com/PolymerElements/iron-a11y-keys-behavior/blob/master/demo/x-key-aware.html) - * for an example. - */ - interface IronA11yKeysBehavior { - - /** - * The EventTarget that will be firing relevant KeyboardEvents. Set it to - * `null` to disable the listeners. - */ - keyEventTarget: EventTarget|null; - - /** - * If true, this property will cause the implementing element to - * automatically stop propagation on any handled KeyboardEvents. - */ - stopKeyboardEventPropagation: boolean|null|undefined; - _boundKeyHandlers: any[]|null|undefined; - - /** - * own properties of everything on the "prototype". - */ - _imperativeKeyBindings: object|null|undefined; - - /** - * To be used to express what combination of keys will trigger the relative - * callback. e.g. `keyBindings: { 'esc': '_onEscPressed'}` - */ - keyBindings: object; - registered(): void; - attached(): void; - detached(): void; - - /** - * Can be used to imperatively add a key binding to the implementing - * element. This is the imperative equivalent of declaring a keybinding - * in the `keyBindings` prototype property. - */ - addOwnKeyBinding(eventString: string, handlerName: string): void; - - /** - * When called, will remove all imperatively-added key bindings. - */ - removeOwnKeyBindings(): void; - - /** - * Returns true if a keyboard event matches `eventString`. - */ - keyboardEventMatchesKeys(event: KeyboardEvent|null, eventString: string): boolean; - _collectKeyBindings(): any; - _prepKeyBindings(): void; - _addKeyBinding(eventString: any, handlerName: any): void; - _resetKeyEventListeners(): void; - _listenKeyEventListeners(): void; - _unlistenKeyEventListeners(): void; - _onKeyBindingEvent(keyBindings: any, event: any): void; - _triggerKeyHandler(keyCombo: any, handlerName: any, keyboardEvent: any): void; - } - - const IronA11yKeysBehavior: object; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html b/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html deleted file mode 100644 index 1887805c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html +++ /dev/null @@ -1,499 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/package.json b/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/package.json deleted file mode 100644 index f30e825c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/iron-a11y-keys-behavior", - "private": true, - "description": "A behavior that enables keybindings for greater a11y.", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-a11y-keys-behavior.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/test/basic-test.html b/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/test/basic-test.html deleted file mode 100644 index 9ce92a82..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/test/basic-test.html +++ /dev/null @@ -1,455 +0,0 @@ - - - - - - - iron-a11y-keys - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/test/index.html deleted file mode 100755 index b6c52022..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-a11y-keys-behavior/test/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - Tests - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-ajax/.bower.json deleted file mode 100644 index 795bb2f4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/.bower.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "name": "iron-ajax", - "version": "2.1.3", - "description": "Makes it easy to make ajax calls and parse the response", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "ajax" - ], - "main": "iron-ajax.html", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-ajax.git" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-ajax", - "ignore": [], - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-image": "PolymerElements/iron-image#1 - 2", - "promise-polyfill": "PolymerLabs/promise-polyfill#1 - 2", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "promise-polyfill": "PolymerLabs/promise-polyfill#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-image": "PolymerElements/iron-image#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "promise-polyfill": "^1.0.0", - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "_release": "2.1.3", - "_resolution": { - "type": "version", - "tag": "v2.1.3", - "commit": "923e2b523832b2b7ff8768afbbec695f87a2dfd7" - }, - "_source": "https://github.com/PolymerElements/iron-ajax.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-ajax" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-ajax/.github/CODEOWNERS deleted file mode 100644 index 9ef9eb64..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @e111077 -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-ajax/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index e73ee265..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-ajax/.travis.yml deleted file mode 100644 index bb1aefa3..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/.travis.yml +++ /dev/null @@ -1,30 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -env: - global: - - secure: >- - HWwX1XiMfkZkC5XzAz6HkMJcFR+O1DZ+g9hnogZ0e3zdjqZ8VFkCsx0glJLA4TIPdWDfq93gRmeGtbepIx0x4BVOWX8rqoIjb9fbNJDU4ItZsbOvDLInFqKevdq+/klDavVfbR4hNeaHgDmcIEa/IolDU0qIrIdefBfZLOQ0ajM= - - secure: >- - hBkZz41jJfEP+Z8Uwcw3/EWDLLBzKT+WKY/XI7ubT/bxlXn95RJqY+j1pBX7+fHfLrUfjRmQHTsqkkST2JwRGAZoZpBX+lmUuNRyMoYsDKMl+CYinhSNTVVGSv7JPt5Ls5fktfzIt6Qd97vBy25hcCGKB6HBy+ppfP2DuII4uC8= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-ajax/CONTRIBUTING.md deleted file mode 100644 index 543fda4f..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/zeriha/2/edit?html,output](https://jsbin.com/zeriha/2/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/README.md b/node_modules/@polymer/polymer/bower_components/iron-ajax/README.md deleted file mode 100644 index 7a1a3697..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/README.md +++ /dev/null @@ -1,111 +0,0 @@ - - - -[![Build status](https://travis-ci.org/PolymerElements/iron-ajax.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-ajax) - -_[Demo and API docs](https://elements.polymer-project.org/elements/iron-ajax)_ - -## Changes in 2.0 - -* Promise polyfill is now a dev dependency and no longer shipped with `iron-ajax`. - - `iron-ajax` uses the `Promise` API, which is not yet supported in all browsers. - - The 1.x version of `iron-ajax` automatically loaded the promise polyfill. This - forced the application to include the polyfill, whether or not it was needed. - - When using `iron-ajax` 2.x with Polymer 1.x, you must provide your own Promise polyfill, - if needed. For example, you could use the promise polyfill by installing it in your project: - - bower install --save PolymerLabs/promise-polyfill#1 - 2 - - Then your app should include the promise polyfill before loading `iron-ajax`: - - - - You can use a different promise polyfill if you need a more fully-featured implementation of - Promise. - - For Polymer 2.x, you **do not need to provide your own Promise polyfill if you are using - the web components polyfills.** Because the web components v1 APIs depend on `Promise`, - a promise polyfill is loaded when needed by the v1 polyfills (`web-components-lite.js` or - `webcomponents-loader.js`). - -* New optional error information. - - The `generateRequest` method returns an `iron-request` element representing the - request, and the request element provides a `completes` property, which is a - promise that completes when the request either succeeds or fails. - - This version includes a new flag, `rejectWithRequest`, that modifies the error handling - of the `completes` promise. By default, when the promise is rejected (because the request - failed), the rejection callback only receives an `Error` object describing the failure. - - With `rejectWithRequest` set to true, the callback receives an object with two keys, `error`, - the error message, and `request`, the original request that the error is related to: - - let request = ironAjaxElement.generateRequest(); - request.completes.then(function(req) { - // succesful request, argument is iron-request element - ... - }, function(rejected) { - // failed request, argument is an object - let req = rejected.request; - let error = rejected.error; - ... - } - ) - - Because this change could break existing code, `rejectWithRequest` is false by default, - however, in the next major release, this option will be removed and the new behavior made - the default. - - -## <iron-ajax> - -The `iron-ajax` element exposes network request functionality. - -```html - -``` - -With `auto` set to `true`, the element performs a request whenever -its `url`, `params` or `body` properties are changed. Automatically generated -requests will be debounced in the case that multiple attributes are changed -sequentially. - -Note: The `params` attribute must be double quoted JSON. - -You can trigger a request explicitly by calling `generateRequest` on the -element. - - - -## <iron-request> - -iron-request can be used to perform XMLHttpRequests. - -```html - -... -this.$.xhr.send({url: url, body: params}); -``` - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/bower.json b/node_modules/@polymer/polymer/bower_components/iron-ajax/bower.json deleted file mode 100644 index f59705eb..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/bower.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "iron-ajax", - "version": "2.1.3", - "description": "Makes it easy to make ajax calls and parse the response", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "ajax" - ], - "main": "iron-ajax.html", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-ajax.git" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-ajax", - "ignore": [], - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-image": "PolymerElements/iron-image#1 - 2", - "promise-polyfill": "PolymerLabs/promise-polyfill#1 - 2", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "promise-polyfill": "PolymerLabs/promise-polyfill#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-image": "PolymerElements/iron-image#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "promise-polyfill": "^1.0.0", - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/demo/index.html b/node_modules/@polymer/polymer/bower_components/iron-ajax/demo/index.html deleted file mode 100644 index 02c37b59..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/demo/index.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - iron-ajax - - - - - - - - -

Video Feed

- - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/hero.svg b/node_modules/@polymer/polymer/bower_components/iron-ajax/hero.svg deleted file mode 100644 index 7b992152..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/hero.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/index.html b/node_modules/@polymer/polymer/bower_components/iron-ajax/index.html deleted file mode 100644 index 41aca5cb..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - iron-ajax - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/iron-ajax.d.ts b/node_modules/@polymer/polymer/bower_components/iron-ajax/iron-ajax.d.ts deleted file mode 100644 index 301d134b..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/iron-ajax.d.ts +++ /dev/null @@ -1,261 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-ajax.html - */ - -/// -/// - -/** - * The `iron-ajax` element exposes network request functionality. - * - * - * - * With `auto` set to `true`, the element performs a request whenever - * its `url`, `params` or `body` properties are changed. Automatically generated - * requests will be debounced in the case that multiple attributes are changed - * sequentially. - * - * Note: The `params` attribute must be double quoted JSON. - * - * You can trigger a request explicitly by calling `generateRequest` on the - * element. - */ -interface IronAjaxElement extends Polymer.Element { - - /** - * The URL target of the request. - */ - url: string|null|undefined; - - /** - * An object that contains query parameters to be appended to the - * specified `url` when generating a request. If you wish to set the body - * content when making a POST request, you should use the `body` property - * instead. - */ - params: object|null|undefined; - - /** - * The HTTP method to use such as 'GET', 'POST', 'PUT', or 'DELETE'. - * Default is 'GET'. - */ - method: string|null|undefined; - - /** - * HTTP request headers to send. - * - * Example: - * - * - * - * Note: setting a `Content-Type` header here will override the value - * specified by the `contentType` property of this element. - */ - headers: object|null|undefined; - - /** - * Content type to use when sending data. If the `contentType` property - * is set and a `Content-Type` header is specified in the `headers` - * property, the `headers` property value will take precedence. - * - * Varies the handling of the `body` param. - */ - contentType: string|null|undefined; - - /** - * Body content to send with the request, typically used with "POST" - * requests. - * - * If body is a string it will be sent unmodified. - * - * If Content-Type is set to a value listed below, then - * the body will be encoded accordingly. - * - * * `content-type="application/json"` - * * body is encoded like `{"foo":"bar baz","x":1}` - * * `content-type="application/x-www-form-urlencoded"` - * * body is encoded like `foo=bar+baz&x=1` - * - * Otherwise the body will be passed to the browser unmodified, and it - * will handle any encoding (e.g. for FormData, Blob, ArrayBuffer). - */ - body: object|null|undefined; - - /** - * Toggle whether XHR is synchronous or asynchronous. Don't change this - * to true unless You Know What You Are Doing™. - */ - sync: boolean|null|undefined; - - /** - * Specifies what data to store in the `response` property, and - * to deliver as `event.detail.response` in `response` events. - * - * One of: - * - * `text`: uses `XHR.responseText`. - * - * `xml`: uses `XHR.responseXML`. - * - * `json`: uses `XHR.responseText` parsed as JSON. - * - * `arraybuffer`: uses `XHR.response`. - * - * `blob`: uses `XHR.response`. - * - * `document`: uses `XHR.response`. - */ - handleAs: string|null|undefined; - - /** - * Set the withCredentials flag on the request. - */ - withCredentials: boolean|null|undefined; - - /** - * Set the timeout flag on the request. - */ - timeout: number|null|undefined; - - /** - * If true, automatically performs an Ajax request when either `url` or - * `params` changes. - */ - auto: boolean|null|undefined; - - /** - * If true, error messages will automatically be logged to the console. - */ - verbose: boolean|null|undefined; - - /** - * The most recent request made by this iron-ajax element. - */ - readonly lastRequest: object|null|undefined; - - /** - * The `progress` property of this element's `lastRequest`. - */ - readonly lastProgress: object|null|undefined; - - /** - * True while lastRequest is in flight. - */ - readonly loading: boolean|null|undefined; - - /** - * lastRequest's response. - * - * Note that lastResponse and lastError are set when lastRequest finishes, - * so if loading is true, then lastResponse and lastError will correspond - * to the result of the previous request. - * - * The type of the response is determined by the value of `handleAs` at - * the time that the request was generated. - */ - readonly lastResponse: object|null; - - /** - * lastRequest's error, if any. - */ - readonly lastError: object|null; - - /** - * An Array of all in-flight requests originating from this iron-ajax - * element. - */ - readonly activeRequests: any[]|null|undefined; - - /** - * Length of time in milliseconds to debounce multiple automatically generated requests. - */ - debounceDuration: number|null|undefined; - - /** - * Prefix to be stripped from a JSON response before parsing it. - * - * In order to prevent an attack using CSRF with Array responses - * (http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx/) - * many backends will mitigate this by prefixing all JSON response bodies - * with a string that would be nonsensical to a JavaScript parser. - */ - jsonPrefix: string|null|undefined; - - /** - * By default, iron-ajax's events do not bubble. Setting this attribute will cause its - * request and response events as well as its iron-ajax-request, -response, and -error - * events to bubble to the window object. The vanilla error event never bubbles when - * using shadow dom even if this.bubbles is true because a scoped flag is not passed with - * it (first link) and because the shadow dom spec did not used to allow certain events, - * including events named error, to leak outside of shadow trees (second link). - * https://www.w3.org/TR/shadow-dom/#scoped-flag - * https://www.w3.org/TR/2015/WD-shadow-dom-20151215/#events-that-are-not-leaked-into-ancestor-trees - */ - bubbles: boolean|null|undefined; - - /** - * Changes the [`completes`](iron-request#property-completes) promise chain - * from `generateRequest` to reject with an object - * containing the original request, as well an error message. - * If false (default), the promise rejects with an error message only. - */ - rejectWithRequest: boolean|null|undefined; - _boundHandleResponse: Function|null|undefined; - hostAttributes: object|null; - - /** - * The query string that should be appended to the `url`, serialized from - * the current value of `params`. - */ - readonly queryString: string; - - /** - * The `url` with query string (if `params` are specified), suitable for - * providing to an `iron-request` instance. - */ - readonly requestUrl: string; - - /** - * An object that maps header names to header values, first applying the - * the value of `Content-Type` and then overlaying the headers specified - * in the `headers` property. - */ - readonly requestHeaders: object|null; - created(): void; - _onProgressChanged(event: any): void; - - /** - * Request options suitable for generating an `iron-request` instance based - * on the current state of the `iron-ajax` instance's properties. - */ - toRequestOptions(): {url: string, method?: string, async?: boolean, body?: ArrayBuffer|ArrayBufferView|Blob|Document|FormData|string|object|null, headers?: object|null, handleAs?: string, jsonPrefix?: string, withCredentials?: boolean}; - - /** - * Performs an AJAX request to the specified URL. - */ - generateRequest(): IronRequestElement; - _handleResponse(request: any): void; - _handleError(request: any, error: any): void; - _discardRequest(request: any): void; - _requestOptionsChanged(): void; -} - -interface HTMLElementTagNameMap { - "iron-ajax": IronAjaxElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/iron-ajax.html b/node_modules/@polymer/polymer/bower_components/iron-ajax/iron-ajax.html deleted file mode 100644 index 257552e6..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/iron-ajax.html +++ /dev/null @@ -1,624 +0,0 @@ - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/iron-request.d.ts b/node_modules/@polymer/polymer/bower_components/iron-ajax/iron-request.d.ts deleted file mode 100644 index d44d1b23..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/iron-request.d.ts +++ /dev/null @@ -1,152 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-request.html - */ - -/// - -/** - * iron-request can be used to perform XMLHttpRequests. - * - * - * ... - * this.$.xhr.send({url: url, body: params}); - */ -interface IronRequestElement extends Polymer.Element { - - /** - * A reference to the XMLHttpRequest instance used to generate the - * network request. - */ - readonly xhr: XMLHttpRequest|null; - - /** - * A reference to the parsed response body, if the `xhr` has completely - * resolved. - */ - readonly response: any; - - /** - * A reference to the status code, if the `xhr` has completely resolved. - */ - readonly status: number|null|undefined; - - /** - * A reference to the status text, if the `xhr` has completely resolved. - */ - readonly statusText: string|null|undefined; - - /** - * A promise that resolves when the `xhr` response comes back, or rejects - * if there is an error before the `xhr` completes. - * The resolve callback is called with the original request as an argument. - * By default, the reject callback is called with an `Error` as an argument. - * If `rejectWithRequest` is true, the reject callback is called with an - * object with two keys: `request`, the original request, and `error`, the - * error object. - */ - readonly completes: Promise|null; - - /** - * An object that contains progress information emitted by the XHR if - * available. - */ - readonly progress: object|null|undefined; - - /** - * Aborted will be true if an abort of the request is attempted. - */ - readonly aborted: boolean|null|undefined; - - /** - * Errored will be true if the browser fired an error event from the - * XHR object (mainly network errors). - */ - readonly errored: boolean|null|undefined; - - /** - * TimedOut will be true if the XHR threw a timeout event. - */ - readonly timedOut: boolean|null|undefined; - hostAttributes: object|null; - - /** - * Succeeded is true if the request succeeded. The request succeeded if it - * loaded without error, wasn't aborted, and the status code is ≥ 200, and - * < 300, or if the status code is 0. - * - * The status code 0 is accepted as a success because some schemes - e.g. - * file:// - don't provide status codes. - */ - readonly succeeded: boolean; - - /** - * Sends an HTTP request to the server and returns a promise (see the `completes` - * property for details). - * - * The handling of the `body` parameter will vary based on the Content-Type - * header. See the docs for iron-ajax's `body` property for details. - * - * @param options - url The url to which the request is sent. - * - method The HTTP method to use, default is GET. - * - async By default, all requests are sent asynchronously. To send synchronous requests, - * set to false. - * - body The content for the request body for POST method. - * - headers HTTP request headers. - * - handleAs The response type. Default is 'text'. - * - withCredentials Whether or not to send credentials on the request. Default is false. - * - timeout - Timeout for request, in milliseconds. - * - rejectWithRequest Set to true to include the request object with promise rejections. - */ - send(options: {url: string, method?: string, async?: boolean, body?: ArrayBuffer|ArrayBufferView|Blob|Document|FormData|string|object|null, headers?: object|null, handleAs?: string, jsonPrefix?: string, withCredentials?: boolean, timeout?: Number|null, rejectWithRequest?: boolean}): Promise|null; - - /** - * Attempts to parse the response body of the XHR. If parsing succeeds, - * the value returned will be deserialized based on the `responseType` - * set on the XHR. - * - * @returns The parsed response, - * or undefined if there was an empty response or parsing failed. - */ - parseResponse(): any; - - /** - * Aborts the request. - */ - abort(): void; - - /** - * @param body The given body of the request to try and encode. - * @param contentType The given content type, to infer an encoding - * from. - * @returns Either the encoded body as a string, if successful, - * or the unaltered body object if no encoding could be inferred. - */ - _encodeBodyObject(body: any, contentType: string|null): any; - - /** - * @param object The object to encode as x-www-form-urlencoded. - * @returns . - */ - _wwwFormUrlEncode(object: object|null): string; - - /** - * @param str A key or value to encode as x-www-form-urlencoded. - * @returns . - */ - _wwwFormUrlEncodePiece(str: any): string; - - /** - * Updates the status code and status text. - */ - _updateStatus(): void; -} - -interface HTMLElementTagNameMap { - "iron-request": IronRequestElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/iron-request.html b/node_modules/@polymer/polymer/bower_components/iron-ajax/iron-request.html deleted file mode 100644 index d35f7d7c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/iron-request.html +++ /dev/null @@ -1,475 +0,0 @@ - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/package.json b/node_modules/@polymer/polymer/bower_components/iron-ajax/package.json deleted file mode 100644 index 2641100a..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/iron-ajax", - "private": true, - "description": "Makes it easy to make ajax calls and parse the response", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-ajax.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-ajax/test/index.html deleted file mode 100644 index 997b08f1..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/test/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/test/iron-ajax.html b/node_modules/@polymer/polymer/bower_components/iron-ajax/test/iron-ajax.html deleted file mode 100644 index 57746e1f..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/test/iron-ajax.html +++ /dev/null @@ -1,1017 +0,0 @@ - - - - - iron-ajax - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-ajax/test/iron-request.html b/node_modules/@polymer/polymer/bower_components/iron-ajax/test/iron-request.html deleted file mode 100644 index 4530fd47..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-ajax/test/iron-request.html +++ /dev/null @@ -1,378 +0,0 @@ - - - - - iron-request - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-behaviors/.bower.json deleted file mode 100644 index 1043fd4f..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/.bower.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "iron-behaviors", - "version": "2.1.1", - "description": "Provides a set of behaviors for the iron elements", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-behaviors.git" - }, - "main": [ - "iron-button-state.html", - "iron-control-state.html" - ], - "license": "http://polymer.github.io/LICENSE.txt", - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2", - "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2" - }, - "devDependencies": { - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "paper-input": "PolymerElements/paper-input#1 - 2", - "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "ignore": [], - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9", - "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0" - }, - "devDependencies": { - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "paper-input": "PolymerElements/paper-input#^1.0.0", - "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "Polymer/web-component-tester#^4.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "homepage": "https://github.com/PolymerElements/iron-behaviors", - "_release": "2.1.1", - "_resolution": { - "type": "version", - "tag": "v2.1.1", - "commit": "a27b45bebb2af58506af77c377dab301bf7406ce" - }, - "_source": "https://github.com/PolymerElements/iron-behaviors.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-behaviors" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-behaviors/.github/CODEOWNERS deleted file mode 100644 index cc86f1ec..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @notwaldorf -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-behaviors/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 1cc85c0c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-behaviors/.travis.yml deleted file mode 100644 index bf521e2a..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/.travis.yml +++ /dev/null @@ -1,30 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -env: - global: - - secure: >- - H49pcRc5C6G+ti/ehtT74GZdsUsM/xCvEVJBmKq8rpck7s18R6BbH37RkF2XgYfO4rVa1Bl4KU4Wf5S6aIDYzdaq/phGtFQ04NmDYGbmBhRjwfgxlW4dJ7mkXqXCvNZkxJtAJpgzgVG+xu/I6GsO1Lp4VjGENvVYSsrkGIlSA34= - - secure: >- - Zq+hvOlL1RmTtMfAtO3bxqYnB7X6MY199cVCKo2J/EbsMvOHII1JvEU1+s2/UG9tgoiXkd7N2OfFOivlbQ75BDIwtvkq32KZNrUEC6vRGhbMBc8JCKkdFB/XHh1mNhQcn6Js656PhZIj2WteZYMSGYDUj7KcBBMacRZQKWuB0OU= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-behaviors/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/README.md b/node_modules/@polymer/polymer/bower_components/iron-behaviors/README.md deleted file mode 100644 index 0a0629ec..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/README.md +++ /dev/null @@ -1,22 +0,0 @@ - - - -[![Build status](https://travis-ci.org/PolymerElements/iron-behaviors.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-behaviors) - -_[Demo and API docs](https://elements.polymer-project.org/elements/iron-behaviors)_ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/bower.json b/node_modules/@polymer/polymer/bower_components/iron-behaviors/bower.json deleted file mode 100644 index 63505202..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/bower.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "iron-behaviors", - "version": "2.1.1", - "description": "Provides a set of behaviors for the iron elements", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-behaviors.git" - }, - "main": [ - "iron-button-state.html", - "iron-control-state.html" - ], - "license": "http://polymer.github.io/LICENSE.txt", - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2", - "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2" - }, - "devDependencies": { - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "paper-input": "PolymerElements/paper-input#1 - 2", - "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "ignore": [], - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9", - "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0" - }, - "devDependencies": { - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "paper-input": "PolymerElements/paper-input#^1.0.0", - "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "Polymer/web-component-tester#^4.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/demo/index.html b/node_modules/@polymer/polymer/bower_components/iron-behaviors/demo/index.html deleted file mode 100644 index e7cbdcc6..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/demo/index.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - simple-button - - - - - - - - - -
-

Normal

- - Hello World - -

Toggles

- - Hello World - -

Disabled

- - Hello World -
- - diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/demo/simple-button.html b/node_modules/@polymer/polymer/bower_components/iron-behaviors/demo/simple-button.html deleted file mode 100644 index 2c3aeeff..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/demo/simple-button.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/index.html b/node_modules/@polymer/polymer/bower_components/iron-behaviors/index.html deleted file mode 100644 index 220deb00..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - Iron Behaviors - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/iron-button-state.d.ts b/node_modules/@polymer/polymer/bower_components/iron-behaviors/iron-button-state.d.ts deleted file mode 100644 index 9a231cb3..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/iron-button-state.d.ts +++ /dev/null @@ -1,88 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-button-state.html - */ - -/// -/// -/// - -declare namespace Polymer { - - interface IronButtonState extends Polymer.IronA11yKeysBehavior { - keyBindings: object; - - /** - * If true, the user is currently holding down the button. - */ - readonly pressed: boolean|null|undefined; - - /** - * If true, the button toggles the active state with each tap or press - * of the spacebar. - */ - toggles: boolean|null|undefined; - - /** - * If true, the button is a toggle and is currently in the active state. - */ - active: boolean|null|undefined; - - /** - * True if the element is currently being pressed by a "pointer," which - * is loosely defined as mouse or touch input (but specifically excluding - * keyboard input). - */ - readonly pointerDown: boolean|null|undefined; - - /** - * True if the input device that caused the element to receive focus - * was a keyboard. - */ - readonly receivedFocusFromKeyboard: boolean|null|undefined; - - /** - * The aria attribute to be set if the button is a toggle and in the - * active state. - */ - ariaActiveAttribute: string|null|undefined; - _mouseEventRe: RegExp|null; - _tapHandler(): void; - _focusChanged(focused: any): void; - _detectKeyboardFocus(focused: any): void; - - /** - * 'change' events - */ - _userActivate(active: any): void; - _downHandler(event: any): void; - _upHandler(): void; - - /** - * @param event . - */ - _spaceKeyDownHandler(event: KeyboardEvent): void; - - /** - * @param event . - */ - _spaceKeyUpHandler(event: KeyboardEvent): void; - - /** - * event handler to unwind before triggering another event - */ - _asyncClick(): void; - _pressedChanged(pressed: any): void; - _ariaActiveAttributeChanged(value: any, oldValue: any): void; - _activeChanged(active: any, ariaActiveAttribute: any): void; - _controlStateChanged(): void; - _changedButtonState(): void; - } - - const IronButtonState: object; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/iron-button-state.html b/node_modules/@polymer/polymer/bower_components/iron-behaviors/iron-button-state.html deleted file mode 100644 index 45e5d313..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/iron-button-state.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/iron-control-state.d.ts b/node_modules/@polymer/polymer/bower_components/iron-behaviors/iron-control-state.d.ts deleted file mode 100644 index 9082c66a..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/iron-control-state.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-control-state.html - */ - -/// - -declare namespace Polymer { - - interface IronControlState { - - /** - * If true, the element currently has focus. - */ - readonly focused: boolean|null|undefined; - - /** - * If true, the user cannot interact with this element. - */ - disabled: boolean|null|undefined; - - /** - * Value of the `tabindex` attribute before `disabled` was activated. - * `null` means the attribute was not present. - */ - _oldTabIndex: string|null|undefined; - _boundFocusBlurHandler: Function|null|undefined; - ready(): void; - _focusBlurHandler(event: any): void; - _disabledChanged(disabled: any, old: any): void; - _changedControlState(): void; - } - - const IronControlState: object; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/iron-control-state.html b/node_modules/@polymer/polymer/bower_components/iron-behaviors/iron-control-state.html deleted file mode 100644 index 100ac397..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/iron-control-state.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/package.json b/node_modules/@polymer/polymer/bower_components/iron-behaviors/package.json deleted file mode 100644 index 85ff46c8..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/iron-behaviors", - "private": true, - "description": "Provides a set of behaviors for the iron elements", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-behaviors.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/test/active-state.html b/node_modules/@polymer/polymer/bower_components/iron-behaviors/test/active-state.html deleted file mode 100644 index e1ed4791..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/test/active-state.html +++ /dev/null @@ -1,290 +0,0 @@ - - - - - active-state - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/test/disabled-state.html b/node_modules/@polymer/polymer/bower_components/iron-behaviors/test/disabled-state.html deleted file mode 100644 index f31e5ce7..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/test/disabled-state.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - disabled-state - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/test/focused-state.html b/node_modules/@polymer/polymer/bower_components/iron-behaviors/test/focused-state.html deleted file mode 100644 index cd5d4acf..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/test/focused-state.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - focused-state - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-behaviors/test/index.html deleted file mode 100644 index d3dd3144..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/test/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-behaviors/test/test-elements.html b/node_modules/@polymer/polymer/bower_components/iron-behaviors/test/test-elements.html deleted file mode 100644 index 92918069..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-behaviors/test/test-elements.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/.bower.json deleted file mode 100644 index c20553a6..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/.bower.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "iron-checked-element-behavior", - "version": "2.1.1", - "description": "Implements an element that has a checked attribute and can be added to a form", - "authors": "The Polymer Authors", - "keywords": [ - "web-components", - "polymer", - "iron", - "behavior" - ], - "main": "iron-checked-element-behavior.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-checked-element-behavior.git" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-checked-element-behavior", - "ignore": [], - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2", - "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#1 - 2", - "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#1 - 2" - }, - "devDependencies": { - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "paper-button": "PolymerElements/paper-button#1 - 2", - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9", - "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0", - "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0" - }, - "devDependencies": { - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "paper-button": "PolymerElements/paper-button#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "Polymer/web-component-tester#^4.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "_release": "2.1.1", - "_resolution": { - "type": "version", - "tag": "v2.1.1", - "commit": "2081eb82a4ee7f7045e5b8b0dcfbfefc229ef37f" - }, - "_source": "https://github.com/PolymerElements/iron-checked-element-behavior.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-checked-element-behavior" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/.github/CODEOWNERS deleted file mode 100644 index 0d8c0ad6..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @bicknellr -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 2d520b47..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/.travis.yml deleted file mode 100644 index e1b366bd..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/.travis.yml +++ /dev/null @@ -1,33 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) - - >- - npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m - Project is not formatted. Please run "npm run format".' && false) -env: - global: - - secure: >- - zj5WTkJrZAy1QK0j65jHEsHluT4B/PZl0u3iVEWnyd4CSUbHh3rS5NytZTA8wZ63DYnUcrdbhPeIQI3UKaVBUM2MO/K4MwsC2YTRpifpCLbC+wlRV9WRZNZ9CJ3hu6leshOBWHzZucUWAcKtyQRm66rAU+90ZaJcrBPC/xtgPG1n/Bm2aygr5IA36vJy80Zpwk1+yFmb08eu7jpzNVhcFor+VX0gBW3rxeX0kvzhHGn0bTLxKztNB56Oe+bzx6vU8ACjBcSylouOtPJVIk/iIh7AIDHDcpoZGzmwtVnwAV2mJQtu3V8hQ2kE8eXpDloBGID+AUfTF3YSOVQo34I1yv4T+FlB7uxWrgJo80X5IRXUe15+OoXqraZ25v736RPdTWPjV2b6cWHqdOa45wODkDY0KZ9SrmwZibF3vcfVOG21llW2jF/HC5FvDIiM7gv1ro5jsFbEIwv7ligh0KKa+TOZBphL4sEtMrpxR/zXLqBLXUbKL54A+AefHelxjDIqT3oKQylesrGZ58fEF7Fx5xDSYGJwhIEwTLsEQWIWw8sWB34yRtDBIPocqh8nNZ9pJBOdhK3oC5KK44IQnE44YrIzLRRinHzRVoywpUb5OJDxxSSvOwcqmTYbkFmRJMzfJCEj/EtYsEokmSFv8zIRRDetvenBTGouNK/VsU9xQpA= - - secure: >- - Q3xN3fRvTQuy/HKlkYFFnVrFo01r6Q8zgzHHK8yKNKio9T/BM0+iIMYP8mRY+qvCQxCboXuUawG6gsxxT2Zn/p7SgNZ+UHq7DcLmocqxmECdGfqra6Hy9Y7BZVYPWlWIADkNUjI0RfOz69/3o/TAFlt4Cnw3BX3ip0o0Rri5/jzj0Nn+xSF+onyMnpH2gQvUE77MHvCuWTPki3R86Bz8RRzbTwKYwVa0oVca7jzdPtOjqzsnz8k9X0HVwQEpHGjqgTP3lg8EotON0rac/ayWs3J3bk9ye5AfvdTCYcZnDcz8POAN6FeC2Xey7oqQO4N8vFagru88mC3AmN67ZYqwI0fmDEYre20lnXFAFBFzsiu4FvKMgFYi/C5tG5ngSR5XcXwLskax82Un7yYYRzVbyhFSxxWZCqIC4cJ5d+E0Wex4eEYDwAlZ9AFP/hRJ2qrBVUbzXeGVMkHlg4qtdUIzHRkMUmjvEWVzTvk0Xa2wD+S0mYPcBwQcscoZy9zqdJM4hfbG9IGi02/DyrTOL3IuNH8WHHvGWS4ajDhSRkGCV4I5VtGKQ/Y3RA/pU6AaI7tVcDhbxOyIPKuOXO6PWuZOiJhhPQ/kceMkUXeh0TmsDtSBpe5OKCnjsdSn02lTT5yYf4nlVIVczP9p6zBerXorzZk1/S3CRBtqYZPgRrefbCw= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/README.md b/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/README.md deleted file mode 100644 index d3a11bc7..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/README.md +++ /dev/null @@ -1,11 +0,0 @@ -[![Build status](https://travis-ci.org/PolymerElements/iron-checked-element-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-checked-element-behavior) - -_[Demo and API docs](https://elements.polymer-project.org/elements/iron-checked-element-behavior)_ - - -##Polymer.IronCheckedElementBehavior - -Use `Polymer.IronCheckedElementBehavior` to implement a custom element -that has a `checked` property, which can be used for validation if the -element is also `required`. Element instances implementing this behavior -will also be registered for use in an `iron-form` element. diff --git a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/bower.json b/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/bower.json deleted file mode 100644 index 418c1995..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/bower.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "iron-checked-element-behavior", - "version": "2.1.1", - "description": "Implements an element that has a checked attribute and can be added to a form", - "authors": "The Polymer Authors", - "keywords": [ - "web-components", - "polymer", - "iron", - "behavior" - ], - "main": "iron-checked-element-behavior.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-checked-element-behavior.git" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-checked-element-behavior", - "ignore": [], - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2", - "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#1 - 2", - "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#1 - 2" - }, - "devDependencies": { - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "paper-button": "PolymerElements/paper-button#1 - 2", - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9", - "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0", - "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0" - }, - "devDependencies": { - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "paper-button": "PolymerElements/paper-button#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "Polymer/web-component-tester#^4.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/demo/index.html b/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/demo/index.html deleted file mode 100644 index 788a64f0..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/demo/index.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - iron-checked-element-behavior demo - - - - - - -
-
-

Not required

-
- -
-
-
-

Required

-
- -
-
-
- - diff --git a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/demo/simple-checkbox.html b/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/demo/simple-checkbox.html deleted file mode 100644 index f7bdd14b..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/demo/simple-checkbox.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/index.html b/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/index.html deleted file mode 100644 index 1975dc5a..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - iron-checked-element-behavior - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/iron-checked-element-behavior.d.ts b/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/iron-checked-element-behavior.d.ts deleted file mode 100644 index 56f12e17..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/iron-checked-element-behavior.d.ts +++ /dev/null @@ -1,68 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-checked-element-behavior.html - */ - -/// -/// -/// - -declare namespace Polymer { - - /** - * Use `Polymer.IronCheckedElementBehavior` to implement a custom element - * that has a `checked` property, which can be used for validation if the - * element is also `required`. Element instances implementing this behavior - * will also be registered for use in an `iron-form` element. - */ - interface IronCheckedElementBehavior extends Polymer.IronFormElementBehavior, Polymer.IronValidatableBehavior { - - /** - * Overriden from Polymer.IronFormElementBehavior - */ - value: string|null|undefined; - - /** - * Gets or sets the state, `true` is checked and `false` is unchecked. - */ - checked: boolean|null|undefined; - - /** - * If true, the button toggles the active state with each tap or press - * of the spacebar. - */ - toggles: boolean|null|undefined; - - /** - * Returns false if the element is required and not checked, and true - * otherwise. - * - * @param _value Ignored. - * @returns true if `required` is false or if `checked` is true. - */ - _getValidity(_value?: any): boolean; - created(): void; - - /** - * Update the aria-required label when `required` is changed. - */ - _requiredChanged(): void; - - /** - * Fire `iron-changed` when the checked state changes. - */ - _checkedChanged(): void; - - /** - * Reset value to 'on' if it is set to `undefined`. - */ - _valueChanged(): void; - } - - const IronCheckedElementBehavior: object; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/iron-checked-element-behavior.html b/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/iron-checked-element-behavior.html deleted file mode 100644 index fde93e7d..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/iron-checked-element-behavior.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/package.json b/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/package.json deleted file mode 100644 index 206a5199..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@polymer/iron-checked-element-behavior", - "private": true, - "description": "Implements an element that has a checked attribute and can be added to a form", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-checked-element-behavior.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0", - "webmat": "^0.2.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", - "format": "webmat && npm run update-types" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/test/basic.html b/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/test/basic.html deleted file mode 100644 index c7ad2a0c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/test/basic.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - iron-checked-element-behavior basic tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/test/index.html deleted file mode 100644 index fced9065..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/test/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - iron-checked-element-behavior tests - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/test/simple-checkbox.html b/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/test/simple-checkbox.html deleted file mode 100644 index 695d4ccf..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-checked-element-behavior/test/simple-checkbox.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-component-page/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-component-page/.bower.json deleted file mode 100644 index 06d82239..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-component-page/.bower.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "iron-component-page", - "description": "Turns a raw element definition into beautiful documentation", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "docs" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-component-page.git" - }, - "version": "3.0.1", - "private": true, - "license": "http://polymer.github.io/LICENSE.txt", - "dependencies": { - "app-layout": "PolymerElements/app-layout#1 - 2", - "iron-ajax": "PolymerElements/iron-ajax#1 - 2", - "iron-doc-viewer": "PolymerElements/iron-doc-viewer#^3.0.0", - "iron-icons": "PolymerElements/iron-icons#1 - 2", - "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "paper-toast": "PolymerElements/paper-toast#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "app-layout": "PolymerElements/app-layout#^1.0.0", - "iron-ajax": "PolymerElements/iron-ajax#^1.0.0", - "iron-doc-viewer": "PolymerElements/iron-doc-viewer#^3.0.0", - "iron-icons": "PolymerElements/iron-icons#^1.0.0", - "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "paper-toast": "PolymerElements/paper-toast#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "main": "iron-component-page.html", - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "homepage": "https://github.com/PolymerElements/iron-component-page", - "_release": "3.0.1", - "_resolution": { - "type": "version", - "tag": "v3.0.1", - "commit": "194e7f593837ac255e19aa41302bd333dee30f6f" - }, - "_source": "https://github.com/PolymerElements/iron-component-page.git", - "_target": "^3.0.1", - "_originalSource": "PolymerElements/iron-component-page" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-component-page/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-component-page/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index af977449..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-component-page/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-component-page/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-component-page/.travis.yml deleted file mode 100644 index a464a0df..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-component-page/.travis.yml +++ /dev/null @@ -1,26 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants -env: - global: - - secure: >- - OqWtaAPVAWrMk+C50ECYQBxTBjJNnhVargB5yCMMhZdRruUV8qP64lI+rme+pPzLOOZZyjiepjvPycLxHe8ha8pW2FYxz4mpPwHjcgodEN+VypiXf7JtxfUXF2R7J6I0tI+oGlS/d9eJgl5HQmTjJqNjop6rTqCAH6tXuOo8PXs= - - secure: >- - SnvNLWCibiemlbhjr+r+lSRKZD1bbGuqGfp9kNGWDqjzMh8R2DuNNtp10vBlNDQiotkK/J9jTdq11ng1Brk2YGF/65TRI5Vj9VxfsOuKuzLAmNUlfteYFDI7PMVeeB9FcgC0b51DBXKeyNr/sD5VmUqUoIrtDfKUT1pHaMZHAjQ= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-component-page/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-component-page/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-component-page/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-component-page/README.md b/node_modules/@polymer/polymer/bower_components/iron-component-page/README.md deleted file mode 100644 index 38ac4836..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-component-page/README.md +++ /dev/null @@ -1,101 +0,0 @@ -[![Build status](https://travis-ci.org/PolymerElements/iron-component-page.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-component-page) -[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://beta.webcomponents.org/element/PolymerElements/iron-component-page) - -## <iron-component-page> - -`iron-component-page` is a full-page documentation browser for custom elements, -mixins, classes, and more. It consumes the JSON descriptor format produced by -[Polymer Analyzer](https://github.com/Polymer/polymer-analyzer). - -You may also be interested in the -[`iron-doc-*`](https://github.com/PolymerElements/iron-doc-viewer) element -collection which underlies this element and can be used to embed documentation -in other apps (for example, [webcomponents.org](https://wwww.webcomponents.org) -does this). - -### Documenting your element - -`iron-component-page` is designed to make it easy to view documentation for -your custom element project. - -1. Install the [Polymer CLI](https://github.com/Polymer/polymer-cli) with `npm - install -g polymer-cli` or `yarn global add polymer-cli`. This gives you a - command-line interface to Polymer Analyzer (among other things). - -2. `cd` to your project directory. This can be a custom element, a full app, or - even a plain JavaScript library. Polymer Analyzer will discover all of the - interesting items recursively in your project directory. - -3. Analyze your project with `polymer analyze > analysis.json`. This produces a - JSON descriptor file. By default `iron-component-page` will look for a file - called `analysis.json` (you can override this with the `descriptor-url` - property). - -4. Add `iron-component-page` as a dev dependency of your project: `bower - install iron-component-page --save-dev`. - -5. Create an HTML file to instantiate an `iron-component-page` element (e.g. - `index.html` or `docs.html`). Note that you may need to adjust your import - paths depending on your project layout: - -```html - - - - - - - - - - - - -``` - -6. Serve that page using any local web server, such as `polymer serve` or - `python -m SimpleHTTPServer`. - -### Routing - -`iron-component-page` handles URL routing (via `iron-doc-viewer`) to provide -permanent addresses for all locations in the documentation tree, including -scroll anchor targets. - -By default it uses the URL fragment for routing (e.g. -`docs.html#/elements/my-element#property-foo`), in order to support simple -static file hosts. - -To use the real URL path for routing, set the `base-href` property to the -server mount point (e.g. `/api/docs` or *empty string* for the root path). Note -that this requires a host that serves the application from all paths that -should be handled by the doc viewer. - -### Styling - -`iron-component-page` uses the default theme from -[`iron-doc-viewer`](https://github.com/PolymerElements/iron-doc-viewer). See -its documentation for styling. The following custom properties and mixins are -also available: - -Custom property | Description | Default -----------------|-------------|---------- -`--iron-component-page-header-color` | Background color of main header. | `paper-pink-600` - -### Previous versions - -The 3.x `iron-component-page` described here has major breaking changes versus -the 1.x and 2.x versions. Previous versions were based on *Hydrolysis*, the -predecessor to Polymer Analyzer. Major changes in the 3.x version include: - -* Uses Polymer Analyzer descriptors instead of Hydrolysis. Among other things, - this adds support for classes, mixins, and Polymer 2 elements. -* Does not analyze your source in the browser. Instead, run `polymer analyze` - to generate an `analysis.json` file offline. -* Replaces the element menu with a full-size navigation panel that summarizes - all the available documentation produced by Polymer Analyzer. -* Uses the 3.x version of the - [`iron-doc` elements](https://github.com/PolymerElements/iron-doc-viewer). - -If you still need the previous version, see the -[2.x branch](https://github.com/PolymerElements/iron-component-page/tree/2.x). diff --git a/node_modules/@polymer/polymer/bower_components/iron-component-page/bower.json b/node_modules/@polymer/polymer/bower_components/iron-component-page/bower.json deleted file mode 100644 index dc4206d9..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-component-page/bower.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "iron-component-page", - "description": "Turns a raw element definition into beautiful documentation", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "docs" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-component-page.git" - }, - "version": "3.0.0", - "private": true, - "license": "http://polymer.github.io/LICENSE.txt", - "dependencies": { - "app-layout": "PolymerElements/app-layout#1 - 2", - "iron-ajax": "PolymerElements/iron-ajax#1 - 2", - "iron-doc-viewer": "PolymerElements/iron-doc-viewer#^3.0.0", - "iron-icons": "PolymerElements/iron-icons#1 - 2", - "paper-icon-button": "PolymerElements/paper-icon-button#1 - 2", - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "paper-toast": "PolymerElements/paper-toast#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "app-layout": "PolymerElements/app-layout#^1.0.0", - "iron-ajax": "PolymerElements/iron-ajax#^1.0.0", - "iron-doc-viewer": "PolymerElements/iron-doc-viewer#^3.0.0", - "iron-icons": "PolymerElements/iron-icons#^1.0.0", - "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "paper-toast": "PolymerElements/paper-toast#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "main": "iron-component-page.html", - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-component-page/demo/analysis.json b/node_modules/@polymer/polymer/bower_components/iron-component-page/demo/analysis.json deleted file mode 100644 index 90f6676d..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-component-page/demo/analysis.json +++ /dev/null @@ -1,28722 +0,0 @@ -{ - "schema_version": "1.0.0", - "namespaces": [ - { - "name": "Polymer", - "description": "", - "summary": "Polymer is a lightweight library built on top of the web\nstandards-based Web Components API's, and makes it easy to build your\nown custom HTML elements.", - "sourceRange": { - "file": "lib/utils/boot.html", - "start": { - "line": 27, - "column": 2 - }, - "end": { - "line": 29, - "column": 3 - } - }, - "namespaces": [ - { - "name": "Polymer.CaseMap", - "description": "Module with utilities for converting between \"dash-case\" and \"camelCase\"\nidentifiers.", - "summary": "Module that provides utilities for converting between \"dash-case\"\n and \"camelCase\".", - "sourceRange": { - "file": "lib/utils/case-map.html", - "start": { - "line": 27, - "column": 2 - }, - "end": { - "line": 59, - "column": 4 - } - }, - "functions": [ - { - "name": "Polymer.CaseMap.dashToCamelCase", - "description": "Converts \"dash-case\" identifier (e.g. `foo-bar-baz`) to \"camelCase\"\n(e.g. `fooBarBaz`).", - "summary": "", - "sourceRange": { - "file": "lib/utils/case-map.html", - "start": { - "line": 37, - "column": 4 - }, - "end": { - "line": 43, - "column": 5 - } - }, - "privacy": "public", - "params": [ - { - "type": "string", - "desc": "Dash-case identifier", - "name": "dash" - } - ], - "return": { - "type": "string", - "desc": "Camel-case representation of the identifier" - } - }, - { - "name": "Polymer.CaseMap.camelToDashCase", - "description": "Converts \"camelCase\" identifier (e.g. `fooBarBaz`) to \"dash-case\"\n(e.g. `foo-bar-baz`).", - "summary": "", - "sourceRange": { - "file": "lib/utils/case-map.html", - "start": { - "line": 53, - "column": 4 - }, - "end": { - "line": 57, - "column": 5 - } - }, - "privacy": "public", - "params": [ - { - "type": "string", - "desc": "Camel-case identifier", - "name": "camel" - } - ], - "return": { - "type": "string", - "desc": "Dash-case representation of the identifier" - } - } - ] - }, - { - "name": "Polymer.Async", - "description": "Module that provides a number of strategies for enqueuing asynchronous\ntasks. Each sub-module provides a standard `run(fn)` interface that returns a\nhandle, and a `cancel(handle)` interface for canceling async tasks before\nthey run.", - "summary": "Module that provides a number of strategies for enqueuing asynchronous\ntasks.", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 54, - "column": 2 - }, - "end": { - "line": 200, - "column": 4 - } - }, - "namespaces": [ - { - "name": "Polymer.Async.timeOut", - "description": "Async interface wrapper around `setTimeout`.", - "summary": "Async interface wrapper around `setTimeout`.", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 63, - "column": 4 - }, - "end": { - "line": 93, - "column": 5 - } - }, - "functions": [ - { - "name": "Polymer.Async.timeOut.after", - "description": "Returns a sub-module with the async interface providing the provided\ndelay.", - "summary": "", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 72, - "column": 6 - }, - "end": { - "line": 77, - "column": 7 - } - }, - "privacy": "public", - "params": [ - { - "type": "number", - "desc": "Time to wait before calling callbacks in ms", - "name": "delay" - } - ], - "return": { - "type": "AsyncInterface", - "desc": "An async timeout interface" - } - } - ] - }, - { - "name": "Polymer.Async.animationFrame", - "description": "Async interface wrapper around `requestAnimationFrame`.", - "summary": "Async interface wrapper around `requestAnimationFrame`.", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 102, - "column": 4 - }, - "end": { - "line": 118, - "column": 5 - } - } - }, - { - "name": "Polymer.Async.idlePeriod", - "description": "Async interface wrapper around `requestIdleCallback`. Falls back to\n`setTimeout` on browsers that do not support `requestIdleCallback`.", - "summary": "Async interface wrapper around `requestIdleCallback`.", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 128, - "column": 4 - }, - "end": { - "line": 152, - "column": 5 - } - }, - "functions": [ - { - "name": "Polymer.Async.idlePeriod.run", - "description": "Enqueues a function called at `requestIdleCallback` timing.", - "summary": "", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 136, - "column": 6 - }, - "end": { - "line": 140, - "column": 7 - } - }, - "privacy": "public", - "params": [ - { - "type": "function (IdleDeadline)", - "desc": "Callback to run", - "name": "fn" - } - ], - "return": { - "type": "number", - "desc": "Handle used for canceling task" - } - }, - { - "name": "Polymer.Async.idlePeriod.cancel", - "description": "Cancels a previously enqueued `idlePeriod` callback.", - "summary": "", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 147, - "column": 6 - }, - "end": { - "line": 151, - "column": 7 - } - }, - "privacy": "public", - "params": [ - { - "type": "number", - "desc": "Handle returned from `run` of callback to cancel", - "name": "handle" - } - ] - } - ] - }, - { - "name": "Polymer.Async.microTask", - "description": "Async interface for enqueueing callbacks that run at microtask timing.\n\nNote that microtask timing is achieved via a single `MutationObserver`,\nand thus callbacks enqueued with this API will all run in a single\nbatch, and not interleaved with other microtasks such as promises.\nPromises are avoided as an implementation choice for the time being\ndue to Safari bugs that cause Promises to lack microtask guarantees.", - "summary": "Async interface for enqueueing callbacks that run at microtask\n timing.", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 168, - "column": 4 - }, - "end": { - "line": 199, - "column": 5 - } - }, - "functions": [ - { - "name": "Polymer.Async.microTask.run", - "description": "Enqueues a function called at microtask timing.", - "summary": "", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 177, - "column": 6 - }, - "end": { - "line": 181, - "column": 7 - } - }, - "privacy": "public", - "params": [ - { - "type": "Function", - "desc": "Callback to run", - "name": "callback" - } - ], - "return": { - "type": "*", - "desc": "Handle used for canceling task" - } - }, - { - "name": "Polymer.Async.microTask.cancel", - "description": "Cancels a previously enqueued `microTask` callback.", - "summary": "", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 189, - "column": 6 - }, - "end": { - "line": 197, - "column": 7 - } - }, - "privacy": "public", - "params": [ - { - "type": "number", - "desc": "Handle returned from `run` of callback to cancel", - "name": "handle" - } - ] - } - ] - } - ] - }, - { - "name": "Polymer.ResolveUrl", - "description": "Module with utilities for resolving relative URL's.", - "summary": "Module with utilities for resolving relative URL's.", - "sourceRange": { - "file": "lib/utils/resolve-url.html", - "start": { - "line": 99, - "column": 4 - }, - "end": { - "line": 103, - "column": 6 - } - }, - "functions": [ - { - "name": "Polymer.ResolveUrl.resolveUrl", - "description": "Resolves the given URL against the provided `baseUri'.", - "summary": "", - "sourceRange": { - "file": "lib/utils/resolve-url.html", - "start": { - "line": 28, - "column": 4 - }, - "end": { - "line": 61, - "column": 5 - } - }, - "privacy": "public", - "params": [ - { - "type": "string", - "desc": "Input URL to resolve", - "name": "url" - }, - { - "type": "string", - "desc": "Base URI to resolve the URL against", - "name": "baseURI" - } - ], - "return": { - "type": "string", - "desc": "resolved URL" - } - }, - { - "name": "Polymer.ResolveUrl.resolveCss", - "description": "Resolves any relative URL's in the given CSS text against the provided\n`ownerDocument`'s `baseURI`.", - "summary": "", - "sourceRange": { - "file": "lib/utils/resolve-url.html", - "start": { - "line": 72, - "column": 4 - }, - "end": { - "line": 78, - "column": 5 - } - }, - "privacy": "public", - "params": [ - { - "type": "string", - "desc": "CSS text to process", - "name": "cssText" - }, - { - "type": "string", - "desc": "Base URI to resolve the URL against", - "name": "baseURI" - } - ], - "return": { - "type": "string", - "desc": "Processed CSS text with resolved URL's" - } - }, - { - "name": "Polymer.ResolveUrl.pathFromUrl", - "description": "Returns a path from a given `url`. The path includes the trailing\n`/` from the url.", - "summary": "", - "sourceRange": { - "file": "lib/utils/resolve-url.html", - "start": { - "line": 88, - "column": 4 - }, - "end": { - "line": 90, - "column": 5 - } - }, - "privacy": "public", - "params": [ - { - "type": "string", - "desc": "Input URL to transform", - "name": "url" - } - ], - "return": { - "type": "string", - "desc": "resolved path" - } - } - ] - }, - { - "name": "Polymer.settings", - "description": "Legacy settings.", - "summary": "", - "sourceRange": { - "file": "lib/utils/settings.html", - "start": { - "line": 22, - "column": 2 - }, - "end": { - "line": 22, - "column": 42 - } - } - }, - { - "name": "Polymer.StyleGather", - "description": "Module with utilities for collection CSS text from ``, external\nstylesheets, and `dom-module`s.", - "summary": "Module with utilities for collection CSS text from various sources.", - "sourceRange": { - "file": "lib/utils/style-gather.html", - "start": { - "line": 32, - "column": 2 - }, - "end": { - "line": 141, - "column": 4 - } - }, - "functions": [ - { - "name": "Polymer.StyleGather.cssFromModules", - "description": "Returns CSS text of styles in a space-separated list of `dom-module`s.", - "summary": "", - "sourceRange": { - "file": "lib/utils/style-gather.html", - "start": { - "line": 42, - "column": 4 - }, - "end": { - "line": 49, - "column": 5 - } - }, - "privacy": "public", - "params": [ - { - "type": "string", - "desc": "List of dom-module id's within which to\nsearch for css.", - "name": "moduleIds" - } - ], - "return": { - "type": "string", - "desc": "Concatenated CSS content from specified `dom-module`s" - } - }, - { - "name": "Polymer.StyleGather.cssFromModule", - "description": "Returns CSS text of styles in a given `dom-module`. CSS in a `dom-module`\ncan come either from ` - - - - - - Loading descriptor ... - - - - Could not load descriptor "[[descriptorUrl]]".
[[_error.error]] -
- - - - - - - - - - - - - - -
[[_title]]
-
-
- - - - -
-
- - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-component-page/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-component-page/test/index.html deleted file mode 100644 index e142f938..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-component-page/test/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - iron-component-page tests - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-component-page/test/iron-component-page.html b/node_modules/@polymer/polymer/bower_components/iron-component-page/test/iron-component-page.html deleted file mode 100644 index 71a0bc4e..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-component-page/test/iron-component-page.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - iron-component-page tests - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/.bower.json deleted file mode 100644 index cc25452d..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/.bower.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "iron-doc-viewer", - "version": "3.2.0", - "authors": [ - "The Polymer Authors" - ], - "description": "Elements for rendering Polymer component documentation.", - "keywords": [ - "web-component", - "web-components", - "polymer" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-doc-viewer.git" - }, - "main": "iron-doc-viewer.html", - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-doc-viewer/", - "ignore": [ - "/.*", - "/tests/" - ], - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2", - "iron-location": "PolymerElements/iron-location#1 - 2", - "marked-element": "PolymerElements/marked-element#1 - 2", - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "prism-element": "PolymerElements/prism-element#1 - 2" - }, - "devDependencies": { - "iron-ajax": "PolymerElements/iron-ajax#1 - 2", - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "Polymer/web-component-tester#^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9", - "iron-location": "PolymerElements/iron-location#^1.0.0", - "marked-element": "PolymerElements/marked-element#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "prism-element": "PolymerElements/prism-element#^1.0.0" - }, - "devDependencies": { - "iron-ajax": "PolymerElements/iron-ajax#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "_release": "3.2.0", - "_resolution": { - "type": "version", - "tag": "v3.2.0", - "commit": "f39c6c6bdd82d4558731e435e1ea565b3bcfc140" - }, - "_source": "https://github.com/PolymerElements/iron-doc-viewer.git", - "_target": "^3.0.0", - "_originalSource": "PolymerElements/iron-doc-viewer" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/README.md b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/README.md deleted file mode 100644 index 2ef618f3..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/README.md +++ /dev/null @@ -1,70 +0,0 @@ -[![Build status](https://travis-ci.org/PolymerElements/iron-doc-viewer.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-doc-viewer) -[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://beta.webcomponents.org/element/PolymerElements/iron-doc-viewer) - -## <iron-doc-viewer> - -A collection of elements that display documentation about custom elements, -mixins, classes, and more using the JSON descriptor format produced by [Polymer -Analyzer](https://github.com/Polymer/polymer-analyzer). - -You may also be interested in -[``](https://github.com/PolymerElements/iron-component-page), -which composes the iron-doc elements into a more complete documentation -browser. - -### Elements - -* `` Show a table-of-contents. -* `` Manage routing and delegate to a child doc element. -* `` Show docs about a custom element. -* `` Show docs about a Polymer behavior. -* `` Show docs about a JavaScript namespace. -* `` Show docs about a JavaScript class. -* `` Show docs about a JavaScript mixin. - -### Routing - -`` handles URL routing to provide permanent addresses for all -locations in the documentation tree, including scroll anchor targets. - -By default it uses the URL fragment for routing (e.g. -`docs.html#/elements/my-element#property-foo`), in order to support simple -static file hosts. - -To use the real URL path for routing, set the `base-href` property to the -server mount point, omitting the trailing slash (e.g. `/api/docs` or *empty -string* for the root path). Note that this requires a host that serves the -application from all paths that should be handled by the doc viewer. - -### Styling - -The iron-doc elements come with an optional material-design default theme that -must be explicitly included as custom style: - -```html - - - - - -``` - -The following custom properties and mixins are available for styling: - -Custom property | Description | Default -----------------|-------------|---------- -`--iron-doc-accent-color` | Color for emphasis (e.g. hyperlink hover). | `#1565c0` -`--iron-doc-font-body` | Mixin applied to non-code text. | `{}` -`--iron-doc-font-code` | Mixin applied to code snippets. | `{}` -`--iron-doc-title` | Mixin applied to page titles. | `{}` -`--iron-doc-heading` | Mixin applied to section headings. | `{}` - -### Previous versions - -The 3.x `iron-doc` elements described here have major breaking changes versus -the 1.x and 2.x versions. Previous versions were based on *Hydrolysis*, the -predecessor to Polymer Analyzer. Hydrolysis is no longer maintained and does -not support analysis of Polymer 2 elements. - -If you still need the previous version, see the -[2.x branch](https://github.com/PolymerElements/iron-doc-viewer/tree/2.x). diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/bower.json b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/bower.json deleted file mode 100644 index de807baf..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/bower.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "iron-doc-viewer", - "version": "3.1.0", - "authors": [ - "The Polymer Authors" - ], - "description": "Elements for rendering Polymer component documentation.", - "keywords": [ - "web-component", - "web-components", - "polymer" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-doc-viewer.git" - }, - "main": "iron-doc-viewer.html", - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-doc-viewer/", - "ignore": [ - "/.*", - "/tests/" - ], - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2", - "iron-location": "PolymerElements/iron-location#1 - 2", - "marked-element": "PolymerElements/marked-element#1 - 2", - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "prism-element": "PolymerElements/prism-element#1 - 2" - }, - "devDependencies": { - "iron-ajax": "PolymerElements/iron-ajax#1 - 2", - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "Polymer/web-component-tester#^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9", - "iron-location": "PolymerElements/iron-location#^1.0.0", - "marked-element": "PolymerElements/marked-element#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "prism-element": "PolymerElements/prism-element#^1.0.0" - }, - "devDependencies": { - "iron-ajax": "PolymerElements/iron-ajax#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/default-theme.d.ts b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/default-theme.d.ts deleted file mode 100644 index 34f22377..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/default-theme.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * default-theme.html - */ - -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/default-theme.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/default-theme.html deleted file mode 100644 index 5608bf35..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/default-theme.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/demo/analysis.json b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/demo/analysis.json deleted file mode 100644 index 81cb87a0..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/demo/analysis.json +++ /dev/null @@ -1,22576 +0,0 @@ -{ - "schema_version": "1.0.0", - "namespaces": [ - { - "name": "Polymer", - "description": "", - "summary": "Polymer is a lightweight library built on top of the web\nstandards-based Web Components API's, and makes it easy to build your\nown custom HTML elements.", - "sourceRange": { - "file": "lib/utils/boot.html", - "start": { - "line": 27, - "column": 2 - }, - "end": { - "line": 29, - "column": 3 - } - }, - "namespaces": [ - { - "name": "Polymer.CaseMap", - "description": "Module with utilities for converting between \"dash-case\" and \"camelCase\"\nidentifiers.", - "summary": "Module that provides utilities for converting between \"dash-case\"\n and \"camelCase\".", - "sourceRange": { - "file": "lib/utils/case-map.html", - "start": { - "line": 27, - "column": 2 - }, - "end": { - "line": 59, - "column": 4 - } - }, - "functions": [ - { - "name": "Polymer.CaseMap.dashToCamelCase", - "description": "Converts \"dash-case\" identifier (e.g. `foo-bar-baz`) to \"camelCase\"\n(e.g. `fooBarBaz`).", - "summary": "", - "sourceRange": { - "file": "lib/utils/case-map.html", - "start": { - "line": 37, - "column": 4 - }, - "end": { - "line": 43, - "column": 5 - } - }, - "privacy": "public", - "params": [ - { - "type": "string", - "desc": "Dash-case identifier", - "name": "dash" - } - ], - "return": { - "type": "string", - "desc": "Camel-case representation of the identifier" - } - }, - { - "name": "Polymer.CaseMap.camelToDashCase", - "description": "Converts \"camelCase\" identifier (e.g. `fooBarBaz`) to \"dash-case\"\n(e.g. `foo-bar-baz`).", - "summary": "", - "sourceRange": { - "file": "lib/utils/case-map.html", - "start": { - "line": 53, - "column": 4 - }, - "end": { - "line": 57, - "column": 5 - } - }, - "privacy": "public", - "params": [ - { - "type": "string", - "desc": "Camel-case identifier", - "name": "camel" - } - ], - "return": { - "type": "string", - "desc": "Dash-case representation of the identifier" - } - } - ] - }, - { - "name": "Polymer.Async", - "description": "Module that provides a number of strategies for enqueuing asynchronous\ntasks. Each sub-module provides a standard `run(fn)` interface that returns a\nhandle, and a `cancel(handle)` interface for canceling async tasks before\nthey run.", - "summary": "Module that provides a number of strategies for enqueuing asynchronous\ntasks.", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 54, - "column": 2 - }, - "end": { - "line": 200, - "column": 4 - } - }, - "namespaces": [ - { - "name": "Polymer.Async.timeOut", - "description": "Async interface wrapper around `setTimeout`.", - "summary": "Async interface wrapper around `setTimeout`.", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 63, - "column": 4 - }, - "end": { - "line": 93, - "column": 5 - } - }, - "functions": [ - { - "name": "Polymer.Async.timeOut.after", - "description": "Returns a sub-module with the async interface providing the provided\ndelay.", - "summary": "", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 72, - "column": 6 - }, - "end": { - "line": 77, - "column": 7 - } - }, - "privacy": "public", - "params": [ - { - "type": "number", - "desc": "Time to wait before calling callbacks in ms", - "name": "delay" - } - ], - "return": { - "type": "AsyncInterface", - "desc": "An async timeout interface" - } - } - ] - }, - { - "name": "Polymer.Async.animationFrame", - "description": "Async interface wrapper around `requestAnimationFrame`.", - "summary": "Async interface wrapper around `requestAnimationFrame`.", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 102, - "column": 4 - }, - "end": { - "line": 118, - "column": 5 - } - } - }, - { - "name": "Polymer.Async.idlePeriod", - "description": "Async interface wrapper around `requestIdleCallback`. Falls back to\n`setTimeout` on browsers that do not support `requestIdleCallback`.", - "summary": "Async interface wrapper around `requestIdleCallback`.", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 128, - "column": 4 - }, - "end": { - "line": 152, - "column": 5 - } - }, - "functions": [ - { - "name": "Polymer.Async.idlePeriod.run", - "description": "Enqueues a function called at `requestIdleCallback` timing.", - "summary": "", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 136, - "column": 6 - }, - "end": { - "line": 140, - "column": 7 - } - }, - "privacy": "public", - "params": [ - { - "type": "function (IdleDeadline)", - "desc": "Callback to run", - "name": "fn" - } - ], - "return": { - "type": "number", - "desc": "Handle used for canceling task" - } - }, - { - "name": "Polymer.Async.idlePeriod.cancel", - "description": "Cancels a previously enqueued `idlePeriod` callback.", - "summary": "", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 147, - "column": 6 - }, - "end": { - "line": 151, - "column": 7 - } - }, - "privacy": "public", - "params": [ - { - "type": "number", - "desc": "Handle returned from `run` of callback to cancel", - "name": "handle" - } - ] - } - ] - }, - { - "name": "Polymer.Async.microTask", - "description": "Async interface for enqueueing callbacks that run at microtask timing.\n\nNote that microtask timing is achieved via a single `MutationObserver`,\nand thus callbacks enqueued with this API will all run in a single\nbatch, and not interleaved with other microtasks such as promises.\nPromises are avoided as an implementation choice for the time being\ndue to Safari bugs that cause Promises to lack microtask guarantees.", - "summary": "Async interface for enqueueing callbacks that run at microtask\n timing.", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 168, - "column": 4 - }, - "end": { - "line": 199, - "column": 5 - } - }, - "functions": [ - { - "name": "Polymer.Async.microTask.run", - "description": "Enqueues a function called at microtask timing.", - "summary": "", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 177, - "column": 6 - }, - "end": { - "line": 181, - "column": 7 - } - }, - "privacy": "public", - "params": [ - { - "type": "Function", - "desc": "Callback to run", - "name": "callback" - } - ], - "return": { - "type": "*", - "desc": "Handle used for canceling task" - } - }, - { - "name": "Polymer.Async.microTask.cancel", - "description": "Cancels a previously enqueued `microTask` callback.", - "summary": "", - "sourceRange": { - "file": "lib/utils/async.html", - "start": { - "line": 189, - "column": 6 - }, - "end": { - "line": 197, - "column": 7 - } - }, - "privacy": "public", - "params": [ - { - "type": "number", - "desc": "Handle returned from `run` of callback to cancel", - "name": "handle" - } - ] - } - ] - } - ] - }, - { - "name": "Polymer.ResolveUrl", - "description": "Module with utilities for resolving relative URL's.", - "summary": "Module with utilities for resolving relative URL's.", - "sourceRange": { - "file": "lib/utils/resolve-url.html", - "start": { - "line": 99, - "column": 4 - }, - "end": { - "line": 103, - "column": 6 - } - }, - "functions": [ - { - "name": "Polymer.ResolveUrl.resolveUrl", - "description": "Resolves the given URL against the provided `baseUri'.", - "summary": "", - "sourceRange": { - "file": "lib/utils/resolve-url.html", - "start": { - "line": 28, - "column": 4 - }, - "end": { - "line": 61, - "column": 5 - } - }, - "privacy": "public", - "params": [ - { - "type": "string", - "desc": "Input URL to resolve", - "name": "url" - }, - { - "type": "string", - "desc": "Base URI to resolve the URL against", - "name": "baseURI" - } - ], - "return": { - "type": "string", - "desc": "resolved URL" - } - }, - { - "name": "Polymer.ResolveUrl.resolveCss", - "description": "Resolves any relative URL's in the given CSS text against the provided\n`ownerDocument`'s `baseURI`.", - "summary": "", - "sourceRange": { - "file": "lib/utils/resolve-url.html", - "start": { - "line": 72, - "column": 4 - }, - "end": { - "line": 78, - "column": 5 - } - }, - "privacy": "public", - "params": [ - { - "type": "string", - "desc": "CSS text to process", - "name": "cssText" - }, - { - "type": "string", - "desc": "Base URI to resolve the URL against", - "name": "baseURI" - } - ], - "return": { - "type": "string", - "desc": "Processed CSS text with resolved URL's" - } - }, - { - "name": "Polymer.ResolveUrl.pathFromUrl", - "description": "Returns a path from a given `url`. The path includes the trailing\n`/` from the url.", - "summary": "", - "sourceRange": { - "file": "lib/utils/resolve-url.html", - "start": { - "line": 88, - "column": 4 - }, - "end": { - "line": 90, - "column": 5 - } - }, - "privacy": "public", - "params": [ - { - "type": "string", - "desc": "Input URL to transform", - "name": "url" - } - ], - "return": { - "type": "string", - "desc": "resolved path" - } - } - ] - }, - { - "name": "Polymer.StyleGather", - "description": "Module with utilities for collection CSS text from ``, external\nstylesheets, and `dom-module`s.", - "summary": "Module with utilities for collection CSS text from various sources.", - "sourceRange": { - "file": "lib/utils/style-gather.html", - "start": { - "line": 32, - "column": 2 - }, - "end": { - "line": 141, - "column": 4 - } - }, - "functions": [ - { - "name": "Polymer.StyleGather.cssFromModules", - "description": "Returns CSS text of styles in a space-separated list of `dom-module`s.", - "summary": "", - "sourceRange": { - "file": "lib/utils/style-gather.html", - "start": { - "line": 42, - "column": 4 - }, - "end": { - "line": 49, - "column": 5 - } - }, - "privacy": "public", - "params": [ - { - "type": "string", - "desc": "List of dom-module id's within which to\nsearch for css.", - "name": "moduleIds" - } - ], - "return": { - "type": "string", - "desc": "Concatenated CSS content from specified `dom-module`s" - } - }, - { - "name": "Polymer.StyleGather.cssFromModule", - "description": "Returns CSS text of styles in a given `dom-module`. CSS in a `dom-module`\ncan come either from ` - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-api.d.ts b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-api.d.ts deleted file mode 100644 index c2cf5cca..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-api.d.ts +++ /dev/null @@ -1,35 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-doc-api.html - */ - -/// -/// -/// -/// -/// -/// - -interface IronDocApiElement extends Polymer.Element, Polymer.IronDocViewerBehavior { - descriptor: object|null|undefined; - _showProtectedProperties: boolean|null|undefined; - _showProtectedMethods: boolean|null|undefined; - _showProtectedEvents: boolean|null|undefined; - readonly _staticMethods: any; - readonly _hasMethods: any; - _anyVisible(items: any): any; - _public(items: any): any; - _protected(items: any): any; - _protectedCount(): any; - _computeStaticMethods(descriptor: any): any; - _computeHasMethods(descriptor: any): any; -} - -interface HTMLElementTagNameMap { - "iron-doc-api": IronDocApiElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-api.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-api.html deleted file mode 100644 index d98832a0..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-api.html +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-behavior.d.ts b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-behavior.d.ts deleted file mode 100644 index 21bed27f..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-behavior.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-doc-behavior.html - */ - -/// -/// -/// -/// -/// -/// -/// -/// -/// - -/** - * `iron-doc-behavior` renders documentation about a Polymer 1.x behavior from a - * JSON descriptor output by - * [Polymer Analyzer](https://github.com/Polymer/polymer-analyzer). - */ -interface IronDocBehaviorElement extends Polymer.Element, Polymer.IronDocViewerBehavior { - readonly title: any; - _computeTitle(descriptor: any): any; -} - -interface HTMLElementTagNameMap { - "iron-doc-behavior": IronDocBehaviorElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-behavior.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-behavior.html deleted file mode 100644 index 7de6f88c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-behavior.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-class.d.ts b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-class.d.ts deleted file mode 100644 index 82061baf..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-class.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-doc-class.html - */ - -/// -/// -/// -/// -/// -/// -/// - -/** - * `iron-doc-class` renders documentation about a JavaScript class from a JSON - * descriptor output by - * [Polymer Analyzer](https://github.com/Polymer/polymer-analyzer). - */ -interface IronDocClassElement extends Polymer.Element, Polymer.IronDocViewerBehavior { - readonly title: any; - _computeTitle(descriptor: any): any; -} - -interface HTMLElementTagNameMap { - "iron-doc-class": IronDocClassElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-class.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-class.html deleted file mode 100644 index ac6bc339..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-class.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-demo.d.ts b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-demo.d.ts deleted file mode 100644 index 3448d308..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-demo.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-doc-demo.html - */ - -/// -/// - -interface IronDocDemoElement extends Polymer.Element { - demo: object|null|undefined; - srcPrefix: string|null|undefined; - readonly title: any; - _computeTitle(demo: any): any; -} - -interface HTMLElementTagNameMap { - "iron-doc-demo": IronDocDemoElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-demo.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-demo.html deleted file mode 100644 index 1154cb39..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-demo.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-element.d.ts b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-element.d.ts deleted file mode 100644 index 08ffaebf..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-element.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-doc-element.html - */ - -/// -/// -/// -/// -/// -/// -/// - -/** - * `iron-doc-element` renders documentation about a custom element from a JSON - * descriptor output by - * [Polymer Analyzer](https://github.com/Polymer/polymer-analyzer). - */ -interface IronDocElementElement extends Polymer.Element, Polymer.IronDocViewerBehavior { - readonly title: any; - _superclassUrl(superclass: any): any; - _superclassTarget(superclass: any): any; - _computeTitle(descriptor: any): any; -} - -interface HTMLElementTagNameMap { - "iron-doc-element": IronDocElementElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-element.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-element.html deleted file mode 100644 index 90c8e252..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-element.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-function.d.ts b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-function.d.ts deleted file mode 100644 index 385c519d..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-function.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-doc-function.html - */ - -/// -/// -/// - -/** - * Renders documentation describing a function or method. - */ -interface IronDocFunctionElement extends Polymer.Element { - anchorId: string|null|undefined; - static: boolean|null|undefined; - readonly _privacy: string|null|undefined; - readonly _showParamList: boolean|null|undefined; - addImportPath: boolean|null|undefined; - _computePrivacy(descriptor: any): any; - _computeShowParamList(descriptor: any): any; -} - -interface HTMLElementTagNameMap { - "iron-doc-function": IronDocFunctionElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-function.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-function.html deleted file mode 100644 index 1c3d3372..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-function.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-hide-bar.d.ts b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-hide-bar.d.ts deleted file mode 100644 index b92ede6c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-hide-bar.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-doc-hide-bar.html - */ - -/// -/// - -interface IronDocHideBarElement extends Polymer.Element { - visible: boolean|null|undefined; - _toggle(ev: any): void; -} - -interface HTMLElementTagNameMap { - "iron-doc-hide-bar": IronDocHideBarElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-hide-bar.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-hide-bar.html deleted file mode 100644 index 724604c3..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-hide-bar.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-mixin.d.ts b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-mixin.d.ts deleted file mode 100644 index 22ae980b..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-mixin.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-doc-mixin.html - */ - -/// -/// -/// -/// -/// -/// -/// - -/** - * `iron-doc-element` renders documentation about a JavaScript mixin from a JSON - * descriptor output by - * [Polymer Analyzer](https://github.com/Polymer/polymer-analyzer). - */ -interface IronDocMixinElement extends Polymer.Element, Polymer.IronDocViewerBehavior { - readonly title: any; - _computeTitle(descriptor: any): any; -} - -interface HTMLElementTagNameMap { - "iron-doc-mixin": IronDocMixinElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-mixin.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-mixin.html deleted file mode 100644 index 48d57cf1..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-mixin.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-namespace.d.ts b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-namespace.d.ts deleted file mode 100644 index 099b5e49..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-namespace.d.ts +++ /dev/null @@ -1,32 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-doc-namespace.html - */ - -/// -/// -/// -/// -/// -/// -/// -/// - -/** - * `iron-doc-namespace` renders documentation about a JavaScript namespace from a - * JSON descriptor output by - * [Polymer Analyzer](https://github.com/Polymer/polymer-analyzer). - */ -interface IronDocNamespaceElement extends Polymer.Element, Polymer.IronDocViewerBehavior { - readonly title: any; - _computeTitle(descriptor: any): any; -} - -interface HTMLElementTagNameMap { - "iron-doc-namespace": IronDocNamespaceElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-namespace.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-namespace.html deleted file mode 100644 index 16d4a775..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-namespace.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-nav.d.ts b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-nav.d.ts deleted file mode 100644 index ae17d36b..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-nav.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-doc-nav.html - */ - -/// -/// - -interface IronDocNavElement extends Polymer.Element { - descriptor: object|null|undefined; - path: string|null|undefined; - baseHref: string|null|undefined; - _sections: any[]|null|undefined; - _descriptorChanged(descriptor: any): void; - _select(event: any): void; - _isSelected(a: any, b: any): any; - _isExpanded(item: any, path: any): any; -} - -interface HTMLElementTagNameMap { - "iron-doc-nav": IronDocNavElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-nav.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-nav.html deleted file mode 100644 index 62b1346d..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-nav.html +++ /dev/null @@ -1,222 +0,0 @@ - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-property.d.ts b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-property.d.ts deleted file mode 100644 index ff984a9d..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-property.d.ts +++ /dev/null @@ -1,32 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-doc-property.html - */ - -/// -/// -/// - -/** - * Renders documentation describing a specific property of an element, mixin, - * class, etc. - */ -interface IronDocPropertyElement extends Polymer.Element { - descriptor: object|null|undefined; - readonly _privacy: string|null|undefined; - - /** - * Unique anchor ID for deep-linking. - */ - anchorId: string|null|undefined; - _computePrivacy(descriptor: any): any; -} - -interface HTMLElementTagNameMap { - "iron-doc-property": IronDocPropertyElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-property.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-property.html deleted file mode 100644 index c7ff503e..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-property.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-summary.d.ts b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-summary.d.ts deleted file mode 100644 index fa2c753b..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-summary.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-doc-summary.html - */ - -/// - -interface IronDocSummaryElement extends Polymer.Element { - name: string|null|undefined; - description: string|null|undefined; - href: string|null|undefined; -} - -interface HTMLElementTagNameMap { - "iron-doc-summary": IronDocSummaryElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-summary.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-summary.html deleted file mode 100644 index b8ebcdea..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-summary.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer-behavior.d.ts b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer-behavior.d.ts deleted file mode 100644 index 0e6f2306..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer-behavior.d.ts +++ /dev/null @@ -1,66 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-doc-viewer-behavior.html - */ - -declare namespace Polymer { - - interface IronDocViewerBehavior { - - /** - * The [Polymer Analyzer](https://github.com/Polymer/polymer-analyzer)-generated - * element descriptor to display details for. - */ - descriptor: object|null|undefined; - - /** - * The base href where this doc viewer is located. - */ - baseHref: string|null|undefined; - - /** - * Prefix for fragment identifiers used in anchors. - * For static routing `iron-component-page` can - * set this to a string identifying the current component. - */ - fragmentPrefix: string|null|undefined; - - /** - * Whether protected members should be hidden or shown. - */ - _showProtected: boolean|null|undefined; - - /** - * Whether inherited members should be hidden or shown. - */ - _showInherited: boolean|null|undefined; - _filterMembers(items: any, showProtected: any, showInherited: any): any; - _noneToShow(showProtected: any, showInherited: any, descriptor: any, name: any): any; - - /** - * Scroll to the descriptor (element, function, etc.) with an `anchor-id` - * matching the given URL hash (`#` optional). If no hash is specified, - * uses `window.location.hash`. - * - * Whichever element or script is in charge of routing should call this - * method on initial page load and on `hashchange` events. - */ - scrollToAnchor(hash: any): void; - _getElementName(element: any): any; - _getElementId(element: any): any; - _getPolymerBehaviors(descriptor: any): any; - - /** - * Compare two analysis descriptors (elements, functions, etc.) by - * display name. - */ - _compareDescriptors(a: any, b: any): any; - } - - const IronDocViewerBehavior: object; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer-behavior.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer-behavior.html deleted file mode 100644 index af1e671e..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer-behavior.html +++ /dev/null @@ -1,179 +0,0 @@ - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer-styles.d.ts b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer-styles.d.ts deleted file mode 100644 index 0c670f5c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer-styles.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-doc-viewer-styles.html - */ - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer-styles.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer-styles.html deleted file mode 100644 index c9212399..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer-styles.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer.d.ts b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer.d.ts deleted file mode 100644 index 710d908c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer.d.ts +++ /dev/null @@ -1,123 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-doc-viewer.html - */ - -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// - -/** - * `iron-doc-viewer` renders documentation about elements, mixins, classes, and - * more from a JSON descriptor output by - * [Polymer Analyzer](https://github.com/Polymer/polymer-analyzer). - * - * Provide the descriptor JSON as a data binding to `descriptor`: - * - * - * - * `iron-doc-viewer` will initially display all items contained in the given - * descriptor (e.g. elements, mixins, classes). `path` is used to display detail - * about specific items within the descriptor (e.g. "/elements/my-component"), and - * by default is bound to the current `window.location` path. - * - * ### Styling - * - * Most users should include the default theme alongside this element: - * - * - * - * - * - * - * - * The following custom properties and mixins are available for styling: - * - * Custom property | Description | Default - * ----------------|-------------|---------- - * `--iron-doc-font-code` | Mixin applied to code snippets. | `{}` - * `--iron-doc-font-body` | Mixin applied to non-code text. | `{}` - */ -interface IronDocViewerElement extends Polymer.Element { - - /** - * The [Polymer Analyzer](https://github.com/Polymer/polymer-analyzer)-generated - * element descriptor to display details for. - */ - descriptor: object|null|undefined; - - /** - * By default all routing is performed using the URL fragment - * (e.g. `docs.html#/elements/my-element`). - * - * If your server supports it and you would like to use the real URL - * path instead (e.g. `/api/docs/elements/my-element`), set this to - * the base path where the page is mounted, omitting the trailing - * slash (e.g. `/api/docs` or *empty string* for the root path). - */ - baseHref: string|null|undefined; - - /** - * URL prefix for demo iframes. - */ - demoSrcPrefix: string|null|undefined; - - /** - * Path to the item in the descriptor to display. - * - * Examples: - * - `/` for the root namespace - * - `/elements/paper-button` - * - `/mixins/paper-button-behavior` - * - * Defaults to the current `window.location` path. - * - * If `baseHref` is set, it will be trimmed from the prefix of this - * `path`. - */ - path: string|null|undefined; - - /** - * Instead of displaying items relative to the top level of - * `descriptor`, start from this namespace. - */ - rootNamespace: string|null|undefined; - - /** - * Display title for the currently selected item. - */ - title: string; - - /** - * True if the viewer is currently displaying a demo. - */ - readonly demo: boolean|null|undefined; - _descriptorType: string|null|undefined; - _urlPath: string|null|undefined; - _urlHash: string|null|undefined; - _currentDescriptor: object|null|undefined; - _fragmentPrefix: string|null|undefined; - _scrollTo: string|null|undefined; - _demo: object|null|undefined; - _equal(a: any, b: any): any; - _computeDemo(demo: any): any; - _routingChanged(baseHref: any, urlPath: any, urlHash: any): void; - _dataChanged(descriptor: any, path: any, scrollAnchor: any): void; -} - -interface HTMLElementTagNameMap { - "iron-doc-viewer": IronDocViewerElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer.html deleted file mode 100644 index 4138bf66..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/iron-doc-viewer.html +++ /dev/null @@ -1,381 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/package.json b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/package.json deleted file mode 100644 index 1bc1e898..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/iron-doc-viewer", - "private": true, - "description": "Elements for rendering Polymer component documentation.", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-doc-viewer.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/test/index.html deleted file mode 100644 index b68601b1..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/test/index.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - iron-doc tests - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/test/iron-doc-api.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/test/iron-doc-api.html deleted file mode 100644 index 56ba7531..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/test/iron-doc-api.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - iron-doc-api tests - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/test/iron-doc-nav.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/test/iron-doc-nav.html deleted file mode 100644 index f42b2229..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/test/iron-doc-nav.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - iron-doc-nav tests - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/test/iron-doc-viewer.html b/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/test/iron-doc-viewer.html deleted file mode 100644 index ecbc745e..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-doc-viewer/test/iron-doc-viewer.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - iron-doc-viewer tests - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/.bower.json deleted file mode 100644 index 33d7bcad..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/.bower.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "iron-fit-behavior", - "version": "2.1.1", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "Fits an element inside another element", - "private": true, - "main": "iron-fit-behavior.html", - "keywords": [ - "web-components", - "polymer", - "behavior" - ], - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-fit-behavior.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "homepage": "https://github.com/PolymerElements/iron-fit-behavior", - "_release": "2.1.1", - "_resolution": { - "type": "version", - "tag": "v2.1.1", - "commit": "89bdd27cd9cc111106c0851d9c8e056c79d77319" - }, - "_source": "https://github.com/PolymerElements/iron-fit-behavior.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-fit-behavior" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/.github/CODEOWNERS deleted file mode 100644 index c5097c0c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @valdrinkoshi -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 0bd8a806..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/.travis.yml deleted file mode 100644 index ffad635c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/.travis.yml +++ /dev/null @@ -1,30 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -env: - global: - - secure: >- - L4lSnuQZDY+YcXYzBZSRKjJJ1rZf18Lc/8YDgQPfkMkAItrRHGR8vblBoKiPAmtvgNxztcpZxAXTiDy1vAeVv54QnX9b1JsuOs7rrQxB4BS04Dj7LdT6DDu1p/V09MJBN11lzLVxgpxljbumwGWE4gfpDl2+rjbBt7cRV5VkVnE= - - secure: >- - H7dHZ9FQvJszK2UMNZJiZmzOPET3muO/XvlkUc1x3KcUlV5/tD/404V05XfFMowH7DavHFYleZkb89deYjq9PHncO9c4bp4SHD7HKN4FaGyhzfpXjg66v3dZH/OcERjaas337uUE2jo/x1jCq4HJCz2bMVh+bvd4du1C/2OWarc= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/README.md b/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/README.md deleted file mode 100644 index 4900ab98..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/README.md +++ /dev/null @@ -1,43 +0,0 @@ -[![Build status](https://travis-ci.org/PolymerElements/iron-fit-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-fit-behavior) - -_[Demo and API docs](https://elements.polymer-project.org/elements/iron-fit-behavior)_ - - -## Polymer.IronFitBehavior - -`Polymer.IronFitBehavior` fits an element in another element using `max-height` and `max-width`, and -optionally centers it in the window or another element. - -The element will only be sized and/or positioned if it has not already been sized and/or positioned -by CSS. - -| CSS properties | Action | -| --- | --- | -| `position` set | Element is not centered horizontally or vertically | -| `top` or `bottom` set | Element is not vertically centered | -| `left` or `right` set | Element is not horizontally centered | -| `max-height` set | Element respects `max-height` | -| `max-width` set | Element respects `max-width` | - -`Polymer.IronFitBehavior` can position an element into another element using -`verticalAlign` and `horizontalAlign`. This will override the element's css position. - -```html -
- - Positioned into the container - -
-``` - -Use `noOverlap` to position the element around another element without overlapping it. - -```html -
- - Positioned around the container - -
-``` - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/bower.json b/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/bower.json deleted file mode 100644 index 9e4209e7..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/bower.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "iron-fit-behavior", - "version": "2.1.0", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "Fits an element inside another element", - "private": true, - "main": "iron-fit-behavior.html", - "keywords": [ - "web-components", - "polymer", - "behavior" - ], - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-fit-behavior.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/demo/index.html b/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/demo/index.html deleted file mode 100644 index 3b166d9b..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/demo/index.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - iron-fit-behavior demo - - - - - - - - - - - - - - - -

- An element with IronFitBehavior can be centered in - fitInto or positioned around a positionTarget -

- - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/demo/simple-fit.html b/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/demo/simple-fit.html deleted file mode 100644 index 247527ce..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/demo/simple-fit.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/index.html b/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/index.html deleted file mode 100644 index 5ffa7d61..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - iron-fit-behavior - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/iron-fit-behavior.d.ts b/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/iron-fit-behavior.d.ts deleted file mode 100644 index 018bb1b0..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/iron-fit-behavior.d.ts +++ /dev/null @@ -1,201 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-fit-behavior.html - */ - -/// - -declare namespace Polymer { - - /** - * `Polymer.IronFitBehavior` fits an element in another element using `max-height` and `max-width`, and - * optionally centers it in the window or another element. - * - * The element will only be sized and/or positioned if it has not already been sized and/or positioned - * by CSS. - * - * CSS properties | Action - * -----------------------------|------------------------------------------- - * `position` set | Element is not centered horizontally or vertically - * `top` or `bottom` set | Element is not vertically centered - * `left` or `right` set | Element is not horizontally centered - * `max-height` set | Element respects `max-height` - * `max-width` set | Element respects `max-width` - * - * `Polymer.IronFitBehavior` can position an element into another element using - * `verticalAlign` and `horizontalAlign`. This will override the element's css position. - * - *
- * - * Positioned into the container - * - *
- * - * Use `noOverlap` to position the element around another element without overlapping it. - * - *
- * - * Positioned around the container - * - *
- * - * Use `horizontalOffset, verticalOffset` to offset the element from its `positionTarget`; - * `Polymer.IronFitBehavior` will collapse these in order to keep the element - * within `fitInto` boundaries, while preserving the element's CSS margin values. - * - *
- * - * With vertical offset - * - *
- */ - interface IronFitBehavior { - - /** - * The element that will receive a `max-height`/`width`. By default it is the same as `this`, - * but it can be set to a child element. This is useful, for example, for implementing a - * scrolling region inside the element. - */ - sizingTarget: Element; - - /** - * The element to fit `this` into. - */ - fitInto: object|null|undefined; - - /** - * Will position the element around the positionTarget without overlapping it. - */ - noOverlap: boolean|null|undefined; - - /** - * The element that should be used to position the element. If not set, it will - * default to the parent node. - */ - positionTarget: Element; - - /** - * The orientation against which to align the element horizontally - * relative to the `positionTarget`. Possible values are "left", "right", "center", "auto". - */ - horizontalAlign: string|null|undefined; - - /** - * The orientation against which to align the element vertically - * relative to the `positionTarget`. Possible values are "top", "bottom", "middle", "auto". - */ - verticalAlign: string|null|undefined; - - /** - * If true, it will use `horizontalAlign` and `verticalAlign` values as preferred alignment - * and if there's not enough space, it will pick the values which minimize the cropping. - */ - dynamicAlign: boolean|null|undefined; - - /** - * A pixel value that will be added to the position calculated for the - * given `horizontalAlign`, in the direction of alignment. You can think - * of it as increasing or decreasing the distance to the side of the - * screen given by `horizontalAlign`. - * - * If `horizontalAlign` is "left" or "center", this offset will increase or - * decrease the distance to the left side of the screen: a negative offset will - * move the dropdown to the left; a positive one, to the right. - * - * Conversely if `horizontalAlign` is "right", this offset will increase - * or decrease the distance to the right side of the screen: a negative - * offset will move the dropdown to the right; a positive one, to the left. - */ - horizontalOffset: number|null|undefined; - - /** - * A pixel value that will be added to the position calculated for the - * given `verticalAlign`, in the direction of alignment. You can think - * of it as increasing or decreasing the distance to the side of the - * screen given by `verticalAlign`. - * - * If `verticalAlign` is "top" or "middle", this offset will increase or - * decrease the distance to the top side of the screen: a negative offset will - * move the dropdown upwards; a positive one, downwards. - * - * Conversely if `verticalAlign` is "bottom", this offset will increase - * or decrease the distance to the bottom side of the screen: a negative - * offset will move the dropdown downwards; a positive one, upwards. - */ - verticalOffset: number|null|undefined; - - /** - * Set to true to auto-fit on attach. - */ - autoFitOnAttach: boolean|null|undefined; - _fitInfo: object|null; - readonly _fitWidth: any; - readonly _fitHeight: any; - readonly _fitLeft: any; - readonly _fitTop: any; - - /** - * The element that should be used to position the element, - * if no position target is configured. - * - */ - readonly _defaultPositionTarget: any; - - /** - * The horizontal align value, accounting for the RTL/LTR text direction. - * - */ - readonly _localeHorizontalAlign: any; - attached(): void; - detached(): void; - - /** - * Positions and fits the element into the `fitInto` element. - */ - fit(): void; - - /** - * Memoize information needed to position and size the target element. - */ - _discoverInfo(): void; - - /** - * Resets the target element's position and size constraints, and clear - * the memoized data. - */ - resetFit(): void; - - /** - * Equivalent to calling `resetFit()` and `fit()`. Useful to call this after - * the element or the `fitInto` element has been resized, or if any of the - * positioning properties (e.g. `horizontalAlign, verticalAlign`) is updated. - * It preserves the scroll position of the sizingTarget. - */ - refit(): void; - - /** - * Positions the element according to `horizontalAlign, verticalAlign`. - */ - position(): void; - - /** - * Constrains the size of the element to `fitInto` by setting `max-height` - * and/or `max-width`. - */ - constrain(): void; - _sizeDimension(rect: any, positionedBy: any, start: any, end: any, extent: any): void; - - /** - * Centers horizontally and vertically if not already positioned. This also sets - * `position:fixed`. - */ - center(): void; - } - - const IronFitBehavior: object; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/iron-fit-behavior.html b/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/iron-fit-behavior.html deleted file mode 100644 index 304ae7a2..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/iron-fit-behavior.html +++ /dev/null @@ -1,663 +0,0 @@ - - - - - \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/package.json b/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/package.json deleted file mode 100644 index ec16390a..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/iron-fit-behavior", - "private": true, - "description": "Fits an element inside another element", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-fit-behavior.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/test/index.html deleted file mode 100644 index 9cc6dc7e..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/test/index.html +++ /dev/null @@ -1,31 +0,0 @@ - - - iron-fit-behavior tests - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/test/iron-fit-behavior.html b/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/test/iron-fit-behavior.html deleted file mode 100644 index 8dde82b6..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/test/iron-fit-behavior.html +++ /dev/null @@ -1,1221 +0,0 @@ - - - - - - iron-fit-behavior tests - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/test/test-fit.html b/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/test/test-fit.html deleted file mode 100644 index 207fcc04..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-fit-behavior/test/test-fit.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/.bower.json deleted file mode 100644 index 12214869..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/.bower.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "iron-flex-layout", - "version": "2.0.3", - "description": "Provide flexbox-based layouts", - "keywords": [ - "web-components", - "polymer", - "layout" - ], - "main": "iron-flex-layout.html", - "private": true, - "license": "http://polymer.github.io/LICENSE.txt", - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-flex-layout.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2" - }, - "ignore": [], - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "Polymer/web-component-tester#^4.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "pages": { - "Flexbox layout guide": "GUIDE.md" - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "homepage": "https://github.com/PolymerElements/iron-flex-layout", - "_release": "2.0.3", - "_resolution": { - "type": "version", - "tag": "v2.0.3", - "commit": "67461d70607ca19d17b462b9a649c1585094f798" - }, - "_source": "https://github.com/PolymerElements/iron-flex-layout.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-flex-layout" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/.github/CODEOWNERS deleted file mode 100644 index cc86f1ec..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @notwaldorf -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index b79eca40..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/.travis.yml deleted file mode 100644 index 2d3f9f6e..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/.travis.yml +++ /dev/null @@ -1,30 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -env: - global: - - secure: >- - idlCNYtNQ7rLGCSl2NuZ++XZEwofpojkakXhL8m34pCX1ZwhGRprHsvNE7h7tz8SIV+mUjuUT8DaM7rlgZ+bLyw/Hq7G15DdmU5puUsCVibFFBBEhh82lxkdK/Rlfo+ytt0MFsbTJljEoqTSbnL0fSeC0cN/7wf6yEQs/+mTR0I= - - secure: >- - i/rAHa9rxszmbE+RbQ2b7ln6OYzrcoUssdPk36lNeJk/B1HjBS9cfg1PMwSAw+t6yvAN3I0fbOOl4dlGB1K5T4kAtmcAcC3fbptJL08IvK9K15pz/rMEzIBWLXj9oVJliwBZR2GFH+5zv6aFdEwQxh1leBnHQwmKgl24QX8XGO4= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/GUIDE.md b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/GUIDE.md deleted file mode 100644 index e230ce07..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/GUIDE.md +++ /dev/null @@ -1,1265 +0,0 @@ -## Overview - -The `iron-flex-layout` component provides simple ways to use [CSS flexible box layout](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Flexible_boxes), also known as _flexbox_. This component provides two different ways to use flexbox: - -* Layout classes. The layout class stylesheet provides a simple set of class-based flexbox rules. Layout classes - let you specify layout properties directly in markup. - -* Custom CSS mixins. The mixin stylesheet includes custom CSS mixins that can be applied - inside a CSS rule using the `@apply` function. - -Using the classes or CSS mixins is largely a matter of preference. The following sections discuss -how to use the each of the stylesheets. - -> Note: Before using either of these stylesheets, it's helpful to be familiar with the basics -of flexbox layout. Chris Coyier's [A Complete Guide to Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) is a -good primer. - -### Using layout classes - -To use layout classes import the `iron-flex-layout-classes` file. You -must do this in any element that uses any of the `iron-flex-layout` styles. -```html - -``` - -Then include the module(s) that you need: -```html - - - - - - -
-
One
-
Two
-
Three
-
- - -``` -**Example: using classes in a Polymer element** -```html - - - ... - - - - - - - - - - - -``` - -It's important to note that unlike the previous layout class stylesheets -(found in `/classes/iron-flex-layout.html`), the new version does not use the `/deep/` -combinator: it does not work across local DOM boundaries, -and the modules must be imported into each scope where they're used. - -### Using layout mixins - -Custom mixins can be applied inside a Polymer -custom element's stylesheet, **or** inside a `custom-style` stylesheet to apply styles to the -main document. (They cannot be applied in the main document without a `custom-style` stylesheet.) - -**Example: using mixins in the main document** -```html - - - ... - - - - ... - - - - - - - -
-
One
-
Two
-
Three
-
- - -``` -**Example: using mixins in a Polymer element** -```html - - - ... - - - - - - - - - - - -``` - -In general the mixins require a little more code to use, but they can be preferable if you -don't want to use the classes, or if you want to switch layouts based on a media query. - -Custom CSS properties and mixins are features provided by the Polymer library. -See [Cross-scope styling](https://www.polymer-project.org/1.0/docs/devguide/styling.html#xscope-styling) -in the Polymer developer guide. - -## Horizontal and vertical layout - -Create a flex container that lays out its children vertically or horizontally. - -Class | Mixin | Result -:-|:-|:- -layout horizontal| --layout-horizontal | Horizontal layout container. -layout vertical | --layout-vertical | Vertical layout container. - -The classes listed here are included in the `iron-flex` module of the `iron-flex-layout-classes` file. - -**Example: classes** -```html -
-
One
-
Two
-
Three
-
-``` - -**Example: mixins** - -```html - - -
-
One
-
Two
-
Three
-
-``` - -### Flexible children - -Children of a flex container can use flex to control their own sizing. - -Class | Mixin | Result -:-|:-|:- -flex| --layout-flex | Expand the child to fill available space in the main axis. -flex-ratio| --layout-flex-ratio | Assign a flex ratio of 1 to 12. -flex-none| --layout-flex-none | Don't flex the child. -flex-auto| --layout-flex-auto | Sets flex `flex-basis` to `auto` and `flex-grow` and `flex-shrink` to 1. - -The classes listed here are included in the `iron-flex` module of the `iron-flex-layout-classes` file. - -**Example: classes** -```html -
-
Alpha
-
Beta (flex)
-
Gamma
-
-``` - -**Example: mixins** - -```html - - -
-
Alpha
-
Beta (flex)
-
Gamma
-
-``` - -#### Flexible children in vertical layouts - -The same rules can be used for children in vertical layouts. - -**Example: classes** -```html -
-
Alpha
-
Beta (flex)
-
Gamma
-
-``` - -**Example: mixins** - -```html - - -
-
One
-
Two
-
Three
-
-``` - -> **Note**: for vertical layouts, the container needs to have a height for the -children to flex correctly. - -#### Flex ratios - -Children elements can be told to take up more space by including a "flex ratio" -from 1 to 12. This is equivalent to specifying the CSS `flex-grow` property. - -For example, the following examples make "Gamma" 2x larger than "Beta" and "Alpha" 3x larger, use -`flex-2` and `flex-3`, respectively. - -The classes listed here are included in the `iron-flex-factors` module of the `iron-flex-layout-classes` file. - -**Example: classes** -```html -
-
Alpha
-
Beta
-
Gamma
-
-``` - -**Example: mixins** - -```html - - -
-
One
-
Two
-
Three
-
-``` - -### Cross-axis alignment - -By default, children stretch to fit the cross-axis (e.g. _vertical_ stretching in a _horizontal_ layout). - - -```html -
-
Stretch Fill
-
-``` - -Center _across_ the main axis (e.g. _vertical_ centering elements in a _horizontal_ layout) -by adding the `center` class or applying the `--layout-center` mixin. - -**Example: classes, cross-axis center** - -```html -
-
Center
-
-``` - -**Example: mixins, cross-axis center** - -```html - - -
-
Center
-
-``` - -You can also position at the top/bottom (or left/right in `vertical` layouts) using the `start` or `end` -classes, or by applying the `--layout-start` or `--layout-end` mixins. - - -**Example: classes, cross-axis start** - -```html -
-
start
-
-``` - -**Example: mixins, cross-axis start** - -```html - - -
-
start
-
-``` - -**Example: classes, cross-axis end** - -```html -
-
end
-
-``` - -**Example: mixins, cross-axis end** - -```html - - -
-
end
-
-``` - -### Justification - -Justifying aligns contents along the **main axis**. Justify the layout -by specifying one of the following. - - -Class | Mixin | Result -:-|:-|:- -`start-justified`| --layout-start-justified | Aligns contents at the start of the main axis. -`center-justified` | --layout-center-justified | Centers contents along the main axis. -`end-justified` | --layout-end-justified | Aligns contents to the end of the main axis. -`justified` | --layout-justified | Aligns contents with equal spaces between children. -`around-justified` | --layout-around-justified | Aligns contents with equal spaces arround children. - -The classes listed here are included in the `iron-flex-alignment` module of the `iron-flex-layout-classes` file. - -**Example: classes, start justified** - -```html -
-
start-justified
-
-``` - -**Example: mixins, center justified** - -```html - - -
-
center-justified
-
-``` - -**Example: classes, end justified** - -```html -
-
end-justified
-
-``` - -**Example: mixins, equal space between elements** - -```html - - -
-
justified
-
justified
-
justified
-
-``` - -**Example: classes, equal space around each element** - -```html -
-
around-justified
-
around-justified
-
-``` - -## Self alignment - -Alignment can also be set per-child (instead of using the layout container's rules). - -Class | Mixin | Result -:-|:-|:- -`self-start`| --layout-self-start | Aligns the child at the start of the cross-axis. -`self-center` | --layout-self-center | Centers the child along the cross-axis. -`self-end` | --layout-self-end | Aligns the child at the end of the cross-axis. -`self-stretch` | --layout-self-stretch | Stretches the child to fit the cross-axis. - -**Example: classes** - -```html -
-
Alpha
-
Beta
-
Gamma
-
Delta
-
-``` - -**Example: mixins** - -```html - -
-
Alpha
-
Beta
-
Gamma
-
Delta
-
-``` - -> Note: The flex class -(and --layout-flex mixin) shown in these examples is -added for the demo and not required for self-alignment. - - -## Wrapping - -Wrapped layouts can be enabled with the `wrap` class or `--layout-wrap` mixin. - -**Example: classes** - -```html -
-
Alpha
-
Beta
-
Gamma
-
Delta
-
-``` - -## Reversed layouts - -Layout direction can be mirrored using the following rules: - -Class | Mixin | Result -:-|:-|:- -layout horizontal-reverse| --layout-horizontal-reverse | Horizontal layout with children laid out in reverse order (last-to-first). -layout vertical-reverse | --layout-vertical-reverse | Vertical layout with children laid out in reverse order. -layout wrap-reverse | --layout-wrap-reverse | Wrap layout with wrapped rows placed in the reverse order (for example, in a vertical layout, the second row is placed above the first row, instead of below). - -The classes listed here are included in the `iron-flex-reverse` module of the `iron-flex-layout-classes` file. - -**Example: mixins** - -```html - - -
-
Alpha
-
Beta
-
Gamma
-
Delta
-
-``` - -## Full bleed <body> - -It's common to want the entire `` to fit to the viewport. By themselves, Polymer's layout features on -`` don't achieve the result. You can make `` take up the entire viewport by adding the `fullbleed` class: - -```html - -
Fitting a fullbleed body.
- -``` - -This removes its margins and maximizes its height to the viewport. There is no equivalent mixin, but the same result can -be achieved in CSS very simply: -```css -body { - margin: 0; - height: 100vh; -} -``` - -This class is included in the `iron-positioning` module of the `iron-flex-layout-classes` file. - -Note that the `fullbleed` class **only works on the `` tag.** This is the only rule in the -stylesheet that is scoped to a particular tag. - - -## General purpose rules - -Polymer also includes other general purpose rules for basic positioning: - -Class | Mixin | Result -:-|:-|:- -`block`| `--layout-block` | Assigns `display: block` -`invisible` | `--layout-invisible` | Assigns `visibility: hidden` -`relative` | `--layout-relative` | Assigns `position: relative` -`fit` | `--layout-fit` | Sets `position: absolute` and sets `top:0;right:0;bottom:0;left:0;` (aka "trbl fitting"). - -The classes listed here are included in the `iron-positioning` module of the `iron-flex-layout-classes` file. - -> Note:When using `fit` layout, the element must have an ancestor with fixed size and `position: relative` layout -to fit inside of. - - -**Example: classes** - -```html -
Before [A Span] After
-
Before [A Block Span] After
-
Before invisible span After invisible span
-
-
Fit
-
-``` diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/README.md b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/README.md deleted file mode 100644 index ca54ed33..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/README.md +++ /dev/null @@ -1,61 +0,0 @@ -[![Build status](https://travis-ci.org/PolymerElements/iron-flex-layout.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-flex-layout) -[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://beta.webcomponents.org/element/PolymerElements/iron-flex-layout) - -## <iron-flex-layout> - -The `` component provides simple ways to use -[CSS flexible box layout](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Flexible_boxes), -also known as flexbox. This component provides two different ways to use flexbox: - -1. [Layout classes](https://github.com/PolymerElements/iron-flex-layout/tree/master/iron-flex-layout-classes.html). -The layout class stylesheet provides a simple set of class-based flexbox rules, that -let you specify layout properties directly in markup. You must include this file -in every element that needs to use them. - -Sample use: - - -```html -
-
cross axis start alignment
-
-``` - -1. [Custom CSS mixins](https://github.com/PolymerElements/iron-flex-layout/blob/master/iron-flex-layout.html). -The mixin stylesheet includes custom CSS mixins that can be applied inside a CSS rule using the `@apply` function. - -A complete [guide](https://elements.polymer-project.org/guides/flex-layout) to `` is available. - -## Changes in 2.0 -- removed the deprecated `/deep/` classes -- files removed: `classes/iron-flex-layout.html`, `classes/iron-shadow-flex-layout` - diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/bower.json b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/bower.json deleted file mode 100644 index 28c3bd3d..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/bower.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "iron-flex-layout", - "version": "2.0.3", - "description": "Provide flexbox-based layouts", - "keywords": [ - "web-components", - "polymer", - "layout" - ], - "main": "iron-flex-layout.html", - "private": true, - "license": "http://polymer.github.io/LICENSE.txt", - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-flex-layout.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2" - }, - "ignore": [], - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "Polymer/web-component-tester#^4.0.0", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "pages": { - "Flexbox layout guide": "GUIDE.md" - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/demo/index.html b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/demo/index.html deleted file mode 100644 index 887ff3f9..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/demo/index.html +++ /dev/null @@ -1,429 +0,0 @@ - - - - - - - iron-flex-layout demo - - - - - - - - - - - - - - - -
-

Horizontal and vertical layout

- - - - -

Flexible children

- - - - -

Flexible children in vertical layouts

- - - - -

Flex ratios

- - - - -

Cross-axis stretch alignment (default)

- - - - -

Cross-axis center alignment

- - - - -

Cross-axis start alignment

- - - - -

Cross-axis end alignment

- - - - -

Justification, start justified

- - - - -

Justification, center justified

- - - - -

Justification, end justified

- - - - -

Justification, equal space between elements

- - - - -

Justification, equal space around each element

- - - - -

Self alignment

- - - - -

Wrapping

- - - - -

Reversed layouts

- - - - -

General purpose rules

- - - -
- - diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/gen-tsd.json b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/gen-tsd.json deleted file mode 100644 index cc757dbf..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/gen-tsd.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "excludeIdentifiers": [ - "iron-flex-layout" - ] -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/index.html b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/index.html deleted file mode 100644 index 7d3b0881..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - iron-flex-layout - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/iron-flex-layout-classes.d.ts b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/iron-flex-layout-classes.d.ts deleted file mode 100644 index 139911b8..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/iron-flex-layout-classes.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-flex-layout-classes.html - */ - -/// - diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/iron-flex-layout-classes.html b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/iron-flex-layout-classes.html deleted file mode 100644 index a4e84c1f..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/iron-flex-layout-classes.html +++ /dev/null @@ -1,436 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/iron-flex-layout.d.ts b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/iron-flex-layout.d.ts deleted file mode 100644 index c7301adc..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/iron-flex-layout.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-flex-layout.html - */ - -/// - diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/iron-flex-layout.html b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/iron-flex-layout.html deleted file mode 100644 index 99bc5535..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/iron-flex-layout.html +++ /dev/null @@ -1,424 +0,0 @@ - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/package.json b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/package.json deleted file mode 100644 index 5656aeb4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/iron-flex-layout", - "private": true, - "description": "Provide flexbox-based layouts", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-flex-layout.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.1.1", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/test/index.html deleted file mode 100644 index 78d32da2..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/test/index.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - iron-flex-behavior tests - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/test/iron-flex-layout-classes.html b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/test/iron-flex-layout-classes.html deleted file mode 100644 index 525718ec..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/test/iron-flex-layout-classes.html +++ /dev/null @@ -1,422 +0,0 @@ - - - - - iron-flex-layout-classes tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/test/iron-flex-layout.html b/node_modules/@polymer/polymer/bower_components/iron-flex-layout/test/iron-flex-layout.html deleted file mode 100644 index f2977309..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-flex-layout/test/iron-flex-layout.html +++ /dev/null @@ -1,444 +0,0 @@ - - - - - iron-flex-layout tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/.bower.json deleted file mode 100644 index 9587c307..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/.bower.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "iron-form-element-behavior", - "version": "2.1.2", - "license": "http://polymer.github.io/LICENSE.txt", - "private": true, - "main": "iron-form-element-behavior.html", - "authors": [ - "The Polymer Authors" - ], - "description": "Enables a custom element to be included in an iron-form", - "keywords": [ - "web-components", - "polymer", - "form" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-form-element-behavior.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "homepage": "https://github.com/PolymerElements/iron-form-element-behavior", - "_release": "2.1.2", - "_resolution": { - "type": "version", - "tag": "v2.1.2", - "commit": "601b8337c2728c8421c2a018c016d9ca97e0f385" - }, - "_source": "https://github.com/PolymerElements/iron-form-element-behavior.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-form-element-behavior" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/.github/CODEOWNERS deleted file mode 100644 index c5097c0c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @valdrinkoshi -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 36493f30..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/.travis.yml deleted file mode 100644 index 334e2446..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -env: - global: - - secure: >- - IJ2DKBWd4T446kn7yV/2tStL8tTZcmfguzymvE+U9p9JBJl6Qu+KwfzETjJPyiEhzwS8gqcrV8takloMto2dMLCyCc9RBzJt/AHlLC5vcZ0aJ06ArYkn98/lz4q9noDDpd1dqXbzC8ea4En/b+DCgf8iei7pFmoNjFo8+RGoSMN7GvmUIBEbZ0akQnZcvMNgbWrRQQ31Qkug492ybrmizBMlBoMSRVkMjKkuKQyOr/7CTEvmj62XuapM9VoE21qr6E0T1iXrBbT9ay5HPlitkfBXe+oV3tj3ONBp81+HhEiIkZua3xnGcs0YkT9qd/fipy/1hfPAj5bBco/IyYEjVYUuIrhdJEfzFlHBwNqlWtl5yuW9srHP5V4k7NiUWBESoQ2V4AH7ZDuxcsdhBT1N/2D0dksBP4UkfyBIYQaUOYSI0a4O6BpgTQRPh7yHZ88fG6B2/k59dlX1PuPFuiI7dECPMmaLVsUGH3PMkezHsD4BNdp89HzJVk0jTM8W5oP1/Lj8EEp1X48zHg7IZo+o0rOPtvjqrYtdhw9+BVujRKkLhXBDIh+bjQeX4WpeDPtAxAaOH7bAWxWa+w1h0DbOkHzB6cV3H8jzg/oJKwZyIgmrR9aVjeaW2IP3sYxbkGq2ZM/x9+mcRo+JV3TONStYRc6lEKpmOGQgUZbVMyU0S2E= - - secure: >- - KZmse/kaUHZKkjYYWssUihkjaWmhXFfJio6/TcyxlvzlRN+b+s8xkMx09F2mfCEzCuxbhMeYaOLYUP+x44mO/N5OKvRYqGKLBJASQ+LvsVe6ep972AfWtb2P2E6OK/b9vAdW0v52j1gTaj94KtUfjaWjxP78TTEG5slMMwadqBm5e7nW4vS+wV26sbNymnWB9NErLebJr0T+wwrXDyjXWkUTH8yPzlwFjPcfXZavQwFyM9E+k+HQVUOQ8b3oMxVnwc2aHRWLWRDu97k1S/hVk+c1j+qamOa16faJLTsG9lay7RRkeq/OQBvjdWtmsq95NkP27/uLlQrKKOY7nZZ331LlqYK/o1+i+nVjZqWAgMXun7OjTtZvU53dOFXPVroXNoIcAPhdVNxLNvlJLvTL1uoVybzjeDdiMrTpZc6FpSLRKOj9AGmnT4vy+A2MSxn3rwujvz2PlRvoXYxnN36QbONbF7Zr1Sv6i+53eN+/1xC78i7otJEsvJhKe6YAq9/7xyOBGhELhOYMIES2gy/Nbc+47pEWWgYQ/tvBO1RXuaRgKG2iwiWL83Phhgw3SAdYaAL5xk6lUTTsuCJZHmcDoD8bTDblBIjntWvtzT6Z1NPTiuUXszJXkLSwUjfNUeQtb4H9GnNWF0P4ze91RZippygyWfrDz7aQhf+NcbF/PE0= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/README.md b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/README.md deleted file mode 100644 index 14e1ebf7..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/README.md +++ /dev/null @@ -1,14 +0,0 @@ -[![Build status](https://travis-ci.org/PolymerElements/iron-form-element-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-form-element-behavior) - -_[Demo and API docs](https://elements.polymer-project.org/elements/iron-form-element-behavior)_ - - -## Polymer.IronFormElementBehavior - -Polymer.IronFormElementBehavior enables a custom element to be included -in an `iron-form`. - -### Changes in 2.0 - -If your form element is used with Polymer 2.0, it doesn't need to implement `Polymer.IronFormElementBehavior` as `iron-form#2.0.0` won't rely on it. -The events `iron-form-element-register` and `iron-form-element-unregister` are not fired on Polymer 2.0. diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/bower.json b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/bower.json deleted file mode 100644 index 0870b00b..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/bower.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "iron-form-element-behavior", - "version": "2.1.2", - "license": "http://polymer.github.io/LICENSE.txt", - "private": true, - "main": "iron-form-element-behavior.html", - "authors": [ - "The Polymer Authors" - ], - "description": "Enables a custom element to be included in an iron-form", - "keywords": [ - "web-components", - "polymer", - "form" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-form-element-behavior.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/demo/index.html b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/demo/index.html deleted file mode 100644 index 7688e826..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/demo/index.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - iron-form-element-behavior demo - - - - - - - - - - - - - - -
-
-
- Element with iron-form-element-behavior -
- Element without iron-form-element-behavior -
- Element with iron-form-element-behavior -
- -

Elements tracked by the form:

- -
    -
-
-
- - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/demo/simple-element.html b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/demo/simple-element.html deleted file mode 100644 index 45027692..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/demo/simple-element.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/demo/simple-form.html b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/demo/simple-form.html deleted file mode 100644 index 4dc5dc6b..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/demo/simple-form.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/index.html b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/index.html deleted file mode 100644 index 8d748c05..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - iron-form-element-behavior - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/iron-form-element-behavior.d.ts b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/iron-form-element-behavior.d.ts deleted file mode 100644 index da153011..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/iron-form-element-behavior.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-form-element-behavior.html - */ - -/// - -declare namespace Polymer { - - /** - * Polymer.IronFormElementBehavior enables a custom element to be included - * in an `iron-form`. - * - * Events `iron-form-element-register` and `iron-form-element-unregister` are not fired on Polymer 2.0. - * - * - */ - interface IronFormElementBehavior { - - /** - * The name of this element. - */ - name: string|null|undefined; - - /** - * The value for this element. - */ - value: string|number|null|undefined; - - /** - * Set to true to mark the input as required. If used in a form, a - * custom element that uses this behavior should also use - * Polymer.IronValidatableBehavior and define a custom validation method. - * Otherwise, a `required` element will always be considered valid. - * It's also strongly recommended to provide a visual style for the element - * when its value is invalid. - */ - required: boolean|null|undefined; - - /** - * The form that the element is registered to. - */ - _parentForm: object|null|undefined; - attached(): void; - detached(): void; - } - - const IronFormElementBehavior: object; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/iron-form-element-behavior.html b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/iron-form-element-behavior.html deleted file mode 100644 index e36371c2..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/iron-form-element-behavior.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/package.json b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/package.json deleted file mode 100644 index 9fab6832..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/iron-form-element-behavior", - "private": true, - "description": "Enables a custom element to be included in an iron-form", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-form-element-behavior.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/test/basic.html b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/test/basic.html deleted file mode 100644 index 4cf9f547..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/test/basic.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - iron-form-element-behavior - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/test/index.html deleted file mode 100644 index d76b736e..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/test/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/test/simple-element.html b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/test/simple-element.html deleted file mode 100644 index b1aa3002..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/test/simple-element.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/test/simple-form.html b/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/test/simple-form.html deleted file mode 100644 index 7fa38d88..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-form-element-behavior/test/simple-form.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icon/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-icon/.bower.json deleted file mode 100644 index b8132922..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icon/.bower.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "iron-icon", - "private": true, - "version": "2.1.0", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "An element that supports displaying an icon", - "main": "iron-icon.html", - "author": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "icon" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-icon.git" - }, - "ignore": [], - "dependencies": { - "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", - "iron-meta": "PolymerElements/iron-meta#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "promise-polyfill": "polymerlabs/promise-polyfill#1 - 2", - "iron-iconset": "PolymerElements/iron-iconset#1 - 2", - "iron-icons": "PolymerElements/iron-icons#1 - 2", - "iron-component-page": "polymerelements/iron-component-page#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2" - }, - "variants": { - "1.x": { - "dependencies": { - "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", - "iron-meta": "polymerelements/iron-meta#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", - "iron-iconset": "polymerelements/iron-iconset#^1.0.0", - "iron-icons": "polymerelements/iron-icons#^1.0.0", - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.2.5" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "homepage": "https://github.com/PolymerElements/iron-icon", - "_release": "2.1.0", - "_resolution": { - "type": "version", - "tag": "v2.1.0", - "commit": "c592bd3f0b442e3e4c1fc574f08545d0f9810d15" - }, - "_source": "https://github.com/PolymerElements/iron-icon.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-icon" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-icon/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-icon/.github/CODEOWNERS deleted file mode 100644 index 0d8c0ad6..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icon/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @bicknellr -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-icon/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-icon/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 61da83fb..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icon/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-icon/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-icon/.travis.yml deleted file mode 100644 index d47c0333..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icon/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -env: - global: - - secure: >- - TTp7q3OKEpaFqnqbYczhMd8iXTa1Ya0jOQVq1OhljpJogLWb78qvHLHgnxgMWkw+/KDyE5KHW1CXhYUQa7C9QF2Zn7uoN27+7+4q7HuK3pTuUtqdfstLVuLHQrfK6VqUT4XjSpeMzNX/HxuD3EMBH0bMBR4CIr76sLJOuIL/XF8= - - secure: >- - damHvQXygRYIJG/8Vmqh7U4zxoi5224JIZiZVQL6I5z//s5zqHq6AqwDyfOoc0zWndJCwE8NvOzKD/lmVYXIsPcY95kkZS45Dbye0krYWUzKnv42rDi/7olXcg647iAEDVhW3BRHmA+opzQtKUpAkXl97DtPVkszLL1ReyNyv3A= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-icon/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-icon/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icon/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-icon/README.md b/node_modules/@polymer/polymer/bower_components/iron-icon/README.md deleted file mode 100644 index c2f956f4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icon/README.md +++ /dev/null @@ -1,22 +0,0 @@ -[![Build status](https://travis-ci.org/PolymerElements/iron-icon.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-icon) - -## <iron-icon> - -The `iron-icon` element displays an icon. By default an icon renders as a 24px square. - - -```html - - -``` diff --git a/node_modules/@polymer/polymer/bower_components/iron-icon/bower.json b/node_modules/@polymer/polymer/bower_components/iron-icon/bower.json deleted file mode 100644 index 98243f5e..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icon/bower.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "iron-icon", - "private": true, - "version": "2.0.1", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "An element that supports displaying an icon", - "main": "iron-icon.html", - "author": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "icon" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-icon.git" - }, - "ignore": [], - "dependencies": { - "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", - "iron-meta": "PolymerElements/iron-meta#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "promise-polyfill": "polymerlabs/promise-polyfill#1 - 2", - "iron-iconset": "PolymerElements/iron-iconset#1 - 2", - "iron-icons": "PolymerElements/iron-icons#1 - 2", - "iron-component-page": "polymerelements/iron-component-page#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2" - }, - "variants": { - "1.x": { - "dependencies": { - "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", - "iron-meta": "polymerelements/iron-meta#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", - "iron-iconset": "polymerelements/iron-iconset#^1.0.0", - "iron-icons": "polymerelements/iron-icons#^1.0.0", - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.2.5" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-icon/demo/async.html b/node_modules/@polymer/polymer/bower_components/iron-icon/demo/async.html deleted file mode 100644 index 0e7bffc0..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icon/demo/async.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - iron-icon demo - - - - - - - - - -
-

- This demo is for an <iron-icon> with an asynchronously loaded - iconset. -

- -
Waiting to load iconset...
- -
- - - -

<iron-icon icon="example:location">

- - -
-
- - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icon/demo/index.html b/node_modules/@polymer/polymer/bower_components/iron-icon/demo/index.html deleted file mode 100644 index 36f292ec..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icon/demo/index.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - iron-icon demo - - - - - - - - - - - -
-

- This demo is for a single <iron-icon>. If you're looking for the - whole set of available icons, check out the - <iron-icons> - demo. -

- -

iron-icon using a iron-iconset as its icon source.

- - - - -

iron-icon using an image url as its icon source.

- - - -
- - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icon/demo/location.png b/node_modules/@polymer/polymer/bower_components/iron-icon/demo/location.png deleted file mode 100644 index 9bb74236..00000000 Binary files a/node_modules/@polymer/polymer/bower_components/iron-icon/demo/location.png and /dev/null differ diff --git a/node_modules/@polymer/polymer/bower_components/iron-icon/hero.svg b/node_modules/@polymer/polymer/bower_components/iron-icon/hero.svg deleted file mode 100755 index f0f58536..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icon/hero.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icon/index.html b/node_modules/@polymer/polymer/bower_components/iron-icon/index.html deleted file mode 100644 index 487bb5c3..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icon/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icon/iron-icon.d.ts b/node_modules/@polymer/polymer/bower_components/iron-icon/iron-icon.d.ts deleted file mode 100644 index f326c64a..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icon/iron-icon.d.ts +++ /dev/null @@ -1,107 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-icon.html - */ - -/// -/// -/// - -/** - * The `iron-icon` element displays an icon. By default an icon renders as a 24px square. - * - * Example using src: - * - * - * - * Example setting size to 32px x 32px: - * - * - * - * - * - * The iron elements include several sets of icons. - * To use the default set of icons, import `iron-icons.html` and use the `icon` attribute to specify an icon: - * - * - * - * - * - * To use a different built-in set of icons, import the specific `iron-icons/-icons.html`, and - * specify the icon as `:`. For example, to use a communication icon, you would - * use: - * - * - * - * - * - * You can also create custom icon sets of bitmap or SVG icons. - * - * Example of using an icon named `cherry` from a custom iconset with the ID `fruit`: - * - * - * - * See [iron-iconset](iron-iconset) and [iron-iconset-svg](iron-iconset-svg) for more information about - * how to create a custom iconset. - * - * See the [iron-icons demo](iron-icons?view=demo:demo/index.html) to see the icons available - * in the various iconsets. - * - * To load a subset of icons from one of the default `iron-icons` sets, you can - * use the [poly-icon](https://poly-icon.appspot.com/) tool. It allows you - * to select individual icons, and creates an iconset from them that you can - * use directly in your elements. - * - * ### Styling - * - * The following custom properties are available for styling: - * - * Custom property | Description | Default - * ----------------|-------------|---------- - * `--iron-icon` | Mixin applied to the icon | {} - * `--iron-icon-width` | Width of the icon | `24px` - * `--iron-icon-height` | Height of the icon | `24px` - * `--iron-icon-fill-color` | Fill color of the svg icon | `currentcolor` - * `--iron-icon-stroke-color` | Stroke color of the svg icon | none - */ -interface IronIconElement extends Polymer.Element { - - /** - * The name of the icon to use. The name should be of the form: - * `iconset_name:icon_name`. - */ - icon: string|null|undefined; - - /** - * The name of the theme to used, if one is specified by the - * iconset. - */ - theme: string|null|undefined; - - /** - * If using iron-icon without an iconset, you can set the src to be - * the URL of an individual icon image file. Note that this will take - * precedence over a given icon attribute. - */ - src: string|null|undefined; - _meta: Polymer.IronMeta; - _DEFAULT_ICONSET: string; - _iconChanged(icon: any): void; - _srcChanged(src: any): void; - _usesIconset(): any; - _updateIcon(): void; -} - -interface HTMLElementTagNameMap { - "iron-icon": IronIconElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-icon/iron-icon.html b/node_modules/@polymer/polymer/bower_components/iron-icon/iron-icon.html deleted file mode 100644 index 71378a77..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icon/iron-icon.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icon/package.json b/node_modules/@polymer/polymer/bower_components/iron-icon/package.json deleted file mode 100644 index fa9ba549..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icon/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/iron-icon", - "private": true, - "description": "An element that supports displaying an icon", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-icon.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-icon/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-icon/test/index.html deleted file mode 100644 index 41143268..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icon/test/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - Tests - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icon/test/iron-icon.html b/node_modules/@polymer/polymer/bower_components/iron-icon/test/iron-icon.html deleted file mode 100644 index 023fa6f2..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icon/test/iron-icon.html +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - iron-icon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-icons/.bower.json deleted file mode 100644 index ec7fd232..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/.bower.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "name": "iron-icons", - "version": "2.1.1", - "description": "A set of icons for use with iron-icon", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "icon" - ], - "main": "iron-icons.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-icons" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-icons", - "dependencies": { - "iron-icon": "PolymerElements/iron-icon#1 - 2", - "iron-iconset-svg": "PolymerElements/iron-iconset-svg#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "iron-component-page": "polymerelements/iron-component-page#1 - 2", - "iron-meta": "PolymerElements/iron-meta#1 - 2", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", - "web-component-tester": "^6.0.0" - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "iron-icon": "polymerelements/iron-icon#^1.0.0", - "iron-iconset-svg": "polymerelements/iron-iconset-svg#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.2", - "iron-component-page": "polymerelements/iron-component-page#1.0.0", - "iron-meta": "polymerelements/iron-meta#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "^4.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - }, - "polymer-1.x_iron-meta-2.x": { - "dependencies": { - "iron-icon": "polymerelements/iron-icon#^1.0.0", - "iron-iconset-svg": "polymerelements/iron-iconset-svg#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.2", - "iron-component-page": "polymerelements/iron-component-page#1.0.0", - "iron-meta": "polymerelements/iron-meta#^2.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "^4.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7", - "iron-meta": "^2.0.0" - } - } - }, - "ignore": [ - "util", - "update-icons.sh" - ], - "_release": "2.1.1", - "_resolution": { - "type": "version", - "tag": "v2.1.1", - "commit": "bc3d1a82b24449732cf3cb3d663748a9f5636d2d" - }, - "_source": "https://github.com/PolymerElements/iron-icons.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-icons" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-icons/.github/CODEOWNERS deleted file mode 100644 index 0d8c0ad6..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @bicknellr -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-icons/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 95ef5d37..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-icons/.travis.yml deleted file mode 100644 index b9a33174..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -env: - global: - - secure: >- - L3XJmmXJlYZYyvlKoZ25HpEC1FcTtWejNk2xRQKAH4cg8+oNMjE80OxkaIVHtZlatpLdIIYk79p+9OtGiskXZ1QsAjHtrxWE5YRSSz3nL/XyZqUu7tjiNtrih6PiEvocmwMCCdRGMSXwVl1YoUUYM0DWxHdykd0EMXYYkYe+yQo= - - secure: >- - PSLkHUoiTj6UxN+7KtZG2miLmeuDuGN4c+ksviIP4/4lh5x7xic7CIeMmf2HLd18MR8CwCHjfMrIrxYF/IusILn6fdQ8rdBw+XhEF7xP+8UqqgF6YjGHs/xPDYYiGtisEc2OOg+vzqXIMhmKTg2vVlhuNq16eggGsRDcsEhEong= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-icons/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/README.md b/node_modules/@polymer/polymer/bower_components/iron-icons/README.md deleted file mode 100644 index 6377bcf6..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/README.md +++ /dev/null @@ -1,33 +0,0 @@ -[![Build status](https://travis-ci.org/PolymerElements/iron-icons.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-icons) - -_[Demo and API docs](https://elements.polymer-project.org/elements/iron-icons)_ - - -## <iron-icons> - -`iron-icons` is a utility import that includes the definition for the `iron-icon` element, `iron-iconset-svg` element, as well as an import for the default icon set. - -The `iron-icons` directory also includes imports for additional icon sets that can be loaded into your project. - -Example loading icon set: - -```html - -``` - -To use an icon from one of these sets, first prefix your `iron-icon` with the icon set name, followed by a colon, ":", and then the icon id. - -Example using the directions-bus icon from the maps icon set: - -```html - -``` - -To load a subset of icons from one of the default `iron-icons` sets, you can -use the [poly-icon](https://poly-icon.appspot.com/) tool. It allows you -to select individual icons, and creates an iconset from them that you can -use directly in your elements. - -See [iron-icon](https://github.com/PolymerElements/iron-icon) for more information about working with icons. - -See [iron-iconset](https://github.com/PolymerElements/iron-iconset) and [iron-iconset-svg](https://github.com/PolymerElements/iron-iconset-svg) for more information about how to create a custom iconset. diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/av-icons.d.ts b/node_modules/@polymer/polymer/bower_components/iron-icons/av-icons.d.ts deleted file mode 100644 index 5d185519..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/av-icons.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * av-icons.html - */ - -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/av-icons.html b/node_modules/@polymer/polymer/bower_components/iron-icons/av-icons.html deleted file mode 100644 index 764d6229..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/av-icons.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/bower.json b/node_modules/@polymer/polymer/bower_components/iron-icons/bower.json deleted file mode 100644 index 0d71899f..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/bower.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "name": "iron-icons", - "version": "2.1.1", - "description": "A set of icons for use with iron-icon", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "icon" - ], - "main": "iron-icons.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-icons" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-icons", - "dependencies": { - "iron-icon": "PolymerElements/iron-icon#1 - 2", - "iron-iconset-svg": "PolymerElements/iron-iconset-svg#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "iron-component-page": "polymerelements/iron-component-page#1 - 2", - "iron-meta": "PolymerElements/iron-meta#1 - 2", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", - "web-component-tester": "^6.0.0" - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "iron-icon": "polymerelements/iron-icon#^1.0.0", - "iron-iconset-svg": "polymerelements/iron-iconset-svg#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.2", - "iron-component-page": "polymerelements/iron-component-page#1.0.0", - "iron-meta": "polymerelements/iron-meta#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "^4.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - }, - "polymer-1.x_iron-meta-2.x": { - "dependencies": { - "iron-icon": "polymerelements/iron-icon#^1.0.0", - "iron-iconset-svg": "polymerelements/iron-iconset-svg#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.2", - "iron-component-page": "polymerelements/iron-component-page#1.0.0", - "iron-meta": "polymerelements/iron-meta#^2.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "^4.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7", - "iron-meta": "^2.0.0" - } - } - }, - "ignore": [ - "util", - "update-icons.sh" - ] -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/communication-icons.d.ts b/node_modules/@polymer/polymer/bower_components/iron-icons/communication-icons.d.ts deleted file mode 100644 index f8a52924..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/communication-icons.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * communication-icons.html - */ - -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/communication-icons.html b/node_modules/@polymer/polymer/bower_components/iron-icons/communication-icons.html deleted file mode 100644 index a9e1839a..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/communication-icons.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/demo/index.html b/node_modules/@polymer/polymer/bower_components/iron-icons/demo/index.html deleted file mode 100644 index be1a56f5..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/demo/index.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - iron-icons demo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/device-icons.d.ts b/node_modules/@polymer/polymer/bower_components/iron-icons/device-icons.d.ts deleted file mode 100644 index 4a676ad7..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/device-icons.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * device-icons.html - */ - -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/device-icons.html b/node_modules/@polymer/polymer/bower_components/iron-icons/device-icons.html deleted file mode 100644 index 190f8962..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/device-icons.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/editor-icons.d.ts b/node_modules/@polymer/polymer/bower_components/iron-icons/editor-icons.d.ts deleted file mode 100644 index 6ecc0bc5..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/editor-icons.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * editor-icons.html - */ - -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/editor-icons.html b/node_modules/@polymer/polymer/bower_components/iron-icons/editor-icons.html deleted file mode 100644 index bc7084db..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/editor-icons.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/gen-tsd.json b/node_modules/@polymer/polymer/bower_components/iron-icons/gen-tsd.json deleted file mode 100644 index 2f5920a3..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/gen-tsd.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "exclude": [ - "index.html", - "test/**", - "demo/**", - "util/**" - ] -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/hardware-icons.d.ts b/node_modules/@polymer/polymer/bower_components/iron-icons/hardware-icons.d.ts deleted file mode 100644 index 1ffcbe70..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/hardware-icons.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * hardware-icons.html - */ - -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/hardware-icons.html b/node_modules/@polymer/polymer/bower_components/iron-icons/hardware-icons.html deleted file mode 100644 index 3268e5ad..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/hardware-icons.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/hero.svg b/node_modules/@polymer/polymer/bower_components/iron-icons/hero.svg deleted file mode 100755 index 167321c9..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/hero.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/image-icons.d.ts b/node_modules/@polymer/polymer/bower_components/iron-icons/image-icons.d.ts deleted file mode 100644 index 2d14c763..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/image-icons.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * image-icons.html - */ - -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/image-icons.html b/node_modules/@polymer/polymer/bower_components/iron-icons/image-icons.html deleted file mode 100644 index bb1a4da3..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/image-icons.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/index.html b/node_modules/@polymer/polymer/bower_components/iron-icons/index.html deleted file mode 100644 index fa5b89bb..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/iron-icons.d.ts b/node_modules/@polymer/polymer/bower_components/iron-icons/iron-icons.d.ts deleted file mode 100644 index 4f327505..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/iron-icons.d.ts +++ /dev/null @@ -1,43 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-icons.html - */ - -/// -/// - -/** - * `iron-icons` is a utility import that includes the definition for the `iron-icon` element, `iron-iconset-svg` element, as well as an import for the default icon set. - * - * The `iron-icons` directory also includes imports for additional icon sets that can be loaded into your project. - * - * Example loading icon set: - * - * - * - * To use an icon from one of these sets, first prefix your `iron-icon` with the icon set name, followed by a colon, ":", and then the icon id. - * - * Example using the directions-bus icon from the maps icon set: - * - * - * - * To load a subset of icons from one of the default `iron-icons` sets, you can - * use the [poly-icon](https://poly-icon.appspot.com/) tool. It allows you - * to select individual icons, and creates an iconset from them that you can - * use directly in your elements. - * - * See [iron-icon](#iron-icon) for more information about working with icons. - * - * See [iron-iconset](#iron-iconset) and [iron-iconset-svg](#iron-iconset-svg) for more information about how to create a custom iconset. - */ -interface IronIconsElement extends Polymer.Element { -} - -interface HTMLElementTagNameMap { - "iron-icons": IronIconsElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/iron-icons.html b/node_modules/@polymer/polymer/bower_components/iron-icons/iron-icons.html deleted file mode 100644 index 739131cc..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/iron-icons.html +++ /dev/null @@ -1,353 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/maps-icons.d.ts b/node_modules/@polymer/polymer/bower_components/iron-icons/maps-icons.d.ts deleted file mode 100644 index 7cd6cf09..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/maps-icons.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * maps-icons.html - */ - -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/maps-icons.html b/node_modules/@polymer/polymer/bower_components/iron-icons/maps-icons.html deleted file mode 100644 index d6ad092f..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/maps-icons.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/notification-icons.d.ts b/node_modules/@polymer/polymer/bower_components/iron-icons/notification-icons.d.ts deleted file mode 100644 index 2a380db1..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/notification-icons.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * notification-icons.html - */ - -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/notification-icons.html b/node_modules/@polymer/polymer/bower_components/iron-icons/notification-icons.html deleted file mode 100644 index 272b95b0..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/notification-icons.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/package.json b/node_modules/@polymer/polymer/bower_components/iron-icons/package.json deleted file mode 100644 index e6360ac2..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/iron-icons", - "private": true, - "description": "A set of icons for use with iron-icon", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-icons" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.1", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/places-icons.d.ts b/node_modules/@polymer/polymer/bower_components/iron-icons/places-icons.d.ts deleted file mode 100644 index 6b03265d..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/places-icons.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * places-icons.html - */ - -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/places-icons.html b/node_modules/@polymer/polymer/bower_components/iron-icons/places-icons.html deleted file mode 100644 index fa4827bf..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/places-icons.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/social-icons.d.ts b/node_modules/@polymer/polymer/bower_components/iron-icons/social-icons.d.ts deleted file mode 100644 index c7cbfe0f..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/social-icons.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * social-icons.html - */ - -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/social-icons.html b/node_modules/@polymer/polymer/bower_components/iron-icons/social-icons.html deleted file mode 100644 index a0424735..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/social-icons.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-icons/test/index.html deleted file mode 100644 index d1a1d048..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/test/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - Tests - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-icons/test/iron-icons.html b/node_modules/@polymer/polymer/bower_components/iron-icons/test/iron-icons.html deleted file mode 100644 index c4dbcaaa..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-icons/test/iron-icons.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - iron-icons - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/.bower.json deleted file mode 100644 index e813deeb..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/.bower.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "name": "iron-iconset-svg", - "description": "Manages a set of svg icons", - "version": "2.2.1", - "keywords": [ - "web-components", - "polymer", - "icon" - ], - "license": "http://polymer.github.io/LICENSE.txt", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-iconset-svg.git" - }, - "main": "iron-iconset-svg.html", - "ignore": [], - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2", - "iron-meta": "PolymerElements/iron-meta#1 - 2" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "iron-icon": "PolymerElements/iron-icon#1 - 2", - "promise-polyfill": "polymerlabs/promise-polyfill#1 - 2", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", - "web-component-tester": "^6.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9", - "iron-meta": "polymerelements/iron-meta#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "iron-icon": "polymerelements/iron-icon#^1.0.0", - "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "^4.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "homepage": "https://github.com/PolymerElements/iron-iconset-svg", - "_release": "2.2.1", - "_resolution": { - "type": "version", - "tag": "v2.2.1", - "commit": "65b04ec3aaeb46efa11be109aa41ea0c6d327a32" - }, - "_source": "https://github.com/PolymerElements/iron-iconset-svg.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-iconset-svg" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/.github/CODEOWNERS deleted file mode 100644 index 0d8c0ad6..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @bicknellr -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 9f7691f5..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/.travis.yml deleted file mode 100644 index 5f6187be..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/.travis.yml +++ /dev/null @@ -1,32 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) - - >- - npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m - Project is not formatted. Please run "npm run format".' && false) -env: - global: - - secure: >- - FVt0rYGSWqJW3i57y9CQHuDaa97UDwZuGc5ts+TDpbuR3DVP8LxB9MT1ApA2bqhg101hPzhWJWIK3Siotkb7eAlsiWgVhdNr8t5eZBPOOnjLiU6PNCF6ZGCZRJHQ6q4xQ2DycGug8OfwMw63yewLEYmVBppeAlStnPUfDWURlJ8= - - secure: >- - X7cWxU13zLWoahM/BNBPSvgnI396zMmLzVHDHX6zAQL7gFL+PS4Dz6WjooO3Jx79ks2E8REUzWB8IFY3FohVAncXA///PAaqNLX0k2et4aOTOs5tcsCWL4nj8tKA6vjZIZ61rCjWTyNRR+o2QPsY9QQgi3Y+6bzLguWoPuycRbE= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/README.md b/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/README.md deleted file mode 100644 index bf8c40a5..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/README.md +++ /dev/null @@ -1,40 +0,0 @@ -[![Build status](https://travis-ci.org/PolymerElements/iron-iconset-svg.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-iconset-svg) - -_[Demo and API docs](https://elements.polymer-project.org/elements/iron-iconset-svg)_ - - -## <iron-iconset-svg> - -The `iron-iconset-svg` element allows users to define their own icon sets -that contain svg icons. The svg icon elements should be children of the -`iron-iconset-svg` element. Multiple icons should be given distinct id's. - -Using svg elements to create icons has a few advantages over traditional -bitmap graphics like jpg or png. Icons that use svg are vector based so -they are resolution independent and should look good on any device. They -are stylable via css. Icons can be themed, colorized, and even animated. - -Example: - -```html - - - - - - - - - - -``` - -This will automatically register the icon set "my-svg-icons" to the iconset -database. To use these icons from within another element, make a -`iron-iconset` element and call the `byId` method -to retrieve a given iconset. To apply a particular icon inside an -element use the `applyIcon` method. For example: - -```javascript -iconset.applyIcon(iconNode, 'car'); -``` diff --git a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/bower.json b/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/bower.json deleted file mode 100644 index fb61b8ea..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/bower.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "iron-iconset-svg", - "description": "Manages a set of svg icons", - "version": "2.2.1", - "keywords": [ - "web-components", - "polymer", - "icon" - ], - "license": "http://polymer.github.io/LICENSE.txt", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-iconset-svg.git" - }, - "main": "iron-iconset-svg.html", - "ignore": [], - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2", - "iron-meta": "PolymerElements/iron-meta#1 - 2" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "iron-icon": "PolymerElements/iron-icon#1 - 2", - "promise-polyfill": "polymerlabs/promise-polyfill#1 - 2", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", - "web-component-tester": "^6.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9", - "iron-meta": "polymerelements/iron-meta#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "iron-icon": "polymerelements/iron-icon#^1.0.0", - "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "^4.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/demo/index.html b/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/demo/index.html deleted file mode 100644 index 4ae9289a..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/demo/index.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - iron-iconset-svg - - - - - - - - - - - - - -
-

- Import a document with an <iron-iconset-svg> to use the - icons it contains with <iron-icon> elements in your page. -

- - - - -

- Use an inline <iron-iconset-svg> if you need to both - define and use your icons in the same document. -

- - - -
- - diff --git a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/demo/svg-sample-icons.html b/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/demo/svg-sample-icons.html deleted file mode 100644 index 3dd1d525..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/demo/svg-sample-icons.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/index.html b/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/index.html deleted file mode 100644 index 487bb5c3..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/iron-iconset-svg.d.ts b/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/iron-iconset-svg.d.ts deleted file mode 100644 index e2ed09b2..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/iron-iconset-svg.d.ts +++ /dev/null @@ -1,142 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-iconset-svg.html - */ - -/// -/// - -/** - * The `iron-iconset-svg` element allows users to define their own icon sets - * that contain svg icons. The svg icon elements should be children of the - * `iron-iconset-svg` element. Multiple icons should be given distinct id's. - * - * Using svg elements to create icons has a few advantages over traditional - * bitmap graphics like jpg or png. Icons that use svg are vector based so - * they are resolution independent and should look good on any device. They - * are stylable via css. Icons can be themed, colorized, and even animated. - * - * Example: - * - * - * - * - * - * - * - * - * - * - * - * - * This will automatically register the icon set "my-svg-icons" to the iconset - * database. To use these icons from within another element, make a - * `iron-iconset` element and call the `byId` method - * to retrieve a given iconset. To apply a particular icon inside an - * element use the `applyIcon` method. For example: - * - * iconset.applyIcon(iconNode, 'car'); - */ -interface IronIconsetSvgElement extends Polymer.Element { - - /** - * The name of the iconset. - */ - name: string|null|undefined; - - /** - * The size of an individual icon. Note that icons must be square. - */ - size: number|null|undefined; - - /** - * Set to true to enable mirroring of icons where specified when they are - * stamped. Icons that should be mirrored should be decorated with a - * `mirror-in-rtl` attribute. - * - * NOTE: For performance reasons, direction will be resolved once per - * document per iconset, so moving icons in and out of RTL subtrees will - * not cause their mirrored state to change. - */ - rtlMirroring: boolean|null|undefined; - - /** - * Set to true to measure RTL based on the dir attribute on the body or - * html elements (measured on document.body or document.documentElement as - * available). - */ - useGlobalRtlAttribute: boolean|null|undefined; - created(): void; - attached(): void; - - /** - * Construct an array of all icon names in this iconset. - * - * @returns Array of icon names. - */ - getIconNames(): any[]; - - /** - * Applies an icon to the given element. - * - * An svg icon is prepended to the element's shadowRoot if it exists, - * otherwise to the element itself. - * - * If RTL mirroring is enabled, and the icon is marked to be mirrored in - * RTL, the element will be tested (once and only once ever for each - * iconset) to determine the direction of the subtree the element is in. - * This direction will apply to all future icon applications, although only - * icons marked to be mirrored will be affected. - * - * @param element Element to which the icon is applied. - * @param iconName Name of the icon to apply. - * @returns The svg element which renders the icon. - */ - applyIcon(element: Element|null, iconName: string): Element|null; - - /** - * Remove an icon from the given element by undoing the changes effected - * by `applyIcon`. - * - * @param element The element from which the icon is removed. - */ - removeIcon(element: Element|null): void; - - /** - * Measures and memoizes the direction of the element. Note that this - * measurement is only done once and the result is memoized for future - * invocations. - */ - _targetIsRTL(target: any): any; - - /** - * When name is changed, register iconset metadata - */ - _nameChanged(): void; - - /** - * Create a map of child SVG elements by id. - * - * @returns Map of id's to SVG elements. - */ - _createIconMap(): object; - - /** - * Produce installable clone of the SVG element matching `id` in this - * iconset, or `undefined` if there is no matching element. - * - * @returns Returns an installable clone of the SVG element - * matching `id`. - */ - _cloneIcon(id: any, mirrorAllowed: any): Element|null; - _prepareSvgClone(sourceSvg: Element|null, size: number, mirrorAllowed: Boolean|null): Element|null; -} - -interface HTMLElementTagNameMap { - "iron-iconset-svg": IronIconsetSvgElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/iron-iconset-svg.html b/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/iron-iconset-svg.html deleted file mode 100644 index 152afcb5..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/iron-iconset-svg.html +++ /dev/null @@ -1,258 +0,0 @@ - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/package.json b/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/package.json deleted file mode 100644 index 2c775d09..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@polymer/iron-iconset-svg", - "private": true, - "description": "Manages a set of svg icons", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-iconset-svg.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0", - "webmat": "^0.2.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", - "format": "webmat && npm run update-types" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/test/index.html deleted file mode 100644 index bedeaac6..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/test/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - Tests - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/test/iron-iconset-svg.html b/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/test/iron-iconset-svg.html deleted file mode 100644 index 281670d5..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-iconset-svg/test/iron-iconset-svg.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - - - iron-iconset-svg - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-location/.bower.json deleted file mode 100644 index d181c4ea..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/.bower.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "name": "iron-location", - "version": "2.2.0", - "description": "Bidirectional data binding into the page's URL.", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "routing" - ], - "main": [ - "iron-location.html", - "iron-query-params.html" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-location.git" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-location", - "ignore": [], - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "promise-polyfill": "polymerlabs/promise-polyfill#1 - 2", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", - "paper-input": "polymerelements/paper-input#^1.0.0", - "paper-slider": "polymerelements/paper-slider#^1.0.0", - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.2.3" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "_release": "2.2.0", - "_resolution": { - "type": "version", - "tag": "v2.2.0", - "commit": "2486d275bef819aa3eedffee69158f695580d40f" - }, - "_source": "https://github.com/PolymerElements/iron-location.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-location" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-location/.github/CODEOWNERS deleted file mode 100644 index 9ef9eb64..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @e111077 -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-location/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index e3b4e289..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-location/.travis.yml deleted file mode 100644 index 475798c6..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/.travis.yml +++ /dev/null @@ -1,30 +0,0 @@ -language: node_js -sudo: required -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -env: - global: - - secure: >- - LSHof0ip5tJswHk4wAIXXsf8Z0WL44Y1pB1XmqFtIsjQLl+2K5bdhRq6Hd6RUZYcpTL29cMStCLQJEG1hxnMks37omHuVFWRtk0NaYlGnJY4i/m/ukUBmM7Yr7LROWRnBgU75PVUvc4YMbCjvlQ9KKjdgBbQBFH2KjhKr9GUN+ihB1yaKRMADvFtC6JWisG4RPv1pRxF6UgvGkOsaCdVb9H9AbKA0psAI1cpg8IMGgUBslbwhYw+viMEQdZ5lW++T3Tb9cwzCVaTqBgvkQCXW4I6T4En9yvUWbV0Ry8uChchvs6BJfwpgN/nksYnLCbCLmN+Rw5eU0+XyWZDLiki/HpsNQblqVEW7vHo1hmtpK24GUv2g8kuE1OjjW7K/l+Q20D8FJFIcPdFjmZ/XgLWxdtXbgNC8n4Z1XBEqKuV1BJ29ojvZk5a5/gFBf9PWdMNTVwSepk7+LoEVQW17vzSHT/HDF7WYEs14uZ0x9I0AV2+339RG7iCcVFMZKYgIif0DmZVysnm0Z9j+wRRk227JpiF9MHeVkFUaXl3+3XIQMz04t+H1wOXiDRlJLJG9IUrzFs+KYuCA+OxNc0XrxjA6Zkl75AQAjAY5vMEWYD+N2OGjkfwD7dB4JtltmZ4llMhEZUt/RPLeZJvL4Sus8hfA6SNG9/tdVgef0mQ91acxZg= - - secure: >- - h0j4eT4lJqbDkEVz4OjkPuAHxxT0Cy7bWbT71oDllhDAvl9zXxIn5BHSnCaUfO0xUhXVpwNuVmDzOE6yQETJ3MamoqL2Hrbg0VCr4hux9/2ipa4tlCTjQ2Y/YaIoID7CpCchdoOQAjrxeg0ZhpMnwxV18NHTqlxNrsdoSDDSmCdffWQwgjVI07O4h1ISIWx6oY0i1Z+9nJI001iZIw5vGopK8zACa5hfSu9my8Nog5gYOBOEoYmT8lNBaKkNuZacGAkHmXPmeeWiflM49sRO5MfyCgVvNtn6yohXs5D1QD2KUZs4mTzVBebT3vPuV7I9NFd+ZY9GT9YeH9BLuxKpYhGlnjL2HhGAvGjIcKX8315EOCpVvgwX3VE1f9PJe3K9q6LP/sFUqf8cUrbj9FhiAVp79IPJkvLUc+1hUG3iQ8X83mjQxcrCt6I50BINOLgjsfzCmnvv12g3FuRry2EBRxEultvPLRCNc2bJCPqol6kiWzs8ySOPXCYOcXqW5/6Z4DYLMTYevapkJZhErcTBuIH7rXEX4tGsdBjtGjTepcW7k2dsCElrul79czZA3AwdLEK/fuygxXR8eMCeS8Tdh4+Ba4M9TfXtAjjnR30NayTOCwyWW9IvTJeWeXKd6SilJcGVO7r546ayGWJ2G+Fltyi7RGixMplRMm8y6YfeM9k= -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-location/CONTRIBUTING.md deleted file mode 100644 index cfda1a55..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/lebawa/edit?html,output](https://jsbin.com/lebawa/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/README.md b/node_modules/@polymer/polymer/bower_components/iron-location/README.md deleted file mode 100644 index ec532cf1..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/README.md +++ /dev/null @@ -1,61 +0,0 @@ - - - -[![Build status](https://travis-ci.org/PolymerElements/iron-location.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-location) -[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/PolymerElements/iron-location) - -_[Demo and API docs](https://elements.polymer-project.org/elements/iron-location)_ - -## Changes in 2.0 -* URL Polyfill no longer a dependency. Small workaround implemented. - -## <iron-location> - -The `iron-location` element manages binding to and from the current URL. - -iron-location is the first, and lowest level element in the Polymer team's -routing system. This is a beta release of iron-location as we continue work -on higher level elements, and as such iron-location may undergo breaking -changes. - -#### Properties - -When the URL is: `/search?query=583#details` iron-location's properties will be: - -* path: `'/search'` -* query: `'query=583'` -* hash: `'details'` - -These bindings are bidirectional. Modifying them will in turn modify the URL. - -iron-location is only active while it is attached to the document. - -#### Links - -While iron-location is active in the document it will intercept clicks on links -within your site, updating the URL pushing the updated URL out through the -databinding system. iron-location only intercepts clicks with the intent to -open in the same window, so middle mouse clicks and ctrl/cmd clicks work fine. - -You can customize this behavior with the `urlSpaceRegex`. - -#### Dwell Time - -iron-location protects against accidental history spamming by only adding -entries to the user's history if the URL stays unchanged for `dwellTime` -milliseconds. - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/bower.json b/node_modules/@polymer/polymer/bower_components/iron-location/bower.json deleted file mode 100644 index 81b1a35a..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/bower.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "iron-location", - "version": "2.2.0", - "description": "Bidirectional data binding into the page's URL.", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "routing" - ], - "main": [ - "iron-location.html", - "iron-query-params.html" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-location.git" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-location", - "ignore": [], - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "promise-polyfill": "polymerlabs/promise-polyfill#1 - 2", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", - "paper-input": "polymerelements/paper-input#^1.0.0", - "paper-slider": "polymerelements/paper-slider#^1.0.0", - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "promise-polyfill": "polymerlabs/promise-polyfill#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.2.3" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/demo/index.html b/node_modules/@polymer/polymer/bower_components/iron-location/demo/index.html deleted file mode 100644 index ea1b2ed1..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/demo/index.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - iron-location - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/demo/iron-query-params.html b/node_modules/@polymer/polymer/bower_components/iron-location/demo/iron-query-params.html deleted file mode 100644 index ae3bda97..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/demo/iron-query-params.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - iron-query-params - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/index.html b/node_modules/@polymer/polymer/bower_components/iron-location/index.html deleted file mode 100644 index 8ded2107..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - iron-location - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/iron-location.d.ts b/node_modules/@polymer/polymer/bower_components/iron-location/iron-location.d.ts deleted file mode 100644 index f830703b..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/iron-location.d.ts +++ /dev/null @@ -1,135 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-location.html - */ - -/// - -/** - * The `iron-location` element manages binding to and from the current URL. - * - * iron-location is the first, and lowest level element in the Polymer team's - * routing system. This is a beta release of iron-location as we continue work - * on higher level elements, and as such iron-location may undergo breaking - * changes. - * - * #### Properties - * - * When the URL is: `/search?query=583#details` iron-location's properties will be: - * - * - path: `'/search'` - * - query: `'query=583'` - * - hash: `'details'` - * - * These bindings are bidirectional. Modifying them will in turn modify the URL. - * - * iron-location is only active while it is attached to the document. - * - * #### Links - * - * While iron-location is active in the document it will intercept clicks on links - * within your site, updating the URL pushing the updated URL out through the - * databinding system. iron-location only intercepts clicks with the intent to - * open in the same window, so middle mouse clicks and ctrl/cmd clicks work fine. - * - * You can customize this behavior with the `urlSpaceRegex`. - * - * #### Dwell Time - * - * iron-location protects against accidental history spamming by only adding - * entries to the user's history if the URL stays unchanged for `dwellTime` - * milliseconds. - */ -interface IronLocationElement extends Polymer.Element { - - /** - * The pathname component of the URL. - */ - path: string|null|undefined; - - /** - * The query string portion of the URL. - */ - query: string|null|undefined; - - /** - * The hash component of the URL. - */ - hash: string|null|undefined; - - /** - * If the user was on a URL for less than `dwellTime` milliseconds, it - * won't be added to the browser's history, but instead will be replaced - * by the next entry. - * - * This is to prevent large numbers of entries from clogging up the user's - * browser history. Disable by setting to a negative number. - */ - dwellTime: number|null|undefined; - - /** - * A regexp that defines the set of URLs that should be considered part - * of this web app. - * - * Clicking on a link that matches this regex won't result in a full page - * navigation, but will instead just update the URL state in place. - * - * This regexp is given everything after the origin in an absolute - * URL. So to match just URLs that start with /search/ do: - * url-space-regex="^/search/" - */ - urlSpaceRegex: string|RegExp|null; - - /** - * A flag that specifies whether the spaces in query that would normally be encoded as %20 should be - * encoded as +. - * - * Given an example text "hello world", it is encoded in query as - * - "hello%20world" without the parameter - * - "hello+world" with the parameter - */ - encodeSpaceAsPlusInQuery: boolean|null|undefined; - - /** - * urlSpaceRegex, but coerced into a regexp. - */ - readonly _urlSpaceRegExp: RegExp|null; - _lastChangedAt: number|null|undefined; - _initialized: boolean|null|undefined; - hostAttributes: object|null; - created(): void; - attached(): void; - detached(): void; - _hashChanged(): void; - _urlChanged(): void; - _getUrl(): any; - _updateUrl(): void; - - /** - * A necessary evil so that links work as expected. Does its best to - * bail out early if possible. - * - * @param event . - */ - _globalOnClick(event: MouseEvent|null): void; - - /** - * Returns the absolute URL of the link (if any) that this click event - * is clicking on, if we can and should override the resulting full - * page navigation. Returns null otherwise. - * - * @param event . - * @returns . - */ - _getSameOriginLinkHref(event: MouseEvent|null): string|null; - _makeRegExp(urlSpaceRegex: any): any; -} - -interface HTMLElementTagNameMap { - "iron-location": IronLocationElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/iron-location.html b/node_modules/@polymer/polymer/bower_components/iron-location/iron-location.html deleted file mode 100644 index a4997ee3..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/iron-location.html +++ /dev/null @@ -1,441 +0,0 @@ - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/iron-query-params.d.ts b/node_modules/@polymer/polymer/bower_components/iron-location/iron-query-params.d.ts deleted file mode 100644 index dcffb3e9..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/iron-query-params.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-query-params.html - */ - -/// - -interface IronQueryParamsElement extends Polymer.Element { - paramsString: string|null|undefined; - paramsObject: object|null|undefined; - _dontReact: boolean|null|undefined; - hostAttributes: object|null; - paramsStringChanged(): void; - paramsObjectChanged(): void; - _encodeParams(params: any): any; - _decodeParams(paramString: any): any; -} - -interface HTMLElementTagNameMap { - "iron-query-params": IronQueryParamsElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/iron-query-params.html b/node_modules/@polymer/polymer/bower_components/iron-location/iron-query-params.html deleted file mode 100644 index 635f5d74..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/iron-query-params.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/package.json b/node_modules/@polymer/polymer/bower_components/iron-location/package.json deleted file mode 100644 index c8534226..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/iron-location", - "private": true, - "description": "Bidirectional data binding into the page's URL.", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-location.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-location/test/index.html deleted file mode 100644 index 4fbcc504..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/test/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/test/initialization-cases.html b/node_modules/@polymer/polymer/bower_components/iron-location/test/initialization-cases.html deleted file mode 100644 index c8e3dbce..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/test/initialization-cases.html +++ /dev/null @@ -1,306 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/test/initialization-iframe.html b/node_modules/@polymer/polymer/bower_components/iron-location/test/initialization-iframe.html deleted file mode 100644 index ec12b067..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/test/initialization-iframe.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - Base source for injecting into an iframe for tests - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/test/initialization-tests.html b/node_modules/@polymer/polymer/bower_components/iron-location/test/initialization-tests.html deleted file mode 100644 index 7418169f..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/test/initialization-tests.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/test/integration.html b/node_modules/@polymer/polymer/bower_components/iron-location/test/integration.html deleted file mode 100644 index 8cbfbafc..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/test/integration.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - iron-location - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/test/iron-location-base-uri.html b/node_modules/@polymer/polymer/bower_components/iron-location/test/iron-location-base-uri.html deleted file mode 100644 index c91c8863..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/test/iron-location-base-uri.html +++ /dev/null @@ -1,534 +0,0 @@ - - - - - iron-location - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/test/iron-location.html b/node_modules/@polymer/polymer/bower_components/iron-location/test/iron-location.html deleted file mode 100644 index fd6c2e66..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/test/iron-location.html +++ /dev/null @@ -1,537 +0,0 @@ - - - - - iron-location - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/test/iron-query-params.html b/node_modules/@polymer/polymer/bower_components/iron-location/test/iron-query-params.html deleted file mode 100644 index 8b276427..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/test/iron-query-params.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - iron-location - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-location/test/redirection.html b/node_modules/@polymer/polymer/bower_components/iron-location/test/redirection.html deleted file mode 100644 index 3b21f267..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-location/test/redirection.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-media-query/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-media-query/.bower.json deleted file mode 100644 index 775b877a..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-media-query/.bower.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "iron-media-query", - "version": "2.1.0", - "description": "Lets you bind to a CSS media query", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "media" - ], - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-media-query" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-media-query", - "ignore": [], - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "Polymer/web-component-tester#^4.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "main": "iron-media-query.html", - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "_release": "2.1.0", - "_resolution": { - "type": "version", - "tag": "v2.1.0", - "commit": "3da4d24e5292d7521081686115e17d1114d284ed" - }, - "_source": "https://github.com/PolymerElements/iron-media-query.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-media-query" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-media-query/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-media-query/.github/CODEOWNERS deleted file mode 100644 index a70941e3..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-media-query/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @keanulee -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-media-query/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-media-query/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 0d32a726..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-media-query/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-media-query/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-media-query/.travis.yml deleted file mode 100644 index 68ef7a12..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-media-query/.travis.yml +++ /dev/null @@ -1,30 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -env: - global: - - secure: >- - efS1E9VC7v1KEZ9x/52vlWim9IA86zgJAgVEYNG78TDE86avKlAevDo+ULnrUWmJqp4pQibqZs1o+DbkGKaovfMpzKCFo2/SU1PjK1P/t4liz9Ia6cxi1fwbjZcqbe4DKfDJZwIFOtO8Vp26jlVdx8eaNqp7zm/S9TtmEvV8cfs= - - secure: >- - DG4SkCilGKfokTPV+/uzpJ1QNMNYAK1ZWh+1Z/Z8DGwjGoCgh9ACkBxdXvi42HDYMvdd+mixDkZ2n7+rU++G8vHn9jVHPQhu5h9OjM4rmXF1TtStA0poCmjPz5ZpoFzae4Kcjaj5YrVjdAAAS/4grYMvDY9d95OtQtOZCB1bxeQ= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-media-query/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-media-query/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-media-query/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-media-query/README.md b/node_modules/@polymer/polymer/bower_components/iron-media-query/README.md deleted file mode 100644 index 70acd691..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-media-query/README.md +++ /dev/null @@ -1,32 +0,0 @@ - - - -[![Build status](https://travis-ci.org/PolymerElements/iron-media-query.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-media-query) - -_[Demo and API docs](https://elements.polymer-project.org/elements/iron-media-query)_ - - -##<iron-media-query> - -`iron-media-query` can be used to data bind to a CSS media query. -The `query` property is a bare CSS media query. -The `query-matches` property is a boolean representing whether the page matches that media query. - -Example: - -```html - -``` - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-media-query/bower.json b/node_modules/@polymer/polymer/bower_components/iron-media-query/bower.json deleted file mode 100644 index 9ea1d8dc..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-media-query/bower.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "iron-media-query", - "version": "2.0.0", - "description": "Lets you bind to a CSS media query", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "media" - ], - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-media-query" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-media-query", - "ignore": [], - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "Polymer/web-component-tester#^4.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "main": "iron-media-query.html", - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-media-query/demo/index.html b/node_modules/@polymer/polymer/bower_components/iron-media-query/demo/index.html deleted file mode 100644 index 47b9aa47..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-media-query/demo/index.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - iron-media-query demo - - - - - - - - - - - -
-

<iron-media-query>

- - - - -
- - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-media-query/hero.svg b/node_modules/@polymer/polymer/bower_components/iron-media-query/hero.svg deleted file mode 100755 index 9b5e2a61..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-media-query/hero.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-media-query/index.html b/node_modules/@polymer/polymer/bower_components/iron-media-query/index.html deleted file mode 100644 index 0806857c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-media-query/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - iron-media-query - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-media-query/iron-media-query.d.ts b/node_modules/@polymer/polymer/bower_components/iron-media-query/iron-media-query.d.ts deleted file mode 100644 index 6ad4b4d6..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-media-query/iron-media-query.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-media-query.html - */ - -/// - -/** - * `iron-media-query` can be used to data bind to a CSS media query. - * The `query` property is a bare CSS media query. - * The `query-matches` property is a boolean representing whether the page matches that media query. - * - * Example: - * - * - */ -interface IronMediaQueryElement extends Polymer.Element { - - /** - * The Boolean return value of the media query. - */ - readonly queryMatches: boolean|null|undefined; - - /** - * The CSS media query to evaluate. - */ - query: string|null|undefined; - - /** - * If true, the query attribute is assumed to be a complete media query - * string rather than a single media feature. - */ - full: boolean|null|undefined; - _boundMQHandler: (p0: MediaQueryList|null) => any; - _mq: MediaQueryList|null; - attached(): void; - detached(): void; - _add(): void; - _remove(): void; - queryChanged(): void; - queryHandler(mq: any): void; -} - -interface HTMLElementTagNameMap { - "iron-media-query": IronMediaQueryElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-media-query/iron-media-query.html b/node_modules/@polymer/polymer/bower_components/iron-media-query/iron-media-query.html deleted file mode 100644 index 1d446fd8..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-media-query/iron-media-query.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-media-query/package.json b/node_modules/@polymer/polymer/bower_components/iron-media-query/package.json deleted file mode 100644 index cd8893e4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-media-query/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/iron-media-query", - "private": true, - "description": "Lets you bind to a CSS media query", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-media-query" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-media-query/test/basic.html b/node_modules/@polymer/polymer/bower_components/iron-media-query/test/basic.html deleted file mode 100644 index f6482382..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-media-query/test/basic.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - iron-media-query-basic - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-media-query/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-media-query/test/index.html deleted file mode 100644 index 10b94050..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-media-query/test/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - Tests - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-meta/.bower.json deleted file mode 100644 index e5b40aa5..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/.bower.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "iron-meta", - "version": "2.1.1", - "keywords": [ - "web-components", - "polymer" - ], - "license": "http://polymer.github.io/LICENSE.txt", - "description": "Useful for sharing information across a DOM tree", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-meta.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#1 - 2", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "Polymer/web-component-tester#^4.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "main": "iron-meta.html", - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "homepage": "https://github.com/PolymerElements/iron-meta", - "_release": "2.1.1", - "_resolution": { - "type": "version", - "tag": "v2.1.1", - "commit": "d9cd307d9faf2acc9e8f79a31d852c7851c35620" - }, - "_source": "https://github.com/PolymerElements/iron-meta.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-meta" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-meta/.github/CODEOWNERS deleted file mode 100644 index 0d8c0ad6..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @bicknellr -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-meta/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 2e817113..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-meta/.travis.yml deleted file mode 100644 index 3a78c402..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/.travis.yml +++ /dev/null @@ -1,33 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) - - >- - npm run format && git diff --exit-code || (echo -e '\n\033[31mERROR:\033[0m - Project is not formatted. Please run "npm run format".' && false) -env: - global: - - secure: >- - mjikUCoN+UpTbFHwbGXUoKp4vtZ2qNN1JYW79WcOik7fCFmvdFzfYQPDa6y9aJvU3kgkDndGdR/ynLG4kejZjmqTS5fYtdHEwpPVPapbVYnquJvCJKbMN4S2QpGCoq51pjKQ8U3Ys6G5HkmdcDfw3SKk1uMgVzKV7fEI+6WnZ/M= - - secure: >- - LHDnBtwK7yO2X4GNmIaAl7t85WWc1U189OiPqemD27+jTcKml0by1n9Mu/yrg94jYgeXab9mHgU3uMtIdQstNNwTDu8CgmmIP4H2EWopHrTi3KM7Z7aeofPgMJsVFXwg+WhNlcCfhEsygHZWTxjJXM4fcGOrFPDa4+BTgRa2hEE= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-meta/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/README.md b/node_modules/@polymer/polymer/bower_components/iron-meta/README.md deleted file mode 100644 index 1eecb040..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/README.md +++ /dev/null @@ -1,10 +0,0 @@ -[![Build status](https://travis-ci.org/PolymerElements/iron-meta.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-meta) -[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/PolymerElements/iron-meta) - -## <iron-meta> - -`iron-meta` is a generic element you can use for sharing information across the DOM tree. -It uses [monostate pattern](http://c2.com/cgi/wiki?MonostatePattern) such that any -instance of iron-meta has access to the shared -information. You can use `iron-meta` to share whatever you want (or create an extension -[like x-meta] for enhancements). diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/bower.json b/node_modules/@polymer/polymer/bower_components/iron-meta/bower.json deleted file mode 100644 index 9a11cc78..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/bower.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "iron-meta", - "version": "2.1.1", - "keywords": [ - "web-components", - "polymer" - ], - "license": "http://polymer.github.io/LICENSE.txt", - "description": "Useful for sharing information across a DOM tree", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-meta.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#1 - 2", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "Polymer/web-component-tester#^4.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "main": "iron-meta.html", - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/demo/index.html b/node_modules/@polymer/polymer/bower_components/iron-meta/demo/index.html deleted file mode 100644 index dcd0d43f..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/demo/index.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - iron-meta - - - - - - - -
-

<iron-meta>

-

Key Query

- - - - The value stored at key="info" is . -
- -
-

Type Query

- - - - - - - The value(s) stored at type="type1" are:
.

The value(s) stored at type="type2" are:
. -
- - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/gen-tsd.json b/node_modules/@polymer/polymer/bower_components/iron-meta/gen-tsd.json deleted file mode 100644 index 195c463f..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/gen-tsd.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "addReferences": { - "iron-meta.d.ts": [ - "iron-meta-extra.d.ts" - ] - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/hero.svg b/node_modules/@polymer/polymer/bower_components/iron-meta/hero.svg deleted file mode 100755 index ea8548dc..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/hero.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/index.html b/node_modules/@polymer/polymer/bower_components/iron-meta/index.html deleted file mode 100644 index dce83623..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - iron-meta - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/iron-meta-extra.d.ts b/node_modules/@polymer/polymer/bower_components/iron-meta/iron-meta-extra.d.ts deleted file mode 100644 index 278a7c8f..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/iron-meta-extra.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -declare namespace Polymer { - - class IronMeta { - constructor(options?: { - type: string|null|undefined, - key: string|null|undefined, - value: any, - }); - - static types: {[type: string]: {[key: string]: any}}; - - value: any; - - readonly list: any[]|undefined; - - byKey(key: string): any; - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/iron-meta.d.ts b/node_modules/@polymer/polymer/bower_components/iron-meta/iron-meta.d.ts deleted file mode 100644 index b4bc5bdd..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/iron-meta.d.ts +++ /dev/null @@ -1,85 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-meta.html - */ - -/// -/// - -/** - * `iron-meta` is a generic element you can use for sharing information across the DOM tree. - * It uses [monostate pattern](http://c2.com/cgi/wiki?MonostatePattern) such that any - * instance of iron-meta has access to the shared - * information. You can use `iron-meta` to share whatever you want (or create an extension - * [like x-meta] for enhancements). - * - * The `iron-meta` instances containing your actual data can be loaded in an import, - * or constructed in any way you see fit. The only requirement is that you create them - * before you try to access them. - * - * Examples: - * - * If I create an instance like this: - * - * - * - * Note that value="foo/bar" is the metadata I've defined. I could define more - * attributes or use child nodes to define additional metadata. - * - * Now I can access that element (and it's metadata) from any iron-meta instance - * via the byKey method, e.g. - * - * meta.byKey('info'); - * - * Pure imperative form would be like: - * - * document.createElement('iron-meta').byKey('info'); - * - * Or, in a Polymer element, you can include a meta in your template: - * - * - * ... - * this.$.meta.byKey('info'); - */ -interface IronMetaElement extends Polymer.Element { - - /** - * The type of meta-data. All meta-data of the same type is stored - * together. - */ - type: string; - - /** - * The key used to store `value` under the `type` namespace. - */ - key: string|null; - - /** - * The meta-data to store or retrieve. - */ - value: any; - - /** - * If true, `value` is set to the iron-meta instance itself. - */ - self: boolean|null|undefined; - hostAttributes: object|null; - readonly list: any; - _selfChanged(self: any): void; - - /** - * Retrieves meta data value by key. - * - * @param key The key of the meta-data to be returned. - */ - byKey(key: string): any; -} - -interface HTMLElementTagNameMap { - "iron-meta": IronMetaElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/iron-meta.html b/node_modules/@polymer/polymer/bower_components/iron-meta/iron-meta.html deleted file mode 100644 index 51f2f168..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/iron-meta.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/package.json b/node_modules/@polymer/polymer/bower_components/iron-meta/package.json deleted file mode 100644 index 981c4ba1..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "@polymer/iron-meta", - "private": true, - "description": "Useful for sharing information across a DOM tree", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-meta.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0", - "webmat": "^0.2.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir .", - "format": "webmat && npm run update-types" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/test/basic.html b/node_modules/@polymer/polymer/bower_components/iron-meta/test/basic.html deleted file mode 100644 index 9a437c3d..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/test/basic.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - iron-meta-basic - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-meta/test/index.html deleted file mode 100644 index c517baae..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/test/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - Tests - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-meta/test/iron-meta.html b/node_modules/@polymer/polymer/bower_components/iron-meta/test/iron-meta.html deleted file mode 100644 index 0a0b89cf..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-meta/test/iron-meta.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - - iron-meta - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/.bower.json deleted file mode 100644 index 1499718c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/.bower.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "name": "iron-overlay-behavior", - "version": "2.3.3", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "Provides a behavior for making an element an overlay", - "private": true, - "main": "iron-overlay-behavior.html", - "keywords": [ - "web-components", - "polymer", - "behavior", - "overlay" - ], - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-overlay-behavior.git" - }, - "dependencies": { - "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2", - "iron-fit-behavior": "PolymerElements/iron-fit-behavior#1 - 2", - "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", - "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0", - "iron-fit-behavior": "PolymerElements/iron-fit-behavior#^1.0.0", - "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", - "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "homepage": "https://github.com/PolymerElements/iron-overlay-behavior", - "_release": "2.3.3", - "_resolution": { - "type": "version", - "tag": "v2.3.3", - "commit": "72ebd02dc36d2fcf321eeb17fafdbea4b3d75ce1" - }, - "_source": "https://github.com/PolymerElements/iron-overlay-behavior.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-overlay-behavior" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/.github/CODEOWNERS deleted file mode 100644 index c5097c0c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @valdrinkoshi -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 9925d374..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/.travis.yml deleted file mode 100644 index 70cd23d2..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -env: - global: - - secure: >- - ZE4MrCc8vi6hb2WDctjBf9Y7wmYm0tbknPCX0TR+ks0eEXt2ZkWOvMGCw6sKvL1SsrUzhSOQiAc3IFCZBZ6vA1DUCo6S+4O8IvH+VawsK34arI7PIN7UhTDRmudzDwYKJHToRGVFffM1Y5vmNOBNj7hyiQp/UP0hz8vWLpQKyNw= - - secure: >- - IDwaZdFRon3lTOOZsoGXFUTJayvthgm5JTigYlOtVq6CVlJQBShveehe08fHAhb0XkpFyTFxBsricOUc2DOlyK9ds+DE9rRlIml+BuCrmvfCFvxX4loRg5tibKrRT9mrHNhJRwZiL4WbsGTskMpWGorgkO9qMJSJ9sAabjCJrmM= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/README.md b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/README.md deleted file mode 100644 index 979118cc..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/README.md +++ /dev/null @@ -1,67 +0,0 @@ -[![Build status](https://travis-ci.org/PolymerElements/iron-overlay-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-overlay-behavior) -[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/PolymerElements/iron-overlay-behavior) - -_[Demo and API docs](https://elements.polymer-project.org/elements/iron-overlay-behavior)_ - - -## Polymer.IronOverlayBehavior - -Use `Polymer.IronOverlayBehavior` to implement an element that can be hidden or shown, and displays -on top of other content. It includes an optional backdrop, and can be used to implement a variety -of UI controls including dialogs and drop downs. Multiple overlays may be displayed at once. - -See the [demo source code](https://github.com/PolymerElements/iron-overlay-behavior/blob/master/demo/simple-overlay.html) -for an example. - -### Changes in 2.0 -- Focus wrapping is not guaranteed to work for elements with `tabindex > 0`, see more details [here](https://github.com/PolymerElements/iron-overlay-behavior/pull/241). -Consider overriding [`_focusableNodes`](http://jsbin.com/siwutox/1/edit) or using the [Blocking Elements polyfill](https://github.com/PolymerLabs/blockingElements). - -### Closing and canceling - -An overlay may be hidden by closing or canceling. The difference between close and cancel is user -intent. Closing generally implies that the user acknowledged the content on the overlay. By default, -it will cancel whenever the user taps outside it or presses the escape key. This behavior is -configurable with the `no-cancel-on-esc-key` and the `no-cancel-on-outside-click` properties. -`close()` should be called explicitly by the implementer when the user interacts with a control -in the overlay element. When the dialog is canceled, the overlay fires an 'iron-overlay-canceled' -event. Call `preventDefault` on this event to prevent the overlay from closing. - -### Positioning - -By default the element is sized and positioned to fit and centered inside the window. You can -position and size it manually using CSS. See `Polymer.IronFitBehavior`. - -### Backdrop - -Set the `with-backdrop` attribute to display a backdrop behind the overlay. The backdrop is -appended to `` and is of type ``. See its doc page for styling -options. - -In addition, `with-backdrop` will wrap the focus within the content in the light DOM. -Override the [`_focusableNodes` getter](#Polymer.IronOverlayBehavior:property-_focusableNodes) -to achieve a different behavior. - -### Limitations - -The element is styled to appear on top of other content by setting its `z-index` property. You -must ensure no element has a stacking context with a higher `z-index` than its parent stacking -context. You should place this element as a child of `` whenever possible. - -## <iron-overlay-backdrop> - -`iron-overlay-backdrop` is a backdrop used by `Polymer.IronOverlayBehavior`. It should be a -singleton. - -### Styling - -The following custom properties and mixins are available for styling. - -| Custom property | Description | Default | -| --- | --- | --- | -| `--iron-overlay-backdrop-background-color` | Backdrop background color | #000 | -| `--iron-overlay-backdrop-opacity` | Backdrop opacity | 0.6 | -| `--iron-overlay-backdrop` | Mixin applied to `iron-overlay-backdrop`. | {} | -| `--iron-overlay-backdrop-opened` | Mixin applied to `iron-overlay-backdrop` when it is displayed | {} | - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/bower.json b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/bower.json deleted file mode 100644 index 7b3f2381..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/bower.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "iron-overlay-behavior", - "version": "2.3.2", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "Provides a behavior for making an element an overlay", - "private": true, - "main": "iron-overlay-behavior.html", - "keywords": [ - "web-components", - "polymer", - "behavior", - "overlay" - ], - "authors": [ - "The Polymer Authors" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-overlay-behavior.git" - }, - "dependencies": { - "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2", - "iron-fit-behavior": "PolymerElements/iron-fit-behavior#1 - 2", - "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", - "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0", - "iron-fit-behavior": "PolymerElements/iron-fit-behavior#^1.0.0", - "iron-resizable-behavior": "PolymerElements/iron-resizable-behavior#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", - "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/demo/index.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/demo/index.html deleted file mode 100644 index 61be62d0..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/demo/index.html +++ /dev/null @@ -1,325 +0,0 @@ - - - - - - - simple-overlay demo - - - - - - - - - - - - - - - - - - - - -

An element with IronOverlayBehavior can be opened, closed, toggled.

- - - - -

Use with-backdrop to add a backdrop to your overlay. Tabbing will be trapped within the overlay.

- - - - -

Use restore-focus-on-close to return the focus to the element that opened the overlay when it gets closed.

- - - - -

The child with autofocus gets focused when opening the overlay.

- - - - -

Multiple overlays can be opened.

- - - - -

Use always-on-top to keep the overlay on top of others.

- - - - -

An element with IronOverlayBehavior can be scrollable or contain scrollable content.

- - - - -

Use allow-click-through to allow click events to be handled by overlays below the top overlay.

- - - - -

Use scroll-action to lock, refit or cancel an overlay on scroll.

- - - - - - - \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/demo/simple-overlay.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/demo/simple-overlay.html deleted file mode 100644 index 04407fc9..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/demo/simple-overlay.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/index.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/index.html deleted file mode 100644 index d69e3044..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - iron-overlay-behavior - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-focusables-helper.d.ts b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-focusables-helper.d.ts deleted file mode 100644 index d1a1d411..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-focusables-helper.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-focusables-helper.html - */ - -/// - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-focusables-helper.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-focusables-helper.html deleted file mode 100644 index 840d15ef..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-focusables-helper.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-backdrop.d.ts b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-backdrop.d.ts deleted file mode 100644 index 4a3dc895..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-backdrop.d.ts +++ /dev/null @@ -1,61 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-overlay-backdrop.html - */ - -/// - -/** - * `iron-overlay-backdrop` is a backdrop used by `Polymer.IronOverlayBehavior`. It should be a - * singleton. - * - * ### Styling - * - * The following custom properties and mixins are available for styling. - * - * Custom property | Description | Default - * -------------------------------------------|------------------------|--------- - * `--iron-overlay-backdrop-background-color` | Backdrop background color | #000 - * `--iron-overlay-backdrop-opacity` | Backdrop opacity | 0.6 - * `--iron-overlay-backdrop` | Mixin applied to `iron-overlay-backdrop`. | {} - * `--iron-overlay-backdrop-opened` | Mixin applied to `iron-overlay-backdrop` when it is displayed | {} - */ -interface IronOverlayBackdropElement extends Polymer.Element { - - /** - * Returns true if the backdrop is opened. - */ - opened: boolean|null|undefined; - created(): void; - attached(): void; - - /** - * Appends the backdrop to document body if needed. - */ - prepare(): void; - - /** - * Shows the backdrop. - */ - open(): void; - - /** - * Hides the backdrop. - */ - close(): void; - - /** - * Removes the backdrop from document body if needed. - */ - complete(): void; - _onTransitionend(event: any): void; -} - -interface HTMLElementTagNameMap { - "iron-overlay-backdrop": IronOverlayBackdropElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-backdrop.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-backdrop.html deleted file mode 100644 index 8f8f3054..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-backdrop.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-behavior.d.ts b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-behavior.d.ts deleted file mode 100644 index 6db61d6f..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-behavior.d.ts +++ /dev/null @@ -1,263 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-overlay-behavior.html - */ - -/// -/// -/// -/// -/// -/// - -declare namespace Polymer { - - interface IronOverlayBehaviorImpl { - - /** - * True if the overlay is currently displayed. - */ - opened: boolean|null|undefined; - - /** - * True if the overlay was canceled when it was last closed. - */ - readonly canceled: boolean|null|undefined; - - /** - * Set to true to display a backdrop behind the overlay. It traps the focus - * within the light DOM of the overlay. - */ - withBackdrop: boolean|null|undefined; - - /** - * Set to true to disable auto-focusing the overlay or child nodes with - * the `autofocus` attribute` when the overlay is opened. - */ - noAutoFocus: boolean|null|undefined; - - /** - * Set to true to disable canceling the overlay with the ESC key. - */ - noCancelOnEscKey: boolean|null|undefined; - - /** - * Set to true to disable canceling the overlay by clicking outside it. - */ - noCancelOnOutsideClick: boolean|null|undefined; - - /** - * Contains the reason(s) this overlay was last closed (see `iron-overlay-closed`). - * `IronOverlayBehavior` provides the `canceled` reason; implementers of the - * behavior can provide other reasons in addition to `canceled`. - */ - closingReason: object|null|undefined; - - /** - * Set to true to enable restoring of focus when overlay is closed. - */ - restoreFocusOnClose: boolean|null|undefined; - - /** - * Set to true to allow clicks to go through overlays. - * When the user clicks outside this overlay, the click may - * close the overlay below. - */ - allowClickThrough: boolean|null|undefined; - - /** - * Set to true to keep overlay always on top. - */ - alwaysOnTop: boolean|null|undefined; - - /** - * Determines which action to perform when scroll outside an opened overlay happens. - * Possible values: - * lock - blocks scrolling from happening, - * refit - computes the new position on the overlay - * cancel - causes the overlay to close - */ - scrollAction: string|null|undefined; - - /** - * The node being focused. - */ - _focusedChild: Node|null; - - /** - * The backdrop element. - */ - readonly backdropElement: Element; - - /** - * Returns the node to give focus to. - */ - readonly _focusNode: Node; - - /** - * Array of nodes that can receive focus (overlay included), ordered by `tabindex`. - * This is used to retrieve which is the first and last focusable nodes in order - * to wrap the focus for overlays `with-backdrop`. - * - * If you know what is your content (specifically the first and last focusable children), - * you can override this method to return only `[firstFocusable, lastFocusable];` - */ - readonly _focusableNodes: Node[]; - ready(): void; - attached(): void; - detached(): void; - - /** - * Toggle the opened state of the overlay. - */ - toggle(): void; - - /** - * Open the overlay. - */ - open(): void; - - /** - * Close the overlay. - */ - close(): void; - - /** - * Cancels the overlay. - * - * @param event The original event - */ - cancel(event?: Event|null): void; - - /** - * Invalidates the cached tabbable nodes. To be called when any of the focusable - * content changes (e.g. a button is disabled). - */ - invalidateTabbables(): void; - _ensureSetup(): void; - - /** - * Called when `opened` changes. - */ - _openedChanged(opened?: boolean): void; - _canceledChanged(): void; - _withBackdropChanged(): void; - - /** - * tasks which must occur before opening; e.g. making the element visible. - */ - _prepareRenderOpened(): void; - - /** - * Tasks which cause the overlay to actually open; typically play an animation. - */ - _renderOpened(): void; - - /** - * Tasks which cause the overlay to actually close; typically play an animation. - */ - _renderClosed(): void; - - /** - * Tasks to be performed at the end of open action. Will fire `iron-overlay-opened`. - */ - _finishRenderOpened(): void; - - /** - * Tasks to be performed at the end of close action. Will fire `iron-overlay-closed`. - */ - _finishRenderClosed(): void; - _preparePositioning(): void; - _finishPositioning(): void; - - /** - * Applies focus according to the opened state. - */ - _applyFocus(): void; - - /** - * Cancels (closes) the overlay. Call when click happens outside the overlay. - */ - _onCaptureClick(event: Event): void; - - /** - * Keeps track of the focused child. If withBackdrop, traps focus within overlay. - */ - _onCaptureFocus(event: Event): void; - - /** - * Handles the ESC key event and cancels (closes) the overlay. - */ - _onCaptureEsc(event: Event): void; - - /** - * Handles TAB key events to track focus changes. - * Will wrap focus for overlays withBackdrop. - */ - _onCaptureTab(event: Event): void; - - /** - * Refits if the overlay is opened and not animating. - */ - _onIronResize(): void; - - /** - * Will call notifyResize if overlay is opened. - * Can be overridden in order to avoid multiple observers on the same node. - */ - _onNodesChange(): void; - } - - const IronOverlayBehaviorImpl: object; - - /** - * Use `Polymer.IronOverlayBehavior` to implement an element that can be hidden or shown, and displays - * on top of other content. It includes an optional backdrop, and can be used to implement a variety - * of UI controls including dialogs and drop downs. Multiple overlays may be displayed at once. - * - * See the [demo source code](https://github.com/PolymerElements/iron-overlay-behavior/blob/master/demo/simple-overlay.html) - * for an example. - * - * ### Closing and canceling - * - * An overlay may be hidden by closing or canceling. The difference between close and cancel is user - * intent. Closing generally implies that the user acknowledged the content on the overlay. By default, - * it will cancel whenever the user taps outside it or presses the escape key. This behavior is - * configurable with the `no-cancel-on-esc-key` and the `no-cancel-on-outside-click` properties. - * `close()` should be called explicitly by the implementer when the user interacts with a control - * in the overlay element. When the dialog is canceled, the overlay fires an 'iron-overlay-canceled' - * event. Call `preventDefault` on this event to prevent the overlay from closing. - * - * ### Positioning - * - * By default the element is sized and positioned to fit and centered inside the window. You can - * position and size it manually using CSS. See `Polymer.IronFitBehavior`. - * - * ### Backdrop - * - * Set the `with-backdrop` attribute to display a backdrop behind the overlay. The backdrop is - * appended to `` and is of type ``. See its doc page for styling - * options. - * - * In addition, `with-backdrop` will wrap the focus within the content in the light DOM. - * Override the [`_focusableNodes` getter](#Polymer.IronOverlayBehavior:property-_focusableNodes) - * to achieve a different behavior. - * - * ### Limitations - * - * The element is styled to appear on top of other content by setting its `z-index` property. You - * must ensure no element has a stacking context with a higher `z-index` than its parent stacking - * context. You should place this element as a child of `` whenever possible. - * - * - */ - interface IronOverlayBehavior extends Polymer.IronFitBehavior, Polymer.IronResizableBehavior, Polymer.IronOverlayBehaviorImpl { - } - - const IronOverlayBehavior: object; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-behavior.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-behavior.html deleted file mode 100644 index 3c89bad8..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-behavior.html +++ /dev/null @@ -1,822 +0,0 @@ - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-manager.d.ts b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-manager.d.ts deleted file mode 100644 index 1d140b20..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-manager.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-overlay-manager.html - */ - -/// -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-manager.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-manager.html deleted file mode 100644 index fe0fa6c9..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-overlay-manager.html +++ /dev/null @@ -1,383 +0,0 @@ - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-scroll-manager.d.ts b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-scroll-manager.d.ts deleted file mode 100644 index 96bbf050..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-scroll-manager.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-scroll-manager.html - */ - -/// - -declare namespace Polymer { - - /** - * The IronScrollManager is intended to provide a central source - * of authority and control over which elements in a document are currently - * allowed to scroll. - */ - namespace IronScrollManager { - - - /** - * Returns true if the provided element is "scroll locked", which is to - * say that it cannot be scrolled via pointer or keyboard interactions. - */ - function elementIsScrollLocked(element: HTMLElement): any; - - - /** - * Push an element onto the current scroll lock stack. The most recently - * pushed element and its children will be considered scrollable. All - * other elements will not be scrollable. - * - * Scroll locking is implemented as a stack so that cases such as - * dropdowns within dropdowns are handled well. - */ - function pushScrollLock(element: HTMLElement): void; - - - /** - * Remove an element from the scroll lock stack. The element being - * removed does not need to be the most recently pushed element. However, - * the scroll lock constraints only change when the most recently pushed - * element is removed. - */ - function removeScrollLock(element: HTMLElement): void; - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-scroll-manager.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-scroll-manager.html deleted file mode 100644 index af958cf2..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/iron-scroll-manager.html +++ /dev/null @@ -1,388 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/package.json b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/package.json deleted file mode 100644 index e2dbc54c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/iron-overlay-behavior", - "private": true, - "description": "Provides a behavior for making an element an overlay", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-overlay-behavior.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/index.html deleted file mode 100644 index ac4532ca..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/index.html +++ /dev/null @@ -1,37 +0,0 @@ - - - iron-overlay-behavior tests - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/iron-focusables-helper.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/iron-focusables-helper.html deleted file mode 100644 index ef0135f1..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/iron-focusables-helper.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - iron-focusables-helper tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/iron-overlay-backdrop.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/iron-overlay-backdrop.html deleted file mode 100644 index 89c2e9af..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/iron-overlay-backdrop.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - iron-overlay-backdrop tests - - - - - - - - - - - - - - - - - -
- - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/iron-overlay-behavior-scroll-actions.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/iron-overlay-behavior-scroll-actions.html deleted file mode 100644 index 84ef1c1d..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/iron-overlay-behavior-scroll-actions.html +++ /dev/null @@ -1,371 +0,0 @@ - - - - - - - iron-overlay-behavior tests - - - - - - - - - - - - - - - - - -
- This element makes the page scrollable. -
- - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/iron-overlay-behavior.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/iron-overlay-behavior.html deleted file mode 100644 index 8a0cc0f4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/iron-overlay-behavior.html +++ /dev/null @@ -1,1424 +0,0 @@ - - - - - - - iron-overlay-behavior tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/iron-scroll-manager.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/iron-scroll-manager.html deleted file mode 100644 index 04aa8742..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/iron-scroll-manager.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - iron-dropdown-scroll-manager tests - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-buttons-wrapper.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-buttons-wrapper.html deleted file mode 100644 index 67705f51..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-buttons-wrapper.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-buttons.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-buttons.html deleted file mode 100644 index 673df06d..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-buttons.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-menu-button.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-menu-button.html deleted file mode 100644 index 24c78d90..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-menu-button.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-overlay.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-overlay.html deleted file mode 100644 index b5431ce5..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-overlay.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-overlay2.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-overlay2.html deleted file mode 100644 index 07f4d54f..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-overlay2.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-scrollable.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-scrollable.html deleted file mode 100644 index c24220c9..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/test-scrollable.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/x-scrollable-element.html b/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/x-scrollable-element.html deleted file mode 100644 index 0cffe52a..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-overlay-behavior/test/x-scrollable-element.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/.bower.json deleted file mode 100644 index 0b2a011b..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/.bower.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "iron-resizable-behavior", - "version": "2.1.0", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "Coordinates the flow of resizeable elements", - "private": true, - "main": "iron-resizable-behavior.html", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "iron", - "behavior" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-resizable-behavior.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "homepage": "https://github.com/PolymerElements/iron-resizable-behavior", - "_release": "2.1.0", - "_resolution": { - "type": "version", - "tag": "v2.1.0", - "commit": "806e0807bd4253f446f8be624acf853069e36919" - }, - "_source": "https://github.com/PolymerElements/iron-resizable-behavior.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-resizable-behavior" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/.github/CODEOWNERS deleted file mode 100644 index c5097c0c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @valdrinkoshi -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index b890b594..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/.travis.yml deleted file mode 100644 index c7d472cd..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -env: - global: - - secure: >- - Bsp8pa19FCij3Eee0P5eOE8ZrbylrYL99R9EIxH6rcDH+rxMhK0BIfSiXTPSFRk2iqJp++RIZN8kUu5GddetiXreRZDtnhXBA2QoYteIAS8Hzy9u2EggqI0UdGqbCiFHDVD/rEQyhSPiIfWHGCg/Moeo9J2k/eC2w6I8I9C15Zw= - - secure: >- - j9xIW/banUkkNaLrWVGcTsasAp64zEmZJQO+eY8ExINx3uLbDh5h6Foc7xWhJ4Yu7aey3+nH5BWKYimtPTYoXUD2nIWU31yBNbqU/+G6vIppDbgPHMRcVnRiO7YZ0yW1JunvKs+1lOPhOw4ibztJjGkQ2ZK9q6ZSJvQKRbo6Au0= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/README.md b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/README.md deleted file mode 100644 index 7ff2e12a..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/README.md +++ /dev/null @@ -1,22 +0,0 @@ -[![Build status](https://travis-ci.org/PolymerElements/iron-resizable-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-resizable-behavior) - -_[Demo and API docs](https://elements.polymer-project.org/elements/iron-resizable-behavior)_ - - -## Polymer.IronResizableBehavior - -`IronResizableBehavior` is a behavior that can be used in Polymer elements to -coordinate the flow of resize events between "resizers" (elements that control the -size or hidden state of their children) and "resizables" (elements that need to be -notified when they are resized or un-hidden by their parents in order to take -action on their new measurements). - -Elements that perform measurement should add the `IronResizableBehavior` behavior to -their element definition and listen for the `iron-resize` event on themselves. -This event will be fired when they become showing after having been hidden, -when they are resized explicitly by another resizable, or when the window has been -resized. - -Note, the `iron-resize` event is non-bubbling. - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/bower.json b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/bower.json deleted file mode 100644 index 845aeb98..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/bower.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "iron-resizable-behavior", - "version": "2.0.1", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "Coordinates the flow of resizeable elements", - "private": true, - "main": "iron-resizable-behavior.html", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "iron", - "behavior" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-resizable-behavior.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/demo/index.html b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/demo/index.html deleted file mode 100644 index 2896c50d..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/demo/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - iron-resizable-behavior demo - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/demo/src/x-app.html b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/demo/src/x-app.html deleted file mode 100644 index c4bfa67f..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/demo/src/x-app.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/index.html b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/index.html deleted file mode 100644 index b9b88095..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - iron-resizable-behavior - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/iron-resizable-behavior.d.ts b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/iron-resizable-behavior.d.ts deleted file mode 100644 index 3c2128fb..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/iron-resizable-behavior.d.ts +++ /dev/null @@ -1,83 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-resizable-behavior.html - */ - -/// - -declare namespace Polymer { - - /** - * `IronResizableBehavior` is a behavior that can be used in Polymer elements to - * coordinate the flow of resize events between "resizers" (elements that control the - * size or hidden state of their children) and "resizables" (elements that need to be - * notified when they are resized or un-hidden by their parents in order to take - * action on their new measurements). - * - * Elements that perform measurement should add the `IronResizableBehavior` behavior to - * their element definition and listen for the `iron-resize` event on themselves. - * This event will be fired when they become showing after having been hidden, - * when they are resized explicitly by another resizable, or when the window has been - * resized. - * - * Note, the `iron-resize` event is non-bubbling. - */ - interface IronResizableBehavior { - - /** - * The closest ancestor element that implements `IronResizableBehavior`. - */ - _parentResizable: object|null|undefined; - - /** - * True if this element is currently notifying its descendant elements of - * resize. - */ - _notifyingDescendant: boolean|null|undefined; - created(): void; - attached(): void; - detached(): void; - - /** - * Can be called to manually notify a resizable and its descendant - * resizables of a resize change. - */ - notifyResize(): void; - - /** - * Used to assign the closest resizable ancestor to this resizable - * if the ancestor detects a request for notifications. - */ - assignParentResizable(parentResizable: any): void; - - /** - * Used to remove a resizable descendant from the list of descendants - * that should be notified of a resize change. - */ - stopResizeNotificationsFor(target: any): void; - - /** - * This method can be overridden to filter nested elements that should or - * should not be notified by the current element. Return true if an element - * should be notified, or false if it should not be notified. - * - * @param element A candidate descendant element that - * implements `IronResizableBehavior`. - * @returns True if the `element` should be notified of resize. - */ - resizerShouldNotify(element: HTMLElement|null): boolean; - _onDescendantIronResize(event: any): void; - _fireResize(): void; - _onIronRequestResizeNotifications(event: any): void; - _parentResizableChanged(parentResizable: any): void; - _notifyDescendant(descendant: any): void; - _requestResizeNotifications(): void; - } - - const IronResizableBehavior: object; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/iron-resizable-behavior.html b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/iron-resizable-behavior.html deleted file mode 100644 index d77dde9c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/iron-resizable-behavior.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/package.json b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/package.json deleted file mode 100644 index 5cbb08c4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/iron-resizable-behavior", - "private": true, - "description": "Coordinates the flow of resizeable elements", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-resizable-behavior.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/basic.html b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/basic.html deleted file mode 100644 index 989f282c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/basic.html +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - - iron-resizable-behavior tests - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/imports.html b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/imports.html deleted file mode 100644 index 8b30f620..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/imports.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - iron-resizable-behavior tests - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/index.html deleted file mode 100644 index 578b0302..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/index.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - Tests - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/iron-resizable-behavior.html b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/iron-resizable-behavior.html deleted file mode 100644 index 1e8866a6..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/iron-resizable-behavior.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - iron-resizable-behavior tests - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/test-elements.html b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/test-elements.html deleted file mode 100644 index d77b7656..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/test-elements.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/x-resizable.html b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/x-resizable.html deleted file mode 100644 index 0d6d6d1d..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/x-resizable.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/x-resizer-parent.html b/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/x-resizer-parent.html deleted file mode 100644 index 9643bae5..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-resizable-behavior/test/x-resizer-parent.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/.bower.json deleted file mode 100644 index 30e61e77..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/.bower.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "iron-scroll-target-behavior", - "version": "2.1.0", - "description": "Allows to define a scroller target", - "private": true, - "license": "http://polymer.github.io/LICENSE.txt", - "main": "iron-scroll-target-behavior.html", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "scroll" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-scroll-target-behavior.git" - }, - "homepage": "https://github.com/PolymerElements/iron-scroll-target-behavior", - "ignore": [], - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "_release": "2.1.0", - "_resolution": { - "type": "version", - "tag": "v2.1.0", - "commit": "108412b68980ad784cd8d473fb446eb985d57e91" - }, - "_source": "https://github.com/PolymerElements/iron-scroll-target-behavior.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-scroll-target-behavior" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/.github/CODEOWNERS deleted file mode 100644 index a70941e3..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @keanulee -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index c430c402..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/.travis.yml deleted file mode 100644 index 329f8e7a..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/.travis.yml +++ /dev/null @@ -1,30 +0,0 @@ -language: node_js -node_js: stable -addons: - firefox: latest - sauce_connect: true - apt: - sources: - - google-chrome - packages: - - google-chrome-stable -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -env: - global: - - secure: >- - XVL/8kp3Mec8cVExKXhFaWVK/LRdxcXlqG/C9nwo+BZoVww+4yyI849mRxYui2s/Y9eOk8ymIMi/LK/p9XEkGjupag5dPDZ1m2LfwQ6RItBAftF4sMZQbJ6CoNuTTYoc1sSANMZD3NjbMXGTdShncUoYGvuF9EART6BYcmCulxFit4P9W9iY10TyEkzNpi/CHtudhbMrw0kquie7jYzeROS1Ko1z+RlqMEHc1+aVYVWKrAwONzMI8XpNYO+F2RE/5zdzxMC3gB6+KMaX6k0s971vpdMydjbkoLTOvYrL8/ah+v134hkBM90F1ilkbIm115zJCdMwHLO23WsOyOjFSQXwH/ZvzAAyGxAxAbG+dQw7xYwXVGL4S0bOuL721+frv0CtvwNGyhg7opGNiJzEMKZyRnZH0jIvznzxGJt0Z7g4YcM/E/lmFUmeIXUkmyjQ7Hi7HQiWOCBGpdQIbsLKQgOOeWM8t3bJGmO1f6Qel8fwtoO03MgAbq8H1gqchDaa/r4UHNvx8z3VYXlIUpjdbqZTuA4Jws5rOYcN0QO/LLthgs+Rc7lTDtbCS9yY54kg/OLtfyX7kKFh2apXBG5kMBf0pxfPF2CvnBzxUGff5PhcfIA0XBMjrpq2D5+40gNBwqaJrDY1Hlxj3YuDQIRkCTMimilOiu7R7rGokMdC5G0= - - secure: >- - gT1TAwHroUpQiQC5m+Le7TAybLn6ULv9coCsXxVEinvddcwXGksJoSSh7zMrKn0uiEj+9LGhb+clUZ2fILUWYfkiIhsoNuwGF5oqAHvbsl4ACF2dBewy2F9PnBtUM9u78I7iJEDYwJoAiGmAOzSe1MShZVzgua3V8WA+A7jfI9VlczcK8Bbc5zTB+j56//Pfx7rWmaMHfs+iGRobdER7AJkywwFxGpPcWIiwtjbzBrDTOkd98hR5DuHN8R8tb7earrhXk2jax6OUrVizo0owg35LpSSUtehOap5FvnM1BHXGeJa4PIU9leXOOFNiVPyzXstDfmt4C4ZavTlS8ZPus9yLktJnEqiEXCd2wdzOX7IDqnGcVlsQqq5BdQirglv6oMrFKSZyRX3Jcex089x2RmPXB+GYbsI5Dg+P+WgbxdkcFCfxiAYStrkZDyECYuOVkCCquZ/nfilMun+FzaOjQxRF0dAorT3CCCs7pytZc5dRMMYEFjOebidacMOSBzJgHu9VFijxb45SoU6GL9/iBAwksbR/bljpBdQPJZBNwDiQz63cJ7Jug6Y3PaXd2zdL9/Uvu7215mYHQFRDjHBm+0ldCS4L9LGDyEtpipX/uQaUYCtHNWzlhmhwj/5DLCSvzRfGzz8pLix93kssb5Tc7cYD+JBLW+jb8aKewZLhBQc= -dist: trusty -sudo: required diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/README.md b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/README.md deleted file mode 100644 index d7861f80..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/README.md +++ /dev/null @@ -1,28 +0,0 @@ - - - -[![Build status](https://travis-ci.org/PolymerElements/iron-scroll-target-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-scroll-target-behavior) - -_[Demo and API docs](https://elements.polymer-project.org/elements/iron-scroll-target-behavior)_ - - -##Polymer.IronScrollTargetBehavior - -`Polymer.IronScrollTargetBehavior` allows an element to respond to scroll events from a -designated scroll target. - -Elements that consume this behavior can override the `_scrollHandler` -method to add logic on the scroll event. - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/bower.json b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/bower.json deleted file mode 100644 index 8a9bd7d2..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/bower.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "iron-scroll-target-behavior", - "version": "2.0.0", - "description": "Allows to define a scroller target", - "private": true, - "license": "http://polymer.github.io/LICENSE.txt", - "main": "iron-scroll-target-behavior.html", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "scroll" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-scroll-target-behavior.git" - }, - "homepage": "https://github.com/PolymerElements/iron-scroll-target-behavior", - "ignore": [], - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/demo/document.html b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/demo/document.html deleted file mode 100644 index a5f45f79..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/demo/document.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - iron-scroll-target-behavior using the document scrolling - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/demo/scrolling-region.html b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/demo/scrolling-region.html deleted file mode 100644 index d60a1cf9..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/demo/scrolling-region.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - iron-scroll-target-behavior using a scrolling region - - - - - - - - - - - - - -
- -
- - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/demo/x-scrollable.html b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/demo/x-scrollable.html deleted file mode 100644 index 05a28a8d..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/demo/x-scrollable.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/index.html b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/index.html deleted file mode 100644 index e48685ab..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/index.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - iron-scroll-target-behavior - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/iron-scroll-target-behavior.d.ts b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/iron-scroll-target-behavior.d.ts deleted file mode 100644 index 60281ab9..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/iron-scroll-target-behavior.d.ts +++ /dev/null @@ -1,124 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-scroll-target-behavior.html - */ - -/// - -declare namespace Polymer { - - /** - * `Polymer.IronScrollTargetBehavior` allows an element to respond to scroll events from a - * designated scroll target. - * - * Elements that consume this behavior can override the `_scrollHandler` - * method to add logic on the scroll event. - */ - interface IronScrollTargetBehavior { - - /** - * Specifies the element that will handle the scroll event - * on the behalf of the current element. This is typically a reference to an element, - * but there are a few more posibilities: - * - * ### Elements id - * - * ```html - *
- * - * - * - *
- * ``` - * In this case, the `scrollTarget` will point to the outer div element. - * - * ### Document scrolling - * - * For document scrolling, you can use the reserved word `document`: - * - * ```html - * - * - * - * ``` - * - * ### Elements reference - * - * ```js - * appHeader.scrollTarget = document.querySelector('#scrollable-element'); - * ``` - */ - scrollTarget: HTMLElement|null; - - /** - * True if the event listener should be installed. - * - */ - _shouldHaveListener: boolean; - - /** - * The default scroll target. Consumers of this behavior may want to customize - * the default scroll target. - */ - readonly _defaultScrollTarget: any; - - /** - * Shortcut for the document element - */ - readonly _doc: any; - - /** - * Gets the number of pixels that the content of an element is scrolled upward. - */ - _scrollTop: any; - - /** - * Gets the number of pixels that the content of an element is scrolled to the left. - */ - _scrollLeft: any; - - /** - * Gets the width of the scroll target. - */ - readonly _scrollTargetWidth: any; - - /** - * Gets the height of the scroll target. - */ - readonly _scrollTargetHeight: any; - _scrollTargetChanged(scrollTarget: any, isAttached: any): void; - - /** - * Runs on every scroll event. Consumer of this behavior may override this method. - */ - _scrollHandler(): void; - - /** - * Scrolls the content to a particular place. - * - * @param left The left position - * @param top The top position - */ - scroll(left: number, top: number): void; - - /** - * Returns true if the scroll target is a valid HTMLElement. - */ - _isValidScrollTarget(): boolean; - _toggleScrollListener(yes: any, scrollTarget: any): void; - - /** - * Enables or disables the scroll event listener. - * - * @param yes True to add the event, False to remove it. - */ - toggleScrollListener(yes: boolean): void; - } - - const IronScrollTargetBehavior: object; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/iron-scroll-target-behavior.html b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/iron-scroll-target-behavior.html deleted file mode 100644 index 0f57a228..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/iron-scroll-target-behavior.html +++ /dev/null @@ -1,264 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/package.json b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/package.json deleted file mode 100644 index 1052317c..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/iron-scroll-target-behavior", - "private": true, - "description": "Allows to define a scroller target", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-scroll-target-behavior.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/test/basic.html b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/test/basic.html deleted file mode 100644 index 7c054b21..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/test/basic.html +++ /dev/null @@ -1,320 +0,0 @@ - - - - - - iron-scroll-target-behavior test - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/test/index.html deleted file mode 100644 index 743d7723..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/test/index.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - Tests - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/test/x-nested-scrollable.html b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/test/x-nested-scrollable.html deleted file mode 100644 index dc27abbf..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/test/x-nested-scrollable.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/test/x-scrollable.html b/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/test/x-scrollable.html deleted file mode 100644 index e10a86a8..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-scroll-target-behavior/test/x-scrollable.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/.bower.json b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/.bower.json deleted file mode 100644 index 7ba23462..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/.bower.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "name": "iron-validatable-behavior", - "version": "2.1.0", - "description": "Provides a behavior for an element that validates user input", - "authors": "The Polymer Authors", - "keywords": [ - "web-components", - "polymer", - "iron", - "behavior" - ], - "main": "iron-validatable-behavior.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-validatable-behavior.git" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-validatable-behavior", - "ignore": [], - "dependencies": { - "iron-meta": "PolymerElements/iron-meta#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "iron-validator-behavior": "PolymerElements/iron-validator-behavior#1 - 2", - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "iron-meta": "PolymerElements/iron-meta#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "iron-validator-behavior": "PolymerElements/iron-validator-behavior#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.4", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "^4.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "_release": "2.1.0", - "_resolution": { - "type": "version", - "tag": "v2.1.0", - "commit": "4b6c1c53e44a3bbb31fcfd14ede2234645518c96" - }, - "_source": "https://github.com/PolymerElements/iron-validatable-behavior.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/iron-validatable-behavior" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/.github/CODEOWNERS deleted file mode 100644 index cc86f1ec..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @notwaldorf -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index a69a2fdc..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/.travis.yml b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/.travis.yml deleted file mode 100644 index 1a087977..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/.travis.yml +++ /dev/null @@ -1,30 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -env: - global: - - secure: >- - kwLs1FMf/hBnbxItbOJzbIdGtPDK2R2dngleJPgXLW9ExzpGHPgOmWsvxWL2BzlxlzZgzwpmUhnnJdxHlo8AZtQl1uq6NWl/e3oj9oeenFugF60eIcd01ak4QmhBsk3/20O426QQsz2WckGZRGcudBz5Zj2it3t5cbH3pAi90jo= - - secure: >- - hGl3bsjz9dbKTA/bAgfdrFMlT6VawxFljIPqX6zJD556jhpYxtkno278eIW8uLlIGC5nXRTWXQzWrRhN8i9osnqw1RFhW8C9lH+TLHEkYMvDnEOp9sZ8Amv6j8FdNibcDP8IPTo2PmIRwBK1nFp0VqhcQu/Eq7WUFolSns9E27k= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/README.md b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/README.md deleted file mode 100644 index 97032e89..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/README.md +++ /dev/null @@ -1,46 +0,0 @@ - - - -[![Build status](https://travis-ci.org/PolymerElements/iron-validatable-behavior.svg?branch=master)](https://travis-ci.org/PolymerElements/iron-validatable-behavior) - -_[Demo and API docs](https://elements.polymer-project.org/elements/iron-validatable-behavior)_ - - -## Polymer.IronValidatableBehavior - -`Use Polymer.IronValidatableBehavior` to implement an element that validates user input. -Use the related `Polymer.IronValidatorBehavior` to add custom validation logic to an iron-input. - -By default, an `` element validates its fields when the user presses the submit button. -To validate a form imperatively, call the form's `validate()` method, which in turn will -call `validate()` on all its children. By using `Polymer.IronValidatableBehavior`, your -custom element will get a public `validate()`, which -will return the validity of the element, and a corresponding `invalid` attribute, -which can be used for styling. - -To implement the custom validation logic of your element, you must override -the protected `_getValidity()` method of this behaviour, rather than `validate()`. -See [this](https://github.com/PolymerElements/iron-form/blob/master/demo/simple-element.html) -for an example. - -### Changes in 2.0 -- `validate()` no longer requires a `value` parameter to be passed, and will use the element's `value` property if it exists -- `validatorType` and `validatorName` were unused and have been removed - -### Accessibility - -Changing the `invalid` property, either manually or by calling `validate()` will update the -`aria-invalid` attribute. - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/bower.json b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/bower.json deleted file mode 100644 index a2ae6cff..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/bower.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "iron-validatable-behavior", - "version": "2.0.0", - "description": "Provides a behavior for an element that validates user input", - "authors": "The Polymer Authors", - "keywords": [ - "web-components", - "polymer", - "iron", - "behavior" - ], - "main": "iron-validatable-behavior.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-validatable-behavior.git" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-validatable-behavior", - "ignore": [], - "dependencies": { - "iron-meta": "PolymerElements/iron-meta#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "iron-validator-behavior": "PolymerElements/iron-validator-behavior#1 - 2", - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "iron-meta": "PolymerElements/iron-meta#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "iron-validator-behavior": "PolymerElements/iron-validator-behavior#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.4", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", - "web-component-tester": "^4.0.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/demo/cats-only.html b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/demo/cats-only.html deleted file mode 100644 index 83ef9ba6..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/demo/cats-only.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/demo/index.html b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/demo/index.html deleted file mode 100644 index 3ea883a5..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/demo/index.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - iron-validatable-behavior demo - - - - - - - - - - - - - -
-

The cats-only validator only accepts the string "cats" and - its suffixes ("c", "ca", "cat").

- - - -
- - diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/demo/validatable-input.html b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/demo/validatable-input.html deleted file mode 100644 index 82803f04..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/demo/validatable-input.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/index.html b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/index.html deleted file mode 100644 index cfaa5b17..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - iron-validatable-behavior - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/iron-validatable-behavior.d.ts b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/iron-validatable-behavior.d.ts deleted file mode 100644 index e29ab43b..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/iron-validatable-behavior.d.ts +++ /dev/null @@ -1,78 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * iron-validatable-behavior.html - */ - -/// -/// - -declare namespace Polymer { - - /** - * `Use Polymer.IronValidatableBehavior` to implement an element that validates user input. - * Use the related `Polymer.IronValidatorBehavior` to add custom validation logic to an iron-input. - * - * By default, an `` element validates its fields when the user presses the submit button. - * To validate a form imperatively, call the form's `validate()` method, which in turn will - * call `validate()` on all its children. By using `Polymer.IronValidatableBehavior`, your - * custom element will get a public `validate()`, which - * will return the validity of the element, and a corresponding `invalid` attribute, - * which can be used for styling. - * - * To implement the custom validation logic of your element, you must override - * the protected `_getValidity()` method of this behaviour, rather than `validate()`. - * See [this](https://github.com/PolymerElements/iron-form/blob/master/demo/simple-element.html) - * for an example. - * - * ### Accessibility - * - * Changing the `invalid` property, either manually or by calling `validate()` will update the - * `aria-invalid` attribute. - */ - interface IronValidatableBehavior { - - /** - * Name of the validator to use. - */ - validator: string|null|undefined; - - /** - * True if the last call to `validate` is invalid. - */ - invalid: boolean|null|undefined; - - /** - * Recompute this every time it's needed, because we don't know if the - * underlying IronValidatableBehaviorMeta has changed. - */ - readonly _validator: any; - registered(): void; - _invalidChanged(): void; - - /** - * @returns True if the validator `validator` exists. - */ - hasValidator(): boolean; - - /** - * Returns true if the `value` is valid, and updates `invalid`. If you want - * your element to have custom validation logic, do not override this method; - * override `_getValidity(value)` instead. - * - * @param value Deprecated: The value to be validated. By default, - * it is passed to the validator's `validate()` function, if a validator is set. - * If this argument is not specified, then the element's `value` property - * is used, if it exists. - * @returns True if `value` is valid. - */ - validate(value: object|null): boolean; - _getValidity(value: any): any; - } - - const IronValidatableBehavior: object; -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/iron-validatable-behavior.html b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/iron-validatable-behavior.html deleted file mode 100644 index 646079ff..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/iron-validatable-behavior.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/package.json b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/package.json deleted file mode 100644 index 2e01f447..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/iron-validatable-behavior", - "private": true, - "description": "Provides a behavior for an element that validates user input", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-validatable-behavior.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/test/cats-only.html b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/test/cats-only.html deleted file mode 100644 index f1669936..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/test/cats-only.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/test/dogs-only.html b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/test/dogs-only.html deleted file mode 100644 index 1b462a41..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/test/dogs-only.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/test/index.html b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/test/index.html deleted file mode 100644 index 46af3764..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/test/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - iron-validatable-behavior tests - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/test/iron-validatable-behavior.html b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/test/iron-validatable-behavior.html deleted file mode 100644 index a8040ef4..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/test/iron-validatable-behavior.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - iron-validatable-behavior tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/test/test-validatable.html b/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/test/test-validatable.html deleted file mode 100644 index abe613e1..00000000 --- a/node_modules/@polymer/polymer/bower_components/iron-validatable-behavior/test/test-validatable.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/lodash/.bower.json b/node_modules/@polymer/polymer/bower_components/lodash/.bower.json deleted file mode 100644 index a8f9c474..00000000 --- a/node_modules/@polymer/polymer/bower_components/lodash/.bower.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "lodash", - "main": "lodash.js", - "ignore": [ - ".*", - "*.custom.*", - "*.log", - "*.map", - "*.md", - "lodash.src.js", - "component.json", - "package.json", - "doc", - "node_modules", - "perf", - "test", - "vendor" - ], - "homepage": "https://github.com/lodash/lodash", - "version": "3.10.1", - "_release": "3.10.1", - "_resolution": { - "type": "version", - "tag": "3.10.1", - "commit": "ef20b4290cc4fe7551c82a552ea7ffa76548eec8" - }, - "_source": "https://github.com/lodash/lodash.git", - "_target": "^3.7.0", - "_originalSource": "lodash" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/lodash/LICENSE b/node_modules/@polymer/polymer/bower_components/lodash/LICENSE deleted file mode 100644 index 9cd87e5d..00000000 --- a/node_modules/@polymer/polymer/bower_components/lodash/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright 2012-2015 The Dojo Foundation -Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -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/@polymer/polymer/bower_components/lodash/bower.json b/node_modules/@polymer/polymer/bower_components/lodash/bower.json deleted file mode 100644 index 23c39057..00000000 --- a/node_modules/@polymer/polymer/bower_components/lodash/bower.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "lodash", - "main": "lodash.js", - "ignore": [ - ".*", - "*.custom.*", - "*.log", - "*.map", - "*.md", - "lodash.src.js", - "component.json", - "package.json", - "doc", - "node_modules", - "perf", - "test", - "vendor" - ] -} diff --git a/node_modules/@polymer/polymer/bower_components/lodash/lodash.js b/node_modules/@polymer/polymer/bower_components/lodash/lodash.js deleted file mode 100644 index d1f45b6e..00000000 --- a/node_modules/@polymer/polymer/bower_components/lodash/lodash.js +++ /dev/null @@ -1,12352 +0,0 @@ -/** - * @license - * lodash 3.10.1 (Custom Build) - * Build: `lodash modern -o ./lodash.js` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ -;(function() { - - /** Used as a safe reference for `undefined` in pre-ES5 environments. */ - var undefined; - - /** Used as the semantic version number. */ - var VERSION = '3.10.1'; - - /** Used to compose bitmasks for wrapper metadata. */ - var BIND_FLAG = 1, - BIND_KEY_FLAG = 2, - CURRY_BOUND_FLAG = 4, - CURRY_FLAG = 8, - CURRY_RIGHT_FLAG = 16, - PARTIAL_FLAG = 32, - PARTIAL_RIGHT_FLAG = 64, - ARY_FLAG = 128, - REARG_FLAG = 256; - - /** Used as default options for `_.trunc`. */ - var DEFAULT_TRUNC_LENGTH = 30, - DEFAULT_TRUNC_OMISSION = '...'; - - /** Used to detect when a function becomes hot. */ - var HOT_COUNT = 150, - HOT_SPAN = 16; - - /** Used as the size to enable large array optimizations. */ - var LARGE_ARRAY_SIZE = 200; - - /** Used to indicate the type of lazy iteratees. */ - var LAZY_FILTER_FLAG = 1, - LAZY_MAP_FLAG = 2; - - /** Used as the `TypeError` message for "Functions" methods. */ - var FUNC_ERROR_TEXT = 'Expected a function'; - - /** Used as the internal argument placeholder. */ - var PLACEHOLDER = '__lodash_placeholder__'; - - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - funcTag = '[object Function]', - mapTag = '[object Map]', - numberTag = '[object Number]', - objectTag = '[object Object]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - weakMapTag = '[object WeakMap]'; - - var arrayBufferTag = '[object ArrayBuffer]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; - - /** Used to match empty string literals in compiled template source. */ - var reEmptyStringLeading = /\b__p \+= '';/g, - reEmptyStringMiddle = /\b(__p \+=) '' \+/g, - reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; - - /** Used to match HTML entities and HTML characters. */ - var reEscapedHtml = /&(?:amp|lt|gt|quot|#39|#96);/g, - reUnescapedHtml = /[&<>"'`]/g, - reHasEscapedHtml = RegExp(reEscapedHtml.source), - reHasUnescapedHtml = RegExp(reUnescapedHtml.source); - - /** Used to match template delimiters. */ - var reEscape = /<%-([\s\S]+?)%>/g, - reEvaluate = /<%([\s\S]+?)%>/g, - reInterpolate = /<%=([\s\S]+?)%>/g; - - /** Used to match property names within property paths. */ - var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/, - reIsPlainProp = /^\w*$/, - rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g; - - /** - * Used to match `RegExp` [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns) - * and those outlined by [`EscapeRegExpPattern`](http://ecma-international.org/ecma-262/6.0/#sec-escaperegexppattern). - */ - var reRegExpChars = /^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g, - reHasRegExpChars = RegExp(reRegExpChars.source); - - /** Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). */ - var reComboMark = /[\u0300-\u036f\ufe20-\ufe23]/g; - - /** Used to match backslashes in property paths. */ - var reEscapeChar = /\\(\\)?/g; - - /** Used to match [ES template delimiters](http://ecma-international.org/ecma-262/6.0/#sec-template-literal-lexical-components). */ - var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; - - /** Used to match `RegExp` flags from their coerced string values. */ - var reFlags = /\w*$/; - - /** Used to detect hexadecimal string values. */ - var reHasHexPrefix = /^0[xX]/; - - /** Used to detect host constructors (Safari > 5). */ - var reIsHostCtor = /^\[object .+?Constructor\]$/; - - /** Used to detect unsigned integer values. */ - var reIsUint = /^\d+$/; - - /** Used to match latin-1 supplementary letters (excluding mathematical operators). */ - var reLatin1 = /[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g; - - /** Used to ensure capturing order of template delimiters. */ - var reNoMatch = /($^)/; - - /** Used to match unescaped characters in compiled string literals. */ - var reUnescapedString = /['\n\r\u2028\u2029\\]/g; - - /** Used to match words to create compound words. */ - var reWords = (function() { - var upper = '[A-Z\\xc0-\\xd6\\xd8-\\xde]', - lower = '[a-z\\xdf-\\xf6\\xf8-\\xff]+'; - - return RegExp(upper + '+(?=' + upper + lower + ')|' + upper + '?' + lower + '|' + upper + '+|[0-9]+', 'g'); - }()); - - /** Used to assign default `context` object properties. */ - var contextProps = [ - 'Array', 'ArrayBuffer', 'Date', 'Error', 'Float32Array', 'Float64Array', - 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Math', 'Number', - 'Object', 'RegExp', 'Set', 'String', '_', 'clearTimeout', 'isFinite', - 'parseFloat', 'parseInt', 'setTimeout', 'TypeError', 'Uint8Array', - 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap' - ]; - - /** Used to make template sourceURLs easier to identify. */ - var templateCounter = -1; - - /** Used to identify `toStringTag` values of typed arrays. */ - var typedArrayTags = {}; - typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = - typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = - typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = - typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = - typedArrayTags[uint32Tag] = true; - typedArrayTags[argsTag] = typedArrayTags[arrayTag] = - typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = - typedArrayTags[dateTag] = typedArrayTags[errorTag] = - typedArrayTags[funcTag] = typedArrayTags[mapTag] = - typedArrayTags[numberTag] = typedArrayTags[objectTag] = - typedArrayTags[regexpTag] = typedArrayTags[setTag] = - typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; - - /** Used to identify `toStringTag` values supported by `_.clone`. */ - var cloneableTags = {}; - cloneableTags[argsTag] = cloneableTags[arrayTag] = - cloneableTags[arrayBufferTag] = cloneableTags[boolTag] = - cloneableTags[dateTag] = cloneableTags[float32Tag] = - cloneableTags[float64Tag] = cloneableTags[int8Tag] = - cloneableTags[int16Tag] = cloneableTags[int32Tag] = - cloneableTags[numberTag] = cloneableTags[objectTag] = - cloneableTags[regexpTag] = cloneableTags[stringTag] = - cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = - cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; - cloneableTags[errorTag] = cloneableTags[funcTag] = - cloneableTags[mapTag] = cloneableTags[setTag] = - cloneableTags[weakMapTag] = false; - - /** Used to map latin-1 supplementary letters to basic latin letters. */ - var deburredLetters = { - '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', - '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', - '\xc7': 'C', '\xe7': 'c', - '\xd0': 'D', '\xf0': 'd', - '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', - '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', - '\xcC': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', - '\xeC': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', - '\xd1': 'N', '\xf1': 'n', - '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', - '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', - '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', - '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', - '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', - '\xc6': 'Ae', '\xe6': 'ae', - '\xde': 'Th', '\xfe': 'th', - '\xdf': 'ss' - }; - - /** Used to map characters to HTML entities. */ - var htmlEscapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''', - '`': '`' - }; - - /** Used to map HTML entities to characters. */ - var htmlUnescapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - ''': "'", - '`': '`' - }; - - /** Used to determine if values are of the language type `Object`. */ - var objectTypes = { - 'function': true, - 'object': true - }; - - /** Used to escape characters for inclusion in compiled regexes. */ - var regexpEscapes = { - '0': 'x30', '1': 'x31', '2': 'x32', '3': 'x33', '4': 'x34', - '5': 'x35', '6': 'x36', '7': 'x37', '8': 'x38', '9': 'x39', - 'A': 'x41', 'B': 'x42', 'C': 'x43', 'D': 'x44', 'E': 'x45', 'F': 'x46', - 'a': 'x61', 'b': 'x62', 'c': 'x63', 'd': 'x64', 'e': 'x65', 'f': 'x66', - 'n': 'x6e', 'r': 'x72', 't': 'x74', 'u': 'x75', 'v': 'x76', 'x': 'x78' - }; - - /** Used to escape characters for inclusion in compiled string literals. */ - var stringEscapes = { - '\\': '\\', - "'": "'", - '\n': 'n', - '\r': 'r', - '\u2028': 'u2028', - '\u2029': 'u2029' - }; - - /** Detect free variable `exports`. */ - var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; - - /** Detect free variable `module`. */ - var freeModule = objectTypes[typeof module] && module && !module.nodeType && module; - - /** Detect free variable `global` from Node.js. */ - var freeGlobal = freeExports && freeModule && typeof global == 'object' && global && global.Object && global; - - /** Detect free variable `self`. */ - var freeSelf = objectTypes[typeof self] && self && self.Object && self; - - /** Detect free variable `window`. */ - var freeWindow = objectTypes[typeof window] && window && window.Object && window; - - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports = freeModule && freeModule.exports === freeExports && freeExports; - - /** - * Used as a reference to the global object. - * - * The `this` value is used if it's the global object to avoid Greasemonkey's - * restricted `window` object, otherwise the `window` object is used. - */ - var root = freeGlobal || ((freeWindow !== (this && this.window)) && freeWindow) || freeSelf || this; - - /*--------------------------------------------------------------------------*/ - - /** - * The base implementation of `compareAscending` which compares values and - * sorts them in ascending order without guaranteeing a stable sort. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {number} Returns the sort order indicator for `value`. - */ - function baseCompareAscending(value, other) { - if (value !== other) { - var valIsNull = value === null, - valIsUndef = value === undefined, - valIsReflexive = value === value; - - var othIsNull = other === null, - othIsUndef = other === undefined, - othIsReflexive = other === other; - - if ((value > other && !othIsNull) || !valIsReflexive || - (valIsNull && !othIsUndef && othIsReflexive) || - (valIsUndef && othIsReflexive)) { - return 1; - } - if ((value < other && !valIsNull) || !othIsReflexive || - (othIsNull && !valIsUndef && valIsReflexive) || - (othIsUndef && valIsReflexive)) { - return -1; - } - } - return 0; - } - - /** - * The base implementation of `_.findIndex` and `_.findLastIndex` without - * support for callback shorthands and `this` binding. - * - * @private - * @param {Array} array The array to search. - * @param {Function} predicate The function invoked per iteration. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseFindIndex(array, predicate, fromRight) { - var length = array.length, - index = fromRight ? length : -1; - - while ((fromRight ? index-- : ++index < length)) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.indexOf` without support for binary searches. - * - * @private - * @param {Array} array The array to search. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseIndexOf(array, value, fromIndex) { - if (value !== value) { - return indexOfNaN(array, fromIndex); - } - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.isFunction` without support for environments - * with incorrect `typeof` results. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - */ - function baseIsFunction(value) { - // Avoid a Chakra JIT bug in compatibility modes of IE 11. - // See https://github.com/jashkenas/underscore/issues/1621 for more details. - return typeof value == 'function' || false; - } - - /** - * Converts `value` to a string if it's not one. An empty string is returned - * for `null` or `undefined` values. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ - function baseToString(value) { - return value == null ? '' : (value + ''); - } - - /** - * Used by `_.trim` and `_.trimLeft` to get the index of the first character - * of `string` that is not found in `chars`. - * - * @private - * @param {string} string The string to inspect. - * @param {string} chars The characters to find. - * @returns {number} Returns the index of the first character not found in `chars`. - */ - function charsLeftIndex(string, chars) { - var index = -1, - length = string.length; - - while (++index < length && chars.indexOf(string.charAt(index)) > -1) {} - return index; - } - - /** - * Used by `_.trim` and `_.trimRight` to get the index of the last character - * of `string` that is not found in `chars`. - * - * @private - * @param {string} string The string to inspect. - * @param {string} chars The characters to find. - * @returns {number} Returns the index of the last character not found in `chars`. - */ - function charsRightIndex(string, chars) { - var index = string.length; - - while (index-- && chars.indexOf(string.charAt(index)) > -1) {} - return index; - } - - /** - * Used by `_.sortBy` to compare transformed elements of a collection and stable - * sort them in ascending order. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @returns {number} Returns the sort order indicator for `object`. - */ - function compareAscending(object, other) { - return baseCompareAscending(object.criteria, other.criteria) || (object.index - other.index); - } - - /** - * Used by `_.sortByOrder` to compare multiple properties of a value to another - * and stable sort them. - * - * If `orders` is unspecified, all valuess are sorted in ascending order. Otherwise, - * a value is sorted in ascending order if its corresponding order is "asc", and - * descending if "desc". - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {boolean[]} orders The order to sort by for each property. - * @returns {number} Returns the sort order indicator for `object`. - */ - function compareMultiple(object, other, orders) { - var index = -1, - objCriteria = object.criteria, - othCriteria = other.criteria, - length = objCriteria.length, - ordersLength = orders.length; - - while (++index < length) { - var result = baseCompareAscending(objCriteria[index], othCriteria[index]); - if (result) { - if (index >= ordersLength) { - return result; - } - var order = orders[index]; - return result * ((order === 'asc' || order === true) ? 1 : -1); - } - } - // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications - // that causes it, under certain circumstances, to provide the same value for - // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 - // for more details. - // - // This also ensures a stable sort in V8 and other engines. - // See https://code.google.com/p/v8/issues/detail?id=90 for more details. - return object.index - other.index; - } - - /** - * Used by `_.deburr` to convert latin-1 supplementary letters to basic latin letters. - * - * @private - * @param {string} letter The matched letter to deburr. - * @returns {string} Returns the deburred letter. - */ - function deburrLetter(letter) { - return deburredLetters[letter]; - } - - /** - * Used by `_.escape` to convert characters to HTML entities. - * - * @private - * @param {string} chr The matched character to escape. - * @returns {string} Returns the escaped character. - */ - function escapeHtmlChar(chr) { - return htmlEscapes[chr]; - } - - /** - * Used by `_.escapeRegExp` to escape characters for inclusion in compiled regexes. - * - * @private - * @param {string} chr The matched character to escape. - * @param {string} leadingChar The capture group for a leading character. - * @param {string} whitespaceChar The capture group for a whitespace character. - * @returns {string} Returns the escaped character. - */ - function escapeRegExpChar(chr, leadingChar, whitespaceChar) { - if (leadingChar) { - chr = regexpEscapes[chr]; - } else if (whitespaceChar) { - chr = stringEscapes[chr]; - } - return '\\' + chr; - } - - /** - * Used by `_.template` to escape characters for inclusion in compiled string literals. - * - * @private - * @param {string} chr The matched character to escape. - * @returns {string} Returns the escaped character. - */ - function escapeStringChar(chr) { - return '\\' + stringEscapes[chr]; - } - - /** - * Gets the index at which the first occurrence of `NaN` is found in `array`. - * - * @private - * @param {Array} array The array to search. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched `NaN`, else `-1`. - */ - function indexOfNaN(array, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 0 : -1); - - while ((fromRight ? index-- : ++index < length)) { - var other = array[index]; - if (other !== other) { - return index; - } - } - return -1; - } - - /** - * Checks if `value` is object-like. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - */ - function isObjectLike(value) { - return !!value && typeof value == 'object'; - } - - /** - * Used by `trimmedLeftIndex` and `trimmedRightIndex` to determine if a - * character code is whitespace. - * - * @private - * @param {number} charCode The character code to inspect. - * @returns {boolean} Returns `true` if `charCode` is whitespace, else `false`. - */ - function isSpace(charCode) { - return ((charCode <= 160 && (charCode >= 9 && charCode <= 13) || charCode == 32 || charCode == 160) || charCode == 5760 || charCode == 6158 || - (charCode >= 8192 && (charCode <= 8202 || charCode == 8232 || charCode == 8233 || charCode == 8239 || charCode == 8287 || charCode == 12288 || charCode == 65279))); - } - - /** - * Replaces all `placeholder` elements in `array` with an internal placeholder - * and returns an array of their indexes. - * - * @private - * @param {Array} array The array to modify. - * @param {*} placeholder The placeholder to replace. - * @returns {Array} Returns the new array of placeholder indexes. - */ - function replaceHolders(array, placeholder) { - var index = -1, - length = array.length, - resIndex = -1, - result = []; - - while (++index < length) { - if (array[index] === placeholder) { - array[index] = PLACEHOLDER; - result[++resIndex] = index; - } - } - return result; - } - - /** - * An implementation of `_.uniq` optimized for sorted arrays without support - * for callback shorthands and `this` binding. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The function invoked per iteration. - * @returns {Array} Returns the new duplicate free array. - */ - function sortedUniq(array, iteratee) { - var seen, - index = -1, - length = array.length, - resIndex = -1, - result = []; - - while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value, index, array) : value; - - if (!index || seen !== computed) { - seen = computed; - result[++resIndex] = value; - } - } - return result; - } - - /** - * Used by `_.trim` and `_.trimLeft` to get the index of the first non-whitespace - * character of `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the index of the first non-whitespace character. - */ - function trimmedLeftIndex(string) { - var index = -1, - length = string.length; - - while (++index < length && isSpace(string.charCodeAt(index))) {} - return index; - } - - /** - * Used by `_.trim` and `_.trimRight` to get the index of the last non-whitespace - * character of `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the index of the last non-whitespace character. - */ - function trimmedRightIndex(string) { - var index = string.length; - - while (index-- && isSpace(string.charCodeAt(index))) {} - return index; - } - - /** - * Used by `_.unescape` to convert HTML entities to characters. - * - * @private - * @param {string} chr The matched character to unescape. - * @returns {string} Returns the unescaped character. - */ - function unescapeHtmlChar(chr) { - return htmlUnescapes[chr]; - } - - /*--------------------------------------------------------------------------*/ - - /** - * Create a new pristine `lodash` function using the given `context` object. - * - * @static - * @memberOf _ - * @category Utility - * @param {Object} [context=root] The context object. - * @returns {Function} Returns a new `lodash` function. - * @example - * - * _.mixin({ 'foo': _.constant('foo') }); - * - * var lodash = _.runInContext(); - * lodash.mixin({ 'bar': lodash.constant('bar') }); - * - * _.isFunction(_.foo); - * // => true - * _.isFunction(_.bar); - * // => false - * - * lodash.isFunction(lodash.foo); - * // => false - * lodash.isFunction(lodash.bar); - * // => true - * - * // using `context` to mock `Date#getTime` use in `_.now` - * var mock = _.runInContext({ - * 'Date': function() { - * return { 'getTime': getTimeMock }; - * } - * }); - * - * // or creating a suped-up `defer` in Node.js - * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer; - */ - function runInContext(context) { - // Avoid issues with some ES3 environments that attempt to use values, named - // after built-in constructors like `Object`, for the creation of literals. - // ES5 clears this up by stating that literals must use built-in constructors. - // See https://es5.github.io/#x11.1.5 for more details. - context = context ? _.defaults(root.Object(), context, _.pick(root, contextProps)) : root; - - /** Native constructor references. */ - var Array = context.Array, - Date = context.Date, - Error = context.Error, - Function = context.Function, - Math = context.Math, - Number = context.Number, - Object = context.Object, - RegExp = context.RegExp, - String = context.String, - TypeError = context.TypeError; - - /** Used for native method references. */ - var arrayProto = Array.prototype, - objectProto = Object.prototype, - stringProto = String.prototype; - - /** Used to resolve the decompiled source of functions. */ - var fnToString = Function.prototype.toString; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** Used to generate unique IDs. */ - var idCounter = 0; - - /** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ - var objToString = objectProto.toString; - - /** Used to restore the original `_` reference in `_.noConflict`. */ - var oldDash = root._; - - /** Used to detect if a method is native. */ - var reIsNative = RegExp('^' + - fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' - ); - - /** Native method references. */ - var ArrayBuffer = context.ArrayBuffer, - clearTimeout = context.clearTimeout, - parseFloat = context.parseFloat, - pow = Math.pow, - propertyIsEnumerable = objectProto.propertyIsEnumerable, - Set = getNative(context, 'Set'), - setTimeout = context.setTimeout, - splice = arrayProto.splice, - Uint8Array = context.Uint8Array, - WeakMap = getNative(context, 'WeakMap'); - - /* Native method references for those with the same name as other `lodash` methods. */ - var nativeCeil = Math.ceil, - nativeCreate = getNative(Object, 'create'), - nativeFloor = Math.floor, - nativeIsArray = getNative(Array, 'isArray'), - nativeIsFinite = context.isFinite, - nativeKeys = getNative(Object, 'keys'), - nativeMax = Math.max, - nativeMin = Math.min, - nativeNow = getNative(Date, 'now'), - nativeParseInt = context.parseInt, - nativeRandom = Math.random; - - /** Used as references for `-Infinity` and `Infinity`. */ - var NEGATIVE_INFINITY = Number.NEGATIVE_INFINITY, - POSITIVE_INFINITY = Number.POSITIVE_INFINITY; - - /** Used as references for the maximum length and index of an array. */ - var MAX_ARRAY_LENGTH = 4294967295, - MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, - HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; - - /** - * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) - * of an array-like value. - */ - var MAX_SAFE_INTEGER = 9007199254740991; - - /** Used to store function metadata. */ - var metaMap = WeakMap && new WeakMap; - - /** Used to lookup unminified function names. */ - var realNames = {}; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a `lodash` object which wraps `value` to enable implicit chaining. - * Methods that operate on and return arrays, collections, and functions can - * be chained together. Methods that retrieve a single value or may return a - * primitive value will automatically end the chain returning the unwrapped - * value. Explicit chaining may be enabled using `_.chain`. The execution of - * chained methods is lazy, that is, execution is deferred until `_#value` - * is implicitly or explicitly called. - * - * Lazy evaluation allows several methods to support shortcut fusion. Shortcut - * fusion is an optimization strategy which merge iteratee calls; this can help - * to avoid the creation of intermediate data structures and greatly reduce the - * number of iteratee executions. - * - * Chaining is supported in custom builds as long as the `_#value` method is - * directly or indirectly included in the build. - * - * In addition to lodash methods, wrappers have `Array` and `String` methods. - * - * The wrapper `Array` methods are: - * `concat`, `join`, `pop`, `push`, `reverse`, `shift`, `slice`, `sort`, - * `splice`, and `unshift` - * - * The wrapper `String` methods are: - * `replace` and `split` - * - * The wrapper methods that support shortcut fusion are: - * `compact`, `drop`, `dropRight`, `dropRightWhile`, `dropWhile`, `filter`, - * `first`, `initial`, `last`, `map`, `pluck`, `reject`, `rest`, `reverse`, - * `slice`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, `toArray`, - * and `where` - * - * The chainable wrapper methods are: - * `after`, `ary`, `assign`, `at`, `before`, `bind`, `bindAll`, `bindKey`, - * `callback`, `chain`, `chunk`, `commit`, `compact`, `concat`, `constant`, - * `countBy`, `create`, `curry`, `debounce`, `defaults`, `defaultsDeep`, - * `defer`, `delay`, `difference`, `drop`, `dropRight`, `dropRightWhile`, - * `dropWhile`, `fill`, `filter`, `flatten`, `flattenDeep`, `flow`, `flowRight`, - * `forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`, `forOwnRight`, - * `functions`, `groupBy`, `indexBy`, `initial`, `intersection`, `invert`, - * `invoke`, `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, - * `matchesProperty`, `memoize`, `merge`, `method`, `methodOf`, `mixin`, - * `modArgs`, `negate`, `omit`, `once`, `pairs`, `partial`, `partialRight`, - * `partition`, `pick`, `plant`, `pluck`, `property`, `propertyOf`, `pull`, - * `pullAt`, `push`, `range`, `rearg`, `reject`, `remove`, `rest`, `restParam`, - * `reverse`, `set`, `shuffle`, `slice`, `sort`, `sortBy`, `sortByAll`, - * `sortByOrder`, `splice`, `spread`, `take`, `takeRight`, `takeRightWhile`, - * `takeWhile`, `tap`, `throttle`, `thru`, `times`, `toArray`, `toPlainObject`, - * `transform`, `union`, `uniq`, `unshift`, `unzip`, `unzipWith`, `values`, - * `valuesIn`, `where`, `without`, `wrap`, `xor`, `zip`, `zipObject`, `zipWith` - * - * The wrapper methods that are **not** chainable by default are: - * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clone`, `cloneDeep`, - * `deburr`, `endsWith`, `escape`, `escapeRegExp`, `every`, `find`, `findIndex`, - * `findKey`, `findLast`, `findLastIndex`, `findLastKey`, `findWhere`, `first`, - * `floor`, `get`, `gt`, `gte`, `has`, `identity`, `includes`, `indexOf`, - * `inRange`, `isArguments`, `isArray`, `isBoolean`, `isDate`, `isElement`, - * `isEmpty`, `isEqual`, `isError`, `isFinite` `isFunction`, `isMatch`, - * `isNative`, `isNaN`, `isNull`, `isNumber`, `isObject`, `isPlainObject`, - * `isRegExp`, `isString`, `isUndefined`, `isTypedArray`, `join`, `kebabCase`, - * `last`, `lastIndexOf`, `lt`, `lte`, `max`, `min`, `noConflict`, `noop`, - * `now`, `pad`, `padLeft`, `padRight`, `parseInt`, `pop`, `random`, `reduce`, - * `reduceRight`, `repeat`, `result`, `round`, `runInContext`, `shift`, `size`, - * `snakeCase`, `some`, `sortedIndex`, `sortedLastIndex`, `startCase`, - * `startsWith`, `sum`, `template`, `trim`, `trimLeft`, `trimRight`, `trunc`, - * `unescape`, `uniqueId`, `value`, and `words` - * - * The wrapper method `sample` will return a wrapped value when `n` is provided, - * otherwise an unwrapped value is returned. - * - * @name _ - * @constructor - * @category Chain - * @param {*} value The value to wrap in a `lodash` instance. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var wrapped = _([1, 2, 3]); - * - * // returns an unwrapped value - * wrapped.reduce(function(total, n) { - * return total + n; - * }); - * // => 6 - * - * // returns a wrapped value - * var squares = wrapped.map(function(n) { - * return n * n; - * }); - * - * _.isArray(squares); - * // => false - * - * _.isArray(squares.value()); - * // => true - */ - function lodash(value) { - if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { - if (value instanceof LodashWrapper) { - return value; - } - if (hasOwnProperty.call(value, '__chain__') && hasOwnProperty.call(value, '__wrapped__')) { - return wrapperClone(value); - } - } - return new LodashWrapper(value); - } - - /** - * The function whose prototype all chaining wrappers inherit from. - * - * @private - */ - function baseLodash() { - // No operation performed. - } - - /** - * The base constructor for creating `lodash` wrapper objects. - * - * @private - * @param {*} value The value to wrap. - * @param {boolean} [chainAll] Enable chaining for all wrapper methods. - * @param {Array} [actions=[]] Actions to peform to resolve the unwrapped value. - */ - function LodashWrapper(value, chainAll, actions) { - this.__wrapped__ = value; - this.__actions__ = actions || []; - this.__chain__ = !!chainAll; - } - - /** - * An object environment feature flags. - * - * @static - * @memberOf _ - * @type Object - */ - var support = lodash.support = {}; - - /** - * By default, the template delimiters used by lodash are like those in - * embedded Ruby (ERB). Change the following template settings to use - * alternative delimiters. - * - * @static - * @memberOf _ - * @type Object - */ - lodash.templateSettings = { - - /** - * Used to detect `data` property values to be HTML-escaped. - * - * @memberOf _.templateSettings - * @type RegExp - */ - 'escape': reEscape, - - /** - * Used to detect code to be evaluated. - * - * @memberOf _.templateSettings - * @type RegExp - */ - 'evaluate': reEvaluate, - - /** - * Used to detect `data` property values to inject. - * - * @memberOf _.templateSettings - * @type RegExp - */ - 'interpolate': reInterpolate, - - /** - * Used to reference the data object in the template text. - * - * @memberOf _.templateSettings - * @type string - */ - 'variable': '', - - /** - * Used to import variables into the compiled template. - * - * @memberOf _.templateSettings - * @type Object - */ - 'imports': { - - /** - * A reference to the `lodash` function. - * - * @memberOf _.templateSettings.imports - * @type Function - */ - '_': lodash - } - }; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. - * - * @private - * @param {*} value The value to wrap. - */ - function LazyWrapper(value) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__dir__ = 1; - this.__filtered__ = false; - this.__iteratees__ = []; - this.__takeCount__ = POSITIVE_INFINITY; - this.__views__ = []; - } - - /** - * Creates a clone of the lazy wrapper object. - * - * @private - * @name clone - * @memberOf LazyWrapper - * @returns {Object} Returns the cloned `LazyWrapper` object. - */ - function lazyClone() { - var result = new LazyWrapper(this.__wrapped__); - result.__actions__ = arrayCopy(this.__actions__); - result.__dir__ = this.__dir__; - result.__filtered__ = this.__filtered__; - result.__iteratees__ = arrayCopy(this.__iteratees__); - result.__takeCount__ = this.__takeCount__; - result.__views__ = arrayCopy(this.__views__); - return result; - } - - /** - * Reverses the direction of lazy iteration. - * - * @private - * @name reverse - * @memberOf LazyWrapper - * @returns {Object} Returns the new reversed `LazyWrapper` object. - */ - function lazyReverse() { - if (this.__filtered__) { - var result = new LazyWrapper(this); - result.__dir__ = -1; - result.__filtered__ = true; - } else { - result = this.clone(); - result.__dir__ *= -1; - } - return result; - } - - /** - * Extracts the unwrapped value from its lazy wrapper. - * - * @private - * @name value - * @memberOf LazyWrapper - * @returns {*} Returns the unwrapped value. - */ - function lazyValue() { - var array = this.__wrapped__.value(), - dir = this.__dir__, - isArr = isArray(array), - isRight = dir < 0, - arrLength = isArr ? array.length : 0, - view = getView(0, arrLength, this.__views__), - start = view.start, - end = view.end, - length = end - start, - index = isRight ? end : (start - 1), - iteratees = this.__iteratees__, - iterLength = iteratees.length, - resIndex = 0, - takeCount = nativeMin(length, this.__takeCount__); - - if (!isArr || arrLength < LARGE_ARRAY_SIZE || (arrLength == length && takeCount == length)) { - return baseWrapperValue(array, this.__actions__); - } - var result = []; - - outer: - while (length-- && resIndex < takeCount) { - index += dir; - - var iterIndex = -1, - value = array[index]; - - while (++iterIndex < iterLength) { - var data = iteratees[iterIndex], - iteratee = data.iteratee, - type = data.type, - computed = iteratee(value); - - if (type == LAZY_MAP_FLAG) { - value = computed; - } else if (!computed) { - if (type == LAZY_FILTER_FLAG) { - continue outer; - } else { - break outer; - } - } - } - result[resIndex++] = value; - } - return result; - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates a cache object to store key/value pairs. - * - * @private - * @static - * @name Cache - * @memberOf _.memoize - */ - function MapCache() { - this.__data__ = {}; - } - - /** - * Removes `key` and its value from the cache. - * - * @private - * @name delete - * @memberOf _.memoize.Cache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed successfully, else `false`. - */ - function mapDelete(key) { - return this.has(key) && delete this.__data__[key]; - } - - /** - * Gets the cached value for `key`. - * - * @private - * @name get - * @memberOf _.memoize.Cache - * @param {string} key The key of the value to get. - * @returns {*} Returns the cached value. - */ - function mapGet(key) { - return key == '__proto__' ? undefined : this.__data__[key]; - } - - /** - * Checks if a cached value for `key` exists. - * - * @private - * @name has - * @memberOf _.memoize.Cache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function mapHas(key) { - return key != '__proto__' && hasOwnProperty.call(this.__data__, key); - } - - /** - * Sets `value` to `key` of the cache. - * - * @private - * @name set - * @memberOf _.memoize.Cache - * @param {string} key The key of the value to cache. - * @param {*} value The value to cache. - * @returns {Object} Returns the cache object. - */ - function mapSet(key, value) { - if (key != '__proto__') { - this.__data__[key] = value; - } - return this; - } - - /*------------------------------------------------------------------------*/ - - /** - * - * Creates a cache object to store unique values. - * - * @private - * @param {Array} [values] The values to cache. - */ - function SetCache(values) { - var length = values ? values.length : 0; - - this.data = { 'hash': nativeCreate(null), 'set': new Set }; - while (length--) { - this.push(values[length]); - } - } - - /** - * Checks if `value` is in `cache` mimicking the return signature of - * `_.indexOf` by returning `0` if the value is found, else `-1`. - * - * @private - * @param {Object} cache The cache to search. - * @param {*} value The value to search for. - * @returns {number} Returns `0` if `value` is found, else `-1`. - */ - function cacheIndexOf(cache, value) { - var data = cache.data, - result = (typeof value == 'string' || isObject(value)) ? data.set.has(value) : data.hash[value]; - - return result ? 0 : -1; - } - - /** - * Adds `value` to the cache. - * - * @private - * @name push - * @memberOf SetCache - * @param {*} value The value to cache. - */ - function cachePush(value) { - var data = this.data; - if (typeof value == 'string' || isObject(value)) { - data.set.add(value); - } else { - data.hash[value] = true; - } - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates a new array joining `array` with `other`. - * - * @private - * @param {Array} array The array to join. - * @param {Array} other The other array to join. - * @returns {Array} Returns the new concatenated array. - */ - function arrayConcat(array, other) { - var index = -1, - length = array.length, - othIndex = -1, - othLength = other.length, - result = Array(length + othLength); - - while (++index < length) { - result[index] = array[index]; - } - while (++othIndex < othLength) { - result[index++] = other[othIndex]; - } - return result; - } - - /** - * Copies the values of `source` to `array`. - * - * @private - * @param {Array} source The array to copy values from. - * @param {Array} [array=[]] The array to copy values to. - * @returns {Array} Returns `array`. - */ - function arrayCopy(source, array) { - var index = -1, - length = source.length; - - array || (array = Array(length)); - while (++index < length) { - array[index] = source[index]; - } - return array; - } - - /** - * A specialized version of `_.forEach` for arrays without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEach(array, iteratee) { - var index = -1, - length = array.length; - - while (++index < length) { - if (iteratee(array[index], index, array) === false) { - break; - } - } - return array; - } - - /** - * A specialized version of `_.forEachRight` for arrays without support for - * callback shorthands and `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEachRight(array, iteratee) { - var length = array.length; - - while (length--) { - if (iteratee(array[length], length, array) === false) { - break; - } - } - return array; - } - - /** - * A specialized version of `_.every` for arrays without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - */ - function arrayEvery(array, predicate) { - var index = -1, - length = array.length; - - while (++index < length) { - if (!predicate(array[index], index, array)) { - return false; - } - } - return true; - } - - /** - * A specialized version of `baseExtremum` for arrays which invokes `iteratee` - * with one argument: (value). - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} comparator The function used to compare values. - * @param {*} exValue The initial extremum value. - * @returns {*} Returns the extremum value. - */ - function arrayExtremum(array, iteratee, comparator, exValue) { - var index = -1, - length = array.length, - computed = exValue, - result = computed; - - while (++index < length) { - var value = array[index], - current = +iteratee(value); - - if (comparator(current, computed)) { - computed = current; - result = value; - } - } - return result; - } - - /** - * A specialized version of `_.filter` for arrays without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ - function arrayFilter(array, predicate) { - var index = -1, - length = array.length, - resIndex = -1, - result = []; - - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result[++resIndex] = value; - } - } - return result; - } - - /** - * A specialized version of `_.map` for arrays without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function arrayMap(array, iteratee) { - var index = -1, - length = array.length, - result = Array(length); - - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; - } - - /** - * Appends the elements of `values` to `array`. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. - */ - function arrayPush(array, values) { - var index = -1, - length = values.length, - offset = array.length; - - while (++index < length) { - array[offset + index] = values[index]; - } - return array; - } - - /** - * A specialized version of `_.reduce` for arrays without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {boolean} [initFromArray] Specify using the first element of `array` - * as the initial value. - * @returns {*} Returns the accumulated value. - */ - function arrayReduce(array, iteratee, accumulator, initFromArray) { - var index = -1, - length = array.length; - - if (initFromArray && length) { - accumulator = array[++index]; - } - while (++index < length) { - accumulator = iteratee(accumulator, array[index], index, array); - } - return accumulator; - } - - /** - * A specialized version of `_.reduceRight` for arrays without support for - * callback shorthands and `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {boolean} [initFromArray] Specify using the last element of `array` - * as the initial value. - * @returns {*} Returns the accumulated value. - */ - function arrayReduceRight(array, iteratee, accumulator, initFromArray) { - var length = array.length; - if (initFromArray && length) { - accumulator = array[--length]; - } - while (length--) { - accumulator = iteratee(accumulator, array[length], length, array); - } - return accumulator; - } - - /** - * A specialized version of `_.some` for arrays without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ - function arraySome(array, predicate) { - var index = -1, - length = array.length; - - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; - } - } - return false; - } - - /** - * A specialized version of `_.sum` for arrays without support for callback - * shorthands and `this` binding.. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {number} Returns the sum. - */ - function arraySum(array, iteratee) { - var length = array.length, - result = 0; - - while (length--) { - result += +iteratee(array[length]) || 0; - } - return result; - } - - /** - * Used by `_.defaults` to customize its `_.assign` use. - * - * @private - * @param {*} objectValue The destination object property value. - * @param {*} sourceValue The source object property value. - * @returns {*} Returns the value to assign to the destination object. - */ - function assignDefaults(objectValue, sourceValue) { - return objectValue === undefined ? sourceValue : objectValue; - } - - /** - * Used by `_.template` to customize its `_.assign` use. - * - * **Note:** This function is like `assignDefaults` except that it ignores - * inherited property values when checking if a property is `undefined`. - * - * @private - * @param {*} objectValue The destination object property value. - * @param {*} sourceValue The source object property value. - * @param {string} key The key associated with the object and source values. - * @param {Object} object The destination object. - * @returns {*} Returns the value to assign to the destination object. - */ - function assignOwnDefaults(objectValue, sourceValue, key, object) { - return (objectValue === undefined || !hasOwnProperty.call(object, key)) - ? sourceValue - : objectValue; - } - - /** - * A specialized version of `_.assign` for customizing assigned values without - * support for argument juggling, multiple sources, and `this` binding `customizer` - * functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {Function} customizer The function to customize assigned values. - * @returns {Object} Returns `object`. - */ - function assignWith(object, source, customizer) { - var index = -1, - props = keys(source), - length = props.length; - - while (++index < length) { - var key = props[index], - value = object[key], - result = customizer(value, source[key], key, object, source); - - if ((result === result ? (result !== value) : (value === value)) || - (value === undefined && !(key in object))) { - object[key] = result; - } - } - return object; - } - - /** - * The base implementation of `_.assign` without support for argument juggling, - * multiple sources, and `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ - function baseAssign(object, source) { - return source == null - ? object - : baseCopy(source, keys(source), object); - } - - /** - * The base implementation of `_.at` without support for string collections - * and individual key arguments. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {number[]|string[]} props The property names or indexes of elements to pick. - * @returns {Array} Returns the new array of picked elements. - */ - function baseAt(collection, props) { - var index = -1, - isNil = collection == null, - isArr = !isNil && isArrayLike(collection), - length = isArr ? collection.length : 0, - propsLength = props.length, - result = Array(propsLength); - - while(++index < propsLength) { - var key = props[index]; - if (isArr) { - result[index] = isIndex(key, length) ? collection[key] : undefined; - } else { - result[index] = isNil ? undefined : collection[key]; - } - } - return result; - } - - /** - * Copies properties of `source` to `object`. - * - * @private - * @param {Object} source The object to copy properties from. - * @param {Array} props The property names to copy. - * @param {Object} [object={}] The object to copy properties to. - * @returns {Object} Returns `object`. - */ - function baseCopy(source, props, object) { - object || (object = {}); - - var index = -1, - length = props.length; - - while (++index < length) { - var key = props[index]; - object[key] = source[key]; - } - return object; - } - - /** - * The base implementation of `_.callback` which supports specifying the - * number of arguments to provide to `func`. - * - * @private - * @param {*} [func=_.identity] The value to convert to a callback. - * @param {*} [thisArg] The `this` binding of `func`. - * @param {number} [argCount] The number of arguments to provide to `func`. - * @returns {Function} Returns the callback. - */ - function baseCallback(func, thisArg, argCount) { - var type = typeof func; - if (type == 'function') { - return thisArg === undefined - ? func - : bindCallback(func, thisArg, argCount); - } - if (func == null) { - return identity; - } - if (type == 'object') { - return baseMatches(func); - } - return thisArg === undefined - ? property(func) - : baseMatchesProperty(func, thisArg); - } - - /** - * The base implementation of `_.clone` without support for argument juggling - * and `this` binding `customizer` functions. - * - * @private - * @param {*} value The value to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @param {Function} [customizer] The function to customize cloning values. - * @param {string} [key] The key of `value`. - * @param {Object} [object] The object `value` belongs to. - * @param {Array} [stackA=[]] Tracks traversed source objects. - * @param {Array} [stackB=[]] Associates clones with source counterparts. - * @returns {*} Returns the cloned value. - */ - function baseClone(value, isDeep, customizer, key, object, stackA, stackB) { - var result; - if (customizer) { - result = object ? customizer(value, key, object) : customizer(value); - } - if (result !== undefined) { - return result; - } - if (!isObject(value)) { - return value; - } - var isArr = isArray(value); - if (isArr) { - result = initCloneArray(value); - if (!isDeep) { - return arrayCopy(value, result); - } - } else { - var tag = objToString.call(value), - isFunc = tag == funcTag; - - if (tag == objectTag || tag == argsTag || (isFunc && !object)) { - result = initCloneObject(isFunc ? {} : value); - if (!isDeep) { - return baseAssign(result, value); - } - } else { - return cloneableTags[tag] - ? initCloneByTag(value, tag, isDeep) - : (object ? value : {}); - } - } - // Check for circular references and return its corresponding clone. - stackA || (stackA = []); - stackB || (stackB = []); - - var length = stackA.length; - while (length--) { - if (stackA[length] == value) { - return stackB[length]; - } - } - // Add the source value to the stack of traversed objects and associate it with its clone. - stackA.push(value); - stackB.push(result); - - // Recursively populate clone (susceptible to call stack limits). - (isArr ? arrayEach : baseForOwn)(value, function(subValue, key) { - result[key] = baseClone(subValue, isDeep, customizer, key, value, stackA, stackB); - }); - return result; - } - - /** - * The base implementation of `_.create` without support for assigning - * properties to the created object. - * - * @private - * @param {Object} prototype The object to inherit from. - * @returns {Object} Returns the new object. - */ - var baseCreate = (function() { - function object() {} - return function(prototype) { - if (isObject(prototype)) { - object.prototype = prototype; - var result = new object; - object.prototype = undefined; - } - return result || {}; - }; - }()); - - /** - * The base implementation of `_.delay` and `_.defer` which accepts an index - * of where to slice the arguments to provide to `func`. - * - * @private - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @param {Object} args The arguments provide to `func`. - * @returns {number} Returns the timer id. - */ - function baseDelay(func, wait, args) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - return setTimeout(function() { func.apply(undefined, args); }, wait); - } - - /** - * The base implementation of `_.difference` which accepts a single array - * of values to exclude. - * - * @private - * @param {Array} array The array to inspect. - * @param {Array} values The values to exclude. - * @returns {Array} Returns the new array of filtered values. - */ - function baseDifference(array, values) { - var length = array ? array.length : 0, - result = []; - - if (!length) { - return result; - } - var index = -1, - indexOf = getIndexOf(), - isCommon = indexOf === baseIndexOf, - cache = (isCommon && values.length >= LARGE_ARRAY_SIZE) ? createCache(values) : null, - valuesLength = values.length; - - if (cache) { - indexOf = cacheIndexOf; - isCommon = false; - values = cache; - } - outer: - while (++index < length) { - var value = array[index]; - - if (isCommon && value === value) { - var valuesIndex = valuesLength; - while (valuesIndex--) { - if (values[valuesIndex] === value) { - continue outer; - } - } - result.push(value); - } - else if (indexOf(values, value, 0) < 0) { - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.forEach` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object|string} Returns `collection`. - */ - var baseEach = createBaseEach(baseForOwn); - - /** - * The base implementation of `_.forEachRight` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object|string} Returns `collection`. - */ - var baseEachRight = createBaseEach(baseForOwnRight, true); - - /** - * The base implementation of `_.every` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false` - */ - function baseEvery(collection, predicate) { - var result = true; - baseEach(collection, function(value, index, collection) { - result = !!predicate(value, index, collection); - return result; - }); - return result; - } - - /** - * Gets the extremum value of `collection` invoking `iteratee` for each value - * in `collection` to generate the criterion by which the value is ranked. - * The `iteratee` is invoked with three arguments: (value, index|key, collection). - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} comparator The function used to compare values. - * @param {*} exValue The initial extremum value. - * @returns {*} Returns the extremum value. - */ - function baseExtremum(collection, iteratee, comparator, exValue) { - var computed = exValue, - result = computed; - - baseEach(collection, function(value, index, collection) { - var current = +iteratee(value, index, collection); - if (comparator(current, computed) || (current === exValue && current === result)) { - computed = current; - result = value; - } - }); - return result; - } - - /** - * The base implementation of `_.fill` without an iteratee call guard. - * - * @private - * @param {Array} array The array to fill. - * @param {*} value The value to fill `array` with. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns `array`. - */ - function baseFill(array, value, start, end) { - var length = array.length; - - start = start == null ? 0 : (+start || 0); - if (start < 0) { - start = -start > length ? 0 : (length + start); - } - end = (end === undefined || end > length) ? length : (+end || 0); - if (end < 0) { - end += length; - } - length = start > end ? 0 : (end >>> 0); - start >>>= 0; - - while (start < length) { - array[start++] = value; - } - return array; - } - - /** - * The base implementation of `_.filter` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ - function baseFilter(collection, predicate) { - var result = []; - baseEach(collection, function(value, index, collection) { - if (predicate(value, index, collection)) { - result.push(value); - } - }); - return result; - } - - /** - * The base implementation of `_.find`, `_.findLast`, `_.findKey`, and `_.findLastKey`, - * without support for callback shorthands and `this` binding, which iterates - * over `collection` using the provided `eachFunc`. - * - * @private - * @param {Array|Object|string} collection The collection to search. - * @param {Function} predicate The function invoked per iteration. - * @param {Function} eachFunc The function to iterate over `collection`. - * @param {boolean} [retKey] Specify returning the key of the found element - * instead of the element itself. - * @returns {*} Returns the found element or its key, else `undefined`. - */ - function baseFind(collection, predicate, eachFunc, retKey) { - var result; - eachFunc(collection, function(value, key, collection) { - if (predicate(value, key, collection)) { - result = retKey ? key : value; - return false; - } - }); - return result; - } - - /** - * The base implementation of `_.flatten` with added support for restricting - * flattening and specifying the start index. - * - * @private - * @param {Array} array The array to flatten. - * @param {boolean} [isDeep] Specify a deep flatten. - * @param {boolean} [isStrict] Restrict flattening to arrays-like objects. - * @param {Array} [result=[]] The initial result value. - * @returns {Array} Returns the new flattened array. - */ - function baseFlatten(array, isDeep, isStrict, result) { - result || (result = []); - - var index = -1, - length = array.length; - - while (++index < length) { - var value = array[index]; - if (isObjectLike(value) && isArrayLike(value) && - (isStrict || isArray(value) || isArguments(value))) { - if (isDeep) { - // Recursively flatten arrays (susceptible to call stack limits). - baseFlatten(value, isDeep, isStrict, result); - } else { - arrayPush(result, value); - } - } else if (!isStrict) { - result[result.length] = value; - } - } - return result; - } - - /** - * The base implementation of `baseForIn` and `baseForOwn` which iterates - * over `object` properties returned by `keysFunc` invoking `iteratee` for - * each property. Iteratee functions may exit iteration early by explicitly - * returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseFor = createBaseFor(); - - /** - * This function is like `baseFor` except that it iterates over properties - * in the opposite order. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseForRight = createBaseFor(true); - - /** - * The base implementation of `_.forIn` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForIn(object, iteratee) { - return baseFor(object, iteratee, keysIn); - } - - /** - * The base implementation of `_.forOwn` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwn(object, iteratee) { - return baseFor(object, iteratee, keys); - } - - /** - * The base implementation of `_.forOwnRight` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwnRight(object, iteratee) { - return baseForRight(object, iteratee, keys); - } - - /** - * The base implementation of `_.functions` which creates an array of - * `object` function property names filtered from those provided. - * - * @private - * @param {Object} object The object to inspect. - * @param {Array} props The property names to filter. - * @returns {Array} Returns the new array of filtered property names. - */ - function baseFunctions(object, props) { - var index = -1, - length = props.length, - resIndex = -1, - result = []; - - while (++index < length) { - var key = props[index]; - if (isFunction(object[key])) { - result[++resIndex] = key; - } - } - return result; - } - - /** - * The base implementation of `get` without support for string paths - * and default values. - * - * @private - * @param {Object} object The object to query. - * @param {Array} path The path of the property to get. - * @param {string} [pathKey] The key representation of path. - * @returns {*} Returns the resolved value. - */ - function baseGet(object, path, pathKey) { - if (object == null) { - return; - } - if (pathKey !== undefined && pathKey in toObject(object)) { - path = [pathKey]; - } - var index = 0, - length = path.length; - - while (object != null && index < length) { - object = object[path[index++]]; - } - return (index && index == length) ? object : undefined; - } - - /** - * The base implementation of `_.isEqual` without support for `this` binding - * `customizer` functions. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {Function} [customizer] The function to customize comparing values. - * @param {boolean} [isLoose] Specify performing partial comparisons. - * @param {Array} [stackA] Tracks traversed `value` objects. - * @param {Array} [stackB] Tracks traversed `other` objects. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - */ - function baseIsEqual(value, other, customizer, isLoose, stackA, stackB) { - if (value === other) { - return true; - } - if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) { - return value !== value && other !== other; - } - return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB); - } - - /** - * A specialized version of `baseIsEqual` for arrays and objects which performs - * deep comparisons and tracks traversed objects enabling objects with circular - * references to be compared. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Function} [customizer] The function to customize comparing objects. - * @param {boolean} [isLoose] Specify performing partial comparisons. - * @param {Array} [stackA=[]] Tracks traversed `value` objects. - * @param {Array} [stackB=[]] Tracks traversed `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) { - var objIsArr = isArray(object), - othIsArr = isArray(other), - objTag = arrayTag, - othTag = arrayTag; - - if (!objIsArr) { - objTag = objToString.call(object); - if (objTag == argsTag) { - objTag = objectTag; - } else if (objTag != objectTag) { - objIsArr = isTypedArray(object); - } - } - if (!othIsArr) { - othTag = objToString.call(other); - if (othTag == argsTag) { - othTag = objectTag; - } else if (othTag != objectTag) { - othIsArr = isTypedArray(other); - } - } - var objIsObj = objTag == objectTag, - othIsObj = othTag == objectTag, - isSameTag = objTag == othTag; - - if (isSameTag && !(objIsArr || objIsObj)) { - return equalByTag(object, other, objTag); - } - if (!isLoose) { - var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), - othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); - - if (objIsWrapped || othIsWrapped) { - return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB); - } - } - if (!isSameTag) { - return false; - } - // Assume cyclic values are equal. - // For more information on detecting circular references see https://es5.github.io/#JO. - stackA || (stackA = []); - stackB || (stackB = []); - - var length = stackA.length; - while (length--) { - if (stackA[length] == object) { - return stackB[length] == other; - } - } - // Add `object` and `other` to the stack of traversed objects. - stackA.push(object); - stackB.push(other); - - var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB); - - stackA.pop(); - stackB.pop(); - - return result; - } - - /** - * The base implementation of `_.isMatch` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Object} object The object to inspect. - * @param {Array} matchData The propery names, values, and compare flags to match. - * @param {Function} [customizer] The function to customize comparing objects. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - */ - function baseIsMatch(object, matchData, customizer) { - var index = matchData.length, - length = index, - noCustomizer = !customizer; - - if (object == null) { - return !length; - } - object = toObject(object); - while (index--) { - var data = matchData[index]; - if ((noCustomizer && data[2]) - ? data[1] !== object[data[0]] - : !(data[0] in object) - ) { - return false; - } - } - while (++index < length) { - data = matchData[index]; - var key = data[0], - objValue = object[key], - srcValue = data[1]; - - if (noCustomizer && data[2]) { - if (objValue === undefined && !(key in object)) { - return false; - } - } else { - var result = customizer ? customizer(objValue, srcValue, key) : undefined; - if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, true) : result)) { - return false; - } - } - } - return true; - } - - /** - * The base implementation of `_.map` without support for callback shorthands - * and `this` binding. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function baseMap(collection, iteratee) { - var index = -1, - result = isArrayLike(collection) ? Array(collection.length) : []; - - baseEach(collection, function(value, key, collection) { - result[++index] = iteratee(value, key, collection); - }); - return result; - } - - /** - * The base implementation of `_.matches` which does not clone `source`. - * - * @private - * @param {Object} source The object of property values to match. - * @returns {Function} Returns the new function. - */ - function baseMatches(source) { - var matchData = getMatchData(source); - if (matchData.length == 1 && matchData[0][2]) { - var key = matchData[0][0], - value = matchData[0][1]; - - return function(object) { - if (object == null) { - return false; - } - return object[key] === value && (value !== undefined || (key in toObject(object))); - }; - } - return function(object) { - return baseIsMatch(object, matchData); - }; - } - - /** - * The base implementation of `_.matchesProperty` which does not clone `srcValue`. - * - * @private - * @param {string} path The path of the property to get. - * @param {*} srcValue The value to compare. - * @returns {Function} Returns the new function. - */ - function baseMatchesProperty(path, srcValue) { - var isArr = isArray(path), - isCommon = isKey(path) && isStrictComparable(srcValue), - pathKey = (path + ''); - - path = toPath(path); - return function(object) { - if (object == null) { - return false; - } - var key = pathKey; - object = toObject(object); - if ((isArr || !isCommon) && !(key in object)) { - object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1)); - if (object == null) { - return false; - } - key = last(path); - object = toObject(object); - } - return object[key] === srcValue - ? (srcValue !== undefined || (key in object)) - : baseIsEqual(srcValue, object[key], undefined, true); - }; - } - - /** - * The base implementation of `_.merge` without support for argument juggling, - * multiple sources, and `this` binding `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {Function} [customizer] The function to customize merged values. - * @param {Array} [stackA=[]] Tracks traversed source objects. - * @param {Array} [stackB=[]] Associates values with source counterparts. - * @returns {Object} Returns `object`. - */ - function baseMerge(object, source, customizer, stackA, stackB) { - if (!isObject(object)) { - return object; - } - var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)), - props = isSrcArr ? undefined : keys(source); - - arrayEach(props || source, function(srcValue, key) { - if (props) { - key = srcValue; - srcValue = source[key]; - } - if (isObjectLike(srcValue)) { - stackA || (stackA = []); - stackB || (stackB = []); - baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB); - } - else { - var value = object[key], - result = customizer ? customizer(value, srcValue, key, object, source) : undefined, - isCommon = result === undefined; - - if (isCommon) { - result = srcValue; - } - if ((result !== undefined || (isSrcArr && !(key in object))) && - (isCommon || (result === result ? (result !== value) : (value === value)))) { - object[key] = result; - } - } - }); - return object; - } - - /** - * A specialized version of `baseMerge` for arrays and objects which performs - * deep merges and tracks traversed objects enabling objects with circular - * references to be merged. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {string} key The key of the value to merge. - * @param {Function} mergeFunc The function to merge values. - * @param {Function} [customizer] The function to customize merged values. - * @param {Array} [stackA=[]] Tracks traversed source objects. - * @param {Array} [stackB=[]] Associates values with source counterparts. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) { - var length = stackA.length, - srcValue = source[key]; - - while (length--) { - if (stackA[length] == srcValue) { - object[key] = stackB[length]; - return; - } - } - var value = object[key], - result = customizer ? customizer(value, srcValue, key, object, source) : undefined, - isCommon = result === undefined; - - if (isCommon) { - result = srcValue; - if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) { - result = isArray(value) - ? value - : (isArrayLike(value) ? arrayCopy(value) : []); - } - else if (isPlainObject(srcValue) || isArguments(srcValue)) { - result = isArguments(value) - ? toPlainObject(value) - : (isPlainObject(value) ? value : {}); - } - else { - isCommon = false; - } - } - // Add the source value to the stack of traversed objects and associate - // it with its merged value. - stackA.push(srcValue); - stackB.push(result); - - if (isCommon) { - // Recursively merge objects and arrays (susceptible to call stack limits). - object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB); - } else if (result === result ? (result !== value) : (value === value)) { - object[key] = result; - } - } - - /** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new function. - */ - function baseProperty(key) { - return function(object) { - return object == null ? undefined : object[key]; - }; - } - - /** - * A specialized version of `baseProperty` which supports deep paths. - * - * @private - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new function. - */ - function basePropertyDeep(path) { - var pathKey = (path + ''); - path = toPath(path); - return function(object) { - return baseGet(object, path, pathKey); - }; - } - - /** - * The base implementation of `_.pullAt` without support for individual - * index arguments and capturing the removed elements. - * - * @private - * @param {Array} array The array to modify. - * @param {number[]} indexes The indexes of elements to remove. - * @returns {Array} Returns `array`. - */ - function basePullAt(array, indexes) { - var length = array ? indexes.length : 0; - while (length--) { - var index = indexes[length]; - if (index != previous && isIndex(index)) { - var previous = index; - splice.call(array, index, 1); - } - } - return array; - } - - /** - * The base implementation of `_.random` without support for argument juggling - * and returning floating-point numbers. - * - * @private - * @param {number} min The minimum possible value. - * @param {number} max The maximum possible value. - * @returns {number} Returns the random number. - */ - function baseRandom(min, max) { - return min + nativeFloor(nativeRandom() * (max - min + 1)); - } - - /** - * The base implementation of `_.reduce` and `_.reduceRight` without support - * for callback shorthands and `this` binding, which iterates over `collection` - * using the provided `eachFunc`. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} accumulator The initial value. - * @param {boolean} initFromCollection Specify using the first or last element - * of `collection` as the initial value. - * @param {Function} eachFunc The function to iterate over `collection`. - * @returns {*} Returns the accumulated value. - */ - function baseReduce(collection, iteratee, accumulator, initFromCollection, eachFunc) { - eachFunc(collection, function(value, index, collection) { - accumulator = initFromCollection - ? (initFromCollection = false, value) - : iteratee(accumulator, value, index, collection); - }); - return accumulator; - } - - /** - * The base implementation of `setData` without support for hot loop detection. - * - * @private - * @param {Function} func The function to associate metadata with. - * @param {*} data The metadata. - * @returns {Function} Returns `func`. - */ - var baseSetData = !metaMap ? identity : function(func, data) { - metaMap.set(func, data); - return func; - }; - - /** - * The base implementation of `_.slice` without an iteratee call guard. - * - * @private - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function baseSlice(array, start, end) { - var index = -1, - length = array.length; - - start = start == null ? 0 : (+start || 0); - if (start < 0) { - start = -start > length ? 0 : (length + start); - } - end = (end === undefined || end > length) ? length : (+end || 0); - if (end < 0) { - end += length; - } - length = start > end ? 0 : ((end - start) >>> 0); - start >>>= 0; - - var result = Array(length); - while (++index < length) { - result[index] = array[index + start]; - } - return result; - } - - /** - * The base implementation of `_.some` without support for callback shorthands - * and `this` binding. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ - function baseSome(collection, predicate) { - var result; - - baseEach(collection, function(value, index, collection) { - result = predicate(value, index, collection); - return !result; - }); - return !!result; - } - - /** - * The base implementation of `_.sortBy` which uses `comparer` to define - * the sort order of `array` and replaces criteria objects with their - * corresponding values. - * - * @private - * @param {Array} array The array to sort. - * @param {Function} comparer The function to define sort order. - * @returns {Array} Returns `array`. - */ - function baseSortBy(array, comparer) { - var length = array.length; - - array.sort(comparer); - while (length--) { - array[length] = array[length].value; - } - return array; - } - - /** - * The base implementation of `_.sortByOrder` without param guards. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. - * @param {boolean[]} orders The sort orders of `iteratees`. - * @returns {Array} Returns the new sorted array. - */ - function baseSortByOrder(collection, iteratees, orders) { - var callback = getCallback(), - index = -1; - - iteratees = arrayMap(iteratees, function(iteratee) { return callback(iteratee); }); - - var result = baseMap(collection, function(value) { - var criteria = arrayMap(iteratees, function(iteratee) { return iteratee(value); }); - return { 'criteria': criteria, 'index': ++index, 'value': value }; - }); - - return baseSortBy(result, function(object, other) { - return compareMultiple(object, other, orders); - }); - } - - /** - * The base implementation of `_.sum` without support for callback shorthands - * and `this` binding. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {number} Returns the sum. - */ - function baseSum(collection, iteratee) { - var result = 0; - baseEach(collection, function(value, index, collection) { - result += +iteratee(value, index, collection) || 0; - }); - return result; - } - - /** - * The base implementation of `_.uniq` without support for callback shorthands - * and `this` binding. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The function invoked per iteration. - * @returns {Array} Returns the new duplicate free array. - */ - function baseUniq(array, iteratee) { - var index = -1, - indexOf = getIndexOf(), - length = array.length, - isCommon = indexOf === baseIndexOf, - isLarge = isCommon && length >= LARGE_ARRAY_SIZE, - seen = isLarge ? createCache() : null, - result = []; - - if (seen) { - indexOf = cacheIndexOf; - isCommon = false; - } else { - isLarge = false; - seen = iteratee ? [] : result; - } - outer: - while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value, index, array) : value; - - if (isCommon && value === value) { - var seenIndex = seen.length; - while (seenIndex--) { - if (seen[seenIndex] === computed) { - continue outer; - } - } - if (iteratee) { - seen.push(computed); - } - result.push(value); - } - else if (indexOf(seen, computed, 0) < 0) { - if (iteratee || isLarge) { - seen.push(computed); - } - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.values` and `_.valuesIn` which creates an - * array of `object` property values corresponding to the property names - * of `props`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} props The property names to get values for. - * @returns {Object} Returns the array of property values. - */ - function baseValues(object, props) { - var index = -1, - length = props.length, - result = Array(length); - - while (++index < length) { - result[index] = object[props[index]]; - } - return result; - } - - /** - * The base implementation of `_.dropRightWhile`, `_.dropWhile`, `_.takeRightWhile`, - * and `_.takeWhile` without support for callback shorthands and `this` binding. - * - * @private - * @param {Array} array The array to query. - * @param {Function} predicate The function invoked per iteration. - * @param {boolean} [isDrop] Specify dropping elements instead of taking them. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Array} Returns the slice of `array`. - */ - function baseWhile(array, predicate, isDrop, fromRight) { - var length = array.length, - index = fromRight ? length : -1; - - while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) {} - return isDrop - ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length)) - : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index)); - } - - /** - * The base implementation of `wrapperValue` which returns the result of - * performing a sequence of actions on the unwrapped `value`, where each - * successive action is supplied the return value of the previous. - * - * @private - * @param {*} value The unwrapped value. - * @param {Array} actions Actions to peform to resolve the unwrapped value. - * @returns {*} Returns the resolved value. - */ - function baseWrapperValue(value, actions) { - var result = value; - if (result instanceof LazyWrapper) { - result = result.value(); - } - var index = -1, - length = actions.length; - - while (++index < length) { - var action = actions[index]; - result = action.func.apply(action.thisArg, arrayPush([result], action.args)); - } - return result; - } - - /** - * Performs a binary search of `array` to determine the index at which `value` - * should be inserted into `array` in order to maintain its sort order. - * - * @private - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {boolean} [retHighest] Specify returning the highest qualified index. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - */ - function binaryIndex(array, value, retHighest) { - var low = 0, - high = array ? array.length : low; - - if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) { - while (low < high) { - var mid = (low + high) >>> 1, - computed = array[mid]; - - if ((retHighest ? (computed <= value) : (computed < value)) && computed !== null) { - low = mid + 1; - } else { - high = mid; - } - } - return high; - } - return binaryIndexBy(array, value, identity, retHighest); - } - - /** - * This function is like `binaryIndex` except that it invokes `iteratee` for - * `value` and each element of `array` to compute their sort ranking. The - * iteratee is invoked with one argument; (value). - * - * @private - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function} iteratee The function invoked per iteration. - * @param {boolean} [retHighest] Specify returning the highest qualified index. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - */ - function binaryIndexBy(array, value, iteratee, retHighest) { - value = iteratee(value); - - var low = 0, - high = array ? array.length : 0, - valIsNaN = value !== value, - valIsNull = value === null, - valIsUndef = value === undefined; - - while (low < high) { - var mid = nativeFloor((low + high) / 2), - computed = iteratee(array[mid]), - isDef = computed !== undefined, - isReflexive = computed === computed; - - if (valIsNaN) { - var setLow = isReflexive || retHighest; - } else if (valIsNull) { - setLow = isReflexive && isDef && (retHighest || computed != null); - } else if (valIsUndef) { - setLow = isReflexive && (retHighest || isDef); - } else if (computed == null) { - setLow = false; - } else { - setLow = retHighest ? (computed <= value) : (computed < value); - } - if (setLow) { - low = mid + 1; - } else { - high = mid; - } - } - return nativeMin(high, MAX_ARRAY_INDEX); - } - - /** - * A specialized version of `baseCallback` which only supports `this` binding - * and specifying the number of arguments to provide to `func`. - * - * @private - * @param {Function} func The function to bind. - * @param {*} thisArg The `this` binding of `func`. - * @param {number} [argCount] The number of arguments to provide to `func`. - * @returns {Function} Returns the callback. - */ - function bindCallback(func, thisArg, argCount) { - if (typeof func != 'function') { - return identity; - } - if (thisArg === undefined) { - return func; - } - switch (argCount) { - case 1: return function(value) { - return func.call(thisArg, value); - }; - case 3: return function(value, index, collection) { - return func.call(thisArg, value, index, collection); - }; - case 4: return function(accumulator, value, index, collection) { - return func.call(thisArg, accumulator, value, index, collection); - }; - case 5: return function(value, other, key, object, source) { - return func.call(thisArg, value, other, key, object, source); - }; - } - return function() { - return func.apply(thisArg, arguments); - }; - } - - /** - * Creates a clone of the given array buffer. - * - * @private - * @param {ArrayBuffer} buffer The array buffer to clone. - * @returns {ArrayBuffer} Returns the cloned array buffer. - */ - function bufferClone(buffer) { - var result = new ArrayBuffer(buffer.byteLength), - view = new Uint8Array(result); - - view.set(new Uint8Array(buffer)); - return result; - } - - /** - * Creates an array that is the composition of partially applied arguments, - * placeholders, and provided arguments into a single array of arguments. - * - * @private - * @param {Array|Object} args The provided arguments. - * @param {Array} partials The arguments to prepend to those provided. - * @param {Array} holders The `partials` placeholder indexes. - * @returns {Array} Returns the new array of composed arguments. - */ - function composeArgs(args, partials, holders) { - var holdersLength = holders.length, - argsIndex = -1, - argsLength = nativeMax(args.length - holdersLength, 0), - leftIndex = -1, - leftLength = partials.length, - result = Array(leftLength + argsLength); - - while (++leftIndex < leftLength) { - result[leftIndex] = partials[leftIndex]; - } - while (++argsIndex < holdersLength) { - result[holders[argsIndex]] = args[argsIndex]; - } - while (argsLength--) { - result[leftIndex++] = args[argsIndex++]; - } - return result; - } - - /** - * This function is like `composeArgs` except that the arguments composition - * is tailored for `_.partialRight`. - * - * @private - * @param {Array|Object} args The provided arguments. - * @param {Array} partials The arguments to append to those provided. - * @param {Array} holders The `partials` placeholder indexes. - * @returns {Array} Returns the new array of composed arguments. - */ - function composeArgsRight(args, partials, holders) { - var holdersIndex = -1, - holdersLength = holders.length, - argsIndex = -1, - argsLength = nativeMax(args.length - holdersLength, 0), - rightIndex = -1, - rightLength = partials.length, - result = Array(argsLength + rightLength); - - while (++argsIndex < argsLength) { - result[argsIndex] = args[argsIndex]; - } - var offset = argsIndex; - while (++rightIndex < rightLength) { - result[offset + rightIndex] = partials[rightIndex]; - } - while (++holdersIndex < holdersLength) { - result[offset + holders[holdersIndex]] = args[argsIndex++]; - } - return result; - } - - /** - * Creates a `_.countBy`, `_.groupBy`, `_.indexBy`, or `_.partition` function. - * - * @private - * @param {Function} setter The function to set keys and values of the accumulator object. - * @param {Function} [initializer] The function to initialize the accumulator object. - * @returns {Function} Returns the new aggregator function. - */ - function createAggregator(setter, initializer) { - return function(collection, iteratee, thisArg) { - var result = initializer ? initializer() : {}; - iteratee = getCallback(iteratee, thisArg, 3); - - if (isArray(collection)) { - var index = -1, - length = collection.length; - - while (++index < length) { - var value = collection[index]; - setter(result, value, iteratee(value, index, collection), collection); - } - } else { - baseEach(collection, function(value, key, collection) { - setter(result, value, iteratee(value, key, collection), collection); - }); - } - return result; - }; - } - - /** - * Creates a `_.assign`, `_.defaults`, or `_.merge` function. - * - * @private - * @param {Function} assigner The function to assign values. - * @returns {Function} Returns the new assigner function. - */ - function createAssigner(assigner) { - return restParam(function(object, sources) { - var index = -1, - length = object == null ? 0 : sources.length, - customizer = length > 2 ? sources[length - 2] : undefined, - guard = length > 2 ? sources[2] : undefined, - thisArg = length > 1 ? sources[length - 1] : undefined; - - if (typeof customizer == 'function') { - customizer = bindCallback(customizer, thisArg, 5); - length -= 2; - } else { - customizer = typeof thisArg == 'function' ? thisArg : undefined; - length -= (customizer ? 1 : 0); - } - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - customizer = length < 3 ? undefined : customizer; - length = 1; - } - while (++index < length) { - var source = sources[index]; - if (source) { - assigner(object, source, customizer); - } - } - return object; - }); - } - - /** - * Creates a `baseEach` or `baseEachRight` function. - * - * @private - * @param {Function} eachFunc The function to iterate over a collection. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseEach(eachFunc, fromRight) { - return function(collection, iteratee) { - var length = collection ? getLength(collection) : 0; - if (!isLength(length)) { - return eachFunc(collection, iteratee); - } - var index = fromRight ? length : -1, - iterable = toObject(collection); - - while ((fromRight ? index-- : ++index < length)) { - if (iteratee(iterable[index], index, iterable) === false) { - break; - } - } - return collection; - }; - } - - /** - * Creates a base function for `_.forIn` or `_.forInRight`. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseFor(fromRight) { - return function(object, iteratee, keysFunc) { - var iterable = toObject(object), - props = keysFunc(object), - length = props.length, - index = fromRight ? length : -1; - - while ((fromRight ? index-- : ++index < length)) { - var key = props[index]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; - } - - /** - * Creates a function that wraps `func` and invokes it with the `this` - * binding of `thisArg`. - * - * @private - * @param {Function} func The function to bind. - * @param {*} [thisArg] The `this` binding of `func`. - * @returns {Function} Returns the new bound function. - */ - function createBindWrapper(func, thisArg) { - var Ctor = createCtorWrapper(func); - - function wrapper() { - var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; - return fn.apply(thisArg, arguments); - } - return wrapper; - } - - /** - * Creates a `Set` cache object to optimize linear searches of large arrays. - * - * @private - * @param {Array} [values] The values to cache. - * @returns {null|Object} Returns the new cache object if `Set` is supported, else `null`. - */ - function createCache(values) { - return (nativeCreate && Set) ? new SetCache(values) : null; - } - - /** - * Creates a function that produces compound words out of the words in a - * given string. - * - * @private - * @param {Function} callback The function to combine each word. - * @returns {Function} Returns the new compounder function. - */ - function createCompounder(callback) { - return function(string) { - var index = -1, - array = words(deburr(string)), - length = array.length, - result = ''; - - while (++index < length) { - result = callback(result, array[index], index); - } - return result; - }; - } - - /** - * Creates a function that produces an instance of `Ctor` regardless of - * whether it was invoked as part of a `new` expression or by `call` or `apply`. - * - * @private - * @param {Function} Ctor The constructor to wrap. - * @returns {Function} Returns the new wrapped function. - */ - function createCtorWrapper(Ctor) { - return function() { - // Use a `switch` statement to work with class constructors. - // See http://ecma-international.org/ecma-262/6.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist - // for more details. - var args = arguments; - switch (args.length) { - case 0: return new Ctor; - case 1: return new Ctor(args[0]); - case 2: return new Ctor(args[0], args[1]); - case 3: return new Ctor(args[0], args[1], args[2]); - case 4: return new Ctor(args[0], args[1], args[2], args[3]); - case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]); - case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); - case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); - } - var thisBinding = baseCreate(Ctor.prototype), - result = Ctor.apply(thisBinding, args); - - // Mimic the constructor's `return` behavior. - // See https://es5.github.io/#x13.2.2 for more details. - return isObject(result) ? result : thisBinding; - }; - } - - /** - * Creates a `_.curry` or `_.curryRight` function. - * - * @private - * @param {boolean} flag The curry bit flag. - * @returns {Function} Returns the new curry function. - */ - function createCurry(flag) { - function curryFunc(func, arity, guard) { - if (guard && isIterateeCall(func, arity, guard)) { - arity = undefined; - } - var result = createWrapper(func, flag, undefined, undefined, undefined, undefined, undefined, arity); - result.placeholder = curryFunc.placeholder; - return result; - } - return curryFunc; - } - - /** - * Creates a `_.defaults` or `_.defaultsDeep` function. - * - * @private - * @param {Function} assigner The function to assign values. - * @param {Function} customizer The function to customize assigned values. - * @returns {Function} Returns the new defaults function. - */ - function createDefaults(assigner, customizer) { - return restParam(function(args) { - var object = args[0]; - if (object == null) { - return object; - } - args.push(customizer); - return assigner.apply(undefined, args); - }); - } - - /** - * Creates a `_.max` or `_.min` function. - * - * @private - * @param {Function} comparator The function used to compare values. - * @param {*} exValue The initial extremum value. - * @returns {Function} Returns the new extremum function. - */ - function createExtremum(comparator, exValue) { - return function(collection, iteratee, thisArg) { - if (thisArg && isIterateeCall(collection, iteratee, thisArg)) { - iteratee = undefined; - } - iteratee = getCallback(iteratee, thisArg, 3); - if (iteratee.length == 1) { - collection = isArray(collection) ? collection : toIterable(collection); - var result = arrayExtremum(collection, iteratee, comparator, exValue); - if (!(collection.length && result === exValue)) { - return result; - } - } - return baseExtremum(collection, iteratee, comparator, exValue); - }; - } - - /** - * Creates a `_.find` or `_.findLast` function. - * - * @private - * @param {Function} eachFunc The function to iterate over a collection. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new find function. - */ - function createFind(eachFunc, fromRight) { - return function(collection, predicate, thisArg) { - predicate = getCallback(predicate, thisArg, 3); - if (isArray(collection)) { - var index = baseFindIndex(collection, predicate, fromRight); - return index > -1 ? collection[index] : undefined; - } - return baseFind(collection, predicate, eachFunc); - }; - } - - /** - * Creates a `_.findIndex` or `_.findLastIndex` function. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new find function. - */ - function createFindIndex(fromRight) { - return function(array, predicate, thisArg) { - if (!(array && array.length)) { - return -1; - } - predicate = getCallback(predicate, thisArg, 3); - return baseFindIndex(array, predicate, fromRight); - }; - } - - /** - * Creates a `_.findKey` or `_.findLastKey` function. - * - * @private - * @param {Function} objectFunc The function to iterate over an object. - * @returns {Function} Returns the new find function. - */ - function createFindKey(objectFunc) { - return function(object, predicate, thisArg) { - predicate = getCallback(predicate, thisArg, 3); - return baseFind(object, predicate, objectFunc, true); - }; - } - - /** - * Creates a `_.flow` or `_.flowRight` function. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new flow function. - */ - function createFlow(fromRight) { - return function() { - var wrapper, - length = arguments.length, - index = fromRight ? length : -1, - leftIndex = 0, - funcs = Array(length); - - while ((fromRight ? index-- : ++index < length)) { - var func = funcs[leftIndex++] = arguments[index]; - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - if (!wrapper && LodashWrapper.prototype.thru && getFuncName(func) == 'wrapper') { - wrapper = new LodashWrapper([], true); - } - } - index = wrapper ? -1 : length; - while (++index < length) { - func = funcs[index]; - - var funcName = getFuncName(func), - data = funcName == 'wrapper' ? getData(func) : undefined; - - if (data && isLaziable(data[0]) && data[1] == (ARY_FLAG | CURRY_FLAG | PARTIAL_FLAG | REARG_FLAG) && !data[4].length && data[9] == 1) { - wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); - } else { - wrapper = (func.length == 1 && isLaziable(func)) ? wrapper[funcName]() : wrapper.thru(func); - } - } - return function() { - var args = arguments, - value = args[0]; - - if (wrapper && args.length == 1 && isArray(value) && value.length >= LARGE_ARRAY_SIZE) { - return wrapper.plant(value).value(); - } - var index = 0, - result = length ? funcs[index].apply(this, args) : value; - - while (++index < length) { - result = funcs[index].call(this, result); - } - return result; - }; - }; - } - - /** - * Creates a function for `_.forEach` or `_.forEachRight`. - * - * @private - * @param {Function} arrayFunc The function to iterate over an array. - * @param {Function} eachFunc The function to iterate over a collection. - * @returns {Function} Returns the new each function. - */ - function createForEach(arrayFunc, eachFunc) { - return function(collection, iteratee, thisArg) { - return (typeof iteratee == 'function' && thisArg === undefined && isArray(collection)) - ? arrayFunc(collection, iteratee) - : eachFunc(collection, bindCallback(iteratee, thisArg, 3)); - }; - } - - /** - * Creates a function for `_.forIn` or `_.forInRight`. - * - * @private - * @param {Function} objectFunc The function to iterate over an object. - * @returns {Function} Returns the new each function. - */ - function createForIn(objectFunc) { - return function(object, iteratee, thisArg) { - if (typeof iteratee != 'function' || thisArg !== undefined) { - iteratee = bindCallback(iteratee, thisArg, 3); - } - return objectFunc(object, iteratee, keysIn); - }; - } - - /** - * Creates a function for `_.forOwn` or `_.forOwnRight`. - * - * @private - * @param {Function} objectFunc The function to iterate over an object. - * @returns {Function} Returns the new each function. - */ - function createForOwn(objectFunc) { - return function(object, iteratee, thisArg) { - if (typeof iteratee != 'function' || thisArg !== undefined) { - iteratee = bindCallback(iteratee, thisArg, 3); - } - return objectFunc(object, iteratee); - }; - } - - /** - * Creates a function for `_.mapKeys` or `_.mapValues`. - * - * @private - * @param {boolean} [isMapKeys] Specify mapping keys instead of values. - * @returns {Function} Returns the new map function. - */ - function createObjectMapper(isMapKeys) { - return function(object, iteratee, thisArg) { - var result = {}; - iteratee = getCallback(iteratee, thisArg, 3); - - baseForOwn(object, function(value, key, object) { - var mapped = iteratee(value, key, object); - key = isMapKeys ? mapped : key; - value = isMapKeys ? value : mapped; - result[key] = value; - }); - return result; - }; - } - - /** - * Creates a function for `_.padLeft` or `_.padRight`. - * - * @private - * @param {boolean} [fromRight] Specify padding from the right. - * @returns {Function} Returns the new pad function. - */ - function createPadDir(fromRight) { - return function(string, length, chars) { - string = baseToString(string); - return (fromRight ? string : '') + createPadding(string, length, chars) + (fromRight ? '' : string); - }; - } - - /** - * Creates a `_.partial` or `_.partialRight` function. - * - * @private - * @param {boolean} flag The partial bit flag. - * @returns {Function} Returns the new partial function. - */ - function createPartial(flag) { - var partialFunc = restParam(function(func, partials) { - var holders = replaceHolders(partials, partialFunc.placeholder); - return createWrapper(func, flag, undefined, partials, holders); - }); - return partialFunc; - } - - /** - * Creates a function for `_.reduce` or `_.reduceRight`. - * - * @private - * @param {Function} arrayFunc The function to iterate over an array. - * @param {Function} eachFunc The function to iterate over a collection. - * @returns {Function} Returns the new each function. - */ - function createReduce(arrayFunc, eachFunc) { - return function(collection, iteratee, accumulator, thisArg) { - var initFromArray = arguments.length < 3; - return (typeof iteratee == 'function' && thisArg === undefined && isArray(collection)) - ? arrayFunc(collection, iteratee, accumulator, initFromArray) - : baseReduce(collection, getCallback(iteratee, thisArg, 4), accumulator, initFromArray, eachFunc); - }; - } - - /** - * Creates a function that wraps `func` and invokes it with optional `this` - * binding of, partial application, and currying. - * - * @private - * @param {Function|string} func The function or method name to reference. - * @param {number} bitmask The bitmask of flags. See `createWrapper` for more details. - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to prepend to those provided to the new function. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [partialsRight] The arguments to append to those provided to the new function. - * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createHybridWrapper(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { - var isAry = bitmask & ARY_FLAG, - isBind = bitmask & BIND_FLAG, - isBindKey = bitmask & BIND_KEY_FLAG, - isCurry = bitmask & CURRY_FLAG, - isCurryBound = bitmask & CURRY_BOUND_FLAG, - isCurryRight = bitmask & CURRY_RIGHT_FLAG, - Ctor = isBindKey ? undefined : createCtorWrapper(func); - - function wrapper() { - // Avoid `arguments` object use disqualifying optimizations by - // converting it to an array before providing it to other functions. - var length = arguments.length, - index = length, - args = Array(length); - - while (index--) { - args[index] = arguments[index]; - } - if (partials) { - args = composeArgs(args, partials, holders); - } - if (partialsRight) { - args = composeArgsRight(args, partialsRight, holdersRight); - } - if (isCurry || isCurryRight) { - var placeholder = wrapper.placeholder, - argsHolders = replaceHolders(args, placeholder); - - length -= argsHolders.length; - if (length < arity) { - var newArgPos = argPos ? arrayCopy(argPos) : undefined, - newArity = nativeMax(arity - length, 0), - newsHolders = isCurry ? argsHolders : undefined, - newHoldersRight = isCurry ? undefined : argsHolders, - newPartials = isCurry ? args : undefined, - newPartialsRight = isCurry ? undefined : args; - - bitmask |= (isCurry ? PARTIAL_FLAG : PARTIAL_RIGHT_FLAG); - bitmask &= ~(isCurry ? PARTIAL_RIGHT_FLAG : PARTIAL_FLAG); - - if (!isCurryBound) { - bitmask &= ~(BIND_FLAG | BIND_KEY_FLAG); - } - var newData = [func, bitmask, thisArg, newPartials, newsHolders, newPartialsRight, newHoldersRight, newArgPos, ary, newArity], - result = createHybridWrapper.apply(undefined, newData); - - if (isLaziable(func)) { - setData(result, newData); - } - result.placeholder = placeholder; - return result; - } - } - var thisBinding = isBind ? thisArg : this, - fn = isBindKey ? thisBinding[func] : func; - - if (argPos) { - args = reorder(args, argPos); - } - if (isAry && ary < args.length) { - args.length = ary; - } - if (this && this !== root && this instanceof wrapper) { - fn = Ctor || createCtorWrapper(func); - } - return fn.apply(thisBinding, args); - } - return wrapper; - } - - /** - * Creates the padding required for `string` based on the given `length`. - * The `chars` string is truncated if the number of characters exceeds `length`. - * - * @private - * @param {string} string The string to create padding for. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the pad for `string`. - */ - function createPadding(string, length, chars) { - var strLength = string.length; - length = +length; - - if (strLength >= length || !nativeIsFinite(length)) { - return ''; - } - var padLength = length - strLength; - chars = chars == null ? ' ' : (chars + ''); - return repeat(chars, nativeCeil(padLength / chars.length)).slice(0, padLength); - } - - /** - * Creates a function that wraps `func` and invokes it with the optional `this` - * binding of `thisArg` and the `partials` prepended to those provided to - * the wrapper. - * - * @private - * @param {Function} func The function to partially apply arguments to. - * @param {number} bitmask The bitmask of flags. See `createWrapper` for more details. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} partials The arguments to prepend to those provided to the new function. - * @returns {Function} Returns the new bound function. - */ - function createPartialWrapper(func, bitmask, thisArg, partials) { - var isBind = bitmask & BIND_FLAG, - Ctor = createCtorWrapper(func); - - function wrapper() { - // Avoid `arguments` object use disqualifying optimizations by - // converting it to an array before providing it `func`. - var argsIndex = -1, - argsLength = arguments.length, - leftIndex = -1, - leftLength = partials.length, - args = Array(leftLength + argsLength); - - while (++leftIndex < leftLength) { - args[leftIndex] = partials[leftIndex]; - } - while (argsLength--) { - args[leftIndex++] = arguments[++argsIndex]; - } - var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; - return fn.apply(isBind ? thisArg : this, args); - } - return wrapper; - } - - /** - * Creates a `_.ceil`, `_.floor`, or `_.round` function. - * - * @private - * @param {string} methodName The name of the `Math` method to use when rounding. - * @returns {Function} Returns the new round function. - */ - function createRound(methodName) { - var func = Math[methodName]; - return function(number, precision) { - precision = precision === undefined ? 0 : (+precision || 0); - if (precision) { - precision = pow(10, precision); - return func(number * precision) / precision; - } - return func(number); - }; - } - - /** - * Creates a `_.sortedIndex` or `_.sortedLastIndex` function. - * - * @private - * @param {boolean} [retHighest] Specify returning the highest qualified index. - * @returns {Function} Returns the new index function. - */ - function createSortedIndex(retHighest) { - return function(array, value, iteratee, thisArg) { - var callback = getCallback(iteratee); - return (iteratee == null && callback === baseCallback) - ? binaryIndex(array, value, retHighest) - : binaryIndexBy(array, value, callback(iteratee, thisArg, 1), retHighest); - }; - } - - /** - * Creates a function that either curries or invokes `func` with optional - * `this` binding and partially applied arguments. - * - * @private - * @param {Function|string} func The function or method name to reference. - * @param {number} bitmask The bitmask of flags. - * The bitmask may be composed of the following flags: - * 1 - `_.bind` - * 2 - `_.bindKey` - * 4 - `_.curry` or `_.curryRight` of a bound function - * 8 - `_.curry` - * 16 - `_.curryRight` - * 32 - `_.partial` - * 64 - `_.partialRight` - * 128 - `_.rearg` - * 256 - `_.ary` - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to be partially applied. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createWrapper(func, bitmask, thisArg, partials, holders, argPos, ary, arity) { - var isBindKey = bitmask & BIND_KEY_FLAG; - if (!isBindKey && typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - var length = partials ? partials.length : 0; - if (!length) { - bitmask &= ~(PARTIAL_FLAG | PARTIAL_RIGHT_FLAG); - partials = holders = undefined; - } - length -= (holders ? holders.length : 0); - if (bitmask & PARTIAL_RIGHT_FLAG) { - var partialsRight = partials, - holdersRight = holders; - - partials = holders = undefined; - } - var data = isBindKey ? undefined : getData(func), - newData = [func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity]; - - if (data) { - mergeData(newData, data); - bitmask = newData[1]; - arity = newData[9]; - } - newData[9] = arity == null - ? (isBindKey ? 0 : func.length) - : (nativeMax(arity - length, 0) || 0); - - if (bitmask == BIND_FLAG) { - var result = createBindWrapper(newData[0], newData[2]); - } else if ((bitmask == PARTIAL_FLAG || bitmask == (BIND_FLAG | PARTIAL_FLAG)) && !newData[4].length) { - result = createPartialWrapper.apply(undefined, newData); - } else { - result = createHybridWrapper.apply(undefined, newData); - } - var setter = data ? baseSetData : setData; - return setter(result, newData); - } - - /** - * A specialized version of `baseIsEqualDeep` for arrays with support for - * partial deep comparisons. - * - * @private - * @param {Array} array The array to compare. - * @param {Array} other The other array to compare. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Function} [customizer] The function to customize comparing arrays. - * @param {boolean} [isLoose] Specify performing partial comparisons. - * @param {Array} [stackA] Tracks traversed `value` objects. - * @param {Array} [stackB] Tracks traversed `other` objects. - * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. - */ - function equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) { - var index = -1, - arrLength = array.length, - othLength = other.length; - - if (arrLength != othLength && !(isLoose && othLength > arrLength)) { - return false; - } - // Ignore non-index properties. - while (++index < arrLength) { - var arrValue = array[index], - othValue = other[index], - result = customizer ? customizer(isLoose ? othValue : arrValue, isLoose ? arrValue : othValue, index) : undefined; - - if (result !== undefined) { - if (result) { - continue; - } - return false; - } - // Recursively compare arrays (susceptible to call stack limits). - if (isLoose) { - if (!arraySome(other, function(othValue) { - return arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB); - })) { - return false; - } - } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB))) { - return false; - } - } - return true; - } - - /** - * A specialized version of `baseIsEqualDeep` for comparing objects of - * the same `toStringTag`. - * - * **Note:** This function only supports comparing values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {string} tag The `toStringTag` of the objects to compare. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalByTag(object, other, tag) { - switch (tag) { - case boolTag: - case dateTag: - // Coerce dates and booleans to numbers, dates to milliseconds and booleans - // to `1` or `0` treating invalid dates coerced to `NaN` as not equal. - return +object == +other; - - case errorTag: - return object.name == other.name && object.message == other.message; - - case numberTag: - // Treat `NaN` vs. `NaN` as equal. - return (object != +object) - ? other != +other - : object == +other; - - case regexpTag: - case stringTag: - // Coerce regexes to strings and treat strings primitives and string - // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details. - return object == (other + ''); - } - return false; - } - - /** - * A specialized version of `baseIsEqualDeep` for objects with support for - * partial deep comparisons. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Function} [customizer] The function to customize comparing values. - * @param {boolean} [isLoose] Specify performing partial comparisons. - * @param {Array} [stackA] Tracks traversed `value` objects. - * @param {Array} [stackB] Tracks traversed `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) { - var objProps = keys(object), - objLength = objProps.length, - othProps = keys(other), - othLength = othProps.length; - - if (objLength != othLength && !isLoose) { - return false; - } - var index = objLength; - while (index--) { - var key = objProps[index]; - if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) { - return false; - } - } - var skipCtor = isLoose; - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], - othValue = other[key], - result = customizer ? customizer(isLoose ? othValue : objValue, isLoose? objValue : othValue, key) : undefined; - - // Recursively compare objects (susceptible to call stack limits). - if (!(result === undefined ? equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB) : result)) { - return false; - } - skipCtor || (skipCtor = key == 'constructor'); - } - if (!skipCtor) { - var objCtor = object.constructor, - othCtor = other.constructor; - - // Non `Object` object instances with different constructors are not equal. - if (objCtor != othCtor && - ('constructor' in object && 'constructor' in other) && - !(typeof objCtor == 'function' && objCtor instanceof objCtor && - typeof othCtor == 'function' && othCtor instanceof othCtor)) { - return false; - } - } - return true; - } - - /** - * Gets the appropriate "callback" function. If the `_.callback` method is - * customized this function returns the custom method, otherwise it returns - * the `baseCallback` function. If arguments are provided the chosen function - * is invoked with them and its result is returned. - * - * @private - * @returns {Function} Returns the chosen function or its result. - */ - function getCallback(func, thisArg, argCount) { - var result = lodash.callback || callback; - result = result === callback ? baseCallback : result; - return argCount ? result(func, thisArg, argCount) : result; - } - - /** - * Gets metadata for `func`. - * - * @private - * @param {Function} func The function to query. - * @returns {*} Returns the metadata for `func`. - */ - var getData = !metaMap ? noop : function(func) { - return metaMap.get(func); - }; - - /** - * Gets the name of `func`. - * - * @private - * @param {Function} func The function to query. - * @returns {string} Returns the function name. - */ - function getFuncName(func) { - var result = (func.name + ''), - array = realNames[result], - length = array ? array.length : 0; - - while (length--) { - var data = array[length], - otherFunc = data.func; - if (otherFunc == null || otherFunc == func) { - return data.name; - } - } - return result; - } - - /** - * Gets the appropriate "indexOf" function. If the `_.indexOf` method is - * customized this function returns the custom method, otherwise it returns - * the `baseIndexOf` function. If arguments are provided the chosen function - * is invoked with them and its result is returned. - * - * @private - * @returns {Function|number} Returns the chosen function or its result. - */ - function getIndexOf(collection, target, fromIndex) { - var result = lodash.indexOf || indexOf; - result = result === indexOf ? baseIndexOf : result; - return collection ? result(collection, target, fromIndex) : result; - } - - /** - * Gets the "length" property value of `object`. - * - * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) - * that affects Safari on at least iOS 8.1-8.3 ARM64. - * - * @private - * @param {Object} object The object to query. - * @returns {*} Returns the "length" value. - */ - var getLength = baseProperty('length'); - - /** - * Gets the propery names, values, and compare flags of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the match data of `object`. - */ - function getMatchData(object) { - var result = pairs(object), - length = result.length; - - while (length--) { - result[length][2] = isStrictComparable(result[length][1]); - } - return result; - } - - /** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ - function getNative(object, key) { - var value = object == null ? undefined : object[key]; - return isNative(value) ? value : undefined; - } - - /** - * Gets the view, applying any `transforms` to the `start` and `end` positions. - * - * @private - * @param {number} start The start of the view. - * @param {number} end The end of the view. - * @param {Array} transforms The transformations to apply to the view. - * @returns {Object} Returns an object containing the `start` and `end` - * positions of the view. - */ - function getView(start, end, transforms) { - var index = -1, - length = transforms.length; - - while (++index < length) { - var data = transforms[index], - size = data.size; - - switch (data.type) { - case 'drop': start += size; break; - case 'dropRight': end -= size; break; - case 'take': end = nativeMin(end, start + size); break; - case 'takeRight': start = nativeMax(start, end - size); break; - } - } - return { 'start': start, 'end': end }; - } - - /** - * Initializes an array clone. - * - * @private - * @param {Array} array The array to clone. - * @returns {Array} Returns the initialized clone. - */ - function initCloneArray(array) { - var length = array.length, - result = new array.constructor(length); - - // Add array properties assigned by `RegExp#exec`. - if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { - result.index = array.index; - result.input = array.input; - } - return result; - } - - /** - * Initializes an object clone. - * - * @private - * @param {Object} object The object to clone. - * @returns {Object} Returns the initialized clone. - */ - function initCloneObject(object) { - var Ctor = object.constructor; - if (!(typeof Ctor == 'function' && Ctor instanceof Ctor)) { - Ctor = Object; - } - return new Ctor; - } - - /** - * Initializes an object clone based on its `toStringTag`. - * - * **Note:** This function only supports cloning values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to clone. - * @param {string} tag The `toStringTag` of the object to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the initialized clone. - */ - function initCloneByTag(object, tag, isDeep) { - var Ctor = object.constructor; - switch (tag) { - case arrayBufferTag: - return bufferClone(object); - - case boolTag: - case dateTag: - return new Ctor(+object); - - case float32Tag: case float64Tag: - case int8Tag: case int16Tag: case int32Tag: - case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: - var buffer = object.buffer; - return new Ctor(isDeep ? bufferClone(buffer) : buffer, object.byteOffset, object.length); - - case numberTag: - case stringTag: - return new Ctor(object); - - case regexpTag: - var result = new Ctor(object.source, reFlags.exec(object)); - result.lastIndex = object.lastIndex; - } - return result; - } - - /** - * Invokes the method at `path` on `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path of the method to invoke. - * @param {Array} args The arguments to invoke the method with. - * @returns {*} Returns the result of the invoked method. - */ - function invokePath(object, path, args) { - if (object != null && !isKey(path, object)) { - path = toPath(path); - object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1)); - path = last(path); - } - var func = object == null ? object : object[path]; - return func == null ? undefined : func.apply(object, args); - } - - /** - * Checks if `value` is array-like. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - */ - function isArrayLike(value) { - return value != null && isLength(getLength(value)); - } - - /** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ - function isIndex(value, length) { - value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; - length = length == null ? MAX_SAFE_INTEGER : length; - return value > -1 && value % 1 == 0 && value < length; - } - - /** - * Checks if the provided arguments are from an iteratee call. - * - * @private - * @param {*} value The potential iteratee value argument. - * @param {*} index The potential iteratee index or key argument. - * @param {*} object The potential iteratee object argument. - * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`. - */ - function isIterateeCall(value, index, object) { - if (!isObject(object)) { - return false; - } - var type = typeof index; - if (type == 'number' - ? (isArrayLike(object) && isIndex(index, object.length)) - : (type == 'string' && index in object)) { - var other = object[index]; - return value === value ? (value === other) : (other !== other); - } - return false; - } - - /** - * Checks if `value` is a property name and not a property path. - * - * @private - * @param {*} value The value to check. - * @param {Object} [object] The object to query keys on. - * @returns {boolean} Returns `true` if `value` is a property name, else `false`. - */ - function isKey(value, object) { - var type = typeof value; - if ((type == 'string' && reIsPlainProp.test(value)) || type == 'number') { - return true; - } - if (isArray(value)) { - return false; - } - var result = !reIsDeepProp.test(value); - return result || (object != null && value in toObject(object)); - } - - /** - * Checks if `func` has a lazy counterpart. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` has a lazy counterpart, else `false`. - */ - function isLaziable(func) { - var funcName = getFuncName(func), - other = lodash[funcName]; - - if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { - return false; - } - if (func === other) { - return true; - } - var data = getData(other); - return !!data && func === data[0]; - } - - /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - */ - function isLength(value) { - return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } - - /** - * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` if suitable for strict - * equality comparisons, else `false`. - */ - function isStrictComparable(value) { - return value === value && !isObject(value); - } - - /** - * Merges the function metadata of `source` into `data`. - * - * Merging metadata reduces the number of wrappers required to invoke a function. - * This is possible because methods like `_.bind`, `_.curry`, and `_.partial` - * may be applied regardless of execution order. Methods like `_.ary` and `_.rearg` - * augment function arguments, making the order in which they are executed important, - * preventing the merging of metadata. However, we make an exception for a safe - * common case where curried functions have `_.ary` and or `_.rearg` applied. - * - * @private - * @param {Array} data The destination metadata. - * @param {Array} source The source metadata. - * @returns {Array} Returns `data`. - */ - function mergeData(data, source) { - var bitmask = data[1], - srcBitmask = source[1], - newBitmask = bitmask | srcBitmask, - isCommon = newBitmask < ARY_FLAG; - - var isCombo = - (srcBitmask == ARY_FLAG && bitmask == CURRY_FLAG) || - (srcBitmask == ARY_FLAG && bitmask == REARG_FLAG && data[7].length <= source[8]) || - (srcBitmask == (ARY_FLAG | REARG_FLAG) && bitmask == CURRY_FLAG); - - // Exit early if metadata can't be merged. - if (!(isCommon || isCombo)) { - return data; - } - // Use source `thisArg` if available. - if (srcBitmask & BIND_FLAG) { - data[2] = source[2]; - // Set when currying a bound function. - newBitmask |= (bitmask & BIND_FLAG) ? 0 : CURRY_BOUND_FLAG; - } - // Compose partial arguments. - var value = source[3]; - if (value) { - var partials = data[3]; - data[3] = partials ? composeArgs(partials, value, source[4]) : arrayCopy(value); - data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : arrayCopy(source[4]); - } - // Compose partial right arguments. - value = source[5]; - if (value) { - partials = data[5]; - data[5] = partials ? composeArgsRight(partials, value, source[6]) : arrayCopy(value); - data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : arrayCopy(source[6]); - } - // Use source `argPos` if available. - value = source[7]; - if (value) { - data[7] = arrayCopy(value); - } - // Use source `ary` if it's smaller. - if (srcBitmask & ARY_FLAG) { - data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); - } - // Use source `arity` if one is not provided. - if (data[9] == null) { - data[9] = source[9]; - } - // Use source `func` and merge bitmasks. - data[0] = source[0]; - data[1] = newBitmask; - - return data; - } - - /** - * Used by `_.defaultsDeep` to customize its `_.merge` use. - * - * @private - * @param {*} objectValue The destination object property value. - * @param {*} sourceValue The source object property value. - * @returns {*} Returns the value to assign to the destination object. - */ - function mergeDefaults(objectValue, sourceValue) { - return objectValue === undefined ? sourceValue : merge(objectValue, sourceValue, mergeDefaults); - } - - /** - * A specialized version of `_.pick` which picks `object` properties specified - * by `props`. - * - * @private - * @param {Object} object The source object. - * @param {string[]} props The property names to pick. - * @returns {Object} Returns the new object. - */ - function pickByArray(object, props) { - object = toObject(object); - - var index = -1, - length = props.length, - result = {}; - - while (++index < length) { - var key = props[index]; - if (key in object) { - result[key] = object[key]; - } - } - return result; - } - - /** - * A specialized version of `_.pick` which picks `object` properties `predicate` - * returns truthy for. - * - * @private - * @param {Object} object The source object. - * @param {Function} predicate The function invoked per iteration. - * @returns {Object} Returns the new object. - */ - function pickByCallback(object, predicate) { - var result = {}; - baseForIn(object, function(value, key, object) { - if (predicate(value, key, object)) { - result[key] = value; - } - }); - return result; - } - - /** - * Reorder `array` according to the specified indexes where the element at - * the first index is assigned as the first element, the element at - * the second index is assigned as the second element, and so on. - * - * @private - * @param {Array} array The array to reorder. - * @param {Array} indexes The arranged array indexes. - * @returns {Array} Returns `array`. - */ - function reorder(array, indexes) { - var arrLength = array.length, - length = nativeMin(indexes.length, arrLength), - oldArray = arrayCopy(array); - - while (length--) { - var index = indexes[length]; - array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined; - } - return array; - } - - /** - * Sets metadata for `func`. - * - * **Note:** If this function becomes hot, i.e. is invoked a lot in a short - * period of time, it will trip its breaker and transition to an identity function - * to avoid garbage collection pauses in V8. See [V8 issue 2070](https://code.google.com/p/v8/issues/detail?id=2070) - * for more details. - * - * @private - * @param {Function} func The function to associate metadata with. - * @param {*} data The metadata. - * @returns {Function} Returns `func`. - */ - var setData = (function() { - var count = 0, - lastCalled = 0; - - return function(key, value) { - var stamp = now(), - remaining = HOT_SPAN - (stamp - lastCalled); - - lastCalled = stamp; - if (remaining > 0) { - if (++count >= HOT_COUNT) { - return key; - } - } else { - count = 0; - } - return baseSetData(key, value); - }; - }()); - - /** - * A fallback implementation of `Object.keys` which creates an array of the - * own enumerable property names of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function shimKeys(object) { - var props = keysIn(object), - propsLength = props.length, - length = propsLength && object.length; - - var allowIndexes = !!length && isLength(length) && - (isArray(object) || isArguments(object)); - - var index = -1, - result = []; - - while (++index < propsLength) { - var key = props[index]; - if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) { - result.push(key); - } - } - return result; - } - - /** - * Converts `value` to an array-like object if it's not one. - * - * @private - * @param {*} value The value to process. - * @returns {Array|Object} Returns the array-like object. - */ - function toIterable(value) { - if (value == null) { - return []; - } - if (!isArrayLike(value)) { - return values(value); - } - return isObject(value) ? value : Object(value); - } - - /** - * Converts `value` to an object if it's not one. - * - * @private - * @param {*} value The value to process. - * @returns {Object} Returns the object. - */ - function toObject(value) { - return isObject(value) ? value : Object(value); - } - - /** - * Converts `value` to property path array if it's not one. - * - * @private - * @param {*} value The value to process. - * @returns {Array} Returns the property path array. - */ - function toPath(value) { - if (isArray(value)) { - return value; - } - var result = []; - baseToString(value).replace(rePropName, function(match, number, quote, string) { - result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); - }); - return result; - } - - /** - * Creates a clone of `wrapper`. - * - * @private - * @param {Object} wrapper The wrapper to clone. - * @returns {Object} Returns the cloned wrapper. - */ - function wrapperClone(wrapper) { - return wrapper instanceof LazyWrapper - ? wrapper.clone() - : new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__, arrayCopy(wrapper.__actions__)); - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates an array of elements split into groups the length of `size`. - * If `collection` can't be split evenly, the final chunk will be the remaining - * elements. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to process. - * @param {number} [size=1] The length of each chunk. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Array} Returns the new array containing chunks. - * @example - * - * _.chunk(['a', 'b', 'c', 'd'], 2); - * // => [['a', 'b'], ['c', 'd']] - * - * _.chunk(['a', 'b', 'c', 'd'], 3); - * // => [['a', 'b', 'c'], ['d']] - */ - function chunk(array, size, guard) { - if (guard ? isIterateeCall(array, size, guard) : size == null) { - size = 1; - } else { - size = nativeMax(nativeFloor(size) || 1, 1); - } - var index = 0, - length = array ? array.length : 0, - resIndex = -1, - result = Array(nativeCeil(length / size)); - - while (index < length) { - result[++resIndex] = baseSlice(array, index, (index += size)); - } - return result; - } - - /** - * Creates an array with all falsey values removed. The values `false`, `null`, - * `0`, `""`, `undefined`, and `NaN` are falsey. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to compact. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.compact([0, 1, false, 2, '', 3]); - * // => [1, 2, 3] - */ - function compact(array) { - var index = -1, - length = array ? array.length : 0, - resIndex = -1, - result = []; - - while (++index < length) { - var value = array[index]; - if (value) { - result[++resIndex] = value; - } - } - return result; - } - - /** - * Creates an array of unique `array` values not included in the other - * provided arrays using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) - * for equality comparisons. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The arrays of values to exclude. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.difference([1, 2, 3], [4, 2]); - * // => [1, 3] - */ - var difference = restParam(function(array, values) { - return (isObjectLike(array) && isArrayLike(array)) - ? baseDifference(array, baseFlatten(values, false, true)) - : []; - }); - - /** - * Creates a slice of `array` with `n` elements dropped from the beginning. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to drop. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.drop([1, 2, 3]); - * // => [2, 3] - * - * _.drop([1, 2, 3], 2); - * // => [3] - * - * _.drop([1, 2, 3], 5); - * // => [] - * - * _.drop([1, 2, 3], 0); - * // => [1, 2, 3] - */ - function drop(array, n, guard) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - if (guard ? isIterateeCall(array, n, guard) : n == null) { - n = 1; - } - return baseSlice(array, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` with `n` elements dropped from the end. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to drop. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.dropRight([1, 2, 3]); - * // => [1, 2] - * - * _.dropRight([1, 2, 3], 2); - * // => [1] - * - * _.dropRight([1, 2, 3], 5); - * // => [] - * - * _.dropRight([1, 2, 3], 0); - * // => [1, 2, 3] - */ - function dropRight(array, n, guard) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - if (guard ? isIterateeCall(array, n, guard) : n == null) { - n = 1; - } - n = length - (+n || 0); - return baseSlice(array, 0, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` excluding elements dropped from the end. - * Elements are dropped until `predicate` returns falsey. The predicate is - * bound to `thisArg` and invoked with three arguments: (value, index, array). - * - * If a property name is provided for `predicate` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `predicate` the created `_.matches` style - * callback returns `true` for elements that match the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to query. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.dropRightWhile([1, 2, 3], function(n) { - * return n > 1; - * }); - * // => [1] - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * // using the `_.matches` callback shorthand - * _.pluck(_.dropRightWhile(users, { 'user': 'pebbles', 'active': false }), 'user'); - * // => ['barney', 'fred'] - * - * // using the `_.matchesProperty` callback shorthand - * _.pluck(_.dropRightWhile(users, 'active', false), 'user'); - * // => ['barney'] - * - * // using the `_.property` callback shorthand - * _.pluck(_.dropRightWhile(users, 'active'), 'user'); - * // => ['barney', 'fred', 'pebbles'] - */ - function dropRightWhile(array, predicate, thisArg) { - return (array && array.length) - ? baseWhile(array, getCallback(predicate, thisArg, 3), true, true) - : []; - } - - /** - * Creates a slice of `array` excluding elements dropped from the beginning. - * Elements are dropped until `predicate` returns falsey. The predicate is - * bound to `thisArg` and invoked with three arguments: (value, index, array). - * - * If a property name is provided for `predicate` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `predicate` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to query. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.dropWhile([1, 2, 3], function(n) { - * return n < 3; - * }); - * // => [3] - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * // using the `_.matches` callback shorthand - * _.pluck(_.dropWhile(users, { 'user': 'barney', 'active': false }), 'user'); - * // => ['fred', 'pebbles'] - * - * // using the `_.matchesProperty` callback shorthand - * _.pluck(_.dropWhile(users, 'active', false), 'user'); - * // => ['pebbles'] - * - * // using the `_.property` callback shorthand - * _.pluck(_.dropWhile(users, 'active'), 'user'); - * // => ['barney', 'fred', 'pebbles'] - */ - function dropWhile(array, predicate, thisArg) { - return (array && array.length) - ? baseWhile(array, getCallback(predicate, thisArg, 3), true) - : []; - } - - /** - * Fills elements of `array` with `value` from `start` up to, but not - * including, `end`. - * - * **Note:** This method mutates `array`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to fill. - * @param {*} value The value to fill `array` with. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns `array`. - * @example - * - * var array = [1, 2, 3]; - * - * _.fill(array, 'a'); - * console.log(array); - * // => ['a', 'a', 'a'] - * - * _.fill(Array(3), 2); - * // => [2, 2, 2] - * - * _.fill([4, 6, 8], '*', 1, 2); - * // => [4, '*', 8] - */ - function fill(array, value, start, end) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - if (start && typeof start != 'number' && isIterateeCall(array, value, start)) { - start = 0; - end = length; - } - return baseFill(array, value, start, end); - } - - /** - * This method is like `_.find` except that it returns the index of the first - * element `predicate` returns truthy for instead of the element itself. - * - * If a property name is provided for `predicate` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `predicate` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to search. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.findIndex(users, function(chr) { - * return chr.user == 'barney'; - * }); - * // => 0 - * - * // using the `_.matches` callback shorthand - * _.findIndex(users, { 'user': 'fred', 'active': false }); - * // => 1 - * - * // using the `_.matchesProperty` callback shorthand - * _.findIndex(users, 'active', false); - * // => 0 - * - * // using the `_.property` callback shorthand - * _.findIndex(users, 'active'); - * // => 2 - */ - var findIndex = createFindIndex(); - - /** - * This method is like `_.findIndex` except that it iterates over elements - * of `collection` from right to left. - * - * If a property name is provided for `predicate` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `predicate` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to search. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * _.findLastIndex(users, function(chr) { - * return chr.user == 'pebbles'; - * }); - * // => 2 - * - * // using the `_.matches` callback shorthand - * _.findLastIndex(users, { 'user': 'barney', 'active': true }); - * // => 0 - * - * // using the `_.matchesProperty` callback shorthand - * _.findLastIndex(users, 'active', false); - * // => 2 - * - * // using the `_.property` callback shorthand - * _.findLastIndex(users, 'active'); - * // => 0 - */ - var findLastIndex = createFindIndex(true); - - /** - * Gets the first element of `array`. - * - * @static - * @memberOf _ - * @alias head - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the first element of `array`. - * @example - * - * _.first([1, 2, 3]); - * // => 1 - * - * _.first([]); - * // => undefined - */ - function first(array) { - return array ? array[0] : undefined; - } - - /** - * Flattens a nested array. If `isDeep` is `true` the array is recursively - * flattened, otherwise it's only flattened a single level. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to flatten. - * @param {boolean} [isDeep] Specify a deep flatten. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flatten([1, [2, 3, [4]]]); - * // => [1, 2, 3, [4]] - * - * // using `isDeep` - * _.flatten([1, [2, 3, [4]]], true); - * // => [1, 2, 3, 4] - */ - function flatten(array, isDeep, guard) { - var length = array ? array.length : 0; - if (guard && isIterateeCall(array, isDeep, guard)) { - isDeep = false; - } - return length ? baseFlatten(array, isDeep) : []; - } - - /** - * Recursively flattens a nested array. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to recursively flatten. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flattenDeep([1, [2, 3, [4]]]); - * // => [1, 2, 3, 4] - */ - function flattenDeep(array) { - var length = array ? array.length : 0; - return length ? baseFlatten(array, true) : []; - } - - /** - * Gets the index at which the first occurrence of `value` is found in `array` - * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) - * for equality comparisons. If `fromIndex` is negative, it's used as the offset - * from the end of `array`. If `array` is sorted providing `true` for `fromIndex` - * performs a faster binary search. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to search. - * @param {*} value The value to search for. - * @param {boolean|number} [fromIndex=0] The index to search from or `true` - * to perform a binary search on a sorted array. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.indexOf([1, 2, 1, 2], 2); - * // => 1 - * - * // using `fromIndex` - * _.indexOf([1, 2, 1, 2], 2, 2); - * // => 3 - * - * // performing a binary search - * _.indexOf([1, 1, 2, 2], 2, true); - * // => 2 - */ - function indexOf(array, value, fromIndex) { - var length = array ? array.length : 0; - if (!length) { - return -1; - } - if (typeof fromIndex == 'number') { - fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : fromIndex; - } else if (fromIndex) { - var index = binaryIndex(array, value); - if (index < length && - (value === value ? (value === array[index]) : (array[index] !== array[index]))) { - return index; - } - return -1; - } - return baseIndexOf(array, value, fromIndex || 0); - } - - /** - * Gets all but the last element of `array`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to query. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.initial([1, 2, 3]); - * // => [1, 2] - */ - function initial(array) { - return dropRight(array, 1); - } - - /** - * Creates an array of unique values that are included in all of the provided - * arrays using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) - * for equality comparisons. - * - * @static - * @memberOf _ - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of shared values. - * @example - * _.intersection([1, 2], [4, 2], [2, 1]); - * // => [2] - */ - var intersection = restParam(function(arrays) { - var othLength = arrays.length, - othIndex = othLength, - caches = Array(length), - indexOf = getIndexOf(), - isCommon = indexOf === baseIndexOf, - result = []; - - while (othIndex--) { - var value = arrays[othIndex] = isArrayLike(value = arrays[othIndex]) ? value : []; - caches[othIndex] = (isCommon && value.length >= 120) ? createCache(othIndex && value) : null; - } - var array = arrays[0], - index = -1, - length = array ? array.length : 0, - seen = caches[0]; - - outer: - while (++index < length) { - value = array[index]; - if ((seen ? cacheIndexOf(seen, value) : indexOf(result, value, 0)) < 0) { - var othIndex = othLength; - while (--othIndex) { - var cache = caches[othIndex]; - if ((cache ? cacheIndexOf(cache, value) : indexOf(arrays[othIndex], value, 0)) < 0) { - continue outer; - } - } - if (seen) { - seen.push(value); - } - result.push(value); - } - } - return result; - }); - - /** - * Gets the last element of `array`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the last element of `array`. - * @example - * - * _.last([1, 2, 3]); - * // => 3 - */ - function last(array) { - var length = array ? array.length : 0; - return length ? array[length - 1] : undefined; - } - - /** - * This method is like `_.indexOf` except that it iterates over elements of - * `array` from right to left. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to search. - * @param {*} value The value to search for. - * @param {boolean|number} [fromIndex=array.length-1] The index to search from - * or `true` to perform a binary search on a sorted array. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.lastIndexOf([1, 2, 1, 2], 2); - * // => 3 - * - * // using `fromIndex` - * _.lastIndexOf([1, 2, 1, 2], 2, 2); - * // => 1 - * - * // performing a binary search - * _.lastIndexOf([1, 1, 2, 2], 2, true); - * // => 3 - */ - function lastIndexOf(array, value, fromIndex) { - var length = array ? array.length : 0; - if (!length) { - return -1; - } - var index = length; - if (typeof fromIndex == 'number') { - index = (fromIndex < 0 ? nativeMax(length + fromIndex, 0) : nativeMin(fromIndex || 0, length - 1)) + 1; - } else if (fromIndex) { - index = binaryIndex(array, value, true) - 1; - var other = array[index]; - if (value === value ? (value === other) : (other !== other)) { - return index; - } - return -1; - } - if (value !== value) { - return indexOfNaN(array, index, true); - } - while (index--) { - if (array[index] === value) { - return index; - } - } - return -1; - } - - /** - * Removes all provided values from `array` using - * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) - * for equality comparisons. - * - * **Note:** Unlike `_.without`, this method mutates `array`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to modify. - * @param {...*} [values] The values to remove. - * @returns {Array} Returns `array`. - * @example - * - * var array = [1, 2, 3, 1, 2, 3]; - * - * _.pull(array, 2, 3); - * console.log(array); - * // => [1, 1] - */ - function pull() { - var args = arguments, - array = args[0]; - - if (!(array && array.length)) { - return array; - } - var index = 0, - indexOf = getIndexOf(), - length = args.length; - - while (++index < length) { - var fromIndex = 0, - value = args[index]; - - while ((fromIndex = indexOf(array, value, fromIndex)) > -1) { - splice.call(array, fromIndex, 1); - } - } - return array; - } - - /** - * Removes elements from `array` corresponding to the given indexes and returns - * an array of the removed elements. Indexes may be specified as an array of - * indexes or as individual arguments. - * - * **Note:** Unlike `_.at`, this method mutates `array`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to modify. - * @param {...(number|number[])} [indexes] The indexes of elements to remove, - * specified as individual indexes or arrays of indexes. - * @returns {Array} Returns the new array of removed elements. - * @example - * - * var array = [5, 10, 15, 20]; - * var evens = _.pullAt(array, 1, 3); - * - * console.log(array); - * // => [5, 15] - * - * console.log(evens); - * // => [10, 20] - */ - var pullAt = restParam(function(array, indexes) { - indexes = baseFlatten(indexes); - - var result = baseAt(array, indexes); - basePullAt(array, indexes.sort(baseCompareAscending)); - return result; - }); - - /** - * Removes all elements from `array` that `predicate` returns truthy for - * and returns an array of the removed elements. The predicate is bound to - * `thisArg` and invoked with three arguments: (value, index, array). - * - * If a property name is provided for `predicate` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `predicate` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * **Note:** Unlike `_.filter`, this method mutates `array`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to modify. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Array} Returns the new array of removed elements. - * @example - * - * var array = [1, 2, 3, 4]; - * var evens = _.remove(array, function(n) { - * return n % 2 == 0; - * }); - * - * console.log(array); - * // => [1, 3] - * - * console.log(evens); - * // => [2, 4] - */ - function remove(array, predicate, thisArg) { - var result = []; - if (!(array && array.length)) { - return result; - } - var index = -1, - indexes = [], - length = array.length; - - predicate = getCallback(predicate, thisArg, 3); - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result.push(value); - indexes.push(index); - } - } - basePullAt(array, indexes); - return result; - } - - /** - * Gets all but the first element of `array`. - * - * @static - * @memberOf _ - * @alias tail - * @category Array - * @param {Array} array The array to query. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.rest([1, 2, 3]); - * // => [2, 3] - */ - function rest(array) { - return drop(array, 1); - } - - /** - * Creates a slice of `array` from `start` up to, but not including, `end`. - * - * **Note:** This method is used instead of `Array#slice` to support node - * lists in IE < 9 and to ensure dense arrays are returned. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function slice(array, start, end) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - if (end && typeof end != 'number' && isIterateeCall(array, start, end)) { - start = 0; - end = length; - } - return baseSlice(array, start, end); - } - - /** - * Uses a binary search to determine the lowest index at which `value` should - * be inserted into `array` in order to maintain its sort order. If an iteratee - * function is provided it's invoked for `value` and each element of `array` - * to compute their sort ranking. The iteratee is bound to `thisArg` and - * invoked with one argument; (value). - * - * If a property name is provided for `iteratee` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `iteratee` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function|Object|string} [iteratee=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * _.sortedIndex([30, 50], 40); - * // => 1 - * - * _.sortedIndex([4, 4, 5, 5], 5); - * // => 2 - * - * var dict = { 'data': { 'thirty': 30, 'forty': 40, 'fifty': 50 } }; - * - * // using an iteratee function - * _.sortedIndex(['thirty', 'fifty'], 'forty', function(word) { - * return this.data[word]; - * }, dict); - * // => 1 - * - * // using the `_.property` callback shorthand - * _.sortedIndex([{ 'x': 30 }, { 'x': 50 }], { 'x': 40 }, 'x'); - * // => 1 - */ - var sortedIndex = createSortedIndex(); - - /** - * This method is like `_.sortedIndex` except that it returns the highest - * index at which `value` should be inserted into `array` in order to - * maintain its sort order. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function|Object|string} [iteratee=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * _.sortedLastIndex([4, 4, 5, 5], 5); - * // => 4 - */ - var sortedLastIndex = createSortedIndex(true); - - /** - * Creates a slice of `array` with `n` elements taken from the beginning. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to take. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.take([1, 2, 3]); - * // => [1] - * - * _.take([1, 2, 3], 2); - * // => [1, 2] - * - * _.take([1, 2, 3], 5); - * // => [1, 2, 3] - * - * _.take([1, 2, 3], 0); - * // => [] - */ - function take(array, n, guard) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - if (guard ? isIterateeCall(array, n, guard) : n == null) { - n = 1; - } - return baseSlice(array, 0, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` with `n` elements taken from the end. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to take. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.takeRight([1, 2, 3]); - * // => [3] - * - * _.takeRight([1, 2, 3], 2); - * // => [2, 3] - * - * _.takeRight([1, 2, 3], 5); - * // => [1, 2, 3] - * - * _.takeRight([1, 2, 3], 0); - * // => [] - */ - function takeRight(array, n, guard) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - if (guard ? isIterateeCall(array, n, guard) : n == null) { - n = 1; - } - n = length - (+n || 0); - return baseSlice(array, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` with elements taken from the end. Elements are - * taken until `predicate` returns falsey. The predicate is bound to `thisArg` - * and invoked with three arguments: (value, index, array). - * - * If a property name is provided for `predicate` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `predicate` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to query. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.takeRightWhile([1, 2, 3], function(n) { - * return n > 1; - * }); - * // => [2, 3] - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * // using the `_.matches` callback shorthand - * _.pluck(_.takeRightWhile(users, { 'user': 'pebbles', 'active': false }), 'user'); - * // => ['pebbles'] - * - * // using the `_.matchesProperty` callback shorthand - * _.pluck(_.takeRightWhile(users, 'active', false), 'user'); - * // => ['fred', 'pebbles'] - * - * // using the `_.property` callback shorthand - * _.pluck(_.takeRightWhile(users, 'active'), 'user'); - * // => [] - */ - function takeRightWhile(array, predicate, thisArg) { - return (array && array.length) - ? baseWhile(array, getCallback(predicate, thisArg, 3), false, true) - : []; - } - - /** - * Creates a slice of `array` with elements taken from the beginning. Elements - * are taken until `predicate` returns falsey. The predicate is bound to - * `thisArg` and invoked with three arguments: (value, index, array). - * - * If a property name is provided for `predicate` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `predicate` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to query. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.takeWhile([1, 2, 3], function(n) { - * return n < 3; - * }); - * // => [1, 2] - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false}, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * // using the `_.matches` callback shorthand - * _.pluck(_.takeWhile(users, { 'user': 'barney', 'active': false }), 'user'); - * // => ['barney'] - * - * // using the `_.matchesProperty` callback shorthand - * _.pluck(_.takeWhile(users, 'active', false), 'user'); - * // => ['barney', 'fred'] - * - * // using the `_.property` callback shorthand - * _.pluck(_.takeWhile(users, 'active'), 'user'); - * // => [] - */ - function takeWhile(array, predicate, thisArg) { - return (array && array.length) - ? baseWhile(array, getCallback(predicate, thisArg, 3)) - : []; - } - - /** - * Creates an array of unique values, in order, from all of the provided arrays - * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) - * for equality comparisons. - * - * @static - * @memberOf _ - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of combined values. - * @example - * - * _.union([1, 2], [4, 2], [2, 1]); - * // => [1, 2, 4] - */ - var union = restParam(function(arrays) { - return baseUniq(baseFlatten(arrays, false, true)); - }); - - /** - * Creates a duplicate-free version of an array, using - * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) - * for equality comparisons, in which only the first occurence of each element - * is kept. Providing `true` for `isSorted` performs a faster search algorithm - * for sorted arrays. If an iteratee function is provided it's invoked for - * each element in the array to generate the criterion by which uniqueness - * is computed. The `iteratee` is bound to `thisArg` and invoked with three - * arguments: (value, index, array). - * - * If a property name is provided for `iteratee` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `iteratee` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @alias unique - * @category Array - * @param {Array} array The array to inspect. - * @param {boolean} [isSorted] Specify the array is sorted. - * @param {Function|Object|string} [iteratee] The function invoked per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Array} Returns the new duplicate-value-free array. - * @example - * - * _.uniq([2, 1, 2]); - * // => [2, 1] - * - * // using `isSorted` - * _.uniq([1, 1, 2], true); - * // => [1, 2] - * - * // using an iteratee function - * _.uniq([1, 2.5, 1.5, 2], function(n) { - * return this.floor(n); - * }, Math); - * // => [1, 2.5] - * - * // using the `_.property` callback shorthand - * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }, { 'x': 2 }] - */ - function uniq(array, isSorted, iteratee, thisArg) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - if (isSorted != null && typeof isSorted != 'boolean') { - thisArg = iteratee; - iteratee = isIterateeCall(array, isSorted, thisArg) ? undefined : isSorted; - isSorted = false; - } - var callback = getCallback(); - if (!(iteratee == null && callback === baseCallback)) { - iteratee = callback(iteratee, thisArg, 3); - } - return (isSorted && getIndexOf() === baseIndexOf) - ? sortedUniq(array, iteratee) - : baseUniq(array, iteratee); - } - - /** - * This method is like `_.zip` except that it accepts an array of grouped - * elements and creates an array regrouping the elements to their pre-zip - * configuration. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array of grouped elements to process. - * @returns {Array} Returns the new array of regrouped elements. - * @example - * - * var zipped = _.zip(['fred', 'barney'], [30, 40], [true, false]); - * // => [['fred', 30, true], ['barney', 40, false]] - * - * _.unzip(zipped); - * // => [['fred', 'barney'], [30, 40], [true, false]] - */ - function unzip(array) { - if (!(array && array.length)) { - return []; - } - var index = -1, - length = 0; - - array = arrayFilter(array, function(group) { - if (isArrayLike(group)) { - length = nativeMax(group.length, length); - return true; - } - }); - var result = Array(length); - while (++index < length) { - result[index] = arrayMap(array, baseProperty(index)); - } - return result; - } - - /** - * This method is like `_.unzip` except that it accepts an iteratee to specify - * how regrouped values should be combined. The `iteratee` is bound to `thisArg` - * and invoked with four arguments: (accumulator, value, index, group). - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array of grouped elements to process. - * @param {Function} [iteratee] The function to combine regrouped values. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Array} Returns the new array of regrouped elements. - * @example - * - * var zipped = _.zip([1, 2], [10, 20], [100, 200]); - * // => [[1, 10, 100], [2, 20, 200]] - * - * _.unzipWith(zipped, _.add); - * // => [3, 30, 300] - */ - function unzipWith(array, iteratee, thisArg) { - var length = array ? array.length : 0; - if (!length) { - return []; - } - var result = unzip(array); - if (iteratee == null) { - return result; - } - iteratee = bindCallback(iteratee, thisArg, 4); - return arrayMap(result, function(group) { - return arrayReduce(group, iteratee, undefined, true); - }); - } - - /** - * Creates an array excluding all provided values using - * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) - * for equality comparisons. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to filter. - * @param {...*} [values] The values to exclude. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.without([1, 2, 1, 3], 1, 2); - * // => [3] - */ - var without = restParam(function(array, values) { - return isArrayLike(array) - ? baseDifference(array, values) - : []; - }); - - /** - * Creates an array of unique values that is the [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) - * of the provided arrays. - * - * @static - * @memberOf _ - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of values. - * @example - * - * _.xor([1, 2], [4, 2]); - * // => [1, 4] - */ - function xor() { - var index = -1, - length = arguments.length; - - while (++index < length) { - var array = arguments[index]; - if (isArrayLike(array)) { - var result = result - ? arrayPush(baseDifference(result, array), baseDifference(array, result)) - : array; - } - } - return result ? baseUniq(result) : []; - } - - /** - * Creates an array of grouped elements, the first of which contains the first - * elements of the given arrays, the second of which contains the second elements - * of the given arrays, and so on. - * - * @static - * @memberOf _ - * @category Array - * @param {...Array} [arrays] The arrays to process. - * @returns {Array} Returns the new array of grouped elements. - * @example - * - * _.zip(['fred', 'barney'], [30, 40], [true, false]); - * // => [['fred', 30, true], ['barney', 40, false]] - */ - var zip = restParam(unzip); - - /** - * The inverse of `_.pairs`; this method returns an object composed from arrays - * of property names and values. Provide either a single two dimensional array, - * e.g. `[[key1, value1], [key2, value2]]` or two arrays, one of property names - * and one of corresponding values. - * - * @static - * @memberOf _ - * @alias object - * @category Array - * @param {Array} props The property names. - * @param {Array} [values=[]] The property values. - * @returns {Object} Returns the new object. - * @example - * - * _.zipObject([['fred', 30], ['barney', 40]]); - * // => { 'fred': 30, 'barney': 40 } - * - * _.zipObject(['fred', 'barney'], [30, 40]); - * // => { 'fred': 30, 'barney': 40 } - */ - function zipObject(props, values) { - var index = -1, - length = props ? props.length : 0, - result = {}; - - if (length && !values && !isArray(props[0])) { - values = []; - } - while (++index < length) { - var key = props[index]; - if (values) { - result[key] = values[index]; - } else if (key) { - result[key[0]] = key[1]; - } - } - return result; - } - - /** - * This method is like `_.zip` except that it accepts an iteratee to specify - * how grouped values should be combined. The `iteratee` is bound to `thisArg` - * and invoked with four arguments: (accumulator, value, index, group). - * - * @static - * @memberOf _ - * @category Array - * @param {...Array} [arrays] The arrays to process. - * @param {Function} [iteratee] The function to combine grouped values. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Array} Returns the new array of grouped elements. - * @example - * - * _.zipWith([1, 2], [10, 20], [100, 200], _.add); - * // => [111, 222] - */ - var zipWith = restParam(function(arrays) { - var length = arrays.length, - iteratee = length > 2 ? arrays[length - 2] : undefined, - thisArg = length > 1 ? arrays[length - 1] : undefined; - - if (length > 2 && typeof iteratee == 'function') { - length -= 2; - } else { - iteratee = (length > 1 && typeof thisArg == 'function') ? (--length, thisArg) : undefined; - thisArg = undefined; - } - arrays.length = length; - return unzipWith(arrays, iteratee, thisArg); - }); - - /*------------------------------------------------------------------------*/ - - /** - * Creates a `lodash` object that wraps `value` with explicit method - * chaining enabled. - * - * @static - * @memberOf _ - * @category Chain - * @param {*} value The value to wrap. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 }, - * { 'user': 'pebbles', 'age': 1 } - * ]; - * - * var youngest = _.chain(users) - * .sortBy('age') - * .map(function(chr) { - * return chr.user + ' is ' + chr.age; - * }) - * .first() - * .value(); - * // => 'pebbles is 1' - */ - function chain(value) { - var result = lodash(value); - result.__chain__ = true; - return result; - } - - /** - * This method invokes `interceptor` and returns `value`. The interceptor is - * bound to `thisArg` and invoked with one argument; (value). The purpose of - * this method is to "tap into" a method chain in order to perform operations - * on intermediate results within the chain. - * - * @static - * @memberOf _ - * @category Chain - * @param {*} value The value to provide to `interceptor`. - * @param {Function} interceptor The function to invoke. - * @param {*} [thisArg] The `this` binding of `interceptor`. - * @returns {*} Returns `value`. - * @example - * - * _([1, 2, 3]) - * .tap(function(array) { - * array.pop(); - * }) - * .reverse() - * .value(); - * // => [2, 1] - */ - function tap(value, interceptor, thisArg) { - interceptor.call(thisArg, value); - return value; - } - - /** - * This method is like `_.tap` except that it returns the result of `interceptor`. - * - * @static - * @memberOf _ - * @category Chain - * @param {*} value The value to provide to `interceptor`. - * @param {Function} interceptor The function to invoke. - * @param {*} [thisArg] The `this` binding of `interceptor`. - * @returns {*} Returns the result of `interceptor`. - * @example - * - * _(' abc ') - * .chain() - * .trim() - * .thru(function(value) { - * return [value]; - * }) - * .value(); - * // => ['abc'] - */ - function thru(value, interceptor, thisArg) { - return interceptor.call(thisArg, value); - } - - /** - * Enables explicit method chaining on the wrapper object. - * - * @name chain - * @memberOf _ - * @category Chain - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 } - * ]; - * - * // without explicit chaining - * _(users).first(); - * // => { 'user': 'barney', 'age': 36 } - * - * // with explicit chaining - * _(users).chain() - * .first() - * .pick('user') - * .value(); - * // => { 'user': 'barney' } - */ - function wrapperChain() { - return chain(this); - } - - /** - * Executes the chained sequence and returns the wrapped result. - * - * @name commit - * @memberOf _ - * @category Chain - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var array = [1, 2]; - * var wrapped = _(array).push(3); - * - * console.log(array); - * // => [1, 2] - * - * wrapped = wrapped.commit(); - * console.log(array); - * // => [1, 2, 3] - * - * wrapped.last(); - * // => 3 - * - * console.log(array); - * // => [1, 2, 3] - */ - function wrapperCommit() { - return new LodashWrapper(this.value(), this.__chain__); - } - - /** - * Creates a new array joining a wrapped array with any additional arrays - * and/or values. - * - * @name concat - * @memberOf _ - * @category Chain - * @param {...*} [values] The values to concatenate. - * @returns {Array} Returns the new concatenated array. - * @example - * - * var array = [1]; - * var wrapped = _(array).concat(2, [3], [[4]]); - * - * console.log(wrapped.value()); - * // => [1, 2, 3, [4]] - * - * console.log(array); - * // => [1] - */ - var wrapperConcat = restParam(function(values) { - values = baseFlatten(values); - return this.thru(function(array) { - return arrayConcat(isArray(array) ? array : [toObject(array)], values); - }); - }); - - /** - * Creates a clone of the chained sequence planting `value` as the wrapped value. - * - * @name plant - * @memberOf _ - * @category Chain - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var array = [1, 2]; - * var wrapped = _(array).map(function(value) { - * return Math.pow(value, 2); - * }); - * - * var other = [3, 4]; - * var otherWrapped = wrapped.plant(other); - * - * otherWrapped.value(); - * // => [9, 16] - * - * wrapped.value(); - * // => [1, 4] - */ - function wrapperPlant(value) { - var result, - parent = this; - - while (parent instanceof baseLodash) { - var clone = wrapperClone(parent); - if (result) { - previous.__wrapped__ = clone; - } else { - result = clone; - } - var previous = clone; - parent = parent.__wrapped__; - } - previous.__wrapped__ = value; - return result; - } - - /** - * Reverses the wrapped array so the first element becomes the last, the - * second element becomes the second to last, and so on. - * - * **Note:** This method mutates the wrapped array. - * - * @name reverse - * @memberOf _ - * @category Chain - * @returns {Object} Returns the new reversed `lodash` wrapper instance. - * @example - * - * var array = [1, 2, 3]; - * - * _(array).reverse().value() - * // => [3, 2, 1] - * - * console.log(array); - * // => [3, 2, 1] - */ - function wrapperReverse() { - var value = this.__wrapped__; - - var interceptor = function(value) { - return value.reverse(); - }; - if (value instanceof LazyWrapper) { - var wrapped = value; - if (this.__actions__.length) { - wrapped = new LazyWrapper(this); - } - wrapped = wrapped.reverse(); - wrapped.__actions__.push({ 'func': thru, 'args': [interceptor], 'thisArg': undefined }); - return new LodashWrapper(wrapped, this.__chain__); - } - return this.thru(interceptor); - } - - /** - * Produces the result of coercing the unwrapped value to a string. - * - * @name toString - * @memberOf _ - * @category Chain - * @returns {string} Returns the coerced string value. - * @example - * - * _([1, 2, 3]).toString(); - * // => '1,2,3' - */ - function wrapperToString() { - return (this.value() + ''); - } - - /** - * Executes the chained sequence to extract the unwrapped value. - * - * @name value - * @memberOf _ - * @alias run, toJSON, valueOf - * @category Chain - * @returns {*} Returns the resolved unwrapped value. - * @example - * - * _([1, 2, 3]).value(); - * // => [1, 2, 3] - */ - function wrapperValue() { - return baseWrapperValue(this.__wrapped__, this.__actions__); - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates an array of elements corresponding to the given keys, or indexes, - * of `collection`. Keys may be specified as individual arguments or as arrays - * of keys. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {...(number|number[]|string|string[])} [props] The property names - * or indexes of elements to pick, specified individually or in arrays. - * @returns {Array} Returns the new array of picked elements. - * @example - * - * _.at(['a', 'b', 'c'], [0, 2]); - * // => ['a', 'c'] - * - * _.at(['barney', 'fred', 'pebbles'], 0, 2); - * // => ['barney', 'pebbles'] - */ - var at = restParam(function(collection, props) { - return baseAt(collection, baseFlatten(props)); - }); - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` through `iteratee`. The corresponding value - * of each key is the number of times the key was returned by `iteratee`. - * The `iteratee` is bound to `thisArg` and invoked with three arguments: - * (value, index|key, collection). - * - * If a property name is provided for `iteratee` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `iteratee` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [iteratee=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * _.countBy([4.3, 6.1, 6.4], function(n) { - * return Math.floor(n); - * }); - * // => { '4': 1, '6': 2 } - * - * _.countBy([4.3, 6.1, 6.4], function(n) { - * return this.floor(n); - * }, Math); - * // => { '4': 1, '6': 2 } - * - * _.countBy(['one', 'two', 'three'], 'length'); - * // => { '3': 2, '5': 1 } - */ - var countBy = createAggregator(function(result, value, key) { - hasOwnProperty.call(result, key) ? ++result[key] : (result[key] = 1); - }); - - /** - * Checks if `predicate` returns truthy for **all** elements of `collection`. - * The predicate is bound to `thisArg` and invoked with three arguments: - * (value, index|key, collection). - * - * If a property name is provided for `predicate` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `predicate` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @alias all - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - * @example - * - * _.every([true, 1, null, 'yes'], Boolean); - * // => false - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false } - * ]; - * - * // using the `_.matches` callback shorthand - * _.every(users, { 'user': 'barney', 'active': false }); - * // => false - * - * // using the `_.matchesProperty` callback shorthand - * _.every(users, 'active', false); - * // => true - * - * // using the `_.property` callback shorthand - * _.every(users, 'active'); - * // => false - */ - function every(collection, predicate, thisArg) { - var func = isArray(collection) ? arrayEvery : baseEvery; - if (thisArg && isIterateeCall(collection, predicate, thisArg)) { - predicate = undefined; - } - if (typeof predicate != 'function' || thisArg !== undefined) { - predicate = getCallback(predicate, thisArg, 3); - } - return func(collection, predicate); - } - - /** - * Iterates over elements of `collection`, returning an array of all elements - * `predicate` returns truthy for. The predicate is bound to `thisArg` and - * invoked with three arguments: (value, index|key, collection). - * - * If a property name is provided for `predicate` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `predicate` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @alias select - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Array} Returns the new filtered array. - * @example - * - * _.filter([4, 5, 6], function(n) { - * return n % 2 == 0; - * }); - * // => [4, 6] - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false } - * ]; - * - * // using the `_.matches` callback shorthand - * _.pluck(_.filter(users, { 'age': 36, 'active': true }), 'user'); - * // => ['barney'] - * - * // using the `_.matchesProperty` callback shorthand - * _.pluck(_.filter(users, 'active', false), 'user'); - * // => ['fred'] - * - * // using the `_.property` callback shorthand - * _.pluck(_.filter(users, 'active'), 'user'); - * // => ['barney'] - */ - function filter(collection, predicate, thisArg) { - var func = isArray(collection) ? arrayFilter : baseFilter; - predicate = getCallback(predicate, thisArg, 3); - return func(collection, predicate); - } - - /** - * Iterates over elements of `collection`, returning the first element - * `predicate` returns truthy for. The predicate is bound to `thisArg` and - * invoked with three arguments: (value, index|key, collection). - * - * If a property name is provided for `predicate` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `predicate` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @alias detect - * @category Collection - * @param {Array|Object|string} collection The collection to search. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false }, - * { 'user': 'pebbles', 'age': 1, 'active': true } - * ]; - * - * _.result(_.find(users, function(chr) { - * return chr.age < 40; - * }), 'user'); - * // => 'barney' - * - * // using the `_.matches` callback shorthand - * _.result(_.find(users, { 'age': 1, 'active': true }), 'user'); - * // => 'pebbles' - * - * // using the `_.matchesProperty` callback shorthand - * _.result(_.find(users, 'active', false), 'user'); - * // => 'fred' - * - * // using the `_.property` callback shorthand - * _.result(_.find(users, 'active'), 'user'); - * // => 'barney' - */ - var find = createFind(baseEach); - - /** - * This method is like `_.find` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to search. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * _.findLast([1, 2, 3, 4], function(n) { - * return n % 2 == 1; - * }); - * // => 3 - */ - var findLast = createFind(baseEachRight, true); - - /** - * Performs a deep comparison between each element in `collection` and the - * source object, returning the first element that has equivalent property - * values. - * - * **Note:** This method supports comparing arrays, booleans, `Date` objects, - * numbers, `Object` objects, regexes, and strings. Objects are compared by - * their own, not inherited, enumerable properties. For comparing a single - * own or inherited property value see `_.matchesProperty`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to search. - * @param {Object} source The object of property values to match. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false } - * ]; - * - * _.result(_.findWhere(users, { 'age': 36, 'active': true }), 'user'); - * // => 'barney' - * - * _.result(_.findWhere(users, { 'age': 40, 'active': false }), 'user'); - * // => 'fred' - */ - function findWhere(collection, source) { - return find(collection, baseMatches(source)); - } - - /** - * Iterates over elements of `collection` invoking `iteratee` for each element. - * The `iteratee` is bound to `thisArg` and invoked with three arguments: - * (value, index|key, collection). Iteratee functions may exit iteration early - * by explicitly returning `false`. - * - * **Note:** As with other "Collections" methods, objects with a "length" property - * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn` - * may be used for object iteration. - * - * @static - * @memberOf _ - * @alias each - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Array|Object|string} Returns `collection`. - * @example - * - * _([1, 2]).forEach(function(n) { - * console.log(n); - * }).value(); - * // => logs each value from left to right and returns the array - * - * _.forEach({ 'a': 1, 'b': 2 }, function(n, key) { - * console.log(n, key); - * }); - * // => logs each value-key pair and returns the object (iteration order is not guaranteed) - */ - var forEach = createForEach(arrayEach, baseEach); - - /** - * This method is like `_.forEach` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @alias eachRight - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Array|Object|string} Returns `collection`. - * @example - * - * _([1, 2]).forEachRight(function(n) { - * console.log(n); - * }).value(); - * // => logs each value from right to left and returns the array - */ - var forEachRight = createForEach(arrayEachRight, baseEachRight); - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` through `iteratee`. The corresponding value - * of each key is an array of the elements responsible for generating the key. - * The `iteratee` is bound to `thisArg` and invoked with three arguments: - * (value, index|key, collection). - * - * If a property name is provided for `iteratee` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `iteratee` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [iteratee=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * _.groupBy([4.2, 6.1, 6.4], function(n) { - * return Math.floor(n); - * }); - * // => { '4': [4.2], '6': [6.1, 6.4] } - * - * _.groupBy([4.2, 6.1, 6.4], function(n) { - * return this.floor(n); - * }, Math); - * // => { '4': [4.2], '6': [6.1, 6.4] } - * - * // using the `_.property` callback shorthand - * _.groupBy(['one', 'two', 'three'], 'length'); - * // => { '3': ['one', 'two'], '5': ['three'] } - */ - var groupBy = createAggregator(function(result, value, key) { - if (hasOwnProperty.call(result, key)) { - result[key].push(value); - } else { - result[key] = [value]; - } - }); - - /** - * Checks if `target` is in `collection` using - * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) - * for equality comparisons. If `fromIndex` is negative, it's used as the offset - * from the end of `collection`. - * - * @static - * @memberOf _ - * @alias contains, include - * @category Collection - * @param {Array|Object|string} collection The collection to search. - * @param {*} target The value to search for. - * @param {number} [fromIndex=0] The index to search from. - * @param- {Object} [guard] Enables use as a callback for functions like `_.reduce`. - * @returns {boolean} Returns `true` if a matching element is found, else `false`. - * @example - * - * _.includes([1, 2, 3], 1); - * // => true - * - * _.includes([1, 2, 3], 1, 2); - * // => false - * - * _.includes({ 'user': 'fred', 'age': 40 }, 'fred'); - * // => true - * - * _.includes('pebbles', 'eb'); - * // => true - */ - function includes(collection, target, fromIndex, guard) { - var length = collection ? getLength(collection) : 0; - if (!isLength(length)) { - collection = values(collection); - length = collection.length; - } - if (typeof fromIndex != 'number' || (guard && isIterateeCall(target, fromIndex, guard))) { - fromIndex = 0; - } else { - fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : (fromIndex || 0); - } - return (typeof collection == 'string' || !isArray(collection) && isString(collection)) - ? (fromIndex <= length && collection.indexOf(target, fromIndex) > -1) - : (!!length && getIndexOf(collection, target, fromIndex) > -1); - } - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` through `iteratee`. The corresponding value - * of each key is the last element responsible for generating the key. The - * iteratee function is bound to `thisArg` and invoked with three arguments: - * (value, index|key, collection). - * - * If a property name is provided for `iteratee` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `iteratee` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [iteratee=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * var keyData = [ - * { 'dir': 'left', 'code': 97 }, - * { 'dir': 'right', 'code': 100 } - * ]; - * - * _.indexBy(keyData, 'dir'); - * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } - * - * _.indexBy(keyData, function(object) { - * return String.fromCharCode(object.code); - * }); - * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } - * - * _.indexBy(keyData, function(object) { - * return this.fromCharCode(object.code); - * }, String); - * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } - */ - var indexBy = createAggregator(function(result, value, key) { - result[key] = value; - }); - - /** - * Invokes the method at `path` of each element in `collection`, returning - * an array of the results of each invoked method. Any additional arguments - * are provided to each invoked method. If `methodName` is a function it's - * invoked for, and `this` bound to, each element in `collection`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Array|Function|string} path The path of the method to invoke or - * the function invoked per iteration. - * @param {...*} [args] The arguments to invoke the method with. - * @returns {Array} Returns the array of results. - * @example - * - * _.invoke([[5, 1, 7], [3, 2, 1]], 'sort'); - * // => [[1, 5, 7], [1, 2, 3]] - * - * _.invoke([123, 456], String.prototype.split, ''); - * // => [['1', '2', '3'], ['4', '5', '6']] - */ - var invoke = restParam(function(collection, path, args) { - var index = -1, - isFunc = typeof path == 'function', - isProp = isKey(path), - result = isArrayLike(collection) ? Array(collection.length) : []; - - baseEach(collection, function(value) { - var func = isFunc ? path : ((isProp && value != null) ? value[path] : undefined); - result[++index] = func ? func.apply(value, args) : invokePath(value, path, args); - }); - return result; - }); - - /** - * Creates an array of values by running each element in `collection` through - * `iteratee`. The `iteratee` is bound to `thisArg` and invoked with three - * arguments: (value, index|key, collection). - * - * If a property name is provided for `iteratee` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `iteratee` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * Many lodash methods are guarded to work as iteratees for methods like - * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. - * - * The guarded methods are: - * `ary`, `callback`, `chunk`, `clone`, `create`, `curry`, `curryRight`, - * `drop`, `dropRight`, `every`, `fill`, `flatten`, `invert`, `max`, `min`, - * `parseInt`, `slice`, `sortBy`, `take`, `takeRight`, `template`, `trim`, - * `trimLeft`, `trimRight`, `trunc`, `random`, `range`, `sample`, `some`, - * `sum`, `uniq`, and `words` - * - * @static - * @memberOf _ - * @alias collect - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [iteratee=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Array} Returns the new mapped array. - * @example - * - * function timesThree(n) { - * return n * 3; - * } - * - * _.map([1, 2], timesThree); - * // => [3, 6] - * - * _.map({ 'a': 1, 'b': 2 }, timesThree); - * // => [3, 6] (iteration order is not guaranteed) - * - * var users = [ - * { 'user': 'barney' }, - * { 'user': 'fred' } - * ]; - * - * // using the `_.property` callback shorthand - * _.map(users, 'user'); - * // => ['barney', 'fred'] - */ - function map(collection, iteratee, thisArg) { - var func = isArray(collection) ? arrayMap : baseMap; - iteratee = getCallback(iteratee, thisArg, 3); - return func(collection, iteratee); - } - - /** - * Creates an array of elements split into two groups, the first of which - * contains elements `predicate` returns truthy for, while the second of which - * contains elements `predicate` returns falsey for. The predicate is bound - * to `thisArg` and invoked with three arguments: (value, index|key, collection). - * - * If a property name is provided for `predicate` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `predicate` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Array} Returns the array of grouped elements. - * @example - * - * _.partition([1, 2, 3], function(n) { - * return n % 2; - * }); - * // => [[1, 3], [2]] - * - * _.partition([1.2, 2.3, 3.4], function(n) { - * return this.floor(n) % 2; - * }, Math); - * // => [[1.2, 3.4], [2.3]] - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true }, - * { 'user': 'pebbles', 'age': 1, 'active': false } - * ]; - * - * var mapper = function(array) { - * return _.pluck(array, 'user'); - * }; - * - * // using the `_.matches` callback shorthand - * _.map(_.partition(users, { 'age': 1, 'active': false }), mapper); - * // => [['pebbles'], ['barney', 'fred']] - * - * // using the `_.matchesProperty` callback shorthand - * _.map(_.partition(users, 'active', false), mapper); - * // => [['barney', 'pebbles'], ['fred']] - * - * // using the `_.property` callback shorthand - * _.map(_.partition(users, 'active'), mapper); - * // => [['fred'], ['barney', 'pebbles']] - */ - var partition = createAggregator(function(result, value, key) { - result[key ? 0 : 1].push(value); - }, function() { return [[], []]; }); - - /** - * Gets the property value of `path` from all elements in `collection`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Array|string} path The path of the property to pluck. - * @returns {Array} Returns the property values. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 } - * ]; - * - * _.pluck(users, 'user'); - * // => ['barney', 'fred'] - * - * var userIndex = _.indexBy(users, 'user'); - * _.pluck(userIndex, 'age'); - * // => [36, 40] (iteration order is not guaranteed) - */ - function pluck(collection, path) { - return map(collection, property(path)); - } - - /** - * Reduces `collection` to a value which is the accumulated result of running - * each element in `collection` through `iteratee`, where each successive - * invocation is supplied the return value of the previous. If `accumulator` - * is not provided the first element of `collection` is used as the initial - * value. The `iteratee` is bound to `thisArg` and invoked with four arguments: - * (accumulator, value, index|key, collection). - * - * Many lodash methods are guarded to work as iteratees for methods like - * `_.reduce`, `_.reduceRight`, and `_.transform`. - * - * The guarded methods are: - * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `sortByAll`, - * and `sortByOrder` - * - * @static - * @memberOf _ - * @alias foldl, inject - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {*} Returns the accumulated value. - * @example - * - * _.reduce([1, 2], function(total, n) { - * return total + n; - * }); - * // => 3 - * - * _.reduce({ 'a': 1, 'b': 2 }, function(result, n, key) { - * result[key] = n * 3; - * return result; - * }, {}); - * // => { 'a': 3, 'b': 6 } (iteration order is not guaranteed) - */ - var reduce = createReduce(arrayReduce, baseEach); - - /** - * This method is like `_.reduce` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @alias foldr - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {*} Returns the accumulated value. - * @example - * - * var array = [[0, 1], [2, 3], [4, 5]]; - * - * _.reduceRight(array, function(flattened, other) { - * return flattened.concat(other); - * }, []); - * // => [4, 5, 2, 3, 0, 1] - */ - var reduceRight = createReduce(arrayReduceRight, baseEachRight); - - /** - * The opposite of `_.filter`; this method returns the elements of `collection` - * that `predicate` does **not** return truthy for. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Array} Returns the new filtered array. - * @example - * - * _.reject([1, 2, 3, 4], function(n) { - * return n % 2 == 0; - * }); - * // => [1, 3] - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true } - * ]; - * - * // using the `_.matches` callback shorthand - * _.pluck(_.reject(users, { 'age': 40, 'active': true }), 'user'); - * // => ['barney'] - * - * // using the `_.matchesProperty` callback shorthand - * _.pluck(_.reject(users, 'active', false), 'user'); - * // => ['fred'] - * - * // using the `_.property` callback shorthand - * _.pluck(_.reject(users, 'active'), 'user'); - * // => ['barney'] - */ - function reject(collection, predicate, thisArg) { - var func = isArray(collection) ? arrayFilter : baseFilter; - predicate = getCallback(predicate, thisArg, 3); - return func(collection, function(value, index, collection) { - return !predicate(value, index, collection); - }); - } - - /** - * Gets a random element or `n` random elements from a collection. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to sample. - * @param {number} [n] The number of elements to sample. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {*} Returns the random sample(s). - * @example - * - * _.sample([1, 2, 3, 4]); - * // => 2 - * - * _.sample([1, 2, 3, 4], 2); - * // => [3, 1] - */ - function sample(collection, n, guard) { - if (guard ? isIterateeCall(collection, n, guard) : n == null) { - collection = toIterable(collection); - var length = collection.length; - return length > 0 ? collection[baseRandom(0, length - 1)] : undefined; - } - var index = -1, - result = toArray(collection), - length = result.length, - lastIndex = length - 1; - - n = nativeMin(n < 0 ? 0 : (+n || 0), length); - while (++index < n) { - var rand = baseRandom(index, lastIndex), - value = result[rand]; - - result[rand] = result[index]; - result[index] = value; - } - result.length = n; - return result; - } - - /** - * Creates an array of shuffled values, using a version of the - * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle). - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to shuffle. - * @returns {Array} Returns the new shuffled array. - * @example - * - * _.shuffle([1, 2, 3, 4]); - * // => [4, 1, 3, 2] - */ - function shuffle(collection) { - return sample(collection, POSITIVE_INFINITY); - } - - /** - * Gets the size of `collection` by returning its length for array-like - * values or the number of own enumerable properties for objects. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to inspect. - * @returns {number} Returns the size of `collection`. - * @example - * - * _.size([1, 2, 3]); - * // => 3 - * - * _.size({ 'a': 1, 'b': 2 }); - * // => 2 - * - * _.size('pebbles'); - * // => 7 - */ - function size(collection) { - var length = collection ? getLength(collection) : 0; - return isLength(length) ? length : keys(collection).length; - } - - /** - * Checks if `predicate` returns truthy for **any** element of `collection`. - * The function returns as soon as it finds a passing value and does not iterate - * over the entire collection. The predicate is bound to `thisArg` and invoked - * with three arguments: (value, index|key, collection). - * - * If a property name is provided for `predicate` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `predicate` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @alias any - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - * @example - * - * _.some([null, 0, 'yes', false], Boolean); - * // => true - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false } - * ]; - * - * // using the `_.matches` callback shorthand - * _.some(users, { 'user': 'barney', 'active': false }); - * // => false - * - * // using the `_.matchesProperty` callback shorthand - * _.some(users, 'active', false); - * // => true - * - * // using the `_.property` callback shorthand - * _.some(users, 'active'); - * // => true - */ - function some(collection, predicate, thisArg) { - var func = isArray(collection) ? arraySome : baseSome; - if (thisArg && isIterateeCall(collection, predicate, thisArg)) { - predicate = undefined; - } - if (typeof predicate != 'function' || thisArg !== undefined) { - predicate = getCallback(predicate, thisArg, 3); - } - return func(collection, predicate); - } - - /** - * Creates an array of elements, sorted in ascending order by the results of - * running each element in a collection through `iteratee`. This method performs - * a stable sort, that is, it preserves the original sort order of equal elements. - * The `iteratee` is bound to `thisArg` and invoked with three arguments: - * (value, index|key, collection). - * - * If a property name is provided for `iteratee` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `iteratee` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [iteratee=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Array} Returns the new sorted array. - * @example - * - * _.sortBy([1, 2, 3], function(n) { - * return Math.sin(n); - * }); - * // => [3, 1, 2] - * - * _.sortBy([1, 2, 3], function(n) { - * return this.sin(n); - * }, Math); - * // => [3, 1, 2] - * - * var users = [ - * { 'user': 'fred' }, - * { 'user': 'pebbles' }, - * { 'user': 'barney' } - * ]; - * - * // using the `_.property` callback shorthand - * _.pluck(_.sortBy(users, 'user'), 'user'); - * // => ['barney', 'fred', 'pebbles'] - */ - function sortBy(collection, iteratee, thisArg) { - if (collection == null) { - return []; - } - if (thisArg && isIterateeCall(collection, iteratee, thisArg)) { - iteratee = undefined; - } - var index = -1; - iteratee = getCallback(iteratee, thisArg, 3); - - var result = baseMap(collection, function(value, key, collection) { - return { 'criteria': iteratee(value, key, collection), 'index': ++index, 'value': value }; - }); - return baseSortBy(result, compareAscending); - } - - /** - * This method is like `_.sortBy` except that it can sort by multiple iteratees - * or property names. - * - * If a property name is provided for an iteratee the created `_.property` - * style callback returns the property value of the given element. - * - * If an object is provided for an iteratee the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {...(Function|Function[]|Object|Object[]|string|string[])} iteratees - * The iteratees to sort by, specified as individual values or arrays of values. - * @returns {Array} Returns the new sorted array. - * @example - * - * var users = [ - * { 'user': 'fred', 'age': 48 }, - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 42 }, - * { 'user': 'barney', 'age': 34 } - * ]; - * - * _.map(_.sortByAll(users, ['user', 'age']), _.values); - * // => [['barney', 34], ['barney', 36], ['fred', 42], ['fred', 48]] - * - * _.map(_.sortByAll(users, 'user', function(chr) { - * return Math.floor(chr.age / 10); - * }), _.values); - * // => [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]] - */ - var sortByAll = restParam(function(collection, iteratees) { - if (collection == null) { - return []; - } - var guard = iteratees[2]; - if (guard && isIterateeCall(iteratees[0], iteratees[1], guard)) { - iteratees.length = 1; - } - return baseSortByOrder(collection, baseFlatten(iteratees), []); - }); - - /** - * This method is like `_.sortByAll` except that it allows specifying the - * sort orders of the iteratees to sort by. If `orders` is unspecified, all - * values are sorted in ascending order. Otherwise, a value is sorted in - * ascending order if its corresponding order is "asc", and descending if "desc". - * - * If a property name is provided for an iteratee the created `_.property` - * style callback returns the property value of the given element. - * - * If an object is provided for an iteratee the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. - * @param {boolean[]} [orders] The sort orders of `iteratees`. - * @param- {Object} [guard] Enables use as a callback for functions like `_.reduce`. - * @returns {Array} Returns the new sorted array. - * @example - * - * var users = [ - * { 'user': 'fred', 'age': 48 }, - * { 'user': 'barney', 'age': 34 }, - * { 'user': 'fred', 'age': 42 }, - * { 'user': 'barney', 'age': 36 } - * ]; - * - * // sort by `user` in ascending order and by `age` in descending order - * _.map(_.sortByOrder(users, ['user', 'age'], ['asc', 'desc']), _.values); - * // => [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]] - */ - function sortByOrder(collection, iteratees, orders, guard) { - if (collection == null) { - return []; - } - if (guard && isIterateeCall(iteratees, orders, guard)) { - orders = undefined; - } - if (!isArray(iteratees)) { - iteratees = iteratees == null ? [] : [iteratees]; - } - if (!isArray(orders)) { - orders = orders == null ? [] : [orders]; - } - return baseSortByOrder(collection, iteratees, orders); - } - - /** - * Performs a deep comparison between each element in `collection` and the - * source object, returning an array of all elements that have equivalent - * property values. - * - * **Note:** This method supports comparing arrays, booleans, `Date` objects, - * numbers, `Object` objects, regexes, and strings. Objects are compared by - * their own, not inherited, enumerable properties. For comparing a single - * own or inherited property value see `_.matchesProperty`. - * - * @static - * @memberOf _ - * @category Collection - * @param {Array|Object|string} collection The collection to search. - * @param {Object} source The object of property values to match. - * @returns {Array} Returns the new filtered array. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false, 'pets': ['hoppy'] }, - * { 'user': 'fred', 'age': 40, 'active': true, 'pets': ['baby puss', 'dino'] } - * ]; - * - * _.pluck(_.where(users, { 'age': 36, 'active': false }), 'user'); - * // => ['barney'] - * - * _.pluck(_.where(users, { 'pets': ['dino'] }), 'user'); - * // => ['fred'] - */ - function where(collection, source) { - return filter(collection, baseMatches(source)); - } - - /*------------------------------------------------------------------------*/ - - /** - * Gets the number of milliseconds that have elapsed since the Unix epoch - * (1 January 1970 00:00:00 UTC). - * - * @static - * @memberOf _ - * @category Date - * @example - * - * _.defer(function(stamp) { - * console.log(_.now() - stamp); - * }, _.now()); - * // => logs the number of milliseconds it took for the deferred function to be invoked - */ - var now = nativeNow || function() { - return new Date().getTime(); - }; - - /*------------------------------------------------------------------------*/ - - /** - * The opposite of `_.before`; this method creates a function that invokes - * `func` once it's called `n` or more times. - * - * @static - * @memberOf _ - * @category Function - * @param {number} n The number of calls before `func` is invoked. - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * var saves = ['profile', 'settings']; - * - * var done = _.after(saves.length, function() { - * console.log('done saving!'); - * }); - * - * _.forEach(saves, function(type) { - * asyncSave({ 'type': type, 'complete': done }); - * }); - * // => logs 'done saving!' after the two async saves have completed - */ - function after(n, func) { - if (typeof func != 'function') { - if (typeof n == 'function') { - var temp = n; - n = func; - func = temp; - } else { - throw new TypeError(FUNC_ERROR_TEXT); - } - } - n = nativeIsFinite(n = +n) ? n : 0; - return function() { - if (--n < 1) { - return func.apply(this, arguments); - } - }; - } - - /** - * Creates a function that accepts up to `n` arguments ignoring any - * additional arguments. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to cap arguments for. - * @param {number} [n=func.length] The arity cap. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Function} Returns the new function. - * @example - * - * _.map(['6', '8', '10'], _.ary(parseInt, 1)); - * // => [6, 8, 10] - */ - function ary(func, n, guard) { - if (guard && isIterateeCall(func, n, guard)) { - n = undefined; - } - n = (func && n == null) ? func.length : nativeMax(+n || 0, 0); - return createWrapper(func, ARY_FLAG, undefined, undefined, undefined, undefined, n); - } - - /** - * Creates a function that invokes `func`, with the `this` binding and arguments - * of the created function, while it's called less than `n` times. Subsequent - * calls to the created function return the result of the last `func` invocation. - * - * @static - * @memberOf _ - * @category Function - * @param {number} n The number of calls at which `func` is no longer invoked. - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * jQuery('#add').on('click', _.before(5, addContactToList)); - * // => allows adding up to 4 contacts to the list - */ - function before(n, func) { - var result; - if (typeof func != 'function') { - if (typeof n == 'function') { - var temp = n; - n = func; - func = temp; - } else { - throw new TypeError(FUNC_ERROR_TEXT); - } - } - return function() { - if (--n > 0) { - result = func.apply(this, arguments); - } - if (n <= 1) { - func = undefined; - } - return result; - }; - } - - /** - * Creates a function that invokes `func` with the `this` binding of `thisArg` - * and prepends any additional `_.bind` arguments to those provided to the - * bound function. - * - * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, - * may be used as a placeholder for partially applied arguments. - * - * **Note:** Unlike native `Function#bind` this method does not set the "length" - * property of bound functions. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to bind. - * @param {*} thisArg The `this` binding of `func`. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new bound function. - * @example - * - * var greet = function(greeting, punctuation) { - * return greeting + ' ' + this.user + punctuation; - * }; - * - * var object = { 'user': 'fred' }; - * - * var bound = _.bind(greet, object, 'hi'); - * bound('!'); - * // => 'hi fred!' - * - * // using placeholders - * var bound = _.bind(greet, object, _, '!'); - * bound('hi'); - * // => 'hi fred!' - */ - var bind = restParam(function(func, thisArg, partials) { - var bitmask = BIND_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, bind.placeholder); - bitmask |= PARTIAL_FLAG; - } - return createWrapper(func, bitmask, thisArg, partials, holders); - }); - - /** - * Binds methods of an object to the object itself, overwriting the existing - * method. Method names may be specified as individual arguments or as arrays - * of method names. If no method names are provided all enumerable function - * properties, own and inherited, of `object` are bound. - * - * **Note:** This method does not set the "length" property of bound functions. - * - * @static - * @memberOf _ - * @category Function - * @param {Object} object The object to bind and assign the bound methods to. - * @param {...(string|string[])} [methodNames] The object method names to bind, - * specified as individual method names or arrays of method names. - * @returns {Object} Returns `object`. - * @example - * - * var view = { - * 'label': 'docs', - * 'onClick': function() { - * console.log('clicked ' + this.label); - * } - * }; - * - * _.bindAll(view); - * jQuery('#docs').on('click', view.onClick); - * // => logs 'clicked docs' when the element is clicked - */ - var bindAll = restParam(function(object, methodNames) { - methodNames = methodNames.length ? baseFlatten(methodNames) : functions(object); - - var index = -1, - length = methodNames.length; - - while (++index < length) { - var key = methodNames[index]; - object[key] = createWrapper(object[key], BIND_FLAG, object); - } - return object; - }); - - /** - * Creates a function that invokes the method at `object[key]` and prepends - * any additional `_.bindKey` arguments to those provided to the bound function. - * - * This method differs from `_.bind` by allowing bound functions to reference - * methods that may be redefined or don't yet exist. - * See [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern) - * for more details. - * - * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * @static - * @memberOf _ - * @category Function - * @param {Object} object The object the method belongs to. - * @param {string} key The key of the method. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new bound function. - * @example - * - * var object = { - * 'user': 'fred', - * 'greet': function(greeting, punctuation) { - * return greeting + ' ' + this.user + punctuation; - * } - * }; - * - * var bound = _.bindKey(object, 'greet', 'hi'); - * bound('!'); - * // => 'hi fred!' - * - * object.greet = function(greeting, punctuation) { - * return greeting + 'ya ' + this.user + punctuation; - * }; - * - * bound('!'); - * // => 'hiya fred!' - * - * // using placeholders - * var bound = _.bindKey(object, 'greet', _, '!'); - * bound('hi'); - * // => 'hiya fred!' - */ - var bindKey = restParam(function(object, key, partials) { - var bitmask = BIND_FLAG | BIND_KEY_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, bindKey.placeholder); - bitmask |= PARTIAL_FLAG; - } - return createWrapper(key, bitmask, object, partials, holders); - }); - - /** - * Creates a function that accepts one or more arguments of `func` that when - * called either invokes `func` returning its result, if all `func` arguments - * have been provided, or returns a function that accepts one or more of the - * remaining `func` arguments, and so on. The arity of `func` may be specified - * if `func.length` is not sufficient. - * - * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds, - * may be used as a placeholder for provided arguments. - * - * **Note:** This method does not set the "length" property of curried functions. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to curry. - * @param {number} [arity=func.length] The arity of `func`. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Function} Returns the new curried function. - * @example - * - * var abc = function(a, b, c) { - * return [a, b, c]; - * }; - * - * var curried = _.curry(abc); - * - * curried(1)(2)(3); - * // => [1, 2, 3] - * - * curried(1, 2)(3); - * // => [1, 2, 3] - * - * curried(1, 2, 3); - * // => [1, 2, 3] - * - * // using placeholders - * curried(1)(_, 3)(2); - * // => [1, 2, 3] - */ - var curry = createCurry(CURRY_FLAG); - - /** - * This method is like `_.curry` except that arguments are applied to `func` - * in the manner of `_.partialRight` instead of `_.partial`. - * - * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for provided arguments. - * - * **Note:** This method does not set the "length" property of curried functions. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to curry. - * @param {number} [arity=func.length] The arity of `func`. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Function} Returns the new curried function. - * @example - * - * var abc = function(a, b, c) { - * return [a, b, c]; - * }; - * - * var curried = _.curryRight(abc); - * - * curried(3)(2)(1); - * // => [1, 2, 3] - * - * curried(2, 3)(1); - * // => [1, 2, 3] - * - * curried(1, 2, 3); - * // => [1, 2, 3] - * - * // using placeholders - * curried(3)(1, _)(2); - * // => [1, 2, 3] - */ - var curryRight = createCurry(CURRY_RIGHT_FLAG); - - /** - * Creates a debounced function that delays invoking `func` until after `wait` - * milliseconds have elapsed since the last time the debounced function was - * invoked. The debounced function comes with a `cancel` method to cancel - * delayed invocations. Provide an options object to indicate that `func` - * should be invoked on the leading and/or trailing edge of the `wait` timeout. - * Subsequent calls to the debounced function return the result of the last - * `func` invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked - * on the trailing edge of the timeout only if the the debounced function is - * invoked more than once during the `wait` timeout. - * - * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation) - * for details over the differences between `_.debounce` and `_.throttle`. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to debounce. - * @param {number} [wait=0] The number of milliseconds to delay. - * @param {Object} [options] The options object. - * @param {boolean} [options.leading=false] Specify invoking on the leading - * edge of the timeout. - * @param {number} [options.maxWait] The maximum time `func` is allowed to be - * delayed before it's invoked. - * @param {boolean} [options.trailing=true] Specify invoking on the trailing - * edge of the timeout. - * @returns {Function} Returns the new debounced function. - * @example - * - * // avoid costly calculations while the window size is in flux - * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); - * - * // invoke `sendMail` when the click event is fired, debouncing subsequent calls - * jQuery('#postbox').on('click', _.debounce(sendMail, 300, { - * 'leading': true, - * 'trailing': false - * })); - * - * // ensure `batchLog` is invoked once after 1 second of debounced calls - * var source = new EventSource('/stream'); - * jQuery(source).on('message', _.debounce(batchLog, 250, { - * 'maxWait': 1000 - * })); - * - * // cancel a debounced call - * var todoChanges = _.debounce(batchLog, 1000); - * Object.observe(models.todo, todoChanges); - * - * Object.observe(models, function(changes) { - * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) { - * todoChanges.cancel(); - * } - * }, ['delete']); - * - * // ...at some point `models.todo` is changed - * models.todo.completed = true; - * - * // ...before 1 second has passed `models.todo` is deleted - * // which cancels the debounced `todoChanges` call - * delete models.todo; - */ - function debounce(func, wait, options) { - var args, - maxTimeoutId, - result, - stamp, - thisArg, - timeoutId, - trailingCall, - lastCalled = 0, - maxWait = false, - trailing = true; - - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - wait = wait < 0 ? 0 : (+wait || 0); - if (options === true) { - var leading = true; - trailing = false; - } else if (isObject(options)) { - leading = !!options.leading; - maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait); - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - - function cancel() { - if (timeoutId) { - clearTimeout(timeoutId); - } - if (maxTimeoutId) { - clearTimeout(maxTimeoutId); - } - lastCalled = 0; - maxTimeoutId = timeoutId = trailingCall = undefined; - } - - function complete(isCalled, id) { - if (id) { - clearTimeout(id); - } - maxTimeoutId = timeoutId = trailingCall = undefined; - if (isCalled) { - lastCalled = now(); - result = func.apply(thisArg, args); - if (!timeoutId && !maxTimeoutId) { - args = thisArg = undefined; - } - } - } - - function delayed() { - var remaining = wait - (now() - stamp); - if (remaining <= 0 || remaining > wait) { - complete(trailingCall, maxTimeoutId); - } else { - timeoutId = setTimeout(delayed, remaining); - } - } - - function maxDelayed() { - complete(trailing, timeoutId); - } - - function debounced() { - args = arguments; - stamp = now(); - thisArg = this; - trailingCall = trailing && (timeoutId || !leading); - - if (maxWait === false) { - var leadingCall = leading && !timeoutId; - } else { - if (!maxTimeoutId && !leading) { - lastCalled = stamp; - } - var remaining = maxWait - (stamp - lastCalled), - isCalled = remaining <= 0 || remaining > maxWait; - - if (isCalled) { - if (maxTimeoutId) { - maxTimeoutId = clearTimeout(maxTimeoutId); - } - lastCalled = stamp; - result = func.apply(thisArg, args); - } - else if (!maxTimeoutId) { - maxTimeoutId = setTimeout(maxDelayed, remaining); - } - } - if (isCalled && timeoutId) { - timeoutId = clearTimeout(timeoutId); - } - else if (!timeoutId && wait !== maxWait) { - timeoutId = setTimeout(delayed, wait); - } - if (leadingCall) { - isCalled = true; - result = func.apply(thisArg, args); - } - if (isCalled && !timeoutId && !maxTimeoutId) { - args = thisArg = undefined; - } - return result; - } - debounced.cancel = cancel; - return debounced; - } - - /** - * Defers invoking the `func` until the current call stack has cleared. Any - * additional arguments are provided to `func` when it's invoked. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to defer. - * @param {...*} [args] The arguments to invoke the function with. - * @returns {number} Returns the timer id. - * @example - * - * _.defer(function(text) { - * console.log(text); - * }, 'deferred'); - * // logs 'deferred' after one or more milliseconds - */ - var defer = restParam(function(func, args) { - return baseDelay(func, 1, args); - }); - - /** - * Invokes `func` after `wait` milliseconds. Any additional arguments are - * provided to `func` when it's invoked. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @param {...*} [args] The arguments to invoke the function with. - * @returns {number} Returns the timer id. - * @example - * - * _.delay(function(text) { - * console.log(text); - * }, 1000, 'later'); - * // => logs 'later' after one second - */ - var delay = restParam(function(func, wait, args) { - return baseDelay(func, wait, args); - }); - - /** - * Creates a function that returns the result of invoking the provided - * functions with the `this` binding of the created function, where each - * successive invocation is supplied the return value of the previous. - * - * @static - * @memberOf _ - * @category Function - * @param {...Function} [funcs] Functions to invoke. - * @returns {Function} Returns the new function. - * @example - * - * function square(n) { - * return n * n; - * } - * - * var addSquare = _.flow(_.add, square); - * addSquare(1, 2); - * // => 9 - */ - var flow = createFlow(); - - /** - * This method is like `_.flow` except that it creates a function that - * invokes the provided functions from right to left. - * - * @static - * @memberOf _ - * @alias backflow, compose - * @category Function - * @param {...Function} [funcs] Functions to invoke. - * @returns {Function} Returns the new function. - * @example - * - * function square(n) { - * return n * n; - * } - * - * var addSquare = _.flowRight(square, _.add); - * addSquare(1, 2); - * // => 9 - */ - var flowRight = createFlow(true); - - /** - * Creates a function that memoizes the result of `func`. If `resolver` is - * provided it determines the cache key for storing the result based on the - * arguments provided to the memoized function. By default, the first argument - * provided to the memoized function is coerced to a string and used as the - * cache key. The `func` is invoked with the `this` binding of the memoized - * function. - * - * **Note:** The cache is exposed as the `cache` property on the memoized - * function. Its creation may be customized by replacing the `_.memoize.Cache` - * constructor with one whose instances implement the [`Map`](http://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-map-prototype-object) - * method interface of `get`, `has`, and `set`. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to have its output memoized. - * @param {Function} [resolver] The function to resolve the cache key. - * @returns {Function} Returns the new memoizing function. - * @example - * - * var upperCase = _.memoize(function(string) { - * return string.toUpperCase(); - * }); - * - * upperCase('fred'); - * // => 'FRED' - * - * // modifying the result cache - * upperCase.cache.set('fred', 'BARNEY'); - * upperCase('fred'); - * // => 'BARNEY' - * - * // replacing `_.memoize.Cache` - * var object = { 'user': 'fred' }; - * var other = { 'user': 'barney' }; - * var identity = _.memoize(_.identity); - * - * identity(object); - * // => { 'user': 'fred' } - * identity(other); - * // => { 'user': 'fred' } - * - * _.memoize.Cache = WeakMap; - * var identity = _.memoize(_.identity); - * - * identity(object); - * // => { 'user': 'fred' } - * identity(other); - * // => { 'user': 'barney' } - */ - function memoize(func, resolver) { - if (typeof func != 'function' || (resolver && typeof resolver != 'function')) { - throw new TypeError(FUNC_ERROR_TEXT); - } - var memoized = function() { - var args = arguments, - key = resolver ? resolver.apply(this, args) : args[0], - cache = memoized.cache; - - if (cache.has(key)) { - return cache.get(key); - } - var result = func.apply(this, args); - memoized.cache = cache.set(key, result); - return result; - }; - memoized.cache = new memoize.Cache; - return memoized; - } - - /** - * Creates a function that runs each argument through a corresponding - * transform function. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to wrap. - * @param {...(Function|Function[])} [transforms] The functions to transform - * arguments, specified as individual functions or arrays of functions. - * @returns {Function} Returns the new function. - * @example - * - * function doubled(n) { - * return n * 2; - * } - * - * function square(n) { - * return n * n; - * } - * - * var modded = _.modArgs(function(x, y) { - * return [x, y]; - * }, square, doubled); - * - * modded(1, 2); - * // => [1, 4] - * - * modded(5, 10); - * // => [25, 20] - */ - var modArgs = restParam(function(func, transforms) { - transforms = baseFlatten(transforms); - if (typeof func != 'function' || !arrayEvery(transforms, baseIsFunction)) { - throw new TypeError(FUNC_ERROR_TEXT); - } - var length = transforms.length; - return restParam(function(args) { - var index = nativeMin(args.length, length); - while (index--) { - args[index] = transforms[index](args[index]); - } - return func.apply(this, args); - }); - }); - - /** - * Creates a function that negates the result of the predicate `func`. The - * `func` predicate is invoked with the `this` binding and arguments of the - * created function. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} predicate The predicate to negate. - * @returns {Function} Returns the new function. - * @example - * - * function isEven(n) { - * return n % 2 == 0; - * } - * - * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); - * // => [1, 3, 5] - */ - function negate(predicate) { - if (typeof predicate != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - return function() { - return !predicate.apply(this, arguments); - }; - } - - /** - * Creates a function that is restricted to invoking `func` once. Repeat calls - * to the function return the value of the first call. The `func` is invoked - * with the `this` binding and arguments of the created function. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * var initialize = _.once(createApplication); - * initialize(); - * initialize(); - * // `initialize` invokes `createApplication` once - */ - function once(func) { - return before(2, func); - } - - /** - * Creates a function that invokes `func` with `partial` arguments prepended - * to those provided to the new function. This method is like `_.bind` except - * it does **not** alter the `this` binding. - * - * The `_.partial.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * **Note:** This method does not set the "length" property of partially - * applied functions. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to partially apply arguments to. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new partially applied function. - * @example - * - * var greet = function(greeting, name) { - * return greeting + ' ' + name; - * }; - * - * var sayHelloTo = _.partial(greet, 'hello'); - * sayHelloTo('fred'); - * // => 'hello fred' - * - * // using placeholders - * var greetFred = _.partial(greet, _, 'fred'); - * greetFred('hi'); - * // => 'hi fred' - */ - var partial = createPartial(PARTIAL_FLAG); - - /** - * This method is like `_.partial` except that partially applied arguments - * are appended to those provided to the new function. - * - * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * **Note:** This method does not set the "length" property of partially - * applied functions. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to partially apply arguments to. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new partially applied function. - * @example - * - * var greet = function(greeting, name) { - * return greeting + ' ' + name; - * }; - * - * var greetFred = _.partialRight(greet, 'fred'); - * greetFred('hi'); - * // => 'hi fred' - * - * // using placeholders - * var sayHelloTo = _.partialRight(greet, 'hello', _); - * sayHelloTo('fred'); - * // => 'hello fred' - */ - var partialRight = createPartial(PARTIAL_RIGHT_FLAG); - - /** - * Creates a function that invokes `func` with arguments arranged according - * to the specified indexes where the argument value at the first index is - * provided as the first argument, the argument value at the second index is - * provided as the second argument, and so on. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to rearrange arguments for. - * @param {...(number|number[])} indexes The arranged argument indexes, - * specified as individual indexes or arrays of indexes. - * @returns {Function} Returns the new function. - * @example - * - * var rearged = _.rearg(function(a, b, c) { - * return [a, b, c]; - * }, 2, 0, 1); - * - * rearged('b', 'c', 'a') - * // => ['a', 'b', 'c'] - * - * var map = _.rearg(_.map, [1, 0]); - * map(function(n) { - * return n * 3; - * }, [1, 2, 3]); - * // => [3, 6, 9] - */ - var rearg = restParam(function(func, indexes) { - return createWrapper(func, REARG_FLAG, undefined, undefined, undefined, baseFlatten(indexes)); - }); - - /** - * Creates a function that invokes `func` with the `this` binding of the - * created function and arguments from `start` and beyond provided as an array. - * - * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters). - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.restParam(function(what, names) { - * return what + ' ' + _.initial(names).join(', ') + - * (_.size(names) > 1 ? ', & ' : '') + _.last(names); - * }); - * - * say('hello', 'fred', 'barney', 'pebbles'); - * // => 'hello fred, barney, & pebbles' - */ - function restParam(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - rest = Array(length); - - while (++index < length) { - rest[index] = args[start + index]; - } - switch (start) { - case 0: return func.call(this, rest); - case 1: return func.call(this, args[0], rest); - case 2: return func.call(this, args[0], args[1], rest); - } - var otherArgs = Array(start + 1); - index = -1; - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = rest; - return func.apply(this, otherArgs); - }; - } - - /** - * Creates a function that invokes `func` with the `this` binding of the created - * function and an array of arguments much like [`Function#apply`](https://es5.github.io/#x15.3.4.3). - * - * **Note:** This method is based on the [spread operator](https://developer.mozilla.org/Web/JavaScript/Reference/Operators/Spread_operator). - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to spread arguments over. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.spread(function(who, what) { - * return who + ' says ' + what; - * }); - * - * say(['fred', 'hello']); - * // => 'fred says hello' - * - * // with a Promise - * var numbers = Promise.all([ - * Promise.resolve(40), - * Promise.resolve(36) - * ]); - * - * numbers.then(_.spread(function(x, y) { - * return x + y; - * })); - * // => a Promise of 76 - */ - function spread(func) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - return function(array) { - return func.apply(this, array); - }; - } - - /** - * Creates a throttled function that only invokes `func` at most once per - * every `wait` milliseconds. The throttled function comes with a `cancel` - * method to cancel delayed invocations. Provide an options object to indicate - * that `func` should be invoked on the leading and/or trailing edge of the - * `wait` timeout. Subsequent calls to the throttled function return the - * result of the last `func` call. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked - * on the trailing edge of the timeout only if the the throttled function is - * invoked more than once during the `wait` timeout. - * - * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation) - * for details over the differences between `_.throttle` and `_.debounce`. - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to throttle. - * @param {number} [wait=0] The number of milliseconds to throttle invocations to. - * @param {Object} [options] The options object. - * @param {boolean} [options.leading=true] Specify invoking on the leading - * edge of the timeout. - * @param {boolean} [options.trailing=true] Specify invoking on the trailing - * edge of the timeout. - * @returns {Function} Returns the new throttled function. - * @example - * - * // avoid excessively updating the position while scrolling - * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); - * - * // invoke `renewToken` when the click event is fired, but not more than once every 5 minutes - * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, { - * 'trailing': false - * })); - * - * // cancel a trailing throttled call - * jQuery(window).on('popstate', throttled.cancel); - */ - function throttle(func, wait, options) { - var leading = true, - trailing = true; - - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - if (options === false) { - leading = false; - } else if (isObject(options)) { - leading = 'leading' in options ? !!options.leading : leading; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - return debounce(func, wait, { 'leading': leading, 'maxWait': +wait, 'trailing': trailing }); - } - - /** - * Creates a function that provides `value` to the wrapper function as its - * first argument. Any additional arguments provided to the function are - * appended to those provided to the wrapper function. The wrapper is invoked - * with the `this` binding of the created function. - * - * @static - * @memberOf _ - * @category Function - * @param {*} value The value to wrap. - * @param {Function} wrapper The wrapper function. - * @returns {Function} Returns the new function. - * @example - * - * var p = _.wrap(_.escape, function(func, text) { - * return '

' + func(text) + '

'; - * }); - * - * p('fred, barney, & pebbles'); - * // => '

fred, barney, & pebbles

' - */ - function wrap(value, wrapper) { - wrapper = wrapper == null ? identity : wrapper; - return createWrapper(wrapper, PARTIAL_FLAG, undefined, [value], []); - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates a clone of `value`. If `isDeep` is `true` nested objects are cloned, - * otherwise they are assigned by reference. If `customizer` is provided it's - * invoked to produce the cloned values. If `customizer` returns `undefined` - * cloning is handled by the method instead. The `customizer` is bound to - * `thisArg` and invoked with up to three argument; (value [, index|key, object]). - * - * **Note:** This method is loosely based on the - * [structured clone algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm). - * The enumerable properties of `arguments` objects and objects created by - * constructors other than `Object` are cloned to plain `Object` objects. An - * empty object is returned for uncloneable values such as functions, DOM nodes, - * Maps, Sets, and WeakMaps. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @param {Function} [customizer] The function to customize cloning values. - * @param {*} [thisArg] The `this` binding of `customizer`. - * @returns {*} Returns the cloned value. - * @example - * - * var users = [ - * { 'user': 'barney' }, - * { 'user': 'fred' } - * ]; - * - * var shallow = _.clone(users); - * shallow[0] === users[0]; - * // => true - * - * var deep = _.clone(users, true); - * deep[0] === users[0]; - * // => false - * - * // using a customizer callback - * var el = _.clone(document.body, function(value) { - * if (_.isElement(value)) { - * return value.cloneNode(false); - * } - * }); - * - * el === document.body - * // => false - * el.nodeName - * // => BODY - * el.childNodes.length; - * // => 0 - */ - function clone(value, isDeep, customizer, thisArg) { - if (isDeep && typeof isDeep != 'boolean' && isIterateeCall(value, isDeep, customizer)) { - isDeep = false; - } - else if (typeof isDeep == 'function') { - thisArg = customizer; - customizer = isDeep; - isDeep = false; - } - return typeof customizer == 'function' - ? baseClone(value, isDeep, bindCallback(customizer, thisArg, 3)) - : baseClone(value, isDeep); - } - - /** - * Creates a deep clone of `value`. If `customizer` is provided it's invoked - * to produce the cloned values. If `customizer` returns `undefined` cloning - * is handled by the method instead. The `customizer` is bound to `thisArg` - * and invoked with up to three argument; (value [, index|key, object]). - * - * **Note:** This method is loosely based on the - * [structured clone algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm). - * The enumerable properties of `arguments` objects and objects created by - * constructors other than `Object` are cloned to plain `Object` objects. An - * empty object is returned for uncloneable values such as functions, DOM nodes, - * Maps, Sets, and WeakMaps. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to deep clone. - * @param {Function} [customizer] The function to customize cloning values. - * @param {*} [thisArg] The `this` binding of `customizer`. - * @returns {*} Returns the deep cloned value. - * @example - * - * var users = [ - * { 'user': 'barney' }, - * { 'user': 'fred' } - * ]; - * - * var deep = _.cloneDeep(users); - * deep[0] === users[0]; - * // => false - * - * // using a customizer callback - * var el = _.cloneDeep(document.body, function(value) { - * if (_.isElement(value)) { - * return value.cloneNode(true); - * } - * }); - * - * el === document.body - * // => false - * el.nodeName - * // => BODY - * el.childNodes.length; - * // => 20 - */ - function cloneDeep(value, customizer, thisArg) { - return typeof customizer == 'function' - ? baseClone(value, true, bindCallback(customizer, thisArg, 3)) - : baseClone(value, true); - } - - /** - * Checks if `value` is greater than `other`. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than `other`, else `false`. - * @example - * - * _.gt(3, 1); - * // => true - * - * _.gt(3, 3); - * // => false - * - * _.gt(1, 3); - * // => false - */ - function gt(value, other) { - return value > other; - } - - /** - * Checks if `value` is greater than or equal to `other`. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than or equal to `other`, else `false`. - * @example - * - * _.gte(3, 1); - * // => true - * - * _.gte(3, 3); - * // => true - * - * _.gte(1, 3); - * // => false - */ - function gte(value, other) { - return value >= other; - } - - /** - * Checks if `value` is classified as an `arguments` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ - function isArguments(value) { - return isObjectLike(value) && isArrayLike(value) && - hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); - } - - /** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(function() { return arguments; }()); - * // => false - */ - var isArray = nativeIsArray || function(value) { - return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag; - }; - - /** - * Checks if `value` is classified as a boolean primitive or object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isBoolean(false); - * // => true - * - * _.isBoolean(null); - * // => false - */ - function isBoolean(value) { - return value === true || value === false || (isObjectLike(value) && objToString.call(value) == boolTag); - } - - /** - * Checks if `value` is classified as a `Date` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isDate(new Date); - * // => true - * - * _.isDate('Mon April 23 2012'); - * // => false - */ - function isDate(value) { - return isObjectLike(value) && objToString.call(value) == dateTag; - } - - /** - * Checks if `value` is a DOM element. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. - * @example - * - * _.isElement(document.body); - * // => true - * - * _.isElement(''); - * // => false - */ - function isElement(value) { - return !!value && value.nodeType === 1 && isObjectLike(value) && !isPlainObject(value); - } - - /** - * Checks if `value` is empty. A value is considered empty unless it's an - * `arguments` object, array, string, or jQuery-like collection with a length - * greater than `0` or an object with own enumerable properties. - * - * @static - * @memberOf _ - * @category Lang - * @param {Array|Object|string} value The value to inspect. - * @returns {boolean} Returns `true` if `value` is empty, else `false`. - * @example - * - * _.isEmpty(null); - * // => true - * - * _.isEmpty(true); - * // => true - * - * _.isEmpty(1); - * // => true - * - * _.isEmpty([1, 2, 3]); - * // => false - * - * _.isEmpty({ 'a': 1 }); - * // => false - */ - function isEmpty(value) { - if (value == null) { - return true; - } - if (isArrayLike(value) && (isArray(value) || isString(value) || isArguments(value) || - (isObjectLike(value) && isFunction(value.splice)))) { - return !value.length; - } - return !keys(value).length; - } - - /** - * Performs a deep comparison between two values to determine if they are - * equivalent. If `customizer` is provided it's invoked to compare values. - * If `customizer` returns `undefined` comparisons are handled by the method - * instead. The `customizer` is bound to `thisArg` and invoked with up to - * three arguments: (value, other [, index|key]). - * - * **Note:** This method supports comparing arrays, booleans, `Date` objects, - * numbers, `Object` objects, regexes, and strings. Objects are compared by - * their own, not inherited, enumerable properties. Functions and DOM nodes - * are **not** supported. Provide a customizer function to extend support - * for comparing other values. - * - * @static - * @memberOf _ - * @alias eq - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {Function} [customizer] The function to customize value comparisons. - * @param {*} [thisArg] The `this` binding of `customizer`. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'user': 'fred' }; - * var other = { 'user': 'fred' }; - * - * object == other; - * // => false - * - * _.isEqual(object, other); - * // => true - * - * // using a customizer callback - * var array = ['hello', 'goodbye']; - * var other = ['hi', 'goodbye']; - * - * _.isEqual(array, other, function(value, other) { - * if (_.every([value, other], RegExp.prototype.test, /^h(?:i|ello)$/)) { - * return true; - * } - * }); - * // => true - */ - function isEqual(value, other, customizer, thisArg) { - customizer = typeof customizer == 'function' ? bindCallback(customizer, thisArg, 3) : undefined; - var result = customizer ? customizer(value, other) : undefined; - return result === undefined ? baseIsEqual(value, other, customizer) : !!result; - } - - /** - * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, - * `SyntaxError`, `TypeError`, or `URIError` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an error object, else `false`. - * @example - * - * _.isError(new Error); - * // => true - * - * _.isError(Error); - * // => false - */ - function isError(value) { - return isObjectLike(value) && typeof value.message == 'string' && objToString.call(value) == errorTag; - } - - /** - * Checks if `value` is a finite primitive number. - * - * **Note:** This method is based on [`Number.isFinite`](http://ecma-international.org/ecma-262/6.0/#sec-number.isfinite). - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. - * @example - * - * _.isFinite(10); - * // => true - * - * _.isFinite('10'); - * // => false - * - * _.isFinite(true); - * // => false - * - * _.isFinite(Object(10)); - * // => false - * - * _.isFinite(Infinity); - * // => false - */ - function isFinite(value) { - return typeof value == 'number' && nativeIsFinite(value); - } - - /** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in older versions of Chrome and Safari which return 'function' for regexes - // and Safari 8 which returns 'object' for typed array constructors. - return isObject(value) && objToString.call(value) == funcTag; - } - - /** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(1); - * // => false - */ - function isObject(value) { - // Avoid a V8 JIT bug in Chrome 19-20. - // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); - } - - /** - * Performs a deep comparison between `object` and `source` to determine if - * `object` contains equivalent property values. If `customizer` is provided - * it's invoked to compare values. If `customizer` returns `undefined` - * comparisons are handled by the method instead. The `customizer` is bound - * to `thisArg` and invoked with three arguments: (value, other, index|key). - * - * **Note:** This method supports comparing properties of arrays, booleans, - * `Date` objects, numbers, `Object` objects, regexes, and strings. Functions - * and DOM nodes are **not** supported. Provide a customizer function to extend - * support for comparing other values. - * - * @static - * @memberOf _ - * @category Lang - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @param {Function} [customizer] The function to customize value comparisons. - * @param {*} [thisArg] The `this` binding of `customizer`. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - * @example - * - * var object = { 'user': 'fred', 'age': 40 }; - * - * _.isMatch(object, { 'age': 40 }); - * // => true - * - * _.isMatch(object, { 'age': 36 }); - * // => false - * - * // using a customizer callback - * var object = { 'greeting': 'hello' }; - * var source = { 'greeting': 'hi' }; - * - * _.isMatch(object, source, function(value, other) { - * return _.every([value, other], RegExp.prototype.test, /^h(?:i|ello)$/) || undefined; - * }); - * // => true - */ - function isMatch(object, source, customizer, thisArg) { - customizer = typeof customizer == 'function' ? bindCallback(customizer, thisArg, 3) : undefined; - return baseIsMatch(object, getMatchData(source), customizer); - } - - /** - * Checks if `value` is `NaN`. - * - * **Note:** This method is not the same as [`isNaN`](https://es5.github.io/#x15.1.2.4) - * which returns `true` for `undefined` and other non-numeric values. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - * @example - * - * _.isNaN(NaN); - * // => true - * - * _.isNaN(new Number(NaN)); - * // => true - * - * isNaN(undefined); - * // => true - * - * _.isNaN(undefined); - * // => false - */ - function isNaN(value) { - // An `NaN` primitive is the only value that is not equal to itself. - // Perform the `toStringTag` check first to avoid errors with some host objects in IE. - return isNumber(value) && value != +value; - } - - /** - * Checks if `value` is a native function. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ - function isNative(value) { - if (value == null) { - return false; - } - if (isFunction(value)) { - return reIsNative.test(fnToString.call(value)); - } - return isObjectLike(value) && reIsHostCtor.test(value); - } - - /** - * Checks if `value` is `null`. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `null`, else `false`. - * @example - * - * _.isNull(null); - * // => true - * - * _.isNull(void 0); - * // => false - */ - function isNull(value) { - return value === null; - } - - /** - * Checks if `value` is classified as a `Number` primitive or object. - * - * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are classified - * as numbers, use the `_.isFinite` method. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isNumber(8.4); - * // => true - * - * _.isNumber(NaN); - * // => true - * - * _.isNumber('8.4'); - * // => false - */ - function isNumber(value) { - return typeof value == 'number' || (isObjectLike(value) && objToString.call(value) == numberTag); - } - - /** - * Checks if `value` is a plain object, that is, an object created by the - * `Object` constructor or one with a `[[Prototype]]` of `null`. - * - * **Note:** This method assumes objects created by the `Object` constructor - * have no inherited enumerable properties. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * _.isPlainObject(new Foo); - * // => false - * - * _.isPlainObject([1, 2, 3]); - * // => false - * - * _.isPlainObject({ 'x': 0, 'y': 0 }); - * // => true - * - * _.isPlainObject(Object.create(null)); - * // => true - */ - function isPlainObject(value) { - var Ctor; - - // Exit early for non `Object` objects. - if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isArguments(value)) || - (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) { - return false; - } - // IE < 9 iterates inherited properties before own properties. If the first - // iterated property is an object's own property then there are no inherited - // enumerable properties. - var result; - // In most environments an object's own properties are iterated before - // its inherited properties. If the last iterated property is an object's - // own property then there are no inherited enumerable properties. - baseForIn(value, function(subValue, key) { - result = key; - }); - return result === undefined || hasOwnProperty.call(value, result); - } - - /** - * Checks if `value` is classified as a `RegExp` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isRegExp(/abc/); - * // => true - * - * _.isRegExp('/abc/'); - * // => false - */ - function isRegExp(value) { - return isObject(value) && objToString.call(value) == regexpTag; - } - - /** - * Checks if `value` is classified as a `String` primitive or object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isString('abc'); - * // => true - * - * _.isString(1); - * // => false - */ - function isString(value) { - return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag); - } - - /** - * Checks if `value` is classified as a typed array. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isTypedArray(new Uint8Array); - * // => true - * - * _.isTypedArray([]); - * // => false - */ - function isTypedArray(value) { - return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)]; - } - - /** - * Checks if `value` is `undefined`. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. - * @example - * - * _.isUndefined(void 0); - * // => true - * - * _.isUndefined(null); - * // => false - */ - function isUndefined(value) { - return value === undefined; - } - - /** - * Checks if `value` is less than `other`. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than `other`, else `false`. - * @example - * - * _.lt(1, 3); - * // => true - * - * _.lt(3, 3); - * // => false - * - * _.lt(3, 1); - * // => false - */ - function lt(value, other) { - return value < other; - } - - /** - * Checks if `value` is less than or equal to `other`. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than or equal to `other`, else `false`. - * @example - * - * _.lte(1, 3); - * // => true - * - * _.lte(3, 3); - * // => true - * - * _.lte(3, 1); - * // => false - */ - function lte(value, other) { - return value <= other; - } - - /** - * Converts `value` to an array. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to convert. - * @returns {Array} Returns the converted array. - * @example - * - * (function() { - * return _.toArray(arguments).slice(1); - * }(1, 2, 3)); - * // => [2, 3] - */ - function toArray(value) { - var length = value ? getLength(value) : 0; - if (!isLength(length)) { - return values(value); - } - if (!length) { - return []; - } - return arrayCopy(value); - } - - /** - * Converts `value` to a plain object flattening inherited enumerable - * properties of `value` to own properties of the plain object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to convert. - * @returns {Object} Returns the converted plain object. - * @example - * - * function Foo() { - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.assign({ 'a': 1 }, new Foo); - * // => { 'a': 1, 'b': 2 } - * - * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); - * // => { 'a': 1, 'b': 2, 'c': 3 } - */ - function toPlainObject(value) { - return baseCopy(value, keysIn(value)); - } - - /*------------------------------------------------------------------------*/ - - /** - * Recursively merges own enumerable properties of the source object(s), that - * don't resolve to `undefined` into the destination object. Subsequent sources - * overwrite property assignments of previous sources. If `customizer` is - * provided it's invoked to produce the merged values of the destination and - * source properties. If `customizer` returns `undefined` merging is handled - * by the method instead. The `customizer` is bound to `thisArg` and invoked - * with five arguments: (objectValue, sourceValue, key, object, source). - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @param {Function} [customizer] The function to customize assigned values. - * @param {*} [thisArg] The `this` binding of `customizer`. - * @returns {Object} Returns `object`. - * @example - * - * var users = { - * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }] - * }; - * - * var ages = { - * 'data': [{ 'age': 36 }, { 'age': 40 }] - * }; - * - * _.merge(users, ages); - * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] } - * - * // using a customizer callback - * var object = { - * 'fruits': ['apple'], - * 'vegetables': ['beet'] - * }; - * - * var other = { - * 'fruits': ['banana'], - * 'vegetables': ['carrot'] - * }; - * - * _.merge(object, other, function(a, b) { - * if (_.isArray(a)) { - * return a.concat(b); - * } - * }); - * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] } - */ - var merge = createAssigner(baseMerge); - - /** - * Assigns own enumerable properties of source object(s) to the destination - * object. Subsequent sources overwrite property assignments of previous sources. - * If `customizer` is provided it's invoked to produce the assigned values. - * The `customizer` is bound to `thisArg` and invoked with five arguments: - * (objectValue, sourceValue, key, object, source). - * - * **Note:** This method mutates `object` and is based on - * [`Object.assign`](http://ecma-international.org/ecma-262/6.0/#sec-object.assign). - * - * @static - * @memberOf _ - * @alias extend - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @param {Function} [customizer] The function to customize assigned values. - * @param {*} [thisArg] The `this` binding of `customizer`. - * @returns {Object} Returns `object`. - * @example - * - * _.assign({ 'user': 'barney' }, { 'age': 40 }, { 'user': 'fred' }); - * // => { 'user': 'fred', 'age': 40 } - * - * // using a customizer callback - * var defaults = _.partialRight(_.assign, function(value, other) { - * return _.isUndefined(value) ? other : value; - * }); - * - * defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' }); - * // => { 'user': 'barney', 'age': 36 } - */ - var assign = createAssigner(function(object, source, customizer) { - return customizer - ? assignWith(object, source, customizer) - : baseAssign(object, source); - }); - - /** - * Creates an object that inherits from the given `prototype` object. If a - * `properties` object is provided its own enumerable properties are assigned - * to the created object. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} prototype The object to inherit from. - * @param {Object} [properties] The properties to assign to the object. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Object} Returns the new object. - * @example - * - * function Shape() { - * this.x = 0; - * this.y = 0; - * } - * - * function Circle() { - * Shape.call(this); - * } - * - * Circle.prototype = _.create(Shape.prototype, { - * 'constructor': Circle - * }); - * - * var circle = new Circle; - * circle instanceof Circle; - * // => true - * - * circle instanceof Shape; - * // => true - */ - function create(prototype, properties, guard) { - var result = baseCreate(prototype); - if (guard && isIterateeCall(prototype, properties, guard)) { - properties = undefined; - } - return properties ? baseAssign(result, properties) : result; - } - - /** - * Assigns own enumerable properties of source object(s) to the destination - * object for all destination properties that resolve to `undefined`. Once a - * property is set, additional values of the same property are ignored. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @example - * - * _.defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' }); - * // => { 'user': 'barney', 'age': 36 } - */ - var defaults = createDefaults(assign, assignDefaults); - - /** - * This method is like `_.defaults` except that it recursively assigns - * default properties. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @example - * - * _.defaultsDeep({ 'user': { 'name': 'barney' } }, { 'user': { 'name': 'fred', 'age': 36 } }); - * // => { 'user': { 'name': 'barney', 'age': 36 } } - * - */ - var defaultsDeep = createDefaults(merge, mergeDefaults); - - /** - * This method is like `_.find` except that it returns the key of the first - * element `predicate` returns truthy for instead of the element itself. - * - * If a property name is provided for `predicate` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `predicate` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to search. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {string|undefined} Returns the key of the matched element, else `undefined`. - * @example - * - * var users = { - * 'barney': { 'age': 36, 'active': true }, - * 'fred': { 'age': 40, 'active': false }, - * 'pebbles': { 'age': 1, 'active': true } - * }; - * - * _.findKey(users, function(chr) { - * return chr.age < 40; - * }); - * // => 'barney' (iteration order is not guaranteed) - * - * // using the `_.matches` callback shorthand - * _.findKey(users, { 'age': 1, 'active': true }); - * // => 'pebbles' - * - * // using the `_.matchesProperty` callback shorthand - * _.findKey(users, 'active', false); - * // => 'fred' - * - * // using the `_.property` callback shorthand - * _.findKey(users, 'active'); - * // => 'barney' - */ - var findKey = createFindKey(baseForOwn); - - /** - * This method is like `_.findKey` except that it iterates over elements of - * a collection in the opposite order. - * - * If a property name is provided for `predicate` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `predicate` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to search. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {string|undefined} Returns the key of the matched element, else `undefined`. - * @example - * - * var users = { - * 'barney': { 'age': 36, 'active': true }, - * 'fred': { 'age': 40, 'active': false }, - * 'pebbles': { 'age': 1, 'active': true } - * }; - * - * _.findLastKey(users, function(chr) { - * return chr.age < 40; - * }); - * // => returns `pebbles` assuming `_.findKey` returns `barney` - * - * // using the `_.matches` callback shorthand - * _.findLastKey(users, { 'age': 36, 'active': true }); - * // => 'barney' - * - * // using the `_.matchesProperty` callback shorthand - * _.findLastKey(users, 'active', false); - * // => 'fred' - * - * // using the `_.property` callback shorthand - * _.findLastKey(users, 'active'); - * // => 'pebbles' - */ - var findLastKey = createFindKey(baseForOwnRight); - - /** - * Iterates over own and inherited enumerable properties of an object invoking - * `iteratee` for each property. The `iteratee` is bound to `thisArg` and invoked - * with three arguments: (value, key, object). Iteratee functions may exit - * iteration early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Object} Returns `object`. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forIn(new Foo, function(value, key) { - * console.log(key); - * }); - * // => logs 'a', 'b', and 'c' (iteration order is not guaranteed) - */ - var forIn = createForIn(baseFor); - - /** - * This method is like `_.forIn` except that it iterates over properties of - * `object` in the opposite order. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Object} Returns `object`. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forInRight(new Foo, function(value, key) { - * console.log(key); - * }); - * // => logs 'c', 'b', and 'a' assuming `_.forIn ` logs 'a', 'b', and 'c' - */ - var forInRight = createForIn(baseForRight); - - /** - * Iterates over own enumerable properties of an object invoking `iteratee` - * for each property. The `iteratee` is bound to `thisArg` and invoked with - * three arguments: (value, key, object). Iteratee functions may exit iteration - * early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Object} Returns `object`. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forOwn(new Foo, function(value, key) { - * console.log(key); - * }); - * // => logs 'a' and 'b' (iteration order is not guaranteed) - */ - var forOwn = createForOwn(baseForOwn); - - /** - * This method is like `_.forOwn` except that it iterates over properties of - * `object` in the opposite order. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Object} Returns `object`. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forOwnRight(new Foo, function(value, key) { - * console.log(key); - * }); - * // => logs 'b' and 'a' assuming `_.forOwn` logs 'a' and 'b' - */ - var forOwnRight = createForOwn(baseForOwnRight); - - /** - * Creates an array of function property names from all enumerable properties, - * own and inherited, of `object`. - * - * @static - * @memberOf _ - * @alias methods - * @category Object - * @param {Object} object The object to inspect. - * @returns {Array} Returns the new array of property names. - * @example - * - * _.functions(_); - * // => ['after', 'ary', 'assign', ...] - */ - function functions(object) { - return baseFunctions(object, keysIn(object)); - } - - /** - * Gets the property value at `path` of `object`. If the resolved value is - * `undefined` the `defaultValue` is used in its place. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @param {*} [defaultValue] The value returned if the resolved value is `undefined`. - * @returns {*} Returns the resolved value. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.get(object, 'a[0].b.c'); - * // => 3 - * - * _.get(object, ['a', '0', 'b', 'c']); - * // => 3 - * - * _.get(object, 'a.b.c', 'default'); - * // => 'default' - */ - function get(object, path, defaultValue) { - var result = object == null ? undefined : baseGet(object, toPath(path), (path + '')); - return result === undefined ? defaultValue : result; - } - - /** - * Checks if `path` is a direct property. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @returns {boolean} Returns `true` if `path` is a direct property, else `false`. - * @example - * - * var object = { 'a': { 'b': { 'c': 3 } } }; - * - * _.has(object, 'a'); - * // => true - * - * _.has(object, 'a.b.c'); - * // => true - * - * _.has(object, ['a', 'b', 'c']); - * // => true - */ - function has(object, path) { - if (object == null) { - return false; - } - var result = hasOwnProperty.call(object, path); - if (!result && !isKey(path)) { - path = toPath(path); - object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1)); - if (object == null) { - return false; - } - path = last(path); - result = hasOwnProperty.call(object, path); - } - return result || (isLength(object.length) && isIndex(path, object.length) && - (isArray(object) || isArguments(object))); - } - - /** - * Creates an object composed of the inverted keys and values of `object`. - * If `object` contains duplicate values, subsequent values overwrite property - * assignments of previous values unless `multiValue` is `true`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to invert. - * @param {boolean} [multiValue] Allow multiple values per key. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Object} Returns the new inverted object. - * @example - * - * var object = { 'a': 1, 'b': 2, 'c': 1 }; - * - * _.invert(object); - * // => { '1': 'c', '2': 'b' } - * - * // with `multiValue` - * _.invert(object, true); - * // => { '1': ['a', 'c'], '2': ['b'] } - */ - function invert(object, multiValue, guard) { - if (guard && isIterateeCall(object, multiValue, guard)) { - multiValue = undefined; - } - var index = -1, - props = keys(object), - length = props.length, - result = {}; - - while (++index < length) { - var key = props[index], - value = object[key]; - - if (multiValue) { - if (hasOwnProperty.call(result, value)) { - result[value].push(key); - } else { - result[value] = [key]; - } - } - else { - result[value] = key; - } - } - return result; - } - - /** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys) - * for more details. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ - var keys = !nativeKeys ? shimKeys : function(object) { - var Ctor = object == null ? undefined : object.constructor; - if ((typeof Ctor == 'function' && Ctor.prototype === object) || - (typeof object != 'function' && isArrayLike(object))) { - return shimKeys(object); - } - return isObject(object) ? nativeKeys(object) : []; - }; - - /** - * Creates an array of the own and inherited enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keysIn(new Foo); - * // => ['a', 'b', 'c'] (iteration order is not guaranteed) - */ - function keysIn(object) { - if (object == null) { - return []; - } - if (!isObject(object)) { - object = Object(object); - } - var length = object.length; - length = (length && isLength(length) && - (isArray(object) || isArguments(object)) && length) || 0; - - var Ctor = object.constructor, - index = -1, - isProto = typeof Ctor == 'function' && Ctor.prototype === object, - result = Array(length), - skipIndexes = length > 0; - - while (++index < length) { - result[index] = (index + ''); - } - for (var key in object) { - if (!(skipIndexes && isIndex(key, length)) && - !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { - result.push(key); - } - } - return result; - } - - /** - * The opposite of `_.mapValues`; this method creates an object with the - * same values as `object` and keys generated by running each own enumerable - * property of `object` through `iteratee`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function|Object|string} [iteratee=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Object} Returns the new mapped object. - * @example - * - * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) { - * return key + value; - * }); - * // => { 'a1': 1, 'b2': 2 } - */ - var mapKeys = createObjectMapper(true); - - /** - * Creates an object with the same keys as `object` and values generated by - * running each own enumerable property of `object` through `iteratee`. The - * iteratee function is bound to `thisArg` and invoked with three arguments: - * (value, key, object). - * - * If a property name is provided for `iteratee` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `iteratee` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function|Object|string} [iteratee=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {Object} Returns the new mapped object. - * @example - * - * _.mapValues({ 'a': 1, 'b': 2 }, function(n) { - * return n * 3; - * }); - * // => { 'a': 3, 'b': 6 } - * - * var users = { - * 'fred': { 'user': 'fred', 'age': 40 }, - * 'pebbles': { 'user': 'pebbles', 'age': 1 } - * }; - * - * // using the `_.property` callback shorthand - * _.mapValues(users, 'age'); - * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) - */ - var mapValues = createObjectMapper(); - - /** - * The opposite of `_.pick`; this method creates an object composed of the - * own and inherited enumerable properties of `object` that are not omitted. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {Function|...(string|string[])} [predicate] The function invoked per - * iteration or property names to omit, specified as individual property - * names or arrays of property names. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'user': 'fred', 'age': 40 }; - * - * _.omit(object, 'age'); - * // => { 'user': 'fred' } - * - * _.omit(object, _.isNumber); - * // => { 'user': 'fred' } - */ - var omit = restParam(function(object, props) { - if (object == null) { - return {}; - } - if (typeof props[0] != 'function') { - var props = arrayMap(baseFlatten(props), String); - return pickByArray(object, baseDifference(keysIn(object), props)); - } - var predicate = bindCallback(props[0], props[1], 3); - return pickByCallback(object, function(value, key, object) { - return !predicate(value, key, object); - }); - }); - - /** - * Creates a two dimensional array of the key-value pairs for `object`, - * e.g. `[[key1, value1], [key2, value2]]`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the new array of key-value pairs. - * @example - * - * _.pairs({ 'barney': 36, 'fred': 40 }); - * // => [['barney', 36], ['fred', 40]] (iteration order is not guaranteed) - */ - function pairs(object) { - object = toObject(object); - - var index = -1, - props = keys(object), - length = props.length, - result = Array(length); - - while (++index < length) { - var key = props[index]; - result[index] = [key, object[key]]; - } - return result; - } - - /** - * Creates an object composed of the picked `object` properties. Property - * names may be specified as individual arguments or as arrays of property - * names. If `predicate` is provided it's invoked for each property of `object` - * picking the properties `predicate` returns truthy for. The predicate is - * bound to `thisArg` and invoked with three arguments: (value, key, object). - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {Function|...(string|string[])} [predicate] The function invoked per - * iteration or property names to pick, specified as individual property - * names or arrays of property names. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'user': 'fred', 'age': 40 }; - * - * _.pick(object, 'user'); - * // => { 'user': 'fred' } - * - * _.pick(object, _.isString); - * // => { 'user': 'fred' } - */ - var pick = restParam(function(object, props) { - if (object == null) { - return {}; - } - return typeof props[0] == 'function' - ? pickByCallback(object, bindCallback(props[0], props[1], 3)) - : pickByArray(object, baseFlatten(props)); - }); - - /** - * This method is like `_.get` except that if the resolved value is a function - * it's invoked with the `this` binding of its parent object and its result - * is returned. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to resolve. - * @param {*} [defaultValue] The value returned if the resolved value is `undefined`. - * @returns {*} Returns the resolved value. - * @example - * - * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; - * - * _.result(object, 'a[0].b.c1'); - * // => 3 - * - * _.result(object, 'a[0].b.c2'); - * // => 4 - * - * _.result(object, 'a.b.c', 'default'); - * // => 'default' - * - * _.result(object, 'a.b.c', _.constant('default')); - * // => 'default' - */ - function result(object, path, defaultValue) { - var result = object == null ? undefined : object[path]; - if (result === undefined) { - if (object != null && !isKey(path, object)) { - path = toPath(path); - object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1)); - result = object == null ? undefined : object[last(path)]; - } - result = result === undefined ? defaultValue : result; - } - return isFunction(result) ? result.call(object) : result; - } - - /** - * Sets the property value of `path` on `object`. If a portion of `path` - * does not exist it's created. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to augment. - * @param {Array|string} path The path of the property to set. - * @param {*} value The value to set. - * @returns {Object} Returns `object`. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.set(object, 'a[0].b.c', 4); - * console.log(object.a[0].b.c); - * // => 4 - * - * _.set(object, 'x[0].y.z', 5); - * console.log(object.x[0].y.z); - * // => 5 - */ - function set(object, path, value) { - if (object == null) { - return object; - } - var pathKey = (path + ''); - path = (object[pathKey] != null || isKey(path, object)) ? [pathKey] : toPath(path); - - var index = -1, - length = path.length, - lastIndex = length - 1, - nested = object; - - while (nested != null && ++index < length) { - var key = path[index]; - if (isObject(nested)) { - if (index == lastIndex) { - nested[key] = value; - } else if (nested[key] == null) { - nested[key] = isIndex(path[index + 1]) ? [] : {}; - } - } - nested = nested[key]; - } - return object; - } - - /** - * An alternative to `_.reduce`; this method transforms `object` to a new - * `accumulator` object which is the result of running each of its own enumerable - * properties through `iteratee`, with each invocation potentially mutating - * the `accumulator` object. The `iteratee` is bound to `thisArg` and invoked - * with four arguments: (accumulator, value, key, object). Iteratee functions - * may exit iteration early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @category Object - * @param {Array|Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The custom accumulator value. - * @param {*} [thisArg] The `this` binding of `iteratee`. - * @returns {*} Returns the accumulated value. - * @example - * - * _.transform([2, 3, 4], function(result, n) { - * result.push(n *= n); - * return n % 2 == 0; - * }); - * // => [4, 9] - * - * _.transform({ 'a': 1, 'b': 2 }, function(result, n, key) { - * result[key] = n * 3; - * }); - * // => { 'a': 3, 'b': 6 } - */ - function transform(object, iteratee, accumulator, thisArg) { - var isArr = isArray(object) || isTypedArray(object); - iteratee = getCallback(iteratee, thisArg, 4); - - if (accumulator == null) { - if (isArr || isObject(object)) { - var Ctor = object.constructor; - if (isArr) { - accumulator = isArray(object) ? new Ctor : []; - } else { - accumulator = baseCreate(isFunction(Ctor) ? Ctor.prototype : undefined); - } - } else { - accumulator = {}; - } - } - (isArr ? arrayEach : baseForOwn)(object, function(value, index, object) { - return iteratee(accumulator, value, index, object); - }); - return accumulator; - } - - /** - * Creates an array of the own enumerable property values of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property values. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.values(new Foo); - * // => [1, 2] (iteration order is not guaranteed) - * - * _.values('hi'); - * // => ['h', 'i'] - */ - function values(object) { - return baseValues(object, keys(object)); - } - - /** - * Creates an array of the own and inherited enumerable property values - * of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property values. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.valuesIn(new Foo); - * // => [1, 2, 3] (iteration order is not guaranteed) - */ - function valuesIn(object) { - return baseValues(object, keysIn(object)); - } - - /*------------------------------------------------------------------------*/ - - /** - * Checks if `n` is between `start` and up to but not including, `end`. If - * `end` is not specified it's set to `start` with `start` then set to `0`. - * - * @static - * @memberOf _ - * @category Number - * @param {number} n The number to check. - * @param {number} [start=0] The start of the range. - * @param {number} end The end of the range. - * @returns {boolean} Returns `true` if `n` is in the range, else `false`. - * @example - * - * _.inRange(3, 2, 4); - * // => true - * - * _.inRange(4, 8); - * // => true - * - * _.inRange(4, 2); - * // => false - * - * _.inRange(2, 2); - * // => false - * - * _.inRange(1.2, 2); - * // => true - * - * _.inRange(5.2, 4); - * // => false - */ - function inRange(value, start, end) { - start = +start || 0; - if (end === undefined) { - end = start; - start = 0; - } else { - end = +end || 0; - } - return value >= nativeMin(start, end) && value < nativeMax(start, end); - } - - /** - * Produces a random number between `min` and `max` (inclusive). If only one - * argument is provided a number between `0` and the given number is returned. - * If `floating` is `true`, or either `min` or `max` are floats, a floating-point - * number is returned instead of an integer. - * - * @static - * @memberOf _ - * @category Number - * @param {number} [min=0] The minimum possible value. - * @param {number} [max=1] The maximum possible value. - * @param {boolean} [floating] Specify returning a floating-point number. - * @returns {number} Returns the random number. - * @example - * - * _.random(0, 5); - * // => an integer between 0 and 5 - * - * _.random(5); - * // => also an integer between 0 and 5 - * - * _.random(5, true); - * // => a floating-point number between 0 and 5 - * - * _.random(1.2, 5.2); - * // => a floating-point number between 1.2 and 5.2 - */ - function random(min, max, floating) { - if (floating && isIterateeCall(min, max, floating)) { - max = floating = undefined; - } - var noMin = min == null, - noMax = max == null; - - if (floating == null) { - if (noMax && typeof min == 'boolean') { - floating = min; - min = 1; - } - else if (typeof max == 'boolean') { - floating = max; - noMax = true; - } - } - if (noMin && noMax) { - max = 1; - noMax = false; - } - min = +min || 0; - if (noMax) { - max = min; - min = 0; - } else { - max = +max || 0; - } - if (floating || min % 1 || max % 1) { - var rand = nativeRandom(); - return nativeMin(min + (rand * (max - min + parseFloat('1e-' + ((rand + '').length - 1)))), max); - } - return baseRandom(min, max); - } - - /*------------------------------------------------------------------------*/ - - /** - * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the camel cased string. - * @example - * - * _.camelCase('Foo Bar'); - * // => 'fooBar' - * - * _.camelCase('--foo-bar'); - * // => 'fooBar' - * - * _.camelCase('__foo_bar__'); - * // => 'fooBar' - */ - var camelCase = createCompounder(function(result, word, index) { - word = word.toLowerCase(); - return result + (index ? (word.charAt(0).toUpperCase() + word.slice(1)) : word); - }); - - /** - * Capitalizes the first character of `string`. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to capitalize. - * @returns {string} Returns the capitalized string. - * @example - * - * _.capitalize('fred'); - * // => 'Fred' - */ - function capitalize(string) { - string = baseToString(string); - return string && (string.charAt(0).toUpperCase() + string.slice(1)); - } - - /** - * Deburrs `string` by converting [latin-1 supplementary letters](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) - * to basic latin letters and removing [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to deburr. - * @returns {string} Returns the deburred string. - * @example - * - * _.deburr('déjà vu'); - * // => 'deja vu' - */ - function deburr(string) { - string = baseToString(string); - return string && string.replace(reLatin1, deburrLetter).replace(reComboMark, ''); - } - - /** - * Checks if `string` ends with the given target string. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to search. - * @param {string} [target] The string to search for. - * @param {number} [position=string.length] The position to search from. - * @returns {boolean} Returns `true` if `string` ends with `target`, else `false`. - * @example - * - * _.endsWith('abc', 'c'); - * // => true - * - * _.endsWith('abc', 'b'); - * // => false - * - * _.endsWith('abc', 'b', 2); - * // => true - */ - function endsWith(string, target, position) { - string = baseToString(string); - target = (target + ''); - - var length = string.length; - position = position === undefined - ? length - : nativeMin(position < 0 ? 0 : (+position || 0), length); - - position -= target.length; - return position >= 0 && string.indexOf(target, position) == position; - } - - /** - * Converts the characters "&", "<", ">", '"', "'", and "\`", in `string` to - * their corresponding HTML entities. - * - * **Note:** No other characters are escaped. To escape additional characters - * use a third-party library like [_he_](https://mths.be/he). - * - * Though the ">" character is escaped for symmetry, characters like - * ">" and "/" don't need escaping in HTML and have no special meaning - * unless they're part of a tag or unquoted attribute value. - * See [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) - * (under "semi-related fun fact") for more details. - * - * Backticks are escaped because in Internet Explorer < 9, they can break out - * of attribute values or HTML comments. See [#59](https://html5sec.org/#59), - * [#102](https://html5sec.org/#102), [#108](https://html5sec.org/#108), and - * [#133](https://html5sec.org/#133) of the [HTML5 Security Cheatsheet](https://html5sec.org/) - * for more details. - * - * When working with HTML you should always [quote attribute values](http://wonko.com/post/html-escaping) - * to reduce XSS vectors. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escape('fred, barney, & pebbles'); - * // => 'fred, barney, & pebbles' - */ - function escape(string) { - // Reset `lastIndex` because in IE < 9 `String#replace` does not. - string = baseToString(string); - return (string && reHasUnescapedHtml.test(string)) - ? string.replace(reUnescapedHtml, escapeHtmlChar) - : string; - } - - /** - * Escapes the `RegExp` special characters "\", "/", "^", "$", ".", "|", "?", - * "*", "+", "(", ")", "[", "]", "{" and "}" in `string`. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escapeRegExp('[lodash](https://lodash.com/)'); - * // => '\[lodash\]\(https:\/\/lodash\.com\/\)' - */ - function escapeRegExp(string) { - string = baseToString(string); - return (string && reHasRegExpChars.test(string)) - ? string.replace(reRegExpChars, escapeRegExpChar) - : (string || '(?:)'); - } - - /** - * Converts `string` to [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles). - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the kebab cased string. - * @example - * - * _.kebabCase('Foo Bar'); - * // => 'foo-bar' - * - * _.kebabCase('fooBar'); - * // => 'foo-bar' - * - * _.kebabCase('__foo_bar__'); - * // => 'foo-bar' - */ - var kebabCase = createCompounder(function(result, word, index) { - return result + (index ? '-' : '') + word.toLowerCase(); - }); - - /** - * Pads `string` on the left and right sides if it's shorter than `length`. - * Padding characters are truncated if they can't be evenly divided by `length`. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.pad('abc', 8); - * // => ' abc ' - * - * _.pad('abc', 8, '_-'); - * // => '_-abc_-_' - * - * _.pad('abc', 3); - * // => 'abc' - */ - function pad(string, length, chars) { - string = baseToString(string); - length = +length; - - var strLength = string.length; - if (strLength >= length || !nativeIsFinite(length)) { - return string; - } - var mid = (length - strLength) / 2, - leftLength = nativeFloor(mid), - rightLength = nativeCeil(mid); - - chars = createPadding('', rightLength, chars); - return chars.slice(0, leftLength) + string + chars; - } - - /** - * Pads `string` on the left side if it's shorter than `length`. Padding - * characters are truncated if they exceed `length`. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.padLeft('abc', 6); - * // => ' abc' - * - * _.padLeft('abc', 6, '_-'); - * // => '_-_abc' - * - * _.padLeft('abc', 3); - * // => 'abc' - */ - var padLeft = createPadDir(); - - /** - * Pads `string` on the right side if it's shorter than `length`. Padding - * characters are truncated if they exceed `length`. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.padRight('abc', 6); - * // => 'abc ' - * - * _.padRight('abc', 6, '_-'); - * // => 'abc_-_' - * - * _.padRight('abc', 3); - * // => 'abc' - */ - var padRight = createPadDir(true); - - /** - * Converts `string` to an integer of the specified radix. If `radix` is - * `undefined` or `0`, a `radix` of `10` is used unless `value` is a hexadecimal, - * in which case a `radix` of `16` is used. - * - * **Note:** This method aligns with the [ES5 implementation](https://es5.github.io/#E) - * of `parseInt`. - * - * @static - * @memberOf _ - * @category String - * @param {string} string The string to convert. - * @param {number} [radix] The radix to interpret `value` by. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {number} Returns the converted integer. - * @example - * - * _.parseInt('08'); - * // => 8 - * - * _.map(['6', '08', '10'], _.parseInt); - * // => [6, 8, 10] - */ - function parseInt(string, radix, guard) { - // Firefox < 21 and Opera < 15 follow ES3 for `parseInt`. - // Chrome fails to trim leading whitespace characters. - // See https://code.google.com/p/v8/issues/detail?id=3109 for more details. - if (guard ? isIterateeCall(string, radix, guard) : radix == null) { - radix = 0; - } else if (radix) { - radix = +radix; - } - string = trim(string); - return nativeParseInt(string, radix || (reHasHexPrefix.test(string) ? 16 : 10)); - } - - /** - * Repeats the given string `n` times. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to repeat. - * @param {number} [n=0] The number of times to repeat the string. - * @returns {string} Returns the repeated string. - * @example - * - * _.repeat('*', 3); - * // => '***' - * - * _.repeat('abc', 2); - * // => 'abcabc' - * - * _.repeat('abc', 0); - * // => '' - */ - function repeat(string, n) { - var result = ''; - string = baseToString(string); - n = +n; - if (n < 1 || !string || !nativeIsFinite(n)) { - return result; - } - // Leverage the exponentiation by squaring algorithm for a faster repeat. - // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. - do { - if (n % 2) { - result += string; - } - n = nativeFloor(n / 2); - string += string; - } while (n); - - return result; - } - - /** - * Converts `string` to [snake case](https://en.wikipedia.org/wiki/Snake_case). - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the snake cased string. - * @example - * - * _.snakeCase('Foo Bar'); - * // => 'foo_bar' - * - * _.snakeCase('fooBar'); - * // => 'foo_bar' - * - * _.snakeCase('--foo-bar'); - * // => 'foo_bar' - */ - var snakeCase = createCompounder(function(result, word, index) { - return result + (index ? '_' : '') + word.toLowerCase(); - }); - - /** - * Converts `string` to [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage). - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the start cased string. - * @example - * - * _.startCase('--foo-bar'); - * // => 'Foo Bar' - * - * _.startCase('fooBar'); - * // => 'Foo Bar' - * - * _.startCase('__foo_bar__'); - * // => 'Foo Bar' - */ - var startCase = createCompounder(function(result, word, index) { - return result + (index ? ' ' : '') + (word.charAt(0).toUpperCase() + word.slice(1)); - }); - - /** - * Checks if `string` starts with the given target string. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to search. - * @param {string} [target] The string to search for. - * @param {number} [position=0] The position to search from. - * @returns {boolean} Returns `true` if `string` starts with `target`, else `false`. - * @example - * - * _.startsWith('abc', 'a'); - * // => true - * - * _.startsWith('abc', 'b'); - * // => false - * - * _.startsWith('abc', 'b', 1); - * // => true - */ - function startsWith(string, target, position) { - string = baseToString(string); - position = position == null - ? 0 - : nativeMin(position < 0 ? 0 : (+position || 0), string.length); - - return string.lastIndexOf(target, position) == position; - } - - /** - * Creates a compiled template function that can interpolate data properties - * in "interpolate" delimiters, HTML-escape interpolated data properties in - * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data - * properties may be accessed as free variables in the template. If a setting - * object is provided it takes precedence over `_.templateSettings` values. - * - * **Note:** In the development build `_.template` utilizes - * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl) - * for easier debugging. - * - * For more information on precompiling templates see - * [lodash's custom builds documentation](https://lodash.com/custom-builds). - * - * For more information on Chrome extension sandboxes see - * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval). - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The template string. - * @param {Object} [options] The options object. - * @param {RegExp} [options.escape] The HTML "escape" delimiter. - * @param {RegExp} [options.evaluate] The "evaluate" delimiter. - * @param {Object} [options.imports] An object to import into the template as free variables. - * @param {RegExp} [options.interpolate] The "interpolate" delimiter. - * @param {string} [options.sourceURL] The sourceURL of the template's compiled source. - * @param {string} [options.variable] The data object variable name. - * @param- {Object} [otherOptions] Enables the legacy `options` param signature. - * @returns {Function} Returns the compiled template function. - * @example - * - * // using the "interpolate" delimiter to create a compiled template - * var compiled = _.template('hello <%= user %>!'); - * compiled({ 'user': 'fred' }); - * // => 'hello fred!' - * - * // using the HTML "escape" delimiter to escape data property values - * var compiled = _.template('<%- value %>'); - * compiled({ 'value': ' - -``` - -### Use ` - -``` - -Note that the ` - -... - -``` - -### Styling - -If you are using a child with the `markdown-html` slot, you can style it -as you would a regular DOM element: - -```css -[slot="markdown-html"] p { - color: red; -} - -[slot="markdown-html"] td:first-child { - padding-left: 24px; -} -``` diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/bower.json b/node_modules/@polymer/polymer/bower_components/marked-element/bower.json deleted file mode 100644 index 5e0cac45..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/bower.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "marked-element", - "version": "2.3.4", - "description": "Element wrapper for the marked library", - "private": true, - "authors": [ - "The Polymer Project Authors (https://polymer.github.io/AUTHORS.txt)" - ], - "keywords": [ - "web-components", - "polymer", - "marked", - "markdown", - "container", - "wrapper" - ], - "license": "https://polymer.github.io/LICENSE.txt", - "main": "marked-element.html", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/marked-element.git" - }, - "dependencies": { - "marked": "~0.3.9", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "marked": "~0.3.9", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "paper-styles": "PolymerElements/paper-styles#^1.0.4", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "test-fixture": "polymerelements/test-fixture#^1.0.0", - "web-component-tester": "^5.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/demo/example.md b/node_modules/@polymer/polymer/bower_components/marked-element/demo/example.md deleted file mode 100644 index da5dc9cb..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/demo/example.md +++ /dev/null @@ -1,13 +0,0 @@ -## Markdown Renderer - -Example: - -```html - - -
Title
- -
-``` - -_Nifty_ features. diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/demo/index.html b/node_modules/@polymer/polymer/bower_components/marked-element/demo/index.html deleted file mode 100644 index 71b8def5..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/demo/index.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - marked-element demo - - - - - - - - - - - - -
-

<marked-element>

- -
-

Inline Text

- -
- -
-
- -
-

Text via Attribute, with custom styling

- -
-
-
- -
-

Remote content

- -
- -
-
- -
- - - diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/gen-tsd.json b/node_modules/@polymer/polymer/bower_components/marked-element/gen-tsd.json deleted file mode 100644 index 26344228..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/gen-tsd.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "removeReferences": [ - "../marked/lib/marked.d.ts" - ] -} diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/hero.svg b/node_modules/@polymer/polymer/bower_components/marked-element/hero.svg deleted file mode 100755 index 4f283479..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/hero.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/index.html b/node_modules/@polymer/polymer/bower_components/marked-element/index.html deleted file mode 100644 index 487bb5c3..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/marked-element.d.ts b/node_modules/@polymer/polymer/bower_components/marked-element/marked-element.d.ts deleted file mode 100644 index a9e1ce2c..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/marked-element.d.ts +++ /dev/null @@ -1,208 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * marked-element.html - */ - -/// -/// - -/** - * Element wrapper for the [marked](https://github.com/chjj/marked) library. - * - * `` accepts Markdown source and renders it to a child - * element with the class `markdown-html`. This child element can be styled - * as you would a normal DOM element. If you do not provide a child element - * with the `markdown-html` class, the Markdown source will still be rendered, - * but to a shadow DOM child that cannot be styled. - * - * - * ### Markdown Content - * - * The Markdown source can be specified several ways: - * - * #### Use the `markdown` attribute to bind markdown - * - * - *
- *
- * - * #### Use ` - *
- * - * #### Use ` - * - * - * Note that the ` - * - * ... - * - * ``` - * - * ### Styling - * If you are using a child with the `markdown-html` class, you can style it - * as you would a regular DOM element: - * - * [slot="markdown-html"] p { - * color: red; - * } - * - * [slot="markdown-html"] td:first-child { - * padding-left: 24px; - * } - */ -interface MarkedElementElement extends Polymer.Element { - - /** - * The markdown source that should be rendered by this element. - */ - markdown: string|null|undefined; - - /** - * Enable GFM line breaks (regular newlines instead of two spaces for breaks) - */ - breaks: boolean|null|undefined; - - /** - * Conform to obscure parts of markdown.pl as much as possible. Don't fix any of the original markdown bugs or poor behavior. - */ - pedantic: boolean|null|undefined; - - /** - * Function used to customize a renderer based on the [API specified in the Marked - * library](https://github.com/chjj/marked#overriding-renderer-methods). - * It takes one argument: a marked renderer object, which is mutated by the function. - */ - renderer: Function|null|undefined; - - /** - * Sanitize the output. Ignore any HTML that has been input. - */ - sanitize: boolean|null|undefined; - - /** - * Function used to customize a sanitize behavior. - * It takes one argument: element String without text Contents. - * - * e.g. `
` `` `

'. - * Note: To enable this function, must set `sanitize` to true. - * WARNING: If you are using this option to untrusted text, you must to prevent XSS Attacks. - */ - sanitizer: Function|null|undefined; - - /** - * If true, disables the default sanitization of any markdown received by - * a request and allows fetched unsanitized markdown - * - * e.g. fetching markdown via `src` that has HTML. - * Note: this value overrides `sanitize` if a request is made. - */ - disableRemoteSanitization: boolean|null|undefined; - - /** - * Use "smart" typographic punctuation for things like quotes and dashes. - */ - smartypants: boolean|null|undefined; - - /** - * Callback function invoked by Marked after HTML has been rendered. - * It must take two arguments: err and text and must return the resulting text. - */ - callback: Function|null|undefined; - - /** - * A reference to the XMLHttpRequest instance used to generate the - * network request. - */ - readonly xhr: XMLHttpRequest|null; - readonly outputElement: any; - ready(): void; - - /** - * Renders `markdown` to HTML when the element is attached. - * - * This serves a dual purpose: - * - * * Prevents unnecessary work (no need to render when not visible). - * - * * `attached` fires top-down, so we can give ancestors a chance to - * register listeners for the `syntax-highlight` event _before_ we render - * any markdown. - */ - attached(): void; - detached(): void; - - /** - * Unindents the markdown source that will be rendered. - */ - unindent(text: string): string; - - /** - * Renders `markdown` into this element's DOM. - * - * This is automatically called whenever the `markdown` property is changed. - * - * The only case where you should be calling this is if you are providing - * markdown via ` diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/marked-import.d.ts b/node_modules/@polymer/polymer/bower_components/marked-element/marked-import.d.ts deleted file mode 100644 index cb14898b..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/marked-import.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * marked-import.html - */ - diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/marked-import.html b/node_modules/@polymer/polymer/bower_components/marked-element/marked-import.html deleted file mode 100644 index 9311b106..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/marked-import.html +++ /dev/null @@ -1,17 +0,0 @@ - - - diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/package.json b/node_modules/@polymer/polymer/bower_components/marked-element/package.json deleted file mode 100644 index b5590b58..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/marked-element", - "private": true, - "description": "Element wrapper for the marked library", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/marked-element.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/polymer.json b/node_modules/@polymer/polymer/bower_components/marked-element/polymer.json deleted file mode 100644 index 6f86db07..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/polymer.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "lint": { - "rules": ["polymer-2-hybrid"] - } -} diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/test/index.html b/node_modules/@polymer/polymer/bower_components/marked-element/test/index.html deleted file mode 100644 index 7f159922..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/test/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - Tests - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/test/marked-element.html b/node_modules/@polymer/polymer/bower_components/marked-element/test/marked-element.html deleted file mode 100644 index dcbd2c41..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/test/marked-element.html +++ /dev/null @@ -1,616 +0,0 @@ - - - - - - marked-element basic tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/test/remoteSanitization.md b/node_modules/@polymer/polymer/bower_components/marked-element/test/remoteSanitization.md deleted file mode 100644 index 281c6866..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/test/remoteSanitization.md +++ /dev/null @@ -1 +0,0 @@ -
\ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/test/test.md b/node_modules/@polymer/polymer/bower_components/marked-element/test/test.md deleted file mode 100644 index 66517b1b..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/test/test.md +++ /dev/null @@ -1,3 +0,0 @@ -# Test - -[Link](http://url.com/) diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/test/test1.md b/node_modules/@polymer/polymer/bower_components/marked-element/test/test1.md deleted file mode 100644 index a5b23459..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/test/test1.md +++ /dev/null @@ -1,3 +0,0 @@ -# Test Another - -[Link](http://url.com/) diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/test/test2.md b/node_modules/@polymer/polymer/bower_components/marked-element/test/test2.md deleted file mode 100644 index f7b1c229..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/test/test2.md +++ /dev/null @@ -1 +0,0 @@ -# Test 2 diff --git a/node_modules/@polymer/polymer/bower_components/marked-element/wct.conf.json b/node_modules/@polymer/polymer/bower_components/marked-element/wct.conf.json deleted file mode 100644 index c2dfb5d6..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked-element/wct.conf.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "plugins": { - "local": { - "browserOptions": { - "chrome": [ - "headless", - "disable-gpu", - "no-sandbox" - ], - "firefox": [ - "-headless" - ] - } - } - } -} diff --git a/node_modules/@polymer/polymer/bower_components/marked/.bower.json b/node_modules/@polymer/polymer/bower_components/marked/.bower.json deleted file mode 100644 index 2068fccf..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/.bower.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "marked", - "homepage": "https://github.com/markedjs/marked", - "authors": [ - "Christopher Jeffrey " - ], - "description": "A markdown parser built for speed", - "keywords": [ - "markdown", - "markup", - "html" - ], - "main": "lib/marked.js", - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "app/bower_components", - "test", - "tests" - ], - "version": "0.3.19", - "_release": "0.3.19", - "_resolution": { - "type": "version", - "tag": "v0.3.19", - "commit": "5d1baa4d7ca55b27cb08029ac785e98b6378fcf0" - }, - "_source": "https://github.com/chjj/marked.git", - "_target": "~0.3.9", - "_originalSource": "marked" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/marked/LICENSE.md b/node_modules/@polymer/polymer/bower_components/marked/LICENSE.md deleted file mode 100644 index 64b41a0e..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/LICENSE.md +++ /dev/null @@ -1,43 +0,0 @@ -# License information - -## Contribution License Agreement - -If you contribute code to this project, you are implicitly allowing your code -to be distributed under the MIT license. You are also implicitly verifying that -all code is your original work. `` - -## Marked - -Copyright (c) 2011-2018, Christopher Jeffrey (https://github.com/chjj/) - -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. - -## Markdown - -Copyright © 2004, John Gruber -http://daringfireball.net/ -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 “Markdown” nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -This software is provided by the copyright holders and contributors “as is” and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. diff --git a/node_modules/@polymer/polymer/bower_components/marked/Makefile b/node_modules/@polymer/polymer/bower_components/marked/Makefile deleted file mode 100644 index 7deead54..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -all: - @cp lib/marked.js marked.js - @uglifyjs --comments '/\*[^\0]+?Copyright[^\0]+?\*/' -o marked.min.js lib/marked.js - -clean: - @rm marked.js - @rm marked.min.js - -bench: - @node test --bench - -man/marked.1.txt: - groff -man -Tascii man/marked.1 | col -b > man/marked.1.txt - -.PHONY: clean all diff --git a/node_modules/@polymer/polymer/bower_components/marked/README.md b/node_modules/@polymer/polymer/bower_components/marked/README.md deleted file mode 100644 index 57f72074..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# Marked - -Marked is - -1. built for speed. -2. a low-level markdown compiler that allows frequent parsing of large chunks of markdown without caching or blocking for long periods of time. -3. light-weight while implementing all markdown features from the supported flavors & specifications. -4. available as a command line interface (CLI) and running in client- or server-side JavaScript projects. - -## Installation - -**CLI:** `npm install -g marked` - -**In-browser:** `npm install marked --save` - -## Usage - -**CLI** - -``` bash -$ marked -o hello.html -hello world -^D -$ cat hello.html -

hello world

-``` - -**Browser** - -```html - - - - - Marked in the browser - - - -
- - - -``` - - - -## License - -Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License) - diff --git a/node_modules/@polymer/polymer/bower_components/marked/bin/marked b/node_modules/@polymer/polymer/bower_components/marked/bin/marked deleted file mode 100755 index df4dcc0f..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/bin/marked +++ /dev/null @@ -1,191 +0,0 @@ -#!/usr/bin/env node - -/** - * Marked CLI - * Copyright (c) 2011-2013, Christopher Jeffrey (MIT License) - */ - -var fs = require('fs') - , util = require('util') - , marked = require('../'); - -/** - * Man Page - */ - -function help() { - var spawn = require('child_process').spawn; - - var options = { - cwd: process.cwd(), - env: process.env, - setsid: false, - customFds: [0, 1, 2] - }; - - spawn('man', [__dirname + '/../man/marked.1'], options) - .on('error', function(err) { - fs.readFile(__dirname + '/../man/marked.1.txt', 'utf8', function(err, data) { - if (err) throw err; - console.log(data); - }); - }); -} - -/** - * Main - */ - -function main(argv, callback) { - var files = [] - , options = {} - , input - , output - , arg - , tokens - , opt; - - function getarg() { - var arg = argv.shift(); - - if (arg.indexOf('--') === 0) { - // e.g. --opt - arg = arg.split('='); - if (arg.length > 1) { - // e.g. --opt=val - argv.unshift(arg.slice(1).join('=')); - } - arg = arg[0]; - } else if (arg[0] === '-') { - if (arg.length > 2) { - // e.g. -abc - argv = arg.substring(1).split('').map(function(ch) { - return '-' + ch; - }).concat(argv); - arg = argv.shift(); - } else { - // e.g. -a - } - } else { - // e.g. foo - } - - return arg; - } - - while (argv.length) { - arg = getarg(); - switch (arg) { - case '--test': - return require('../test').main(process.argv.slice()); - case '-o': - case '--output': - output = argv.shift(); - break; - case '-i': - case '--input': - input = argv.shift(); - break; - case '-t': - case '--tokens': - tokens = true; - break; - case '-h': - case '--help': - return help(); - default: - if (arg.indexOf('--') === 0) { - opt = camelize(arg.replace(/^--(no-)?/, '')); - if (!marked.defaults.hasOwnProperty(opt)) { - continue; - } - if (arg.indexOf('--no-') === 0) { - options[opt] = typeof marked.defaults[opt] !== 'boolean' - ? null - : false; - } else { - options[opt] = typeof marked.defaults[opt] !== 'boolean' - ? argv.shift() - : true; - } - } else { - files.push(arg); - } - break; - } - } - - function getData(callback) { - if (!input) { - if (files.length <= 2) { - return getStdin(callback); - } - input = files.pop(); - } - return fs.readFile(input, 'utf8', callback); - } - - return getData(function(err, data) { - if (err) return callback(err); - - data = tokens - ? JSON.stringify(marked.lexer(data, options), null, 2) - : marked(data, options); - - if (!output) { - process.stdout.write(data + '\n'); - return callback(); - } - - return fs.writeFile(output, data, callback); - }); -} - -/** - * Helpers - */ - -function getStdin(callback) { - var stdin = process.stdin - , buff = ''; - - stdin.setEncoding('utf8'); - - stdin.on('data', function(data) { - buff += data; - }); - - stdin.on('error', function(err) { - return callback(err); - }); - - stdin.on('end', function() { - return callback(null, buff); - }); - - try { - stdin.resume(); - } catch (e) { - callback(e); - } -} - -function camelize(text) { - return text.replace(/(\w)-(\w)/g, function(_, a, b) { - return a + b.toUpperCase(); - }); -} - -/** - * Expose / Entry Point - */ - -if (!module.parent) { - process.title = 'marked'; - main(process.argv.slice(), function(err, code) { - if (err) throw err; - return process.exit(code || 0); - }); -} else { - module.exports = main; -} diff --git a/node_modules/@polymer/polymer/bower_components/marked/bower.json b/node_modules/@polymer/polymer/bower_components/marked/bower.json deleted file mode 100644 index 57c91f03..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/bower.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "marked", - "homepage": "https://github.com/markedjs/marked", - "authors": [ - "Christopher Jeffrey " - ], - "description": "A markdown parser built for speed", - "keywords": [ - "markdown", - "markup", - "html" - ], - "main": "lib/marked.js", - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "app/bower_components", - "test", - "tests" - ] -} diff --git a/node_modules/@polymer/polymer/bower_components/marked/component.json b/node_modules/@polymer/polymer/bower_components/marked/component.json deleted file mode 100644 index 7ebd0356..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/component.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "marked", - "version": "0.3.4", - "repo": "markedjs/marked", - "description": "A markdown parser built for speed", - "keywords": ["markdown", "markup", "html"], - "scripts": ["lib/marked.js"], - "main": "lib/marked.js", - "license": "MIT" -} diff --git a/node_modules/@polymer/polymer/bower_components/marked/docs/AUTHORS.md b/node_modules/@polymer/polymer/bower_components/marked/docs/AUTHORS.md deleted file mode 100644 index ff3b8e51..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/docs/AUTHORS.md +++ /dev/null @@ -1,151 +0,0 @@ -# Authors - -Marked takes an encompassing approach to its community. As such, you can think of these as [concentric circles](https://medium.com/the-node-js-collection/healthy-open-source-967fa8be7951), where each subsequent group is enveloped by the previous one. - -## Users - -Users are anyone using Marked in some fashion, without them, there's no reason for us to exist. - -To be listed: please let us know or submit a PR. - -To be removed: please let us know or submit a PR. - -## Contributors - -Contributors are users who submit a [PR](https://github.com/markedjs/marked/pulls), [Issue](https://github.com/markedjs/marked/issues), or collaborate in making Marked a better product and experience for all the users. - -|Name |GitHub handle |Badge of honor | -|:-------------------|:----------------|:-------------------------------------| -|Karen Yavine |@karenyavine |Snyk's Security Saint | -|Federico Soave |@Feder1co5oave |Regent of the Regex, Master of Marked | -|Brandon der Blätter |@intcreator |Curious Contributor | -|Костя Третяк |@KostyaTretyak |-- | - -To be listed: make a contribution and, if it has significant impact, the committers may be able to add you here. - -To be removed: please let us know or submit a PR. - -[Details on badges](#badges) - -## Committers - -Committers are contributors who also have the responsibility, privilege, some might even say burden of being able to review and merge contributions (just usually not their own). - -A note on "decision making authority". This is related to submitting PRs and the [advice process](http://www.reinventingorganizationswiki.com/Decision_Making). The person marked as having decision making authority over a certain area should be sought for advice in that area before committing to a course of action. - -|Name |GiHub handle |Decision making |Badges of honor (tag for questions) | -|:--------------|:--------------|:----------------------------------------|------------------------------------| -|Tony Brix |@UziTech |Titan of the test harness and Dr. DevOps | | -|Jamie Davis |@davisjam |Seeker of Security | | - -**Should not exceed 5:** For larger PRs affecting more of the codebase and, most likely, review by more people, we try to keep this pool small and responsive and let those with decision making authority have final say without negative repercussions from the other committers. - -To be listed: Committers are usually selected (or they volunteer, using the same process) from contributors who enter the discussions regarding the future direction of Marked (maybe even doing informal reviews of contributions despite not being able to merge them yourself). - -To be removed: You can remove yourself through the [GitHub UI](https://help.github.com/articles/removing-yourself-from-a-collaborator-s-repository/). - -A note on volunteering: - -1. Please do not volunteer unless you believe you can demonstrate to your peers you can do the work required. -2. Please do not overcommit yourself; we count on those committed to the project to be responsive. Really consider, with all you have going on, wehther you able to really commit to it. -3. Don't let the previous frighten you away, it can always be changed later by you or your peers. - -[Details on badges](#badges) - -## Admins - -Admins are committers who also have the responsibility, privilege, and burden of selecting committers and making sure the project itself runs smoothly, which includes community maintenance, governance, dispute resolution, and so on. (Letting the contributors easily enter into, and work within, the project to begin contributing, with as little friction as possible.) - -|Name |GiHub handle |Decision making |Badges of honor (tag for questions) | -|:--------------|:--------------|:----------------------------------------|------------------------------------| -|Steven |@styfle |Open source, of course and GitHub Guru |Humaning Helper | - -**Should not exceed 3:** When there are too many people with the ability to reolves disputes, the dispute itself can quickly turn into a dispute amongst the admins themselves; therefore, we want this group to be small enough to commit to action and large enough to not put too much burden on one person. (Should ensure faster resolution and responsiveness.) - -To be listed: Admins are usually selected from the pool of committers (or they volunteer, using the same process) who demonstrate good understanding of the marked culture, operations, and do their best to help new contributors get up to speed on how to contribute effectively to the project. - -To be removed: You can remove yourself through the [GitHub UI](https://help.github.com/articles/removing-yourself-from-a-collaborator-s-repository/). - -[Details on badges](#badges) - -## Publishers - -Publishers are admins who also have the responsibility, privilege, and burden of publishing the new releases to NPM and performing outreach and external stakeholder communications. Further, when things go pear-shaped, they're the ones taking most of the heat. Finally, when things go well, they're the primary ones praising the contributors who made it possible. - -(In other words, while Admins are focused primarily on the internal workings of the project, Publishers are focused on internal *and* external concerns.) - -|Name |GitHub handle |Decision making |Badges of honor (tag for questions) | -|:----------|:--------------|:------------------------|:-------------------------------------| -|Josh Bruce |@joshbruce |Release Wrangler |Humaning Helper, Heckler of Hypertext | - -**Should not exceed 2:** Having more people with the authority to publish a release can quickly turn into a consensus seeking nightmare (design by committee). Having only one is preferred (Directly Responsible Individual); however, given the nature of the project and its history, having an immediate fallback, and a potential deep fallback (Original author) is probably a good idea. - -[Details on badges](#badges) - -## Original author - -The original author is the publisher who started it all. - -Christopher Jeffrey @chjj - -

Badges

- -Badges? You don't *need* no stinkin' badges. - -Movie references aside. (It was either that or, "Let's play a game", but that would have been creepy…that's why it will most likely come later.) - -Badges? If you *want* 'em, we got 'em, and here's how you get 'em (and…dramatic pause…why not two dramatic pauses for emphasis?… how they can be taken away). - -- [ ] Add the appropriate badge to the desired contributor in the desired column of this page, even if they're not listed here yet. -- [ ] Submit a PR (we're big on PRs around here, if you haven't noticed, help us help you). -- [ ] Follow the instructions for submitting a badge PR. (There are more details to find within. Come on. Everybody likes surprises, right? No? Actually, we just try to put documentation where it belongs, closer to the code and part of the sequence of events.) - -### Badges at play: - -
-
Curious Contributor
-
A contributor with less than one year on this page who is actively engaged in submitting PRs, Issues, making recommendations, sharing thoughts…without being too annoying about it (let's be clear, submitting 100 Issues recommending the Marked Committers send everyone candy is trying for the badge, not honestly earning it).
-
Dr. DevOps
-
-

Someone who understands and contributes to improving the developer experience and flow of Marked into the world.

-
- "The main characteristic of the DevOps movement is to strongly advocate automation and monitoring at all steps of software construction, from integration, testing, releasing to deployment and infrastructure management. DevOps aims at shorter development cycles, increased deployment frequency, more dependable releases, in close alignment with business objectives." ~ Wikipedia -
-
-
Eye for the CLI
-
At this point? Pretty much anyone who can update that `man` file to the current Marked version without regression in the CLI tool itself.
-
GitHub Guru
-
Someone who always seems to be able to tell you easier ways to do things with GitHub.
-
Humaning Helper
-
Someone who goes out of their way to help contributors feel welcomed and valued. Further, someone who takes the extra steps(s) necessary to help new contributors get up to speed. Finally, they maintain composure even in times of disagreement and dispute resolution.
-
Heckler of Hypertext
-
Someone who demonstrates an esoteric level of knowledge when it comes to HTML. In other words, someone who says things like, "Did you know most Markdown flavors don't have a way to render a description list (`dl`)? All the more reason Markdown `!==` HTML."
-
Markdown Maestro
-
You know that person who knows about way too many different flavors of Markdown? The one who maybe seems a little too obsessed with the possibilities of Markdown beyond HTML? Come on. You know who they are. Or, at least you could, if you give them this badge.
-
Master of Marked
-
Someone who demonstrates they know the ins and outs of the codebase for Marked.
-
Open source, of course
-
Someone who advocates for and has a proven understanding of how to operate within open source communities.
-
Regent of the Regex
-

Can you demonstrate you understand the following without Google and Stackoverflow?

-

/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/

-

Because this author can't yet. That's who gets these.

-
-
Seeker of Security
-
Someone who has demonstrated a high degree of expertise or authority when it comes to software security.
-
Titan of the Test Harness
-
Someone who demonstrates high-levels of understanding regarding Marked's test harness.
-
Totally Tron
-
Someone who demonstrates they are willing and able to "fight for the users", both developers dependent on marked to do their jobs as well as end-users interacting with the output (particularly in the realm of those with the disabilities).
-
- -### Special badges that come with the job: - -
-
Maker of the Marked mark
-
This badge is given to the person or oganization credited with creating the logo (or logotype) used in Marked communications for a given period of time. **Maker of the Marked mark from 2017 to present**, for example.
-
Release Wrangler
-
This is a badge given to all Publishers.
-
Snyk's Security Saint
-
This is a badge given to whomever primarily reaches out from Snyk to let us know about security issues.
-
diff --git a/node_modules/@polymer/polymer/bower_components/marked/docs/CNAME b/node_modules/@polymer/polymer/bower_components/marked/docs/CNAME deleted file mode 100644 index c92fdfcb..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/docs/CNAME +++ /dev/null @@ -1 +0,0 @@ -marked.js.org diff --git a/node_modules/@polymer/polymer/bower_components/marked/docs/CODE_OF_CONDUCT.md b/node_modules/@polymer/polymer/bower_components/marked/docs/CODE_OF_CONDUCT.md deleted file mode 100644 index 077c0fc7..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/docs/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,71 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, gender identity and expression, level of experience, -nationality, personal appearance, race, religion, or sexual identity and -orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or -advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to block temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team by submitting a PR with changes to the [AUTHORS](AUTHORS.md) page (or emailing josh@8fold.com). All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 1.4, available at [http://contributor-covenant.org/version/1/4][version] diff --git a/node_modules/@polymer/polymer/bower_components/marked/docs/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/marked/docs/CONTRIBUTING.md deleted file mode 100644 index d2198554..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/docs/CONTRIBUTING.md +++ /dev/null @@ -1,95 +0,0 @@ -# Contributing to Marked - -- [ ] Fork `markedjs/marked`. -- [ ] Clone the library locally using GitHub Desktop or the command line. -- [ ] Make sure you are on the `master` branch. -- [ ] Be sure to run `npm install` or `npm update`. -- [ ] Create a branch. -- [ ] Make as small a change as possible. -- [ ] Run `npm test`, fix any broken things (for linting, you can run `npm run lint` to have the linter fix them for you). -- [ ] Submit a PR. - -## Design principles - -Marked tends to favor following the SOLID set of software design and development principles; mainly the [single responsibility](https://en.wikipedia.org/wiki/Single_responsibility_principle) and [open/closed principles](https://en.wikipedia.org/wiki/Open/closed_principle): - -- **Single responsibility:** Marked, and the components of Marked, have the single responsibility of converting Markdown strings into HTML. -- **Open/closed:** Marked favors giving developers the means to easily extend the library and its components over changing Marked's behavior through configuration options. - -## Priorities - -We think we have our priorities sorted to build quality in. - -The following table lists the ticket type labels we use when there is work to be done on the code either through an Issue or a PR; in priority order. - -|Ticket type label |Description | -|:----------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------| -|L0 - security |A security vulnerability within the Marked library is discovered. | -|L1 - broken |Valid usage results in incorrect output compared to [supported specifications](AUTHORS.md#specifications) OR causes marked to crash AND there is no known workaround for the issue. | -|L2 - annoying |Similar to L1 - broken only there is a known workaround avaialable for the issue. | -|RR - refactor and re-engineer |Results in an improvement to developers using Marked (improved readability) or end-users (faster performance) or both. | -|NFS - new feature (spec related) |A capability Marked does not currently provide but is in one of the [supported specifications](AUTHORS.md#specifications)| -|NFU - new feature (user requested) |A capability Marked does not currently provide but has been requested by users of Marked. | - -## Test early, often, and everything - -We try to write test cases to validate output (writing tests based on the [supported specifications](AUTHORS.md#specifications)) and minimize regression (writing tests for issues fixed). Therefore, if you would like to contribute, some things you should know regarding the test harness. - -|Location |Description | -|:-------------|:---------------------------------------------------| -|/test/browser |For testing Marked in a client-side implementation. | -|/test/new |Tests not related to the original `markdown.pl`. | -|/test/original|Tests validating against the original `markdown.pl`.| - -If your test uses features or options, assuming `gfm` is set to `false`, for example, you can add [front-matter](https://www.npmjs.com/package/front-matter) to the top of -your `.md` file - -``` yml ---- -gfm: false ---- -``` - -## Submitting PRs and Issues - -Marked provides templates for submitting both pull requests and issues. When you begin creating a new PR or issue, you will see instructions on using the template. - -The PR templates include checklists for both the submitter and the reviewer, which, in most cases, will not be the same person. - -## Scripts - -When it comes to NPM commands, we try to use the native scripts provided by the NPM framework. - -To run the tests: - -``` bash -npm test -``` - -To test whether you are using the standard syntax rules for the project: - -```bash -npm run test:lint -``` - -To see time comparisons between Marked and other popular Markdown libraries: - -```bash -npm run bench -``` - -To check for (and fix) standardized syntax (lint): - -```bash -npm run lint -``` - -To build your own minified version of Marked: - -```bash -npm run build -``` - -## Publishing - -Creating GitHub releases and publishing to NPM is limited to conributors and owners. If you would like more information, please see our [publishing documentation](PUBLISHING.md). diff --git a/node_modules/@polymer/polymer/bower_components/marked/docs/PUBLISHING.md b/node_modules/@polymer/polymer/bower_components/marked/docs/PUBLISHING.md deleted file mode 100644 index 4732fdf7..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/docs/PUBLISHING.md +++ /dev/null @@ -1,24 +0,0 @@ -# Releasing Marked - -- [ ] See [contributing](CONTRIBUTING.md) -- [ ] Create release branch from `master` (`release-x.y.z`) -- [ ] Submit PR with minimal name: Release x.y.z -- [ ] Complete PR checklists - -## Overall strategy - -**Master is always shippable:** We try to merge PRs in such a way that `master` is the only branch to really be concerned about *and* `master` can always be released. This allows smoother flow between new fetures, bug fixes, and so on. (Almost a continuous deployment setup, without automation.) - -## Versioning - -We follow [semantic versioning](https://semver.org) where the following sequence is true `[major].[minor].[patch]`; therefore, consider the following implications of the release you are preparing: - -1. **Major:** There is at least one change not deemed backward compatible. -2. **Minor:** There is at least one new feature added to the release. -3. **Patch:** No breaking changes, no new features. - -What to expect while Marked is a zero-major (0.x.y): - -1. The major will remain at zero; thereby, alerting consumers to the potentially volatile nature of the package. -2. The minor will tend to be more analagous to a `major` release. For example, we plan to release `0.4.0` once we have fixed most, if not all, known issues related to the CommonMark and GFM specifications because the architecture changes planned during `0.4.0` will most likely introduce breaking changes. -3. The patch will tend to be more analagous to a `minor` release. \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/marked/docs/README.md b/node_modules/@polymer/polymer/bower_components/marked/docs/README.md deleted file mode 100644 index be8d25e6..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/docs/README.md +++ /dev/null @@ -1,98 +0,0 @@ - - -

Marked

- -Marked is - -1. built for speed.* -2. a low-level markdown compiler that allows frequent parsing of large chunks of markdown without caching or blocking for long periods of time.** -3. light-weight while implementing all markdown features from the supported flavors & specifications.*** -4. available as a command line interface (CLI) and running in client- or server-side JavaScript projects. - -

* Still working on metrics for comparative analysis and definition.
-** As few dependencies as possible.
-*** Strict compliance could result in slower processing when running comparative benchmarking.

- -

Installation

- -**CLI:** `npm install -g marked` - -**In-browser:** `npm install marked --save` - -

Usage

- -**CLI** - -``` bash -$ marked -o hello.html -hello world -^D -$ cat hello.html -

hello world

-``` - -**Browser** - -```html - - - - - Marked in the browser - - - -
- - - -``` - - -Marked offers [advanced configurations](USING_ADVANCED.md) and [extensibility](USING_PRO.md) as well. - -

Supported Markdown specifications

- -We actively support the features of the following [Markdown flavors](https://github.com/commonmark/CommonMark/wiki/Markdown-Flavors). - -|Flavor |Version | -|:----------------------------------------------------------|:----------| -|The original markdown.pl |-- | -|[CommonMark](http://spec.commonmark.org/0.28/) |0.28 | -|[GitHub Flavored Markdown](https://github.github.com/gfm/) |0.28 | - -By supporting the above Markdown flavors, it's possible that Marked can help you use other flavors as well; however, these are not actively supported by the community. - -

Security

- -The only completely secure system is the one that doesn't exist in the first place. Having said that, we take the security of Marked very seriously. - -Therefore, please disclose potential security issues by email to the project [committers](AUTHORS.md) as well as the [listed owners within NPM](https://docs.npmjs.com/cli/owner). We will provide an initial assessment of security reports within 48 hours and should apply patches within 2 weeks (also, feel free to contribute a fix for the issue). - -

Contributing

- -The marked community enjoys a spirit of collaboration and contribution from all comers. Whether you're just getting started with Markdown, JavaScript, and Marked or you're a veteran with it all figured out, we're here to help each other improve as professionals while helping Marked improve technically. Please see our [contributing documentation](CONTRIBUTING.md) for more details. - -For our Contribution License Agreement, see our [license](https://github.com/markedjs/marked/blob/master/LICENSE.md). - -

Authors

- -For list of credited authors and contributors, please see our [authors page](AUTHORS.md). - -

License

- -Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License) - -See [license](https://github.com/markedjs/marked/blob/master/LICENSE.md) for more details. diff --git a/node_modules/@polymer/polymer/bower_components/marked/docs/USING_ADVANCED.md b/node_modules/@polymer/polymer/bower_components/marked/docs/USING_ADVANCED.md deleted file mode 100644 index c3660ac5..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/docs/USING_ADVANCED.md +++ /dev/null @@ -1,71 +0,0 @@ -## The `marked` function - -```js -marked(markdownString [,options] [,callback]) -``` - -|Argument |Type |Notes | -|:---------------------|:------------|:----------------------------------------------------------------------------------------------------| -|markdownString |`string` |String of markdown source to be compiled. | -|options|`object`|Hash of options. Can also use `marked.setOptions`. | -|callback |`function` |Called when `markdownString` has been parsed. Can be used as second argument if no `options` present.| - -### Alternative using reference - -```js -// Create reference instance -var myMarked = require('marked'); - -// Set options -// `highlight` example uses `highlight.js` -myMarked.setOptions({ - renderer: new marked.Renderer(), - highlight: function(code) { - return require('highlight.js').highlightAuto(code).value; - }, - pedantic: false, - gfm: true, - tables: true, - breaks: false, - sanitize: false, - smartLists: true, - smartypants: false, - xhtml: false -}); - -// Compile -console.log(myMarked('I am using __markdown__.')); -``` - -

Options

- -|Member |Type |Notes | -|:----------|:---------|:----------------------------------------------------------------------------------------------------------------------------| -|highlight |`function`|A function to highlight code blocks. See also: Asynchronous highlighting. | -|renderer |`object` |An object containing functions to render tokens to HTML. See [extensibility](https://github.com/markedjs/marked/blob/master/docs/USING_PRO.md) for more details. Default: `new Renderer()`| -|pedantic |`boolean` |Conform to obscure parts of `markdown.pl` as much as possible. Don't fix original markdown bugs or behavior. Default: `false`| -|gfm |`boolean` |Use approved [GitHub Flavored Markdown (GFM) specification](https://github.github.com/gfm/). | -|tables |`boolean` |Use [GFM Tables extension](https://github.github.com/gfm/#tables-extension-). Requires `gfm` be `true`. | -|breaks |`boolean` |Use GFM [hard](https://github.github.com/gfm/#hard-line-breaks) and [soft](https://github.github.com/gfm/#soft-line-breaks) line breaks. Requires `gfm` be `true`. Default: `false`| -|sanitize |`boolean` |Ignore HTML passed into `markdownString` (sanitize the input). Default: `false` | -|smartlists |`boolean` |Use smarter list behavior than those found in `markdown.pl`. Default: `true` | -|smartypants|`boolean` |Use "smart" typographic punctuation for things like quotes and dashes. | -|xhtml |`boolean` |Self-close the tags for void elements (<br/>, <img/>, etc.) with a "/" as required by XHTML. Default: `false` | - -

Asynchronous highlighting

- -Unlike `highlight.js` the `pygmatize.js` library uses asynchronous highlighting. This example demonstrates that marked is agnostic when it comes to the highlighter you use. - -```js -myMarked.setOptions({ - highlight: function(code, lang, callback) { - require('pygmentize-bundled') ({ lang: lang, format: 'html' }, code, function (err, result) { - callback(err, result.toString()); - }); - } -}); - -console.log(myMarked(markdownString)); -``` - -In both examples, `code` is a `string` representing the section of code to pass to the highlighter. In this example, `lang` is a `string` informing the highlighter what programming lnaguage to use for the `code` and `callback` is the `function` the asynchronous highlighter will call once complete. \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/marked/docs/USING_PRO.md b/node_modules/@polymer/polymer/bower_components/marked/docs/USING_PRO.md deleted file mode 100644 index 6981500f..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/docs/USING_PRO.md +++ /dev/null @@ -1,136 +0,0 @@ -## Extending Marked - -To champion the single-reponsibility and open/closed prinicples, we have tried to make it relatively painless to extend marked. If you are looking to add custom functionality, this is the place to start. - - - -

The renderer

- -The renderer is... - -**Example:** Overriding default heading token by adding an embedded anchor tag like on GitHub. - -```js -// Create reference instance -var myMarked = require('marked'); - -// Get reference -var renderer = new myMarked.Renderer(); - -// Override function -renderer.heading = function (text, level) { - var escapedText = text.toLowerCase().replace(/[^\w]+/g, '-'); - - return ` - - - - ${text} - `; -}; - -// Run marked -console.log(marked('# heading+', { renderer: renderer })); -``` - -**Output:** - -```html -

- - - - heading+ -

-``` - -### Block level renderer methods - -- code(*string* code, *string* language) -- blockquote(*string* quote) -- html(*string* html) -- heading(*string* text, *number* level) -- hr() -- list(*string* body, *boolean* ordered) -- listitem(*string* text) -- paragraph(*string* text) -- table(*string* header, *string* body) -- tablerow(*string* content) -- tablecell(*string* content, *object* flags) - -`flags` has the following properties: - -```js -{ - header: true || false, - align: 'center' || 'left' || 'right' -} -``` - -### Inline level renderer methods - -- strong(*string* text) -- em(*string* text) -- codespan(*string* code) -- br() -- del(*string* text) -- link(*string* href, *string* title, *string* text) -- image(*string* href, *string* title, *string* text) -- text(*string* text) - -

The lexer

- -The lexer is... - - -

The parser

- -The parser is... - -*** - -

Access to lexer and parser

- -You also have direct access to the lexer and parser if you so desire. - -``` js -var tokens = marked.lexer(text, options); -console.log(marked.parser(tokens)); -``` - -``` js -var lexer = new marked.Lexer(options); -var tokens = lexer.lex(text); -console.log(tokens); -console.log(lexer.rules); -``` - -### Pro level - -You also have direct access to the lexer and parser if you so desire. - -``` js -var tokens = marked.lexer(text, options); -console.log(marked.parser(tokens)); -``` - -``` js -var lexer = new marked.Lexer(options); -var tokens = lexer.lex(text); -console.log(tokens); -console.log(lexer.rules); -``` - -``` bash -$ node -> require('marked').lexer('> i am using marked.') -[ { type: 'blockquote_start' }, - { type: 'paragraph', - text: 'i am using marked.' }, - { type: 'blockquote_end' }, - links: {} ] -``` \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/marked/docs/broken.md b/node_modules/@polymer/polymer/bower_components/marked/docs/broken.md deleted file mode 100644 index 7bfa49e8..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/docs/broken.md +++ /dev/null @@ -1,426 +0,0 @@ -# Markdown is broken - -I have a lot of scraps of markdown engine oddities that I've collected over the -years. What you see below is slightly messy, but it's what I've managed to -cobble together to illustrate the differences between markdown engines, and -why, if there ever is a markdown specification, it has to be absolutely -thorough. There are a lot more of these little differences I have documented -elsewhere. I know I will find them lingering on my disk one day, but until -then, I'll continue to add whatever strange nonsensical things I find. - -Some of these examples may only mention a particular engine compared to marked. -However, the examples with markdown.pl could easily be swapped out for -discount, upskirt, or markdown.js, and you would very easily see even more -inconsistencies. - -A lot of this was written when I was very unsatisfied with the inconsistencies -between markdown engines. Please excuse the frustration noticeable in my -writing. - -## Examples of markdown's "stupid" list parsing - -``` -$ markdown.pl - - * item1 - - * item2 - - text -^D -
    -
  • item1

    - -
      -
    • item2
    • -
    - -

    text

  • -

-``` - - -``` -$ marked - * item1 - - * item2 - - text -^D -
    -
  • item1

    -
      -
    • item2
    • -
    -

    text

    -
  • -
-``` - -Which looks correct to you? - -- - - - -``` -$ markdown.pl -* hello - > world -^D -

    -
  • hello

    - -
    -

    world

  • -

- -``` - -``` -$ marked -* hello - > world -^D -
    -
  • hello
    -

    world

    -
    -
  • -
-``` - -Again, which looks correct to you? - -- - - - -EXAMPLE: - -``` -$ markdown.pl -* hello - * world - * hi - code -^D -
    -
  • hello -
      -
    • world
    • -
    • hi - code
    • -
  • -
-``` - -The code isn't a code block even though it's after the bullet margin. I know, -lets give it two more spaces, effectively making it 8 spaces past the bullet. - -``` -$ markdown.pl -* hello - * world - * hi - code -^D -
    -
  • hello -
      -
    • world
    • -
    • hi - code
    • -
  • -
-``` - -And, it's still not a code block. Did you also notice that the 3rd item isn't -even its own list? Markdown screws that up too because of its indentation -unaware parsing. - -- - - - -Let's look at some more examples of markdown's list parsing: - -``` -$ markdown.pl - - * item1 - - * item2 - - text -^D -
    -
  • item1

    - -
      -
    • item2
    • -
    - -

    text

  • -

-``` - -Misnested tags. - - -``` -$ marked - * item1 - - * item2 - - text -^D -
    -
  • item1

    -
      -
    • item2
    • -
    -

    text

    -
  • -
-``` - -Which looks correct to you? - -- - - - -``` -$ markdown.pl -* hello - > world -^D -

    -
  • hello

    - -
    -

    world

  • -

- -``` - -More misnested tags. - - -``` -$ marked -* hello - > world -^D -
    -
  • hello
    -

    world

    -
    -
  • -
-``` - -Again, which looks correct to you? - -- - - - -# Why quality matters - Part 2 - -``` bash -$ markdown.pl -* hello - > world -^D -

    -
  • hello

    - -
    -

    world

  • -

- -``` - -``` bash -$ sundown # upskirt -* hello - > world -^D -
    -
  • hello -> world
  • -
-``` - -``` bash -$ marked -* hello - > world -^D -
  • hello

    world

-``` - -Which looks correct to you? - -- - - - -See: https://github.com/evilstreak/markdown-js/issues/23 - -``` bash -$ markdown.pl # upskirt/markdown.js/discount -* hello - var a = 1; -* world -^D -
    -
  • hello -var a = 1;
  • -
  • world
  • -
-``` - -``` bash -$ marked -* hello - var a = 1; -* world -^D -
  • hello -
    code>var a = 1;
  • -
  • world
-``` - -Which looks more reasonable? Why shouldn't code blocks be able to appear in -list items in a sane way? - -- - - - -``` bash -$ markdown.js -
hello
- -hello -^D -

<div>hello</div>

- -

<span>hello</span>

-``` - -``` bash -$ marked -
hello
- -hello -^D -
hello
- - -

hello -

-``` - -- - - - -See: https://github.com/evilstreak/markdown-js/issues/27 - -``` bash -$ markdown.js -[![an image](/image)](/link) -^D -

![an image

-``` - -``` bash -$ marked -[![an image](/image)](/link) -^D -

an image -

-``` - -- - - - -See: https://github.com/evilstreak/markdown-js/issues/24 - -``` bash -$ markdown.js -> a - -> b - -> c -^D -

a

bundefined> c

-``` - -``` bash -$ marked -> a - -> b - -> c -^D -

a - -

-

b - -

-

c -

-``` - -- - - - -``` bash -$ markdown.pl -* hello - * world - how - - are - you - - * today -* hi -^D -
    -
  • hello

    - -
      -
    • world -how
    • -
    - -

    are -you

    - -
      -
    • today
    • -
  • -
  • hi
  • -
-``` - -``` bash -$ marked -* hello - * world - how - - are - you - - * today -* hi -^D -
    -
  • hello

    -
      -
    • world -how

      -

      are -you

      -
    • -
    • today

      -
    • -
    -
  • -
  • hi
  • -
-``` diff --git a/node_modules/@polymer/polymer/bower_components/marked/docs/img/logo-black-and-white.svg b/node_modules/@polymer/polymer/bower_components/marked/docs/img/logo-black-and-white.svg deleted file mode 100644 index 5f6c0b78..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/docs/img/logo-black-and-white.svg +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/marked/docs/img/logo-black.svg b/node_modules/@polymer/polymer/bower_components/marked/docs/img/logo-black.svg deleted file mode 100644 index a67fb80e..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/docs/img/logo-black.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/marked/docs/index.html b/node_modules/@polymer/polymer/bower_components/marked/docs/index.html deleted file mode 100644 index c9b0fda4..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/docs/index.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - Marked.js Documentation - - - -
-
- - - -

Marked.js Documentation

-
- - - Fork me on GitHub - - -
-
- - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/marked/index.js b/node_modules/@polymer/polymer/bower_components/marked/index.js deleted file mode 100644 index a12f9056..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./lib/marked'); diff --git a/node_modules/@polymer/polymer/bower_components/marked/jasmine.json b/node_modules/@polymer/polymer/bower_components/marked/jasmine.json deleted file mode 100644 index 8d1be919..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/jasmine.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "spec_dir": "test", - "spec_files": [ - "**/*-spec.js" - ], - "helpers": [ - "helpers/**/*.js" - ], - "stopSpecOnExpectationFailure": false, - "random": true -} diff --git a/node_modules/@polymer/polymer/bower_components/marked/man/marked.1 b/node_modules/@polymer/polymer/bower_components/marked/man/marked.1 deleted file mode 100644 index 137e060a..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/man/marked.1 +++ /dev/null @@ -1,91 +0,0 @@ -.ds q \N'34' -.TH marked 1 "2014-01-31" "v0.3.1" "marked.js" - -.SH NAME -marked \- a javascript markdown parser - -.SH SYNOPSIS -.B marked -[\-o \fI\fP] [\-i \fI\fP] [\-\-help] -[\-\-tokens] [\-\-pedantic] [\-\-gfm] -[\-\-breaks] [\-\-tables] [\-\-sanitize] -[\-\-smart\-lists] [\-\-lang\-prefix \fI\fP] -[\-\-no\-etc...] [\-\-silent] [\fIfilename\fP] - -.SH DESCRIPTION -.B marked -is a full-featured javascript markdown parser, built for speed. It also includes -multiple GFM features. - -.SH EXAMPLES -.TP -cat in.md | marked > out.html -.TP -echo "hello *world*" | marked -.TP -marked \-o out.html in.md \-\-gfm -.TP -marked \-\-output="hello world.html" \-i in.md \-\-no-breaks - -.SH OPTIONS -.TP -.BI \-o,\ \-\-output\ [\fIoutput\fP] -Specify file output. If none is specified, write to stdout. -.TP -.BI \-i,\ \-\-input\ [\fIinput\fP] -Specify file input, otherwise use last argument as input file. If no input file -is specified, read from stdin. -.TP -.BI \-t,\ \-\-tokens -Output a token stream instead of html. -.TP -.BI \-\-pedantic -Conform to obscure parts of markdown.pl as much as possible. Don't fix original -markdown bugs. -.TP -.BI \-\-gfm -Enable github flavored markdown. -.TP -.BI \-\-breaks -Enable GFM line breaks. Only works with the gfm option. -.TP -.BI \-\-tables -Enable GFM tables. Only works with the gfm option. -.TP -.BI \-\-sanitize -Sanitize output. Ignore any HTML input. -.TP -.BI \-\-smart\-lists -Use smarter list behavior than the original markdown. -.TP -.BI \-\-lang\-prefix\ [\fIprefix\fP] -Set the prefix for code block classes. -.TP -.BI \-\-mangle -Mangle email addresses. -.TP -.BI \-\-no\-sanitize,\ \-no-etc... -The inverse of any of the marked options above. -.TP -.BI \-\-silent -Silence error output. -.TP -.BI \-h,\ \-\-help -Display help information. - -.SH CONFIGURATION -For configuring and running programmatically. - -.B Example - - require('marked')('*foo*', { gfm: true }); - -.SH BUGS -Please report any bugs to https://github.com/markedjs/marked. - -.SH LICENSE -Copyright (c) 2011-2014, Christopher Jeffrey (MIT License). - -.SH "SEE ALSO" -.BR markdown(1), -.BR node.js(1) diff --git a/node_modules/@polymer/polymer/bower_components/marked/man/marked.1.txt b/node_modules/@polymer/polymer/bower_components/marked/man/marked.1.txt deleted file mode 100644 index 7f604192..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/man/marked.1.txt +++ /dev/null @@ -1,96 +0,0 @@ -marked(1) marked.js marked(1) - - - -NAME - marked - a javascript markdown parser - - -SYNOPSIS - marked [-o ] [-i ] [--help] [--tokens] [--pedantic] - [--gfm] [--breaks] [--tables] [--sanitize] [--smart-lists] [--lang-pre‐ - fix ] [--no-etc...] [--silent] [filename] - - -DESCRIPTION - marked is a full-featured javascript markdown parser, built for speed. - It also includes multiple GFM features. - - -EXAMPLES - cat in.md | marked > out.html - - echo "hello *world*" | marked - - marked -o out.html in.md --gfm - - marked --output="hello world.html" -i in.md --no-breaks - - -OPTIONS - -o, --output [output] - Specify file output. If none is specified, write to stdout. - - -i, --input [input] - Specify file input, otherwise use last argument as input file. - If no input file is specified, read from stdin. - - -t, --tokens - Output a token stream instead of html. - - --pedantic - Conform to obscure parts of markdown.pl as much as possible. - Don't fix original markdown bugs. - - --gfm Enable github flavored markdown. - - --breaks - Enable GFM line breaks. Only works with the gfm option. - - --tables - Enable GFM tables. Only works with the gfm option. - - --sanitize - Sanitize output. Ignore any HTML input. - - --smart-lists - Use smarter list behavior than the original markdown. - - --lang-prefix [prefix] - Set the prefix for code block classes. - - --mangle - Mangle email addresses. - - --no-sanitize, -no-etc... - The inverse of any of the marked options above. - - --silent - Silence error output. - - -h, --help - Display help information. - - -CONFIGURATION - For configuring and running programmatically. - - Example - - require('marked')('*foo*', { gfm: true }); - - -BUGS - Please report any bugs to https://github.com/chjj/marked. - - -LICENSE - Copyright (c) 2011-2014, Christopher Jeffrey (MIT License). - - -SEE ALSO - markdown(1), node.js(1) - - - -v0.3.1 2014-01-31 marked(1) diff --git a/node_modules/@polymer/polymer/bower_components/marked/marked.min.js b/node_modules/@polymer/polymer/bower_components/marked/marked.min.js deleted file mode 100644 index 129871ad..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/marked.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * marked - a markdown parser - * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed) - * https://github.com/markedjs/marked - */ -!function(e){"use strict";var t={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:f,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:f,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,table:f,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,paragraph:/^([^\n]+(?:\n?(?!hr|heading|lheading| {0,3}>|tag)[^\n]+)+)/,text:/^[^\n]+/};function n(e){this.tokens=[],this.tokens.links={},this.options=e||k.defaults,this.rules=t.normal,this.options.gfm&&(this.options.tables?this.rules=t.tables:this.rules=t.gfm)}t._label=/(?:\\[\[\]]|[^\[\]])+/,t._title=/(?:"(?:\\"|[^"]|"[^"\n]*")*"|'\n?(?:[^'\n]+\n?)*'|\([^()]*\))/,t.def=p(t.def).replace("label",t._label).replace("title",t._title).getRegex(),t.bullet=/(?:[*+-]|\d+\.)/,t.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,t.item=p(t.item,"gm").replace(/bull/g,t.bullet).getRegex(),t.list=p(t.list).replace(/bull/g,t.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+t.def.source+")").getRegex(),t._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b",t.html=p(t.html).replace("comment",//).replace("closed",/<(tag)[\s\S]+?<\/\1>/).replace("closing",/\s]*)*?\/?>/).replace(/tag/g,t._tag).getRegex(),t.paragraph=p(t.paragraph).replace("hr",t.hr).replace("heading",t.heading).replace("lheading",t.lheading).replace("tag","<"+t._tag).getRegex(),t.blockquote=p(t.blockquote).replace("paragraph",t.paragraph).getRegex(),t.normal=d({},t),t.gfm=d({},t.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\n? *\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}),t.gfm.paragraph=p(t.paragraph).replace("(?!","(?!"+t.gfm.fences.source.replace("\\1","\\2")+"|"+t.list.source.replace("\\1","\\3")+"|").getRegex(),t.tables=d({},t.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}),n.rules=t,n.lex=function(e,t){return new n(t).lex(e)},n.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},n.prototype.token=function(e,n){var r,s,i,l,o,a,h,p,u,c,g;for(e=e.replace(/^ +$/gm,"");e;)if((i=this.rules.newline.exec(e))&&(e=e.substring(i[0].length),i[0].length>1&&this.tokens.push({type:"space"})),i=this.rules.code.exec(e))e=e.substring(i[0].length),i=i[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?i:i.replace(/\n+$/,"")});else if(i=this.rules.fences.exec(e))e=e.substring(i[0].length),this.tokens.push({type:"code",lang:i[2],text:i[3]||""});else if(i=this.rules.heading.exec(e))e=e.substring(i[0].length),this.tokens.push({type:"heading",depth:i[1].length,text:i[2]});else if(n&&(i=this.rules.nptable.exec(e))){for(e=e.substring(i[0].length),a={type:"table",header:i[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:i[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:i[3].replace(/\n$/,"").split("\n")},p=0;p ?/gm,""),this.token(i,n),this.tokens.push({type:"blockquote_end"});else if(i=this.rules.list.exec(e)){for(e=e.substring(i[0].length),g=(l=i[2]).length>1,this.tokens.push({type:"list_start",ordered:g,start:g?+l:""}),r=!1,c=(i=i[0].match(this.rules.item)).length,p=0;p1&&o.length>1||(e=i.slice(p+1).join("\n")+e,p=c-1)),s=r||/\n\n(?!\s*$)/.test(a),p!==c-1&&(r="\n"===a.charAt(a.length-1),s||(s=r)),this.tokens.push({type:s?"loose_item_start":"list_item_start"}),this.token(a,!1),this.tokens.push({type:"list_item_end"});this.tokens.push({type:"list_end"})}else if(i=this.rules.html.exec(e))e=e.substring(i[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&("pre"===i[1]||"script"===i[1]||"style"===i[1]),text:i[0]});else if(n&&(i=this.rules.def.exec(e)))e=e.substring(i[0].length),i[3]&&(i[3]=i[3].substring(1,i[3].length-1)),u=i[1].toLowerCase(),this.tokens.links[u]||(this.tokens.links[u]={href:i[2],title:i[3]});else if(n&&(i=this.rules.table.exec(e))){for(e=e.substring(i[0].length),a={type:"table",header:i[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:i[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:i[3].replace(/(?: *\| *)?\n$/,"").split("\n")},p=0;p])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:f,tag:/^|^<\/?[a-zA-Z0-9\-]+(?:"[^"]*"|'[^']*'|\s[^<'">\/\s]*)*?\/?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^_([^\s_](?:[^_]|__)+?[^\s_])_\b|^\*((?:\*\*|[^*])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`]?)\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:f,text:/^[\s\S]+?(?=[\\/g,">").replace(/"/g,""").replace(/'/g,"'")}function h(e){return e.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""})}function p(e,t){return e=e.source,t=t||"",{replace:function(t,n){return n=(n=n.source||n).replace(/(^|[^\[])\^/g,"$1"),e=e.replace(t,n),this},getRegex:function(){return new RegExp(e,t)}}}function u(e,t){return c[" "+e]||(/^[^:]+:\/*[^/]*$/.test(e)?c[" "+e]=e+"/":c[" "+e]=e.replace(/[^/]*$/,"")),e=c[" "+e],"//"===t.slice(0,2)?e.replace(/:[\s\S]*/,":")+t:"/"===t.charAt(0)?e.replace(/(:\/*[^/]*)[\s\S]*/,"$1")+t:e+t}r._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,r._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,r.autolink=p(r.autolink).replace("scheme",r._scheme).replace("email",r._email).getRegex(),r._inside=/(?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]]|\](?=[^\[]*\]))*/,r._href=/\s*?(?:\s+['"]([\s\S]*?)['"])?\s*/,r.link=p(r.link).replace("inside",r._inside).replace("href",r._href).getRegex(),r.reflink=p(r.reflink).replace("inside",r._inside).getRegex(),r.normal=d({},r),r.pedantic=d({},r.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),r.gfm=d({},r.normal,{escape:p(r.escape).replace("])","~|])").getRegex(),url:p(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("email",r._email).getRegex(),_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:p(r.text).replace("]|","~]|").replace("|","|https?://|ftp://|www\\.|[a-zA-Z0-9.!#$%&'*+/=?^_`{\\|}~-]+@|").getRegex()}),r.breaks=d({},r.gfm,{br:p(r.br).replace("{2,}","*").getRegex(),text:p(r.gfm.text).replace("{2,}","*").getRegex()}),s.rules=r,s.output=function(e,t,n){return new s(t,n).output(e)},s.prototype.output=function(e){for(var t,n,r,s,i="";e;)if(s=this.rules.escape.exec(e))e=e.substring(s[0].length),i+=s[1];else if(s=this.rules.autolink.exec(e))e=e.substring(s[0].length),r="@"===s[2]?"mailto:"+(n=a(this.mangle(s[1]))):n=a(s[1]),i+=this.renderer.link(r,null,n);else if(this.inLink||!(s=this.rules.url.exec(e))){if(s=this.rules.tag.exec(e))!this.inLink&&/^/i.test(s[0])&&(this.inLink=!1),e=e.substring(s[0].length),i+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(s[0]):a(s[0]):s[0];else if(s=this.rules.link.exec(e))e=e.substring(s[0].length),this.inLink=!0,i+=this.outputLink(s,{href:s[2],title:s[3]}),this.inLink=!1;else if((s=this.rules.reflink.exec(e))||(s=this.rules.nolink.exec(e))){if(e=e.substring(s[0].length),t=(s[2]||s[1]).replace(/\s+/g," "),!(t=this.links[t.toLowerCase()])||!t.href){i+=s[0].charAt(0),e=s[0].substring(1)+e;continue}this.inLink=!0,i+=this.outputLink(s,t),this.inLink=!1}else if(s=this.rules.strong.exec(e))e=e.substring(s[0].length),i+=this.renderer.strong(this.output(s[2]||s[1]));else if(s=this.rules.em.exec(e))e=e.substring(s[0].length),i+=this.renderer.em(this.output(s[2]||s[1]));else if(s=this.rules.code.exec(e))e=e.substring(s[0].length),i+=this.renderer.codespan(a(s[2].trim(),!0));else if(s=this.rules.br.exec(e))e=e.substring(s[0].length),i+=this.renderer.br();else if(s=this.rules.del.exec(e))e=e.substring(s[0].length),i+=this.renderer.del(this.output(s[1]));else if(s=this.rules.text.exec(e))e=e.substring(s[0].length),i+=this.renderer.text(a(this.smartypants(s[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else s[0]=this.rules._backpedal.exec(s[0])[0],e=e.substring(s[0].length),"@"===s[2]?r="mailto:"+(n=a(s[0])):(n=a(s[0]),r="www."===s[1]?"http://"+n:n),i+=this.renderer.link(r,null,n);return i},s.prototype.outputLink=function(e,t){var n=a(t.href),r=t.title?a(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,r,this.output(e[1])):this.renderer.image(n,r,a(e[1]))},s.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},s.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n="",r=e.length,s=0;s.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n},i.prototype.code=function(e,t,n){if(this.options.highlight){var r=this.options.highlight(e,t);null!=r&&r!==e&&(n=!0,e=r)}return t?'
'+(n?e:a(e,!0))+"\n
\n":"
"+(n?e:a(e,!0))+"\n
"},i.prototype.blockquote=function(e){return"
\n"+e+"
\n"},i.prototype.html=function(e){return e},i.prototype.heading=function(e,t,n){return"'+e+"\n"},i.prototype.hr=function(){return this.options.xhtml?"
\n":"
\n"},i.prototype.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"},i.prototype.listitem=function(e){return"
  • "+e+"
  • \n"},i.prototype.paragraph=function(e){return"

    "+e+"

    \n"},i.prototype.table=function(e,t){return"\n\n"+e+"\n\n"+t+"\n
    \n"},i.prototype.tablerow=function(e){return"\n"+e+"\n"},i.prototype.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' style="text-align:'+t.align+'">':"<"+n+">")+e+"\n"},i.prototype.strong=function(e){return""+e+""},i.prototype.em=function(e){return""+e+""},i.prototype.codespan=function(e){return""+e+""},i.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},i.prototype.del=function(e){return""+e+""},i.prototype.link=function(e,t,n){if(this.options.sanitize){try{var r=decodeURIComponent(h(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return n}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:")||0===r.indexOf("data:"))return n}this.options.baseUrl&&!g.test(e)&&(e=u(this.options.baseUrl,e));var s='
    "},i.prototype.image=function(e,t,n){this.options.baseUrl&&!g.test(e)&&(e=u(this.options.baseUrl,e));var r=''+n+'":">"},i.prototype.text=function(e){return e},l.prototype.strong=l.prototype.em=l.prototype.codespan=l.prototype.del=l.prototype.text=function(e){return e},l.prototype.link=l.prototype.image=function(e,t,n){return""+n},l.prototype.br=function(){return""},o.parse=function(e,t){return new o(t).parse(e)},o.prototype.parse=function(e){this.inline=new s(e.links,this.options),this.inlineText=new s(e.links,d({},this.options,{renderer:new l})),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},o.prototype.next=function(){return this.token=this.tokens.pop()},o.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},o.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},o.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,h(this.inlineText.output(this.token.text)));case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,r,s="",i="";for(n="",e=0;eAn error occurred:

    "+a(e.message+"",!0)+"
    ";throw e}}f.exec=f,k.options=k.setOptions=function(e){return d(k.defaults,e),k},k.defaults={gfm:!0,tables:!0,breaks:!1,pedantic:!1,sanitize:!1,sanitizer:null,mangle:!0,smartLists:!1,silent:!1,highlight:null,langPrefix:"lang-",smartypants:!1,headerPrefix:"",renderer:new i,xhtml:!1,baseUrl:null},k.Parser=o,k.parser=o.parse,k.Renderer=i,k.TextRenderer=l,k.Lexer=n,k.lexer=n.lex,k.InlineLexer=s,k.inlineLexer=s.output,k.parse=k,"undefined"!=typeof module&&"object"==typeof exports?module.exports=k:"function"==typeof define&&define.amd?define(function(){return k}):e.marked=k}(this||("undefined"!=typeof window?window:global)); \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/marked/package.json b/node_modules/@polymer/polymer/bower_components/marked/package.json deleted file mode 100644 index cc7c85dd..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "marked", - "description": "A markdown parser built for speed", - "author": "Christopher Jeffrey", - "version": "0.3.19", - "main": "./lib/marked.js", - "bin": "./bin/marked", - "man": "./man/marked.1", - "repository": "git://github.com/markedjs/marked.git", - "homepage": "https://marked.js.org", - "bugs": { - "url": "http://github.com/markedjs/marked/issues" - }, - "license": "MIT", - "keywords": [ - "markdown", - "markup", - "html" - ], - "tags": [ - "markdown", - "markup", - "html" - ], - "devDependencies": { - "eslint": "^4.15.0", - "eslint-config-standard": "^11.0.0-beta.0", - "eslint-plugin-import": "^2.8.0", - "eslint-plugin-node": "^5.2.1", - "eslint-plugin-promise": "^3.6.0", - "eslint-plugin-standard": "^3.0.1", - "front-matter": "^2.3.0", - "glob-to-regexp": "0.3.0", - "jasmine": "^3.1.0", - "markdown": "*", - "markdown-it": "*", - "showdown": "*", - "uglify-js": "^3.3.10" - }, - "scripts": { - "test": "jasmine --config=jasmine.json", - "test:unit": "npm test -- test/unit/**/*-spec.js", - "test:specs": "npm test -- test/specs/**/*-spec.js", - "test:integration": "npm test -- test/integration/**/*-spec.js", - "test:old": "node test", - "test:lint": "eslint lib/marked.js test/index.js", - "bench": "node test --bench", - "lint": "eslint --fix lib/marked.js test/index.js", - "build": "uglifyjs lib/marked.js -cm --comments /Copyright/ -o marked.min.js", - "preversion": "npm run build && (git diff --quiet || git commit -am 'minify')" - }, - "engines": { - "node": ">=0.10.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/marked/www/demo.css b/node_modules/@polymer/polymer/bower_components/marked/www/demo.css deleted file mode 100644 index 34705cf1..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/www/demo.css +++ /dev/null @@ -1,153 +0,0 @@ -html, body { - margin: 0; - padding: 0; - font-family: Helvetica, Arial, Verdana, sans-serif; - background-color: #DDF; - height: 100%; -} - -textarea { - font-family: monospace; -} - -#header { - margin: 0; - padding: 0.4em 0 0 0; - text-align: center; - color: #002; -} - -#header h1 { - font-size: 2em; -} - -#header * { - margin: 0; - padding: 0; - line-height: 1em; - font-weight: 100; -} - -#header a { - color: #005; - position: relative; - z-index: 20; -} - -#bothContainers { - position: absolute; - top: 0; - bottom: 0; - margin-top: 2.4em; - width: 100%; -} - -#leftContainer, #rightContainer { - margin: 0; - padding: 0; - position: absolute; - width: 48.5%; - top: 0; - bottom: 0; -} - -#leftContainer { - float: left; - left: 1%; -} - -#rightContainer { - float: right; - right: 1%; -} - -#rightContainer > * { - float: right; -} - -.label { - margin: 0; - padding: 0; - position: relative; - width: 100%; - display: block; -} - -.label * { - position: relative; - font-weight: 900; -} - -.label span { - color: #444; -} - -#outputType { - display: block; - margin-left: auto; - font-weight: 900; - font-family: Arial, Verdana, sans-serif; - background-color: #dacccc; - color: #444; - border: 1px solid #999; -} - -.pane { - margin: 1.6em 0em 0.2em; - padding: 0.6em; - background-color: #eee; - display: block; - border: 1px solid #000; - top: 0; - bottom: 0; - left: 0; - right: 0; - position: absolute; - overflow: auto; -} - -#previewPane { - background-color: #f3eeee; -} - -#outputPane { - background-color: #6c6666; - color: #fff; - display: none; -} - -#syntaxPane { - background-color: #e6dede; - background-color: #f7ecec; - display: none; -} - -#inputPane { - background-color: #fff; -} - -#previewPane { - padding: 0; -} - -#previewPane > * { - margin-left: 4px; - margin-right: 4px; -} - -#previewPane > blockquote { - margin-left: 3em; -} - -#previewPane > :first-child { - margin-top: 4px; /* pane padding */ -} - -#previewPane * { - line-height: 1.4em; -} - -#previewPane code { - font-size: 1.3em; -} - diff --git a/node_modules/@polymer/polymer/bower_components/marked/www/demo.html b/node_modules/@polymer/polymer/bower_components/marked/www/demo.html deleted file mode 100644 index 0d0b042d..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/www/demo.html +++ /dev/null @@ -1,244 +0,0 @@ - - - Marked Demo Page - - - - - - -
    - -
    -
    -
    - Input -
    - -
    - -
    -
    - -
    - -
    - - - - - -
    -
    - - diff --git a/node_modules/@polymer/polymer/bower_components/marked/www/demo.js b/node_modules/@polymer/polymer/bower_components/marked/www/demo.js deleted file mode 100644 index f8f22196..00000000 --- a/node_modules/@polymer/polymer/bower_components/marked/www/demo.js +++ /dev/null @@ -1,105 +0,0 @@ -$(function () { - var $inputElem = $('#input'); - var $outputTypeElem = $('#outputType'); - var $previewElem = $('#preview'); - var $htmlElem = $('#html'); - var $lexerElem = $('#lexer'); - var $syntaxElem = $('#syntax'); - var inputDirty = true; - var $activeElem = null; - - if (top.document.location.href.match(/\?blank=1$/)) { - $inputElem.val(''); - } - - $outputTypeElem.change(function () { - $('#rightContainer .pane').hide(); - $activeElem = $('#' + $outputTypeElem.val()).show(); - }).change(); - - var noticeChange = function () { - inputDirty = true; - }; - $inputElem. - change(noticeChange). - keyup(noticeChange). - keypress(noticeChange). - keydown(noticeChange); - - var jsonString = function (input) { - var output = (input + ''). - replace(/\n/g, '\\n'). - replace(/\r/g, '\\r'). - replace(/\t/g, '\\t'). - replace(/\f/g, '\\f'). - replace(/[\\"']/g, '\\$&'). - replace(/\u0000/g, '\\0'); - return '"' + output + '"'; - }; - - var getScrollSize = function () { - var e = $activeElem[0]; - - return e.scrollHeight - e.clientHeight; - }; - var getScrollPercent = function () { - var size = getScrollSize(); - - if (size <= 0) { - return 1; - } - - return $activeElem.scrollTop() / size; - }; - var setScrollPercent = function (percent) { - $activeElem.scrollTop(percent * getScrollSize()); - }; - - var delayTime = 1; - var checkForChanges = function () { - if (inputDirty) { - inputDirty = false; - var startTime = new Date(); - - // Save scroll position - var scrollPercent = getScrollPercent(); - - // Convert - var markdown = $inputElem.val(); - var lexed = marked.lexer(markdown); - - // Grab lexed output and convert to a string before the parser - // destroys the data - var lexedList = []; - - for (var i = 0; i < lexed.length; i ++) { - var lexedLine = []; - for (var j in lexed[i]) { - lexedLine.push(j + ":" + jsonString(lexed[i][j])); - } - lexedList.push("{" + lexedLine.join(", ") + "}"); - } - - var parsed = marked.parser(lexed); - - // Assign - $previewElem.html(parsed); - $htmlElem.val(parsed); - $lexerElem.val(lexedList.join("\n")); - - // Set the scroll percent - setScrollPercent(scrollPercent); - - var endTime = new Date(); - delayTime = endTime - startTime; - if (delayTime < 50) { - delayTime = 50; - } else if (delayTime > 500) { - delayTime = 1000; - } - } - window.setTimeout(checkForChanges, delayTime); - }; - checkForChanges(); - setScrollPercent(0); -}); diff --git a/node_modules/@polymer/polymer/bower_components/mocha/.bower.json b/node_modules/@polymer/polymer/bower_components/mocha/.bower.json deleted file mode 100644 index cfa71a65..00000000 --- a/node_modules/@polymer/polymer/bower_components/mocha/.bower.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "mocha", - "homepage": "https://mochajs.org", - "description": "simple, flexible, fun test framework", - "repository": { - "type": "git", - "url": "git://github.com/mochajs/mocha.git" - }, - "main": [ - "mocha.js", - "mocha.css" - ], - "ignore": [ - "bin", - "editors", - "images", - "lib", - "scripts", - "test", - "assets", - "media", - ".*", - "index.js", - "karma.conf.js", - "browser-entry.js", - "Makefile", - "package.json", - "appveyor.yml" - ], - "keywords": [ - "mocha", - "test", - "bdd", - "tdd", - "tap" - ], - "license": "MIT", - "version": "3.5.3", - "_release": "3.5.3", - "_resolution": { - "type": "version", - "tag": "v3.5.3", - "commit": "1ff41a05a599e8bffe90b2b13597b01a2031b88f" - }, - "_source": "https://github.com/mochajs/mocha.git", - "_target": "^3.1.2", - "_originalSource": "mocha" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/mocha/CHANGELOG.md b/node_modules/@polymer/polymer/bower_components/mocha/CHANGELOG.md deleted file mode 100644 index 96fc1c50..00000000 --- a/node_modules/@polymer/polymer/bower_components/mocha/CHANGELOG.md +++ /dev/null @@ -1,1711 +0,0 @@ -# 3.5.3 / 2017-09-11 - -## :bug: Fixes - -- [#3003]: Fix invalid entities in xUnit reporter first appearing in v3.5.1 ([@jkrems]) - -[#3003]: https://github.com/mochajs/mocha/pull/3003 - -# 3.5.2 / 2017-09-10 - -## :bug: Fixes - -- [#3001]: Fix AMD-related failures first appearing in v3.5.1 ([@boneskull]) - -[#3001]: https://github.com/mochajs/mocha/pull/3001 - -# 3.5.1 / 2017-09-09 - -## :newspaper: News - -- :mega: Mocha is now sponsoring [PDXNode](http://pdxnode.org)! If you're in the [Portland](https://wikipedia.org/wiki/Portland,_Oregon) area, come check out the monthly talks and hack nights! - -## :bug: Fixes - -- [#2997]: Fix missing `xit` export for "require" interface ([@solodynamo]) -- [#2957]: Fix unicode character handling in XUnit reporter failures ([@jkrems]) - -## :nut_and_bolt: Other - -- [#2986]: Add issue and PR templates ([@kungapal]) -- [#2918]: Drop bash dependency for glob-related tests ([@ScottFreeCode]) -- [#2922]: Improve `--compilers` coverage ([@ScottFreeCode]) -- [#2981]: Fix tpyos and spelling errors ([@jsoref]) - -[#2997]: https://github.com/mochajs/mocha/pull/2997 -[#2957]: https://github.com/mochajs/mocha/pull/2957 -[#2918]: https://github.com/mochajs/mocha/pull/2918 -[#2986]: https://github.com/mochajs/mocha/pull/2986 -[#2922]: https://github.com/mochajs/mocha/pull/2922 -[#2981]: https://github.com/mochajs/mocha/pull/2981 -[@solodynamo]: https://github.com/solodynamo -[@jkrems]: https://github.com/jkrems -[@jsoref]: https://github.com/jsoref - -# 3.5.0 / 2017-07-31 - -## :newspaper: News - -- Mocha now has a [code of conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) (thanks [@kungapal]!). -- Old issues and PRs are now being marked "stale" by [Probot's "Stale" plugin](https://github.com/probot/stale). If an issue is marked as such, and you would like to see it remain open, simply add a new comment to the ticket or PR. -- **WARNING**: Support for non-ES5-compliant environments will be dropped starting with version 4.0.0 of Mocha! - -## :lock: Security Fixes - -- [#2860]: Address [CVE-2015-8315](https://nodesecurity.io/advisories/46) via upgrade of [debug](https://npm.im/debug) ([@boneskull]) - -## :tada: Enhancements - -- [#2696]: Add `--forbid-only` and `--forbid-pending` flags. Use these in CI or hooks to ensure tests aren't accidentally being skipped! ([@charlierudolph]) -- [#2813]: Support Node.js 8's `--napi-modules` flag ([@jupp0r]) - -## :nut_and_bolt: Other - -- Various CI-and-test-related fixes and improvements ([@boneskull], [@dasilvacontin], [@PopradiArpad], [@Munter], [@ScottFreeCode]) -- "Officially" support Node.js 8 ([@elergy]) - -[#2860]: https://github.com/mochajs/mocha/pulls/2860 -[#2696]: https://github.com/mochajs/mocha/pulls/2696 -[#2813]: https://github.com/mochajs/mocha/pulls/2813 -[@charlierudolph]: https://github.com/charlierudolph -[@PopradiArpad]: https://github.com/PopradiArpad -[@kungapal]: https://github.com/kungapal -[@elergy]: https://github.com/elergy -[@jupp0r]: https://github.com/jupp0r - -# 3.4.2 / 2017-05-24 - -## :bug: Fixes - -- [#2802]: Remove call to deprecated `os.tmpDir` ([@makepanic]) -- [#2820]: Eagerly set `process.exitCode` ([@chrisleck]) - -## :nut_and_bolt: Other - -- [#2778]: Move linting into an npm script ([@Munter]) - -[@chrisleck]: https://github.com/chrisleck -[@makepanic]: https://github.com/makepanic -[@Munter]: https://github.com/Munter - -[#2778]: https://github.com/mochajs/mocha/pulls/2778 -[#2802]: https://github.com/mochajs/mocha/issues/2802 -[#2820]: https://github.com/mochajs/mocha/pull/2820 - -# 3.4.1 / 2017-05-14 - -Fixed a publishing mishap with git's autocrlf settings. - -# 3.4.0 / 2017-05-14 - -Mocha is now moving to a quicker release schedule: when non-breaking changes are merged, a release should happen that week. - -This week's highlights: - -- `allowUncaught` added to commandline as `--allow-uncaught` (and bugfixed) -- warning-related Node flags - -## :tada: Enhancements - -- [#2793], [#2697]: add --allowUncaught to Node.js ([@lrowe]) -- [#2733]: Add `--no-warnings` and `--trace-warnings` flags ([@sonicdoe]) - -## :bug: Fixes - -- [#2793], [#2697]: fix broken allowUncaught ([@lrowe]) - -## :nut_and_bolt: Other - -- [#2778]: Add license report and scan status ([@xizhao]) -- [#2794]: no special case for macOS running Karma locally ([@boneskull]) -- [#2795]: reverts use of semistandard directly ([#2648]) ([@boneskull]) - -[@lrowe]: https://github.com/lrowe -[@sonicdoe]: https://github.com/sonicdoe -[@xizhao]: https://github.com/xizhao -[@boneskull]: https://github.com/boneskull - -[#2795]: https://github.com/mochajs/mocha/pull/2795 -[#2733]: https://github.com/mochajs/mocha/pull/2733 -[#2793]: https://github.com/mochajs/mocha/pull/2793 -[#2697]: https://github.com/mochajs/mocha/pull/2697 -[#2778]: https://github.com/mochajs/mocha/pull/2778 -[#2794]: https://github.com/mochajs/mocha/pull/2794 - -# 3.3.0 / 2017-04-24 - -Thanks to all our contributors, maintainers, sponsors, and users! ❤️ - -As highlights: - -- We've got coverage now! -- Testing is looking less flaky \o/. -- No more nitpicking about "mocha.js" build on PRs. - -## :tada: Enhancements - -- [#2659]: Adds support for loading reporter from an absolute or relative path ([@sul4bh]) -- [#2769]: Support `--inspect-brk` on command-line ([@igwejk]) - -## :bug: Fixes - -- [#2662]: Replace unicode chars w/ hex codes in HTML reporter ([@rotemdan]) - -## :mag: Coverage - -- [#2672]: Add coverage for node tests ([@c089], [@Munter]) -- [#2680]: Increase tests coverage for base reporter ([@epallerols]) -- [#2690]: Increase tests coverage for doc reporter ([@craigtaub]) -- [#2701]: Increase tests coverage for landing, min, tap and list reporters ([@craigtaub]) -- [#2691]: Increase tests coverage for spec + dot reporters ([@craigtaub]) -- [#2698]: Increase tests coverage for xunit reporter ([@craigtaub]) -- [#2699]: Increase tests coverage for json-stream, markdown and progress reporters ([@craigtaub]) -- [#2703]: Cover .some() function in utils.js with tests ([@seppevs]) -- [#2773]: Add tests for loading reporters w/ relative/absolute paths ([@sul4bh]) - -## :nut_and_bolt: Other - -- Remove bin/.eslintrc; ensure execs are linted ([@boneskull]) -- [#2542]: Expand CONTRIBUTING.md ([@boneskull]) -- [#2660]: Double timeouts on integration tests ([@Munter]) -- [#2653]: Update copyright year ([@Scottkao85], [@Munter]) -- [#2621]: Update dependencies to enable Greenkeeper ([@boneskull], [@greenkeeper]) -- [#2625]: Use trusty container in travis-ci; use "artifacts" addon ([@boneskull]) -- [#2670]: doc(CONTRIBUTING): fix link to org members ([@coderbyheart]) -- Add Mocha propaganda to README.md ([@boneskull]) -- [#2470]: Avoid test flake in "delay" test ([@boneskull]) -- [#2675]: Limit browser concurrency on sauce ([@boneskull]) -- [#2669]: Use temporary test-only build of mocha.js for browsers tests ([@Munter]) -- Fix "projects" link in README.md ([@boneskull]) -- [#2678]: Chore(Saucelabs): test on IE9, IE10 and IE11 ([@coderbyheart]) -- [#2648]: Use `semistandard` directly ([@kt3k]) -- [#2727]: Make the build reproducible ([@lamby]) - -[@boneskull]: https://github.com/boneskull -[@c089]: https://github.com/c089 -[@coderbyheart]: https://github.com/coderbyheart -[@craigtaub]: https://github.com/craigtaub -[@epallerols]: https://github.com/epallerols -[@greenkeeper]: https://github.com/greenkeeper -[@igwejk]: https://github.com/igwejk -[@kt3k]: https://github.com/kt3k -[@lamby]: https://github.com/lamby -[@Munter]: https://github.com/Munter -[@rotemdan]: https://github.com/rotemdan -[@seppevs]: https://github.com/seppevs -[@sul4bh]: https://github.com/sul4bh - -[#2470]: https://github.com/mochajs/mocha/pull/2470 -[#2542]: https://github.com/mochajs/mocha/issues/2542 -[#2621]: https://github.com/mochajs/mocha/pull/2621 -[#2625]: https://github.com/mochajs/mocha/pull/2625 -[#2648]: https://github.com/mochajs/mocha/pull/2648 -[#2653]: https://github.com/mochajs/mocha/pull/2653 -[#2659]: https://github.com/mochajs/mocha/pull/2659 -[#2660]: https://github.com/mochajs/mocha/pull/2660 -[#2662]: https://github.com/mochajs/mocha/pull/2662 -[#2669]: https://github.com/mochajs/mocha/pull/2669 -[#2670]: https://github.com/mochajs/mocha/pull/2670 -[#2672]: https://github.com/mochajs/mocha/pull/2672 -[#2675]: https://github.com/mochajs/mocha/pull/2675 -[#2678]: https://github.com/mochajs/mocha/pull/2678 -[#2680]: https://github.com/mochajs/mocha/pull/2680 -[#2690]: https://github.com/mochajs/mocha/pull/2690 -[#2691]: https://github.com/mochajs/mocha/pull/2691 -[#2698]: https://github.com/mochajs/mocha/pull/2698 -[#2699]: https://github.com/mochajs/mocha/pull/2699 -[#2701]: https://github.com/mochajs/mocha/pull/2701 -[#2703]: https://github.com/mochajs/mocha/pull/2703 -[#2727]: https://github.com/mochajs/mocha/pull/2727 -[#2769]: https://github.com/mochajs/mocha/pull/2769 -[#2773]: https://github.com/mochajs/mocha/pull/2773 - -# 3.2.0 / 2016-11-24 - -## :newspaper: News - -### Mocha is now a JS Foundation Project! - -Mocha is proud to have joined the [JS Foundation](https://js.foundation). For more information, [read the announcement](https://js.foundation/announcements/2016/10/17/Linux-Foundation-Unites-JavaScript-Community-Open-Web-Development/). - -### Contributor License Agreement - -Under the foundation, all contributors to Mocha must sign the [JS Foundation CLA](https://js.foundation/CLA/) before their code can be merged. When sending a PR--if you have not already signed the CLA--a friendly bot will ask you to do so. - -Mocha remains licensed under the [MIT license](https://github.com/mochajs/mocha/blob/master/LICENSE). - -## :bug: Bug Fix - -- [#2535]: Fix crash when `--watch` encounters broken symlinks ([@villesau]) -- [#2593]: Fix (old) regression; incorrect symbol shown in `list` reporter ([@Aldaviva]) -- [#2584]: Fix potential error when running XUnit reporter ([@vobujs]) - -## :tada: Enhancement - -- [#2294]: Improve timeout error messaging ([@jeversmann], [@boneskull]) -- [#2520]: Add info about `--inspect` flag to CLI help ([@ughitsaaron]) - -## :nut_and_bolt: Other - -- [#2570]: Use [karma-mocha](https://npmjs.com/package/karma-mocha) proper ([@boneskull]) -- Licenses updated to reflect new copyright, add link to license and browser matrix to `README.md` ([@boneskull], [@ScottFreeCode], [@dasilvacontin]) - -[#2294]: https://github.com/mochajs/mocha/issues/2294 -[#2535]: https://github.com/mochajs/mocha/issues/2535 -[#2520]: https://github.com/mochajs/mocha/pull/2520 -[#2593]: https://github.com/mochajs/mocha/pull/2593 -[#2584]: https://github.com/mochajs/mocha/issues/2584 -[#2570]: https://github.com/mochajs/mocha/issues/2570 -[@Aldaviva]: https://github.com/Aldaviva -[@jeversmann]: https://github.com/jeversmann -[@ughitsaaron]: https://github.com/ughitsaaron -[@villesau]: https://github.com/villesau -[@vobujs]: https://github.com/vobujs - -Thanks to all our contributors, sponsors and backers! Keep on the lookout for a public roadmap and new contribution guide coming soon. - -# 3.1.2 / 2016-10-10 - -## :bug: Bug Fix - -- [#2528]: Recovery gracefully if an `Error`'s `stack` property isn't writable ([@boneskull]) - -[#2528]: https://github.com/mochajs/mocha/issues/2528 - -# 3.1.1 / 2016-10-09 - -## :bug: Bug Fix - -- [#1417]: Don't report `done()` was called multiple times when it wasn't ([@frankleonrose]) - -## :nut_and_bolt: Other - -- [#2490]: Lint with [semistandard](https://npmjs.com/package/semistandard) config ([@makepanic]) -- [#2525]: Lint all `.js` files ([@boneskull]) -- [#2524]: Provide workaround for developers unable to run browser tests on macOS Sierra ([@boneskull]) - -[#1417]: https://github.com/mochajs/mocha/issues/1417 -[#2490]: https://github.com/mochajs/mocha/issues/2490 -[#2525]: https://github.com/mochajs/mocha/issues/2525 -[#2524]: https://github.com/mochajs/mocha/issues/2524 -[@makepanic]: https://github.com/makepanic -[@frankleonrose]: https://github.com/frankleonrose - -# 3.1.0 / 2016-09-27 - -## :tada: Enhancement - -- [#2357]: Support `--inspect` on command-line ([@simov]) -- [#2194]: Human-friendly error if no files are matched on command-line ([@Munter]) -- [#1744]: Human-friendly error if a Suite has no callback (BDD/TDD only) ([@anton]) - -## :bug: Bug Fix - -- [#2488]: Fix case in which *variables beginning with lowercase "D"* may not have been reported properly as global leaks ([@JustATrick]) :laughing: -- [#2465]: Always halt execution in async function when `this.skip()` is called ([@boneskull]) -- [#2445]: Exits with expected code 130 when `SIGINT` encountered; exit code can no longer rollover at 256 ([@Munter]) -- [#2315]: Fix uncaught TypeError thrown from callback stack ([@1999]) -- Fix broken `only()`/`skip()` in IE7/IE8 ([@boneskull]) -- [#2502]: Fix broken stack trace filter on Node.js under Windows ([@boneskull]) -- [#2496]: Fix diff output for objects instantiated with `String` constructor ([more](https://youtrack.jetbrains.com/issue/WEB-23383)) ([@boneskull]) - -[#2496]: https://github.com/mochajs/mocha/issues/2496 -[#2502]: https://github.com/mochajs/mocha/issues/2502 -[#2315]: https://github.com/mochajs/mocha/issues/2315 -[#2445]: https://github.com/mochajs/mocha/pull/2445 -[#2465]: https://github.com/mochajs/mocha/issues/2465 -[#2488]: https://github.com/mochajs/mocha/issues/2488 -[#1744]: https://github.com/mochajs/mocha/issues/1744 -[#2194]: https://github.com/mochajs/mocha/issues/2194 -[#2357]: https://github.com/mochajs/mocha/issues/2357 -[@1999]: https://github.com/1999 -[@JustATrick]: https://github.com/JustATrick -[@anton]: https://github.com/anton -[@simov]: https://github.com/simov - -# 3.0.2 / 2016-08-08 - -## :bug: Bug Fix - -- [#2424]: Fix error loading Mocha via Require.js ([@boneskull]) -- [#2417]: Fix execution of *deeply* nested `describe.only()` suites ([@not-an-aardvark]) -- Remove references to `json-cov` and `html-cov` reporters in CLI ([@boneskull]) - -[#2417]: https://github.com/mochajs/mocha/issues/2417 -[#2424]: https://github.com/mochajs/mocha/issues/2424 - -# 3.0.1 / 2016-08-03 - -## :bug: Bug Fix - -- [#2406]: Restore execution of nested `describe.only()` suites ([@not-an-aardvark]) - -[#2406]: https://github.com/mochajs/mocha/issues/2406 -[@not-an-aardvark]: https://github.com/not-an-aardvark - -# 3.0.0 / 2016-07-31 - -## :boom: Breaking Changes - -- :warning: Due to the increasing difficulty of applying security patches made within its dependency tree, as well as looming incompatibilities with Node.js v7.0, **Mocha no longer supports Node.js v0.8**. -- :warning: **Mocha may no longer be installed by versions of `npm` less than `1.4.0`.** Previously, this requirement only affected Mocha's development dependencies. In short, this allows Mocha to depend on packages which have dependencies fixed to major versions (`^`). -- `.only()` is no longer "fuzzy", can be used multiple times, and generally just works like you think it should. :joy: -- To avoid common bugs, when a test injects a callback function (suggesting asynchronous execution), calls it, *and* returns a `Promise`, Mocha will now throw an exception: - - ```js - const assert = require('assert'); - - it('should complete this test', function (done) { - return new Promise(function (resolve) { - assert.ok(true); - resolve(); - }) - .then(done); - }); - ``` - - The above test will fail with `Error: Resolution method is overspecified. Specify a callback *or* return a Promise; not both.`. -- When a test timeout value *greater than* `2147483648` is specified in any context (`--timeout`, `mocha.setup()`, per-suite, per-test, etc.), the timeout will be *disabled* and the test(s) will be allowed to run indefinitely. This is equivalent to specifying a timeout value of `0`. See [MDN](https://developer.mozilla.org/docs/Web/API/WindowTimers/setTimeout#Maximum_delay_value) for reasoning. -- The `dot` reporter now uses more visually distinctive characters when indicating "pending" and "failed" tests. -- Mocha no longer supports [component](https://www.npmjs.com/package/component). -- The long-forsaken `HTMLCov` and `JSONCov` reporters--and any relationship to the "node-jscoverage" project--have been removed. -- `spec` reporter now omits leading carriage returns (`\r`) in non-TTY environment. - -## :tada: Enhancements - -- [#808]: Allow regular-expression-like strings in `--grep` and browser's `grep` querystring; enables flags such as `i` for case-insensitive matches and `u` for unicode. ([@a8m]) -- [#2000]: Use distinctive characters in `dot` reporter; `,` will denote a "pending" test and `!` will denote a "failing" test. ([@elliottcable]) -- [#1632]: Throw a useful exception when a suite or test lacks a title. ([@a8m]) -- [#1481]: Better `.only()` behavior. ([@a8m]) -- [#2334]: Allow `this.skip()` in async tests and hooks. ([@boneskull]) -- [#1320]: Throw a useful exception when test resolution method is overspecified. ([@jugglinmike]) -- [#2364]: Support `--preserve-symlinks`. ([@rosswarren]) - -## :bug: Bug Fixes - -- [#2259]: Restore ES3 compatibility. Specifically, support an environment lacking `Date.prototype.toISOString()`, `JSON`, or has a non-standard implementation of `JSON`. ([@ndhoule], [@boneskull]) -- [#2286]: Fix `after()` failing to execute if test skipped using `this.skip()` in `beforeEach()`; no longer marks the entire suite as "pending". ([@dasilvacontin], [@boneskull]) -- [#2208]: Fix function name display in `markdown` and `html` (browser) reporters. ([@ScottFreeCode]) -- [#2299]: Fix progress bar in `html` (browser) reporter. ([@AviVahl]) -- [#2307]: Fix `doc` reporter crashing when test fails. ([@jleyba]) -- [#2323]: Ensure browser entry point (`browser-entry.js`) is published to npm (for use with bundlers). ([@boneskull]) -- [#2310]: Ensure custom reporter with an absolute path works in Windows. ([@silentcloud]) -- [#2311]: Fix problem wherein calling `this.slow()` without a value would blast any previously set value. ([@boneskull]) -- [#1813]: Ensure Mocha's own test suite will run in Windows. ([@tswaters], [@TimothyGu], [@boneskull]) -- [#2317]: Ensure all interfaces are displayed in `--help` on CLI. ([@ScottFreeCode]) -- [#1644]: Don't exhibit undefined behavior when calling `this.timeout()` with very large values ([@callumacrae], [@boneskull]) -- [#2361]: Don't truncate name of thrown anonymous exception. ([@boneskull]) -- [#2367]: Fix invalid CSS. ([@bensontrent]) -- [#2401]: Remove carriage return before each test line in spec reporter. ([@Munter]) - -## :nut_and_bolt: Other - -- Upgrade production dependencies to address security advisories (and because now we can): `glob`, `commander`, `escape-string-regexp`, -and `supports-color`. ([@boneskull], [@RobLoach]) -- Add Windows to CI. ([@boneskull], [@TimothyGu]) -- Ensure appropriate `engines` field in `package.json`. ([@shinnn], [@boneskull]) -- [#2348]: Upgrade ESLint to v2 ([@anthony-redfox]) - -We :heart: our [backers and sponsors](https://opencollective.com/mochajs)! - -:shipit: - -[#2401]: https://github.com/mochajs/mocha/pull/2401 -[#2348]: https://github.com/mochajs/mocha/issues/2348 -[#808]: https://github.com/mochajs/mocha/issues/808 -[#2361]: https://github.com/mochajs/mocha/pull/2361 -[#2367]: https://github.com/mochajs/mocha/pull/2367 -[#2364]: https://github.com/mochajs/mocha/pull/2364 -[#1320]: https://github.com/mochajs/mocha/pull/1320 -[#2307]: https://github.com/mochajs/mocha/pull/2307 -[#2259]: https://github.com/mochajs/mocha/pull/2259 -[#2208]: https://github.com/mochajs/mocha/pull/2208 -[#2299]: https://github.com/mochajs/mocha/pull/2299 -[#2286]: https://github.com/mochajs/mocha/issues/2286 -[#1644]: https://github.com/mochajs/mocha/issues/1644 -[#2310]: https://github.com/mochajs/mocha/issues/2310 -[#2311]: https://github.com/mochajs/mocha/issues/2311 -[#2323]: https://github.com/mochajs/mocha/issues/2323 -[#2000]: https://github.com/mochajs/mocha/pull/2000 -[#1632]: https://github.com/mochajs/mocha/issues/1632 -[#1813]: https://github.com/mochajs/mocha/issues/1813 -[#2334]: https://github.com/mochajs/mocha/issues/2334 -[#2317]: https://github.com/mochajs/mocha/issues/2317 -[#1481]: https://github.com/mochajs/mocha/issues/1481 -[@elliottcable]: https://github.com/elliottcable -[@RobLoach]: https://github.com/robloach -[@AviVahl]: https://github.com/avivahl -[@silentcloud]: https://github.com/silentcloud -[@tswaters]: https://github.com/tswaters -[@jleyba]: https://github.com/jleyba -[@TimothyGu]: https://github.com/timothygu -[@callumacrae]: https://github.com/callumacrae -[@shinnn]: https://github.com/shinnn -[@bensontrent]: https://github.com/bensontrent -[@jugglinmike]: https://github.com/jugglinmike -[@rosswarren]: https://github.com/rosswarren -[@anthony-redfox]: https://github.com/anthony-redfox -[@Munter]: https://github.com/munter - -# 2.5.3 / 2016-05-25 - -- [#2112] - Fix HTML reporter regression causing duplicate error output ([@danielstjules] via 6d24063) -- [#2119] - Make HTML reporter failure/passed links preventDefault to avoid SPA's hash navigation ([@jimenglish81] via 9e93efc) - -[@danielstjules]: https://github.com/danielstjules -[@jimenglish81]: https://github.com/jimenglish81 -[#2112]: https://github.com/mochajs/mocha/pull/2112 -[#2119]: https://github.com/mochajs/mocha/pull/2119 - -# 2.5.2 / 2016-05-24 - -- [#2178] - Avoid double and triple xUnit XML escaping ([@graingert] via 49b5ff1) - -[@graingert]: https://github.com/graingert -[#2178]: https://github.com/mochajs/mocha/pull/2178 - -# 2.5.1 / 2016-05-23 - -- Fix [to-iso-string](https://npmjs.com/package/to-iso-string) dependency ([@boneskull] via bd9450b) - -Thanks @entertainyou, @SimenB, @just-paja for the heads-up. - -# 2.5.0 / 2016-05-23 - -> This has been awhile coming! We needed to feel confident that the next release wouldn't break browser compatibility (e.g. the last few patch releases). -> -> ### Browser Tests in CI -> -> We now run unit tests against PhantomJS v1.x and an assortment of browsers on [SauceLabs](https://saucelabs.com), including: -> - Internet Explorer v8.0 -> - Chrome (latest) -> - Firefox (latest) -> - Safari (latest) -> - Microsoft Edge (latest) -> -> To accomplish this, we now run Mocha's unit tests (and a handful of integration tests) via [Karma](https://npmjs.com/package/karma) and a modified [karma-mocha](https://npmjs.com/package/karma-mocha). Along the way, we had to solve issue [#880] (apologies to @mderijcke and @sukima who had PRs addressing this), as well as replace most usages of [should](https://npmjs.com/package/should) with [expect.js](https://npmjs.com/package/expect.js) for IE8. -> -> Going forward, when sending PRs, your code will *only* run against PhantomJS v1.x (and not hit SauceLabs) [because security](https://docs.travis-ci.com/user/pull-requests/#Security-Restrictions-when-testing-Pull-Requests). -> -> ### Node.js 6.x -> Node.js 6.x "just worked" before, but now it's in the CI matrix, so it's "officially" supported. Mocha *still retains support* for Node.js 0.8.x. -> -> ### "Minor" Release -> You'll see mostly bug fixes below, but also a couple features--as such, it's a "minor" release. -> -> ### TYVM -> -> Thanks to everyone who contributed, and our fabulous [sponsors and backers](https://opencollective.com/mochajs)! - -- [#2079] - Add browser checks to CI; update [browserify](https://npmjs.com/package/browserify) to v13.0.0 ([@dasilvacontin], [@ScottFreeCode], [@boneskull] via c04c1d7, 0b1e9b3, 0dde0fa, f8a3d86, 9e8cbaa) -- [#880] - Make Mocha browserifyable ([@boneskull] via 524862b) -- [#2121] - Update [glob](https://npmjs.com/package/glob) to v3.2.11 ([@astorije] via 7920fc4) -- [#2126] - Fix dupe error messages in stack trace filter ([@Turbo87] via 4301caa) -- [#2109] - Fix certain diffs when objects cannot be coerced into primitives ([@joshlory] via 61fbb7f) -- [#1827] - Fix TWBS/`mocha.css` collisions ([@irnc] via 0543798) -- [#1760], [#1936] - Fix `this.skip()` in HTML reporter ([@mislav] via cb4248b) -- [#2115] - Fix exceptions thrown from hooks in HTML reporter ([@danielstjules] via e290bc0) -- [#2089] - Handle Symbol values in `util.stringify()` ([@ryym] via ea61d05) -- [#2097] - Fix diff for objects overriding `Object.prototype.hasOwnProperty` ([@mantoni] via b20fdfe) -- [#2101] - Properly handle non-string "messages" thrown from assertion libraries ([@jkimbo] via 9c41051) -- [#2124] - Update [growl](https://npmjs.com/package/growl) ([@benjamine] via 9ae6a85) -- [#2162], [#2205] - JSDoc fixes ([@OlegTsyba] via 8031f20, [@ScottFreeCode] via f83b1d9) -- [#2132] - Remove Growl-related cruft ([@julienw] via 00d6469) -- [#2172] - Add [OpenCollective](https://opencollective.com) badge, sponsors & backers ([@xdamman], [@boneskull] via caee94f) -- [#1841] - Add new logo, banner assets ([@dasilvacontin] via 00fd0e1) -- [#2214] - Update `README.md` header ([@dasilvacontin] via c0f9be2) -- [#2236] - Better checks for Node.js v0.8 compatibility in CI ([@dasilvacontin] via ba5637d) -- [#2239] - Add Node.js v6.x to CI matrix ([@boneskull] via 3904da4) - -[#880]: https://github.com/mochajs/mocha/issues/880 -[#1841]: https://github.com/mochajs/mocha/pull/1841 -[#2239]: https://github.com/mochajs/mocha/issues/2239 -[#2153]: https://github.com/mochajs/mocha/pull/2153 -[#2214]: https://github.com/mochajs/mocha/pull/2214 -[#2236]: https://github.com/mochajs/mocha/pull/2236 -[#2079]: https://github.com/mochajs/mocha/issues/2079 -[#2231]: https://github.com/mochajs/mocha/pull/2231 -[#2089]: https://github.com/mochajs/mocha/issues/2089 -[#2097]: https://github.com/mochajs/mocha/pull/2097 -[#1760]: https://github.com/mochajs/mocha/issues/1760 -[#1936]: https://github.com/mochajs/mocha/issues/1936 -[#2115]: https://github.com/mochajs/mocha/pull/2115 -[#1827]: https://github.com/mochajs/mocha/pull/1827 -[#2101]: https://github.com/mochajs/mocha/pull/2101 -[#2124]: https://github.com/mochajs/mocha/pull/2124 -[#2109]: https://github.com/mochajs/mocha/issues/2109 -[#2162]: https://github.com/mochajs/mocha/pull/2162 -[#2132]: https://github.com/mochajs/mocha/issues/2132 -[#2126]: https://github.com/mochajs/mocha/issues/2126 -[#2121]: https://github.com/mochajs/mocha/issues/2121 -[#2205]: https://github.com/mochajs/mocha/pull/2205 -[#2172]: https://github.com/mochajs/mocha/pull/2172 -[@xdamman]: https://github.com/xdamman -[@Turbo87]: https://github.com/Turbo87 -[@OlegTsyba]: https://github.com/OlegTsyba -[@ryym]: https://github.com/ryym -[@mantoni]: https://github.com/mantoni -[@mislav]: https://github.com/mislav -[@irnc]: https://github.com/irnc -[@jkimbo]: https://github.com/jkimbo -[@benjamine]: https://github.com/benjamine -[@joshlory]: https://github.com/joshlory -[@julienw]: https://github.com/julienw -[@ScottFreeCode]: https://github.com/ScottFreeCode -[@astorije]: https://github.com/astorije -[@dasilvacontin]: https://github.com/dasilvacontin - -2.4.5 / 2016-01-28 -================== - -* [#2080], [#2078], [#2072], [#2073], [#1200] - Revert changes to console colors in changeset [1192914](https://github.com/mochajs/mocha/commit/119291449cd03a11cdeda9e37cf718a69a012896) and subsequent related changes thereafter. Restores compatibility with IE8 & PhantomJS. See also [mantoni/mochify.js#129](https://github.com/mantoni/mochify.js/issues/129) and [openlayers/ol3#4746](https://github.com/openlayers/ol3/pull/4746) ([@boneskull]) -* [#2082] - Fix several test assertions ([@mislav]) - -[#1200]: https://github.com/mochajs/mocha/issues/1200 -[#2082]: https://github.com/mochajs/mocha/pull/2082 - -2.4.4 / 2016-01-27 -================== - -* [#2080] - Fix broken RequireJS compatibility ([@boneskull]) - -[#2080]: https://github.com/mochajs/mocha/issues/2080 - -2.4.3 / 2016-01-27 -================== - -* [#2078] - Fix broken IE8 ([@boneskull]) - -[#2078]: https://github.com/mochajs/mocha/issues/2078 - -2.4.2 / 2016-01-26 -================== - -* [#2053] - Fix web worker compatibility ([@mislav]) -* [#2072] - Fix Windows color output ([@thedark1337]) -* [#2073] - Fix colors in `progress` and `landing` reporters ([@gyandeeps]) - -[#2053]: https://github.com/mochajs/mocha/pull/2053 -[#2072]: https://github.com/mochajs/mocha/pull/2072 -[#2073]: https://github.com/mochajs/mocha/pull/2073 -[@gyandeeps]: https://github.com/gyandeeps -[@thedark1337]: https://github.com/thedark1337 - -2.4.1 / 2016-01-26 -================== - -* [#2067] - Fix HTML/doc reporter regressions ([@danielstjules]) - -[#2067]: https://github.com/mochajs/mocha/pull/2067 - -2.4.0 / 2016-01-25 -================== - -* [#1945] - Correctly skip tests when skipping in suite's before() ([@ryanshawty]) -* [#2056] - chore(license): update license year to 2016 ([@pra85]) -* [#2048] - Fix `this.skip` from spec with HTML reporter ([@mislav]) -* [#2033] - Update tests for newer versions of should.js ([@tomhughes]) -* [#2037] - Fix for memory leak caused by referenced to deferred test ([@bd82]) -* [#2038] - Also run Travis-CI on node.js 4 & 5 ([@bd82]) -* [#2028] - Remove reference to test before afterAll hook runs ([@stonelgh]) -* Bump mkdirp to 0.5.1 to support strict mode ([@danielstjules]) -* [#1977] - safely stringify PhantomJS undefined value ([@ahamid]) -* Add the ability to retry tests ([@@longlho]) -* [#1982] - Enable --log-timer-events option [@Alaneor] -* Fix #1980: Load mocha.opts from bin/mocha and bin/_mocha ([@danielstjules]) -* [#1976] - Simplify function call ([@iclanzan]) -* [#1963] - Add support --perf-basic-prof ([@robraux]) -* [#1981] - Fix HTML reporter handling of done and exceptions ([@Standard8]) -* [#1993] - propagate "file" property for "exports" interface ([@segrey]) -* [#1999] - Add support for strict mode ([@tmont]) -* [#2005] - XUnit Reporter Writes to stdout, falls back to console.log ([@jonnyreeves]) -* [#2021] - Fix non ES5 compliant regexp ([@zetaben]) -* [#1965] - Don't double install BDD UI ([@cowboyd]) -* [#1995] - Make sure the xunit output dir exists before writing to it ([@ianwremmel]) -* Use chalk for the base reporter colors; closes #1200 ([@boneskull]) -* Fix requiring custom interfaces ([@jgkim]) -* [#1967] Silence Bluebird js warnings ([@krisr]) - -[#1945]: https://github.com/mochajs/mocha/pull/1945 -[#2056]: https://github.com/mochajs/mocha/pull/2056 -[#2048]: https://github.com/mochajs/mocha/pull/2048 -[#2033]: https://github.com/mochajs/mocha/pull/2033 -[#2037]: https://github.com/mochajs/mocha/pull/2037 -[#2038]: https://github.com/mochajs/mocha/pull/2038 -[#2028]: https://github.com/mochajs/mocha/pull/2028 -[#1977]: https://github.com/mochajs/mocha/pull/1977 -[#1982]: https://github.com/mochajs/mocha/pull/1982 -[#1976]: https://github.com/mochajs/mocha/pull/1976 -[#1963]: https://github.com/mochajs/mocha/pull/1963 -[#1981]: https://github.com/mochajs/mocha/pull/1981 -[#1993]: https://github.com/mochajs/mocha/pull/1993 -[#1999]: https://github.com/mochajs/mocha/pull/1999 -[#2005]: https://github.com/mochajs/mocha/pull/2005 -[#2021]: https://github.com/mochajs/mocha/pull/2021 -[1965#]: https://github.com/mochajs/mocha/pull/1965 -[#1995]: https://github.com/mochajs/mocha/pull/1995 -[#1967]: https://github.com/mochajs/mocha/pull/1967 -[@ryanshawty]: https://github.com/ryanshawty -[@pra85]: https://github.com/pra85 -[@mislav]: https://github.com/mislav -[@tomhughes]: https://github.com/tomhughes -[@bd82]: https://github.com/bd82 -[@stonelgh]: https://github.com/stonelgh -[@danielstjules]: https://github.com/danielstjules -[@ahamid]: https://github.com/ahamid -[@longlho]: https://github.com/longlho -[@Alaneor]: https://github.com/Alaneor -[@iclanzan]: https://github.com/iclanzan -[@robraux]: https://github.com/robraux -[@Standard8]: https://github.com/Standard8 -[@segrey]: https://github.com/segrey -[@tmont]: https://github.com/tmont -[@jonnyreeves]: https://github.com/jonnyreeves -[@zetaben]: https://github.com/zetaben -[@cowboyd]: https://github.com/cowboyd -[@ianwremmel]: https://github.com/ianwremmel -[@boneskull]: https://github.com/boneskull -[@jgkim]: https://github.com/jgkim -[@krisr]: https://github.com/krisr - -2.3.4 / 2015-11-15 -================== - - * Update debug dependency to 2.2.0 - * remove duplication of mocha.opts on process.argv - * Fix typo in test/reporters/nyan.js - -2.3.3 / 2015-09-19 -================== - - * [#1875] - Fix Markdown reporter exceeds maximum call stack size ([@danielstjules]) - * [#1864] - Fix xunit missing output with --reporter-options output ([@danielstjules]) - * [#1846] - Support all harmony flags ([@danielstjules]) - * Fix fragile xunit reporter spec ([@danielstjules]) - * [#1669] - Fix catch uncaught errors outside test suite execution ([@danielstjules]) - * [#1868] - Revert jade to support npm < v1.3.7 ([@danielstjules]) - * [#1766] - Don't remove modules/components from stack trace in the browser ([@danielstjules]) - * [#1798] - Fix correctly attribute mutiple done err with hooks ([@danielstjules]) - * Fix use utils.reduce for IE8 compatibility ([@wsw0108]) - * Some linting errors fixed by [@danielstjules] - * Call the inspect() function if message is not set ([@kevinburke]) - -[#1875]: https://github.com/mochajs/mocha/issues/1875 -[#1864]: https://github.com/mochajs/mocha/issues/1864 -[#1846]: https://github.com/mochajs/mocha/issues/1846 -[#1669]: https://github.com/mochajs/mocha/issues/1669 -[#1868]: https://github.com/mochajs/mocha/issues/1868 -[#1766]: https://github.com/mochajs/mocha/issues/1766 -[#1798]: https://github.com/mochajs/mocha/issues/1798 -[@danielstjules]: https://github.com/danielstjules -[@wsw0108]: https://github.com/wsw0108 -[@kevinburke]: https://github.com/kevinburke - -2.3.2 / 2015-09-07 -================== - * [#1868] - Fix compatibility with older versions of NPM ([@boneskull]) - - [#1868]: https://github.com/mochajs/mocha/issues/1868 - -2.3.1 / 2015-09-06 -================== - - * [#1812] - Fix: Bail flag causes before() hooks to be run even after a failure ([@aaroncrows]) - - [#1812]: https://github.com/mochajs/mocha/issues/1812 - [aaroncrows]: https://github.com/aaroncrows - -2.3.0 / 2015-08-30 -================== - - * [#553] - added --allowUncaught option ([@amsul]) - * [#1490] - Allow --async-only to be satisfied by returning a promise ([@jlai]) - * [#1829] - support --max-old-space-size ([@gigadude]) - * [#1811] - upgrade Jade dependency ([@outsideris]) - * [#1769] - Fix async hook error handling ([@ajaykodali]) - * [#1230] - More descriptive beforeEach/afterEach messages ([@duncanbeevers]) - * [#1787] - Scope loading behaviour instead of using early return ([@aryeguy]) - * [#1789] - Fix: html-runner crashing ([@sunesimonsen]) - * [#1749] - Fix maximum call stack error on large amount of tests ([@tinganho]) - * [#1230] - Decorate failed hook titles with test title ([@duncanbeevers]) - * [#1260] - Build using Browserify ([@ndhoule]) - * [#1728] - Don't use `__proto__` ([@ndhoule]) - * [#1781] - Fix hook error tests ([@glenjamin]) - * [#1754] - Allow boolean --reporter-options ([@papandreou]) - * [#1766] - Fix overly aggressive stack suppression ([@moll]) - * [#1752] - Avoid potential infinite loop ([@gsilk]) - * [#1761] - Fix problems running under PhantomJS ([@chromakode]) - * [#1700] - Fix more problems running under PhantomJS ([@jbnicolai]) - * [#1774] - Support escaped spaces in CLI options ([@adamgruber]) - * [#1687] - Fix HTML reporter links with special chars ([@benvinegar]) - * [#1359] - Adopt code style and enforce it using ESLint ([@ndhoule] w/ assist from [@jbnicolai] & [@boneskull]) - * various refactors ([@jbnicolai]) - * [#1758] - Add cross-frame compatible Error checking ([@outdooricon]) - * [#1741] - Remove moot `version` property from bower.json ([@kkirsche]) - * [#1739] - Improve `HISTORY.md` ([@rstacruz]) - * [#1730] - Support more io.js flags ([@ryedog]) - * [#1349] - Allow HTML in HTML reporter errors ([@papandreou] / [@sunesimonsen]) - * [#1572] - Prevent default browser behavior for failure/pass links ([@jschilli]) - * [#1630] - Support underscored harmony flags ([@dominicbarnes]) - * [#1718] - Support more harmony flags ([@slyg]) - * [#1689] - Add stack to JSON-stream reporter ([@jonathandelgado]) - * [#1654] - Fix `ReferenceError` "location is not defined" ([@jakemmarsh]) - - [#553]: https://github.com/mochajs/mocha/issues/553 - [#1490]: https://github.com/mochajs/mocha/issues/1490 - [#1829]: https://github.com/mochajs/mocha/issues/1829 - [#1811]: https://github.com/mochajs/mocha/issues/1811 - [#1769]: https://github.com/mochajs/mocha/issues/1769 - [#1230]: https://github.com/mochajs/mocha/issues/1230 - [#1787]: https://github.com/mochajs/mocha/issues/1787 - [#1789]: https://github.com/mochajs/mocha/issues/1789 - [#1749]: https://github.com/mochajs/mocha/issues/1749 - [#1230]: https://github.com/mochajs/mocha/issues/1230 - [#1260]: https://github.com/mochajs/mocha/issues/1260 - [#1728]: https://github.com/mochajs/mocha/issues/1728 - [#1781]: https://github.com/mochajs/mocha/issues/1781 - [#1754]: https://github.com/mochajs/mocha/issues/1754 - [#1766]: https://github.com/mochajs/mocha/issues/1766 - [#1752]: https://github.com/mochajs/mocha/issues/1752 - [#1761]: https://github.com/mochajs/mocha/issues/1761 - [#1700]: https://github.com/mochajs/mocha/issues/1700 - [#1774]: https://github.com/mochajs/mocha/issues/1774 - [#1687]: https://github.com/mochajs/mocha/issues/1687 - [#1359]: https://github.com/mochajs/mocha/issues/1359 - [#1758]: https://github.com/mochajs/mocha/issues/1758 - [#1741]: https://github.com/mochajs/mocha/issues/1741 - [#1739]: https://github.com/mochajs/mocha/issues/1739 - [#1730]: https://github.com/mochajs/mocha/issues/1730 - [#1349]: https://github.com/mochajs/mocha/issues/1349 - [#1572]: https://github.com/mochajs/mocha/issues/1572 - [#1630]: https://github.com/mochajs/mocha/issues/1630 - [#1718]: https://github.com/mochajs/mocha/issues/1718 - [#1689]: https://github.com/mochajs/mocha/issues/1689 - [#1654]: https://github.com/mochajs/mocha/issues/1654 - [@adamgruber]: https://github.com/adamgruber - [@ajaykodali]: https://github.com/ajaykodali - [@amsul]: https://github.com/amsul - [@aryeguy]: https://github.com/aryeguy - [@benvinegar]: https://github.com/benvinegar - [@boneskull]: https://github.com/boneskull - [@chromakode]: https://github.com/chromakode - [@dominicbarnes]: https://github.com/dominicbarnes - [@duncanbeevers]: https://github.com/duncanbeevers - [@gigadude]: https://github.com/gigadude - [@glenjamin]: https://github.com/glenjamin - [@gsilk]: https://github.com/gsilk - [@jakemmarsh]: https://github.com/jakemmarsh - [@jbnicolai]: https://github.com/jbnicolai - [@jlai]: https://github.com/jlai - [@jonathandelgado]: https://github.com/jonathandelgado - [@jschilli]: https://github.com/jschilli - [@kkirsche]: https://github.com/kkirsche - [@moll]: https://github.com/moll - [@ndhoule]: https://github.com/ndhoule - [@outdooricon]: https://github.com/outdooricon - [@outsideris]: https://github.com/outsideris - [@papandreou]: https://github.com/papandreou - [@rstacruz]: https://github.com/rstacruz - [@ryedog]: https://github.com/ryedog - [@slyg]: https://github.com/slyg - [@sunesimonsen]: https://github.com/sunesimonsen - [@tinganho]: https://github.com/tinganho - -2.2.5 / 2015-05-14 -================== - - * [#1699] - Upgrade jsdiff to v1.4.0 ([@nylen]) - * [#1648] - fix diff background colors in the console ([@nylen]) - * [#1327] - fix tests running twice, a regression issue. ([#1686], [@danielstjules]) - * [#1675] - add integration tests ([@danielstjules]) - * [#1682] - use a valid SPDX license identifier in package.json ([@kemitchell]) - * [#1660] - fix assertion of invalid dates ([#1661], [@a8m]) - * [#1241] - fix issue with multiline diffs appearing as single line ([#1655], [@a8m]) - -[#1699]: https://github.com/mochajs/mocha/issues/1699 -[#1648]: https://github.com/mochajs/mocha/issues/1648 -[#1327]: https://github.com/mochajs/mocha/issues/1327 -[#1686]: https://github.com/mochajs/mocha/issues/1686 -[#1675]: https://github.com/mochajs/mocha/issues/1675 -[#1682]: https://github.com/mochajs/mocha/issues/1682 -[#1660]: https://github.com/mochajs/mocha/issues/1660 -[#1661]: https://github.com/mochajs/mocha/issues/1661 -[#1241]: https://github.com/mochajs/mocha/issues/1241 -[#1655]: https://github.com/mochajs/mocha/issues/1655 -[@nylen]: https://github.com/nylen -[@danielstjules]: https://github.com/danielstjules -[@kemitchell]: https://github.com/kemitchell -[@a8m]: https://github.com/a8m - -2.2.4 / 2015-04-08 -================== - - * Load mocha.opts in _mocha for now (close #1645) - -2.2.3 / 2015-04-07 -================== - - * fix(reporter/base): string diff - issue #1241 - * fix(reporter/base): string diff - issue #1241 - * fix(reporter/base): don't show diffs for errors without expectation - * fix(reporter/base): don't assume error message is first line of stack - * improve: dry up reporter/base test - * fix(reporter/base): explicitly ignore showDiff #1614 - * Add iojs to travis build - * Pass `--allow-natives-syntax` flag to node. - * Support --harmony_classes flag for io.js - * Fix 1556: Update utils.clean to handle newlines in func declarations - * Fix 1606: fix err handling in IE <= 8 and non-ES5 browsers - * Fix 1585: make _mocha executable again - * chore(package.json): add a8m as a contributor - * Fixed broken link on html-cov reporter - * support --es_staging flag - * fix issue where menu overlaps content. - * update contributors in package.json - * Remove trailing whitespace from reporter output - * Remove contributors list from readme - * log third-party reporter errors - * [Fix] Exclude not own properties when looping on options - * fix: support node args in mocha.opts (close #1573) - * fix(reporter/base): string diff - issue #1241 - -2.2.1 / 2015-03-09 -================== - - * Fix passing of args intended for node/iojs. - -2.2.0 / 2015-03-06 -================== - - * Update mocha.js - * Add --fgrep. Use grep for RegExp, fgrep for str - * Ignore async global errors after spec resolution - * Fixing errors that prevent mocha.js from loading in the browser - fixes #1558 - * fix(utils): issue #1558 + make - * add ability to delay root suite; closes #362, closes #1124 - * fix insanity in http tests - * update travis: add node 0.12, add gitter, remove slack - * building - * resolve #1548: ensure the environment's "node" executable is used - * reporters/base: use supports-color to detect colorable term - * travis: use docker containers - * small fix: commander option for --expose-gc - * Ignore asynchronous errors after global failure - * Improve error output when a test fails with a non-error - * updated travis badge, uses svg instead of img - * Allow skip from test context for #332 - * [JSHINT] Unnecessary semicolon fixed in bin/_mocha - * Added a reminder about the done() callback to test timeout error messages - * fixes #1496, in Mocha.run(fn), check if fn exists before executing it, added tests too - * Add Harmony Proxy flag for iojs - * test(utils|ms|*): test existing units - * add support for some iojs flags - * fix(utils.stringify): issue #1229, diff viewer - * Remove slack link - * Prevent multiple 'grep=' querystring params in html reporter - * Use grep as regexp (close #1381) - * utils.stringify should handle objects without an Object prototype - * in runnable test, comparing to undefined error's message rather than a literal - * Fix test running output truncation on async STDIO - * amended for deprecated customFds option in child_process - -2.1.0 / 2014-12-23 -================== - - * showDiff: don’t stringify strings - * Clean up unused module dependencies. - * Filter zero-length strings from mocha.opts - * only write to stdout in reporters - * Revert "only write to stdout in reporters" - * Print colored output only to a tty - * update summary in README.md - * rename Readme.md/History.md to README.md/HISTORY.md because neurotic - * add .mailmap to fix "git shortlog" or "git summary" output - * fixes #1461: nyan-reporter now respects Base.useColors, fixed bug where Base.color would not return a string when str wasn't a string. - * Use existing test URL builder in failed replay links - * modify .travis.yml: use travis_retry; closes #1449 - * fix -t 0 behavior; closes #1446 - * fix tests (whoops) - * improve diff behavior - * Preserve pathname when linking to individual tests - * Fix test - * Tiny typo in comments fixed - * after hooks now being called on failed tests when using bail, fixes #1093 - * fix throwing undefined/null now makes tests fail, fixes #1395 - * compiler extensions are added as watched extensions, removed non-standard extensions from watch regex, resolves #1221 - * prefix/namespace for suite titles in markdown reporter, fixes #554 - * fix more bad markdown in CONTRIBUTING.md - * fix bad markdown in CONTRIBUTING.md - * add setImmediate/clearImmediate to globals; closes #1435 - * Fix buffer diffs (closes #1132, closes #1433) - * add a CONTRIBUTING.md. closes #882 - * fix intermittent build failures (maybe). closes #1407 - * add Slack notification to .travis.yml - * Fix slack link - * Add slack room to readme - * Update maintainers - * update maintainers and contributors - * resolves #1393: kill children with more effort on SIGINT - * xunit reporter support for optionally writing to a file - * if a reporter has a .done method, call it before exiting - * add support for reporter options - * only write to stdout in reporters - -2.0.0 / 2014-10-21 -================== - - * remove: support for node 0.6.x, 0.4.x - * fix: landing reporter with non ansi characters (#211) - * fix: html reporter - preserve query params when navigating to suites/tests (#1358) - * fix: json stream reporter add error message to failed test - * fix: fixes for visionmedia -> mochajs - * fix: use stdio, fixes node deprecation warnings (#1391) - -1.21.5 / 2014-10-11 -================== - - * fix: build for NodeJS v0.6.x - * fix: do not attempt to highlight syntax when non-HTML reporter is used - * update: escape-string-regexp to 1.0.2. - * fix: botched indentation in canonicalize() - * fix: .gitignore: ignore .patch and .diff files - * fix: changed 'Catched' to 'Caught' in uncaught exception error handler messages - * add: `pending` field for json reporter - * fix: Runner.prototype.uncaught: don't double-end runnables that already have a state. - * fix: --recursive, broken by f0facd2e - * update: replaces escapeRegexp with the escape-string-regexp package. - * update: commander to 2.3.0. - * update: diff to 1.0.8. - * fix: ability to disable syntax highlighting (#1329) - * fix: added empty object to errorJSON() call to catch when no error is present - * fix: never time out after calling enableTimeouts(false) - * fix: timeout(0) will work at suite level (#1300) - * Fix for --watch+only() issue (#888 ) - * fix: respect err.showDiff, add Base reporter test (#810) - -1.22.1-3 / 2014-07-27 -================== - - * fix: disabling timeouts with this.timeout(0) (#1301) - -1.22.1-3 / 2014-07-27 -================== - - * fix: local uis and reporters (#1288) - * fix: building 1.21.0's changes in the browser (#1284) - -1.21.0 / 2014-07-23 -================== - - * add: --no-timeouts option (#1262, #1268) - * add: --*- deprecation node flags (#1217) - * add: --watch-extensions argument (#1247) - * change: spec reporter is default (#1228) - * fix: diff output showing incorrect +/- (#1182) - * fix: diffs of circular structures (#1179) - * fix: re-render the progress bar when progress has changed only (#1151) - * fix support for environments with global and window (#1159) - * fix: reverting to previously defined onerror handler (#1178) - * fix: stringify non error objects passed to done() (#1270) - * fix: using local ui, reporters (#1267) - * fix: cleaning es6 arrows (#1176) - * fix: don't include attrs in failure tag for xunit (#1244) - * fix: fail tests that return a promise if promise is rejected w/o a reason (#1224) - * fix: showing failed tests in doc reporter (#1117) - * fix: dot reporter dots being off (#1204) - * fix: catch empty throws (#1219) - * fix: honoring timeout for sync operations (#1242) - * update: growl to 1.8.0 - -1.20.1 / 2014-06-03 -================== - - * update: should dev dependency to ~4.0.0 (#1231) - -1.20.0 / 2014-05-28 -================== - - * add: filenames to suite objects (#1222) - -1.19.0 / 2014-05-17 -================== - - * add: browser script option to package.json - * add: export file in Mocha.Test objects (#1174) - * add: add docs for wrapped node flags - * fix: mocha.run() to return error status in browser (#1216) - * fix: clean() to show failure details (#1205) - * fix: regex that generates html for new keyword (#1201) - * fix: sibling suites have inherited but separate contexts (#1164) - - -1.18.2 / 2014-03-18 -================== - - * fix: html runner was prevented from using #mocha as the default root el (#1162) - -1.18.1 / 2014-03-18 -================== - - * fix: named before/after hooks in bdd, tdd, qunit interfaces (#1161) - -1.18.0 / 2014-03-13 -================== - - * add: promise support (#329) - * add: named before/after hooks (#966) - -1.17.1 / 2014-01-22 -================== - - * fix: expected messages in should.js (should.js#168) - * fix: expect errno global in node versions < v0.9.11 (#1111) - * fix: unreliable checkGlobals optimization (#1110) - -1.17.0 / 2014-01-09 -================== - - * add: able to require globals (describe, it, etc.) through mocha (#1077) - * fix: abort previous run on --watch change (#1100) - * fix: reset context for each --watch triggered run (#1099) - * fix: error when cli can't resolve path or pattern (#799) - * fix: canonicalize objects before stringifying and diffing them (#1079) - * fix: make CR call behave like carriage return for non tty (#1087) - - -1.16.2 / 2013-12-23 -================== - - * fix: couple issues with ie 8 (#1082, #1081) - * fix: issue running the xunit reporter in browsers (#1068) - * fix: issue with firefox < 3.5 (#725) - - -1.16.1 / 2013-12-19 -================== - - * fix: recompiled for missed changes from the last release - - -1.16.0 / 2013-12-19 -================== - - * add: Runnable.globals(arr) for per test global whitelist (#1046) - * add: mocha.throwError(err) for assertion libs to call (#985) - * remove: --watch's spinner (#806) - * fix: duplicate test output for multi-line specs in spec reporter (#1006) - * fix: gracefully exit on SIGINT (#1063) - * fix expose the specified ui only in the browser (#984) - * fix: ensure process exit code is preserved when using --no-exit (#1059) - * fix: return true from window.onerror handler (#868) - * fix: xunit reporter to use process.stdout.write (#1068) - * fix: utils.clean(str) indentation (#761) - * fix: xunit reporter returning test duration a NaN (#1039) - -1.15.1 / 2013-12-03 -================== - - * fix: recompiled for missed changes from the last release - -1.15.0 / 2013-12-02 -================== - - * add: `--no-exit` to prevent `process.exit()` (#1018) - * fix: using inline diffs (#1044) - * fix: show pending test details in xunit reporter (#1051) - * fix: faster global leak detection (#1024) - * fix: yui compression (#1035) - * fix: wrapping long lines in test results (#1030, #1031) - * fix: handle errors in hooks (#1043) - -1.14.0 / 2013-11-02 -================== - - * add: unified diff (#862) - * add: set MOCHA_COLORS env var to use colors (#965) - * add: able to override tests links in html reporters (#776) - * remove: teamcity reporter (#954) - * update: commander dependency to 2.0.0 (#1010) - * fix: mocha --ui will try to require the ui if not built in, as --reporter does (#1022) - * fix: send cursor commands only if isatty (#184, #1003) - * fix: include assertion message in base reporter (#993, #991) - * fix: consistent return of it, it.only, and describe, describe.only (#840) - -1.13.0 / 2013-09-15 -================== - - * add: sort test files with --sort (#813) - * update: diff dependency to 1.0.7 - * update: glob dependency to 3.2.3 (#927) - * fix: diffs show whitespace differences (#976) - * fix: improve global leaks (#783) - * fix: firefox window.getInterface leak - * fix: accessing iframe via window[iframeIndex] leak - * fix: faster global leak checking - * fix: reporter pending css selector (#970) - -1.12.1 / 2013-08-29 -================== - - * remove test.js from .gitignore - * update included version of ms.js - -1.12.0 / 2013-07-01 -================== - - * add: prevent diffs for differing types. Closes #900 - * add `Mocha.process` hack for phantomjs - * fix: use compilers with requires - * fix regexps in diffs. Closes #890 - * fix xunit NaN on failure. Closes #894 - * fix: strip tab indentation in `clean` utility method - * fix: textmate bundle installation - -1.11.0 / 2013-06-12 -================== - - * add --prof support - * add --harmony support - * add --harmony-generators support - * add "Uncaught " prefix to uncaught exceptions - * add web workers support - * add `suite.skip()` - * change to output # of pending / passing even on failures. Closes #872 - * fix: prevent hooks from being called if we are bailing - * fix `this.timeout(0)` - -1.10.0 / 2013-05-21 -================== - - * add add better globbing support for windows via `glob` module - * add support to pass through flags such as --debug-brk=1234. Closes #852 - * add test.only, test.skip to qunit interface - * change to always use word-based diffs for now. Closes #733 - * change `mocha init` tests.html to index.html - * fix `process` global leak in the browser - * fix: use resolve() instead of join() for --require - * fix: filterLeaks() condition to not consider indices in global object as leaks - * fix: restrict mocha.css styling to #mocha id - * fix: save timer references to avoid Sinon interfering in the browser build. - -1.9.0 / 2013-04-03 -================== - - * add improved setImmediate implementation - * replace --ignore-leaks with --check-leaks - * change default of ignoreLeaks to true. Closes #791 - * remove scrolling for HTML reporter - * fix retina support - * fix tmbundle, restrict to js scope - -1.8.2 / 2013-03-11 -================== - - * add `setImmediate` support for 0.10.x - * fix mocha -w spinner on windows - -1.8.1 / 2013-01-09 -================== - - * fix .bail() arity check causing it to default to true - -1.8.0 / 2013-01-08 -================== - - * add Mocha() options bail support - * add `Mocha#bail()` method - * add instanceof check back for inheriting from Error - * add component.json - * add diff.js to browser build - * update growl - * fix TAP reporter failures comment :D - -1.7.4 / 2012-12-06 -================== - - * add total number of passes and failures to TAP - * remove .bind() calls. re #680 - * fix indexOf. Closes #680 - -1.7.3 / 2012-11-30 -================== - - * fix uncaught error support for the browser - * revert uncaught "fix" which breaks node - -1.7.2 / 2012-11-28 -================== - - * fix uncaught errors to expose the original error message - -1.7.0 / 2012-11-07 -================== - - * add `--async-only` support to prevent false positives for missing `done()` - * add sorting by filename in code coverage - * add HTML 5 doctype to browser template. - * add play button to html reporter to rerun a single test - * add `this.timeout(ms)` as Suite#timeout(ms). Closes #599 - * update growl dependency to 1.6.x - * fix encoding of test-case ?grep. Closes #637 - * fix unicode chars on windows - * fix dom globals in Opera/IE. Closes #243 - * fix markdown reporter a tags - * fix `this.timeout("5s")` support - -1.6.0 / 2012-10-02 -================== - - * add object diffs when `err.showDiff` is present - * add hiding of empty suites when pass/failures are toggled - * add faster `.length` checks to `checkGlobals()` before performing the filter - -1.5.0 / 2012-09-21 -================== - - * add `ms()` to `.slow()` and `.timeout()` - * add `Mocha#checkLeaks()` to re-enable global leak checks - * add `this.slow()` option [aheckmann] - * add tab, CR, LF to error diffs for now - * add faster `.checkGlobals()` solution [guille] - * remove `fn.call()` from reduce util - * remove `fn.call()` from filter util - * fix forEach. Closes #582 - * fix relaying of signals [TooTallNate] - * fix TAP reporter grep number - -1.4.2 / 2012-09-01 -================== - - * add support to multiple `Mocha#globals()` calls, and strings - * add `mocha.reporter()` constructor support [jfirebaugh] - * add `mocha.timeout()` - * move query-string parser to utils.js - * move highlight code to utils.js - * fix third-party reporter support [exogen] - * fix client-side API to match node-side [jfirebaugh] - * fix mocha in iframe [joliss] - -1.4.1 / 2012-08-28 -================== - - * add missing `Markdown` export - * fix `Mocha#grep()`, escape regexp strings - * fix reference error when `devicePixelRatio` is not defined. Closes #549 - -1.4.0 / 2012-08-22 -================== - - * add mkdir -p to `mocha init`. Closes #539 - * add `.only()`. Closes #524 - * add `.skip()`. Closes #524 - * change str.trim() to use utils.trim(). Closes #533 - * fix HTML progress indicator retina display - * fix url-encoding of click-to-grep HTML functionality - -1.3.2 / 2012-08-01 -================== - - * fix exports double-execution regression. Closes #531 - -1.3.1 / 2012-08-01 -================== - - * add passes/failures toggling to HTML reporter - * add pending state to `xit()` and `xdescribe()` [Brian Moore] - * add the @charset "UTF-8"; to fix #522 with FireFox. [Jonathan Creamer] - * add border-bottom to #stats links - * add check for runnable in `Runner#uncaught()`. Closes #494 - * add 0.4 and 0.6 back to travis.yml - * add `-E, --growl-errors` to growl on failures only - * add prefixes to debug() names. Closes #497 - * add `Mocha#invert()` to js api - * change dot reporter to use sexy unicode dots - * fix error when clicking pending test in HTML reporter - * fix `make tm` - -1.3.0 / 2012-07-05 -================== - - * add window scrolling to `HTML` reporter - * add v8 `--trace-*` option support - * add support for custom reports via `--reporter MODULE` - * add `--invert` switch to invert `--grep` matches - * fix export of `Nyan` reporter. Closes #495 - * fix escaping of `HTML` suite titles. Closes #486 - * fix `done()` called multiple times with an error test - * change `--grep` - regexp escape the input - -1.2.2 / 2012-06-28 -================== - - * Added 0.8.0 support - -1.2.1 / 2012-06-25 -================== - - * Added `this.test.error(err)` support to after each hooks. Closes #287 - * Added: export top-level suite on global mocha object (mocha.suite). Closes #448 - * Fixed `js` code block format error in markdown reporter - * Fixed deprecation warning when using `path.existsSync` - * Fixed --globals with wildcard - * Fixed chars in nyan when his head moves back - * Remove `--growl` from test/mocha.opts. Closes #289 - -1.2.0 / 2012-06-17 -================== - - * Added `nyan` reporter [Atsuya Takagi] - * Added `mocha init ` to copy client files - * Added "specify" synonym for "it" [domenic] - * Added global leak wildcard support [nathanbowser] - * Fixed runner emitter leak. closes #432 - * Fixed omission of .js extension. Closes #454 - -1.1.0 / 2012-05-30 -================== - - * Added: check each `mocha(1)` arg for directories to walk - * Added `--recursive` [tricknotes] - * Added `context` for BDD [hokaccha] - * Added styling for new clickable titles - * Added clickable suite titles to HTML reporter - * Added warning when strings are thrown as errors - * Changed: green arrows again in HTML reporter styling - * Changed ul/li elements instead of divs for better copy-and-pasting [joliss] - * Fixed issue #325 - add better grep support to js api - * Fixed: save timer references to avoid Sinon interfering. - -1.0.3 / 2012-04-30 -================== - - * Fixed string diff newlines - * Fixed: removed mocha.css target. Closes #401 - -1.0.2 / 2012-04-25 -================== - - * Added HTML reporter duration. Closes #47 - * Fixed: one postMessage event listener [exogen] - * Fixed: allow --globals to be used multiple times. Closes #100 [brendannee] - * Fixed #158: removes jquery include from browser tests - * Fixed grep. Closes #372 [brendannee] - * Fixed #166 - When grepping don't display the empty suites - * Removed test/browser/style.css. Closes #385 - -1.0.1 / 2012-04-04 -================== - - * Fixed `.timeout()` in hooks - * Fixed: allow callback for `mocha.run()` in client version - * Fixed browser hook error display. Closes #361 - -1.0.0 / 2012-03-24 -================== - - * Added js API. Closes #265 - * Added: initial run of tests with `--watch`. Closes #345 - * Added: mark `location` as a global on the CS. Closes #311 - * Added `markdown` reporter (github flavour) - * Added: scrolling menu to coverage.html. Closes #335 - * Added source line to html report for Safari [Tyson Tate] - * Added "min" reporter, useful for `--watch` [Jakub Nešetřil] - * Added support for arbitrary compilers via . Closes #338 [Ian Young] - * Added Teamcity export to lib/reporters/index [Michael Riley] - * Fixed chopping of first char in error reporting. Closes #334 [reported by topfunky] - * Fixed terrible FF / Opera stack traces - -0.14.1 / 2012-03-06 -================== - - * Added lib-cov to _.npmignore_ - * Added reporter to `mocha.run([reporter])` as argument - * Added some margin-top to the HTML reporter - * Removed jQuery dependency - * Fixed `--watch`: purge require cache. Closes #266 - -0.14.0 / 2012-03-01 -================== - - * Added string diff support for terminal reporters - -0.13.0 / 2012-02-23 -================== - - * Added preliminary test coverage support. Closes #5 - * Added `HTMLCov` reporter - * Added `JSONCov` reporter [kunklejr] - * Added `xdescribe()` and `xit()` to the BDD interface. Closes #263 (docs * Changed: make json reporter output pretty json - * Fixed node-inspector support, swapped `--debug` for `debug` to match node. -needed) -Closes #247 - -0.12.1 / 2012-02-14 -================== - - * Added `npm docs mocha` support [TooTallNate] - * Added a `Context` object used for hook and test-case this. Closes #253 - * Fixed `Suite#clone()` `.ctx` reference. Closes #262 - -0.12.0 / 2012-02-02 -================== - - * Added .coffee `--watch` support. Closes #242 - * Added support to `--require` files relative to the CWD. Closes #241 - * Added quick n dirty syntax highlighting. Closes #248 - * Changed: made HTML progress indicator smaller - * Fixed xunit errors attribute [dhendo] - -0.10.2 / 2012-01-21 -================== - - * Fixed suite count in reporter stats. Closes #222 - * Fixed `done()` after timeout error reporting [Phil Sung] - * Changed the 0-based errors to 1 - -0.10.1 / 2012-01-17 -================== - - * Added support for node 0.7.x - * Fixed absolute path support. Closes #215 [kompiro] - * Fixed `--no-colors` option [Jussi Virtanen] - * Fixed Arial CSS typo in the correct file - -0.10.0 / 2012-01-13 -================== - - * Added `-b, --bail` to exit on first exception [guillermo] - * Added support for `-gc` / `--expose-gc` [TooTallNate] - * Added `qunit`-inspired interface - * Added MIT LICENSE. Closes #194 - * Added: `--watch` all .js in the CWD. Closes #139 - * Fixed `self.test` reference in runner. Closes #189 - * Fixed double reporting of uncaught exceptions after timeout. Closes #195 - -0.8.2 / 2012-01-05 -================== - - * Added test-case context support. Closes #113 - * Fixed exit status. Closes #187 - * Update commander. Closes #190 - -0.8.1 / 2011-12-30 -================== - - * Fixed reporting of uncaught exceptions. Closes #183 - * Fixed error message defaulting [indutny] - * Changed mocha(1) from bash to node for windows [Nathan Rajlich] - -0.8.0 / 2011-12-28 -================== - - * Added `XUnit` reporter [FeeFighters/visionmedia] - * Added `say(1)` notification support [Maciej Małecki] - * Changed: fail when done() is invoked with a non-Error. Closes #171 - * Fixed `err.stack`, defaulting to message. Closes #180 - * Fixed: `make tm` mkdir -p the dest. Closes #137 - * Fixed mocha(1) --help bin name - * Fixed `-d` for `--debug` support - -0.7.1 / 2011-12-22 -================== - - * Removed `mocha-debug(1)`, use `mocha --debug` - * Fixed CWD relative requires - * Fixed growl issue on windows [Raynos] - * Fixed: platform specific line endings [TooTallNate] - * Fixed: escape strings in HTML reporter. Closes #164 - -0.7.0 / 2011-12-18 -================== - - * Added support for IE{7,8} [guille] - * Changed: better browser nextTick implementation [guille] - -0.6.0 / 2011-12-18 -================== - - * Added setZeroTimeout timeout for browser (nicer stack traces). Closes #153 - * Added "view source" on hover for HTML reporter to make it obvious - * Changed: replace custom growl with growl lib - * Fixed duplicate reporting for HTML reporter. Closes #154 - * Fixed silent hook errors in the HTML reporter. Closes #150 - -0.5.0 / 2011-12-14 -================== - - * Added: push node_modules directory onto module.paths for relative require Closes #93 - * Added teamcity reporter [blindsey] - * Fixed: recover from uncaught exceptions for tests. Closes #94 - * Fixed: only emit "test end" for uncaught within test, not hook - -0.4.0 / 2011-12-14 -================== - - * Added support for test-specific timeouts via `this.timeout(0)`. Closes #134 - * Added guillermo's client-side EventEmitter. Closes #132 - * Added progress indicator to the HTML reporter - * Fixed slow browser tests. Closes #135 - * Fixed "suite" color for light terminals - * Fixed `require()` leak spotted by [guillermo] - -0.3.6 / 2011-12-09 -================== - - * Removed suite merging (for now) - -0.3.5 / 2011-12-08 -================== - - * Added support for `window.onerror` [guillermo] - * Fixed: clear timeout on uncaught exceptions. Closes #131 [guillermo] - * Added `mocha.css` to PHONY list. - * Added `mocha.js` to PHONY list. - -0.3.4 / 2011-12-08 -================== - - * Added: allow `done()` to be called with non-Error - * Added: return Runner from `mocha.run()`. Closes #126 - * Fixed: run afterEach even on failures. Closes #125 - * Fixed clobbering of current runnable. Closes #121 - -0.3.3 / 2011-12-08 -================== - - * Fixed hook timeouts. Closes #120 - * Fixed uncaught exceptions in hooks - -0.3.2 / 2011-12-05 -================== - - * Fixed weird reporting when `err.message` is not present - -0.3.1 / 2011-12-04 -================== - - * Fixed hook event emitter leak. Closes #117 - * Fixed: export `Spec` constructor. Closes #116 - -0.3.0 / 2011-12-04 -================== - - * Added `-w, --watch`. Closes #72 - * Added `--ignore-leaks` to ignore global leak checking - * Added browser `?grep=pattern` support - * Added `--globals ` to specify accepted globals. Closes #99 - * Fixed `mocha-debug(1)` on some systems. Closes #232 - * Fixed growl total, use `runner.total` - -0.2.0 / 2011-11-30 -================== - - * Added `--globals ` to specify accepted globals. Closes #99 - * Fixed funky highlighting of messages. Closes #97 - * Fixed `mocha-debug(1)`. Closes #232 - * Fixed growl total, use runner.total - -0.1.0 / 2011-11-29 -================== - - * Added `suiteSetup` and `suiteTeardown` to TDD interface [David Henderson] - * Added growl icons. Closes #84 - * Fixed coffee-script support - -0.0.8 / 2011-11-25 -================== - - * Fixed: use `Runner#total` for accurate reporting - -0.0.7 / 2011-11-25 -================== - - * Added `Hook` - * Added `Runnable` - * Changed: `Test` is `Runnable` - * Fixed global leak reporting in hooks - * Fixed: > 2 calls to done() only report the error once - * Fixed: clear timer on failure. Closes #80 - -0.0.6 / 2011-11-25 -================== - - * Fixed return on immediate async error. Closes #80 - -0.0.5 / 2011-11-24 -================== - - * Fixed: make mocha.opts whitespace less picky [kkaefer] - -0.0.4 / 2011-11-24 -================== - - * Added `--interfaces` - * Added `--reporters` - * Added `-c, --colors`. Closes #69 - * Fixed hook timeouts - -0.0.3 / 2011-11-23 -================== - - * Added `-C, --no-colors` to explicitly disable - * Added coffee-script support - -0.0.2 / 2011-11-22 -================== - - * Fixed global leak detection due to Safari bind() change - * Fixed: escape html entities in Doc reporter - * Fixed: escape html entities in HTML reporter - * Fixed pending test support for HTML reporter. Closes #66 - -0.0.1 / 2011-11-22 -================== - - * Added `--timeout` second shorthand support, ex `--timeout 3s`. - * Fixed "test end" event for uncaughtExceptions. Closes #61 - -0.0.1-alpha6 / 2011-11-19 -================== - - * Added travis CI support (needs enabling when public) - * Added preliminary browser support - * Added `make mocha.css` target. Closes #45 - * Added stack trace to TAP errors. Closes #52 - * Renamed tearDown to teardown. Closes #49 - * Fixed: cascading hooksc. Closes #30 - * Fixed some colors for non-tty - * Fixed errors thrown in sync test-cases due to nextTick - * Fixed Base.window.width... again give precedence to 0.6.x - -0.0.1-alpha5 / 2011-11-17 -================== - - * Added `doc` reporter. Closes #33 - * Added suite merging. Closes #28 - * Added TextMate bundle and `make tm`. Closes #20 - -0.0.1-alpha4 / 2011-11-15 -================== - - * Fixed getWindowSize() for 0.4.x - -0.0.1-alpha3 / 2011-11-15 -================== - - * Added `-s, --slow ` to specify "slow" test threshold - * Added `mocha-debug(1)` - * Added `mocha.opts` support. Closes #31 - * Added: default [files] to _test/*.js_ - * Added protection against multiple calls to `done()`. Closes #35 - * Changed: bright yellow for slow Dot reporter tests - -0.0.1-alpha1 / 2011-11-08 -================== - - * Missed this one :) - -0.0.1-alpha1 / 2011-11-08 -================== - - * Initial release diff --git a/node_modules/@polymer/polymer/bower_components/mocha/LICENSE b/node_modules/@polymer/polymer/bower_components/mocha/LICENSE deleted file mode 100644 index 287db889..00000000 --- a/node_modules/@polymer/polymer/bower_components/mocha/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2011-2017 JS Foundation and contributors, https://js.foundation - -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/@polymer/polymer/bower_components/mocha/README.md b/node_modules/@polymer/polymer/bower_components/mocha/README.md deleted file mode 100644 index 9e4d4dcb..00000000 --- a/node_modules/@polymer/polymer/bower_components/mocha/README.md +++ /dev/null @@ -1,124 +0,0 @@ -# Mocha needs YOU! - -*Did you know* Mocha [is a dependency of over 100,000 projects](https://libraries.io/npm/mocha) published to npm alone? - -**Despite this, we're currently unable to merge most pull requests due to lack of maintenance resources.** - -**Are you interested in triaging issues or reviewing open PRs? Have some time to hack on its codebase?** If you would like to help maintain Mocha, please contact `@boneskull` on [Gitter](https://gitter.im/mochajs/mocha). - -*Thank you* :kissing_heart: to all of you interested in helping. These are Mocha's immediate needs: - -1. Increase test coverage on Node.js and browser - - Increase integration coverage for all reporters - - `html` reporter must be tested in browser - - ~~Basic console reporters (*not* `nyan`, `landing`, etc.) must be tested in **both** browser and Node.js contexts; PhantomJS can consume all console reporters~~ - - ~~Filesystem-based reporters must be tested in Node.js context~~ - - **UPDATE - May 24 2017**: Thanks to [community contributions](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md#mag-coverage), the coverage on most reporters has increased dramatically! The `html` reporter is still in [dire need of coverage](https://coveralls.io/builds/11674428/source?filename=lib%2Freporters%2Fhtml.js). - - Increase coverage against all interfaces (`exports` in particular). Ideally this becomes a "matrix" where we repeat sets of integration tests across all interfaces. - - Refactor non-Node.js-specific tests to allow them to run in a browser context. Node.js-specific tests include those which *require* the CLI or filesystem. Most everything else is fair game. -2. Review current open pull requests - - We need individuals familiar with Mocha's codebase. Got questions? Ask them in [our chat room](https://gitter.im/mochajs/mocha). - - Pull requests **must** have supporting tests. The only exceptions are pure cosmetic or non-functional changes. - - Pull request contributors must sign the CLA. -3. Close old, inactive issues and pull requests - - ~~A bot should do this. We need a bot. Got a bot?~~ We now use GitHub's own [probot-stale](https://www.npmjs.com/package/probot-stale). -4. Triage issues - - If we run into "critical" bugs, they need fixing. - - "Critical" means Mocha is broken w/o workarounds for a *large percentage* of users - - Otherwise: respond to issues, close new dupe issues, confirm bugs, ask for more info, etc. - -Once we gain ground on the above items, we can work together formalize our contribution guidelines and governance. For further info & ideas, please see our [projects](https://github.com/mochajs/mocha/projects/). - -*You needn't be a maintainer to submit a pull request for test coverage!* - --- @boneskull, *Jan 17 2016* - -

    -

    - Mocha test framework -

    - -[![Build Status](https://api.travis-ci.org/mochajs/mocha.svg?branch=master)](http://travis-ci.org/mochajs/mocha) -[![Coverage Status](https://coveralls.io/repos/github/mochajs/mocha/badge.svg)](https://coveralls.io/github/mochajs/mocha) -[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmochajs%2Fmocha.svg?type=shield)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmochajs%2Fmocha?ref=badge_shield) -[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mochajs/mocha?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -[![OpenCollective](https://opencollective.com/mochajs/backers/badge.svg)](#backers) -[![OpenCollective](https://opencollective.com/mochajs/sponsors/badge.svg)](#sponsors) -
    Mocha Browser Support h/t SauceLabs - - Mocha is a simple, flexible, fun JavaScript test framework for node.js and the browser. For more information view the [documentation](http://mochajs.org). - -## Links - - - [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md) - - [Google Group](http://groups.google.com/group/mochajs) - - [Wiki](https://github.com/mochajs/mocha/wiki) - - Mocha [Extensions and reporters](https://github.com/mochajs/mocha/wiki) - - -## Backers - -[Become a backer]((https://opencollective.com/mochajs#backer)) and show your support to our open source project. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## Sponsors - -Does your company use Mocha? Ask your manager or marketing team if your company would be interested in supporting our project. Support will allow the maintainers to dedicate more time for maintenance and new features for everyone. Also, your company's logo will show [on GitHub](https://github.com/mochajs/mocha#readme) and on [our site](https://mochajs.org)--who doesn't want a little extra exposure? [Here's the info](https://opencollective.com/mochajs#sponsor). - - - - - - - - - - - - - - - - - - - - - - -## License - -[MIT](LICENSE) - -[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmochajs%2Fmocha.svg?type=large)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmochajs%2Fmocha?ref=badge_large) diff --git a/node_modules/@polymer/polymer/bower_components/mocha/bower.json b/node_modules/@polymer/polymer/bower_components/mocha/bower.json deleted file mode 100644 index e96cc952..00000000 --- a/node_modules/@polymer/polymer/bower_components/mocha/bower.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "mocha", - "homepage": "https://mochajs.org", - "description": "simple, flexible, fun test framework", - "repository": { - "type": "git", - "url": "git://github.com/mochajs/mocha.git" - }, - "main": [ - "mocha.js", - "mocha.css" - ], - "ignore": [ - "bin", - "editors", - "images", - "lib", - "scripts", - "test", - "assets", - "media", - ".*", - "index.js", - "karma.conf.js", - "browser-entry.js", - "Makefile", - "package.json", - "appveyor.yml" - ], - "keywords": [ - "mocha", - "test", - "bdd", - "tdd", - "tap" - ], - "license": "MIT" -} diff --git a/node_modules/@polymer/polymer/bower_components/mocha/mocha.css b/node_modules/@polymer/polymer/bower_components/mocha/mocha.css deleted file mode 100644 index ec96b003..00000000 --- a/node_modules/@polymer/polymer/bower_components/mocha/mocha.css +++ /dev/null @@ -1,326 +0,0 @@ -@charset "utf-8"; - -body { - margin:0; -} - -#mocha { - font: 20px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif; - margin: 60px 50px; -} - -#mocha ul, -#mocha li { - margin: 0; - padding: 0; -} - -#mocha ul { - list-style: none; -} - -#mocha h1, -#mocha h2 { - margin: 0; -} - -#mocha h1 { - margin-top: 15px; - font-size: 1em; - font-weight: 200; -} - -#mocha h1 a { - text-decoration: none; - color: inherit; -} - -#mocha h1 a:hover { - text-decoration: underline; -} - -#mocha .suite .suite h1 { - margin-top: 0; - font-size: .8em; -} - -#mocha .hidden { - display: none; -} - -#mocha h2 { - font-size: 12px; - font-weight: normal; - cursor: pointer; -} - -#mocha .suite { - margin-left: 15px; -} - -#mocha .test { - margin-left: 15px; - overflow: hidden; -} - -#mocha .test.pending:hover h2::after { - content: '(pending)'; - font-family: arial, sans-serif; -} - -#mocha .test.pass.medium .duration { - background: #c09853; -} - -#mocha .test.pass.slow .duration { - background: #b94a48; -} - -#mocha .test.pass::before { - content: '✓'; - font-size: 12px; - display: block; - float: left; - margin-right: 5px; - color: #00d6b2; -} - -#mocha .test.pass .duration { - font-size: 9px; - margin-left: 5px; - padding: 2px 5px; - color: #fff; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.2); - -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.2); - box-shadow: inset 0 1px 1px rgba(0,0,0,.2); - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - -ms-border-radius: 5px; - -o-border-radius: 5px; - border-radius: 5px; -} - -#mocha .test.pass.fast .duration { - display: none; -} - -#mocha .test.pending { - color: #0b97c4; -} - -#mocha .test.pending::before { - content: '◦'; - color: #0b97c4; -} - -#mocha .test.fail { - color: #c00; -} - -#mocha .test.fail pre { - color: black; -} - -#mocha .test.fail::before { - content: '✖'; - font-size: 12px; - display: block; - float: left; - margin-right: 5px; - color: #c00; -} - -#mocha .test pre.error { - color: #c00; - max-height: 300px; - overflow: auto; -} - -#mocha .test .html-error { - overflow: auto; - color: black; - line-height: 1.5; - display: block; - float: left; - clear: left; - font: 12px/1.5 monaco, monospace; - margin: 5px; - padding: 15px; - border: 1px solid #eee; - max-width: 85%; /*(1)*/ - max-width: -webkit-calc(100% - 42px); - max-width: -moz-calc(100% - 42px); - max-width: calc(100% - 42px); /*(2)*/ - max-height: 300px; - word-wrap: break-word; - border-bottom-color: #ddd; - -webkit-box-shadow: 0 1px 3px #eee; - -moz-box-shadow: 0 1px 3px #eee; - box-shadow: 0 1px 3px #eee; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -#mocha .test .html-error pre.error { - border: none; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - -webkit-box-shadow: 0; - -moz-box-shadow: 0; - box-shadow: 0; - padding: 0; - margin: 0; - margin-top: 18px; - max-height: none; -} - -/** - * (1): approximate for browsers not supporting calc - * (2): 42 = 2*15 + 2*10 + 2*1 (padding + margin + border) - * ^^ seriously - */ -#mocha .test pre { - display: block; - float: left; - clear: left; - font: 12px/1.5 monaco, monospace; - margin: 5px; - padding: 15px; - border: 1px solid #eee; - max-width: 85%; /*(1)*/ - max-width: -webkit-calc(100% - 42px); - max-width: -moz-calc(100% - 42px); - max-width: calc(100% - 42px); /*(2)*/ - word-wrap: break-word; - border-bottom-color: #ddd; - -webkit-box-shadow: 0 1px 3px #eee; - -moz-box-shadow: 0 1px 3px #eee; - box-shadow: 0 1px 3px #eee; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -#mocha .test h2 { - position: relative; -} - -#mocha .test a.replay { - position: absolute; - top: 3px; - right: 0; - text-decoration: none; - vertical-align: middle; - display: block; - width: 15px; - height: 15px; - line-height: 15px; - text-align: center; - background: #eee; - font-size: 15px; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; - -webkit-transition:opacity 200ms; - -moz-transition:opacity 200ms; - -o-transition:opacity 200ms; - transition: opacity 200ms; - opacity: 0.3; - color: #888; -} - -#mocha .test:hover a.replay { - opacity: 1; -} - -#mocha-report.pass .test.fail { - display: none; -} - -#mocha-report.fail .test.pass { - display: none; -} - -#mocha-report.pending .test.pass, -#mocha-report.pending .test.fail { - display: none; -} -#mocha-report.pending .test.pass.pending { - display: block; -} - -#mocha-error { - color: #c00; - font-size: 1.5em; - font-weight: 100; - letter-spacing: 1px; -} - -#mocha-stats { - position: fixed; - top: 15px; - right: 10px; - font-size: 12px; - margin: 0; - color: #888; - z-index: 1; -} - -#mocha-stats .progress { - float: right; - padding-top: 0; - - /** - * Set safe initial values, so mochas .progress does not inherit these - * properties from Bootstrap .progress (which causes .progress height to - * equal line height set in Bootstrap). - */ - height: auto; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - background-color: initial; -} - -#mocha-stats em { - color: black; -} - -#mocha-stats a { - text-decoration: none; - color: inherit; -} - -#mocha-stats a:hover { - border-bottom: 1px solid #eee; -} - -#mocha-stats li { - display: inline-block; - margin: 0 5px; - list-style: none; - padding-top: 11px; -} - -#mocha-stats canvas { - width: 40px; - height: 40px; -} - -#mocha code .comment { color: #ddd; } -#mocha code .init { color: #2f6fad; } -#mocha code .string { color: #5890ad; } -#mocha code .keyword { color: #8a6343; } -#mocha code .number { color: #2f6fad; } - -@media screen and (max-device-width: 480px) { - #mocha { - margin: 60px 0px; - } - - #mocha #stats { - position: absolute; - } -} diff --git a/node_modules/@polymer/polymer/bower_components/mocha/mocha.js b/node_modules/@polymer/polymer/bower_components/mocha/mocha.js deleted file mode 100644 index 9a40e98a..00000000 --- a/node_modules/@polymer/polymer/bower_components/mocha/mocha.js +++ /dev/null @@ -1,16590 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 1) { - suites.shift(); - } - return common.suite.create({ - title: title, - file: file, - fn: false - }); - }; - - /** - * Exclusive Suite. - */ - - context.suite.only = function (title) { - if (suites.length > 1) { - suites.shift(); - } - return common.suite.only({ - title: title, - file: file, - fn: false - }); - }; - - /** - * Describe a specification or test-case - * with the given `title` and callback `fn` - * acting as a thunk. - */ - - context.test = function (title, fn) { - var test = new Test(title, fn); - test.file = file; - suites[0].addTest(test); - return test; - }; - - /** - * Exclusive test-case. - */ - - context.test.only = function (title, fn) { - return common.test.only(mocha, context.test(title, fn)); - }; - - context.test.skip = common.test.skip; - context.test.retries = common.test.retries; - }); -}; - -},{"../test":36,"./common":9}],13:[function(require,module,exports){ -'use strict'; - -/** - * Module dependencies. - */ - -var Test = require('../test'); - -/** - * TDD-style interface: - * - * suite('Array', function() { - * suite('#indexOf()', function() { - * suiteSetup(function() { - * - * }); - * - * test('should return -1 when not present', function() { - * - * }); - * - * test('should return the index when present', function() { - * - * }); - * - * suiteTeardown(function() { - * - * }); - * }); - * }); - * - * @param {Suite} suite Root suite. - */ -module.exports = function (suite) { - var suites = [suite]; - - suite.on('pre-require', function (context, file, mocha) { - var common = require('./common')(suites, context, mocha); - - context.setup = common.beforeEach; - context.teardown = common.afterEach; - context.suiteSetup = common.before; - context.suiteTeardown = common.after; - context.run = mocha.options.delay && common.runWithSuite(suite); - - /** - * Describe a "suite" with the given `title` and callback `fn` containing - * nested suites and/or tests. - */ - context.suite = function (title, fn) { - return common.suite.create({ - title: title, - file: file, - fn: fn - }); - }; - - /** - * Pending suite. - */ - context.suite.skip = function (title, fn) { - return common.suite.skip({ - title: title, - file: file, - fn: fn - }); - }; - - /** - * Exclusive test-case. - */ - context.suite.only = function (title, fn) { - return common.suite.only({ - title: title, - file: file, - fn: fn - }); - }; - - /** - * Describe a specification or test-case with the given `title` and - * callback `fn` acting as a thunk. - */ - context.test = function (title, fn) { - var suite = suites[0]; - if (suite.isPending()) { - fn = null; - } - var test = new Test(title, fn); - test.file = file; - suite.addTest(test); - return test; - }; - - /** - * Exclusive test-case. - */ - - context.test.only = function (title, fn) { - return common.test.only(mocha, context.test(title, fn)); - }; - - context.test.skip = common.test.skip; - context.test.retries = common.test.retries; - }); -}; - -},{"../test":36,"./common":9}],14:[function(require,module,exports){ -(function (process,global,__dirname){ -'use strict'; - -/*! - * mocha - * Copyright(c) 2011 TJ Holowaychuk - * MIT Licensed - */ - -/** - * Module dependencies. - */ - -var escapeRe = require('escape-string-regexp'); -var path = require('path'); -var reporters = require('./reporters'); -var utils = require('./utils'); - -/** - * Expose `Mocha`. - */ - -exports = module.exports = Mocha; - -/** - * To require local UIs and reporters when running in node. - */ - -if (!process.browser) { - var cwd = process.cwd(); - module.paths.push(cwd, path.join(cwd, 'node_modules')); -} - -/** - * Expose internals. - */ - -exports.utils = utils; -exports.interfaces = require('./interfaces'); -exports.reporters = reporters; -exports.Runnable = require('./runnable'); -exports.Context = require('./context'); -exports.Runner = require('./runner'); -exports.Suite = require('./suite'); -exports.Hook = require('./hook'); -exports.Test = require('./test'); - -/** - * Return image `name` path. - * - * @api private - * @param {string} name - * @return {string} - */ -function image (name) { - return path.join(__dirname, '../images', name + '.png'); -} - -/** - * Set up mocha with `options`. - * - * Options: - * - * - `ui` name "bdd", "tdd", "exports" etc - * - `reporter` reporter instance, defaults to `mocha.reporters.spec` - * - `globals` array of accepted globals - * - `timeout` timeout in milliseconds - * - `retries` number of times to retry failed tests - * - `bail` bail on the first test failure - * - `slow` milliseconds to wait before considering a test slow - * - `ignoreLeaks` ignore global leaks - * - `fullTrace` display the full stack-trace on failing - * - `grep` string or regexp to filter tests with - * - * @param {Object} options - * @api public - */ -function Mocha (options) { - options = options || {}; - this.files = []; - this.options = options; - if (options.grep) { - this.grep(new RegExp(options.grep)); - } - if (options.fgrep) { - this.fgrep(options.fgrep); - } - this.suite = new exports.Suite('', new exports.Context()); - this.ui(options.ui); - this.bail(options.bail); - this.reporter(options.reporter, options.reporterOptions); - if (typeof options.timeout !== 'undefined' && options.timeout !== null) { - this.timeout(options.timeout); - } - if (typeof options.retries !== 'undefined' && options.retries !== null) { - this.retries(options.retries); - } - this.useColors(options.useColors); - if (options.enableTimeouts !== null) { - this.enableTimeouts(options.enableTimeouts); - } - if (options.slow) { - this.slow(options.slow); - } -} - -/** - * Enable or disable bailing on the first failure. - * - * @api public - * @param {boolean} [bail] - */ -Mocha.prototype.bail = function (bail) { - if (!arguments.length) { - bail = true; - } - this.suite.bail(bail); - return this; -}; - -/** - * Add test `file`. - * - * @api public - * @param {string} file - */ -Mocha.prototype.addFile = function (file) { - this.files.push(file); - return this; -}; - -/** - * Set reporter to `reporter`, defaults to "spec". - * - * @param {String|Function} reporter name or constructor - * @param {Object} reporterOptions optional options - * @api public - * @param {string|Function} reporter name or constructor - * @param {Object} reporterOptions optional options - */ -Mocha.prototype.reporter = function (reporter, reporterOptions) { - if (typeof reporter === 'function') { - this._reporter = reporter; - } else { - reporter = reporter || 'spec'; - var _reporter; - // Try to load a built-in reporter. - if (reporters[reporter]) { - _reporter = reporters[reporter]; - } - // Try to load reporters from process.cwd() and node_modules - if (!_reporter) { - try { - _reporter = require(reporter); - } catch (err) { - if (err.message.indexOf('Cannot find module') !== -1) { - // Try to load reporters from a path (absolute or relative) - try { - _reporter = require(path.resolve(process.cwd(), reporter)); - } catch (_err) { - err.message.indexOf('Cannot find module') !== -1 ? console.warn('"' + reporter + '" reporter not found') - : console.warn('"' + reporter + '" reporter blew up with error:\n' + err.stack); - } - } else { - console.warn('"' + reporter + '" reporter blew up with error:\n' + err.stack); - } - } - } - if (!_reporter && reporter === 'teamcity') { - console.warn('The Teamcity reporter was moved to a package named ' + - 'mocha-teamcity-reporter ' + - '(https://npmjs.org/package/mocha-teamcity-reporter).'); - } - if (!_reporter) { - throw new Error('invalid reporter "' + reporter + '"'); - } - this._reporter = _reporter; - } - this.options.reporterOptions = reporterOptions; - return this; -}; - -/** - * Set test UI `name`, defaults to "bdd". - * - * @api public - * @param {string} bdd - */ -Mocha.prototype.ui = function (name) { - name = name || 'bdd'; - this._ui = exports.interfaces[name]; - if (!this._ui) { - try { - this._ui = require(name); - } catch (err) { - throw new Error('invalid interface "' + name + '"'); - } - } - this._ui = this._ui(this.suite); - - this.suite.on('pre-require', function (context) { - exports.afterEach = context.afterEach || context.teardown; - exports.after = context.after || context.suiteTeardown; - exports.beforeEach = context.beforeEach || context.setup; - exports.before = context.before || context.suiteSetup; - exports.describe = context.describe || context.suite; - exports.it = context.it || context.test; - exports.xit = context.xit || context.test.skip; - exports.setup = context.setup || context.beforeEach; - exports.suiteSetup = context.suiteSetup || context.before; - exports.suiteTeardown = context.suiteTeardown || context.after; - exports.suite = context.suite || context.describe; - exports.teardown = context.teardown || context.afterEach; - exports.test = context.test || context.it; - exports.run = context.run; - }); - - return this; -}; - -/** - * Load registered files. - * - * @api private - */ -Mocha.prototype.loadFiles = function (fn) { - var self = this; - var suite = this.suite; - this.files.forEach(function (file) { - file = path.resolve(file); - suite.emit('pre-require', global, file, self); - suite.emit('require', require(file), file, self); - suite.emit('post-require', global, file, self); - }); - fn && fn(); -}; - -/** - * Enable growl support. - * - * @api private - */ -Mocha.prototype._growl = function (runner, reporter) { - var notify = require('growl'); - - runner.on('end', function () { - var stats = reporter.stats; - if (stats.failures) { - var msg = stats.failures + ' of ' + runner.total + ' tests failed'; - notify(msg, { name: 'mocha', title: 'Failed', image: image('error') }); - } else { - notify(stats.passes + ' tests passed in ' + stats.duration + 'ms', { - name: 'mocha', - title: 'Passed', - image: image('ok') - }); - } - }); -}; - -/** - * Escape string and add it to grep as a regexp. - * - * @api public - * @param str - * @returns {Mocha} - */ -Mocha.prototype.fgrep = function (str) { - return this.grep(new RegExp(escapeRe(str))); -}; - -/** - * Add regexp to grep, if `re` is a string it is escaped. - * - * @param {RegExp|String} re - * @return {Mocha} - * @api public - * @param {RegExp|string} re - * @return {Mocha} - */ -Mocha.prototype.grep = function (re) { - if (utils.isString(re)) { - // extract args if it's regex-like, i.e: [string, pattern, flag] - var arg = re.match(/^\/(.*)\/(g|i|)$|.*/); - this.options.grep = new RegExp(arg[1] || arg[0], arg[2]); - } else { - this.options.grep = re; - } - return this; -}; -/** - * Invert `.grep()` matches. - * - * @return {Mocha} - * @api public - */ -Mocha.prototype.invert = function () { - this.options.invert = true; - return this; -}; - -/** - * Ignore global leaks. - * - * @param {Boolean} ignore - * @return {Mocha} - * @api public - * @param {boolean} ignore - * @return {Mocha} - */ -Mocha.prototype.ignoreLeaks = function (ignore) { - this.options.ignoreLeaks = Boolean(ignore); - return this; -}; - -/** - * Enable global leak checking. - * - * @return {Mocha} - * @api public - */ -Mocha.prototype.checkLeaks = function () { - this.options.ignoreLeaks = false; - return this; -}; - -/** - * Display long stack-trace on failing - * - * @return {Mocha} - * @api public - */ -Mocha.prototype.fullTrace = function () { - this.options.fullStackTrace = true; - return this; -}; - -/** - * Enable growl support. - * - * @return {Mocha} - * @api public - */ -Mocha.prototype.growl = function () { - this.options.growl = true; - return this; -}; - -/** - * Ignore `globals` array or string. - * - * @param {Array|String} globals - * @return {Mocha} - * @api public - * @param {Array|string} globals - * @return {Mocha} - */ -Mocha.prototype.globals = function (globals) { - this.options.globals = (this.options.globals || []).concat(globals); - return this; -}; - -/** - * Emit color output. - * - * @param {Boolean} colors - * @return {Mocha} - * @api public - * @param {boolean} colors - * @return {Mocha} - */ -Mocha.prototype.useColors = function (colors) { - if (colors !== undefined) { - this.options.useColors = colors; - } - return this; -}; - -/** - * Use inline diffs rather than +/-. - * - * @param {Boolean} inlineDiffs - * @return {Mocha} - * @api public - * @param {boolean} inlineDiffs - * @return {Mocha} - */ -Mocha.prototype.useInlineDiffs = function (inlineDiffs) { - this.options.useInlineDiffs = inlineDiffs !== undefined && inlineDiffs; - return this; -}; - -/** - * Set the timeout in milliseconds. - * - * @param {Number} timeout - * @return {Mocha} - * @api public - * @param {number} timeout - * @return {Mocha} - */ -Mocha.prototype.timeout = function (timeout) { - this.suite.timeout(timeout); - return this; -}; - -/** - * Set the number of times to retry failed tests. - * - * @param {Number} retry times - * @return {Mocha} - * @api public - */ -Mocha.prototype.retries = function (n) { - this.suite.retries(n); - return this; -}; - -/** - * Set slowness threshold in milliseconds. - * - * @param {Number} slow - * @return {Mocha} - * @api public - * @param {number} slow - * @return {Mocha} - */ -Mocha.prototype.slow = function (slow) { - this.suite.slow(slow); - return this; -}; - -/** - * Enable timeouts. - * - * @param {Boolean} enabled - * @return {Mocha} - * @api public - * @param {boolean} enabled - * @return {Mocha} - */ -Mocha.prototype.enableTimeouts = function (enabled) { - this.suite.enableTimeouts(arguments.length && enabled !== undefined ? enabled : true); - return this; -}; - -/** - * Makes all tests async (accepting a callback) - * - * @return {Mocha} - * @api public - */ -Mocha.prototype.asyncOnly = function () { - this.options.asyncOnly = true; - return this; -}; - -/** - * Disable syntax highlighting (in browser). - * - * @api public - */ -Mocha.prototype.noHighlighting = function () { - this.options.noHighlighting = true; - return this; -}; - -/** - * Enable uncaught errors to propagate (in browser). - * - * @return {Mocha} - * @api public - */ -Mocha.prototype.allowUncaught = function () { - this.options.allowUncaught = true; - return this; -}; - -/** - * Delay root suite execution. - * @returns {Mocha} - */ -Mocha.prototype.delay = function delay () { - this.options.delay = true; - return this; -}; - -/** - * Tests marked only fail the suite - * @returns {Mocha} - */ -Mocha.prototype.forbidOnly = function () { - this.options.forbidOnly = true; - return this; -}; - -/** - * Pending tests and tests marked skip fail the suite - * @returns {Mocha} - */ -Mocha.prototype.forbidPending = function () { - this.options.forbidPending = true; - return this; -}; - -/** - * Run tests and invoke `fn()` when complete. - * - * @api public - * @param {Function} fn - * @return {Runner} - */ -Mocha.prototype.run = function (fn) { - if (this.files.length) { - this.loadFiles(); - } - var suite = this.suite; - var options = this.options; - options.files = this.files; - var runner = new exports.Runner(suite, options.delay); - var reporter = new this._reporter(runner, options); - runner.ignoreLeaks = options.ignoreLeaks !== false; - runner.fullStackTrace = options.fullStackTrace; - runner.hasOnly = options.hasOnly; - runner.asyncOnly = options.asyncOnly; - runner.allowUncaught = options.allowUncaught; - runner.forbidOnly = options.forbidOnly; - runner.forbidPending = options.forbidPending; - if (options.grep) { - runner.grep(options.grep, options.invert); - } - if (options.globals) { - runner.globals(options.globals); - } - if (options.growl) { - this._growl(runner, reporter); - } - if (options.useColors !== undefined) { - exports.reporters.Base.useColors = options.useColors; - } - exports.reporters.Base.inlineDiffs = options.useInlineDiffs; - - function done (failures) { - if (reporter.done) { - reporter.done(failures, fn); - } else { - fn && fn(failures); - } - } - - return runner.run(done); -}; - -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},"/lib") -},{"./context":6,"./hook":7,"./interfaces":11,"./reporters":21,"./runnable":33,"./runner":34,"./suite":35,"./test":36,"./utils":38,"_process":82,"escape-string-regexp":61,"growl":63,"path":42}],15:[function(require,module,exports){ -'use strict'; - -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @api public - * @param {string|number} val - * @param {Object} options - * @return {string|number} - */ -module.exports = function (val, options) { - options = options || {}; - if (typeof val === 'string') { - return parse(val); - } - // https://github.com/mochajs/mocha/pull/1035 - return options['long'] ? longFormat(val) : shortFormat(val); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @api private - * @param {string} str - * @return {number} - */ -function parse (str) { - var match = (/^((?:\d+)?\.?\d+) *(ms|seconds?|s|minutes?|m|hours?|h|days?|d|years?|y)?$/i).exec(str); - if (!match) { - return; - } - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'y': - return n * y; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 's': - return n * s; - case 'ms': - return n; - default: - // No default case - } -} - -/** - * Short format for `ms`. - * - * @api private - * @param {number} ms - * @return {string} - */ -function shortFormat (ms) { - if (ms >= d) { - return Math.round(ms / d) + 'd'; - } - if (ms >= h) { - return Math.round(ms / h) + 'h'; - } - if (ms >= m) { - return Math.round(ms / m) + 'm'; - } - if (ms >= s) { - return Math.round(ms / s) + 's'; - } - return ms + 'ms'; -} - -/** - * Long format for `ms`. - * - * @api private - * @param {number} ms - * @return {string} - */ -function longFormat (ms) { - return plural(ms, d, 'day') || - plural(ms, h, 'hour') || - plural(ms, m, 'minute') || - plural(ms, s, 'second') || - ms + ' ms'; -} - -/** - * Pluralization helper. - * - * @api private - * @param {number} ms - * @param {number} n - * @param {string} name - */ -function plural (ms, n, name) { - if (ms < n) { - return; - } - if (ms < n * 1.5) { - return Math.floor(ms / n) + ' ' + name; - } - return Math.ceil(ms / n) + ' ' + name + 's'; -} - -},{}],16:[function(require,module,exports){ -'use strict'; - -/** - * Expose `Pending`. - */ - -module.exports = Pending; - -/** - * Initialize a new `Pending` error with the given message. - * - * @param {string} message - */ -function Pending (message) { - this.message = message; -} - -},{}],17:[function(require,module,exports){ -(function (process,global){ -'use strict'; - -/** - * Module dependencies. - */ - -var tty = require('tty'); -var diff = require('diff'); -var ms = require('../ms'); -var utils = require('../utils'); -var supportsColor = process.browser ? null : require('supports-color'); - -/** - * Expose `Base`. - */ - -exports = module.exports = Base; - -/** - * Save timer references to avoid Sinon interfering. - * See: https://github.com/mochajs/mocha/issues/237 - */ - -/* eslint-disable no-unused-vars, no-native-reassign */ -var Date = global.Date; -var setTimeout = global.setTimeout; -var setInterval = global.setInterval; -var clearTimeout = global.clearTimeout; -var clearInterval = global.clearInterval; -/* eslint-enable no-unused-vars, no-native-reassign */ - -/** - * Check if both stdio streams are associated with a tty. - */ - -var isatty = tty.isatty(1) && tty.isatty(2); - -/** - * Enable coloring by default, except in the browser interface. - */ - -exports.useColors = !process.browser && (supportsColor || (process.env.MOCHA_COLORS !== undefined)); - -/** - * Inline diffs instead of +/- - */ - -exports.inlineDiffs = false; - -/** - * Default color map. - */ - -exports.colors = { - pass: 90, - fail: 31, - 'bright pass': 92, - 'bright fail': 91, - 'bright yellow': 93, - pending: 36, - suite: 0, - 'error title': 0, - 'error message': 31, - 'error stack': 90, - checkmark: 32, - fast: 90, - medium: 33, - slow: 31, - green: 32, - light: 90, - 'diff gutter': 90, - 'diff added': 32, - 'diff removed': 31 -}; - -/** - * Default symbol map. - */ - -exports.symbols = { - ok: '✓', - err: '✖', - dot: '․', - comma: ',', - bang: '!' -}; - -// With node.js on Windows: use symbols available in terminal default fonts -if (process.platform === 'win32') { - exports.symbols.ok = '\u221A'; - exports.symbols.err = '\u00D7'; - exports.symbols.dot = '.'; -} - -/** - * Color `str` with the given `type`, - * allowing colors to be disabled, - * as well as user-defined color - * schemes. - * - * @param {string} type - * @param {string} str - * @return {string} - * @api private - */ -var color = exports.color = function (type, str) { - if (!exports.useColors) { - return String(str); - } - return '\u001b[' + exports.colors[type] + 'm' + str + '\u001b[0m'; -}; - -/** - * Expose term window size, with some defaults for when stderr is not a tty. - */ - -exports.window = { - width: 75 -}; - -if (isatty) { - exports.window.width = process.stdout.getWindowSize - ? process.stdout.getWindowSize(1)[0] - : tty.getWindowSize()[1]; -} - -/** - * Expose some basic cursor interactions that are common among reporters. - */ - -exports.cursor = { - hide: function () { - isatty && process.stdout.write('\u001b[?25l'); - }, - - show: function () { - isatty && process.stdout.write('\u001b[?25h'); - }, - - deleteLine: function () { - isatty && process.stdout.write('\u001b[2K'); - }, - - beginningOfLine: function () { - isatty && process.stdout.write('\u001b[0G'); - }, - - CR: function () { - if (isatty) { - exports.cursor.deleteLine(); - exports.cursor.beginningOfLine(); - } else { - process.stdout.write('\r'); - } - } -}; - -/** - * Output the given `failures` as a list. - * - * @param {Array} failures - * @api public - */ - -exports.list = function (failures) { - console.log(); - failures.forEach(function (test, i) { - // format - var fmt = color('error title', ' %s) %s:\n') + - color('error message', ' %s') + - color('error stack', '\n%s\n'); - - // msg - var msg; - var err = test.err; - var message; - if (err.message && typeof err.message.toString === 'function') { - message = err.message + ''; - } else if (typeof err.inspect === 'function') { - message = err.inspect() + ''; - } else { - message = ''; - } - var stack = err.stack || message; - var index = message ? stack.indexOf(message) : -1; - var actual = err.actual; - var expected = err.expected; - var escape = true; - - if (index === -1) { - msg = message; - } else { - index += message.length; - msg = stack.slice(0, index); - // remove msg from stack - stack = stack.slice(index + 1); - } - - // uncaught - if (err.uncaught) { - msg = 'Uncaught ' + msg; - } - // explicitly show diff - if (err.showDiff !== false && sameType(actual, expected) && expected !== undefined) { - escape = false; - if (!(utils.isString(actual) && utils.isString(expected))) { - err.actual = actual = utils.stringify(actual); - err.expected = expected = utils.stringify(expected); - } - - fmt = color('error title', ' %s) %s:\n%s') + color('error stack', '\n%s\n'); - var match = message.match(/^([^:]+): expected/); - msg = '\n ' + color('error message', match ? match[1] : msg); - - if (exports.inlineDiffs) { - msg += inlineDiff(err, escape); - } else { - msg += unifiedDiff(err, escape); - } - } - - // indent stack trace - stack = stack.replace(/^/gm, ' '); - - console.log(fmt, (i + 1), test.fullTitle(), msg, stack); - }); -}; - -/** - * Initialize a new `Base` reporter. - * - * All other reporters generally - * inherit from this reporter, providing - * stats such as test duration, number - * of tests passed / failed etc. - * - * @param {Runner} runner - * @api public - */ - -function Base (runner) { - var stats = this.stats = { suites: 0, tests: 0, passes: 0, pending: 0, failures: 0 }; - var failures = this.failures = []; - - if (!runner) { - return; - } - this.runner = runner; - - runner.stats = stats; - - runner.on('start', function () { - stats.start = new Date(); - }); - - runner.on('suite', function (suite) { - stats.suites = stats.suites || 0; - suite.root || stats.suites++; - }); - - runner.on('test end', function () { - stats.tests = stats.tests || 0; - stats.tests++; - }); - - runner.on('pass', function (test) { - stats.passes = stats.passes || 0; - - if (test.duration > test.slow()) { - test.speed = 'slow'; - } else if (test.duration > test.slow() / 2) { - test.speed = 'medium'; - } else { - test.speed = 'fast'; - } - - stats.passes++; - }); - - runner.on('fail', function (test, err) { - stats.failures = stats.failures || 0; - stats.failures++; - test.err = err; - failures.push(test); - }); - - runner.on('end', function () { - stats.end = new Date(); - stats.duration = new Date() - stats.start; - }); - - runner.on('pending', function () { - stats.pending++; - }); -} - -/** - * Output common epilogue used by many of - * the bundled reporters. - * - * @api public - */ -Base.prototype.epilogue = function () { - var stats = this.stats; - var fmt; - - console.log(); - - // passes - fmt = color('bright pass', ' ') + - color('green', ' %d passing') + - color('light', ' (%s)'); - - console.log(fmt, - stats.passes || 0, - ms(stats.duration)); - - // pending - if (stats.pending) { - fmt = color('pending', ' ') + - color('pending', ' %d pending'); - - console.log(fmt, stats.pending); - } - - // failures - if (stats.failures) { - fmt = color('fail', ' %d failing'); - - console.log(fmt, stats.failures); - - Base.list(this.failures); - console.log(); - } - - console.log(); -}; - -/** - * Pad the given `str` to `len`. - * - * @api private - * @param {string} str - * @param {string} len - * @return {string} - */ -function pad (str, len) { - str = String(str); - return Array(len - str.length + 1).join(' ') + str; -} - -/** - * Returns an inline diff between 2 strings with coloured ANSI output - * - * @api private - * @param {Error} err with actual/expected - * @param {boolean} escape - * @return {string} Diff - */ -function inlineDiff (err, escape) { - var msg = errorDiff(err, 'WordsWithSpace', escape); - - // linenos - var lines = msg.split('\n'); - if (lines.length > 4) { - var width = String(lines.length).length; - msg = lines.map(function (str, i) { - return pad(++i, width) + ' |' + ' ' + str; - }).join('\n'); - } - - // legend - msg = '\n' + - color('diff removed', 'actual') + - ' ' + - color('diff added', 'expected') + - '\n\n' + - msg + - '\n'; - - // indent - msg = msg.replace(/^/gm, ' '); - return msg; -} - -/** - * Returns a unified diff between two strings. - * - * @api private - * @param {Error} err with actual/expected - * @param {boolean} escape - * @return {string} The diff. - */ -function unifiedDiff (err, escape) { - var indent = ' '; - function cleanUp (line) { - if (escape) { - line = escapeInvisibles(line); - } - if (line[0] === '+') { - return indent + colorLines('diff added', line); - } - if (line[0] === '-') { - return indent + colorLines('diff removed', line); - } - if (line.match(/@@/)) { - return null; - } - if (line.match(/\\ No newline/)) { - return null; - } - return indent + line; - } - function notBlank (line) { - return typeof line !== 'undefined' && line !== null; - } - var msg = diff.createPatch('string', err.actual, err.expected); - var lines = msg.split('\n').splice(4); - return '\n ' + - colorLines('diff added', '+ expected') + ' ' + - colorLines('diff removed', '- actual') + - '\n\n' + - lines.map(cleanUp).filter(notBlank).join('\n'); -} - -/** - * Return a character diff for `err`. - * - * @api private - * @param {Error} err - * @param {string} type - * @param {boolean} escape - * @return {string} - */ -function errorDiff (err, type, escape) { - var actual = escape ? escapeInvisibles(err.actual) : err.actual; - var expected = escape ? escapeInvisibles(err.expected) : err.expected; - return diff['diff' + type](actual, expected).map(function (str) { - if (str.added) { - return colorLines('diff added', str.value); - } - if (str.removed) { - return colorLines('diff removed', str.value); - } - return str.value; - }).join(''); -} - -/** - * Returns a string with all invisible characters in plain text - * - * @api private - * @param {string} line - * @return {string} - */ -function escapeInvisibles (line) { - return line.replace(/\t/g, '') - .replace(/\r/g, '') - .replace(/\n/g, '\n'); -} - -/** - * Color lines for `str`, using the color `name`. - * - * @api private - * @param {string} name - * @param {string} str - * @return {string} - */ -function colorLines (name, str) { - return str.split('\n').map(function (str) { - return color(name, str); - }).join('\n'); -} - -/** - * Object#toString reference. - */ -var objToString = Object.prototype.toString; - -/** - * Check that a / b have the same type. - * - * @api private - * @param {Object} a - * @param {Object} b - * @return {boolean} - */ -function sameType (a, b) { - return objToString.call(a) === objToString.call(b); -} - -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../ms":15,"../utils":38,"_process":82,"diff":55,"supports-color":42,"tty":5}],18:[function(require,module,exports){ -'use strict'; - -/** - * Module dependencies. - */ - -var Base = require('./base'); -var utils = require('../utils'); - -/** - * Expose `Doc`. - */ - -exports = module.exports = Doc; - -/** - * Initialize a new `Doc` reporter. - * - * @param {Runner} runner - * @api public - */ -function Doc (runner) { - Base.call(this, runner); - - var indents = 2; - - function indent () { - return Array(indents).join(' '); - } - - runner.on('suite', function (suite) { - if (suite.root) { - return; - } - ++indents; - console.log('%s
    ', indent()); - ++indents; - console.log('%s

    %s

    ', indent(), utils.escape(suite.title)); - console.log('%s
    ', indent()); - }); - - runner.on('suite end', function (suite) { - if (suite.root) { - return; - } - console.log('%s
    ', indent()); - --indents; - console.log('%s
    ', indent()); - --indents; - }); - - runner.on('pass', function (test) { - console.log('%s
    %s
    ', indent(), utils.escape(test.title)); - var code = utils.escape(utils.clean(test.body)); - console.log('%s
    %s
    ', indent(), code); - }); - - runner.on('fail', function (test, err) { - console.log('%s
    %s
    ', indent(), utils.escape(test.title)); - var code = utils.escape(utils.clean(test.body)); - console.log('%s
    %s
    ', indent(), code); - console.log('%s
    %s
    ', indent(), utils.escape(err)); - }); -} - -},{"../utils":38,"./base":17}],19:[function(require,module,exports){ -(function (process){ -'use strict'; - -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var color = Base.color; - -/** - * Expose `Dot`. - */ - -exports = module.exports = Dot; - -/** - * Initialize a new `Dot` matrix test reporter. - * - * @api public - * @param {Runner} runner - */ -function Dot (runner) { - Base.call(this, runner); - - var self = this; - var width = Base.window.width * 0.75 | 0; - var n = -1; - - runner.on('start', function () { - process.stdout.write('\n'); - }); - - runner.on('pending', function () { - if (++n % width === 0) { - process.stdout.write('\n '); - } - process.stdout.write(color('pending', Base.symbols.comma)); - }); - - runner.on('pass', function (test) { - if (++n % width === 0) { - process.stdout.write('\n '); - } - if (test.speed === 'slow') { - process.stdout.write(color('bright yellow', Base.symbols.dot)); - } else { - process.stdout.write(color(test.speed, Base.symbols.dot)); - } - }); - - runner.on('fail', function () { - if (++n % width === 0) { - process.stdout.write('\n '); - } - process.stdout.write(color('fail', Base.symbols.bang)); - }); - - runner.on('end', function () { - console.log(); - self.epilogue(); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Dot, Base); - -}).call(this,require('_process')) -},{"../utils":38,"./base":17,"_process":82}],20:[function(require,module,exports){ -(function (global){ -'use strict'; - -/* eslint-env browser */ - -/** - * Module dependencies. - */ - -var Base = require('./base'); -var utils = require('../utils'); -var Progress = require('../browser/progress'); -var escapeRe = require('escape-string-regexp'); -var escape = utils.escape; - -/** - * Save timer references to avoid Sinon interfering (see GH-237). - */ - -/* eslint-disable no-unused-vars, no-native-reassign */ -var Date = global.Date; -var setTimeout = global.setTimeout; -var setInterval = global.setInterval; -var clearTimeout = global.clearTimeout; -var clearInterval = global.clearInterval; -/* eslint-enable no-unused-vars, no-native-reassign */ - -/** - * Expose `HTML`. - */ - -exports = module.exports = HTML; - -/** - * Stats template. - */ - -var statsTemplate = ''; - -var playIcon = '‣'; - -/** - * Initialize a new `HTML` reporter. - * - * @api public - * @param {Runner} runner - */ -function HTML (runner) { - Base.call(this, runner); - - var self = this; - var stats = this.stats; - var stat = fragment(statsTemplate); - var items = stat.getElementsByTagName('li'); - var passes = items[1].getElementsByTagName('em')[0]; - var passesLink = items[1].getElementsByTagName('a')[0]; - var failures = items[2].getElementsByTagName('em')[0]; - var failuresLink = items[2].getElementsByTagName('a')[0]; - var duration = items[3].getElementsByTagName('em')[0]; - var canvas = stat.getElementsByTagName('canvas')[0]; - var report = fragment('
      '); - var stack = [report]; - var progress; - var ctx; - var root = document.getElementById('mocha'); - - if (canvas.getContext) { - var ratio = window.devicePixelRatio || 1; - canvas.style.width = canvas.width; - canvas.style.height = canvas.height; - canvas.width *= ratio; - canvas.height *= ratio; - ctx = canvas.getContext('2d'); - ctx.scale(ratio, ratio); - progress = new Progress(); - } - - if (!root) { - return error('#mocha div missing, add it to your document'); - } - - // pass toggle - on(passesLink, 'click', function (evt) { - evt.preventDefault(); - unhide(); - var name = (/pass/).test(report.className) ? '' : ' pass'; - report.className = report.className.replace(/fail|pass/g, '') + name; - if (report.className.trim()) { - hideSuitesWithout('test pass'); - } - }); - - // failure toggle - on(failuresLink, 'click', function (evt) { - evt.preventDefault(); - unhide(); - var name = (/fail/).test(report.className) ? '' : ' fail'; - report.className = report.className.replace(/fail|pass/g, '') + name; - if (report.className.trim()) { - hideSuitesWithout('test fail'); - } - }); - - root.appendChild(stat); - root.appendChild(report); - - if (progress) { - progress.size(40); - } - - runner.on('suite', function (suite) { - if (suite.root) { - return; - } - - // suite - var url = self.suiteURL(suite); - var el = fragment('
    • %s

    • ', url, escape(suite.title)); - - // container - stack[0].appendChild(el); - stack.unshift(document.createElement('ul')); - el.appendChild(stack[0]); - }); - - runner.on('suite end', function (suite) { - if (suite.root) { - updateStats(); - return; - } - stack.shift(); - }); - - runner.on('pass', function (test) { - var url = self.testURL(test); - var markup = '
    • %e%ems ' + - '' + playIcon + '

    • '; - var el = fragment(markup, test.speed, test.title, test.duration, url); - self.addCodeToggle(el, test.body); - appendToStack(el); - updateStats(); - }); - - runner.on('fail', function (test) { - var el = fragment('
    • %e ' + playIcon + '

    • ', - test.title, self.testURL(test)); - var stackString; // Note: Includes leading newline - var message = test.err.toString(); - - // <=IE7 stringifies to [Object Error]. Since it can be overloaded, we - // check for the result of the stringifying. - if (message === '[object Error]') { - message = test.err.message; - } - - if (test.err.stack) { - var indexOfMessage = test.err.stack.indexOf(test.err.message); - if (indexOfMessage === -1) { - stackString = test.err.stack; - } else { - stackString = test.err.stack.substr(test.err.message.length + indexOfMessage); - } - } else if (test.err.sourceURL && test.err.line !== undefined) { - // Safari doesn't give you a stack. Let's at least provide a source line. - stackString = '\n(' + test.err.sourceURL + ':' + test.err.line + ')'; - } - - stackString = stackString || ''; - - if (test.err.htmlMessage && stackString) { - el.appendChild(fragment('
      %s\n
      %e
      ', - test.err.htmlMessage, stackString)); - } else if (test.err.htmlMessage) { - el.appendChild(fragment('
      %s
      ', test.err.htmlMessage)); - } else { - el.appendChild(fragment('
      %e%e
      ', message, stackString)); - } - - self.addCodeToggle(el, test.body); - appendToStack(el); - updateStats(); - }); - - runner.on('pending', function (test) { - var el = fragment('
    • %e

    • ', test.title); - appendToStack(el); - updateStats(); - }); - - function appendToStack (el) { - // Don't call .appendChild if #mocha-report was already .shift()'ed off the stack. - if (stack[0]) { - stack[0].appendChild(el); - } - } - - function updateStats () { - // TODO: add to stats - var percent = stats.tests / runner.total * 100 | 0; - if (progress) { - progress.update(percent).draw(ctx); - } - - // update stats - var ms = new Date() - stats.start; - text(passes, stats.passes); - text(failures, stats.failures); - text(duration, (ms / 1000).toFixed(2)); - } -} - -/** - * Makes a URL, preserving querystring ("search") parameters. - * - * @param {string} s - * @return {string} A new URL. - */ -function makeUrl (s) { - var search = window.location.search; - - // Remove previous grep query parameter if present - if (search) { - search = search.replace(/[?&]grep=[^&\s]*/g, '').replace(/^&/, '?'); - } - - return window.location.pathname + (search ? search + '&' : '?') + 'grep=' + encodeURIComponent(escapeRe(s)); -} - -/** - * Provide suite URL. - * - * @param {Object} [suite] - */ -HTML.prototype.suiteURL = function (suite) { - return makeUrl(suite.fullTitle()); -}; - -/** - * Provide test URL. - * - * @param {Object} [test] - */ -HTML.prototype.testURL = function (test) { - return makeUrl(test.fullTitle()); -}; - -/** - * Adds code toggle functionality for the provided test's list element. - * - * @param {HTMLLIElement} el - * @param {string} contents - */ -HTML.prototype.addCodeToggle = function (el, contents) { - var h2 = el.getElementsByTagName('h2')[0]; - - on(h2, 'click', function () { - pre.style.display = pre.style.display === 'none' ? 'block' : 'none'; - }); - - var pre = fragment('
      %e
      ', utils.clean(contents)); - el.appendChild(pre); - pre.style.display = 'none'; -}; - -/** - * Display error `msg`. - * - * @param {string} msg - */ -function error (msg) { - document.body.appendChild(fragment('
      %s
      ', msg)); -} - -/** - * Return a DOM fragment from `html`. - * - * @param {string} html - */ -function fragment (html) { - var args = arguments; - var div = document.createElement('div'); - var i = 1; - - div.innerHTML = html.replace(/%([se])/g, function (_, type) { - switch (type) { - case 's': return String(args[i++]); - case 'e': return escape(args[i++]); - // no default - } - }); - - return div.firstChild; -} - -/** - * Check for suites that do not have elements - * with `classname`, and hide them. - * - * @param {text} classname - */ -function hideSuitesWithout (classname) { - var suites = document.getElementsByClassName('suite'); - for (var i = 0; i < suites.length; i++) { - var els = suites[i].getElementsByClassName(classname); - if (!els.length) { - suites[i].className += ' hidden'; - } - } -} - -/** - * Unhide .hidden suites. - */ -function unhide () { - var els = document.getElementsByClassName('suite hidden'); - for (var i = 0; i < els.length; ++i) { - els[i].className = els[i].className.replace('suite hidden', 'suite'); - } -} - -/** - * Set an element's text contents. - * - * @param {HTMLElement} el - * @param {string} contents - */ -function text (el, contents) { - if (el.textContent) { - el.textContent = contents; - } else { - el.innerText = contents; - } -} - -/** - * Listen on `event` with callback `fn`. - */ -function on (el, event, fn) { - if (el.addEventListener) { - el.addEventListener(event, fn, false); - } else { - el.attachEvent('on' + event, fn); - } -} - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../browser/progress":4,"../utils":38,"./base":17,"escape-string-regexp":61}],21:[function(require,module,exports){ -'use strict'; - -// Alias exports to a their normalized format Mocha#reporter to prevent a need -// for dynamic (try/catch) requires, which Browserify doesn't handle. -exports.Base = exports.base = require('./base'); -exports.Dot = exports.dot = require('./dot'); -exports.Doc = exports.doc = require('./doc'); -exports.TAP = exports.tap = require('./tap'); -exports.JSON = exports.json = require('./json'); -exports.HTML = exports.html = require('./html'); -exports.List = exports.list = require('./list'); -exports.Min = exports.min = require('./min'); -exports.Spec = exports.spec = require('./spec'); -exports.Nyan = exports.nyan = require('./nyan'); -exports.XUnit = exports.xunit = require('./xunit'); -exports.Markdown = exports.markdown = require('./markdown'); -exports.Progress = exports.progress = require('./progress'); -exports.Landing = exports.landing = require('./landing'); -exports.JSONStream = exports['json-stream'] = require('./json-stream'); - -},{"./base":17,"./doc":18,"./dot":19,"./html":20,"./json":23,"./json-stream":22,"./landing":24,"./list":25,"./markdown":26,"./min":27,"./nyan":28,"./progress":29,"./spec":30,"./tap":31,"./xunit":32}],22:[function(require,module,exports){ -(function (process){ -'use strict'; - -/** - * Module dependencies. - */ - -var Base = require('./base'); -var JSON = require('json3'); - -/** - * Expose `List`. - */ - -exports = module.exports = List; - -/** - * Initialize a new `List` test reporter. - * - * @api public - * @param {Runner} runner - */ -function List (runner) { - Base.call(this, runner); - - var self = this; - var total = runner.total; - - runner.on('start', function () { - console.log(JSON.stringify(['start', { total: total }])); - }); - - runner.on('pass', function (test) { - console.log(JSON.stringify(['pass', clean(test)])); - }); - - runner.on('fail', function (test, err) { - test = clean(test); - test.err = err.message; - test.stack = err.stack || null; - console.log(JSON.stringify(['fail', test])); - }); - - runner.on('end', function () { - process.stdout.write(JSON.stringify(['end', self.stats])); - }); -} - -/** - * Return a plain-object representation of `test` - * free of cyclic properties etc. - * - * @api private - * @param {Object} test - * @return {Object} - */ -function clean (test) { - return { - title: test.title, - fullTitle: test.fullTitle(), - duration: test.duration, - currentRetry: test.currentRetry() - }; -} - -}).call(this,require('_process')) -},{"./base":17,"_process":82,"json3":69}],23:[function(require,module,exports){ -(function (process){ -'use strict'; - -/** - * Module dependencies. - */ - -var Base = require('./base'); - -/** - * Expose `JSON`. - */ - -exports = module.exports = JSONReporter; - -/** - * Initialize a new `JSON` reporter. - * - * @api public - * @param {Runner} runner - */ -function JSONReporter (runner) { - Base.call(this, runner); - - var self = this; - var tests = []; - var pending = []; - var failures = []; - var passes = []; - - runner.on('test end', function (test) { - tests.push(test); - }); - - runner.on('pass', function (test) { - passes.push(test); - }); - - runner.on('fail', function (test) { - failures.push(test); - }); - - runner.on('pending', function (test) { - pending.push(test); - }); - - runner.on('end', function () { - var obj = { - stats: self.stats, - tests: tests.map(clean), - pending: pending.map(clean), - failures: failures.map(clean), - passes: passes.map(clean) - }; - - runner.testResults = obj; - - process.stdout.write(JSON.stringify(obj, null, 2)); - }); -} - -/** - * Return a plain-object representation of `test` - * free of cyclic properties etc. - * - * @api private - * @param {Object} test - * @return {Object} - */ -function clean (test) { - return { - title: test.title, - fullTitle: test.fullTitle(), - duration: test.duration, - currentRetry: test.currentRetry(), - err: errorJSON(test.err || {}) - }; -} - -/** - * Transform `error` into a JSON object. - * - * @api private - * @param {Error} err - * @return {Object} - */ -function errorJSON (err) { - var res = {}; - Object.getOwnPropertyNames(err).forEach(function (key) { - res[key] = err[key]; - }, err); - return res; -} - -}).call(this,require('_process')) -},{"./base":17,"_process":82}],24:[function(require,module,exports){ -(function (process){ -'use strict'; - -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var cursor = Base.cursor; -var color = Base.color; - -/** - * Expose `Landing`. - */ - -exports = module.exports = Landing; - -/** - * Airplane color. - */ - -Base.colors.plane = 0; - -/** - * Airplane crash color. - */ - -Base.colors['plane crash'] = 31; - -/** - * Runway color. - */ - -Base.colors.runway = 90; - -/** - * Initialize a new `Landing` reporter. - * - * @api public - * @param {Runner} runner - */ -function Landing (runner) { - Base.call(this, runner); - - var self = this; - var width = Base.window.width * 0.75 | 0; - var total = runner.total; - var stream = process.stdout; - var plane = color('plane', '✈'); - var crashed = -1; - var n = 0; - - function runway () { - var buf = Array(width).join('-'); - return ' ' + color('runway', buf); - } - - runner.on('start', function () { - stream.write('\n\n\n '); - cursor.hide(); - }); - - runner.on('test end', function (test) { - // check if the plane crashed - var col = crashed === -1 ? width * ++n / total | 0 : crashed; - - // show the crash - if (test.state === 'failed') { - plane = color('plane crash', '✈'); - crashed = col; - } - - // render landing strip - stream.write('\u001b[' + (width + 1) + 'D\u001b[2A'); - stream.write(runway()); - stream.write('\n '); - stream.write(color('runway', Array(col).join('⋅'))); - stream.write(plane); - stream.write(color('runway', Array(width - col).join('⋅') + '\n')); - stream.write(runway()); - stream.write('\u001b[0m'); - }); - - runner.on('end', function () { - cursor.show(); - console.log(); - self.epilogue(); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Landing, Base); - -}).call(this,require('_process')) -},{"../utils":38,"./base":17,"_process":82}],25:[function(require,module,exports){ -(function (process){ -'use strict'; - -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var color = Base.color; -var cursor = Base.cursor; - -/** - * Expose `List`. - */ - -exports = module.exports = List; - -/** - * Initialize a new `List` test reporter. - * - * @api public - * @param {Runner} runner - */ -function List (runner) { - Base.call(this, runner); - - var self = this; - var n = 0; - - runner.on('start', function () { - console.log(); - }); - - runner.on('test', function (test) { - process.stdout.write(color('pass', ' ' + test.fullTitle() + ': ')); - }); - - runner.on('pending', function (test) { - var fmt = color('checkmark', ' -') + - color('pending', ' %s'); - console.log(fmt, test.fullTitle()); - }); - - runner.on('pass', function (test) { - var fmt = color('checkmark', ' ' + Base.symbols.ok) + - color('pass', ' %s: ') + - color(test.speed, '%dms'); - cursor.CR(); - console.log(fmt, test.fullTitle(), test.duration); - }); - - runner.on('fail', function (test) { - cursor.CR(); - console.log(color('fail', ' %d) %s'), ++n, test.fullTitle()); - }); - - runner.on('end', self.epilogue.bind(self)); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(List, Base); - -}).call(this,require('_process')) -},{"../utils":38,"./base":17,"_process":82}],26:[function(require,module,exports){ -(function (process){ -'use strict'; - -/** - * Module dependencies. - */ - -var Base = require('./base'); -var utils = require('../utils'); - -/** - * Constants - */ - -var SUITE_PREFIX = '$'; - -/** - * Expose `Markdown`. - */ - -exports = module.exports = Markdown; - -/** - * Initialize a new `Markdown` reporter. - * - * @api public - * @param {Runner} runner - */ -function Markdown (runner) { - Base.call(this, runner); - - var level = 0; - var buf = ''; - - function title (str) { - return Array(level).join('#') + ' ' + str; - } - - function mapTOC (suite, obj) { - var ret = obj; - var key = SUITE_PREFIX + suite.title; - - obj = obj[key] = obj[key] || { suite: suite }; - suite.suites.forEach(function (suite) { - mapTOC(suite, obj); - }); - - return ret; - } - - function stringifyTOC (obj, level) { - ++level; - var buf = ''; - var link; - for (var key in obj) { - if (key === 'suite') { - continue; - } - if (key !== SUITE_PREFIX) { - link = ' - [' + key.substring(1) + ']'; - link += '(#' + utils.slug(obj[key].suite.fullTitle()) + ')\n'; - buf += Array(level).join(' ') + link; - } - buf += stringifyTOC(obj[key], level); - } - return buf; - } - - function generateTOC (suite) { - var obj = mapTOC(suite, {}); - return stringifyTOC(obj, 0); - } - - generateTOC(runner.suite); - - runner.on('suite', function (suite) { - ++level; - var slug = utils.slug(suite.fullTitle()); - buf += '' + '\n'; - buf += title(suite.title) + '\n'; - }); - - runner.on('suite end', function () { - --level; - }); - - runner.on('pass', function (test) { - var code = utils.clean(test.body); - buf += test.title + '.\n'; - buf += '\n```js\n'; - buf += code + '\n'; - buf += '```\n\n'; - }); - - runner.on('end', function () { - process.stdout.write('# TOC\n'); - process.stdout.write(generateTOC(runner.suite)); - process.stdout.write(buf); - }); -} - -}).call(this,require('_process')) -},{"../utils":38,"./base":17,"_process":82}],27:[function(require,module,exports){ -(function (process){ -'use strict'; - -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; - -/** - * Expose `Min`. - */ - -exports = module.exports = Min; - -/** - * Initialize a new `Min` minimal test reporter (best used with --watch). - * - * @api public - * @param {Runner} runner - */ -function Min (runner) { - Base.call(this, runner); - - runner.on('start', function () { - // clear screen - process.stdout.write('\u001b[2J'); - // set cursor position - process.stdout.write('\u001b[1;3H'); - }); - - runner.on('end', this.epilogue.bind(this)); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Min, Base); - -}).call(this,require('_process')) -},{"../utils":38,"./base":17,"_process":82}],28:[function(require,module,exports){ -(function (process){ -'use strict'; - -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; - -/** - * Expose `Dot`. - */ - -exports = module.exports = NyanCat; - -/** - * Initialize a new `Dot` matrix test reporter. - * - * @param {Runner} runner - * @api public - */ - -function NyanCat (runner) { - Base.call(this, runner); - - var self = this; - var width = Base.window.width * 0.75 | 0; - var nyanCatWidth = this.nyanCatWidth = 11; - - this.colorIndex = 0; - this.numberOfLines = 4; - this.rainbowColors = self.generateColors(); - this.scoreboardWidth = 5; - this.tick = 0; - this.trajectories = [[], [], [], []]; - this.trajectoryWidthMax = (width - nyanCatWidth); - - runner.on('start', function () { - Base.cursor.hide(); - self.draw(); - }); - - runner.on('pending', function () { - self.draw(); - }); - - runner.on('pass', function () { - self.draw(); - }); - - runner.on('fail', function () { - self.draw(); - }); - - runner.on('end', function () { - Base.cursor.show(); - for (var i = 0; i < self.numberOfLines; i++) { - write('\n'); - } - self.epilogue(); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(NyanCat, Base); - -/** - * Draw the nyan cat - * - * @api private - */ - -NyanCat.prototype.draw = function () { - this.appendRainbow(); - this.drawScoreboard(); - this.drawRainbow(); - this.drawNyanCat(); - this.tick = !this.tick; -}; - -/** - * Draw the "scoreboard" showing the number - * of passes, failures and pending tests. - * - * @api private - */ - -NyanCat.prototype.drawScoreboard = function () { - var stats = this.stats; - - function draw (type, n) { - write(' '); - write(Base.color(type, n)); - write('\n'); - } - - draw('green', stats.passes); - draw('fail', stats.failures); - draw('pending', stats.pending); - write('\n'); - - this.cursorUp(this.numberOfLines); -}; - -/** - * Append the rainbow. - * - * @api private - */ - -NyanCat.prototype.appendRainbow = function () { - var segment = this.tick ? '_' : '-'; - var rainbowified = this.rainbowify(segment); - - for (var index = 0; index < this.numberOfLines; index++) { - var trajectory = this.trajectories[index]; - if (trajectory.length >= this.trajectoryWidthMax) { - trajectory.shift(); - } - trajectory.push(rainbowified); - } -}; - -/** - * Draw the rainbow. - * - * @api private - */ - -NyanCat.prototype.drawRainbow = function () { - var self = this; - - this.trajectories.forEach(function (line) { - write('\u001b[' + self.scoreboardWidth + 'C'); - write(line.join('')); - write('\n'); - }); - - this.cursorUp(this.numberOfLines); -}; - -/** - * Draw the nyan cat - * - * @api private - */ -NyanCat.prototype.drawNyanCat = function () { - var self = this; - var startWidth = this.scoreboardWidth + this.trajectories[0].length; - var dist = '\u001b[' + startWidth + 'C'; - var padding = ''; - - write(dist); - write('_,------,'); - write('\n'); - - write(dist); - padding = self.tick ? ' ' : ' '; - write('_|' + padding + '/\\_/\\ '); - write('\n'); - - write(dist); - padding = self.tick ? '_' : '__'; - var tail = self.tick ? '~' : '^'; - write(tail + '|' + padding + this.face() + ' '); - write('\n'); - - write(dist); - padding = self.tick ? ' ' : ' '; - write(padding + '"" "" '); - write('\n'); - - this.cursorUp(this.numberOfLines); -}; - -/** - * Draw nyan cat face. - * - * @api private - * @return {string} - */ - -NyanCat.prototype.face = function () { - var stats = this.stats; - if (stats.failures) { - return '( x .x)'; - } else if (stats.pending) { - return '( o .o)'; - } else if (stats.passes) { - return '( ^ .^)'; - } - return '( - .-)'; -}; - -/** - * Move cursor up `n`. - * - * @api private - * @param {number} n - */ - -NyanCat.prototype.cursorUp = function (n) { - write('\u001b[' + n + 'A'); -}; - -/** - * Move cursor down `n`. - * - * @api private - * @param {number} n - */ - -NyanCat.prototype.cursorDown = function (n) { - write('\u001b[' + n + 'B'); -}; - -/** - * Generate rainbow colors. - * - * @api private - * @return {Array} - */ -NyanCat.prototype.generateColors = function () { - var colors = []; - - for (var i = 0; i < (6 * 7); i++) { - var pi3 = Math.floor(Math.PI / 3); - var n = (i * (1.0 / 6)); - var r = Math.floor(3 * Math.sin(n) + 3); - var g = Math.floor(3 * Math.sin(n + 2 * pi3) + 3); - var b = Math.floor(3 * Math.sin(n + 4 * pi3) + 3); - colors.push(36 * r + 6 * g + b + 16); - } - - return colors; -}; - -/** - * Apply rainbow to the given `str`. - * - * @api private - * @param {string} str - * @return {string} - */ -NyanCat.prototype.rainbowify = function (str) { - if (!Base.useColors) { - return str; - } - var color = this.rainbowColors[this.colorIndex % this.rainbowColors.length]; - this.colorIndex += 1; - return '\u001b[38;5;' + color + 'm' + str + '\u001b[0m'; -}; - -/** - * Stdout helper. - * - * @param {string} string A message to write to stdout. - */ -function write (string) { - process.stdout.write(string); -} - -}).call(this,require('_process')) -},{"../utils":38,"./base":17,"_process":82}],29:[function(require,module,exports){ -(function (process){ -'use strict'; - -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var color = Base.color; -var cursor = Base.cursor; - -/** - * Expose `Progress`. - */ - -exports = module.exports = Progress; - -/** - * General progress bar color. - */ - -Base.colors.progress = 90; - -/** - * Initialize a new `Progress` bar test reporter. - * - * @api public - * @param {Runner} runner - * @param {Object} options - */ -function Progress (runner, options) { - Base.call(this, runner); - - var self = this; - var width = Base.window.width * 0.50 | 0; - var total = runner.total; - var complete = 0; - var lastN = -1; - - // default chars - options = options || {}; - options.open = options.open || '['; - options.complete = options.complete || '▬'; - options.incomplete = options.incomplete || Base.symbols.dot; - options.close = options.close || ']'; - options.verbose = false; - - // tests started - runner.on('start', function () { - console.log(); - cursor.hide(); - }); - - // tests complete - runner.on('test end', function () { - complete++; - - var percent = complete / total; - var n = width * percent | 0; - var i = width - n; - - if (n === lastN && !options.verbose) { - // Don't re-render the line if it hasn't changed - return; - } - lastN = n; - - cursor.CR(); - process.stdout.write('\u001b[J'); - process.stdout.write(color('progress', ' ' + options.open)); - process.stdout.write(Array(n).join(options.complete)); - process.stdout.write(Array(i).join(options.incomplete)); - process.stdout.write(color('progress', options.close)); - if (options.verbose) { - process.stdout.write(color('progress', ' ' + complete + ' of ' + total)); - } - }); - - // tests are complete, output some stats - // and the failures if any - runner.on('end', function () { - cursor.show(); - console.log(); - self.epilogue(); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Progress, Base); - -}).call(this,require('_process')) -},{"../utils":38,"./base":17,"_process":82}],30:[function(require,module,exports){ -'use strict'; - -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var color = Base.color; - -/** - * Expose `Spec`. - */ - -exports = module.exports = Spec; - -/** - * Initialize a new `Spec` test reporter. - * - * @api public - * @param {Runner} runner - */ -function Spec (runner) { - Base.call(this, runner); - - var self = this; - var indents = 0; - var n = 0; - - function indent () { - return Array(indents).join(' '); - } - - runner.on('start', function () { - console.log(); - }); - - runner.on('suite', function (suite) { - ++indents; - console.log(color('suite', '%s%s'), indent(), suite.title); - }); - - runner.on('suite end', function () { - --indents; - if (indents === 1) { - console.log(); - } - }); - - runner.on('pending', function (test) { - var fmt = indent() + color('pending', ' - %s'); - console.log(fmt, test.title); - }); - - runner.on('pass', function (test) { - var fmt; - if (test.speed === 'fast') { - fmt = indent() + - color('checkmark', ' ' + Base.symbols.ok) + - color('pass', ' %s'); - console.log(fmt, test.title); - } else { - fmt = indent() + - color('checkmark', ' ' + Base.symbols.ok) + - color('pass', ' %s') + - color(test.speed, ' (%dms)'); - console.log(fmt, test.title, test.duration); - } - }); - - runner.on('fail', function (test) { - console.log(indent() + color('fail', ' %d) %s'), ++n, test.title); - }); - - runner.on('end', self.epilogue.bind(self)); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Spec, Base); - -},{"../utils":38,"./base":17}],31:[function(require,module,exports){ -'use strict'; - -/** - * Module dependencies. - */ - -var Base = require('./base'); - -/** - * Expose `TAP`. - */ - -exports = module.exports = TAP; - -/** - * Initialize a new `TAP` reporter. - * - * @api public - * @param {Runner} runner - */ -function TAP (runner) { - Base.call(this, runner); - - var n = 1; - var passes = 0; - var failures = 0; - - runner.on('start', function () { - var total = runner.grepTotal(runner.suite); - console.log('%d..%d', 1, total); - }); - - runner.on('test end', function () { - ++n; - }); - - runner.on('pending', function (test) { - console.log('ok %d %s # SKIP -', n, title(test)); - }); - - runner.on('pass', function (test) { - passes++; - console.log('ok %d %s', n, title(test)); - }); - - runner.on('fail', function (test, err) { - failures++; - console.log('not ok %d %s', n, title(test)); - if (err.stack) { - console.log(err.stack.replace(/^/gm, ' ')); - } - }); - - runner.on('end', function () { - console.log('# tests ' + (passes + failures)); - console.log('# pass ' + passes); - console.log('# fail ' + failures); - }); -} - -/** - * Return a TAP-safe title of `test` - * - * @api private - * @param {Object} test - * @return {String} - */ -function title (test) { - return test.fullTitle().replace(/#/g, ''); -} - -},{"./base":17}],32:[function(require,module,exports){ -(function (process,global){ -'use strict'; - -/** - * Module dependencies. - */ - -var Base = require('./base'); -var utils = require('../utils'); -var inherits = utils.inherits; -var fs = require('fs'); -var escape = utils.escape; -var mkdirp = require('mkdirp'); -var path = require('path'); - -/** - * Save timer references to avoid Sinon interfering (see GH-237). - */ - -/* eslint-disable no-unused-vars, no-native-reassign */ -var Date = global.Date; -var setTimeout = global.setTimeout; -var setInterval = global.setInterval; -var clearTimeout = global.clearTimeout; -var clearInterval = global.clearInterval; -/* eslint-enable no-unused-vars, no-native-reassign */ - -/** - * Expose `XUnit`. - */ - -exports = module.exports = XUnit; - -/** - * Initialize a new `XUnit` reporter. - * - * @api public - * @param {Runner} runner - */ -function XUnit (runner, options) { - Base.call(this, runner); - - var stats = this.stats; - var tests = []; - var self = this; - - if (options && options.reporterOptions && options.reporterOptions.output) { - if (!fs.createWriteStream) { - throw new Error('file output not supported in browser'); - } - mkdirp.sync(path.dirname(options.reporterOptions.output)); - self.fileStream = fs.createWriteStream(options.reporterOptions.output); - } - - runner.on('pending', function (test) { - tests.push(test); - }); - - runner.on('pass', function (test) { - tests.push(test); - }); - - runner.on('fail', function (test) { - tests.push(test); - }); - - runner.on('end', function () { - self.write(tag('testsuite', { - name: 'Mocha Tests', - tests: stats.tests, - failures: stats.failures, - errors: stats.failures, - skipped: stats.tests - stats.failures - stats.passes, - timestamp: (new Date()).toUTCString(), - time: (stats.duration / 1000) || 0 - }, false)); - - tests.forEach(function (t) { - self.test(t); - }); - - self.write(''); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(XUnit, Base); - -/** - * Override done to close the stream (if it's a file). - * - * @param failures - * @param {Function} fn - */ -XUnit.prototype.done = function (failures, fn) { - if (this.fileStream) { - this.fileStream.end(function () { - fn(failures); - }); - } else { - fn(failures); - } -}; - -/** - * Write out the given line. - * - * @param {string} line - */ -XUnit.prototype.write = function (line) { - if (this.fileStream) { - this.fileStream.write(line + '\n'); - } else if (typeof process === 'object' && process.stdout) { - process.stdout.write(line + '\n'); - } else { - console.log(line); - } -}; - -/** - * Output tag for the given `test.` - * - * @param {Test} test - */ -XUnit.prototype.test = function (test) { - var attrs = { - classname: test.parent.fullTitle(), - name: test.title, - time: (test.duration / 1000) || 0 - }; - - if (test.state === 'failed') { - var err = test.err; - this.write(tag('testcase', attrs, false, tag('failure', {}, false, escape(err.message) + '\n' + escape(err.stack)))); - } else if (test.isPending()) { - this.write(tag('testcase', attrs, false, tag('skipped', {}, true))); - } else { - this.write(tag('testcase', attrs, true)); - } -}; - -/** - * HTML tag helper. - * - * @param name - * @param attrs - * @param close - * @param content - * @return {string} - */ -function tag (name, attrs, close, content) { - var end = close ? '/>' : '>'; - var pairs = []; - var tag; - - for (var key in attrs) { - if (Object.prototype.hasOwnProperty.call(attrs, key)) { - pairs.push(key + '="' + escape(attrs[key]) + '"'); - } - } - - tag = '<' + name + (pairs.length ? ' ' + pairs.join(' ') : '') + end; - if (content) { - tag += content + ' Math.pow(2, 31)) { - this._enableTimeouts = false; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug('timeout %d', ms); - this._timeout = ms; - if (this.timer) { - this.resetTimeout(); - } - return this; -}; - -/** - * Set & get slow `ms`. - * - * @api private - * @param {number|string} ms - * @return {Runnable|number} ms or Runnable instance. - */ -Runnable.prototype.slow = function (ms) { - if (typeof ms === 'undefined') { - return this._slow; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug('timeout %d', ms); - this._slow = ms; - return this; -}; - -/** - * Set and get whether timeout is `enabled`. - * - * @api private - * @param {boolean} enabled - * @return {Runnable|boolean} enabled or Runnable instance. - */ -Runnable.prototype.enableTimeouts = function (enabled) { - if (!arguments.length) { - return this._enableTimeouts; - } - debug('enableTimeouts %s', enabled); - this._enableTimeouts = enabled; - return this; -}; - -/** - * Halt and mark as pending. - * - * @api public - */ -Runnable.prototype.skip = function () { - throw new Pending('sync skip'); -}; - -/** - * Check if this runnable or its parent suite is marked as pending. - * - * @api private - */ -Runnable.prototype.isPending = function () { - return this.pending || (this.parent && this.parent.isPending()); -}; - -/** - * Set number of retries. - * - * @api private - */ -Runnable.prototype.retries = function (n) { - if (!arguments.length) { - return this._retries; - } - this._retries = n; -}; - -/** - * Get current retry - * - * @api private - */ -Runnable.prototype.currentRetry = function (n) { - if (!arguments.length) { - return this._currentRetry; - } - this._currentRetry = n; -}; - -/** - * Return the full title generated by recursively concatenating the parent's - * full title. - * - * @api public - * @return {string} - */ -Runnable.prototype.fullTitle = function () { - return this.parent.fullTitle() + ' ' + this.title; -}; - -/** - * Clear the timeout. - * - * @api private - */ -Runnable.prototype.clearTimeout = function () { - clearTimeout(this.timer); -}; - -/** - * Inspect the runnable void of private properties. - * - * @api private - * @return {string} - */ -Runnable.prototype.inspect = function () { - return JSON.stringify(this, function (key, val) { - if (key[0] === '_') { - return; - } - if (key === 'parent') { - return '#'; - } - if (key === 'ctx') { - return '#'; - } - return val; - }, 2); -}; - -/** - * Reset the timeout. - * - * @api private - */ -Runnable.prototype.resetTimeout = function () { - var self = this; - var ms = this.timeout() || 1e9; - - if (!this._enableTimeouts) { - return; - } - this.clearTimeout(); - this.timer = setTimeout(function () { - if (!self._enableTimeouts) { - return; - } - self.callback(new Error('Timeout of ' + ms + - 'ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.')); - self.timedOut = true; - }, ms); -}; - -/** - * Whitelist a list of globals for this test run. - * - * @api private - * @param {string[]} globals - */ -Runnable.prototype.globals = function (globals) { - if (!arguments.length) { - return this._allowedGlobals; - } - this._allowedGlobals = globals; -}; - -/** - * Run the test and invoke `fn(err)`. - * - * @param {Function} fn - * @api private - */ -Runnable.prototype.run = function (fn) { - var self = this; - var start = new Date(); - var ctx = this.ctx; - var finished; - var emitted; - - // Sometimes the ctx exists, but it is not runnable - if (ctx && ctx.runnable) { - ctx.runnable(this); - } - - // called multiple times - function multiple (err) { - if (emitted) { - return; - } - emitted = true; - self.emit('error', err || new Error('done() called multiple times; stacktrace may be inaccurate')); - } - - // finished - function done (err) { - var ms = self.timeout(); - if (self.timedOut) { - return; - } - if (finished) { - return multiple(err || self._trace); - } - - self.clearTimeout(); - self.duration = new Date() - start; - finished = true; - if (!err && self.duration > ms && self._enableTimeouts) { - err = new Error('Timeout of ' + ms + - 'ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.'); - } - fn(err); - } - - // for .resetTimeout() - this.callback = done; - - // explicit async with `done` argument - if (this.async) { - this.resetTimeout(); - - // allows skip() to be used in an explicit async context - this.skip = function asyncSkip () { - done(new Pending('async skip call')); - // halt execution. the Runnable will be marked pending - // by the previous call, and the uncaught handler will ignore - // the failure. - throw new Pending('async skip; aborting execution'); - }; - - if (this.allowUncaught) { - return callFnAsync(this.fn); - } - try { - callFnAsync(this.fn); - } catch (err) { - emitted = true; - done(utils.getError(err)); - } - return; - } - - if (this.allowUncaught) { - if (this.isPending()) { - done(); - } else { - callFn(this.fn); - } - return; - } - - // sync or promise-returning - try { - if (this.isPending()) { - done(); - } else { - callFn(this.fn); - } - } catch (err) { - emitted = true; - done(utils.getError(err)); - } - - function callFn (fn) { - var result = fn.call(ctx); - if (result && typeof result.then === 'function') { - self.resetTimeout(); - result - .then(function () { - done(); - // Return null so libraries like bluebird do not warn about - // subsequently constructed Promises. - return null; - }, - function (reason) { - done(reason || new Error('Promise rejected with no or falsy reason')); - }); - } else { - if (self.asyncOnly) { - return done(new Error('--async-only option in use without declaring `done()` or returning a promise')); - } - - done(); - } - } - - function callFnAsync (fn) { - var result = fn.call(ctx, function (err) { - if (err instanceof Error || toString.call(err) === '[object Error]') { - return done(err); - } - if (err) { - if (Object.prototype.toString.call(err) === '[object Object]') { - return done(new Error('done() invoked with non-Error: ' + - JSON.stringify(err))); - } - return done(new Error('done() invoked with non-Error: ' + err)); - } - if (result && utils.isPromise(result)) { - return done(new Error('Resolution method is overspecified. Specify a callback *or* return a Promise; not both.')); - } - - done(); - }); - } -}; - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./ms":15,"./pending":16,"./utils":38,"debug":2,"events":3,"json3":69,"lodash.create":75}],34:[function(require,module,exports){ -(function (process,global){ -'use strict'; - -/** - * Module dependencies. - */ - -var EventEmitter = require('events').EventEmitter; -var Pending = require('./pending'); -var utils = require('./utils'); -var inherits = utils.inherits; -var debug = require('debug')('mocha:runner'); -var Runnable = require('./runnable'); -var filter = utils.filter; -var indexOf = utils.indexOf; -var some = utils.some; -var keys = utils.keys; -var stackFilter = utils.stackTraceFilter(); -var stringify = utils.stringify; -var type = utils.type; -var undefinedError = utils.undefinedError; -var isArray = utils.isArray; - -/** - * Non-enumerable globals. - */ - -var globals = [ - 'setTimeout', - 'clearTimeout', - 'setInterval', - 'clearInterval', - 'XMLHttpRequest', - 'Date', - 'setImmediate', - 'clearImmediate' -]; - -/** - * Expose `Runner`. - */ - -module.exports = Runner; - -/** - * Initialize a `Runner` for the given `suite`. - * - * Events: - * - * - `start` execution started - * - `end` execution complete - * - `suite` (suite) test suite execution started - * - `suite end` (suite) all tests (and sub-suites) have finished - * - `test` (test) test execution started - * - `test end` (test) test completed - * - `hook` (hook) hook execution started - * - `hook end` (hook) hook complete - * - `pass` (test) test passed - * - `fail` (test, err) test failed - * - `pending` (test) test pending - * - * @api public - * @param {Suite} suite Root suite - * @param {boolean} [delay] Whether or not to delay execution of root suite - * until ready. - */ -function Runner (suite, delay) { - var self = this; - this._globals = []; - this._abort = false; - this._delay = delay; - this.suite = suite; - this.started = false; - this.total = suite.total(); - this.failures = 0; - this.on('test end', function (test) { - self.checkGlobals(test); - }); - this.on('hook end', function (hook) { - self.checkGlobals(hook); - }); - this._defaultGrep = /.*/; - this.grep(this._defaultGrep); - this.globals(this.globalProps().concat(extraGlobals())); -} - -/** - * Wrapper for setImmediate, process.nextTick, or browser polyfill. - * - * @param {Function} fn - * @api private - */ -Runner.immediately = global.setImmediate || process.nextTick; - -/** - * Inherit from `EventEmitter.prototype`. - */ -inherits(Runner, EventEmitter); - -/** - * Run tests with full titles matching `re`. Updates runner.total - * with number of tests matched. - * - * @param {RegExp} re - * @param {Boolean} invert - * @return {Runner} for chaining - * @api public - * @param {RegExp} re - * @param {boolean} invert - * @return {Runner} Runner instance. - */ -Runner.prototype.grep = function (re, invert) { - debug('grep %s', re); - this._grep = re; - this._invert = invert; - this.total = this.grepTotal(this.suite); - return this; -}; - -/** - * Returns the number of tests matching the grep search for the - * given suite. - * - * @param {Suite} suite - * @return {Number} - * @api public - * @param {Suite} suite - * @return {number} - */ -Runner.prototype.grepTotal = function (suite) { - var self = this; - var total = 0; - - suite.eachTest(function (test) { - var match = self._grep.test(test.fullTitle()); - if (self._invert) { - match = !match; - } - if (match) { - total++; - } - }); - - return total; -}; - -/** - * Return a list of global properties. - * - * @return {Array} - * @api private - */ -Runner.prototype.globalProps = function () { - var props = keys(global); - - // non-enumerables - for (var i = 0; i < globals.length; ++i) { - if (~indexOf(props, globals[i])) { - continue; - } - props.push(globals[i]); - } - - return props; -}; - -/** - * Allow the given `arr` of globals. - * - * @param {Array} arr - * @return {Runner} for chaining - * @api public - * @param {Array} arr - * @return {Runner} Runner instance. - */ -Runner.prototype.globals = function (arr) { - if (!arguments.length) { - return this._globals; - } - debug('globals %j', arr); - this._globals = this._globals.concat(arr); - return this; -}; - -/** - * Check for global variable leaks. - * - * @api private - */ -Runner.prototype.checkGlobals = function (test) { - if (this.ignoreLeaks) { - return; - } - var ok = this._globals; - - var globals = this.globalProps(); - var leaks; - - if (test) { - ok = ok.concat(test._allowedGlobals || []); - } - - if (this.prevGlobalsLength === globals.length) { - return; - } - this.prevGlobalsLength = globals.length; - - leaks = filterLeaks(ok, globals); - this._globals = this._globals.concat(leaks); - - if (leaks.length > 1) { - this.fail(test, new Error('global leaks detected: ' + leaks.join(', ') + '')); - } else if (leaks.length) { - this.fail(test, new Error('global leak detected: ' + leaks[0])); - } -}; - -/** - * Fail the given `test`. - * - * @api private - * @param {Test} test - * @param {Error} err - */ -Runner.prototype.fail = function (test, err) { - if (test.isPending()) { - return; - } - - ++this.failures; - test.state = 'failed'; - - if (!(err instanceof Error || err && typeof err.message === 'string')) { - err = new Error('the ' + type(err) + ' ' + stringify(err) + ' was thrown, throw an Error :)'); - } - - try { - err.stack = (this.fullStackTrace || !err.stack) - ? err.stack - : stackFilter(err.stack); - } catch (ignored) { - // some environments do not take kindly to monkeying with the stack - } - - this.emit('fail', test, err); -}; - -/** - * Fail the given `hook` with `err`. - * - * Hook failures work in the following pattern: - * - If bail, then exit - * - Failed `before` hook skips all tests in a suite and subsuites, - * but jumps to corresponding `after` hook - * - Failed `before each` hook skips remaining tests in a - * suite and jumps to corresponding `after each` hook, - * which is run only once - * - Failed `after` hook does not alter - * execution order - * - Failed `after each` hook skips remaining tests in a - * suite and subsuites, but executes other `after each` - * hooks - * - * @api private - * @param {Hook} hook - * @param {Error} err - */ -Runner.prototype.failHook = function (hook, err) { - if (hook.ctx && hook.ctx.currentTest) { - hook.originalTitle = hook.originalTitle || hook.title; - hook.title = hook.originalTitle + ' for "' + hook.ctx.currentTest.title + '"'; - } - - this.fail(hook, err); - if (this.suite.bail()) { - this.emit('end'); - } -}; - -/** - * Run hook `name` callbacks and then invoke `fn()`. - * - * @api private - * @param {string} name - * @param {Function} fn - */ - -Runner.prototype.hook = function (name, fn) { - var suite = this.suite; - var hooks = suite['_' + name]; - var self = this; - - function next (i) { - var hook = hooks[i]; - if (!hook) { - return fn(); - } - self.currentRunnable = hook; - - hook.ctx.currentTest = self.test; - - self.emit('hook', hook); - - if (!hook.listeners('error').length) { - hook.on('error', function (err) { - self.failHook(hook, err); - }); - } - - hook.run(function (err) { - var testError = hook.error(); - if (testError) { - self.fail(self.test, testError); - } - if (err) { - if (err instanceof Pending) { - if (name === 'beforeEach' || name === 'afterEach') { - self.test.pending = true; - } else { - utils.forEach(suite.tests, function (test) { - test.pending = true; - }); - // a pending hook won't be executed twice. - hook.pending = true; - } - } else { - self.failHook(hook, err); - - // stop executing hooks, notify callee of hook err - return fn(err); - } - } - self.emit('hook end', hook); - delete hook.ctx.currentTest; - next(++i); - }); - } - - Runner.immediately(function () { - next(0); - }); -}; - -/** - * Run hook `name` for the given array of `suites` - * in order, and callback `fn(err, errSuite)`. - * - * @api private - * @param {string} name - * @param {Array} suites - * @param {Function} fn - */ -Runner.prototype.hooks = function (name, suites, fn) { - var self = this; - var orig = this.suite; - - function next (suite) { - self.suite = suite; - - if (!suite) { - self.suite = orig; - return fn(); - } - - self.hook(name, function (err) { - if (err) { - var errSuite = self.suite; - self.suite = orig; - return fn(err, errSuite); - } - - next(suites.pop()); - }); - } - - next(suites.pop()); -}; - -/** - * Run hooks from the top level down. - * - * @param {String} name - * @param {Function} fn - * @api private - */ -Runner.prototype.hookUp = function (name, fn) { - var suites = [this.suite].concat(this.parents()).reverse(); - this.hooks(name, suites, fn); -}; - -/** - * Run hooks from the bottom up. - * - * @param {String} name - * @param {Function} fn - * @api private - */ -Runner.prototype.hookDown = function (name, fn) { - var suites = [this.suite].concat(this.parents()); - this.hooks(name, suites, fn); -}; - -/** - * Return an array of parent Suites from - * closest to furthest. - * - * @return {Array} - * @api private - */ -Runner.prototype.parents = function () { - var suite = this.suite; - var suites = []; - while (suite.parent) { - suite = suite.parent; - suites.push(suite); - } - return suites; -}; - -/** - * Run the current test and callback `fn(err)`. - * - * @param {Function} fn - * @api private - */ -Runner.prototype.runTest = function (fn) { - var self = this; - var test = this.test; - - if (!test) { - return; - } - if (this.asyncOnly) { - test.asyncOnly = true; - } - test.on('error', function (err) { - self.fail(test, err); - }); - if (this.allowUncaught) { - test.allowUncaught = true; - return test.run(fn); - } - try { - test.run(fn); - } catch (err) { - fn(err); - } -}; - -/** - * Run tests in the given `suite` and invoke the callback `fn()` when complete. - * - * @api private - * @param {Suite} suite - * @param {Function} fn - */ -Runner.prototype.runTests = function (suite, fn) { - var self = this; - var tests = suite.tests.slice(); - var test; - - function hookErr (_, errSuite, after) { - // before/after Each hook for errSuite failed: - var orig = self.suite; - - // for failed 'after each' hook start from errSuite parent, - // otherwise start from errSuite itself - self.suite = after ? errSuite.parent : errSuite; - - if (self.suite) { - // call hookUp afterEach - self.hookUp('afterEach', function (err2, errSuite2) { - self.suite = orig; - // some hooks may fail even now - if (err2) { - return hookErr(err2, errSuite2, true); - } - // report error suite - fn(errSuite); - }); - } else { - // there is no need calling other 'after each' hooks - self.suite = orig; - fn(errSuite); - } - } - - function next (err, errSuite) { - // if we bail after first err - if (self.failures && suite._bail) { - return fn(); - } - - if (self._abort) { - return fn(); - } - - if (err) { - return hookErr(err, errSuite, true); - } - - // next test - test = tests.shift(); - - // all done - if (!test) { - return fn(); - } - - // grep - var match = self._grep.test(test.fullTitle()); - if (self._invert) { - match = !match; - } - if (!match) { - // Run immediately only if we have defined a grep. When we - // define a grep — It can cause maximum callstack error if - // the grep is doing a large recursive loop by neglecting - // all tests. The run immediately function also comes with - // a performance cost. So we don't want to run immediately - // if we run the whole test suite, because running the whole - // test suite don't do any immediate recursive loops. Thus, - // allowing a JS runtime to breathe. - if (self._grep !== self._defaultGrep) { - Runner.immediately(next); - } else { - next(); - } - return; - } - - if (test.isPending()) { - self.emit('pending', test); - self.emit('test end', test); - return next(); - } - - // execute test and hook(s) - self.emit('test', self.test = test); - self.hookDown('beforeEach', function (err, errSuite) { - if (test.isPending()) { - self.emit('pending', test); - self.emit('test end', test); - return next(); - } - if (err) { - return hookErr(err, errSuite, false); - } - self.currentRunnable = self.test; - self.runTest(function (err) { - test = self.test; - if (err) { - var retry = test.currentRetry(); - if (err instanceof Pending) { - test.pending = true; - self.emit('pending', test); - } else if (retry < test.retries()) { - var clonedTest = test.clone(); - clonedTest.currentRetry(retry + 1); - tests.unshift(clonedTest); - - // Early return + hook trigger so that it doesn't - // increment the count wrong - return self.hookUp('afterEach', next); - } else { - self.fail(test, err); - } - self.emit('test end', test); - - if (err instanceof Pending) { - return next(); - } - - return self.hookUp('afterEach', next); - } - - test.state = 'passed'; - self.emit('pass', test); - self.emit('test end', test); - self.hookUp('afterEach', next); - }); - }); - } - - this.next = next; - this.hookErr = hookErr; - next(); -}; - -/** - * Run the given `suite` and invoke the callback `fn()` when complete. - * - * @api private - * @param {Suite} suite - * @param {Function} fn - */ -Runner.prototype.runSuite = function (suite, fn) { - var i = 0; - var self = this; - var total = this.grepTotal(suite); - var afterAllHookCalled = false; - - debug('run suite %s', suite.fullTitle()); - - if (!total || (self.failures && suite._bail)) { - return fn(); - } - - this.emit('suite', this.suite = suite); - - function next (errSuite) { - if (errSuite) { - // current suite failed on a hook from errSuite - if (errSuite === suite) { - // if errSuite is current suite - // continue to the next sibling suite - return done(); - } - // errSuite is among the parents of current suite - // stop execution of errSuite and all sub-suites - return done(errSuite); - } - - if (self._abort) { - return done(); - } - - var curr = suite.suites[i++]; - if (!curr) { - return done(); - } - - // Avoid grep neglecting large number of tests causing a - // huge recursive loop and thus a maximum call stack error. - // See comment in `this.runTests()` for more information. - if (self._grep !== self._defaultGrep) { - Runner.immediately(function () { - self.runSuite(curr, next); - }); - } else { - self.runSuite(curr, next); - } - } - - function done (errSuite) { - self.suite = suite; - self.nextSuite = next; - - if (afterAllHookCalled) { - fn(errSuite); - } else { - // mark that the afterAll block has been called once - // and so can be skipped if there is an error in it. - afterAllHookCalled = true; - - // remove reference to test - delete self.test; - - self.hook('afterAll', function () { - self.emit('suite end', suite); - fn(errSuite); - }); - } - } - - this.nextSuite = next; - - this.hook('beforeAll', function (err) { - if (err) { - return done(); - } - self.runTests(suite, next); - }); -}; - -/** - * Handle uncaught exceptions. - * - * @param {Error} err - * @api private - */ -Runner.prototype.uncaught = function (err) { - if (err) { - debug('uncaught exception %s', err === (function () { - return this; - }.call(err)) ? (err.message || err) : err); - } else { - debug('uncaught undefined exception'); - err = undefinedError(); - } - err.uncaught = true; - - var runnable = this.currentRunnable; - - if (!runnable) { - runnable = new Runnable('Uncaught error outside test suite'); - runnable.parent = this.suite; - - if (this.started) { - this.fail(runnable, err); - } else { - // Can't recover from this failure - this.emit('start'); - this.fail(runnable, err); - this.emit('end'); - } - - return; - } - - runnable.clearTimeout(); - - // Ignore errors if complete or pending - if (runnable.state || runnable.isPending()) { - return; - } - this.fail(runnable, err); - - // recover from test - if (runnable.type === 'test') { - this.emit('test end', runnable); - this.hookUp('afterEach', this.next); - return; - } - - // recover from hooks - if (runnable.type === 'hook') { - var errSuite = this.suite; - // if hook failure is in afterEach block - if (runnable.fullTitle().indexOf('after each') > -1) { - return this.hookErr(err, errSuite, true); - } - // if hook failure is in beforeEach block - if (runnable.fullTitle().indexOf('before each') > -1) { - return this.hookErr(err, errSuite, false); - } - // if hook failure is in after or before blocks - return this.nextSuite(errSuite); - } - - // bail - this.emit('end'); -}; - -/** - * Cleans up the references to all the deferred functions - * (before/after/beforeEach/afterEach) and tests of a Suite. - * These must be deleted otherwise a memory leak can happen, - * as those functions may reference variables from closures, - * thus those variables can never be garbage collected as long - * as the deferred functions exist. - * - * @param {Suite} suite - */ -function cleanSuiteReferences (suite) { - function cleanArrReferences (arr) { - for (var i = 0; i < arr.length; i++) { - delete arr[i].fn; - } - } - - if (isArray(suite._beforeAll)) { - cleanArrReferences(suite._beforeAll); - } - - if (isArray(suite._beforeEach)) { - cleanArrReferences(suite._beforeEach); - } - - if (isArray(suite._afterAll)) { - cleanArrReferences(suite._afterAll); - } - - if (isArray(suite._afterEach)) { - cleanArrReferences(suite._afterEach); - } - - for (var i = 0; i < suite.tests.length; i++) { - delete suite.tests[i].fn; - } -} - -/** - * Run the root suite and invoke `fn(failures)` - * on completion. - * - * @param {Function} fn - * @return {Runner} for chaining - * @api public - * @param {Function} fn - * @return {Runner} Runner instance. - */ -Runner.prototype.run = function (fn) { - var self = this; - var rootSuite = this.suite; - - // If there is an `only` filter - if (this.hasOnly) { - filterOnly(rootSuite); - } - - fn = fn || function () {}; - - function uncaught (err) { - self.uncaught(err); - } - - function start () { - self.started = true; - self.emit('start'); - self.runSuite(rootSuite, function () { - debug('finished running'); - self.emit('end'); - }); - } - - debug('start'); - - // references cleanup to avoid memory leaks - this.on('suite end', cleanSuiteReferences); - - // callback - this.on('end', function () { - if (self.forbidOnly && self.hasOnly) { - self.failures += self.stats.tests; - } - if (self.forbidPending) { - self.failures += self.stats.pending; - } - debug('end'); - process.removeListener('uncaughtException', uncaught); - fn(self.failures); - }); - - // uncaught exception - process.on('uncaughtException', uncaught); - - if (this._delay) { - // for reporters, I guess. - // might be nice to debounce some dots while we wait. - this.emit('waiting', rootSuite); - rootSuite.once('run', start); - } else { - start(); - } - - return this; -}; - -/** - * Cleanly abort execution. - * - * @api public - * @return {Runner} Runner instance. - */ -Runner.prototype.abort = function () { - debug('aborting'); - this._abort = true; - - return this; -}; - -/** - * Filter suites based on `isOnly` logic. - * - * @param {Array} suite - * @returns {Boolean} - * @api private - */ -function filterOnly (suite) { - if (suite._onlyTests.length) { - // If the suite contains `only` tests, run those and ignore any nested suites. - suite.tests = suite._onlyTests; - suite.suites = []; - } else { - // Otherwise, do not run any of the tests in this suite. - suite.tests = []; - utils.forEach(suite._onlySuites, function (onlySuite) { - // If there are other `only` tests/suites nested in the current `only` suite, then filter that `only` suite. - // Otherwise, all of the tests on this `only` suite should be run, so don't filter it. - if (hasOnly(onlySuite)) { - filterOnly(onlySuite); - } - }); - // Run the `only` suites, as well as any other suites that have `only` tests/suites as descendants. - suite.suites = filter(suite.suites, function (childSuite) { - return indexOf(suite._onlySuites, childSuite) !== -1 || filterOnly(childSuite); - }); - } - // Keep the suite only if there is something to run - return suite.tests.length || suite.suites.length; -} - -/** - * Determines whether a suite has an `only` test or suite as a descendant. - * - * @param {Array} suite - * @returns {Boolean} - * @api private - */ -function hasOnly (suite) { - return suite._onlyTests.length || suite._onlySuites.length || some(suite.suites, hasOnly); -} - -/** - * Filter leaks with the given globals flagged as `ok`. - * - * @api private - * @param {Array} ok - * @param {Array} globals - * @return {Array} - */ -function filterLeaks (ok, globals) { - return filter(globals, function (key) { - // Firefox and Chrome exposes iframes as index inside the window object - if (/^\d+/.test(key)) { - return false; - } - - // in firefox - // if runner runs in an iframe, this iframe's window.getInterface method - // not init at first it is assigned in some seconds - if (global.navigator && (/^getInterface/).test(key)) { - return false; - } - - // an iframe could be approached by window[iframeIndex] - // in ie6,7,8 and opera, iframeIndex is enumerable, this could cause leak - if (global.navigator && (/^\d+/).test(key)) { - return false; - } - - // Opera and IE expose global variables for HTML element IDs (issue #243) - if (/^mocha-/.test(key)) { - return false; - } - - var matched = filter(ok, function (ok) { - if (~ok.indexOf('*')) { - return key.indexOf(ok.split('*')[0]) === 0; - } - return key === ok; - }); - return !matched.length && (!global.navigator || key !== 'onerror'); - }); -} - -/** - * Array of globals dependent on the environment. - * - * @return {Array} - * @api private - */ -function extraGlobals () { - if (typeof process === 'object' && typeof process.version === 'string') { - var parts = process.version.split('.'); - var nodeVersion = utils.reduce(parts, function (a, v) { - return a << 8 | v; - }); - - // 'errno' was renamed to process._errno in v0.9.11. - - if (nodeVersion < 0x00090B) { - return ['errno']; - } - } - - return []; -} - -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./pending":16,"./runnable":33,"./utils":38,"_process":82,"debug":2,"events":3}],35:[function(require,module,exports){ -'use strict'; - -/** - * Module dependencies. - */ - -var EventEmitter = require('events').EventEmitter; -var Hook = require('./hook'); -var utils = require('./utils'); -var inherits = utils.inherits; -var debug = require('debug')('mocha:suite'); -var milliseconds = require('./ms'); - -/** - * Expose `Suite`. - */ - -exports = module.exports = Suite; - -/** - * Create a new `Suite` with the given `title` and parent `Suite`. When a suite - * with the same title is already present, that suite is returned to provide - * nicer reporter and more flexible meta-testing. - * - * @api public - * @param {Suite} parent - * @param {string} title - * @return {Suite} - */ -exports.create = function (parent, title) { - var suite = new Suite(title, parent.ctx); - suite.parent = parent; - title = suite.fullTitle(); - parent.addSuite(suite); - return suite; -}; - -/** - * Initialize a new `Suite` with the given `title` and `ctx`. - * - * @api private - * @param {string} title - * @param {Context} parentContext - */ -function Suite (title, parentContext) { - if (!utils.isString(title)) { - throw new Error('Suite `title` should be a "string" but "' + typeof title + '" was given instead.'); - } - this.title = title; - function Context () {} - Context.prototype = parentContext; - this.ctx = new Context(); - this.suites = []; - this.tests = []; - this.pending = false; - this._beforeEach = []; - this._beforeAll = []; - this._afterEach = []; - this._afterAll = []; - this.root = !title; - this._timeout = 2000; - this._enableTimeouts = true; - this._slow = 75; - this._bail = false; - this._retries = -1; - this._onlyTests = []; - this._onlySuites = []; - this.delayed = false; -} - -/** - * Inherit from `EventEmitter.prototype`. - */ -inherits(Suite, EventEmitter); - -/** - * Return a clone of this `Suite`. - * - * @api private - * @return {Suite} - */ -Suite.prototype.clone = function () { - var suite = new Suite(this.title); - debug('clone'); - suite.ctx = this.ctx; - suite.timeout(this.timeout()); - suite.retries(this.retries()); - suite.enableTimeouts(this.enableTimeouts()); - suite.slow(this.slow()); - suite.bail(this.bail()); - return suite; -}; - -/** - * Set timeout `ms` or short-hand such as "2s". - * - * @api private - * @param {number|string} ms - * @return {Suite|number} for chaining - */ -Suite.prototype.timeout = function (ms) { - if (!arguments.length) { - return this._timeout; - } - if (ms.toString() === '0') { - this._enableTimeouts = false; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug('timeout %d', ms); - this._timeout = parseInt(ms, 10); - return this; -}; - -/** - * Set number of times to retry a failed test. - * - * @api private - * @param {number|string} n - * @return {Suite|number} for chaining - */ -Suite.prototype.retries = function (n) { - if (!arguments.length) { - return this._retries; - } - debug('retries %d', n); - this._retries = parseInt(n, 10) || 0; - return this; -}; - -/** - * Set timeout to `enabled`. - * - * @api private - * @param {boolean} enabled - * @return {Suite|boolean} self or enabled - */ -Suite.prototype.enableTimeouts = function (enabled) { - if (!arguments.length) { - return this._enableTimeouts; - } - debug('enableTimeouts %s', enabled); - this._enableTimeouts = enabled; - return this; -}; - -/** - * Set slow `ms` or short-hand such as "2s". - * - * @api private - * @param {number|string} ms - * @return {Suite|number} for chaining - */ -Suite.prototype.slow = function (ms) { - if (!arguments.length) { - return this._slow; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug('slow %d', ms); - this._slow = ms; - return this; -}; - -/** - * Sets whether to bail after first error. - * - * @api private - * @param {boolean} bail - * @return {Suite|number} for chaining - */ -Suite.prototype.bail = function (bail) { - if (!arguments.length) { - return this._bail; - } - debug('bail %s', bail); - this._bail = bail; - return this; -}; - -/** - * Check if this suite or its parent suite is marked as pending. - * - * @api private - */ -Suite.prototype.isPending = function () { - return this.pending || (this.parent && this.parent.isPending()); -}; - -/** - * Run `fn(test[, done])` before running tests. - * - * @api private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ -Suite.prototype.beforeAll = function (title, fn) { - if (this.isPending()) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"before all" hook' + (title ? ': ' + title : ''); - - var hook = new Hook(title, fn); - hook.parent = this; - hook.timeout(this.timeout()); - hook.retries(this.retries()); - hook.enableTimeouts(this.enableTimeouts()); - hook.slow(this.slow()); - hook.ctx = this.ctx; - this._beforeAll.push(hook); - this.emit('beforeAll', hook); - return this; -}; - -/** - * Run `fn(test[, done])` after running tests. - * - * @api private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ -Suite.prototype.afterAll = function (title, fn) { - if (this.isPending()) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"after all" hook' + (title ? ': ' + title : ''); - - var hook = new Hook(title, fn); - hook.parent = this; - hook.timeout(this.timeout()); - hook.retries(this.retries()); - hook.enableTimeouts(this.enableTimeouts()); - hook.slow(this.slow()); - hook.ctx = this.ctx; - this._afterAll.push(hook); - this.emit('afterAll', hook); - return this; -}; - -/** - * Run `fn(test[, done])` before each test case. - * - * @api private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ -Suite.prototype.beforeEach = function (title, fn) { - if (this.isPending()) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"before each" hook' + (title ? ': ' + title : ''); - - var hook = new Hook(title, fn); - hook.parent = this; - hook.timeout(this.timeout()); - hook.retries(this.retries()); - hook.enableTimeouts(this.enableTimeouts()); - hook.slow(this.slow()); - hook.ctx = this.ctx; - this._beforeEach.push(hook); - this.emit('beforeEach', hook); - return this; -}; - -/** - * Run `fn(test[, done])` after each test case. - * - * @api private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ -Suite.prototype.afterEach = function (title, fn) { - if (this.isPending()) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"after each" hook' + (title ? ': ' + title : ''); - - var hook = new Hook(title, fn); - hook.parent = this; - hook.timeout(this.timeout()); - hook.retries(this.retries()); - hook.enableTimeouts(this.enableTimeouts()); - hook.slow(this.slow()); - hook.ctx = this.ctx; - this._afterEach.push(hook); - this.emit('afterEach', hook); - return this; -}; - -/** - * Add a test `suite`. - * - * @api private - * @param {Suite} suite - * @return {Suite} for chaining - */ -Suite.prototype.addSuite = function (suite) { - suite.parent = this; - suite.timeout(this.timeout()); - suite.retries(this.retries()); - suite.enableTimeouts(this.enableTimeouts()); - suite.slow(this.slow()); - suite.bail(this.bail()); - this.suites.push(suite); - this.emit('suite', suite); - return this; -}; - -/** - * Add a `test` to this suite. - * - * @api private - * @param {Test} test - * @return {Suite} for chaining - */ -Suite.prototype.addTest = function (test) { - test.parent = this; - test.timeout(this.timeout()); - test.retries(this.retries()); - test.enableTimeouts(this.enableTimeouts()); - test.slow(this.slow()); - test.ctx = this.ctx; - this.tests.push(test); - this.emit('test', test); - return this; -}; - -/** - * Return the full title generated by recursively concatenating the parent's - * full title. - * - * @api public - * @return {string} - */ -Suite.prototype.fullTitle = function () { - if (this.parent) { - var full = this.parent.fullTitle(); - if (full) { - return full + ' ' + this.title; - } - } - return this.title; -}; - -/** - * Return the total number of tests. - * - * @api public - * @return {number} - */ -Suite.prototype.total = function () { - return utils.reduce(this.suites, function (sum, suite) { - return sum + suite.total(); - }, 0) + this.tests.length; -}; - -/** - * Iterates through each suite recursively to find all tests. Applies a - * function in the format `fn(test)`. - * - * @api private - * @param {Function} fn - * @return {Suite} - */ -Suite.prototype.eachTest = function (fn) { - utils.forEach(this.tests, fn); - utils.forEach(this.suites, function (suite) { - suite.eachTest(fn); - }); - return this; -}; - -/** - * This will run the root suite if we happen to be running in delayed mode. - */ -Suite.prototype.run = function run () { - if (this.root) { - this.emit('run'); - } -}; - -},{"./hook":7,"./ms":15,"./utils":38,"debug":2,"events":3}],36:[function(require,module,exports){ -'use strict'; - -/** - * Module dependencies. - */ - -var Runnable = require('./runnable'); -var create = require('lodash.create'); -var isString = require('./utils').isString; - -/** - * Expose `Test`. - */ - -module.exports = Test; - -/** - * Initialize a new `Test` with the given `title` and callback `fn`. - * - * @api private - * @param {String} title - * @param {Function} fn - */ -function Test (title, fn) { - if (!isString(title)) { - throw new Error('Test `title` should be a "string" but "' + typeof title + '" was given instead.'); - } - Runnable.call(this, title, fn); - this.pending = !fn; - this.type = 'test'; -} - -/** - * Inherit from `Runnable.prototype`. - */ -Test.prototype = create(Runnable.prototype, { - constructor: Test -}); - -Test.prototype.clone = function () { - var test = new Test(this.title, this.fn); - test.timeout(this.timeout()); - test.slow(this.slow()); - test.enableTimeouts(this.enableTimeouts()); - test.retries(this.retries()); - test.currentRetry(this.currentRetry()); - test.globals(this.globals()); - test.parent = this.parent; - test.file = this.file; - test.ctx = this.ctx; - return test; -}; - -},{"./runnable":33,"./utils":38,"lodash.create":75}],37:[function(require,module,exports){ -'use strict'; - -/** - * Pad a `number` with a ten's place zero. - * - * @param {number} number - * @return {string} - */ -function pad(number) { - var n = number.toString(); - return n.length === 1 ? '0' + n : n; -} - -/** - * Turn a `date` into an ISO string. - * - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString - * - * @param {Date} date - * @return {string} - */ -function toISOString(date) { - return date.getUTCFullYear() - + '-' + pad(date.getUTCMonth() + 1) - + '-' + pad(date.getUTCDate()) - + 'T' + pad(date.getUTCHours()) - + ':' + pad(date.getUTCMinutes()) - + ':' + pad(date.getUTCSeconds()) - + '.' + String((date.getUTCMilliseconds()/1000).toFixed(3)).slice(2, 5) - + 'Z'; -} - -/* - * Exports. - */ - -module.exports = toISOString; - -},{}],38:[function(require,module,exports){ -(function (process,Buffer){ -'use strict'; - -/* eslint-env browser */ - -/** - * Module dependencies. - */ - -var JSON = require('json3'); -var basename = require('path').basename; -var debug = require('debug')('mocha:watch'); -var exists = require('fs').existsSync || require('path').existsSync; -var glob = require('glob'); -var path = require('path'); -var join = path.join; -var readdirSync = require('fs').readdirSync; -var statSync = require('fs').statSync; -var watchFile = require('fs').watchFile; -var lstatSync = require('fs').lstatSync; -var toISOString = require('./to-iso-string'); -var he = require('he'); - -/** - * Ignored directories. - */ - -var ignore = ['node_modules', '.git']; - -exports.inherits = require('util').inherits; - -/** - * Escape special characters in the given string of html. - * - * @api private - * @param {string} html - * @return {string} - */ -exports.escape = function (html) { - return he.encode(String(html), { useNamedReferences: false }); -}; - -/** - * Array#forEach (<=IE8) - * - * @api private - * @param {Array} arr - * @param {Function} fn - * @param {Object} scope - */ -exports.forEach = function (arr, fn, scope) { - for (var i = 0, l = arr.length; i < l; i++) { - fn.call(scope, arr[i], i); - } -}; - -/** - * Test if the given obj is type of string. - * - * @api private - * @param {Object} obj - * @return {boolean} - */ -exports.isString = function (obj) { - return typeof obj === 'string'; -}; - -/** - * Array#map (<=IE8) - * - * @api private - * @param {Array} arr - * @param {Function} fn - * @param {Object} scope - * @return {Array} - */ -exports.map = function (arr, fn, scope) { - var result = []; - for (var i = 0, l = arr.length; i < l; i++) { - result.push(fn.call(scope, arr[i], i, arr)); - } - return result; -}; - -/** - * Array#indexOf (<=IE8) - * - * @api private - * @param {Array} arr - * @param {Object} obj to find index of - * @param {number} start - * @return {number} - */ -var indexOf = exports.indexOf = function (arr, obj, start) { - for (var i = start || 0, l = arr.length; i < l; i++) { - if (arr[i] === obj) { - return i; - } - } - return -1; -}; - -/** - * Array#reduce (<=IE8) - * - * @api private - * @param {Array} arr - * @param {Function} fn - * @param {Object} val Initial value. - * @return {*} - */ -var reduce = exports.reduce = function (arr, fn, val) { - var rval = val; - - for (var i = 0, l = arr.length; i < l; i++) { - rval = fn(rval, arr[i], i, arr); - } - - return rval; -}; - -/** - * Array#filter (<=IE8) - * - * @api private - * @param {Array} arr - * @param {Function} fn - * @return {Array} - */ -exports.filter = function (arr, fn) { - var ret = []; - - for (var i = 0, l = arr.length; i < l; i++) { - var val = arr[i]; - if (fn(val, i, arr)) { - ret.push(val); - } - } - - return ret; -}; - -/** - * Array#some (<=IE8) - * - * @api private - * @param {Array} arr - * @param {Function} fn - * @return {Array} - */ -exports.some = function (arr, fn) { - for (var i = 0, l = arr.length; i < l; i++) { - if (fn(arr[i])) { - return true; - } - } - return false; -}; - -/** - * Object.keys (<=IE8) - * - * @api private - * @param {Object} obj - * @return {Array} keys - */ -exports.keys = typeof Object.keys === 'function' ? Object.keys : function (obj) { - var keys = []; - var has = Object.prototype.hasOwnProperty; // for `window` on <=IE8 - - for (var key in obj) { - if (has.call(obj, key)) { - keys.push(key); - } - } - - return keys; -}; - -/** - * Watch the given `files` for changes - * and invoke `fn(file)` on modification. - * - * @api private - * @param {Array} files - * @param {Function} fn - */ -exports.watch = function (files, fn) { - var options = { interval: 100 }; - files.forEach(function (file) { - debug('file %s', file); - watchFile(file, options, function (curr, prev) { - if (prev.mtime < curr.mtime) { - fn(file); - } - }); - }); -}; - -/** - * Array.isArray (<=IE8) - * - * @api private - * @param {Object} obj - * @return {Boolean} - */ -var isArray = typeof Array.isArray === 'function' ? Array.isArray : function (obj) { - return Object.prototype.toString.call(obj) === '[object Array]'; -}; - -exports.isArray = isArray; - -/** - * Buffer.prototype.toJSON polyfill. - * - * @type {Function} - */ -if (typeof Buffer !== 'undefined' && Buffer.prototype) { - Buffer.prototype.toJSON = Buffer.prototype.toJSON || function () { - return Array.prototype.slice.call(this, 0); - }; -} - -/** - * Ignored files. - * - * @api private - * @param {string} path - * @return {boolean} - */ -function ignored (path) { - return !~ignore.indexOf(path); -} - -/** - * Lookup files in the given `dir`. - * - * @api private - * @param {string} dir - * @param {string[]} [ext=['.js']] - * @param {Array} [ret=[]] - * @return {Array} - */ -exports.files = function (dir, ext, ret) { - ret = ret || []; - ext = ext || ['js']; - - var re = new RegExp('\\.(' + ext.join('|') + ')$'); - - readdirSync(dir) - .filter(ignored) - .forEach(function (path) { - path = join(dir, path); - if (lstatSync(path).isDirectory()) { - exports.files(path, ext, ret); - } else if (path.match(re)) { - ret.push(path); - } - }); - - return ret; -}; - -/** - * Compute a slug from the given `str`. - * - * @api private - * @param {string} str - * @return {string} - */ -exports.slug = function (str) { - return str - .toLowerCase() - .replace(/ +/g, '-') - .replace(/[^-\w]/g, ''); -}; - -/** - * Strip the function definition from `str`, and re-indent for pre whitespace. - * - * @param {string} str - * @return {string} - */ -exports.clean = function (str) { - str = str - .replace(/\r\n?|[\n\u2028\u2029]/g, '\n').replace(/^\uFEFF/, '') - // (traditional)-> space/name parameters body (lambda)-> parameters body multi-statement/single keep body content - .replace(/^function(?:\s*|\s+[^(]*)\([^)]*\)\s*\{((?:.|\n)*?)\s*\}$|^\([^)]*\)\s*=>\s*(?:\{((?:.|\n)*?)\s*\}|((?:.|\n)*))$/, '$1$2$3'); - - var spaces = str.match(/^\n?( *)/)[1].length; - var tabs = str.match(/^\n?(\t*)/)[1].length; - var re = new RegExp('^\n?' + (tabs ? '\t' : ' ') + '{' + (tabs || spaces) + '}', 'gm'); - - str = str.replace(re, ''); - - return exports.trim(str); -}; - -/** - * Trim the given `str`. - * - * @api private - * @param {string} str - * @return {string} - */ -exports.trim = function (str) { - return str.replace(/^\s+|\s+$/g, ''); -}; - -/** - * Parse the given `qs`. - * - * @api private - * @param {string} qs - * @return {Object} - */ -exports.parseQuery = function (qs) { - return reduce(qs.replace('?', '').split('&'), function (obj, pair) { - var i = pair.indexOf('='); - var key = pair.slice(0, i); - var val = pair.slice(++i); - - // Due to how the URLSearchParams API treats spaces - obj[key] = decodeURIComponent(val.replace(/\+/g, '%20')); - - return obj; - }, {}); -}; - -/** - * Highlight the given string of `js`. - * - * @api private - * @param {string} js - * @return {string} - */ -function highlight (js) { - return js - .replace(//g, '>') - .replace(/\/\/(.*)/gm, '//$1') - .replace(/('.*?')/gm, '$1') - .replace(/(\d+\.\d+)/gm, '$1') - .replace(/(\d+)/gm, '$1') - .replace(/\bnew[ \t]+(\w+)/gm, 'new $1') - .replace(/\b(function|new|throw|return|var|if|else)\b/gm, '$1'); -} - -/** - * Highlight the contents of tag `name`. - * - * @api private - * @param {string} name - */ -exports.highlightTags = function (name) { - var code = document.getElementById('mocha').getElementsByTagName(name); - for (var i = 0, len = code.length; i < len; ++i) { - code[i].innerHTML = highlight(code[i].innerHTML); - } -}; - -/** - * If a value could have properties, and has none, this function is called, - * which returns a string representation of the empty value. - * - * Functions w/ no properties return `'[Function]'` - * Arrays w/ length === 0 return `'[]'` - * Objects w/ no properties return `'{}'` - * All else: return result of `value.toString()` - * - * @api private - * @param {*} value The value to inspect. - * @param {string} typeHint The type of the value - * @returns {string} - */ -function emptyRepresentation (value, typeHint) { - switch (typeHint) { - case 'function': - return '[Function]'; - case 'object': - return '{}'; - case 'array': - return '[]'; - default: - return value.toString(); - } -} - -/** - * Takes some variable and asks `Object.prototype.toString()` what it thinks it - * is. - * - * @api private - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString - * @param {*} value The value to test. - * @returns {string} Computed type - * @example - * type({}) // 'object' - * type([]) // 'array' - * type(1) // 'number' - * type(false) // 'boolean' - * type(Infinity) // 'number' - * type(null) // 'null' - * type(new Date()) // 'date' - * type(/foo/) // 'regexp' - * type('type') // 'string' - * type(global) // 'global' - * type(new String('foo') // 'object' - */ -var type = exports.type = function type (value) { - if (value === undefined) { - return 'undefined'; - } else if (value === null) { - return 'null'; - } else if (typeof Buffer !== 'undefined' && Buffer.isBuffer(value)) { - return 'buffer'; - } - return Object.prototype.toString.call(value) - .replace(/^\[.+\s(.+?)]$/, '$1') - .toLowerCase(); -}; - -/** - * Stringify `value`. Different behavior depending on type of value: - * - * - If `value` is undefined or null, return `'[undefined]'` or `'[null]'`, respectively. - * - If `value` is not an object, function or array, return result of `value.toString()` wrapped in double-quotes. - * - If `value` is an *empty* object, function, or array, return result of function - * {@link emptyRepresentation}. - * - If `value` has properties, call {@link exports.canonicalize} on it, then return result of - * JSON.stringify(). - * - * @api private - * @see exports.type - * @param {*} value - * @return {string} - */ -exports.stringify = function (value) { - var typeHint = type(value); - - if (!~indexOf(['object', 'array', 'function'], typeHint)) { - if (typeHint === 'buffer') { - var json = value.toJSON(); - // Based on the toJSON result - return jsonStringify(json.data && json.type ? json.data : json, 2) - .replace(/,(\n|$)/g, '$1'); - } - - // IE7/IE8 has a bizarre String constructor; needs to be coerced - // into an array and back to obj. - if (typeHint === 'string' && typeof value === 'object') { - value = reduce(value.split(''), function (acc, char, idx) { - acc[idx] = char; - return acc; - }, {}); - typeHint = 'object'; - } else { - return jsonStringify(value); - } - } - - for (var prop in value) { - if (Object.prototype.hasOwnProperty.call(value, prop)) { - return jsonStringify(exports.canonicalize(value, null, typeHint), 2).replace(/,(\n|$)/g, '$1'); - } - } - - return emptyRepresentation(value, typeHint); -}; - -/** - * like JSON.stringify but more sense. - * - * @api private - * @param {Object} object - * @param {number=} spaces - * @param {number=} depth - * @returns {*} - */ -function jsonStringify (object, spaces, depth) { - if (typeof spaces === 'undefined') { - // primitive types - return _stringify(object); - } - - depth = depth || 1; - var space = spaces * depth; - var str = isArray(object) ? '[' : '{'; - var end = isArray(object) ? ']' : '}'; - var length = typeof object.length === 'number' ? object.length : exports.keys(object).length; - // `.repeat()` polyfill - function repeat (s, n) { - return new Array(n).join(s); - } - - function _stringify (val) { - switch (type(val)) { - case 'null': - case 'undefined': - val = '[' + val + ']'; - break; - case 'array': - case 'object': - val = jsonStringify(val, spaces, depth + 1); - break; - case 'boolean': - case 'regexp': - case 'symbol': - case 'number': - val = val === 0 && (1 / val) === -Infinity // `-0` - ? '-0' - : val.toString(); - break; - case 'date': - var sDate; - if (isNaN(val.getTime())) { // Invalid date - sDate = val.toString(); - } else { - sDate = val.toISOString ? val.toISOString() : toISOString(val); - } - val = '[Date: ' + sDate + ']'; - break; - case 'buffer': - var json = val.toJSON(); - // Based on the toJSON result - json = json.data && json.type ? json.data : json; - val = '[Buffer: ' + jsonStringify(json, 2, depth + 1) + ']'; - break; - default: - val = (val === '[Function]' || val === '[Circular]') - ? val - : JSON.stringify(val); // string - } - return val; - } - - for (var i in object) { - if (!Object.prototype.hasOwnProperty.call(object, i)) { - continue; // not my business - } - --length; - str += '\n ' + repeat(' ', space) + - (isArray(object) ? '' : '"' + i + '": ') + // key - _stringify(object[i]) + // value - (length ? ',' : ''); // comma - } - - return str + - // [], {} - (str.length !== 1 ? '\n' + repeat(' ', --space) + end : end); -} - -/** - * Test if a value is a buffer. - * - * @api private - * @param {*} value The value to test. - * @return {boolean} True if `value` is a buffer, otherwise false - */ -exports.isBuffer = function (value) { - return typeof Buffer !== 'undefined' && Buffer.isBuffer(value); -}; - -/** - * Return a new Thing that has the keys in sorted order. Recursive. - * - * If the Thing... - * - has already been seen, return string `'[Circular]'` - * - is `undefined`, return string `'[undefined]'` - * - is `null`, return value `null` - * - is some other primitive, return the value - * - is not a primitive or an `Array`, `Object`, or `Function`, return the value of the Thing's `toString()` method - * - is a non-empty `Array`, `Object`, or `Function`, return the result of calling this function again. - * - is an empty `Array`, `Object`, or `Function`, return the result of calling `emptyRepresentation()` - * - * @api private - * @see {@link exports.stringify} - * @param {*} value Thing to inspect. May or may not have properties. - * @param {Array} [stack=[]] Stack of seen values - * @param {string} [typeHint] Type hint - * @return {(Object|Array|Function|string|undefined)} - */ -exports.canonicalize = function canonicalize (value, stack, typeHint) { - var canonicalizedObj; - /* eslint-disable no-unused-vars */ - var prop; - /* eslint-enable no-unused-vars */ - typeHint = typeHint || type(value); - function withStack (value, fn) { - stack.push(value); - fn(); - stack.pop(); - } - - stack = stack || []; - - if (indexOf(stack, value) !== -1) { - return '[Circular]'; - } - - switch (typeHint) { - case 'undefined': - case 'buffer': - case 'null': - canonicalizedObj = value; - break; - case 'array': - withStack(value, function () { - canonicalizedObj = exports.map(value, function (item) { - return exports.canonicalize(item, stack); - }); - }); - break; - case 'function': - /* eslint-disable guard-for-in */ - for (prop in value) { - canonicalizedObj = {}; - break; - } - /* eslint-enable guard-for-in */ - if (!canonicalizedObj) { - canonicalizedObj = emptyRepresentation(value, typeHint); - break; - } - /* falls through */ - case 'object': - canonicalizedObj = canonicalizedObj || {}; - withStack(value, function () { - exports.forEach(exports.keys(value).sort(), function (key) { - canonicalizedObj[key] = exports.canonicalize(value[key], stack); - }); - }); - break; - case 'date': - case 'number': - case 'regexp': - case 'boolean': - case 'symbol': - canonicalizedObj = value; - break; - default: - canonicalizedObj = value + ''; - } - - return canonicalizedObj; -}; - -/** - * Lookup file names at the given `path`. - * - * @api public - * @param {string} path Base path to start searching from. - * @param {string[]} extensions File extensions to look for. - * @param {boolean} recursive Whether or not to recurse into subdirectories. - * @return {string[]} An array of paths. - */ -exports.lookupFiles = function lookupFiles (path, extensions, recursive) { - var files = []; - var re = new RegExp('\\.(' + extensions.join('|') + ')$'); - - if (!exists(path)) { - if (exists(path + '.js')) { - path += '.js'; - } else { - files = glob.sync(path); - if (!files.length) { - throw new Error("cannot resolve path (or pattern) '" + path + "'"); - } - return files; - } - } - - try { - var stat = statSync(path); - if (stat.isFile()) { - return path; - } - } catch (err) { - // ignore error - return; - } - - readdirSync(path).forEach(function (file) { - file = join(path, file); - try { - var stat = statSync(file); - if (stat.isDirectory()) { - if (recursive) { - files = files.concat(lookupFiles(file, extensions, recursive)); - } - return; - } - } catch (err) { - // ignore error - return; - } - if (!stat.isFile() || !re.test(file) || basename(file)[0] === '.') { - return; - } - files.push(file); - }); - - return files; -}; - -/** - * Generate an undefined error with a message warning the user. - * - * @return {Error} - */ - -exports.undefinedError = function () { - return new Error('Caught undefined error, did you throw without specifying what?'); -}; - -/** - * Generate an undefined error if `err` is not defined. - * - * @param {Error} err - * @return {Error} - */ - -exports.getError = function (err) { - return err || exports.undefinedError(); -}; - -/** - * @summary - * This Filter based on `mocha-clean` module.(see: `github.com/rstacruz/mocha-clean`) - * @description - * When invoking this function you get a filter function that get the Error.stack as an input, - * and return a prettify output. - * (i.e: strip Mocha and internal node functions from stack trace). - * @returns {Function} - */ -exports.stackTraceFilter = function () { - // TODO: Replace with `process.browser` - var is = typeof document === 'undefined' ? { node: true } : { browser: true }; - var slash = path.sep; - var cwd; - if (is.node) { - cwd = process.cwd() + slash; - } else { - cwd = (typeof location === 'undefined' - ? window.location - : location).href.replace(/\/[^/]*$/, '/'); - slash = '/'; - } - - function isMochaInternal (line) { - return (~line.indexOf('node_modules' + slash + 'mocha' + slash)) || - (~line.indexOf('node_modules' + slash + 'mocha.js')) || - (~line.indexOf('bower_components' + slash + 'mocha.js')) || - (~line.indexOf(slash + 'mocha.js')); - } - - function isNodeInternal (line) { - return (~line.indexOf('(timers.js:')) || - (~line.indexOf('(events.js:')) || - (~line.indexOf('(node.js:')) || - (~line.indexOf('(module.js:')) || - (~line.indexOf('GeneratorFunctionPrototype.next (native)')) || - false; - } - - return function (stack) { - stack = stack.split('\n'); - - stack = reduce(stack, function (list, line) { - if (isMochaInternal(line)) { - return list; - } - - if (is.node && isNodeInternal(line)) { - return list; - } - - // Clean up cwd(absolute) - if (/\(?.+:\d+:\d+\)?$/.test(line)) { - line = line.replace(cwd, ''); - } - - list.push(line); - return list; - }, []); - - return stack.join('\n'); - }; -}; - -/** - * Crude, but effective. - * @api - * @param {*} value - * @returns {boolean} Whether or not `value` is a Promise - */ -exports.isPromise = function isPromise (value) { - return typeof value === 'object' && typeof value.then === 'function'; -}; - -/** - * It's a noop. - * @api - */ -exports.noop = function () {}; - -}).call(this,require('_process'),require("buffer").Buffer) -},{"./to-iso-string":37,"_process":82,"buffer":43,"debug":2,"fs":42,"glob":42,"he":64,"json3":69,"path":42,"util":102}],39:[function(require,module,exports){ -'use strict' - -exports.byteLength = byteLength -exports.toByteArray = toByteArray -exports.fromByteArray = fromByteArray - -var lookup = [] -var revLookup = [] -var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array - -var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' -for (var i = 0, len = code.length; i < len; ++i) { - lookup[i] = code[i] - revLookup[code.charCodeAt(i)] = i -} - -revLookup['-'.charCodeAt(0)] = 62 -revLookup['_'.charCodeAt(0)] = 63 - -function placeHoldersCount (b64) { - var len = b64.length - if (len % 4 > 0) { - throw new Error('Invalid string. Length must be a multiple of 4') - } - - // the number of equal signs (place holders) - // if there are two placeholders, than the two characters before it - // represent one byte - // if there is only one, then the three characters before it represent 2 bytes - // this is just a cheap hack to not do indexOf twice - return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0 -} - -function byteLength (b64) { - // base64 is 4/3 + up to two characters of the original data - return (b64.length * 3 / 4) - placeHoldersCount(b64) -} - -function toByteArray (b64) { - var i, l, tmp, placeHolders, arr - var len = b64.length - placeHolders = placeHoldersCount(b64) - - arr = new Arr((len * 3 / 4) - placeHolders) - - // if there are placeholders, only get up to the last complete 4 chars - l = placeHolders > 0 ? len - 4 : len - - var L = 0 - - for (i = 0; i < l; i += 4) { - tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)] - arr[L++] = (tmp >> 16) & 0xFF - arr[L++] = (tmp >> 8) & 0xFF - arr[L++] = tmp & 0xFF - } - - if (placeHolders === 2) { - tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) - arr[L++] = tmp & 0xFF - } else if (placeHolders === 1) { - tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2) - arr[L++] = (tmp >> 8) & 0xFF - arr[L++] = tmp & 0xFF - } - - return arr -} - -function tripletToBase64 (num) { - return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F] -} - -function encodeChunk (uint8, start, end) { - var tmp - var output = [] - for (var i = start; i < end; i += 3) { - tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]) - output.push(tripletToBase64(tmp)) - } - return output.join('') -} - -function fromByteArray (uint8) { - var tmp - var len = uint8.length - var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes - var output = '' - var parts = [] - var maxChunkLength = 16383 // must be multiple of 3 - - // go through the array every three bytes, we'll deal with trailing stuff later - for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { - parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) - } - - // pad the end with zeros, but make sure to not forget the extra bytes - if (extraBytes === 1) { - tmp = uint8[len - 1] - output += lookup[tmp >> 2] - output += lookup[(tmp << 4) & 0x3F] - output += '==' - } else if (extraBytes === 2) { - tmp = (uint8[len - 2] << 8) + (uint8[len - 1]) - output += lookup[tmp >> 10] - output += lookup[(tmp >> 4) & 0x3F] - output += lookup[(tmp << 2) & 0x3F] - output += '=' - } - - parts.push(output) - - return parts.join('') -} - -},{}],40:[function(require,module,exports){ - -},{}],41:[function(require,module,exports){ -(function (process){ -var WritableStream = require('stream').Writable -var inherits = require('util').inherits - -module.exports = BrowserStdout - - -inherits(BrowserStdout, WritableStream) - -function BrowserStdout(opts) { - if (!(this instanceof BrowserStdout)) return new BrowserStdout(opts) - - opts = opts || {} - WritableStream.call(this, opts) - this.label = (opts.label !== undefined) ? opts.label : 'stdout' -} - -BrowserStdout.prototype._write = function(chunks, encoding, cb) { - var output = chunks.toString ? chunks.toString() : chunks - if (this.label === false) { - console.log(output) - } else { - console.log(this.label+':', output) - } - process.nextTick(cb) -} - -}).call(this,require('_process')) -},{"_process":82,"stream":96,"util":102}],42:[function(require,module,exports){ -arguments[4][40][0].apply(exports,arguments) -},{"dup":40}],43:[function(require,module,exports){ -(function (global){ -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -/* eslint-disable no-proto */ - -'use strict' - -var base64 = require('base64-js') -var ieee754 = require('ieee754') -var isArray = require('isarray') - -exports.Buffer = Buffer -exports.SlowBuffer = SlowBuffer -exports.INSPECT_MAX_BYTES = 50 - -/** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Use Object implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * Due to various browser bugs, sometimes the Object implementation will be used even - * when the browser supports typed arrays. - * - * Note: - * - * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, - * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. - * - * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. - * - * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of - * incorrect length in some situations. - - * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they - * get the Object implementation, which is slower but behaves correctly. - */ -Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined - ? global.TYPED_ARRAY_SUPPORT - : typedArraySupport() - -/* - * Export kMaxLength after typed array support is determined. - */ -exports.kMaxLength = kMaxLength() - -function typedArraySupport () { - try { - var arr = new Uint8Array(1) - arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} - return arr.foo() === 42 && // typed array instances can be augmented - typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` - arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` - } catch (e) { - return false - } -} - -function kMaxLength () { - return Buffer.TYPED_ARRAY_SUPPORT - ? 0x7fffffff - : 0x3fffffff -} - -function createBuffer (that, length) { - if (kMaxLength() < length) { - throw new RangeError('Invalid typed array length') - } - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = new Uint8Array(length) - that.__proto__ = Buffer.prototype - } else { - // Fallback: Return an object instance of the Buffer class - if (that === null) { - that = new Buffer(length) - } - that.length = length - } - - return that -} - -/** - * The Buffer constructor returns instances of `Uint8Array` that have their - * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of - * `Uint8Array`, so the returned instances will have all the node `Buffer` methods - * and the `Uint8Array` methods. Square bracket notation works as expected -- it - * returns a single octet. - * - * The `Uint8Array` prototype remains unmodified. - */ - -function Buffer (arg, encodingOrOffset, length) { - if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { - return new Buffer(arg, encodingOrOffset, length) - } - - // Common case. - if (typeof arg === 'number') { - if (typeof encodingOrOffset === 'string') { - throw new Error( - 'If encoding is specified then the first argument must be a string' - ) - } - return allocUnsafe(this, arg) - } - return from(this, arg, encodingOrOffset, length) -} - -Buffer.poolSize = 8192 // not used by this implementation - -// TODO: Legacy, not needed anymore. Remove in next major version. -Buffer._augment = function (arr) { - arr.__proto__ = Buffer.prototype - return arr -} - -function from (that, value, encodingOrOffset, length) { - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number') - } - - if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { - return fromArrayBuffer(that, value, encodingOrOffset, length) - } - - if (typeof value === 'string') { - return fromString(that, value, encodingOrOffset) - } - - return fromObject(that, value) -} - -/** - * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError - * if value is a number. - * Buffer.from(str[, encoding]) - * Buffer.from(array) - * Buffer.from(buffer) - * Buffer.from(arrayBuffer[, byteOffset[, length]]) - **/ -Buffer.from = function (value, encodingOrOffset, length) { - return from(null, value, encodingOrOffset, length) -} - -if (Buffer.TYPED_ARRAY_SUPPORT) { - Buffer.prototype.__proto__ = Uint8Array.prototype - Buffer.__proto__ = Uint8Array - if (typeof Symbol !== 'undefined' && Symbol.species && - Buffer[Symbol.species] === Buffer) { - // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 - Object.defineProperty(Buffer, Symbol.species, { - value: null, - configurable: true - }) - } -} - -function assertSize (size) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be a number') - } else if (size < 0) { - throw new RangeError('"size" argument must not be negative') - } -} - -function alloc (that, size, fill, encoding) { - assertSize(size) - if (size <= 0) { - return createBuffer(that, size) - } - if (fill !== undefined) { - // Only pay attention to encoding if it's a string. This - // prevents accidentally sending in a number that would - // be interpretted as a start offset. - return typeof encoding === 'string' - ? createBuffer(that, size).fill(fill, encoding) - : createBuffer(that, size).fill(fill) - } - return createBuffer(that, size) -} - -/** - * Creates a new filled Buffer instance. - * alloc(size[, fill[, encoding]]) - **/ -Buffer.alloc = function (size, fill, encoding) { - return alloc(null, size, fill, encoding) -} - -function allocUnsafe (that, size) { - assertSize(size) - that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) - if (!Buffer.TYPED_ARRAY_SUPPORT) { - for (var i = 0; i < size; ++i) { - that[i] = 0 - } - } - return that -} - -/** - * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. - * */ -Buffer.allocUnsafe = function (size) { - return allocUnsafe(null, size) -} -/** - * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. - */ -Buffer.allocUnsafeSlow = function (size) { - return allocUnsafe(null, size) -} - -function fromString (that, string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8' - } - - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('"encoding" must be a valid string encoding') - } - - var length = byteLength(string, encoding) | 0 - that = createBuffer(that, length) - - var actual = that.write(string, encoding) - - if (actual !== length) { - // Writing a hex string, for example, that contains invalid characters will - // cause everything after the first invalid character to be ignored. (e.g. - // 'abxxcd' will be treated as 'ab') - that = that.slice(0, actual) - } - - return that -} - -function fromArrayLike (that, array) { - var length = array.length < 0 ? 0 : checked(array.length) | 0 - that = createBuffer(that, length) - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255 - } - return that -} - -function fromArrayBuffer (that, array, byteOffset, length) { - array.byteLength // this throws if `array` is not a valid ArrayBuffer - - if (byteOffset < 0 || array.byteLength < byteOffset) { - throw new RangeError('\'offset\' is out of bounds') - } - - if (array.byteLength < byteOffset + (length || 0)) { - throw new RangeError('\'length\' is out of bounds') - } - - if (byteOffset === undefined && length === undefined) { - array = new Uint8Array(array) - } else if (length === undefined) { - array = new Uint8Array(array, byteOffset) - } else { - array = new Uint8Array(array, byteOffset, length) - } - - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = array - that.__proto__ = Buffer.prototype - } else { - // Fallback: Return an object instance of the Buffer class - that = fromArrayLike(that, array) - } - return that -} - -function fromObject (that, obj) { - if (Buffer.isBuffer(obj)) { - var len = checked(obj.length) | 0 - that = createBuffer(that, len) - - if (that.length === 0) { - return that - } - - obj.copy(that, 0, 0, len) - return that - } - - if (obj) { - if ((typeof ArrayBuffer !== 'undefined' && - obj.buffer instanceof ArrayBuffer) || 'length' in obj) { - if (typeof obj.length !== 'number' || isnan(obj.length)) { - return createBuffer(that, 0) - } - return fromArrayLike(that, obj) - } - - if (obj.type === 'Buffer' && isArray(obj.data)) { - return fromArrayLike(that, obj.data) - } - } - - throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') -} - -function checked (length) { - // Note: cannot use `length < kMaxLength()` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= kMaxLength()) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + kMaxLength().toString(16) + ' bytes') - } - return length | 0 -} - -function SlowBuffer (length) { - if (+length != length) { // eslint-disable-line eqeqeq - length = 0 - } - return Buffer.alloc(+length) -} - -Buffer.isBuffer = function isBuffer (b) { - return !!(b != null && b._isBuffer) -} - -Buffer.compare = function compare (a, b) { - if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { - throw new TypeError('Arguments must be Buffers') - } - - if (a === b) return 0 - - var x = a.length - var y = b.length - - for (var i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i] - y = b[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 -} - -Buffer.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'latin1': - case 'binary': - case 'base64': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } -} - -Buffer.concat = function concat (list, length) { - if (!isArray(list)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - - if (list.length === 0) { - return Buffer.alloc(0) - } - - var i - if (length === undefined) { - length = 0 - for (i = 0; i < list.length; ++i) { - length += list[i].length - } - } - - var buffer = Buffer.allocUnsafe(length) - var pos = 0 - for (i = 0; i < list.length; ++i) { - var buf = list[i] - if (!Buffer.isBuffer(buf)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - buf.copy(buffer, pos) - pos += buf.length - } - return buffer -} - -function byteLength (string, encoding) { - if (Buffer.isBuffer(string)) { - return string.length - } - if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && - (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { - return string.byteLength - } - if (typeof string !== 'string') { - string = '' + string - } - - var len = string.length - if (len === 0) return 0 - - // Use a for loop to avoid recursion - var loweredCase = false - for (;;) { - switch (encoding) { - case 'ascii': - case 'latin1': - case 'binary': - return len - case 'utf8': - case 'utf-8': - case undefined: - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) return utf8ToBytes(string).length // assume utf8 - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } -} -Buffer.byteLength = byteLength - -function slowToString (encoding, start, end) { - var loweredCase = false - - // No need to verify that "this.length <= MAX_UINT32" since it's a read-only - // property of a typed array. - - // This behaves neither like String nor Uint8Array in that we set start/end - // to their upper/lower bounds if the value passed is out of range. - // undefined is handled specially as per ECMA-262 6th Edition, - // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. - if (start === undefined || start < 0) { - start = 0 - } - // Return early if start > this.length. Done here to prevent potential uint32 - // coercion fail below. - if (start > this.length) { - return '' - } - - if (end === undefined || end > this.length) { - end = this.length - } - - if (end <= 0) { - return '' - } - - // Force coersion to uint32. This will also coerce falsey/NaN values to 0. - end >>>= 0 - start >>>= 0 - - if (end <= start) { - return '' - } - - if (!encoding) encoding = 'utf8' - - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) - - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) - - case 'ascii': - return asciiSlice(this, start, end) - - case 'latin1': - case 'binary': - return latin1Slice(this, start, end) - - case 'base64': - return base64Slice(this, start, end) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase() - loweredCase = true - } - } -} - -// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect -// Buffer instances. -Buffer.prototype._isBuffer = true - -function swap (b, n, m) { - var i = b[n] - b[n] = b[m] - b[m] = i -} - -Buffer.prototype.swap16 = function swap16 () { - var len = this.length - if (len % 2 !== 0) { - throw new RangeError('Buffer size must be a multiple of 16-bits') - } - for (var i = 0; i < len; i += 2) { - swap(this, i, i + 1) - } - return this -} - -Buffer.prototype.swap32 = function swap32 () { - var len = this.length - if (len % 4 !== 0) { - throw new RangeError('Buffer size must be a multiple of 32-bits') - } - for (var i = 0; i < len; i += 4) { - swap(this, i, i + 3) - swap(this, i + 1, i + 2) - } - return this -} - -Buffer.prototype.swap64 = function swap64 () { - var len = this.length - if (len % 8 !== 0) { - throw new RangeError('Buffer size must be a multiple of 64-bits') - } - for (var i = 0; i < len; i += 8) { - swap(this, i, i + 7) - swap(this, i + 1, i + 6) - swap(this, i + 2, i + 5) - swap(this, i + 3, i + 4) - } - return this -} - -Buffer.prototype.toString = function toString () { - var length = this.length | 0 - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) -} - -Buffer.prototype.equals = function equals (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer.compare(this, b) === 0 -} - -Buffer.prototype.inspect = function inspect () { - var str = '' - var max = exports.INSPECT_MAX_BYTES - if (this.length > 0) { - str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') - if (this.length > max) str += ' ... ' - } - return '' -} - -Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { - if (!Buffer.isBuffer(target)) { - throw new TypeError('Argument must be a Buffer') - } - - if (start === undefined) { - start = 0 - } - if (end === undefined) { - end = target ? target.length : 0 - } - if (thisStart === undefined) { - thisStart = 0 - } - if (thisEnd === undefined) { - thisEnd = this.length - } - - if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { - throw new RangeError('out of range index') - } - - if (thisStart >= thisEnd && start >= end) { - return 0 - } - if (thisStart >= thisEnd) { - return -1 - } - if (start >= end) { - return 1 - } - - start >>>= 0 - end >>>= 0 - thisStart >>>= 0 - thisEnd >>>= 0 - - if (this === target) return 0 - - var x = thisEnd - thisStart - var y = end - start - var len = Math.min(x, y) - - var thisCopy = this.slice(thisStart, thisEnd) - var targetCopy = target.slice(start, end) - - for (var i = 0; i < len; ++i) { - if (thisCopy[i] !== targetCopy[i]) { - x = thisCopy[i] - y = targetCopy[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 -} - -// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, -// OR the last index of `val` in `buffer` at offset <= `byteOffset`. -// -// Arguments: -// - buffer - a Buffer to search -// - val - a string, Buffer, or number -// - byteOffset - an index into `buffer`; will be clamped to an int32 -// - encoding - an optional encoding, relevant is val is a string -// - dir - true for indexOf, false for lastIndexOf -function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { - // Empty buffer means no match - if (buffer.length === 0) return -1 - - // Normalize byteOffset - if (typeof byteOffset === 'string') { - encoding = byteOffset - byteOffset = 0 - } else if (byteOffset > 0x7fffffff) { - byteOffset = 0x7fffffff - } else if (byteOffset < -0x80000000) { - byteOffset = -0x80000000 - } - byteOffset = +byteOffset // Coerce to Number. - if (isNaN(byteOffset)) { - // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer - byteOffset = dir ? 0 : (buffer.length - 1) - } - - // Normalize byteOffset: negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = buffer.length + byteOffset - if (byteOffset >= buffer.length) { - if (dir) return -1 - else byteOffset = buffer.length - 1 - } else if (byteOffset < 0) { - if (dir) byteOffset = 0 - else return -1 - } - - // Normalize val - if (typeof val === 'string') { - val = Buffer.from(val, encoding) - } - - // Finally, search either indexOf (if dir is true) or lastIndexOf - if (Buffer.isBuffer(val)) { - // Special case: looking for empty string/buffer always fails - if (val.length === 0) { - return -1 - } - return arrayIndexOf(buffer, val, byteOffset, encoding, dir) - } else if (typeof val === 'number') { - val = val & 0xFF // Search for a byte value [0-255] - if (Buffer.TYPED_ARRAY_SUPPORT && - typeof Uint8Array.prototype.indexOf === 'function') { - if (dir) { - return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) - } else { - return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) - } - } - return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) - } - - throw new TypeError('val must be string, number or Buffer') -} - -function arrayIndexOf (arr, val, byteOffset, encoding, dir) { - var indexSize = 1 - var arrLength = arr.length - var valLength = val.length - - if (encoding !== undefined) { - encoding = String(encoding).toLowerCase() - if (encoding === 'ucs2' || encoding === 'ucs-2' || - encoding === 'utf16le' || encoding === 'utf-16le') { - if (arr.length < 2 || val.length < 2) { - return -1 - } - indexSize = 2 - arrLength /= 2 - valLength /= 2 - byteOffset /= 2 - } - } - - function read (buf, i) { - if (indexSize === 1) { - return buf[i] - } else { - return buf.readUInt16BE(i * indexSize) - } - } - - var i - if (dir) { - var foundIndex = -1 - for (i = byteOffset; i < arrLength; i++) { - if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { - if (foundIndex === -1) foundIndex = i - if (i - foundIndex + 1 === valLength) return foundIndex * indexSize - } else { - if (foundIndex !== -1) i -= i - foundIndex - foundIndex = -1 - } - } - } else { - if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength - for (i = byteOffset; i >= 0; i--) { - var found = true - for (var j = 0; j < valLength; j++) { - if (read(arr, i + j) !== read(val, j)) { - found = false - break - } - } - if (found) return i - } - } - - return -1 -} - -Buffer.prototype.includes = function includes (val, byteOffset, encoding) { - return this.indexOf(val, byteOffset, encoding) !== -1 -} - -Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, true) -} - -Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, false) -} - -function hexWrite (buf, string, offset, length) { - offset = Number(offset) || 0 - var remaining = buf.length - offset - if (!length) { - length = remaining - } else { - length = Number(length) - if (length > remaining) { - length = remaining - } - } - - // must be an even number of digits - var strLen = string.length - if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') - - if (length > strLen / 2) { - length = strLen / 2 - } - for (var i = 0; i < length; ++i) { - var parsed = parseInt(string.substr(i * 2, 2), 16) - if (isNaN(parsed)) return i - buf[offset + i] = parsed - } - return i -} - -function utf8Write (buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) -} - -function asciiWrite (buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) -} - -function latin1Write (buf, string, offset, length) { - return asciiWrite(buf, string, offset, length) -} - -function base64Write (buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) -} - -function ucs2Write (buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) -} - -Buffer.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8' - length = this.length - offset = 0 - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset - length = this.length - offset = 0 - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset | 0 - if (isFinite(length)) { - length = length | 0 - if (encoding === undefined) encoding = 'utf8' - } else { - encoding = length - length = undefined - } - // legacy write(string, encoding, offset, length) - remove in v0.13 - } else { - throw new Error( - 'Buffer.write(string, encoding, offset[, length]) is no longer supported' - ) - } - - var remaining = this.length - offset - if (length === undefined || length > remaining) length = remaining - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('Attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8' - - var loweredCase = false - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - - case 'ascii': - return asciiWrite(this, string, offset, length) - - case 'latin1': - case 'binary': - return latin1Write(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } -} - -Buffer.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } -} - -function base64Slice (buf, start, end) { - if (start === 0 && end === buf.length) { - return base64.fromByteArray(buf) - } else { - return base64.fromByteArray(buf.slice(start, end)) - } -} - -function utf8Slice (buf, start, end) { - end = Math.min(buf.length, end) - var res = [] - - var i = start - while (i < end) { - var firstByte = buf[i] - var codePoint = null - var bytesPerSequence = (firstByte > 0xEF) ? 4 - : (firstByte > 0xDF) ? 3 - : (firstByte > 0xBF) ? 2 - : 1 - - if (i + bytesPerSequence <= end) { - var secondByte, thirdByte, fourthByte, tempCodePoint - - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte - } - break - case 2: - secondByte = buf[i + 1] - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint - } - } - break - case 3: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint - } - } - break - case 4: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - fourthByte = buf[i + 3] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint - } - } - } - } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD - bytesPerSequence = 1 - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000 - res.push(codePoint >>> 10 & 0x3FF | 0xD800) - codePoint = 0xDC00 | codePoint & 0x3FF - } - - res.push(codePoint) - i += bytesPerSequence - } - - return decodeCodePointsArray(res) -} - -// Based on http://stackoverflow.com/a/22747272/680742, the browser with -// the lowest limit is Chrome, with 0x10000 args. -// We go 1 magnitude less, for safety -var MAX_ARGUMENTS_LENGTH = 0x1000 - -function decodeCodePointsArray (codePoints) { - var len = codePoints.length - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } - - // Decode in chunks to avoid "call stack size exceeded". - var res = '' - var i = 0 - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) - ) - } - return res -} - -function asciiSlice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i] & 0x7F) - } - return ret -} - -function latin1Slice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i]) - } - return ret -} - -function hexSlice (buf, start, end) { - var len = buf.length - - if (!start || start < 0) start = 0 - if (!end || end < 0 || end > len) end = len - - var out = '' - for (var i = start; i < end; ++i) { - out += toHex(buf[i]) - } - return out -} - -function utf16leSlice (buf, start, end) { - var bytes = buf.slice(start, end) - var res = '' - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) - } - return res -} - -Buffer.prototype.slice = function slice (start, end) { - var len = this.length - start = ~~start - end = end === undefined ? len : ~~end - - if (start < 0) { - start += len - if (start < 0) start = 0 - } else if (start > len) { - start = len - } - - if (end < 0) { - end += len - if (end < 0) end = 0 - } else if (end > len) { - end = len - } - - if (end < start) end = start - - var newBuf - if (Buffer.TYPED_ARRAY_SUPPORT) { - newBuf = this.subarray(start, end) - newBuf.__proto__ = Buffer.prototype - } else { - var sliceLen = end - start - newBuf = new Buffer(sliceLen, undefined) - for (var i = 0; i < sliceLen; ++i) { - newBuf[i] = this[i + start] - } - } - - return newBuf -} - -/* - * Need to make sure that buffer isn't trying to write out of bounds. - */ -function checkOffset (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') -} - -Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - - return val -} - -Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - checkOffset(offset, byteLength, this.length) - } - - var val = this[offset + --byteLength] - var mul = 1 - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul - } - - return val -} - -Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length) - return this[offset] -} - -Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - return this[offset] | (this[offset + 1] << 8) -} - -Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - return (this[offset] << 8) | this[offset + 1] -} - -Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) -} - -Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) -} - -Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val -} - -Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var i = byteLength - var mul = 1 - var val = this[offset + --i] - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val -} - -Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length) - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) -} - -Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset] | (this[offset + 1] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} - -Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset + 1] | (this[offset] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} - -Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) -} - -Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) -} - -Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, true, 23, 4) -} - -Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, false, 23, 4) -} - -Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, true, 52, 8) -} - -Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, false, 52, 8) -} - -function checkInt (buf, value, offset, ext, max, min) { - if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') - if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') - if (offset + ext > buf.length) throw new RangeError('Index out of range') -} - -Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var mul = 1 - var i = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var i = byteLength - 1 - var mul = 1 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) - this[offset] = (value & 0xff) - return offset + 1 -} - -function objectWriteUInt16 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffff + value + 1 - for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { - buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> - (littleEndian ? i : 1 - i) * 8 - } -} - -Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - } else { - objectWriteUInt16(this, value, offset, true) - } - return offset + 2 -} - -Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - } else { - objectWriteUInt16(this, value, offset, false) - } - return offset + 2 -} - -function objectWriteUInt32 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffffffff + value + 1 - for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { - buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff - } -} - -Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset + 3] = (value >>> 24) - this[offset + 2] = (value >>> 16) - this[offset + 1] = (value >>> 8) - this[offset] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, true) - } - return offset + 4 -} - -Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, false) - } - return offset + 4 -} - -Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = 0 - var mul = 1 - var sub = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = byteLength - 1 - var mul = 1 - var sub = 0 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) - if (value < 0) value = 0xff + value + 1 - this[offset] = (value & 0xff) - return offset + 1 -} - -Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - } else { - objectWriteUInt16(this, value, offset, true) - } - return offset + 2 -} - -Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - } else { - objectWriteUInt16(this, value, offset, false) - } - return offset + 2 -} - -Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - this[offset + 2] = (value >>> 16) - this[offset + 3] = (value >>> 24) - } else { - objectWriteUInt32(this, value, offset, true) - } - return offset + 4 -} - -Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (value < 0) value = 0xffffffff + value + 1 - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, false) - } - return offset + 4 -} - -function checkIEEE754 (buf, value, offset, ext, max, min) { - if (offset + ext > buf.length) throw new RangeError('Index out of range') - if (offset < 0) throw new RangeError('Index out of range') -} - -function writeFloat (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) - } - ieee754.write(buf, value, offset, littleEndian, 23, 4) - return offset + 4 -} - -Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) -} - -Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) -} - -function writeDouble (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) - } - ieee754.write(buf, value, offset, littleEndian, 52, 8) - return offset + 8 -} - -Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) -} - -Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) -} - -// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) -Buffer.prototype.copy = function copy (target, targetStart, start, end) { - if (!start) start = 0 - if (!end && end !== 0) end = this.length - if (targetStart >= target.length) targetStart = target.length - if (!targetStart) targetStart = 0 - if (end > 0 && end < start) end = start - - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - - // Are we oob? - if (end > this.length) end = this.length - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start - } - - var len = end - start - var i - - if (this === target && start < targetStart && targetStart < end) { - // descending copy from end - for (i = len - 1; i >= 0; --i) { - target[i + targetStart] = this[i + start] - } - } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { - // ascending copy from start - for (i = 0; i < len; ++i) { - target[i + targetStart] = this[i + start] - } - } else { - Uint8Array.prototype.set.call( - target, - this.subarray(start, start + len), - targetStart - ) - } - - return len -} - -// Usage: -// buffer.fill(number[, offset[, end]]) -// buffer.fill(buffer[, offset[, end]]) -// buffer.fill(string[, offset[, end]][, encoding]) -Buffer.prototype.fill = function fill (val, start, end, encoding) { - // Handle string cases: - if (typeof val === 'string') { - if (typeof start === 'string') { - encoding = start - start = 0 - end = this.length - } else if (typeof end === 'string') { - encoding = end - end = this.length - } - if (val.length === 1) { - var code = val.charCodeAt(0) - if (code < 256) { - val = code - } - } - if (encoding !== undefined && typeof encoding !== 'string') { - throw new TypeError('encoding must be a string') - } - if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - } else if (typeof val === 'number') { - val = val & 255 - } - - // Invalid ranges are not set to a default, so can range check early. - if (start < 0 || this.length < start || this.length < end) { - throw new RangeError('Out of range index') - } - - if (end <= start) { - return this - } - - start = start >>> 0 - end = end === undefined ? this.length : end >>> 0 - - if (!val) val = 0 - - var i - if (typeof val === 'number') { - for (i = start; i < end; ++i) { - this[i] = val - } - } else { - var bytes = Buffer.isBuffer(val) - ? val - : utf8ToBytes(new Buffer(val, encoding).toString()) - var len = bytes.length - for (i = 0; i < end - start; ++i) { - this[i + start] = bytes[i % len] - } - } - - return this -} - -// HELPER FUNCTIONS -// ================ - -var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g - -function base64clean (str) { - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = stringtrim(str).replace(INVALID_BASE64_RE, '') - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '=' - } - return str -} - -function stringtrim (str) { - if (str.trim) return str.trim() - return str.replace(/^\s+|\s+$/g, '') -} - -function toHex (n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) -} - -function utf8ToBytes (string, units) { - units = units || Infinity - var codePoint - var length = string.length - var leadSurrogate = null - var bytes = [] - - for (var i = 0; i < length; ++i) { - codePoint = string.charCodeAt(i) - - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } - - // valid lead - leadSurrogate = codePoint - - continue - } - - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - leadSurrogate = codePoint - continue - } - - // valid surrogate pair - codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - } - - leadSurrogate = null - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint) - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else { - throw new Error('Invalid code point') - } - } - - return bytes -} - -function asciiToBytes (str) { - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF) - } - return byteArray -} - -function utf16leToBytes (str, units) { - var c, hi, lo - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - if ((units -= 2) < 0) break - - c = str.charCodeAt(i) - hi = c >> 8 - lo = c % 256 - byteArray.push(lo) - byteArray.push(hi) - } - - return byteArray -} - -function base64ToBytes (str) { - return base64.toByteArray(base64clean(str)) -} - -function blitBuffer (src, dst, offset, length) { - for (var i = 0; i < length; ++i) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i] - } - return i -} - -function isnan (val) { - return val !== val // eslint-disable-line no-self-compare -} - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"base64-js":39,"ieee754":65,"isarray":68}],44:[function(require,module,exports){ -(function (Buffer){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. - -function isArray(arg) { - if (Array.isArray) { - return Array.isArray(arg); - } - return objectToString(arg) === '[object Array]'; -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = Buffer.isBuffer; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - -}).call(this,{"isBuffer":require("../../is-buffer/index.js")}) -},{"../../is-buffer/index.js":67}],45:[function(require,module,exports){ -/*istanbul ignore start*/"use strict"; - -exports.__esModule = true; -exports. /*istanbul ignore end*/convertChangesToDMP = convertChangesToDMP; -// See: http://code.google.com/p/google-diff-match-patch/wiki/API -function convertChangesToDMP(changes) { - var ret = [], - change = /*istanbul ignore start*/void 0 /*istanbul ignore end*/, - operation = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; - for (var i = 0; i < changes.length; i++) { - change = changes[i]; - if (change.added) { - operation = 1; - } else if (change.removed) { - operation = -1; - } else { - operation = 0; - } - - ret.push([operation, change.value]); - } - return ret; -} - - -},{}],46:[function(require,module,exports){ -/*istanbul ignore start*/'use strict'; - -exports.__esModule = true; -exports. /*istanbul ignore end*/convertChangesToXML = convertChangesToXML; -function convertChangesToXML(changes) { - var ret = []; - for (var i = 0; i < changes.length; i++) { - var change = changes[i]; - if (change.added) { - ret.push(''); - } else if (change.removed) { - ret.push(''); - } - - ret.push(escapeHTML(change.value)); - - if (change.added) { - ret.push(''); - } else if (change.removed) { - ret.push(''); - } - } - return ret.join(''); -} - -function escapeHTML(s) { - var n = s; - n = n.replace(/&/g, '&'); - n = n.replace(//g, '>'); - n = n.replace(/"/g, '"'); - - return n; -} - - -},{}],47:[function(require,module,exports){ -/*istanbul ignore start*/'use strict'; - -exports.__esModule = true; -exports.arrayDiff = undefined; -exports. /*istanbul ignore end*/diffArrays = diffArrays; - -var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/; - -/*istanbul ignore start*/ -var _base2 = _interopRequireDefault(_base); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/*istanbul ignore end*/var arrayDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/arrayDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/; -arrayDiff.tokenize = arrayDiff.join = function (value) { - return value.slice(); -}; - -function diffArrays(oldArr, newArr, callback) { - return arrayDiff.diff(oldArr, newArr, callback); -} - - -},{"./base":48}],48:[function(require,module,exports){ -/*istanbul ignore start*/'use strict'; - -exports.__esModule = true; -exports['default'] = /*istanbul ignore end*/Diff; -function Diff() {} - -Diff.prototype = { /*istanbul ignore start*/ - /*istanbul ignore end*/diff: function diff(oldString, newString) { - /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; - - var callback = options.callback; - if (typeof options === 'function') { - callback = options; - options = {}; - } - this.options = options; - - var self = this; - - function done(value) { - if (callback) { - setTimeout(function () { - callback(undefined, value); - }, 0); - return true; - } else { - return value; - } - } - - // Allow subclasses to massage the input prior to running - oldString = this.castInput(oldString); - newString = this.castInput(newString); - - oldString = this.removeEmpty(this.tokenize(oldString)); - newString = this.removeEmpty(this.tokenize(newString)); - - var newLen = newString.length, - oldLen = oldString.length; - var editLength = 1; - var maxEditLength = newLen + oldLen; - var bestPath = [{ newPos: -1, components: [] }]; - - // Seed editLength = 0, i.e. the content starts with the same values - var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); - if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { - // Identity per the equality and tokenizer - return done([{ value: this.join(newString), count: newString.length }]); - } - - // Main worker method. checks all permutations of a given edit length for acceptance. - function execEditLength() { - for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { - var basePath = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; - var addPath = bestPath[diagonalPath - 1], - removePath = bestPath[diagonalPath + 1], - _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; - if (addPath) { - // No one else is going to attempt to use this value, clear it - bestPath[diagonalPath - 1] = undefined; - } - - var canAdd = addPath && addPath.newPos + 1 < newLen, - canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; - if (!canAdd && !canRemove) { - // If this path is a terminal then prune - bestPath[diagonalPath] = undefined; - continue; - } - - // Select the diagonal that we want to branch from. We select the prior - // path whose position in the new string is the farthest from the origin - // and does not pass the bounds of the diff graph - if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { - basePath = clonePath(removePath); - self.pushComponent(basePath.components, undefined, true); - } else { - basePath = addPath; // No need to clone, we've pulled it from the list - basePath.newPos++; - self.pushComponent(basePath.components, true, undefined); - } - - _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); - - // If we have hit the end of both strings, then we are done - if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { - return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken)); - } else { - // Otherwise track this path as a potential candidate and continue. - bestPath[diagonalPath] = basePath; - } - } - - editLength++; - } - - // Performs the length of edit iteration. Is a bit fugly as this has to support the - // sync and async mode which is never fun. Loops over execEditLength until a value - // is produced. - if (callback) { - (function exec() { - setTimeout(function () { - // This should not happen, but we want to be safe. - /* istanbul ignore next */ - if (editLength > maxEditLength) { - return callback(); - } - - if (!execEditLength()) { - exec(); - } - }, 0); - })(); - } else { - while (editLength <= maxEditLength) { - var ret = execEditLength(); - if (ret) { - return ret; - } - } - } - }, - /*istanbul ignore start*/ /*istanbul ignore end*/pushComponent: function pushComponent(components, added, removed) { - var last = components[components.length - 1]; - if (last && last.added === added && last.removed === removed) { - // We need to clone here as the component clone operation is just - // as shallow array clone - components[components.length - 1] = { count: last.count + 1, added: added, removed: removed }; - } else { - components.push({ count: 1, added: added, removed: removed }); - } - }, - /*istanbul ignore start*/ /*istanbul ignore end*/extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { - var newLen = newString.length, - oldLen = oldString.length, - newPos = basePath.newPos, - oldPos = newPos - diagonalPath, - commonCount = 0; - while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { - newPos++; - oldPos++; - commonCount++; - } - - if (commonCount) { - basePath.components.push({ count: commonCount }); - } - - basePath.newPos = newPos; - return oldPos; - }, - /*istanbul ignore start*/ /*istanbul ignore end*/equals: function equals(left, right) { - return left === right; - }, - /*istanbul ignore start*/ /*istanbul ignore end*/removeEmpty: function removeEmpty(array) { - var ret = []; - for (var i = 0; i < array.length; i++) { - if (array[i]) { - ret.push(array[i]); - } - } - return ret; - }, - /*istanbul ignore start*/ /*istanbul ignore end*/castInput: function castInput(value) { - return value; - }, - /*istanbul ignore start*/ /*istanbul ignore end*/tokenize: function tokenize(value) { - return value.split(''); - }, - /*istanbul ignore start*/ /*istanbul ignore end*/join: function join(chars) { - return chars.join(''); - } -}; - -function buildValues(diff, components, newString, oldString, useLongestToken) { - var componentPos = 0, - componentLen = components.length, - newPos = 0, - oldPos = 0; - - for (; componentPos < componentLen; componentPos++) { - var component = components[componentPos]; - if (!component.removed) { - if (!component.added && useLongestToken) { - var value = newString.slice(newPos, newPos + component.count); - value = value.map(function (value, i) { - var oldValue = oldString[oldPos + i]; - return oldValue.length > value.length ? oldValue : value; - }); - - component.value = diff.join(value); - } else { - component.value = diff.join(newString.slice(newPos, newPos + component.count)); - } - newPos += component.count; - - // Common case - if (!component.added) { - oldPos += component.count; - } - } else { - component.value = diff.join(oldString.slice(oldPos, oldPos + component.count)); - oldPos += component.count; - - // Reverse add and remove so removes are output first to match common convention - // The diffing algorithm is tied to add then remove output and this is the simplest - // route to get the desired output with minimal overhead. - if (componentPos && components[componentPos - 1].added) { - var tmp = components[componentPos - 1]; - components[componentPos - 1] = components[componentPos]; - components[componentPos] = tmp; - } - } - } - - // Special case handle for when one terminal is ignored. For this case we merge the - // terminal into the prior string and drop the change. - var lastComponent = components[componentLen - 1]; - if (componentLen > 1 && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) { - components[componentLen - 2].value += lastComponent.value; - components.pop(); - } - - return components; -} - -function clonePath(path) { - return { newPos: path.newPos, components: path.components.slice(0) }; -} - - -},{}],49:[function(require,module,exports){ -/*istanbul ignore start*/'use strict'; - -exports.__esModule = true; -exports.characterDiff = undefined; -exports. /*istanbul ignore end*/diffChars = diffChars; - -var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/; - -/*istanbul ignore start*/ -var _base2 = _interopRequireDefault(_base); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/*istanbul ignore end*/var characterDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/characterDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/; -function diffChars(oldStr, newStr, callback) { - return characterDiff.diff(oldStr, newStr, callback); -} - - -},{"./base":48}],50:[function(require,module,exports){ -/*istanbul ignore start*/'use strict'; - -exports.__esModule = true; -exports.cssDiff = undefined; -exports. /*istanbul ignore end*/diffCss = diffCss; - -var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/; - -/*istanbul ignore start*/ -var _base2 = _interopRequireDefault(_base); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/*istanbul ignore end*/var cssDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/cssDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/; -cssDiff.tokenize = function (value) { - return value.split(/([{}:;,]|\s+)/); -}; - -function diffCss(oldStr, newStr, callback) { - return cssDiff.diff(oldStr, newStr, callback); -} - - -},{"./base":48}],51:[function(require,module,exports){ -/*istanbul ignore start*/'use strict'; - -exports.__esModule = true; -exports.jsonDiff = undefined; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; - -exports. /*istanbul ignore end*/diffJson = diffJson; -/*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = canonicalize; - -var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/; - -/*istanbul ignore start*/ -var _base2 = _interopRequireDefault(_base); - -/*istanbul ignore end*/ -var /*istanbul ignore start*/_line = require('./line') /*istanbul ignore end*/; - -/*istanbul ignore start*/ -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/*istanbul ignore end*/ - -var objectPrototypeToString = Object.prototype.toString; - -var jsonDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/jsonDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/; -// Discriminate between two lines of pretty-printed, serialized JSON where one of them has a -// dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output: -jsonDiff.useLongestToken = true; - -jsonDiff.tokenize = /*istanbul ignore start*/_line.lineDiff. /*istanbul ignore end*/tokenize; -jsonDiff.castInput = function (value) { - /*istanbul ignore start*/var /*istanbul ignore end*/undefinedReplacement = this.options.undefinedReplacement; - - - return typeof value === 'string' ? value : JSON.stringify(canonicalize(value), function (k, v) { - if (typeof v === 'undefined') { - return undefinedReplacement; - } - - return v; - }, ' '); -}; -jsonDiff.equals = function (left, right) { - return (/*istanbul ignore start*/_base2['default']. /*istanbul ignore end*/prototype.equals(left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1')) - ); -}; - -function diffJson(oldObj, newObj, options) { - return jsonDiff.diff(oldObj, newObj, options); -} - -// This function handles the presence of circular references by bailing out when encountering an -// object that is already on the "stack" of items being processed. -function canonicalize(obj, stack, replacementStack) { - stack = stack || []; - replacementStack = replacementStack || []; - - var i = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; - - for (i = 0; i < stack.length; i += 1) { - if (stack[i] === obj) { - return replacementStack[i]; - } - } - - var canonicalizedObj = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; - - if ('[object Array]' === objectPrototypeToString.call(obj)) { - stack.push(obj); - canonicalizedObj = new Array(obj.length); - replacementStack.push(canonicalizedObj); - for (i = 0; i < obj.length; i += 1) { - canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack); - } - stack.pop(); - replacementStack.pop(); - return canonicalizedObj; - } - - if (obj && obj.toJSON) { - obj = obj.toJSON(); - } - - if ( /*istanbul ignore start*/(typeof /*istanbul ignore end*/obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && obj !== null) { - stack.push(obj); - canonicalizedObj = {}; - replacementStack.push(canonicalizedObj); - var sortedKeys = [], - key = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; - for (key in obj) { - /* istanbul ignore else */ - if (obj.hasOwnProperty(key)) { - sortedKeys.push(key); - } - } - sortedKeys.sort(); - for (i = 0; i < sortedKeys.length; i += 1) { - key = sortedKeys[i]; - canonicalizedObj[key] = canonicalize(obj[key], stack, replacementStack); - } - stack.pop(); - replacementStack.pop(); - } else { - canonicalizedObj = obj; - } - return canonicalizedObj; -} - - -},{"./base":48,"./line":52}],52:[function(require,module,exports){ -/*istanbul ignore start*/'use strict'; - -exports.__esModule = true; -exports.lineDiff = undefined; -exports. /*istanbul ignore end*/diffLines = diffLines; -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = diffTrimmedLines; - -var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/; - -/*istanbul ignore start*/ -var _base2 = _interopRequireDefault(_base); - -/*istanbul ignore end*/ -var /*istanbul ignore start*/_params = require('../util/params') /*istanbul ignore end*/; - -/*istanbul ignore start*/ -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/*istanbul ignore end*/var lineDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/lineDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/; -lineDiff.tokenize = function (value) { - var retLines = [], - linesAndNewlines = value.split(/(\n|\r\n)/); - - // Ignore the final empty token that occurs if the string ends with a new line - if (!linesAndNewlines[linesAndNewlines.length - 1]) { - linesAndNewlines.pop(); - } - - // Merge the content and line separators into single tokens - for (var i = 0; i < linesAndNewlines.length; i++) { - var line = linesAndNewlines[i]; - - if (i % 2 && !this.options.newlineIsToken) { - retLines[retLines.length - 1] += line; - } else { - if (this.options.ignoreWhitespace) { - line = line.trim(); - } - retLines.push(line); - } - } - - return retLines; -}; - -function diffLines(oldStr, newStr, callback) { - return lineDiff.diff(oldStr, newStr, callback); -} -function diffTrimmedLines(oldStr, newStr, callback) { - var options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(callback, { ignoreWhitespace: true }); - return lineDiff.diff(oldStr, newStr, options); -} - - -},{"../util/params":60,"./base":48}],53:[function(require,module,exports){ -/*istanbul ignore start*/'use strict'; - -exports.__esModule = true; -exports.sentenceDiff = undefined; -exports. /*istanbul ignore end*/diffSentences = diffSentences; - -var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/; - -/*istanbul ignore start*/ -var _base2 = _interopRequireDefault(_base); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/*istanbul ignore end*/var sentenceDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/sentenceDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/; -sentenceDiff.tokenize = function (value) { - return value.split(/(\S.+?[.!?])(?=\s+|$)/); -}; - -function diffSentences(oldStr, newStr, callback) { - return sentenceDiff.diff(oldStr, newStr, callback); -} - - -},{"./base":48}],54:[function(require,module,exports){ -/*istanbul ignore start*/'use strict'; - -exports.__esModule = true; -exports.wordDiff = undefined; -exports. /*istanbul ignore end*/diffWords = diffWords; -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = diffWordsWithSpace; - -var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/; - -/*istanbul ignore start*/ -var _base2 = _interopRequireDefault(_base); - -/*istanbul ignore end*/ -var /*istanbul ignore start*/_params = require('../util/params') /*istanbul ignore end*/; - -/*istanbul ignore start*/ -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/*istanbul ignore end*/ - -// Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode -// -// Ranges and exceptions: -// Latin-1 Supplement, 0080–00FF -// - U+00D7 × Multiplication sign -// - U+00F7 ÷ Division sign -// Latin Extended-A, 0100–017F -// Latin Extended-B, 0180–024F -// IPA Extensions, 0250–02AF -// Spacing Modifier Letters, 02B0–02FF -// - U+02C7 ˇ ˇ Caron -// - U+02D8 ˘ ˘ Breve -// - U+02D9 ˙ ˙ Dot Above -// - U+02DA ˚ ˚ Ring Above -// - U+02DB ˛ ˛ Ogonek -// - U+02DC ˜ ˜ Small Tilde -// - U+02DD ˝ ˝ Double Acute Accent -// Latin Extended Additional, 1E00–1EFF -var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; - -var reWhitespace = /\S/; - -var wordDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/wordDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/; -wordDiff.equals = function (left, right) { - return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right); -}; -wordDiff.tokenize = function (value) { - var tokens = value.split(/(\s+|\b)/); - - // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set. - for (var i = 0; i < tokens.length - 1; i++) { - // If we have an empty string in the next field and we have only word chars before and after, merge - if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) { - tokens[i] += tokens[i + 2]; - tokens.splice(i + 1, 2); - i--; - } - } - - return tokens; -}; - -function diffWords(oldStr, newStr, callback) { - var options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(callback, { ignoreWhitespace: true }); - return wordDiff.diff(oldStr, newStr, options); -} -function diffWordsWithSpace(oldStr, newStr, callback) { - return wordDiff.diff(oldStr, newStr, callback); -} - - -},{"../util/params":60,"./base":48}],55:[function(require,module,exports){ -/*istanbul ignore start*/'use strict'; - -exports.__esModule = true; -exports.canonicalize = exports.convertChangesToXML = exports.convertChangesToDMP = exports.parsePatch = exports.applyPatches = exports.applyPatch = exports.createPatch = exports.createTwoFilesPatch = exports.structuredPatch = exports.diffArrays = exports.diffJson = exports.diffCss = exports.diffSentences = exports.diffTrimmedLines = exports.diffLines = exports.diffWordsWithSpace = exports.diffWords = exports.diffChars = exports.Diff = undefined; -/*istanbul ignore end*/ -var /*istanbul ignore start*/_base = require('./diff/base') /*istanbul ignore end*/; - -/*istanbul ignore start*/ -var _base2 = _interopRequireDefault(_base); - -/*istanbul ignore end*/ -var /*istanbul ignore start*/_character = require('./diff/character') /*istanbul ignore end*/; - -var /*istanbul ignore start*/_word = require('./diff/word') /*istanbul ignore end*/; - -var /*istanbul ignore start*/_line = require('./diff/line') /*istanbul ignore end*/; - -var /*istanbul ignore start*/_sentence = require('./diff/sentence') /*istanbul ignore end*/; - -var /*istanbul ignore start*/_css = require('./diff/css') /*istanbul ignore end*/; - -var /*istanbul ignore start*/_json = require('./diff/json') /*istanbul ignore end*/; - -var /*istanbul ignore start*/_array = require('./diff/array') /*istanbul ignore end*/; - -var /*istanbul ignore start*/_apply = require('./patch/apply') /*istanbul ignore end*/; - -var /*istanbul ignore start*/_parse = require('./patch/parse') /*istanbul ignore end*/; - -var /*istanbul ignore start*/_create = require('./patch/create') /*istanbul ignore end*/; - -var /*istanbul ignore start*/_dmp = require('./convert/dmp') /*istanbul ignore end*/; - -var /*istanbul ignore start*/_xml = require('./convert/xml') /*istanbul ignore end*/; - -/*istanbul ignore start*/ -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -exports. /*istanbul ignore end*/Diff = _base2['default']; -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffChars = _character.diffChars; -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWords = _word.diffWords; -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = _word.diffWordsWithSpace; -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffLines = _line.diffLines; -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = _line.diffTrimmedLines; -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffSentences = _sentence.diffSentences; -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffCss = _css.diffCss; -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffJson = _json.diffJson; -/*istanbul ignore start*/exports. /*istanbul ignore end*/diffArrays = _array.diffArrays; -/*istanbul ignore start*/exports. /*istanbul ignore end*/structuredPatch = _create.structuredPatch; -/*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = _create.createTwoFilesPatch; -/*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = _create.createPatch; -/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatch = _apply.applyPatch; -/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = _apply.applyPatches; -/*istanbul ignore start*/exports. /*istanbul ignore end*/parsePatch = _parse.parsePatch; -/*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToDMP = _dmp.convertChangesToDMP; -/*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToXML = _xml.convertChangesToXML; -/*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = _json.canonicalize; /* See LICENSE file for terms of use */ - -/* - * Text diff implementation. - * - * This library supports the following APIS: - * JsDiff.diffChars: Character by character diff - * JsDiff.diffWords: Word (as defined by \b regex) diff which ignores whitespace - * JsDiff.diffLines: Line based diff - * - * JsDiff.diffCss: Diff targeted at CSS content - * - * These methods are based on the implementation proposed in - * "An O(ND) Difference Algorithm and its Variations" (Myers, 1986). - * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927 - */ - - -},{"./convert/dmp":45,"./convert/xml":46,"./diff/array":47,"./diff/base":48,"./diff/character":49,"./diff/css":50,"./diff/json":51,"./diff/line":52,"./diff/sentence":53,"./diff/word":54,"./patch/apply":56,"./patch/create":57,"./patch/parse":58}],56:[function(require,module,exports){ -/*istanbul ignore start*/'use strict'; - -exports.__esModule = true; -exports. /*istanbul ignore end*/applyPatch = applyPatch; -/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = applyPatches; - -var /*istanbul ignore start*/_parse = require('./parse') /*istanbul ignore end*/; - -var /*istanbul ignore start*/_distanceIterator = require('../util/distance-iterator') /*istanbul ignore end*/; - -/*istanbul ignore start*/ -var _distanceIterator2 = _interopRequireDefault(_distanceIterator); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -/*istanbul ignore end*/function applyPatch(source, uniDiff) { - /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; - - if (typeof uniDiff === 'string') { - uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff); - } - - if (Array.isArray(uniDiff)) { - if (uniDiff.length > 1) { - throw new Error('applyPatch only works with a single input.'); - } - - uniDiff = uniDiff[0]; - } - - // Apply the diff to the input - var lines = source.split(/\r\n|[\n\v\f\r\x85]/), - delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [], - hunks = uniDiff.hunks, - compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) /*istanbul ignore start*/{ - return (/*istanbul ignore end*/line === patchContent - ); - }, - errorCount = 0, - fuzzFactor = options.fuzzFactor || 0, - minLine = 0, - offset = 0, - removeEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/, - addEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; - - /** - * Checks if the hunk exactly fits on the provided location - */ - function hunkFits(hunk, toPos) { - for (var j = 0; j < hunk.lines.length; j++) { - var line = hunk.lines[j], - operation = line[0], - content = line.substr(1); - - if (operation === ' ' || operation === '-') { - // Context sanity check - if (!compareLine(toPos + 1, lines[toPos], operation, content)) { - errorCount++; - - if (errorCount > fuzzFactor) { - return false; - } - } - toPos++; - } - } - - return true; - } - - // Search best fit offsets for each hunk based on the previous ones - for (var i = 0; i < hunks.length; i++) { - var hunk = hunks[i], - maxLine = lines.length - hunk.oldLines, - localOffset = 0, - toPos = offset + hunk.oldStart - 1; - - var iterator = /*istanbul ignore start*/(0, _distanceIterator2['default']) /*istanbul ignore end*/(toPos, minLine, maxLine); - - for (; localOffset !== undefined; localOffset = iterator()) { - if (hunkFits(hunk, toPos + localOffset)) { - hunk.offset = offset += localOffset; - break; - } - } - - if (localOffset === undefined) { - return false; - } - - // Set lower text limit to end of the current hunk, so next ones don't try - // to fit over already patched text - minLine = hunk.offset + hunk.oldStart + hunk.oldLines; - } - - // Apply patch hunks - for (var _i = 0; _i < hunks.length; _i++) { - var _hunk = hunks[_i], - _toPos = _hunk.offset + _hunk.newStart - 1; - if (_hunk.newLines == 0) { - _toPos++; - } - - for (var j = 0; j < _hunk.lines.length; j++) { - var line = _hunk.lines[j], - operation = line[0], - content = line.substr(1), - delimiter = _hunk.linedelimiters[j]; - - if (operation === ' ') { - _toPos++; - } else if (operation === '-') { - lines.splice(_toPos, 1); - delimiters.splice(_toPos, 1); - /* istanbul ignore else */ - } else if (operation === '+') { - lines.splice(_toPos, 0, content); - delimiters.splice(_toPos, 0, delimiter); - _toPos++; - } else if (operation === '\\') { - var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null; - if (previousOperation === '+') { - removeEOFNL = true; - } else if (previousOperation === '-') { - addEOFNL = true; - } - } - } - } - - // Handle EOFNL insertion/removal - if (removeEOFNL) { - while (!lines[lines.length - 1]) { - lines.pop(); - delimiters.pop(); - } - } else if (addEOFNL) { - lines.push(''); - delimiters.push('\n'); - } - for (var _k = 0; _k < lines.length - 1; _k++) { - lines[_k] = lines[_k] + delimiters[_k]; - } - return lines.join(''); -} - -// Wrapper that supports multiple file patches via callbacks. -function applyPatches(uniDiff, options) { - if (typeof uniDiff === 'string') { - uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff); - } - - var currentIndex = 0; - function processIndex() { - var index = uniDiff[currentIndex++]; - if (!index) { - return options.complete(); - } - - options.loadFile(index, function (err, data) { - if (err) { - return options.complete(err); - } - - var updatedContent = applyPatch(data, index, options); - options.patched(index, updatedContent, function (err) { - if (err) { - return options.complete(err); - } - - processIndex(); - }); - }); - } - processIndex(); -} - - -},{"../util/distance-iterator":59,"./parse":58}],57:[function(require,module,exports){ -/*istanbul ignore start*/'use strict'; - -exports.__esModule = true; -exports. /*istanbul ignore end*/structuredPatch = structuredPatch; -/*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = createTwoFilesPatch; -/*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = createPatch; - -var /*istanbul ignore start*/_line = require('../diff/line') /*istanbul ignore end*/; - -/*istanbul ignore start*/ -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -/*istanbul ignore end*/function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { - if (!options) { - options = {}; - } - if (typeof options.context === 'undefined') { - options.context = 4; - } - - var diff = /*istanbul ignore start*/(0, _line.diffLines) /*istanbul ignore end*/(oldStr, newStr, options); - diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier - - function contextLines(lines) { - return lines.map(function (entry) { - return ' ' + entry; - }); - } - - var hunks = []; - var oldRangeStart = 0, - newRangeStart = 0, - curRange = [], - oldLine = 1, - newLine = 1; - /*istanbul ignore start*/ - var _loop = function _loop( /*istanbul ignore end*/i) { - var current = diff[i], - lines = current.lines || current.value.replace(/\n$/, '').split('\n'); - current.lines = lines; - - if (current.added || current.removed) { - /*istanbul ignore start*/ - var _curRange; - - /*istanbul ignore end*/ - // If we have previous context, start with that - if (!oldRangeStart) { - var prev = diff[i - 1]; - oldRangeStart = oldLine; - newRangeStart = newLine; - - if (prev) { - curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : []; - oldRangeStart -= curRange.length; - newRangeStart -= curRange.length; - } - } - - // Output our changes - /*istanbul ignore start*/(_curRange = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/lines.map(function (entry) { - return (current.added ? '+' : '-') + entry; - }))); - - // Track the updated file position - if (current.added) { - newLine += lines.length; - } else { - oldLine += lines.length; - } - } else { - // Identical context lines. Track line changes - if (oldRangeStart) { - // Close out any changes that have been output (or join overlapping) - if (lines.length <= options.context * 2 && i < diff.length - 2) { - /*istanbul ignore start*/ - var _curRange2; - - /*istanbul ignore end*/ - // Overlapping - /*istanbul ignore start*/(_curRange2 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines))); - } else { - /*istanbul ignore start*/ - var _curRange3; - - /*istanbul ignore end*/ - // end the range and output - var contextSize = Math.min(lines.length, options.context); - /*istanbul ignore start*/(_curRange3 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines.slice(0, contextSize)))); - - var hunk = { - oldStart: oldRangeStart, - oldLines: oldLine - oldRangeStart + contextSize, - newStart: newRangeStart, - newLines: newLine - newRangeStart + contextSize, - lines: curRange - }; - if (i >= diff.length - 2 && lines.length <= options.context) { - // EOF is inside this hunk - var oldEOFNewline = /\n$/.test(oldStr); - var newEOFNewline = /\n$/.test(newStr); - if (lines.length == 0 && !oldEOFNewline) { - // special case: old has no eol and no trailing context; no-nl can end up before adds - curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file'); - } else if (!oldEOFNewline || !newEOFNewline) { - curRange.push('\\ No newline at end of file'); - } - } - hunks.push(hunk); - - oldRangeStart = 0; - newRangeStart = 0; - curRange = []; - } - } - oldLine += lines.length; - newLine += lines.length; - } - }; - - for (var i = 0; i < diff.length; i++) { - /*istanbul ignore start*/ - _loop( /*istanbul ignore end*/i); - } - - return { - oldFileName: oldFileName, newFileName: newFileName, - oldHeader: oldHeader, newHeader: newHeader, - hunks: hunks - }; -} - -function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { - var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options); - - var ret = []; - if (oldFileName == newFileName) { - ret.push('Index: ' + oldFileName); - } - ret.push('==================================================================='); - ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader)); - ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader)); - - for (var i = 0; i < diff.hunks.length; i++) { - var hunk = diff.hunks[i]; - ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@'); - ret.push.apply(ret, hunk.lines); - } - - return ret.join('\n') + '\n'; -} - -function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) { - return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options); -} - - -},{"../diff/line":52}],58:[function(require,module,exports){ -/*istanbul ignore start*/'use strict'; - -exports.__esModule = true; -exports. /*istanbul ignore end*/parsePatch = parsePatch; -function parsePatch(uniDiff) { - /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; - - var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/), - delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [], - list = [], - i = 0; - - function parseIndex() { - var index = {}; - list.push(index); - - // Parse diff metadata - while (i < diffstr.length) { - var line = diffstr[i]; - - // File header found, end parsing diff metadata - if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) { - break; - } - - // Diff index - var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line); - if (header) { - index.index = header[1]; - } - - i++; - } - - // Parse file headers if they are defined. Unified diff requires them, but - // there's no technical issues to have an isolated hunk without file header - parseFileHeader(index); - parseFileHeader(index); - - // Parse hunks - index.hunks = []; - - while (i < diffstr.length) { - var _line = diffstr[i]; - - if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) { - break; - } else if (/^@@/.test(_line)) { - index.hunks.push(parseHunk()); - } else if (_line && options.strict) { - // Ignore unexpected content unless in strict mode - throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line)); - } else { - i++; - } - } - } - - // Parses the --- and +++ headers, if none are found, no lines - // are consumed. - function parseFileHeader(index) { - var headerPattern = /^(---|\+\+\+)\s+([\S ]*)(?:\t(.*?)\s*)?$/; - var fileHeader = headerPattern.exec(diffstr[i]); - if (fileHeader) { - var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new'; - index[keyPrefix + 'FileName'] = fileHeader[2]; - index[keyPrefix + 'Header'] = fileHeader[3]; - - i++; - } - } - - // Parses a hunk - // This assumes that we are at the start of a hunk. - function parseHunk() { - var chunkHeaderIndex = i, - chunkHeaderLine = diffstr[i++], - chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/); - - var hunk = { - oldStart: +chunkHeader[1], - oldLines: +chunkHeader[2] || 1, - newStart: +chunkHeader[3], - newLines: +chunkHeader[4] || 1, - lines: [], - linedelimiters: [] - }; - - var addCount = 0, - removeCount = 0; - for (; i < diffstr.length; i++) { - // Lines starting with '---' could be mistaken for the "remove line" operation - // But they could be the header for the next file. Therefore prune such cases out. - if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) { - break; - } - var operation = diffstr[i][0]; - - if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\') { - hunk.lines.push(diffstr[i]); - hunk.linedelimiters.push(delimiters[i] || '\n'); - - if (operation === '+') { - addCount++; - } else if (operation === '-') { - removeCount++; - } else if (operation === ' ') { - addCount++; - removeCount++; - } - } else { - break; - } - } - - // Handle the empty block count case - if (!addCount && hunk.newLines === 1) { - hunk.newLines = 0; - } - if (!removeCount && hunk.oldLines === 1) { - hunk.oldLines = 0; - } - - // Perform optional sanity checking - if (options.strict) { - if (addCount !== hunk.newLines) { - throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1)); - } - if (removeCount !== hunk.oldLines) { - throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1)); - } - } - - return hunk; - } - - while (i < diffstr.length) { - parseIndex(); - } - - return list; -} - - -},{}],59:[function(require,module,exports){ -/*istanbul ignore start*/"use strict"; - -exports.__esModule = true; - -exports["default"] = /*istanbul ignore end*/function (start, minLine, maxLine) { - var wantForward = true, - backwardExhausted = false, - forwardExhausted = false, - localOffset = 1; - - return function iterator() { - if (wantForward && !forwardExhausted) { - if (backwardExhausted) { - localOffset++; - } else { - wantForward = false; - } - - // Check if trying to fit beyond text length, and if not, check it fits - // after offset location (or desired location on first iteration) - if (start + localOffset <= maxLine) { - return localOffset; - } - - forwardExhausted = true; - } - - if (!backwardExhausted) { - if (!forwardExhausted) { - wantForward = true; - } - - // Check if trying to fit before text beginning, and if not, check it fits - // before offset location - if (minLine <= start - localOffset) { - return -localOffset++; - } - - backwardExhausted = true; - return iterator(); - } - - // We tried to fit hunk before text beginning and beyond text lenght, then - // hunk can't fit on the text. Return undefined - }; -}; - - -},{}],60:[function(require,module,exports){ -/*istanbul ignore start*/'use strict'; - -exports.__esModule = true; -exports. /*istanbul ignore end*/generateOptions = generateOptions; -function generateOptions(options, defaults) { - if (typeof options === 'function') { - defaults.callback = options; - } else if (options) { - for (var name in options) { - /* istanbul ignore else */ - if (options.hasOwnProperty(name)) { - defaults[name] = options[name]; - } - } - } - return defaults; -} - - -},{}],61:[function(require,module,exports){ -'use strict'; - -var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; - -module.exports = function (str) { - if (typeof str !== 'string') { - throw new TypeError('Expected a string'); - } - - return str.replace(matchOperatorsRe, '\\$&'); -}; - -},{}],62:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -function EventEmitter() { - this._events = this._events || {}; - this._maxListeners = this._maxListeners || undefined; -} -module.exports = EventEmitter; - -// Backwards-compat with node 0.10.x -EventEmitter.EventEmitter = EventEmitter; - -EventEmitter.prototype._events = undefined; -EventEmitter.prototype._maxListeners = undefined; - -// By default EventEmitters will print a warning if more than 10 listeners are -// added to it. This is a useful default which helps finding memory leaks. -EventEmitter.defaultMaxListeners = 10; - -// Obviously not all Emitters should be limited to 10. This function allows -// that to be increased. Set to zero for unlimited. -EventEmitter.prototype.setMaxListeners = function(n) { - if (!isNumber(n) || n < 0 || isNaN(n)) - throw TypeError('n must be a positive number'); - this._maxListeners = n; - return this; -}; - -EventEmitter.prototype.emit = function(type) { - var er, handler, len, args, i, listeners; - - if (!this._events) - this._events = {}; - - // If there is no 'error' event listener then throw. - if (type === 'error') { - if (!this._events.error || - (isObject(this._events.error) && !this._events.error.length)) { - er = arguments[1]; - if (er instanceof Error) { - throw er; // Unhandled 'error' event - } else { - // At least give some kind of context to the user - var err = new Error('Uncaught, unspecified "error" event. (' + er + ')'); - err.context = er; - throw err; - } - } - } - - handler = this._events[type]; - - if (isUndefined(handler)) - return false; - - if (isFunction(handler)) { - switch (arguments.length) { - // fast cases - case 1: - handler.call(this); - break; - case 2: - handler.call(this, arguments[1]); - break; - case 3: - handler.call(this, arguments[1], arguments[2]); - break; - // slower - default: - args = Array.prototype.slice.call(arguments, 1); - handler.apply(this, args); - } - } else if (isObject(handler)) { - args = Array.prototype.slice.call(arguments, 1); - listeners = handler.slice(); - len = listeners.length; - for (i = 0; i < len; i++) - listeners[i].apply(this, args); - } - - return true; -}; - -EventEmitter.prototype.addListener = function(type, listener) { - var m; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events) - this._events = {}; - - // To avoid recursion in the case that type === "newListener"! Before - // adding it to the listeners, first emit "newListener". - if (this._events.newListener) - this.emit('newListener', type, - isFunction(listener.listener) ? - listener.listener : listener); - - if (!this._events[type]) - // Optimize the case of one listener. Don't need the extra array object. - this._events[type] = listener; - else if (isObject(this._events[type])) - // If we've already got an array, just append. - this._events[type].push(listener); - else - // Adding the second element, need to change to array. - this._events[type] = [this._events[type], listener]; - - // Check for listener leak - if (isObject(this._events[type]) && !this._events[type].warned) { - if (!isUndefined(this._maxListeners)) { - m = this._maxListeners; - } else { - m = EventEmitter.defaultMaxListeners; - } - - if (m && m > 0 && this._events[type].length > m) { - this._events[type].warned = true; - console.error('(node) warning: possible EventEmitter memory ' + - 'leak detected. %d listeners added. ' + - 'Use emitter.setMaxListeners() to increase limit.', - this._events[type].length); - if (typeof console.trace === 'function') { - // not supported in IE 10 - console.trace(); - } - } - } - - return this; -}; - -EventEmitter.prototype.on = EventEmitter.prototype.addListener; - -EventEmitter.prototype.once = function(type, listener) { - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - var fired = false; - - function g() { - this.removeListener(type, g); - - if (!fired) { - fired = true; - listener.apply(this, arguments); - } - } - - g.listener = listener; - this.on(type, g); - - return this; -}; - -// emits a 'removeListener' event iff the listener was removed -EventEmitter.prototype.removeListener = function(type, listener) { - var list, position, length, i; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events || !this._events[type]) - return this; - - list = this._events[type]; - length = list.length; - position = -1; - - if (list === listener || - (isFunction(list.listener) && list.listener === listener)) { - delete this._events[type]; - if (this._events.removeListener) - this.emit('removeListener', type, listener); - - } else if (isObject(list)) { - for (i = length; i-- > 0;) { - if (list[i] === listener || - (list[i].listener && list[i].listener === listener)) { - position = i; - break; - } - } - - if (position < 0) - return this; - - if (list.length === 1) { - list.length = 0; - delete this._events[type]; - } else { - list.splice(position, 1); - } - - if (this._events.removeListener) - this.emit('removeListener', type, listener); - } - - return this; -}; - -EventEmitter.prototype.removeAllListeners = function(type) { - var key, listeners; - - if (!this._events) - return this; - - // not listening for removeListener, no need to emit - if (!this._events.removeListener) { - if (arguments.length === 0) - this._events = {}; - else if (this._events[type]) - delete this._events[type]; - return this; - } - - // emit removeListener for all listeners on all events - if (arguments.length === 0) { - for (key in this._events) { - if (key === 'removeListener') continue; - this.removeAllListeners(key); - } - this.removeAllListeners('removeListener'); - this._events = {}; - return this; - } - - listeners = this._events[type]; - - if (isFunction(listeners)) { - this.removeListener(type, listeners); - } else if (listeners) { - // LIFO order - while (listeners.length) - this.removeListener(type, listeners[listeners.length - 1]); - } - delete this._events[type]; - - return this; -}; - -EventEmitter.prototype.listeners = function(type) { - var ret; - if (!this._events || !this._events[type]) - ret = []; - else if (isFunction(this._events[type])) - ret = [this._events[type]]; - else - ret = this._events[type].slice(); - return ret; -}; - -EventEmitter.prototype.listenerCount = function(type) { - if (this._events) { - var evlistener = this._events[type]; - - if (isFunction(evlistener)) - return 1; - else if (evlistener) - return evlistener.length; - } - return 0; -}; - -EventEmitter.listenerCount = function(emitter, type) { - return emitter.listenerCount(type); -}; - -function isFunction(arg) { - return typeof arg === 'function'; -} - -function isNumber(arg) { - return typeof arg === 'number'; -} - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} - -function isUndefined(arg) { - return arg === void 0; -} - -},{}],63:[function(require,module,exports){ -(function (process){ -// Growl - Copyright TJ Holowaychuk (MIT Licensed) - -/** - * Module dependencies. - */ - -var exec = require('child_process').exec - , fs = require('fs') - , path = require('path') - , exists = fs.existsSync || path.existsSync - , os = require('os') - , quote = JSON.stringify - , cmd; - -function which(name) { - var paths = process.env.PATH.split(':'); - var loc; - - for (var i = 0, len = paths.length; i < len; ++i) { - loc = path.join(paths[i], name); - if (exists(loc)) return loc; - } -} - -switch(os.type()) { - case 'Darwin': - if (which('terminal-notifier')) { - cmd = { - type: "Darwin-NotificationCenter" - , pkg: "terminal-notifier" - , msg: '-message' - , title: '-title' - , subtitle: '-subtitle' - , icon: '-appIcon' - , sound: '-sound' - , url: '-open' - , priority: { - cmd: '-execute' - , range: [] - } - }; - } else { - cmd = { - type: "Darwin-Growl" - , pkg: "growlnotify" - , msg: '-m' - , sticky: '--sticky' - , priority: { - cmd: '--priority' - , range: [ - -2 - , -1 - , 0 - , 1 - , 2 - , "Very Low" - , "Moderate" - , "Normal" - , "High" - , "Emergency" - ] - } - }; - } - break; - case 'Linux': - if (which('growl')) { - cmd = { - type: "Linux-Growl" - , pkg: "growl" - , msg: '-m' - , title: '-title' - , subtitle: '-subtitle' - , host: { - cmd: '-H' - , hostname: '192.168.33.1' - } - }; - } else { - cmd = { - type: "Linux" - , pkg: "notify-send" - , msg: '' - , sticky: '-t 0' - , icon: '-i' - , priority: { - cmd: '-u' - , range: [ - "low" - , "normal" - , "critical" - ] - } - }; - } - break; - case 'Windows_NT': - cmd = { - type: "Windows" - , pkg: "growlnotify" - , msg: '' - , sticky: '/s:true' - , title: '/t:' - , icon: '/i:' - , url: '/cu:' - , priority: { - cmd: '/p:' - , range: [ - -2 - , -1 - , 0 - , 1 - , 2 - ] - } - }; - break; -} - -/** - * Expose `growl`. - */ - -exports = module.exports = growl; - -/** - * Node-growl version. - */ - -exports.version = '1.4.1' - -/** - * Send growl notification _msg_ with _options_. - * - * Options: - * - * - title Notification title - * - sticky Make the notification stick (defaults to false) - * - priority Specify an int or named key (default is 0) - * - name Application name (defaults to growlnotify) - * - sound Sound efect ( in OSx defined in preferences -> sound -> effects) * works only in OSX > 10.8x - * - image - * - path to an icon sets --iconpath - * - path to an image sets --image - * - capitalized word sets --appIcon - * - filename uses extname as --icon - * - otherwise treated as --icon - * - * Examples: - * - * growl('New email') - * growl('5 new emails', { title: 'Thunderbird' }) - * growl('5 new emails', { title: 'Thunderbird', sound: 'Purr' }) - * growl('Email sent', function(){ - * // ... notification sent - * }) - * - * @param {string} msg - * @param {object} options - * @param {function} fn - * @api public - */ - -function growl(msg, options, fn) { - var image - , args - , options = options || {} - , fn = fn || function(){}; - - if (options.exec) { - cmd = { - type: "Custom" - , pkg: options.exec - , range: [] - }; - } - - // noop - if (!cmd) return fn(new Error('growl not supported on this platform')); - args = [cmd.pkg]; - - // image - if (image = options.image) { - switch(cmd.type) { - case 'Darwin-Growl': - var flag, ext = path.extname(image).substr(1) - flag = flag || ext == 'icns' && 'iconpath' - flag = flag || /^[A-Z]/.test(image) && 'appIcon' - flag = flag || /^png|gif|jpe?g$/.test(ext) && 'image' - flag = flag || ext && (image = ext) && 'icon' - flag = flag || 'icon' - args.push('--' + flag, quote(image)) - break; - case 'Darwin-NotificationCenter': - args.push(cmd.icon, quote(image)); - break; - case 'Linux': - args.push(cmd.icon, quote(image)); - // libnotify defaults to sticky, set a hint for transient notifications - if (!options.sticky) args.push('--hint=int:transient:1'); - break; - case 'Windows': - args.push(cmd.icon + quote(image)); - break; - } - } - - // sticky - if (options.sticky) args.push(cmd.sticky); - - // priority - if (options.priority) { - var priority = options.priority + ''; - var checkindexOf = cmd.priority.range.indexOf(priority); - if (~cmd.priority.range.indexOf(priority)) { - args.push(cmd.priority, options.priority); - } - } - - //sound - if(options.sound && cmd.type === 'Darwin-NotificationCenter'){ - args.push(cmd.sound, options.sound) - } - - // name - if (options.name && cmd.type === "Darwin-Growl") { - args.push('--name', options.name); - } - - switch(cmd.type) { - case 'Darwin-Growl': - args.push(cmd.msg); - args.push(quote(msg).replace(/\\n/g, '\n')); - if (options.title) args.push(quote(options.title)); - break; - case 'Darwin-NotificationCenter': - args.push(cmd.msg); - var stringifiedMsg = quote(msg); - var escapedMsg = stringifiedMsg.replace(/\\n/g, '\n'); - args.push(escapedMsg); - if (options.title) { - args.push(cmd.title); - args.push(quote(options.title)); - } - if (options.subtitle) { - args.push(cmd.subtitle); - args.push(quote(options.subtitle)); - } - if (options.url) { - args.push(cmd.url); - args.push(quote(options.url)); - } - break; - case 'Linux-Growl': - args.push(cmd.msg); - args.push(quote(msg).replace(/\\n/g, '\n')); - if (options.title) args.push(quote(options.title)); - if (cmd.host) { - args.push(cmd.host.cmd, cmd.host.hostname) - } - break; - case 'Linux': - if (options.title) { - args.push(quote(options.title)); - args.push(cmd.msg); - args.push(quote(msg).replace(/\\n/g, '\n')); - } else { - args.push(quote(msg).replace(/\\n/g, '\n')); - } - break; - case 'Windows': - args.push(quote(msg).replace(/\\n/g, '\n')); - if (options.title) args.push(cmd.title + quote(options.title)); - if (options.url) args.push(cmd.url + quote(options.url)); - break; - case 'Custom': - args[0] = (function(origCommand) { - var message = options.title - ? options.title + ': ' + msg - : msg; - var command = origCommand.replace(/(^|[^%])%s/g, '$1' + quote(message)); - if (command === origCommand) args.push(quote(message)); - return command; - })(args[0]); - break; - } - - // execute - exec(args.join(' '), fn); -}; - -}).call(this,require('_process')) -},{"_process":82,"child_process":42,"fs":42,"os":80,"path":42}],64:[function(require,module,exports){ -(function (global){ -/*! https://mths.be/he v1.1.1 by @mathias | MIT license */ -;(function(root) { - - // Detect free variables `exports`. - var freeExports = typeof exports == 'object' && exports; - - // Detect free variable `module`. - var freeModule = typeof module == 'object' && module && - module.exports == freeExports && module; - - // Detect free variable `global`, from Node.js or Browserified code, - // and use it as `root`. - var freeGlobal = typeof global == 'object' && global; - if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { - root = freeGlobal; - } - - /*--------------------------------------------------------------------------*/ - - // All astral symbols. - var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; - // All ASCII symbols (not just printable ASCII) except those listed in the - // first column of the overrides table. - // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides - var regexAsciiWhitelist = /[\x01-\x7F]/g; - // All BMP symbols that are not ASCII newlines, printable ASCII symbols, or - // code points listed in the first column of the overrides table on - // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides. - var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g; - - var regexEncodeNonAscii = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g; - var encodeMap = {'\xAD':'shy','\u200C':'zwnj','\u200D':'zwj','\u200E':'lrm','\u2063':'ic','\u2062':'it','\u2061':'af','\u200F':'rlm','\u200B':'ZeroWidthSpace','\u2060':'NoBreak','\u0311':'DownBreve','\u20DB':'tdot','\u20DC':'DotDot','\t':'Tab','\n':'NewLine','\u2008':'puncsp','\u205F':'MediumSpace','\u2009':'thinsp','\u200A':'hairsp','\u2004':'emsp13','\u2002':'ensp','\u2005':'emsp14','\u2003':'emsp','\u2007':'numsp','\xA0':'nbsp','\u205F\u200A':'ThickSpace','\u203E':'oline','_':'lowbar','\u2010':'dash','\u2013':'ndash','\u2014':'mdash','\u2015':'horbar',',':'comma',';':'semi','\u204F':'bsemi',':':'colon','\u2A74':'Colone','!':'excl','\xA1':'iexcl','?':'quest','\xBF':'iquest','.':'period','\u2025':'nldr','\u2026':'mldr','\xB7':'middot','\'':'apos','\u2018':'lsquo','\u2019':'rsquo','\u201A':'sbquo','\u2039':'lsaquo','\u203A':'rsaquo','"':'quot','\u201C':'ldquo','\u201D':'rdquo','\u201E':'bdquo','\xAB':'laquo','\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\u2308':'lceil','\u2309':'rceil','\u230A':'lfloor','\u230B':'rfloor','\u2985':'lopar','\u2986':'ropar','\u298B':'lbrke','\u298C':'rbrke','\u298D':'lbrkslu','\u298E':'rbrksld','\u298F':'lbrksld','\u2990':'rbrkslu','\u2991':'langd','\u2992':'rangd','\u2993':'lparlt','\u2994':'rpargt','\u2995':'gtlPar','\u2996':'ltrPar','\u27E6':'lobrk','\u27E7':'robrk','\u27E8':'lang','\u27E9':'rang','\u27EA':'Lang','\u27EB':'Rang','\u27EC':'loang','\u27ED':'roang','\u2772':'lbbrk','\u2773':'rbbrk','\u2016':'Vert','\xA7':'sect','\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\u2030':'permil','\u2031':'pertenk','\u2020':'dagger','\u2021':'Dagger','\u2022':'bull','\u2043':'hybull','\u2032':'prime','\u2033':'Prime','\u2034':'tprime','\u2057':'qprime','\u2035':'bprime','\u2041':'caret','`':'grave','\xB4':'acute','\u02DC':'tilde','^':'Hat','\xAF':'macr','\u02D8':'breve','\u02D9':'dot','\xA8':'die','\u02DA':'ring','\u02DD':'dblac','\xB8':'cedil','\u02DB':'ogon','\u02C6':'circ','\u02C7':'caron','\xB0':'deg','\xA9':'copy','\xAE':'reg','\u2117':'copysr','\u2118':'wp','\u211E':'rx','\u2127':'mho','\u2129':'iiota','\u2190':'larr','\u219A':'nlarr','\u2192':'rarr','\u219B':'nrarr','\u2191':'uarr','\u2193':'darr','\u2194':'harr','\u21AE':'nharr','\u2195':'varr','\u2196':'nwarr','\u2197':'nearr','\u2198':'searr','\u2199':'swarr','\u219D':'rarrw','\u219D\u0338':'nrarrw','\u219E':'Larr','\u219F':'Uarr','\u21A0':'Rarr','\u21A1':'Darr','\u21A2':'larrtl','\u21A3':'rarrtl','\u21A4':'mapstoleft','\u21A5':'mapstoup','\u21A6':'map','\u21A7':'mapstodown','\u21A9':'larrhk','\u21AA':'rarrhk','\u21AB':'larrlp','\u21AC':'rarrlp','\u21AD':'harrw','\u21B0':'lsh','\u21B1':'rsh','\u21B2':'ldsh','\u21B3':'rdsh','\u21B5':'crarr','\u21B6':'cularr','\u21B7':'curarr','\u21BA':'olarr','\u21BB':'orarr','\u21BC':'lharu','\u21BD':'lhard','\u21BE':'uharr','\u21BF':'uharl','\u21C0':'rharu','\u21C1':'rhard','\u21C2':'dharr','\u21C3':'dharl','\u21C4':'rlarr','\u21C5':'udarr','\u21C6':'lrarr','\u21C7':'llarr','\u21C8':'uuarr','\u21C9':'rrarr','\u21CA':'ddarr','\u21CB':'lrhar','\u21CC':'rlhar','\u21D0':'lArr','\u21CD':'nlArr','\u21D1':'uArr','\u21D2':'rArr','\u21CF':'nrArr','\u21D3':'dArr','\u21D4':'iff','\u21CE':'nhArr','\u21D5':'vArr','\u21D6':'nwArr','\u21D7':'neArr','\u21D8':'seArr','\u21D9':'swArr','\u21DA':'lAarr','\u21DB':'rAarr','\u21DD':'zigrarr','\u21E4':'larrb','\u21E5':'rarrb','\u21F5':'duarr','\u21FD':'loarr','\u21FE':'roarr','\u21FF':'hoarr','\u2200':'forall','\u2201':'comp','\u2202':'part','\u2202\u0338':'npart','\u2203':'exist','\u2204':'nexist','\u2205':'empty','\u2207':'Del','\u2208':'in','\u2209':'notin','\u220B':'ni','\u220C':'notni','\u03F6':'bepsi','\u220F':'prod','\u2210':'coprod','\u2211':'sum','+':'plus','\xB1':'pm','\xF7':'div','\xD7':'times','<':'lt','\u226E':'nlt','<\u20D2':'nvlt','=':'equals','\u2260':'ne','=\u20E5':'bne','\u2A75':'Equal','>':'gt','\u226F':'ngt','>\u20D2':'nvgt','\xAC':'not','|':'vert','\xA6':'brvbar','\u2212':'minus','\u2213':'mp','\u2214':'plusdo','\u2044':'frasl','\u2216':'setmn','\u2217':'lowast','\u2218':'compfn','\u221A':'Sqrt','\u221D':'prop','\u221E':'infin','\u221F':'angrt','\u2220':'ang','\u2220\u20D2':'nang','\u2221':'angmsd','\u2222':'angsph','\u2223':'mid','\u2224':'nmid','\u2225':'par','\u2226':'npar','\u2227':'and','\u2228':'or','\u2229':'cap','\u2229\uFE00':'caps','\u222A':'cup','\u222A\uFE00':'cups','\u222B':'int','\u222C':'Int','\u222D':'tint','\u2A0C':'qint','\u222E':'oint','\u222F':'Conint','\u2230':'Cconint','\u2231':'cwint','\u2232':'cwconint','\u2233':'awconint','\u2234':'there4','\u2235':'becaus','\u2236':'ratio','\u2237':'Colon','\u2238':'minusd','\u223A':'mDDot','\u223B':'homtht','\u223C':'sim','\u2241':'nsim','\u223C\u20D2':'nvsim','\u223D':'bsim','\u223D\u0331':'race','\u223E':'ac','\u223E\u0333':'acE','\u223F':'acd','\u2240':'wr','\u2242':'esim','\u2242\u0338':'nesim','\u2243':'sime','\u2244':'nsime','\u2245':'cong','\u2247':'ncong','\u2246':'simne','\u2248':'ap','\u2249':'nap','\u224A':'ape','\u224B':'apid','\u224B\u0338':'napid','\u224C':'bcong','\u224D':'CupCap','\u226D':'NotCupCap','\u224D\u20D2':'nvap','\u224E':'bump','\u224E\u0338':'nbump','\u224F':'bumpe','\u224F\u0338':'nbumpe','\u2250':'doteq','\u2250\u0338':'nedot','\u2251':'eDot','\u2252':'efDot','\u2253':'erDot','\u2254':'colone','\u2255':'ecolon','\u2256':'ecir','\u2257':'cire','\u2259':'wedgeq','\u225A':'veeeq','\u225C':'trie','\u225F':'equest','\u2261':'equiv','\u2262':'nequiv','\u2261\u20E5':'bnequiv','\u2264':'le','\u2270':'nle','\u2264\u20D2':'nvle','\u2265':'ge','\u2271':'nge','\u2265\u20D2':'nvge','\u2266':'lE','\u2266\u0338':'nlE','\u2267':'gE','\u2267\u0338':'ngE','\u2268\uFE00':'lvnE','\u2268':'lnE','\u2269':'gnE','\u2269\uFE00':'gvnE','\u226A':'ll','\u226A\u0338':'nLtv','\u226A\u20D2':'nLt','\u226B':'gg','\u226B\u0338':'nGtv','\u226B\u20D2':'nGt','\u226C':'twixt','\u2272':'lsim','\u2274':'nlsim','\u2273':'gsim','\u2275':'ngsim','\u2276':'lg','\u2278':'ntlg','\u2277':'gl','\u2279':'ntgl','\u227A':'pr','\u2280':'npr','\u227B':'sc','\u2281':'nsc','\u227C':'prcue','\u22E0':'nprcue','\u227D':'sccue','\u22E1':'nsccue','\u227E':'prsim','\u227F':'scsim','\u227F\u0338':'NotSucceedsTilde','\u2282':'sub','\u2284':'nsub','\u2282\u20D2':'vnsub','\u2283':'sup','\u2285':'nsup','\u2283\u20D2':'vnsup','\u2286':'sube','\u2288':'nsube','\u2287':'supe','\u2289':'nsupe','\u228A\uFE00':'vsubne','\u228A':'subne','\u228B\uFE00':'vsupne','\u228B':'supne','\u228D':'cupdot','\u228E':'uplus','\u228F':'sqsub','\u228F\u0338':'NotSquareSubset','\u2290':'sqsup','\u2290\u0338':'NotSquareSuperset','\u2291':'sqsube','\u22E2':'nsqsube','\u2292':'sqsupe','\u22E3':'nsqsupe','\u2293':'sqcap','\u2293\uFE00':'sqcaps','\u2294':'sqcup','\u2294\uFE00':'sqcups','\u2295':'oplus','\u2296':'ominus','\u2297':'otimes','\u2298':'osol','\u2299':'odot','\u229A':'ocir','\u229B':'oast','\u229D':'odash','\u229E':'plusb','\u229F':'minusb','\u22A0':'timesb','\u22A1':'sdotb','\u22A2':'vdash','\u22AC':'nvdash','\u22A3':'dashv','\u22A4':'top','\u22A5':'bot','\u22A7':'models','\u22A8':'vDash','\u22AD':'nvDash','\u22A9':'Vdash','\u22AE':'nVdash','\u22AA':'Vvdash','\u22AB':'VDash','\u22AF':'nVDash','\u22B0':'prurel','\u22B2':'vltri','\u22EA':'nltri','\u22B3':'vrtri','\u22EB':'nrtri','\u22B4':'ltrie','\u22EC':'nltrie','\u22B4\u20D2':'nvltrie','\u22B5':'rtrie','\u22ED':'nrtrie','\u22B5\u20D2':'nvrtrie','\u22B6':'origof','\u22B7':'imof','\u22B8':'mumap','\u22B9':'hercon','\u22BA':'intcal','\u22BB':'veebar','\u22BD':'barvee','\u22BE':'angrtvb','\u22BF':'lrtri','\u22C0':'Wedge','\u22C1':'Vee','\u22C2':'xcap','\u22C3':'xcup','\u22C4':'diam','\u22C5':'sdot','\u22C6':'Star','\u22C7':'divonx','\u22C8':'bowtie','\u22C9':'ltimes','\u22CA':'rtimes','\u22CB':'lthree','\u22CC':'rthree','\u22CD':'bsime','\u22CE':'cuvee','\u22CF':'cuwed','\u22D0':'Sub','\u22D1':'Sup','\u22D2':'Cap','\u22D3':'Cup','\u22D4':'fork','\u22D5':'epar','\u22D6':'ltdot','\u22D7':'gtdot','\u22D8':'Ll','\u22D8\u0338':'nLl','\u22D9':'Gg','\u22D9\u0338':'nGg','\u22DA\uFE00':'lesg','\u22DA':'leg','\u22DB':'gel','\u22DB\uFE00':'gesl','\u22DE':'cuepr','\u22DF':'cuesc','\u22E6':'lnsim','\u22E7':'gnsim','\u22E8':'prnsim','\u22E9':'scnsim','\u22EE':'vellip','\u22EF':'ctdot','\u22F0':'utdot','\u22F1':'dtdot','\u22F2':'disin','\u22F3':'isinsv','\u22F4':'isins','\u22F5':'isindot','\u22F5\u0338':'notindot','\u22F6':'notinvc','\u22F7':'notinvb','\u22F9':'isinE','\u22F9\u0338':'notinE','\u22FA':'nisd','\u22FB':'xnis','\u22FC':'nis','\u22FD':'notnivc','\u22FE':'notnivb','\u2305':'barwed','\u2306':'Barwed','\u230C':'drcrop','\u230D':'dlcrop','\u230E':'urcrop','\u230F':'ulcrop','\u2310':'bnot','\u2312':'profline','\u2313':'profsurf','\u2315':'telrec','\u2316':'target','\u231C':'ulcorn','\u231D':'urcorn','\u231E':'dlcorn','\u231F':'drcorn','\u2322':'frown','\u2323':'smile','\u232D':'cylcty','\u232E':'profalar','\u2336':'topbot','\u233D':'ovbar','\u233F':'solbar','\u237C':'angzarr','\u23B0':'lmoust','\u23B1':'rmoust','\u23B4':'tbrk','\u23B5':'bbrk','\u23B6':'bbrktbrk','\u23DC':'OverParenthesis','\u23DD':'UnderParenthesis','\u23DE':'OverBrace','\u23DF':'UnderBrace','\u23E2':'trpezium','\u23E7':'elinters','\u2423':'blank','\u2500':'boxh','\u2502':'boxv','\u250C':'boxdr','\u2510':'boxdl','\u2514':'boxur','\u2518':'boxul','\u251C':'boxvr','\u2524':'boxvl','\u252C':'boxhd','\u2534':'boxhu','\u253C':'boxvh','\u2550':'boxH','\u2551':'boxV','\u2552':'boxdR','\u2553':'boxDr','\u2554':'boxDR','\u2555':'boxdL','\u2556':'boxDl','\u2557':'boxDL','\u2558':'boxuR','\u2559':'boxUr','\u255A':'boxUR','\u255B':'boxuL','\u255C':'boxUl','\u255D':'boxUL','\u255E':'boxvR','\u255F':'boxVr','\u2560':'boxVR','\u2561':'boxvL','\u2562':'boxVl','\u2563':'boxVL','\u2564':'boxHd','\u2565':'boxhD','\u2566':'boxHD','\u2567':'boxHu','\u2568':'boxhU','\u2569':'boxHU','\u256A':'boxvH','\u256B':'boxVh','\u256C':'boxVH','\u2580':'uhblk','\u2584':'lhblk','\u2588':'block','\u2591':'blk14','\u2592':'blk12','\u2593':'blk34','\u25A1':'squ','\u25AA':'squf','\u25AB':'EmptyVerySmallSquare','\u25AD':'rect','\u25AE':'marker','\u25B1':'fltns','\u25B3':'xutri','\u25B4':'utrif','\u25B5':'utri','\u25B8':'rtrif','\u25B9':'rtri','\u25BD':'xdtri','\u25BE':'dtrif','\u25BF':'dtri','\u25C2':'ltrif','\u25C3':'ltri','\u25CA':'loz','\u25CB':'cir','\u25EC':'tridot','\u25EF':'xcirc','\u25F8':'ultri','\u25F9':'urtri','\u25FA':'lltri','\u25FB':'EmptySmallSquare','\u25FC':'FilledSmallSquare','\u2605':'starf','\u2606':'star','\u260E':'phone','\u2640':'female','\u2642':'male','\u2660':'spades','\u2663':'clubs','\u2665':'hearts','\u2666':'diams','\u266A':'sung','\u2713':'check','\u2717':'cross','\u2720':'malt','\u2736':'sext','\u2758':'VerticalSeparator','\u27C8':'bsolhsub','\u27C9':'suphsol','\u27F5':'xlarr','\u27F6':'xrarr','\u27F7':'xharr','\u27F8':'xlArr','\u27F9':'xrArr','\u27FA':'xhArr','\u27FC':'xmap','\u27FF':'dzigrarr','\u2902':'nvlArr','\u2903':'nvrArr','\u2904':'nvHarr','\u2905':'Map','\u290C':'lbarr','\u290D':'rbarr','\u290E':'lBarr','\u290F':'rBarr','\u2910':'RBarr','\u2911':'DDotrahd','\u2912':'UpArrowBar','\u2913':'DownArrowBar','\u2916':'Rarrtl','\u2919':'latail','\u291A':'ratail','\u291B':'lAtail','\u291C':'rAtail','\u291D':'larrfs','\u291E':'rarrfs','\u291F':'larrbfs','\u2920':'rarrbfs','\u2923':'nwarhk','\u2924':'nearhk','\u2925':'searhk','\u2926':'swarhk','\u2927':'nwnear','\u2928':'toea','\u2929':'tosa','\u292A':'swnwar','\u2933':'rarrc','\u2933\u0338':'nrarrc','\u2935':'cudarrr','\u2936':'ldca','\u2937':'rdca','\u2938':'cudarrl','\u2939':'larrpl','\u293C':'curarrm','\u293D':'cularrp','\u2945':'rarrpl','\u2948':'harrcir','\u2949':'Uarrocir','\u294A':'lurdshar','\u294B':'ldrushar','\u294E':'LeftRightVector','\u294F':'RightUpDownVector','\u2950':'DownLeftRightVector','\u2951':'LeftUpDownVector','\u2952':'LeftVectorBar','\u2953':'RightVectorBar','\u2954':'RightUpVectorBar','\u2955':'RightDownVectorBar','\u2956':'DownLeftVectorBar','\u2957':'DownRightVectorBar','\u2958':'LeftUpVectorBar','\u2959':'LeftDownVectorBar','\u295A':'LeftTeeVector','\u295B':'RightTeeVector','\u295C':'RightUpTeeVector','\u295D':'RightDownTeeVector','\u295E':'DownLeftTeeVector','\u295F':'DownRightTeeVector','\u2960':'LeftUpTeeVector','\u2961':'LeftDownTeeVector','\u2962':'lHar','\u2963':'uHar','\u2964':'rHar','\u2965':'dHar','\u2966':'luruhar','\u2967':'ldrdhar','\u2968':'ruluhar','\u2969':'rdldhar','\u296A':'lharul','\u296B':'llhard','\u296C':'rharul','\u296D':'lrhard','\u296E':'udhar','\u296F':'duhar','\u2970':'RoundImplies','\u2971':'erarr','\u2972':'simrarr','\u2973':'larrsim','\u2974':'rarrsim','\u2975':'rarrap','\u2976':'ltlarr','\u2978':'gtrarr','\u2979':'subrarr','\u297B':'suplarr','\u297C':'lfisht','\u297D':'rfisht','\u297E':'ufisht','\u297F':'dfisht','\u299A':'vzigzag','\u299C':'vangrt','\u299D':'angrtvbd','\u29A4':'ange','\u29A5':'range','\u29A6':'dwangle','\u29A7':'uwangle','\u29A8':'angmsdaa','\u29A9':'angmsdab','\u29AA':'angmsdac','\u29AB':'angmsdad','\u29AC':'angmsdae','\u29AD':'angmsdaf','\u29AE':'angmsdag','\u29AF':'angmsdah','\u29B0':'bemptyv','\u29B1':'demptyv','\u29B2':'cemptyv','\u29B3':'raemptyv','\u29B4':'laemptyv','\u29B5':'ohbar','\u29B6':'omid','\u29B7':'opar','\u29B9':'operp','\u29BB':'olcross','\u29BC':'odsold','\u29BE':'olcir','\u29BF':'ofcir','\u29C0':'olt','\u29C1':'ogt','\u29C2':'cirscir','\u29C3':'cirE','\u29C4':'solb','\u29C5':'bsolb','\u29C9':'boxbox','\u29CD':'trisb','\u29CE':'rtriltri','\u29CF':'LeftTriangleBar','\u29CF\u0338':'NotLeftTriangleBar','\u29D0':'RightTriangleBar','\u29D0\u0338':'NotRightTriangleBar','\u29DC':'iinfin','\u29DD':'infintie','\u29DE':'nvinfin','\u29E3':'eparsl','\u29E4':'smeparsl','\u29E5':'eqvparsl','\u29EB':'lozf','\u29F4':'RuleDelayed','\u29F6':'dsol','\u2A00':'xodot','\u2A01':'xoplus','\u2A02':'xotime','\u2A04':'xuplus','\u2A06':'xsqcup','\u2A0D':'fpartint','\u2A10':'cirfnint','\u2A11':'awint','\u2A12':'rppolint','\u2A13':'scpolint','\u2A14':'npolint','\u2A15':'pointint','\u2A16':'quatint','\u2A17':'intlarhk','\u2A22':'pluscir','\u2A23':'plusacir','\u2A24':'simplus','\u2A25':'plusdu','\u2A26':'plussim','\u2A27':'plustwo','\u2A29':'mcomma','\u2A2A':'minusdu','\u2A2D':'loplus','\u2A2E':'roplus','\u2A2F':'Cross','\u2A30':'timesd','\u2A31':'timesbar','\u2A33':'smashp','\u2A34':'lotimes','\u2A35':'rotimes','\u2A36':'otimesas','\u2A37':'Otimes','\u2A38':'odiv','\u2A39':'triplus','\u2A3A':'triminus','\u2A3B':'tritime','\u2A3C':'iprod','\u2A3F':'amalg','\u2A40':'capdot','\u2A42':'ncup','\u2A43':'ncap','\u2A44':'capand','\u2A45':'cupor','\u2A46':'cupcap','\u2A47':'capcup','\u2A48':'cupbrcap','\u2A49':'capbrcup','\u2A4A':'cupcup','\u2A4B':'capcap','\u2A4C':'ccups','\u2A4D':'ccaps','\u2A50':'ccupssm','\u2A53':'And','\u2A54':'Or','\u2A55':'andand','\u2A56':'oror','\u2A57':'orslope','\u2A58':'andslope','\u2A5A':'andv','\u2A5B':'orv','\u2A5C':'andd','\u2A5D':'ord','\u2A5F':'wedbar','\u2A66':'sdote','\u2A6A':'simdot','\u2A6D':'congdot','\u2A6D\u0338':'ncongdot','\u2A6E':'easter','\u2A6F':'apacir','\u2A70':'apE','\u2A70\u0338':'napE','\u2A71':'eplus','\u2A72':'pluse','\u2A73':'Esim','\u2A77':'eDDot','\u2A78':'equivDD','\u2A79':'ltcir','\u2A7A':'gtcir','\u2A7B':'ltquest','\u2A7C':'gtquest','\u2A7D':'les','\u2A7D\u0338':'nles','\u2A7E':'ges','\u2A7E\u0338':'nges','\u2A7F':'lesdot','\u2A80':'gesdot','\u2A81':'lesdoto','\u2A82':'gesdoto','\u2A83':'lesdotor','\u2A84':'gesdotol','\u2A85':'lap','\u2A86':'gap','\u2A87':'lne','\u2A88':'gne','\u2A89':'lnap','\u2A8A':'gnap','\u2A8B':'lEg','\u2A8C':'gEl','\u2A8D':'lsime','\u2A8E':'gsime','\u2A8F':'lsimg','\u2A90':'gsiml','\u2A91':'lgE','\u2A92':'glE','\u2A93':'lesges','\u2A94':'gesles','\u2A95':'els','\u2A96':'egs','\u2A97':'elsdot','\u2A98':'egsdot','\u2A99':'el','\u2A9A':'eg','\u2A9D':'siml','\u2A9E':'simg','\u2A9F':'simlE','\u2AA0':'simgE','\u2AA1':'LessLess','\u2AA1\u0338':'NotNestedLessLess','\u2AA2':'GreaterGreater','\u2AA2\u0338':'NotNestedGreaterGreater','\u2AA4':'glj','\u2AA5':'gla','\u2AA6':'ltcc','\u2AA7':'gtcc','\u2AA8':'lescc','\u2AA9':'gescc','\u2AAA':'smt','\u2AAB':'lat','\u2AAC':'smte','\u2AAC\uFE00':'smtes','\u2AAD':'late','\u2AAD\uFE00':'lates','\u2AAE':'bumpE','\u2AAF':'pre','\u2AAF\u0338':'npre','\u2AB0':'sce','\u2AB0\u0338':'nsce','\u2AB3':'prE','\u2AB4':'scE','\u2AB5':'prnE','\u2AB6':'scnE','\u2AB7':'prap','\u2AB8':'scap','\u2AB9':'prnap','\u2ABA':'scnap','\u2ABB':'Pr','\u2ABC':'Sc','\u2ABD':'subdot','\u2ABE':'supdot','\u2ABF':'subplus','\u2AC0':'supplus','\u2AC1':'submult','\u2AC2':'supmult','\u2AC3':'subedot','\u2AC4':'supedot','\u2AC5':'subE','\u2AC5\u0338':'nsubE','\u2AC6':'supE','\u2AC6\u0338':'nsupE','\u2AC7':'subsim','\u2AC8':'supsim','\u2ACB\uFE00':'vsubnE','\u2ACB':'subnE','\u2ACC\uFE00':'vsupnE','\u2ACC':'supnE','\u2ACF':'csub','\u2AD0':'csup','\u2AD1':'csube','\u2AD2':'csupe','\u2AD3':'subsup','\u2AD4':'supsub','\u2AD5':'subsub','\u2AD6':'supsup','\u2AD7':'suphsub','\u2AD8':'supdsub','\u2AD9':'forkv','\u2ADA':'topfork','\u2ADB':'mlcp','\u2AE4':'Dashv','\u2AE6':'Vdashl','\u2AE7':'Barv','\u2AE8':'vBar','\u2AE9':'vBarv','\u2AEB':'Vbar','\u2AEC':'Not','\u2AED':'bNot','\u2AEE':'rnmid','\u2AEF':'cirmid','\u2AF0':'midcir','\u2AF1':'topcir','\u2AF2':'nhpar','\u2AF3':'parsim','\u2AFD':'parsl','\u2AFD\u20E5':'nparsl','\u266D':'flat','\u266E':'natur','\u266F':'sharp','\xA4':'curren','\xA2':'cent','$':'dollar','\xA3':'pound','\xA5':'yen','\u20AC':'euro','\xB9':'sup1','\xBD':'half','\u2153':'frac13','\xBC':'frac14','\u2155':'frac15','\u2159':'frac16','\u215B':'frac18','\xB2':'sup2','\u2154':'frac23','\u2156':'frac25','\xB3':'sup3','\xBE':'frac34','\u2157':'frac35','\u215C':'frac38','\u2158':'frac45','\u215A':'frac56','\u215D':'frac58','\u215E':'frac78','\uD835\uDCB6':'ascr','\uD835\uDD52':'aopf','\uD835\uDD1E':'afr','\uD835\uDD38':'Aopf','\uD835\uDD04':'Afr','\uD835\uDC9C':'Ascr','\xAA':'ordf','\xE1':'aacute','\xC1':'Aacute','\xE0':'agrave','\xC0':'Agrave','\u0103':'abreve','\u0102':'Abreve','\xE2':'acirc','\xC2':'Acirc','\xE5':'aring','\xC5':'angst','\xE4':'auml','\xC4':'Auml','\xE3':'atilde','\xC3':'Atilde','\u0105':'aogon','\u0104':'Aogon','\u0101':'amacr','\u0100':'Amacr','\xE6':'aelig','\xC6':'AElig','\uD835\uDCB7':'bscr','\uD835\uDD53':'bopf','\uD835\uDD1F':'bfr','\uD835\uDD39':'Bopf','\u212C':'Bscr','\uD835\uDD05':'Bfr','\uD835\uDD20':'cfr','\uD835\uDCB8':'cscr','\uD835\uDD54':'copf','\u212D':'Cfr','\uD835\uDC9E':'Cscr','\u2102':'Copf','\u0107':'cacute','\u0106':'Cacute','\u0109':'ccirc','\u0108':'Ccirc','\u010D':'ccaron','\u010C':'Ccaron','\u010B':'cdot','\u010A':'Cdot','\xE7':'ccedil','\xC7':'Ccedil','\u2105':'incare','\uD835\uDD21':'dfr','\u2146':'dd','\uD835\uDD55':'dopf','\uD835\uDCB9':'dscr','\uD835\uDC9F':'Dscr','\uD835\uDD07':'Dfr','\u2145':'DD','\uD835\uDD3B':'Dopf','\u010F':'dcaron','\u010E':'Dcaron','\u0111':'dstrok','\u0110':'Dstrok','\xF0':'eth','\xD0':'ETH','\u2147':'ee','\u212F':'escr','\uD835\uDD22':'efr','\uD835\uDD56':'eopf','\u2130':'Escr','\uD835\uDD08':'Efr','\uD835\uDD3C':'Eopf','\xE9':'eacute','\xC9':'Eacute','\xE8':'egrave','\xC8':'Egrave','\xEA':'ecirc','\xCA':'Ecirc','\u011B':'ecaron','\u011A':'Ecaron','\xEB':'euml','\xCB':'Euml','\u0117':'edot','\u0116':'Edot','\u0119':'eogon','\u0118':'Eogon','\u0113':'emacr','\u0112':'Emacr','\uD835\uDD23':'ffr','\uD835\uDD57':'fopf','\uD835\uDCBB':'fscr','\uD835\uDD09':'Ffr','\uD835\uDD3D':'Fopf','\u2131':'Fscr','\uFB00':'fflig','\uFB03':'ffilig','\uFB04':'ffllig','\uFB01':'filig','fj':'fjlig','\uFB02':'fllig','\u0192':'fnof','\u210A':'gscr','\uD835\uDD58':'gopf','\uD835\uDD24':'gfr','\uD835\uDCA2':'Gscr','\uD835\uDD3E':'Gopf','\uD835\uDD0A':'Gfr','\u01F5':'gacute','\u011F':'gbreve','\u011E':'Gbreve','\u011D':'gcirc','\u011C':'Gcirc','\u0121':'gdot','\u0120':'Gdot','\u0122':'Gcedil','\uD835\uDD25':'hfr','\u210E':'planckh','\uD835\uDCBD':'hscr','\uD835\uDD59':'hopf','\u210B':'Hscr','\u210C':'Hfr','\u210D':'Hopf','\u0125':'hcirc','\u0124':'Hcirc','\u210F':'hbar','\u0127':'hstrok','\u0126':'Hstrok','\uD835\uDD5A':'iopf','\uD835\uDD26':'ifr','\uD835\uDCBE':'iscr','\u2148':'ii','\uD835\uDD40':'Iopf','\u2110':'Iscr','\u2111':'Im','\xED':'iacute','\xCD':'Iacute','\xEC':'igrave','\xCC':'Igrave','\xEE':'icirc','\xCE':'Icirc','\xEF':'iuml','\xCF':'Iuml','\u0129':'itilde','\u0128':'Itilde','\u0130':'Idot','\u012F':'iogon','\u012E':'Iogon','\u012B':'imacr','\u012A':'Imacr','\u0133':'ijlig','\u0132':'IJlig','\u0131':'imath','\uD835\uDCBF':'jscr','\uD835\uDD5B':'jopf','\uD835\uDD27':'jfr','\uD835\uDCA5':'Jscr','\uD835\uDD0D':'Jfr','\uD835\uDD41':'Jopf','\u0135':'jcirc','\u0134':'Jcirc','\u0237':'jmath','\uD835\uDD5C':'kopf','\uD835\uDCC0':'kscr','\uD835\uDD28':'kfr','\uD835\uDCA6':'Kscr','\uD835\uDD42':'Kopf','\uD835\uDD0E':'Kfr','\u0137':'kcedil','\u0136':'Kcedil','\uD835\uDD29':'lfr','\uD835\uDCC1':'lscr','\u2113':'ell','\uD835\uDD5D':'lopf','\u2112':'Lscr','\uD835\uDD0F':'Lfr','\uD835\uDD43':'Lopf','\u013A':'lacute','\u0139':'Lacute','\u013E':'lcaron','\u013D':'Lcaron','\u013C':'lcedil','\u013B':'Lcedil','\u0142':'lstrok','\u0141':'Lstrok','\u0140':'lmidot','\u013F':'Lmidot','\uD835\uDD2A':'mfr','\uD835\uDD5E':'mopf','\uD835\uDCC2':'mscr','\uD835\uDD10':'Mfr','\uD835\uDD44':'Mopf','\u2133':'Mscr','\uD835\uDD2B':'nfr','\uD835\uDD5F':'nopf','\uD835\uDCC3':'nscr','\u2115':'Nopf','\uD835\uDCA9':'Nscr','\uD835\uDD11':'Nfr','\u0144':'nacute','\u0143':'Nacute','\u0148':'ncaron','\u0147':'Ncaron','\xF1':'ntilde','\xD1':'Ntilde','\u0146':'ncedil','\u0145':'Ncedil','\u2116':'numero','\u014B':'eng','\u014A':'ENG','\uD835\uDD60':'oopf','\uD835\uDD2C':'ofr','\u2134':'oscr','\uD835\uDCAA':'Oscr','\uD835\uDD12':'Ofr','\uD835\uDD46':'Oopf','\xBA':'ordm','\xF3':'oacute','\xD3':'Oacute','\xF2':'ograve','\xD2':'Ograve','\xF4':'ocirc','\xD4':'Ocirc','\xF6':'ouml','\xD6':'Ouml','\u0151':'odblac','\u0150':'Odblac','\xF5':'otilde','\xD5':'Otilde','\xF8':'oslash','\xD8':'Oslash','\u014D':'omacr','\u014C':'Omacr','\u0153':'oelig','\u0152':'OElig','\uD835\uDD2D':'pfr','\uD835\uDCC5':'pscr','\uD835\uDD61':'popf','\u2119':'Popf','\uD835\uDD13':'Pfr','\uD835\uDCAB':'Pscr','\uD835\uDD62':'qopf','\uD835\uDD2E':'qfr','\uD835\uDCC6':'qscr','\uD835\uDCAC':'Qscr','\uD835\uDD14':'Qfr','\u211A':'Qopf','\u0138':'kgreen','\uD835\uDD2F':'rfr','\uD835\uDD63':'ropf','\uD835\uDCC7':'rscr','\u211B':'Rscr','\u211C':'Re','\u211D':'Ropf','\u0155':'racute','\u0154':'Racute','\u0159':'rcaron','\u0158':'Rcaron','\u0157':'rcedil','\u0156':'Rcedil','\uD835\uDD64':'sopf','\uD835\uDCC8':'sscr','\uD835\uDD30':'sfr','\uD835\uDD4A':'Sopf','\uD835\uDD16':'Sfr','\uD835\uDCAE':'Sscr','\u24C8':'oS','\u015B':'sacute','\u015A':'Sacute','\u015D':'scirc','\u015C':'Scirc','\u0161':'scaron','\u0160':'Scaron','\u015F':'scedil','\u015E':'Scedil','\xDF':'szlig','\uD835\uDD31':'tfr','\uD835\uDCC9':'tscr','\uD835\uDD65':'topf','\uD835\uDCAF':'Tscr','\uD835\uDD17':'Tfr','\uD835\uDD4B':'Topf','\u0165':'tcaron','\u0164':'Tcaron','\u0163':'tcedil','\u0162':'Tcedil','\u2122':'trade','\u0167':'tstrok','\u0166':'Tstrok','\uD835\uDCCA':'uscr','\uD835\uDD66':'uopf','\uD835\uDD32':'ufr','\uD835\uDD4C':'Uopf','\uD835\uDD18':'Ufr','\uD835\uDCB0':'Uscr','\xFA':'uacute','\xDA':'Uacute','\xF9':'ugrave','\xD9':'Ugrave','\u016D':'ubreve','\u016C':'Ubreve','\xFB':'ucirc','\xDB':'Ucirc','\u016F':'uring','\u016E':'Uring','\xFC':'uuml','\xDC':'Uuml','\u0171':'udblac','\u0170':'Udblac','\u0169':'utilde','\u0168':'Utilde','\u0173':'uogon','\u0172':'Uogon','\u016B':'umacr','\u016A':'Umacr','\uD835\uDD33':'vfr','\uD835\uDD67':'vopf','\uD835\uDCCB':'vscr','\uD835\uDD19':'Vfr','\uD835\uDD4D':'Vopf','\uD835\uDCB1':'Vscr','\uD835\uDD68':'wopf','\uD835\uDCCC':'wscr','\uD835\uDD34':'wfr','\uD835\uDCB2':'Wscr','\uD835\uDD4E':'Wopf','\uD835\uDD1A':'Wfr','\u0175':'wcirc','\u0174':'Wcirc','\uD835\uDD35':'xfr','\uD835\uDCCD':'xscr','\uD835\uDD69':'xopf','\uD835\uDD4F':'Xopf','\uD835\uDD1B':'Xfr','\uD835\uDCB3':'Xscr','\uD835\uDD36':'yfr','\uD835\uDCCE':'yscr','\uD835\uDD6A':'yopf','\uD835\uDCB4':'Yscr','\uD835\uDD1C':'Yfr','\uD835\uDD50':'Yopf','\xFD':'yacute','\xDD':'Yacute','\u0177':'ycirc','\u0176':'Ycirc','\xFF':'yuml','\u0178':'Yuml','\uD835\uDCCF':'zscr','\uD835\uDD37':'zfr','\uD835\uDD6B':'zopf','\u2128':'Zfr','\u2124':'Zopf','\uD835\uDCB5':'Zscr','\u017A':'zacute','\u0179':'Zacute','\u017E':'zcaron','\u017D':'Zcaron','\u017C':'zdot','\u017B':'Zdot','\u01B5':'imped','\xFE':'thorn','\xDE':'THORN','\u0149':'napos','\u03B1':'alpha','\u0391':'Alpha','\u03B2':'beta','\u0392':'Beta','\u03B3':'gamma','\u0393':'Gamma','\u03B4':'delta','\u0394':'Delta','\u03B5':'epsi','\u03F5':'epsiv','\u0395':'Epsilon','\u03DD':'gammad','\u03DC':'Gammad','\u03B6':'zeta','\u0396':'Zeta','\u03B7':'eta','\u0397':'Eta','\u03B8':'theta','\u03D1':'thetav','\u0398':'Theta','\u03B9':'iota','\u0399':'Iota','\u03BA':'kappa','\u03F0':'kappav','\u039A':'Kappa','\u03BB':'lambda','\u039B':'Lambda','\u03BC':'mu','\xB5':'micro','\u039C':'Mu','\u03BD':'nu','\u039D':'Nu','\u03BE':'xi','\u039E':'Xi','\u03BF':'omicron','\u039F':'Omicron','\u03C0':'pi','\u03D6':'piv','\u03A0':'Pi','\u03C1':'rho','\u03F1':'rhov','\u03A1':'Rho','\u03C3':'sigma','\u03A3':'Sigma','\u03C2':'sigmaf','\u03C4':'tau','\u03A4':'Tau','\u03C5':'upsi','\u03A5':'Upsilon','\u03D2':'Upsi','\u03C6':'phi','\u03D5':'phiv','\u03A6':'Phi','\u03C7':'chi','\u03A7':'Chi','\u03C8':'psi','\u03A8':'Psi','\u03C9':'omega','\u03A9':'ohm','\u0430':'acy','\u0410':'Acy','\u0431':'bcy','\u0411':'Bcy','\u0432':'vcy','\u0412':'Vcy','\u0433':'gcy','\u0413':'Gcy','\u0453':'gjcy','\u0403':'GJcy','\u0434':'dcy','\u0414':'Dcy','\u0452':'djcy','\u0402':'DJcy','\u0435':'iecy','\u0415':'IEcy','\u0451':'iocy','\u0401':'IOcy','\u0454':'jukcy','\u0404':'Jukcy','\u0436':'zhcy','\u0416':'ZHcy','\u0437':'zcy','\u0417':'Zcy','\u0455':'dscy','\u0405':'DScy','\u0438':'icy','\u0418':'Icy','\u0456':'iukcy','\u0406':'Iukcy','\u0457':'yicy','\u0407':'YIcy','\u0439':'jcy','\u0419':'Jcy','\u0458':'jsercy','\u0408':'Jsercy','\u043A':'kcy','\u041A':'Kcy','\u045C':'kjcy','\u040C':'KJcy','\u043B':'lcy','\u041B':'Lcy','\u0459':'ljcy','\u0409':'LJcy','\u043C':'mcy','\u041C':'Mcy','\u043D':'ncy','\u041D':'Ncy','\u045A':'njcy','\u040A':'NJcy','\u043E':'ocy','\u041E':'Ocy','\u043F':'pcy','\u041F':'Pcy','\u0440':'rcy','\u0420':'Rcy','\u0441':'scy','\u0421':'Scy','\u0442':'tcy','\u0422':'Tcy','\u045B':'tshcy','\u040B':'TSHcy','\u0443':'ucy','\u0423':'Ucy','\u045E':'ubrcy','\u040E':'Ubrcy','\u0444':'fcy','\u0424':'Fcy','\u0445':'khcy','\u0425':'KHcy','\u0446':'tscy','\u0426':'TScy','\u0447':'chcy','\u0427':'CHcy','\u045F':'dzcy','\u040F':'DZcy','\u0448':'shcy','\u0428':'SHcy','\u0449':'shchcy','\u0429':'SHCHcy','\u044A':'hardcy','\u042A':'HARDcy','\u044B':'ycy','\u042B':'Ycy','\u044C':'softcy','\u042C':'SOFTcy','\u044D':'ecy','\u042D':'Ecy','\u044E':'yucy','\u042E':'YUcy','\u044F':'yacy','\u042F':'YAcy','\u2135':'aleph','\u2136':'beth','\u2137':'gimel','\u2138':'daleth'}; - - var regexEscape = /["&'<>`]/g; - var escapeMap = { - '"': '"', - '&': '&', - '\'': ''', - '<': '<', - // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the - // following is not strictly necessary unless it’s part of a tag or an - // unquoted attribute value. We’re only escaping it to support those - // situations, and for XML support. - '>': '>', - // In Internet Explorer ≤ 8, the backtick character can be used - // to break out of (un)quoted attribute values or HTML comments. - // See http://html5sec.org/#102, http://html5sec.org/#108, and - // http://html5sec.org/#133. - '`': '`' - }; - - var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/; - var regexInvalidRawCodePoint = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; - var regexDecode = /&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)([=a-zA-Z0-9])?/g; - var decodeMap = {'aacute':'\xE1','Aacute':'\xC1','abreve':'\u0103','Abreve':'\u0102','ac':'\u223E','acd':'\u223F','acE':'\u223E\u0333','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','acy':'\u0430','Acy':'\u0410','aelig':'\xE6','AElig':'\xC6','af':'\u2061','afr':'\uD835\uDD1E','Afr':'\uD835\uDD04','agrave':'\xE0','Agrave':'\xC0','alefsym':'\u2135','aleph':'\u2135','alpha':'\u03B1','Alpha':'\u0391','amacr':'\u0101','Amacr':'\u0100','amalg':'\u2A3F','amp':'&','AMP':'&','and':'\u2227','And':'\u2A53','andand':'\u2A55','andd':'\u2A5C','andslope':'\u2A58','andv':'\u2A5A','ang':'\u2220','ange':'\u29A4','angle':'\u2220','angmsd':'\u2221','angmsdaa':'\u29A8','angmsdab':'\u29A9','angmsdac':'\u29AA','angmsdad':'\u29AB','angmsdae':'\u29AC','angmsdaf':'\u29AD','angmsdag':'\u29AE','angmsdah':'\u29AF','angrt':'\u221F','angrtvb':'\u22BE','angrtvbd':'\u299D','angsph':'\u2222','angst':'\xC5','angzarr':'\u237C','aogon':'\u0105','Aogon':'\u0104','aopf':'\uD835\uDD52','Aopf':'\uD835\uDD38','ap':'\u2248','apacir':'\u2A6F','ape':'\u224A','apE':'\u2A70','apid':'\u224B','apos':'\'','ApplyFunction':'\u2061','approx':'\u2248','approxeq':'\u224A','aring':'\xE5','Aring':'\xC5','ascr':'\uD835\uDCB6','Ascr':'\uD835\uDC9C','Assign':'\u2254','ast':'*','asymp':'\u2248','asympeq':'\u224D','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','awconint':'\u2233','awint':'\u2A11','backcong':'\u224C','backepsilon':'\u03F6','backprime':'\u2035','backsim':'\u223D','backsimeq':'\u22CD','Backslash':'\u2216','Barv':'\u2AE7','barvee':'\u22BD','barwed':'\u2305','Barwed':'\u2306','barwedge':'\u2305','bbrk':'\u23B5','bbrktbrk':'\u23B6','bcong':'\u224C','bcy':'\u0431','Bcy':'\u0411','bdquo':'\u201E','becaus':'\u2235','because':'\u2235','Because':'\u2235','bemptyv':'\u29B0','bepsi':'\u03F6','bernou':'\u212C','Bernoullis':'\u212C','beta':'\u03B2','Beta':'\u0392','beth':'\u2136','between':'\u226C','bfr':'\uD835\uDD1F','Bfr':'\uD835\uDD05','bigcap':'\u22C2','bigcirc':'\u25EF','bigcup':'\u22C3','bigodot':'\u2A00','bigoplus':'\u2A01','bigotimes':'\u2A02','bigsqcup':'\u2A06','bigstar':'\u2605','bigtriangledown':'\u25BD','bigtriangleup':'\u25B3','biguplus':'\u2A04','bigvee':'\u22C1','bigwedge':'\u22C0','bkarow':'\u290D','blacklozenge':'\u29EB','blacksquare':'\u25AA','blacktriangle':'\u25B4','blacktriangledown':'\u25BE','blacktriangleleft':'\u25C2','blacktriangleright':'\u25B8','blank':'\u2423','blk12':'\u2592','blk14':'\u2591','blk34':'\u2593','block':'\u2588','bne':'=\u20E5','bnequiv':'\u2261\u20E5','bnot':'\u2310','bNot':'\u2AED','bopf':'\uD835\uDD53','Bopf':'\uD835\uDD39','bot':'\u22A5','bottom':'\u22A5','bowtie':'\u22C8','boxbox':'\u29C9','boxdl':'\u2510','boxdL':'\u2555','boxDl':'\u2556','boxDL':'\u2557','boxdr':'\u250C','boxdR':'\u2552','boxDr':'\u2553','boxDR':'\u2554','boxh':'\u2500','boxH':'\u2550','boxhd':'\u252C','boxhD':'\u2565','boxHd':'\u2564','boxHD':'\u2566','boxhu':'\u2534','boxhU':'\u2568','boxHu':'\u2567','boxHU':'\u2569','boxminus':'\u229F','boxplus':'\u229E','boxtimes':'\u22A0','boxul':'\u2518','boxuL':'\u255B','boxUl':'\u255C','boxUL':'\u255D','boxur':'\u2514','boxuR':'\u2558','boxUr':'\u2559','boxUR':'\u255A','boxv':'\u2502','boxV':'\u2551','boxvh':'\u253C','boxvH':'\u256A','boxVh':'\u256B','boxVH':'\u256C','boxvl':'\u2524','boxvL':'\u2561','boxVl':'\u2562','boxVL':'\u2563','boxvr':'\u251C','boxvR':'\u255E','boxVr':'\u255F','boxVR':'\u2560','bprime':'\u2035','breve':'\u02D8','Breve':'\u02D8','brvbar':'\xA6','bscr':'\uD835\uDCB7','Bscr':'\u212C','bsemi':'\u204F','bsim':'\u223D','bsime':'\u22CD','bsol':'\\','bsolb':'\u29C5','bsolhsub':'\u27C8','bull':'\u2022','bullet':'\u2022','bump':'\u224E','bumpe':'\u224F','bumpE':'\u2AAE','bumpeq':'\u224F','Bumpeq':'\u224E','cacute':'\u0107','Cacute':'\u0106','cap':'\u2229','Cap':'\u22D2','capand':'\u2A44','capbrcup':'\u2A49','capcap':'\u2A4B','capcup':'\u2A47','capdot':'\u2A40','CapitalDifferentialD':'\u2145','caps':'\u2229\uFE00','caret':'\u2041','caron':'\u02C7','Cayleys':'\u212D','ccaps':'\u2A4D','ccaron':'\u010D','Ccaron':'\u010C','ccedil':'\xE7','Ccedil':'\xC7','ccirc':'\u0109','Ccirc':'\u0108','Cconint':'\u2230','ccups':'\u2A4C','ccupssm':'\u2A50','cdot':'\u010B','Cdot':'\u010A','cedil':'\xB8','Cedilla':'\xB8','cemptyv':'\u29B2','cent':'\xA2','centerdot':'\xB7','CenterDot':'\xB7','cfr':'\uD835\uDD20','Cfr':'\u212D','chcy':'\u0447','CHcy':'\u0427','check':'\u2713','checkmark':'\u2713','chi':'\u03C7','Chi':'\u03A7','cir':'\u25CB','circ':'\u02C6','circeq':'\u2257','circlearrowleft':'\u21BA','circlearrowright':'\u21BB','circledast':'\u229B','circledcirc':'\u229A','circleddash':'\u229D','CircleDot':'\u2299','circledR':'\xAE','circledS':'\u24C8','CircleMinus':'\u2296','CirclePlus':'\u2295','CircleTimes':'\u2297','cire':'\u2257','cirE':'\u29C3','cirfnint':'\u2A10','cirmid':'\u2AEF','cirscir':'\u29C2','ClockwiseContourIntegral':'\u2232','CloseCurlyDoubleQuote':'\u201D','CloseCurlyQuote':'\u2019','clubs':'\u2663','clubsuit':'\u2663','colon':':','Colon':'\u2237','colone':'\u2254','Colone':'\u2A74','coloneq':'\u2254','comma':',','commat':'@','comp':'\u2201','compfn':'\u2218','complement':'\u2201','complexes':'\u2102','cong':'\u2245','congdot':'\u2A6D','Congruent':'\u2261','conint':'\u222E','Conint':'\u222F','ContourIntegral':'\u222E','copf':'\uD835\uDD54','Copf':'\u2102','coprod':'\u2210','Coproduct':'\u2210','copy':'\xA9','COPY':'\xA9','copysr':'\u2117','CounterClockwiseContourIntegral':'\u2233','crarr':'\u21B5','cross':'\u2717','Cross':'\u2A2F','cscr':'\uD835\uDCB8','Cscr':'\uD835\uDC9E','csub':'\u2ACF','csube':'\u2AD1','csup':'\u2AD0','csupe':'\u2AD2','ctdot':'\u22EF','cudarrl':'\u2938','cudarrr':'\u2935','cuepr':'\u22DE','cuesc':'\u22DF','cularr':'\u21B6','cularrp':'\u293D','cup':'\u222A','Cup':'\u22D3','cupbrcap':'\u2A48','cupcap':'\u2A46','CupCap':'\u224D','cupcup':'\u2A4A','cupdot':'\u228D','cupor':'\u2A45','cups':'\u222A\uFE00','curarr':'\u21B7','curarrm':'\u293C','curlyeqprec':'\u22DE','curlyeqsucc':'\u22DF','curlyvee':'\u22CE','curlywedge':'\u22CF','curren':'\xA4','curvearrowleft':'\u21B6','curvearrowright':'\u21B7','cuvee':'\u22CE','cuwed':'\u22CF','cwconint':'\u2232','cwint':'\u2231','cylcty':'\u232D','dagger':'\u2020','Dagger':'\u2021','daleth':'\u2138','darr':'\u2193','dArr':'\u21D3','Darr':'\u21A1','dash':'\u2010','dashv':'\u22A3','Dashv':'\u2AE4','dbkarow':'\u290F','dblac':'\u02DD','dcaron':'\u010F','Dcaron':'\u010E','dcy':'\u0434','Dcy':'\u0414','dd':'\u2146','DD':'\u2145','ddagger':'\u2021','ddarr':'\u21CA','DDotrahd':'\u2911','ddotseq':'\u2A77','deg':'\xB0','Del':'\u2207','delta':'\u03B4','Delta':'\u0394','demptyv':'\u29B1','dfisht':'\u297F','dfr':'\uD835\uDD21','Dfr':'\uD835\uDD07','dHar':'\u2965','dharl':'\u21C3','dharr':'\u21C2','DiacriticalAcute':'\xB4','DiacriticalDot':'\u02D9','DiacriticalDoubleAcute':'\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\u02DC','diam':'\u22C4','diamond':'\u22C4','Diamond':'\u22C4','diamondsuit':'\u2666','diams':'\u2666','die':'\xA8','DifferentialD':'\u2146','digamma':'\u03DD','disin':'\u22F2','div':'\xF7','divide':'\xF7','divideontimes':'\u22C7','divonx':'\u22C7','djcy':'\u0452','DJcy':'\u0402','dlcorn':'\u231E','dlcrop':'\u230D','dollar':'$','dopf':'\uD835\uDD55','Dopf':'\uD835\uDD3B','dot':'\u02D9','Dot':'\xA8','DotDot':'\u20DC','doteq':'\u2250','doteqdot':'\u2251','DotEqual':'\u2250','dotminus':'\u2238','dotplus':'\u2214','dotsquare':'\u22A1','doublebarwedge':'\u2306','DoubleContourIntegral':'\u222F','DoubleDot':'\xA8','DoubleDownArrow':'\u21D3','DoubleLeftArrow':'\u21D0','DoubleLeftRightArrow':'\u21D4','DoubleLeftTee':'\u2AE4','DoubleLongLeftArrow':'\u27F8','DoubleLongLeftRightArrow':'\u27FA','DoubleLongRightArrow':'\u27F9','DoubleRightArrow':'\u21D2','DoubleRightTee':'\u22A8','DoubleUpArrow':'\u21D1','DoubleUpDownArrow':'\u21D5','DoubleVerticalBar':'\u2225','downarrow':'\u2193','Downarrow':'\u21D3','DownArrow':'\u2193','DownArrowBar':'\u2913','DownArrowUpArrow':'\u21F5','DownBreve':'\u0311','downdownarrows':'\u21CA','downharpoonleft':'\u21C3','downharpoonright':'\u21C2','DownLeftRightVector':'\u2950','DownLeftTeeVector':'\u295E','DownLeftVector':'\u21BD','DownLeftVectorBar':'\u2956','DownRightTeeVector':'\u295F','DownRightVector':'\u21C1','DownRightVectorBar':'\u2957','DownTee':'\u22A4','DownTeeArrow':'\u21A7','drbkarow':'\u2910','drcorn':'\u231F','drcrop':'\u230C','dscr':'\uD835\uDCB9','Dscr':'\uD835\uDC9F','dscy':'\u0455','DScy':'\u0405','dsol':'\u29F6','dstrok':'\u0111','Dstrok':'\u0110','dtdot':'\u22F1','dtri':'\u25BF','dtrif':'\u25BE','duarr':'\u21F5','duhar':'\u296F','dwangle':'\u29A6','dzcy':'\u045F','DZcy':'\u040F','dzigrarr':'\u27FF','eacute':'\xE9','Eacute':'\xC9','easter':'\u2A6E','ecaron':'\u011B','Ecaron':'\u011A','ecir':'\u2256','ecirc':'\xEA','Ecirc':'\xCA','ecolon':'\u2255','ecy':'\u044D','Ecy':'\u042D','eDDot':'\u2A77','edot':'\u0117','eDot':'\u2251','Edot':'\u0116','ee':'\u2147','efDot':'\u2252','efr':'\uD835\uDD22','Efr':'\uD835\uDD08','eg':'\u2A9A','egrave':'\xE8','Egrave':'\xC8','egs':'\u2A96','egsdot':'\u2A98','el':'\u2A99','Element':'\u2208','elinters':'\u23E7','ell':'\u2113','els':'\u2A95','elsdot':'\u2A97','emacr':'\u0113','Emacr':'\u0112','empty':'\u2205','emptyset':'\u2205','EmptySmallSquare':'\u25FB','emptyv':'\u2205','EmptyVerySmallSquare':'\u25AB','emsp':'\u2003','emsp13':'\u2004','emsp14':'\u2005','eng':'\u014B','ENG':'\u014A','ensp':'\u2002','eogon':'\u0119','Eogon':'\u0118','eopf':'\uD835\uDD56','Eopf':'\uD835\uDD3C','epar':'\u22D5','eparsl':'\u29E3','eplus':'\u2A71','epsi':'\u03B5','epsilon':'\u03B5','Epsilon':'\u0395','epsiv':'\u03F5','eqcirc':'\u2256','eqcolon':'\u2255','eqsim':'\u2242','eqslantgtr':'\u2A96','eqslantless':'\u2A95','Equal':'\u2A75','equals':'=','EqualTilde':'\u2242','equest':'\u225F','Equilibrium':'\u21CC','equiv':'\u2261','equivDD':'\u2A78','eqvparsl':'\u29E5','erarr':'\u2971','erDot':'\u2253','escr':'\u212F','Escr':'\u2130','esdot':'\u2250','esim':'\u2242','Esim':'\u2A73','eta':'\u03B7','Eta':'\u0397','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','euro':'\u20AC','excl':'!','exist':'\u2203','Exists':'\u2203','expectation':'\u2130','exponentiale':'\u2147','ExponentialE':'\u2147','fallingdotseq':'\u2252','fcy':'\u0444','Fcy':'\u0424','female':'\u2640','ffilig':'\uFB03','fflig':'\uFB00','ffllig':'\uFB04','ffr':'\uD835\uDD23','Ffr':'\uD835\uDD09','filig':'\uFB01','FilledSmallSquare':'\u25FC','FilledVerySmallSquare':'\u25AA','fjlig':'fj','flat':'\u266D','fllig':'\uFB02','fltns':'\u25B1','fnof':'\u0192','fopf':'\uD835\uDD57','Fopf':'\uD835\uDD3D','forall':'\u2200','ForAll':'\u2200','fork':'\u22D4','forkv':'\u2AD9','Fouriertrf':'\u2131','fpartint':'\u2A0D','frac12':'\xBD','frac13':'\u2153','frac14':'\xBC','frac15':'\u2155','frac16':'\u2159','frac18':'\u215B','frac23':'\u2154','frac25':'\u2156','frac34':'\xBE','frac35':'\u2157','frac38':'\u215C','frac45':'\u2158','frac56':'\u215A','frac58':'\u215D','frac78':'\u215E','frasl':'\u2044','frown':'\u2322','fscr':'\uD835\uDCBB','Fscr':'\u2131','gacute':'\u01F5','gamma':'\u03B3','Gamma':'\u0393','gammad':'\u03DD','Gammad':'\u03DC','gap':'\u2A86','gbreve':'\u011F','Gbreve':'\u011E','Gcedil':'\u0122','gcirc':'\u011D','Gcirc':'\u011C','gcy':'\u0433','Gcy':'\u0413','gdot':'\u0121','Gdot':'\u0120','ge':'\u2265','gE':'\u2267','gel':'\u22DB','gEl':'\u2A8C','geq':'\u2265','geqq':'\u2267','geqslant':'\u2A7E','ges':'\u2A7E','gescc':'\u2AA9','gesdot':'\u2A80','gesdoto':'\u2A82','gesdotol':'\u2A84','gesl':'\u22DB\uFE00','gesles':'\u2A94','gfr':'\uD835\uDD24','Gfr':'\uD835\uDD0A','gg':'\u226B','Gg':'\u22D9','ggg':'\u22D9','gimel':'\u2137','gjcy':'\u0453','GJcy':'\u0403','gl':'\u2277','gla':'\u2AA5','glE':'\u2A92','glj':'\u2AA4','gnap':'\u2A8A','gnapprox':'\u2A8A','gne':'\u2A88','gnE':'\u2269','gneq':'\u2A88','gneqq':'\u2269','gnsim':'\u22E7','gopf':'\uD835\uDD58','Gopf':'\uD835\uDD3E','grave':'`','GreaterEqual':'\u2265','GreaterEqualLess':'\u22DB','GreaterFullEqual':'\u2267','GreaterGreater':'\u2AA2','GreaterLess':'\u2277','GreaterSlantEqual':'\u2A7E','GreaterTilde':'\u2273','gscr':'\u210A','Gscr':'\uD835\uDCA2','gsim':'\u2273','gsime':'\u2A8E','gsiml':'\u2A90','gt':'>','Gt':'\u226B','GT':'>','gtcc':'\u2AA7','gtcir':'\u2A7A','gtdot':'\u22D7','gtlPar':'\u2995','gtquest':'\u2A7C','gtrapprox':'\u2A86','gtrarr':'\u2978','gtrdot':'\u22D7','gtreqless':'\u22DB','gtreqqless':'\u2A8C','gtrless':'\u2277','gtrsim':'\u2273','gvertneqq':'\u2269\uFE00','gvnE':'\u2269\uFE00','Hacek':'\u02C7','hairsp':'\u200A','half':'\xBD','hamilt':'\u210B','hardcy':'\u044A','HARDcy':'\u042A','harr':'\u2194','hArr':'\u21D4','harrcir':'\u2948','harrw':'\u21AD','Hat':'^','hbar':'\u210F','hcirc':'\u0125','Hcirc':'\u0124','hearts':'\u2665','heartsuit':'\u2665','hellip':'\u2026','hercon':'\u22B9','hfr':'\uD835\uDD25','Hfr':'\u210C','HilbertSpace':'\u210B','hksearow':'\u2925','hkswarow':'\u2926','hoarr':'\u21FF','homtht':'\u223B','hookleftarrow':'\u21A9','hookrightarrow':'\u21AA','hopf':'\uD835\uDD59','Hopf':'\u210D','horbar':'\u2015','HorizontalLine':'\u2500','hscr':'\uD835\uDCBD','Hscr':'\u210B','hslash':'\u210F','hstrok':'\u0127','Hstrok':'\u0126','HumpDownHump':'\u224E','HumpEqual':'\u224F','hybull':'\u2043','hyphen':'\u2010','iacute':'\xED','Iacute':'\xCD','ic':'\u2063','icirc':'\xEE','Icirc':'\xCE','icy':'\u0438','Icy':'\u0418','Idot':'\u0130','iecy':'\u0435','IEcy':'\u0415','iexcl':'\xA1','iff':'\u21D4','ifr':'\uD835\uDD26','Ifr':'\u2111','igrave':'\xEC','Igrave':'\xCC','ii':'\u2148','iiiint':'\u2A0C','iiint':'\u222D','iinfin':'\u29DC','iiota':'\u2129','ijlig':'\u0133','IJlig':'\u0132','Im':'\u2111','imacr':'\u012B','Imacr':'\u012A','image':'\u2111','ImaginaryI':'\u2148','imagline':'\u2110','imagpart':'\u2111','imath':'\u0131','imof':'\u22B7','imped':'\u01B5','Implies':'\u21D2','in':'\u2208','incare':'\u2105','infin':'\u221E','infintie':'\u29DD','inodot':'\u0131','int':'\u222B','Int':'\u222C','intcal':'\u22BA','integers':'\u2124','Integral':'\u222B','intercal':'\u22BA','Intersection':'\u22C2','intlarhk':'\u2A17','intprod':'\u2A3C','InvisibleComma':'\u2063','InvisibleTimes':'\u2062','iocy':'\u0451','IOcy':'\u0401','iogon':'\u012F','Iogon':'\u012E','iopf':'\uD835\uDD5A','Iopf':'\uD835\uDD40','iota':'\u03B9','Iota':'\u0399','iprod':'\u2A3C','iquest':'\xBF','iscr':'\uD835\uDCBE','Iscr':'\u2110','isin':'\u2208','isindot':'\u22F5','isinE':'\u22F9','isins':'\u22F4','isinsv':'\u22F3','isinv':'\u2208','it':'\u2062','itilde':'\u0129','Itilde':'\u0128','iukcy':'\u0456','Iukcy':'\u0406','iuml':'\xEF','Iuml':'\xCF','jcirc':'\u0135','Jcirc':'\u0134','jcy':'\u0439','Jcy':'\u0419','jfr':'\uD835\uDD27','Jfr':'\uD835\uDD0D','jmath':'\u0237','jopf':'\uD835\uDD5B','Jopf':'\uD835\uDD41','jscr':'\uD835\uDCBF','Jscr':'\uD835\uDCA5','jsercy':'\u0458','Jsercy':'\u0408','jukcy':'\u0454','Jukcy':'\u0404','kappa':'\u03BA','Kappa':'\u039A','kappav':'\u03F0','kcedil':'\u0137','Kcedil':'\u0136','kcy':'\u043A','Kcy':'\u041A','kfr':'\uD835\uDD28','Kfr':'\uD835\uDD0E','kgreen':'\u0138','khcy':'\u0445','KHcy':'\u0425','kjcy':'\u045C','KJcy':'\u040C','kopf':'\uD835\uDD5C','Kopf':'\uD835\uDD42','kscr':'\uD835\uDCC0','Kscr':'\uD835\uDCA6','lAarr':'\u21DA','lacute':'\u013A','Lacute':'\u0139','laemptyv':'\u29B4','lagran':'\u2112','lambda':'\u03BB','Lambda':'\u039B','lang':'\u27E8','Lang':'\u27EA','langd':'\u2991','langle':'\u27E8','lap':'\u2A85','Laplacetrf':'\u2112','laquo':'\xAB','larr':'\u2190','lArr':'\u21D0','Larr':'\u219E','larrb':'\u21E4','larrbfs':'\u291F','larrfs':'\u291D','larrhk':'\u21A9','larrlp':'\u21AB','larrpl':'\u2939','larrsim':'\u2973','larrtl':'\u21A2','lat':'\u2AAB','latail':'\u2919','lAtail':'\u291B','late':'\u2AAD','lates':'\u2AAD\uFE00','lbarr':'\u290C','lBarr':'\u290E','lbbrk':'\u2772','lbrace':'{','lbrack':'[','lbrke':'\u298B','lbrksld':'\u298F','lbrkslu':'\u298D','lcaron':'\u013E','Lcaron':'\u013D','lcedil':'\u013C','Lcedil':'\u013B','lceil':'\u2308','lcub':'{','lcy':'\u043B','Lcy':'\u041B','ldca':'\u2936','ldquo':'\u201C','ldquor':'\u201E','ldrdhar':'\u2967','ldrushar':'\u294B','ldsh':'\u21B2','le':'\u2264','lE':'\u2266','LeftAngleBracket':'\u27E8','leftarrow':'\u2190','Leftarrow':'\u21D0','LeftArrow':'\u2190','LeftArrowBar':'\u21E4','LeftArrowRightArrow':'\u21C6','leftarrowtail':'\u21A2','LeftCeiling':'\u2308','LeftDoubleBracket':'\u27E6','LeftDownTeeVector':'\u2961','LeftDownVector':'\u21C3','LeftDownVectorBar':'\u2959','LeftFloor':'\u230A','leftharpoondown':'\u21BD','leftharpoonup':'\u21BC','leftleftarrows':'\u21C7','leftrightarrow':'\u2194','Leftrightarrow':'\u21D4','LeftRightArrow':'\u2194','leftrightarrows':'\u21C6','leftrightharpoons':'\u21CB','leftrightsquigarrow':'\u21AD','LeftRightVector':'\u294E','LeftTee':'\u22A3','LeftTeeArrow':'\u21A4','LeftTeeVector':'\u295A','leftthreetimes':'\u22CB','LeftTriangle':'\u22B2','LeftTriangleBar':'\u29CF','LeftTriangleEqual':'\u22B4','LeftUpDownVector':'\u2951','LeftUpTeeVector':'\u2960','LeftUpVector':'\u21BF','LeftUpVectorBar':'\u2958','LeftVector':'\u21BC','LeftVectorBar':'\u2952','leg':'\u22DA','lEg':'\u2A8B','leq':'\u2264','leqq':'\u2266','leqslant':'\u2A7D','les':'\u2A7D','lescc':'\u2AA8','lesdot':'\u2A7F','lesdoto':'\u2A81','lesdotor':'\u2A83','lesg':'\u22DA\uFE00','lesges':'\u2A93','lessapprox':'\u2A85','lessdot':'\u22D6','lesseqgtr':'\u22DA','lesseqqgtr':'\u2A8B','LessEqualGreater':'\u22DA','LessFullEqual':'\u2266','LessGreater':'\u2276','lessgtr':'\u2276','LessLess':'\u2AA1','lesssim':'\u2272','LessSlantEqual':'\u2A7D','LessTilde':'\u2272','lfisht':'\u297C','lfloor':'\u230A','lfr':'\uD835\uDD29','Lfr':'\uD835\uDD0F','lg':'\u2276','lgE':'\u2A91','lHar':'\u2962','lhard':'\u21BD','lharu':'\u21BC','lharul':'\u296A','lhblk':'\u2584','ljcy':'\u0459','LJcy':'\u0409','ll':'\u226A','Ll':'\u22D8','llarr':'\u21C7','llcorner':'\u231E','Lleftarrow':'\u21DA','llhard':'\u296B','lltri':'\u25FA','lmidot':'\u0140','Lmidot':'\u013F','lmoust':'\u23B0','lmoustache':'\u23B0','lnap':'\u2A89','lnapprox':'\u2A89','lne':'\u2A87','lnE':'\u2268','lneq':'\u2A87','lneqq':'\u2268','lnsim':'\u22E6','loang':'\u27EC','loarr':'\u21FD','lobrk':'\u27E6','longleftarrow':'\u27F5','Longleftarrow':'\u27F8','LongLeftArrow':'\u27F5','longleftrightarrow':'\u27F7','Longleftrightarrow':'\u27FA','LongLeftRightArrow':'\u27F7','longmapsto':'\u27FC','longrightarrow':'\u27F6','Longrightarrow':'\u27F9','LongRightArrow':'\u27F6','looparrowleft':'\u21AB','looparrowright':'\u21AC','lopar':'\u2985','lopf':'\uD835\uDD5D','Lopf':'\uD835\uDD43','loplus':'\u2A2D','lotimes':'\u2A34','lowast':'\u2217','lowbar':'_','LowerLeftArrow':'\u2199','LowerRightArrow':'\u2198','loz':'\u25CA','lozenge':'\u25CA','lozf':'\u29EB','lpar':'(','lparlt':'\u2993','lrarr':'\u21C6','lrcorner':'\u231F','lrhar':'\u21CB','lrhard':'\u296D','lrm':'\u200E','lrtri':'\u22BF','lsaquo':'\u2039','lscr':'\uD835\uDCC1','Lscr':'\u2112','lsh':'\u21B0','Lsh':'\u21B0','lsim':'\u2272','lsime':'\u2A8D','lsimg':'\u2A8F','lsqb':'[','lsquo':'\u2018','lsquor':'\u201A','lstrok':'\u0142','Lstrok':'\u0141','lt':'<','Lt':'\u226A','LT':'<','ltcc':'\u2AA6','ltcir':'\u2A79','ltdot':'\u22D6','lthree':'\u22CB','ltimes':'\u22C9','ltlarr':'\u2976','ltquest':'\u2A7B','ltri':'\u25C3','ltrie':'\u22B4','ltrif':'\u25C2','ltrPar':'\u2996','lurdshar':'\u294A','luruhar':'\u2966','lvertneqq':'\u2268\uFE00','lvnE':'\u2268\uFE00','macr':'\xAF','male':'\u2642','malt':'\u2720','maltese':'\u2720','map':'\u21A6','Map':'\u2905','mapsto':'\u21A6','mapstodown':'\u21A7','mapstoleft':'\u21A4','mapstoup':'\u21A5','marker':'\u25AE','mcomma':'\u2A29','mcy':'\u043C','Mcy':'\u041C','mdash':'\u2014','mDDot':'\u223A','measuredangle':'\u2221','MediumSpace':'\u205F','Mellintrf':'\u2133','mfr':'\uD835\uDD2A','Mfr':'\uD835\uDD10','mho':'\u2127','micro':'\xB5','mid':'\u2223','midast':'*','midcir':'\u2AF0','middot':'\xB7','minus':'\u2212','minusb':'\u229F','minusd':'\u2238','minusdu':'\u2A2A','MinusPlus':'\u2213','mlcp':'\u2ADB','mldr':'\u2026','mnplus':'\u2213','models':'\u22A7','mopf':'\uD835\uDD5E','Mopf':'\uD835\uDD44','mp':'\u2213','mscr':'\uD835\uDCC2','Mscr':'\u2133','mstpos':'\u223E','mu':'\u03BC','Mu':'\u039C','multimap':'\u22B8','mumap':'\u22B8','nabla':'\u2207','nacute':'\u0144','Nacute':'\u0143','nang':'\u2220\u20D2','nap':'\u2249','napE':'\u2A70\u0338','napid':'\u224B\u0338','napos':'\u0149','napprox':'\u2249','natur':'\u266E','natural':'\u266E','naturals':'\u2115','nbsp':'\xA0','nbump':'\u224E\u0338','nbumpe':'\u224F\u0338','ncap':'\u2A43','ncaron':'\u0148','Ncaron':'\u0147','ncedil':'\u0146','Ncedil':'\u0145','ncong':'\u2247','ncongdot':'\u2A6D\u0338','ncup':'\u2A42','ncy':'\u043D','Ncy':'\u041D','ndash':'\u2013','ne':'\u2260','nearhk':'\u2924','nearr':'\u2197','neArr':'\u21D7','nearrow':'\u2197','nedot':'\u2250\u0338','NegativeMediumSpace':'\u200B','NegativeThickSpace':'\u200B','NegativeThinSpace':'\u200B','NegativeVeryThinSpace':'\u200B','nequiv':'\u2262','nesear':'\u2928','nesim':'\u2242\u0338','NestedGreaterGreater':'\u226B','NestedLessLess':'\u226A','NewLine':'\n','nexist':'\u2204','nexists':'\u2204','nfr':'\uD835\uDD2B','Nfr':'\uD835\uDD11','nge':'\u2271','ngE':'\u2267\u0338','ngeq':'\u2271','ngeqq':'\u2267\u0338','ngeqslant':'\u2A7E\u0338','nges':'\u2A7E\u0338','nGg':'\u22D9\u0338','ngsim':'\u2275','ngt':'\u226F','nGt':'\u226B\u20D2','ngtr':'\u226F','nGtv':'\u226B\u0338','nharr':'\u21AE','nhArr':'\u21CE','nhpar':'\u2AF2','ni':'\u220B','nis':'\u22FC','nisd':'\u22FA','niv':'\u220B','njcy':'\u045A','NJcy':'\u040A','nlarr':'\u219A','nlArr':'\u21CD','nldr':'\u2025','nle':'\u2270','nlE':'\u2266\u0338','nleftarrow':'\u219A','nLeftarrow':'\u21CD','nleftrightarrow':'\u21AE','nLeftrightarrow':'\u21CE','nleq':'\u2270','nleqq':'\u2266\u0338','nleqslant':'\u2A7D\u0338','nles':'\u2A7D\u0338','nless':'\u226E','nLl':'\u22D8\u0338','nlsim':'\u2274','nlt':'\u226E','nLt':'\u226A\u20D2','nltri':'\u22EA','nltrie':'\u22EC','nLtv':'\u226A\u0338','nmid':'\u2224','NoBreak':'\u2060','NonBreakingSpace':'\xA0','nopf':'\uD835\uDD5F','Nopf':'\u2115','not':'\xAC','Not':'\u2AEC','NotCongruent':'\u2262','NotCupCap':'\u226D','NotDoubleVerticalBar':'\u2226','NotElement':'\u2209','NotEqual':'\u2260','NotEqualTilde':'\u2242\u0338','NotExists':'\u2204','NotGreater':'\u226F','NotGreaterEqual':'\u2271','NotGreaterFullEqual':'\u2267\u0338','NotGreaterGreater':'\u226B\u0338','NotGreaterLess':'\u2279','NotGreaterSlantEqual':'\u2A7E\u0338','NotGreaterTilde':'\u2275','NotHumpDownHump':'\u224E\u0338','NotHumpEqual':'\u224F\u0338','notin':'\u2209','notindot':'\u22F5\u0338','notinE':'\u22F9\u0338','notinva':'\u2209','notinvb':'\u22F7','notinvc':'\u22F6','NotLeftTriangle':'\u22EA','NotLeftTriangleBar':'\u29CF\u0338','NotLeftTriangleEqual':'\u22EC','NotLess':'\u226E','NotLessEqual':'\u2270','NotLessGreater':'\u2278','NotLessLess':'\u226A\u0338','NotLessSlantEqual':'\u2A7D\u0338','NotLessTilde':'\u2274','NotNestedGreaterGreater':'\u2AA2\u0338','NotNestedLessLess':'\u2AA1\u0338','notni':'\u220C','notniva':'\u220C','notnivb':'\u22FE','notnivc':'\u22FD','NotPrecedes':'\u2280','NotPrecedesEqual':'\u2AAF\u0338','NotPrecedesSlantEqual':'\u22E0','NotReverseElement':'\u220C','NotRightTriangle':'\u22EB','NotRightTriangleBar':'\u29D0\u0338','NotRightTriangleEqual':'\u22ED','NotSquareSubset':'\u228F\u0338','NotSquareSubsetEqual':'\u22E2','NotSquareSuperset':'\u2290\u0338','NotSquareSupersetEqual':'\u22E3','NotSubset':'\u2282\u20D2','NotSubsetEqual':'\u2288','NotSucceeds':'\u2281','NotSucceedsEqual':'\u2AB0\u0338','NotSucceedsSlantEqual':'\u22E1','NotSucceedsTilde':'\u227F\u0338','NotSuperset':'\u2283\u20D2','NotSupersetEqual':'\u2289','NotTilde':'\u2241','NotTildeEqual':'\u2244','NotTildeFullEqual':'\u2247','NotTildeTilde':'\u2249','NotVerticalBar':'\u2224','npar':'\u2226','nparallel':'\u2226','nparsl':'\u2AFD\u20E5','npart':'\u2202\u0338','npolint':'\u2A14','npr':'\u2280','nprcue':'\u22E0','npre':'\u2AAF\u0338','nprec':'\u2280','npreceq':'\u2AAF\u0338','nrarr':'\u219B','nrArr':'\u21CF','nrarrc':'\u2933\u0338','nrarrw':'\u219D\u0338','nrightarrow':'\u219B','nRightarrow':'\u21CF','nrtri':'\u22EB','nrtrie':'\u22ED','nsc':'\u2281','nsccue':'\u22E1','nsce':'\u2AB0\u0338','nscr':'\uD835\uDCC3','Nscr':'\uD835\uDCA9','nshortmid':'\u2224','nshortparallel':'\u2226','nsim':'\u2241','nsime':'\u2244','nsimeq':'\u2244','nsmid':'\u2224','nspar':'\u2226','nsqsube':'\u22E2','nsqsupe':'\u22E3','nsub':'\u2284','nsube':'\u2288','nsubE':'\u2AC5\u0338','nsubset':'\u2282\u20D2','nsubseteq':'\u2288','nsubseteqq':'\u2AC5\u0338','nsucc':'\u2281','nsucceq':'\u2AB0\u0338','nsup':'\u2285','nsupe':'\u2289','nsupE':'\u2AC6\u0338','nsupset':'\u2283\u20D2','nsupseteq':'\u2289','nsupseteqq':'\u2AC6\u0338','ntgl':'\u2279','ntilde':'\xF1','Ntilde':'\xD1','ntlg':'\u2278','ntriangleleft':'\u22EA','ntrianglelefteq':'\u22EC','ntriangleright':'\u22EB','ntrianglerighteq':'\u22ED','nu':'\u03BD','Nu':'\u039D','num':'#','numero':'\u2116','numsp':'\u2007','nvap':'\u224D\u20D2','nvdash':'\u22AC','nvDash':'\u22AD','nVdash':'\u22AE','nVDash':'\u22AF','nvge':'\u2265\u20D2','nvgt':'>\u20D2','nvHarr':'\u2904','nvinfin':'\u29DE','nvlArr':'\u2902','nvle':'\u2264\u20D2','nvlt':'<\u20D2','nvltrie':'\u22B4\u20D2','nvrArr':'\u2903','nvrtrie':'\u22B5\u20D2','nvsim':'\u223C\u20D2','nwarhk':'\u2923','nwarr':'\u2196','nwArr':'\u21D6','nwarrow':'\u2196','nwnear':'\u2927','oacute':'\xF3','Oacute':'\xD3','oast':'\u229B','ocir':'\u229A','ocirc':'\xF4','Ocirc':'\xD4','ocy':'\u043E','Ocy':'\u041E','odash':'\u229D','odblac':'\u0151','Odblac':'\u0150','odiv':'\u2A38','odot':'\u2299','odsold':'\u29BC','oelig':'\u0153','OElig':'\u0152','ofcir':'\u29BF','ofr':'\uD835\uDD2C','Ofr':'\uD835\uDD12','ogon':'\u02DB','ograve':'\xF2','Ograve':'\xD2','ogt':'\u29C1','ohbar':'\u29B5','ohm':'\u03A9','oint':'\u222E','olarr':'\u21BA','olcir':'\u29BE','olcross':'\u29BB','oline':'\u203E','olt':'\u29C0','omacr':'\u014D','Omacr':'\u014C','omega':'\u03C9','Omega':'\u03A9','omicron':'\u03BF','Omicron':'\u039F','omid':'\u29B6','ominus':'\u2296','oopf':'\uD835\uDD60','Oopf':'\uD835\uDD46','opar':'\u29B7','OpenCurlyDoubleQuote':'\u201C','OpenCurlyQuote':'\u2018','operp':'\u29B9','oplus':'\u2295','or':'\u2228','Or':'\u2A54','orarr':'\u21BB','ord':'\u2A5D','order':'\u2134','orderof':'\u2134','ordf':'\xAA','ordm':'\xBA','origof':'\u22B6','oror':'\u2A56','orslope':'\u2A57','orv':'\u2A5B','oS':'\u24C8','oscr':'\u2134','Oscr':'\uD835\uDCAA','oslash':'\xF8','Oslash':'\xD8','osol':'\u2298','otilde':'\xF5','Otilde':'\xD5','otimes':'\u2297','Otimes':'\u2A37','otimesas':'\u2A36','ouml':'\xF6','Ouml':'\xD6','ovbar':'\u233D','OverBar':'\u203E','OverBrace':'\u23DE','OverBracket':'\u23B4','OverParenthesis':'\u23DC','par':'\u2225','para':'\xB6','parallel':'\u2225','parsim':'\u2AF3','parsl':'\u2AFD','part':'\u2202','PartialD':'\u2202','pcy':'\u043F','Pcy':'\u041F','percnt':'%','period':'.','permil':'\u2030','perp':'\u22A5','pertenk':'\u2031','pfr':'\uD835\uDD2D','Pfr':'\uD835\uDD13','phi':'\u03C6','Phi':'\u03A6','phiv':'\u03D5','phmmat':'\u2133','phone':'\u260E','pi':'\u03C0','Pi':'\u03A0','pitchfork':'\u22D4','piv':'\u03D6','planck':'\u210F','planckh':'\u210E','plankv':'\u210F','plus':'+','plusacir':'\u2A23','plusb':'\u229E','pluscir':'\u2A22','plusdo':'\u2214','plusdu':'\u2A25','pluse':'\u2A72','PlusMinus':'\xB1','plusmn':'\xB1','plussim':'\u2A26','plustwo':'\u2A27','pm':'\xB1','Poincareplane':'\u210C','pointint':'\u2A15','popf':'\uD835\uDD61','Popf':'\u2119','pound':'\xA3','pr':'\u227A','Pr':'\u2ABB','prap':'\u2AB7','prcue':'\u227C','pre':'\u2AAF','prE':'\u2AB3','prec':'\u227A','precapprox':'\u2AB7','preccurlyeq':'\u227C','Precedes':'\u227A','PrecedesEqual':'\u2AAF','PrecedesSlantEqual':'\u227C','PrecedesTilde':'\u227E','preceq':'\u2AAF','precnapprox':'\u2AB9','precneqq':'\u2AB5','precnsim':'\u22E8','precsim':'\u227E','prime':'\u2032','Prime':'\u2033','primes':'\u2119','prnap':'\u2AB9','prnE':'\u2AB5','prnsim':'\u22E8','prod':'\u220F','Product':'\u220F','profalar':'\u232E','profline':'\u2312','profsurf':'\u2313','prop':'\u221D','Proportion':'\u2237','Proportional':'\u221D','propto':'\u221D','prsim':'\u227E','prurel':'\u22B0','pscr':'\uD835\uDCC5','Pscr':'\uD835\uDCAB','psi':'\u03C8','Psi':'\u03A8','puncsp':'\u2008','qfr':'\uD835\uDD2E','Qfr':'\uD835\uDD14','qint':'\u2A0C','qopf':'\uD835\uDD62','Qopf':'\u211A','qprime':'\u2057','qscr':'\uD835\uDCC6','Qscr':'\uD835\uDCAC','quaternions':'\u210D','quatint':'\u2A16','quest':'?','questeq':'\u225F','quot':'"','QUOT':'"','rAarr':'\u21DB','race':'\u223D\u0331','racute':'\u0155','Racute':'\u0154','radic':'\u221A','raemptyv':'\u29B3','rang':'\u27E9','Rang':'\u27EB','rangd':'\u2992','range':'\u29A5','rangle':'\u27E9','raquo':'\xBB','rarr':'\u2192','rArr':'\u21D2','Rarr':'\u21A0','rarrap':'\u2975','rarrb':'\u21E5','rarrbfs':'\u2920','rarrc':'\u2933','rarrfs':'\u291E','rarrhk':'\u21AA','rarrlp':'\u21AC','rarrpl':'\u2945','rarrsim':'\u2974','rarrtl':'\u21A3','Rarrtl':'\u2916','rarrw':'\u219D','ratail':'\u291A','rAtail':'\u291C','ratio':'\u2236','rationals':'\u211A','rbarr':'\u290D','rBarr':'\u290F','RBarr':'\u2910','rbbrk':'\u2773','rbrace':'}','rbrack':']','rbrke':'\u298C','rbrksld':'\u298E','rbrkslu':'\u2990','rcaron':'\u0159','Rcaron':'\u0158','rcedil':'\u0157','Rcedil':'\u0156','rceil':'\u2309','rcub':'}','rcy':'\u0440','Rcy':'\u0420','rdca':'\u2937','rdldhar':'\u2969','rdquo':'\u201D','rdquor':'\u201D','rdsh':'\u21B3','Re':'\u211C','real':'\u211C','realine':'\u211B','realpart':'\u211C','reals':'\u211D','rect':'\u25AD','reg':'\xAE','REG':'\xAE','ReverseElement':'\u220B','ReverseEquilibrium':'\u21CB','ReverseUpEquilibrium':'\u296F','rfisht':'\u297D','rfloor':'\u230B','rfr':'\uD835\uDD2F','Rfr':'\u211C','rHar':'\u2964','rhard':'\u21C1','rharu':'\u21C0','rharul':'\u296C','rho':'\u03C1','Rho':'\u03A1','rhov':'\u03F1','RightAngleBracket':'\u27E9','rightarrow':'\u2192','Rightarrow':'\u21D2','RightArrow':'\u2192','RightArrowBar':'\u21E5','RightArrowLeftArrow':'\u21C4','rightarrowtail':'\u21A3','RightCeiling':'\u2309','RightDoubleBracket':'\u27E7','RightDownTeeVector':'\u295D','RightDownVector':'\u21C2','RightDownVectorBar':'\u2955','RightFloor':'\u230B','rightharpoondown':'\u21C1','rightharpoonup':'\u21C0','rightleftarrows':'\u21C4','rightleftharpoons':'\u21CC','rightrightarrows':'\u21C9','rightsquigarrow':'\u219D','RightTee':'\u22A2','RightTeeArrow':'\u21A6','RightTeeVector':'\u295B','rightthreetimes':'\u22CC','RightTriangle':'\u22B3','RightTriangleBar':'\u29D0','RightTriangleEqual':'\u22B5','RightUpDownVector':'\u294F','RightUpTeeVector':'\u295C','RightUpVector':'\u21BE','RightUpVectorBar':'\u2954','RightVector':'\u21C0','RightVectorBar':'\u2953','ring':'\u02DA','risingdotseq':'\u2253','rlarr':'\u21C4','rlhar':'\u21CC','rlm':'\u200F','rmoust':'\u23B1','rmoustache':'\u23B1','rnmid':'\u2AEE','roang':'\u27ED','roarr':'\u21FE','robrk':'\u27E7','ropar':'\u2986','ropf':'\uD835\uDD63','Ropf':'\u211D','roplus':'\u2A2E','rotimes':'\u2A35','RoundImplies':'\u2970','rpar':')','rpargt':'\u2994','rppolint':'\u2A12','rrarr':'\u21C9','Rrightarrow':'\u21DB','rsaquo':'\u203A','rscr':'\uD835\uDCC7','Rscr':'\u211B','rsh':'\u21B1','Rsh':'\u21B1','rsqb':']','rsquo':'\u2019','rsquor':'\u2019','rthree':'\u22CC','rtimes':'\u22CA','rtri':'\u25B9','rtrie':'\u22B5','rtrif':'\u25B8','rtriltri':'\u29CE','RuleDelayed':'\u29F4','ruluhar':'\u2968','rx':'\u211E','sacute':'\u015B','Sacute':'\u015A','sbquo':'\u201A','sc':'\u227B','Sc':'\u2ABC','scap':'\u2AB8','scaron':'\u0161','Scaron':'\u0160','sccue':'\u227D','sce':'\u2AB0','scE':'\u2AB4','scedil':'\u015F','Scedil':'\u015E','scirc':'\u015D','Scirc':'\u015C','scnap':'\u2ABA','scnE':'\u2AB6','scnsim':'\u22E9','scpolint':'\u2A13','scsim':'\u227F','scy':'\u0441','Scy':'\u0421','sdot':'\u22C5','sdotb':'\u22A1','sdote':'\u2A66','searhk':'\u2925','searr':'\u2198','seArr':'\u21D8','searrow':'\u2198','sect':'\xA7','semi':';','seswar':'\u2929','setminus':'\u2216','setmn':'\u2216','sext':'\u2736','sfr':'\uD835\uDD30','Sfr':'\uD835\uDD16','sfrown':'\u2322','sharp':'\u266F','shchcy':'\u0449','SHCHcy':'\u0429','shcy':'\u0448','SHcy':'\u0428','ShortDownArrow':'\u2193','ShortLeftArrow':'\u2190','shortmid':'\u2223','shortparallel':'\u2225','ShortRightArrow':'\u2192','ShortUpArrow':'\u2191','shy':'\xAD','sigma':'\u03C3','Sigma':'\u03A3','sigmaf':'\u03C2','sigmav':'\u03C2','sim':'\u223C','simdot':'\u2A6A','sime':'\u2243','simeq':'\u2243','simg':'\u2A9E','simgE':'\u2AA0','siml':'\u2A9D','simlE':'\u2A9F','simne':'\u2246','simplus':'\u2A24','simrarr':'\u2972','slarr':'\u2190','SmallCircle':'\u2218','smallsetminus':'\u2216','smashp':'\u2A33','smeparsl':'\u29E4','smid':'\u2223','smile':'\u2323','smt':'\u2AAA','smte':'\u2AAC','smtes':'\u2AAC\uFE00','softcy':'\u044C','SOFTcy':'\u042C','sol':'/','solb':'\u29C4','solbar':'\u233F','sopf':'\uD835\uDD64','Sopf':'\uD835\uDD4A','spades':'\u2660','spadesuit':'\u2660','spar':'\u2225','sqcap':'\u2293','sqcaps':'\u2293\uFE00','sqcup':'\u2294','sqcups':'\u2294\uFE00','Sqrt':'\u221A','sqsub':'\u228F','sqsube':'\u2291','sqsubset':'\u228F','sqsubseteq':'\u2291','sqsup':'\u2290','sqsupe':'\u2292','sqsupset':'\u2290','sqsupseteq':'\u2292','squ':'\u25A1','square':'\u25A1','Square':'\u25A1','SquareIntersection':'\u2293','SquareSubset':'\u228F','SquareSubsetEqual':'\u2291','SquareSuperset':'\u2290','SquareSupersetEqual':'\u2292','SquareUnion':'\u2294','squarf':'\u25AA','squf':'\u25AA','srarr':'\u2192','sscr':'\uD835\uDCC8','Sscr':'\uD835\uDCAE','ssetmn':'\u2216','ssmile':'\u2323','sstarf':'\u22C6','star':'\u2606','Star':'\u22C6','starf':'\u2605','straightepsilon':'\u03F5','straightphi':'\u03D5','strns':'\xAF','sub':'\u2282','Sub':'\u22D0','subdot':'\u2ABD','sube':'\u2286','subE':'\u2AC5','subedot':'\u2AC3','submult':'\u2AC1','subne':'\u228A','subnE':'\u2ACB','subplus':'\u2ABF','subrarr':'\u2979','subset':'\u2282','Subset':'\u22D0','subseteq':'\u2286','subseteqq':'\u2AC5','SubsetEqual':'\u2286','subsetneq':'\u228A','subsetneqq':'\u2ACB','subsim':'\u2AC7','subsub':'\u2AD5','subsup':'\u2AD3','succ':'\u227B','succapprox':'\u2AB8','succcurlyeq':'\u227D','Succeeds':'\u227B','SucceedsEqual':'\u2AB0','SucceedsSlantEqual':'\u227D','SucceedsTilde':'\u227F','succeq':'\u2AB0','succnapprox':'\u2ABA','succneqq':'\u2AB6','succnsim':'\u22E9','succsim':'\u227F','SuchThat':'\u220B','sum':'\u2211','Sum':'\u2211','sung':'\u266A','sup':'\u2283','Sup':'\u22D1','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','supdot':'\u2ABE','supdsub':'\u2AD8','supe':'\u2287','supE':'\u2AC6','supedot':'\u2AC4','Superset':'\u2283','SupersetEqual':'\u2287','suphsol':'\u27C9','suphsub':'\u2AD7','suplarr':'\u297B','supmult':'\u2AC2','supne':'\u228B','supnE':'\u2ACC','supplus':'\u2AC0','supset':'\u2283','Supset':'\u22D1','supseteq':'\u2287','supseteqq':'\u2AC6','supsetneq':'\u228B','supsetneqq':'\u2ACC','supsim':'\u2AC8','supsub':'\u2AD4','supsup':'\u2AD6','swarhk':'\u2926','swarr':'\u2199','swArr':'\u21D9','swarrow':'\u2199','swnwar':'\u292A','szlig':'\xDF','Tab':'\t','target':'\u2316','tau':'\u03C4','Tau':'\u03A4','tbrk':'\u23B4','tcaron':'\u0165','Tcaron':'\u0164','tcedil':'\u0163','Tcedil':'\u0162','tcy':'\u0442','Tcy':'\u0422','tdot':'\u20DB','telrec':'\u2315','tfr':'\uD835\uDD31','Tfr':'\uD835\uDD17','there4':'\u2234','therefore':'\u2234','Therefore':'\u2234','theta':'\u03B8','Theta':'\u0398','thetasym':'\u03D1','thetav':'\u03D1','thickapprox':'\u2248','thicksim':'\u223C','ThickSpace':'\u205F\u200A','thinsp':'\u2009','ThinSpace':'\u2009','thkap':'\u2248','thksim':'\u223C','thorn':'\xFE','THORN':'\xDE','tilde':'\u02DC','Tilde':'\u223C','TildeEqual':'\u2243','TildeFullEqual':'\u2245','TildeTilde':'\u2248','times':'\xD7','timesb':'\u22A0','timesbar':'\u2A31','timesd':'\u2A30','tint':'\u222D','toea':'\u2928','top':'\u22A4','topbot':'\u2336','topcir':'\u2AF1','topf':'\uD835\uDD65','Topf':'\uD835\uDD4B','topfork':'\u2ADA','tosa':'\u2929','tprime':'\u2034','trade':'\u2122','TRADE':'\u2122','triangle':'\u25B5','triangledown':'\u25BF','triangleleft':'\u25C3','trianglelefteq':'\u22B4','triangleq':'\u225C','triangleright':'\u25B9','trianglerighteq':'\u22B5','tridot':'\u25EC','trie':'\u225C','triminus':'\u2A3A','TripleDot':'\u20DB','triplus':'\u2A39','trisb':'\u29CD','tritime':'\u2A3B','trpezium':'\u23E2','tscr':'\uD835\uDCC9','Tscr':'\uD835\uDCAF','tscy':'\u0446','TScy':'\u0426','tshcy':'\u045B','TSHcy':'\u040B','tstrok':'\u0167','Tstrok':'\u0166','twixt':'\u226C','twoheadleftarrow':'\u219E','twoheadrightarrow':'\u21A0','uacute':'\xFA','Uacute':'\xDA','uarr':'\u2191','uArr':'\u21D1','Uarr':'\u219F','Uarrocir':'\u2949','ubrcy':'\u045E','Ubrcy':'\u040E','ubreve':'\u016D','Ubreve':'\u016C','ucirc':'\xFB','Ucirc':'\xDB','ucy':'\u0443','Ucy':'\u0423','udarr':'\u21C5','udblac':'\u0171','Udblac':'\u0170','udhar':'\u296E','ufisht':'\u297E','ufr':'\uD835\uDD32','Ufr':'\uD835\uDD18','ugrave':'\xF9','Ugrave':'\xD9','uHar':'\u2963','uharl':'\u21BF','uharr':'\u21BE','uhblk':'\u2580','ulcorn':'\u231C','ulcorner':'\u231C','ulcrop':'\u230F','ultri':'\u25F8','umacr':'\u016B','Umacr':'\u016A','uml':'\xA8','UnderBar':'_','UnderBrace':'\u23DF','UnderBracket':'\u23B5','UnderParenthesis':'\u23DD','Union':'\u22C3','UnionPlus':'\u228E','uogon':'\u0173','Uogon':'\u0172','uopf':'\uD835\uDD66','Uopf':'\uD835\uDD4C','uparrow':'\u2191','Uparrow':'\u21D1','UpArrow':'\u2191','UpArrowBar':'\u2912','UpArrowDownArrow':'\u21C5','updownarrow':'\u2195','Updownarrow':'\u21D5','UpDownArrow':'\u2195','UpEquilibrium':'\u296E','upharpoonleft':'\u21BF','upharpoonright':'\u21BE','uplus':'\u228E','UpperLeftArrow':'\u2196','UpperRightArrow':'\u2197','upsi':'\u03C5','Upsi':'\u03D2','upsih':'\u03D2','upsilon':'\u03C5','Upsilon':'\u03A5','UpTee':'\u22A5','UpTeeArrow':'\u21A5','upuparrows':'\u21C8','urcorn':'\u231D','urcorner':'\u231D','urcrop':'\u230E','uring':'\u016F','Uring':'\u016E','urtri':'\u25F9','uscr':'\uD835\uDCCA','Uscr':'\uD835\uDCB0','utdot':'\u22F0','utilde':'\u0169','Utilde':'\u0168','utri':'\u25B5','utrif':'\u25B4','uuarr':'\u21C8','uuml':'\xFC','Uuml':'\xDC','uwangle':'\u29A7','vangrt':'\u299C','varepsilon':'\u03F5','varkappa':'\u03F0','varnothing':'\u2205','varphi':'\u03D5','varpi':'\u03D6','varpropto':'\u221D','varr':'\u2195','vArr':'\u21D5','varrho':'\u03F1','varsigma':'\u03C2','varsubsetneq':'\u228A\uFE00','varsubsetneqq':'\u2ACB\uFE00','varsupsetneq':'\u228B\uFE00','varsupsetneqq':'\u2ACC\uFE00','vartheta':'\u03D1','vartriangleleft':'\u22B2','vartriangleright':'\u22B3','vBar':'\u2AE8','Vbar':'\u2AEB','vBarv':'\u2AE9','vcy':'\u0432','Vcy':'\u0412','vdash':'\u22A2','vDash':'\u22A8','Vdash':'\u22A9','VDash':'\u22AB','Vdashl':'\u2AE6','vee':'\u2228','Vee':'\u22C1','veebar':'\u22BB','veeeq':'\u225A','vellip':'\u22EE','verbar':'|','Verbar':'\u2016','vert':'|','Vert':'\u2016','VerticalBar':'\u2223','VerticalLine':'|','VerticalSeparator':'\u2758','VerticalTilde':'\u2240','VeryThinSpace':'\u200A','vfr':'\uD835\uDD33','Vfr':'\uD835\uDD19','vltri':'\u22B2','vnsub':'\u2282\u20D2','vnsup':'\u2283\u20D2','vopf':'\uD835\uDD67','Vopf':'\uD835\uDD4D','vprop':'\u221D','vrtri':'\u22B3','vscr':'\uD835\uDCCB','Vscr':'\uD835\uDCB1','vsubne':'\u228A\uFE00','vsubnE':'\u2ACB\uFE00','vsupne':'\u228B\uFE00','vsupnE':'\u2ACC\uFE00','Vvdash':'\u22AA','vzigzag':'\u299A','wcirc':'\u0175','Wcirc':'\u0174','wedbar':'\u2A5F','wedge':'\u2227','Wedge':'\u22C0','wedgeq':'\u2259','weierp':'\u2118','wfr':'\uD835\uDD34','Wfr':'\uD835\uDD1A','wopf':'\uD835\uDD68','Wopf':'\uD835\uDD4E','wp':'\u2118','wr':'\u2240','wreath':'\u2240','wscr':'\uD835\uDCCC','Wscr':'\uD835\uDCB2','xcap':'\u22C2','xcirc':'\u25EF','xcup':'\u22C3','xdtri':'\u25BD','xfr':'\uD835\uDD35','Xfr':'\uD835\uDD1B','xharr':'\u27F7','xhArr':'\u27FA','xi':'\u03BE','Xi':'\u039E','xlarr':'\u27F5','xlArr':'\u27F8','xmap':'\u27FC','xnis':'\u22FB','xodot':'\u2A00','xopf':'\uD835\uDD69','Xopf':'\uD835\uDD4F','xoplus':'\u2A01','xotime':'\u2A02','xrarr':'\u27F6','xrArr':'\u27F9','xscr':'\uD835\uDCCD','Xscr':'\uD835\uDCB3','xsqcup':'\u2A06','xuplus':'\u2A04','xutri':'\u25B3','xvee':'\u22C1','xwedge':'\u22C0','yacute':'\xFD','Yacute':'\xDD','yacy':'\u044F','YAcy':'\u042F','ycirc':'\u0177','Ycirc':'\u0176','ycy':'\u044B','Ycy':'\u042B','yen':'\xA5','yfr':'\uD835\uDD36','Yfr':'\uD835\uDD1C','yicy':'\u0457','YIcy':'\u0407','yopf':'\uD835\uDD6A','Yopf':'\uD835\uDD50','yscr':'\uD835\uDCCE','Yscr':'\uD835\uDCB4','yucy':'\u044E','YUcy':'\u042E','yuml':'\xFF','Yuml':'\u0178','zacute':'\u017A','Zacute':'\u0179','zcaron':'\u017E','Zcaron':'\u017D','zcy':'\u0437','Zcy':'\u0417','zdot':'\u017C','Zdot':'\u017B','zeetrf':'\u2128','ZeroWidthSpace':'\u200B','zeta':'\u03B6','Zeta':'\u0396','zfr':'\uD835\uDD37','Zfr':'\u2128','zhcy':'\u0436','ZHcy':'\u0416','zigrarr':'\u21DD','zopf':'\uD835\uDD6B','Zopf':'\u2124','zscr':'\uD835\uDCCF','Zscr':'\uD835\uDCB5','zwj':'\u200D','zwnj':'\u200C'}; - var decodeMapLegacy = {'aacute':'\xE1','Aacute':'\xC1','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','aelig':'\xE6','AElig':'\xC6','agrave':'\xE0','Agrave':'\xC0','amp':'&','AMP':'&','aring':'\xE5','Aring':'\xC5','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','brvbar':'\xA6','ccedil':'\xE7','Ccedil':'\xC7','cedil':'\xB8','cent':'\xA2','copy':'\xA9','COPY':'\xA9','curren':'\xA4','deg':'\xB0','divide':'\xF7','eacute':'\xE9','Eacute':'\xC9','ecirc':'\xEA','Ecirc':'\xCA','egrave':'\xE8','Egrave':'\xC8','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','frac12':'\xBD','frac14':'\xBC','frac34':'\xBE','gt':'>','GT':'>','iacute':'\xED','Iacute':'\xCD','icirc':'\xEE','Icirc':'\xCE','iexcl':'\xA1','igrave':'\xEC','Igrave':'\xCC','iquest':'\xBF','iuml':'\xEF','Iuml':'\xCF','laquo':'\xAB','lt':'<','LT':'<','macr':'\xAF','micro':'\xB5','middot':'\xB7','nbsp':'\xA0','not':'\xAC','ntilde':'\xF1','Ntilde':'\xD1','oacute':'\xF3','Oacute':'\xD3','ocirc':'\xF4','Ocirc':'\xD4','ograve':'\xF2','Ograve':'\xD2','ordf':'\xAA','ordm':'\xBA','oslash':'\xF8','Oslash':'\xD8','otilde':'\xF5','Otilde':'\xD5','ouml':'\xF6','Ouml':'\xD6','para':'\xB6','plusmn':'\xB1','pound':'\xA3','quot':'"','QUOT':'"','raquo':'\xBB','reg':'\xAE','REG':'\xAE','sect':'\xA7','shy':'\xAD','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','szlig':'\xDF','thorn':'\xFE','THORN':'\xDE','times':'\xD7','uacute':'\xFA','Uacute':'\xDA','ucirc':'\xFB','Ucirc':'\xDB','ugrave':'\xF9','Ugrave':'\xD9','uml':'\xA8','uuml':'\xFC','Uuml':'\xDC','yacute':'\xFD','Yacute':'\xDD','yen':'\xA5','yuml':'\xFF'}; - var decodeMapNumeric = {'0':'\uFFFD','128':'\u20AC','130':'\u201A','131':'\u0192','132':'\u201E','133':'\u2026','134':'\u2020','135':'\u2021','136':'\u02C6','137':'\u2030','138':'\u0160','139':'\u2039','140':'\u0152','142':'\u017D','145':'\u2018','146':'\u2019','147':'\u201C','148':'\u201D','149':'\u2022','150':'\u2013','151':'\u2014','152':'\u02DC','153':'\u2122','154':'\u0161','155':'\u203A','156':'\u0153','158':'\u017E','159':'\u0178'}; - var invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111]; - - /*--------------------------------------------------------------------------*/ - - var stringFromCharCode = String.fromCharCode; - - var object = {}; - var hasOwnProperty = object.hasOwnProperty; - var has = function(object, propertyName) { - return hasOwnProperty.call(object, propertyName); - }; - - var contains = function(array, value) { - var index = -1; - var length = array.length; - while (++index < length) { - if (array[index] == value) { - return true; - } - } - return false; - }; - - var merge = function(options, defaults) { - if (!options) { - return defaults; - } - var result = {}; - var key; - for (key in defaults) { - // A `hasOwnProperty` check is not needed here, since only recognized - // option names are used anyway. Any others are ignored. - result[key] = has(options, key) ? options[key] : defaults[key]; - } - return result; - }; - - // Modified version of `ucs2encode`; see https://mths.be/punycode. - var codePointToSymbol = function(codePoint, strict) { - var output = ''; - if ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) { - // See issue #4: - // “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is - // greater than 0x10FFFF, then this is a parse error. Return a U+FFFD - // REPLACEMENT CHARACTER.” - if (strict) { - parseError('character reference outside the permissible Unicode range'); - } - return '\uFFFD'; - } - if (has(decodeMapNumeric, codePoint)) { - if (strict) { - parseError('disallowed character reference'); - } - return decodeMapNumeric[codePoint]; - } - if (strict && contains(invalidReferenceCodePoints, codePoint)) { - parseError('disallowed character reference'); - } - if (codePoint > 0xFFFF) { - codePoint -= 0x10000; - output += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800); - codePoint = 0xDC00 | codePoint & 0x3FF; - } - output += stringFromCharCode(codePoint); - return output; - }; - - var hexEscape = function(codePoint) { - return '&#x' + codePoint.toString(16).toUpperCase() + ';'; - }; - - var decEscape = function(codePoint) { - return '&#' + codePoint + ';'; - }; - - var parseError = function(message) { - throw Error('Parse error: ' + message); - }; - - /*--------------------------------------------------------------------------*/ - - var encode = function(string, options) { - options = merge(options, encode.options); - var strict = options.strict; - if (strict && regexInvalidRawCodePoint.test(string)) { - parseError('forbidden code point'); - } - var encodeEverything = options.encodeEverything; - var useNamedReferences = options.useNamedReferences; - var allowUnsafeSymbols = options.allowUnsafeSymbols; - var escapeCodePoint = options.decimal ? decEscape : hexEscape; - - var escapeBmpSymbol = function(symbol) { - return escapeCodePoint(symbol.charCodeAt(0)); - }; - - if (encodeEverything) { - // Encode ASCII symbols. - string = string.replace(regexAsciiWhitelist, function(symbol) { - // Use named references if requested & possible. - if (useNamedReferences && has(encodeMap, symbol)) { - return '&' + encodeMap[symbol] + ';'; - } - return escapeBmpSymbol(symbol); - }); - // Shorten a few escapes that represent two symbols, of which at least one - // is within the ASCII range. - if (useNamedReferences) { - string = string - .replace(/>\u20D2/g, '>⃒') - .replace(/<\u20D2/g, '<⃒') - .replace(/fj/g, 'fj'); - } - // Encode non-ASCII symbols. - if (useNamedReferences) { - // Encode non-ASCII symbols that can be replaced with a named reference. - string = string.replace(regexEncodeNonAscii, function(string) { - // Note: there is no need to check `has(encodeMap, string)` here. - return '&' + encodeMap[string] + ';'; - }); - } - // Note: any remaining non-ASCII symbols are handled outside of the `if`. - } else if (useNamedReferences) { - // Apply named character references. - // Encode `<>"'&` using named character references. - if (!allowUnsafeSymbols) { - string = string.replace(regexEscape, function(string) { - return '&' + encodeMap[string] + ';'; // no need to check `has()` here - }); - } - // Shorten escapes that represent two symbols, of which at least one is - // `<>"'&`. - string = string - .replace(/>\u20D2/g, '>⃒') - .replace(/<\u20D2/g, '<⃒'); - // Encode non-ASCII symbols that can be replaced with a named reference. - string = string.replace(regexEncodeNonAscii, function(string) { - // Note: there is no need to check `has(encodeMap, string)` here. - return '&' + encodeMap[string] + ';'; - }); - } else if (!allowUnsafeSymbols) { - // Encode `<>"'&` using hexadecimal escapes, now that they’re not handled - // using named character references. - string = string.replace(regexEscape, escapeBmpSymbol); - } - return string - // Encode astral symbols. - .replace(regexAstralSymbols, function($0) { - // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae - var high = $0.charCodeAt(0); - var low = $0.charCodeAt(1); - var codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000; - return escapeCodePoint(codePoint); - }) - // Encode any remaining BMP symbols that are not printable ASCII symbols - // using a hexadecimal escape. - .replace(regexBmpWhitelist, escapeBmpSymbol); - }; - // Expose default options (so they can be overridden globally). - encode.options = { - 'allowUnsafeSymbols': false, - 'encodeEverything': false, - 'strict': false, - 'useNamedReferences': false, - 'decimal' : false - }; - - var decode = function(html, options) { - options = merge(options, decode.options); - var strict = options.strict; - if (strict && regexInvalidEntity.test(html)) { - parseError('malformed character reference'); - } - return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7) { - var codePoint; - var semicolon; - var decDigits; - var hexDigits; - var reference; - var next; - if ($1) { - // Decode decimal escapes, e.g. `𝌆`. - decDigits = $1; - semicolon = $2; - if (strict && !semicolon) { - parseError('character reference was not terminated by a semicolon'); - } - codePoint = parseInt(decDigits, 10); - return codePointToSymbol(codePoint, strict); - } - if ($3) { - // Decode hexadecimal escapes, e.g. `𝌆`. - hexDigits = $3; - semicolon = $4; - if (strict && !semicolon) { - parseError('character reference was not terminated by a semicolon'); - } - codePoint = parseInt(hexDigits, 16); - return codePointToSymbol(codePoint, strict); - } - if ($5) { - // Decode named character references with trailing `;`, e.g. `©`. - reference = $5; - if (has(decodeMap, reference)) { - return decodeMap[reference]; - } else { - // Ambiguous ampersand. https://mths.be/notes/ambiguous-ampersands - if (strict) { - parseError( - 'named character reference was not terminated by a semicolon' - ); - } - return $0; - } - } - // If we’re still here, it’s a legacy reference for sure. No need for an - // extra `if` check. - // Decode named character references without trailing `;`, e.g. `&` - // This is only a parse error if it gets converted to `&`, or if it is - // followed by `=` in an attribute context. - reference = $6; - next = $7; - if (next && options.isAttributeValue) { - if (strict && next == '=') { - parseError('`&` did not start a character reference'); - } - return $0; - } else { - if (strict) { - parseError( - 'named character reference was not terminated by a semicolon' - ); - } - // Note: there is no need to check `has(decodeMapLegacy, reference)`. - return decodeMapLegacy[reference] + (next || ''); - } - }); - }; - // Expose default options (so they can be overridden globally). - decode.options = { - 'isAttributeValue': false, - 'strict': false - }; - - var escape = function(string) { - return string.replace(regexEscape, function($0) { - // Note: there is no need to check `has(escapeMap, $0)` here. - return escapeMap[$0]; - }); - }; - - /*--------------------------------------------------------------------------*/ - - var he = { - 'version': '1.1.1', - 'encode': encode, - 'decode': decode, - 'escape': escape, - 'unescape': decode - }; - - // Some AMD build optimizers, like r.js, check for specific condition patterns - // like the following: - if ( - false - ) { - define(function() { - return he; - }); - } else if (freeExports && !freeExports.nodeType) { - if (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+ - freeModule.exports = he; - } else { // in Narwhal or RingoJS v0.7.0- - for (var key in he) { - has(he, key) && (freeExports[key] = he[key]); - } - } - } else { // in Rhino or a web browser - root.he = he; - } - -}(this)); - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],65:[function(require,module,exports){ -exports.read = function (buffer, offset, isLE, mLen, nBytes) { - var e, m - var eLen = nBytes * 8 - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var nBits = -7 - var i = isLE ? (nBytes - 1) : 0 - var d = isLE ? -1 : 1 - var s = buffer[offset + i] - - i += d - - e = s & ((1 << (-nBits)) - 1) - s >>= (-nBits) - nBits += eLen - for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - m = e & ((1 << (-nBits)) - 1) - e >>= (-nBits) - nBits += mLen - for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - if (e === 0) { - e = 1 - eBias - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity) - } else { - m = m + Math.pow(2, mLen) - e = e - eBias - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen) -} - -exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c - var eLen = nBytes * 8 - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) - var i = isLE ? 0 : (nBytes - 1) - var d = isLE ? 1 : -1 - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 - - value = Math.abs(value) - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0 - e = eMax - } else { - e = Math.floor(Math.log(value) / Math.LN2) - if (value * (c = Math.pow(2, -e)) < 1) { - e-- - c *= 2 - } - if (e + eBias >= 1) { - value += rt / c - } else { - value += rt * Math.pow(2, 1 - eBias) - } - if (value * c >= 2) { - e++ - c /= 2 - } - - if (e + eBias >= eMax) { - m = 0 - e = eMax - } else if (e + eBias >= 1) { - m = (value * c - 1) * Math.pow(2, mLen) - e = e + eBias - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) - e = 0 - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - - e = (e << mLen) | m - eLen += mLen - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - - buffer[offset + i - d] |= s * 128 -} - -},{}],66:[function(require,module,exports){ -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} - -},{}],67:[function(require,module,exports){ -/*! - * Determine if an object is a Buffer - * - * @author Feross Aboukhadijeh - * @license MIT - */ - -// The _isBuffer check is for Safari 5-7 support, because it's missing -// Object.prototype.constructor. Remove this eventually -module.exports = function (obj) { - return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) -} - -function isBuffer (obj) { - return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) -} - -// For Node v0.10 support. Remove this eventually. -function isSlowBuffer (obj) { - return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) -} - -},{}],68:[function(require,module,exports){ -var toString = {}.toString; - -module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; -}; - -},{}],69:[function(require,module,exports){ -(function (global){ -/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ -;(function () { - // Detect the `define` function exposed by asynchronous module loaders. The - // strict `define` check is necessary for compatibility with `r.js`. - var isLoader = false; - - // A set of types used to distinguish objects from primitives. - var objectTypes = { - "function": true, - "object": true - }; - - // Detect the `exports` object exposed by CommonJS implementations. - var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; - - // Use the `global` object exposed by Node (including Browserify via - // `insert-module-globals`), Narwhal, and Ringo as the default context, - // and the `window` object in browsers. Rhino exports a `global` function - // instead. - var root = objectTypes[typeof window] && window || this, - freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == "object" && global; - - if (freeGlobal && (freeGlobal["global"] === freeGlobal || freeGlobal["window"] === freeGlobal || freeGlobal["self"] === freeGlobal)) { - root = freeGlobal; - } - - // Public: Initializes JSON 3 using the given `context` object, attaching the - // `stringify` and `parse` functions to the specified `exports` object. - function runInContext(context, exports) { - context || (context = root["Object"]()); - exports || (exports = root["Object"]()); - - // Native constructor aliases. - var Number = context["Number"] || root["Number"], - String = context["String"] || root["String"], - Object = context["Object"] || root["Object"], - Date = context["Date"] || root["Date"], - SyntaxError = context["SyntaxError"] || root["SyntaxError"], - TypeError = context["TypeError"] || root["TypeError"], - Math = context["Math"] || root["Math"], - nativeJSON = context["JSON"] || root["JSON"]; - - // Delegate to the native `stringify` and `parse` implementations. - if (typeof nativeJSON == "object" && nativeJSON) { - exports.stringify = nativeJSON.stringify; - exports.parse = nativeJSON.parse; - } - - // Convenience aliases. - var objectProto = Object.prototype, - getClass = objectProto.toString, - isProperty, forEach, undef; - - // Test the `Date#getUTC*` methods. Based on work by @Yaffle. - var isExtended = new Date(-3509827334573292); - try { - // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical - // results for certain dates in Opera >= 10.53. - isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && - // Safari < 2.0.2 stores the internal millisecond time value correctly, - // but clips the values returned by the date methods to the range of - // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). - isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; - } catch (exception) {} - - // Internal: Determines whether the native `JSON.stringify` and `parse` - // implementations are spec-compliant. Based on work by Ken Snyder. - function has(name) { - if (has[name] !== undef) { - // Return cached feature test result. - return has[name]; - } - var isSupported; - if (name == "bug-string-char-index") { - // IE <= 7 doesn't support accessing string characters using square - // bracket notation. IE 8 only supports this for primitives. - isSupported = "a"[0] != "a"; - } else if (name == "json") { - // Indicates whether both `JSON.stringify` and `JSON.parse` are - // supported. - isSupported = has("json-stringify") && has("json-parse"); - } else { - var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; - // Test `JSON.stringify`. - if (name == "json-stringify") { - var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; - if (stringifySupported) { - // A test function object with a custom `toJSON` method. - (value = function () { - return 1; - }).toJSON = value; - try { - stringifySupported = - // Firefox 3.1b1 and b2 serialize string, number, and boolean - // primitives as object literals. - stringify(0) === "0" && - // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object - // literals. - stringify(new Number()) === "0" && - stringify(new String()) == '""' && - // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or - // does not define a canonical JSON representation (this applies to - // objects with `toJSON` properties as well, *unless* they are nested - // within an object or array). - stringify(getClass) === undef && - // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and - // FF 3.1b3 pass this test. - stringify(undef) === undef && - // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, - // respectively, if the value is omitted entirely. - stringify() === undef && - // FF 3.1b1, 2 throw an error if the given value is not a number, - // string, array, object, Boolean, or `null` literal. This applies to - // objects with custom `toJSON` methods as well, unless they are nested - // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` - // methods entirely. - stringify(value) === "1" && - stringify([value]) == "[1]" && - // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of - // `"[null]"`. - stringify([undef]) == "[null]" && - // YUI 3.0.0b1 fails to serialize `null` literals. - stringify(null) == "null" && - // FF 3.1b1, 2 halts serialization if an array contains a function: - // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 - // elides non-JSON values from objects and arrays, unless they - // define custom `toJSON` methods. - stringify([undef, getClass, null]) == "[null,null,null]" && - // Simple serialization test. FF 3.1b1 uses Unicode escape sequences - // where character escape codes are expected (e.g., `\b` => `\u0008`). - stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && - // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. - stringify(null, value) === "1" && - stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && - // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly - // serialize extended years. - stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && - // The milliseconds are optional in ES 5, but required in 5.1. - stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && - // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative - // four-digit years instead of six-digit years. Credits: @Yaffle. - stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && - // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond - // values less than 1000. Credits: @Yaffle. - stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; - } catch (exception) { - stringifySupported = false; - } - } - isSupported = stringifySupported; - } - // Test `JSON.parse`. - if (name == "json-parse") { - var parse = exports.parse; - if (typeof parse == "function") { - try { - // FF 3.1b1, b2 will throw an exception if a bare literal is provided. - // Conforming implementations should also coerce the initial argument to - // a string prior to parsing. - if (parse("0") === 0 && !parse(false)) { - // Simple parsing test. - value = parse(serialized); - var parseSupported = value["a"].length == 5 && value["a"][0] === 1; - if (parseSupported) { - try { - // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. - parseSupported = !parse('"\t"'); - } catch (exception) {} - if (parseSupported) { - try { - // FF 4.0 and 4.0.1 allow leading `+` signs and leading - // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow - // certain octal literals. - parseSupported = parse("01") !== 1; - } catch (exception) {} - } - if (parseSupported) { - try { - // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal - // points. These environments, along with FF 3.1b1 and 2, - // also allow trailing commas in JSON objects and arrays. - parseSupported = parse("1.") !== 1; - } catch (exception) {} - } - } - } - } catch (exception) { - parseSupported = false; - } - } - isSupported = parseSupported; - } - } - return has[name] = !!isSupported; - } - - if (!has("json")) { - // Common `[[Class]]` name aliases. - var functionClass = "[object Function]", - dateClass = "[object Date]", - numberClass = "[object Number]", - stringClass = "[object String]", - arrayClass = "[object Array]", - booleanClass = "[object Boolean]"; - - // Detect incomplete support for accessing string characters by index. - var charIndexBuggy = has("bug-string-char-index"); - - // Define additional utility methods if the `Date` methods are buggy. - if (!isExtended) { - var floor = Math.floor; - // A mapping between the months of the year and the number of days between - // January 1st and the first of the respective month. - var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; - // Internal: Calculates the number of days between the Unix epoch and the - // first day of the given month. - var getDay = function (year, month) { - return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); - }; - } - - // Internal: Determines if a property is a direct property of the given - // object. Delegates to the native `Object#hasOwnProperty` method. - if (!(isProperty = objectProto.hasOwnProperty)) { - isProperty = function (property) { - var members = {}, constructor; - if ((members.__proto__ = null, members.__proto__ = { - // The *proto* property cannot be set multiple times in recent - // versions of Firefox and SeaMonkey. - "toString": 1 - }, members).toString != getClass) { - // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but - // supports the mutable *proto* property. - isProperty = function (property) { - // Capture and break the object's prototype chain (see section 8.6.2 - // of the ES 5.1 spec). The parenthesized expression prevents an - // unsafe transformation by the Closure Compiler. - var original = this.__proto__, result = property in (this.__proto__ = null, this); - // Restore the original prototype chain. - this.__proto__ = original; - return result; - }; - } else { - // Capture a reference to the top-level `Object` constructor. - constructor = members.constructor; - // Use the `constructor` property to simulate `Object#hasOwnProperty` in - // other environments. - isProperty = function (property) { - var parent = (this.constructor || constructor).prototype; - return property in this && !(property in parent && this[property] === parent[property]); - }; - } - members = null; - return isProperty.call(this, property); - }; - } - - // Internal: Normalizes the `for...in` iteration algorithm across - // environments. Each enumerated key is yielded to a `callback` function. - forEach = function (object, callback) { - var size = 0, Properties, members, property; - - // Tests for bugs in the current environment's `for...in` algorithm. The - // `valueOf` property inherits the non-enumerable flag from - // `Object.prototype` in older versions of IE, Netscape, and Mozilla. - (Properties = function () { - this.valueOf = 0; - }).prototype.valueOf = 0; - - // Iterate over a new instance of the `Properties` class. - members = new Properties(); - for (property in members) { - // Ignore all properties inherited from `Object.prototype`. - if (isProperty.call(members, property)) { - size++; - } - } - Properties = members = null; - - // Normalize the iteration algorithm. - if (!size) { - // A list of non-enumerable properties inherited from `Object.prototype`. - members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; - // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable - // properties. - forEach = function (object, callback) { - var isFunction = getClass.call(object) == functionClass, property, length; - var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; - for (property in object) { - // Gecko <= 1.0 enumerates the `prototype` property of functions under - // certain conditions; IE does not. - if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { - callback(property); - } - } - // Manually invoke the callback for each non-enumerable property. - for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); - }; - } else if (size == 2) { - // Safari <= 2.0.4 enumerates shadowed properties twice. - forEach = function (object, callback) { - // Create a set of iterated properties. - var members = {}, isFunction = getClass.call(object) == functionClass, property; - for (property in object) { - // Store each property name to prevent double enumeration. The - // `prototype` property of functions is not enumerated due to cross- - // environment inconsistencies. - if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { - callback(property); - } - } - }; - } else { - // No bugs detected; use the standard `for...in` algorithm. - forEach = function (object, callback) { - var isFunction = getClass.call(object) == functionClass, property, isConstructor; - for (property in object) { - if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { - callback(property); - } - } - // Manually invoke the callback for the `constructor` property due to - // cross-environment inconsistencies. - if (isConstructor || isProperty.call(object, (property = "constructor"))) { - callback(property); - } - }; - } - return forEach(object, callback); - }; - - // Public: Serializes a JavaScript `value` as a JSON string. The optional - // `filter` argument may specify either a function that alters how object and - // array members are serialized, or an array of strings and numbers that - // indicates which properties should be serialized. The optional `width` - // argument may be either a string or number that specifies the indentation - // level of the output. - if (!has("json-stringify")) { - // Internal: A map of control characters and their escaped equivalents. - var Escapes = { - 92: "\\\\", - 34: '\\"', - 8: "\\b", - 12: "\\f", - 10: "\\n", - 13: "\\r", - 9: "\\t" - }; - - // Internal: Converts `value` into a zero-padded string such that its - // length is at least equal to `width`. The `width` must be <= 6. - var leadingZeroes = "000000"; - var toPaddedString = function (width, value) { - // The `|| 0` expression is necessary to work around a bug in - // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. - return (leadingZeroes + (value || 0)).slice(-width); - }; - - // Internal: Double-quotes a string `value`, replacing all ASCII control - // characters (characters with code unit values between 0 and 31) with - // their escaped equivalents. This is an implementation of the - // `Quote(value)` operation defined in ES 5.1 section 15.12.3. - var unicodePrefix = "\\u00"; - var quote = function (value) { - var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; - var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); - for (; index < length; index++) { - var charCode = value.charCodeAt(index); - // If the character is a control character, append its Unicode or - // shorthand escape sequence; otherwise, append the character as-is. - switch (charCode) { - case 8: case 9: case 10: case 12: case 13: case 34: case 92: - result += Escapes[charCode]; - break; - default: - if (charCode < 32) { - result += unicodePrefix + toPaddedString(2, charCode.toString(16)); - break; - } - result += useCharIndex ? symbols[index] : value.charAt(index); - } - } - return result + '"'; - }; - - // Internal: Recursively serializes an object. Implements the - // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. - var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { - var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; - try { - // Necessary for host object support. - value = object[property]; - } catch (exception) {} - if (typeof value == "object" && value) { - className = getClass.call(value); - if (className == dateClass && !isProperty.call(value, "toJSON")) { - if (value > -1 / 0 && value < 1 / 0) { - // Dates are serialized according to the `Date#toJSON` method - // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 - // for the ISO 8601 date time string format. - if (getDay) { - // Manually compute the year, month, date, hours, minutes, - // seconds, and milliseconds if the `getUTC*` methods are - // buggy. Adapted from @Yaffle's `date-shim` project. - date = floor(value / 864e5); - for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); - for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); - date = 1 + date - getDay(year, month); - // The `time` value specifies the time within the day (see ES - // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used - // to compute `A modulo B`, as the `%` operator does not - // correspond to the `modulo` operation for negative numbers. - time = (value % 864e5 + 864e5) % 864e5; - // The hours, minutes, seconds, and milliseconds are obtained by - // decomposing the time within the day. See section 15.9.1.10. - hours = floor(time / 36e5) % 24; - minutes = floor(time / 6e4) % 60; - seconds = floor(time / 1e3) % 60; - milliseconds = time % 1e3; - } else { - year = value.getUTCFullYear(); - month = value.getUTCMonth(); - date = value.getUTCDate(); - hours = value.getUTCHours(); - minutes = value.getUTCMinutes(); - seconds = value.getUTCSeconds(); - milliseconds = value.getUTCMilliseconds(); - } - // Serialize extended years correctly. - value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + - "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + - // Months, dates, hours, minutes, and seconds should have two - // digits; milliseconds should have three. - "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + - // Milliseconds are optional in ES 5.0, but required in 5.1. - "." + toPaddedString(3, milliseconds) + "Z"; - } else { - value = null; - } - } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { - // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the - // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 - // ignores all `toJSON` methods on these objects unless they are - // defined directly on an instance. - value = value.toJSON(property); - } - } - if (callback) { - // If a replacement function was provided, call it to obtain the value - // for serialization. - value = callback.call(object, property, value); - } - if (value === null) { - return "null"; - } - className = getClass.call(value); - if (className == booleanClass) { - // Booleans are represented literally. - return "" + value; - } else if (className == numberClass) { - // JSON numbers must be finite. `Infinity` and `NaN` are serialized as - // `"null"`. - return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; - } else if (className == stringClass) { - // Strings are double-quoted and escaped. - return quote("" + value); - } - // Recursively serialize objects and arrays. - if (typeof value == "object") { - // Check for cyclic structures. This is a linear search; performance - // is inversely proportional to the number of unique nested objects. - for (length = stack.length; length--;) { - if (stack[length] === value) { - // Cyclic structures cannot be serialized by `JSON.stringify`. - throw TypeError(); - } - } - // Add the object to the stack of traversed objects. - stack.push(value); - results = []; - // Save the current indentation level and indent one additional level. - prefix = indentation; - indentation += whitespace; - if (className == arrayClass) { - // Recursively serialize array elements. - for (index = 0, length = value.length; index < length; index++) { - element = serialize(index, value, callback, properties, whitespace, indentation, stack); - results.push(element === undef ? "null" : element); - } - result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; - } else { - // Recursively serialize object members. Members are selected from - // either a user-specified list of property names, or the object - // itself. - forEach(properties || value, function (property) { - var element = serialize(property, value, callback, properties, whitespace, indentation, stack); - if (element !== undef) { - // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} - // is not the empty string, let `member` {quote(property) + ":"} - // be the concatenation of `member` and the `space` character." - // The "`space` character" refers to the literal space - // character, not the `space` {width} argument provided to - // `JSON.stringify`. - results.push(quote(property) + ":" + (whitespace ? " " : "") + element); - } - }); - result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; - } - // Remove the object from the traversed object stack. - stack.pop(); - return result; - } - }; - - // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. - exports.stringify = function (source, filter, width) { - var whitespace, callback, properties, className; - if (objectTypes[typeof filter] && filter) { - if ((className = getClass.call(filter)) == functionClass) { - callback = filter; - } else if (className == arrayClass) { - // Convert the property names array into a makeshift set. - properties = {}; - for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); - } - } - if (width) { - if ((className = getClass.call(width)) == numberClass) { - // Convert the `width` to an integer and create a string containing - // `width` number of space characters. - if ((width -= width % 1) > 0) { - for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); - } - } else if (className == stringClass) { - whitespace = width.length <= 10 ? width : width.slice(0, 10); - } - } - // Opera <= 7.54u2 discards the values associated with empty string keys - // (`""`) only if they are used directly within an object member list - // (e.g., `!("" in { "": 1})`). - return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); - }; - } - - // Public: Parses a JSON source string. - if (!has("json-parse")) { - var fromCharCode = String.fromCharCode; - - // Internal: A map of escaped control characters and their unescaped - // equivalents. - var Unescapes = { - 92: "\\", - 34: '"', - 47: "/", - 98: "\b", - 116: "\t", - 110: "\n", - 102: "\f", - 114: "\r" - }; - - // Internal: Stores the parser state. - var Index, Source; - - // Internal: Resets the parser state and throws a `SyntaxError`. - var abort = function () { - Index = Source = null; - throw SyntaxError(); - }; - - // Internal: Returns the next token, or `"$"` if the parser has reached - // the end of the source string. A token may be a string, number, `null` - // literal, or Boolean literal. - var lex = function () { - var source = Source, length = source.length, value, begin, position, isSigned, charCode; - while (Index < length) { - charCode = source.charCodeAt(Index); - switch (charCode) { - case 9: case 10: case 13: case 32: - // Skip whitespace tokens, including tabs, carriage returns, line - // feeds, and space characters. - Index++; - break; - case 123: case 125: case 91: case 93: case 58: case 44: - // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at - // the current position. - value = charIndexBuggy ? source.charAt(Index) : source[Index]; - Index++; - return value; - case 34: - // `"` delimits a JSON string; advance to the next character and - // begin parsing the string. String tokens are prefixed with the - // sentinel `@` character to distinguish them from punctuators and - // end-of-string tokens. - for (value = "@", Index++; Index < length;) { - charCode = source.charCodeAt(Index); - if (charCode < 32) { - // Unescaped ASCII control characters (those with a code unit - // less than the space character) are not permitted. - abort(); - } else if (charCode == 92) { - // A reverse solidus (`\`) marks the beginning of an escaped - // control character (including `"`, `\`, and `/`) or Unicode - // escape sequence. - charCode = source.charCodeAt(++Index); - switch (charCode) { - case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: - // Revive escaped control characters. - value += Unescapes[charCode]; - Index++; - break; - case 117: - // `\u` marks the beginning of a Unicode escape sequence. - // Advance to the first character and validate the - // four-digit code point. - begin = ++Index; - for (position = Index + 4; Index < position; Index++) { - charCode = source.charCodeAt(Index); - // A valid sequence comprises four hexdigits (case- - // insensitive) that form a single hexadecimal value. - if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { - // Invalid Unicode escape sequence. - abort(); - } - } - // Revive the escaped character. - value += fromCharCode("0x" + source.slice(begin, Index)); - break; - default: - // Invalid escape sequence. - abort(); - } - } else { - if (charCode == 34) { - // An unescaped double-quote character marks the end of the - // string. - break; - } - charCode = source.charCodeAt(Index); - begin = Index; - // Optimize for the common case where a string is valid. - while (charCode >= 32 && charCode != 92 && charCode != 34) { - charCode = source.charCodeAt(++Index); - } - // Append the string as-is. - value += source.slice(begin, Index); - } - } - if (source.charCodeAt(Index) == 34) { - // Advance to the next character and return the revived string. - Index++; - return value; - } - // Unterminated string. - abort(); - default: - // Parse numbers and literals. - begin = Index; - // Advance past the negative sign, if one is specified. - if (charCode == 45) { - isSigned = true; - charCode = source.charCodeAt(++Index); - } - // Parse an integer or floating-point value. - if (charCode >= 48 && charCode <= 57) { - // Leading zeroes are interpreted as octal literals. - if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { - // Illegal octal literal. - abort(); - } - isSigned = false; - // Parse the integer component. - for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); - // Floats cannot contain a leading decimal point; however, this - // case is already accounted for by the parser. - if (source.charCodeAt(Index) == 46) { - position = ++Index; - // Parse the decimal component. - for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); - if (position == Index) { - // Illegal trailing decimal. - abort(); - } - Index = position; - } - // Parse exponents. The `e` denoting the exponent is - // case-insensitive. - charCode = source.charCodeAt(Index); - if (charCode == 101 || charCode == 69) { - charCode = source.charCodeAt(++Index); - // Skip past the sign following the exponent, if one is - // specified. - if (charCode == 43 || charCode == 45) { - Index++; - } - // Parse the exponential component. - for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); - if (position == Index) { - // Illegal empty exponent. - abort(); - } - Index = position; - } - // Coerce the parsed value to a JavaScript number. - return +source.slice(begin, Index); - } - // A negative sign may only precede numbers. - if (isSigned) { - abort(); - } - // `true`, `false`, and `null` literals. - if (source.slice(Index, Index + 4) == "true") { - Index += 4; - return true; - } else if (source.slice(Index, Index + 5) == "false") { - Index += 5; - return false; - } else if (source.slice(Index, Index + 4) == "null") { - Index += 4; - return null; - } - // Unrecognized token. - abort(); - } - } - // Return the sentinel `$` character if the parser has reached the end - // of the source string. - return "$"; - }; - - // Internal: Parses a JSON `value` token. - var get = function (value) { - var results, hasMembers; - if (value == "$") { - // Unexpected end of input. - abort(); - } - if (typeof value == "string") { - if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { - // Remove the sentinel `@` character. - return value.slice(1); - } - // Parse object and array literals. - if (value == "[") { - // Parses a JSON array, returning a new JavaScript array. - results = []; - for (;; hasMembers || (hasMembers = true)) { - value = lex(); - // A closing square bracket marks the end of the array literal. - if (value == "]") { - break; - } - // If the array literal contains elements, the current token - // should be a comma separating the previous element from the - // next. - if (hasMembers) { - if (value == ",") { - value = lex(); - if (value == "]") { - // Unexpected trailing `,` in array literal. - abort(); - } - } else { - // A `,` must separate each array element. - abort(); - } - } - // Elisions and leading commas are not permitted. - if (value == ",") { - abort(); - } - results.push(get(value)); - } - return results; - } else if (value == "{") { - // Parses a JSON object, returning a new JavaScript object. - results = {}; - for (;; hasMembers || (hasMembers = true)) { - value = lex(); - // A closing curly brace marks the end of the object literal. - if (value == "}") { - break; - } - // If the object literal contains members, the current token - // should be a comma separator. - if (hasMembers) { - if (value == ",") { - value = lex(); - if (value == "}") { - // Unexpected trailing `,` in object literal. - abort(); - } - } else { - // A `,` must separate each object member. - abort(); - } - } - // Leading commas are not permitted, object property names must be - // double-quoted strings, and a `:` must separate each property - // name and value. - if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { - abort(); - } - results[value.slice(1)] = get(lex()); - } - return results; - } - // Unexpected token encountered. - abort(); - } - return value; - }; - - // Internal: Updates a traversed object member. - var update = function (source, property, callback) { - var element = walk(source, property, callback); - if (element === undef) { - delete source[property]; - } else { - source[property] = element; - } - }; - - // Internal: Recursively traverses a parsed JSON object, invoking the - // `callback` function for each value. This is an implementation of the - // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. - var walk = function (source, property, callback) { - var value = source[property], length; - if (typeof value == "object" && value) { - // `forEach` can't be used to traverse an array in Opera <= 8.54 - // because its `Object#hasOwnProperty` implementation returns `false` - // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). - if (getClass.call(value) == arrayClass) { - for (length = value.length; length--;) { - update(value, length, callback); - } - } else { - forEach(value, function (property) { - update(value, property, callback); - }); - } - } - return callback.call(source, property, value); - }; - - // Public: `JSON.parse`. See ES 5.1 section 15.12.2. - exports.parse = function (source, callback) { - var result, value; - Index = 0; - Source = "" + source; - result = get(lex()); - // If a JSON string contains multiple tokens, it is invalid. - if (lex() != "$") { - abort(); - } - // Reset the parser state. - Index = Source = null; - return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; - }; - } - } - - exports["runInContext"] = runInContext; - return exports; - } - - if (freeExports && !isLoader) { - // Export for CommonJS environments. - runInContext(root, freeExports); - } else { - // Export for web browsers and JavaScript engines. - var nativeJSON = root.JSON, - previousJSON = root["JSON3"], - isRestored = false; - - var JSON3 = runInContext(root, (root["JSON3"] = { - // Public: Restores the original value of the global `JSON` object and - // returns a reference to the `JSON3` object. - "noConflict": function () { - if (!isRestored) { - isRestored = true; - root.JSON = nativeJSON; - root["JSON3"] = previousJSON; - nativeJSON = previousJSON = null; - } - return JSON3; - } - })); - - root.JSON = { - "parse": JSON3.parse, - "stringify": JSON3.stringify - }; - } - - // Export for asynchronous module loaders. - if (isLoader) { - define(function () { - return JSON3; - }); - } -}).call(this); - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],70:[function(require,module,exports){ -/** - * lodash 3.2.0 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ -var baseCopy = require('lodash._basecopy'), - keys = require('lodash.keys'); - -/** - * The base implementation of `_.assign` without support for argument juggling, - * multiple sources, and `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ -function baseAssign(object, source) { - return source == null - ? object - : baseCopy(source, keys(source), object); -} - -module.exports = baseAssign; - -},{"lodash._basecopy":71,"lodash.keys":78}],71:[function(require,module,exports){ -/** - * lodash 3.0.1 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - -/** - * Copies properties of `source` to `object`. - * - * @private - * @param {Object} source The object to copy properties from. - * @param {Array} props The property names to copy. - * @param {Object} [object={}] The object to copy properties to. - * @returns {Object} Returns `object`. - */ -function baseCopy(source, props, object) { - object || (object = {}); - - var index = -1, - length = props.length; - - while (++index < length) { - var key = props[index]; - object[key] = source[key]; - } - return object; -} - -module.exports = baseCopy; - -},{}],72:[function(require,module,exports){ -/** - * lodash 3.0.3 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - -/** - * The base implementation of `_.create` without support for assigning - * properties to the created object. - * - * @private - * @param {Object} prototype The object to inherit from. - * @returns {Object} Returns the new object. - */ -var baseCreate = (function() { - function object() {} - return function(prototype) { - if (isObject(prototype)) { - object.prototype = prototype; - var result = new object; - object.prototype = undefined; - } - return result || {}; - }; -}()); - -/** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(1); - * // => false - */ -function isObject(value) { - // Avoid a V8 JIT bug in Chrome 19-20. - // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -module.exports = baseCreate; - -},{}],73:[function(require,module,exports){ -/** - * lodash 3.9.1 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - -/** `Object#toString` result references. */ -var funcTag = '[object Function]'; - -/** Used to detect host constructors (Safari > 5). */ -var reIsHostCtor = /^\[object .+?Constructor\]$/; - -/** - * Checks if `value` is object-like. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - */ -function isObjectLike(value) { - return !!value && typeof value == 'object'; -} - -/** Used for native method references. */ -var objectProto = Object.prototype; - -/** Used to resolve the decompiled source of functions. */ -var fnToString = Function.prototype.toString; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; - -/** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objToString = objectProto.toString; - -/** Used to detect if a method is native. */ -var reIsNative = RegExp('^' + - fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' -); - -/** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ -function getNative(object, key) { - var value = object == null ? undefined : object[key]; - return isNative(value) ? value : undefined; -} - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in older versions of Chrome and Safari which return 'function' for regexes - // and Safari 8 equivalents which return 'object' for typed array constructors. - return isObject(value) && objToString.call(value) == funcTag; -} - -/** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(1); - * // => false - */ -function isObject(value) { - // Avoid a V8 JIT bug in Chrome 19-20. - // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Checks if `value` is a native function. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ -function isNative(value) { - if (value == null) { - return false; - } - if (isFunction(value)) { - return reIsNative.test(fnToString.call(value)); - } - return isObjectLike(value) && reIsHostCtor.test(value); -} - -module.exports = getNative; - -},{}],74:[function(require,module,exports){ -/** - * lodash 3.0.9 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - -/** Used to detect unsigned integer values. */ -var reIsUint = /^\d+$/; - -/** - * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer) - * of an array-like value. - */ -var MAX_SAFE_INTEGER = 9007199254740991; - -/** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new function. - */ -function baseProperty(key) { - return function(object) { - return object == null ? undefined : object[key]; - }; -} - -/** - * Gets the "length" property value of `object`. - * - * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) - * that affects Safari on at least iOS 8.1-8.3 ARM64. - * - * @private - * @param {Object} object The object to query. - * @returns {*} Returns the "length" value. - */ -var getLength = baseProperty('length'); - -/** - * Checks if `value` is array-like. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - */ -function isArrayLike(value) { - return value != null && isLength(getLength(value)); -} - -/** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ -function isIndex(value, length) { - value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; - length = length == null ? MAX_SAFE_INTEGER : length; - return value > -1 && value % 1 == 0 && value < length; -} - -/** - * Checks if the provided arguments are from an iteratee call. - * - * @private - * @param {*} value The potential iteratee value argument. - * @param {*} index The potential iteratee index or key argument. - * @param {*} object The potential iteratee object argument. - * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`. - */ -function isIterateeCall(value, index, object) { - if (!isObject(object)) { - return false; - } - var type = typeof index; - if (type == 'number' - ? (isArrayLike(object) && isIndex(index, object.length)) - : (type == 'string' && index in object)) { - var other = object[index]; - return value === value ? (value === other) : (other !== other); - } - return false; -} - -/** - * Checks if `value` is a valid array-like length. - * - * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength). - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - */ -function isLength(value) { - return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; -} - -/** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(1); - * // => false - */ -function isObject(value) { - // Avoid a V8 JIT bug in Chrome 19-20. - // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -module.exports = isIterateeCall; - -},{}],75:[function(require,module,exports){ -/** - * lodash 3.1.1 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ -var baseAssign = require('lodash._baseassign'), - baseCreate = require('lodash._basecreate'), - isIterateeCall = require('lodash._isiterateecall'); - -/** - * Creates an object that inherits from the given `prototype` object. If a - * `properties` object is provided its own enumerable properties are assigned - * to the created object. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} prototype The object to inherit from. - * @param {Object} [properties] The properties to assign to the object. - * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. - * @returns {Object} Returns the new object. - * @example - * - * function Shape() { - * this.x = 0; - * this.y = 0; - * } - * - * function Circle() { - * Shape.call(this); - * } - * - * Circle.prototype = _.create(Shape.prototype, { - * 'constructor': Circle - * }); - * - * var circle = new Circle; - * circle instanceof Circle; - * // => true - * - * circle instanceof Shape; - * // => true - */ -function create(prototype, properties, guard) { - var result = baseCreate(prototype); - if (guard && isIterateeCall(prototype, properties, guard)) { - properties = undefined; - } - return properties ? baseAssign(result, properties) : result; -} - -module.exports = create; - -},{"lodash._baseassign":70,"lodash._basecreate":72,"lodash._isiterateecall":74}],76:[function(require,module,exports){ -/** - * lodash (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright jQuery Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ - -/** Used as references for various `Number` constants. */ -var MAX_SAFE_INTEGER = 9007199254740991; - -/** `Object#toString` result references. */ -var argsTag = '[object Arguments]', - funcTag = '[object Function]', - genTag = '[object GeneratorFunction]'; - -/** Used for built-in method references. */ -var objectProto = Object.prototype; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; - -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ -var objectToString = objectProto.toString; - -/** Built-in value references. */ -var propertyIsEnumerable = objectProto.propertyIsEnumerable; - -/** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ -function isArguments(value) { - // Safari 8.1 makes `arguments.callee` enumerable in strict mode. - return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && - (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag); -} - -/** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ -function isArrayLike(value) { - return value != null && isLength(value.length) && !isFunction(value); -} - -/** - * This method is like `_.isArrayLike` except that it also checks if `value` - * is an object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array-like object, - * else `false`. - * @example - * - * _.isArrayLikeObject([1, 2, 3]); - * // => true - * - * _.isArrayLikeObject(document.body.children); - * // => true - * - * _.isArrayLikeObject('abc'); - * // => false - * - * _.isArrayLikeObject(_.noop); - * // => false - */ -function isArrayLikeObject(value) { - return isObjectLike(value) && isArrayLike(value); -} - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a function, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8-9 which returns 'object' for typed array and other constructors. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; -} - -/** - * Checks if `value` is a valid array-like length. - * - * **Note:** This method is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ -function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; -} - -/** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ -function isObject(value) { - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ -function isObjectLike(value) { - return !!value && typeof value == 'object'; -} - -module.exports = isArguments; - -},{}],77:[function(require,module,exports){ -/** - * lodash 3.0.4 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - -/** `Object#toString` result references. */ -var arrayTag = '[object Array]', - funcTag = '[object Function]'; - -/** Used to detect host constructors (Safari > 5). */ -var reIsHostCtor = /^\[object .+?Constructor\]$/; - -/** - * Checks if `value` is object-like. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - */ -function isObjectLike(value) { - return !!value && typeof value == 'object'; -} - -/** Used for native method references. */ -var objectProto = Object.prototype; - -/** Used to resolve the decompiled source of functions. */ -var fnToString = Function.prototype.toString; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; - -/** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ -var objToString = objectProto.toString; - -/** Used to detect if a method is native. */ -var reIsNative = RegExp('^' + - fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' -); - -/* Native method references for those with the same name as other `lodash` methods. */ -var nativeIsArray = getNative(Array, 'isArray'); - -/** - * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) - * of an array-like value. - */ -var MAX_SAFE_INTEGER = 9007199254740991; - -/** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ -function getNative(object, key) { - var value = object == null ? undefined : object[key]; - return isNative(value) ? value : undefined; -} - -/** - * Checks if `value` is a valid array-like length. - * - * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - */ -function isLength(value) { - return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; -} - -/** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(function() { return arguments; }()); - * // => false - */ -var isArray = nativeIsArray || function(value) { - return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag; -}; - -/** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ -function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in older versions of Chrome and Safari which return 'function' for regexes - // and Safari 8 equivalents which return 'object' for typed array constructors. - return isObject(value) && objToString.call(value) == funcTag; -} - -/** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(1); - * // => false - */ -function isObject(value) { - // Avoid a V8 JIT bug in Chrome 19-20. - // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Checks if `value` is a native function. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ -function isNative(value) { - if (value == null) { - return false; - } - if (isFunction(value)) { - return reIsNative.test(fnToString.call(value)); - } - return isObjectLike(value) && reIsHostCtor.test(value); -} - -module.exports = isArray; - -},{}],78:[function(require,module,exports){ -/** - * lodash 3.1.2 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ -var getNative = require('lodash._getnative'), - isArguments = require('lodash.isarguments'), - isArray = require('lodash.isarray'); - -/** Used to detect unsigned integer values. */ -var reIsUint = /^\d+$/; - -/** Used for native method references. */ -var objectProto = Object.prototype; - -/** Used to check objects for own properties. */ -var hasOwnProperty = objectProto.hasOwnProperty; - -/* Native method references for those with the same name as other `lodash` methods. */ -var nativeKeys = getNative(Object, 'keys'); - -/** - * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) - * of an array-like value. - */ -var MAX_SAFE_INTEGER = 9007199254740991; - -/** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new function. - */ -function baseProperty(key) { - return function(object) { - return object == null ? undefined : object[key]; - }; -} - -/** - * Gets the "length" property value of `object`. - * - * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) - * that affects Safari on at least iOS 8.1-8.3 ARM64. - * - * @private - * @param {Object} object The object to query. - * @returns {*} Returns the "length" value. - */ -var getLength = baseProperty('length'); - -/** - * Checks if `value` is array-like. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - */ -function isArrayLike(value) { - return value != null && isLength(getLength(value)); -} - -/** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ -function isIndex(value, length) { - value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; - length = length == null ? MAX_SAFE_INTEGER : length; - return value > -1 && value % 1 == 0 && value < length; -} - -/** - * Checks if `value` is a valid array-like length. - * - * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - */ -function isLength(value) { - return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; -} - -/** - * A fallback implementation of `Object.keys` which creates an array of the - * own enumerable property names of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ -function shimKeys(object) { - var props = keysIn(object), - propsLength = props.length, - length = propsLength && object.length; - - var allowIndexes = !!length && isLength(length) && - (isArray(object) || isArguments(object)); - - var index = -1, - result = []; - - while (++index < propsLength) { - var key = props[index]; - if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) { - result.push(key); - } - } - return result; -} - -/** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(1); - * // => false - */ -function isObject(value) { - // Avoid a V8 JIT bug in Chrome 19-20. - // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); -} - -/** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys) - * for more details. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ -var keys = !nativeKeys ? shimKeys : function(object) { - var Ctor = object == null ? undefined : object.constructor; - if ((typeof Ctor == 'function' && Ctor.prototype === object) || - (typeof object != 'function' && isArrayLike(object))) { - return shimKeys(object); - } - return isObject(object) ? nativeKeys(object) : []; -}; - -/** - * Creates an array of the own and inherited enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keysIn(new Foo); - * // => ['a', 'b', 'c'] (iteration order is not guaranteed) - */ -function keysIn(object) { - if (object == null) { - return []; - } - if (!isObject(object)) { - object = Object(object); - } - var length = object.length; - length = (length && isLength(length) && - (isArray(object) || isArguments(object)) && length) || 0; - - var Ctor = object.constructor, - index = -1, - isProto = typeof Ctor == 'function' && Ctor.prototype === object, - result = Array(length), - skipIndexes = length > 0; - - while (++index < length) { - result[index] = (index + ''); - } - for (var key in object) { - if (!(skipIndexes && isIndex(key, length)) && - !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { - result.push(key); - } - } - return result; -} - -module.exports = keys; - -},{"lodash._getnative":73,"lodash.isarguments":76,"lodash.isarray":77}],79:[function(require,module,exports){ -(function (process){ -var path = require('path'); -var fs = require('fs'); -var _0777 = parseInt('0777', 8); - -module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP; - -function mkdirP (p, opts, f, made) { - if (typeof opts === 'function') { - f = opts; - opts = {}; - } - else if (!opts || typeof opts !== 'object') { - opts = { mode: opts }; - } - - var mode = opts.mode; - var xfs = opts.fs || fs; - - if (mode === undefined) { - mode = _0777 & (~process.umask()); - } - if (!made) made = null; - - var cb = f || function () {}; - p = path.resolve(p); - - xfs.mkdir(p, mode, function (er) { - if (!er) { - made = made || p; - return cb(null, made); - } - switch (er.code) { - case 'ENOENT': - mkdirP(path.dirname(p), opts, function (er, made) { - if (er) cb(er, made); - else mkdirP(p, opts, cb, made); - }); - break; - - // In the case of any other error, just see if there's a dir - // there already. If so, then hooray! If not, then something - // is borked. - default: - xfs.stat(p, function (er2, stat) { - // if the stat fails, then that's super weird. - // let the original error be the failure reason. - if (er2 || !stat.isDirectory()) cb(er, made) - else cb(null, made); - }); - break; - } - }); -} - -mkdirP.sync = function sync (p, opts, made) { - if (!opts || typeof opts !== 'object') { - opts = { mode: opts }; - } - - var mode = opts.mode; - var xfs = opts.fs || fs; - - if (mode === undefined) { - mode = _0777 & (~process.umask()); - } - if (!made) made = null; - - p = path.resolve(p); - - try { - xfs.mkdirSync(p, mode); - made = made || p; - } - catch (err0) { - switch (err0.code) { - case 'ENOENT' : - made = sync(path.dirname(p), opts, made); - sync(p, opts, made); - break; - - // In the case of any other error, just see if there's a dir - // there already. If so, then hooray! If not, then something - // is borked. - default: - var stat; - try { - stat = xfs.statSync(p); - } - catch (err1) { - throw err0; - } - if (!stat.isDirectory()) throw err0; - break; - } - } - - return made; -}; - -}).call(this,require('_process')) -},{"_process":82,"fs":42,"path":42}],80:[function(require,module,exports){ -exports.endianness = function () { return 'LE' }; - -exports.hostname = function () { - if (typeof location !== 'undefined') { - return location.hostname - } - else return ''; -}; - -exports.loadavg = function () { return [] }; - -exports.uptime = function () { return 0 }; - -exports.freemem = function () { - return Number.MAX_VALUE; -}; - -exports.totalmem = function () { - return Number.MAX_VALUE; -}; - -exports.cpus = function () { return [] }; - -exports.type = function () { return 'Browser' }; - -exports.release = function () { - if (typeof navigator !== 'undefined') { - return navigator.appVersion; - } - return ''; -}; - -exports.networkInterfaces -= exports.getNetworkInterfaces -= function () { return {} }; - -exports.arch = function () { return 'javascript' }; - -exports.platform = function () { return 'browser' }; - -exports.tmpdir = exports.tmpDir = function () { - return '/tmp'; -}; - -exports.EOL = '\n'; - -},{}],81:[function(require,module,exports){ -(function (process){ -'use strict'; - -if (!process.version || - process.version.indexOf('v0.') === 0 || - process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { - module.exports = nextTick; -} else { - module.exports = process.nextTick; -} - -function nextTick(fn, arg1, arg2, arg3) { - if (typeof fn !== 'function') { - throw new TypeError('"callback" argument must be a function'); - } - var len = arguments.length; - var args, i; - switch (len) { - case 0: - case 1: - return process.nextTick(fn); - case 2: - return process.nextTick(function afterTickOne() { - fn.call(null, arg1); - }); - case 3: - return process.nextTick(function afterTickTwo() { - fn.call(null, arg1, arg2); - }); - case 4: - return process.nextTick(function afterTickThree() { - fn.call(null, arg1, arg2, arg3); - }); - default: - args = new Array(len - 1); - i = 0; - while (i < args.length) { - args[i++] = arguments[i]; - } - return process.nextTick(function afterTick() { - fn.apply(null, args); - }); - } -} - -}).call(this,require('_process')) -},{"_process":82}],82:[function(require,module,exports){ -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - -},{}],83:[function(require,module,exports){ -module.exports = require('./lib/_stream_duplex.js'); - -},{"./lib/_stream_duplex.js":84}],84:[function(require,module,exports){ -// a duplex stream is just a stream that is both readable and writable. -// Since JS doesn't have multiple prototypal inheritance, this class -// prototypally inherits from Readable, and then parasitically from -// Writable. - -'use strict'; - -/**/ - -var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) { - keys.push(key); - }return keys; -}; -/**/ - -module.exports = Duplex; - -/**/ -var processNextTick = require('process-nextick-args'); -/**/ - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -var Readable = require('./_stream_readable'); -var Writable = require('./_stream_writable'); - -util.inherits(Duplex, Readable); - -var keys = objectKeys(Writable.prototype); -for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; -} - -function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - - Readable.call(this, options); - Writable.call(this, options); - - if (options && options.readable === false) this.readable = false; - - if (options && options.writable === false) this.writable = false; - - this.allowHalfOpen = true; - if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; - - this.once('end', onend); -} - -// the no-half-open enforcer -function onend() { - // if we allow half-open state, or if the writable side ended, - // then we're ok. - if (this.allowHalfOpen || this._writableState.ended) return; - - // no more data can be written. - // But allow more writes to happen in this tick. - processNextTick(onEndNT, this); -} - -function onEndNT(self) { - self.end(); -} - -function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } -} -},{"./_stream_readable":86,"./_stream_writable":88,"core-util-is":44,"inherits":66,"process-nextick-args":81}],85:[function(require,module,exports){ -// a passthrough stream. -// basically just the most minimal sort of Transform stream. -// Every written chunk gets output as-is. - -'use strict'; - -module.exports = PassThrough; - -var Transform = require('./_stream_transform'); - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -util.inherits(PassThrough, Transform); - -function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); - - Transform.call(this, options); -} - -PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); -}; -},{"./_stream_transform":87,"core-util-is":44,"inherits":66}],86:[function(require,module,exports){ -(function (process){ -'use strict'; - -module.exports = Readable; - -/**/ -var processNextTick = require('process-nextick-args'); -/**/ - -/**/ -var isArray = require('isarray'); -/**/ - -/**/ -var Duplex; -/**/ - -Readable.ReadableState = ReadableState; - -/**/ -var EE = require('events').EventEmitter; - -var EElistenerCount = function (emitter, type) { - return emitter.listeners(type).length; -}; -/**/ - -/**/ -var Stream = require('./internal/streams/stream'); -/**/ - -/**/ -var Buffer = require('safe-buffer').Buffer; -/**/ - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -/**/ -var debugUtil = require('util'); -var debug = void 0; -if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); -} else { - debug = function () {}; -} -/**/ - -var BufferList = require('./internal/streams/BufferList'); -var StringDecoder; - -util.inherits(Readable, Stream); - -var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; - -function prependListener(emitter, event, fn) { - // Sadly this is not cacheable as some libraries bundle their own - // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') { - return emitter.prependListener(event, fn); - } else { - // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; - } -} - -function ReadableState(options, stream) { - Duplex = Duplex || require('./_stream_duplex'); - - options = options || {}; - - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = ~~this.highWaterMark; - - // A linked list is used to store data chunks instead of an array because the - // linked list can remove elements from the beginning faster than - // array.shift() - this.buffer = new BufferList(); - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // when piping, we only care about 'readable' events that happen - // after read()ing all the bytes and not getting any pushback. - this.ranOut = false; - - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; - - // if true, a maybeReadMore has been scheduled - this.readingMore = false; - - this.decoder = null; - this.encoding = null; - if (options.encoding) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } -} - -function Readable(options) { - Duplex = Duplex || require('./_stream_duplex'); - - if (!(this instanceof Readable)) return new Readable(options); - - this._readableState = new ReadableState(options, this); - - // legacy - this.readable = true; - - if (options && typeof options.read === 'function') this._read = options.read; - - Stream.call(this); -} - -// Manually shove something into the read() buffer. -// This returns true if the highWaterMark has not been hit yet, -// similar to how Writable.write() returns true if you should -// write() some more. -Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - - if (!state.objectMode && typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = Buffer.from(chunk, encoding); - encoding = ''; - } - } - - return readableAddChunk(this, state, chunk, encoding, false); -}; - -// Unshift should *always* be something directly out of read() -Readable.prototype.unshift = function (chunk) { - var state = this._readableState; - return readableAddChunk(this, state, chunk, '', true); -}; - -Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; -}; - -function readableAddChunk(stream, state, chunk, encoding, addToFront) { - var er = chunkInvalid(state, chunk); - if (er) { - stream.emit('error', er); - } else if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (state.ended && !addToFront) { - var e = new Error('stream.push() after EOF'); - stream.emit('error', e); - } else if (state.endEmitted && addToFront) { - var _e = new Error('stream.unshift() after end event'); - stream.emit('error', _e); - } else { - var skipAdd; - if (state.decoder && !addToFront && !encoding) { - chunk = state.decoder.write(chunk); - skipAdd = !state.objectMode && chunk.length === 0; - } - - if (!addToFront) state.reading = false; - - // Don't add to the buffer if we've decoded to an empty string chunk and - // we're not in object mode - if (!skipAdd) { - // if we want the data now, just emit it. - if (state.flowing && state.length === 0 && !state.sync) { - stream.emit('data', chunk); - stream.read(0); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - - if (state.needReadable) emitReadable(stream); - } - } - - maybeReadMore(stream, state); - } - } else if (!addToFront) { - state.reading = false; - } - - return needMoreData(state); -} - -// if it's past the high water mark, we can push in some more. -// Also, if we have no data yet, we can stand some -// more bytes. This is to work around cases where hwm=0, -// such as the repl. Also, if the push() triggered a -// readable event, and the user called read(largeNumber) such that -// needReadable was set, then we ought to push more, so that another -// 'readable' event will be triggered. -function needMoreData(state) { - return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); -} - -// backwards compatibility. -Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; - this._readableState.decoder = new StringDecoder(enc); - this._readableState.encoding = enc; - return this; -}; - -// Don't raise the hwm > 8MB -var MAX_HWM = 0x800000; -function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - n = MAX_HWM; - } else { - // Get the next highest power of 2 to prevent increasing hwm excessively in - // tiny amounts - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - return n; -} - -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function howMuchToRead(n, state) { - if (n <= 0 || state.length === 0 && state.ended) return 0; - if (state.objectMode) return 1; - if (n !== n) { - // Only flow one buffer at a time - if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } - // If we're asking for more than the current hwm, then raise the hwm. - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; - // Don't have enough - if (!state.ended) { - state.needReadable = true; - return 0; - } - return state.length; -} - -// you can override either this method, or the async _read(n) below. -Readable.prototype.read = function (n) { - debug('read', n); - n = parseInt(n, 10); - var state = this._readableState; - var nOrig = n; - - if (n !== 0) state.emittedReadable = false; - - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } - - n = howMuchToRead(n, state); - - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } - - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug('need readable', doRead); - - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } - - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } else if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (!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; - } else { - state.length -= n; - } - - if (state.length === 0) { - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; - - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended) endReadable(this); - } - - if (ret !== null) this.emit('data', ret); - - return ret; -}; - -function chunkInvalid(state, chunk) { - var er = null; - if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - return er; -} - -function onEofChunk(stream, state) { - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; - - // emit 'readable' now to make sure it gets picked up. - emitReadable(stream); -} - -// Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. -function emitReadable(stream) { - var state = stream._readableState; - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream); - } -} - -function emitReadable_(stream) { - debug('emit readable'); - stream.emit('readable'); - flow(stream); -} - -// at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. -function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - processNextTick(maybeReadMore_, stream, state); - } -} - -function maybeReadMore_(stream, state) { - var len = state.length; - while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break;else len = state.length; - } - state.readingMore = false; -} - -// abstract method. to be overridden in specific implementation classes. -// call cb(er, data) where data is <= n in length. -// for virtual (non-string, non-buffer) streams, "length" is somewhat -// arbitrary, and perhaps not very meaningful. -Readable.prototype._read = function (n) { - this.emit('error', new Error('_read() is not implemented')); -}; - -Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - - var endFn = doEnd ? onend : unpipe; - if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); - - dest.on('unpipe', onunpipe); - function onunpipe(readable) { - debug('onunpipe'); - if (readable === src) { - cleanup(); - } - } - - function onend() { - debug('onend'); - dest.end(); - } - - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - - var cleanedUp = false; - function cleanup() { - debug('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', unpipe); - src.removeListener('data', ondata); - - cleanedUp = true; - - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } - - // If the user pushes more data while we're writing to dest then we'll end up - // in ondata again. However, we only want to increase awaitDrain once because - // dest will only emit one 'drain' event for the multiple writes. - // => Introduce a guard on increasing awaitDrain. - var increasedAwaitDrain = false; - src.on('data', ondata); - function ondata(chunk) { - debug('ondata'); - increasedAwaitDrain = false; - var ret = dest.write(chunk); - if (false === ret && !increasedAwaitDrain) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', src._readableState.awaitDrain); - src._readableState.awaitDrain++; - increasedAwaitDrain = true; - } - src.pause(); - } - } - - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); - } - - // Make sure our error handler is attached before userland ones. - prependListener(dest, 'error', onerror); - - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); - - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } - - // tell the dest that it's being piped to - dest.emit('pipe', src); - - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } - - return dest; -}; - -function pipeOnDrain(src) { - return function () { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; -} - -Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - - // if we're not piping anywhere, then do nothing. - if (state.pipesCount === 0) return this; - - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - - if (!dest) dest = state.pipes; - - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this); - return this; - } - - // slow case. multiple pipe destinations. - - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this); - }return this; - } - - // try to find the right one. - var index = indexOf(state.pipes, dest); - if (index === -1) return this; - - state.pipes.splice(index, 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') { - // Start flowing on next tick if stream isn't explicitly paused - if (this._readableState.flowing !== false) this.resume(); - } else if (ev === 'readable') { - var state = this._readableState; - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.emittedReadable = false; - if (!state.reading) { - processNextTick(nReadingNextTick, this); - } else if (state.length) { - emitReadable(this, state); - } - } - } - - return res; -}; -Readable.prototype.addListener = Readable.prototype.on; - -function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); -} - -// pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. -Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - state.flowing = true; - resume(this, state); - } - return this; -}; - -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - processNextTick(resume_, stream, state); - } -} - -function resume_(stream, state) { - if (!state.reading) { - debug('resume read 0'); - stream.read(0); - } - - state.resumeScheduled = false; - state.awaitDrain = 0; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); -} - -Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); - if (false !== this._readableState.flowing) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } - return this; -}; - -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - while (state.flowing && stream.read() !== null) {} -} - -// wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. -Readable.prototype.wrap = function (stream) { - var state = this._readableState; - var paused = false; - - var self = this; - stream.on('end', function () { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) self.push(chunk); - } - - self.push(null); - }); - - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); - - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - - var ret = self.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); - - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function (method) { - return function () { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } - - // proxy certain important events. - for (var n = 0; n < kProxyEvents.length; n++) { - stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n])); - } - - // when we try to consume some more bytes, simply unpause the - // underlying stream. - self._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; - - return self; -}; - -// exposed for testing purposes only. -Readable._fromList = fromList; - -// Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; - - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); - state.buffer.clear(); - } else { - // read part of list - ret = fromListPartial(n, state.buffer, state.decoder); - } - - return ret; -} - -// Extracts only enough buffered data to satisfy the amount requested. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromListPartial(n, list, hasStrings) { - var ret; - if (n < list.head.data.length) { - // slice is the same for buffers and strings - ret = list.head.data.slice(0, n); - list.head.data = list.head.data.slice(n); - } else if (n === list.head.data.length) { - // first chunk is a perfect match - ret = list.shift(); - } else { - // result spans more than one buffer - ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); - } - return ret; -} - -// Copies a specified amount of characters from the list of buffered data -// chunks. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function copyFromBufferString(n, list) { - var p = list.head; - var c = 1; - var ret = p.data; - n -= ret.length; - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = str.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; -} - -// Copies a specified amount of bytes from the list of buffered data chunks. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function copyFromBuffer(n, list) { - var ret = Buffer.allocUnsafe(n); - var p = list.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = buf.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; -} - -function endReadable(stream) { - var state = stream._readableState; - - // If we get here before consuming all the bytes, then that is a - // bug in node. Should never happen. - if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); - - if (!state.endEmitted) { - state.ended = true; - processNextTick(endReadableNT, state, stream); - } -} - -function endReadableNT(state, stream) { - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - } -} - -function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } -} - -function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; -} -}).call(this,require('_process')) -},{"./_stream_duplex":84,"./internal/streams/BufferList":89,"./internal/streams/stream":90,"_process":82,"core-util-is":44,"events":62,"inherits":66,"isarray":68,"process-nextick-args":81,"safe-buffer":95,"string_decoder/":97,"util":40}],87:[function(require,module,exports){ -// a transform stream is a readable/writable stream where you do -// something with the data. Sometimes it's called a "filter", -// but that's not a great name for it, since that implies a thing where -// some bits pass through, and others are simply ignored. (That would -// be a valid example of a transform, of course.) -// -// While the output is causally related to the input, it's not a -// necessarily symmetric or synchronous transformation. For example, -// a zlib stream might take multiple plain-text writes(), and then -// emit a single compressed chunk some time in the future. -// -// Here's how this works: -// -// The Transform stream has all the aspects of the readable and writable -// stream classes. When you write(chunk), that calls _write(chunk,cb) -// internally, and returns false if there's a lot of pending writes -// buffered up. When you call read(), that calls _read(n) until -// there's enough pending readable data buffered up. -// -// In a transform stream, the written data is placed in a buffer. When -// _read(n) is called, it transforms the queued up data, calling the -// buffered _write cb's as it consumes chunks. If consuming a single -// written chunk would result in multiple output chunks, then the first -// outputted bit calls the readcb, and subsequent chunks just go into -// the read buffer, and will cause it to emit 'readable' if necessary. -// -// This way, back-pressure is actually determined by the reading side, -// since _read has to be called to start processing a new chunk. However, -// a pathological inflate type of transform can cause excessive buffering -// here. For example, imagine a stream where every byte of input is -// interpreted as an integer from 0-255, and then results in that many -// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in -// 1kb of data being output. In this case, you could write a very small -// amount of input, and end up with a very large amount of output. In -// such a pathological inflating mechanism, there'd be no way to tell -// the system to stop doing the transform. A single 4MB write could -// cause the system to run out of memory. -// -// However, even in such a pathological case, only a single written chunk -// would be consumed, and then the rest would wait (un-transformed) until -// the results of the previous transformed chunk were consumed. - -'use strict'; - -module.exports = Transform; - -var Duplex = require('./_stream_duplex'); - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -util.inherits(Transform, Duplex); - -function TransformState(stream) { - this.afterTransform = function (er, data) { - return afterTransform(stream, er, data); - }; - - this.needTransform = false; - this.transforming = false; - this.writecb = null; - this.writechunk = null; - this.writeencoding = null; -} - -function afterTransform(stream, er, data) { - var ts = stream._transformState; - ts.transforming = false; - - var cb = ts.writecb; - - if (!cb) return stream.emit('error', new Error('no writecb in Transform class')); - - ts.writechunk = null; - ts.writecb = null; - - if (data !== null && data !== undefined) stream.push(data); - - cb(er); - - var rs = stream._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - stream._read(rs.highWaterMark); - } -} - -function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - - Duplex.call(this, options); - - this._transformState = new TransformState(this); - - var stream = this; - - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; - - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; - - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - - if (typeof options.flush === 'function') this._flush = options.flush; - } - - // When the writable side finishes, then flush out anything remaining. - this.once('prefinish', function () { - if (typeof this._flush === 'function') this._flush(function (er, data) { - done(stream, er, data); - });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('_transform() is 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, data) { - if (er) return stream.emit('error', er); - - if (data !== null && data !== undefined) stream.push(data); - - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - var ws = stream._writableState; - var ts = stream._transformState; - - if (ws.length) throw new Error('Calling transform done when ws.length != 0'); - - if (ts.transforming) throw new Error('Calling transform done when still transforming'); - - return stream.push(null); -} -},{"./_stream_duplex":84,"core-util-is":44,"inherits":66}],88:[function(require,module,exports){ -(function (process){ -// A bit simpler than readable streams. -// Implement an async ._write(chunk, encoding, cb), and it'll handle all -// the drain event emission and buffering. - -'use strict'; - -module.exports = Writable; - -/**/ -var processNextTick = require('process-nextick-args'); -/**/ - -/**/ -var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; -/**/ - -/**/ -var Duplex; -/**/ - -Writable.WritableState = WritableState; - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -/**/ -var internalUtil = { - deprecate: require('util-deprecate') -}; -/**/ - -/**/ -var Stream = require('./internal/streams/stream'); -/**/ - -/**/ -var Buffer = require('safe-buffer').Buffer; -/**/ - -util.inherits(Writable, Stream); - -function nop() {} - -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} - -function WritableState(options, stream) { - Duplex = Duplex || require('./_stream_duplex'); - - options = options || {}; - - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = ~~this.highWaterMark; - - // drain event flag. - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // when 'finish' is emitted - this.finished = false; - - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; - - // a flag to see when we're in the middle of a write. - this.writing = false; - - // when true all writes will be buffered until .uncork() call - this.corked = 0; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; - - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; - - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; - - // the amount that is being written when _write is called. - this.writelen = 0; - - this.bufferedRequest = null; - this.lastBufferedRequest = null; - - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; - - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; - - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; - - // count buffered requests - this.bufferedRequestCount = 0; - - // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); -} - -WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; - } - return out; -}; - -(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function () { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.') - }); - } catch (_) {} -})(); - -// Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. -var realHasInstance; -if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { - realHasInstance = Function.prototype[Symbol.hasInstance]; - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function (object) { - if (realHasInstance.call(this, object)) return true; - - return object && object._writableState instanceof WritableState; - } - }); -} else { - realHasInstance = function (object) { - return object instanceof this; - }; -} - -function Writable(options) { - Duplex = Duplex || require('./_stream_duplex'); - - // Writable ctor is applied to Duplexes, too. - // `realHasInstance` is necessary because using plain `instanceof` - // would return false, as no `_writableState` property is attached. - - // Trying to use the custom `instanceof` for Writable here will also break the - // Node.js LazyTransform implementation, which has a non-trivial getter for - // `_writableState` that would lead to infinite recursion. - if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { - return new Writable(options); - } - - this._writableState = new WritableState(options, this); - - // legacy. - this.writable = true; - - if (options) { - if (typeof options.write === 'function') this._write = options.write; - - if (typeof options.writev === 'function') this._writev = options.writev; - } - - Stream.call(this); -} - -// Otherwise people can pipe Writable streams, which is just wrong. -Writable.prototype.pipe = function () { - this.emit('error', new Error('Cannot pipe, not readable')); -}; - -function writeAfterEnd(stream, cb) { - var er = new Error('write after end'); - // TODO: defer error events consistently everywhere, not just the cb - stream.emit('error', er); - processNextTick(cb, er); -} - -// Checks that a user-supplied chunk is valid, especially for the particular -// mode the stream is in. Currently this means that `null` is never accepted -// and undefined/non-string values are only allowed in object mode. -function validChunk(stream, state, chunk, cb) { - var valid = true; - var er = false; - - if (chunk === null) { - er = new TypeError('May not write null values to stream'); - } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - if (er) { - stream.emit('error', er); - processNextTick(cb, er); - valid = false; - } - return valid; -} - -Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - var isBuf = Buffer.isBuffer(chunk); - - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - - if (typeof cb !== 'function') cb = nop; - - if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); - } - - return ret; -}; - -Writable.prototype.cork = function () { - var state = this._writableState; - - state.corked++; -}; - -Writable.prototype.uncork = function () { - var state = this._writableState; - - if (state.corked) { - state.corked--; - - if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } -}; - -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); - this._writableState.defaultEncoding = encoding; - return this; -}; - -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding); - } - return chunk; -} - -// if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. -function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - chunk = decodeChunk(state, chunk, encoding); - if (Buffer.isBuffer(chunk)) encoding = 'buffer'; - } - var len = state.objectMode ? 1 : chunk.length; - - state.length += len; - - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; - - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = new WriteReq(chunk, encoding, cb); - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } - - return ret; -} - -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; -} - -function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; - if (sync) processNextTick(cb, er);else cb(er); - - stream._writableState.errorEmitted = true; - stream.emit('error', er); -} - -function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; -} - -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - - onwriteStateUpdate(state); - - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state); - - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } - - if (sync) { - /**/ - asyncWrite(afterWrite, stream, state, finished, cb); - /**/ - } else { - afterWrite(stream, state, finished, cb); - } - } -} - -function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); -} - -// Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } -} - -// if there's something in the buffer waiting, then process it -function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; - - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - - var count = 0; - while (entry) { - buffer[count] = entry; - entry = entry.next; - count += 1; - } - - doWrite(stream, state, true, state.length, buffer, '', holder.finish); - - // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); - } - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; - } - } - - if (entry === null) state.lastBufferedRequest = null; - } - - state.bufferedRequestCount = 0; - state.bufferedRequest = entry; - state.bufferProcessing = false; -} - -Writable.prototype._write = function (chunk, encoding, cb) { - cb(new Error('_write() is not implemented')); -}; - -Writable.prototype._writev = null; - -Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); - } - - // ignore unnecessary end() calls. - if (!state.ending && !state.finished) endWritable(this, state, cb); -}; - -function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; -} - -function prefinish(stream, state) { - if (!state.prefinished) { - state.prefinished = true; - stream.emit('prefinish'); - } -} - -function finishMaybe(stream, state) { - var need = needFinish(state); - if (need) { - if (state.pendingcb === 0) { - prefinish(stream, state); - state.finished = true; - stream.emit('finish'); - } else { - prefinish(stream, state); - } - } - return need; -} - -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) processNextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; -} - -// It seems a linked list but it is not -// there will be only 2 of these for each stream -function CorkedRequest(state) { - var _this = this; - - this.next = null; - this.entry = null; - this.finish = function (err) { - var entry = _this.entry; - _this.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } - if (state.corkedRequestsFree) { - state.corkedRequestsFree.next = _this; - } else { - state.corkedRequestsFree = _this; - } - }; -} -}).call(this,require('_process')) -},{"./_stream_duplex":84,"./internal/streams/stream":90,"_process":82,"core-util-is":44,"inherits":66,"process-nextick-args":81,"safe-buffer":95,"util-deprecate":99}],89:[function(require,module,exports){ -'use strict'; - -/**/ - -var Buffer = require('safe-buffer').Buffer; -/**/ - -module.exports = BufferList; - -function BufferList() { - this.head = null; - this.tail = null; - this.length = 0; -} - -BufferList.prototype.push = function (v) { - var entry = { data: v, next: null }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; -}; - -BufferList.prototype.unshift = function (v) { - var entry = { data: v, next: this.head }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; -}; - -BufferList.prototype.shift = function () { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; -}; - -BufferList.prototype.clear = function () { - this.head = this.tail = null; - this.length = 0; -}; - -BufferList.prototype.join = function (s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; - while (p = p.next) { - ret += s + p.data; - }return ret; -}; - -BufferList.prototype.concat = function (n) { - if (this.length === 0) return Buffer.alloc(0); - if (this.length === 1) return this.head.data; - var ret = Buffer.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; - while (p) { - p.data.copy(ret, i); - i += p.data.length; - p = p.next; - } - return ret; -}; -},{"safe-buffer":95}],90:[function(require,module,exports){ -module.exports = require('events').EventEmitter; - -},{"events":62}],91:[function(require,module,exports){ -module.exports = require('./readable').PassThrough - -},{"./readable":92}],92:[function(require,module,exports){ -exports = module.exports = require('./lib/_stream_readable.js'); -exports.Stream = exports; -exports.Readable = exports; -exports.Writable = require('./lib/_stream_writable.js'); -exports.Duplex = require('./lib/_stream_duplex.js'); -exports.Transform = require('./lib/_stream_transform.js'); -exports.PassThrough = require('./lib/_stream_passthrough.js'); - -},{"./lib/_stream_duplex.js":84,"./lib/_stream_passthrough.js":85,"./lib/_stream_readable.js":86,"./lib/_stream_transform.js":87,"./lib/_stream_writable.js":88}],93:[function(require,module,exports){ -module.exports = require('./readable').Transform - -},{"./readable":92}],94:[function(require,module,exports){ -module.exports = require('./lib/_stream_writable.js'); - -},{"./lib/_stream_writable.js":88}],95:[function(require,module,exports){ -module.exports = require('buffer') - -},{"buffer":43}],96:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -module.exports = Stream; - -var EE = require('events').EventEmitter; -var inherits = require('inherits'); - -inherits(Stream, EE); -Stream.Readable = require('readable-stream/readable.js'); -Stream.Writable = require('readable-stream/writable.js'); -Stream.Duplex = require('readable-stream/duplex.js'); -Stream.Transform = require('readable-stream/transform.js'); -Stream.PassThrough = require('readable-stream/passthrough.js'); - -// Backwards-compat with node 0.4.x -Stream.Stream = Stream; - - - -// old-style streams. Note that the pipe method (the only relevant -// part of this class) is overridden in the Readable class. - -function Stream() { - EE.call(this); -} - -Stream.prototype.pipe = function(dest, options) { - var source = this; - - function ondata(chunk) { - if (dest.writable) { - if (false === dest.write(chunk) && source.pause) { - source.pause(); - } - } - } - - source.on('data', ondata); - - function ondrain() { - if (source.readable && source.resume) { - source.resume(); - } - } - - dest.on('drain', ondrain); - - // If the 'end' option is not supplied, dest.end() will be called when - // source gets the 'end' or 'close' events. Only dest.end() once. - if (!dest._isStdio && (!options || options.end !== false)) { - source.on('end', onend); - source.on('close', onclose); - } - - var didOnEnd = false; - function onend() { - if (didOnEnd) return; - didOnEnd = true; - - dest.end(); - } - - - function onclose() { - if (didOnEnd) return; - didOnEnd = true; - - if (typeof dest.destroy === 'function') dest.destroy(); - } - - // don't leave dangling pipes when there are errors. - function onerror(er) { - cleanup(); - if (EE.listenerCount(this, 'error') === 0) { - throw er; // Unhandled stream error in pipe. - } - } - - source.on('error', onerror); - dest.on('error', onerror); - - // remove all the event listeners that were added. - function cleanup() { - source.removeListener('data', ondata); - dest.removeListener('drain', ondrain); - - source.removeListener('end', onend); - source.removeListener('close', onclose); - - source.removeListener('error', onerror); - dest.removeListener('error', onerror); - - source.removeListener('end', cleanup); - source.removeListener('close', cleanup); - - dest.removeListener('close', cleanup); - } - - source.on('end', cleanup); - source.on('close', cleanup); - - dest.on('close', cleanup); - - dest.emit('pipe', source); - - // Allow for unix-like usage: A.pipe(B).pipe(C) - return dest; -}; - -},{"events":62,"inherits":66,"readable-stream/duplex.js":83,"readable-stream/passthrough.js":91,"readable-stream/readable.js":92,"readable-stream/transform.js":93,"readable-stream/writable.js":94}],97:[function(require,module,exports){ -'use strict'; - -var Buffer = require('safe-buffer').Buffer; - -var isEncoding = Buffer.isEncoding || function (encoding) { - encoding = '' + 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 _normalizeEncoding(enc) { - if (!enc) return 'utf8'; - var retried; - while (true) { - switch (enc) { - case 'utf8': - case 'utf-8': - return 'utf8'; - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return 'utf16le'; - case 'latin1': - case 'binary': - return 'latin1'; - case 'base64': - case 'ascii': - case 'hex': - return enc; - default: - if (retried) return; // undefined - enc = ('' + enc).toLowerCase(); - retried = true; - } - } -}; - -// Do not cache `Buffer.isEncoding` when checking encoding names as some -// modules monkey-patch it to support additional encodings -function normalizeEncoding(enc) { - var nenc = _normalizeEncoding(enc); - if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); - return nenc || enc; -} - -// StringDecoder provides an interface for efficiently splitting a series of -// buffers into a series of JS strings without breaking apart multi-byte -// characters. -exports.StringDecoder = StringDecoder; -function StringDecoder(encoding) { - this.encoding = normalizeEncoding(encoding); - var nb; - switch (this.encoding) { - case 'utf16le': - this.text = utf16Text; - this.end = utf16End; - nb = 4; - break; - case 'utf8': - this.fillLast = utf8FillLast; - nb = 4; - break; - case 'base64': - this.text = base64Text; - this.end = base64End; - nb = 3; - break; - default: - this.write = simpleWrite; - this.end = simpleEnd; - return; - } - this.lastNeed = 0; - this.lastTotal = 0; - this.lastChar = Buffer.allocUnsafe(nb); -} - -StringDecoder.prototype.write = function (buf) { - if (buf.length === 0) return ''; - var r; - var i; - if (this.lastNeed) { - r = this.fillLast(buf); - if (r === undefined) return ''; - i = this.lastNeed; - this.lastNeed = 0; - } else { - i = 0; - } - if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); - return r || ''; -}; - -StringDecoder.prototype.end = utf8End; - -// Returns only complete characters in a Buffer -StringDecoder.prototype.text = utf8Text; - -// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer -StringDecoder.prototype.fillLast = function (buf) { - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); - return this.lastChar.toString(this.encoding, 0, this.lastTotal); - } - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); - this.lastNeed -= buf.length; -}; - -// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a -// continuation byte. -function utf8CheckByte(byte) { - if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4; - return -1; -} - -// Checks at most 3 bytes at the end of a Buffer in order to detect an -// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) -// needed to complete the UTF-8 character (if applicable) are returned. -function utf8CheckIncomplete(self, buf, i) { - var j = buf.length - 1; - if (j < i) return 0; - var nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 1; - return nb; - } - if (--j < i) return 0; - nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 2; - return nb; - } - if (--j < i) return 0; - nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) { - if (nb === 2) nb = 0;else self.lastNeed = nb - 3; - } - return nb; - } - return 0; -} - -// Validates as many continuation bytes for a multi-byte UTF-8 character as -// needed or are available. If we see a non-continuation byte where we expect -// one, we "replace" the validated continuation bytes we've seen so far with -// UTF-8 replacement characters ('\ufffd'), to match v8's UTF-8 decoding -// behavior. The continuation byte check is included three times in the case -// where all of the continuation bytes for a character exist in the same buffer. -// It is also done this way as a slight performance increase instead of using a -// loop. -function utf8CheckExtraBytes(self, buf, p) { - if ((buf[0] & 0xC0) !== 0x80) { - self.lastNeed = 0; - return '\ufffd'.repeat(p); - } - if (self.lastNeed > 1 && buf.length > 1) { - if ((buf[1] & 0xC0) !== 0x80) { - self.lastNeed = 1; - return '\ufffd'.repeat(p + 1); - } - if (self.lastNeed > 2 && buf.length > 2) { - if ((buf[2] & 0xC0) !== 0x80) { - self.lastNeed = 2; - return '\ufffd'.repeat(p + 2); - } - } - } -} - -// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. -function utf8FillLast(buf) { - var p = this.lastTotal - this.lastNeed; - var r = utf8CheckExtraBytes(this, buf, p); - if (r !== undefined) return r; - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, p, 0, this.lastNeed); - return this.lastChar.toString(this.encoding, 0, this.lastTotal); - } - buf.copy(this.lastChar, p, 0, buf.length); - this.lastNeed -= buf.length; -} - -// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a -// partial character, the character's bytes are buffered until the required -// number of bytes are available. -function utf8Text(buf, i) { - var total = utf8CheckIncomplete(this, buf, i); - if (!this.lastNeed) return buf.toString('utf8', i); - this.lastTotal = total; - var end = buf.length - (total - this.lastNeed); - buf.copy(this.lastChar, 0, end); - return buf.toString('utf8', i, end); -} - -// For UTF-8, a replacement character for each buffered byte of a (partial) -// character needs to be added to the output. -function utf8End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed); - return r; -} - -// UTF-16LE typically needs two bytes per character, but even if we have an even -// number of bytes available, we need to check if we end on a leading/high -// surrogate. In that case, we need to wait for the next two bytes in order to -// decode the last character properly. -function utf16Text(buf, i) { - if ((buf.length - i) % 2 === 0) { - var r = buf.toString('utf16le', i); - if (r) { - var c = r.charCodeAt(r.length - 1); - if (c >= 0xD800 && c <= 0xDBFF) { - this.lastNeed = 2; - this.lastTotal = 4; - this.lastChar[0] = buf[buf.length - 2]; - this.lastChar[1] = buf[buf.length - 1]; - return r.slice(0, -1); - } - } - return r; - } - this.lastNeed = 1; - this.lastTotal = 2; - this.lastChar[0] = buf[buf.length - 1]; - return buf.toString('utf16le', i, buf.length - 1); -} - -// For UTF-16LE we do not explicitly append special replacement characters if we -// end on a partial character, we simply let v8 handle that. -function utf16End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) { - var end = this.lastTotal - this.lastNeed; - return r + this.lastChar.toString('utf16le', 0, end); - } - return r; -} - -function base64Text(buf, i) { - var n = (buf.length - i) % 3; - if (n === 0) return buf.toString('base64', i); - this.lastNeed = 3 - n; - this.lastTotal = 3; - if (n === 1) { - this.lastChar[0] = buf[buf.length - 1]; - } else { - this.lastChar[0] = buf[buf.length - 2]; - this.lastChar[1] = buf[buf.length - 1]; - } - return buf.toString('base64', i, buf.length - n); -} - -function base64End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); - return r; -} - -// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) -function simpleWrite(buf) { - return buf.toString(this.encoding); -} - -function simpleEnd(buf) { - return buf && buf.length ? this.write(buf) : ''; -} -},{"safe-buffer":98}],98:[function(require,module,exports){ -/* eslint-disable node/no-deprecated-api */ -var buffer = require('buffer') -var Buffer = buffer.Buffer - -// alternative to using Object.keys for old browsers -function copyProps (src, dst) { - for (var key in src) { - dst[key] = src[key] - } -} -if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { - module.exports = buffer -} else { - // Copy properties from require('buffer') - copyProps(buffer, exports) - exports.Buffer = SafeBuffer -} - -function SafeBuffer (arg, encodingOrOffset, length) { - return Buffer(arg, encodingOrOffset, length) -} - -// Copy static methods from Buffer -copyProps(Buffer, SafeBuffer) - -SafeBuffer.from = function (arg, encodingOrOffset, length) { - if (typeof arg === 'number') { - throw new TypeError('Argument must not be a number') - } - return Buffer(arg, encodingOrOffset, length) -} - -SafeBuffer.alloc = function (size, fill, encoding) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - var buf = Buffer(size) - if (fill !== undefined) { - if (typeof encoding === 'string') { - buf.fill(fill, encoding) - } else { - buf.fill(fill) - } - } else { - buf.fill(0) - } - return buf -} - -SafeBuffer.allocUnsafe = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - return Buffer(size) -} - -SafeBuffer.allocUnsafeSlow = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - return buffer.SlowBuffer(size) -} - -},{"buffer":43}],99:[function(require,module,exports){ -(function (global){ - -/** - * Module exports. - */ - -module.exports = deprecate; - -/** - * Mark that a method should not be used. - * Returns a modified function which warns once by default. - * - * If `localStorage.noDeprecation = true` is set, then it is a no-op. - * - * If `localStorage.throwDeprecation = true` is set, then deprecated functions - * will throw an Error when invoked. - * - * If `localStorage.traceDeprecation = true` is set, then deprecated functions - * will invoke `console.trace()` instead of `console.error()`. - * - * @param {Function} fn - the function to deprecate - * @param {String} msg - the string to print to the console when `fn` is invoked - * @returns {Function} a new "deprecated" version of `fn` - * @api public - */ - -function deprecate (fn, msg) { - if (config('noDeprecation')) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (config('throwDeprecation')) { - throw new Error(msg); - } else if (config('traceDeprecation')) { - console.trace(msg); - } else { - console.warn(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -} - -/** - * Checks `localStorage` for boolean values for the given `name`. - * - * @param {String} name - * @returns {Boolean} - * @api private - */ - -function config (name) { - // accessing global.localStorage can trigger a DOMException in sandboxed iframes - try { - if (!global.localStorage) return false; - } catch (_) { - return false; - } - var val = global.localStorage[name]; - if (null == val) return false; - return String(val).toLowerCase() === 'true'; -} - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],100:[function(require,module,exports){ -arguments[4][66][0].apply(exports,arguments) -},{"dup":66}],101:[function(require,module,exports){ -module.exports = function isBuffer(arg) { - return arg && typeof arg === 'object' - && typeof arg.copy === 'function' - && typeof arg.fill === 'function' - && typeof arg.readUInt8 === 'function'; -} -},{}],102:[function(require,module,exports){ -(function (process,global){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -var formatRegExp = /%[sdj%]/g; -exports.format = function(f) { - if (!isString(f)) { - var objects = []; - for (var i = 0; i < arguments.length; i++) { - objects.push(inspect(arguments[i])); - } - return objects.join(' '); - } - - var i = 1; - var args = arguments; - var len = args.length; - var str = String(f).replace(formatRegExp, function(x) { - if (x === '%%') return '%'; - if (i >= len) return x; - switch (x) { - case '%s': return String(args[i++]); - case '%d': return Number(args[i++]); - case '%j': - try { - return JSON.stringify(args[i++]); - } catch (_) { - return '[Circular]'; - } - default: - return x; - } - }); - for (var x = args[i]; i < len; x = args[++i]) { - if (isNull(x) || !isObject(x)) { - str += ' ' + x; - } else { - str += ' ' + inspect(x); - } - } - return str; -}; - - -// Mark that a method should not be used. -// Returns a modified function which warns once by default. -// If --no-deprecation is set, then it is a no-op. -exports.deprecate = function(fn, msg) { - // Allow for deprecating things in the process of starting up. - if (isUndefined(global.process)) { - return function() { - return exports.deprecate(fn, msg).apply(this, arguments); - }; - } - - if (process.noDeprecation === true) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (process.throwDeprecation) { - throw new Error(msg); - } else if (process.traceDeprecation) { - console.trace(msg); - } else { - console.error(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -}; - - -var debugs = {}; -var debugEnviron; -exports.debuglog = function(set) { - if (isUndefined(debugEnviron)) - debugEnviron = process.env.NODE_DEBUG || ''; - set = set.toUpperCase(); - if (!debugs[set]) { - if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { - var pid = process.pid; - debugs[set] = function() { - var msg = exports.format.apply(exports, arguments); - console.error('%s %d: %s', set, pid, msg); - }; - } else { - debugs[set] = function() {}; - } - } - return debugs[set]; -}; - - -/** - * Echos the value of a value. Trys to print the value out - * in the best way possible given the different types. - * - * @param {Object} obj The object to print out. - * @param {Object} opts Optional options object that alters the output. - */ -/* legacy: obj, showHidden, depth, colors*/ -function inspect(obj, opts) { - // default options - var ctx = { - seen: [], - stylize: stylizeNoColor - }; - // legacy... - if (arguments.length >= 3) ctx.depth = arguments[2]; - if (arguments.length >= 4) ctx.colors = arguments[3]; - if (isBoolean(opts)) { - // legacy... - ctx.showHidden = opts; - } else if (opts) { - // got an "options" object - exports._extend(ctx, opts); - } - // set default options - if (isUndefined(ctx.showHidden)) ctx.showHidden = false; - if (isUndefined(ctx.depth)) ctx.depth = 2; - if (isUndefined(ctx.colors)) ctx.colors = false; - if (isUndefined(ctx.customInspect)) ctx.customInspect = true; - if (ctx.colors) ctx.stylize = stylizeWithColor; - return formatValue(ctx, obj, ctx.depth); -} -exports.inspect = inspect; - - -// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics -inspect.colors = { - 'bold' : [1, 22], - 'italic' : [3, 23], - 'underline' : [4, 24], - 'inverse' : [7, 27], - 'white' : [37, 39], - 'grey' : [90, 39], - 'black' : [30, 39], - 'blue' : [34, 39], - 'cyan' : [36, 39], - 'green' : [32, 39], - 'magenta' : [35, 39], - 'red' : [31, 39], - 'yellow' : [33, 39] -}; - -// Don't use 'blue' not visible on cmd.exe -inspect.styles = { - 'special': 'cyan', - 'number': 'yellow', - 'boolean': 'yellow', - 'undefined': 'grey', - 'null': 'bold', - 'string': 'green', - 'date': 'magenta', - // "name": intentionally not styling - 'regexp': 'red' -}; - - -function stylizeWithColor(str, styleType) { - var style = inspect.styles[styleType]; - - if (style) { - return '\u001b[' + inspect.colors[style][0] + 'm' + str + - '\u001b[' + inspect.colors[style][1] + 'm'; - } else { - return str; - } -} - - -function stylizeNoColor(str, styleType) { - return str; -} - - -function arrayToHash(array) { - var hash = {}; - - array.forEach(function(val, idx) { - hash[val] = true; - }); - - return hash; -} - - -function formatValue(ctx, value, recurseTimes) { - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (ctx.customInspect && - value && - isFunction(value.inspect) && - // Filter out the util module, it's inspect function is special - value.inspect !== exports.inspect && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - var ret = value.inspect(recurseTimes, ctx); - if (!isString(ret)) { - ret = formatValue(ctx, ret, recurseTimes); - } - return ret; - } - - // Primitive types cannot have properties - var primitive = formatPrimitive(ctx, value); - if (primitive) { - return primitive; - } - - // Look up the keys of the object. - var keys = Object.keys(value); - var visibleKeys = arrayToHash(keys); - - if (ctx.showHidden) { - keys = Object.getOwnPropertyNames(value); - } - - // IE doesn't make error fields non-enumerable - // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx - if (isError(value) - && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { - return formatError(value); - } - - // Some type of object without properties can be shortcutted. - if (keys.length === 0) { - if (isFunction(value)) { - var name = value.name ? ': ' + value.name : ''; - return ctx.stylize('[Function' + name + ']', 'special'); - } - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } - if (isDate(value)) { - return ctx.stylize(Date.prototype.toString.call(value), 'date'); - } - if (isError(value)) { - return formatError(value); - } - } - - var base = '', array = false, braces = ['{', '}']; - - // Make Array say that they are Array - if (isArray(value)) { - array = true; - braces = ['[', ']']; - } - - // Make functions say that they are functions - if (isFunction(value)) { - var n = value.name ? ': ' + value.name : ''; - base = ' [Function' + n + ']'; - } - - // Make RegExps say that they are RegExps - if (isRegExp(value)) { - base = ' ' + RegExp.prototype.toString.call(value); - } - - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + Date.prototype.toUTCString.call(value); - } - - // Make error with message first say the error - if (isError(value)) { - base = ' ' + formatError(value); - } - - if (keys.length === 0 && (!array || value.length == 0)) { - return braces[0] + base + braces[1]; - } - - if (recurseTimes < 0) { - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } else { - return ctx.stylize('[Object]', 'special'); - } - } - - ctx.seen.push(value); - - var output; - if (array) { - output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); - } else { - output = keys.map(function(key) { - return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); - }); - } - - ctx.seen.pop(); - - return reduceToSingleString(output, base, braces); -} - - -function formatPrimitive(ctx, value) { - if (isUndefined(value)) - return ctx.stylize('undefined', 'undefined'); - if (isString(value)) { - var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') + '\''; - return ctx.stylize(simple, 'string'); - } - if (isNumber(value)) - return ctx.stylize('' + value, 'number'); - if (isBoolean(value)) - return ctx.stylize('' + value, 'boolean'); - // For some reason typeof null is "object", so special case here. - if (isNull(value)) - return ctx.stylize('null', 'null'); -} - - -function formatError(value) { - return '[' + Error.prototype.toString.call(value) + ']'; -} - - -function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { - var output = []; - for (var i = 0, l = value.length; i < l; ++i) { - if (hasOwnProperty(value, String(i))) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - String(i), true)); - } else { - output.push(''); - } - } - keys.forEach(function(key) { - if (!key.match(/^\d+$/)) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - key, true)); - } - }); - return output; -} - - -function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { - var name, str, desc; - desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; - if (desc.get) { - if (desc.set) { - str = ctx.stylize('[Getter/Setter]', 'special'); - } else { - str = ctx.stylize('[Getter]', 'special'); - } - } else { - if (desc.set) { - str = ctx.stylize('[Setter]', 'special'); - } - } - if (!hasOwnProperty(visibleKeys, key)) { - name = '[' + key + ']'; - } - if (!str) { - if (ctx.seen.indexOf(desc.value) < 0) { - if (isNull(recurseTimes)) { - str = formatValue(ctx, desc.value, null); - } else { - str = formatValue(ctx, desc.value, recurseTimes - 1); - } - if (str.indexOf('\n') > -1) { - if (array) { - str = str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n').substr(2); - } else { - str = '\n' + str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n'); - } - } - } else { - str = ctx.stylize('[Circular]', 'special'); - } - } - if (isUndefined(name)) { - if (array && key.match(/^\d+$/)) { - return str; - } - name = JSON.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); - name = ctx.stylize(name, 'name'); - } else { - name = name.replace(/'/g, "\\'") - .replace(/\\"/g, '"') - .replace(/(^"|"$)/g, "'"); - name = ctx.stylize(name, 'string'); - } - } - - return name + ': ' + str; -} - - -function reduceToSingleString(output, base, braces) { - var numLinesEst = 0; - var length = output.reduce(function(prev, cur) { - numLinesEst++; - if (cur.indexOf('\n') >= 0) numLinesEst++; - return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; - }, 0); - - if (length > 60) { - return braces[0] + - (base === '' ? '' : base + '\n ') + - ' ' + - output.join(',\n ') + - ' ' + - braces[1]; - } - - return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; -} - - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -function isArray(ar) { - return Array.isArray(ar); -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = require('./support/isBuffer'); - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - - -function pad(n) { - return n < 10 ? '0' + n.toString(10) : n.toString(10); -} - - -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec']; - -// 26 Feb 16:19:34 -function timestamp() { - var d = new Date(); - var time = [pad(d.getHours()), - pad(d.getMinutes()), - pad(d.getSeconds())].join(':'); - return [d.getDate(), months[d.getMonth()], time].join(' '); -} - - -// log is just a thin wrapper to console.log that prepends a timestamp -exports.log = function() { - console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); -}; - - -/** - * Inherit the prototype methods from one constructor into another. - * - * The Function.prototype.inherits from lang.js rewritten as a standalone - * function (not on Function.prototype). NOTE: If this file is to be loaded - * during bootstrapping this function needs to be rewritten using some native - * functions as prototype setup using normal JavaScript does not work as - * expected during bootstrapping (see mirror.js in r114903). - * - * @param {function} ctor Constructor function which needs to inherit the - * prototype. - * @param {function} superCtor Constructor function to inherit prototype from. - */ -exports.inherits = require('inherits'); - -exports._extend = function(origin, add) { - // Don't do anything if add isn't an object - if (!add || !isObject(add)) return origin; - - var keys = Object.keys(add); - var i = keys.length; - while (i--) { - origin[keys[i]] = add[keys[i]]; - } - return origin; -}; - -function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); -} - -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./support/isBuffer":101,"_process":82,"inherits":100}]},{},[1]); diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/.bower.json b/node_modules/@polymer/polymer/bower_components/paper-behaviors/.bower.json deleted file mode 100644 index cee5368b..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/.bower.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "name": "paper-behaviors", - "version": "2.1.0", - "description": "Common behaviors across the paper elements", - "authors": [ - "The Polymer Authors" - ], - "main": [ - "paper-button-behavior.html", - "paper-checked-element-behavior.html", - "paper-inky-focus-behavior.html" - ], - "keywords": [ - "web-components", - "web-component", - "polymer", - "paper", - "behavior" - ], - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-behaviors" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-behaviors", - "dependencies": { - "iron-behaviors": "PolymerElements/iron-behaviors#1 - 2", - "iron-checked-element-behavior": "PolymerElements/iron-checked-element-behavior#1 - 2", - "paper-ripple": "PolymerElements/paper-ripple#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#1 - 2", - "iron-test-helpers": "polymerelements/iron-test-helpers#1 - 2", - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "ignore": [], - "variants": { - "1.x": { - "dependencies": { - "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", - "iron-checked-element-behavior": "PolymerElements/iron-checked-element-behavior#^1.0.0", - "paper-ripple": "PolymerElements/paper-ripple#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "_release": "2.1.0", - "_resolution": { - "type": "version", - "tag": "v2.1.0", - "commit": "ddde7f8cf41078b7a7b724473558421d6bc37f57" - }, - "_source": "https://github.com/PolymerElements/paper-behaviors.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/paper-behaviors" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/paper-behaviors/.github/CODEOWNERS deleted file mode 100644 index c5097c0c..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @valdrinkoshi -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/paper-behaviors/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 0a145b76..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/.travis.yml b/node_modules/@polymer/polymer/bower_components/paper-behaviors/.travis.yml deleted file mode 100644 index b61424af..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/.travis.yml +++ /dev/null @@ -1,32 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g bower polymer-cli@next - - polymer install --variants - - sudo mv /usr/bin/google-chrome /usr/bin/google-chrome-old - - sudo mv /usr/bin/google-chrome-beta /usr/bin/google-chrome - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -env: - global: - - secure: >- - TYkyKHfqK31bPGX+x388nfvBWtoGhD7lwYYLdunZi2pwvR2N3ngzblklwK/ADgYVDC0y+lZaJsrODvQW2cUxVdQP8p+DifXoOig5b8S2H7HFFFf83gaXv0SJ50rIaKLQmXfBdI0ICFzeQOeJ9TlKvtF3/yn/LDpYftuzgbXIyp4= - - secure: >- - eUlJabqBW3P+MRieHvRcr446jhpV2YYRfZasOh3zh2vkAVsi5R5mPJXVBwk6xP4tdNPbRo0M3boKnMHjoK8AgFolxQwXpVaoOt/oiFUsBFIUNcwKnSdfnadQa6ON5VoDmPd9UhDwES/gq7i906XkV/1jwRKKhPkx1DCyCBfuTvM= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-beta - sauce_connect: true -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/paper-behaviors/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/README.md b/node_modules/@polymer/polymer/bower_components/paper-behaviors/README.md deleted file mode 100644 index 43475db7..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/README.md +++ /dev/null @@ -1,44 +0,0 @@ - - - -[![Build status](https://travis-ci.org/PolymerElements/paper-behaviors.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-behaviors) - -_[Demo and API docs](https://elements.polymer-project.org/elements/paper-behaviors)_ - - - - -##Polymer.PaperCheckedElementBehavior - -Use `Polymer.PaperCheckedElementBehavior` to implement a custom element -that has a `checked` property similar to `Polymer.IronCheckedElementBehavior` -and is compatible with having a ripple effect. - - - -##Polymer.PaperInkyFocusBehavior - -`Polymer.PaperInkyFocusBehavior` implements a ripple when the element has keyboard focus. - - - -##Polymer.PaperRippleBehavior - -`Polymer.PaperRippleBehavior` dynamically implements a ripple -when the element has focus via pointer or keyboard. - -NOTE: This behavior is intended to be used in conjunction with and after -`Polymer.IronButtonState` and `Polymer.IronControlState`. - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/bower.json b/node_modules/@polymer/polymer/bower_components/paper-behaviors/bower.json deleted file mode 100644 index 0846138a..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/bower.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "name": "paper-behaviors", - "version": "2.1.0", - "description": "Common behaviors across the paper elements", - "authors": [ - "The Polymer Authors" - ], - "main": [ - "paper-button-behavior.html", - "paper-checked-element-behavior.html", - "paper-inky-focus-behavior.html" - ], - "keywords": [ - "web-components", - "web-component", - "polymer", - "paper", - "behavior" - ], - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-behaviors" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-behaviors", - "dependencies": { - "iron-behaviors": "PolymerElements/iron-behaviors#1 - 2", - "iron-checked-element-behavior": "PolymerElements/iron-checked-element-behavior#1 - 2", - "paper-ripple": "PolymerElements/paper-ripple#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#1 - 2", - "iron-test-helpers": "polymerelements/iron-test-helpers#1 - 2", - "paper-styles": "PolymerElements/paper-styles#1 - 2", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "ignore": [], - "variants": { - "1.x": { - "dependencies": { - "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", - "iron-checked-element-behavior": "PolymerElements/iron-checked-element-behavior#^1.0.0", - "paper-ripple": "PolymerElements/paper-ripple#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/demo/index.html b/node_modules/@polymer/polymer/bower_components/paper-behaviors/demo/index.html deleted file mode 100644 index 0303fefc..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/demo/index.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - paper-behaviors demo - - - - - - - - - -

      Normal

      - Hello World - -

      Toggles

      - Hello World - -

      Disabled

      - Hello World - -

      Radio button with focus state

      - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/demo/paper-button.html b/node_modules/@polymer/polymer/bower_components/paper-behaviors/demo/paper-button.html deleted file mode 100644 index 8cab001c..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/demo/paper-button.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/demo/paper-radio-button.html b/node_modules/@polymer/polymer/bower_components/paper-behaviors/demo/paper-radio-button.html deleted file mode 100644 index d8b01e77..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/demo/paper-radio-button.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/index.html b/node_modules/@polymer/polymer/bower_components/paper-behaviors/index.html deleted file mode 100644 index 37184eaa..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/package.json b/node_modules/@polymer/polymer/bower_components/paper-behaviors/package.json deleted file mode 100644 index 6f0a4011..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/paper-behaviors", - "private": true, - "description": "Common behaviors across the paper elements", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-behaviors" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-button-behavior.d.ts b/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-button-behavior.d.ts deleted file mode 100644 index d0ed2566..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-button-behavior.d.ts +++ /dev/null @@ -1,47 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * paper-button-behavior.html - */ - -/// -/// -/// - -declare namespace Polymer { - - interface PaperButtonBehavior extends Polymer.IronButtonState, Polymer.IronControlState, Polymer.PaperRippleBehavior { - - /** - * The z-depth of this element, from 0-5. Setting to 0 will remove the - * shadow, and each increasing number greater than 0 will be "deeper" - * than the last. - */ - readonly elevation: number|null|undefined; - hostAttributes: object|null; - - /** - * In addition to `IronButtonState` behavior, when space key goes down, - * create a ripple down effect. - * - * @param event . - */ - _spaceKeyDownHandler(event: KeyboardEvent): void; - - /** - * In addition to `IronButtonState` behavior, when space key goes up, - * create a ripple up effect. - * - * @param event . - */ - _spaceKeyUpHandler(event: KeyboardEvent): void; - _calculateElevation(): void; - _computeKeyboardClass(receivedFocusFromKeyboard: any): void; - } - - const PaperButtonBehavior: object; -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-button-behavior.html b/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-button-behavior.html deleted file mode 100644 index c4d13302..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-button-behavior.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-checked-element-behavior.d.ts b/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-checked-element-behavior.d.ts deleted file mode 100644 index 1c28837b..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-checked-element-behavior.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * paper-checked-element-behavior.html - */ - -/// -/// -/// - -declare namespace Polymer { - - /** - * Use `Polymer.PaperCheckedElementBehavior` to implement a custom element - * that has a `checked` property similar to `Polymer.IronCheckedElementBehavior` - * and is compatible with having a ripple effect. - */ - interface PaperCheckedElementBehavior extends Polymer.PaperInkyFocusBehavior, Polymer.IronCheckedElementBehavior { - - /** - * Synchronizes the element's `active` and `checked` state. - */ - _buttonStateChanged(): void; - - /** - * Synchronizes the element's checked state with its ripple effect. - */ - _checkedChanged(): void; - } - - const PaperCheckedElementBehavior: object; -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-checked-element-behavior.html b/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-checked-element-behavior.html deleted file mode 100644 index 79812a66..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-checked-element-behavior.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-inky-focus-behavior.d.ts b/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-inky-focus-behavior.d.ts deleted file mode 100644 index 09afb914..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-inky-focus-behavior.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * paper-inky-focus-behavior.html - */ - -/// -/// -/// - -declare namespace Polymer { - - /** - * `Polymer.PaperInkyFocusBehavior` implements a ripple when the element has keyboard focus. - */ - interface PaperInkyFocusBehavior extends Polymer.IronButtonState, Polymer.IronControlState, Polymer.PaperRippleBehavior { - _createRipple(): any; - _focusedChanged(receivedFocusFromKeyboard: any): void; - } - - const PaperInkyFocusBehavior: object; -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-inky-focus-behavior.html b/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-inky-focus-behavior.html deleted file mode 100644 index 3ecb9ac1..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-inky-focus-behavior.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-ripple-behavior.d.ts b/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-ripple-behavior.d.ts deleted file mode 100644 index ede7a9f2..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-ripple-behavior.d.ts +++ /dev/null @@ -1,78 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * paper-ripple-behavior.html - */ - -/// -/// -/// - -declare namespace Polymer { - - /** - * `Polymer.PaperRippleBehavior` dynamically implements a ripple - * when the element has focus via pointer or keyboard. - * - * NOTE: This behavior is intended to be used in conjunction with and after - * `Polymer.IronButtonState` and `Polymer.IronControlState`. - */ - interface PaperRippleBehavior { - - /** - * If true, the element will not produce a ripple effect when interacted - * with via the pointer. - */ - noink: boolean|null|undefined; - _rippleContainer: Element|null|undefined; - - /** - * Ensures a `` element is available when the element is - * focused. - */ - _buttonStateChanged(): void; - - /** - * In addition to the functionality provided in `IronButtonState`, ensures - * a ripple effect is created when the element is in a `pressed` state. - */ - _downHandler(event: any): void; - - /** - * Ensures this element contains a ripple effect. For startup efficiency - * the ripple effect is dynamically on demand when needed. - * - * @param optTriggeringEvent (optional) event that triggered the - * ripple. - */ - ensureRipple(optTriggeringEvent?: Event): void; - - /** - * Returns the `` element used by this element to create - * ripple effects. The element's ripple is created on demand, when - * necessary, and calling this method will force the - * ripple to be created. - */ - getRipple(): any; - - /** - * Returns true if this element currently contains a ripple effect. - */ - hasRipple(): boolean; - - /** - * Create the element's ripple effect via creating a ``. - * Override this method to customize the ripple element. - * - * @returns Returns a `` element. - */ - _createRipple(): PaperRippleElement; - _noinkChanged(noink: any): void; - } - - const PaperRippleBehavior: object; -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-ripple-behavior.html b/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-ripple-behavior.html deleted file mode 100644 index 1814fd41..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/paper-ripple-behavior.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/index.html b/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/index.html deleted file mode 100644 index b16a9b40..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/index.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/paper-button-behavior.html b/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/paper-button-behavior.html deleted file mode 100644 index ff859252..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/paper-button-behavior.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - paper-button-behavior - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/paper-checked-element-behavior.html b/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/paper-checked-element-behavior.html deleted file mode 100644 index 363cf4c7..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/paper-checked-element-behavior.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - paper-checked-element-behavior - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/paper-radio-button-behavior.html b/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/paper-radio-button-behavior.html deleted file mode 100644 index 0418057d..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/paper-radio-button-behavior.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - paper-radio-button-behavior - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/paper-ripple-behavior.html b/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/paper-ripple-behavior.html deleted file mode 100644 index d7f5432a..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/paper-ripple-behavior.html +++ /dev/null @@ -1,336 +0,0 @@ - - - - - - paper-ripple-behavior - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/shadowed-ripple.html b/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/shadowed-ripple.html deleted file mode 100644 index dcf46385..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/shadowed-ripple.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/test-button.html b/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/test-button.html deleted file mode 100644 index d3a5528b..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/test-button.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/test-radio-button.html b/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/test-radio-button.html deleted file mode 100644 index 945a08e1..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-behaviors/test/test-radio-button.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/.bower.json b/node_modules/@polymer/polymer/bower_components/paper-icon-button/.bower.json deleted file mode 100644 index 054f20df..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/.bower.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "name": "paper-icon-button", - "private": true, - "version": "2.2.0", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "A material design icon button", - "main": [ - "paper-icon-button.html" - ], - "author": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "button", - "icon", - "control" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-icon-button.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2", - "iron-icon": "PolymerElements/iron-icon#1 - 2", - "paper-behaviors": "PolymerElements/paper-behaviors#1 - 2", - "paper-styles": "PolymerElements/paper-styles#1 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "iron-icons": "PolymerElements/iron-icons#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "ignore": [], - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9", - "iron-icon": "PolymerElements/iron-icon#^1.0.0", - "paper-behaviors": "PolymerElements/paper-behaviors#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "iron-icons": "PolymerElements/iron-icons#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "homepage": "https://github.com/PolymerElements/paper-icon-button", - "_release": "2.2.0", - "_resolution": { - "type": "version", - "tag": "v2.2.0", - "commit": "bb7d6980b48866c63cd9466d155a8beabc8058d9" - }, - "_source": "https://github.com/PolymerElements/paper-icon-button.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/paper-icon-button" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/paper-icon-button/.github/CODEOWNERS deleted file mode 100644 index cc86f1ec..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @notwaldorf -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/paper-icon-button/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index c80193d9..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/.travis.yml b/node_modules/@polymer/polymer/bower_components/paper-icon-button/.travis.yml deleted file mode 100644 index 3f775b36..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/.travis.yml +++ /dev/null @@ -1,30 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -env: - global: - - secure: >- - HdHTMNdAamEtP+Nl5/mL2X7IKba4p2+ljpDSnvkA6gyoLzrWRZAyUjJxGjVRutQejTa8ZLOGXnBYKugSIMrGv8cblvngbhEmIHd2HBnPjd140KNwtsCtzPRDMdJMrvekVOXgpCkecmGq9G/j0WOoOnYY9oJrHB5dFy0y7LfPy6w= - - secure: >- - XjZRR/HW23UneacknoaYle/dg2Diupr9p9UOWLR7w6ejvwIP99nUF0Bh4trZkUiXBBt29HOBoETwBTMizDHNg8vKe544EgR26Fq4Lwk5EuEHy3xeyroiHlwc56ZC9Obye1kdM3QjU6rzJ7F9NuRL2E0ttgZjt/OnM+vKx3kqGOY= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/paper-icon-button/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/README.md b/node_modules/@polymer/polymer/bower_components/paper-icon-button/README.md deleted file mode 100644 index 0fe349c4..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/README.md +++ /dev/null @@ -1,92 +0,0 @@ - - - -[![Build status](https://travis-ci.org/PolymerElements/paper-icon-button.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-icon-button) - -_[Demo and API docs](https://elements.polymer-project.org/elements/paper-icon-button)_ - - -## <paper-icon-button> - -Material design: [Icon toggles](https://www.google.com/design/spec/components/buttons.html#buttons-toggle-buttons) - -`paper-icon-button` is a button with an image placed at the center. When the user touches -the button, a ripple effect emanates from the center of the button. - -`paper-icon-button` does not include a default icon set. To use icons from the default -set, include `PolymerElements/iron-icons/iron-icons.html`, and use the `icon` attribute to specify which icon -from the icon set to use. - - -```html - - - -``` - -See [`iron-iconset`](https://github.com/PolymerElements/iron-iconset) for more information about -how to use a custom icon set. - -Example: - -```html - - - - -``` - -To use `paper-icon-button` as a link, wrap it in an anchor tag. Since `paper-icon-button` -will already receive focus, you may want to prevent the anchor tag from receiving focus -as well by setting its tabindex to -1. - -```html - - - -``` - -### Styling - -Style the button with CSS as you would a normal DOM element. If you are using the icons -provided by `iron-icons`, they will inherit the foreground color of the button. - -```html -/* make a red "favorite" button */ - -``` - -By default, the ripple is the same color as the foreground at 25% opacity. You may -customize the color using the `--paper-icon-button-ink-color` custom property. - -The following custom properties and mixins are available for styling: - -| Custom property | Description | Default | -| --- | --- | --- | -| `--paper-icon-button-disabled-text` | The color of the disabled button | `--disabled-text-color` | -| `--paper-icon-button-ink-color` | Selected/focus ripple color | `--primary-text-color` | -| `--paper-icon-button` | Mixin for a button | `{}` | -| `--paper-icon-button-disabled` | Mixin for a disabled button | `{}` | -| `--paper-icon-button-hover` | Mixin for button on hover | `{}` | diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/bower.json b/node_modules/@polymer/polymer/bower_components/paper-icon-button/bower.json deleted file mode 100644 index 9f3da88a..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/bower.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "paper-icon-button", - "private": true, - "version": "2.2.0", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "A material design icon button", - "main": [ - "paper-icon-button.html" - ], - "author": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "button", - "icon", - "control" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-icon-button.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#1.9 - 2", - "iron-icon": "PolymerElements/iron-icon#1 - 2", - "paper-behaviors": "PolymerElements/paper-behaviors#1 - 2", - "paper-styles": "PolymerElements/paper-styles#1 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "iron-icons": "PolymerElements/iron-icons#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "ignore": [], - "variants": { - "1.x": { - "dependencies": { - "polymer": "Polymer/polymer#^1.9", - "iron-icon": "PolymerElements/iron-icon#^1.0.0", - "paper-behaviors": "PolymerElements/paper-behaviors#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "iron-icons": "PolymerElements/iron-icons#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/demo/index.html b/node_modules/@polymer/polymer/bower_components/paper-icon-button/demo/index.html deleted file mode 100644 index 9347d934..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/demo/index.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - paper-icon-button demo - - - - - - - - - - - - - - -
      -

      Buttons can use iron-icons or external images, and can be disabled

      - - - - -

      Buttons can hide the ripple effect using the noink attribute

      - - - - -

      Buttons can be styled using regular CSS and custom properties

      - - - - -

      Buttons can be resized

      - - - - -

      Buttons can be used as a link

      - - - -
      - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/demo/paper-icon-button-light.html b/node_modules/@polymer/polymer/bower_components/paper-icon-button/demo/paper-icon-button-light.html deleted file mode 100644 index 7437b251..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/demo/paper-icon-button-light.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - paper-icon-button-light demo - - - - - - - - - - - - - - - -
      -

      paper-icon-button-light can contain iron-icons or external images and can be disabled

      - - - -
      - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/index.html b/node_modules/@polymer/polymer/bower_components/paper-icon-button/index.html deleted file mode 100644 index 78f963c7..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/index.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/package.json b/node_modules/@polymer/polymer/bower_components/paper-icon-button/package.json deleted file mode 100644 index 3923985b..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/paper-icon-button", - "private": true, - "description": "A material design icon button", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-icon-button.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/paper-icon-button-light.d.ts b/node_modules/@polymer/polymer/bower_components/paper-icon-button/paper-icon-button-light.d.ts deleted file mode 100644 index 49271d7d..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/paper-icon-button-light.d.ts +++ /dev/null @@ -1,50 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * paper-icon-button-light.html - */ - -/// -/// - -/** - * This is a lighter version of `paper-icon-button`. Its goal is performance, not - * developer ergonomics, so as a result it has fewer features than `paper-icon-button` - * itself. To use it, you must distribute a `button` containing the `iron-icon` you - * want to use: - * - * - * - * - * - * - * - * - * - * Note that this button is assumed to be distributed at the startup of - * `paper-icon-button-light`. Dynamically adding a `button` to this element is - * not supported. - * - * The `title`/`disabled` etc. attributes go on the distributed button, not on the wrapper. - * - * The following custom properties and mixins are also available for styling: - * Custom property | Description | Default - * ----------------|-------------|---------- - * `--paper-icon-button-light-ripple` | Mixin applied to the paper ripple | `{}` - */ -interface PaperIconButtonLightElement extends Polymer.Element, Polymer.PaperRippleBehavior { - ensureRipple(...var_args: any[]): void; - ready(): void; - _rippleDown(): void; - _rippleUp(): void; -} - -interface HTMLElementTagNameMap { - "paper-icon-button-light": PaperIconButtonLightElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/paper-icon-button-light.html b/node_modules/@polymer/polymer/bower_components/paper-icon-button/paper-icon-button-light.html deleted file mode 100644 index 25c9e92d..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/paper-icon-button-light.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/paper-icon-button.d.ts b/node_modules/@polymer/polymer/bower_components/paper-icon-button/paper-icon-button.d.ts deleted file mode 100644 index 6c0ad02c..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/paper-icon-button.d.ts +++ /dev/null @@ -1,92 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * paper-icon-button.html - */ - -/// -/// -/// -/// - -/** - * Material design: [Icon toggles](https://www.google.com/design/spec/components/buttons.html#buttons-toggle-buttons) - * - * `paper-icon-button` is a button with an image placed at the center. When the user touches - * the button, a ripple effect emanates from the center of the button. - * - * `paper-icon-button` does not include a default icon set. To use icons from the default - * set, include `PolymerElements/iron-icons/iron-icons.html`, and use the `icon` attribute to specify which icon - * from the icon set to use. - * - * - * - * See [`iron-iconset`](iron-iconset) for more information about - * how to use a custom icon set. - * - * Example: - * - * - * - * - * - * - * To use `paper-icon-button` as a link, wrap it in an anchor tag. Since `paper-icon-button` - * will already receive focus, you may want to prevent the anchor tag from receiving focus - * as well by setting its tabindex to -1. - * - * - * - * - * - * ### Styling - * - * Style the button with CSS as you would a normal DOM element. If you are using the icons - * provided by `iron-icons`, they will inherit the foreground color of the button. - * - * /* make a red "favorite" button *\/ - * - * - * By default, the ripple is the same color as the foreground at 25% opacity. You may - * customize the color using the `--paper-icon-button-ink-color` custom property. - * - * The following custom properties and mixins are available for styling: - * - * Custom property | Description | Default - * ----------------|-------------|---------- - * `--paper-icon-button-disabled-text` | The color of the disabled button | `--disabled-text-color` - * `--paper-icon-button-ink-color` | Selected/focus ripple color | `--primary-text-color` - * `--paper-icon-button` | Mixin for a button | `{}` - * `--paper-icon-button-disabled` | Mixin for a disabled button | `{}` - * `--paper-icon-button-hover` | Mixin for button on hover | `{}` - */ -interface PaperIconButtonElement extends Polymer.Element, Polymer.PaperInkyFocusBehavior { - - /** - * The URL of an image for the icon. If the src property is specified, - * the icon property should not be. - */ - src: string|null|undefined; - - /** - * Specifies the icon name or index in the set of icons available in - * the icon's icon set. If the icon property is specified, - * the src property should not be. - */ - icon: string|null|undefined; - - /** - * Specifies the alternate text for the button, for accessibility. - */ - alt: string|null|undefined; - hostAttributes: object|null; - _altChanged(newValue: any, oldValue: any): void; -} - -interface HTMLElementTagNameMap { - "paper-icon-button": PaperIconButtonElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/paper-icon-button.html b/node_modules/@polymer/polymer/bower_components/paper-icon-button/paper-icon-button.html deleted file mode 100644 index 3d857202..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/paper-icon-button.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/test/a11y.html b/node_modules/@polymer/polymer/bower_components/paper-icon-button/test/a11y.html deleted file mode 100644 index a56c9f45..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/test/a11y.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - paper-icon-button a11y tests - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/test/basic.html b/node_modules/@polymer/polymer/bower_components/paper-icon-button/test/basic.html deleted file mode 100644 index fa3afad8..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/test/basic.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - paper-icon-button basic tests - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-icon-button/test/index.html b/node_modules/@polymer/polymer/bower_components/paper-icon-button/test/index.html deleted file mode 100644 index 212c791a..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-icon-button/test/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - paper-icon-button tests - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-ripple/.bower.json b/node_modules/@polymer/polymer/bower_components/paper-ripple/.bower.json deleted file mode 100644 index 22e31e6a..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-ripple/.bower.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "paper-ripple", - "version": "2.1.0", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "Adds a material design ripple to any container", - "private": true, - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "ripple" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-ripple.git" - }, - "main": "paper-ripple.html", - "dependencies": { - "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#1 - 2", - "iron-icon": "polymerelements/iron-icon#1 - 2", - "iron-icons": "polymerelements/iron-icons#1 - 2", - "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "polymerelements/iron-component-page#^1.0.0", - "iron-icon": "polymerelements/iron-icon#^1.0.0", - "iron-icons": "polymerelements/iron-icons#^1.0.0", - "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "homepage": "https://github.com/PolymerElements/paper-ripple", - "_release": "2.1.0", - "_resolution": { - "type": "version", - "tag": "v2.1.0", - "commit": "259c24a0c8d09fc8e3e13b877905d77f7ea47995" - }, - "_source": "https://github.com/PolymerElements/paper-ripple.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/paper-ripple" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/paper-ripple/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/paper-ripple/.github/CODEOWNERS deleted file mode 100644 index c5097c0c..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-ripple/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @valdrinkoshi -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/paper-ripple/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/paper-ripple/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 689423da..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-ripple/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/paper-ripple/.travis.yml b/node_modules/@polymer/polymer/bower_components/paper-ripple/.travis.yml deleted file mode 100644 index 18f9bb19..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-ripple/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -env: - global: - - secure: >- - eLNXQngbn6nHUirBVQAroarZUJHGZAj8sqSJaxRBqaL08//nzaOpnzuavYUeNSJ1fOnbL95jS5yZJy8+oCUW0a6BCXZUHJCrj/N6ywG4KpgPYQnUZVnpvsLdXZJuq4L4l5jYL1GsPydMePfAlrDpSu+QzEc1+C0q7sprxsbHbbQ= - - secure: >- - YLIZR4/tqr25Ty+daEdTInLVXoV/lSwagZCGMfT84SgHj94UYHr9u9Te3tNDeI8I83Kq1PSUn1kKE6ptT+EjuGhTDsyLx2IboVDtNlngDIo5GTSO1RBBzIlHRIb2eMS6om9cfLiOEWM3gFS/Mos/VYO3/A3ZSLE5BcNFagij724= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/paper-ripple/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/paper-ripple/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-ripple/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/paper-ripple/README.md b/node_modules/@polymer/polymer/bower_components/paper-ripple/README.md deleted file mode 100644 index ac5f3926..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-ripple/README.md +++ /dev/null @@ -1,40 +0,0 @@ -[![Build status](https://travis-ci.org/PolymerElements/paper-ripple.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-ripple) - -## <paper-ripple> - -Material design: [Surface reaction](https://www.google.com/design/spec/animation/responsive-interaction.html#responsive-interaction-surface-reaction) - -`paper-ripple` provides a visual effect that other paper elements can -use to simulate a rippling effect emanating from the point of contact. The -effect can be visualized as a concentric circle with motion. - - -```html -
      - -
      - - - - - paper-ripple demo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-ripple/hero.svg b/node_modules/@polymer/polymer/bower_components/paper-ripple/hero.svg deleted file mode 100755 index f8a872f1..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-ripple/hero.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-ripple/index.html b/node_modules/@polymer/polymer/bower_components/paper-ripple/index.html deleted file mode 100644 index e552b0bb..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-ripple/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - paper-ripple - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-ripple/package.json b/node_modules/@polymer/polymer/bower_components/paper-ripple/package.json deleted file mode 100644 index 2e16861d..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-ripple/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/paper-ripple", - "private": true, - "description": "Adds a material design ripple to any container", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-ripple.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.1.1", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-ripple/paper-ripple.d.ts b/node_modules/@polymer/polymer/bower_components/paper-ripple/paper-ripple.d.ts deleted file mode 100644 index 88f5a613..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-ripple/paper-ripple.d.ts +++ /dev/null @@ -1,171 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * paper-ripple.html - */ - -/// -/// - -/** - * Material design: [Surface reaction](https://www.google.com/design/spec/animation/responsive-interaction.html#responsive-interaction-surface-reaction) - * - * `paper-ripple` provides a visual effect that other paper elements can - * use to simulate a rippling effect emanating from the point of contact. The - * effect can be visualized as a concentric circle with motion. - * - * Example: - * - *
      - * - *
      - * - * Note, it's important that the parent container of the ripple be relative position, otherwise - * the ripple will emanate outside of the desired container. - * - * `paper-ripple` listens to "mousedown" and "mouseup" events so it would display ripple - * effect when touches on it. You can also defeat the default behavior and - * manually route the down and up actions to the ripple element. Note that it is - * important if you call `downAction()` you will have to make sure to call - * `upAction()` so that `paper-ripple` would end the animation loop. - * - * Example: - * - * - * ... - * downAction: function(e) { - * this.$.ripple.downAction(e.detail); - * }, - * upAction: function(e) { - * this.$.ripple.upAction(); - * } - * - * Styling ripple effect: - * - * Use CSS color property to style the ripple: - * - * paper-ripple { - * color: #4285f4; - * } - * - * Note that CSS color property is inherited so it is not required to set it on - * the `paper-ripple` element directly. - * - * By default, the ripple is centered on the point of contact. Apply the `recenters` - * attribute to have the ripple grow toward the center of its container. - * - * - * - * You can also center the ripple inside its container from the start. - * - * - * - * Apply `circle` class to make the rippling effect within a circle. - * - * - */ -interface PaperRippleElement extends Polymer.Element, Polymer.IronA11yKeysBehavior { - keyBindings: object; - - /** - * The initial opacity set on the wave. - */ - initialOpacity: number|null|undefined; - - /** - * How fast (opacity per second) the wave fades out. - */ - opacityDecayVelocity: number|null|undefined; - - /** - * If true, ripples will exhibit a gravitational pull towards - * the center of their container as they fade away. - */ - recenters: boolean|null|undefined; - - /** - * If true, ripples will center inside its container - */ - center: boolean|null|undefined; - - /** - * A list of the visual ripples. - */ - ripples: any[]|null|undefined; - - /** - * True when there are visible ripples animating within the - * element. - */ - readonly animating: boolean|null|undefined; - - /** - * If true, the ripple will remain in the "down" state until `holdDown` - * is set to false again. - */ - holdDown: boolean|null|undefined; - - /** - * If true, the ripple will not generate a ripple effect - * via pointer interaction. - * Calling ripple's imperative api like `simulatedRipple` will - * still generate the ripple effect. - */ - noink: boolean|null|undefined; - _animating: boolean|null|undefined; - _boundAnimate: Function|null|undefined; - readonly target: any; - readonly shouldKeepAnimating: any; - attached(): void; - detached(): void; - simulatedRipple(): void; - - /** - * Provokes a ripple down effect via a UI event, - * respecting the `noink` property. - */ - uiDownAction(event?: Event|null): void; - - /** - * Provokes a ripple down effect via a UI event, - * *not* respecting the `noink` property. - */ - downAction(event?: Event|null): void; - - /** - * Provokes a ripple up effect via a UI event, - * respecting the `noink` property. - */ - uiUpAction(event?: Event|null): void; - - /** - * Provokes a ripple up effect via a UI event, - * *not* respecting the `noink` property. - */ - upAction(event?: Event|null): void; - onAnimationComplete(): void; - addRipple(): any; - removeRipple(ripple: any): void; - - /** - * This conflicts with Element#antimate(). - * https://developer.mozilla.org/en-US/docs/Web/API/Element/animate - */ - animate(): void; - _onEnterKeydown(): void; - _onSpaceKeydown(): void; - _onSpaceKeyup(): void; - - /** - * effect. - */ - _holdDownChanged(newVal: any, oldVal: any): void; -} - -interface HTMLElementTagNameMap { - "paper-ripple": PaperRippleElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-ripple/paper-ripple.html b/node_modules/@polymer/polymer/bower_components/paper-ripple/paper-ripple.html deleted file mode 100644 index 77cdb3a6..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-ripple/paper-ripple.html +++ /dev/null @@ -1,768 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-ripple/test/index.html b/node_modules/@polymer/polymer/bower_components/paper-ripple/test/index.html deleted file mode 100644 index 9e9e0624..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-ripple/test/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - Tests - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-ripple/test/paper-ripple.html b/node_modules/@polymer/polymer/bower_components/paper-ripple/test/paper-ripple.html deleted file mode 100644 index ce4995e0..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-ripple/test/paper-ripple.html +++ /dev/null @@ -1,265 +0,0 @@ - - - - - - - paper-ripple - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/.bower.json b/node_modules/@polymer/polymer/bower_components/paper-styles/.bower.json deleted file mode 100644 index 5ddd498d..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/.bower.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "paper-styles", - "version": "2.1.0", - "description": "Common (global) styles for Material Design elements.", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-component", - "polymer", - "style" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-styles.git" - }, - "main": "paper-styles.html", - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/polymerelements/paper-styles/", - "ignore": [ - "/.*" - ], - "dependencies": { - "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", - "font-roboto": "PolymerElements/font-roboto#^1.0.1", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", - "web-component-tester": "^6.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", - "font-roboto": "PolymerElements/font-roboto#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "_release": "2.1.0", - "_resolution": { - "type": "version", - "tag": "v2.1.0", - "commit": "fc4b85ab853f107fc8bb18ea6cda1c2e9ac5a75f" - }, - "_source": "https://github.com/PolymerElements/paper-styles.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/paper-styles" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/paper-styles/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/README.md b/node_modules/@polymer/polymer/bower_components/paper-styles/README.md deleted file mode 100644 index e8b9c6c6..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/README.md +++ /dev/null @@ -1,50 +0,0 @@ - - - -[![Build status](https://travis-ci.org/PolymerElements/paper-styles.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-styles) - -_[Demo and API docs](https://elements.polymer-project.org/elements/paper-styles)_ - - -## <paper-styles> - -The `` component provides simple ways to use Material Design CSS styles -in your application. The following imports are available: - -1. [color.html](https://github.com/PolymerElements/paper-styles/blob/master/color.html): -a complete list of the colors defined in the Material Design [palette](https://www.google.com/design/spec/style/color.html) - - -1. [default-theme.html](https://github.com/PolymerElements/paper-styles/blob/master/default-theme.html): text, -background and accent colors that match the default Material Design theme - - -1. [shadow.html](https://github.com/PolymerElements/paper-styles/blob/master/shadow.html): Material Design -[elevation](https://www.google.com/design/spec/what-is-material/elevation-shadows.html) and shadow styles - - -1. [typography.html](https://github.com/PolymerElements/paper-styles/blob/master/typography.html): -Material Design [font](http://www.google.com/design/spec/style/typography.html#typography-styles) styles and sizes - - -1. [demo-pages.html](https://github.com/PolymerElements/paper-styles/blob/master/demo-pages.html): generic styles -used in the PolymerElements demo pages - - -We recommend importing each of these individual files, and using the style mixins -available in each ones, rather than the aggregated `paper-styles.html` as a whole. - -## Changes in 2.0 -- removed deprecated `/deep/` styles. Files removed: `classes/shadow-layout.html`, `demo.css`. - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/bower.json b/node_modules/@polymer/polymer/bower_components/paper-styles/bower.json deleted file mode 100644 index 2d1e3de0..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/bower.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "paper-styles", - "version": "2.0.0", - "description": "Common (global) styles for Material Design elements.", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-component", - "polymer", - "style" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-styles.git" - }, - "main": "paper-styles.html", - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/polymerelements/paper-styles/", - "ignore": [ - "/.*" - ], - "dependencies": { - "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2", - "font-roboto": "PolymerElements/font-roboto#^1.0.1", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0", - "web-component-tester": "^6.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", - "font-roboto": "PolymerElements/font-roboto#^1.0.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/classes/global.d.ts b/node_modules/@polymer/polymer/bower_components/paper-styles/classes/global.d.ts deleted file mode 100644 index 5639596c..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/classes/global.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * classes/global.html - */ - -/// - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/classes/global.html b/node_modules/@polymer/polymer/bower_components/paper-styles/classes/global.html deleted file mode 100644 index 229875f3..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/classes/global.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/classes/shadow.d.ts b/node_modules/@polymer/polymer/bower_components/paper-styles/classes/shadow.d.ts deleted file mode 100644 index 7a4a3941..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/classes/shadow.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * classes/shadow.html - */ - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/classes/shadow.html b/node_modules/@polymer/polymer/bower_components/paper-styles/classes/shadow.html deleted file mode 100644 index 5ab04b14..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/classes/shadow.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/classes/typography.d.ts b/node_modules/@polymer/polymer/bower_components/paper-styles/classes/typography.d.ts deleted file mode 100644 index 9a1d8bef..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/classes/typography.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * classes/typography.html - */ - -/// - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/classes/typography.html b/node_modules/@polymer/polymer/bower_components/paper-styles/classes/typography.html deleted file mode 100644 index 5586adc4..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/classes/typography.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/color.d.ts b/node_modules/@polymer/polymer/bower_components/paper-styles/color.d.ts deleted file mode 100644 index 2e25e740..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/color.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * color.html - */ - -/// - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/color.html b/node_modules/@polymer/polymer/bower_components/paper-styles/color.html deleted file mode 100644 index 67eae3e2..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/color.html +++ /dev/null @@ -1,334 +0,0 @@ - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/default-theme.d.ts b/node_modules/@polymer/polymer/bower_components/paper-styles/default-theme.d.ts deleted file mode 100644 index 2833b80c..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/default-theme.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * default-theme.html - */ - -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/default-theme.html b/node_modules/@polymer/polymer/bower_components/paper-styles/default-theme.html deleted file mode 100644 index 8242076e..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/default-theme.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/demo-pages.d.ts b/node_modules/@polymer/polymer/bower_components/paper-styles/demo-pages.d.ts deleted file mode 100644 index 6e3790db..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/demo-pages.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * demo-pages.html - */ - -/// -/// -/// -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/demo-pages.html b/node_modules/@polymer/polymer/bower_components/paper-styles/demo-pages.html deleted file mode 100644 index 4e5e0c72..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/demo-pages.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/demo/index.html b/node_modules/@polymer/polymer/bower_components/paper-styles/demo/index.html deleted file mode 100644 index b97ff930..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/demo/index.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - - - - - - - - paper-styles demo - - - - - - - - - - - - - - - - - - -
      -

      typography.html

      - - - - -

      shadow.html

      - - - - -

      default-theme.html

      - - - - -

      Element shared styles: paper-material

      - - - - -

      Element shared styles: paper-item

      - - - - -
      - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/element-styles/paper-item-styles.d.ts b/node_modules/@polymer/polymer/bower_components/paper-styles/element-styles/paper-item-styles.d.ts deleted file mode 100644 index 08f62109..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/element-styles/paper-item-styles.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * element-styles/paper-item-styles.html - */ - -/// -/// -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/element-styles/paper-item-styles.html b/node_modules/@polymer/polymer/bower_components/paper-styles/element-styles/paper-item-styles.html deleted file mode 100644 index 7c539d2e..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/element-styles/paper-item-styles.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/element-styles/paper-material-styles.d.ts b/node_modules/@polymer/polymer/bower_components/paper-styles/element-styles/paper-material-styles.d.ts deleted file mode 100644 index 1c190dd2..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/element-styles/paper-material-styles.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * element-styles/paper-material-styles.html - */ - -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/element-styles/paper-material-styles.html b/node_modules/@polymer/polymer/bower_components/paper-styles/element-styles/paper-material-styles.html deleted file mode 100644 index 8f5f6370..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/element-styles/paper-material-styles.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/gen-tsd.json b/node_modules/@polymer/polymer/bower_components/paper-styles/gen-tsd.json deleted file mode 100644 index f6d8c975..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/gen-tsd.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "excludeIdentifiers": [ - "paper-styles" - ] -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/index.html b/node_modules/@polymer/polymer/bower_components/paper-styles/index.html deleted file mode 100644 index 8e96ebe0..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - paper-styles - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/package.json b/node_modules/@polymer/polymer/bower_components/paper-styles/package.json deleted file mode 100644 index 56975404..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/paper-styles", - "private": true, - "description": "Common (global) styles for Material Design elements.", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-styles.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.1.1", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/paper-styles-classes.d.ts b/node_modules/@polymer/polymer/bower_components/paper-styles/paper-styles-classes.d.ts deleted file mode 100644 index 21ab1e82..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/paper-styles-classes.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * paper-styles-classes.html - */ - -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/paper-styles-classes.html b/node_modules/@polymer/polymer/bower_components/paper-styles/paper-styles-classes.html deleted file mode 100644 index 9fe0fd0d..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/paper-styles-classes.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/paper-styles.d.ts b/node_modules/@polymer/polymer/bower_components/paper-styles/paper-styles.d.ts deleted file mode 100644 index bd5e60a1..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/paper-styles.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * paper-styles.html - */ - -/// -/// -/// -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/paper-styles.html b/node_modules/@polymer/polymer/bower_components/paper-styles/paper-styles.html deleted file mode 100644 index 1a4aca13..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/paper-styles.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/shadow.d.ts b/node_modules/@polymer/polymer/bower_components/paper-styles/shadow.d.ts deleted file mode 100644 index 0add44f9..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/shadow.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * shadow.html - */ - -/// - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/shadow.html b/node_modules/@polymer/polymer/bower_components/paper-styles/shadow.html deleted file mode 100644 index 0e4e3cb4..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/shadow.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/typography.d.ts b/node_modules/@polymer/polymer/bower_components/paper-styles/typography.d.ts deleted file mode 100644 index 17a7f44b..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/typography.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * typography.html - */ - -/// -/// - diff --git a/node_modules/@polymer/polymer/bower_components/paper-styles/typography.html b/node_modules/@polymer/polymer/bower_components/paper-styles/typography.html deleted file mode 100644 index 689ae979..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-styles/typography.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-toast/.bower.json b/node_modules/@polymer/polymer/bower_components/paper-toast/.bower.json deleted file mode 100644 index a79f9e7e..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-toast/.bower.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "name": "paper-toast", - "version": "2.1.0", - "description": "A material design notification toast", - "private": true, - "license": "http://polymer.github.io/LICENSE.txt", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "toast", - "notification" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-toast.git" - }, - "main": "paper-toast.html", - "dependencies": { - "iron-a11y-announcer": "PolymerElements/iron-a11y-announcer#1 - 2", - "iron-overlay-behavior": "PolymerElements/iron-overlay-behavior#1 - 2", - "iron-fit-behavior": "PolymerElements/iron-fit-behavior#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "paper-button": "PolymerElements/paper-button#1 - 2", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "iron-a11y-announcer": "PolymerElements/iron-a11y-announcer#^1.0.0", - "iron-overlay-behavior": "PolymerElements/iron-overlay-behavior#^1.0.9", - "iron-fit-behavior": "PolymerElements/iron-fit-behavior#^1.1.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "paper-button": "PolymerElements/paper-button#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - }, - "homepage": "https://github.com/PolymerElements/paper-toast", - "_release": "2.1.0", - "_resolution": { - "type": "version", - "tag": "v2.1.0", - "commit": "1b44b415aace1cb8f23fa281b2cd95ef053f81bb" - }, - "_source": "https://github.com/PolymerElements/paper-toast.git", - "_target": "1 - 2", - "_originalSource": "PolymerElements/paper-toast" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/paper-toast/.github/CODEOWNERS b/node_modules/@polymer/polymer/bower_components/paper-toast/.github/CODEOWNERS deleted file mode 100644 index c5097c0c..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-toast/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -* @valdrinkoshi -/.travis.yml @azakus diff --git a/node_modules/@polymer/polymer/bower_components/paper-toast/.github/ISSUE_TEMPLATE.md b/node_modules/@polymer/polymer/bower_components/paper-toast/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 9251e7f2..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-toast/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/node_modules/@polymer/polymer/bower_components/paper-toast/.travis.yml b/node_modules/@polymer/polymer/bower_components/paper-toast/.travis.yml deleted file mode 100644 index 65e6cc3f..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-toast/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g polymer-cli - - polymer install --variants - - >- - npm run update-types && git diff --exit-code || (echo -e - '\n\033[31mERROR:\033[0m Typings are stale. Please run "npm run - update-types".' && false) -env: - global: - - secure: >- - fg+1RZ1aJQfxiM42iXvK8hj8L9RN8zX6IEjhuxFgNcgBY786DCyy9CIn1Gz4esv+4ZXyJfLyCbzGi8NMrzc6j3nbmewRKf3/zkX5NI4at82EvlkkN8Bcp7z+AV871LyLeV5q94waiR6+9/2LHega+F96pyl/4SAKxk2Gmh3BuPk= - - secure: >- - VkX13Tu1Ojr/2ZRXRORize8w4tlNo2bBUYEbEDF/RtcoxQeTffjAigmZ1q4Z/eZaA41JI/Fh90HUzZRg9V0W+TGT3t6htK9zxZq9zygM6sHVpOayxGInEW1TcMSM3QlcRI+3y8xUeCgpCmBmLLLI8K+HENRi1trg4C2HJk4JCN8= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable -script: - - xvfb-run polymer test - - >- - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then polymer test -s 'default'; - fi -dist: trusty diff --git a/node_modules/@polymer/polymer/bower_components/paper-toast/CONTRIBUTING.md b/node_modules/@polymer/polymer/bower_components/paper-toast/CONTRIBUTING.md deleted file mode 100644 index 093090d4..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-toast/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/node_modules/@polymer/polymer/bower_components/paper-toast/README.md b/node_modules/@polymer/polymer/bower_components/paper-toast/README.md deleted file mode 100644 index 283c2c07..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-toast/README.md +++ /dev/null @@ -1,56 +0,0 @@ -[![Build status](https://travis-ci.org/PolymerElements/paper-toast.svg?branch=master)](https://travis-ci.org/PolymerElements/paper-toast) -[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/PolymerElements/paper-toast) - -## <paper-toast> - -Material design: [Snackbars & toasts](https://www.google.com/design/spec/components/snackbars-toasts.html) - -`paper-toast` provides a subtle notification toast. Only one `paper-toast` will -be visible on screen. - -Use `opened` to show the toast: - -Example: - -```html - -``` - -Also `open()` or `show()` can be used to show the toast: - -Example: - -```html -Open Toast - - -... - -openToast: function() { - this.$.toast.open(); -} -``` - -Set `duration` to 0, a negative number or Infinity to persist the toast on screen: - -Example: - -```html - - Show more - -``` - -### Styling - -The following custom properties and mixins are available for styling: - -| Custom property | Description | Default | -| --- | --- | --- | -| `--paper-toast-background-color` | The paper-toast background-color | `#323232` | -| `--paper-toast-color` | The paper-toast color | `#f1f1f1` | - -This element applies the mixin `--paper-font-common-base` but does not import `paper-styles/typography.html`. -In order to apply the `Roboto` font to this element, make sure you've imported `paper-styles/typography.html`. - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-toast/bower.json b/node_modules/@polymer/polymer/bower_components/paper-toast/bower.json deleted file mode 100644 index 37a5c722..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-toast/bower.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "paper-toast", - "version": "2.0.0", - "description": "A material design notification toast", - "private": true, - "license": "http://polymer.github.io/LICENSE.txt", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "toast", - "notification" - ], - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-toast.git" - }, - "main": "paper-toast.html", - "dependencies": { - "iron-a11y-announcer": "PolymerElements/iron-a11y-announcer#1 - 2", - "iron-overlay-behavior": "PolymerElements/iron-overlay-behavior#1 - 2", - "iron-fit-behavior": "PolymerElements/iron-fit-behavior#1 - 2", - "polymer": "Polymer/polymer#1.9 - 2" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#1 - 2", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2", - "paper-button": "PolymerElements/paper-button#1 - 2", - "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1", - "web-component-tester": "^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "variants": { - "1.x": { - "dependencies": { - "iron-a11y-announcer": "PolymerElements/iron-a11y-announcer#^1.0.0", - "iron-overlay-behavior": "PolymerElements/iron-overlay-behavior#^1.0.9", - "iron-fit-behavior": "PolymerElements/iron-fit-behavior#^1.1.0", - "polymer": "Polymer/polymer#^1.9" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "paper-button": "PolymerElements/paper-button#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "resolutions": { - "webcomponentsjs": "^0.7" - } - } - }, - "ignore": [], - "resolutions": { - "webcomponentsjs": "^1.0.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-toast/demo/index.html b/node_modules/@polymer/polymer/bower_components/paper-toast/demo/index.html deleted file mode 100644 index 06df145a..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-toast/demo/index.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - paper-toast - - - - - - - - - - - - - - - - - -

      Toast auto-closes after 3 seconds. Only one toast per time will be visible

      - - - - -

      Toast does not auto-close when duration is negative, 0, or Infinity

      - - - - -

      Toast can be styled

      - - - - -

      Toast can fit into any element

      - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-toast/hero.svg b/node_modules/@polymer/polymer/bower_components/paper-toast/hero.svg deleted file mode 100755 index bfdc1808..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-toast/hero.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-toast/index.html b/node_modules/@polymer/polymer/bower_components/paper-toast/index.html deleted file mode 100644 index 487bb5c3..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-toast/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-toast/package.json b/node_modules/@polymer/polymer/bower_components/paper-toast/package.json deleted file mode 100644 index 0b68b554..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-toast/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@polymer/paper-toast", - "private": true, - "description": "A material design notification toast", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-toast.git" - }, - "license": "BSD-3-Clause", - "devDependencies": { - "@polymer/gen-typescript-declarations": "^1.2.0", - "bower": "^1.8.0" - }, - "scripts": { - "update-types": "bower install && gen-typescript-declarations --deleteExisting --outDir ." - } -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-toast/paper-toast.d.ts b/node_modules/@polymer/polymer/bower_components/paper-toast/paper-toast.d.ts deleted file mode 100644 index 75e42188..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-toast/paper-toast.d.ts +++ /dev/null @@ -1,150 +0,0 @@ -/** - * DO NOT EDIT - * - * This file was automatically generated by - * https://github.com/Polymer/gen-typescript-declarations - * - * To modify these typings, edit the source file(s): - * paper-toast.html - */ - -/// -/// -/// - -/** - * Material design: [Snackbars & toasts](https://www.google.com/design/spec/components/snackbars-toasts.html) - * - * `paper-toast` provides a subtle notification toast. Only one `paper-toast` will - * be visible on screen. - * - * Use `opened` to show the toast: - * - * Example: - * - * - * - * Also `open()` or `show()` can be used to show the toast: - * - * Example: - * - * Open Toast - * - * - * ... - * - * openToast: function() { - * this.$.toast.open(); - * } - * - * Set `duration` to 0, a negative number or Infinity to persist the toast on screen: - * - * Example: - * - * - * Show more - * - * - * - * ### Styling - * The following custom properties and mixins are available for styling: - * - * Custom property | Description | Default - * ----------------|-------------|---------- - * `--paper-toast-background-color` | The paper-toast background-color | `#323232` - * `--paper-toast-color` | The paper-toast color | `#f1f1f1` - * - * This element applies the mixin `--paper-font-common-base` but does not import `paper-styles/typography.html`. - * In order to apply the `Roboto` font to this element, make sure you've imported `paper-styles/typography.html`. - */ -interface PaperToastElement extends Polymer.Element, Polymer.IronOverlayBehavior { - - /** - * The element to fit `this` into. - * Overridden from `Polymer.IronFitBehavior`. - */ - fitInto: object|null|undefined; - - /** - * The orientation against which to align the dropdown content - * horizontally relative to `positionTarget`. - * Overridden from `Polymer.IronFitBehavior`. - */ - horizontalAlign: string|null|undefined; - - /** - * The orientation against which to align the dropdown content - * vertically relative to `positionTarget`. - * Overridden from `Polymer.IronFitBehavior`. - */ - verticalAlign: string|null|undefined; - - /** - * Overridden from `IronOverlayBehavior`. - * Set to true to disable auto-focusing the toast or child nodes with - * the `autofocus` attribute` when the overlay is opened. - */ - noAutoFocus: boolean|null|undefined; - - /** - * Overridden from `IronOverlayBehavior`. - * Set to false to enable closing of the toast by clicking outside it. - */ - noCancelOnOutsideClick: boolean|null|undefined; - - /** - * The duration in milliseconds to show the toast. - * Set to `0`, a negative number, or `Infinity`, to disable the - * toast auto-closing. - */ - duration: number|null|undefined; - - /** - * The text to display in the toast. - */ - text: string|null|undefined; - - /** - * Read-only. Deprecated. Use `opened` from `IronOverlayBehavior`. - */ - readonly visible: any; - - /** - * Read-only. Can auto-close if duration is a positive finite number. - */ - readonly _canAutoClose: any; - created(): void; - - /** - * Overridden from `IronOverlayBehavior`. - * Called when the value of `opened` changes. - */ - _openedChanged(): void; - - /** - * Overridden from `IronOverlayBehavior`. - */ - _renderOpened(): void; - - /** - * Overridden from `IronOverlayBehavior`. - */ - _renderClosed(): void; - - /** - * Show the toast. Without arguments, this is the same as `open()` from `IronOverlayBehavior`. - * - * @param properties Properties to be set before opening the toast. - * e.g. `toast.show('hello')` or `toast.show({text: 'hello', duration: 3000})` - */ - show(properties?: object|string|null): void; - - /** - * Hide the toast. Same as `close()` from `IronOverlayBehavior`. - */ - hide(): void; -} - -interface HTMLElementTagNameMap { - "paper-toast": PaperToastElement; -} diff --git a/node_modules/@polymer/polymer/bower_components/paper-toast/paper-toast.html b/node_modules/@polymer/polymer/bower_components/paper-toast/paper-toast.html deleted file mode 100644 index d05c931c..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-toast/paper-toast.html +++ /dev/null @@ -1,325 +0,0 @@ - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-toast/test/basic.html b/node_modules/@polymer/polymer/bower_components/paper-toast/test/basic.html deleted file mode 100644 index 154015d7..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-toast/test/basic.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - paper-toast-basic - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/paper-toast/test/index.html b/node_modules/@polymer/polymer/bower_components/paper-toast/test/index.html deleted file mode 100644 index 868890c9..00000000 --- a/node_modules/@polymer/polymer/bower_components/paper-toast/test/index.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - Tests - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/perf-tester/.bower.json b/node_modules/@polymer/polymer/bower_components/perf-tester/.bower.json deleted file mode 100644 index 7596c126..00000000 --- a/node_modules/@polymer/polymer/bower_components/perf-tester/.bower.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "perf-tester", - "private": true, - "devDependencies": { - "webcomponentsjs": "webcomponents/webcomponentsjs" - }, - "homepage": "https://github.com/polymerlabs/perf-tester", - "_release": "a7bba489e1", - "_resolution": { - "type": "branch", - "branch": "master", - "commit": "a7bba489e144bc3150fbbd976c896900aa2f3653" - }, - "_source": "https://github.com/polymerlabs/perf-tester.git", - "_target": "*", - "_originalSource": "polymerlabs/perf-tester" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/perf-tester/.gitattributes b/node_modules/@polymer/polymer/bower_components/perf-tester/.gitattributes deleted file mode 100644 index 21256661..00000000 --- a/node_modules/@polymer/polymer/bower_components/perf-tester/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -* text=auto \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/perf-tester/LICENSE.txt b/node_modules/@polymer/polymer/bower_components/perf-tester/LICENSE.txt deleted file mode 100644 index 87c683b8..00000000 --- a/node_modules/@polymer/polymer/bower_components/perf-tester/LICENSE.txt +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) 2017 The Polymer Authors. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/@polymer/polymer/bower_components/perf-tester/README.md b/node_modules/@polymer/polymer/bower_components/perf-tester/README.md deleted file mode 100644 index c76f72b3..00000000 --- a/node_modules/@polymer/polymer/bower_components/perf-tester/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# perf-tester -An element to help performance test other elements. - -## How to use - -The perf-tester element accepts an array of `tests` which are html files containing perf tests to run. A simple "runner.html" as is shown in `/demo` can be created to display output. - -Each test file should load `perf.js` and call `console.perf()` to start the test and `console.perfEnd()` to finish it. - -### Node script - -Run the node-script with - - node node-perf-tester.js - -The available options are: - - --runs Number of runs to measure on - --targets The file location of a JSON-structured file with the following format: - - [ - ["", ""] - ] - - where type is the name of the type you are testing and the url the location of the target under test - - --port The port number to connect the protocol to. Use this when you are connecting to a separate device. If this argument is not provided, chrome-headless is used. - --throttling one of [FAST_3G, SLOW_3G] If not running in Chrome headless, you can enable throttling with one of the two options. diff --git a/node_modules/@polymer/polymer/bower_components/perf-tester/bower.json b/node_modules/@polymer/polymer/bower_components/perf-tester/bower.json deleted file mode 100644 index dff7cd43..00000000 --- a/node_modules/@polymer/polymer/bower_components/perf-tester/bower.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "perf-tester", - "private": true, - "devDependencies": { - "webcomponentsjs": "webcomponents/webcomponentsjs" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/perf-tester/demo/a.html b/node_modules/@polymer/polymer/bower_components/perf-tester/demo/a.html deleted file mode 100644 index 4603beb6..00000000 --- a/node_modules/@polymer/polymer/bower_components/perf-tester/demo/a.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - HiHiHiHiHiHiHiHiHiHi - HiHiHiHiHiHiHiHiHiHi - HiHiHiHiHiHiHiHiHiHi - HiHiHiHiHiHiHiHiHiHi - HiHiHiHiHiHiHiHiHiHi - HiHiHiHiHiHiHiHiHiHi - HiHiHiHiHiHiHiHiHiHi - HiHiHiHiHiHiHiHiHiHi - HiHiHiHiHiHiHiHiHiHi - - - diff --git a/node_modules/@polymer/polymer/bower_components/perf-tester/demo/input.html b/node_modules/@polymer/polymer/bower_components/perf-tester/demo/input.html deleted file mode 100644 index 38d1f1a9..00000000 --- a/node_modules/@polymer/polymer/bower_components/perf-tester/demo/input.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/perf-tester/demo/runner.html b/node_modules/@polymer/polymer/bower_components/perf-tester/demo/runner.html deleted file mode 100755 index 03bfe86b..00000000 --- a/node_modules/@polymer/polymer/bower_components/perf-tester/demo/runner.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - Perf is go. - - - - - - diff --git a/node_modules/@polymer/polymer/bower_components/perf-tester/node-perf-tester.js b/node_modules/@polymer/polymer/bower_components/perf-tester/node-perf-tester.js deleted file mode 100644 index afe13df6..00000000 --- a/node_modules/@polymer/polymer/bower_components/perf-tester/node-perf-tester.js +++ /dev/null @@ -1,98 +0,0 @@ -const path = require('path'); - -const CDP = require('chrome-remote-interface'); - -const argv = require('minimist')(process.argv.slice(2)); - -const NUMBER_OF_RUNS = argv.runs || 100; - -(async function() { - let port = argv.port; - let chrome; - - if (!argv.port) { - const chromeLauncher = require('chrome-launcher'); - chrome = await chromeLauncher.launch({ - chromeFlags: - ['--headless', '--disable-gpu', '--remote-debugging-address=0.0.0.0'], - port: 0 - }); - port = chrome.port; - } - - const tab = await CDP.New({port}); - const client = await CDP({tab, port}); - - const {Page, Network, Runtime} = client; - - const ONE_MB = 1024 * 1024 / 8; - const throttling = { - FAST_3G: { - downloadThroughput: 1.6 * ONE_MB * .9, - uploadThroughput: .75 * ONE_MB * .9 - }, - SLOW_3G: { - downloadThroughput: .5 * ONE_MB * .8, - uploadThroughput: .5 * ONE_MB * .8 - } - }; - - await Promise.all([ - Page.enable(), - Network.enable(), - port && argv.throttling && - Network.emulateNetworkConditions(Object.assign( - {}, throttling[argv.throttling], {offline: false, latency: 10})), - Network.clearBrowserCache(), - Network.setCacheDisabled({cacheDisabled: true}), - Network.setBypassServiceWorker({bypass: true}), - ]); - - let loadEventPromise; - - Page.loadEventFired(() => { - loadEventPromise(); - }); - - const options = require(path.join(process.cwd(), argv.targets)); - - const perfTimings = {}; - for (const [type] of options) { - perfTimings[type] = []; - } - - process.on('exit', async () => { - for (const [type, timings] of Object.entries(perfTimings)) { - const average = timings.reduce((a, b) => a + b) / timings.length; - console.log( - `Average gain for ${type} in ${timings.length} runs is ${average}`); - } - - await CDP.Close({port, id: tab.id}); - await client.close(); - if (!argv.port) { - await chrome.kill(); - } - }); - - for (let i = 0; i < NUMBER_OF_RUNS; i++) { - for (const [type, url] of options) { - requestType = type; - - Page.navigate({url}); - - await new Promise(resolve => { - loadEventPromise = resolve; - }); - const {result: {value: perfTiming}} = - await Runtime.evaluate({expression: 'window.perfTiming'}); - // const {result: {value: perfTiming}} = await - // Runtime.evaluate({expression: 'window.performance.timing.loadEventEnd- - // window.performance.timing.navigationStart'}); - perfTimings[type].push(perfTiming); - } - process.stdout.write(`${i + 1}/${NUMBER_OF_RUNS}\r`); - } - - process.exit(0); -})() \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/perf-tester/options.json b/node_modules/@polymer/polymer/bower_components/perf-tester/options.json deleted file mode 100644 index 0637a088..00000000 --- a/node_modules/@polymer/polymer/bower_components/perf-tester/options.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/perf-tester/package.json b/node_modules/@polymer/polymer/bower_components/perf-tester/package.json deleted file mode 100644 index 0f380559..00000000 --- a/node_modules/@polymer/polymer/bower_components/perf-tester/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "perf-tester", - "version": "0.0.1", - "main": "node-perf-tester.js", - "license": "BSD-3-Clause", - "dependencies": { - "chrome-launcher": "^0.4.0", - "chrome-remote-interface": "^0.24.3", - "minimist": "^1.2.0" - } -} diff --git a/node_modules/@polymer/polymer/bower_components/perf-tester/perf-tester.js b/node_modules/@polymer/polymer/bower_components/perf-tester/perf-tester.js deleted file mode 100644 index 5ee79444..00000000 --- a/node_modules/@polymer/polymer/bower_components/perf-tester/perf-tester.js +++ /dev/null @@ -1,463 +0,0 @@ -/** - * @license - * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. - * This code may only be used under the BSD style license found at http:polymer.github.io/LICENSE.txt - * The complete set of authors may be found at http:polymer.github.io/AUTHORS.txt - * The complete set of contributors may be found at http:polymer.github.io/CONTRIBUTORS.txt - * Code distributed by Google as part of the polymer project is also - * subject to an additional IP rights grant found at http:polymer.github.io/PATENTS.txt - */ -(function() { - - 'use strict'; - - class PerfTester extends HTMLElement { - - static get observedAttributes() { - return ['runs', 'base', 'strategy', 'chart', 'chartmin', 'chartmax']; - } - - static get template() { - return ` - - - - ~ - - -
      - `; - } - - constructor() { - super(); - this.strategy = this._strategies.minimum; - this.runs = 25; - this.base = ''; - this._baselineTest = 0; - } - - connectedCallback() { - if (!this.shadowRoot) { - this.attachShadow({mode: 'open'}); - this.shadowRoot.innerHTML = this.constructor.template; - this.$ = {}; - if (!this.chartmin) { - this.chartmin = 0; - } - if (!this.chartmax) { - this.chartmax = 300; - } - this.chart = false; - this.$.log = this.shadowRoot.querySelector('#log'); - window.addEventListener('message', (e) => this._scoreMessage(e)); - this.shadowRoot.querySelector('#showCharts').addEventListener('change', (e) => { - this.chart = e.target.checked; - }); - this.shadowRoot.querySelector('#chartmin').addEventListener('input', (e) => { - this._rangeSet = true; - this.chartmin = e.target.valueAsNumber; - }); - this.shadowRoot.querySelector('#chartmax').addEventListener('input', (e) => { - this._rangeSet = true; - this.chartmax = e.target.valueAsNumber; - }); - this.$.log.addEventListener('click', (e) => { - let t = e.target; - while (!t.classList || !t.classList.contains('card')) { - t = t.parentNode; - } - let i = Array.from(this.$.log.querySelectorAll('.card')).indexOf(t); - this._baselineTest = i >= 0 ? i : 0; - this._report(); - }); - } - } - - attributeChangedCallback(name, old, value) { - if (old !== value) { - switch(name) { - case 'runs': - this.runs = value; - break; - case 'base': - this.base = value; - break; - case 'strategy': - this.strategy = this._strategies[value] || this.strategy; - break; - case 'chart': - this.chart = value != null; - break; - case 'chartmin': - this.chartmin = value; - break; - case 'chartmax': - this.chartmax = value; - break; - } - } - } - - get tests() { - return this._tests; - } - - set tests(value) { - this._tests = value; - this._go(); - } - - set chart(value) { - this._chart = value; - this.shadowRoot.querySelector('#showCharts').checked = value; - this.shadowRoot.querySelector('#chartOpts').hidden = !value; - if (value && !this._chartLoaded) { - this._chartLoaded = true; - let script = document.createElement('script'); - script.src = 'https://www.gstatic.com/charts/loader.js'; - script.onload = () => { - window.google.charts.load("current", {packages:["corechart"]}); - window.google.charts.setOnLoadCallback(() => { - this._shouldDrawChart = this._chart; - this._drawCharts(); - }); - } - script.onerror = function(e) { console.error(`couldn't load chart lib: ${e}`); }; - document.head.appendChild(script); - } else { - this._shouldDrawChart = value; - } - if (this.tests) { - this._report(); - } - } - - get chart() { - return this._chart; - } - - set chartmin(value) { - this._chartmin = value; - this.shadowRoot.querySelector('#chartmin').value = value; - this._drawCharts(); - } - - get chartmin() { return this._chartmin } - - set chartmax(value) { - this._chartmax = value; - this.shadowRoot.querySelector('#chartmax').value = value; - this._drawCharts(); - } - - get chartmax() { return this._chartmax } - - _shuffle(tests) { - let shuffled = []; - let ordered = tests.slice(0); - let _count = ordered.length; - for (let i=0, j; i<_count; i++) { - j = Math.floor(Math.random()*_count); - // TODO(sjmiles): this is an easy but poorly randomized distribution - for (; !ordered[j]; j = (j + 1) % _count); - shuffled.push(j); - ordered[j] = null; - } - return shuffled; - } - - _go() { - this._count = 0; - this._total = []; - this._times = []; - this._infos = []; - for (let i=0; i { - this._record(info); - this._nextTest(); - }); - } - - _measure(next) { - this.afterScore = next; - } - - _scoreMessage(e) { - if (this.afterScore) { - if (!e.data || !e.data.time) { - return; - } - let info = e.data; - if (typeof info !== 'object') { - info = {time: info}; - } - info.time = parseInt(info.time); - this.afterScore(info); - } - } - - _record(info) { - if (!this._infos[this._test]) { - this._infos[this._test] = info; - } - this._times[this._test].push(info.time); - this._total[this._test] += info.time; - } - - _report() { - let data = []; - let baseline; - for (let i=0; iRuns: ${this._count}/${this.runs}

      `; - for (let i=0; i - ${timeReport} -   ${title} -
      - `; - // - for (let j=0, v; (v=times[j]) !== undefined; j++) { - max = Math.max(v, max); - let o = stats.outlier(v); - info += (o ? '' : '') + v.toFixed(0) + (o ? '' : '') + '|'; - } - info += `
      `; - } - // - this.$.log.innerHTML = info; - if (!this._rangeSet) { - this.chartmin = min; - this.chartmax = max; - } - this._drawCharts(); - } - - _drawCharts() { - if (this._shouldDrawChart) { - for (let i=0; i this.score; - } - }, - - med: { - score: function(times, stats) { - times.sort((a,b) => a - b); - let middle = Math.floor(times.length / 2); - stats.score = times[middle]; - return stats.score; - }, - outlier: function(value) { - return value != this.score; - } - }, - - // This strategy selects the mean of all _times not more than one stddev - // away from the _total sampling mean. - /* - onedev: { - score: function(_times, stats, context) { - let cleaned = []; - for (let j=0, v; v=_times[j]; j++) { - if (!stats.outlier(v)) { - cleaned.push(v); - } - } - return context._stats(cleaned).mean; - }, - // called in stats context - outlier: function(value) { - return Math.abs(value - this.mean) > (1 * this.deviation); - } - } - */ - } - - customElements.define('perf-tester', PerfTester); - -})(); diff --git a/node_modules/@polymer/polymer/bower_components/perf-tester/perf.js b/node_modules/@polymer/polymer/bower_components/perf-tester/perf.js deleted file mode 100644 index 3aad6c47..00000000 --- a/node_modules/@polymer/polymer/bower_components/perf-tester/perf.js +++ /dev/null @@ -1,69 +0,0 @@ -/** - * @license - * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. - * This code may only be used under the BSD style license found at - * http:polymer.github.io/LICENSE.txt The complete set of authors may be found - * at http:polymer.github.io/AUTHORS.txt The complete set of contributors may be - * found at http:polymer.github.io/CONTRIBUTORS.txt Code distributed by Google - * as part of the polymer project is also subject to an additional IP rights - * grant found at http:polymer.github.io/PATENTS.txt - */ -// x-browser compat. -(function() { -let wcr = false; - -addEventListener('WebComponentsReady', function() { - wcr = true; -}); - -console.perf = function() { - if (window.HTMLImports && !HTMLImports.useNative && !wcr) { - let fn = console._perf.bind(console); - HTMLImports.whenReady(fn); - } else { - console._perf(); - } -}; - -console._perf = function() { - if (window.gc) { - for (let i = 0; i < 20; i++) { - gc(); - } - } - if (console.time) { - console.time('perf'); - } - console.perf.time = performance.now(); -}; - -console.perfEnd = function(info) { - if (window.WebComponents) { - if (!wcr) { - addEventListener('WebComponentsReady', function() { - console._perfEnd(info); - }); - } else { - console._perfEnd(info); - } - } else { - console._perfEnd(info); - } -}; - -console._perfEnd = function(info, options = {}) { - if (!options.skipForceLayout) { - // force layout - document.body.offsetWidth; - } - window.perfTiming = performance.now() - console.perf.time; - if (console.time) { - console.timeEnd('perf'); - } - document.title = window.perfTiming.toFixed(1) + 'ms: ' + document.title; - if (window.top !== window) { - window.top.postMessage({time: window.perfTiming + 'ms', info}, '*'); - } -}; - -})(); diff --git a/node_modules/@polymer/polymer/bower_components/perf-tester/yarn.lock b/node_modules/@polymer/polymer/bower_components/perf-tester/yarn.lock deleted file mode 100644 index 591d7d70..00000000 --- a/node_modules/@polymer/polymer/bower_components/perf-tester/yarn.lock +++ /dev/null @@ -1,144 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@types/core-js@^0.9.41": - version "0.9.42" - resolved "https://registry.yarnpkg.com/@types/core-js/-/core-js-0.9.42.tgz#dd6da92cd7d5ab5ca0b4477524537c3e633b6bce" - -"@types/mkdirp@^0.3.29": - version "0.3.29" - resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.3.29.tgz#7f2ad7ec55f914482fc9b1ec4bb1ae6028d46066" - -"@types/node@6.0.66": - version "6.0.66" - resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.66.tgz#5680b74a6135d33d4c00447e7c3dc691a4601625" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - -brace-expansion@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -chrome-launcher@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/chrome-launcher/-/chrome-launcher-0.4.0.tgz#805e4a90d3d16c93655216aeba1fe880922ecc1f" - dependencies: - "@types/core-js" "^0.9.41" - "@types/mkdirp" "^0.3.29" - "@types/node" "6.0.66" - lighthouse-logger "^1.0.0" - mkdirp "0.5.1" - rimraf "^2.6.1" - -chrome-remote-interface@^0.24.3: - version "0.24.3" - resolved "https://registry.yarnpkg.com/chrome-remote-interface/-/chrome-remote-interface-0.24.3.tgz#ee38252fd43bea435dd1dbb74f4b90d179186bc9" - dependencies: - commander "2.1.x" - ws "2.0.x" - -commander@2.1.x: - version "2.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -debug@^2.6.8: - version "2.6.8" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" - dependencies: - ms "2.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -glob@^7.0.5: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -lighthouse-logger@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lighthouse-logger/-/lighthouse-logger-1.0.0.tgz#c6abdfbbbf0b4a541ab33864802cbad8944bcc8c" - dependencies: - debug "^2.6.8" - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -mkdirp@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -rimraf@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" - dependencies: - glob "^7.0.5" - -ultron@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.0.tgz#b07a2e6a541a815fc6a34ccd4533baec307ca864" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -ws@2.0.x: - version "2.0.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-2.0.3.tgz#532fd499c3f7d7d720e543f1f807106cfc57d9cb" - dependencies: - ultron "~1.1.0" diff --git a/node_modules/@polymer/polymer/bower_components/polymer/.bower.json b/node_modules/@polymer/polymer/bower_components/polymer/.bower.json deleted file mode 100644 index dbf4215b..00000000 --- a/node_modules/@polymer/polymer/bower_components/polymer/.bower.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "polymer", - "main": [ - "polymer.html" - ], - "license": "http://polymer.github.io/LICENSE.txt", - "ignore": [ - "/.*", - "/test/", - "/util/", - "gulpfile.js", - "CONTRIBUTING.md", - "CHANGELOG.md" - ], - "authors": [ - "The Polymer Authors (http://polymer.github.io/AUTHORS.txt)" - ], - "repository": { - "type": "git", - "url": "https://github.com/Polymer/polymer.git" - }, - "dependencies": { - "shadycss": "webcomponents/shadycss#^v1.1.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^v1.1.0" - }, - "devDependencies": { - "web-component-tester": "^6.0.0", - "test-fixture": "PolymerElements/test-fixture#3.0.0-rc.1", - "iron-component-page": "PolymerElements/iron-component-page#^3.0.1" - }, - "private": true, - "resolutions": { - "test-fixture": "3.0.0-rc.1" - }, - "homepage": "https://github.com/Polymer/polymer", - "version": "2.6.0", - "_release": "2.6.0", - "_resolution": { - "type": "version", - "tag": "v2.6.0", - "commit": "00d510f17a19b5b2ffed2fab5c2220b562b69b4f" - }, - "_source": "https://github.com/Polymer/polymer.git", - "_target": "1.9 - 2", - "_originalSource": "Polymer/polymer" -} \ No newline at end of file diff --git a/node_modules/@polymer/polymer/bower_components/polymer/LICENSE.txt b/node_modules/@polymer/polymer/bower_components/polymer/LICENSE.txt deleted file mode 100644 index 87c683b8..00000000 --- a/node_modules/@polymer/polymer/bower_components/polymer/LICENSE.txt +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) 2017 The Polymer Authors. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/@polymer/polymer/bower_components/polymer/README.md b/node_modules/@polymer/polymer/bower_components/polymer/README.md deleted file mode 100644 index 2cfffd68..00000000 --- a/node_modules/@polymer/polymer/bower_components/polymer/README.md +++ /dev/null @@ -1,522 +0,0 @@ -# Polymer - -[![Build Status](https://travis-ci.org/Polymer/polymer.svg?branch=master)](https://travis-ci.org/Polymer/polymer) - -Polymer lets you build encapsulated, reusable elements that work just like standard HTML elements, to use in building web applications. - -```html - - - - - - - - -``` - -Check out [polymer-project.org](https://www.polymer-project.org) for all of the library documentation, including getting started guides, tutorials, developer reference, and more. - -Or if you'd just like to download the library, check out our [releases page](https://github.com/polymer/polymer/releases). - -## Polymer 2.0 is out! - -Polymer 2.0 is released, and will be the future focus of Polymer development going forward. We intend to keep the 2.x public API stable barring critical issues. For background and migration information on the 2.x see the [2.0 documentation](https://www.polymer-project.org/2.0/docs/about_20) on the website or the [2.0 section below](#2-0), and we welcome your feedback via [issues](https://github.com/Polymer/polymer/issues/new) or [Slack](https://polymer-slack.herokuapp.com/). - -**To evaluate Polymer 2.0**, please point your bower at the latest `2.0.0` tag for polymer, and be sure load to the `webcomponentsjs/webcomponents-lite.js` or `webcomponentsjs/webcomponents-loader.js` polyfills from the latest `v1.0.0` tag of [`webcomponentsjs`](https://github.com/webcomponents/webcomponentsjs). - -👀 **Looking for Polymer v1.x?** Please see the [the v1 branch](https://github.com/Polymer/polymer/tree/1.x). - -⁉️ **Looking to use Polymer with npm?** Polymer 1.x and 2.x both use `bower` for version management, but v3 and on will use `npm`. Please see our [v3 announcement](https://www.polymer-project.org/blog/2017-08-22-npm-modules.html) and [v3 hand-on](https://www.polymer-project.org/blog/2017-08-23-hands-on-30-preview.html) to use a preview version of v3. -Versions before 3.0 are also published to npm "as-is" and are generally unsupported. These packages are for advanced users who configure their own tooling to work around the differences between Bower and npm packages, like package folder layout. - -## Overview - -Polymer is a lightweight library built on top of the web standards-based [Web Components](http://webcomponents.org/) APIs, and makes it easier to build your very own custom HTML elements. Creating reusable custom elements - and using elements built by others - can make building complex web applications easier and more efficient. By being based on the Web Components API's built in the browser (or [polyfilled](https://github.com/webcomponents/webcomponentsjs) where needed), Polymer elements are interoperable at the browser level, and can be used with other frameworks or libraries that work with modern browsers. - -Among many ways to leverage custom elements, they can be particularly useful for building reusable UI components. Instead of continually re-building a specific navigation bar or button in different frameworks and for different projects, you can define this element once using Polymer, and then reuse it throughout your project or in any future project. - -Polymer provides a declarative syntax to easily create your own custom elements, using all standard web technologies - define the structure of the element with HTML, style it with CSS, and add interactions to the element with JavaScript. - -Polymer also provides optional two-way data-binding, meaning: - -1. When properties in the model for an element get updated, the element can update itself in response. -2. When the element is updated internally, the changes can be propagated back to the model. - -Polymer is designed to be flexible, lightweight, and close to the web platform - the library doesn't invent complex new abstractions and magic, but uses the best features of the web platform in straightforward ways to simply sugar the creation of custom elements. - -In addition to the Polymer library for building your own custom elements, the Polymer project includes a collection of [pre-built elements](https://elements.polymer-project.org) that you can drop on a page and use immediately, or use as starting points for your own custom elements. - -## Polymer in 1 Minute - -Polymer adds convenient features to make it easy to build complex elements: - -**Basic custom element without Polymer:** - -```js -// Standard custom element that Extends HTMLElement -class MyElement extends HTMLElement { - constructor() { - super(); - console.log('my-element was created!'); - } -} - -// Register custom element class with browser -customElements.define('my-element', MyElement); -``` - -```html - - -``` - -**Custom element using Polymer** - -```html - - - - -``` - -```js -// Custom element that extends Polymer base class -class MySimpleNamecard extends Polymer.Element { - - // Stamp template from this dom-module into element's shadow DOM: - static get is() { return 'my-simple-namecard'; } - -} - -// Register custom element class with browser -customElements.define(MySimpleNamecard.is, MySimpleNamecard); -``` - -**Configure properties on your element...** - -```js -// Create an element that takes a property -class MyPropertyNamecard extends Polymer.Element { - - static get is() { return 'my-property-namecard'; } - - // Define property/attribute API: - static get properties() { - return { - myName: { - type: String, - observer: 'myNameChanged' - } - }; - } - - myNameChanged(myName) { - this.textContent = 'Hi! My name is ' + myName; - } - -} - -customElements.define(MyPropertyNamecard.is, MyPropertyNamecard); -``` - -**...and have them set using declarative attributes** - -```html - - -``` - -> Hi! My name is Jim - -**Bind data into your element using the familiar mustache-syntax** - -```html - - - - -``` -```js -class MyBoundNamecard extends Polymer.Element { - - static get is() { return 'my-bound-namecard'; } - - static get properties() { - return { - myName: String - }; - } - -} - -customElements.define(MyBoundNamecard.is, MyBoundNamecard); -``` - -```html - - -``` - -> Hi! My name is Josh - -**Style the internals of your element, without the style leaking out** - -```html - - - - -``` -```js -class MyStyledNamecard extends Polymer.Element { - - static get is() { return 'my-styled-namecard'; } - - static get properties() { - return { - myName: String - }; - } - -} - -customElements.define(MyStyledNamecard.is, MyStyledNamecard); -``` -```html - - -``` - -> Hi! My name is **Jesse** - -**and so much more!** - -Web components are an incredibly powerful new set of primitives baked into the web platform, and open up a whole new world of possibility when it comes to componentizing front-end code and easily creating powerful, immersive, app-like experiences on the web. - -By being based on Web Components, elements built with Polymer are: - -* Built from the platform up -* Self-contained -* Don't require an overarching framework - are interoperable across frameworks -* Re-usable - -## Contributing - -The Polymer team loves contributions from the community! Take a look at our [contributing guide](CONTRIBUTING.md) for more information on how to contribute. - -## Communicating with the Polymer team - -Beyond GitHub, we try to have a variety of different lines of communication available: - -* [Blog](https://blog.polymer-project.org/) -* [Twitter](https://twitter.com/polymer) -* [Google+ community](https://plus.google.com/communities/115626364525706131031) -* [Mailing list](https://groups.google.com/forum/#!forum/polymer-dev) -* [Slack channel](https://bit.ly/polymerslack) - -# License - -The Polymer library uses a BSD-like license that is available [here](./LICENSE.txt) - ------------ - - - -# Polymer 2.0 - -Polymer 2.0 is a major new release of Polymer that is compatible with the latest web components standards and web platform APIs, and makes significant improvements over the 1.x version of the library. The following section provides context and migration information for existing users of Polymer 1.x: - -## Goals of Polymer 2.0 - -1. **Take advantage of native "v1" Web Components implementations across browsers.** - - The primary goal of the Polymer 2.0 release is to take advantage of native, cross-browser support for Web Components. - - Polymer 1.x is built on top of the so-called "v0" Web Components specs, which are supported natively only in Google Chrome; using Polymer in other browsers has always required the use of polyfills. - - Beginning this fall, multiple browsers will be shipping native implementations of the new "v1" specs for Shadow DOM and Custom Elements, yielding better web components performance and reducing the need for polyfills. - - Polymer 2.0 features full support for the v1 specs, taking advantage of native browser implementations where they are available and depending on updated v1 polyfills from [webcomponentsjs](https://github.com/webcomponents/webcomponentsjs) where necessary. - - Polymer 2.0 also embraces the new ES-class-based mechanism for defining custom elements, bringing idiomatic Polymer style closer to "vanilla" custom element authoring. - -1. **Provide a smooth migration path from Polymer 1.x.** - - Our second major goal is to provide as easy a transition as possible for developers who have built elements and apps with Polymer 1.x, making Polymer 2.0 a sturdy bridge to the future. - - To upgrade, you will need to make some changes to your 1.x-based elements and apps. These changes are necessitated by both the v0-to-v1 spec transition and a handful of key improvements in Polymer itself (see our remaining goals, below). - - However, we've taken care to limit the number of changes that are strictly required and to ease the process of upgrading: - - * Polymer 2.0 introduces a new [ES6 class-based syntax](#20-es6-class-based-syntax), but we've provided a [lightweight compatibility layer](#10-compatibility-layer) allowing you to upgrade your 1.x code with minimal modifications. Depending on your needs, you can either take advantage of the compatibility layer or jump straight to idiomatic 2.0 style. - - * Before releasing Polymer 2.0, we'll also provide an upgrade tool to automate as many of the changes (both required and recommended) as possible. - - * Finally, we're working on guidelines for building and testing "hybrid" elements that will run in both Polymer 1.x and Polymer 2.0. We plan to ship hybrid versions of all of the elements that we provide, easing the transition for developers who use them. Third-party element providers may also choose to ship hybrid elements. - - * If you have an especially large app or constraints that don't allow for an all-at-once upgrade, you can also use hybrid elements to migrate your app from 1.x to 2.0 in piecewise fashion: update your elements to hybrid form, individually or in batches, while running against Polymer 1.x; then cut over to Polymer 2.0 when all of your elements have been updated. - -1. **Eliminate leaky abstractions.** - - Seamless interoperability is one of Web Components' major selling points. Generally speaking, web components "just work" anywhere you use HTML elements. To use them, you need only be aware of their public attributes, properties, methods and events; you don't need to know anything about their inner workings. This means you can easily mix standard HTML elements, third-party elements and elements you've defined yourself. - - Unfortunately, there are a couple of cases in Polymer 1.x (the `Polymer.dom` API and the `set`/`notifyPath` API) where implementation details of Polymer-based elements leak out, requiring users of the elements to interact with them in non-standard ways. These "leaks" were by design – compromises we chose to make in the interest of performance – but in hindsight we aren't happy with the tradeoff. - - In Polymer 2.0 we've found ways to eliminate these leaky abstractions without unduly compromising performance, which means that your Polymer 2.x-based elements will be indistinguishable from "vanilla" elements from a consumer's point of view (unless you leak implementation details of your own). - -1. **Make targeted improvements to the Polymer data system.** - - Based on developer feedback and observations of Polymer apps in the wild, we've also made some key improvements to Polymer's data system. These changes are designed to make it easier to reason about and debug the propagation of data through and between elements: - - * Changes are now batched, and the effects of those changes are run in well-defined order. - * We ensure that multi-property observers run exactly once per turn for any set of changes to dependencies (removing the [multi-property undefined rule](https://www.polymer-project.org/1.0/docs/devguide/observers#multi-property-observers)). - * To add compatibility with more approaches to state management, we now provide a mixin (and legacy behavior) to skip dirty-checking properties whose values are objects or arrays and always consider them dirty, causing their side effects to run. - -1. **Improve factoring of Polymer and the polyfills** - - We've done major refactoring of Polymer and the webcomponentsjs polyfills to improve efficiency, utility and flexibility: - - * The "Shady DOM" shim that was part of Polymer 1.x has been factored out of Polymer and added to the webcomponentsjs polyfills, along with the related shim for CSS Custom Properties. (As noted above, the Shady DOM shim no longer exposes an alternative API but instead patches the native DOM API for transparent usage). - - * Polymer itself has been internally factored into several loosely coupled libraries. - - * The new `Polymer.Element` class extends from the native `HTMLElement` and mixes in functionality from these libraries. - - * The idiomatic way of using Polymer 2.0 (assuming you're not using the 1.x compatibility layer) is to define your own custom elements that subclass `Polymer.Element`, using standard ES class definition syntax. - - * If you're interested in using pieces of Polymer's functionality in _a la carte_ fashion, you can try defining your own base element class, utilizing a subset of the libraries. For now, this use case should be considered experimental, as the factoring of libraries is subject to change and is not part of the official Polymer 2.0 API. - -## 1.0 Compatibility Layer -Polymer 2.0 retains the existing `polymer/polymer.html` import that current Polymer 1.0 users can continue to import, which strives to provide a very minimally-breaking change for code written to the Polymer 1.0 API. For the most part, existing users upgrading to Polymer 2.0 will only need to adapt existing code to be compliant with the V1 Shadow DOM API related to content distribution and styling, as well as minor breaking changes introduced due to changes in the V1 Custom Elements spec and data-layer improvements listed [below](#breaking-changes). - -## 2.0 ES6 Class-based Syntax -With the widespread adoption of ES6 in browsers, as well as the requirement that V1 Custom Elements be defined as ES6 class extensions of `HTMLElement`, Polymer 2.0 shifts its primary API for defining new elements to an ES6 class-centric syntax. Using this syntax, users will extend `Polymer.Element` (a subclass of `HTMLElement`), which provides meta-programming for most of the same features of Polymer 1.0 based on static configuration data supplied on the class definition. - -Basic syntax looks like this: - -```html - - -``` - -```js -// Extend Polymer.Element base class -class MyElement extends Polymer.Element { - static get is() { return 'my-element'; } - static get properties() { return { /* properties metadata */ } } - static get observers() { return [ /* observer descriptors */ ] } - constructor() { - super(); - ... - } - connectedCallback() { - super.connectedCallback(); - ... - } - ... -} - -// Register custom element definition using standard platform API -customElements.define(MyElement.is, MyElement); -``` - -Users can then leverage native subclassing support provided by ES6 to extend and customize existing elements defined using ES6 syntax: - -```js -// Subclass existing element -class MyElementSubclass extends MyElement { - static get is() { return 'my-element-subclass'; } - static get properties() { return { /* properties metadata */ } } - static get observers() { return [ /* observer descriptors */ ] } - constructor() { - super(); - ... - } - ... -} - -// Register custom element definition using standard platform API -customElements.define(MyElementSubclass.is, MyElementSubclass); -``` - -Below are the general steps for defining a custom element using this new syntax: - -* Extend from `Polymer.Element`. This class provides the minimal surface area to integrate with 2.0's data binding system. It provides only standard custom element lifecycle with the addition of `ready`. (You can apply the `Polymer.LegacyElementMixin` to get all of the Polymer 1.0 element API, but since most of this API was rarely used, this should not often be needed.) -* Implement "behaviors" as [mixins that return class expressions](http://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes/) and apply to the base class you are extending from. -* Property metadata (`properties`) and multi-property/wildcard observers (`observers`) should be put on the class as static getters, but otherwise match the 1.x syntax. -* In order to provide a template to stamp into the element's shadow DOM, either define a static `is` getter that returns the id of a `dom-module` containing the element's template, or else provide a static `template` getter that returns a template to stamp. The `template` getter may either return an HTMLTemplateElement or a string containing HTML which will be parsed into a template. -* `listeners` and `hostAttributes` have been removed from element metadata; listeners and attributes should be installed using standard platform API (`this.addEventListener`, `this.setAttribute`) how and when needed (e.g. in `connectedCallback`). For convenience `_ensureAttribute` is available that sets an attribute if and only if the element does not yet have that attribute, to match `hostAttribute` semantics. - -Note that `Polymer.Element` provides a cleaner base class void of a lot of sugared utility API that present on elements defined with `Polymer()`, such as `fire`, `transform`, etc. With web platform surface area becoming far more stable across browsers, we intend to hew towards sugaring less and embracing the raw platform API more. So when using `Polymer.Element`, instead of using the legacy `this.fire('some-event')` API, simply use the equivalent platform API's such as `this.dispatchEvent(new CustomEvent('some-event', {bubbles: true})`. #usetheplatform - -See below for a visual guide on migrating Polymer 1.0's declarative syntax to the ES6 class syntax in Polymer 2.0: - -![Difference in Polymer 1.0 and Polymer 2.0 element definition](img/migration.png) - -## Polyfills - -Polymer 2.0 has been developed alongside and tested with a new suite of V1-spec compatible polyfills for Custom Elements and Shadow DOM. Polymer 2.0 is compatible the latest releases of [`webcomponentsjs/webcomponents-lite.js`](https://github.com/webcomponents/webcomponentsjs), which is included as a bower dependency to Polymer 2.x. - -## Breaking Changes -Below is a list of intentional breaking changes made in Polymer 2.0, along with their rationale/justification and migration guidance. If you find changes that broke existing code not documented here, please [file an issue](https://github.com/Polymer/polymer/issues/new) and we'll investigate to determine whether they are expected/intentional or not. - - -### Polymer.dom -On browsers that lack native V1 Shadow DOM support, Polymer 2.0 is designed to be used with the new [V1 Shady DOM shim](https://github.com/webcomponents/shadydom), which patches native DOM API as necessary to be mostly equivalent to native Shadow DOM. This removes the requirement to use the `Polymer.dom` API when interacting with the DOM. `Polymer.dom` can be eliminated for elements targeting Polymer 2.0, in favor of the native DOM API's. - -Note that `Polymer.dom` is still provided in the `polymer.html` backward-compatibility layer which simply facades the native API, but usage of it in 2.0 can be removed. Note that `Polymer.dom` will no longer return `Array`s for API's where the platform returns e.g. `NodeList`'s, so code may need to be updated to avoid direct use of array methods. - -### V1 Shadow DOM -Polymer 2.0 elements will stamp their templates into shadow roots created using V1's `attachShadow({mode: 'open'})` by default. As such, user code related to scoped styling, distribution, and events must be adapted to native V1 API. For a great writeup on all Shadow DOM V1 spec changes, [see this writeup](http://hayato.io/2016/shadowdomv1/). Required changes for V1 are summarized below: - -#### Distribution -* `` insertion points must be changed to `` -* Insertion points that selected content via `` must be changed to named slots: `` -* Selection of distributed content into named slots must use `slot="..."` rather than tag/class/attributes selected by `` -* Re-distributing content by placing a `` into an element that itself has named slots requires placing a `name` attribute on the `` to indicate what content _it_ selects from its host children, and placing a `slot` attribute to indicate where its selected content should be slotted into its parent -* In the V1 "Shady DOM" shim, initial distribution of children into `` is asynchronous (microtask) to creating the `shadowRoot`, meaning distribution occurs after observers/`ready` (in Polymer 1.0's shim, initial distribution occurred before `ready`). In order to force distribution synchronously, call `ShadyDOM.flush()`. -* Calling `Polymer.dom.flush` no longer results in callbacks registered with `Polymer.dom.observeNodes` being called. Instead, the object returned from `Polymer.dom.observeNodes` now contains a `flush` method which can be used to immediately call the registered callback if any changes are pending. - -#### Scoped styling - -* `::content` CSS pseudo-selectors must be changed to `::slotted`, and may only target immediate children and use no descendant selectors -* `:host-context()` pseudo-selectors have been removed. These were primarily useful for writing bi-directional rules (e.g. `:host-context([dir=rtl])`); these should be replaced with the [new `:dir(rtl)` selector](https://developer.mozilla.org/en-US/docs/Web/CSS/:dir), which we plan to polyfill in the [styling shim](https://github.com/webcomponents/shadycss) soon -* The previously deprecated `/deep/` and `::shadow` selectors have been completely removed from V1 native support and must not be used (use [CSS custom properties](https://www.polymer-project.org/1.0/docs/devguide/styling#custom-css-properties) to customize styling instead) - -#### Scoped events - -* Code using `Polymer.dom(event).localTarget` should change to the V1 standard API `event.target` -* Code using `Polymer.dom(event).path` (aka V0 `event.path`) should change to the V1 standard API `event.composedPath()` -* Code using `Polymer.dom(event).rootTarget` (aka V0 `event.path[0]`) should change to the V1 standard API `event.composedPath()[0]` - -### V1 Custom Elements -Polymer 2.0 elements will target the V1 Custom Elements API, which primarily changes the "created" step to actually invoke the `class` constructor, imposes new restrictions on what can be done in the `constructor` (previously `createdCallback`), and introduces different callback names. - -* Changes to callback names: - * When using `Polymer({...})` from the compatibility layer, all callbacks should use legacy Polymer API names (`created`, `attached`, `detached`, `attributeChanged`) - * When extending from `Polymer.Element`, users should override the V1 standard callback names and call `super()`: - * `created` changes to `constructor` - * `attached` changes to `connectedCallback` - * `detached` changes to `disconnectedCallback` - * `attributeChanged` changes to `attributeChangedCallback` -* The V1 Custom Elements spec forbids reading attributes, children, or parent information from the DOM API in the `constructor` (or `created` when using the legacy API). Likewise, attributes and children may not be added in the `constructor`. Any such work must be deferred (e.g. until `connectedCallback` or microtask/`setTimeout`/`requestAnimationFrame`). -* Polymer will no longer produce type-extension elements (aka `is="..."`). Although they are still included in the V1 Custom Elements [spec](https://html.spec.whatwg.org/#custom-elements-customized-builtin-example) and scheduled for implementation in Chrome, because Apple [has stated](https://github.com/w3c/webcomponents/issues/509#issuecomment-233419167) it will not implement `is`, we will not be encouraging its use to avoid indefinite reliance on the Custom Elements polyfill. Instead, a wrapper custom element can surround a native element, e.g. `...` could become `...`. Users will need to change existing `is` elements where necessary. -* All template type extensions provided by Polymer have now been changed to standard custom elements that take a `"},set:function(a){if(this.parentNode){da.body.innerHTML=a;for(a=this.ownerDocument.createDocumentFragment();da.body.firstChild;)m.call(a, +da.body.firstChild);n.call(this.parentNode,a,this)}else throw Error("Failed to set the 'outerHTML' property on 'Element': This element has no parent node.");},configurable:!0})};l(a.prototype);D(a.prototype);a.a=function(c){c=b(c,"template");for(var d=0,e=c.length,f;d]/g,Ic=function(a){switch(a){case "&":return"&";case "<":return"<";case ">":return">";case '"':return""";case "\u00a0":return" "}};q=function(a){for(var b={},c=0;c";break a;case Node.TEXT_NODE:h=h.data;h=k&&rf[k.localName]?h:h.replace(pf,Ic);break a; +case Node.COMMENT_NODE:h="\x3c!--"+h.data+"--\x3e";break a;default:throw window.console.error(h),Error("not implemented");}}c+=h}return c}}if(c||mf){a.b=function(a,b){var c=f.call(a,!1);this.R&&this.R(c);b&&(m.call(c.content,f.call(a.content,!0)),ub(c.content,a.content));return c};var ub=function(c,d){if(d.querySelectorAll&&(d=b(d,"template"),0!==d.length)){c=b(c,"template");for(var e=0,f=c.length,g,h;e]/g;function mc(a){switch(a){case "&":return"&";case "<":return"<";case ">":return">";case '"':return""";case "\u00a0":return" "}}function nc(a){for(var b={},c=0;c";break a;case Node.TEXT_NODE:h=h.data;h=k&&pc[k.localName]?h:h.replace(lc,mc);break a;case Node.COMMENT_NODE:h="\x3c!--"+h.data+"--\x3e";break a;default:throw window.console.error(h), -Error("not implemented");}}c+=h}return c};var F={},G=document.createTreeWalker(document,NodeFilter.SHOW_ALL,null,!1),I=document.createTreeWalker(document,NodeFilter.SHOW_ELEMENT,null,!1);function rc(a){var b=[];G.currentNode=a;for(a=G.firstChild();a;)b.push(a),a=G.nextSibling();return b}F.parentNode=function(a){G.currentNode=a;return G.parentNode()};F.firstChild=function(a){G.currentNode=a;return G.firstChild()};F.lastChild=function(a){G.currentNode=a;return G.lastChild()};F.previousSibling=function(a){G.currentNode=a;return G.previousSibling()}; -F.nextSibling=function(a){G.currentNode=a;return G.nextSibling()};F.childNodes=rc;F.parentElement=function(a){I.currentNode=a;return I.parentNode()};F.firstElementChild=function(a){I.currentNode=a;return I.firstChild()};F.lastElementChild=function(a){I.currentNode=a;return I.lastChild()};F.previousElementSibling=function(a){I.currentNode=a;return I.previousSibling()};F.nextElementSibling=function(a){I.currentNode=a;return I.nextSibling()}; -F.children=function(a){var b=[];I.currentNode=a;for(a=I.firstChild();a;)b.push(a),a=I.nextSibling();return Gb(b)};F.innerHTML=function(a){return qc(a,function(a){return rc(a)})};F.textContent=function(a){switch(a.nodeType){case Node.ELEMENT_NODE:case Node.DOCUMENT_FRAGMENT_NODE:a=document.createTreeWalker(a,NodeFilter.SHOW_TEXT,null,!1);for(var b="",c;c=a.nextNode();)b+=c.nodeValue;return b;default:return a.nodeValue}};var J={},sc=z.K,tc=[Node.prototype,Element.prototype,HTMLElement.prototype];function K(a){var b;a:{for(b=0;be.assignedNodes.length&&(e.ea=!0)}e.ea&&(e.ea=!1,Rd(this,c))}b=this.m;c=[];for(e=0;ec.indexOf(d))||c.push(d);for(b=0;b]/g;function bc(a){switch(a){case "&":return"&";case "<":return"<";case ">":return">";case '"':return""";case "\u00a0":return" "}}function cc(a){for(var b={},c=0;c";break a;case Node.TEXT_NODE:h=h.data;h=k&&ec[k.localName]?h:h.replace(ac,bc);break a;case Node.COMMENT_NODE:h="\x3c!--"+h.data+"--\x3e";break a;default:throw window.console.error(h), +Error("not implemented");}}c+=h}return c};var F=document.createTreeWalker(document,NodeFilter.SHOW_ALL,null,!1),G=document.createTreeWalker(document,NodeFilter.SHOW_ELEMENT,null,!1);function gc(a){var b=[];F.currentNode=a;for(a=F.firstChild();a;)b.push(a),a=F.nextSibling();return b} +var I={parentNode:function(a){F.currentNode=a;return F.parentNode()},firstChild:function(a){F.currentNode=a;return F.firstChild()},lastChild:function(a){F.currentNode=a;return F.lastChild()},previousSibling:function(a){F.currentNode=a;return F.previousSibling()},nextSibling:function(a){F.currentNode=a;return F.nextSibling()}};I.childNodes=gc;I.parentElement=function(a){G.currentNode=a;return G.parentNode()};I.firstElementChild=function(a){G.currentNode=a;return G.firstChild()}; +I.lastElementChild=function(a){G.currentNode=a;return G.lastChild()};I.previousElementSibling=function(a){G.currentNode=a;return G.previousSibling()};I.nextElementSibling=function(a){G.currentNode=a;return G.nextSibling()};I.children=function(a){var b=[];G.currentNode=a;for(a=G.firstChild();a;)b.push(a),a=G.nextSibling();return wb(b)};I.innerHTML=function(a){return fc(a,function(a){return gc(a)})}; +I.textContent=function(a){switch(a.nodeType){case Node.ELEMENT_NODE:case Node.DOCUMENT_FRAGMENT_NODE:a=document.createTreeWalker(a,NodeFilter.SHOW_TEXT,null,!1);for(var b="",c;c=a.nextNode();)b+=c.nodeValue;return b;default:return a.nodeValue}};var hc=z.K,ic=[Node.prototype,Element.prototype,HTMLElement.prototype];function J(a){var b;a:{for(b=0;be.assignedNodes.length&&(e.da=!0)}e.da&&(e.da=!1,Hd(this,c))}b=this.o;c=[];for(e=0;ec.indexOf(d))||c.push(d);for(b=0;b "+b}))}a=a.replace(Ag,function(a,b,c){return'[dir="'+c+'"] '+b+", "+b+'[dir="'+c+'"]'});return{value:a,Ta:b,stop:f}}function yg(a,b){a=a.split(Bg);a[0]+=b;return a.join(Bg)} -function xg(a,b){var c=a.match(Cg);return(c=c&&c[2].trim()||"")?c[0].match(Dg)?a.replace(Cg,function(a,c,f){return b+f}):c.split(Dg)[0]===b?c:Eg:a.replace(tg,b)}function Fg(a){a.selector===Gg&&(a.selector="html")}eg.prototype.c=function(a){return a.match(wg)?this.b(a,Hg):yg(a.trim(),Hg)};ba.Object.defineProperties(eg.prototype,{a:{configurable:!0,enumerable:!0,get:function(){return"style-scope"}}}); -var rg=/:(nth[-\w]+)\(([^)]+)\)/,Hg=":not(.style-scope)",pg=",",ug=/(^|[\s>+~]+)((?:\[.+?\]|[^\s>+~=[])+)/g,Dg=/[[.:#*]/,tg=":host",Gg=":root",wg="::slotted",sg=new RegExp("^("+wg+")"),Cg=/(:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/,zg=/(?:::slotted)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/,Ag=/(.*):dir\((?:(ltr|rtl))\)/,ng=".",Bg=":",jg="class",Eg="should_not_match",gg=new eg;function Ig(a,b,c,d){this.M=a||null;this.b=b||null;this.ua=c||[];this.T=null;this.X=d||"";this.a=this.I=this.O=null}function Jg(a){return a?a.__styleInfo:null}function Kg(a,b){return a.__styleInfo=b}Ig.prototype.c=function(){return this.M};Ig.prototype._getStyleRules=Ig.prototype.c;function Lg(a){var b=this.matches||this.matchesSelector||this.mozMatchesSelector||this.msMatchesSelector||this.oMatchesSelector||this.webkitMatchesSelector;return b&&b.call(this,a)}var Mg=navigator.userAgent.match("Trident");function Ng(){}function Og(a){var b={},c=[],d=0;Wf(a,function(a){Pg(a);a.index=d++;a=a.B.cssText;for(var c;c=Qf.exec(a);){var e=c[1];":"!==c[2]&&(b[e]=!0)}},function(a){c.push(a)});a.b=c;a=[];for(var e in b)a.push(e);return a} -function Pg(a){if(!a.B){var b={},c={};Qg(a,c)&&(b.L=c,a.rules=null);b.cssText=a.parsedCssText.replace(Tf,"").replace(Of,"");a.B=b}}function Qg(a,b){var c=a.B;if(c){if(c.L)return Object.assign(b,c.L),!0}else{c=a.parsedCssText;for(var d;a=Of.exec(c);){d=(a[2]||a[3]).trim();if("inherit"!==d||"unset"!==d)b[a[1].trim()]=d;d=!0}return d}} -function Rg(a,b,c){b&&(b=0<=b.indexOf(";")?Sg(a,b,c):bg(b,function(b,e,f,g){if(!e)return b+g;(e=Rg(a,c[e],c))&&"initial"!==e?"apply-shim-inherit"===e&&(e="inherit"):e=Rg(a,c[f]||f,c)||f;return b+(e||"")+g}));return b&&b.trim()||""} -function Sg(a,b,c){b=b.split(";");for(var d=0,e,f;d *"===f||"html"===f,h=0===f.indexOf(":host")&&!g;"shady"===c&&(g=f===e+" > *."+e||-1!==f.indexOf("html"),h=!g&&0===f.indexOf(e));"shadow"===c&&(g=":host > *"===f||"html"===f,h=h&&!g);if(g||h)c=e,h&&(b.G||(b.G=og(gg,b,gg.b,a?ng+a:"",e)),c=b.G||e),d({$a:c,Xa:h,Ab:g})}} -function Vg(a,b){var c={},d={},e=b&&b.__cssBuild;Wf(b,function(b){Ug(a,b,e,function(e){Lg.call(a.mb||a,e.$a)&&(e.Xa?Qg(b,c):Qg(b,d))})},null,!0);return{Za:d,Wa:c}} -function Wg(a,b,c,d){var e=dg(b),f=mg(e.is,e.X),g=new RegExp("(?:^|[^.#[:])"+(b.extends?"\\"+f.slice(0,-1)+"\\]":f)+"($|[.:[\\s>+~])");e=Jg(b).M;var h=Xg(e,d);return kg(b,e,function(b){var e="";b.B||Pg(b);b.B.cssText&&(e=Sg(a,b.B.cssText,c));b.cssText=e;if(!U&&!Yf(b)&&b.cssText){var k=e=b.cssText;null==b.Ca&&(b.Ca=Rf.test(e));if(b.Ca)if(null==b.fa){b.fa=[];for(var p in h)k=h[p],k=k(e),e!==k&&(e=k,b.fa.push(p))}else{for(p=0;p=m._useCount&&m.parentNode&&m.parentNode.removeChild(m));U?f.a?(f.a.textContent=e,d=f.a):e&&(d=Zf(e,h,a.shadowRoot,f.b)):d? -d.parentNode||(Mg&&-1b&&-1==[34,35,60,62,63,96].indexOf(b)?a:encodeURIComponent(a)}function d(a){var b=a.charCodeAt(0);return 32b&&-1==[34,35,60,62,96].indexOf(b)?a:encodeURIComponent(a)}function e(a,e,g){function h(a){pb.push(a)}var k=e||"scheme start",A=0,q="",B=!1,Da=!1,pb=[];a:for(;(void 0!=a[A-1]||0==A)&&!this.h;){var l=a[A];switch(k){case "scheme start":if(l&&p.test(l))q+= -l.toLowerCase(),k="scheme";else if(e){h("Invalid scheme.");break a}else{q="";k="no scheme";continue}break;case "scheme":if(l&&H.test(l))q+=l.toLowerCase();else if(":"==l){this.g=q;q="";if(e)break a;void 0!==m[this.g]&&(this.D=!0);k="file"==this.g?"relative":this.D&&g&&g.g==this.g?"relative or authority":this.D?"authority first slash":"scheme data"}else if(e){void 0!=l&&h("Code point not allowed in scheme: "+l);break a}else{q="";A=0;k="no scheme";continue}break;case "scheme data":"?"==l?(this.u="?", -k="query"):"#"==l?(this.C="#",k="fragment"):void 0!=l&&"\t"!=l&&"\n"!=l&&"\r"!=l&&(this.qa+=c(l));break;case "no scheme":if(g&&void 0!==m[g.g]){k="relative";continue}else h("Missing scheme."),f.call(this),this.h=!0;break;case "relative or authority":if("/"==l&&"/"==a[A+1])k="authority ignore slashes";else{h("Expected /, got: "+l);k="relative";continue}break;case "relative":this.D=!0;"file"!=this.g&&(this.g=g.g);if(void 0==l){this.i=g.i;this.s=g.s;this.j=g.j.slice();this.u=g.u;this.v=g.v;this.f=g.f; -break a}else if("/"==l||"\\"==l)"\\"==l&&h("\\ is an invalid code point."),k="relative slash";else if("?"==l)this.i=g.i,this.s=g.s,this.j=g.j.slice(),this.u="?",this.v=g.v,this.f=g.f,k="query";else if("#"==l)this.i=g.i,this.s=g.s,this.j=g.j.slice(),this.u=g.u,this.C="#",this.v=g.v,this.f=g.f,k="fragment";else{k=a[A+1];var E=a[A+2];if("file"!=this.g||!p.test(l)||":"!=k&&"|"!=k||void 0!=E&&"/"!=E&&"\\"!=E&&"?"!=E&&"#"!=E)this.i=g.i,this.s=g.s,this.v=g.v,this.f=g.f,this.j=g.j.slice(),this.j.pop();k= -"relative path";continue}break;case "relative slash":if("/"==l||"\\"==l)"\\"==l&&h("\\ is an invalid code point."),k="file"==this.g?"file host":"authority ignore slashes";else{"file"!=this.g&&(this.i=g.i,this.s=g.s,this.v=g.v,this.f=g.f);k="relative path";continue}break;case "authority first slash":if("/"==l)k="authority second slash";else{h("Expected '/', got: "+l);k="authority ignore slashes";continue}break;case "authority second slash":k="authority ignore slashes";if("/"!=l){h("Expected '/', got: "+ -l);continue}break;case "authority ignore slashes":if("/"!=l&&"\\"!=l){k="authority";continue}else h("Expected authority, got: "+l);break;case "authority":if("@"==l){B&&(h("@ already seen."),q+="%40");B=!0;for(l=0;l "+b}))}a=a.replace(wg,function(a,b,c){return'[dir="'+c+'"] '+b+", "+b+'[dir="'+c+'"]'});return{value:a,Qa:b,stop:f}}function ug(a,b){a=a.split(xg);a[0]+=b;return a.join(xg)} +function tg(a,b){var c=a.match(yg);return(c=c&&c[2].trim()||"")?c[0].match(zg)?a.replace(yg,function(a,c,f){return b+f}):c.split(zg)[0]===b?c:Ag:a.replace(pg,b)}function Bg(a){a.selector===Cg&&(a.selector="html")}Xf.prototype.c=function(a){return a.match(pg)?"":a.match(sg)?this.b(a,Dg):ug(a.trim(),Dg)};ba.Object.defineProperties(Xf.prototype,{a:{configurable:!0,enumerable:!0,get:function(){return"style-scope"}}}); +var kg=/:(nth[-\w]+)\(([^)]+)\)/,Dg=":not(.style-scope)",ig=",",qg=/(^|[\s>+~]+)((?:\[.+?\]|[^\s>+~=[])+)/g,zg=/[[.:#*]/,pg=":host",Cg=":root",sg="::slotted",og=new RegExp("^("+sg+")"),yg=/(:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/,vg=/(?:::slotted)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/,wg=/(.*):dir\((?:(ltr|rtl))\)/,gg=".",xg=":",ag="class",Ag="should_not_match",mg=/:(?:matches|any|-(?:webkit|moz)-any)/,W=new Xf;function Eg(a,b,c,d){this.M=a||null;this.b=b||null;this.pa=c||[];this.T=null;this.X=d||"";this.a=this.I=this.O=null}function X(a){return a?a.__styleInfo:null}function Fg(a,b){return a.__styleInfo=b}Eg.prototype.c=function(){return this.M};Eg.prototype._getStyleRules=Eg.prototype.c;function Gg(a){var b=this.matches||this.matchesSelector||this.mozMatchesSelector||this.msMatchesSelector||this.oMatchesSelector||this.webkitMatchesSelector;return b&&b.call(this,a)}var Hg=navigator.userAgent.match("Trident");function Ig(){}function Jg(a){var b={},c=[],d=0;Lf(a,function(a){Kg(a);a.index=d++;a=a.B.cssText;for(var c;c=Ff.exec(a);){var e=c[1];":"!==c[2]&&(b[e]=!0)}},function(a){c.push(a)});a.b=c;a=[];for(var e in b)a.push(e);return a} +function Kg(a){if(!a.B){var b={},c={};Lg(a,c)&&(b.L=c,a.rules=null);b.cssText=a.parsedCssText.replace(If,"").replace(Df,"");a.B=b}}function Lg(a,b){var c=a.B;if(c){if(c.L)return Object.assign(b,c.L),!0}else{c=a.parsedCssText;for(var d;a=Df.exec(c);){d=(a[2]||a[3]).trim();if("inherit"!==d||"unset"!==d)b[a[1].trim()]=d;d=!0}return d}} +function Mg(a,b,c){b&&(b=0<=b.indexOf(";")?Ng(a,b,c):Tf(b,function(b,e,f,g){if(!e)return b+g;(e=Mg(a,c[e],c))&&"initial"!==e?"apply-shim-inherit"===e&&(e="inherit"):e=Mg(a,c[f]||f,c)||f;return b+(e||"")+g}));return b&&b.trim()||""} +function Ng(a,b,c){b=b.split(";");for(var d=0,e,f;d *"===f||"html"===f,h=0===f.indexOf(":host")&&!g;"shady"===c&&(g=f===e+" > *."+e||-1!==f.indexOf("html"),h=!g&&0===f.indexOf(e));"shadow"===c&&(g=":host > *"===f||"html"===f,h=h&&!g);if(g||h)c=e,h&&(b.F||(b.F=hg(W,b,W.b,a?gg+a:"",e)),c=b.F||e),d({ra:c,Wa:h,xb:g})}} +function Qg(a,b){var c={},d={},e=b&&b.__cssBuild;Lf(b,function(b){Pg(a,b,e,function(e){Gg.call(a.lb||a,e.ra)&&(e.Wa?Lg(b,c):Lg(b,d))})},null,!0);return{$a:d,Ua:c}} +function Rg(a,b,c,d){var e=Vf(b),f=fg(e.is,e.X),g=new RegExp("(?:^|[^.#[:])"+(b.extends?"\\"+f.slice(0,-1)+"\\]":f)+"($|[.:[\\s>+~])");e=X(b).M;var h=Sg(e,d);return dg(b,e,function(b){var e="";b.B||Kg(b);b.B.cssText&&(e=Ng(a,b.B.cssText,c));b.cssText=e;if(!U&&!Nf(b)&&b.cssText){var k=e=b.cssText;null==b.ya&&(b.ya=Gf.test(e));if(b.ya)if(null==b.ea){b.ea=[];for(var p in h)k=h[p],k=k(e),e!==k&&(e=k,b.ea.push(p))}else{for(p=0;p=m._useCount&&m.parentNode&&m.parentNode.removeChild(m));U?f.a?(f.a.textContent=e,d=f.a):e&&(d=Of(e,h,a.shadowRoot,f.b)):d? +d.parentNode||(Hg&&-1b&&-1==[34,35,60,62,63,96].indexOf(b)?a:encodeURIComponent(a)}function d(a){var b=a.charCodeAt(0);return 32b&&-1==[34,35,60,62,96].indexOf(b)?a:encodeURIComponent(a)}function e(a,e,g){function h(a){sb.push(a)}var k=e||"scheme start",A=0,q="",B=!1,va=!1,sb=[];a:for(;(void 0!=a[A-1]||0==A)&&!this.i;){var l=a[A];switch(k){case "scheme start":if(l&&p.test(l))q+= +l.toLowerCase(),k="scheme";else if(e){h("Invalid scheme.");break a}else{q="";k="no scheme";continue}break;case "scheme":if(l&&H.test(l))q+=l.toLowerCase();else if(":"==l){this.h=q;q="";if(e)break a;void 0!==m[this.h]&&(this.D=!0);k="file"==this.h?"relative":this.D&&g&&g.h==this.h?"relative or authority":this.D?"authority first slash":"scheme data"}else if(e){void 0!=l&&h("Code point not allowed in scheme: "+l);break a}else{q="";A=0;k="no scheme";continue}break;case "scheme data":"?"==l?(this.u="?", +k="query"):"#"==l?(this.C="#",k="fragment"):void 0!=l&&"\t"!=l&&"\n"!=l&&"\r"!=l&&(this.na+=c(l));break;case "no scheme":if(g&&void 0!==m[g.h]){k="relative";continue}else h("Missing scheme."),f.call(this),this.i=!0;break;case "relative or authority":if("/"==l&&"/"==a[A+1])k="authority ignore slashes";else{h("Expected /, got: "+l);k="relative";continue}break;case "relative":this.D=!0;"file"!=this.h&&(this.h=g.h);if(void 0==l){this.j=g.j;this.s=g.s;this.l=g.l.slice();this.u=g.u;this.v=g.v;this.g=g.g; +break a}else if("/"==l||"\\"==l)"\\"==l&&h("\\ is an invalid code point."),k="relative slash";else if("?"==l)this.j=g.j,this.s=g.s,this.l=g.l.slice(),this.u="?",this.v=g.v,this.g=g.g,k="query";else if("#"==l)this.j=g.j,this.s=g.s,this.l=g.l.slice(),this.u=g.u,this.C="#",this.v=g.v,this.g=g.g,k="fragment";else{k=a[A+1];var D=a[A+2];if("file"!=this.h||!p.test(l)||":"!=k&&"|"!=k||void 0!=D&&"/"!=D&&"\\"!=D&&"?"!=D&&"#"!=D)this.j=g.j,this.s=g.s,this.v=g.v,this.g=g.g,this.l=g.l.slice(),this.l.pop();k= +"relative path";continue}break;case "relative slash":if("/"==l||"\\"==l)"\\"==l&&h("\\ is an invalid code point."),k="file"==this.h?"file host":"authority ignore slashes";else{"file"!=this.h&&(this.j=g.j,this.s=g.s,this.v=g.v,this.g=g.g);k="relative path";continue}break;case "authority first slash":if("/"==l)k="authority second slash";else{h("Expected '/', got: "+l);k="authority ignore slashes";continue}break;case "authority second slash":k="authority ignore slashes";if("/"!=l){h("Expected '/', got: "+ +l);continue}break;case "authority ignore slashes":if("/"!=l&&"\\"!=l){k="authority";continue}else h("Expected authority, got: "+l);break;case "authority":if("@"==l){B&&(h("@ already seen."),q+="%40");B=!0;for(l=0;l.\n var capturedCloneNode = Node.prototype.cloneNode;\n var capturedCreateElement = Document.prototype.createElement;\n var capturedImportNode = Document.prototype.importNode;\n var capturedRemoveChild = Node.prototype.removeChild;\n var capturedAppendChild = Node.prototype.appendChild;\n var capturedReplaceChild = Node.prototype.replaceChild;\n var capturedParseFromString = DOMParser.prototype.parseFromString;\n var capturedHTMLElementInnerHTML = Object.getOwnPropertyDescriptor(window.HTMLElement.prototype, 'innerHTML');\n var capturedChildNodes = Object.getOwnPropertyDescriptor(window.Node.prototype, 'childNodes');\n\n var elementQuerySelectorAll = Element.prototype.querySelectorAll;\n var docQuerySelectorAll = Document.prototype.querySelectorAll;\n var fragQuerySelectorAll = DocumentFragment.prototype.querySelectorAll;\n\n var scriptSelector = 'script:not([type]),script[type=\"application/javascript\"],script[type=\"text/javascript\"]';\n\n function QSA(node, selector) {\n // IE 11 throws a SyntaxError with `scriptSelector` if the node has no children due to the `:not([type])` syntax\n if (!node.childNodes.length) {\n return [];\n }\n switch (node.nodeType) {\n case Node.DOCUMENT_NODE:\n return docQuerySelectorAll.call(node, selector);\n case Node.DOCUMENT_FRAGMENT_NODE:\n return fragQuerySelectorAll.call(node, selector);\n default:\n return elementQuerySelectorAll.call(node, selector);\n }\n }\n\n // returns true if nested templates cannot be cloned (they cannot be on\n // some impl's like Safari 8 and Edge)\n // OR if cloning a document fragment does not result in a document fragment\n var needsCloning = (function() {\n if (!needsTemplate) {\n var t = document.createElement('template');\n var t2 = document.createElement('template');\n t2.content.appendChild(document.createElement('div'));\n t.content.appendChild(t2);\n var clone = t.cloneNode(true);\n return (clone.content.childNodes.length === 0 || clone.content.firstChild.content.childNodes.length === 0\n || brokenDocFragment);\n }\n })();\n\n var TEMPLATE_TAG = 'template';\n var PolyfilledHTMLTemplateElement = function() {};\n\n if (needsTemplate) {\n\n var contentDoc = document.implementation.createHTMLDocument('template');\n var canDecorate = true;\n\n var templateStyle = document.createElement('style');\n templateStyle.textContent = TEMPLATE_TAG + '{display:none;}';\n\n var head = document.head;\n head.insertBefore(templateStyle, head.firstElementChild);\n\n /**\n Provides a minimal shim for the