diff --git a/.nojekyll b/.nojekyll deleted file mode 100644 index e69de29..0000000 diff --git a/1561b424aaef2f704bbd89155b3ce514.woff2 b/1561b424aaef2f704bbd89155b3ce514.woff2 new file mode 100644 index 0000000..723a323 Binary files /dev/null and b/1561b424aaef2f704bbd89155b3ce514.woff2 differ diff --git a/1f35e6a11d27d2e10d28946d42332dc5.woff2 b/1f35e6a11d27d2e10d28946d42332dc5.woff2 new file mode 100644 index 0000000..2917239 Binary files /dev/null and b/1f35e6a11d27d2e10d28946d42332dc5.woff2 differ diff --git a/3c37aa69cd77e6a53a067170fa8fe2e9.woff2 b/3c37aa69cd77e6a53a067170fa8fe2e9.woff2 new file mode 100644 index 0000000..0707d9a Binary files /dev/null and b/3c37aa69cd77e6a53a067170fa8fe2e9.woff2 differ diff --git a/3cf6adf61054c328b1b0ddcd8f9ce24d.woff b/3cf6adf61054c328b1b0ddcd8f9ce24d.woff new file mode 100644 index 0000000..e401bcf Binary files /dev/null and b/3cf6adf61054c328b1b0ddcd8f9ce24d.woff differ diff --git a/44b78f142603eb69f593ed4002ed7a4a.woff b/44b78f142603eb69f593ed4002ed7a4a.woff new file mode 100644 index 0000000..175d076 Binary files /dev/null and b/44b78f142603eb69f593ed4002ed7a4a.woff differ diff --git a/5136cbe62a63604402f2fedb97f246f8.woff2 b/5136cbe62a63604402f2fedb97f246f8.woff2 new file mode 100644 index 0000000..5bd7bd6 Binary files /dev/null and b/5136cbe62a63604402f2fedb97f246f8.woff2 differ diff --git a/README.md b/README.md index 6bc7996..aed35fd 100644 --- a/README.md +++ b/README.md @@ -3,4 +3,7 @@ React-Materialize The documentation site. -If build does not work, create a dist folder manually and re-run. +## Building + +In the react-materialize project, cd into the DOCS folder and run +`npm run build` then copy the contents of `assets/*` to this folder. diff --git a/application.css b/application.css new file mode 100644 index 0000000..68b3d81 --- /dev/null +++ b/application.css @@ -0,0 +1,11 @@ +.materialize-red{background-color:#e51c23!important}.materialize-red-text{color:#e51c23!important}.materialize-red.lighten-5{background-color:#fdeaeb!important}.materialize-red-text.text-lighten-5{color:#fdeaeb!important}.materialize-red.lighten-4{background-color:#f8c1c3!important}.materialize-red-text.text-lighten-4{color:#f8c1c3!important}.materialize-red.lighten-3{background-color:#f3989b!important}.materialize-red-text.text-lighten-3{color:#f3989b!important}.materialize-red.lighten-2{background-color:#ee6e73!important}.materialize-red-text.text-lighten-2{color:#ee6e73!important}.materialize-red.lighten-1{background-color:#ea454b!important}.materialize-red-text.text-lighten-1{color:#ea454b!important}.materialize-red.darken-1{background-color:#d0181e!important}.materialize-red-text.text-darken-1{color:#d0181e!important}.materialize-red.darken-2{background-color:#b9151b!important}.materialize-red-text.text-darken-2{color:#b9151b!important}.materialize-red.darken-3{background-color:#a21318!important}.materialize-red-text.text-darken-3{color:#a21318!important}.materialize-red.darken-4{background-color:#8b1014!important}.materialize-red-text.text-darken-4{color:#8b1014!important}.red{background-color:#f44336!important}.red-text{color:#f44336!important}.red.lighten-5{background-color:#ffebee!important}.red-text.text-lighten-5{color:#ffebee!important}.red.lighten-4{background-color:#ffcdd2!important}.red-text.text-lighten-4{color:#ffcdd2!important}.red.lighten-3{background-color:#ef9a9a!important}.red-text.text-lighten-3{color:#ef9a9a!important}.red.lighten-2{background-color:#e57373!important}.red-text.text-lighten-2{color:#e57373!important}.red.lighten-1{background-color:#ef5350!important}.red-text.text-lighten-1{color:#ef5350!important}.red.darken-1{background-color:#e53935!important}.red-text.text-darken-1{color:#e53935!important}.red.darken-2{background-color:#d32f2f!important}.red-text.text-darken-2{color:#d32f2f!important}.red.darken-3{background-color:#c62828!important}.red-text.text-darken-3{color:#c62828!important}.red.darken-4{background-color:#b71c1c!important}.red-text.text-darken-4{color:#b71c1c!important}.red.accent-1{background-color:#ff8a80!important}.red-text.text-accent-1{color:#ff8a80!important}.red.accent-2{background-color:#ff5252!important}.red-text.text-accent-2{color:#ff5252!important}.red.accent-3{background-color:#ff1744!important}.red-text.text-accent-3{color:#ff1744!important}.red.accent-4{background-color:#d50000!important}.red-text.text-accent-4{color:#d50000!important}.pink{background-color:#e91e63!important}.pink-text{color:#e91e63!important}.pink.lighten-5{background-color:#fce4ec!important}.pink-text.text-lighten-5{color:#fce4ec!important}.pink.lighten-4{background-color:#f8bbd0!important}.pink-text.text-lighten-4{color:#f8bbd0!important}.pink.lighten-3{background-color:#f48fb1!important}.pink-text.text-lighten-3{color:#f48fb1!important}.pink.lighten-2{background-color:#f06292!important}.pink-text.text-lighten-2{color:#f06292!important}.pink.lighten-1{background-color:#ec407a!important}.pink-text.text-lighten-1{color:#ec407a!important}.pink.darken-1{background-color:#d81b60!important}.pink-text.text-darken-1{color:#d81b60!important}.pink.darken-2{background-color:#c2185b!important}.pink-text.text-darken-2{color:#c2185b!important}.pink.darken-3{background-color:#ad1457!important}.pink-text.text-darken-3{color:#ad1457!important}.pink.darken-4{background-color:#880e4f!important}.pink-text.text-darken-4{color:#880e4f!important}.pink.accent-1{background-color:#ff80ab!important}.pink-text.text-accent-1{color:#ff80ab!important}.pink.accent-2{background-color:#ff4081!important}.pink-text.text-accent-2{color:#ff4081!important}.pink.accent-3{background-color:#f50057!important}.pink-text.text-accent-3{color:#f50057!important}.pink.accent-4{background-color:#c51162!important}.pink-text.text-accent-4{color:#c51162!important}.purple{background-color:#9c27b0!important}.purple-text{color:#9c27b0!important}.purple.lighten-5{background-color:#f3e5f5!important}.purple-text.text-lighten-5{color:#f3e5f5!important}.purple.lighten-4{background-color:#e1bee7!important}.purple-text.text-lighten-4{color:#e1bee7!important}.purple.lighten-3{background-color:#ce93d8!important}.purple-text.text-lighten-3{color:#ce93d8!important}.purple.lighten-2{background-color:#ba68c8!important}.purple-text.text-lighten-2{color:#ba68c8!important}.purple.lighten-1{background-color:#ab47bc!important}.purple-text.text-lighten-1{color:#ab47bc!important}.purple.darken-1{background-color:#8e24aa!important}.purple-text.text-darken-1{color:#8e24aa!important}.purple.darken-2{background-color:#7b1fa2!important}.purple-text.text-darken-2{color:#7b1fa2!important}.purple.darken-3{background-color:#6a1b9a!important}.purple-text.text-darken-3{color:#6a1b9a!important}.purple.darken-4{background-color:#4a148c!important}.purple-text.text-darken-4{color:#4a148c!important}.purple.accent-1{background-color:#ea80fc!important}.purple-text.text-accent-1{color:#ea80fc!important}.purple.accent-2{background-color:#e040fb!important}.purple-text.text-accent-2{color:#e040fb!important}.purple.accent-3{background-color:#d500f9!important}.purple-text.text-accent-3{color:#d500f9!important}.purple.accent-4{background-color:#a0f!important}.purple-text.text-accent-4{color:#a0f!important}.deep-purple{background-color:#673ab7!important}.deep-purple-text{color:#673ab7!important}.deep-purple.lighten-5{background-color:#ede7f6!important}.deep-purple-text.text-lighten-5{color:#ede7f6!important}.deep-purple.lighten-4{background-color:#d1c4e9!important}.deep-purple-text.text-lighten-4{color:#d1c4e9!important}.deep-purple.lighten-3{background-color:#b39ddb!important}.deep-purple-text.text-lighten-3{color:#b39ddb!important}.deep-purple.lighten-2{background-color:#9575cd!important}.deep-purple-text.text-lighten-2{color:#9575cd!important}.deep-purple.lighten-1{background-color:#7e57c2!important}.deep-purple-text.text-lighten-1{color:#7e57c2!important}.deep-purple.darken-1{background-color:#5e35b1!important}.deep-purple-text.text-darken-1{color:#5e35b1!important}.deep-purple.darken-2{background-color:#512da8!important}.deep-purple-text.text-darken-2{color:#512da8!important}.deep-purple.darken-3{background-color:#4527a0!important}.deep-purple-text.text-darken-3{color:#4527a0!important}.deep-purple.darken-4{background-color:#311b92!important}.deep-purple-text.text-darken-4{color:#311b92!important}.deep-purple.accent-1{background-color:#b388ff!important}.deep-purple-text.text-accent-1{color:#b388ff!important}.deep-purple.accent-2{background-color:#7c4dff!important}.deep-purple-text.text-accent-2{color:#7c4dff!important}.deep-purple.accent-3{background-color:#651fff!important}.deep-purple-text.text-accent-3{color:#651fff!important}.deep-purple.accent-4{background-color:#6200ea!important}.deep-purple-text.text-accent-4{color:#6200ea!important}.indigo{background-color:#3f51b5!important}.indigo-text{color:#3f51b5!important}.indigo.lighten-5{background-color:#e8eaf6!important}.indigo-text.text-lighten-5{color:#e8eaf6!important}.indigo.lighten-4{background-color:#c5cae9!important}.indigo-text.text-lighten-4{color:#c5cae9!important}.indigo.lighten-3{background-color:#9fa8da!important}.indigo-text.text-lighten-3{color:#9fa8da!important}.indigo.lighten-2{background-color:#7986cb!important}.indigo-text.text-lighten-2{color:#7986cb!important}.indigo.lighten-1{background-color:#5c6bc0!important}.indigo-text.text-lighten-1{color:#5c6bc0!important}.indigo.darken-1{background-color:#3949ab!important}.indigo-text.text-darken-1{color:#3949ab!important}.indigo.darken-2{background-color:#303f9f!important}.indigo-text.text-darken-2{color:#303f9f!important}.indigo.darken-3{background-color:#283593!important}.indigo-text.text-darken-3{color:#283593!important}.indigo.darken-4{background-color:#1a237e!important}.indigo-text.text-darken-4{color:#1a237e!important}.indigo.accent-1{background-color:#8c9eff!important}.indigo-text.text-accent-1{color:#8c9eff!important}.indigo.accent-2{background-color:#536dfe!important}.indigo-text.text-accent-2{color:#536dfe!important}.indigo.accent-3{background-color:#3d5afe!important}.indigo-text.text-accent-3{color:#3d5afe!important}.indigo.accent-4{background-color:#304ffe!important}.indigo-text.text-accent-4{color:#304ffe!important}.blue{background-color:#2196f3!important}.blue-text{color:#2196f3!important}.blue.lighten-5{background-color:#e3f2fd!important}.blue-text.text-lighten-5{color:#e3f2fd!important}.blue.lighten-4{background-color:#bbdefb!important}.blue-text.text-lighten-4{color:#bbdefb!important}.blue.lighten-3{background-color:#90caf9!important}.blue-text.text-lighten-3{color:#90caf9!important}.blue.lighten-2{background-color:#64b5f6!important}.blue-text.text-lighten-2{color:#64b5f6!important}.blue.lighten-1{background-color:#42a5f5!important}.blue-text.text-lighten-1{color:#42a5f5!important}.blue.darken-1{background-color:#1e88e5!important}.blue-text.text-darken-1{color:#1e88e5!important}.blue.darken-2{background-color:#1976d2!important}.blue-text.text-darken-2{color:#1976d2!important}.blue.darken-3{background-color:#1565c0!important}.blue-text.text-darken-3{color:#1565c0!important}.blue.darken-4{background-color:#0d47a1!important}.blue-text.text-darken-4{color:#0d47a1!important}.blue.accent-1{background-color:#82b1ff!important}.blue-text.text-accent-1{color:#82b1ff!important}.blue.accent-2{background-color:#448aff!important}.blue-text.text-accent-2{color:#448aff!important}.blue.accent-3{background-color:#2979ff!important}.blue-text.text-accent-3{color:#2979ff!important}.blue.accent-4{background-color:#2962ff!important}.blue-text.text-accent-4{color:#2962ff!important}.light-blue{background-color:#03a9f4!important}.light-blue-text{color:#03a9f4!important}.light-blue.lighten-5{background-color:#e1f5fe!important}.light-blue-text.text-lighten-5{color:#e1f5fe!important}.light-blue.lighten-4{background-color:#b3e5fc!important}.light-blue-text.text-lighten-4{color:#b3e5fc!important}.light-blue.lighten-3{background-color:#81d4fa!important}.light-blue-text.text-lighten-3{color:#81d4fa!important}.light-blue.lighten-2{background-color:#4fc3f7!important}.light-blue-text.text-lighten-2{color:#4fc3f7!important}.light-blue.lighten-1{background-color:#29b6f6!important}.light-blue-text.text-lighten-1{color:#29b6f6!important}.light-blue.darken-1{background-color:#039be5!important}.light-blue-text.text-darken-1{color:#039be5!important}.light-blue.darken-2{background-color:#0288d1!important}.light-blue-text.text-darken-2{color:#0288d1!important}.light-blue.darken-3{background-color:#0277bd!important}.light-blue-text.text-darken-3{color:#0277bd!important}.light-blue.darken-4{background-color:#01579b!important}.light-blue-text.text-darken-4{color:#01579b!important}.light-blue.accent-1{background-color:#80d8ff!important}.light-blue-text.text-accent-1{color:#80d8ff!important}.light-blue.accent-2{background-color:#40c4ff!important}.light-blue-text.text-accent-2{color:#40c4ff!important}.light-blue.accent-3{background-color:#00b0ff!important}.light-blue-text.text-accent-3{color:#00b0ff!important}.light-blue.accent-4{background-color:#0091ea!important}.light-blue-text.text-accent-4{color:#0091ea!important}.cyan{background-color:#00bcd4!important}.cyan-text{color:#00bcd4!important}.cyan.lighten-5{background-color:#e0f7fa!important}.cyan-text.text-lighten-5{color:#e0f7fa!important}.cyan.lighten-4{background-color:#b2ebf2!important}.cyan-text.text-lighten-4{color:#b2ebf2!important}.cyan.lighten-3{background-color:#80deea!important}.cyan-text.text-lighten-3{color:#80deea!important}.cyan.lighten-2{background-color:#4dd0e1!important}.cyan-text.text-lighten-2{color:#4dd0e1!important}.cyan.lighten-1{background-color:#26c6da!important}.cyan-text.text-lighten-1{color:#26c6da!important}.cyan.darken-1{background-color:#00acc1!important}.cyan-text.text-darken-1{color:#00acc1!important}.cyan.darken-2{background-color:#0097a7!important}.cyan-text.text-darken-2{color:#0097a7!important}.cyan.darken-3{background-color:#00838f!important}.cyan-text.text-darken-3{color:#00838f!important}.cyan.darken-4{background-color:#006064!important}.cyan-text.text-darken-4{color:#006064!important}.cyan.accent-1{background-color:#84ffff!important}.cyan-text.text-accent-1{color:#84ffff!important}.cyan.accent-2{background-color:#18ffff!important}.cyan-text.text-accent-2{color:#18ffff!important}.cyan.accent-3{background-color:#00e5ff!important}.cyan-text.text-accent-3{color:#00e5ff!important}.cyan.accent-4{background-color:#00b8d4!important}.cyan-text.text-accent-4{color:#00b8d4!important}.teal{background-color:#009688!important}.teal-text{color:#009688!important}.teal.lighten-5{background-color:#e0f2f1!important}.teal-text.text-lighten-5{color:#e0f2f1!important}.teal.lighten-4{background-color:#b2dfdb!important}.teal-text.text-lighten-4{color:#b2dfdb!important}.teal.lighten-3{background-color:#80cbc4!important}.teal-text.text-lighten-3{color:#80cbc4!important}.teal.lighten-2{background-color:#4db6ac!important}.teal-text.text-lighten-2{color:#4db6ac!important}.teal.lighten-1{background-color:#26a69a!important}.teal-text.text-lighten-1{color:#26a69a!important}.teal.darken-1{background-color:#00897b!important}.teal-text.text-darken-1{color:#00897b!important}.teal.darken-2{background-color:#00796b!important}.teal-text.text-darken-2{color:#00796b!important}.teal.darken-3{background-color:#00695c!important}.teal-text.text-darken-3{color:#00695c!important}.teal.darken-4{background-color:#004d40!important}.teal-text.text-darken-4{color:#004d40!important}.teal.accent-1{background-color:#a7ffeb!important}.teal-text.text-accent-1{color:#a7ffeb!important}.teal.accent-2{background-color:#64ffda!important}.teal-text.text-accent-2{color:#64ffda!important}.teal.accent-3{background-color:#1de9b6!important}.teal-text.text-accent-3{color:#1de9b6!important}.teal.accent-4{background-color:#00bfa5!important}.teal-text.text-accent-4{color:#00bfa5!important}.green{background-color:#4caf50!important}.green-text{color:#4caf50!important}.green.lighten-5{background-color:#e8f5e9!important}.green-text.text-lighten-5{color:#e8f5e9!important}.green.lighten-4{background-color:#c8e6c9!important}.green-text.text-lighten-4{color:#c8e6c9!important}.green.lighten-3{background-color:#a5d6a7!important}.green-text.text-lighten-3{color:#a5d6a7!important}.green.lighten-2{background-color:#81c784!important}.green-text.text-lighten-2{color:#81c784!important}.green.lighten-1{background-color:#66bb6a!important}.green-text.text-lighten-1{color:#66bb6a!important}.green.darken-1{background-color:#43a047!important}.green-text.text-darken-1{color:#43a047!important}.green.darken-2{background-color:#388e3c!important}.green-text.text-darken-2{color:#388e3c!important}.green.darken-3{background-color:#2e7d32!important}.green-text.text-darken-3{color:#2e7d32!important}.green.darken-4{background-color:#1b5e20!important}.green-text.text-darken-4{color:#1b5e20!important}.green.accent-1{background-color:#b9f6ca!important}.green-text.text-accent-1{color:#b9f6ca!important}.green.accent-2{background-color:#69f0ae!important}.green-text.text-accent-2{color:#69f0ae!important}.green.accent-3{background-color:#00e676!important}.green-text.text-accent-3{color:#00e676!important}.green.accent-4{background-color:#00c853!important}.green-text.text-accent-4{color:#00c853!important}.light-green{background-color:#8bc34a!important}.light-green-text{color:#8bc34a!important}.light-green.lighten-5{background-color:#f1f8e9!important}.light-green-text.text-lighten-5{color:#f1f8e9!important}.light-green.lighten-4{background-color:#dcedc8!important}.light-green-text.text-lighten-4{color:#dcedc8!important}.light-green.lighten-3{background-color:#c5e1a5!important}.light-green-text.text-lighten-3{color:#c5e1a5!important}.light-green.lighten-2{background-color:#aed581!important}.light-green-text.text-lighten-2{color:#aed581!important}.light-green.lighten-1{background-color:#9ccc65!important}.light-green-text.text-lighten-1{color:#9ccc65!important}.light-green.darken-1{background-color:#7cb342!important}.light-green-text.text-darken-1{color:#7cb342!important}.light-green.darken-2{background-color:#689f38!important}.light-green-text.text-darken-2{color:#689f38!important}.light-green.darken-3{background-color:#558b2f!important}.light-green-text.text-darken-3{color:#558b2f!important}.light-green.darken-4{background-color:#33691e!important}.light-green-text.text-darken-4{color:#33691e!important}.light-green.accent-1{background-color:#ccff90!important}.light-green-text.text-accent-1{color:#ccff90!important}.light-green.accent-2{background-color:#b2ff59!important}.light-green-text.text-accent-2{color:#b2ff59!important}.light-green.accent-3{background-color:#76ff03!important}.light-green-text.text-accent-3{color:#76ff03!important}.light-green.accent-4{background-color:#64dd17!important}.light-green-text.text-accent-4{color:#64dd17!important}.lime{background-color:#cddc39!important}.lime-text{color:#cddc39!important}.lime.lighten-5{background-color:#f9fbe7!important}.lime-text.text-lighten-5{color:#f9fbe7!important}.lime.lighten-4{background-color:#f0f4c3!important}.lime-text.text-lighten-4{color:#f0f4c3!important}.lime.lighten-3{background-color:#e6ee9c!important}.lime-text.text-lighten-3{color:#e6ee9c!important}.lime.lighten-2{background-color:#dce775!important}.lime-text.text-lighten-2{color:#dce775!important}.lime.lighten-1{background-color:#d4e157!important}.lime-text.text-lighten-1{color:#d4e157!important}.lime.darken-1{background-color:#c0ca33!important}.lime-text.text-darken-1{color:#c0ca33!important}.lime.darken-2{background-color:#afb42b!important}.lime-text.text-darken-2{color:#afb42b!important}.lime.darken-3{background-color:#9e9d24!important}.lime-text.text-darken-3{color:#9e9d24!important}.lime.darken-4{background-color:#827717!important}.lime-text.text-darken-4{color:#827717!important}.lime.accent-1{background-color:#f4ff81!important}.lime-text.text-accent-1{color:#f4ff81!important}.lime.accent-2{background-color:#eeff41!important}.lime-text.text-accent-2{color:#eeff41!important}.lime.accent-3{background-color:#c6ff00!important}.lime-text.text-accent-3{color:#c6ff00!important}.lime.accent-4{background-color:#aeea00!important}.lime-text.text-accent-4{color:#aeea00!important}.yellow{background-color:#ffeb3b!important}.yellow-text{color:#ffeb3b!important}.yellow.lighten-5{background-color:#fffde7!important}.yellow-text.text-lighten-5{color:#fffde7!important}.yellow.lighten-4{background-color:#fff9c4!important}.yellow-text.text-lighten-4{color:#fff9c4!important}.yellow.lighten-3{background-color:#fff59d!important}.yellow-text.text-lighten-3{color:#fff59d!important}.yellow.lighten-2{background-color:#fff176!important}.yellow-text.text-lighten-2{color:#fff176!important}.yellow.lighten-1{background-color:#ffee58!important}.yellow-text.text-lighten-1{color:#ffee58!important}.yellow.darken-1{background-color:#fdd835!important}.yellow-text.text-darken-1{color:#fdd835!important}.yellow.darken-2{background-color:#fbc02d!important}.yellow-text.text-darken-2{color:#fbc02d!important}.yellow.darken-3{background-color:#f9a825!important}.yellow-text.text-darken-3{color:#f9a825!important}.yellow.darken-4{background-color:#f57f17!important}.yellow-text.text-darken-4{color:#f57f17!important}.yellow.accent-1{background-color:#ffff8d!important}.yellow-text.text-accent-1{color:#ffff8d!important}.yellow.accent-2{background-color:#ff0!important}.yellow-text.text-accent-2{color:#ff0!important}.yellow.accent-3{background-color:#ffea00!important}.yellow-text.text-accent-3{color:#ffea00!important}.yellow.accent-4{background-color:#ffd600!important}.yellow-text.text-accent-4{color:#ffd600!important}.amber{background-color:#ffc107!important}.amber-text{color:#ffc107!important}.amber.lighten-5{background-color:#fff8e1!important}.amber-text.text-lighten-5{color:#fff8e1!important}.amber.lighten-4{background-color:#ffecb3!important}.amber-text.text-lighten-4{color:#ffecb3!important}.amber.lighten-3{background-color:#ffe082!important}.amber-text.text-lighten-3{color:#ffe082!important}.amber.lighten-2{background-color:#ffd54f!important}.amber-text.text-lighten-2{color:#ffd54f!important}.amber.lighten-1{background-color:#ffca28!important}.amber-text.text-lighten-1{color:#ffca28!important}.amber.darken-1{background-color:#ffb300!important}.amber-text.text-darken-1{color:#ffb300!important}.amber.darken-2{background-color:#ffa000!important}.amber-text.text-darken-2{color:#ffa000!important}.amber.darken-3{background-color:#ff8f00!important}.amber-text.text-darken-3{color:#ff8f00!important}.amber.darken-4{background-color:#ff6f00!important}.amber-text.text-darken-4{color:#ff6f00!important}.amber.accent-1{background-color:#ffe57f!important}.amber-text.text-accent-1{color:#ffe57f!important}.amber.accent-2{background-color:#ffd740!important}.amber-text.text-accent-2{color:#ffd740!important}.amber.accent-3{background-color:#ffc400!important}.amber-text.text-accent-3{color:#ffc400!important}.amber.accent-4{background-color:#ffab00!important}.amber-text.text-accent-4{color:#ffab00!important}.orange{background-color:#ff9800!important}.orange-text{color:#ff9800!important}.orange.lighten-5{background-color:#fff3e0!important}.orange-text.text-lighten-5{color:#fff3e0!important}.orange.lighten-4{background-color:#ffe0b2!important}.orange-text.text-lighten-4{color:#ffe0b2!important}.orange.lighten-3{background-color:#ffcc80!important}.orange-text.text-lighten-3{color:#ffcc80!important}.orange.lighten-2{background-color:#ffb74d!important}.orange-text.text-lighten-2{color:#ffb74d!important}.orange.lighten-1{background-color:#ffa726!important}.orange-text.text-lighten-1{color:#ffa726!important}.orange.darken-1{background-color:#fb8c00!important}.orange-text.text-darken-1{color:#fb8c00!important}.orange.darken-2{background-color:#f57c00!important}.orange-text.text-darken-2{color:#f57c00!important}.orange.darken-3{background-color:#ef6c00!important}.orange-text.text-darken-3{color:#ef6c00!important}.orange.darken-4{background-color:#e65100!important}.orange-text.text-darken-4{color:#e65100!important}.orange.accent-1{background-color:#ffd180!important}.orange-text.text-accent-1{color:#ffd180!important}.orange.accent-2{background-color:#ffab40!important}.orange-text.text-accent-2{color:#ffab40!important}.orange.accent-3{background-color:#ff9100!important}.orange-text.text-accent-3{color:#ff9100!important}.orange.accent-4{background-color:#ff6d00!important}.orange-text.text-accent-4{color:#ff6d00!important}.deep-orange{background-color:#ff5722!important}.deep-orange-text{color:#ff5722!important}.deep-orange.lighten-5{background-color:#fbe9e7!important}.deep-orange-text.text-lighten-5{color:#fbe9e7!important}.deep-orange.lighten-4{background-color:#ffccbc!important}.deep-orange-text.text-lighten-4{color:#ffccbc!important}.deep-orange.lighten-3{background-color:#ffab91!important}.deep-orange-text.text-lighten-3{color:#ffab91!important}.deep-orange.lighten-2{background-color:#ff8a65!important}.deep-orange-text.text-lighten-2{color:#ff8a65!important}.deep-orange.lighten-1{background-color:#ff7043!important}.deep-orange-text.text-lighten-1{color:#ff7043!important}.deep-orange.darken-1{background-color:#f4511e!important}.deep-orange-text.text-darken-1{color:#f4511e!important}.deep-orange.darken-2{background-color:#e64a19!important}.deep-orange-text.text-darken-2{color:#e64a19!important}.deep-orange.darken-3{background-color:#d84315!important}.deep-orange-text.text-darken-3{color:#d84315!important}.deep-orange.darken-4{background-color:#bf360c!important}.deep-orange-text.text-darken-4{color:#bf360c!important}.deep-orange.accent-1{background-color:#ff9e80!important}.deep-orange-text.text-accent-1{color:#ff9e80!important}.deep-orange.accent-2{background-color:#ff6e40!important}.deep-orange-text.text-accent-2{color:#ff6e40!important}.deep-orange.accent-3{background-color:#ff3d00!important}.deep-orange-text.text-accent-3{color:#ff3d00!important}.deep-orange.accent-4{background-color:#dd2c00!important}.deep-orange-text.text-accent-4{color:#dd2c00!important}.brown{background-color:#795548!important}.brown-text{color:#795548!important}.brown.lighten-5{background-color:#efebe9!important}.brown-text.text-lighten-5{color:#efebe9!important}.brown.lighten-4{background-color:#d7ccc8!important}.brown-text.text-lighten-4{color:#d7ccc8!important}.brown.lighten-3{background-color:#bcaaa4!important}.brown-text.text-lighten-3{color:#bcaaa4!important}.brown.lighten-2{background-color:#a1887f!important}.brown-text.text-lighten-2{color:#a1887f!important}.brown.lighten-1{background-color:#8d6e63!important}.brown-text.text-lighten-1{color:#8d6e63!important}.brown.darken-1{background-color:#6d4c41!important}.brown-text.text-darken-1{color:#6d4c41!important}.brown.darken-2{background-color:#5d4037!important}.brown-text.text-darken-2{color:#5d4037!important}.brown.darken-3{background-color:#4e342e!important}.brown-text.text-darken-3{color:#4e342e!important}.brown.darken-4{background-color:#3e2723!important}.brown-text.text-darken-4{color:#3e2723!important}.blue-grey{background-color:#607d8b!important}.blue-grey-text{color:#607d8b!important}.blue-grey.lighten-5{background-color:#eceff1!important}.blue-grey-text.text-lighten-5{color:#eceff1!important}.blue-grey.lighten-4{background-color:#cfd8dc!important}.blue-grey-text.text-lighten-4{color:#cfd8dc!important}.blue-grey.lighten-3{background-color:#b0bec5!important}.blue-grey-text.text-lighten-3{color:#b0bec5!important}.blue-grey.lighten-2{background-color:#90a4ae!important}.blue-grey-text.text-lighten-2{color:#90a4ae!important}.blue-grey.lighten-1{background-color:#78909c!important}.blue-grey-text.text-lighten-1{color:#78909c!important}.blue-grey.darken-1{background-color:#546e7a!important}.blue-grey-text.text-darken-1{color:#546e7a!important}.blue-grey.darken-2{background-color:#455a64!important}.blue-grey-text.text-darken-2{color:#455a64!important}.blue-grey.darken-3{background-color:#37474f!important}.blue-grey-text.text-darken-3{color:#37474f!important}.blue-grey.darken-4{background-color:#263238!important}.blue-grey-text.text-darken-4{color:#263238!important}.grey{background-color:#9e9e9e!important}.grey-text{color:#9e9e9e!important}.grey.lighten-5{background-color:#fafafa!important}.grey-text.text-lighten-5{color:#fafafa!important}.grey.lighten-4{background-color:#f5f5f5!important}.grey-text.text-lighten-4{color:#f5f5f5!important}.grey.lighten-3{background-color:#eee!important}.grey-text.text-lighten-3{color:#eee!important}.grey.lighten-2{background-color:#e0e0e0!important}.grey-text.text-lighten-2{color:#e0e0e0!important}.grey.lighten-1{background-color:#bdbdbd!important}.grey-text.text-lighten-1{color:#bdbdbd!important}.grey.darken-1{background-color:#757575!important}.grey-text.text-darken-1{color:#757575!important}.grey.darken-2{background-color:#616161!important}.grey-text.text-darken-2{color:#616161!important}.grey.darken-3{background-color:#424242!important}.grey-text.text-darken-3{color:#424242!important}.grey.darken-4{background-color:#212121!important}.grey-text.text-darken-4{color:#212121!important}.black{background-color:#000!important}.black-text{color:#000!important}.white{background-color:#fff!important}.white-text{color:#fff!important}.transparent{background-color:transparent!important}.transparent-text{color:transparent!important}/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}ul:not(.browser-default){padding-left:0;list-style-type:none}ul:not(.browser-default) li{list-style-type:none}a{color:#039be5;-webkit-tap-highlight-color:transparent}.valign-wrapper,body.themes .themes-section{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.clearfix{clear:both}.z-depth-0{box-shadow:none!important}.btn,.btn-floating,.btn-large,.card,.card-panel,.collapsible,.dropdown-content,.side-nav,.toast,.z-depth-1,nav{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2)}.btn-floating:hover,.btn-large:hover,.btn:hover,.z-depth-1-half{box-shadow:0 3px 3px 0 rgba(0,0,0,.14),0 1px 7px 0 rgba(0,0,0,.12),0 3px 1px -1px rgba(0,0,0,.2)}.z-depth-2{box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.3)}.z-depth-3{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.3)}.modal,.z-depth-4{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.3)}.z-depth-5{box-shadow:0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12),0 8px 10px -5px rgba(0,0,0,.3)}.hoverable{transition:box-shadow .25s;box-shadow:0}.hoverable:hover{transition:box-shadow .25s;box-shadow:0 8px 17px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19)}.divider{height:1px;overflow:hidden;background-color:#e0e0e0}blockquote{margin:20px 0;padding-left:1.5rem;border-left:5px solid #ee6e73}i{line-height:inherit}i.left{float:left;margin-right:15px}i.right{float:right;margin-left:15px}i.tiny{font-size:1rem}i.small{font-size:2rem}i.medium{font-size:4rem}i.large{font-size:6rem}img.responsive-img,video.responsive-video{max-width:100%;height:auto}.pagination li{display:inline-block;border-radius:2px;text-align:center;vertical-align:top;height:30px}.pagination li a{color:#444;display:inline-block;font-size:1.2rem;padding:0 10px;line-height:30px}.pagination li.active a{color:#fff}.pagination li.active{background-color:#ee6e73}.pagination li.disabled a{cursor:default;color:#999}.pagination li i{font-size:2rem}.pagination li.pages ul li{display:inline-block;float:none}@media only screen and (max-width:992px){.pagination{width:100%}.pagination li.next,.pagination li.prev{width:10%}.pagination li.pages{width:80%;overflow:hidden;white-space:nowrap}}.breadcrumb{font-size:18px;color:hsla(0,0%,100%,.7)}.breadcrumb [class*=mdi-],.breadcrumb [class^=mdi-],.breadcrumb i,.breadcrumb i.material-icons{display:inline-block;float:left;font-size:24px}.breadcrumb:before{content:"\E5CC";color:hsla(0,0%,100%,.7);vertical-align:top;display:inline-block;font-family:Material Icons;font-weight:400;font-style:normal;font-size:25px;margin:0 10px 0 8px;-webkit-font-smoothing:antialiased}.breadcrumb:first-child:before{display:none}.breadcrumb:last-child{color:#fff}.parallax-container{position:relative;overflow:hidden;height:500px}.parallax{top:0;left:0;right:0;z-index:-1}.parallax,.parallax img{position:absolute;bottom:0}.parallax img{display:none;left:50%;min-width:100%;min-height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pin-bottom,.pin-top{position:relative}.pinned{position:fixed!important}.fade-in,ul.staggered-list li{opacity:0}.fade-in{-webkit-transform-origin:0 50%;transform-origin:0 50%}@media only screen and (max-width:600px){.hide-on-small-and-down,.hide-on-small-only,.tabs-wrapper{display:none!important}}@media only screen and (max-width:992px){.hide-on-med-and-down{display:none!important}}@media only screen and (min-width:601px){.hide-on-med-and-up{display:none!important}}@media only screen and (min-width:600px) and (max-width:992px){.hide-on-med-only{display:none!important}}@media only screen and (min-width:993px){.hide-on-large-only{display:none!important}}@media only screen and (min-width:993px){.show-on-large{display:block!important}}@media only screen and (min-width:600px) and (max-width:992px){.show-on-medium{display:block!important}}@media only screen and (max-width:600px){.show-on-small{display:block!important}}@media only screen and (min-width:601px){.show-on-medium-and-up{display:block!important}}@media only screen and (max-width:992px){.show-on-medium-and-down{display:block!important}}@media only screen and (max-width:600px){.center-on-small-only{text-align:center}}.page-footer{padding-top:20px;background-color:#ee6e73}.page-footer .footer-copyright{overflow:hidden;min-height:50px;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:10px 0;color:hsla(0,0%,100%,.8);background-color:rgba(51,51,51,.08)}table,td,th{border:none}table{width:100%;display:table}table.bordered>tbody>tr,table.bordered>thead>tr{border-bottom:1px solid #d0d0d0}table.striped>tbody>tr:nth-child(odd){background-color:#f2f2f2}table.striped>tbody>tr>td{border-radius:0}table.highlight>tbody>tr{transition:background-color .25s ease}table.highlight>tbody>tr:hover{background-color:#f2f2f2}table.centered tbody tr td,table.centered thead tr th{text-align:center}thead{border-bottom:1px solid #d0d0d0}td,th{padding:15px 5px;display:table-cell;text-align:left;vertical-align:middle;border-radius:2px}@media only screen and (max-width:992px){table.responsive-table{width:100%;border-collapse:collapse;border-spacing:0;display:block;position:relative}table.responsive-table td:empty:before{content:"\A0"}table.responsive-table td,table.responsive-table th{margin:0;vertical-align:top}table.responsive-table th{text-align:left}table.responsive-table thead{display:block;float:left}table.responsive-table thead tr{display:block;padding:0 10px 0 0}table.responsive-table thead tr th:before{content:"\A0"}table.responsive-table tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}table.responsive-table tbody tr{display:inline-block;vertical-align:top}table.responsive-table th{display:block;text-align:right}table.responsive-table td{display:block;min-height:1.25em;text-align:left}table.responsive-table tr{padding:0 10px}table.responsive-table thead{border:0;border-right:1px solid #d0d0d0}table.responsive-table.bordered th{border-bottom:0;border-left:0}table.responsive-table.bordered td{border-left:0;border-right:0;border-bottom:0}table.responsive-table.bordered tr{border:0}table.responsive-table.bordered tbody tr{border-right:1px solid #d0d0d0}}.collection{margin:.5rem 0 1rem;border:1px solid #e0e0e0;border-radius:2px;overflow:hidden;position:relative}.collection .collection-item{background-color:#fff;line-height:1.5rem;padding:10px 20px;margin:0;border-bottom:1px solid #e0e0e0}.collection .collection-item.avatar{min-height:84px;padding-left:72px;position:relative}.collection .collection-item.avatar .circle{position:absolute;width:42px;height:42px;overflow:hidden;left:15px;display:inline-block;vertical-align:middle}.collection .collection-item.avatar i.circle{font-size:18px;line-height:42px;color:#fff;background-color:#999;text-align:center}.collection .collection-item.avatar .title{font-size:16px}.collection .collection-item.avatar p{margin:0}.collection .collection-item.avatar .secondary-content{position:absolute;top:16px;right:16px}.collection .collection-item:last-child{border-bottom:none}.collection .collection-item.active{background-color:#26a69a;color:#eafaf9}.collection .collection-item.active .secondary-content{color:#fff}.collection a.collection-item{display:block;transition:.25s;color:#26a69a}.collection a.collection-item:not(.active):hover{background-color:#ddd}.collection.with-header .collection-header{background-color:#fff;border-bottom:1px solid #e0e0e0;padding:10px 20px}.collection.with-header .collection-item{padding-left:30px}.collection.with-header .collection-item.avatar{padding-left:72px}.secondary-content{float:right;color:#26a69a}.collapsible .collection{margin:0;border:none}.video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.video-container embed,.video-container iframe,.video-container object{position:absolute;top:0;left:0;width:100%;height:100%}.progress{position:relative;height:4px;display:block;width:100%;background-color:#acece6;border-radius:2px;margin:.5rem 0 1rem;overflow:hidden}.progress .determinate{position:absolute;top:0;left:0;bottom:0;transition:width .3s linear}.progress .determinate,.progress .indeterminate{background-color:#26a69a}.progress .indeterminate:before{-webkit-animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite;animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.progress .indeterminate:after,.progress .indeterminate:before{content:"";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right}.progress .indeterminate:after{-webkit-animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}.hide{display:none!important}.left-align{text-align:left}.right-align{text-align:right}.center,.center-align{text-align:center}.left{float:left!important}.right{float:right!important}.no-select,input[type=range],input[type=range]+.thumb{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.circle{border-radius:50%}.center-block{display:block;margin-left:auto;margin-right:auto}.truncate{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-padding{padding:0!important}span.badge{min-width:3rem;padding:0 6px;margin-left:14px;text-align:center;font-size:1rem;line-height:22px;height:22px;color:#757575;float:right;box-sizing:border-box}span.badge.new{font-weight:300;font-size:.8rem;color:#fff;background-color:#26a69a;border-radius:2px}span.badge.new:after{content:" new"}span.badge[data-badge-caption]:after{content:" " attr(data-badge-caption)}nav ul a span.badge{display:inline-block;float:none;margin-left:4px;line-height:22px;height:22px}.collection-item span.badge{margin-top:calc(.75rem - 11px)}.collapsible span.badge{margin-top:calc(1.5rem - 11px)}.side-nav span.badge{margin-top:13px}.material-icons{text-rendering:optimizeLegibility;-webkit-font-feature-settings:"liga";-moz-font-feature-settings:"liga";font-feature-settings:"liga"}.container{margin:0 auto;max-width:1280px;width:90%}@media only screen and (min-width:601px){.container{width:85%}}@media only screen and (min-width:993px){.container{width:70%}}.container .row{margin-left:-.75rem;margin-right:-.75rem}.section{padding-top:1rem;padding-bottom:1rem}.section.no-pad{padding:0}.section.no-pad-bot{padding-bottom:0}.section.no-pad-top{padding-top:0}.row{margin-left:auto;margin-right:auto;margin-bottom:20px}.row:after{content:"";display:table;clear:both}.row .col{float:left;box-sizing:border-box;padding:0 .75rem;min-height:1px}.row .col[class*=pull-],.row .col[class*=push-]{position:relative}.row .col.s1{width:8.3333333333%}.row .col.s1,.row .col.s2{margin-left:auto;left:auto;right:auto}.row .col.s2{width:16.6666666667%}.row .col.s3{width:25%}.row .col.s3,.row .col.s4{margin-left:auto;left:auto;right:auto}.row .col.s4{width:33.3333333333%}.row .col.s5{width:41.6666666667%}.row .col.s5,.row .col.s6{margin-left:auto;left:auto;right:auto}.row .col.s6{width:50%}.row .col.s7{width:58.3333333333%}.row .col.s7,.row .col.s8{margin-left:auto;left:auto;right:auto}.row .col.s8{width:66.6666666667%}.row .col.s9{width:75%}.row .col.s9,.row .col.s10{margin-left:auto;left:auto;right:auto}.row .col.s10{width:83.3333333333%}.row .col.s11{width:91.6666666667%}.row .col.s11,.row .col.s12{margin-left:auto;left:auto;right:auto}.row .col.s12{width:100%}.row .col.offset-s1{margin-left:8.3333333333%}.row .col.pull-s1{right:8.3333333333%}.row .col.push-s1{left:8.3333333333%}.row .col.offset-s2{margin-left:16.6666666667%}.row .col.pull-s2{right:16.6666666667%}.row .col.push-s2{left:16.6666666667%}.row .col.offset-s3{margin-left:25%}.row .col.pull-s3{right:25%}.row .col.push-s3{left:25%}.row .col.offset-s4{margin-left:33.3333333333%}.row .col.pull-s4{right:33.3333333333%}.row .col.push-s4{left:33.3333333333%}.row .col.offset-s5{margin-left:41.6666666667%}.row .col.pull-s5{right:41.6666666667%}.row .col.push-s5{left:41.6666666667%}.row .col.offset-s6{margin-left:50%}.row .col.pull-s6{right:50%}.row .col.push-s6{left:50%}.row .col.offset-s7{margin-left:58.3333333333%}.row .col.pull-s7{right:58.3333333333%}.row .col.push-s7{left:58.3333333333%}.row .col.offset-s8{margin-left:66.6666666667%}.row .col.pull-s8{right:66.6666666667%}.row .col.push-s8{left:66.6666666667%}.row .col.offset-s9{margin-left:75%}.row .col.pull-s9{right:75%}.row .col.push-s9{left:75%}.row .col.offset-s10{margin-left:83.3333333333%}.row .col.pull-s10{right:83.3333333333%}.row .col.push-s10{left:83.3333333333%}.row .col.offset-s11{margin-left:91.6666666667%}.row .col.pull-s11{right:91.6666666667%}.row .col.push-s11{left:91.6666666667%}.row .col.offset-s12{margin-left:100%}.row .col.pull-s12{right:100%}.row .col.push-s12{left:100%}@media only screen and (min-width:601px){.row .col.m1{width:8.3333333333%}.row .col.m1,.row .col.m2{margin-left:auto;left:auto;right:auto}.row .col.m2{width:16.6666666667%}.row .col.m3{width:25%}.row .col.m3,.row .col.m4{margin-left:auto;left:auto;right:auto}.row .col.m4{width:33.3333333333%}.row .col.m5{width:41.6666666667%}.row .col.m5,.row .col.m6{margin-left:auto;left:auto;right:auto}.row .col.m6{width:50%}.row .col.m7{width:58.3333333333%}.row .col.m7,.row .col.m8{margin-left:auto;left:auto;right:auto}.row .col.m8{width:66.6666666667%}.row .col.m9{width:75%}.row .col.m9,.row .col.m10{margin-left:auto;left:auto;right:auto}.row .col.m10{width:83.3333333333%}.row .col.m11{width:91.6666666667%}.row .col.m11,.row .col.m12{margin-left:auto;left:auto;right:auto}.row .col.m12{width:100%}.row .col.offset-m1{margin-left:8.3333333333%}.row .col.pull-m1{right:8.3333333333%}.row .col.push-m1{left:8.3333333333%}.row .col.offset-m2{margin-left:16.6666666667%}.row .col.pull-m2{right:16.6666666667%}.row .col.push-m2{left:16.6666666667%}.row .col.offset-m3{margin-left:25%}.row .col.pull-m3{right:25%}.row .col.push-m3{left:25%}.row .col.offset-m4{margin-left:33.3333333333%}.row .col.pull-m4{right:33.3333333333%}.row .col.push-m4{left:33.3333333333%}.row .col.offset-m5{margin-left:41.6666666667%}.row .col.pull-m5{right:41.6666666667%}.row .col.push-m5{left:41.6666666667%}.row .col.offset-m6{margin-left:50%}.row .col.pull-m6{right:50%}.row .col.push-m6{left:50%}.row .col.offset-m7{margin-left:58.3333333333%}.row .col.pull-m7{right:58.3333333333%}.row .col.push-m7{left:58.3333333333%}.row .col.offset-m8{margin-left:66.6666666667%}.row .col.pull-m8{right:66.6666666667%}.row .col.push-m8{left:66.6666666667%}.row .col.offset-m9{margin-left:75%}.row .col.pull-m9{right:75%}.row .col.push-m9{left:75%}.row .col.offset-m10{margin-left:83.3333333333%}.row .col.pull-m10{right:83.3333333333%}.row .col.push-m10{left:83.3333333333%}.row .col.offset-m11{margin-left:91.6666666667%}.row .col.pull-m11{right:91.6666666667%}.row .col.push-m11{left:91.6666666667%}.row .col.offset-m12{margin-left:100%}.row .col.pull-m12{right:100%}.row .col.push-m12{left:100%}}@media only screen and (min-width:993px){.row .col.l1{width:8.3333333333%}.row .col.l1,.row .col.l2{margin-left:auto;left:auto;right:auto}.row .col.l2{width:16.6666666667%}.row .col.l3{width:25%}.row .col.l3,.row .col.l4{margin-left:auto;left:auto;right:auto}.row .col.l4{width:33.3333333333%}.row .col.l5{width:41.6666666667%}.row .col.l5,.row .col.l6{margin-left:auto;left:auto;right:auto}.row .col.l6{width:50%}.row .col.l7{width:58.3333333333%}.row .col.l7,.row .col.l8{margin-left:auto;left:auto;right:auto}.row .col.l8{width:66.6666666667%}.row .col.l9{width:75%}.row .col.l9,.row .col.l10{margin-left:auto;left:auto;right:auto}.row .col.l10{width:83.3333333333%}.row .col.l11{width:91.6666666667%}.row .col.l11,.row .col.l12{margin-left:auto;left:auto;right:auto}.row .col.l12{width:100%}.row .col.offset-l1{margin-left:8.3333333333%}.row .col.pull-l1{right:8.3333333333%}.row .col.push-l1{left:8.3333333333%}.row .col.offset-l2{margin-left:16.6666666667%}.row .col.pull-l2{right:16.6666666667%}.row .col.push-l2{left:16.6666666667%}.row .col.offset-l3{margin-left:25%}.row .col.pull-l3{right:25%}.row .col.push-l3{left:25%}.row .col.offset-l4{margin-left:33.3333333333%}.row .col.pull-l4{right:33.3333333333%}.row .col.push-l4{left:33.3333333333%}.row .col.offset-l5{margin-left:41.6666666667%}.row .col.pull-l5{right:41.6666666667%}.row .col.push-l5{left:41.6666666667%}.row .col.offset-l6{margin-left:50%}.row .col.pull-l6{right:50%}.row .col.push-l6{left:50%}.row .col.offset-l7{margin-left:58.3333333333%}.row .col.pull-l7{right:58.3333333333%}.row .col.push-l7{left:58.3333333333%}.row .col.offset-l8{margin-left:66.6666666667%}.row .col.pull-l8{right:66.6666666667%}.row .col.push-l8{left:66.6666666667%}.row .col.offset-l9{margin-left:75%}.row .col.pull-l9{right:75%}.row .col.push-l9{left:75%}.row .col.offset-l10{margin-left:83.3333333333%}.row .col.pull-l10{right:83.3333333333%}.row .col.push-l10{left:83.3333333333%}.row .col.offset-l11{margin-left:91.6666666667%}.row .col.pull-l11{right:91.6666666667%}.row .col.push-l11{left:91.6666666667%}.row .col.offset-l12{margin-left:100%}.row .col.pull-l12{right:100%}.row .col.push-l12{left:100%}}@media only screen and (min-width:1201px){.row .col.xl1{width:8.3333333333%}.row .col.xl1,.row .col.xl2{margin-left:auto;left:auto;right:auto}.row .col.xl2{width:16.6666666667%}.row .col.xl3{width:25%}.row .col.xl3,.row .col.xl4{margin-left:auto;left:auto;right:auto}.row .col.xl4{width:33.3333333333%}.row .col.xl5{width:41.6666666667%}.row .col.xl5,.row .col.xl6{margin-left:auto;left:auto;right:auto}.row .col.xl6{width:50%}.row .col.xl7{width:58.3333333333%}.row .col.xl7,.row .col.xl8{margin-left:auto;left:auto;right:auto}.row .col.xl8{width:66.6666666667%}.row .col.xl9{width:75%}.row .col.xl9,.row .col.xl10{margin-left:auto;left:auto;right:auto}.row .col.xl10{width:83.3333333333%}.row .col.xl11{width:91.6666666667%}.row .col.xl11,.row .col.xl12{margin-left:auto;left:auto;right:auto}.row .col.xl12{width:100%}.row .col.offset-xl1{margin-left:8.3333333333%}.row .col.pull-xl1{right:8.3333333333%}.row .col.push-xl1{left:8.3333333333%}.row .col.offset-xl2{margin-left:16.6666666667%}.row .col.pull-xl2{right:16.6666666667%}.row .col.push-xl2{left:16.6666666667%}.row .col.offset-xl3{margin-left:25%}.row .col.pull-xl3{right:25%}.row .col.push-xl3{left:25%}.row .col.offset-xl4{margin-left:33.3333333333%}.row .col.pull-xl4{right:33.3333333333%}.row .col.push-xl4{left:33.3333333333%}.row .col.offset-xl5{margin-left:41.6666666667%}.row .col.pull-xl5{right:41.6666666667%}.row .col.push-xl5{left:41.6666666667%}.row .col.offset-xl6{margin-left:50%}.row .col.pull-xl6{right:50%}.row .col.push-xl6{left:50%}.row .col.offset-xl7{margin-left:58.3333333333%}.row .col.pull-xl7{right:58.3333333333%}.row .col.push-xl7{left:58.3333333333%}.row .col.offset-xl8{margin-left:66.6666666667%}.row .col.pull-xl8{right:66.6666666667%}.row .col.push-xl8{left:66.6666666667%}.row .col.offset-xl9{margin-left:75%}.row .col.pull-xl9{right:75%}.row .col.push-xl9{left:75%}.row .col.offset-xl10{margin-left:83.3333333333%}.row .col.pull-xl10{right:83.3333333333%}.row .col.push-xl10{left:83.3333333333%}.row .col.offset-xl11{margin-left:91.6666666667%}.row .col.pull-xl11{right:91.6666666667%}.row .col.push-xl11{left:91.6666666667%}.row .col.offset-xl12{margin-left:100%}.row .col.pull-xl12{right:100%}.row .col.push-xl12{left:100%}}nav{color:#fff;background-color:#ee6e73;width:100%;height:56px;line-height:56px}nav.nav-extended{height:auto}nav.nav-extended .nav-wrapper{min-height:56px;height:auto}nav.nav-extended .nav-content{position:relative;line-height:normal}nav a{color:#fff}nav [class*=mdi-],nav [class^=mdi-],nav i,nav i.material-icons{display:block;font-size:24px;height:56px;line-height:56px}nav .nav-wrapper{position:relative;height:100%}@media only screen and (min-width:993px){nav a.button-collapse{display:none}}nav .button-collapse{float:left;position:relative;z-index:1;height:56px;margin:0 18px}nav .button-collapse i{height:56px;line-height:56px}nav .brand-logo{position:absolute;color:#fff;display:inline-block;font-size:2.1rem;padding:0;white-space:nowrap}nav .brand-logo.center{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}@media only screen and (max-width:992px){nav .brand-logo{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}nav .brand-logo.left,nav .brand-logo.right{padding:0;-webkit-transform:none;transform:none}nav .brand-logo.left{left:.5rem}nav .brand-logo.right{right:.5rem;left:auto}}nav .brand-logo.right{right:.5rem;padding:0}nav .brand-logo [class*=mdi-],nav .brand-logo [class^=mdi-],nav .brand-logo i,nav .brand-logo i.material-icons{float:left;margin-right:15px}nav .nav-title{display:inline-block;font-size:32px;padding:28px 0}nav ul{margin:0}nav ul li{transition:background-color .3s;float:left;padding:0}nav ul li.active{background-color:rgba(0,0,0,.1)}nav ul a{transition:background-color .3s;font-size:1rem;color:#fff;display:block;padding:0 15px;cursor:pointer}nav ul a.btn,nav ul a.btn-flat,nav ul a.btn-floating,nav ul a.btn-large{margin-top:-2px;margin-left:15px;margin-right:15px}nav ul a.btn-flat>.material-icons,nav ul a.btn-floating>.material-icons,nav ul a.btn-large>.material-icons,nav ul a.btn>.material-icons{height:inherit;line-height:inherit}nav ul a:hover{background-color:rgba(0,0,0,.1)}nav ul.left{float:left}nav form{height:100%}nav .input-field{margin:0;height:100%}nav .input-field input{height:100%;font-size:1.2rem;border:none;padding-left:2rem}nav .input-field input:focus,nav .input-field input[type=date]:valid,nav .input-field input[type=email]:valid,nav .input-field input[type=password]:valid,nav .input-field input[type=text]:valid,nav .input-field input[type=url]:valid{border:none;box-shadow:none}nav .input-field label{top:0;left:0}nav .input-field label i{color:hsla(0,0%,100%,.7);transition:color .3s}nav .input-field label.active i{color:#fff}.navbar-fixed{position:relative;height:56px;z-index:997}.navbar-fixed nav{position:fixed}@media only screen and (min-width:601px){nav.nav-extended .nav-wrapper{min-height:64px}nav,nav .nav-wrapper i,nav a.button-collapse,nav a.button-collapse i{height:64px;line-height:64px}.navbar-fixed{height:64px}}@font-face{font-family:Roboto;src:local(Roboto Thin),url(1f35e6a11d27d2e10d28946d42332dc5.woff2) format("woff2"),url(44b78f142603eb69f593ed4002ed7a4a.woff) format("woff");font-weight:100}@font-face{font-family:Roboto;src:local(Roboto Light),url(3c37aa69cd77e6a53a067170fa8fe2e9.woff2) format("woff2"),url(ea36cd9a0e9eee97012a67b8a4570d7b.woff) format("woff");font-weight:300}@font-face{font-family:Roboto;src:local(Roboto Regular),url(5136cbe62a63604402f2fedb97f246f8.woff2) format("woff2"),url(3cf6adf61054c328b1b0ddcd8f9ce24d.woff) format("woff");font-weight:400}@font-face{font-family:Roboto;src:local(Roboto Medium),url(1561b424aaef2f704bbd89155b3ce514.woff2) format("woff2"),url(cf4d60bc0b1d4b2314085919a00e1724.woff) format("woff");font-weight:500}@font-face{font-family:Roboto;src:local(Roboto Bold),url(c0f1e4a4fdfb8048c72e86aadb2a247d.woff2) format("woff2"),url(eed9aab5449cc9c8430d7d258108f602.woff) format("woff");font-weight:700}a{text-decoration:none}html{line-height:1.5;font-family:Roboto,sans-serif;font-weight:400;color:rgba(0,0,0,.87)}@media only screen and (min-width:0){html{font-size:14px}}@media only screen and (min-width:992px){html{font-size:14.5px}}@media only screen and (min-width:1200px){html{font-size:15px}}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1.1}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{font-weight:inherit}h1{font-size:4.2rem;margin:2.1rem 0 1.68rem}h1,h2{line-height:110%}h2{font-size:3.56rem;margin:1.78rem 0 1.424rem}h3{font-size:2.92rem;margin:1.46rem 0 1.168rem}h3,h4{line-height:110%}h4{font-size:2.28rem;margin:1.14rem 0 .912rem}h5{font-size:1.64rem;margin:.82rem 0 .656rem}h5,h6{line-height:110%}h6{font-size:1rem;margin:.5rem 0 .4rem}em{font-style:italic}strong{font-weight:500}small{font-size:75%}.light,.page-footer .footer-copyright{font-weight:300}.thin{font-weight:200}.flow-text{font-weight:300}@media only screen and (min-width:360px){.flow-text{font-size:1.2rem}}@media only screen and (min-width:390px){.flow-text{font-size:1.224rem}}@media only screen and (min-width:420px){.flow-text{font-size:1.248rem}}@media only screen and (min-width:450px){.flow-text{font-size:1.272rem}}@media only screen and (min-width:480px){.flow-text{font-size:1.296rem}}@media only screen and (min-width:510px){.flow-text{font-size:1.32rem}}@media only screen and (min-width:540px){.flow-text{font-size:1.344rem}}@media only screen and (min-width:570px){.flow-text{font-size:1.368rem}}@media only screen and (min-width:600px){.flow-text{font-size:1.392rem}}@media only screen and (min-width:630px){.flow-text{font-size:1.416rem}}@media only screen and (min-width:660px){.flow-text{font-size:1.44rem}}@media only screen and (min-width:690px){.flow-text{font-size:1.464rem}}@media only screen and (min-width:720px){.flow-text{font-size:1.488rem}}@media only screen and (min-width:750px){.flow-text{font-size:1.512rem}}@media only screen and (min-width:780px){.flow-text{font-size:1.536rem}}@media only screen and (min-width:810px){.flow-text{font-size:1.56rem}}@media only screen and (min-width:840px){.flow-text{font-size:1.584rem}}@media only screen and (min-width:870px){.flow-text{font-size:1.608rem}}@media only screen and (min-width:900px){.flow-text{font-size:1.632rem}}@media only screen and (min-width:930px){.flow-text{font-size:1.656rem}}@media only screen and (min-width:960px){.flow-text{font-size:1.68rem}}@media only screen and (max-width:360px){.flow-text{font-size:1.2rem}}.scale-transition{transition:-webkit-transform .3s cubic-bezier(.53,.01,.36,1.63)!important;transition:transform .3s cubic-bezier(.53,.01,.36,1.63)!important;transition:transform .3s cubic-bezier(.53,.01,.36,1.63),-webkit-transform .3s cubic-bezier(.53,.01,.36,1.63)!important}.scale-transition.scale-out{-webkit-transform:scale(0);transform:scale(0);transition:-webkit-transform .2s!important;transition:transform .2s!important;transition:transform .2s,-webkit-transform .2s!important}.scale-transition.scale-in{-webkit-transform:scale(1);transform:scale(1)}.card-panel{padding:24px}.card,.card-panel{transition:box-shadow .25s;margin:.5rem 0 1rem;border-radius:2px;background-color:#fff}.card{position:relative}.card .card-title{font-size:24px;font-weight:300}.card .card-title.activator{cursor:pointer}.card.large,.card.medium,.card.small{position:relative}.card.large .card-image,.card.medium .card-image,.card.small .card-image{max-height:60%;overflow:hidden}.card.large .card-image+.card-content,.card.medium .card-image+.card-content,.card.small .card-image+.card-content{max-height:40%}.card.large .card-content,.card.medium .card-content,.card.small .card-content{max-height:100%;overflow:hidden}.card.large .card-action,.card.medium .card-action,.card.small .card-action{position:absolute;bottom:0;left:0;right:0}.card.small{height:300px}.card.medium{height:400px}.card.large{height:500px}.card.horizontal{display:-webkit-flex;display:-ms-flexbox;display:flex}.card.horizontal.large .card-image,.card.horizontal.medium .card-image,.card.horizontal.small .card-image{height:100%;max-height:none;overflow:visible}.card.horizontal.large .card-image img,.card.horizontal.medium .card-image img,.card.horizontal.small .card-image img{height:100%}.card.horizontal .card-image{max-width:50%}.card.horizontal .card-image img{border-radius:2px 0 0 2px;max-width:100%;width:auto}.card.horizontal .card-stacked{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex:1;-ms-flex:1;flex:1;position:relative}.card.horizontal .card-stacked .card-content{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.card.sticky-action .card-action{z-index:2}.card.sticky-action .card-reveal{z-index:1;padding-bottom:64px}.card .card-image{position:relative}.card .card-image img{display:block;border-radius:2px 2px 0 0;position:relative;left:0;right:0;top:0;bottom:0;width:100%}.card .card-image .card-title{color:#fff;position:absolute;bottom:0;left:0;max-width:100%;padding:24px}.card .card-content{padding:24px;border-radius:0 0 2px 2px}.card .card-content p{margin:0;color:inherit}.card .card-content .card-title{display:block;line-height:32px;margin-bottom:8px}.card .card-content .card-title i{line-height:32px}.card .card-action{position:relative;background-color:inherit;border-top:1px solid hsla(0,0%,63%,.2);padding:16px 24px}.card .card-action:last-child{border-radius:0 0 2px 2px}.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating){color:#ffab40;margin-right:24px;transition:color .3s ease;text-transform:uppercase}.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating):hover{color:#ffd8a6}.card .card-reveal{padding:24px;position:absolute;background-color:#fff;width:100%;overflow-y:auto;left:0;top:100%;height:100%;z-index:3;display:none}.card .card-reveal .card-title{cursor:pointer;display:block}#toast-container{display:block;position:fixed;z-index:10000}@media only screen and (max-width:600px){#toast-container{min-width:100%;bottom:0}}@media only screen and (min-width:601px) and (max-width:992px){#toast-container{left:5%;bottom:7%;max-width:90%}}@media only screen and (min-width:993px){#toast-container{top:10%;right:7%;max-width:86%}}.toast{border-radius:2px;top:35px;width:auto;clear:both;margin-top:10px;position:relative;max-width:100%;height:auto;min-height:48px;line-height:1.5em;word-break:break-all;background-color:#323232;padding:10px 25px;font-size:1.1rem;font-weight:300;color:#fff;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.toast .btn,.toast .btn-flat,.toast .btn-large{margin:0;margin-left:3rem}.toast.rounded{border-radius:24px}@media only screen and (max-width:600px){.toast{width:100%;border-radius:0}}@media only screen and (min-width:601px) and (max-width:992px){.toast{float:left}}@media only screen and (min-width:993px){.toast{float:right}}.tabs{position:relative;overflow-x:auto;overflow-y:hidden;height:48px;width:100%;background-color:#fff;margin:0 auto;white-space:nowrap}.tabs.tabs-transparent{background-color:transparent}.tabs.tabs-transparent .tab.disabled a,.tabs.tabs-transparent .tab.disabled a:hover,.tabs.tabs-transparent .tab a{color:hsla(0,0%,100%,.7)}.tabs.tabs-transparent .tab a.active,.tabs.tabs-transparent .tab a:hover{color:#fff}.tabs.tabs-transparent .indicator{background-color:#fff}.tabs.tabs-fixed-width{display:-webkit-flex;display:-ms-flexbox;display:flex}.tabs.tabs-fixed-width .tab{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.tabs .tab{display:inline-block;text-align:center;line-height:48px;height:48px;padding:0;margin:0;text-transform:uppercase}.tabs .tab a{color:rgba(238,110,115,.7);display:block;width:100%;height:100%;padding:0 24px;font-size:14px;text-overflow:ellipsis;overflow:hidden;transition:color .28s ease}.tabs .tab a.active,.tabs .tab a:hover{background-color:transparent;color:#ee6e73}.tabs .tab.disabled a,.tabs .tab.disabled a:hover{color:rgba(238,110,115,.7);cursor:default}.tabs .indicator{position:absolute;bottom:0;height:2px;background-color:#f6b2b5;will-change:left,right}@media only screen and (max-width:992px){.tabs{display:-webkit-flex;display:-ms-flexbox;display:flex}.tabs .tab{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.tabs .tab a{padding:0 12px}}.material-tooltip{padding:10px 8px;font-size:1rem;z-index:2000;background-color:transparent;border-radius:2px;color:#fff;min-height:36px;line-height:120%;text-align:center;max-width:calc(100% - 4px);overflow:hidden;left:0;top:0;pointer-events:none}.backdrop,.material-tooltip{opacity:0;position:absolute;visibility:hidden}.backdrop{height:7px;width:14px;border-radius:0 0 50% 50%;background-color:#323232;z-index:-1;-webkit-transform-origin:50% 0;transform-origin:50% 0}.btn,.btn-flat,.btn-large{border:none;border-radius:2px;display:inline-block;height:36px;line-height:36px;padding:0 2rem;text-transform:uppercase;vertical-align:middle;-webkit-tap-highlight-color:transparent}.btn-flat.disabled,.btn-flat:disabled,.btn-flat[disabled],.btn-floating.disabled,.btn-floating:disabled,.btn-floating[disabled],.btn-large.disabled,.btn-large:disabled,.btn-large[disabled],.btn.disabled,.btn:disabled,.btn[disabled],.disabled.btn-large,[disabled].btn-large{pointer-events:none;background-color:#dfdfdf!important;box-shadow:none;color:#9f9f9f!important;cursor:default}.btn-flat.disabled:hover,.btn-flat:disabled:hover,.btn-flat[disabled]:hover,.btn-floating.disabled:hover,.btn-floating:disabled:hover,.btn-floating[disabled]:hover,.btn-large.disabled:hover,.btn-large:disabled:hover,.btn-large[disabled]:hover,.btn.disabled:hover,.btn:disabled:hover,.btn[disabled]:hover,.disabled.btn-large:hover,[disabled].btn-large:hover{background-color:#dfdfdf!important;color:#9f9f9f!important}.btn,.btn-flat,.btn-floating,.btn-large{font-size:1rem;outline:0}.btn-flat i,.btn-floating i,.btn-large i,.btn i{font-size:1.3rem;line-height:inherit}.btn-floating:focus,.btn-large:focus,.btn:focus{background-color:#1d7d74}.btn,.btn-large{text-decoration:none;color:#fff;background-color:#26a69a;text-align:center;letter-spacing:.5px;transition:.2s ease-out;cursor:pointer}.btn-large:hover,.btn:hover{background-color:#2bbbad}.btn-floating{display:inline-block;color:#fff;position:relative;overflow:hidden;z-index:1;width:40px;height:40px;line-height:40px;padding:0;border-radius:50%;transition:.3s;cursor:pointer;vertical-align:middle}.btn-floating,.btn-floating:hover{background-color:#26a69a}.btn-floating:before{border-radius:0}.btn-floating.btn-large{width:56px;height:56px}.btn-floating.btn-large.halfway-fab{bottom:-28px}.btn-floating.btn-large i{line-height:56px}.btn-floating.halfway-fab{position:absolute;right:24px;bottom:-20px}.btn-floating.halfway-fab.left{right:auto;left:24px}.btn-floating i{width:inherit;display:inline-block;text-align:center;color:#fff;font-size:1.6rem;line-height:40px}button.btn-floating{border:none}.fixed-action-btn{position:fixed;right:23px;bottom:23px;padding-top:15px;margin-bottom:0;z-index:998}.fixed-action-btn.active ul{visibility:visible}.fixed-action-btn.horizontal{padding:0 0 0 15px}.fixed-action-btn.horizontal ul{text-align:right;right:64px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);height:100%;left:auto;width:500px}.fixed-action-btn.horizontal ul li{display:inline-block;margin:15px 15px 0 0}.fixed-action-btn.toolbar{padding:0;height:56px}.fixed-action-btn.toolbar.active>a i{opacity:0}.fixed-action-btn.toolbar ul{display:-webkit-flex;display:-ms-flexbox;display:flex;top:0;bottom:0}.fixed-action-btn.toolbar ul li{-webkit-flex:1;-ms-flex:1;flex:1;display:inline-block;margin:0;height:100%;transition:none}.fixed-action-btn.toolbar ul li a{display:block;overflow:hidden;position:relative;width:100%;height:100%;background-color:transparent;box-shadow:none;color:#fff;line-height:56px;z-index:1}.fixed-action-btn.toolbar ul li a i{line-height:inherit}.fixed-action-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0;visibility:hidden}.fixed-action-btn ul li{margin-bottom:15px}.fixed-action-btn ul a.btn-floating{opacity:0}.fixed-action-btn .fab-backdrop{position:absolute;top:0;left:0;z-index:-1;width:40px;height:40px;background-color:#26a69a;border-radius:50%;-webkit-transform:scale(0);transform:scale(0)}.btn-flat{box-shadow:none;color:#343434;cursor:pointer;transition:background-color .2s}.btn-flat,.btn-flat:active,.btn-flat:focus{background-color:transparent}.btn-flat:focus,.btn-flat:hover{background-color:rgba(0,0,0,.1);box-shadow:none}.btn-flat:active{background-color:rgba(0,0,0,.2)}.btn-flat.disabled{background-color:transparent!important;color:#b3b3b3!important;cursor:default}.btn-large{height:54px;line-height:54px}.btn-large i{font-size:1.6rem}.btn-block{display:block}.dropdown-content{background-color:#fff;margin:0;display:none;min-width:100px;max-height:650px;overflow-y:auto;opacity:0;position:absolute;z-index:999;will-change:width,height}.dropdown-content li{clear:both;color:rgba(0,0,0,.87);cursor:pointer;min-height:50px;line-height:1.5rem;width:100%;text-align:left;text-transform:none}.dropdown-content li.active,.dropdown-content li.selected,.dropdown-content li:hover{background-color:#eee}.dropdown-content li.active.selected{background-color:#e1e1e1}.dropdown-content li.divider{min-height:0;height:1px}.dropdown-content li>a,.dropdown-content li>span{font-size:16px;color:#26a69a;display:block;line-height:22px;padding:14px 16px}.dropdown-content li>span>label{top:1px;left:0;height:18px}.dropdown-content li>a>i{height:inherit;line-height:inherit;float:left;margin:0 24px 0 0;width:24px}.input-field.col .dropdown-content [type=checkbox]+label{top:1px;left:0;height:18px}/*! + * Waves v0.6.0 + * http://fian.my.id/Waves + * + * Copyright 2014 Alfiana E. Sibuea and other contributors + * Released under the MIT license + * https://github.com/fians/Waves/blob/master/LICENSE + */.waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle;z-index:1;transition:.3s ease-out}.waves-effect .waves-ripple{position:absolute;border-radius:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;opacity:0;background:rgba(0,0,0,.2);transition:all .7s ease-out;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transform:scale(0);transform:scale(0);pointer-events:none}.waves-effect.waves-light .waves-ripple{background-color:hsla(0,0%,100%,.45)}.waves-effect.waves-red .waves-ripple{background-color:rgba(244,67,54,.7)}.waves-effect.waves-yellow .waves-ripple{background-color:rgba(255,235,59,.7)}.waves-effect.waves-orange .waves-ripple{background-color:rgba(255,152,0,.7)}.waves-effect.waves-purple .waves-ripple{background-color:rgba(156,39,176,.7)}.waves-effect.waves-green .waves-ripple{background-color:rgba(76,175,80,.7)}.waves-effect.waves-teal .waves-ripple{background-color:rgba(0,150,136,.7)}.waves-effect input[type=button],.waves-effect input[type=reset],.waves-effect input[type=submit]{border:0;font-style:normal;font-size:inherit;text-transform:inherit;background:none}.waves-effect img{position:relative;z-index:-1}.waves-notransition{transition:none!important}.waves-circle{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 0)}.waves-input-wrapper{border-radius:.2em;vertical-align:bottom}.waves-input-wrapper .waves-button-input{position:relative;top:0;left:0;z-index:1}.waves-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%;-webkit-mask-image:none}.waves-block{display:block}.waves-effect .waves-ripple{z-index:-1}.modal{display:none;position:fixed;left:0;right:0;background-color:#fafafa;padding:0;max-height:70%;width:55%;margin:auto;overflow-y:auto;border-radius:2px;will-change:top,opacity}@media only screen and (max-width:992px){.modal{width:80%}}.modal h1,.modal h2,.modal h3,.modal h4{margin-top:0}.modal .modal-content{padding:24px}.modal .modal-close{cursor:pointer}.modal .modal-footer{border-radius:0 0 2px 2px;background-color:#fafafa;padding:4px 6px;height:56px;width:100%}.modal .modal-footer .btn,.modal .modal-footer .btn-flat,.modal .modal-footer .btn-large{float:right;margin:6px 0}.modal-overlay{position:fixed;z-index:999;top:-100px;left:0;bottom:0;right:0;height:125%;width:100%;background:#000;display:none;will-change:opacity}.modal.modal-fixed-footer{padding:0;height:70%}.modal.modal-fixed-footer .modal-content{position:absolute;height:calc(100% - 56px);max-height:100%;width:100%;overflow-y:auto}.modal.modal-fixed-footer .modal-footer{border-top:1px solid rgba(0,0,0,.1);position:absolute;bottom:0}.modal.bottom-sheet{top:auto;bottom:-100%;margin:0;width:100%;max-height:45%;border-radius:0;will-change:bottom,opacity}.collapsible{border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;margin:.5rem 0 1rem}.collapsible-header{display:block;cursor:pointer;min-height:3rem;line-height:3rem;padding:0 1rem;background-color:#fff;border-bottom:1px solid #ddd}.collapsible-header i{width:2rem;font-size:1.6rem;line-height:3rem;display:block;float:left;text-align:center;margin-right:1rem}.collapsible-body{display:none;border-bottom:1px solid #ddd;box-sizing:border-box;padding:2rem}.side-nav .collapsible,.side-nav.fixed .collapsible{border:none;box-shadow:none}.side-nav .collapsible li,.side-nav.fixed .collapsible li{padding:0}.side-nav .collapsible-header,.side-nav.fixed .collapsible-header{background-color:transparent;border:none;line-height:inherit;height:inherit;padding:0 16px}.side-nav .collapsible-header:hover,.side-nav.fixed .collapsible-header:hover{background-color:rgba(0,0,0,.05)}.side-nav .collapsible-header i,.side-nav.fixed .collapsible-header i{line-height:inherit}.side-nav .collapsible-body,.side-nav.fixed .collapsible-body{border:0;background-color:#fff}.side-nav .collapsible-body li a,.side-nav.fixed .collapsible-body li a{padding:0 23.5px 0 31px}.collapsible.popout{border:none;box-shadow:none}.collapsible.popout>li{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);margin:0 24px;transition:margin .35s cubic-bezier(.25,.46,.45,.94)}.collapsible.popout>li.active{box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15);margin:16px 0}.chip{display:inline-block;height:32px;font-size:13px;font-weight:500;color:rgba(0,0,0,.6);line-height:32px;padding:0 12px;border-radius:16px;background-color:#e4e4e4;margin-bottom:5px;margin-right:5px}.chip>img{float:left;margin:0 8px 0 -12px;height:32px;width:32px;border-radius:50%}.chip .close{cursor:pointer;float:right;font-size:16px;line-height:32px;padding-left:8px}.chips{border:none;border-bottom:1px solid #9e9e9e;box-shadow:none;margin:0 0 20px;min-height:45px;outline:none;transition:all .3s}.chips.focus{border-bottom:1px solid #26a69a;box-shadow:0 1px 0 0 #26a69a}.chips:hover{cursor:text}.chips .chip.selected{background-color:#26a69a;color:#fff}.chips .input{background:none;border:0;color:rgba(0,0,0,.6);display:inline-block;font-size:1rem;height:3rem;line-height:32px;outline:0;margin:0;padding:0!important;width:120px!important}.chips .input:focus{border:0!important;box-shadow:none!important}.chips .autocomplete-content{margin-top:0}.prefix~.chips{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.chips:empty~label{font-size:.8rem;-webkit-transform:translateY(-140%);transform:translateY(-140%)}.materialboxed{display:block;cursor:-webkit-zoom-in;cursor:zoom-in;position:relative;transition:opacity .4s;-webkit-backface-visibility:hidden}.materialboxed:hover:not(.active){opacity:.8}.materialboxed.active{cursor:-webkit-zoom-out;cursor:zoom-out}#materialbox-overlay{top:0;right:0;background-color:#292929;will-change:opacity}#materialbox-overlay,.materialbox-caption{position:fixed;bottom:0;left:0;z-index:1000}.materialbox-caption{display:none;color:#fff;line-height:50px;width:100%;text-align:center;padding:0 15%;height:50px;-webkit-font-smoothing:antialiased}select:focus{outline:1px solid #c9f3ef}button:focus{outline:none;background-color:#2ab7a9}label{font-size:.8rem;color:#9e9e9e}::-webkit-input-placeholder{color:#d1d1d1}:-moz-placeholder,::-moz-placeholder{color:#d1d1d1}:-ms-input-placeholder{color:#d1d1d1}input:not([type]),input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],textarea.materialize-textarea{background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;border-radius:0;outline:none;height:3rem;width:100%;font-size:1rem;margin:0 0 20px;padding:0;box-shadow:none;box-sizing:content-box;transition:all .3s}input:not([type]):disabled,input:not([type])[readonly=readonly],input[type=date]:disabled,input[type=date][readonly=readonly],input[type=datetime-local]:disabled,input[type=datetime-local][readonly=readonly],input[type=datetime]:disabled,input[type=datetime][readonly=readonly],input[type=email]:disabled,input[type=email][readonly=readonly],input[type=number]:disabled,input[type=number][readonly=readonly],input[type=password]:disabled,input[type=password][readonly=readonly],input[type=search]:disabled,input[type=search][readonly=readonly],input[type=tel]:disabled,input[type=tel][readonly=readonly],input[type=text]:disabled,input[type=text][readonly=readonly],input[type=time]:disabled,input[type=time][readonly=readonly],input[type=url]:disabled,input[type=url][readonly=readonly],textarea.materialize-textarea:disabled,textarea.materialize-textarea[readonly=readonly]{color:rgba(0,0,0,.26);border-bottom:1px dotted rgba(0,0,0,.26)}input:not([type]):disabled+label,input:not([type])[readonly=readonly]+label,input[type=date]:disabled+label,input[type=date][readonly=readonly]+label,input[type=datetime-local]:disabled+label,input[type=datetime-local][readonly=readonly]+label,input[type=datetime]:disabled+label,input[type=datetime][readonly=readonly]+label,input[type=email]:disabled+label,input[type=email][readonly=readonly]+label,input[type=number]:disabled+label,input[type=number][readonly=readonly]+label,input[type=password]:disabled+label,input[type=password][readonly=readonly]+label,input[type=search]:disabled+label,input[type=search][readonly=readonly]+label,input[type=tel]:disabled+label,input[type=tel][readonly=readonly]+label,input[type=text]:disabled+label,input[type=text][readonly=readonly]+label,input[type=time]:disabled+label,input[type=time][readonly=readonly]+label,input[type=url]:disabled+label,input[type=url][readonly=readonly]+label,textarea.materialize-textarea:disabled+label,textarea.materialize-textarea[readonly=readonly]+label{color:rgba(0,0,0,.26)}input:not([type]):focus:not([readonly]),input[type=date]:focus:not([readonly]),input[type=datetime-local]:focus:not([readonly]),input[type=datetime]:focus:not([readonly]),input[type=email]:focus:not([readonly]),input[type=number]:focus:not([readonly]),input[type=password]:focus:not([readonly]),input[type=search]:focus:not([readonly]),input[type=tel]:focus:not([readonly]),input[type=text]:focus:not([readonly]),input[type=time]:focus:not([readonly]),input[type=url]:focus:not([readonly]),textarea.materialize-textarea:focus:not([readonly]){border-bottom:1px solid #26a69a;box-shadow:0 1px 0 0 #26a69a}input:not([type]):focus:not([readonly])+label,input[type=date]:focus:not([readonly])+label,input[type=datetime-local]:focus:not([readonly])+label,input[type=datetime]:focus:not([readonly])+label,input[type=email]:focus:not([readonly])+label,input[type=number]:focus:not([readonly])+label,input[type=password]:focus:not([readonly])+label,input[type=search]:focus:not([readonly])+label,input[type=tel]:focus:not([readonly])+label,input[type=text]:focus:not([readonly])+label,input[type=time]:focus:not([readonly])+label,input[type=url]:focus:not([readonly])+label,textarea.materialize-textarea:focus:not([readonly])+label{color:#26a69a}input:not([type]).valid,input:not([type]):focus.valid,input[type=date].valid,input[type=date]:focus.valid,input[type=datetime-local].valid,input[type=datetime-local]:focus.valid,input[type=datetime].valid,input[type=datetime]:focus.valid,input[type=email].valid,input[type=email]:focus.valid,input[type=number].valid,input[type=number]:focus.valid,input[type=password].valid,input[type=password]:focus.valid,input[type=search].valid,input[type=search]:focus.valid,input[type=tel].valid,input[type=tel]:focus.valid,input[type=text].valid,input[type=text]:focus.valid,input[type=time].valid,input[type=time]:focus.valid,input[type=url].valid,input[type=url]:focus.valid,textarea.materialize-textarea.valid,textarea.materialize-textarea:focus.valid{border-bottom:1px solid #4caf50;box-shadow:0 1px 0 0 #4caf50}input:not([type]).valid+label:after,input:not([type]):focus.valid+label:after,input[type=date].valid+label:after,input[type=date]:focus.valid+label:after,input[type=datetime-local].valid+label:after,input[type=datetime-local]:focus.valid+label:after,input[type=datetime].valid+label:after,input[type=datetime]:focus.valid+label:after,input[type=email].valid+label:after,input[type=email]:focus.valid+label:after,input[type=number].valid+label:after,input[type=number]:focus.valid+label:after,input[type=password].valid+label:after,input[type=password]:focus.valid+label:after,input[type=search].valid+label:after,input[type=search]:focus.valid+label:after,input[type=tel].valid+label:after,input[type=tel]:focus.valid+label:after,input[type=text].valid+label:after,input[type=text]:focus.valid+label:after,input[type=time].valid+label:after,input[type=time]:focus.valid+label:after,input[type=url].valid+label:after,input[type=url]:focus.valid+label:after,textarea.materialize-textarea.valid+label:after,textarea.materialize-textarea:focus.valid+label:after{content:attr(data-success);color:#4caf50;opacity:1}input:not([type]).invalid,input:not([type]):focus.invalid,input[type=date].invalid,input[type=date]:focus.invalid,input[type=datetime-local].invalid,input[type=datetime-local]:focus.invalid,input[type=datetime].invalid,input[type=datetime]:focus.invalid,input[type=email].invalid,input[type=email]:focus.invalid,input[type=number].invalid,input[type=number]:focus.invalid,input[type=password].invalid,input[type=password]:focus.invalid,input[type=search].invalid,input[type=search]:focus.invalid,input[type=tel].invalid,input[type=tel]:focus.invalid,input[type=text].invalid,input[type=text]:focus.invalid,input[type=time].invalid,input[type=time]:focus.invalid,input[type=url].invalid,input[type=url]:focus.invalid,textarea.materialize-textarea.invalid,textarea.materialize-textarea:focus.invalid{border-bottom:1px solid #f44336;box-shadow:0 1px 0 0 #f44336}input:not([type]).invalid+label:after,input:not([type]):focus.invalid+label:after,input[type=date].invalid+label:after,input[type=date]:focus.invalid+label:after,input[type=datetime-local].invalid+label:after,input[type=datetime-local]:focus.invalid+label:after,input[type=datetime].invalid+label:after,input[type=datetime]:focus.invalid+label:after,input[type=email].invalid+label:after,input[type=email]:focus.invalid+label:after,input[type=number].invalid+label:after,input[type=number]:focus.invalid+label:after,input[type=password].invalid+label:after,input[type=password]:focus.invalid+label:after,input[type=search].invalid+label:after,input[type=search]:focus.invalid+label:after,input[type=tel].invalid+label:after,input[type=tel]:focus.invalid+label:after,input[type=text].invalid+label:after,input[type=text]:focus.invalid+label:after,input[type=time].invalid+label:after,input[type=time]:focus.invalid+label:after,input[type=url].invalid+label:after,input[type=url]:focus.invalid+label:after,textarea.materialize-textarea.invalid+label:after,textarea.materialize-textarea:focus.invalid+label:after{content:attr(data-error);color:#f44336;opacity:1}input:not([type]).validate+label,input[type=date].validate+label,input[type=datetime-local].validate+label,input[type=datetime].validate+label,input[type=email].validate+label,input[type=number].validate+label,input[type=password].validate+label,input[type=search].validate+label,input[type=tel].validate+label,input[type=text].validate+label,input[type=time].validate+label,input[type=url].validate+label,textarea.materialize-textarea.validate+label{width:100%;pointer-events:none}input:not([type])+label:after,input[type=date]+label:after,input[type=datetime-local]+label:after,input[type=datetime]+label:after,input[type=email]+label:after,input[type=number]+label:after,input[type=password]+label:after,input[type=search]+label:after,input[type=tel]+label:after,input[type=text]+label:after,input[type=time]+label:after,input[type=url]+label:after,textarea.materialize-textarea+label:after{display:block;content:"";position:absolute;top:60px;opacity:0;transition:opacity .2s ease-out,color .2s ease-out}.input-field{position:relative;margin-top:1rem}.input-field.inline{display:inline-block;vertical-align:middle;margin-left:5px}.input-field.inline .select-dropdown,.input-field.inline input{margin-bottom:1rem}.input-field.col label{left:.75rem}.input-field.col .prefix~.validate~label,.input-field.col .prefix~label{width:calc(100% - 3rem - 1.5rem)}.input-field label{color:#9e9e9e;position:absolute;top:.8rem;left:0;font-size:1rem;cursor:text;transition:.2s ease-out;text-align:initial}.input-field label:not(.label-icon).active{font-size:.8rem;-webkit-transform:translateY(-140%);transform:translateY(-140%)}.input-field .prefix{position:absolute;width:3rem;font-size:2rem;transition:color .2s}.input-field .prefix.active{color:#26a69a}.input-field .prefix~.autocomplete-content,.input-field .prefix~.validate~label,.input-field .prefix~input,.input-field .prefix~label,.input-field .prefix~textarea{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.input-field .prefix~label{margin-left:3rem}@media only screen and (max-width:992px){.input-field .prefix~input{width:86%;width:calc(100% - 3rem)}}@media only screen and (max-width:600px){.input-field .prefix~input{width:80%;width:calc(100% - 3rem)}}.input-field input[type=search]{display:block;line-height:inherit;padding-left:4rem;width:calc(100% - 4rem)}.input-field input[type=search]:focus{background-color:#fff;border:0;box-shadow:none;color:#444}.input-field input[type=search]:focus+label i,.input-field input[type=search]:focus~.material-icons,.input-field input[type=search]:focus~.mdi-navigation-close{color:#444}.input-field input[type=search]+label{left:1rem}.input-field input[type=search]~.material-icons,.input-field input[type=search]~.mdi-navigation-close{position:absolute;top:0;right:1rem;color:transparent;cursor:pointer;font-size:2rem;transition:color .3s}textarea{width:100%;height:3rem;background-color:transparent}textarea.materialize-textarea{overflow-y:hidden;padding:.8rem 0 1.6rem;resize:none;min-height:3rem}.hiddendiv{display:none;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;padding-top:1.2rem;position:absolute;top:0}.autocomplete-content{margin-top:-20px;display:block;opacity:1;position:static}.autocomplete-content li .highlight{color:#444}.autocomplete-content li img{height:40px;width:40px;margin:5px 15px}[type=radio]:checked,[type=radio]:not(:checked){position:absolute;left:-9999px;opacity:0}[type=radio]:checked+label,[type=radio]:not(:checked)+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;transition:.28s ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[type=radio]+label:after,[type=radio]+label:before{content:"";position:absolute;left:0;top:0;margin:4px;width:16px;height:16px;z-index:0;transition:.28s ease}[type=radio].with-gap:checked+label:after,[type=radio].with-gap:checked+label:before,[type=radio]:checked+label:after,[type=radio]:checked+label:before,[type=radio]:not(:checked)+label:after,[type=radio]:not(:checked)+label:before{border-radius:50%}[type=radio]:not(:checked)+label:after,[type=radio]:not(:checked)+label:before{border:2px solid #5a5a5a}[type=radio]:not(:checked)+label:after{-webkit-transform:scale(0);transform:scale(0)}[type=radio]:checked+label:before{border:2px solid transparent}[type=radio].with-gap:checked+label:after,[type=radio].with-gap:checked+label:before,[type=radio]:checked+label:after{border:2px solid #26a69a}[type=radio].with-gap:checked+label:after,[type=radio]:checked+label:after{background-color:#26a69a}[type=radio]:checked+label:after{-webkit-transform:scale(1.02);transform:scale(1.02)}[type=radio].with-gap:checked+label:after{-webkit-transform:scale(.5);transform:scale(.5)}[type=radio].tabbed:focus+label:before{box-shadow:0 0 0 10px rgba(0,0,0,.1)}[type=radio].with-gap:disabled:checked+label:before{border:2px solid rgba(0,0,0,.26)}[type=radio].with-gap:disabled:checked+label:after{border:none;background-color:rgba(0,0,0,.26)}[type=radio]:disabled:checked+label:before,[type=radio]:disabled:not(:checked)+label:before{background-color:transparent;border-color:rgba(0,0,0,.26)}[type=radio]:disabled+label{color:rgba(0,0,0,.26)}[type=radio]:disabled:not(:checked)+label:before{border-color:rgba(0,0,0,.26)}[type=radio]:disabled:checked+label:after{background-color:rgba(0,0,0,.26);border-color:#bdbdbd}form p{margin-bottom:10px;text-align:left}form p:last-child{margin-bottom:0}[type=checkbox]:checked,[type=checkbox]:not(:checked){position:absolute;left:-9999px;opacity:0}[type=checkbox]+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}[type=checkbox]+label:before,[type=checkbox]:not(.filled-in)+label:after{content:"";position:absolute;top:0;left:0;width:18px;height:18px;z-index:0;border:2px solid #5a5a5a;border-radius:1px;margin-top:2px;transition:.2s}[type=checkbox]:not(.filled-in)+label:after{border:0;-webkit-transform:scale(0);transform:scale(0)}[type=checkbox]:not(:checked):disabled+label:before{border:none;background-color:rgba(0,0,0,.26)}[type=checkbox].tabbed:focus+label:after{-webkit-transform:scale(1);transform:scale(1);border:0;border-radius:50%;box-shadow:0 0 0 10px rgba(0,0,0,.1);background-color:rgba(0,0,0,.1)}[type=checkbox]:checked+label:before{top:-4px;left:-5px;width:12px;height:22px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #26a69a;border-bottom:2px solid #26a69a;-webkit-transform:rotate(40deg);transform:rotate(40deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type=checkbox]:checked:disabled+label:before{border-right:2px solid rgba(0,0,0,.26);border-bottom:2px solid rgba(0,0,0,.26)}[type=checkbox]:indeterminate+label:before{top:-11px;left:-12px;width:10px;height:22px;border-top:none;border-left:none;border-right:2px solid #26a69a;border-bottom:none;-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type=checkbox]:indeterminate:disabled+label:before{border-right:2px solid rgba(0,0,0,.26);background-color:transparent}[type=checkbox].filled-in+label:after{border-radius:2px}[type=checkbox].filled-in+label:after,[type=checkbox].filled-in+label:before{content:"";left:0;position:absolute;transition:border .25s,background-color .25s,width .2s .1s,height .2s .1s,top .2s .1s,left .2s .1s;z-index:1}[type=checkbox].filled-in:not(:checked)+label:before{width:0;height:0;border:3px solid transparent;left:6px;top:10px;-webkit-transform:rotate(37deg);transform:rotate(37deg);-webkit-transform-origin:20% 40%;transform-origin:100% 100%}[type=checkbox].filled-in:not(:checked)+label:after{height:20px;width:20px;background-color:transparent;border:2px solid #5a5a5a;top:0;z-index:0}[type=checkbox].filled-in:checked+label:before{top:0;left:1px;width:8px;height:13px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:rotate(37deg);transform:rotate(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type=checkbox].filled-in:checked+label:after{top:0;width:20px;height:20px;border:2px solid #26a69a;background-color:#26a69a;z-index:0}[type=checkbox].filled-in.tabbed:focus+label:after{border-radius:2px;border-color:#5a5a5a;background-color:rgba(0,0,0,.1)}[type=checkbox].filled-in.tabbed:checked:focus+label:after{border-radius:2px;background-color:#26a69a;border-color:#26a69a}[type=checkbox].filled-in:disabled:not(:checked)+label:before{background-color:transparent;border:2px solid transparent}[type=checkbox].filled-in:disabled:not(:checked)+label:after{border-color:transparent;background-color:#bdbdbd}[type=checkbox].filled-in:disabled:checked+label:before{background-color:transparent}[type=checkbox].filled-in:disabled:checked+label:after{background-color:#bdbdbd;border-color:#bdbdbd}.switch,.switch *{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.switch label{cursor:pointer}.switch label input[type=checkbox]{opacity:0;width:0;height:0}.switch label input[type=checkbox]:checked+.lever{background-color:#84c7c1}.switch label input[type=checkbox]:checked+.lever:after{background-color:#26a69a;left:24px}.switch label .lever{content:"";display:inline-block;position:relative;width:40px;height:15px;background-color:#818181;border-radius:15px;margin-right:10px;transition:background .3s ease;vertical-align:middle;margin:0 16px}.switch label .lever:after{content:"";position:absolute;display:inline-block;width:21px;height:21px;background-color:#f1f1f1;border-radius:21px;box-shadow:0 1px 3px 1px rgba(0,0,0,.4);left:-5px;top:-3px;transition:left .3s ease,background .3s ease,box-shadow .1s ease}input[type=checkbox]:checked:not(:disabled).tabbed:focus~.lever:after,input[type=checkbox]:checked:not(:disabled)~.lever:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,.4),0 0 0 15px rgba(38,166,154,.1)}input[type=checkbox]:not(:disabled).tabbed:focus~.lever:after,input[type=checkbox]:not(:disabled)~.lever:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,.4),0 0 0 15px rgba(0,0,0,.08)}.switch input[type=checkbox][disabled]+.lever{cursor:default}.switch label input[type=checkbox][disabled]+.lever:after,.switch label input[type=checkbox][disabled]:checked+.lever:after{background-color:#bdbdbd}select{display:none}select.browser-default{display:block}select{background-color:hsla(0,0%,100%,.9);width:100%;padding:5px;border:1px solid #f2f2f2;border-radius:2px;height:3rem}.select-label{position:absolute}.select-wrapper{position:relative}.select-wrapper input.select-dropdown{position:relative;cursor:pointer;background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;outline:none;height:3rem;line-height:3rem;width:100%;font-size:1rem;margin:0 0 20px;padding:0;display:block}.select-wrapper span.caret{color:initial;position:absolute;right:0;top:0;bottom:0;height:10px;margin:auto 0;font-size:10px;line-height:10px}.select-wrapper span.caret.disabled{color:rgba(0,0,0,.26)}.select-wrapper+label{position:absolute;top:-14px;font-size:.8rem}select:disabled{color:rgba(0,0,0,.3)}.select-wrapper input.select-dropdown:disabled{color:rgba(0,0,0,.3);cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;border-bottom:1px solid rgba(0,0,0,.3)}.select-wrapper i{color:rgba(0,0,0,.3)}.select-dropdown li.disabled,.select-dropdown li.disabled>span,.select-dropdown li.optgroup{color:rgba(0,0,0,.3);background-color:transparent}.prefix~.select-wrapper{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.prefix~label{margin-left:3rem}.select-dropdown li img{height:40px;width:40px;margin:5px 15px;float:right}.select-dropdown li.optgroup{border-top:1px solid #eee}.select-dropdown li.optgroup.selected>span{color:rgba(0,0,0,.7)}.select-dropdown li.optgroup>span{color:rgba(0,0,0,.4)}.select-dropdown li.optgroup~li.optgroup-option{padding-left:1rem}.file-field{position:relative}.file-field .file-path-wrapper{overflow:hidden;padding-left:10px}.file-field input.file-path{width:100%}.file-field .btn,.file-field .btn-large{float:left;height:3rem;line-height:3rem}.file-field span{cursor:pointer}.file-field input[type=file]{position:absolute;top:0;right:0;left:0;bottom:0;width:100%;margin:0;padding:0;font-size:20px;cursor:pointer;opacity:0;filter:alpha(opacity=0)}.range-field{position:relative}input[type=range],input[type=range]+.thumb{cursor:pointer}input[type=range]{position:relative;background-color:transparent;border:none;outline:none;width:100%;margin:15px 0;padding:0}input[type=range]:focus{outline:none}input[type=range]+.thumb{position:absolute;top:10px;left:0;border:none;height:0;width:0;border-radius:50%;background-color:#26a69a;margin-left:7px;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}input[type=range]+.thumb .value{display:block;width:30px;text-align:center;color:#26a69a;font-size:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}input[type=range]+.thumb.active{border-radius:50% 50% 50% 0}input[type=range]+.thumb.active .value{color:#fff;margin-left:-1px;margin-top:8px;font-size:10px}input[type=range]{-webkit-appearance:none}input[type=range]::-webkit-slider-runnable-track{height:3px;background:#c2c0c2;border:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:none;height:14px;width:14px;border-radius:50%;background-color:#26a69a;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;margin:-5px 0 0;transition:.3s}input[type=range]:focus::-webkit-slider-runnable-track{background:#ccc}input[type=range]{border:1px solid #fff}input[type=range]::-moz-range-track{height:3px;background:#ddd;border:none}input[type=range]::-moz-range-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;margin-top:-5px}input[type=range]:-moz-focusring{outline:1px solid #fff;outline-offset:-1px}input[type=range]:focus::-moz-range-track{background:#ccc}input[type=range]::-ms-track{height:3px;background:transparent;border-color:transparent;border-width:6px 0;color:transparent}input[type=range]::-ms-fill-lower{background:#777}input[type=range]::-ms-fill-upper{background:#ddd}input[type=range]::-ms-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a}input[type=range]:focus::-ms-fill-lower{background:#888}input[type=range]:focus::-ms-fill-upper{background:#ccc}.table-of-contents.fixed{position:fixed}.table-of-contents li{padding:2px 0}.table-of-contents a{font-weight:300;color:#757575;padding-left:20px;height:1.5rem;line-height:1.5rem;letter-spacing:.4;display:inline-block}.table-of-contents a:hover{color:#a8a8a8;padding-left:19px;border-left:1px solid #ee6e73}.table-of-contents a.active{font-weight:500;padding-left:18px;border-left:2px solid #ee6e73}.side-nav{position:fixed;width:300px;left:0;top:0;margin:0;-webkit-transform:translateX(-100%);transform:translateX(-100%);height:calc(100% + 60px);height:100%;padding-bottom:60px;background-color:#fff;z-index:999;overflow-y:auto;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateX(-105%);transform:translateX(-105%)}.side-nav.right-aligned{right:0;-webkit-transform:translateX(105%);transform:translateX(105%);left:auto;-webkit-transform:translateX(100%);transform:translateX(100%)}.side-nav .collapsible{margin:0}.side-nav li{float:none;line-height:48px}.side-nav li.active{background-color:rgba(0,0,0,.05)}.side-nav li>a{color:rgba(0,0,0,.87);display:block;font-size:14px;font-weight:500;height:48px;line-height:48px;padding:0 32px}.side-nav li>a:hover{background-color:rgba(0,0,0,.05)}.side-nav li>a.btn,.side-nav li>a.btn-flat,.side-nav li>a.btn-floating,.side-nav li>a.btn-large{margin:10px 15px}.side-nav li>a.btn,.side-nav li>a.btn-floating,.side-nav li>a.btn-large{color:#fff}.side-nav li>a.btn-flat{color:#343434}.side-nav li>a.btn-large:hover,.side-nav li>a.btn:hover{background-color:#2bbbad}.side-nav li>a.btn-floating:hover{background-color:#26a69a}.side-nav li>a>[class^=mdi-],.side-nav li>a>i,.side-nav li>a>i.material-icons,.side-nav li>a li>a>[class*=mdi-]{float:left;height:48px;line-height:48px;margin:0 32px 0 0;width:24px;color:rgba(0,0,0,.54)}.side-nav .divider{margin:8px 0 0}.side-nav .subheader{cursor:auto;pointer-events:none;color:rgba(0,0,0,.54);font-size:14px;font-weight:500;line-height:48px}.side-nav .subheader:hover{background-color:transparent}.side-nav .userView{position:relative;padding:32px 32px 0;margin-bottom:8px}.side-nav .userView>a{height:auto;padding:0}.side-nav .userView>a:hover{background-color:transparent}.side-nav .userView .background{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.side-nav .userView .circle,.side-nav .userView .email,.side-nav .userView .name{display:block}.side-nav .userView .circle{height:64px;width:64px}.side-nav .userView .email,.side-nav .userView .name{font-size:14px;line-height:24px}.side-nav .userView .name{margin-top:16px;font-weight:500}.side-nav .userView .email{padding-bottom:16px;font-weight:400}.drag-target{height:100%;width:10px;position:fixed;top:0;z-index:998}.side-nav.fixed{left:0;-webkit-transform:translateX(0);transform:translateX(0);position:fixed}.side-nav.fixed.right-aligned{right:0;left:auto}@media only screen and (max-width:992px){.side-nav.fixed{-webkit-transform:translateX(-105%);transform:translateX(-105%)}.side-nav.fixed.right-aligned{-webkit-transform:translateX(105%);transform:translateX(105%)}.side-nav a{padding:0 16px}.side-nav .userView{padding:16px 16px 0}}.side-nav .collapsible-body>ul:not(.collapsible)>li.active,.side-nav.fixed .collapsible-body>ul:not(.collapsible)>li.active{background-color:#ee6e73}.side-nav .collapsible-body>ul:not(.collapsible)>li.active a,.side-nav.fixed .collapsible-body>ul:not(.collapsible)>li.active a{color:#fff}.side-nav .collapsible-body{padding:0}#sidenav-overlay{position:fixed;top:0;left:0;right:0;height:120vh;background-color:rgba(0,0,0,.5);z-index:997;will-change:opacity}.preloader-wrapper{display:inline-block;position:relative;width:50px;height:50px}.preloader-wrapper.small{width:36px;height:36px}.preloader-wrapper.big{width:64px;height:64px}.preloader-wrapper.active{-webkit-animation:container-rotate 1568ms linear infinite;animation:container-rotate 1568ms linear infinite}@-webkit-keyframes container-rotate{to{-webkit-transform:rotate(1turn)}}@keyframes container-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-layer{position:absolute;width:100%;height:100%;opacity:0;border-color:#26a69a}.spinner-blue,.spinner-blue-only{border-color:#4285f4}.spinner-red,.spinner-red-only{border-color:#db4437}.spinner-yellow,.spinner-yellow-only{border-color:#f4b400}.spinner-green,.spinner-green-only{border-color:#0f9d58}.active .spinner-layer.spinner-blue{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,blue-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,blue-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.active .spinner-layer.spinner-red{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,red-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,red-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.active .spinner-layer.spinner-yellow{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.active .spinner-layer.spinner-green{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,green-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,green-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.active .spinner-layer,.active .spinner-layer.spinner-blue-only,.active .spinner-layer.spinner-green-only,.active .spinner-layer.spinner-red-only,.active .spinner-layer.spinner-yellow-only{opacity:1;-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both}@-webkit-keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg)}to{-webkit-transform:rotate(3turn)}}@keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(3turn);transform:rotate(3turn)}}@-webkit-keyframes blue-fade-in-out{0%{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}to{opacity:1}}@keyframes blue-fade-in-out{0%{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}to{opacity:1}}@-webkit-keyframes red-fade-in-out{0%{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@keyframes red-fade-in-out{0%{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@-webkit-keyframes yellow-fade-in-out{0%{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@keyframes yellow-fade-in-out{0%{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@-webkit-keyframes green-fade-in-out{0%{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}to{opacity:0}}@keyframes green-fade-in-out{0%{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}to{opacity:0}}.gap-patch{position:absolute;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.gap-patch .circle{width:1000%;left:-450%}.circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.circle-clipper .circle{width:200%;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent!important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0}.circle-clipper.left .circle{left:0;border-right-color:transparent!important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.circle-clipper.right .circle{left:-100%;border-left-color:transparent!important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.active .circle-clipper.left .circle{-webkit-animation:left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both;animation:left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}.active .circle-clipper.right .circle{-webkit-animation:right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both;animation:right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}@-webkit-keyframes left-spin{0%{-webkit-transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg)}}@keyframes left-spin{0%{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}}@-webkit-keyframes right-spin{0%{-webkit-transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg)}}@keyframes right-spin{0%{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}}#spinnerContainer.cooldown{-webkit-animation:container-rotate 1568ms linear infinite,fade-out .4s cubic-bezier(.4,0,.2,1);animation:container-rotate 1568ms linear infinite,fade-out .4s cubic-bezier(.4,0,.2,1)}@-webkit-keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}.slider{position:relative;height:400px;width:100%}.slider.fullscreen{height:100%;width:100%;position:absolute;top:0;left:0;right:0;bottom:0}.slider.fullscreen ul.slides{height:100%}.slider.fullscreen ul.indicators{z-index:2;bottom:30px}.slider .slides{background-color:#9e9e9e;margin:0;height:400px}.slider .slides li{opacity:0;position:absolute;top:0;left:0;z-index:1;width:100%;height:inherit;overflow:hidden}.slider .slides li img{height:100%;width:100%;background-size:cover;background-position:50%}.slider .slides li .caption{color:#fff;position:absolute;top:15%;left:15%;width:70%;opacity:0}.slider .slides li .caption p{color:#e0e0e0}.slider .slides li.active{z-index:2}.slider .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.slider .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:16px;width:16px;margin:0 12px;background-color:#e0e0e0;transition:background-color .3s;border-radius:50%}.slider .indicators .indicator-item.active{background-color:#4caf50}.carousel{overflow:hidden;position:relative;width:100%;height:400px;-webkit-perspective:500px;perspective:500px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform-origin:0 50%;transform-origin:0 50%}.carousel.carousel-slider{top:0;left:0;height:0}.carousel.carousel-slider .carousel-fixed-item{position:absolute;left:0;right:0;bottom:20px;z-index:1}.carousel.carousel-slider .carousel-fixed-item.with-indicators{bottom:68px}.carousel.carousel-slider .carousel-item{width:100%;height:100%;min-height:400px;position:absolute;top:0;left:0}.carousel.carousel-slider .carousel-item h2{font-size:24px;font-weight:500;line-height:32px}.carousel.carousel-slider .carousel-item p{font-size:15px}.carousel .carousel-item{display:none;width:200px;height:200px;position:absolute;top:0;left:0}.carousel .carousel-item>img{width:100%}.carousel .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.carousel .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:8px;width:8px;margin:24px 4px;background-color:hsla(0,0%,100%,.5);transition:background-color .3s;border-radius:50%}.carousel .indicators .indicator-item.active{background-color:#fff}.carousel .carousel-item:not(.active) .materialboxed,.carousel.scrolling .carousel-item .materialboxed{pointer-events:none}.tap-target-wrapper{width:800px;height:800px;position:fixed;z-index:1000;visibility:hidden;transition:visibility 0s .3s}.tap-target-wrapper.open{visibility:visible;transition:visibility 0s}.tap-target-wrapper.open .tap-target{opacity:.95;transition:opacity .3s ease-in-out,-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out,opacity .3s ease-in-out;transition:transform .3s ease-in-out,opacity .3s ease-in-out,-webkit-transform .3s ease-in-out}.tap-target-wrapper.open .tap-target,.tap-target-wrapper.open .tap-target-wave:before{-webkit-transform:scale(1);transform:scale(1)}.tap-target-wrapper.open .tap-target-wave:after{visibility:visible;-webkit-animation:pulse-animation 1s cubic-bezier(.24,0,.38,1) infinite;animation:pulse-animation 1s cubic-bezier(.24,0,.38,1) infinite;transition:opacity .3s,visibility 0s 1s,-webkit-transform .3s;transition:opacity .3s,transform .3s,visibility 0s 1s;transition:opacity .3s,transform .3s,visibility 0s 1s,-webkit-transform .3s}.tap-target{position:absolute;font-size:1rem;border-radius:50%;background-color:#ee6e73;box-shadow:0 20px 20px 0 rgba(0,0,0,.14),0 10px 50px 0 rgba(0,0,0,.12),0 30px 10px -20px rgba(0,0,0,.2);width:100%;height:100%;opacity:0;-webkit-transform:scale(0);transform:scale(0);transition:opacity .3s ease-in-out,-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out,opacity .3s ease-in-out;transition:transform .3s ease-in-out,opacity .3s ease-in-out,-webkit-transform .3s ease-in-out}.tap-target-content{position:relative;display:table-cell}.tap-target-wave{position:absolute;border-radius:50%;z-index:10001}.tap-target-wave:after,.tap-target-wave:before{content:"";display:block;position:absolute;width:100%;height:100%;border-radius:50%;background-color:#fff}.tap-target-wave:before{-webkit-transform:scale(0);transform:scale(0);transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.tap-target-wave:after{visibility:hidden;transition:opacity .3s,visibility 0s,-webkit-transform .3s;transition:opacity .3s,transform .3s,visibility 0s;transition:opacity .3s,transform .3s,visibility 0s,-webkit-transform .3s;z-index:-1}.tap-target-origin{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);z-index:10002;position:absolute!important}.tap-target-origin:not(.btn):not(.btn-large),.tap-target-origin:not(.btn):not(.btn-large):hover{background:none}@media only screen and (max-width:600px){.tap-target,.tap-target-wrapper{width:600px;height:600px}}.pulse{overflow:initial;position:relative}.pulse:before{content:"";display:block;position:absolute;width:100%;height:100%;top:0;left:0;background-color:inherit;border-radius:inherit;transition:opacity .3s,-webkit-transform .3s;transition:opacity .3s,transform .3s;transition:opacity .3s,transform .3s,-webkit-transform .3s;-webkit-animation:pulse-animation 1s cubic-bezier(.24,0,.38,1) infinite;animation:pulse-animation 1s cubic-bezier(.24,0,.38,1) infinite;z-index:-1}@-webkit-keyframes pulse-animation{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}to{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}}@keyframes pulse-animation{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}to{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}}.picker{font-size:16px;text-align:left;line-height:1.2;color:#000;position:absolute;z-index:10000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.picker__input{cursor:default}.picker__input.picker__input--active{border-color:#0089ec}.picker__holder{width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}/*! + * Default mobile-first, responsive styling for pickadate.js + * Demo: http://amsul.github.io/pickadate.js + */.picker__frame,.picker__holder{bottom:0;left:0;right:0;top:100%}.picker__holder{position:fixed;transition:background .15s ease-out,top 0s .15s;-webkit-backface-visibility:hidden}.picker__frame{position:absolute;min-width:256px;width:300px;max-height:350px;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;transition:all .15s ease-out}@media (min-height:28.875em){.picker__frame{overflow:visible;top:auto;bottom:-100%;max-height:80%}}@media (min-height:40.125em){.picker__frame{margin-bottom:7.5%}}.picker__wrap{display:table;width:100%;height:100%}@media (min-height:28.875em){.picker__wrap{display:block}}.picker__box{background:#fff;display:table-cell;vertical-align:middle}@media (min-height:28.875em){.picker__box{display:block;border:1px solid #777;border-top-color:#898989;border-bottom-width:0;border-radius:5px 5px 0 0;box-shadow:0 12px 36px 16px rgba(0,0,0,.24)}}.picker--opened .picker__holder{top:0;background:transparent;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";zoom:1;background:rgba(0,0,0,.32);transition:background .15s ease-out}.picker--opened .picker__frame{top:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1}@media (min-height:35.875em){.picker--opened .picker__frame{top:10%;bottom:auto}}.picker__input.picker__input--active{border-color:#e3f2fd}.picker__frame{margin:0 auto;max-width:325px}@media (min-height:38.875em){.picker--opened .picker__frame{top:10%;bottom:auto}}.picker__box{padding:0 1em}.picker__header{text-align:center;position:relative;margin-top:.75em}.picker__month,.picker__year{display:inline-block;margin-left:.25em;margin-right:.25em}.picker__select--month,.picker__select--year{height:2em;padding:0;margin-left:.25em;margin-right:.25em}.picker__select--month.browser-default{display:inline;background-color:#fff;width:40%}.picker__select--year.browser-default{display:inline;background-color:#fff;width:26%}.picker__select--month:focus,.picker__select--year:focus{border-color:rgba(0,0,0,.05)}.picker__nav--next,.picker__nav--prev{position:absolute;padding:.5em 1.25em;width:1em;height:1em;box-sizing:content-box;top:-.25em}.picker__nav--prev{left:-1em;padding-right:1.25em}.picker__nav--next{right:-1em;padding-left:1.25em}.picker__nav--disabled,.picker__nav--disabled:before,.picker__nav--disabled:before:hover,.picker__nav--disabled:hover{cursor:default;background:none;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:1rem;width:100%;margin-top:.75em}.picker__table,.picker__table td,.picker__table th{text-align:center}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999;font-weight:500}@media (min-height:33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day--today{position:relative;color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day--disabled:before{border-top-color:#aaa}.picker__day--infocus:hover{cursor:pointer;color:#000;font-weight:500}.picker__day--outfocus{display:none;padding:.75rem 0;color:#fff}.picker__day--outfocus:hover{cursor:pointer;color:#ddd;font-weight:500}.picker--focused .picker__day--highlighted,.picker__day--highlighted:hover{cursor:pointer}.picker--focused .picker__day--selected,.picker__day--selected,.picker__day--selected:hover{-webkit-transform:scale(.75);transform:scale(.75);background:#0089ec}.picker--focused .picker__day--disabled,.picker__day--disabled,.picker__day--disabled:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbb}.picker__footer{text-align:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.picker__button--clear,.picker__button--close,.picker__button--today{border:1px solid #fff;background:#fff;font-size:.8em;padding:.66em 0;font-weight:700;width:33%;display:inline-block;vertical-align:bottom}.picker__button--clear:hover,.picker__button--close:hover,.picker__button--today:hover{cursor:pointer;color:#000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--clear:focus,.picker__button--close:focus,.picker__button--today:focus{background:#b1dcfb;border-color:rgba(0,0,0,.05);outline:none}.picker__button--clear:before,.picker__button--close:before,.picker__button--today:before{position:relative;display:inline-block;height:0}.picker__button--clear:before,.picker__button--today:before{content:" ";margin-right:.45em}.picker__button--today:before{top:-.05em;width:0;border-top:.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{top:-.25em;width:.66em;border-top:3px solid #e20}.picker__button--close:before{content:"\D7";top:-.1em;vertical-align:top;font-size:1.1em;margin-right:.35em;color:#777}.picker__button--today[disabled],.picker__button--today[disabled]:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__button--today[disabled]:before{border-top-color:#aaa}.picker__box{border-radius:2px;overflow:hidden}.picker__date-display{text-align:center;background-color:#26a69a;color:#fff;padding-bottom:15px;font-weight:300}.picker__nav--next:hover,.picker__nav--prev:hover{cursor:pointer;color:#000;background:#a1ded8}.picker__weekday-display{background-color:#1f897f;padding:10px;font-weight:200;letter-spacing:.5;font-size:1rem;margin-bottom:15px}.picker__month-display{text-transform:uppercase;font-size:2rem}.picker__day-display{font-size:4.5rem;font-weight:400}.picker__year-display{font-size:1.8rem;color:hsla(0,0%,100%,.4)}.picker__box{padding:0}.picker__calendar-container{padding:0 1rem}.picker__calendar-container thead{border:none}.picker__table{margin-top:0;margin-bottom:.5em}.picker__day--infocus{color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day.picker__day--today{color:#26a69a}.picker__day.picker__day--today.picker__day--selected{color:#fff}.picker__weekday{font-size:.9rem}.picker--focused .picker__day--selected,.picker__day--selected,.picker__day--selected:hover{border-radius:50%;-webkit-transform:scale(.9);transform:scale(.9);background-color:#26a69a;color:#fff}.picker--focused .picker__day--selected.picker__day--outfocus,.picker__day--selected.picker__day--outfocus,.picker__day--selected:hover.picker__day--outfocus{background-color:#a1ded8}.picker__footer{text-align:right;padding:5px 10px}.picker__close,.picker__today{font-size:1.1rem;padding:0 1rem;color:#26a69a}.picker__nav--next:before,.picker__nav--prev:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:.75em solid #676767;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:.75em solid #676767}button.picker__clear:focus,button.picker__close:focus,button.picker__today:focus{background-color:#a1ded8}.picker__list{list-style:none;padding:.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #ddd;border-top:1px solid #ddd;margin-bottom:-1px;position:relative;background:#fff;padding:.75em 1.25em}@media (min-height:46.75em){.picker__list-item{padding:.5em 1em}}.picker__list-item:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker__list-item--highlighted,.picker__list-item:hover{border-color:#0089ec;z-index:10}.picker--focused .picker__list-item--highlighted,.picker__list-item--highlighted:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker--focused .picker__list-item--selected,.picker__list-item--selected,.picker__list-item--selected:hover{background:#0089ec;color:#fff;z-index:10}.picker--focused .picker__list-item--disabled,.picker__list-item--disabled,.picker__list-item--disabled:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default;border-color:#ddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:none;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:focus,.picker--time .picker__button--clear:hover{color:#000;background:#b1dcfb;background:#e20;border-color:#e20;cursor:pointer;color:#fff;outline:none}.picker--time .picker__button--clear:before{top:-.25em;color:#666;font-size:1.25em;font-weight:700}.picker--time .picker__button--clear:focus:before,.picker--time .picker__button--clear:hover:before{color:#fff}.picker--time .picker__frame{min-width:256px;max-width:320px}.picker--time .picker__box{font-size:1em;background:#f2f2f2;padding:0}@media (min-height:40.125em){.picker--time .picker__box{margin-bottom:5em}}body{background-color:#fcfcfc}p.box{padding:20px}p{color:rgba(0,0,0,.71);padding:0}h1,h2,h3,h4,h5,h6,p{-webkit-font-smoothing:antialiased}h5>span{font-size:14px;margin-left:15px;color:#777}nav a{-webkit-font-smoothing:antialiased}nav ul li.active,nav ul li a:hover{background-color:#ea454b}.header{color:#ee6e73;font-weight:300}.caption{font-size:1.25rem;font-weight:300;margin-bottom:30px}.preview{background-color:#fff;border:1px solid #eee;padding:20px}footer,header,main{padding-left:300px}.parallax-demo footer,.parallax-demo header,.parallax-demo main,footer.example{padding-left:0}@media only screen and (max-width:992px){footer,header,main{padding-left:0}h5>span{display:block;margin:0 0 15px}}ul.side-nav.fixed li.logo{text-align:center;margin-top:32px;margin-bottom:80px}ul.side-nav.fixed li.logo #logo-container:hover,ul.side-nav.fixed li.logo:hover{background-color:transparent}ul.side-nav.fixed{overflow:hidden}ul.side-nav.fixed li{line-height:44px}ul.side-nav.fixed li.active{background-color:rgba(0,0,0,.05)}ul.side-nav.fixed li a{font-size:13px;line-height:44px;height:44px;padding:0 30px}ul.side-nav.fixed ul.collapsible-accordion{background-color:#fff}ul.side-nav.fixed ul.collapsible-accordion a.collapsible-header{padding:0 30px}ul.side-nav.fixed ul.collapsible-accordion .collapsible-body li a{font-weight:400;padding:0 37.5px 0 45px}ul.side-nav.fixed:hover{overflow-y:auto}.bold>a{font-weight:700}#logo-container{height:57px;margin-bottom:32px}nav.top-nav{height:122px;box-shadow:none}nav.top-nav a.page-title{line-height:122px;font-size:48px}a.button-collapse.top-nav{position:absolute;text-align:center;height:48px;width:48px;left:7.5%;top:0;float:none;margin-left:1.5rem;color:#fff;font-size:36px;z-index:2}a.button-collapse.top-nav.full{line-height:122px}a.button-collapse.top-nav i{font-size:32px}@media only screen and (max-width:600px){a.button-collapse.top-nav{left:5%}}@media only screen and (max-width:992px){nav .nav-wrapper{text-align:center}nav .nav-wrapper a.page-title{font-size:36px}}@media only screen and (min-width:993px){.container{width:85%}}#front-page-logo{display:inline-block;height:100%;pointer-events:none}@media only screen and (max-width:992px){#front-page-nav ul.side-nav li{float:none;padding:0 15px}#front-page-nav ul.side-nav li:hover{background-color:#ddd}#front-page-nav ul.side-nav li .active{background-color:transparent}#front-page-nav ul.side-nav a{color:#444}}#responsive-img{width:80%;display:block;margin:0 auto}#index-banner{background-color:#ee6e73}#index-banner .container{position:relative}#index-banner .header{color:#fff}#index-banner h4{margin-bottom:40px}#index-banner h1{margin-top:16px}@media only screen and (max-width:992px){#index-banner h1{margin-top:60px}#index-banner h4{margin-bottom:15px}}@media only screen and (max-width:600px){#index-banner h4{margin-bottom:0}}.github-commit{padding:14px 0;height:64px;line-height:36px;background-color:#5c5757;color:#e6e6e6;font-size:.9rem}@media only screen and (max-width:992px){.github-commit{text-align:center}}#github-button{background-color:#6f6d6d;transition:.25s ease}#github-button:hover{background-color:#797777}.sha{color:#f0f0f0;margin:0 6px}#download-button{background-color:#f3989b;width:260px;height:70px;line-height:70px;font-size:18px;font-weight:400}#download-button:hover{background-color:#f5a5a8}.promo{width:100%}.promo i{margin:40px 0;color:#ee6e73;font-size:7rem;display:block}.promo-caption{font-size:1.7rem;font-weight:500;margin-top:5px;margin-bottom:0}#front-page-nav{background-color:#fff;position:relative}#front-page-nav a{color:#ee6e73}#front-page-nav li.active,#front-page-nav li:hover{background-color:#fdeaeb}#front-page-nav .container{height:inherit}.col.grid-example{border:1px solid #eee;margin:7px 0;text-align:center;line-height:50px;font-size:28px;background-color:tomato;color:#fff;padding:0}.col.grid-example span{font-weight:100;line-height:50px}.promo-example{overflow:hidden}#site-layout-example-left{background-color:#90a4ae;height:300px}#site-layout-example-right{background-color:#26a69a;height:300px}#site-layout-example-top{background-color:#e57373;height:42px}.flat-text-header{height:35px;background-color:hsla(0,0%,100%,.15)}.flat-text,.flat-text-header{width:80%;display:block;margin:27px auto}.flat-text,.flat-text.small{height:25px;background-color:rgba(0,0,0,.15)}.flat-text.small{width:25%}.flat-text.full-width{width:100%}.browser-window{text-align:left;width:100%;height:auto;display:inline-block;border-radius:5px 5px 2px 2px;background-color:#fff;margin:20px 0;overflow:hidden}.browser-window .top-bar{height:30px;border-radius:5px 5px 0 0;border-top:thin solid #eaeae9;border-bottom:thin solid #dfdfde;background:linear-gradient(#e7e7e6,#e2e2e1)}.browser-window .circle{height:10px;width:10px;display:inline-block;border-radius:50%;background-color:#fff;margin-right:1px}#close-circle{background-color:#ff5c5a}#minimize-circle{background-color:#ffbb50}#maximize-circle{background-color:#1bc656}.browser-window .circles{margin:5px 12px}.browser-window .content{margin:0;width:100%;display:inline-block;border-radius:0 0 5px 5px;background-color:#fafafa}.browser-window .row{margin:0}.clear{clear:both}.dynamic-color .amber,.dynamic-color .black,.dynamic-color .blue,.dynamic-color .blue-grey,.dynamic-color .brown,.dynamic-color .cyan,.dynamic-color .deep-orange,.dynamic-color .deep-purple,.dynamic-color .green,.dynamic-color .grey,.dynamic-color .indigo,.dynamic-color .light-blue,.dynamic-color .light-green,.dynamic-color .lime,.dynamic-color .orange,.dynamic-color .pink,.dynamic-color .purple,.dynamic-color .red,.dynamic-color .teal,.dynamic-color .transparent,.dynamic-color .white,.dynamic-color .yellow{height:55px;width:100%;padding:0 15px;line-height:55px;font-weight:500;font-size:12px;display:block;box-sizing:border-box}.dynamic-color .col{margin-bottom:55px}.center{text-align:center;vertical-align:middle}.material-icons.icon-demo{line-height:50px}.icon-container i{font-size:3em;margin-bottom:10px}.icon-container .icon-preview{height:120px;text-align:center}.icon-container span,.icon-holder{display:block}.icon-holder{text-align:center;width:150px;height:115px;float:left;margin:0 0 15px}.icon-holder p{margin:0}.tabs-wrapper{position:relative;height:48px}.tabs-wrapper .row.pinned{position:fixed;width:100%;top:0;z-index:10}.shadow-demo{background-color:#26a69a;width:100px;height:100px;margin:20px auto}@media only screen and (max-width:600px){.shadow-demo{width:150px;height:150px}}.parallax-container .text-center{position:absolute;top:50%;left:0;right:0;margin-top:-27px}ul.table-of-contents{margin-top:0;padding-top:48px}code,pre{position:relative;font-size:1.1rem}.directory-markup{font-size:1rem;line-height:1.1rem!important}:not(pre)>code[class*=language-]{padding:.1em .25em;border:1px solid rgba(51,51,51,.12)}pre[class*=language-]{padding:25px 12px 7px;border:1px solid rgba(51,51,51,.12)}pre[class*=language-]:before{position:absolute;padding:1px 5px;background:#e8e6e3;top:0;left:0;font-family:Roboto,sans-serif;-webkit-font-smoothing:antialiased;color:#555;content:attr(class);font-size:.9rem;border:1px solid rgba(51,51,51,.12);border-top:none;border-left:none}.toc-wrapper{position:relative;margin-top:42px}.toc-wrapper.pin-bottom{margin-top:84px}#carbonads{max-width:150px;display:inline-block;position:relative;text-align:left;-webkit-font-smoothing:antialiased}#carbonads>span,#carbonads span.carbon-wrap{height:100px;display:block}#carbonads a.carbon-img{height:100px;display:inline-block;margin-right:10px}#carbonads a.carbon-text,#carbonads input[type=submit]{position:relative;top:0;width:150px;vertical-align:top;display:inline-block;font-size:13px;color:#e57373}#carbonads a.carbon-poweredby{position:relative;left:28px;font-size:11px;color:#ef9a9a}.buysellads #carbonads>span,.buysellads #carbonads span.carbon-wrap{height:auto}.buysellads #carbonads a.carbon-text{top:5px;left:0;width:130px;display:block;font-size:13px;-webkit-font-smoothing:antialiased;color:#e57373}.buysellads #carbonads a.carbon-poweredby{top:5px}.buysellads-header #carbonads>span,.buysellads-header #carbonads span.carbon-wrap{height:auto}.buysellads-header #carbonads a.carbon-text{color:#fff}.buysellads-header #carbonads a.carbon-poweredby{color:hsla(0,0%,100%,.8)}.buysellads-homepage #carbonads{display:block;overflow:hidden;margin:4em auto 0;padding:1em;max-width:360px;border-radius:2px;background-color:hsla(0,0%,100%,.13)}.buysellads-homepage #carbonads span{position:relative;display:block;overflow:hidden}.buysellads-homepage #carbonads .carbon-img{float:left;margin-right:1em}.buysellads-homepage #carbonads .carbon-text{max-width:calc(100% - 135px - 1em);width:auto}.buysellads-homepage #carbonads .carbon-poweredby{position:absolute;left:auto;right:0;bottom:-4px}.buysellads{-webkit-font-smoothing:antialiased;position:relative}.buysellads.buysellads-demo{bottom:20px;right:20px;position:fixed;padding:10px;background-color:hsla(0,0%,100%,.9);z-index:1000}.buysellads.buysellads-demo #carbonads a.carbon-img{margin-right:0}.buysellads.buysellads-demo #carbonads a.carbon-text{top:0}.buysellads.buysellads-demo a.close{text-align:center;background-color:#fff;border-radius:50%;box-shadow:0 2px 4px 0 rgba(0,0,0,.1);height:24px;width:24px;position:absolute;top:-6px;right:-6px;z-index:1;transition:background-color .2s}.buysellads.buysellads-demo a.close:hover{background-color:#ddd}.buysellads.buysellads-demo a.close .material-icons{font-size:18px;line-height:24px}.buysellads .bsa_it.one{width:130px;position:absolute;left:0;top:50px}.buysellads .bsa_it.one .bsa_it_p{left:0;bottom:-15px}.buysellads .bsa_it.one .bsa_it_ad .bsa_it_t{color:#e57373}.buysellads .bsa_it.one .bsa_it_ad .bsa_it_d{color:#ef9a9a}.buysellads .bsa_it_ad a{display:block;width:130px}.buysellads-header{margin-top:30px}.buysellads-header .bsa_it.one .bsa_it_p{bottom:-20px}.bsa_it.one{min-width:230px;max-width:270px;display:inline-block;text-align:left}.bsa_it.one .bsa_it_ad{border:0;padding:0;background-color:transparent}.bsa_it.one .bsa_it_ad .bsa_it_t{color:#fff}.bsa_it.one .bsa_it_ad .bsa_it_d{color:#ffcdd2}.bsa_it.one .bsa_it_p{right:auto;left:40px;bottom:-5px}.bsa_it.one .bsa_it_p a{color:#ffcdd2}footer{font-size:.9rem}body.parallax-demo footer{margin-top:0}.image-container{width:100%}.image-container img{max-width:100%}@media only screen and (max-width:600px){.mobile-image{max-width:100%}}.waves-color-demo .collection-item{height:37px;line-height:37px;box-sizing:content-box}.waves-color-demo .collection-item code{line-height:37px}.waves-color-demo .btn-large:not(.waves-light),.waves-color-demo .btn:not(.waves-light){background-color:#fff;color:#212121}.card-content p,.card-panel span{-webkit-font-smoothing:antialiased}#images .card-panel .row{margin-bottom:0}.pushpin-demo{position:relative;height:100px}#pushpin-demo-1{display:block;height:inherit;background-color:#ddd}.valign-demo{height:400px;background-color:#ddd}.talign-demo{height:100px;background-color:#ddd}#image-test,#staggered-test li{opacity:0}#tx-live-lang-container{z-index:999}#tx-live-lang-container,#tx-live-lang-container #tx-live-lang-picker{background-color:#fcfcfc}#tx-live-lang-container #tx-live-lang-picker li{color:rgba(0,0,0,.87)}#tx-live-lang-container #tx-live-lang-picker li:hover{color:inherit;background-color:#fdeaeb}#tx-live-lang-container .txlive-langselector-toggle{border-bottom:2px solid #ee6e73}#tx-live-lang-container .txlive-langselector-current{color:rgba(0,0,0,.87)}#tx-live-lang-container .txlive-langselector-marker{border-bottom:4px solid rgba(0,0,0,.61)}#download-thanks{display:none}#twitter-widget-0{width:300px!important}#nav-mobile li.search{position:absolute;left:0;right:0;top:120px;margin-top:1px;padding:1px 0 0;z-index:2}#nav-mobile li.search:hover{background-color:#fff}#nav-mobile li.search .search-wrapper{margin:0 12px;transition:margin .25s ease}#nav-mobile li.search .search-wrapper.focused{margin:0}#nav-mobile li.search .search-wrapper input#search{display:block;font-size:16px;font-weight:300;width:100%;height:45px;margin:0;padding:0 45px 0 15px;border:0}#nav-mobile li.search .search-wrapper input#search:focus{outline:none;box-shadow:none}#nav-mobile li.search .search-wrapper i.material-icons{position:absolute;top:10px;right:10px;cursor:pointer}#nav-mobile li.search .search-results{margin:0;border-top:1px solid #e9e9e9;background-color:#fff}#nav-mobile li.search .search-results a{font-size:12px;white-space:nowrap;display:block}#nav-mobile li.search .search-results a.focused,#nav-mobile li.search .search-results a:hover{background-color:#eee;outline:none}body.themes .themes-section{padding:60px 0 40px}body.themes .themes-section .theme-preview{width:100%}body.themes .themes-section h4{margin-top:0}.shopify-btn,.shopify-buy-frame{float:left}.shopify-buy-frame{width:105px}.shopify-btn{background-color:#78b657;font-size:15px;font-family:Helvetica Neue;letter-spacing:.3px;border-radius:2px;color:#fff;padding:10px 20px;transition:background .2s;margin:20px 0 0 5px;-webkit-font-smoothing:antialiased}.shopify-btn:hover{background-color:#5f9d3e}.themes-banner{text-align:center;background-color:#5f5f5f;padding:30px 0}.themes-banner p{font-size:18px;color:#fff}.themes-banner a{color:#baef74}.side-nav .collapsible-body>ul:not(.collapsible)>li.active,.side-nav .collapsible-body li.active,.side-nav.fixed .collapsible-body>ul:not(.collapsible)>li.active,.side-nav.fixed .collapsible-body li.active,footer.page-footer,nav{background-color:#38435a}.side-nav.fixed .collapsible-body>ul:not(.collapsible)>li a.active{color:#fff;background-color:#38435a}pre{padding:1em;border:1px solid rgba(51,51,51,.12);background-color:#f5f2f0}#logo-container{height:100px;margin-top:10px}ul.side-nav.fixed li.logo{height:160px;margin-top:0;margin-bottom:0}ul.side-nav.fixed li.logo img{max-height:100%}.hljs-comment,.hljs-quote{color:#8e908c}.hljs-deletion,.hljs-name,.hljs-regexp,.hljs-selector-class,.hljs-selector-id,.hljs-tag,.hljs-template-variable,.hljs-variable{color:#c82829}.hljs-built_in,.hljs-builtin-name,.hljs-link,.hljs-literal,.hljs-meta,.hljs-number,.hljs-params,.hljs-type{color:#f5871f}.hljs-attribute{color:#eab700}.hljs-addition,.hljs-bullet,.hljs-string,.hljs-symbol{color:#718c00}.hljs-section,.hljs-title{color:#4271ae}.hljs-keyword,.hljs-selector-tag{color:#8959a8}.hljs{display:block;overflow-x:auto;background:#fff;color:#4d4d4c;padding:.5em}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/assets/bundle.js b/assets/bundle.js deleted file mode 100644 index d91e692..0000000 --- a/assets/bundle.js +++ /dev/null @@ -1,38 +0,0 @@ -!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="/assets/",t(0)}([function(e,t,n){e.exports=n(174)},function(e,t,n){"use strict";e.exports=n(286)},function(e,t){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function o(e){if(c===setTimeout)return setTimeout(e,0);if((c===n||!c)&&setTimeout)return c=setTimeout,setTimeout(e,0);try{return c(e,0)}catch(t){try{return c.call(null,e,0)}catch(t){return c.call(this,e,0)}}}function a(e){if(d===clearTimeout)return clearTimeout(e);if((d===r||!d)&&clearTimeout)return d=clearTimeout,clearTimeout(e);try{return d(e)}catch(t){try{return d.call(null,e)}catch(t){return d.call(this,e)}}}function i(){h&&p&&(h=!1,p.length?m=p.concat(m):v=-1,m.length&&l())}function l(){if(!h){var e=o(i);h=!0;for(var t=m.length;t;){for(p=m,m=[];++v1)for(var n=1;n1?t-1:0),r=1;r2?r-2:0),a=2;a=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t\n \n Lorem ipsum dolor sit amet.\n \n \n Lorem ipsum dolor sit amet.\n \n \n Lorem ipsum dolor sit amet.\n \n;\n",badgeCollections:"import React from 'react';\nimport Badge from '../src/Badge';\nimport Collection from '../src/Collection';\nimport CollectionItem from '../src/CollectionItem';\n\nexport default\n\n \n Alan 1\n \n \n Alan 4\n \n \n Alan\n \n \n Alan 14\n \n;\n",badgeDropdowns:"import React from 'react';\nimport Badge from '../src/Badge';\nimport Button from '../src/Button';\nimport Dropdown from '../src/Dropdown';\nimport Icon from '../src/Icon';\nimport NavItem from '../src/NavItem';\n\nexport default\nDropdownarrow_drop_down\n }>\n \n one\n 1\n \n\n \n two\n 1\n \n\n \n three\n \n;\n",badgeNavbar:"import React from 'react';\nimport Badge from '../src/Badge';\nimport Navbar from '../src/Navbar';\nimport NavItem from '../src/NavItem';\n\nexport default\n\n sass\n \n sass 4\n \n sass\n;\n",breadcrumb:"import React from 'react';\n\nimport Breadcrumb from '../src/Breadcrumb';\nimport MenuItem from '../src/MenuItem';\n\nexport default\n\n first\n second\n third\n;\n",cardImage:"import React from 'react';\nimport Card from '../src/Card';\nimport CardTitle from '../src/CardTitle';\n\nexport default\nCard Title}\n actions={[This is a Link]}>\n I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.\n;\n",cardPanel:"import React from 'react';\nimport CardPanel from '../src/CardPanel';\nimport Col from '../src/Col';\nimport Row from '../src/Row';\n\nexport default\n\n \n \n I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively. I am similar to what is called a panel in other frameworks.\n \n \n \n For a simpler card with less markup, try using a card panel which just has padding and a shadow effect\n \n;\n",cardReveal:"import React from 'react';\n\nimport Card from '../src/Card';\nimport CardTitle from '../src/CardTitle';\nimport Icon from '../src/Icon';\n\nexport default\n}\n title=\"Card Title\"\n reveal={

Here is some more information about this product that is only revealed once clicked on.

}>\n

This is a link

\n
;\n",cardSimple:"import React from 'react';\nimport Card from '../src/Card';\nimport Col from '../src/Col';\n\nexport default\n\n This is a link]}>\n I am a very simple card.\n \n;\n",chips:"import React from 'react';\nimport Row from '../src/Row';\nimport Col from '../src/Col';\nimport Chip from '../src/Chip';\nimport Tag from '../src/Tag';\n\nexport default\n\n \n \n Contact Person\n Jane Doe\n \n tag\n \n;\n",collapsible:"import React from 'react';\nimport Collapsible from '../src/Collapsible';\nimport CollapsibleItem from '../src/CollapsibleItem';\n\nexport default\n\n \n Lorem ipsum dolor sit amet.\n \n \n Lorem ipsum dolor sit amet.\n \n \n Lorem ipsum dolor sit amet.\n \n;\n",collectionBasic:"import React from 'react';\nimport Collection from '../src/Collection';\nimport CollectionItem from '../src/CollectionItem';\nexport default\n\n Alvin\n Alvin\n Alvin\n Alvin\n;\n",collectionWithHeader:"import React from 'react';\nimport Collection from '../src/Collection';\nimport CollectionItem from '../src/CollectionItem';\n\nexport default\n\n Alvin\n Alvin\n Alvin\n Alvin\n;\n",collectionWithHref:"import React from 'react';\nimport Collection from '../src/Collection';\nimport CollectionItem from '../src/CollectionItem';\n\nexport default\n\n Alvin\n Alvin\n Alvin\n Alvin\n;\n",disabledButton:"import React from 'react';\nimport Button from '../src/Button';\nimport Icon from '../src/Icon';\n\nexport default\n
\n \n \n \n \n
;\n",dropdown:"import React from 'react';\nimport Button from '../src/Button';\nimport Dropdown from '../src/Dropdown';\nimport NavItem from '../src/NavItem';\n\nexport default\nDrop me!\n }>\n one\n two\n \n three\n;\n",fixedActionButton:"import React from 'react';\nimport Button from '../src/Button';\n\nexport default\n ;\n",flatButton:"import React from 'react';\nimport Button from '../src/Button';\n\nexport default\n;\n",floatingButton:"import React from 'react';\nimport Button from '../src/Button';\n\nexport default\n;\n",iconLinksNavbar:"import React from 'react';\nimport Navbar from '../src/Navbar';\nimport NavItem from '../src/NavItem';\nimport Icon from '../src/Icon';\n\nexport default\n\n search\n view_module\n refresh\n more_vert\n;\n",iconPrefixesInput:"import React from 'react';\nimport Input from '../src/Input';\nimport Row from '../src/Row';\nimport Icon from '../src/Icon';\n\nexport default\n\n account_circle\n phone\n;\n",inputCheckbox:"import React from 'react';\nimport Input from '../src/Input';\nimport Row from '../src/Row';\n\nexport default\n\n \n \n \n \n;\n",inputFields:'import React from \'react\';\nimport Input from \'../src/Input\';\nimport Row from \'../src/Row\';\n\nexport default\n\n \n \n \n \n \n;\n',inputRadio:"import React from 'react';\nimport Input from '../src/Input';\n\nexport default\n
\n \n \n \n \n
;\n",inputSwitch:"import React from 'react';\nimport Input from '../src/Input';\nimport Row from '../src/Row';\n\nexport default\n\n \n;\n",largeButton:"import React from 'react';\nimport Button from '../src/Button';\nimport Icon from '../src/Icon';\n\nexport default\n
\n \n \n \n
;\n",leftAlignedNavbar:"import React from 'react';\nimport Navbar from '../src/Navbar';\nimport NavItem from '../src/NavItem';\n\nexport default\n\n Getting started\n Components\n;\n",mediaBox:'import React from \'react\';\nimport MediaBox from \'../src/MediaBox\';\n\nexport default\n;\n',modal:"import React from 'react';\nimport Modal from '../src/Modal';\nimport Button from '../src/Button';\n\nexport default\nMODAL\n }>\n

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

\n;\n",modalWithBottomSheet:"import React from 'react';\nimport Modal from '../src/Modal';\nimport Button from '../src/Button';\n\nexport default\nMODAL BUTTOM SHEET STYLE\n }>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum\n;\n",modalWithFixedFooter:"import React from 'react';\nimport Modal from '../src/Modal';\nimport Button from '../src/Button';\n\nexport default\nMODAL WITH FIXED FOOTER\n }>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum\n;\n",pagination:"import React from 'react';\nimport Pagination from '../src/Pagination';\n\nexport default ;\n",prefillingTextInput:"import React from 'react';\nimport Input from '../src/Input';\nimport Row from '../src/Row';\n\nexport default\n\n \n;\n",preloaderCircular:"import React from 'react';\nimport Row from '../src/Row';\nimport Col from '../src/Col';\nimport Preloader from '../src/Preloader';\n\nexport default\n\n \n \n \n \n \n \n \n \n \n;\n",progressBars:"import React from 'react';\nimport Row from '../src/Row';\nimport Col from '../src/Col';\nimport ProgressBar from '../src/ProgressBar';\n\nexport default\n\n \n \n \n \n \n \n;\n",raisedButton:"import React from 'react';\nimport Button from '../src/Button';\nimport Icon from '../src/Icon';\n\nexport default\n
\n \n \n \n
;\n",rightAlignedNavbar:"import React from 'react';\nimport Navbar from '../src/Navbar';\nimport NavItem from '../src/NavItem';\n\nexport default\n\n Getting started\n Components\n;\n",selectSimple:"import React from 'react';\nimport Input from '../src/Input';\nimport Row from '../src/Row';\n\nexport default\n\n \n \n \n \n \n;\n",sideNav:"import React from 'react';\nimport Button from '../src/Button';\nimport SideNavItem from '../src/SideNavItem';\nimport SideNav from '../src/SideNav';\n\nexport default\nSIDE NAV DEMO}\n options={{ closeOnClick: true }}\n >\n \n First Link With Icon\n Second Link\n \n Subheader\n Third Link With Waves\n;\n",sliders:'import React from \'react\';\n\nimport Slide from \'../src/Slide\';\nimport Slider from \'../src/Slider\';\n\nexport default\n\n \n Here\'s our small slogan.\n \n \n Here\'s our small slogan.\n \n \n Here\'s our small slogan.\n \n;\n',submitButton:"import React from 'react';\nimport Button from '../src/Button';\nimport Icon from '../src/Icon';\n\nexport default\n;\n",tab:"import React from 'react';\n\nimport Tabs from '../src/Tabs';\nimport Tab from '../src/Tab';\n\nexport default\n\n Test 1\n Test 2\n Test 3\n Test 4\n;\n",tableBorderless:'\nimport React from \'react\';\nimport Table from \'../src/Table\';\n\nexport default\n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
NameItem NameItem Price
AlvinEclair$0.87
AlanJellybean$3.76
JonathanLollipop$7.00
;\n',toast:"import React from 'react';\nimport Toast from '../src/Toast';\n\nexport default\n\nToast\n;\n"}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var l=function(){function e(e,t){for(var n=0;n");case"enum":return this.renderEnum(n);case"custom":return m(o.type||r);default:return r}}},{key:"getDisplayTypeName",value:function(e){return"func"===e?"function":"bool"===e?"boolean":e}},{key:"renderEnum",value:function(e){var t=e.value||[],n=[];return t.forEach(function(e,t){t>0&&n.push(s.default.createElement("span",{key:t+"c"},", ")),n.push(s.default.createElement("code",{key:t},e))}),s.default.createElement("span",null,"one of: ",n)}}]),t}(s.default.Component);h.contextTypes={metadata:d.default.object},t.default=h},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var l=function(){function e(e,t){for(var n=0;n);/,n=e.match(t);return n?n[1]:"code no match"}}]),t}(s.default.Component);f.propTypes={code:d.default.string.isRequired,children:d.default.element},t.default=f},function(e,t,n){(function(t){"use strict";function r(e){for(var t;t=e._renderedComponent;)e=t;return e}function o(e,t){var n=r(e);n._nativeNode=t,t[h]=n}function a(e){var t=e._nativeNode;t&&(delete t[h],e._nativeNode=null)}function i(e,n){if(!(e._flags&m.hasCachedChildNodes)){var a=e._renderedChildren,i=n.firstChild;e:for(var l in a)if(a.hasOwnProperty(l)){var u=a[l],s=r(u)._domID;if(null!=s){for(;null!==i;i=i.nextSibling)if(1===i.nodeType&&i.getAttribute(p)===String(s)||8===i.nodeType&&i.nodeValue===" react-text: "+s+" "||8===i.nodeType&&i.nodeValue===" react-empty: "+s+" "){o(u,i);continue e}"production"!==t.env.NODE_ENV?f(!1,"Unable to find element with ID %s.",s):f(!1)}}e._flags|=m.hasCachedChildNodes}}function l(e){if(e[h])return e[h];for(var t=[];!e[h];){if(t.push(e),!e.parentNode)return null;e=e.parentNode}for(var n,r;e&&(r=e[h]);e=t.pop())n=r,t.length&&i(r,e);return n}function u(e){var t=l(e);return null!=t&&t._nativeNode===e?t:null}function s(e){if(void 0===e._nativeNode?"production"!==t.env.NODE_ENV?f(!1,"getNodeFromInstance: Invalid argument."):f(!1):void 0,e._nativeNode)return e._nativeNode;for(var n=[];!e._nativeNode;)n.push(e),e._nativeParent?void 0:"production"!==t.env.NODE_ENV?f(!1,"React DOM tree root should always have a node reference."):f(!1),e=e._nativeParent;for(;n.length;e=n.pop())i(e,e._nativeNode);return e._nativeNode}var c=n(28),d=n(121),f=n(3),p=c.ID_ATTRIBUTE_NAME,m=d,h="__reactInternalInstance$"+Math.random().toString(36).slice(2),v={getClosestInstanceFromNode:l,getInstanceFromNode:u,getNodeFromInstance:s,precacheChildNodes:i,precacheNode:o,uncacheNode:a};e.exports=v}).call(t,n(2))},function(e,t){"use strict";var n=!("undefined"==typeof window||!window.document||!window.document.createElement),r={canUseDOM:n,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:n&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:n&&!!window.screen,isInWorker:!n};e.exports=r},function(e,t,n){(function(t){"use strict";function n(e,t,n){return n}var r={enableMeasure:!1,storedMeasure:n,measureMethods:function(e,n,o){if("production"!==t.env.NODE_ENV)for(var a in o)o.hasOwnProperty(a)&&(e[a]=r.measure(n,o[a],e[a]))},measure:function(e,n,o){if("production"!==t.env.NODE_ENV){var a=null,i=function(){return r.enableMeasure?(a||(a=r.storedMeasure(e,n,o)),a.apply(this,arguments)):o.apply(this,arguments)};return i.displayName=e+"_"+n,i}return o},injection:{injectMeasure:function(e){r.storedMeasure=e}}};e.exports=r}).call(t,n(2))},function(e,t,n){(function(t){"use strict";var n=function(e,n,r,o,a,i,l,u){if("production"!==t.env.NODE_ENV&&void 0===n)throw new Error("invariant requires an error message argument");if(!e){var s;if(void 0===n)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[r,o,a,i,l,u],d=0;s=new Error(n.replace(/%s/g,function(){return c[d++]})),s.name="Invariant Violation"}throw s.framesToPop=1,s}};e.exports=n}).call(t,n(2))},function(e,t,n){(function(t){"use strict";var n=function(){};"production"!==t.env.NODE_ENV&&(n=function(e,t,n){var r=arguments.length;n=new Array(r>2?r-2:0);for(var o=2;o=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{ -value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t-1&&(b["waves-"+p]=!0);var E={flat:l,floating:s,large:c};return h.default.STYLES.forEach(function(e){b["btn-"+e]=E[e]}),i&&(b["modal-action"]=!0,b["modal-"+i]=!0),r?this.renderFab((0,y.default)(b,t),r,v):d.default.createElement(g,u({},m,{disabled:!!f,onClick:this.props.onClick,className:(0,y.default)(b,t)}),this.renderIcon(),this.props.children)}},{key:"renderFab",value:function(e,t,n){var r=(0,y.default)(t,n);return d.default.createElement("div",{className:(0,y.default)("fixed-action-btn",r)},d.default.createElement("a",{className:e},this.renderIcon()),d.default.createElement("ul",null,d.default.Children.map(this.props.children,function(e){return d.default.createElement("li",{key:(0,_.default)()},e)})))}},{key:"renderIcon",value:function(){var e=this.props.icon;if(e)return d.default.createElement(b.default,null,e)}}]),t}(c.Component);N.propTypes={children:p.default.node,className:p.default.string,disabled:p.default.bool,flat:p.default.bool,large:p.default.bool,floating:p.default.bool,fab:p.default.oneOf(["vertical","horizontal"]),icon:p.default.string,modal:p.default.oneOf(["close","confirm"]),node:p.default.node,onClick:p.default.func,tooltip:p.default.string,waves:p.default.oneOf(h.default.WAVES),fabClickOnly:p.default.bool},N.defaultProps={node:"button"},t.default=N},function(e,t,n){(function(t){"use strict";var r,o,a=n(9),i=n(29),l=n(5),u=n(80),s="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,c={key:!0,ref:!0,__self:!0,__source:!0},d=function(e,n,r,o,a,i,l){var c={$$typeof:s,type:e,key:n,ref:r,props:l,_owner:i};return"production"!==t.env.NODE_ENV&&(c._store={},u?(Object.defineProperty(c._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(c,"_self",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(c,"_source",{configurable:!1,enumerable:!1,writable:!1,value:a})):(c._store.validated=!1,c._self=o,c._source=a),Object.freeze&&(Object.freeze(c.props),Object.freeze(c))),c};d.createElement=function(e,n,a){var u,f={},p=null,m=null,h=null,v=null;if(null!=n){"production"!==t.env.NODE_ENV?(m=!n.hasOwnProperty("ref")||Object.getOwnPropertyDescriptor(n,"ref").get?null:n.ref,p=!n.hasOwnProperty("key")||Object.getOwnPropertyDescriptor(n,"key").get?null:""+n.key):(m=void 0===n.ref?null:n.ref,p=void 0===n.key?null:""+n.key),h=void 0===n.__self?null:n.__self,v=void 0===n.__source?null:n.__source;for(u in n)n.hasOwnProperty(u)&&!c.hasOwnProperty(u)&&(f[u]=n[u])}var y=arguments.length-2;if(1===y)f.children=a;else if(y>1){for(var g=Array(y),b=0;b1){for(var v=Array(h),y=0;y should not have a "'+t+'" prop')}t.__esModule=!0,t.falsy=r;var o=n(1),a=o.PropTypes.func,i=o.PropTypes.object,l=o.PropTypes.arrayOf,u=o.PropTypes.oneOfType,s=o.PropTypes.element,c=o.PropTypes.shape,d=o.PropTypes.string,f=c({listen:a.isRequired,pushState:a.isRequired,replaceState:a.isRequired,go:a.isRequired});t.history=f;var p=c({pathname:d.isRequired,search:d.isRequired,state:i,action:d.isRequired,key:d});t.location=p;var m=u([a,d]);t.component=m;var h=u([m,i]);t.components=h;var v=u([i,s]);t.route=v;var y=u([v,l(v)]);t.routes=y,t.default={falsy:r,history:f,location:p,component:m,components:h,route:v}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=function(){function e(e,t){for(var n=0;n0?void 0:"production"!==e.env.NODE_ENV?p.default(!1,'Missing splat #%s for path "%s"',u,t):p.default(!1),null!=d&&(i+=encodeURI(d))):"("===s?a+=1:")"===s?a-=1:":"===s.charAt(0)?(c=s.substring(1),d=n[c],null!=d||a>0?void 0:"production"!==e.env.NODE_ENV?p.default(!1,'Missing "%s" parameter for path "%s"',c,t):p.default(!1),null!=d&&(i+=encodeURIComponent(d))):i+=s;return i.replace(/\/+/g,"/")}t.__esModule=!0,t.compilePattern=l,t.matchPattern=u,t.getParamNames=s,t.getParams=c,t.formatPattern=d;var f=n(17),p=r(f),m={}}).call(t,n(2))},function(e,t){"use strict";function n(){ -o=0}function r(){var e=o;return o+=1,e}Object.defineProperty(t,"__esModule",{value:!0}),t.resetID=n,t.default=r;var o=0},function(e,t,n){(function(t){"use strict";var r=n(51),o=n(72),a=n(76),i=n(135),l=n(136),u=n(3),s={},c=null,d=function(e,t){e&&(o.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e))},f=function(e){return d(e,!0)},p=function(e){return d(e,!1)},m={injection:{injectEventPluginOrder:r.injectEventPluginOrder,injectEventPluginsByName:r.injectEventPluginsByName},putListener:function(e,n,o){"function"!=typeof o?"production"!==t.env.NODE_ENV?u(!1,"Expected %s listener to be a function, instead got type %s",n,typeof o):u(!1):void 0;var a=s[n]||(s[n]={});a[e._rootNodeID]=o;var i=r.registrationNameModules[n];i&&i.didPutListener&&i.didPutListener(e,n,o)},getListener:function(e,t){var n=s[t];return n&&n[e._rootNodeID]},deleteListener:function(e,t){var n=r.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t);var o=s[t];o&&delete o[e._rootNodeID]},deleteAllListeners:function(e){for(var t in s)if(s[t][e._rootNodeID]){var n=r.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t),delete s[t][e._rootNodeID]}},extractEvents:function(e,t,n,o){for(var a,l=r.plugins,u=0;u=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t-1?void 0:"production"!==t.env.NODE_ENV?i(!1,"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.",e):i(!1),!s.plugins[r]){n.extractEvents?void 0:"production"!==t.env.NODE_ENV?i(!1,"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.",e):i(!1),s.plugins[r]=n;var a=n.eventTypes;for(var c in a)o(a[c],n,c)?void 0:"production"!==t.env.NODE_ENV?i(!1,"EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.",c,e):i(!1)}}}function o(e,n,r){s.eventNameDispatchConfigs.hasOwnProperty(r)?"production"!==t.env.NODE_ENV?i(!1,"EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.",r):i(!1):void 0,s.eventNameDispatchConfigs[r]=e;var o=e.phasedRegistrationNames;if(o){for(var l in o)if(o.hasOwnProperty(l)){var u=o[l];a(u,n,r)}return!0}return!!e.registrationName&&(a(e.registrationName,n,r),!0)}function a(e,n,r){if(s.registrationNameModules[e]?"production"!==t.env.NODE_ENV?i(!1,"EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.",e):i(!1):void 0,s.registrationNameModules[e]=n,s.registrationNameDependencies[e]=n.eventTypes[r].dependencies,"production"!==t.env.NODE_ENV){var o=e.toLowerCase();s.possibleRegistrationNames[o]=e}}var i=n(3),l=null,u={},s={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:"production"!==t.env.NODE_ENV?{}:null,injectEventPluginOrder:function(e){l?"production"!==t.env.NODE_ENV?i(!1,"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React."):i(!1):void 0,l=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var n=!1;for(var o in e)if(e.hasOwnProperty(o)){var a=e[o];u.hasOwnProperty(o)&&u[o]===a||(u[o]?"production"!==t.env.NODE_ENV?i(!1,"EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.",o):i(!1):void 0,u[o]=a,n=!0)}n&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return s.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var r=s.registrationNameModules[t.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){l=null;for(var e in u)u.hasOwnProperty(e)&&delete u[e];s.plugins.length=0;var n=s.eventNameDispatchConfigs;for(var r in n)n.hasOwnProperty(r)&&delete n[r];var o=s.registrationNameModules;for(var a in o)o.hasOwnProperty(a)&&delete o[a];if("production"!==t.env.NODE_ENV){var i=s.possibleRegistrationNames;for(var c in i)i.hasOwnProperty(c)&&delete i[c]}}};e.exports=s}).call(t,n(2))},function(e,t,n){"use strict";function r(e){return Object.prototype.hasOwnProperty.call(e,v)||(e[v]=m++,f[e[v]]={}),f[e[v]]}var o,a=n(9),i=n(24),l=n(51),u=n(311),s=n(134),c=n(339),d=n(86),f={},p=!1,m=0,h={topAbort:"abort",topAnimationEnd:c("animationend")||"animationend",topAnimationIteration:c("animationiteration")||"animationiteration",topAnimationStart:c("animationstart")||"animationstart",topBlur:"blur",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topScroll:"scroll",topSeeked:"seeked",topSeeking:"seeking",topSelectionChange:"selectionchange",topStalled:"stalled",topSuspend:"suspend",topTextInput:"textInput",topTimeUpdate:"timeupdate",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topTransitionEnd:c("transitionend")||"transitionend",topVolumeChange:"volumechange",topWaiting:"waiting",topWheel:"wheel"},v="_reactListenersID"+String(Math.random()).slice(2),y=a({},u,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(y.handleTopLevel),y.ReactEventListener=e}},setEnabled:function(e){y.ReactEventListener&&y.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!y.ReactEventListener||!y.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var n=t,o=r(n),a=l.registrationNameDependencies[e],u=i.topLevelTypes,s=0;s":">","<":"<",'"':""","'":"'"},a=/[&><"']/g;e.exports=r},function(e,t){"use strict";function n(e){return function(){return e}}var r=function(){};r.thatReturns=n,r.thatReturnsFalse=n(!1),r.thatReturnsTrue=n(!0),r.thatReturnsNull=n(null),r.thatReturnsThis=function(){return this},r.thatReturnsArgument=function(e){return e},e.exports=r},function(e,t,n){(function(t){"use strict";function n(e,t,n,o,a,i,l,u){if(r(t),!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,o,a,i,l,u],d=0;s=new Error(t.replace(/%s/g,function(){return c[d++]})),s.name="Invariant Violation"}throw s.framesToPop=1,s}}var r=function(e){};"production"!==t.env.NODE_ENV&&(r=function(e){if(void 0===e)throw new Error("invariant requires an error message argument")}),e.exports=n}).call(t,n(2))},function(e,t){"use strict";function n(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n)}function r(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent("on"+t,n)}function o(){return window.location.href.split("#")[1]||""}function a(e){window.location.replace(window.location.pathname+window.location.search+"#"+e)}function i(){return window.location.pathname+window.location.search+window.location.hash}function l(e){e&&window.history.go(e)}function u(e,t){t(window.confirm(e))}function s(){var e=navigator.userAgent;return(e.indexOf("Android 2.")===-1&&e.indexOf("Android 4.0")===-1||e.indexOf("Mobile Safari")===-1||e.indexOf("Chrome")!==-1||e.indexOf("Windows Phone")!==-1)&&(e.indexOf("CriOS")===-1&&(window.history&&"pushState"in window.history))}function c(){var e=navigator.userAgent;return e.indexOf("Firefox")===-1}t.__esModule=!0,t.addEventListener=n,t.removeEventListener=r,t.getHashPath=o,t.replaceHashPath=a,t.getWindowPath=i,t.go=l,t.getUserConfirmation=u,t.supportsHistory=s,t.supportsGoWithoutReloadUsingHash=c},function(e,t){"use strict";function n(e){return e}t.__esModule=!0,t.default=n,e.exports=t.default},function(e,t,n){(function(r){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}function a(e,t,n){var o=e(t,n);e.length<2?n(o):"production"!==r.env.NODE_ENV?l.default(void 0===o,'You should not "return" in a transition hook with a callback argument; call the callback instead'):void 0}t.__esModule=!0;var i=n(18),l=o(i);t.default=a,e.exports=t.default}).call(t,n(2))},function(e,t,n){(function(t){if("production"!==t.env.NODE_ENV){var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,o=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},a=!0;e.exports=n(156)(o,a)}else e.exports=n(155)()}).call(t,n(2))},function(e,t){"use strict";function n(e,t,n){function r(){i=!0,n.apply(this,arguments)}function o(){i||(a=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function i(e){for(var t in e)if(e.hasOwnProperty(t))return!0;return!1}function l(e){return function(){function t(e,t){var n=!(arguments.length<=2||void 0===arguments[2])&&arguments[2];return g.default(e,t,n,x.location,x.routes,x.params)}function n(e){var t=e.pathname,n=e.query,r=e.state;return P.createLocation(P.createPath(t,n),r,d.REPLACE)}function o(e,t){T&&T.location===e?l(T,t):N.default(w,e,function(n,r){n?t(n):r?l(u({},r,{location:e}),t):t()})}function l(e,t){var r=h.default(x,e),o=r.leaveRoutes,a=r.enterRoutes;v.runLeaveHooks(o),v.runEnterHooks(a,e,function(r,o){r?t(r):o?t(null,n(o)):E.default(e,function(n,r){n?t(n):t(null,null,x=u({},e,{components:r}))})})}function s(e){return e.__id__||(e.__id__=k++)}function f(e){return e.reduce(function(e,t){return e.push.apply(e,M[s(t)]),e},[])}function m(e,t){N.default(w,e,function(n,r){if(null==r)return void t();T=u({},r,{location:e});for(var o=f(h.default(x,T).leaveRoutes),a=void 0,i=0,l=o.length;null==a&&i=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t.":"function"==typeof n?" Instead of passing a class like Foo, pass React.createElement(Foo) or .":null!=n&&void 0!==n.props?" This may be caused by unintentionally loading two independent copies of React.":""):k(!1),"production"!==t.env.NODE_ENV?R(!r||!r.tagName||"BODY"!==r.tagName.toUpperCase(),"render(): Rendering components directly into document.body is discouraged, since its children are often manipulated by third-party scripts and browser extensions. This may lead to subtle reconciliation issues. Try rendering into a container element created for your app."):void 0;var l=b(B,null,null,null,null,null,n),u=d(r);if(u){var c=u._currentElement,f=c.props;if(D(f,n)){var p=u._renderedComponent.getPublicInstance(),m=i&&function(){i.call(p)};return F._updateRootComponent(u,l,r,m),p}F.unmountComponentAtNode(r)}var h=o(r),v=h&&!!a(h),y=s(r);if("production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?R(!y,"render(...): Replacing React-rendered children with a new root component. If you intended to update the children of this node, you should instead have the existing children update their state and render the new components instead of calling ReactDOM.render."):void 0,!v||h.nextSibling))for(var g=h;g;){if(a(g)){"production"!==t.env.NODE_ENV?R(!1,"render(): Target node has markup rendered by React, but there are unrelated nodes as well. This is most commonly caused by white-space inserted around server-rendered markup."):void 0;break}g=g.nextSibling}var E=v&&!u&&!y,_=F._renderNewRootComponent(l,r,E,null!=e?e._reactInternalInstance._processChildContext(e._reactInternalInstance._context):x)._renderedComponent.getPublicInstance();return i&&i.call(_),_},render:function(e,t,n){return F._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){"production"!==t.env.NODE_ENV?R(null==h.current,"unmountComponentAtNode(): Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate. Check the render method of %s.",h.current&&h.current.getName()||"ReactCompositeComponent"):void 0,!e||e.nodeType!==S&&e.nodeType!==A&&e.nodeType!==V?"production"!==t.env.NODE_ENV?k(!1,"unmountComponentAtNode(...): Target container is not a DOM element."):k(!1):void 0;var n=d(e);if(!n){var r=s(e),o=1===e.nodeType&&e.hasAttribute(j);return"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?R(!r,"unmountComponentAtNode(): The node you're attempting to unmount was rendered by React and is not a top-level container. %s",o?"You may have accidentally passed in a React root node instead of its container.":"Instead, have the parent component update its state and rerender in order to remove this component."):void 0),!1}return delete L[n._instance.rootID],P.batchedUpdates(u,n,e,!1),!0},_mountImageIntoNode:function(e,n,a,i,l){if(!n||n.nodeType!==S&&n.nodeType!==A&&n.nodeType!==V?"production"!==t.env.NODE_ENV?k(!1,"mountComponentIntoNode(...): Target container is not valid."):k(!1):void 0,i){var u=o(n);if(N.canReuseMarkup(e,u))return void v.precacheNode(a,u);var s=u.getAttribute(N.CHECKSUM_ATTR_NAME);u.removeAttribute(N.CHECKSUM_ATTR_NAME);var c=u.outerHTML;u.setAttribute(N.CHECKSUM_ATTR_NAME,s);var d=e;if("production"!==t.env.NODE_ENV){var p;n.nodeType===S?(p=document.createElement("div"),p.innerHTML=e,d=p.innerHTML):(p=document.createElement("iframe"),document.body.appendChild(p),p.contentDocument.write(e),d=p.contentDocument.documentElement.outerHTML,document.body.removeChild(p))}var m=r(d,c),h=" (client) "+d.substring(m-20,m+20)+"\n (server) "+c.substring(m-20,m+20);n.nodeType===A?"production"!==t.env.NODE_ENV?k(!1,"You're trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\n%s",h):k(!1):void 0,"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?R(!1,"React attempted to reuse markup in a container but the checksum was invalid. This generally means that you are using server rendering and the markup generated on the server was not what the client was expecting. React injected new markup to compensate which works but you have lost many of the benefits of server rendering. Instead, figure out why the markup being generated is different on the client or server:\n%s",h):void 0)}if(n.nodeType===A?"production"!==t.env.NODE_ENV?k(!1,"You're trying to render a component to the document but you didn't use server rendering. We can't do this without using server rendering due to cross-browser quirks. See ReactDOMServer.renderToString() for server rendering."):k(!1):void 0,l.useCreateElement){for(;n.lastChild;)n.removeChild(n.lastChild);f.insertTreeBefore(n,e,null)}else M(n,e),v.precacheNode(a,n.firstChild)}};O.measureMethods(F,"ReactMount",{_renderNewRootComponent:"_renderNewRootComponent",_mountImageIntoNode:"_mountImageIntoNode"}),e.exports=F}).call(t,n(2))},function(e,t,n){(function(t){"use strict";var r=n(3),o={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(e,n,o,a,i,l,u,s){this.isInTransaction()?"production"!==t.env.NODE_ENV?r(!1,"Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction."):r(!1):void 0;var c,d;try{this._isInTransaction=!0,c=!0,this.initializeAll(0),d=e.call(n,o,a,i,l,u,s),c=!1}finally{try{if(c)try{this.closeAll(0)}catch(e){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return d},initializeAll:function(e){for(var t=this.transactionWrappers,n=e;n=32||13===t?t:0}e.exports=n},function(e,t){"use strict";function n(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=o[e];return!!r&&!!n[r]}function r(e){return n}var o={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};e.exports=r},function(e,t){"use strict";function n(e){var t=e.target||e.srcElement||window;return t.correspondingUseElement&&(t=t.correspondingUseElement),3===t.nodeType?t.parentNode:t}e.exports=n},function(e,t){"use strict";function n(e){var t=e&&(r&&e[r]||e[o]);if("function"==typeof t)return t}var r="function"==typeof Symbol&&Symbol.iterator,o="@@iterator";e.exports=n},function(e,t,n){"use strict";/** - * Checks if an event is supported in the current execution environment. - * - * NOTE: This will not work correctly for non-generic events such as `change`, - * `reset`, `load`, `error`, and `select`. - * - * Borrows from Modernizr. - * - * @param {string} eventNameSuffix Event name, e.g. "click". - * @param {?boolean} capture Check if the capture phase is supported. - * @return {boolean} True if the event is supported. - * @internal - * @license Modernizr 3.0.0pre (Custom Build) | MIT - */ -function r(e,t){if(!a.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var i=document.createElement("div");i.setAttribute(n,"return;"),r="function"==typeof i[n]}return!r&&o&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var o,a=n(15);a.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),e.exports=r},function(e,t,n){"use strict";var r=n(15),o=/^[ \r\n\t\f]/,a=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,i=n(81),l=i(function(e,t){e.innerHTML=t});if(r.canUseDOM){var u=document.createElement("div");u.innerHTML=" ",""===u.innerHTML&&(l=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),o.test(t)||"<"===t[0]&&a.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),u=null}e.exports=l},function(e,t){"use strict";function n(e,t){var n=null===e||e===!1,r=null===t||t===!1;if(n||r)return n===r;var o=typeof e,a=typeof t;return"string"===o||"number"===o?"string"===a||"number"===a:"object"===a&&e.type===t.type&&e.key===t.key}e.exports=n},function(e,t,n){(function(t){"use strict";function r(e,t){return e&&"object"==typeof e&&null!=e.key?c.escape(e.key):t.toString(36)}function o(e,n,a,h){var v=typeof e;if("undefined"!==v&&"boolean"!==v||(e=null),null===e||"string"===v||"number"===v||l.isValidElement(e))return a(h,e,""===n?f+r(e,0):n),1;var y,g,b=0,E=""===n?f:n+p;if(Array.isArray(e))for(var _=0;_ "),T=!!l+"|"+e+"|"+f+"|"+x;if(v[T])return;v[T]=!0;var k=e;if("#text"!==e&&(k="<"+e+">"),l){var M="";"table"===f&&"tr"===e&&(M+=" Add a to your code to match the DOM tree generated by the browser."),"production"!==t.env.NODE_ENV?a(!1,"validateDOMNesting(...): %s cannot appear as a child of <%s>. See %s.%s",k,f,x,M):void 0}else"production"!==t.env.NODE_ENV?a(!1,"validateDOMNesting(...): %s cannot appear as a descendant of <%s>. See %s.",k,f,x):void 0}},i.updatedAncestorInfo=f,i.isTagValidInContext=function(e,t){t=t||d;var n=t.current,r=n&&n.tag;return p(e,r)&&!m(e,t)}}e.exports=i}).call(t,n(2))},function(e,t,n){(function(t){"use strict";var r=n(58),o=r;"production"!==t.env.NODE_ENV&&!function(){var e=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r2?r-2:0),a=2;a=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e){return 0===e.button}function u(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function s(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}t.__esModule=!0;var c=Object.assign||function(e){for(var t=1;t elements are for router configuration only and should not be rendered"):u.default(!1)},t}(s.Component);y.createRouteFromReactElement=function(e){var t=d.createRouteFromReactElement(e);return t.from&&(t.path=t.from),t.onEnter=function(e,n){var r=e.location,o=e.params,a=void 0;if("/"===t.to.charAt(0))a=f.formatPattern(t.to,o);else if(t.to){var i=e.routes.indexOf(t),l=y.getRoutePattern(e.routes,i-1),u=l.replace(/\/*$/,"/")+t.to;a=f.formatPattern(u,o)}else a=r.pathname;n(t.state||r.state,a,t.query||r.query)},t},y.getRoutePattern=function(e,t){for(var n="",r=t;r>=0;r--){var o=e[r],a=o.path||"";if(n=a.replace(/\/*$/,"/")+n,0===a.indexOf("/"))break}return"/"+n},y.propTypes={path:h,from:h,to:h.isRequired,query:v,state:v,onEnter:p.falsy,children:p.falsy},t.default=y,e.exports=t.default}).call(t,n(2))},function(e,t,n){(function(r){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var l=Object.assign||function(e){for(var t=1;tReact Materialize\n \n \n \n \n \n \n '},n={__html:"window.PROP_DATA = "+JSON.stringify(t.propData)+";"};return s.default.createElement("html",null,s.default.createElement("head",{dangerouslySetInnerHTML:e}),s.default.createElement("body",null,s.default.createElement(p.default,{location:this.props.location.pathname}),s.default.createElement("main",null,s.default.createElement("div",{className:"container"},this.props.children)),s.default.createElement(h.default,null),s.default.createElement("script",{src:"node_modules/jquery/dist/jquery.js"}),s.default.createElement("script",{src:"node_modules/materialize-css/bin/materialize.js"}),s.default.createElement("script",{src:"node_modules/prismjs/prism.js"}),s.default.createElement("script",{type:"text/javascript",dangerouslySetInnerHTML:n}),s.default.createElement("script",{src:"assets/bundle.js",type:"text/javascript"})))}}],[{key:"getPages",value:function(){return["index.html","getting-started.html","badges.html","buttons.html","breadcrumbs.html","cards.html","chips.html","collapsible.html","collections.html","dropdown.html","footer.html","forms.html","grid.html","media.html","modals.html","navbar.html","pagination.html","preloader.html","sidenav.html","table.html","tabs.html"]}}]),t}(s.default.Component);v.propTypes={location:d.default.object,children:d.default.element},v.childContextTypes={metadata:d.default.object},t.default=v},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t":i.innerHTML="<"+e+">",l[e]=!i.firstChild),l[e]?f[e]:null}var o=n(15),a=n(3),i=o.canUseDOM?document.createElement("div"):null,l={},u=[1,'"],s=[1,"","
"],c=[3,"","
"],d=[1,'',""],f={"*":[1,"?
","
"],area:[1,"",""],col:[2,"","
"],legend:[1,"
","
"],param:[1,"",""],tr:[2,"","
"],optgroup:u,option:u,caption:s,colgroup:s,tbody:s,tfoot:s,thead:s,td:c,th:c},p=["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"];p.forEach(function(e){f[e]=d,l[e]=!0}),e.exports=r}).call(t,n(2))},function(e,t){"use strict";function n(e,t){return e===t?0!==e||0!==t||1/e===1/t:e!==e&&t!==t}function r(e,t){if(n(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var r=Object.keys(e),a=Object.keys(t);if(r.length!==a.length)return!1;for(var i=0;i1?l-1:0),s=1;s must be an array if `multiple` is true.%s",i,o(r)):void 0:"production"!==t.env.NODE_ENV?m(!Array.isArray(n[i]),"The `%s` prop supplied to "; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; -})(); -var strundefined = typeof undefined; - - - -support.focusinBubbles = "onfocusin" in window; - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, - rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = data_priv.get( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !(events = elemData.events) ) { - events = elemData.events = {}; - } - if ( !(eventHandle = elemData.handle) ) { - eventHandle = elemData.handle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend({ - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join(".") - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !(handlers = events[ type ]) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = data_priv.hasData( elem ) && data_priv.get( elem ); - - if ( !elemData || !(events = elemData.events) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - delete elemData.handle; - data_priv.remove( elem, "events" ); - } - }, - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; - - cur = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf(".") >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf(":") < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join("."); - event.namespace_re = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === (elem.ownerDocument || document) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { - - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && jQuery.acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && - jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - elem[ type ](); - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - dispatch: function( event ) { - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( event ); - - var i, j, ret, matched, handleObj, - handlerQueue = [], - args = slice.call( arguments ), - handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[0] = event; - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { - - // Triggered event must either 1) have no namespace, or 2) have namespace(s) - // a subset or equal to those in the bound event (both can have no namespace). - if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) - .apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( (event.result = ret) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, matches, sel, handleObj, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - // Black-hole SVG instance trees (#13180) - // Avoid non-left-click bubbling in Firefox (#3861) - if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.disabled !== true || event.type !== "click" ) { - matches = []; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matches[ sel ] === undefined ) { - matches[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) >= 0 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matches[ sel ] ) { - matches.push( handleObj ); - } - } - if ( matches.length ) { - handlerQueue.push({ elem: cur, handlers: matches }); - } - } - } - } - - // Add the remaining (directly-bound) handlers - if ( delegateCount < handlers.length ) { - handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); - } - - return handlerQueue; - }, - - // Includes some event props shared by KeyEvent and MouseEvent - props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), - - fixHooks: {}, - - keyHooks: { - props: "char charCode key keyCode".split(" "), - filter: function( event, original ) { - - // Add which for key events - if ( event.which == null ) { - event.which = original.charCode != null ? original.charCode : original.keyCode; - } - - return event; - } - }, - - mouseHooks: { - props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), - filter: function( event, original ) { - var eventDoc, doc, body, - button = original.button; - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && original.clientX != null ) { - eventDoc = event.target.ownerDocument || document; - doc = eventDoc.documentElement; - body = eventDoc.body; - - event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); - event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && button !== undefined ) { - event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); - } - - return event; - } - }, - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // Create a writable copy of the event object and normalize some properties - var i, prop, copy, - type = event.type, - originalEvent = event, - fixHook = this.fixHooks[ type ]; - - if ( !fixHook ) { - this.fixHooks[ type ] = fixHook = - rmouseEvent.test( type ) ? this.mouseHooks : - rkeyEvent.test( type ) ? this.keyHooks : - {}; - } - copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; - - event = new jQuery.Event( originalEvent ); - - i = copy.length; - while ( i-- ) { - prop = copy[ i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Support: Cordova 2.5 (WebKit) (#13255) - // All events should have a target; Cordova deviceready doesn't - if ( !event.target ) { - event.target = document; - } - - // Support: Safari 6.0+, Chrome<28 - // Target should not be a text node (#504, #13143) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; - }, - - special: { - load: { - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - focus: { - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== safeActiveElement() && this.focus ) { - this.focus(); - return false; - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === safeActiveElement() && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - click: { - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { - this.click(); - return false; - } - }, - - // For cross-browser consistency, don't fire native .click() on links - _default: function( event ) { - return jQuery.nodeName( event.target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - }, - - simulate: function( type, elem, event, bubble ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true, - originalEvent: {} - } - ); - if ( bubble ) { - jQuery.event.trigger( e, null, elem ); - } else { - jQuery.event.dispatch.call( elem, e ); - } - if ( e.isDefaultPrevented() ) { - event.preventDefault(); - } - } -}; - -jQuery.removeEvent = function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } -}; - -jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !(this instanceof jQuery.Event) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - // Support: Android<4.0 - src.returnValue === false ? - returnTrue : - returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && e.preventDefault ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e && e.stopPropagation ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && e.stopImmediatePropagation ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Create mouseenter/leave events using mouseover/out and event-time checks -// Support: Chrome 15+ -jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mousenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || (related !== target && !jQuery.contains( target, related )) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -}); - -// Support: Firefox, Chrome, Safari -// Create "bubbling" focus and blur events -if ( !support.focusinBubbles ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - var doc = this.ownerDocument || this, - attaches = data_priv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - data_priv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this, - attaches = data_priv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - data_priv.remove( doc, fix ); - - } else { - data_priv.access( doc, fix, attaches ); - } - } - }; - }); -} - -jQuery.fn.extend({ - - on: function( types, selector, data, fn, /*INTERNAL*/ one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - this.on( type, selector, data, types[ type ], one ); - } - return this; - } - - if ( data == null && fn == null ) { - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return this; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return this.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - }); - }, - one: function( types, selector, data, fn ) { - return this.on( types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each(function() { - jQuery.event.remove( this, types, fn, selector ); - }); - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - triggerHandler: function( type, data ) { - var elem = this[0]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -}); - - -var - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, - rtagName = /<([\w:]+)/, - rhtml = /<|&#?\w+;/, - rnoInnerhtml = /<(?:script|style|link)/i, - // checked="checked" or checked - rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, - rscriptType = /^$|\/(?:java|ecma)script/i, - rscriptTypeMasked = /^true\/(.*)/, - rcleanScript = /^\s*\s*$/g, - - // We have to close these tags to support XHTML (#13200) - wrapMap = { - - // Support: IE9 - option: [ 1, "" ], - - thead: [ 1, "", "
" ], - col: [ 2, "", "
" ], - tr: [ 2, "", "
" ], - td: [ 3, "", "
" ], - - _default: [ 0, "", "" ] - }; - -// Support: IE9 -wrapMap.optgroup = wrapMap.option; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// Support: 1.x compatibility -// Manipulating tables requires a tbody -function manipulationTarget( elem, content ) { - return jQuery.nodeName( elem, "table" ) && - jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? - - elem.getElementsByTagName("tbody")[0] || - elem.appendChild( elem.ownerDocument.createElement("tbody") ) : - elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); - - if ( match ) { - elem.type = match[ 1 ]; - } else { - elem.removeAttribute("type"); - } - - return elem; -} - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - data_priv.set( - elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" ) - ); - } -} - -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( data_priv.hasData( src ) ) { - pdataOld = data_priv.access( src ); - pdataCur = data_priv.set( dest, pdataOld ); - events = pdataOld.events; - - if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( data_user.hasData( src ) ) { - udataOld = data_user.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - data_user.set( dest, udataCur ); - } -} - -function getAll( context, tag ) { - var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) : - context.querySelectorAll ? context.querySelectorAll( tag || "*" ) : - []; - - return tag === undefined || tag && jQuery.nodeName( context, tag ) ? - jQuery.merge( [ context ], ret ) : - ret; -} - -// Fix IE bugs, see support tests -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -jQuery.extend({ - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = jQuery.contains( elem.ownerDocument, elem ); - - // Fix IE cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - buildFragment: function( elems, context, scripts, selection ) { - var elem, tmp, tag, wrap, contains, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { - // Support: QtWebKit, PhantomJS - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement("div") ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: QtWebKit, PhantomJS - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Ensure the created nodes are orphaned (#12392) - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( (elem = nodes[ i++ ]) ) { - - // #4087 - If origin and destination elements are the same, and this is - // that element, do not do anything - if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( (elem = tmp[ j++ ]) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; - }, - - cleanData: function( elems ) { - var data, elem, type, key, - special = jQuery.event.special, - i = 0; - - for ( ; (elem = elems[ i ]) !== undefined; i++ ) { - if ( jQuery.acceptData( elem ) ) { - key = elem[ data_priv.expando ]; - - if ( key && (data = data_priv.cache[ key ]) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - if ( data_priv.cache[ key ] ) { - // Discard any remaining `private` data - delete data_priv.cache[ key ]; - } - } - } - // Discard any remaining `user` data - delete data_user.cache[ elem[ data_user.expando ] ]; - } - } -}); - -jQuery.fn.extend({ - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each(function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - }); - }, null, value, arguments.length ); - }, - - append: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - }); - }, - - prepend: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - }); - }, - - before: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - }); - }, - - after: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - }); - }, - - remove: function( selector, keepData /* Internal Use Only */ ) { - var elem, - elems = selector ? jQuery.filter( selector, this ) : this, - i = 0; - - for ( ; (elem = elems[i]) != null; i++ ) { - if ( !keepData && elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem ) ); - } - - if ( elem.parentNode ) { - if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { - setGlobalEval( getAll( elem, "script" ) ); - } - elem.parentNode.removeChild( elem ); - } - } - - return this; - }, - - empty: function() { - var elem, - i = 0; - - for ( ; (elem = this[i]) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map(function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - }); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = value.replace( rxhtmlTag, "<$1>" ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var arg = arguments[ 0 ]; - - // Make the changes, replacing each context element with the new content - this.domManip( arguments, function( elem ) { - arg = this.parentNode; - - jQuery.cleanData( getAll( this ) ); - - if ( arg ) { - arg.replaceChild( elem, this ); - } - }); - - // Force removal if there was no new content (e.g., from empty arguments) - return arg && (arg.length || arg.nodeType) ? this : this.remove(); - }, - - detach: function( selector ) { - return this.remove( selector, true ); - }, - - domManip: function( args, callback ) { - - // Flatten any nested arrays - args = concat.apply( [], args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = this.length, - set = this, - iNoClone = l - 1, - value = args[ 0 ], - isFunction = jQuery.isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return this.each(function( index ) { - var self = set.eq( index ); - if ( isFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - self.domManip( args, callback ); - }); - } - - if ( l ) { - fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - if ( first ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - // Support: QtWebKit - // jQuery.merge because push.apply(_, arraylike) throws - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( this[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) { - - if ( node.src ) { - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl ) { - jQuery._evalUrl( node.src ); - } - } else { - jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) ); - } - } - } - } - } - } - - return this; - } -}); - -jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: QtWebKit - // .get() because push.apply(_, arraylike) throws - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -}); - - -var iframe, - elemdisplay = {}; - -/** - * Retrieve the actual display of a element - * @param {String} name nodeName of the element - * @param {Object} doc Document object - */ -// Called only from within defaultDisplay -function actualDisplay( name, doc ) { - var style, - elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), - - // getDefaultComputedStyle might be reliably used only on attached element - display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? - - // Use of this method is a temporary fix (more like optimization) until something better comes along, - // since it was removed from specification and supported only in FF - style.display : jQuery.css( elem[ 0 ], "display" ); - - // We don't have any data stored on the element, - // so use "detach" method as fast way to get rid of the element - elem.detach(); - - return display; -} - -/** - * Try to determine the default display value of an element - * @param {String} nodeName - */ -function defaultDisplay( nodeName ) { - var doc = document, - display = elemdisplay[ nodeName ]; - - if ( !display ) { - display = actualDisplay( nodeName, doc ); - - // If the simple way fails, read from inside an iframe - if ( display === "none" || !display ) { - - // Use the already-created iframe if possible - iframe = (iframe || jQuery( " -
- - -
-
- -
- - - - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- -
-
hi there
-
-
-
-
-
-
-
- -
-
-
- - -
- - -
- - -
C
-
-
- -
-
    -
  1. Rice
  2. -
  3. Beans
  4. -
  5. Blinis
  6. -
  7. Tofu
  8. -
- -
I'm hungry. I should...
- ...Eat lots of food... | - ...Eat a little food... | - ...Eat no food... - ...Eat a burger... - ...Eat some funyuns... - ...Eat some funyuns... -
- -
- - -
- -
- 1 - 2 - - - - - - - - -
​ - - -
- - diff --git a/node_modules/jquery/src/sizzle/test/jquery.js b/node_modules/jquery/src/sizzle/test/jquery.js deleted file mode 100644 index 86a3305..0000000 --- a/node_modules/jquery/src/sizzle/test/jquery.js +++ /dev/null @@ -1,9597 +0,0 @@ -/*! - * jQuery JavaScript Library v1.9.1 - * http://jquery.com/ - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * - * Copyright 2005, 2012 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2013-2-4 - */ -(function( window, undefined ) { - -// Can't do this because several apps including ASP.NET trace -// the stack via arguments.caller.callee and Firefox dies if -// you try to trace through "use strict" call chains. (#13335) -// Support: Firefox 18+ -//"use strict"; -var - // The deferred used on DOM ready - readyList, - - // A central reference to the root jQuery(document) - rootjQuery, - - // Support: IE<9 - // For `typeof node.method` instead of `node.method !== undefined` - core_strundefined = typeof undefined, - - // Use the correct document accordingly with window argument (sandbox) - document = window.document, - location = window.location, - - // Map over jQuery in case of overwrite - _jQuery = window.jQuery, - - // Map over the $ in case of overwrite - _$ = window.$, - - // [[Class]] -> type pairs - class2type = {}, - - // List of deleted data cache ids, so we can reuse them - core_deletedIds = [], - - core_version = "1.9.1", - - // Save a reference to some core methods - core_concat = core_deletedIds.concat, - core_push = core_deletedIds.push, - core_slice = core_deletedIds.slice, - core_indexOf = core_deletedIds.indexOf, - core_toString = class2type.toString, - core_hasOwn = class2type.hasOwnProperty, - core_trim = core_version.trim, - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - return new jQuery.fn.init( selector, context, rootjQuery ); - }, - - // Used for matching numbers - core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, - - // Used for splitting on whitespace - core_rnotwhite = /\S+/g, - - // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/, - - // Match a standalone tag - rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, - - // JSON RegExp - rvalidchars = /^[\],:{}\s]*$/, - rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, - rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, - rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, - - // Matches dashed string for camelizing - rmsPrefix = /^-ms-/, - rdashAlpha = /-([\da-z])/gi, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); - }, - - // The ready event handler - completed = function( event ) { - - // readyState === "complete" is good enough for us to call the dom ready in oldIE - if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { - detach(); - jQuery.ready(); - } - }, - // Clean-up method for dom ready events - detach = function() { - if ( document.addEventListener ) { - document.removeEventListener( "DOMContentLoaded", completed, false ); - window.removeEventListener( "load", completed, false ); - - } else { - document.detachEvent( "onreadystatechange", completed ); - window.detachEvent( "onload", completed ); - } - }; - -jQuery.fn = jQuery.prototype = { - // The current version of jQuery being used - jquery: core_version, - - constructor: jQuery, - init: function( selector, context, rootjQuery ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - - // scripts is true for back-compat - jQuery.merge( this, jQuery.parseHTML( - match[1], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - // Properties of context are called as methods if possible - if ( jQuery.isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[2] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id !== match[2] ) { - return rootjQuery.find( selector ); - } - - // Otherwise, we inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || rootjQuery ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return rootjQuery.ready( selector ); - } - - if ( selector.selector !== undefined ) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }, - - // Start with an empty selector - selector: "", - - // The default length of a jQuery object is 0 - length: 0, - - // The number of elements contained in the matched element set - size: function() { - return this.length; - }, - - toArray: function() { - return core_slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num == null ? - - // Return a 'clean' array - this.toArray() : - - // Return just the object - ( num < 0 ? this[ this.length + num ] : this[ num ] ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - ret.context = this.context; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - ready: function( fn ) { - // Add the callback - jQuery.ready.promise().done( fn ); - - return this; - }, - - slice: function() { - return this.pushStack( core_slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - - end: function() { - return this.prevObject || this.constructor(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: core_push, - sort: [].sort, - splice: [].splice -}; - -// Give the init function the jQuery prototype for later instantiation -jQuery.fn.init.prototype = jQuery.fn; - -jQuery.extend = jQuery.fn.extend = function() { - var src, copyIsArray, copy, name, options, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if ( length === i ) { - target = this; - --i; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray(src) ? src : []; - - } else { - clone = src && jQuery.isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend({ - noConflict: function( deep ) { - if ( window.$ === jQuery ) { - window.$ = _$; - } - - if ( deep && window.jQuery === jQuery ) { - window.jQuery = _jQuery; - } - - return jQuery; - }, - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( !document.body ) { - return setTimeout( jQuery.ready ); - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.trigger ) { - jQuery( document ).trigger("ready").off("ready"); - } - }, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return jQuery.type(obj) === "function"; - }, - - isArray: Array.isArray || function( obj ) { - return jQuery.type(obj) === "array"; - }, - - isWindow: function( obj ) { - return obj != null && obj == obj.window; - }, - - isNumeric: function( obj ) { - return !isNaN( parseFloat(obj) ) && isFinite( obj ); - }, - - type: function( obj ) { - if ( obj == null ) { - return String( obj ); - } - return typeof obj === "object" || typeof obj === "function" ? - class2type[ core_toString.call(obj) ] || "object" : - typeof obj; - }, - - isPlainObject: function( obj ) { - // Must be an Object. - // Because of IE, we also have to check the presence of the constructor property. - // Make sure that DOM nodes and window objects don't pass through, as well - if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - try { - // Not own constructor property must be Object - if ( obj.constructor && - !core_hasOwn.call(obj, "constructor") && - !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { - return false; - } - } catch ( e ) { - // IE8,9 Will throw exceptions on certain host objects #9897 - return false; - } - - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - - var key; - for ( key in obj ) {} - - return key === undefined || core_hasOwn.call( obj, key ); - }, - - isEmptyObject: function( obj ) { - var name; - for ( name in obj ) { - return false; - } - return true; - }, - - error: function( msg ) { - throw new Error( msg ); - }, - - // data: string of html - // context (optional): If specified, the fragment will be created in this context, defaults to document - // keepScripts (optional): If true, will include scripts passed in the html string - parseHTML: function( data, context, keepScripts ) { - if ( !data || typeof data !== "string" ) { - return null; - } - if ( typeof context === "boolean" ) { - keepScripts = context; - context = false; - } - context = context || document; - - var parsed = rsingleTag.exec( data ), - scripts = !keepScripts && []; - - // Single tag - if ( parsed ) { - return [ context.createElement( parsed[1] ) ]; - } - - parsed = jQuery.buildFragment( [ data ], context, scripts ); - if ( scripts ) { - jQuery( scripts ).remove(); - } - return jQuery.merge( [], parsed.childNodes ); - }, - - parseJSON: function( data ) { - // Attempt to parse using the native JSON parser first - if ( window.JSON && window.JSON.parse ) { - return window.JSON.parse( data ); - } - - if ( data === null ) { - return data; - } - - if ( typeof data === "string" ) { - - // Make sure leading/trailing whitespace is removed (IE can't handle it) - data = jQuery.trim( data ); - - if ( data ) { - // Make sure the incoming data is actual JSON - // Logic borrowed from http://json.org/json2.js - if ( rvalidchars.test( data.replace( rvalidescape, "@" ) - .replace( rvalidtokens, "]" ) - .replace( rvalidbraces, "")) ) { - - return ( new Function( "return " + data ) )(); - } - } - } - - jQuery.error( "Invalid JSON: " + data ); - }, - - // Cross-browser xml parsing - parseXML: function( data ) { - var xml, tmp; - if ( !data || typeof data !== "string" ) { - return null; - } - try { - if ( window.DOMParser ) { // Standard - tmp = new DOMParser(); - xml = tmp.parseFromString( data , "text/xml" ); - } else { // IE - xml = new ActiveXObject( "Microsoft.XMLDOM" ); - xml.async = "false"; - xml.loadXML( data ); - } - } catch( e ) { - xml = undefined; - } - if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; - }, - - noop: function() {}, - - // Evaluates a script in a global context - // Workarounds based on findings by Jim Driscoll - // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context - globalEval: function( data ) { - if ( data && jQuery.trim( data ) ) { - // We use execScript on Internet Explorer - // We use an anonymous function so that context is window - // rather than jQuery in Firefox - ( window.execScript || function( data ) { - window[ "eval" ].call( window, data ); - } )( data ); - } - }, - - // Convert dashed to camelCase; used by the css and data modules - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - }, - - // args is for internal usage only - each: function( obj, callback, args ) { - var value, - i = 0, - length = obj.length, - isArray = isArraylike( obj ); - - if ( args ) { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } - } - - return obj; - }, - - // Use native String.trim function wherever possible - trim: core_trim && !core_trim.call("\uFEFF\xA0") ? - function( text ) { - return text == null ? - "" : - core_trim.call( text ); - } : - - // Otherwise use our own trimming functionality - function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArraylike( Object(arr) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - core_push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - var len; - - if ( arr ) { - if ( core_indexOf ) { - return core_indexOf.call( arr, elem, i ); - } - - len = arr.length; - i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; - - for ( ; i < len; i++ ) { - // Skip accessing in sparse arrays - if ( i in arr && arr[ i ] === elem ) { - return i; - } - } - } - - return -1; - }, - - merge: function( first, second ) { - var l = second.length, - i = first.length, - j = 0; - - if ( typeof l === "number" ) { - for ( ; j < l; j++ ) { - first[ i++ ] = second[ j ]; - } - } else { - while ( second[j] !== undefined ) { - first[ i++ ] = second[ j++ ]; - } - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, inv ) { - var retVal, - ret = [], - i = 0, - length = elems.length; - inv = !!inv; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - retVal = !!callback( elems[ i ], i ); - if ( inv !== retVal ) { - ret.push( elems[ i ] ); - } - } - - return ret; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var value, - i = 0, - length = elems.length, - isArray = isArraylike( elems ), - ret = []; - - // Go through the array, translating each of the items to their - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - } - - // Flatten any nested arrays - return core_concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var args, proxy, tmp; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = core_slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - // Multifunctional method to get and set values of a collection - // The value/s can optionally be executed if it's a function - access: function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - length = elems.length, - bulk = key == null; - - // Sets many values - if ( jQuery.type( key ) === "object" ) { - chainable = true; - for ( i in key ) { - jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !jQuery.isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < length; i++ ) { - fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); - } - } - } - - return chainable ? - elems : - - // Gets - bulk ? - fn.call( elems ) : - length ? fn( elems[0], key ) : emptyGet; - }, - - now: function() { - return ( new Date() ).getTime(); - } -}); - -jQuery.ready.promise = function( obj ) { - if ( !readyList ) { - - readyList = jQuery.Deferred(); - - // Catch cases where $(document).ready() is called after the browser event has already occurred. - // we once tried to use readyState "interactive" here, but it caused issues like the one - // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - setTimeout( jQuery.ready ); - - // Standards-based browsers support DOMContentLoaded - } else if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed, false ); - - // If IE event model is used - } else { - // Ensure firing before onload, maybe late but safe also for iframes - document.attachEvent( "onreadystatechange", completed ); - - // A fallback to window.onload, that will always work - window.attachEvent( "onload", completed ); - - // If IE and not a frame - // continually check to see if the document is ready - var top = false; - - try { - top = window.frameElement == null && document.documentElement; - } catch(e) {} - - if ( top && top.doScroll ) { - (function doScrollCheck() { - if ( !jQuery.isReady ) { - - try { - // Use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - top.doScroll("left"); - } catch(e) { - return setTimeout( doScrollCheck, 50 ); - } - - // detach all dom ready events - detach(); - - // and execute any waiting functions - jQuery.ready(); - } - })(); - } - } - } - return readyList.promise( obj ); -}; - -// Populate the class2type map -jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -}); - -function isArraylike( obj ) { - var length = obj.length, - type = jQuery.type( obj ); - - if ( jQuery.isWindow( obj ) ) { - return false; - } - - if ( obj.nodeType === 1 && length ) { - return true; - } - - return type === "array" || type !== "function" && - ( length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj ); -} - -// All jQuery objects should point back to these -rootjQuery = jQuery(document); -// String to Object options format cache -var optionsCache = {}; - -// Convert String-formatted options into Object-formatted ones and store in cache -function createOptions( options ) { - var object = optionsCache[ options ] = {}; - jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) { - object[ flag ] = true; - }); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - ( optionsCache[ options ] || createOptions( options ) ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - // Last fire value (for non-forgettable lists) - memory, - // Flag to know if list was already fired - fired, - // End of the loop when firing - firingLength, - // Index of currently firing callback (modified by remove if needed) - firingIndex, - // First callback to fire (used internally by add and fireWith) - firingStart, - // Actual callback list - list = [], - // Stack of fire calls for repeatable lists - stack = !options.once && [], - // Fire callbacks - fire = function( data ) { - memory = options.memory && data; - fired = true; - firingIndex = firingStart || 0; - firingStart = 0; - firingLength = list.length; - firing = true; - for ( ; list && firingIndex < firingLength; firingIndex++ ) { - if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { - memory = false; // To prevent further calls using add - break; - } - } - firing = false; - if ( list ) { - if ( stack ) { - if ( stack.length ) { - fire( stack.shift() ); - } - } else if ( memory ) { - list = []; - } else { - self.disable(); - } - } - }, - // Actual Callbacks object - self = { - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - // First, we save the current length - var start = list.length; - (function add( args ) { - jQuery.each( args, function( _, arg ) { - var type = jQuery.type( arg ); - if ( type === "function" ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && type !== "string" ) { - // Inspect recursively - add( arg ); - } - }); - })( arguments ); - // Do we need to add the callbacks to the - // current firing batch? - if ( firing ) { - firingLength = list.length; - // With memory, if we're not firing then - // we should call right away - } else if ( memory ) { - firingStart = start; - fire( memory ); - } - } - return this; - }, - // Remove a callback from the list - remove: function() { - if ( list ) { - jQuery.each( arguments, function( _, arg ) { - var index; - while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - // Handle firing indexes - if ( firing ) { - if ( index <= firingLength ) { - firingLength--; - } - if ( index <= firingIndex ) { - firingIndex--; - } - } - } - }); - } - return this; - }, - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); - }, - // Remove all callbacks from the list - empty: function() { - list = []; - return this; - }, - // Have the list do nothing anymore - disable: function() { - list = stack = memory = undefined; - return this; - }, - // Is it disabled? - disabled: function() { - return !list; - }, - // Lock the list in its current state - lock: function() { - stack = undefined; - if ( !memory ) { - self.disable(); - } - return this; - }, - // Is it locked? - locked: function() { - return !stack; - }, - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - if ( list && ( !fired || stack ) ) { - if ( firing ) { - stack.push( args ); - } else { - fire( args ); - } - } - return this; - }, - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; -jQuery.extend({ - - Deferred: function( func ) { - var tuples = [ - // action, add listener, listener list, final state - [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], - [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], - [ "notify", "progress", jQuery.Callbacks("memory") ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - then: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - return jQuery.Deferred(function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - var action = tuple[ 0 ], - fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; - // deferred[ done | fail | progress ] for forwarding actions to newDefer - deferred[ tuple[1] ](function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise() - .done( newDefer.resolve ) - .fail( newDefer.reject ) - .progress( newDefer.notify ); - } else { - newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); - } - }); - }); - fns = null; - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Keep pipe for back-compat - promise.pipe = promise.then; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 3 ]; - - // promise[ done | fail | progress ] = list.add - promise[ tuple[1] ] = list.add; - - // Handle state - if ( stateString ) { - list.add(function() { - // state = [ resolved | rejected ] - state = stateString; - - // [ reject_list | resolve_list ].disable; progress_list.lock - }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); - } - - // deferred[ resolve | reject | notify ] - deferred[ tuple[0] ] = function() { - deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); - return this; - }; - deferred[ tuple[0] + "With" ] = list.fireWith; - }); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( subordinate /* , ..., subordinateN */ ) { - var i = 0, - resolveValues = core_slice.call( arguments ), - length = resolveValues.length, - - // the count of uncompleted subordinates - remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, - - // the master Deferred. If resolveValues consist of only a single Deferred, just use that. - deferred = remaining === 1 ? subordinate : jQuery.Deferred(), - - // Update function for both resolve and progress values - updateFunc = function( i, contexts, values ) { - return function( value ) { - contexts[ i ] = this; - values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; - if( values === progressValues ) { - deferred.notifyWith( contexts, values ); - } else if ( !( --remaining ) ) { - deferred.resolveWith( contexts, values ); - } - }; - }, - - progressValues, progressContexts, resolveContexts; - - // add listeners to Deferred subordinates; treat others as resolved - if ( length > 1 ) { - progressValues = new Array( length ); - progressContexts = new Array( length ); - resolveContexts = new Array( length ); - for ( ; i < length; i++ ) { - if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { - resolveValues[ i ].promise() - .done( updateFunc( i, resolveContexts, resolveValues ) ) - .fail( deferred.reject ) - .progress( updateFunc( i, progressContexts, progressValues ) ); - } else { - --remaining; - } - } - } - - // if we're not waiting on anything, resolve the master - if ( !remaining ) { - deferred.resolveWith( resolveContexts, resolveValues ); - } - - return deferred.promise(); - } -}); -jQuery.support = (function() { - - var support, all, a, - input, select, fragment, - opt, eventName, isSupported, i, - div = document.createElement("div"); - - // Setup - div.setAttribute( "className", "t" ); - div.innerHTML = "
a"; - - // Support tests won't run in some limited or non-browser environments - all = div.getElementsByTagName("*"); - a = div.getElementsByTagName("a")[ 0 ]; - if ( !all || !a || !all.length ) { - return {}; - } - - // First batch of tests - select = document.createElement("select"); - opt = select.appendChild( document.createElement("option") ); - input = div.getElementsByTagName("input")[ 0 ]; - - a.style.cssText = "top:1px;float:left;opacity:.5"; - support = { - // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) - getSetAttribute: div.className !== "t", - - // IE strips leading whitespace when .innerHTML is used - leadingWhitespace: div.firstChild.nodeType === 3, - - // Make sure that tbody elements aren't automatically inserted - // IE will insert them into empty tables - tbody: !div.getElementsByTagName("tbody").length, - - // Make sure that link elements get serialized correctly by innerHTML - // This requires a wrapper element in IE - htmlSerialize: !!div.getElementsByTagName("link").length, - - // Get the style information from getAttribute - // (IE uses .cssText instead) - style: /top/.test( a.getAttribute("style") ), - - // Make sure that URLs aren't manipulated - // (IE normalizes it by default) - hrefNormalized: a.getAttribute("href") === "/a", - - // Make sure that element opacity exists - // (IE uses filter instead) - // Use a regex to work around a WebKit issue. See #5145 - opacity: /^0.5/.test( a.style.opacity ), - - // Verify style float existence - // (IE uses styleFloat instead of cssFloat) - cssFloat: !!a.style.cssFloat, - - // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) - checkOn: !!input.value, - - // Make sure that a selected-by-default option has a working selected property. - // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) - optSelected: opt.selected, - - // Tests for enctype support on a form (#6743) - enctype: !!document.createElement("form").enctype, - - // Makes sure cloning an html5 element does not cause problems - // Where outerHTML is undefined, this still works - html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>", - - // jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode - boxModel: document.compatMode === "CSS1Compat", - - // Will be defined later - deleteExpando: true, - noCloneEvent: true, - inlineBlockNeedsLayout: false, - shrinkWrapBlocks: false, - reliableMarginRight: true, - boxSizingReliable: true, - pixelPosition: false - }; - - // Make sure checked status is properly cloned - input.checked = true; - support.noCloneChecked = input.cloneNode( true ).checked; - - // Make sure that the options inside disabled selects aren't marked as disabled - // (WebKit marks them as disabled) - select.disabled = true; - support.optDisabled = !opt.disabled; - - // Support: IE<9 - try { - delete div.test; - } catch( e ) { - support.deleteExpando = false; - } - - // Check if we can trust getAttribute("value") - input = document.createElement("input"); - input.setAttribute( "value", "" ); - support.input = input.getAttribute( "value" ) === ""; - - // Check if an input maintains its value after becoming a radio - input.value = "t"; - input.setAttribute( "type", "radio" ); - support.radioValue = input.value === "t"; - - // #11217 - WebKit loses check when the name is after the checked attribute - input.setAttribute( "checked", "t" ); - input.setAttribute( "name", "t" ); - - fragment = document.createDocumentFragment(); - fragment.appendChild( input ); - - // Check if a disconnected checkbox will retain its checked - // value of true after appended to the DOM (IE6/7) - support.appendChecked = input.checked; - - // WebKit doesn't clone checked state correctly in fragments - support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE<9 - // Opera does not clone events (and typeof div.attachEvent === undefined). - // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() - if ( div.attachEvent ) { - div.attachEvent( "onclick", function() { - support.noCloneEvent = false; - }); - - div.cloneNode( true ).click(); - } - - // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event) - // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP), test/csp.php - for ( i in { submit: true, change: true, focusin: true }) { - div.setAttribute( eventName = "on" + i, "t" ); - - support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false; - } - - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - // Run tests that need a body at doc ready - jQuery(function() { - var container, marginDiv, tds, - divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;", - body = document.getElementsByTagName("body")[0]; - - if ( !body ) { - // Return for frameset docs that don't have a body - return; - } - - container = document.createElement("div"); - container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; - - body.appendChild( container ).appendChild( div ); - - // Support: IE8 - // Check if table cells still have offsetWidth/Height when they are set - // to display:none and there are still other visible table cells in a - // table row; if so, offsetWidth/Height are not reliable for use when - // determining if an element has been hidden directly using - // display:none (it is still safe to use offsets if a parent element is - // hidden; don safety goggles and see bug #4512 for more information). - div.innerHTML = "
t
"; - tds = div.getElementsByTagName("td"); - tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; - isSupported = ( tds[ 0 ].offsetHeight === 0 ); - - tds[ 0 ].style.display = ""; - tds[ 1 ].style.display = "none"; - - // Support: IE8 - // Check if empty table cells still have offsetWidth/Height - support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); - - // Check box-sizing and margin behavior - div.innerHTML = ""; - div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; - support.boxSizing = ( div.offsetWidth === 4 ); - support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 ); - - // Use window.getComputedStyle because jsdom on node.js will break without it. - if ( window.getComputedStyle ) { - support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; - support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; - - // Check if div with explicit width and no margin-right incorrectly - // gets computed margin-right based on width of container. (#3333) - // Fails in WebKit before Feb 2011 nightlies - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - marginDiv = div.appendChild( document.createElement("div") ); - marginDiv.style.cssText = div.style.cssText = divReset; - marginDiv.style.marginRight = marginDiv.style.width = "0"; - div.style.width = "1px"; - - support.reliableMarginRight = - !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); - } - - if ( typeof div.style.zoom !== core_strundefined ) { - // Support: IE<8 - // Check if natively block-level elements act like inline-block - // elements when setting their display to 'inline' and giving - // them layout - div.innerHTML = ""; - div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; - support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); - - // Support: IE6 - // Check if elements with layout shrink-wrap their children - div.style.display = "block"; - div.innerHTML = "
"; - div.firstChild.style.width = "5px"; - support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); - - if ( support.inlineBlockNeedsLayout ) { - // Prevent IE 6 from affecting layout for positioned elements #11048 - // Prevent IE from shrinking the body in IE 7 mode #12869 - // Support: IE<8 - body.style.zoom = 1; - } - } - - body.removeChild( container ); - - // Null elements to avoid leaks in IE - container = div = tds = marginDiv = null; - }); - - // Null elements to avoid leaks in IE - all = select = fragment = opt = a = input = null; - - return support; -})(); - -var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, - rmultiDash = /([A-Z])/g; - -function internalData( elem, name, data, pvt /* Internal Use Only */ ){ - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var thisCache, ret, - internalKey = jQuery.expando, - getByName = typeof name === "string", - - // We have to handle DOM nodes and JS objects differently because IE6-7 - // can't GC object references properly across the DOM-JS boundary - isNode = elem.nodeType, - - // Only DOM nodes need the global jQuery cache; JS object data is - // attached directly to the object so GC can occur automatically - cache = isNode ? jQuery.cache : elem, - - // Only defining an ID for JS objects if its cache already exists allows - // the code to shortcut on the same path as a DOM node with no cache - id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; - - // Avoid doing any more work than we need to when trying to get data on an - // object that has no data at all - if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) { - return; - } - - if ( !id ) { - // Only DOM nodes need a new unique ID for each element since their data - // ends up in the global cache - if ( isNode ) { - elem[ internalKey ] = id = core_deletedIds.pop() || jQuery.guid++; - } else { - id = internalKey; - } - } - - if ( !cache[ id ] ) { - cache[ id ] = {}; - - // Avoids exposing jQuery metadata on plain JS objects when the object - // is serialized using JSON.stringify - if ( !isNode ) { - cache[ id ].toJSON = jQuery.noop; - } - } - - // An object can be passed to jQuery.data instead of a key/value pair; this gets - // shallow copied over onto the existing cache - if ( typeof name === "object" || typeof name === "function" ) { - if ( pvt ) { - cache[ id ] = jQuery.extend( cache[ id ], name ); - } else { - cache[ id ].data = jQuery.extend( cache[ id ].data, name ); - } - } - - thisCache = cache[ id ]; - - // jQuery data() is stored in a separate object inside the object's internal data - // cache in order to avoid key collisions between internal data and user-defined - // data. - if ( !pvt ) { - if ( !thisCache.data ) { - thisCache.data = {}; - } - - thisCache = thisCache.data; - } - - if ( data !== undefined ) { - thisCache[ jQuery.camelCase( name ) ] = data; - } - - // Check for both converted-to-camel and non-converted data property names - // If a data property was specified - if ( getByName ) { - - // First Try to find as-is property data - ret = thisCache[ name ]; - - // Test for null|undefined property data - if ( ret == null ) { - - // Try to find the camelCased property - ret = thisCache[ jQuery.camelCase( name ) ]; - } - } else { - ret = thisCache; - } - - return ret; -} - -function internalRemoveData( elem, name, pvt ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var i, l, thisCache, - isNode = elem.nodeType, - - // See jQuery.data for more information - cache = isNode ? jQuery.cache : elem, - id = isNode ? elem[ jQuery.expando ] : jQuery.expando; - - // If there is already no cache entry for this object, there is no - // purpose in continuing - if ( !cache[ id ] ) { - return; - } - - if ( name ) { - - thisCache = pvt ? cache[ id ] : cache[ id ].data; - - if ( thisCache ) { - - // Support array or space separated string names for data keys - if ( !jQuery.isArray( name ) ) { - - // try the string as a key before any manipulation - if ( name in thisCache ) { - name = [ name ]; - } else { - - // split the camel cased version by spaces unless a key with the spaces exists - name = jQuery.camelCase( name ); - if ( name in thisCache ) { - name = [ name ]; - } else { - name = name.split(" "); - } - } - } else { - // If "name" is an array of keys... - // When data is initially created, via ("key", "val") signature, - // keys will be converted to camelCase. - // Since there is no way to tell _how_ a key was added, remove - // both plain key and camelCase key. #12786 - // This will only penalize the array argument path. - name = name.concat( jQuery.map( name, jQuery.camelCase ) ); - } - - for ( i = 0, l = name.length; i < l; i++ ) { - delete thisCache[ name[i] ]; - } - - // If there is no data left in the cache, we want to continue - // and let the cache object itself get destroyed - if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { - return; - } - } - } - - // See jQuery.data for more information - if ( !pvt ) { - delete cache[ id ].data; - - // Don't destroy the parent cache unless the internal data object - // had been the only thing left in it - if ( !isEmptyDataObject( cache[ id ] ) ) { - return; - } - } - - // Destroy the cache - if ( isNode ) { - jQuery.cleanData( [ elem ], true ); - - // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) - } else if ( jQuery.support.deleteExpando || cache != cache.window ) { - delete cache[ id ]; - - // When all else fails, null - } else { - cache[ id ] = null; - } -} - -jQuery.extend({ - cache: {}, - - // Unique for each copy of jQuery on the page - // Non-digits removed to match rinlinejQuery - expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ), - - // The following elements throw uncatchable exceptions if you - // attempt to add expando properties to them. - noData: { - "embed": true, - // Ban all objects except for Flash (which handle expandos) - "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", - "applet": true - }, - - hasData: function( elem ) { - elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; - return !!elem && !isEmptyDataObject( elem ); - }, - - data: function( elem, name, data ) { - return internalData( elem, name, data ); - }, - - removeData: function( elem, name ) { - return internalRemoveData( elem, name ); - }, - - // For internal use only. - _data: function( elem, name, data ) { - return internalData( elem, name, data, true ); - }, - - _removeData: function( elem, name ) { - return internalRemoveData( elem, name, true ); - }, - - // A method for determining if a DOM node can handle the data expando - acceptData: function( elem ) { - // Do not set data on non-element because it will not be cleared (#8335). - if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) { - return false; - } - - var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; - - // nodes accept data unless otherwise specified; rejection can be conditional - return !noData || noData !== true && elem.getAttribute("classid") === noData; - } -}); - -jQuery.fn.extend({ - data: function( key, value ) { - var attrs, name, - elem = this[0], - i = 0, - data = null; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = jQuery.data( elem ); - - if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { - attrs = elem.attributes; - for ( ; i < attrs.length; i++ ) { - name = attrs[i].name; - - if ( !name.indexOf( "data-" ) ) { - name = jQuery.camelCase( name.slice(5) ); - - dataAttr( elem, name, data[ name ] ); - } - } - jQuery._data( elem, "parsedAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each(function() { - jQuery.data( this, key ); - }); - } - - return jQuery.access( this, function( value ) { - - if ( value === undefined ) { - // Try to fetch any internally stored data first - return elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null; - } - - this.each(function() { - jQuery.data( this, key, value ); - }); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each(function() { - jQuery.removeData( this, key ); - }); - } -}); - -function dataAttr( elem, key, data ) { - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - - var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); - - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - // Only convert to a number if it doesn't change the string - +data + "" === data ? +data : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch( e ) {} - - // Make sure we set the data so it isn't changed later - jQuery.data( elem, key, data ); - - } else { - data = undefined; - } - } - - return data; -} - -// checks a cache object for emptiness -function isEmptyDataObject( obj ) { - var name; - for ( name in obj ) { - - // if the public data object is empty, the private is still empty - if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { - continue; - } - if ( name !== "toJSON" ) { - return false; - } - } - - return true; -} -jQuery.extend({ - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = jQuery._data( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || jQuery.isArray(data) ) { - queue = jQuery._data( elem, type, jQuery.makeArray(data) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - hooks.cur = fn; - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // not intended for public consumption - generates a queueHooks object, or returns the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return jQuery._data( elem, key ) || jQuery._data( elem, key, { - empty: jQuery.Callbacks("once memory").add(function() { - jQuery._removeData( elem, type + "queue" ); - jQuery._removeData( elem, key ); - }) - }); - } -}); - -jQuery.fn.extend({ - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[0], type ); - } - - return data === undefined ? - this : - this.each(function() { - var queue = jQuery.queue( this, type, data ); - - // ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - // Based off of the plugin by Clint Helfers, with permission. - // http://blindsignals.com/index.php/2009/07/jquery-delay/ - delay: function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = setTimeout( next, time ); - hooks.stop = function() { - clearTimeout( timeout ); - }; - }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while( i-- ) { - tmp = jQuery._data( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -}); -var nodeHook, boolHook, - rclass = /[\t\r\n]/g, - rreturn = /\r/g, - rfocusable = /^(?:input|select|textarea|button|object)$/i, - rclickable = /^(?:a|area)$/i, - rboolean = /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i, - ruseDefault = /^(?:checked|selected)$/i, - getSetAttribute = jQuery.support.getSetAttribute, - getSetInput = jQuery.support.input; - -jQuery.fn.extend({ - attr: function( name, value ) { - return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each(function() { - jQuery.removeAttr( this, name ); - }); - }, - - prop: function( name, value ) { - return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - name = jQuery.propFix[ name ] || name; - return this.each(function() { - // try/catch handles cases where IE balks (such as removing a property on window) - try { - this[ name ] = undefined; - delete this[ name ]; - } catch( e ) {} - }); - }, - - addClass: function( value ) { - var classes, elem, cur, clazz, j, - i = 0, - len = this.length, - proceed = typeof value === "string" && value; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).addClass( value.call( this, j, this.className ) ); - }); - } - - if ( proceed ) { - // The disjunction here is for better compressibility (see removeClass) - classes = ( value || "" ).match( core_rnotwhite ) || []; - - for ( ; i < len; i++ ) { - elem = this[ i ]; - cur = elem.nodeType === 1 && ( elem.className ? - ( " " + elem.className + " " ).replace( rclass, " " ) : - " " - ); - - if ( cur ) { - j = 0; - while ( (clazz = classes[j++]) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - elem.className = jQuery.trim( cur ); - - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, clazz, j, - i = 0, - len = this.length, - proceed = arguments.length === 0 || typeof value === "string" && value; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).removeClass( value.call( this, j, this.className ) ); - }); - } - if ( proceed ) { - classes = ( value || "" ).match( core_rnotwhite ) || []; - - for ( ; i < len; i++ ) { - elem = this[ i ]; - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( elem.className ? - ( " " + elem.className + " " ).replace( rclass, " " ) : - "" - ); - - if ( cur ) { - j = 0; - while ( (clazz = classes[j++]) ) { - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - elem.className = value ? jQuery.trim( cur ) : ""; - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isBool = typeof stateVal === "boolean"; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( i ) { - jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); - }); - } - - return this.each(function() { - if ( type === "string" ) { - // toggle individual class names - var className, - i = 0, - self = jQuery( this ), - state = stateVal, - classNames = value.match( core_rnotwhite ) || []; - - while ( (className = classNames[ i++ ]) ) { - // check each className given, space separated list - state = isBool ? state : !self.hasClass( className ); - self[ state ? "addClass" : "removeClass" ]( className ); - } - - // Toggle whole class name - } else if ( type === core_strundefined || type === "boolean" ) { - if ( this.className ) { - // store className if set - jQuery._data( this, "__className__", this.className ); - } - - // If the element has a class name or if we're passed "false", - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; - } - }); - }, - - hasClass: function( selector ) { - var className = " " + selector + " ", - i = 0, - l = this.length; - for ( ; i < l; i++ ) { - if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { - return true; - } - } - - return false; - }, - - val: function( value ) { - var ret, hooks, isFunction, - elem = this[0]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { - return ret; - } - - ret = elem.value; - - return typeof ret === "string" ? - // handle most common string cases - ret.replace(rreturn, "") : - // handle cases where value is null/undef or number - ret == null ? "" : ret; - } - - return; - } - - isFunction = jQuery.isFunction( value ); - - return this.each(function( i ) { - var val, - self = jQuery(this); - - if ( this.nodeType !== 1 ) { - return; - } - - if ( isFunction ) { - val = value.call( this, i, self.val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - } else if ( typeof val === "number" ) { - val += ""; - } else if ( jQuery.isArray( val ) ) { - val = jQuery.map(val, function ( value ) { - return value == null ? "" : value + ""; - }); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - }); - } -}); - -jQuery.extend({ - valHooks: { - option: { - get: function( elem ) { - // attributes.value is undefined in Blackberry 4.7 but - // uses .value. See #6932 - var val = elem.attributes.value; - return !val || val.specified ? elem.value : elem.text; - } - }, - select: { - get: function( elem ) { - var value, option, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one" || index < 0, - values = one ? null : [], - max = one ? index + 1 : options.length, - i = index < 0 ? - max : - one ? index : 0; - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // oldIE doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - // Don't return options that are disabled or in a disabled optgroup - ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && - ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var values = jQuery.makeArray( value ); - - jQuery(elem).find("option").each(function() { - this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; - }); - - if ( !values.length ) { - elem.selectedIndex = -1; - } - return values; - } - } - }, - - attr: function( elem, name, value ) { - var hooks, notxml, ret, - nType = elem.nodeType; - - // don't get/set attributes on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === core_strundefined ) { - return jQuery.prop( elem, name, value ); - } - - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - // All attributes are lowercase - // Grab necessary hook if one is defined - if ( notxml ) { - name = name.toLowerCase(); - hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); - } - - if ( value !== undefined ) { - - if ( value === null ) { - jQuery.removeAttr( elem, name ); - - } else if ( hooks && notxml && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - elem.setAttribute( name, value + "" ); - return value; - } - - } else if ( hooks && notxml && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { - return ret; - - } else { - - // In IE9+, Flash objects don't have .getAttribute (#12945) - // Support: IE9+ - if ( typeof elem.getAttribute !== core_strundefined ) { - ret = elem.getAttribute( name ); - } - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? - undefined : - ret; - } - }, - - removeAttr: function( elem, value ) { - var name, propName, - i = 0, - attrNames = value && value.match( core_rnotwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( (name = attrNames[i++]) ) { - propName = jQuery.propFix[ name ] || name; - - // Boolean attributes get special treatment (#10870) - if ( rboolean.test( name ) ) { - // Set corresponding property to false for boolean attributes - // Also clear defaultChecked/defaultSelected (if appropriate) for IE<8 - if ( !getSetAttribute && ruseDefault.test( name ) ) { - elem[ jQuery.camelCase( "default-" + name ) ] = - elem[ propName ] = false; - } else { - elem[ propName ] = false; - } - - // See #9699 for explanation of this approach (setting first, then removal) - } else { - jQuery.attr( elem, name, "" ); - } - - elem.removeAttribute( getSetAttribute ? name : propName ); - } - } - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { - // Setting the type on a radio button after the value resets the value in IE6-9 - // Reset value to default in case type is set after value during creation - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - propFix: { - tabindex: "tabIndex", - readonly: "readOnly", - "for": "htmlFor", - "class": "className", - maxlength: "maxLength", - cellspacing: "cellSpacing", - cellpadding: "cellPadding", - rowspan: "rowSpan", - colspan: "colSpan", - usemap: "useMap", - frameborder: "frameBorder", - contenteditable: "contentEditable" - }, - - prop: function( elem, name, value ) { - var ret, hooks, notxml, - nType = elem.nodeType; - - // don't get/set properties on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - if ( notxml ) { - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - return ( elem[ name ] = value ); - } - - } else { - if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { - return ret; - - } else { - return elem[ name ]; - } - } - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set - // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - var attributeNode = elem.getAttributeNode("tabindex"); - - return attributeNode && attributeNode.specified ? - parseInt( attributeNode.value, 10 ) : - rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? - 0 : - undefined; - } - } - } -}); - -// Hook for boolean attributes -boolHook = { - get: function( elem, name ) { - var - // Use .prop to determine if this attribute is understood as boolean - prop = jQuery.prop( elem, name ), - - // Fetch it accordingly - attr = typeof prop === "boolean" && elem.getAttribute( name ), - detail = typeof prop === "boolean" ? - - getSetInput && getSetAttribute ? - attr != null : - // oldIE fabricates an empty string for missing boolean attributes - // and conflates checked/selected into attroperties - ruseDefault.test( name ) ? - elem[ jQuery.camelCase( "default-" + name ) ] : - !!attr : - - // fetch an attribute node for properties not recognized as boolean - elem.getAttributeNode( name ); - - return detail && detail.value !== false ? - name.toLowerCase() : - undefined; - }, - set: function( elem, value, name ) { - if ( value === false ) { - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { - // IE<8 needs the *property* name - elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); - - // Use defaultChecked and defaultSelected for oldIE - } else { - elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; - } - - return name; - } -}; - -// fix oldIE value attroperty -if ( !getSetInput || !getSetAttribute ) { - jQuery.attrHooks.value = { - get: function( elem, name ) { - var ret = elem.getAttributeNode( name ); - return jQuery.nodeName( elem, "input" ) ? - - // Ignore the value *property* by using defaultValue - elem.defaultValue : - - ret && ret.specified ? ret.value : undefined; - }, - set: function( elem, value, name ) { - if ( jQuery.nodeName( elem, "input" ) ) { - // Does not return so that setAttribute is also used - elem.defaultValue = value; - } else { - // Use nodeHook if defined (#1954); otherwise setAttribute is fine - return nodeHook && nodeHook.set( elem, value, name ); - } - } - }; -} - -// IE6/7 do not support getting/setting some attributes with get/setAttribute -if ( !getSetAttribute ) { - - // Use this for any attribute in IE6/7 - // This fixes almost every IE6/7 issue - nodeHook = jQuery.valHooks.button = { - get: function( elem, name ) { - var ret = elem.getAttributeNode( name ); - return ret && ( name === "id" || name === "name" || name === "coords" ? ret.value !== "" : ret.specified ) ? - ret.value : - undefined; - }, - set: function( elem, value, name ) { - // Set the existing or create a new attribute node - var ret = elem.getAttributeNode( name ); - if ( !ret ) { - elem.setAttributeNode( - (ret = elem.ownerDocument.createAttribute( name )) - ); - } - - ret.value = value += ""; - - // Break association with cloned elements by also using setAttribute (#9646) - return name === "value" || value === elem.getAttribute( name ) ? - value : - undefined; - } - }; - - // Set contenteditable to false on removals(#10429) - // Setting to empty string throws an error as an invalid value - jQuery.attrHooks.contenteditable = { - get: nodeHook.get, - set: function( elem, value, name ) { - nodeHook.set( elem, value === "" ? false : value, name ); - } - }; - - // Set width and height to auto instead of 0 on empty string( Bug #8150 ) - // This is for removals - jQuery.each([ "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - set: function( elem, value ) { - if ( value === "" ) { - elem.setAttribute( name, "auto" ); - return value; - } - } - }); - }); -} - - -// Some attributes require a special call on IE -// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !jQuery.support.hrefNormalized ) { - jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - get: function( elem ) { - var ret = elem.getAttribute( name, 2 ); - return ret == null ? undefined : ret; - } - }); - }); - - // href/src property should get the full normalized URL (#10299/#12915) - jQuery.each([ "href", "src" ], function( i, name ) { - jQuery.propHooks[ name ] = { - get: function( elem ) { - return elem.getAttribute( name, 4 ); - } - }; - }); -} - -if ( !jQuery.support.style ) { - jQuery.attrHooks.style = { - get: function( elem ) { - // Return undefined in the case of empty string - // Note: IE uppercases css property names, but if we were to .toLowerCase() - // .cssText, that would destroy case senstitivity in URL's, like in "background" - return elem.style.cssText || undefined; - }, - set: function( elem, value ) { - return ( elem.style.cssText = value + "" ); - } - }; -} - -// Safari mis-reports the default selected property of an option -// Accessing the parent's selectedIndex property fixes it -if ( !jQuery.support.optSelected ) { - jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { - get: function( elem ) { - var parent = elem.parentNode; - - if ( parent ) { - parent.selectedIndex; - - // Make sure that it also works with optgroups, see #5701 - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - return null; - } - }); -} - -// IE6/7 call enctype encoding -if ( !jQuery.support.enctype ) { - jQuery.propFix.enctype = "encoding"; -} - -// Radios and checkboxes getter/setter -if ( !jQuery.support.checkOn ) { - jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - get: function( elem ) { - // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified - return elem.getAttribute("value") === null ? "on" : elem.value; - } - }; - }); -} -jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { - set: function( elem, value ) { - if ( jQuery.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); - } - } - }); -}); -var rformElems = /^(?:input|select|textarea)$/i, - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|contextmenu)|click/, - rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - var tmp, events, t, handleObjIn, - special, eventHandle, handleObj, - handlers, type, namespaces, origType, - elemData = jQuery._data( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !(events = elemData.events) ) { - events = elemData.events = {}; - } - if ( !(eventHandle = elemData.handle) ) { - eventHandle = elemData.handle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ? - jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : - undefined; - }; - // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events - eventHandle.elem = elem; - } - - // Handle multiple events separated by a space - // jQuery(...).bind("mouseover mouseout", fn); - types = ( types || "" ).match( core_rnotwhite ) || [""]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend({ - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join(".") - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !(handlers = events[ type ]) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener/attachEvent if the special events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - // Bind the global event handler to the element - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - // Nullify elem to prevent memory leaks in IE - elem = null; - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - var j, handleObj, tmp, - origCount, t, events, - special, handlers, type, - namespaces, origType, - elemData = jQuery.hasData( elem ) && jQuery._data( elem ); - - if ( !elemData || !(events = elemData.events) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( core_rnotwhite ) || [""]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - delete elemData.handle; - - // removeData also checks for emptiness and clears the expando if empty - // so use it instead of delete - jQuery._removeData( elem, "events" ); - } - }, - - trigger: function( event, data, elem, onlyHandlers ) { - var handle, ontype, cur, - bubbleType, special, tmp, i, - eventPath = [ elem || document ], - type = core_hasOwn.call( event, "type" ) ? event.type : event, - namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; - - cur = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf(".") >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf(":") < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - event.isTrigger = true; - event.namespace = namespaces.join("."); - event.namespace_re = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === (elem.ownerDocument || document) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { - - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { - event.preventDefault(); - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && - !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Can't use an .isFunction() check here because IE6/7 fails that test. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - try { - elem[ type ](); - } catch ( e ) { - // IE<9 dies on focus/blur to hidden element (#1486,#12518) - // only reproducible on winXP IE8 native, not IE9 in IE8 mode - } - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - dispatch: function( event ) { - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( event ); - - var i, ret, handleObj, matched, j, - handlerQueue = [], - args = core_slice.call( arguments ), - handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[0] = event; - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { - - // Triggered event must either 1) have no namespace, or - // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). - if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) - .apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( (event.result = ret) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var sel, handleObj, matches, i, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - // Black-hole SVG instance trees (#13180) - // Avoid non-left-click bubbling in Firefox (#3861) - if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { - - for ( ; cur != this; cur = cur.parentNode || this ) { - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { - matches = []; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matches[ sel ] === undefined ) { - matches[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) >= 0 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matches[ sel ] ) { - matches.push( handleObj ); - } - } - if ( matches.length ) { - handlerQueue.push({ elem: cur, handlers: matches }); - } - } - } - } - - // Add the remaining (directly-bound) handlers - if ( delegateCount < handlers.length ) { - handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); - } - - return handlerQueue; - }, - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // Create a writable copy of the event object and normalize some properties - var i, prop, copy, - type = event.type, - originalEvent = event, - fixHook = this.fixHooks[ type ]; - - if ( !fixHook ) { - this.fixHooks[ type ] = fixHook = - rmouseEvent.test( type ) ? this.mouseHooks : - rkeyEvent.test( type ) ? this.keyHooks : - {}; - } - copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; - - event = new jQuery.Event( originalEvent ); - - i = copy.length; - while ( i-- ) { - prop = copy[ i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Support: IE<9 - // Fix target property (#1925) - if ( !event.target ) { - event.target = originalEvent.srcElement || document; - } - - // Support: Chrome 23+, Safari? - // Target should not be a text node (#504, #13143) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - // Support: IE<9 - // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) - event.metaKey = !!event.metaKey; - - return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; - }, - - // Includes some event props shared by KeyEvent and MouseEvent - props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), - - fixHooks: {}, - - keyHooks: { - props: "char charCode key keyCode".split(" "), - filter: function( event, original ) { - - // Add which for key events - if ( event.which == null ) { - event.which = original.charCode != null ? original.charCode : original.keyCode; - } - - return event; - } - }, - - mouseHooks: { - props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), - filter: function( event, original ) { - var body, eventDoc, doc, - button = original.button, - fromElement = original.fromElement; - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && original.clientX != null ) { - eventDoc = event.target.ownerDocument || document; - doc = eventDoc.documentElement; - body = eventDoc.body; - - event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); - event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); - } - - // Add relatedTarget, if necessary - if ( !event.relatedTarget && fromElement ) { - event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && button !== undefined ) { - event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); - } - - return event; - } - }, - - special: { - load: { - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - click: { - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { - this.click(); - return false; - } - } - }, - focus: { - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== document.activeElement && this.focus ) { - try { - this.focus(); - return false; - } catch ( e ) { - // Support: IE<9 - // If we error on focus to hidden element (#1486, #12518), - // let .trigger() run the handlers - } - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === document.activeElement && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - - beforeunload: { - postDispatch: function( event ) { - - // Even when returnValue equals to undefined Firefox will still show alert - if ( event.result !== undefined ) { - event.originalEvent.returnValue = event.result; - } - } - } - }, - - simulate: function( type, elem, event, bubble ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - var e = jQuery.extend( - new jQuery.Event(), - event, - { type: type, - isSimulated: true, - originalEvent: {} - } - ); - if ( bubble ) { - jQuery.event.trigger( e, null, elem ); - } else { - jQuery.event.dispatch.call( elem, e ); - } - if ( e.isDefaultPrevented() ) { - event.preventDefault(); - } - } -}; - -jQuery.removeEvent = document.removeEventListener ? - function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } - } : - function( elem, type, handle ) { - var name = "on" + type; - - if ( elem.detachEvent ) { - - // #8545, #7054, preventing memory leaks for custom events in IE6-8 - // detachEvent needed property on element, by name of that event, to properly expose it to GC - if ( typeof elem[ name ] === core_strundefined ) { - elem[ name ] = null; - } - - elem.detachEvent( name, handle ); - } - }; - -jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !(this instanceof jQuery.Event) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || - src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - if ( !e ) { - return; - } - - // If preventDefault exists, run it on the original event - if ( e.preventDefault ) { - e.preventDefault(); - - // Support: IE - // Otherwise set the returnValue property of the original event to false - } else { - e.returnValue = false; - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - if ( !e ) { - return; - } - // If stopPropagation exists, run it on the original event - if ( e.stopPropagation ) { - e.stopPropagation(); - } - - // Support: IE - // Set the cancelBubble property of the original event to true - e.cancelBubble = true; - }, - stopImmediatePropagation: function() { - this.isImmediatePropagationStopped = returnTrue; - this.stopPropagation(); - } -}; - -// Create mouseenter/leave events using mouseover/out and event-time checks -jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mousenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || (related !== target && !jQuery.contains( target, related )) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -}); - -// IE submit delegation -if ( !jQuery.support.submitBubbles ) { - - jQuery.event.special.submit = { - setup: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Lazy-add a submit handler when a descendant form may potentially be submitted - jQuery.event.add( this, "click._submit keypress._submit", function( e ) { - // Node name check avoids a VML-related crash in IE (#9807) - var elem = e.target, - form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; - if ( form && !jQuery._data( form, "submitBubbles" ) ) { - jQuery.event.add( form, "submit._submit", function( event ) { - event._submit_bubble = true; - }); - jQuery._data( form, "submitBubbles", true ); - } - }); - // return undefined since we don't need an event listener - }, - - postDispatch: function( event ) { - // If form was submitted by the user, bubble the event up the tree - if ( event._submit_bubble ) { - delete event._submit_bubble; - if ( this.parentNode && !event.isTrigger ) { - jQuery.event.simulate( "submit", this.parentNode, event, true ); - } - } - }, - - teardown: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Remove delegated handlers; cleanData eventually reaps submit handlers attached above - jQuery.event.remove( this, "._submit" ); - } - }; -} - -// IE change delegation and checkbox/radio fix -if ( !jQuery.support.changeBubbles ) { - - jQuery.event.special.change = { - - setup: function() { - - if ( rformElems.test( this.nodeName ) ) { - // IE doesn't fire change on a check/radio until blur; trigger it on click - // after a propertychange. Eat the blur-change in special.change.handle. - // This still fires onchange a second time for check/radio after blur. - if ( this.type === "checkbox" || this.type === "radio" ) { - jQuery.event.add( this, "propertychange._change", function( event ) { - if ( event.originalEvent.propertyName === "checked" ) { - this._just_changed = true; - } - }); - jQuery.event.add( this, "click._change", function( event ) { - if ( this._just_changed && !event.isTrigger ) { - this._just_changed = false; - } - // Allow triggered, simulated change events (#11500) - jQuery.event.simulate( "change", this, event, true ); - }); - } - return false; - } - // Delegated event; lazy-add a change handler on descendant inputs - jQuery.event.add( this, "beforeactivate._change", function( e ) { - var elem = e.target; - - if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { - jQuery.event.add( elem, "change._change", function( event ) { - if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { - jQuery.event.simulate( "change", this.parentNode, event, true ); - } - }); - jQuery._data( elem, "changeBubbles", true ); - } - }); - }, - - handle: function( event ) { - var elem = event.target; - - // Swallow native change events from checkbox/radio, we already triggered them above - if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { - return event.handleObj.handler.apply( this, arguments ); - } - }, - - teardown: function() { - jQuery.event.remove( this, "._change" ); - - return !rformElems.test( this.nodeName ); - } - }; -} - -// Create "bubbling" focus and blur events -if ( !jQuery.support.focusinBubbles ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler while someone wants focusin/focusout - var attaches = 0, - handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - if ( attaches++ === 0 ) { - document.addEventListener( orig, handler, true ); - } - }, - teardown: function() { - if ( --attaches === 0 ) { - document.removeEventListener( orig, handler, true ); - } - } - }; - }); -} - -jQuery.fn.extend({ - - on: function( types, selector, data, fn, /*INTERNAL*/ one ) { - var type, origFn; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - this.on( type, selector, data, types[ type ], one ); - } - return this; - } - - if ( data == null && fn == null ) { - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return this; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return this.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - }); - }, - one: function( types, selector, data, fn ) { - return this.on( types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each(function() { - jQuery.event.remove( this, types, fn, selector ); - }); - }, - - bind: function( types, data, fn ) { - return this.on( types, null, data, fn ); - }, - unbind: function( types, fn ) { - return this.off( types, null, fn ); - }, - - delegate: function( selector, types, data, fn ) { - return this.on( types, selector, data, fn ); - }, - undelegate: function( selector, types, fn ) { - // ( namespace ) or ( selector, types [, fn] ) - return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - triggerHandler: function( type, data ) { - var elem = this[0]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -}); -/*! - * Sizzle CSS Selector Engine - * Copyright 2012 jQuery Foundation and other contributors - * Released under the MIT license - * http://sizzlejs.com/ - */ -(function( window, undefined ) { - -var i, - cachedruns, - Expr, - getText, - isXML, - compile, - hasDuplicate, - outermostContext, - - // Local document vars - setDocument, - document, - docElem, - documentIsXML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - sortOrder, - - // Instance-specific data - expando = "sizzle" + -(new Date()), - preferredDoc = window.document, - support = {}, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - - // General-purpose constants - strundefined = typeof undefined, - MAX_NEGATIVE = 1 << 31, - - // Array methods - arr = [], - pop = arr.pop, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf if we can't use a native one - indexOf = arr.indexOf || function( elem ) { - var i = 0, - len = this.length; - for ( ; i < len; i++ ) { - if ( this[i] === elem ) { - return i; - } - } - return -1; - }, - - - // Regular expressions - - // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/css3-syntax/#characters - characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", - - // Loosely modeled on CSS identifier characters - // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors - // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = characterEncoding.replace( "w", "w#" ), - - // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors - operators = "([*^$|!~]?=)", - attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + - "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", - - // Prefer arguments quoted, - // then not containing pseudos/brackets, - // then attribute selectors/non-parenthetical expressions, - // then anything else - // These preferences are here to reduce the number of selectors - // needing tokenize in the PSEUDO preFilter - pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ), - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + characterEncoding + ")" ), - "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), - "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ), - "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rsibling = /[\x20\t\r\n\f]*[+~]/, - - rnative = /^[^{]+\{\s*\[native code/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rescape = /'|\\/g, - rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, - - // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g, - funescape = function( _, escaped ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - return high !== high ? - escaped : - // BMP codepoint - high < 0 ? - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }; - -// Use a stripped-down slice if we can't use a native one -try { - slice.call( preferredDoc.documentElement.childNodes, 0 )[0].nodeType; -} catch ( e ) { - slice = function( i ) { - var elem, - results = []; - while ( (elem = this[i++]) ) { - results.push( elem ); - } - return results; - }; -} - -/** - * For feature detection - * @param {Function} fn The function to test for native support - */ -function isNative( fn ) { - return rnative.test( fn + "" ); -} - -/** - * Create key-value caches of limited size - * @returns {Function(string, Object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var cache, - keys = []; - - return (cache = function( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key += " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key ] = value); - }); -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created div and expects a boolean result - */ -function assert( fn ) { - var div = document.createElement("div"); - - try { - return fn( div ); - } catch (e) { - return false; - } finally { - // release memory in IE - div = null; - } -} - -function Sizzle( selector, context, results, seed ) { - var match, elem, m, nodeType, - // QSA vars - i, groups, old, nid, newContext, newSelector; - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - - context = context || document; - results = results || []; - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { - return []; - } - - if ( !documentIsXML && !seed ) { - - // Shortcuts - if ( (match = rquickExpr.exec( selector )) ) { - // Speed-up: Sizzle("#ID") - if ( (m = match[1]) ) { - if ( nodeType === 9 ) { - elem = context.getElementById( m ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE, Opera, and Webkit return items - // by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - } else { - // Context is not a document - if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && - contains( context, elem ) && elem.id === m ) { - results.push( elem ); - return results; - } - } - - // Speed-up: Sizzle("TAG") - } else if ( match[2] ) { - push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) ); - return results; - - // Speed-up: Sizzle(".CLASS") - } else if ( (m = match[3]) && support.getByClassName && context.getElementsByClassName ) { - push.apply( results, slice.call(context.getElementsByClassName( m ), 0) ); - return results; - } - } - - // QSA path - if ( support.qsa && !rbuggyQSA.test(selector) ) { - old = true; - nid = expando; - newContext = context; - newSelector = nodeType === 9 && selector; - - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - groups = tokenize( selector ); - - if ( (old = context.getAttribute("id")) ) { - nid = old.replace( rescape, "\\$&" ); - } else { - context.setAttribute( "id", nid ); - } - nid = "[id='" + nid + "'] "; - - i = groups.length; - while ( i-- ) { - groups[i] = nid + toSelector( groups[i] ); - } - newContext = rsibling.test( selector ) && context.parentNode || context; - newSelector = groups.join(","); - } - - if ( newSelector ) { - try { - push.apply( results, slice.call( newContext.querySelectorAll( - newSelector - ), 0 ) ); - return results; - } catch(qsaError) { - } finally { - if ( !old ) { - context.removeAttribute("id"); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Detect xml - * @param {Element|Object} elem An element or a document - */ -isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var doc = node ? node.ownerDocument || node : preferredDoc; - - // If no document and documentElement is available, return - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Set our document - document = doc; - docElem = doc.documentElement; - - // Support tests - documentIsXML = isXML( doc ); - - // Check if getElementsByTagName("*") returns only elements - support.tagNameNoComments = assert(function( div ) { - div.appendChild( doc.createComment("") ); - return !div.getElementsByTagName("*").length; - }); - - // Check if attributes should be retrieved by attribute nodes - support.attributes = assert(function( div ) { - div.innerHTML = ""; - var type = typeof div.lastChild.getAttribute("multiple"); - // IE8 returns a string for some attributes even when not present - return type !== "boolean" && type !== "string"; - }); - - // Check if getElementsByClassName can be trusted - support.getByClassName = assert(function( div ) { - // Opera can't find a second classname (in 9.6) - div.innerHTML = ""; - if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) { - return false; - } - - // Safari 3.2 caches class attributes and doesn't catch changes - div.lastChild.className = "e"; - return div.getElementsByClassName("e").length === 2; - }); - - // Check if getElementById returns elements by name - // Check if getElementsByName privileges form controls or returns elements by ID - support.getByName = assert(function( div ) { - // Inject content - div.id = expando + 0; - div.innerHTML = "
"; - docElem.insertBefore( div, docElem.firstChild ); - - // Test - var pass = doc.getElementsByName && - // buggy browsers will return fewer than the correct 2 - doc.getElementsByName( expando ).length === 2 + - // buggy browsers will return more than the correct 0 - doc.getElementsByName( expando + 0 ).length; - support.getIdNotName = !doc.getElementById( expando ); - - // Cleanup - docElem.removeChild( div ); - - return pass; - }); - - // IE6/7 return modified attributes - Expr.attrHandle = assert(function( div ) { - div.innerHTML = ""; - return div.firstChild && typeof div.firstChild.getAttribute !== strundefined && - div.firstChild.getAttribute("href") === "#"; - }) ? - {} : - { - "href": function( elem ) { - return elem.getAttribute( "href", 2 ); - }, - "type": function( elem ) { - return elem.getAttribute("type"); - } - }; - - // ID find and filter - if ( support.getIdNotName ) { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && !documentIsXML ) { - var m = context.getElementById( id ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [m] : []; - } - }; - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - } else { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && !documentIsXML ) { - var m = context.getElementById( id ); - - return m ? - m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? - [m] : - undefined : - []; - } - }; - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - } - - // Tag - Expr.find["TAG"] = support.tagNameNoComments ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== strundefined ) { - return context.getElementsByTagName( tag ); - } - } : - function( tag, context ) { - var elem, - tmp = [], - i = 0, - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Name - Expr.find["NAME"] = support.getByName && function( tag, context ) { - if ( typeof context.getElementsByName !== strundefined ) { - return context.getElementsByName( name ); - } - }; - - // Class - Expr.find["CLASS"] = support.getByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== strundefined && !documentIsXML ) { - return context.getElementsByClassName( className ); - } - }; - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21), - // no need to also add to buggyMatches since matches checks buggyQSA - // A support test would require too much code (would include document ready) - rbuggyQSA = [ ":focus" ]; - - if ( (support.qsa = isNative(doc.querySelectorAll)) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( div ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explictly - // setting a boolean content attribute, - // since its presence should be enough - // http://bugs.jquery.com/ticket/12359 - div.innerHTML = ""; - - // IE8 - Some boolean attributes are not treated correctly - if ( !div.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" ); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - }); - - assert(function( div ) { - - // Opera 10-12/IE8 - ^= $= *= and empty values - // Should not select anything - div.innerHTML = ""; - if ( div.querySelectorAll("[i^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":enabled").length ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - div.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = isNative( (matches = docElem.matchesSelector || - docElem.mozMatchesSelector || - docElem.webkitMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( div ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( div, "div" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( div, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = new RegExp( rbuggyMatches.join("|") ); - - // Element contains another - // Purposefully does not implement inclusive descendent - // As in, an element does not contain itself - contains = isNative(docElem.contains) || docElem.compareDocumentPosition ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - // Document order sorting - sortOrder = docElem.compareDocumentPosition ? - function( a, b ) { - var compare; - - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - if ( (compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b )) ) { - if ( compare & 1 || a.parentNode && a.parentNode.nodeType === 11 ) { - if ( a === doc || contains( preferredDoc, a ) ) { - return -1; - } - if ( b === doc || contains( preferredDoc, b ) ) { - return 1; - } - return 0; - } - return compare & 4 ? -1 : 1; - } - - return a.compareDocumentPosition ? -1 : 1; - } : - function( a, b ) { - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - - // Parentless nodes are either documents or disconnected - } else if ( !aup || !bup ) { - return a === doc ? -1 : - b === doc ? 1 : - aup ? -1 : - bup ? 1 : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - // Always assume the presence of duplicates if sort doesn't - // pass them to our comparison function (as in Google Chrome). - hasDuplicate = false; - [0, 0].sort( sortOrder ); - support.detectDuplicates = hasDuplicate; - - return document; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - // rbuggyQSA always contains :focus, so no need for an existence check - if ( support.matchesSelector && !documentIsXML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && !rbuggyQSA.test(expr) ) { - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch(e) {} - } - - return Sizzle( expr, document, null, [elem] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - var val; - - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - if ( !documentIsXML ) { - name = name.toLowerCase(); - } - if ( (val = Expr.attrHandle[ name ]) ) { - return val( elem ); - } - if ( documentIsXML || support.attributes ) { - return elem.getAttribute( name ); - } - return ( (val = elem.getAttributeNode( name )) || elem.getAttribute( name ) ) && elem[ name ] === true ? - name : - val && val.specified ? val.value : null; -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -// Document sorting and removing duplicates -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - i = 1, - j = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - results.sort( sortOrder ); - - if ( hasDuplicate ) { - for ( ; (elem = results[i]); i++ ) { - if ( elem === results[ i - 1 ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - return results; -}; - -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && ( ~b.sourceIndex || MAX_NEGATIVE ) - ( ~a.sourceIndex || MAX_NEGATIVE ); - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -// Returns a function to use in pseudos for input types -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -// Returns a function to use in pseudos for buttons -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -// Returns a function to use in pseudos for positionals -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - for ( ; (node = elem[i]); i++ ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (see #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[5] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[4] ) { - match[2] = match[4]; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeName ) { - if ( nodeName === "*" ) { - return function() { return true; }; - } - - nodeName = nodeName.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, outerCache, node, diff, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - // Seek `elem` from a previously-cached index - outerCache = parent[ expando ] || (parent[ expando ] = {}); - cache = outerCache[ type ] || []; - nodeIndex = cache[0] === dirruns && cache[1]; - diff = cache[0] === dirruns && cache[2]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - outerCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - // Use previously-cached element index if available - } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { - diff = cache[1]; - - // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) - } else { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { - // Cache the index of each encountered element - if ( useCache ) { - (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf.call( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifider - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsXML ? - elem.getAttribute("xml:lang") || elem.getAttribute("lang") : - elem.lang) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": function( elem ) { - return elem.disabled === false; - }, - - "disabled": function( elem ) { - return elem.disabled === true; - }, - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), - // not comment, processing instructions, or others - // Thanks to Diego Perini for the nodeName shortcut - // Greater than "@" means alpha characters (specifically not starting with "#" or "?") - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) - // use getAttribute instead to test this case - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } -}; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -function tokenize( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( tokens = [] ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push( { - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - } ); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push( { - value: matched, - type: type, - matches: match - } ); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -} - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - checkNonElements = base && dir === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var data, cache, outerCache, - dirkey = dirruns + " " + doneName; - - // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { - if ( (data = cache[1]) === true || data === cachedruns ) { - return data === true; - } - } else { - cache = outerCache[ dir ] = [ dirkey ]; - cache[1] = matcher( elem, context, xml ) || cachedruns; - if ( cache[1] === true ) { - return true; - } - } - } - } - } - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf.call( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( tokens.slice( 0, i - 1 ) ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - // A counter to specify which element is currently being matched - var matcherCachedRuns = 0, - bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, expandContext ) { - var elem, j, matcher, - setMatched = [], - matchedCount = 0, - i = "0", - unmatched = seed && [], - outermost = expandContext != null, - contextBackup = outermostContext, - // We must always have either seed elements or context - elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); - - if ( outermost ) { - outermostContext = context !== document && context; - cachedruns = matcherCachedRuns; - } - - // Add elements passing elementMatchers directly to results - // Keep `i` a string if there are no elements so `matchedCount` will be "00" below - for ( ; (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - cachedruns = ++matcherCachedRuns; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // Apply set filters to unmatched elements - matchedCount += i; - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !group ) { - group = tokenize( selector ); - } - i = group.length; - while ( i-- ) { - cached = matcherFromTokens( group[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - } - return cached; -}; - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function select( selector, context, results, seed ) { - var i, tokens, token, type, find, - match = tokenize( selector ); - - if ( !seed ) { - // Try to minimize operations if there is only one group - if ( match.length === 1 ) { - - // Take a shortcut and set the context if the root selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && !documentIsXML && - Expr.relative[ tokens[1].type ] ) { - - context = Expr.find["ID"]( token.matches[0].replace( runescape, funescape ), context )[0]; - if ( !context ) { - return results; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && context.parentNode || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, slice.call( seed, 0 ) ); - return results; - } - - break; - } - } - } - } - } - - // Compile and execute a filtering function - // Provide `match` to avoid retokenization if we modified the selector above - compile( selector, match )( - seed, - context, - documentIsXML, - results, - rsibling.test( selector ) - ); - return results; -} - -// Deprecated -Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Easy API for creating new setFilters -function setFilters() {} -Expr.filters = setFilters.prototype = Expr.pseudos; -Expr.setFilters = new setFilters(); - -// Initialize with the default document -setDocument(); - -// Override sizzle attribute retrieval -Sizzle.attr = jQuery.attr; -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.pseudos; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; - - -})( window ); -var runtil = /Until$/, - rparentsprev = /^(?:parents|prev(?:Until|All))/, - isSimple = /^.[^:#\[\.,]*$/, - rneedsContext = jQuery.expr.match.needsContext, - // methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend({ - find: function( selector ) { - var i, ret, self, - len = this.length; - - if ( typeof selector !== "string" ) { - self = this; - return this.pushStack( jQuery( selector ).filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }) ); - } - - ret = []; - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, this[ i ], ret ); - } - - // Needed because $( selector, context ) becomes $( context ).find( selector ) - ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); - ret.selector = ( this.selector ? this.selector + " " : "" ) + selector; - return ret; - }, - - has: function( target ) { - var i, - targets = jQuery( target, this ), - len = targets.length; - - return this.filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - not: function( selector ) { - return this.pushStack( winnow(this, selector, false) ); - }, - - filter: function( selector ) { - return this.pushStack( winnow(this, selector, true) ); - }, - - is: function( selector ) { - return !!selector && ( - typeof selector === "string" ? - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - rneedsContext.test( selector ) ? - jQuery( selector, this.context ).index( this[0] ) >= 0 : - jQuery.filter( selector, this ).length > 0 : - this.filter( selector ).length > 0 ); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - ret = [], - pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( ; i < l; i++ ) { - cur = this[i]; - - while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) { - if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { - ret.push( cur ); - break; - } - cur = cur.parentNode; - } - } - - return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret ); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; - } - - // index in selector - if ( typeof elem === "string" ) { - return jQuery.inArray( this[0], jQuery( elem ) ); - } - - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[0] : elem, this ); - }, - - add: function( selector, context ) { - var set = typeof selector === "string" ? - jQuery( selector, context ) : - jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), - all = jQuery.merge( this.get(), set ); - - return this.pushStack( jQuery.unique(all) ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter(selector) - ); - } -}); - -jQuery.fn.andSelf = jQuery.fn.addBack; - -function sibling( cur, dir ) { - do { - cur = cur[ dir ]; - } while ( cur && cur.nodeType !== 1 ); - - return cur; -} - -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return jQuery.nodeName( elem, "iframe" ) ? - elem.contentDocument || elem.contentWindow.document : - jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var ret = jQuery.map( this, fn, until ); - - if ( !runtil.test( name ) ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - ret = jQuery.filter( selector, ret ); - } - - ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; - - if ( this.length > 1 && rparentsprev.test( name ) ) { - ret = ret.reverse(); - } - - return this.pushStack( ret ); - }; -}); - -jQuery.extend({ - filter: function( expr, elems, not ) { - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 ? - jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : - jQuery.find.matches(expr, elems); - }, - - dir: function( elem, dir, until ) { - var matched = [], - cur = elem[ dir ]; - - while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { - if ( cur.nodeType === 1 ) { - matched.push( cur ); - } - cur = cur[dir]; - } - return matched; - }, - - sibling: function( n, elem ) { - var r = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - r.push( n ); - } - } - - return r; - } -}); - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, keep ) { - - // Can't pass null or undefined to indexOf in Firefox 4 - // Set to 0 to skip string check - qualifier = qualifier || 0; - - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep(elements, function( elem, i ) { - var retVal = !!qualifier.call( elem, i, elem ); - return retVal === keep; - }); - - } else if ( qualifier.nodeType ) { - return jQuery.grep(elements, function( elem ) { - return ( elem === qualifier ) === keep; - }); - - } else if ( typeof qualifier === "string" ) { - var filtered = jQuery.grep(elements, function( elem ) { - return elem.nodeType === 1; - }); - - if ( isSimple.test( qualifier ) ) { - return jQuery.filter(qualifier, filtered, !keep); - } else { - qualifier = jQuery.filter( qualifier, filtered ); - } - } - - return jQuery.grep(elements, function( elem ) { - return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; - }); -} -function createSafeFragment( document ) { - var list = nodeNames.split( "|" ), - safeFrag = document.createDocumentFragment(); - - if ( safeFrag.createElement ) { - while ( list.length ) { - safeFrag.createElement( - list.pop() - ); - } - } - return safeFrag; -} - -var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + - "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", - rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, - rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), - rleadingWhitespace = /^\s+/, - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, - rtagName = /<([\w:]+)/, - rtbody = /\s*$/g, - - // We have to close these tags to support XHTML (#13200) - wrapMap = { - option: [ 1, "" ], - legend: [ 1, "
", "
" ], - area: [ 1, "", "" ], - param: [ 1, "", "" ], - thead: [ 1, "", "
" ], - tr: [ 2, "", "
" ], - col: [ 2, "", "
" ], - td: [ 3, "", "
" ], - - // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, - // unless wrapped in a div with non-breaking characters in front of it. - _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
", "
" ] - }, - safeFragment = createSafeFragment( document ), - fragmentDiv = safeFragment.appendChild( document.createElement("div") ); - -wrapMap.optgroup = wrapMap.option; -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -jQuery.fn.extend({ - text: function( value ) { - return jQuery.access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); - }, null, value, arguments.length ); - }, - - wrapAll: function( html ) { - if ( jQuery.isFunction( html ) ) { - return this.each(function(i) { - jQuery(this).wrapAll( html.call(this, i) ); - }); - } - - if ( this[0] ) { - // The elements to wrap the target around - var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); - - if ( this[0].parentNode ) { - wrap.insertBefore( this[0] ); - } - - wrap.map(function() { - var elem = this; - - while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { - elem = elem.firstChild; - } - - return elem; - }).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( jQuery.isFunction( html ) ) { - return this.each(function(i) { - jQuery(this).wrapInner( html.call(this, i) ); - }); - } - - return this.each(function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - }); - }, - - wrap: function( html ) { - var isFunction = jQuery.isFunction( html ); - - return this.each(function(i) { - jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); - }); - }, - - unwrap: function() { - return this.parent().each(function() { - if ( !jQuery.nodeName( this, "body" ) ) { - jQuery( this ).replaceWith( this.childNodes ); - } - }).end(); - }, - - append: function() { - return this.domManip(arguments, true, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.appendChild( elem ); - } - }); - }, - - prepend: function() { - return this.domManip(arguments, true, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.insertBefore( elem, this.firstChild ); - } - }); - }, - - before: function() { - return this.domManip( arguments, false, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - }); - }, - - after: function() { - return this.domManip( arguments, false, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - }); - }, - - // keepData is for internal use only--do not document - remove: function( selector, keepData ) { - var elem, - i = 0; - - for ( ; (elem = this[i]) != null; i++ ) { - if ( !selector || jQuery.filter( selector, [ elem ] ).length > 0 ) { - if ( !keepData && elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem ) ); - } - - if ( elem.parentNode ) { - if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { - setGlobalEval( getAll( elem, "script" ) ); - } - elem.parentNode.removeChild( elem ); - } - } - } - - return this; - }, - - empty: function() { - var elem, - i = 0; - - for ( ; (elem = this[i]) != null; i++ ) { - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - } - - // Remove any remaining nodes - while ( elem.firstChild ) { - elem.removeChild( elem.firstChild ); - } - - // If this is a select, ensure that it displays empty (#12336) - // Support: IE<9 - if ( elem.options && jQuery.nodeName( elem, "select" ) ) { - elem.options.length = 0; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function () { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - }); - }, - - html: function( value ) { - return jQuery.access( this, function( value ) { - var elem = this[0] || {}, - i = 0, - l = this.length; - - if ( value === undefined ) { - return elem.nodeType === 1 ? - elem.innerHTML.replace( rinlinejQuery, "" ) : - undefined; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && - ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && - !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { - - value = value.replace( rxhtmlTag, "<$1>" ); - - try { - for (; i < l; i++ ) { - // Remove element nodes and prevent memory leaks - elem = this[i] || {}; - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch(e) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function( value ) { - var isFunc = jQuery.isFunction( value ); - - // Make sure that the elements are removed from the DOM before they are inserted - // this can help fix replacing a parent with child elements - if ( !isFunc && typeof value !== "string" ) { - value = jQuery( value ).not( this ).detach(); - } - - return this.domManip( [ value ], true, function( elem ) { - var next = this.nextSibling, - parent = this.parentNode; - - if ( parent ) { - jQuery( this ).remove(); - parent.insertBefore( elem, next ); - } - }); - }, - - detach: function( selector ) { - return this.remove( selector, true ); - }, - - domManip: function( args, table, callback ) { - - // Flatten any nested arrays - args = core_concat.apply( [], args ); - - var first, node, hasScripts, - scripts, doc, fragment, - i = 0, - l = this.length, - set = this, - iNoClone = l - 1, - value = args[0], - isFunction = jQuery.isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) { - return this.each(function( index ) { - var self = set.eq( index ); - if ( isFunction ) { - args[0] = value.call( this, index, table ? self.html() : undefined ); - } - self.domManip( args, table, callback ); - }); - } - - if ( l ) { - fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - if ( first ) { - table = table && jQuery.nodeName( first, "tr" ); - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( - table && jQuery.nodeName( this[i], "table" ) ? - findOrAppend( this[i], "tbody" ) : - this[i], - node, - i - ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { - - if ( node.src ) { - // Hope ajax is available... - jQuery.ajax({ - url: node.src, - type: "GET", - dataType: "script", - async: false, - global: false, - "throws": true - }); - } else { - jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); - } - } - } - } - - // Fix #11809: Avoid leaking memory - fragment = first = null; - } - } - - return this; - } -}); - -function findOrAppend( elem, tag ) { - return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) ); -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - var attr = elem.getAttributeNode("type"); - elem.type = ( attr && attr.specified ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); - if ( match ) { - elem.type = match[1]; - } else { - elem.removeAttribute("type"); - } - return elem; -} - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var elem, - i = 0; - for ( ; (elem = elems[i]) != null; i++ ) { - jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); - } -} - -function cloneCopyEvent( src, dest ) { - - if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { - return; - } - - var type, i, l, - oldData = jQuery._data( src ), - curData = jQuery._data( dest, oldData ), - events = oldData.events; - - if ( events ) { - delete curData.handle; - curData.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - - // make the cloned public data object a copy from the original - if ( curData.data ) { - curData.data = jQuery.extend( {}, curData.data ); - } -} - -function fixCloneNodeIssues( src, dest ) { - var nodeName, e, data; - - // We do not need to do anything for non-Elements - if ( dest.nodeType !== 1 ) { - return; - } - - nodeName = dest.nodeName.toLowerCase(); - - // IE6-8 copies events bound via attachEvent when using cloneNode. - if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) { - data = jQuery._data( dest ); - - for ( e in data.events ) { - jQuery.removeEvent( dest, e, data.handle ); - } - - // Event data gets referenced instead of copied if the expando gets copied too - dest.removeAttribute( jQuery.expando ); - } - - // IE blanks contents when cloning scripts, and tries to evaluate newly-set text - if ( nodeName === "script" && dest.text !== src.text ) { - disableScript( dest ).text = src.text; - restoreScript( dest ); - - // IE6-10 improperly clones children of object elements using classid. - // IE10 throws NoModificationAllowedError if parent is null, #12132. - } else if ( nodeName === "object" ) { - if ( dest.parentNode ) { - dest.outerHTML = src.outerHTML; - } - - // This path appears unavoidable for IE9. When cloning an object - // element in IE9, the outerHTML strategy above is not sufficient. - // If the src has innerHTML and the destination does not, - // copy the src.innerHTML into the dest.innerHTML. #10324 - if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { - dest.innerHTML = src.innerHTML; - } - - } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) { - // IE6-8 fails to persist the checked state of a cloned checkbox - // or radio button. Worse, IE6-7 fail to give the cloned element - // a checked appearance if the defaultChecked value isn't also set - - dest.defaultChecked = dest.checked = src.checked; - - // IE6-7 get confused and end up setting the value of a cloned - // checkbox/radio button to an empty string instead of "on" - if ( dest.value !== src.value ) { - dest.value = src.value; - } - - // IE6-8 fails to return the selected option to the default selected - // state when cloning options - } else if ( nodeName === "option" ) { - dest.defaultSelected = dest.selected = src.defaultSelected; - - // IE6-8 fails to set the defaultValue to the correct value when - // cloning other types of input fields - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - i = 0, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone(true); - jQuery( insert[i] )[ original ]( elems ); - - // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() - core_push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -}); - -function getAll( context, tag ) { - var elems, elem, - i = 0, - found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) : - typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) : - undefined; - - if ( !found ) { - for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { - if ( !tag || jQuery.nodeName( elem, tag ) ) { - found.push( elem ); - } else { - jQuery.merge( found, getAll( elem, tag ) ); - } - } - } - - return tag === undefined || tag && jQuery.nodeName( context, tag ) ? - jQuery.merge( [ context ], found ) : - found; -} - -// Used in buildFragment, fixes the defaultChecked property -function fixDefaultChecked( elem ) { - if ( manipulation_rcheckableType.test( elem.type ) ) { - elem.defaultChecked = elem.checked; - } -} - -jQuery.extend({ - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var destElements, node, clone, i, srcElements, - inPage = jQuery.contains( elem.ownerDocument, elem ); - - if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { - clone = elem.cloneNode( true ); - - // IE<=8 does not properly clone detached, unknown element nodes - } else { - fragmentDiv.innerHTML = elem.outerHTML; - fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); - } - - if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && - (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { - - // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - // Fix all IE cloning issues - for ( i = 0; (node = srcElements[i]) != null; ++i ) { - // Ensure that the destination node is not null; Fixes #9587 - if ( destElements[i] ) { - fixCloneNodeIssues( node, destElements[i] ); - } - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0; (node = srcElements[i]) != null; i++ ) { - cloneCopyEvent( node, destElements[i] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - destElements = srcElements = node = null; - - // Return the cloned set - return clone; - }, - - buildFragment: function( elems, context, scripts, selection ) { - var j, elem, contains, - tmp, tag, tbody, wrap, - l = elems.length, - - // Ensure a safe fragment - safe = createSafeFragment( context ), - - nodes = [], - i = 0; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || safe.appendChild( context.createElement("div") ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - - tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; - - // Descend through wrappers to the right content - j = wrap[0]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Manually add leading whitespace removed by IE - if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { - nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); - } - - // Remove IE's autoinserted from table fragments - if ( !jQuery.support.tbody ) { - - // String was a , *may* have spurious - elem = tag === "table" && !rtbody.test( elem ) ? - tmp.firstChild : - - // String was a bare or - wrap[1] === "
" && !rtbody.test( elem ) ? - tmp : - 0; - - j = elem && elem.childNodes.length; - while ( j-- ) { - if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { - elem.removeChild( tbody ); - } - } - } - - jQuery.merge( nodes, tmp.childNodes ); - - // Fix #12392 for WebKit and IE > 9 - tmp.textContent = ""; - - // Fix #12392 for oldIE - while ( tmp.firstChild ) { - tmp.removeChild( tmp.firstChild ); - } - - // Remember the top-level container for proper cleanup - tmp = safe.lastChild; - } - } - } - - // Fix #11356: Clear elements from fragment - if ( tmp ) { - safe.removeChild( tmp ); - } - - // Reset defaultChecked for any radios and checkboxes - // about to be appended to the DOM in IE 6/7 (#8060) - if ( !jQuery.support.appendChecked ) { - jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); - } - - i = 0; - while ( (elem = nodes[ i++ ]) ) { - - // #4087 - If origin and destination elements are the same, and this is - // that element, do not do anything - if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( safe.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( (elem = tmp[ j++ ]) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - tmp = null; - - return safe; - }, - - cleanData: function( elems, /* internal */ acceptData ) { - var elem, type, id, data, - i = 0, - internalKey = jQuery.expando, - cache = jQuery.cache, - deleteExpando = jQuery.support.deleteExpando, - special = jQuery.event.special; - - for ( ; (elem = elems[i]) != null; i++ ) { - - if ( acceptData || jQuery.acceptData( elem ) ) { - - id = elem[ internalKey ]; - data = id && cache[ id ]; - - if ( data ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Remove cache only if it was not already removed by jQuery.event.remove - if ( cache[ id ] ) { - - delete cache[ id ]; - - // IE does not allow us to delete expando properties from nodes, - // nor does it have a removeAttribute function on Document nodes; - // we must handle all of these cases - if ( deleteExpando ) { - delete elem[ internalKey ]; - - } else if ( typeof elem.removeAttribute !== core_strundefined ) { - elem.removeAttribute( internalKey ); - - } else { - elem[ internalKey ] = null; - } - - core_deletedIds.push( id ); - } - } - } - } - } -}); -var iframe, getStyles, curCSS, - ralpha = /alpha\([^)]*\)/i, - ropacity = /opacity\s*=\s*([^)]*)/, - rposition = /^(top|right|bottom|left)$/, - // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" - // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rmargin = /^margin/, - rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), - rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), - rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ), - elemdisplay = { BODY: "block" }, - - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: 0, - fontWeight: 400 - }, - - cssExpand = [ "Top", "Right", "Bottom", "Left" ], - cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; - -// return a css property mapped to a potentially vendor prefixed property -function vendorPropName( style, name ) { - - // shortcut for names that are not vendor prefixed - if ( name in style ) { - return name; - } - - // check for vendor prefixed names - var capName = name.charAt(0).toUpperCase() + name.slice(1), - origName = name, - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in style ) { - return name; - } - } - - return origName; -} - -function isHidden( elem, el ) { - // isHidden might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); -} - -function showHide( elements, show ) { - var display, elem, hidden, - values = [], - index = 0, - length = elements.length; - - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - - values[ index ] = jQuery._data( elem, "olddisplay" ); - display = elem.style.display; - if ( show ) { - // Reset the inline display of this element to learn if it is - // being hidden by cascaded rules or not - if ( !values[ index ] && display === "none" ) { - elem.style.display = ""; - } - - // Set elements which have been overridden with display: none - // in a stylesheet to whatever the default browser style is - // for such an element - if ( elem.style.display === "" && isHidden( elem ) ) { - values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); - } - } else { - - if ( !values[ index ] ) { - hidden = isHidden( elem ); - - if ( display && display !== "none" || !hidden ) { - jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); - } - } - } - } - - // Set the display of most of the elements in a second loop - // to avoid the constant reflow - for ( index = 0; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - if ( !show || elem.style.display === "none" || elem.style.display === "" ) { - elem.style.display = show ? values[ index ] || "" : "none"; - } - } - - return elements; -} - -jQuery.fn.extend({ - css: function( name, value ) { - return jQuery.access( this, function( elem, name, value ) { - var len, styles, - map = {}, - i = 0; - - if ( jQuery.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - }, - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - var bool = typeof state === "boolean"; - - return this.each(function() { - if ( bool ? state : isHidden( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - }); - } -}); - -jQuery.extend({ - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Exclude the following css properties to add px - cssNumber: { - "columnCount": true, - "fillOpacity": true, - "fontWeight": true, - "lineHeight": true, - "opacity": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: { - // normalize float css property - "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" - }, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = jQuery.camelCase( name ), - style = elem.style; - - name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); - - // gets hook for the prefixed version - // followed by the unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // convert relative number strings (+= or -=) to relative numbers. #7345 - if ( type === "string" && (ret = rrelNum.exec( value )) ) { - value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); - // Fixes bug #9237 - type = "number"; - } - - // Make sure that NaN and null values aren't set. See: #7116 - if ( value == null || type === "number" && isNaN( value ) ) { - return; - } - - // If a number was passed in, add 'px' to the (except for certain CSS properties) - if ( type === "number" && !jQuery.cssNumber[ origName ] ) { - value += "px"; - } - - // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, - // but it would mean to define eight (for every problematic property) identical functions - if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { - - // Wrapped to prevent IE from throwing errors when 'invalid' values are provided - // Fixes bug #5509 - try { - style[ name ] = value; - } catch(e) {} - } - - } else { - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var num, val, hooks, - origName = jQuery.camelCase( name ); - - // Make sure that we're working with the right name - name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); - - // gets hook for the prefixed version - // followed by the unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - //convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Return, converting to number if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; - } - return val; - }, - - // A method for quickly swapping in/out CSS properties to get correct calculations - swap: function( elem, options, callback, args ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.apply( elem, args || [] ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; - } -}); - -// NOTE: we've included the "window" in window.getComputedStyle -// because jsdom on node.js will break without it. -if ( window.getComputedStyle ) { - getStyles = function( elem ) { - return window.getComputedStyle( elem, null ); - }; - - curCSS = function( elem, name, _computed ) { - var width, minWidth, maxWidth, - computed = _computed || getStyles( elem ), - - // getPropertyValue is only needed for .css('filter') in IE9, see #12537 - ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined, - style = elem.style; - - if ( computed ) { - - if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right - // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels - // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values - if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret; - }; -} else if ( document.documentElement.currentStyle ) { - getStyles = function( elem ) { - return elem.currentStyle; - }; - - curCSS = function( elem, name, _computed ) { - var left, rs, rsLeft, - computed = _computed || getStyles( elem ), - ret = computed ? computed[ name ] : undefined, - style = elem.style; - - // Avoid setting ret to empty string here - // so we don't default to auto - if ( ret == null && style && style[ name ] ) { - ret = style[ name ]; - } - - // From the awesome hack by Dean Edwards - // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 - - // If we're not dealing with a regular pixel number - // but a number that has a weird ending, we need to convert it to pixels - // but not position css attributes, as those are proportional to the parent element instead - // and we can't measure the parent instead because it might trigger a "stacking dolls" problem - if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { - - // Remember the original values - left = style.left; - rs = elem.runtimeStyle; - rsLeft = rs && rs.left; - - // Put in the new values to get a computed value out - if ( rsLeft ) { - rs.left = elem.currentStyle.left; - } - style.left = name === "fontSize" ? "1em" : ret; - ret = style.pixelLeft + "px"; - - // Revert the changed values - style.left = left; - if ( rsLeft ) { - rs.left = rsLeft; - } - } - - return ret === "" ? "auto" : ret; - }; -} - -function setPositiveNumber( elem, value, subtract ) { - var matches = rnumsplit.exec( value ); - return matches ? - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : - value; -} - -function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { - var i = extra === ( isBorderBox ? "border" : "content" ) ? - // If we already have the right measurement, avoid augmentation - 4 : - // Otherwise initialize for horizontal or vertical properties - name === "width" ? 1 : 0, - - val = 0; - - for ( ; i < 4; i += 2 ) { - // both box models exclude margin, so add it if we want it - if ( extra === "margin" ) { - val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); - } - - if ( isBorderBox ) { - // border-box includes padding, so remove it if we want content - if ( extra === "content" ) { - val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // at this point, extra isn't border nor margin, so remove border - if ( extra !== "margin" ) { - val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } else { - // at this point, extra isn't content, so add padding - val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // at this point, extra isn't content nor padding, so add border - if ( extra !== "padding" ) { - val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - return val; -} - -function getWidthOrHeight( elem, name, extra ) { - - // Start with offset property, which is equivalent to the border-box value - var valueIsBorderBox = true, - val = name === "width" ? elem.offsetWidth : elem.offsetHeight, - styles = getStyles( elem ), - isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // some non-html elements return undefined for offsetWidth, so check for null/undefined - // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 - // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 - if ( val <= 0 || val == null ) { - // Fall back to computed then uncomputed css if necessary - val = curCSS( elem, name, styles ); - if ( val < 0 || val == null ) { - val = elem.style[ name ]; - } - - // Computed unit is not pixels. Stop here and return. - if ( rnumnonpx.test(val) ) { - return val; - } - - // we need the check for style in case a browser which returns unreliable values - // for getComputedStyle silently falls back to the reliable elem.style - valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); - - // Normalize "", auto, and prepare for extra - val = parseFloat( val ) || 0; - } - - // use the active box-sizing model to add/subtract irrelevant styles - return ( val + - augmentWidthOrHeight( - elem, - name, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles - ) - ) + "px"; -} - -// Try to determine the default display value of an element -function css_defaultDisplay( nodeName ) { - var doc = document, - display = elemdisplay[ nodeName ]; - - if ( !display ) { - display = actualDisplay( nodeName, doc ); - - // If the simple way fails, read from inside an iframe - if ( display === "none" || !display ) { - // Use the already-created iframe if possible - iframe = ( iframe || - jQuery(" -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/CHANGELOG.md b/node_modules/materialize-css/CHANGELOG.md deleted file mode 100644 index 9c7c172..0000000 --- a/node_modules/materialize-css/CHANGELOG.md +++ /dev/null @@ -1,162 +0,0 @@ -## v0.97.5 (December 21st, 2015) -- Fixed Meteor package crash - -## v0.97.4 (Dec 20, 2015) -- Added Jasmine testing with Travis CI -- Select bugfixes -- Grid Offset bugfix -- Dropdown overflow bugfix -- Range slider error bugfix - -## v0.97.3 (Nov 15, 2015) -- Meteor font issues fixed -- Select rendering issue fixed -- Added Push and Pull to grid -- Dynamic accordion appends fixed - -## v0.97.2 (Nov 8, 2015) -- Image support inside select -- Optgroup supported in select -- Multiple select added -- Card styling fixes -- Breadcrumbs added -- Scrollable tabs -- Tooltips and dropdowns position themselves more intelligently inside the window -- FAB menu is click-toggleable -- Horizontal FAB support added - -## v0.97.1 (Sep 13, 2015) -- Added new range slider with uses noUiSlider to provide powerful options -- Added CSS for Chips -- Toasts support adding of html elements -- Fixed select destroy/creation bug -- Bugfixes for dropdown, badges, collections, scrollfire -- Added default preloader color variable -- File input now supports multiple files and dynamically loaded elements - -## v0.97.0 (June 21, 2015) -- **Documentation changed to use Official Google Icon web font** -- **Input errors added** -- Flicker on Firefox on dropdowns fixed -- Pagination made more responsive -- Modal now prevents scrolling -- Modal animation added -- Support for multiple modals added -- Programmatic control of FAB to open/close added -- Programmatic control of slider to play/pause added -- Plus many more bug fixes - -## v0.96.0 (April 1, 2015) -- Toasts, transitions, scrollfire added under Materialize namespace -- Dropdown is now created as a child of its parent -- Collapsibles supports nesting -- Modal Bottom Sheet added -- Indeterminate Checkboxes added -- New Checkbox Style added -- Text Inputs supports placeholder/readonly -- Google Inbox-like Collapsible added -- Text Character Counter added -- Waves no longer breaks on SVGs - -## v0.95.3 (Feb 25, 2015) -- Parallax image loading / responsiveness fixes -- Date picker supports month/year as dropdown -- Dismissable collection items -- Avatar collection items -- Pagination Added -- ScrollFire fixes - - -## v0.95.2 (Feb 10, 2015) -- Switches added -- Transition animation functions added -- ScrollFire Plugin added (fires functions dependent on scroll position) -- Responsive Video tag added -- Custom File Input Button added -- Modals has a fixed footer option -- SideNav implementation changed (needs 2 UL menus) -- Slider Responsive Fixes - - -## v0.95.1 (Jan 26, 2015) -- Sidenav Fixes -- Dropdown alignment/gutter options added -- Parallax fixes -- JavaScript Initialization no longer needed for many components -- HTML options through data-attributes -- Site colors can be defined through Primary and Secondary color in Sass -- Tables no longer resonsive by default - - -## v0.95.0 (Jan 17, 2015) -- Drag Out Menu fixed with Touch Interactions -- Toasts minor bugfix -- OL element has default styling -- Fullscreen Slider added -- Footer requires page-footer class -- Progress Bars added -- Form autofill support added -- Responsive Tables support added -- Scrollspy Plugin released -- Waves events are now delegated / behavior enhanced - - -## v0.94.0 (Dec 30, 2014) -- Sidenav supports right edge positioning -- Responsive Embeds -- Image Vertical align classes -- border-box added -- Variable file created -- Pushpin added -- Tooltips support all directions -- Layout helper classes added -- Materialbox Fixes -- Form Element Enhancements -- Navbar supports search bar -- Waves fixes -- Materialbox Captions -- Image Slider Fixes - - -## v0.93.1 (Dec 20, 2014) -- Flexbox Sticky Footer removed due to IE incompatibility - - -## v0.93.0 (Dec 19, 2014) -- Card Reveal -- Image Slider -- Dynamically loaded forms work correctly -- Badges added -- Circular Image -- Waves Fixes -- Footer Added -- Toast support Custom HTML -- Modals support programmatic opening/closing -- Responsive Image support - - -## v0.92.1 (Dec 14, 2014) -- Bower semver fix -- Added new radio button style - - -## v0.92.0 (Dec 13, 2014) -- Clicking icon in dropdown in navbar no longer closes dropdown immediately -- Multiple select inputs now work properly -- Mobile navbar no longer extends past screen width -- Parallax improved -- Modal restructured / can be opened programmatically -- Callbacks added to modals -- Added dist folder to repo -- Cards restructured - -## v0.91 (Dec 3, 2014) -- bug fixes to forms -- added waves color classes -- toast thickened to look better on mobile -- many other bug fixes - - -## v0.9 (Nov 30, 2014) -- Touch interactions added -- tons more... \ No newline at end of file diff --git a/node_modules/materialize-css/CNAME b/node_modules/materialize-css/CNAME deleted file mode 100644 index 32e446b..0000000 --- a/node_modules/materialize-css/CNAME +++ /dev/null @@ -1 +0,0 @@ -materializecss.com diff --git a/node_modules/materialize-css/CONTRIBUTING.md b/node_modules/materialize-css/CONTRIBUTING.md deleted file mode 100644 index e5bcdc8..0000000 --- a/node_modules/materialize-css/CONTRIBUTING.md +++ /dev/null @@ -1,94 +0,0 @@ -## Contributing -- Compiling Files - - `npm install` - - `grunt monitor`, this will compile .scss, .js., .jade files -- Documentation - - If you notice an error in the documentation, please edit the corresponding .html page under jade/page-contents/. -- Issues - - If you have an issue please make sure you document the problems in depth. - - Create screenshots of your issue and include a [Codepen](http://codepen.io/Dogfalo/pen/xbzPQV) of the problem where applicable - - Unclear issues with little explanations will be closed. - - Issues without a Codepen (where applicable) will be closed or ignored. -- Feature Requests - - We like feature requests but make sure that it can be seen within the goals of the project and not just something you need individually. Also you should try and give as much examples and details about the new feature as possible. -- Code Examples - - Use this [Codepen](http://codepen.io/Dogfalo/pen/xbzPQV) to illustrate your problem. - -## Contribution 101 -- Fork this repo to your own git -- Make your changes -- Submit a pull request with full remarks documenting your changes -- Pull request MAY then be accepted by project creators -- Make sure you are altering the correct source files (Never alter compiled / dist files) - -## Jasmine Testing Guide -**References:** -- [Jasmine Documentation](http://jasmine.github.io/2.0/introduction.html) -- [Grunt Jasmine Plugin](https://github.com/gruntjs/grunt-contrib-jasmine) -- [Example Jasmine Tests](https://github.com/Dogfalo/materialize/tree/master/tests/spec) -- [Travis CI](https://travis-ci.org/Dogfalo/materialize) - -Before you start, make sure you install grunt and all its dependencies. To verify you have all the correct dependencies you can run `grunt travis` and it will run the tests. If you get an errors and have not made any changes, it means you have not installed the proper dependencies. - -Materialize uses Jasmine as the testing framework. We also include a jQuery library which allows you to write tests using jQuery syntax. - -### Starting Out - -First to familiarize yourself with how the tests are structured, you can take a look inside the `tests/` directory. Each component should have its own folder. Follow the file-naming conventions that are used in the existing tests. - -Before writing tests, make sure you are working off of a clean git branch of your fork. This will greatly simplify the Pull Request process. - -### Writing Tests - -Before writing tests, make sure you understand what the expected-behavior of the component actually is. Reading over the component code and documentation will greatly aid you in this regard. - -Use `describe` blocks to section disparate portions of tests and `it` blocks inside those to further break up tests into features. Inside `it` blocks, you can have multiple except statements. As a general testing principle, be sure to try and test both the case and its “inverse” to lessen the chance for false positives. - -Example: -```javascript -expect(toast.first('span').text()).toBe('I am toast content'); -expect(toast.first('span').text()).not.toBe('I am toast'); -``` - -You can use beforeEach, and afterEach in either block to designate code that will execute before or after each item. This is useful if you need to setup some scenario for each test, or reset some things after each test. - -When writing expect statements (Jasmine’s form of assert), it is very important to write an expected behavior string so in the event of an error, the test that failed is very clear. - -Example: -```javascript -expect(toast.length).toBe(0, 'because toast should be removed by now'); -``` -When this expect statement fails it will list the reason as “because toast should be removed by now”. - -Because our components are very front end heavy, familiarize yourself with jQuery ways of interacting with the dom and our components. You can use methods like [trigger](http://api.jquery.com/trigger/), to simulate certain events like the user clicking a button. - -We also understand that testing CSS properties is pretty tough so you’ll have to be creative when writing good tests that ensure the styling is still working. Try and cover as many cases as you can but don’t worry if there are some edge cases. You can add comments describing some problematic edge cases in TODOs so we know about them. - -### Submitting Your Pull Request - -Try and keep your commit history clean and concise. Once you submit your pull request, [Travis CI](https://travis-ci.org/Dogfalo/materialize) will automatically run your tests and will show a checkmark to show that all the tests have passed. Once this is done, we’ll review your tests and code and make comments if there are issues or things we think could be improved. Then once everything looks good we’ll merge the code in! - - -### Useful Jasmine Tips - -1. To only run a specific spec at a time, to avoid wasting your time running all our other tests, you can set the flag `--filter`. For example: - ``` - `grunt travis --filter=tabs` - ``` - - This would only run specs with tabs in its name. - -2. If you need a timeout in your test (waiting for some animation or action to be executed) you need to use the done callback. In your `it()` behavior function set done as an argument to your anonymous function. Then you can use javascript’s window `setTimeout`s normally. And when you want the test to finish just call the `done()` function. For example: - - ```javascript - it ('should wait for a timeout', function(done) { - // Execute action - timeout(setTimeout(function() { - // Wait a second - // Test for result - done(); - }, 1000); - }); - ``` - - **Note:** If you add done as a callback, and you don’t call the `done()` function, it will stall forever and error after a max limit of around 5 seconds. diff --git a/node_modules/materialize-css/Gruntfile.js b/node_modules/materialize-css/Gruntfile.js deleted file mode 100644 index 6d445fb..0000000 --- a/node_modules/materialize-css/Gruntfile.js +++ /dev/null @@ -1,604 +0,0 @@ -module.exports = function(grunt) { - - // configure the tasks - grunt.initConfig({ - // Copy - copy: { - dist: { cwd: 'fonts', src: [ '**' ], dest: 'dist/fonts', expand: true }, - }, - - // Jasmine - jasmine: { - components: { - src: [ - 'bin/materialize.js' - ], - options: { - vendor: [ - 'node_modules/jquery/dist/jquery.min.js', - 'node_modules/jasmine-jquery/lib/jasmine-jquery.js' - ], - styles: 'bin/materialize.css', - specs: 'tests/spec/**/*Spec.js', - helpers: 'tests/spec/helper.js', - keepRunner : true, - //helpers: 'test/spec/*.js' - } - } - }, - - - - // Sass - sass: { // Task - expanded: { // Target - options: { // Target options - outputStyle: 'expanded', - sourcemap: false, - }, - files: { - 'dist/css/materialize.css': 'sass/materialize.scss', - } - }, - - min: { - options: { - outputStyle: 'compressed', - sourcemap: false - }, - files: { - 'dist/css/materialize.min.css': 'sass/materialize.scss', - } - }, - - // Compile ghpages css - gh: { - options: { - outputStyle: 'compressed', - sourcemap: false - }, - files: { - 'css/ghpages-materialize.css': 'sass/ghpages-materialize.scss', - } - }, - - // Compile bin css - bin: { - options: { - outputStyle: 'expanded', - sourcemap: false - }, - files: { - 'bin/materialize.css': 'sass/materialize.scss', - } - } - }, - - // PostCss Autoprefixer - postcss: { - options: { - processors: [ - require('autoprefixer')({ - browsers: [ - 'last 2 versions', - 'Chrome >= 30', - 'Firefox >= 30', - 'ie >= 10', - 'Safari >= 8'] - }) - ] - }, - expended: { - src: 'dist/css/materialize.css' - }, - min: { - src: 'dist/css/materialize.min.css' - }, - gh: { - src: 'css/ghpages-materialize.css' - }, - bin: { - src: 'bin/materialize.css' - } - }, - - // Browser Sync integration - browserSync: { - bsFiles: ["bin/*.js", "bin/*.css", "!**/node_modules/**/*"], - options: { - server: { - baseDir: "./" // make server from root dir - }, - port: 8000, - ui: { - port: 8080, - weinre: { - port: 9090 - } - }, - open: false - } - }, - - // Concat - concat: { - options: { - separator: ';' - }, - dist: { - // the files to concatenate - src: [ - "js/initial.js", - "js/jquery.easing.1.3.js", - "js/animation.js", - "js/velocity.min.js", - "js/hammer.min.js", - "js/jquery.hammer.js", - "js/global.js", - "js/collapsible.js", - "js/dropdown.js", - "js/modal.js", - "js/materialbox.js", - "js/parallax.js", - "js/tabs.js", - "js/tooltip.js", - "js/waves.js", - "js/toasts.js", - "js/sideNav.js", - "js/scrollspy.js", - "js/forms.js", - "js/slider.js", - "js/cards.js", - "js/chips.js", - "js/pushpin.js", - "js/buttons.js", - "js/transitions.js", - "js/scrollFire.js", - "js/date_picker/picker.js", - "js/date_picker/picker.date.js", - "js/character_counter.js", - "js/carousel.js", - ], - // the location of the resulting JS file - dest: 'dist/js/materialize.js' - }, - temp: { - // the files to concatenate - src: [ - "js/initial.js", - "js/jquery.easing.1.3.js", - "js/animation.js", - "js/velocity.min.js", - "js/hammer.min.js", - "js/jquery.hammer.js", - "js/global.js", - "js/collapsible.js", - "js/dropdown.js", - "js/modal.js", - "js/materialbox.js", - "js/parallax.js", - "js/tabs.js", - "js/tooltip.js", - "js/waves.js", - "js/toasts.js", - "js/sideNav.js", - "js/scrollspy.js", - "js/forms.js", - "js/slider.js", - "js/cards.js", - "js/chips.js", - "js/pushpin.js", - "js/buttons.js", - "js/transitions.js", - "js/scrollFire.js", - "js/date_picker/picker.js", - "js/date_picker/picker.date.js", - "js/character_counter.js", - "js/carousel.js", - ], - // the location of the resulting JS file - dest: 'temp/js/materialize.js' - }, - }, - - // Uglify - uglify: { - options: { - // Use these options when debugging - // mangle: false, - // compress: false, - // beautify: true - - }, - dist: { - files: { - 'dist/js/materialize.min.js': ['dist/js/materialize.js'] - } - }, - bin: { - files: { - 'bin/materialize.js': ['temp/js/materialize.js'] - } - }, - extras: { - files: { - 'extras/noUiSlider/nouislider.min.js': ['extras/noUiSlider/nouislider.js'] - } - } - }, - - - // Compress - compress: { - main: { - options: { - archive: 'bin/materialize.zip', - level: 6 - }, - files:[ - { expand: true, cwd: 'dist/', src: ['**/*'], dest: 'materialize/'}, - { expand: true, cwd: './', src: ['LICENSE', 'README.md'], dest: 'materialize/'}, - ] - }, - - src: { - options: { - archive: 'bin/materialize-src.zip', - level: 6 - }, - files:[ - {expand: true, cwd: 'fonts/', src: ['**/*'], dest: 'materialize-src/fonts/'}, - {expand: true, cwd: 'sass/', src: ['materialize.scss'], dest: 'materialize-src/sass/'}, - {expand: true, cwd: 'sass/', src: ['components/**/*'], dest: 'materialize-src/sass/'}, - {expand: true, cwd: 'js/', src: [ - "initial.js", - "jquery.easing.1.3.js", - "animation.js", - "velocity.min.js", - "hammer.min.js", - "jquery.hammer.js", - "global.js", - "collapsible.js", - "dropdown.js", - "modal.js", - "materialbox.js", - "parallax.js", - "tabs.js", - "tooltip.js", - "waves.js", - "toasts.js", - "sideNav.js", - "scrollspy.js", - "forms.js", - "slider.js", - "cards.js", - "chips.js", - "pushpin.js", - "buttons.js", - "transitions.js", - "scrollFire.js", - "date_picker/picker.js", - "date_picker/picker.date.js", - "character_counter.js", - "carousel.js", - ], dest: 'materialize-src/js/'}, - {expand: true, cwd: 'dist/js/', src: ['**/*'], dest: 'materialize-src/js/bin/'}, - {expand: true, cwd: './', src: ['LICENSE', 'README.md'], dest: 'materialize-src/'} - - ] - }, - - starter_template: { - options: { - archive: 'templates/starter-template.zip', - level: 6 - }, - files:[ - { expand: true, cwd: 'dist/', src: ['**/*'], dest: 'starter-template/'}, - { expand: true, cwd: 'templates/starter-template/', src: ['index.html', 'LICENSE'], dest: 'starter-template/'}, - { expand: true, cwd: 'templates/starter-template/css', src: ['style.css'], dest: 'starter-template/css'}, - { expand: true, cwd: 'templates/starter-template/js', src: ['init.js'], dest: 'starter-template/js'} - - ] - }, - - parallax_template: { - options: { - archive: 'templates/parallax-template.zip', - level: 6 - }, - files:[ - { expand: true, cwd: 'dist/', src: ['**/*'], dest: 'parallax-template/'}, - { expand: true, cwd: 'templates/parallax-template/', src: ['index.html', 'LICENSE', 'background1.jpg', 'background2.jpg', 'background3.jpg'], dest: 'parallax-template/'}, - { expand: true, cwd: 'templates/parallax-template/css', src: ['style.css'], dest: 'parallax-template/css'}, - { expand: true, cwd: 'templates/parallax-template/js', src: ['init.js'], dest: 'parallax-template/js'} - - ] - } - - }, - - - // Clean - clean: { - temp: { - src: [ 'temp/' ] - }, - }, - - // Jade - jade: { - compile: { - options: { - pretty: true, - data: { - debug: false - } - }, - files: { - "index.html": "jade/index.jade", - "icons.html": "jade/icons.jade", - "about.html": "jade/about.jade", - "sass.html": "jade/sass.jade", - "getting-started.html": "jade/getting-started.jade", - "mobile.html": "jade/mobile.jade", - "showcase.html": "jade/showcase.jade", - "parallax.html": "jade/parallax.jade", - "parallax-demo.html": "jade/parallax-demo.jade", - "typography.html": "jade/typography.jade", - "color.html": "jade/color.jade", - "shadow.html": "jade/shadow.jade", - "grid.html": "jade/grid.jade", - "media-css.html": "jade/media-css.jade", - "table.html": "jade/table.jade", - "helpers.html": "jade/helpers.jade", - "forms.html": "jade/forms.jade", - "buttons.html": "jade/buttons.jade", - "navbar.html": "jade/navbar.jade", - "cards.html": "jade/cards.jade", - "preloader.html": "jade/preloader.jade", - "collections.html": "jade/collections.jade", - "badges.html": "jade/badges.jade", - "footer.html": "jade/footer.jade", - "dialogs.html": "jade/dialogs.jade", - "modals.html": "jade/modals.jade", - "dropdown.html": "jade/dropdown.jade", - "tabs.html": "jade/tabs.jade", - "side-nav.html": "jade/sideNav.jade", - "pushpin.html": "jade/pushpin.jade", - "waves.html": "jade/waves.jade", - "media.html": "jade/media.jade", - "collapsible.html": "jade/collapsible.jade", - "chips.html": "jade/chips.jade", - "scrollfire.html": "jade/scrollFire.jade", - "scrollspy.html": "jade/scrollspy.jade", - "transitions.html": "jade/transitions.jade", - "fullscreen-slider-demo.html": "jade/fullscreen-slider-demo.jade", - "pagination.html": "jade/pagination.jade", - "breadcrumbs.html": "jade/breadcrumbs.jade", - "carousel.html": "jade/carousel.jade", - "pushpin-demo.html": "jade/pushpin-demo.jade", - "css-transitions.html": "jade/css-transitions.jade", - "404.html": "jade/404.jade", - - } - } - }, - - // Watch Files - watch: { - jade: { - files: ['jade/**/*'], - tasks: ['jade_compile'], - options: { - interrupt: false, - spawn: false, - }, - }, - - js: { - files: [ "js/**/*", "!js/init.js"], - tasks: ['js_compile'], - options: { - interrupt: false, - spawn: false, - }, - }, - - sass: { - files: ['sass/**/*'], - tasks: ['sass_compile'], - options: { - interrupt: false, - spawn: false, - }, - } - }, - - - // Concurrent - concurrent: { - options: { - logConcurrentOutput: true, - limit: 10, - }, - monitor: { - tasks: ["watch:jade", "watch:js", "watch:sass", "notify:watching", 'server'] - }, - }, - - - // Notifications - notify: { - watching: { - options: { - enabled: true, - message: 'Watching Files!', - title: "Materialize", // defaults to the name in package.json, or will use project directory's name - success: true, // whether successful grunt executions should be notified automatically - duration: 1 // the duration of notification in seconds, for `notify-send only - } - }, - - sass_compile: { - options: { - enabled: true, - message: 'Sass Compiled!', - title: "Materialize", - success: true, - duration: 1 - } - }, - - js_compile: { - options: { - enabled: true, - message: 'JS Compiled!', - title: "Materialize", - success: true, - duration: 1 - } - }, - - jade_compile: { - options: { - enabled: true, - message: 'Jade Compiled!', - title: "Materialize", - success: true, - duration: 1 - } - }, - - server: { - options: { - enabled: true, - message: 'Server Running!', - title: "Materialize", - success: true, - duration: 1 - } - } - }, - - // Text Replace - replace: { - version: { // Does not edit README.md - src: [ - 'bower.json', - 'package.json', - 'package.js', - 'jade/**/*.html' - ], - overwrite: true, - replacements: [{ - from: grunt.option( "oldver" ), - to: grunt.option( "newver" ) - }] - }, - readme: { // Changes README.md - src: [ - 'README.md' - ], - overwrite: true, - replacements: [{ - from: 'Current Version : v'+grunt.option( "oldver" ), - to: 'Current Version : v'+grunt.option( "newver" ) - }] - }, - }, - - // Create Version Header for files - usebanner: { - release: { - options: { - position: 'top', - banner: "/*!\n * Materialize v"+ grunt.option( "newver" ) +" (http://materializecss.com)\n * Copyright 2014-2015 Materialize\n * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)\n */", - linebreak: true - }, - files: { - src: [ 'dist/css/*.css', 'dist/js/*.js'] - } - } - }, - - // Rename files - rename: { - rename_src: { - src: 'bin/materialize-src'+'.zip', - dest: 'bin/materialize-src-v'+grunt.option( "newver" )+'.zip', - options: { - ignore: true - } - }, - rename_compiled: { - src: 'bin/materialize'+'.zip', - dest: 'bin/materialize-v'+grunt.option( "newver" )+'.zip', - options: { - ignore: true - } - }, - }, - - // Removes console logs - removelogging: { - source: { - src: ["js/**/*.js", "!js/velocity.min.js"], - options: { - // see below for options. this is optional. - } - } - }, - }); - - // load the tasks - // grunt.loadNpmTasks('grunt-gitinfo'); - grunt.loadNpmTasks('grunt-contrib-watch'); - grunt.loadNpmTasks('grunt-contrib-copy'); - grunt.loadNpmTasks('grunt-sass'); - grunt.loadNpmTasks('grunt-contrib-concat'); - grunt.loadNpmTasks('grunt-contrib-uglify'); - grunt.loadNpmTasks('grunt-contrib-compress'); - grunt.loadNpmTasks('grunt-contrib-clean'); - grunt.loadNpmTasks('grunt-contrib-jade'); - grunt.loadNpmTasks('grunt-concurrent'); - grunt.loadNpmTasks('grunt-notify'); - grunt.loadNpmTasks('grunt-text-replace'); - grunt.loadNpmTasks('grunt-banner'); - grunt.loadNpmTasks('grunt-rename'); - grunt.loadNpmTasks('grunt-remove-logging'); - grunt.loadNpmTasks('grunt-browser-sync'); - grunt.loadNpmTasks('grunt-contrib-jasmine'); - grunt.loadNpmTasks('grunt-postcss'); - // define the tasks - grunt.registerTask( - 'release',[ - 'lint', - 'copy', - 'sass:expanded', - 'sass:min', - 'postcss:expended', - 'postcss:min', - 'concat:dist', - 'uglify:dist', - 'uglify:extras', - 'usebanner:release', - 'compress:main', - 'compress:src', - 'compress:starter_template', - 'compress:parallax_template', - 'replace:version', - 'replace:readme', - 'rename:rename_src', - 'rename:rename_compiled' - ] - ); - - grunt.registerTask('jade_compile', ['jade', 'notify:jade_compile']); - grunt.registerTask('js_compile', ['concat:temp', 'uglify:bin', 'notify:js_compile', 'clean:temp']); - grunt.registerTask('sass_compile', ['sass:gh', 'sass:bin', 'postcss:gh', 'postcss:bin', 'notify:sass_compile']); - grunt.registerTask('server', ['browserSync', 'notify:server']); - grunt.registerTask('lint', ['removelogging:source']); - grunt.registerTask('monitor', ["concurrent:monitor"]); - grunt.registerTask('travis', ['jasmine']); -}; diff --git a/node_modules/materialize-css/ISSUE_TEMPLATE.md b/node_modules/materialize-css/ISSUE_TEMPLATE.md deleted file mode 100644 index b107e95..0000000 --- a/node_modules/materialize-css/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,8 +0,0 @@ -### Description -Add a detailed description of your issue. - -### Repro Steps -Layout the steps to reproduce your issue. - -### Screenshots / Codepen -Add supplemental screenshots or code examples. Look for a codepen template in our Contributing Guidelines. diff --git a/node_modules/materialize-css/LICENSE b/node_modules/materialize-css/LICENSE deleted file mode 100644 index 44bd03e..0000000 --- a/node_modules/materialize-css/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2017 Materialize - -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/materialize-css/README.md b/node_modules/materialize-css/README.md deleted file mode 100755 index e535628..0000000 --- a/node_modules/materialize-css/README.md +++ /dev/null @@ -1,61 +0,0 @@ -![alt tag](https://raw.github.com/dogfalo/materialize/master/images/materialize.gif) -=========== - -[![Travis CI](https://travis-ci.org/Dogfalo/materialize.svg?branch=master)](https://travis-ci.org/Dogfalo/materialize)[![devDependency Status](https://david-dm.org/Dogfalo/materialize/dev-status.svg)](https://david-dm.org/Dogfalo/materialize#info=devDependencies)[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/Dogfalo/materialize?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -[Materialize](http://materializecss.com/), a CSS Framework based on material design - -### Current Version : v0.98.0 - -## Sass Requirements: -- Ruby Sass 3.3+, LibSass 0.6+ - -## Supported Browsers: -Chrome 35+, Firefox 31+, Safari 7+, IE 10+ - -## Changelog -Bolded styling surrounded by emojis indicates a breaking change. - -- v0.98.0 (January 25th) - - :no_good: **Standardized plugin option naming to camelcase (please check your plugin calls to make sure all the options are camelcase)** :no_good: - - Added FABs in image cards - - Added swipeable tabs - - Fixed carousel misalignment when switching quickly - - Fixed carousel resize bug where slide widths wouldn't change when changing window size - - Improved tabs compatibility with cards - - Fixed bug where using backspace to delete chips would navigate back in certain browsers - - Added autocomplete integration with chips - - Upgraded noUiSlider to version 9 with support for vertical sliders - -- v0.97.8 (October 30th, 2016) - - **Refactored Modal plugin** - - Tabs now supported in navbar - - Chips data can now be reinitiailized - - Minor side nav fixes - - FAB to toolbar component added - - Fixed dropdown options bug -- v0.97.7 (July 23rd, 2016) - - Basic horizontal cards - - Carousel bug fixes and new features - - Updated sidenav styles and new component - - Meteor package now supports Sass - - Autocomplete form component - - Chips jQuery plugin -- v0.97.6 (April 1st, 2016) - - **Removed deprecated material icons from project** - - **Changed /font directory to /fonts** - - Datepicker and ScrollSpy now compatible with jQuery 2.2.x - - Responsive tables now work with empty cells - - Added focus states to checkboxes, switches, and radio buttons - - Sidenav and Modals no longer cause flicker with scrollbar - - Materialbox overflow and z-index issues fixed - - Added new option for Card actions within a Card reveal - - - - -## Contributing -[Please read CONTRIBUTING.md for more information](CONTRIBUTING.md) - -## Testing -We use Jasmine as our testing framework and we're trying to write a robust test suite for our components. If you want to help, [here's a starting guide on how to write tests in Jasmine](https://docs.google.com/document/d/1dVM6qGt_b_y9RRhr9X7oZfFydaJIEqB9CT7yekv-4XE/edit?usp=sharing) diff --git a/node_modules/materialize-css/_SpecRunner.html b/node_modules/materialize-css/_SpecRunner.html deleted file mode 100644 index bd0b4a0..0000000 --- a/node_modules/materialize-css/_SpecRunner.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - Jasmine Spec Runner - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/materialize-css/about.html b/node_modules/materialize-css/about.html deleted file mode 100644 index 3e5681e..0000000 --- a/node_modules/materialize-css/about.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - - - - About - Materialize - - - - - - - - - - - - - - - - -
- - -
-
-
-
-
-

About

-

Learn about the Material Design and our Project Team.

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

Material Design

-

Created and designed by Google, Material Design is a design language that combines the classic principles of successful design - along with innovation and technology. Google's goal is to develop a system of design that allows for a unified user experience - across all their products on any platform.

-
- -
-
-

Principles

-
- -

Material is the metaphor

-

The metaphor of material defines the relationship between space and motion. The idea is that the technology is inspired by paper and ink and is utilized to facilitate creativity and innovation. Surfaces and edges provide familiar visual cues that allow users to quickly understand the technology beyond the physical world.

-
-
- -
- -

Bold, graphic, intentional

-

Elements and components such as grids, typography, color, and imagery are not only visually pleasing, but also create a sense of hierarchy, meaning, and focus. Emphasis on different actions and components create a visual guide for users.

-
-
- -
- -

Motion provides meaning

-

Motion allows the user to draw a parallel between what they see on the screen and in real life. By providing both feedback and familiarity, this allows the user to fully immerse him or herself into unfamiliar technology. Motion contains consistency and continuity in addition to giving users additional subconscious information about objects and transformations.

-
-
-
- - -
-
-

Meet the Team

-

We are a team of students from Carnegie Mellon University.

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

Alvin Wang

-

Alvin is an Information Systems and Human Computer Interaction Major. He worked as a Software Engineer at Fidelity Investments this past summer.

-
-
- -
-
-
- -
-
-
-

Alan Chang

-

Alan is an Information Systems major with a minor in computer science. He worked at as a Front End Developer at Shift Collaborative this past summer.

-
-
- -
-
-
- -
-
-
-

Alex Mark

-

Alex is an Information Systems major with a minor in Human Computer Interaction. He worked as a software developer for Intuit this past summer.

-
-
- -
-
-
- -
-
-
-

Kevin Louie

-

Kevin is an Information Systems major with a minor in Human Computer Interaction. This past summer, he worked as a technology analyst at PPG Industries.

-
-
-
- -
- -
- -
- -
-
-
-
-
-
-
Help Materialize Grow
-

We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

-
- - - - - -
-
-
Join the Discussion
-

We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

- Chat -
-
-
Connect
- -
- -
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/badges.html b/node_modules/materialize-css/badges.html deleted file mode 100644 index c51acbf..0000000 --- a/node_modules/materialize-css/badges.html +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - Badges - Materialize - - - - - - - - - - - - - - - - -
- - - -
-
-
- -
- - -
- -
-
-

Badges can notify you that there are new or unread messages or notifications. Add the new class to the badge to give it the background.

- -

Collections

- -
- 1Alan - 4Alan - Alan - 14Alan -
-

-  <div class="collection">
-    <a href="#!" class="collection-item"><span class="badge">1</span>Alan</a>
-    <a href="#!" class="collection-item"><span class="new badge">4</span>Alan</a>
-    <a href="#!" class="collection-item">Alan</a>
-    <a href="#!" class="collection-item"><span class="badge">14</span>Alan</a>
-  </div>
-            
-
-
-
- - - - - -
-
-
- -

Badges in Collapsibles

- -
    -
  • -
    4filter_dramaFirst
    -

    Lorem ipsum dolor sit amet.

    -
  • -
  • -
    1placeSecond
    -

    Lorem ipsum dolor sit amet.

    -
  • -
-
- -

-<ul class="collapsible" data-collapsible="accordion">
-  <li>
-    <div class="collapsible-header"><span class="new badge">4</span><i class="material-icons">filter_drama</i>First</div>
-    <div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
-  </li>
-  <li>
-    <div class="collapsible-header"><span class="badge">1</span><i class="material-icons">place</i>Second</div>
-    <div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
-  </li>
-</ul>
- -
-
-
- -
- -
-
-

Options

-

You can customize captions in many ways.

-
-
- -
-
Custom Caption
- -
-

You can explicitly set the caption in a badge using the data-badge-caption attribute.

-

-  <span class="new badge" data-badge-caption="custom caption">4</span>
-  <span class="badge" data-badge-caption="custom caption">4</span>
-            
-
-
- -
-
Colors
-
-
- Red4 - Blue4 -
-
-
-

You can use our color classes to set the background-color of the badge.

-

-  <span class="new badge red">4</span>
-  <span class="new badge blue">4</span>
-            
-
-
- -
- - - -
- -
-
-
- - -
- -
-
- -
-
- - -
-
-
-
-
Help Materialize Grow
-

We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

-
- - - - - -
-
-
Join the Discussion
-

We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

- Chat -
-
-
Connect
- -
- -
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/bin/jquery-2.1.1.min.js b/node_modules/materialize-css/bin/jquery-2.1.1.min.js deleted file mode 100644 index c4643af..0000000 --- a/node_modules/materialize-css/bin/jquery-2.1.1.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! jQuery v2.1.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+Math.random()}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b) -},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthx",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*\s*$/g,ib={option:[1,""],thead:[1,"
","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n(" -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/buttons.html b/node_modules/materialize-css/buttons.html deleted file mode 100644 index d91362f..0000000 --- a/node_modules/materialize-css/buttons.html +++ /dev/null @@ -1,388 +0,0 @@ - - - - - - - - - Buttons - Materialize - - - - - - - - - - - - - - - - -
- - - -
-
-
- -
-
-

- There are 3 main button types described in material design. The raised button is a standard button that signify actions and seek to give depth to a mostly flat page. The floating circular action button is meant for very important functions. Flat buttons are usually used within elements that already have depth like cards or modals. -

-

Raised

- button - cloudbutton - cloudbutton -

-<a class="waves-effect waves-light btn">button</a>
-<a class="waves-effect waves-light btn"><i class="material-icons left">cloud</i>button</a>
-<a class="waves-effect waves-light btn"><i class="material-icons right">cloud</i>button</a>
-        
-
-
-

Floating

- add

-

-  <a class="btn-floating btn-large waves-effect waves-light red"><i class="material-icons">add</i></a>
-        
-
- -

Fixed Action Button

-

If you want a fixed floating action button, you can add multiple actions that will appear on hover. Our demo is in the bottom righthand corner of the page.

-

-  <div class="fixed-action-btn">
-    <a class="btn-floating btn-large red">
-      <i class="large material-icons">mode_edit</i>
-    </a>
-    <ul>
-      <li><a class="btn-floating red"><i class="material-icons">insert_chart</i></a></li>
-      <li><a class="btn-floating yellow darken-1"><i class="material-icons">format_quote</i></a></li>
-      <li><a class="btn-floating green"><i class="material-icons">publish</i></a></li>
-      <li><a class="btn-floating blue"><i class="material-icons">attach_file</i></a></li>
-    </ul>
-  </div>
-        
- -

You can also open and close the Fixed Action Button Menu programatically.

-

-  $('.fixed-action-btn').openFAB();
-  $('.fixed-action-btn').closeFAB();
-  $('.fixed-action-btn.toolbar').openToolbar();
-  $('.fixed-action-btn.toolbar').closeToolbar();
-        
-
-

Horizontal FAB

-

Creating a horizontal FAB is easy! Just add the class horizontal to the FAB.

- -

-  <div class="fixed-action-btn horizontal">
-    <a class="btn-floating btn-large red">
-      <i class="large material-icons">mode_edit</i>
-    </a>
-    <ul>
-      <li><a class="btn-floating red"><i class="material-icons">insert_chart</i></a></li>
-      <li><a class="btn-floating yellow darken-1"><i class="material-icons">format_quote</i></a></li>
-      <li><a class="btn-floating green"><i class="material-icons">publish</i></a></li>
-      <li><a class="btn-floating blue"><i class="material-icons">attach_file</i></a></li>
-    </ul>
-  </div>
-        
- - -
- -

Click-only FAB

-

If you want to disable the hover behaviour, and instead toggle the FAB menu when the user clicks on the large button (works great on mobile!), just add the click-to-toggle class to the FAB.

- -

-  <div class="fixed-action-btn horizontal click-to-toggle">
-    <a class="btn-floating btn-large red">
-      <i class="material-icons">menu</i>
-    </a>
-    <ul>
-      <li><a class="btn-floating red"><i class="material-icons">insert_chart</i></a></li>
-      <li><a class="btn-floating yellow darken-1"><i class="material-icons">format_quote</i></a></li>
-      <li><a class="btn-floating green"><i class="material-icons">publish</i></a></li>
-      <li><a class="btn-floating blue"><i class="material-icons">attach_file</i></a></li>
-    </ul>
-  </div>
-        
- -

FAB to Toolbar

-

Instead of displaying individual button options, you can transition your FAB into a toolbar on click. Just add the toolbar class to the FAB.

- -

-  <div class="fixed-action-btn toolbar">
-    <a class="btn-floating btn-large red">
-      <i class="large material-icons">mode_edit</i>
-    </a>
-    <ul>
-      <li class="waves-effect waves-light"><a href="#!"><i class="material-icons">insert_chart</i></a></li>
-      <li class="waves-effect waves-light"><a href="#!"><i class="material-icons">format_quote</i></a></li>
-      <li class="waves-effect waves-light"><a href="#!"><i class="material-icons">publish</i></a></li>
-      <li class="waves-effect waves-light"><a href="#!"><i class="material-icons">attach_file</i></a></li>
-    </ul>
-  </div>
-        
- -
-
-

Flat

-

Flat buttons are used to reduce excessive layering. For example, flat buttons are usually used for actions within a card or modal so there aren't too many overlapping shadows.

- Button -

-  <a class="waves-effect waves-teal btn-flat">Button</a>
-        
-
-
-

Submit Button

-

When you use a button to submit a form, instead of using a input tag, use a button tag with a type submit

- -

-  <button class="btn waves-effect waves-light" type="submit" name="action">Submit
-    <i class="material-icons right">send</i>
-  </button>
-        
-
-
-

Large

-

This button has a larger height for buttons that need more attention.

- Button - cloudbutton - cloudbutton -

-<a class="waves-effect waves-light btn-large">Button</a>
-<a class="waves-effect waves-light btn-large"><i class="material-icons left">cloud</i>button</a>
-<a class="waves-effect waves-light btn-large"><i class="material-icons right">cloud</i>button</a>
-        
-
-
-

Disabled

-

This style can be applied to all button types

- Button - Button - Button - add -

-<a class="btn-large disabled">Button</a>
-<a class="btn disabled">Button</a>
-<a class="btn-flat disabled">Button</a>
-<a class="btn-floating disabled"><i class="material-icons">add</i></a>
-        
-
- -
- -
-
-
- - -
-
- -
-
-
- -
-
- -
-
-
-
-
Help Materialize Grow
-

We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

-
- - - -
- -
-
-
Join the Discussion
-

We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

- Chat -
-
-
Connect
- -
- -
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/cards.html b/node_modules/materialize-css/cards.html deleted file mode 100644 index cddc24b..0000000 --- a/node_modules/materialize-css/cards.html +++ /dev/null @@ -1,747 +0,0 @@ - - - - - - - - - Cards - Materialize - - - - - - - - - - - - - - - - -
- - - -
-
-
- -
- - -
-

Cards are a convenient means of displaying content composed of different types of objects. They’re also well-suited for presenting similar objects whose size or supported actions can vary considerably, like photos with captions of variable length.

-

Basic Card

-
-
- -
-
- Card Title -

I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

-
- -
-
- -
-
-

-      <div class="row">
-        <div class="col s12 m6">
-          <div class="card blue-grey darken-1">
-            <div class="card-content white-text">
-              <span class="card-title">Card Title</span>
-              <p>I am a very simple card. I am good at containing small bits of information.
-              I am convenient because I require little markup to use effectively.</p>
-            </div>
-            <div class="card-action">
-              <a href="#">This is a link</a>
-              <a href="#">This is a link</a>
-            </div>
-          </div>
-        </div>
-      </div>
-            
-
-
-
-
- -
-
- -
-

Image Card

-
-
- - Card Title -
-
-

I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

-
- -
-
-
-



-

- Here is the standard card with an image thumbnail. -

-
-
-
-

-      <div class="row">
-        <div class="col s12 m7">
-          <div class="card">
-            <div class="card-image">
-              <img src="images/sample-1.jpg">
-              <span class="card-title">Card Title</span>
-            </div>
-            <div class="card-content">
-              <p>I am a very simple card. I am good at containing small bits of information.
-              I am convenient because I require little markup to use effectively.</p>
-            </div>
-            <div class="card-action">
-              <a href="#">This is a link</a>
-            </div>
-          </div>
-        </div>
-      </div>
-            
-
-
-
-
- -
-
- -
-

FABs in Cards

-
-
- - Card Title - add -
-
-

I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

-
-
-
-
-



-

- Here is an image card with a Floating Action Button. -

-
-
-
-
-
-
- - add -
-
- Card Title -

I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

-
-
-
-
-

- Here is an image card with a large Floating Action Button. -

-
-
-
-

-  <div class="row">
-    <div class="col s12 m6">
-      <div class="card">
-        <div class="card-image">
-          <img src="images/sample-1.jpg">
-          <span class="card-title">Card Title</span>
-          <a class="btn-floating halfway-fab waves-effect waves-light red"><i class="material-icons">add</i></a>
-        </div>
-        <div class="card-content">
-          <p>I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.</p>
-        </div>
-      </div>
-    </div>
-  </div>
-            
-
-
-
-
- -
-
- -
-

Horizontal Card

-
-
- -
-
-
-

I am a very simple card. I am good at containing small bits of information.

-
- -
-
-
-
-



-

- Here is the standard card with a horizontal image. -

-
-
-
-

-  <div class="col s12 m7">
-    <h2 class="header">Horizontal Card</h2>
-    <div class="card horizontal">
-      <div class="card-image">
-        <img src="http://lorempixel.com/100/190/nature/6">
-      </div>
-      <div class="card-stacked">
-        <div class="card-content">
-          <p>I am a very simple card. I am good at containing small bits of information.</p>
-        </div>
-        <div class="card-action">
-          <a href="#">This is a link</a>
-        </div>
-      </div>
-    </div>
-  </div>
-            
-
-
-
-
- -
-
- -
-

Card Reveal

-
-
- -
-
- Card Titlemore_vert - -

This is a link

-
-
- Card Titleclose -

Here is some more information about this product that is only revealed once clicked on.

-
-
-
-
-



-

- Here you can add a card that reveals more information once clicked. Just add the card-reveal div with a span.card-title inside to make this work. Add the class activator to an element inside the card to allow it to open the card reveal. -

-
-
-
-

-  <div class="card">
-    <div class="card-image waves-effect waves-block waves-light">
-      <img class="activator" src="images/office.jpg">
-    </div>
-    <div class="card-content">
-      <span class="card-title activator grey-text text-darken-4">Card Title<i class="material-icons right">more_vert</i></span>
-      <p><a href="#">This is a link</a></p>
-    </div>
-    <div class="card-reveal">
-      <span class="card-title grey-text text-darken-4">Card Title<i class="material-icons right">close</i></span>
-      <p>Here is some more information about this product that is only revealed once clicked on.</p>
-    </div>
-  </div>
-            
-
-
-
-
-

Card Action Options

-
-
- -
-
- Card Titlemore_vert - -

This is a link

-
-
- Card Titleclose -

Here is some more information about this product that is only revealed once clicked on.

-
- - -
-
-
-

-

- The default state is having the card-reveal go over the card-action. -

-
-
-
-
-
-
- -
-
- Card Titlemore_vert - -

This is a link

-
- - - -
- Card Titleclose -

Here is some more information about this product that is only revealed once clicked on.

-
-
-
-
-

- You can make your card-action always visible by adding the class sticky-action to the overall card. -

-
-
-
-

-  <div class="card sticky-action">
-    ...
-
-    <div class="card-action">...</div>
-
-    <div class="card-reveal">...</div>
-  </div>
-            
-
-
-
- - -
-
- -
-

Tabs in Cards

-

- You can add tabs to your cards by adding a dividing cards-tabs div inbetween your header content and your tab content. -

-

-  <div class="card">
-    <div class="card-content">
-      <p>I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.</p>
-    </div>
-    <div class="card-tabs">
-      <ul class="tabs tabs-fixed-width">
-        <li class="tab"><a href="#test4">Test 1</a></li>
-        <li class="tab"><a class="active" href="#test5">Test 2</a></li>
-        <li class="tab"><a href="#test6">Test 3</a></li>
-      </ul>
-    </div>
-    <div class="card-content grey lighten-4">
-      <div id="test4">Test 1</div>
-      <div id="test5">Test 2</div>
-      <div id="test6">Test 3</div>
-    </div>
-  </div>
-
-
-
-
-

White

-
-
-

I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

-
-
- -
-
-
Test 1
-
Test 2
-
Test 3
-
-
-
-
-

-

- Basic white background card with tabs. -

-
-
-
-
-

Colored

-
-
-

I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

-
-
- -
-
-
Test 1
-
Test 2
-
Test 3
-
-
-
-
-

-

- Colored or dark background card with tabs. -

-
-
-
- - -
-
- -
-

Card Sizes

-

If you want to have uniformly sized cards, you can use our premade size classes. Just add the size class in addition to the card class.

-

-  <div class="card small">
-    <!-- Card Content -->
-  </div>
-            
-
-
-
-
-

Small

-
-
- - Card Title -
-
-

I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

-
- -
-
-
-

-

- The Small Card limits the height of the card to 300px. -

-
-
- -
-
-

Medium

-
-
- - Card Title -
-
-

I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

-
- -
-
-
-

-

- The Medium Card limits the height of the card to 400px. -

-
-
- -
-
-

Large

-
-
- - Card Title -
-
-

I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

-
- -
-
-
-

-

- The Large Card limits the height of the card to 500px. -

-
-
-
- - -
-
- -
-

Card Panel

-
I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively. I am similar to what is called a panel in other frameworks. -
-
-
-



-

- For a simpler card with less markup, try using a card panel which just has padding and a shadow effect -

-
-
-
-

-    <div class="row">
-      <div class="col s12 m5">
-        <div class="card-panel teal">
-          <span class="white-text">I am a very simple card. I am good at containing small bits of information.
-          I am convenient because I require little markup to use effectively. I am similar to what is called a panel in other frameworks.
-          </span>
-        </div>
-      </div>
-    </div>
-            
-
-
-
- - -
- - - -
-
- - -
-
-
-
-
Help Materialize Grow
-

We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

-
- - - -
- -
-
-
Join the Discussion
-

We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

- Chat -
-
-
Connect
- -
- -
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/carousel.html b/node_modules/materialize-css/carousel.html deleted file mode 100644 index 69dd87d..0000000 --- a/node_modules/materialize-css/carousel.html +++ /dev/null @@ -1,384 +0,0 @@ - - - - - - - - - Carousel - Materialize - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- - -
-

Introduction

-

Our Carousel is a robust and versatile component that can be an image slider, to an item carousel, to an onboarding experience. It is touch enabled making it especially smooth to use on mobile.

-

Note: This is also touch compatible! Try swiping with your finger to scroll through the carousel.


- -
- -

-  <div class="carousel">
-    <a class="carousel-item" href="#one!"><img src="http://lorempixel.com/250/250/nature/1"></a>
-    <a class="carousel-item" href="#two!"><img src="http://lorempixel.com/250/250/nature/2"></a>
-    <a class="carousel-item" href="#three!"><img src="http://lorempixel.com/250/250/nature/3"></a>
-    <a class="carousel-item" href="#four!"><img src="http://lorempixel.com/250/250/nature/4"></a>
-    <a class="carousel-item" href="#five!"><img src="http://lorempixel.com/250/250/nature/5"></a>
-  </div>
-      
-
- - -
-

jQuery Initialization

-

-    $(document).ready(function(){
-      $('.carousel').carousel();
-    });
-        
-
- -

jQuery Plugin Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Option NameDescription
durationTransition duration in milliseconds. (Default: 200)
distPerspective zoom. If 0, all items are the same size. (Default: -100)
shiftSet the spacing of the center item. (Default: 0)
paddingSet the padding between non center items. (Default: 0)
fullWidthMake the carousel a full width slider like the second example. (Default: false)
indicatorsSet to true to show indicators. (Default: false)
noWrapDon't wrap around and cycle through items. (Default: false)
-
- -

jQuery Plugin Methods

-

We have methods to pause, start, move to next and move to previous slide.

-

-// Next slide
-$('.carousel').carousel('next');
-$('.carousel').carousel('next', 3); // Move next n times.
-// Previous slide
-$('.carousel').carousel('prev');
-$('.carousel').carousel('prev', 4); // Move prev n times.
-// Set to nth slide
-$('.carousel').carousel('set', 4);
-      
-
- - -
-

Full Width Slider

-

Our carousel has a full width option that makes it into a simple and elegant image carousel. You can also have indicators that show up on the bottom of the slider.

-

Note: This is also touch compatible! Try swiping with your finger to scroll through the carousel.


- -
- -

-  <div class="carousel carousel-slider">
-    <a class="carousel-item" href="#one!"><img src="http://lorempixel.com/800/400/food/1"></a>
-    <a class="carousel-item" href="#two!"><img src="http://lorempixel.com/800/400/food/2"></a>
-    <a class="carousel-item" href="#three!"><img src="http://lorempixel.com/800/400/food/3"></a>
-    <a class="carousel-item" href="#four!"><img src="http://lorempixel.com/800/400/food/4"></a>
-  </div>
-        
- -

-  $('.carousel.carousel-slider').carousel({fullWidth: true});
-        
-
- - -
-

Special Options

-

The carousel doesn't only support images but also allows you to make content carousels. You can add fixed items to your carousel by adding a div with the class carousel-fixed-item and adding your fixed content in there.

-

Note: This is also touch compatible! Try swiping with your finger to scroll through the carousel.

-
- -
-

-  <div class="carousel carousel-slider center" data-indicators="true">
-    <div class="carousel-fixed-item center">
-      <a class="btn waves-effect white grey-text darken-text-2">button</a>
-    </div>
-    <div class="carousel-item red white-text" href="#one!">
-      <h2>First Panel</h2>
-      <p class="white-text">This is your first panel</p>
-    </div>
-    <div class="carousel-item amber white-text" href="#two!">
-      <h2>Second Panel</h2>
-      <p class="white-text">This is your second panel</p>
-    </div>
-    <div class="carousel-item green white-text" href="#three!">
-      <h2>Third Panel</h2>
-      <p class="white-text">This is your third panel</p>
-    </div>
-    <div class="carousel-item blue white-text" href="#four!">
-      <h2>Fourth Panel</h2>
-      <p class="white-text">This is your fourth panel</p>
-    </div>
-  </div>
-        
-

-  $('.carousel.carousel-slider').carousel({fullWidth: true});
-        
-
- -
- - - - - -
- -
- -
-
- -
-
-
-
-
Help Materialize Grow
-

We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

-
- - - -
- -
-
-
Join the Discussion
-

We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

- Chat -
-
-
Connect
- -
- -
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/chips.html b/node_modules/materialize-css/chips.html deleted file mode 100644 index 6e3a451..0000000 --- a/node_modules/materialize-css/chips.html +++ /dev/null @@ -1,419 +0,0 @@ - - - - - - - - - Chips - Materialize - - - - - - - - - - - - - - - - -
- - - -
-
-
- -
- -
-

Introduction

-

- Chips can be used to represent small blocks of information. They are most commonly used either for contacts or for tags. -

-
- Contact Person - Jane Doe -
-
- Tag - close -
-
- -
-

Contacts

-

- To create a contact chip just add an img inside. -

-

-  <div class="chip">
-    <img src="images/yuna.jpg" alt="Contact Person">
-    Jane Doe
-  </div>
-        
-
- -
-

Tags

-

- To create a tag chip just add an close icon inside with the class close. -

-

-  <div class="chip">
-    Tag
-    <i class="close material-icons">close</i>
-  </div>
-        
-
- -
-

Javascript Plugin Usage

-

To add tags, just enter your tag text and press enter. You can delete them by clicking on the close icon or by using your delete button.

-
-
-

Set initial tags.

-
-
-

Use placeholders and override hint texts.

-
-
-

Use autocomplete with chips.

-
-
- -
-

Markup

-

-  <div class="chips"></div>
-  <div class="chips chips-initial"></div>
-  <div class="chips chips-placeholder"></div>
-  <div class="chips chips-autocomplete"></div>
-        
-

jQuery Initialization

-

-  $('.chips').material_chip();
-  $('.chips-initial').material_chip({
-    data: [{
-      tag: 'Apple',
-    }, {
-      tag: 'Microsoft',
-    }, {
-      tag: 'Google',
-    }],
-  });
-  $('.chips-placeholder').material_chip({
-    placeholder: 'Enter a tag',
-    secondaryPlaceholder: '+Tag',
-  });
-  $('.chips-autocomplete').material_chip({
-    autocompleteData: {
-      'Apple': null,
-      'Microsoft': null,
-      'Google': null
-    }
-  });
-        
-

Chip data object

-

-  var chip = {
-    tag: 'chip content',
-    image: '', //optional
-    id: 1, //optional
-  };
-        
- -
-

jQuery Plugin Options

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Option NameTypeDescription
dataarraySet the chip data (look at the Chip data object)
placeholderstringSet first placeholder when there are no tags.
secondaryPlaceholderstringSet second placeholder when adding additional tags.
autocompleteDataObjectSet autocomplete data.
autocompleteLimitIntegerSet autocomplete limit.
-
- -
-

Events

-

Material chips exposes a few events for hooking - into chips functionality. -

- - - - - - - - - - - - - - - - - - - - - -
EventDescription
chips.addthis method is triggered when a chip is added.
chips.deletethis method is triggered when a chip is deleted.
chips.selectthis method is triggered when a chip is selected.
- -

- -

-  $('.chips').on('chip.add', function(e, chip){
-    // you have the added chip here
-  });
-
-  $('.chips').on('chip.delete', function(e, chip){
-    // you have the deleted chip here
-  });
-
-  $('.chips').on('chip.select', function(e, chip){
-    // you have the selected chip here
-  });
-        
- -
-
-

Methods

-

- Use these methods to access the chip data. -

- - - - - - - - - - - - - -
ParameterDescription
dataIt returns the stored data.
- -

- -

-  $('.chips-initial').material_chip('data');
-        
- -
-
- - -
-
-
- - -
- -
-
- -
-
-
-
-
-
-
Help Materialize Grow
-

We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

-
- - - -
- -
-
-
Join the Discussion
-

We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

- Chat -
-
-
Connect
- -
- -
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/collapsible.html b/node_modules/materialize-css/collapsible.html deleted file mode 100644 index bb3be70..0000000 --- a/node_modules/materialize-css/collapsible.html +++ /dev/null @@ -1,379 +0,0 @@ - - - - - - - - - Collapsible - Materialize - - - - - - - - - - - - - - - - -
- - - -
-
-
- -
- -
-

Introduction

-

- Collapsibles are accordion elements that expand when clicked on. They allow you to hide content that is not immediately relevant to the user. - -

    -
  • -
    filter_dramaFirst
    -
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    -
  • -
  • -
    placeSecond
    -
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    -
  • -
  • -
    whatshotThird
    -
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    -
  • -
-
- -
-

Popout

-

- To create a popout collapsible, just add the class popout. - -

    -
  • -
    subtitlesFirst
    -
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    -
  • -
  • -
    gamesSecond
    -
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    -
  • -
  • -
    library_booksThird
    -
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    -
  • -
-

-  <ul class="collapsible popout" data-collapsible="accordion">
-        
-
- - - -
-

Collapsible HTML Structure

-

-  <ul class="collapsible" data-collapsible="accordion">
-    <li>
-      <div class="collapsible-header"><i class="material-icons">filter_drama</i>First</div>
-      <div class="collapsible-body"><span>Lorem ipsum dolor sit amet.</span></div>
-    </li>
-    <li>
-      <div class="collapsible-header"><i class="material-icons">place</i>Second</div>
-      <div class="collapsible-body"><span>Lorem ipsum dolor sit amet.</span></div>
-    </li>
-    <li>
-      <div class="collapsible-header"><i class="material-icons">whatshot</i>Third</div>
-      <div class="collapsible-body"><span>Lorem ipsum dolor sit amet.</span></div>
-    </li>
-  </ul>
-        
-
- -
-

Initialization

- Collapsible elements only need initialization if they are added dynamically. You can also pass in options inside the initialization, however this can be done in the HTML markup as well. -

-  $(document).ready(function(){
-    $('.collapsible').collapsible();
-  });
-        
- -

-
Preselected Section
- If you want a collapsible with a preopened section just add the active class to the collapsible-header. -
    -
  • -
    filter_dramaFirst
    -
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    -
  • -
  • -
    placeSecond
    -
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    -
  • -
  • -
    whatshotThird
    -
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    -
  • -
-

-  <div class="collapsible-header active"><i class="mdi-maps-place"></i>Second</div>
-        
-
- -
-

Options

- You can customize the behavior of each collapsible using these options. For example, you can call a custom function to run when a collapsbile is opened or closed. The function passes the li element that was opened or closed as an argument. -

-  $('.collapsible').collapsible({
-    accordion: false, // A setting that changes the collapsible behavior to expandable instead of the default accordion style
-    onOpen: function(el) { alert('Open'); }, // Callback for Collapsible open
-    onClose: function(el) { alert('Closed'); } // Callback for Collapsible close
-  });
-        
-

- -

Collapsible Types

- There are two ways a collapsible can behave. It can either allow multiple sections to stay open, or it can only allow one section to stay open at a time, which is called an accordion. See below for a demo of each type -
-
-
-
Accordion
-
-
    -
  • -
    filter_dramaFirst
    -
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    -
  • -
  • -
    placeSecond
    -
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    -
  • -
  • -
    whatshotThird
    -
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    -
  • -
-
-
- This is default behavior, but you can explicitly set it by setting the data-collapsible attribute in HTML. -

-    <ul class="collapsible" data-collapsible="accordion">
-            
-
-
-
-
-
-
Expandable
-
-
    -
  • -
    filter_dramaFirst
    -
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    -
  • -
  • -
    placeSecond
    -
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    -
  • -
  • -
    whatshotThird
    -
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    -
  • -
-
-
-

-  <ul class="collapsible" data-collapsible="expandable">
-            
-
-
-
- -
- - - - - -
-
- -
-
-
-
-
Help Materialize Grow
-

We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

-
- - - -
- -
-
-
Join the Discussion
-

We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

- Chat -
-
-
Connect
- -
- -
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/collections.html b/node_modules/materialize-css/collections.html deleted file mode 100644 index 90337dc..0000000 --- a/node_modules/materialize-css/collections.html +++ /dev/null @@ -1,413 +0,0 @@ - - - - - - - - - Collections - Materialize - - - - - - - - - - - - - - - - -
- - - -
-
-
- -
- - -
- -
-
-

Collections allow you to group list objects together.

-

Basic

-
    -
  • Alvin
  • -
  • Alvin
  • -
  • Alvin
  • -
  • Alvin
  • -
-

-    <ul class="collection">
-      <li class="collection-item">Alvin</li>
-      <li class="collection-item">Alvin</li>
-      <li class="collection-item">Alvin</li>
-      <li class="collection-item">Alvin</li>
-    </ul>
-            
-
-
-
-
- - - -
-
-
-

Headers

-
    -
  • First Names

  • -
  • Alvin
  • -
  • Alvin
  • -
  • Alvin
  • -
  • Alvin
  • -
-

-      <ul class="collection with-header">
-        <li class="collection-header"><h4>First Names</h4></li>
-        <li class="collection-item">Alvin</li>
-        <li class="collection-item">Alvin</li>
-        <li class="collection-item">Alvin</li>
-        <li class="collection-item">Alvin</li>
-      </ul>
-            
-
-
-
- - -
-
-
-

Secondary content

- -

-      <ul class="collection with-header">
-        <li class="collection-header"><h4>First Names</h4></li>
-        <li class="collection-item"><div>Alvin<a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
-        <li class="collection-item"><div>Alvin<a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
-        <li class="collection-item"><div>Alvin<a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
-        <li class="collection-item"><div>Alvin<a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
-      </ul>
-            
-
- -
-
- -
-
-
-

Avatar Content

-
    -
  • - - Title -

    First Line
    - Second Line -

    - grade -
  • -
  • - folder - Title -

    First Line
    - Second Line -

    - grade -
  • -
  • - insert_chart - Title -

    First Line
    - Second Line -

    - grade -
  • -
  • - play_arrow - Title -

    First Line
    - Second Line -

    - grade -
  • -
-

-  <ul class="collection">
-    <li class="collection-item avatar">
-      <img src="images/yuna.jpg" alt="" class="circle">
-      <span class="title">Title</span>
-      <p>First Line <br>
-         Second Line
-      </p>
-      <a href="#!" class="secondary-content"><i class="material-icons">grade</i></a>
-    </li>
-    <li class="collection-item avatar">
-      <i class="material-icons circle">folder</i>
-      <span class="title">Title</span>
-      <p>First Line <br>
-         Second Line
-      </p>
-      <a href="#!" class="secondary-content"><i class="material-icons">grade</i></a>
-    </li>
-    <li class="collection-item avatar">
-      <i class="material-icons circle green">insert_chart</i>
-      <span class="title">Title</span>
-      <p>First Line <br>
-         Second Line
-      </p>
-      <a href="#!" class="secondary-content"><i class="material-icons">grade</i></a>
-    </li>
-    <li class="collection-item avatar">
-      <i class="material-icons circle red">play_arrow</i>
-      <span class="title">Title</span>
-      <p>First Line <br>
-         Second Line
-      </p>
-      <a href="#!" class="secondary-content"><i class="material-icons">grade</i></a>
-    </li>
-  </ul>
-            
-
- -
-
- -
-
-
-

Dismissable Content

-

You can just add the class dismissable to enable each collection item to be swiped away. This is only for touch enabled devices.

- -

-      <ul class="collection">
-        <li class="collection-item dismissable"><div>Alvin<a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
-        <li class="collection-item dismissable"><div>Alvin<a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
-        <li class="collection-item dismissable"><div>Alvin<a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
-        <li class="collection-item dismissable"><div>Alvin<a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
-      </ul>
-            
-
- -
-
- - - -
- - - -
-
- - -
-
-
-
-
Help Materialize Grow
-

We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

-
- - - -
- -
-
-
Join the Discussion
-

We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

- Chat -
-
-
Connect
- -
- -
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/color.html b/node_modules/materialize-css/color.html deleted file mode 100644 index 6b19b69..0000000 --- a/node_modules/materialize-css/color.html +++ /dev/null @@ -1,562 +0,0 @@ - - - - - - - - - Color - Materialize - - - - - - - - - - - - - - - - -
- - - -
-
-
- -
- -
-

Usage

-

- Here is a color palette based on the material design base colors. Each of these colors is defined with a base color class and an optional lighten or darken class. -

-
-
Background Color
-
-

To apply a background color, just add the color name and light/darkness as a class to the element.

-
This is a card panel with a teal lighten-2 class
-

-    <div class="card-panel teal lighten-2">This is a card panel with a teal lighten-2 class</div>
-            
-
- -
- -
Text Color
-
-

To apply a text color, just append -text to the color class like this:

-
This is a card panel with dark blue text
-

-    <div class="card-panel">
-      <span class="blue-text text-darken-2">This is a card panel with dark blue text</span>
-    </div>
-            
-
-
-
- -
-

Sass

-

- For background colors, you can apply the color simply by extending the classes like the example below. -

-

-  .ilike-blue-container {
-    @extend .blue, .lighten-4;
-  }
-        
- -

- For changing text color, you can apply the color simply by extending the classes like the example below. -

-

-  .ilike-blue-container {
-    @extend .blue-text, .text-lighten-4;
-  }
-        
-
-
- -

Color Palette

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
- - -
-
- -
-
-
- -
-
- -
-
-
-
-
Help Materialize Grow
-

We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

-
- - - -
- -
-
-
Join the Discussion
-

We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

- Chat -
-
-
Connect
- -
- -
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/css-transitions.html b/node_modules/materialize-css/css-transitions.html deleted file mode 100644 index 726704e..0000000 --- a/node_modules/materialize-css/css-transitions.html +++ /dev/null @@ -1,228 +0,0 @@ - - - - - - - - - CSS Transitions - Materialize - - - - - - - - - - - - - - - - -
- - - -
-
-
- -
- -
-

We've made some custom animation classes that will transition your content with only CSS. Each CSS transition consists of a base class that applies the necessary styles and additional classes that control the state of the transition.

- -

Scale

-

Use this scale in and out elements. Make sure to add the base transition class scale-transition. Then add the class scale-out to scale the element down until it is hidden. To start something as hidden, add the class scale-out first, and then add the class scale-in to scale the element up until it is shown.

- - add - - Toggle Scale - -

-  <!-- Scaled in -->
-  <a id="scale-demo" href="#!" class="btn-floating btn-large scale-transition">
-    <i class="material-icons">add</i>
-  </a>
-
-  <!-- Scaled out -->
-  <a id="scale-demo" href="#!" class="btn-floating btn-large scale-transition scale-out">
-    <i class="material-icons">add</i>
-  </a>
-  
-
- -
- -
-
-
- - -
-
- -
-
-
- -
-
- - -
-
-
-
-
Help Materialize Grow
-

We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

-
- - - -
- -
-
-
Join the Discussion
-

We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

- Chat -
-
-
Connect
- -
- -
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/css/ghpages-materialize.css b/node_modules/materialize-css/css/ghpages-materialize.css deleted file mode 100644 index e411bea..0000000 --- a/node_modules/materialize-css/css/ghpages-materialize.css +++ /dev/null @@ -1,11 +0,0 @@ -.materialize-red{background-color:#e51c23 !important}.materialize-red-text{color:#e51c23 !important}.materialize-red.lighten-5{background-color:#fdeaeb !important}.materialize-red-text.text-lighten-5{color:#fdeaeb !important}.materialize-red.lighten-4{background-color:#f8c1c3 !important}.materialize-red-text.text-lighten-4{color:#f8c1c3 !important}.materialize-red.lighten-3{background-color:#f3989b !important}.materialize-red-text.text-lighten-3{color:#f3989b !important}.materialize-red.lighten-2{background-color:#ee6e73 !important}.materialize-red-text.text-lighten-2{color:#ee6e73 !important}.materialize-red.lighten-1{background-color:#ea454b !important}.materialize-red-text.text-lighten-1{color:#ea454b !important}.materialize-red.darken-1{background-color:#d0181e !important}.materialize-red-text.text-darken-1{color:#d0181e !important}.materialize-red.darken-2{background-color:#b9151b !important}.materialize-red-text.text-darken-2{color:#b9151b !important}.materialize-red.darken-3{background-color:#a21318 !important}.materialize-red-text.text-darken-3{color:#a21318 !important}.materialize-red.darken-4{background-color:#8b1014 !important}.materialize-red-text.text-darken-4{color:#8b1014 !important}.red{background-color:#F44336 !important}.red-text{color:#F44336 !important}.red.lighten-5{background-color:#FFEBEE !important}.red-text.text-lighten-5{color:#FFEBEE !important}.red.lighten-4{background-color:#FFCDD2 !important}.red-text.text-lighten-4{color:#FFCDD2 !important}.red.lighten-3{background-color:#EF9A9A !important}.red-text.text-lighten-3{color:#EF9A9A !important}.red.lighten-2{background-color:#E57373 !important}.red-text.text-lighten-2{color:#E57373 !important}.red.lighten-1{background-color:#EF5350 !important}.red-text.text-lighten-1{color:#EF5350 !important}.red.darken-1{background-color:#E53935 !important}.red-text.text-darken-1{color:#E53935 !important}.red.darken-2{background-color:#D32F2F !important}.red-text.text-darken-2{color:#D32F2F !important}.red.darken-3{background-color:#C62828 !important}.red-text.text-darken-3{color:#C62828 !important}.red.darken-4{background-color:#B71C1C !important}.red-text.text-darken-4{color:#B71C1C !important}.red.accent-1{background-color:#FF8A80 !important}.red-text.text-accent-1{color:#FF8A80 !important}.red.accent-2{background-color:#FF5252 !important}.red-text.text-accent-2{color:#FF5252 !important}.red.accent-3{background-color:#FF1744 !important}.red-text.text-accent-3{color:#FF1744 !important}.red.accent-4{background-color:#D50000 !important}.red-text.text-accent-4{color:#D50000 !important}.pink{background-color:#e91e63 !important}.pink-text{color:#e91e63 !important}.pink.lighten-5{background-color:#fce4ec !important}.pink-text.text-lighten-5{color:#fce4ec !important}.pink.lighten-4{background-color:#f8bbd0 !important}.pink-text.text-lighten-4{color:#f8bbd0 !important}.pink.lighten-3{background-color:#f48fb1 !important}.pink-text.text-lighten-3{color:#f48fb1 !important}.pink.lighten-2{background-color:#f06292 !important}.pink-text.text-lighten-2{color:#f06292 !important}.pink.lighten-1{background-color:#ec407a !important}.pink-text.text-lighten-1{color:#ec407a !important}.pink.darken-1{background-color:#d81b60 !important}.pink-text.text-darken-1{color:#d81b60 !important}.pink.darken-2{background-color:#c2185b !important}.pink-text.text-darken-2{color:#c2185b !important}.pink.darken-3{background-color:#ad1457 !important}.pink-text.text-darken-3{color:#ad1457 !important}.pink.darken-4{background-color:#880e4f !important}.pink-text.text-darken-4{color:#880e4f !important}.pink.accent-1{background-color:#ff80ab !important}.pink-text.text-accent-1{color:#ff80ab !important}.pink.accent-2{background-color:#ff4081 !important}.pink-text.text-accent-2{color:#ff4081 !important}.pink.accent-3{background-color:#f50057 !important}.pink-text.text-accent-3{color:#f50057 !important}.pink.accent-4{background-color:#c51162 !important}.pink-text.text-accent-4{color:#c51162 !important}.purple{background-color:#9c27b0 !important}.purple-text{color:#9c27b0 !important}.purple.lighten-5{background-color:#f3e5f5 !important}.purple-text.text-lighten-5{color:#f3e5f5 !important}.purple.lighten-4{background-color:#e1bee7 !important}.purple-text.text-lighten-4{color:#e1bee7 !important}.purple.lighten-3{background-color:#ce93d8 !important}.purple-text.text-lighten-3{color:#ce93d8 !important}.purple.lighten-2{background-color:#ba68c8 !important}.purple-text.text-lighten-2{color:#ba68c8 !important}.purple.lighten-1{background-color:#ab47bc !important}.purple-text.text-lighten-1{color:#ab47bc !important}.purple.darken-1{background-color:#8e24aa !important}.purple-text.text-darken-1{color:#8e24aa !important}.purple.darken-2{background-color:#7b1fa2 !important}.purple-text.text-darken-2{color:#7b1fa2 !important}.purple.darken-3{background-color:#6a1b9a !important}.purple-text.text-darken-3{color:#6a1b9a !important}.purple.darken-4{background-color:#4a148c !important}.purple-text.text-darken-4{color:#4a148c !important}.purple.accent-1{background-color:#ea80fc !important}.purple-text.text-accent-1{color:#ea80fc !important}.purple.accent-2{background-color:#e040fb !important}.purple-text.text-accent-2{color:#e040fb !important}.purple.accent-3{background-color:#d500f9 !important}.purple-text.text-accent-3{color:#d500f9 !important}.purple.accent-4{background-color:#a0f !important}.purple-text.text-accent-4{color:#a0f !important}.deep-purple{background-color:#673ab7 !important}.deep-purple-text{color:#673ab7 !important}.deep-purple.lighten-5{background-color:#ede7f6 !important}.deep-purple-text.text-lighten-5{color:#ede7f6 !important}.deep-purple.lighten-4{background-color:#d1c4e9 !important}.deep-purple-text.text-lighten-4{color:#d1c4e9 !important}.deep-purple.lighten-3{background-color:#b39ddb !important}.deep-purple-text.text-lighten-3{color:#b39ddb !important}.deep-purple.lighten-2{background-color:#9575cd !important}.deep-purple-text.text-lighten-2{color:#9575cd !important}.deep-purple.lighten-1{background-color:#7e57c2 !important}.deep-purple-text.text-lighten-1{color:#7e57c2 !important}.deep-purple.darken-1{background-color:#5e35b1 !important}.deep-purple-text.text-darken-1{color:#5e35b1 !important}.deep-purple.darken-2{background-color:#512da8 !important}.deep-purple-text.text-darken-2{color:#512da8 !important}.deep-purple.darken-3{background-color:#4527a0 !important}.deep-purple-text.text-darken-3{color:#4527a0 !important}.deep-purple.darken-4{background-color:#311b92 !important}.deep-purple-text.text-darken-4{color:#311b92 !important}.deep-purple.accent-1{background-color:#b388ff !important}.deep-purple-text.text-accent-1{color:#b388ff !important}.deep-purple.accent-2{background-color:#7c4dff !important}.deep-purple-text.text-accent-2{color:#7c4dff !important}.deep-purple.accent-3{background-color:#651fff !important}.deep-purple-text.text-accent-3{color:#651fff !important}.deep-purple.accent-4{background-color:#6200ea !important}.deep-purple-text.text-accent-4{color:#6200ea !important}.indigo{background-color:#3f51b5 !important}.indigo-text{color:#3f51b5 !important}.indigo.lighten-5{background-color:#e8eaf6 !important}.indigo-text.text-lighten-5{color:#e8eaf6 !important}.indigo.lighten-4{background-color:#c5cae9 !important}.indigo-text.text-lighten-4{color:#c5cae9 !important}.indigo.lighten-3{background-color:#9fa8da !important}.indigo-text.text-lighten-3{color:#9fa8da !important}.indigo.lighten-2{background-color:#7986cb !important}.indigo-text.text-lighten-2{color:#7986cb !important}.indigo.lighten-1{background-color:#5c6bc0 !important}.indigo-text.text-lighten-1{color:#5c6bc0 !important}.indigo.darken-1{background-color:#3949ab !important}.indigo-text.text-darken-1{color:#3949ab !important}.indigo.darken-2{background-color:#303f9f !important}.indigo-text.text-darken-2{color:#303f9f !important}.indigo.darken-3{background-color:#283593 !important}.indigo-text.text-darken-3{color:#283593 !important}.indigo.darken-4{background-color:#1a237e !important}.indigo-text.text-darken-4{color:#1a237e !important}.indigo.accent-1{background-color:#8c9eff !important}.indigo-text.text-accent-1{color:#8c9eff !important}.indigo.accent-2{background-color:#536dfe !important}.indigo-text.text-accent-2{color:#536dfe !important}.indigo.accent-3{background-color:#3d5afe !important}.indigo-text.text-accent-3{color:#3d5afe !important}.indigo.accent-4{background-color:#304ffe !important}.indigo-text.text-accent-4{color:#304ffe !important}.blue{background-color:#2196F3 !important}.blue-text{color:#2196F3 !important}.blue.lighten-5{background-color:#E3F2FD !important}.blue-text.text-lighten-5{color:#E3F2FD !important}.blue.lighten-4{background-color:#BBDEFB !important}.blue-text.text-lighten-4{color:#BBDEFB !important}.blue.lighten-3{background-color:#90CAF9 !important}.blue-text.text-lighten-3{color:#90CAF9 !important}.blue.lighten-2{background-color:#64B5F6 !important}.blue-text.text-lighten-2{color:#64B5F6 !important}.blue.lighten-1{background-color:#42A5F5 !important}.blue-text.text-lighten-1{color:#42A5F5 !important}.blue.darken-1{background-color:#1E88E5 !important}.blue-text.text-darken-1{color:#1E88E5 !important}.blue.darken-2{background-color:#1976D2 !important}.blue-text.text-darken-2{color:#1976D2 !important}.blue.darken-3{background-color:#1565C0 !important}.blue-text.text-darken-3{color:#1565C0 !important}.blue.darken-4{background-color:#0D47A1 !important}.blue-text.text-darken-4{color:#0D47A1 !important}.blue.accent-1{background-color:#82B1FF !important}.blue-text.text-accent-1{color:#82B1FF !important}.blue.accent-2{background-color:#448AFF !important}.blue-text.text-accent-2{color:#448AFF !important}.blue.accent-3{background-color:#2979FF !important}.blue-text.text-accent-3{color:#2979FF !important}.blue.accent-4{background-color:#2962FF !important}.blue-text.text-accent-4{color:#2962FF !important}.light-blue{background-color:#03a9f4 !important}.light-blue-text{color:#03a9f4 !important}.light-blue.lighten-5{background-color:#e1f5fe !important}.light-blue-text.text-lighten-5{color:#e1f5fe !important}.light-blue.lighten-4{background-color:#b3e5fc !important}.light-blue-text.text-lighten-4{color:#b3e5fc !important}.light-blue.lighten-3{background-color:#81d4fa !important}.light-blue-text.text-lighten-3{color:#81d4fa !important}.light-blue.lighten-2{background-color:#4fc3f7 !important}.light-blue-text.text-lighten-2{color:#4fc3f7 !important}.light-blue.lighten-1{background-color:#29b6f6 !important}.light-blue-text.text-lighten-1{color:#29b6f6 !important}.light-blue.darken-1{background-color:#039be5 !important}.light-blue-text.text-darken-1{color:#039be5 !important}.light-blue.darken-2{background-color:#0288d1 !important}.light-blue-text.text-darken-2{color:#0288d1 !important}.light-blue.darken-3{background-color:#0277bd !important}.light-blue-text.text-darken-3{color:#0277bd !important}.light-blue.darken-4{background-color:#01579b !important}.light-blue-text.text-darken-4{color:#01579b !important}.light-blue.accent-1{background-color:#80d8ff !important}.light-blue-text.text-accent-1{color:#80d8ff !important}.light-blue.accent-2{background-color:#40c4ff !important}.light-blue-text.text-accent-2{color:#40c4ff !important}.light-blue.accent-3{background-color:#00b0ff !important}.light-blue-text.text-accent-3{color:#00b0ff !important}.light-blue.accent-4{background-color:#0091ea !important}.light-blue-text.text-accent-4{color:#0091ea !important}.cyan{background-color:#00bcd4 !important}.cyan-text{color:#00bcd4 !important}.cyan.lighten-5{background-color:#e0f7fa !important}.cyan-text.text-lighten-5{color:#e0f7fa !important}.cyan.lighten-4{background-color:#b2ebf2 !important}.cyan-text.text-lighten-4{color:#b2ebf2 !important}.cyan.lighten-3{background-color:#80deea !important}.cyan-text.text-lighten-3{color:#80deea !important}.cyan.lighten-2{background-color:#4dd0e1 !important}.cyan-text.text-lighten-2{color:#4dd0e1 !important}.cyan.lighten-1{background-color:#26c6da !important}.cyan-text.text-lighten-1{color:#26c6da !important}.cyan.darken-1{background-color:#00acc1 !important}.cyan-text.text-darken-1{color:#00acc1 !important}.cyan.darken-2{background-color:#0097a7 !important}.cyan-text.text-darken-2{color:#0097a7 !important}.cyan.darken-3{background-color:#00838f !important}.cyan-text.text-darken-3{color:#00838f !important}.cyan.darken-4{background-color:#006064 !important}.cyan-text.text-darken-4{color:#006064 !important}.cyan.accent-1{background-color:#84ffff !important}.cyan-text.text-accent-1{color:#84ffff !important}.cyan.accent-2{background-color:#18ffff !important}.cyan-text.text-accent-2{color:#18ffff !important}.cyan.accent-3{background-color:#00e5ff !important}.cyan-text.text-accent-3{color:#00e5ff !important}.cyan.accent-4{background-color:#00b8d4 !important}.cyan-text.text-accent-4{color:#00b8d4 !important}.teal{background-color:#009688 !important}.teal-text{color:#009688 !important}.teal.lighten-5{background-color:#e0f2f1 !important}.teal-text.text-lighten-5{color:#e0f2f1 !important}.teal.lighten-4{background-color:#b2dfdb !important}.teal-text.text-lighten-4{color:#b2dfdb !important}.teal.lighten-3{background-color:#80cbc4 !important}.teal-text.text-lighten-3{color:#80cbc4 !important}.teal.lighten-2{background-color:#4db6ac !important}.teal-text.text-lighten-2{color:#4db6ac !important}.teal.lighten-1{background-color:#26a69a !important}.teal-text.text-lighten-1{color:#26a69a !important}.teal.darken-1{background-color:#00897b !important}.teal-text.text-darken-1{color:#00897b !important}.teal.darken-2{background-color:#00796b !important}.teal-text.text-darken-2{color:#00796b !important}.teal.darken-3{background-color:#00695c !important}.teal-text.text-darken-3{color:#00695c !important}.teal.darken-4{background-color:#004d40 !important}.teal-text.text-darken-4{color:#004d40 !important}.teal.accent-1{background-color:#a7ffeb !important}.teal-text.text-accent-1{color:#a7ffeb !important}.teal.accent-2{background-color:#64ffda !important}.teal-text.text-accent-2{color:#64ffda !important}.teal.accent-3{background-color:#1de9b6 !important}.teal-text.text-accent-3{color:#1de9b6 !important}.teal.accent-4{background-color:#00bfa5 !important}.teal-text.text-accent-4{color:#00bfa5 !important}.green{background-color:#4CAF50 !important}.green-text{color:#4CAF50 !important}.green.lighten-5{background-color:#E8F5E9 !important}.green-text.text-lighten-5{color:#E8F5E9 !important}.green.lighten-4{background-color:#C8E6C9 !important}.green-text.text-lighten-4{color:#C8E6C9 !important}.green.lighten-3{background-color:#A5D6A7 !important}.green-text.text-lighten-3{color:#A5D6A7 !important}.green.lighten-2{background-color:#81C784 !important}.green-text.text-lighten-2{color:#81C784 !important}.green.lighten-1{background-color:#66BB6A !important}.green-text.text-lighten-1{color:#66BB6A !important}.green.darken-1{background-color:#43A047 !important}.green-text.text-darken-1{color:#43A047 !important}.green.darken-2{background-color:#388E3C !important}.green-text.text-darken-2{color:#388E3C !important}.green.darken-3{background-color:#2E7D32 !important}.green-text.text-darken-3{color:#2E7D32 !important}.green.darken-4{background-color:#1B5E20 !important}.green-text.text-darken-4{color:#1B5E20 !important}.green.accent-1{background-color:#B9F6CA !important}.green-text.text-accent-1{color:#B9F6CA !important}.green.accent-2{background-color:#69F0AE !important}.green-text.text-accent-2{color:#69F0AE !important}.green.accent-3{background-color:#00E676 !important}.green-text.text-accent-3{color:#00E676 !important}.green.accent-4{background-color:#00C853 !important}.green-text.text-accent-4{color:#00C853 !important}.light-green{background-color:#8bc34a !important}.light-green-text{color:#8bc34a !important}.light-green.lighten-5{background-color:#f1f8e9 !important}.light-green-text.text-lighten-5{color:#f1f8e9 !important}.light-green.lighten-4{background-color:#dcedc8 !important}.light-green-text.text-lighten-4{color:#dcedc8 !important}.light-green.lighten-3{background-color:#c5e1a5 !important}.light-green-text.text-lighten-3{color:#c5e1a5 !important}.light-green.lighten-2{background-color:#aed581 !important}.light-green-text.text-lighten-2{color:#aed581 !important}.light-green.lighten-1{background-color:#9ccc65 !important}.light-green-text.text-lighten-1{color:#9ccc65 !important}.light-green.darken-1{background-color:#7cb342 !important}.light-green-text.text-darken-1{color:#7cb342 !important}.light-green.darken-2{background-color:#689f38 !important}.light-green-text.text-darken-2{color:#689f38 !important}.light-green.darken-3{background-color:#558b2f !important}.light-green-text.text-darken-3{color:#558b2f !important}.light-green.darken-4{background-color:#33691e !important}.light-green-text.text-darken-4{color:#33691e !important}.light-green.accent-1{background-color:#ccff90 !important}.light-green-text.text-accent-1{color:#ccff90 !important}.light-green.accent-2{background-color:#b2ff59 !important}.light-green-text.text-accent-2{color:#b2ff59 !important}.light-green.accent-3{background-color:#76ff03 !important}.light-green-text.text-accent-3{color:#76ff03 !important}.light-green.accent-4{background-color:#64dd17 !important}.light-green-text.text-accent-4{color:#64dd17 !important}.lime{background-color:#cddc39 !important}.lime-text{color:#cddc39 !important}.lime.lighten-5{background-color:#f9fbe7 !important}.lime-text.text-lighten-5{color:#f9fbe7 !important}.lime.lighten-4{background-color:#f0f4c3 !important}.lime-text.text-lighten-4{color:#f0f4c3 !important}.lime.lighten-3{background-color:#e6ee9c !important}.lime-text.text-lighten-3{color:#e6ee9c !important}.lime.lighten-2{background-color:#dce775 !important}.lime-text.text-lighten-2{color:#dce775 !important}.lime.lighten-1{background-color:#d4e157 !important}.lime-text.text-lighten-1{color:#d4e157 !important}.lime.darken-1{background-color:#c0ca33 !important}.lime-text.text-darken-1{color:#c0ca33 !important}.lime.darken-2{background-color:#afb42b !important}.lime-text.text-darken-2{color:#afb42b !important}.lime.darken-3{background-color:#9e9d24 !important}.lime-text.text-darken-3{color:#9e9d24 !important}.lime.darken-4{background-color:#827717 !important}.lime-text.text-darken-4{color:#827717 !important}.lime.accent-1{background-color:#f4ff81 !important}.lime-text.text-accent-1{color:#f4ff81 !important}.lime.accent-2{background-color:#eeff41 !important}.lime-text.text-accent-2{color:#eeff41 !important}.lime.accent-3{background-color:#c6ff00 !important}.lime-text.text-accent-3{color:#c6ff00 !important}.lime.accent-4{background-color:#aeea00 !important}.lime-text.text-accent-4{color:#aeea00 !important}.yellow{background-color:#ffeb3b !important}.yellow-text{color:#ffeb3b !important}.yellow.lighten-5{background-color:#fffde7 !important}.yellow-text.text-lighten-5{color:#fffde7 !important}.yellow.lighten-4{background-color:#fff9c4 !important}.yellow-text.text-lighten-4{color:#fff9c4 !important}.yellow.lighten-3{background-color:#fff59d !important}.yellow-text.text-lighten-3{color:#fff59d !important}.yellow.lighten-2{background-color:#fff176 !important}.yellow-text.text-lighten-2{color:#fff176 !important}.yellow.lighten-1{background-color:#ffee58 !important}.yellow-text.text-lighten-1{color:#ffee58 !important}.yellow.darken-1{background-color:#fdd835 !important}.yellow-text.text-darken-1{color:#fdd835 !important}.yellow.darken-2{background-color:#fbc02d !important}.yellow-text.text-darken-2{color:#fbc02d !important}.yellow.darken-3{background-color:#f9a825 !important}.yellow-text.text-darken-3{color:#f9a825 !important}.yellow.darken-4{background-color:#f57f17 !important}.yellow-text.text-darken-4{color:#f57f17 !important}.yellow.accent-1{background-color:#ffff8d !important}.yellow-text.text-accent-1{color:#ffff8d !important}.yellow.accent-2{background-color:#ff0 !important}.yellow-text.text-accent-2{color:#ff0 !important}.yellow.accent-3{background-color:#ffea00 !important}.yellow-text.text-accent-3{color:#ffea00 !important}.yellow.accent-4{background-color:#ffd600 !important}.yellow-text.text-accent-4{color:#ffd600 !important}.amber{background-color:#ffc107 !important}.amber-text{color:#ffc107 !important}.amber.lighten-5{background-color:#fff8e1 !important}.amber-text.text-lighten-5{color:#fff8e1 !important}.amber.lighten-4{background-color:#ffecb3 !important}.amber-text.text-lighten-4{color:#ffecb3 !important}.amber.lighten-3{background-color:#ffe082 !important}.amber-text.text-lighten-3{color:#ffe082 !important}.amber.lighten-2{background-color:#ffd54f !important}.amber-text.text-lighten-2{color:#ffd54f !important}.amber.lighten-1{background-color:#ffca28 !important}.amber-text.text-lighten-1{color:#ffca28 !important}.amber.darken-1{background-color:#ffb300 !important}.amber-text.text-darken-1{color:#ffb300 !important}.amber.darken-2{background-color:#ffa000 !important}.amber-text.text-darken-2{color:#ffa000 !important}.amber.darken-3{background-color:#ff8f00 !important}.amber-text.text-darken-3{color:#ff8f00 !important}.amber.darken-4{background-color:#ff6f00 !important}.amber-text.text-darken-4{color:#ff6f00 !important}.amber.accent-1{background-color:#ffe57f !important}.amber-text.text-accent-1{color:#ffe57f !important}.amber.accent-2{background-color:#ffd740 !important}.amber-text.text-accent-2{color:#ffd740 !important}.amber.accent-3{background-color:#ffc400 !important}.amber-text.text-accent-3{color:#ffc400 !important}.amber.accent-4{background-color:#ffab00 !important}.amber-text.text-accent-4{color:#ffab00 !important}.orange{background-color:#ff9800 !important}.orange-text{color:#ff9800 !important}.orange.lighten-5{background-color:#fff3e0 !important}.orange-text.text-lighten-5{color:#fff3e0 !important}.orange.lighten-4{background-color:#ffe0b2 !important}.orange-text.text-lighten-4{color:#ffe0b2 !important}.orange.lighten-3{background-color:#ffcc80 !important}.orange-text.text-lighten-3{color:#ffcc80 !important}.orange.lighten-2{background-color:#ffb74d !important}.orange-text.text-lighten-2{color:#ffb74d !important}.orange.lighten-1{background-color:#ffa726 !important}.orange-text.text-lighten-1{color:#ffa726 !important}.orange.darken-1{background-color:#fb8c00 !important}.orange-text.text-darken-1{color:#fb8c00 !important}.orange.darken-2{background-color:#f57c00 !important}.orange-text.text-darken-2{color:#f57c00 !important}.orange.darken-3{background-color:#ef6c00 !important}.orange-text.text-darken-3{color:#ef6c00 !important}.orange.darken-4{background-color:#e65100 !important}.orange-text.text-darken-4{color:#e65100 !important}.orange.accent-1{background-color:#ffd180 !important}.orange-text.text-accent-1{color:#ffd180 !important}.orange.accent-2{background-color:#ffab40 !important}.orange-text.text-accent-2{color:#ffab40 !important}.orange.accent-3{background-color:#ff9100 !important}.orange-text.text-accent-3{color:#ff9100 !important}.orange.accent-4{background-color:#ff6d00 !important}.orange-text.text-accent-4{color:#ff6d00 !important}.deep-orange{background-color:#ff5722 !important}.deep-orange-text{color:#ff5722 !important}.deep-orange.lighten-5{background-color:#fbe9e7 !important}.deep-orange-text.text-lighten-5{color:#fbe9e7 !important}.deep-orange.lighten-4{background-color:#ffccbc !important}.deep-orange-text.text-lighten-4{color:#ffccbc !important}.deep-orange.lighten-3{background-color:#ffab91 !important}.deep-orange-text.text-lighten-3{color:#ffab91 !important}.deep-orange.lighten-2{background-color:#ff8a65 !important}.deep-orange-text.text-lighten-2{color:#ff8a65 !important}.deep-orange.lighten-1{background-color:#ff7043 !important}.deep-orange-text.text-lighten-1{color:#ff7043 !important}.deep-orange.darken-1{background-color:#f4511e !important}.deep-orange-text.text-darken-1{color:#f4511e !important}.deep-orange.darken-2{background-color:#e64a19 !important}.deep-orange-text.text-darken-2{color:#e64a19 !important}.deep-orange.darken-3{background-color:#d84315 !important}.deep-orange-text.text-darken-3{color:#d84315 !important}.deep-orange.darken-4{background-color:#bf360c !important}.deep-orange-text.text-darken-4{color:#bf360c !important}.deep-orange.accent-1{background-color:#ff9e80 !important}.deep-orange-text.text-accent-1{color:#ff9e80 !important}.deep-orange.accent-2{background-color:#ff6e40 !important}.deep-orange-text.text-accent-2{color:#ff6e40 !important}.deep-orange.accent-3{background-color:#ff3d00 !important}.deep-orange-text.text-accent-3{color:#ff3d00 !important}.deep-orange.accent-4{background-color:#dd2c00 !important}.deep-orange-text.text-accent-4{color:#dd2c00 !important}.brown{background-color:#795548 !important}.brown-text{color:#795548 !important}.brown.lighten-5{background-color:#efebe9 !important}.brown-text.text-lighten-5{color:#efebe9 !important}.brown.lighten-4{background-color:#d7ccc8 !important}.brown-text.text-lighten-4{color:#d7ccc8 !important}.brown.lighten-3{background-color:#bcaaa4 !important}.brown-text.text-lighten-3{color:#bcaaa4 !important}.brown.lighten-2{background-color:#a1887f !important}.brown-text.text-lighten-2{color:#a1887f !important}.brown.lighten-1{background-color:#8d6e63 !important}.brown-text.text-lighten-1{color:#8d6e63 !important}.brown.darken-1{background-color:#6d4c41 !important}.brown-text.text-darken-1{color:#6d4c41 !important}.brown.darken-2{background-color:#5d4037 !important}.brown-text.text-darken-2{color:#5d4037 !important}.brown.darken-3{background-color:#4e342e !important}.brown-text.text-darken-3{color:#4e342e !important}.brown.darken-4{background-color:#3e2723 !important}.brown-text.text-darken-4{color:#3e2723 !important}.blue-grey{background-color:#607d8b !important}.blue-grey-text{color:#607d8b !important}.blue-grey.lighten-5{background-color:#eceff1 !important}.blue-grey-text.text-lighten-5{color:#eceff1 !important}.blue-grey.lighten-4{background-color:#cfd8dc !important}.blue-grey-text.text-lighten-4{color:#cfd8dc !important}.blue-grey.lighten-3{background-color:#b0bec5 !important}.blue-grey-text.text-lighten-3{color:#b0bec5 !important}.blue-grey.lighten-2{background-color:#90a4ae !important}.blue-grey-text.text-lighten-2{color:#90a4ae !important}.blue-grey.lighten-1{background-color:#78909c !important}.blue-grey-text.text-lighten-1{color:#78909c !important}.blue-grey.darken-1{background-color:#546e7a !important}.blue-grey-text.text-darken-1{color:#546e7a !important}.blue-grey.darken-2{background-color:#455a64 !important}.blue-grey-text.text-darken-2{color:#455a64 !important}.blue-grey.darken-3{background-color:#37474f !important}.blue-grey-text.text-darken-3{color:#37474f !important}.blue-grey.darken-4{background-color:#263238 !important}.blue-grey-text.text-darken-4{color:#263238 !important}.grey{background-color:#9e9e9e !important}.grey-text{color:#9e9e9e !important}.grey.lighten-5{background-color:#fafafa !important}.grey-text.text-lighten-5{color:#fafafa !important}.grey.lighten-4{background-color:#f5f5f5 !important}.grey-text.text-lighten-4{color:#f5f5f5 !important}.grey.lighten-3{background-color:#eee !important}.grey-text.text-lighten-3{color:#eee !important}.grey.lighten-2{background-color:#e0e0e0 !important}.grey-text.text-lighten-2{color:#e0e0e0 !important}.grey.lighten-1{background-color:#bdbdbd !important}.grey-text.text-lighten-1{color:#bdbdbd !important}.grey.darken-1{background-color:#757575 !important}.grey-text.text-darken-1{color:#757575 !important}.grey.darken-2{background-color:#616161 !important}.grey-text.text-darken-2{color:#616161 !important}.grey.darken-3{background-color:#424242 !important}.grey-text.text-darken-3{color:#424242 !important}.grey.darken-4{background-color:#212121 !important}.grey-text.text-darken-4{color:#212121 !important}.black{background-color:#000 !important}.black-text{color:#000 !important}.white{background-color:#fff !important}.white-text{color:#fff !important}.transparent{background-color:transparent !important}.transparent-text{color:transparent !important}/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}ul:not(.browser-default){padding-left:0;list-style-type:none}ul:not(.browser-default) li{list-style-type:none}a{color:#039be5;text-decoration:none;-webkit-tap-highlight-color:transparent}.valign-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.valign-wrapper .valign{display:block}.clearfix{clear:both}.z-depth-0{box-shadow:none !important}.z-depth-1,nav,.card-panel,.card,.toast,.btn,.btn-large,.btn-floating,.dropdown-content,.collapsible,.side-nav{box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 1px 5px 0 rgba(0,0,0,0.12),0 3px 1px -2px rgba(0,0,0,0.2)}.z-depth-1-half,.btn:hover,.btn-large:hover,.btn-floating:hover{box-shadow:0 3px 3px 0 rgba(0,0,0,0.14),0 1px 7px 0 rgba(0,0,0,0.12),0 3px 1px -1px rgba(0,0,0,0.2)}.z-depth-2{box-shadow:0 4px 5px 0 rgba(0,0,0,0.14),0 1px 10px 0 rgba(0,0,0,0.12),0 2px 4px -1px rgba(0,0,0,0.3)}.z-depth-3{box-shadow:0 6px 10px 0 rgba(0,0,0,0.14),0 1px 18px 0 rgba(0,0,0,0.12),0 3px 5px -1px rgba(0,0,0,0.3)}.z-depth-4,.modal{box-shadow:0 8px 10px 1px rgba(0,0,0,0.14),0 3px 14px 2px rgba(0,0,0,0.12),0 5px 5px -3px rgba(0,0,0,0.3)}.z-depth-5{box-shadow:0 16px 24px 2px rgba(0,0,0,0.14),0 6px 30px 5px rgba(0,0,0,0.12),0 8px 10px -5px rgba(0,0,0,0.3)}.hoverable{transition:box-shadow .25s;box-shadow:0}.hoverable:hover{transition:box-shadow .25s;box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.divider{height:1px;overflow:hidden;background-color:#e0e0e0}blockquote{margin:20px 0;padding-left:1.5rem;border-left:5px solid #ee6e73}i{line-height:inherit}i.left{float:left;margin-right:15px}i.right{float:right;margin-left:15px}i.tiny{font-size:1rem}i.small{font-size:2rem}i.medium{font-size:4rem}i.large{font-size:6rem}img.responsive-img,video.responsive-video{max-width:100%;height:auto}.pagination li{display:inline-block;border-radius:2px;text-align:center;vertical-align:top;height:30px}.pagination li a{color:#444;display:inline-block;font-size:1.2rem;padding:0 10px;line-height:30px}.pagination li.active a{color:#fff}.pagination li.active{background-color:#ee6e73}.pagination li.disabled a{cursor:default;color:#999}.pagination li i{font-size:2rem}.pagination li.pages ul li{display:inline-block;float:none}@media only screen and (max-width: 992px){.pagination{width:100%}.pagination li.prev,.pagination li.next{width:10%}.pagination li.pages{width:80%;overflow:hidden;white-space:nowrap}}.breadcrumb{font-size:18px;color:rgba(255,255,255,0.7)}.breadcrumb i,.breadcrumb [class^="mdi-"],.breadcrumb [class*="mdi-"],.breadcrumb i.material-icons{display:inline-block;float:left;font-size:24px}.breadcrumb:before{content:'\E5CC';color:rgba(255,255,255,0.7);vertical-align:top;display:inline-block;font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:25px;margin:0 10px 0 8px;-webkit-font-smoothing:antialiased}.breadcrumb:first-child:before{display:none}.breadcrumb:last-child{color:#fff}.parallax-container{position:relative;overflow:hidden;height:500px}.parallax{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1}.parallax img{display:none;position:absolute;left:50%;bottom:0;min-width:100%;min-height:100%;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pin-top,.pin-bottom{position:relative}.pinned{position:fixed !important}ul.staggered-list li{opacity:0}.fade-in{opacity:0;-webkit-transform-origin:0 50%;transform-origin:0 50%}@media only screen and (max-width: 600px){.hide-on-small-only,.tabs-wrapper,.hide-on-small-and-down{display:none !important}}@media only screen and (max-width: 992px){.hide-on-med-and-down{display:none !important}}@media only screen and (min-width: 601px){.hide-on-med-and-up{display:none !important}}@media only screen and (min-width: 600px) and (max-width: 992px){.hide-on-med-only{display:none !important}}@media only screen and (min-width: 993px){.hide-on-large-only{display:none !important}}@media only screen and (min-width: 993px){.show-on-large{display:block !important}}@media only screen and (min-width: 600px) and (max-width: 992px){.show-on-medium{display:block !important}}@media only screen and (max-width: 600px){.show-on-small{display:block !important}}@media only screen and (min-width: 601px){.show-on-medium-and-up{display:block !important}}@media only screen and (max-width: 992px){.show-on-medium-and-down{display:block !important}}@media only screen and (max-width: 600px){.center-on-small-only{text-align:center}}footer.page-footer{padding-top:20px;background-color:#ee6e73}footer.page-footer .footer-copyright{overflow:hidden;min-height:50px;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:10px 0px;color:rgba(255,255,255,0.8);background-color:rgba(51,51,51,0.08)}table,th,td{border:none}table{width:100%;display:table}table.bordered>thead>tr,table.bordered>tbody>tr{border-bottom:1px solid #d0d0d0}table.striped>tbody>tr:nth-child(odd){background-color:#f2f2f2}table.striped>tbody>tr>td{border-radius:0}table.highlight>tbody>tr{transition:background-color .25s ease}table.highlight>tbody>tr:hover{background-color:#f2f2f2}table.centered thead tr th,table.centered tbody tr td{text-align:center}thead{border-bottom:1px solid #d0d0d0}td,th{padding:15px 5px;display:table-cell;text-align:left;vertical-align:middle;border-radius:2px}@media only screen and (max-width: 992px){table.responsive-table{width:100%;border-collapse:collapse;border-spacing:0;display:block;position:relative}table.responsive-table td:empty:before{content:'\00a0'}table.responsive-table th,table.responsive-table td{margin:0;vertical-align:top}table.responsive-table th{text-align:left}table.responsive-table thead{display:block;float:left}table.responsive-table thead tr{display:block;padding:0 10px 0 0}table.responsive-table thead tr th::before{content:"\00a0"}table.responsive-table tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}table.responsive-table tbody tr{display:inline-block;vertical-align:top}table.responsive-table th{display:block;text-align:right}table.responsive-table td{display:block;min-height:1.25em;text-align:left}table.responsive-table tr{padding:0 10px}table.responsive-table thead{border:0;border-right:1px solid #d0d0d0}table.responsive-table.bordered th{border-bottom:0;border-left:0}table.responsive-table.bordered td{border-left:0;border-right:0;border-bottom:0}table.responsive-table.bordered tr{border:0}table.responsive-table.bordered tbody tr{border-right:1px solid #d0d0d0}}.collection{margin:.5rem 0 1rem 0;border:1px solid #e0e0e0;border-radius:2px;overflow:hidden;position:relative}.collection .collection-item{background-color:#fff;line-height:1.5rem;padding:10px 20px;margin:0;border-bottom:1px solid #e0e0e0}.collection .collection-item.avatar{min-height:84px;padding-left:72px;position:relative}.collection .collection-item.avatar .circle{position:absolute;width:42px;height:42px;overflow:hidden;left:15px;display:inline-block;vertical-align:middle}.collection .collection-item.avatar i.circle{font-size:18px;line-height:42px;color:#fff;background-color:#999;text-align:center}.collection .collection-item.avatar .title{font-size:16px}.collection .collection-item.avatar p{margin:0}.collection .collection-item.avatar .secondary-content{position:absolute;top:16px;right:16px}.collection .collection-item:last-child{border-bottom:none}.collection .collection-item.active{background-color:#26a69a;color:#eafaf9}.collection .collection-item.active .secondary-content{color:#fff}.collection a.collection-item{display:block;transition:.25s;color:#26a69a}.collection a.collection-item:not(.active):hover{background-color:#ddd}.collection.with-header .collection-header{background-color:#fff;border-bottom:1px solid #e0e0e0;padding:10px 20px}.collection.with-header .collection-item{padding-left:30px}.collection.with-header .collection-item.avatar{padding-left:72px}.secondary-content{float:right;color:#26a69a}.collapsible .collection{margin:0;border:none}.video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.video-container iframe,.video-container object,.video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.progress{position:relative;height:4px;display:block;width:100%;background-color:#acece6;border-radius:2px;margin:.5rem 0 1rem 0;overflow:hidden}.progress .determinate{position:absolute;top:0;left:0;bottom:0;background-color:#26a69a;transition:width .3s linear}.progress .indeterminate{background-color:#26a69a}.progress .indeterminate:before{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.progress .indeterminate:after{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}.hide{display:none !important}.left-align{text-align:left}.right-align{text-align:right}.center,.center-align{text-align:center}.left{float:left !important}.right{float:right !important}.no-select,input[type=range],input[type=range]+.thumb{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.circle{border-radius:50%}.center-block{display:block;margin-left:auto;margin-right:auto}.truncate{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-padding{padding:0 !important}span.badge{min-width:3rem;padding:0 6px;margin-left:14px;text-align:center;font-size:1rem;line-height:22px;height:22px;color:#757575;float:right;box-sizing:border-box}span.badge.new{font-weight:300;font-size:0.8rem;color:#fff;background-color:#26a69a;border-radius:2px}span.badge.new:after{content:" new"}span.badge[data-badge-caption]::after{content:" " attr(data-badge-caption)}nav ul a span.badge{display:inline-block;float:none;margin-left:4px;line-height:22px;height:22px}.collection-item span.badge{margin-top:calc(.75rem - 11px)}.collapsible span.badge{margin-top:calc(1.5rem - 11px)}.side-nav span.badge{margin-top:calc(24px - 11px)}.material-icons{text-rendering:optimizeLegibility;-webkit-font-feature-settings:'liga';-moz-font-feature-settings:'liga';font-feature-settings:'liga'}.container{margin:0 auto;max-width:1280px;width:90%}@media only screen and (min-width: 601px){.container{width:85%}}@media only screen and (min-width: 993px){.container{width:70%}}.container .row{margin-left:-.75rem;margin-right:-.75rem}.section{padding-top:1rem;padding-bottom:1rem}.section.no-pad{padding:0}.section.no-pad-bot{padding-bottom:0}.section.no-pad-top{padding-top:0}.row{margin-left:auto;margin-right:auto;margin-bottom:20px}.row:after{content:"";display:table;clear:both}.row .col{float:left;box-sizing:border-box;padding:0 .75rem;min-height:1px}.row .col[class*="push-"],.row .col[class*="pull-"]{position:relative}.row .col.s1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.s4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.s7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.s10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-s1{margin-left:8.3333333333%}.row .col.pull-s1{right:8.3333333333%}.row .col.push-s1{left:8.3333333333%}.row .col.offset-s2{margin-left:16.6666666667%}.row .col.pull-s2{right:16.6666666667%}.row .col.push-s2{left:16.6666666667%}.row .col.offset-s3{margin-left:25%}.row .col.pull-s3{right:25%}.row .col.push-s3{left:25%}.row .col.offset-s4{margin-left:33.3333333333%}.row .col.pull-s4{right:33.3333333333%}.row .col.push-s4{left:33.3333333333%}.row .col.offset-s5{margin-left:41.6666666667%}.row .col.pull-s5{right:41.6666666667%}.row .col.push-s5{left:41.6666666667%}.row .col.offset-s6{margin-left:50%}.row .col.pull-s6{right:50%}.row .col.push-s6{left:50%}.row .col.offset-s7{margin-left:58.3333333333%}.row .col.pull-s7{right:58.3333333333%}.row .col.push-s7{left:58.3333333333%}.row .col.offset-s8{margin-left:66.6666666667%}.row .col.pull-s8{right:66.6666666667%}.row .col.push-s8{left:66.6666666667%}.row .col.offset-s9{margin-left:75%}.row .col.pull-s9{right:75%}.row .col.push-s9{left:75%}.row .col.offset-s10{margin-left:83.3333333333%}.row .col.pull-s10{right:83.3333333333%}.row .col.push-s10{left:83.3333333333%}.row .col.offset-s11{margin-left:91.6666666667%}.row .col.pull-s11{right:91.6666666667%}.row .col.push-s11{left:91.6666666667%}.row .col.offset-s12{margin-left:100%}.row .col.pull-s12{right:100%}.row .col.push-s12{left:100%}@media only screen and (min-width: 601px){.row .col.m1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.m4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.m7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.m10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-m1{margin-left:8.3333333333%}.row .col.pull-m1{right:8.3333333333%}.row .col.push-m1{left:8.3333333333%}.row .col.offset-m2{margin-left:16.6666666667%}.row .col.pull-m2{right:16.6666666667%}.row .col.push-m2{left:16.6666666667%}.row .col.offset-m3{margin-left:25%}.row .col.pull-m3{right:25%}.row .col.push-m3{left:25%}.row .col.offset-m4{margin-left:33.3333333333%}.row .col.pull-m4{right:33.3333333333%}.row .col.push-m4{left:33.3333333333%}.row .col.offset-m5{margin-left:41.6666666667%}.row .col.pull-m5{right:41.6666666667%}.row .col.push-m5{left:41.6666666667%}.row .col.offset-m6{margin-left:50%}.row .col.pull-m6{right:50%}.row .col.push-m6{left:50%}.row .col.offset-m7{margin-left:58.3333333333%}.row .col.pull-m7{right:58.3333333333%}.row .col.push-m7{left:58.3333333333%}.row .col.offset-m8{margin-left:66.6666666667%}.row .col.pull-m8{right:66.6666666667%}.row .col.push-m8{left:66.6666666667%}.row .col.offset-m9{margin-left:75%}.row .col.pull-m9{right:75%}.row .col.push-m9{left:75%}.row .col.offset-m10{margin-left:83.3333333333%}.row .col.pull-m10{right:83.3333333333%}.row .col.push-m10{left:83.3333333333%}.row .col.offset-m11{margin-left:91.6666666667%}.row .col.pull-m11{right:91.6666666667%}.row .col.push-m11{left:91.6666666667%}.row .col.offset-m12{margin-left:100%}.row .col.pull-m12{right:100%}.row .col.push-m12{left:100%}}@media only screen and (min-width: 993px){.row .col.l1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.l4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.l7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.l10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-l1{margin-left:8.3333333333%}.row .col.pull-l1{right:8.3333333333%}.row .col.push-l1{left:8.3333333333%}.row .col.offset-l2{margin-left:16.6666666667%}.row .col.pull-l2{right:16.6666666667%}.row .col.push-l2{left:16.6666666667%}.row .col.offset-l3{margin-left:25%}.row .col.pull-l3{right:25%}.row .col.push-l3{left:25%}.row .col.offset-l4{margin-left:33.3333333333%}.row .col.pull-l4{right:33.3333333333%}.row .col.push-l4{left:33.3333333333%}.row .col.offset-l5{margin-left:41.6666666667%}.row .col.pull-l5{right:41.6666666667%}.row .col.push-l5{left:41.6666666667%}.row .col.offset-l6{margin-left:50%}.row .col.pull-l6{right:50%}.row .col.push-l6{left:50%}.row .col.offset-l7{margin-left:58.3333333333%}.row .col.pull-l7{right:58.3333333333%}.row .col.push-l7{left:58.3333333333%}.row .col.offset-l8{margin-left:66.6666666667%}.row .col.pull-l8{right:66.6666666667%}.row .col.push-l8{left:66.6666666667%}.row .col.offset-l9{margin-left:75%}.row .col.pull-l9{right:75%}.row .col.push-l9{left:75%}.row .col.offset-l10{margin-left:83.3333333333%}.row .col.pull-l10{right:83.3333333333%}.row .col.push-l10{left:83.3333333333%}.row .col.offset-l11{margin-left:91.6666666667%}.row .col.pull-l11{right:91.6666666667%}.row .col.push-l11{left:91.6666666667%}.row .col.offset-l12{margin-left:100%}.row .col.pull-l12{right:100%}.row .col.push-l12{left:100%}}nav{color:#fff;background-color:#ee6e73;width:100%;height:56px;line-height:56px}nav.nav-extended{height:auto}nav.nav-extended .nav-wrapper{min-height:56px;height:auto}nav.nav-extended .nav-content{position:relative;line-height:normal}nav a{color:#fff}nav i,nav [class^="mdi-"],nav [class*="mdi-"],nav i.material-icons{display:block;font-size:24px;height:56px;line-height:56px}nav .nav-wrapper{position:relative;height:100%}@media only screen and (min-width: 993px){nav a.button-collapse{display:none}}nav .button-collapse{float:left;position:relative;z-index:1;height:56px;margin:0 18px}nav .button-collapse i{height:56px;line-height:56px}nav .brand-logo{position:absolute;color:#fff;display:inline-block;font-size:2.1rem;padding:0;white-space:nowrap}nav .brand-logo.center{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}@media only screen and (max-width: 992px){nav .brand-logo{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}nav .brand-logo.left,nav .brand-logo.right{padding:0;-webkit-transform:none;transform:none}nav .brand-logo.left{left:0.5rem}nav .brand-logo.right{right:0.5rem;left:auto}}nav .brand-logo.right{right:0.5rem;padding:0}nav .brand-logo i,nav .brand-logo [class^="mdi-"],nav .brand-logo [class*="mdi-"],nav .brand-logo i.material-icons{float:left;margin-right:15px}nav .nav-title{display:inline-block;font-size:32px;padding:28px 0}nav ul{margin:0}nav ul li{transition:background-color .3s;float:left;padding:0}nav ul li.active{background-color:rgba(0,0,0,0.1)}nav ul a{transition:background-color .3s;font-size:1rem;color:#fff;display:block;padding:0 15px;cursor:pointer}nav ul a.btn,nav ul a.btn-large,nav ul a.btn-large,nav ul a.btn-flat,nav ul a.btn-floating{margin-top:-2px;margin-left:15px;margin-right:15px}nav ul a.btn>.material-icons,nav ul a.btn-large>.material-icons,nav ul a.btn-large>.material-icons,nav ul a.btn-flat>.material-icons,nav ul a.btn-floating>.material-icons{height:inherit;line-height:inherit}nav ul a:hover{background-color:rgba(0,0,0,0.1)}nav ul.left{float:left}nav form{height:100%}nav .input-field{margin:0;height:100%}nav .input-field input{height:100%;font-size:1.2rem;border:none;padding-left:2rem}nav .input-field input:focus,nav .input-field input[type=text]:valid,nav .input-field input[type=password]:valid,nav .input-field input[type=email]:valid,nav .input-field input[type=url]:valid,nav .input-field input[type=date]:valid{border:none;box-shadow:none}nav .input-field label{top:0;left:0}nav .input-field label i{color:rgba(255,255,255,0.7);transition:color .3s}nav .input-field label.active i{color:#fff}.navbar-fixed{position:relative;height:56px;z-index:997}.navbar-fixed nav{position:fixed}@media only screen and (min-width: 601px){nav.nav-extended .nav-wrapper{min-height:64px}nav,nav .nav-wrapper i,nav a.button-collapse,nav a.button-collapse i{height:64px;line-height:64px}.navbar-fixed{height:64px}}@font-face{font-family:"Roboto";src:local(Roboto Thin),url("../fonts/roboto/Roboto-Thin.eot");src:url("../fonts/roboto/Roboto-Thin.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Thin.woff2") format("woff2"),url("../fonts/roboto/Roboto-Thin.woff") format("woff"),url("../fonts/roboto/Roboto-Thin.ttf") format("truetype");font-weight:200}@font-face{font-family:"Roboto";src:local(Roboto Light),url("../fonts/roboto/Roboto-Light.eot");src:url("../fonts/roboto/Roboto-Light.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Light.woff2") format("woff2"),url("../fonts/roboto/Roboto-Light.woff") format("woff"),url("../fonts/roboto/Roboto-Light.ttf") format("truetype");font-weight:300}@font-face{font-family:"Roboto";src:local(Roboto Regular),url("../fonts/roboto/Roboto-Regular.eot");src:url("../fonts/roboto/Roboto-Regular.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Regular.woff2") format("woff2"),url("../fonts/roboto/Roboto-Regular.woff") format("woff"),url("../fonts/roboto/Roboto-Regular.ttf") format("truetype");font-weight:400}@font-face{font-family:"Roboto";src:url("../fonts/roboto/Roboto-Medium.eot");src:url("../fonts/roboto/Roboto-Medium.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Medium.woff2") format("woff2"),url("../fonts/roboto/Roboto-Medium.woff") format("woff"),url("../fonts/roboto/Roboto-Medium.ttf") format("truetype");font-weight:500}@font-face{font-family:"Roboto";src:url("../fonts/roboto/Roboto-Bold.eot");src:url("../fonts/roboto/Roboto-Bold.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Bold.woff2") format("woff2"),url("../fonts/roboto/Roboto-Bold.woff") format("woff"),url("../fonts/roboto/Roboto-Bold.ttf") format("truetype");font-weight:700}a{text-decoration:none}html{line-height:1.5;font-family:"Roboto", sans-serif;font-weight:normal;color:rgba(0,0,0,0.87)}@media only screen and (min-width: 0){html{font-size:14px}}@media only screen and (min-width: 992px){html{font-size:14.5px}}@media only screen and (min-width: 1200px){html{font-size:15px}}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1.1}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{font-weight:inherit}h1{font-size:4.2rem;line-height:110%;margin:2.1rem 0 1.68rem 0}h2{font-size:3.56rem;line-height:110%;margin:1.78rem 0 1.424rem 0}h3{font-size:2.92rem;line-height:110%;margin:1.46rem 0 1.168rem 0}h4{font-size:2.28rem;line-height:110%;margin:1.14rem 0 .912rem 0}h5{font-size:1.64rem;line-height:110%;margin:.82rem 0 .656rem 0}h6{font-size:1rem;line-height:110%;margin:.5rem 0 .4rem 0}em{font-style:italic}strong{font-weight:500}small{font-size:75%}.light,footer.page-footer .footer-copyright{font-weight:300}.thin{font-weight:200}.flow-text{font-weight:300}@media only screen and (min-width: 360px){.flow-text{font-size:1.2rem}}@media only screen and (min-width: 390px){.flow-text{font-size:1.224rem}}@media only screen and (min-width: 420px){.flow-text{font-size:1.248rem}}@media only screen and (min-width: 450px){.flow-text{font-size:1.272rem}}@media only screen and (min-width: 480px){.flow-text{font-size:1.296rem}}@media only screen and (min-width: 510px){.flow-text{font-size:1.32rem}}@media only screen and (min-width: 540px){.flow-text{font-size:1.344rem}}@media only screen and (min-width: 570px){.flow-text{font-size:1.368rem}}@media only screen and (min-width: 600px){.flow-text{font-size:1.392rem}}@media only screen and (min-width: 630px){.flow-text{font-size:1.416rem}}@media only screen and (min-width: 660px){.flow-text{font-size:1.44rem}}@media only screen and (min-width: 690px){.flow-text{font-size:1.464rem}}@media only screen and (min-width: 720px){.flow-text{font-size:1.488rem}}@media only screen and (min-width: 750px){.flow-text{font-size:1.512rem}}@media only screen and (min-width: 780px){.flow-text{font-size:1.536rem}}@media only screen and (min-width: 810px){.flow-text{font-size:1.56rem}}@media only screen and (min-width: 840px){.flow-text{font-size:1.584rem}}@media only screen and (min-width: 870px){.flow-text{font-size:1.608rem}}@media only screen and (min-width: 900px){.flow-text{font-size:1.632rem}}@media only screen and (min-width: 930px){.flow-text{font-size:1.656rem}}@media only screen and (min-width: 960px){.flow-text{font-size:1.68rem}}@media only screen and (max-width: 360px){.flow-text{font-size:1.2rem}}.scale-transition{transition:-webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;transition:transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;transition:transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63), -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important}.scale-transition.scale-out{-webkit-transform:scale(0);transform:scale(0);transition:-webkit-transform .2s !important;transition:transform .2s !important;transition:transform .2s, -webkit-transform .2s !important}.scale-transition.scale-in{-webkit-transform:scale(1);transform:scale(1)}.card-panel{transition:box-shadow .25s;padding:24px;margin:.5rem 0 1rem 0;border-radius:2px;background-color:#fff}.card{position:relative;margin:.5rem 0 1rem 0;background-color:#fff;transition:box-shadow .25s;border-radius:2px}.card .card-title{font-size:24px;font-weight:300}.card .card-title.activator{cursor:pointer}.card.small,.card.medium,.card.large{position:relative}.card.small .card-image,.card.medium .card-image,.card.large .card-image{max-height:60%;overflow:hidden}.card.small .card-image+.card-content,.card.medium .card-image+.card-content,.card.large .card-image+.card-content{max-height:40%}.card.small .card-content,.card.medium .card-content,.card.large .card-content{max-height:100%;overflow:hidden}.card.small .card-action,.card.medium .card-action,.card.large .card-action{position:absolute;bottom:0;left:0;right:0}.card.small{height:300px}.card.medium{height:400px}.card.large{height:500px}.card.horizontal{display:-webkit-flex;display:-ms-flexbox;display:flex}.card.horizontal.small .card-image,.card.horizontal.medium .card-image,.card.horizontal.large .card-image{height:100%;max-height:none;overflow:visible}.card.horizontal.small .card-image img,.card.horizontal.medium .card-image img,.card.horizontal.large .card-image img{height:100%}.card.horizontal .card-image{max-width:50%}.card.horizontal .card-image img{border-radius:2px 0 0 2px;max-width:100%;width:auto}.card.horizontal .card-stacked{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex:1;-ms-flex:1;flex:1;position:relative}.card.horizontal .card-stacked .card-content{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.card.sticky-action .card-action{z-index:2}.card.sticky-action .card-reveal{z-index:1;padding-bottom:64px}.card .card-image{position:relative}.card .card-image img{display:block;border-radius:2px 2px 0 0;position:relative;left:0;right:0;top:0;bottom:0;width:100%}.card .card-image .card-title{color:#fff;position:absolute;bottom:0;left:0;max-width:100%;padding:24px}.card .card-content{padding:24px;border-radius:0 0 2px 2px}.card .card-content p{margin:0;color:inherit}.card .card-content .card-title{display:block;line-height:32px;margin-bottom:8px}.card .card-content .card-title i{line-height:32px}.card .card-action{position:relative;background-color:inherit;border-top:1px solid rgba(160,160,160,0.2);padding:16px 24px}.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating){color:#ffab40;margin-right:24px;transition:color .3s ease;text-transform:uppercase}.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating):hover{color:#ffd8a6}.card .card-reveal{padding:24px;position:absolute;background-color:#fff;width:100%;overflow-y:auto;left:0;top:100%;height:100%;z-index:3;display:none}.card .card-reveal .card-title{cursor:pointer;display:block}#toast-container{display:block;position:fixed;z-index:10000}@media only screen and (max-width: 600px){#toast-container{min-width:100%;bottom:0%}}@media only screen and (min-width: 601px) and (max-width: 992px){#toast-container{left:5%;bottom:7%;max-width:90%}}@media only screen and (min-width: 993px){#toast-container{top:10%;right:7%;max-width:86%}}.toast{border-radius:2px;top:35px;width:auto;clear:both;margin-top:10px;position:relative;max-width:100%;height:auto;min-height:48px;line-height:1.5em;word-break:break-all;background-color:#323232;padding:10px 25px;font-size:1.1rem;font-weight:300;color:#fff;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.toast .btn,.toast .btn-large,.toast .btn-flat{margin:0;margin-left:3rem}.toast.rounded{border-radius:24px}@media only screen and (max-width: 600px){.toast{width:100%;border-radius:0}}@media only screen and (min-width: 601px) and (max-width: 992px){.toast{float:left}}@media only screen and (min-width: 993px){.toast{float:right}}.tabs{position:relative;overflow-x:auto;overflow-y:hidden;height:48px;width:100%;background-color:#fff;margin:0 auto;white-space:nowrap}.tabs.tabs-transparent{background-color:transparent}.tabs.tabs-transparent .tab a,.tabs.tabs-transparent .tab.disabled a,.tabs.tabs-transparent .tab.disabled a:hover{color:rgba(255,255,255,0.7)}.tabs.tabs-transparent .tab a:hover,.tabs.tabs-transparent .tab a.active{color:#fff}.tabs.tabs-transparent .indicator{background-color:#fff}.tabs.tabs-fixed-width{display:-webkit-flex;display:-ms-flexbox;display:flex}.tabs.tabs-fixed-width .tab{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.tabs .tab{display:inline-block;text-align:center;line-height:48px;height:48px;padding:0;margin:0;text-transform:uppercase}.tabs .tab a{color:rgba(238,110,115,0.7);display:block;width:100%;height:100%;padding:0 24px;font-size:14px;text-overflow:ellipsis;overflow:hidden;transition:color .28s ease}.tabs .tab a:hover,.tabs .tab a.active{background-color:transparent;color:#ee6e73}.tabs .tab.disabled a,.tabs .tab.disabled a:hover{color:rgba(238,110,115,0.7);cursor:default}.tabs .indicator{position:absolute;bottom:0;height:2px;background-color:#f6b2b5;will-change:left, right}@media only screen and (max-width: 992px){.tabs{display:-webkit-flex;display:-ms-flexbox;display:flex}.tabs .tab{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.tabs .tab a{padding:0 12px}}.material-tooltip{padding:10px 8px;font-size:1rem;z-index:2000;background-color:transparent;border-radius:2px;color:#fff;min-height:36px;line-height:120%;opacity:0;position:absolute;text-align:center;max-width:calc(100% - 4px);overflow:hidden;left:0;top:0;pointer-events:none;visibility:hidden}.backdrop{position:absolute;opacity:0;height:7px;width:14px;border-radius:0 0 50% 50%;background-color:#323232;z-index:-1;-webkit-transform-origin:50% 0%;transform-origin:50% 0%;visibility:hidden}.btn,.btn-large,.btn-flat{border:none;border-radius:2px;display:inline-block;height:36px;line-height:36px;padding:0 2rem;text-transform:uppercase;vertical-align:middle;-webkit-tap-highlight-color:transparent}.btn.disabled,.disabled.btn-large,.btn-floating.disabled,.btn-large.disabled,.btn-flat.disabled,.btn:disabled,.btn-large:disabled,.btn-floating:disabled,.btn-large:disabled,.btn-flat:disabled,.btn[disabled],[disabled].btn-large,.btn-floating[disabled],.btn-large[disabled],.btn-flat[disabled]{pointer-events:none;background-color:#DFDFDF !important;box-shadow:none;color:#9F9F9F !important;cursor:default}.btn.disabled:hover,.disabled.btn-large:hover,.btn-floating.disabled:hover,.btn-large.disabled:hover,.btn-flat.disabled:hover,.btn:disabled:hover,.btn-large:disabled:hover,.btn-floating:disabled:hover,.btn-large:disabled:hover,.btn-flat:disabled:hover,.btn[disabled]:hover,[disabled].btn-large:hover,.btn-floating[disabled]:hover,.btn-large[disabled]:hover,.btn-flat[disabled]:hover{background-color:#DFDFDF !important;color:#9F9F9F !important}.btn,.btn-large,.btn-floating,.btn-large,.btn-flat{outline:0}.btn i,.btn-large i,.btn-floating i,.btn-large i,.btn-flat i{font-size:1.3rem;line-height:inherit}.btn:focus,.btn-large:focus,.btn-floating:focus{background-color:#1d7d74}.btn,.btn-large{text-decoration:none;color:#fff;background-color:#26a69a;text-align:center;letter-spacing:.5px;transition:.2s ease-out;cursor:pointer}.btn:hover,.btn-large:hover{background-color:#2bbbad}.btn-floating{display:inline-block;color:#fff;position:relative;overflow:hidden;z-index:1;width:40px;height:40px;line-height:40px;padding:0;background-color:#26a69a;border-radius:50%;transition:.3s;cursor:pointer;vertical-align:middle}.btn-floating:hover{background-color:#26a69a}.btn-floating:before{border-radius:0}.btn-floating.btn-large{width:56px;height:56px}.btn-floating.btn-large i{line-height:56px}.btn-floating.halfway-fab{position:absolute;right:24px;bottom:0;-webkit-transform:translateY(50%);transform:translateY(50%)}.btn-floating.halfway-fab.left{right:auto;left:24px}.btn-floating i{width:inherit;display:inline-block;text-align:center;color:#fff;font-size:1.6rem;line-height:40px}button.btn-floating{border:none}.fixed-action-btn{position:fixed;right:23px;bottom:23px;padding-top:15px;margin-bottom:0;z-index:998}.fixed-action-btn.active ul{visibility:visible}.fixed-action-btn.horizontal{padding:0 0 0 15px}.fixed-action-btn.horizontal ul{text-align:right;right:64px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);height:100%;left:auto;width:500px}.fixed-action-btn.horizontal ul li{display:inline-block;margin:15px 15px 0 0}.fixed-action-btn.toolbar{padding:0;height:56px}.fixed-action-btn.toolbar.active>a i{opacity:0}.fixed-action-btn.toolbar ul{display:-webkit-flex;display:-ms-flexbox;display:flex;top:0;bottom:0}.fixed-action-btn.toolbar ul li{-webkit-flex:1;-ms-flex:1;flex:1;display:inline-block;margin:0;height:100%;transition:none}.fixed-action-btn.toolbar ul li a{display:block;overflow:hidden;position:relative;width:100%;height:100%;background-color:transparent;box-shadow:none;color:#fff;line-height:56px;z-index:1}.fixed-action-btn.toolbar ul li a i{line-height:inherit}.fixed-action-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0;visibility:hidden}.fixed-action-btn ul li{margin-bottom:15px}.fixed-action-btn ul a.btn-floating{opacity:0}.fixed-action-btn .fab-backdrop{position:absolute;top:0;left:0;z-index:-1;width:40px;height:40px;background-color:#26a69a;border-radius:50%;-webkit-transform:scale(0);transform:scale(0)}.btn-flat{box-shadow:none;background-color:transparent;color:#343434;cursor:pointer;transition:background-color .2s}.btn-flat:focus,.btn-flat:active{background-color:transparent}.btn-flat:focus,.btn-flat:hover{background-color:rgba(0,0,0,0.1);box-shadow:none}.btn-flat:active{background-color:rgba(0,0,0,0.2)}.btn-flat.disabled{background-color:transparent !important;color:#b3b3b3 !important;cursor:default}.btn-large{height:54px;line-height:54px}.btn-large i{font-size:1.6rem}.btn-block{display:block}.dropdown-content{background-color:#fff;margin:0;display:none;min-width:100px;max-height:650px;overflow-y:auto;opacity:0;position:absolute;z-index:999;will-change:width, height}.dropdown-content li{clear:both;color:rgba(0,0,0,0.87);cursor:pointer;min-height:50px;line-height:1.5rem;width:100%;text-align:left;text-transform:none}.dropdown-content li:hover,.dropdown-content li.active,.dropdown-content li.selected{background-color:#eee}.dropdown-content li.active.selected{background-color:#e1e1e1}.dropdown-content li.divider{min-height:0;height:1px}.dropdown-content li>a,.dropdown-content li>span{font-size:16px;color:#26a69a;display:block;line-height:22px;padding:14px 16px}.dropdown-content li>span>label{top:1px;left:0;height:18px}.dropdown-content li>a>i{height:inherit;line-height:inherit}.input-field.col .dropdown-content [type="checkbox"]+label{top:1px;left:0;height:18px}/*! - * Waves v0.6.0 - * http://fian.my.id/Waves - * - * Copyright 2014 Alfiana E. Sibuea and other contributors - * Released under the MIT license - * https://github.com/fians/Waves/blob/master/LICENSE - */.waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle;z-index:1;transition:.3s ease-out}.waves-effect .waves-ripple{position:absolute;border-radius:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;opacity:0;background:rgba(0,0,0,0.2);transition:all 0.7s ease-out;transition-property:opacity, -webkit-transform;transition-property:transform, opacity;transition-property:transform, opacity, -webkit-transform;-webkit-transform:scale(0);transform:scale(0);pointer-events:none}.waves-effect.waves-light .waves-ripple{background-color:rgba(255,255,255,0.45)}.waves-effect.waves-red .waves-ripple{background-color:rgba(244,67,54,0.7)}.waves-effect.waves-yellow .waves-ripple{background-color:rgba(255,235,59,0.7)}.waves-effect.waves-orange .waves-ripple{background-color:rgba(255,152,0,0.7)}.waves-effect.waves-purple .waves-ripple{background-color:rgba(156,39,176,0.7)}.waves-effect.waves-green .waves-ripple{background-color:rgba(76,175,80,0.7)}.waves-effect.waves-teal .waves-ripple{background-color:rgba(0,150,136,0.7)}.waves-effect input[type="button"],.waves-effect input[type="reset"],.waves-effect input[type="submit"]{border:0;font-style:normal;font-size:inherit;text-transform:inherit;background:none}.waves-effect img{position:relative;z-index:-1}.waves-notransition{transition:none !important}.waves-circle{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(circle, #fff 100%, #000 100%)}.waves-input-wrapper{border-radius:0.2em;vertical-align:bottom}.waves-input-wrapper .waves-button-input{position:relative;top:0;left:0;z-index:1}.waves-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%;-webkit-mask-image:none}.waves-block{display:block}.waves-effect .waves-ripple{z-index:-1}.modal{display:none;position:fixed;left:0;right:0;background-color:#fafafa;padding:0;max-height:70%;width:55%;margin:auto;overflow-y:auto;border-radius:2px;will-change:top, opacity}@media only screen and (max-width: 992px){.modal{width:80%}}.modal h1,.modal h2,.modal h3,.modal h4{margin-top:0}.modal .modal-content{padding:24px}.modal .modal-close{cursor:pointer}.modal .modal-footer{border-radius:0 0 2px 2px;background-color:#fafafa;padding:4px 6px;height:56px;width:100%}.modal .modal-footer .btn,.modal .modal-footer .btn-large,.modal .modal-footer .btn-flat{float:right;margin:6px 0}.modal-overlay{position:fixed;z-index:999;top:-100px;left:0;bottom:0;right:0;height:125%;width:100%;background:#000;display:none;will-change:opacity}.modal.modal-fixed-footer{padding:0;height:70%}.modal.modal-fixed-footer .modal-content{position:absolute;height:calc(100% - 56px);max-height:100%;width:100%;overflow-y:auto}.modal.modal-fixed-footer .modal-footer{border-top:1px solid rgba(0,0,0,0.1);position:absolute;bottom:0}.modal.bottom-sheet{top:auto;bottom:-100%;margin:0;width:100%;max-height:45%;border-radius:0;will-change:bottom, opacity}.collapsible{border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;margin:.5rem 0 1rem 0}.collapsible-header{display:block;cursor:pointer;min-height:3rem;line-height:3rem;padding:0 1rem;background-color:#fff;border-bottom:1px solid #ddd}.collapsible-header i{width:2rem;font-size:1.6rem;line-height:3rem;display:block;float:left;text-align:center;margin-right:1rem}.collapsible-body{display:none;border-bottom:1px solid #ddd;box-sizing:border-box;padding:2rem}.side-nav .collapsible,.side-nav.fixed .collapsible{border:none;box-shadow:none}.side-nav .collapsible li,.side-nav.fixed .collapsible li{padding:0}.side-nav .collapsible-header,.side-nav.fixed .collapsible-header{background-color:transparent;border:none;line-height:inherit;height:inherit;padding:0 16px}.side-nav .collapsible-header:hover,.side-nav.fixed .collapsible-header:hover{background-color:rgba(0,0,0,0.05)}.side-nav .collapsible-header i,.side-nav.fixed .collapsible-header i{line-height:inherit}.side-nav .collapsible-body,.side-nav.fixed .collapsible-body{border:0;background-color:#fff}.side-nav .collapsible-body li a,.side-nav.fixed .collapsible-body li a{padding:0 23.5px 0 31px}.collapsible.popout{border:none;box-shadow:none}.collapsible.popout>li{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);margin:0 24px;transition:margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.collapsible.popout>li.active{box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15);margin:16px 0}.chip{display:inline-block;height:32px;font-size:13px;font-weight:500;color:rgba(0,0,0,0.6);line-height:32px;padding:0 12px;border-radius:16px;background-color:#e4e4e4;margin-bottom:5px;margin-right:5px}.chip img{float:left;margin:0 8px 0 -12px;height:32px;width:32px;border-radius:50%}.chip .close{cursor:pointer;float:right;font-size:16px;line-height:32px;padding-left:8px}.chips{border:none;border-bottom:1px solid #9e9e9e;box-shadow:none;margin:0 0 20px 0;min-height:45px;outline:none;transition:all .3s}.chips.focus{border-bottom:1px solid #26a69a;box-shadow:0 1px 0 0 #26a69a}.chips:hover{cursor:text}.chips .chip.selected{background-color:#26a69a;color:#fff}.chips .input{background:none;border:0;color:rgba(0,0,0,0.6);display:inline-block;font-size:1rem;height:3rem;line-height:32px;outline:0;margin:0;padding:0 !important;width:120px !important}.chips .input:focus{border:0 !important;box-shadow:none !important}.prefix ~ .chips{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.chips:empty ~ label{font-size:0.8rem;-webkit-transform:translateY(-140%);transform:translateY(-140%)}.materialboxed{display:block;cursor:-webkit-zoom-in;cursor:zoom-in;position:relative;transition:opacity .4s;-webkit-backface-visibility:hidden}.materialboxed:hover:not(.active){opacity:.8}.materialboxed.active{cursor:-webkit-zoom-out;cursor:zoom-out}#materialbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#292929;z-index:1000;will-change:opacity}.materialbox-caption{position:fixed;display:none;color:#fff;line-height:50px;bottom:0;left:0;width:100%;text-align:center;padding:0% 15%;height:50px;z-index:1000;-webkit-font-smoothing:antialiased}select:focus{outline:1px solid #c9f3ef}button:focus{outline:none;background-color:#2ab7a9}label{font-size:.8rem;color:#9e9e9e}::-webkit-input-placeholder{color:#d1d1d1}:-moz-placeholder{color:#d1d1d1}::-moz-placeholder{color:#d1d1d1}:-ms-input-placeholder{color:#d1d1d1}input:not([type]),input[type=text],input[type=password],input[type=email],input[type=url],input[type=time],input[type=date],input[type=datetime],input[type=datetime-local],input[type=tel],input[type=number],input[type=search],textarea.materialize-textarea{background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;border-radius:0;outline:none;height:3rem;width:100%;font-size:1rem;margin:0 0 20px 0;padding:0;box-shadow:none;box-sizing:content-box;transition:all 0.3s}input:not([type]):disabled,input:not([type])[readonly="readonly"],input[type=text]:disabled,input[type=text][readonly="readonly"],input[type=password]:disabled,input[type=password][readonly="readonly"],input[type=email]:disabled,input[type=email][readonly="readonly"],input[type=url]:disabled,input[type=url][readonly="readonly"],input[type=time]:disabled,input[type=time][readonly="readonly"],input[type=date]:disabled,input[type=date][readonly="readonly"],input[type=datetime]:disabled,input[type=datetime][readonly="readonly"],input[type=datetime-local]:disabled,input[type=datetime-local][readonly="readonly"],input[type=tel]:disabled,input[type=tel][readonly="readonly"],input[type=number]:disabled,input[type=number][readonly="readonly"],input[type=search]:disabled,input[type=search][readonly="readonly"],textarea.materialize-textarea:disabled,textarea.materialize-textarea[readonly="readonly"]{color:rgba(0,0,0,0.26);border-bottom:1px dotted rgba(0,0,0,0.26)}input:not([type]):disabled+label,input:not([type])[readonly="readonly"]+label,input[type=text]:disabled+label,input[type=text][readonly="readonly"]+label,input[type=password]:disabled+label,input[type=password][readonly="readonly"]+label,input[type=email]:disabled+label,input[type=email][readonly="readonly"]+label,input[type=url]:disabled+label,input[type=url][readonly="readonly"]+label,input[type=time]:disabled+label,input[type=time][readonly="readonly"]+label,input[type=date]:disabled+label,input[type=date][readonly="readonly"]+label,input[type=datetime]:disabled+label,input[type=datetime][readonly="readonly"]+label,input[type=datetime-local]:disabled+label,input[type=datetime-local][readonly="readonly"]+label,input[type=tel]:disabled+label,input[type=tel][readonly="readonly"]+label,input[type=number]:disabled+label,input[type=number][readonly="readonly"]+label,input[type=search]:disabled+label,input[type=search][readonly="readonly"]+label,textarea.materialize-textarea:disabled+label,textarea.materialize-textarea[readonly="readonly"]+label{color:rgba(0,0,0,0.26)}input:not([type]):focus:not([readonly]),input[type=text]:focus:not([readonly]),input[type=password]:focus:not([readonly]),input[type=email]:focus:not([readonly]),input[type=url]:focus:not([readonly]),input[type=time]:focus:not([readonly]),input[type=date]:focus:not([readonly]),input[type=datetime]:focus:not([readonly]),input[type=datetime-local]:focus:not([readonly]),input[type=tel]:focus:not([readonly]),input[type=number]:focus:not([readonly]),input[type=search]:focus:not([readonly]),textarea.materialize-textarea:focus:not([readonly]){border-bottom:1px solid #26a69a;box-shadow:0 1px 0 0 #26a69a}input:not([type]):focus:not([readonly])+label,input[type=text]:focus:not([readonly])+label,input[type=password]:focus:not([readonly])+label,input[type=email]:focus:not([readonly])+label,input[type=url]:focus:not([readonly])+label,input[type=time]:focus:not([readonly])+label,input[type=date]:focus:not([readonly])+label,input[type=datetime]:focus:not([readonly])+label,input[type=datetime-local]:focus:not([readonly])+label,input[type=tel]:focus:not([readonly])+label,input[type=number]:focus:not([readonly])+label,input[type=search]:focus:not([readonly])+label,textarea.materialize-textarea:focus:not([readonly])+label{color:#26a69a}input:not([type]).valid,input:not([type]):focus.valid,input[type=text].valid,input[type=text]:focus.valid,input[type=password].valid,input[type=password]:focus.valid,input[type=email].valid,input[type=email]:focus.valid,input[type=url].valid,input[type=url]:focus.valid,input[type=time].valid,input[type=time]:focus.valid,input[type=date].valid,input[type=date]:focus.valid,input[type=datetime].valid,input[type=datetime]:focus.valid,input[type=datetime-local].valid,input[type=datetime-local]:focus.valid,input[type=tel].valid,input[type=tel]:focus.valid,input[type=number].valid,input[type=number]:focus.valid,input[type=search].valid,input[type=search]:focus.valid,textarea.materialize-textarea.valid,textarea.materialize-textarea:focus.valid{border-bottom:1px solid #4CAF50;box-shadow:0 1px 0 0 #4CAF50}input:not([type]).valid+label:after,input:not([type]):focus.valid+label:after,input[type=text].valid+label:after,input[type=text]:focus.valid+label:after,input[type=password].valid+label:after,input[type=password]:focus.valid+label:after,input[type=email].valid+label:after,input[type=email]:focus.valid+label:after,input[type=url].valid+label:after,input[type=url]:focus.valid+label:after,input[type=time].valid+label:after,input[type=time]:focus.valid+label:after,input[type=date].valid+label:after,input[type=date]:focus.valid+label:after,input[type=datetime].valid+label:after,input[type=datetime]:focus.valid+label:after,input[type=datetime-local].valid+label:after,input[type=datetime-local]:focus.valid+label:after,input[type=tel].valid+label:after,input[type=tel]:focus.valid+label:after,input[type=number].valid+label:after,input[type=number]:focus.valid+label:after,input[type=search].valid+label:after,input[type=search]:focus.valid+label:after,textarea.materialize-textarea.valid+label:after,textarea.materialize-textarea:focus.valid+label:after{content:attr(data-success);color:#4CAF50;opacity:1}input:not([type]).invalid,input:not([type]):focus.invalid,input[type=text].invalid,input[type=text]:focus.invalid,input[type=password].invalid,input[type=password]:focus.invalid,input[type=email].invalid,input[type=email]:focus.invalid,input[type=url].invalid,input[type=url]:focus.invalid,input[type=time].invalid,input[type=time]:focus.invalid,input[type=date].invalid,input[type=date]:focus.invalid,input[type=datetime].invalid,input[type=datetime]:focus.invalid,input[type=datetime-local].invalid,input[type=datetime-local]:focus.invalid,input[type=tel].invalid,input[type=tel]:focus.invalid,input[type=number].invalid,input[type=number]:focus.invalid,input[type=search].invalid,input[type=search]:focus.invalid,textarea.materialize-textarea.invalid,textarea.materialize-textarea:focus.invalid{border-bottom:1px solid #F44336;box-shadow:0 1px 0 0 #F44336}input:not([type]).invalid+label:after,input:not([type]):focus.invalid+label:after,input[type=text].invalid+label:after,input[type=text]:focus.invalid+label:after,input[type=password].invalid+label:after,input[type=password]:focus.invalid+label:after,input[type=email].invalid+label:after,input[type=email]:focus.invalid+label:after,input[type=url].invalid+label:after,input[type=url]:focus.invalid+label:after,input[type=time].invalid+label:after,input[type=time]:focus.invalid+label:after,input[type=date].invalid+label:after,input[type=date]:focus.invalid+label:after,input[type=datetime].invalid+label:after,input[type=datetime]:focus.invalid+label:after,input[type=datetime-local].invalid+label:after,input[type=datetime-local]:focus.invalid+label:after,input[type=tel].invalid+label:after,input[type=tel]:focus.invalid+label:after,input[type=number].invalid+label:after,input[type=number]:focus.invalid+label:after,input[type=search].invalid+label:after,input[type=search]:focus.invalid+label:after,textarea.materialize-textarea.invalid+label:after,textarea.materialize-textarea:focus.invalid+label:after{content:attr(data-error);color:#F44336;opacity:1}input:not([type]).validate+label,input[type=text].validate+label,input[type=password].validate+label,input[type=email].validate+label,input[type=url].validate+label,input[type=time].validate+label,input[type=date].validate+label,input[type=datetime].validate+label,input[type=datetime-local].validate+label,input[type=tel].validate+label,input[type=number].validate+label,input[type=search].validate+label,textarea.materialize-textarea.validate+label{width:100%;pointer-events:none}input:not([type])+label:after,input[type=text]+label:after,input[type=password]+label:after,input[type=email]+label:after,input[type=url]+label:after,input[type=time]+label:after,input[type=date]+label:after,input[type=datetime]+label:after,input[type=datetime-local]+label:after,input[type=tel]+label:after,input[type=number]+label:after,input[type=search]+label:after,textarea.materialize-textarea+label:after{display:block;content:"";position:absolute;top:60px;opacity:0;transition:.2s opacity ease-out, .2s color ease-out}.input-field{position:relative;margin-top:1rem}.input-field.inline{display:inline-block;vertical-align:middle;margin-left:5px}.input-field.inline input,.input-field.inline .select-dropdown{margin-bottom:1rem}.input-field.col label{left:.75rem}.input-field.col .prefix ~ label,.input-field.col .prefix ~ .validate ~ label{width:calc(100% - 3rem - 1.5rem)}.input-field label{color:#9e9e9e;position:absolute;top:0.8rem;left:0;font-size:1rem;cursor:text;transition:.2s ease-out}.input-field label:not(.label-icon).active{font-size:.8rem;-webkit-transform:translateY(-140%);transform:translateY(-140%)}.input-field .prefix{position:absolute;width:3rem;font-size:2rem;transition:color .2s}.input-field .prefix.active{color:#26a69a}.input-field .prefix ~ input,.input-field .prefix ~ textarea,.input-field .prefix ~ label,.input-field .prefix ~ .validate ~ label,.input-field .prefix ~ .autocomplete-content{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.input-field .prefix ~ label{margin-left:3rem}@media only screen and (max-width: 992px){.input-field .prefix ~ input{width:86%;width:calc(100% - 3rem)}}@media only screen and (max-width: 600px){.input-field .prefix ~ input{width:80%;width:calc(100% - 3rem)}}.input-field input[type=search]{display:block;line-height:inherit;padding-left:4rem;width:calc(100% - 4rem)}.input-field input[type=search]:focus{background-color:#fff;border:0;box-shadow:none;color:#444}.input-field input[type=search]:focus+label i,.input-field input[type=search]:focus ~ .mdi-navigation-close,.input-field input[type=search]:focus ~ .material-icons{color:#444}.input-field input[type=search]+label{left:1rem}.input-field input[type=search] ~ .mdi-navigation-close,.input-field input[type=search] ~ .material-icons{position:absolute;top:0;right:1rem;color:transparent;cursor:pointer;font-size:2rem;transition:.3s color}textarea{width:100%;height:3rem;background-color:transparent}textarea.materialize-textarea{overflow-y:hidden;padding:.8rem 0 1.6rem 0;resize:none;min-height:3rem}.hiddendiv{display:none;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;padding-top:1.2rem}.autocomplete-content{margin-top:-15px;display:block;opacity:1;position:static}.autocomplete-content li .highlight{color:#444}.autocomplete-content li img{height:40px;width:40px;margin:5px 15px}[type="radio"]:not(:checked),[type="radio"]:checked{position:absolute;left:-9999px;opacity:0}[type="radio"]:not(:checked)+label,[type="radio"]:checked+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;transition:.28s ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[type="radio"]+label:before,[type="radio"]+label:after{content:'';position:absolute;left:0;top:0;margin:4px;width:16px;height:16px;z-index:0;transition:.28s ease}[type="radio"]:not(:checked)+label:before,[type="radio"]:not(:checked)+label:after,[type="radio"]:checked+label:before,[type="radio"]:checked+label:after,[type="radio"].with-gap:checked+label:before,[type="radio"].with-gap:checked+label:after{border-radius:50%}[type="radio"]:not(:checked)+label:before,[type="radio"]:not(:checked)+label:after{border:2px solid #5a5a5a}[type="radio"]:not(:checked)+label:after{-webkit-transform:scale(0);transform:scale(0)}[type="radio"]:checked+label:before{border:2px solid transparent}[type="radio"]:checked+label:after,[type="radio"].with-gap:checked+label:before,[type="radio"].with-gap:checked+label:after{border:2px solid #26a69a}[type="radio"]:checked+label:after,[type="radio"].with-gap:checked+label:after{background-color:#26a69a}[type="radio"]:checked+label:after{-webkit-transform:scale(1.02);transform:scale(1.02)}[type="radio"].with-gap:checked+label:after{-webkit-transform:scale(0.5);transform:scale(0.5)}[type="radio"].tabbed:focus+label:before{box-shadow:0 0 0 10px rgba(0,0,0,0.1)}[type="radio"].with-gap:disabled:checked+label:before{border:2px solid rgba(0,0,0,0.26)}[type="radio"].with-gap:disabled:checked+label:after{border:none;background-color:rgba(0,0,0,0.26)}[type="radio"]:disabled:not(:checked)+label:before,[type="radio"]:disabled:checked+label:before{background-color:transparent;border-color:rgba(0,0,0,0.26)}[type="radio"]:disabled+label{color:rgba(0,0,0,0.26)}[type="radio"]:disabled:not(:checked)+label:before{border-color:rgba(0,0,0,0.26)}[type="radio"]:disabled:checked+label:after{background-color:rgba(0,0,0,0.26);border-color:#BDBDBD}form p{margin-bottom:10px;text-align:left}form p:last-child{margin-bottom:0}[type="checkbox"]:not(:checked),[type="checkbox"]:checked{position:absolute;left:-9999px;opacity:0}[type="checkbox"]+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}[type="checkbox"]+label:before,[type="checkbox"]:not(.filled-in)+label:after{content:'';position:absolute;top:0;left:0;width:18px;height:18px;z-index:0;border:2px solid #5a5a5a;border-radius:1px;margin-top:2px;transition:.2s}[type="checkbox"]:not(.filled-in)+label:after{border:0;-webkit-transform:scale(0);transform:scale(0)}[type="checkbox"]:not(:checked):disabled+label:before{border:none;background-color:rgba(0,0,0,0.26)}[type="checkbox"].tabbed:focus+label:after{-webkit-transform:scale(1);transform:scale(1);border:0;border-radius:50%;box-shadow:0 0 0 10px rgba(0,0,0,0.1);background-color:rgba(0,0,0,0.1)}[type="checkbox"]:checked+label:before{top:-4px;left:-5px;width:12px;height:22px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #26a69a;border-bottom:2px solid #26a69a;-webkit-transform:rotate(40deg);transform:rotate(40deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:checked:disabled+label:before{border-right:2px solid rgba(0,0,0,0.26);border-bottom:2px solid rgba(0,0,0,0.26)}[type="checkbox"]:indeterminate+label:before{top:-11px;left:-12px;width:10px;height:22px;border-top:none;border-left:none;border-right:2px solid #26a69a;border-bottom:none;-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:indeterminate:disabled+label:before{border-right:2px solid rgba(0,0,0,0.26);background-color:transparent}[type="checkbox"].filled-in+label:after{border-radius:2px}[type="checkbox"].filled-in+label:before,[type="checkbox"].filled-in+label:after{content:'';left:0;position:absolute;transition:border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;z-index:1}[type="checkbox"].filled-in:not(:checked)+label:before{width:0;height:0;border:3px solid transparent;left:6px;top:10px;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:20% 40%;transform-origin:100% 100%}[type="checkbox"].filled-in:not(:checked)+label:after{height:20px;width:20px;background-color:transparent;border:2px solid #5a5a5a;top:0px;z-index:0}[type="checkbox"].filled-in:checked+label:before{top:0;left:1px;width:8px;height:13px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"].filled-in:checked+label:after{top:0;width:20px;height:20px;border:2px solid #26a69a;background-color:#26a69a;z-index:0}[type="checkbox"].filled-in.tabbed:focus+label:after{border-radius:2px;border-color:#5a5a5a;background-color:rgba(0,0,0,0.1)}[type="checkbox"].filled-in.tabbed:checked:focus+label:after{border-radius:2px;background-color:#26a69a;border-color:#26a69a}[type="checkbox"].filled-in:disabled:not(:checked)+label:before{background-color:transparent;border:2px solid transparent}[type="checkbox"].filled-in:disabled:not(:checked)+label:after{border-color:transparent;background-color:#BDBDBD}[type="checkbox"].filled-in:disabled:checked+label:before{background-color:transparent}[type="checkbox"].filled-in:disabled:checked+label:after{background-color:#BDBDBD;border-color:#BDBDBD}.switch,.switch *{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.switch label{cursor:pointer}.switch label input[type=checkbox]{opacity:0;width:0;height:0}.switch label input[type=checkbox]:checked+.lever{background-color:#84c7c1}.switch label input[type=checkbox]:checked+.lever:after{background-color:#26a69a;left:24px}.switch label .lever{content:"";display:inline-block;position:relative;width:40px;height:15px;background-color:#818181;border-radius:15px;margin-right:10px;transition:background 0.3s ease;vertical-align:middle;margin:0 16px}.switch label .lever:after{content:"";position:absolute;display:inline-block;width:21px;height:21px;background-color:#F1F1F1;border-radius:21px;box-shadow:0 1px 3px 1px rgba(0,0,0,0.4);left:-5px;top:-3px;transition:left 0.3s ease, background .3s ease, box-shadow 0.1s ease}input[type=checkbox]:checked:not(:disabled) ~ .lever:active::after,input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after{box-shadow:0 1px 3px 1px rgba(0,0,0,0.4),0 0 0 15px rgba(38,166,154,0.1)}input[type=checkbox]:not(:disabled) ~ .lever:active:after,input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after{box-shadow:0 1px 3px 1px rgba(0,0,0,0.4),0 0 0 15px rgba(0,0,0,0.08)}.switch input[type=checkbox][disabled]+.lever{cursor:default}.switch label input[type=checkbox][disabled]+.lever:after,.switch label input[type=checkbox][disabled]:checked+.lever:after{background-color:#BDBDBD}select{display:none}select.browser-default{display:block}select{background-color:rgba(255,255,255,0.9);width:100%;padding:5px;border:1px solid #f2f2f2;border-radius:2px;height:3rem}.select-label{position:absolute}.select-wrapper{position:relative}.select-wrapper input.select-dropdown{position:relative;cursor:pointer;background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;outline:none;height:3rem;line-height:3rem;width:100%;font-size:1rem;margin:0 0 20px 0;padding:0;display:block}.select-wrapper span.caret{color:initial;position:absolute;right:0;top:0;bottom:0;height:10px;margin:auto 0;font-size:10px;line-height:10px}.select-wrapper span.caret.disabled{color:rgba(0,0,0,0.26)}.select-wrapper+label{position:absolute;top:-14px;font-size:.8rem}select:disabled{color:rgba(0,0,0,0.3)}.select-wrapper input.select-dropdown:disabled{color:rgba(0,0,0,0.3);cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;border-bottom:1px solid rgba(0,0,0,0.3)}.select-wrapper i{color:rgba(0,0,0,0.3)}.select-dropdown li.disabled,.select-dropdown li.disabled>span,.select-dropdown li.optgroup{color:rgba(0,0,0,0.3);background-color:transparent}.prefix ~ .select-wrapper{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.prefix ~ label{margin-left:3rem}.select-dropdown li img{height:40px;width:40px;margin:5px 15px;float:right}.select-dropdown li.optgroup{border-top:1px solid #eee}.select-dropdown li.optgroup.selected>span{color:rgba(0,0,0,0.7)}.select-dropdown li.optgroup>span{color:rgba(0,0,0,0.4)}.select-dropdown li.optgroup ~ li.optgroup-option{padding-left:1rem}.file-field{position:relative}.file-field .file-path-wrapper{overflow:hidden;padding-left:10px}.file-field input.file-path{width:100%}.file-field .btn,.file-field .btn-large{float:left;height:3rem;line-height:3rem}.file-field span{cursor:pointer}.file-field input[type=file]{position:absolute;top:0;right:0;left:0;bottom:0;width:100%;margin:0;padding:0;font-size:20px;cursor:pointer;opacity:0;filter:alpha(opacity=0)}.range-field{position:relative}input[type=range],input[type=range]+.thumb{cursor:pointer}input[type=range]{position:relative;background-color:transparent;border:none;outline:none;width:100%;margin:15px 0;padding:0}input[type=range]:focus{outline:none}input[type=range]+.thumb{position:absolute;border:none;height:0;width:0;border-radius:50%;background-color:#26a69a;top:10px;margin-left:-6px;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}input[type=range]+.thumb .value{display:block;width:30px;text-align:center;color:#26a69a;font-size:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}input[type=range]+.thumb.active{border-radius:50% 50% 50% 0}input[type=range]+.thumb.active .value{color:#fff;margin-left:-1px;margin-top:8px;font-size:10px}input[type=range]{-webkit-appearance:none}input[type=range]::-webkit-slider-runnable-track{height:3px;background:#c2c0c2;border:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:none;height:14px;width:14px;border-radius:50%;background-color:#26a69a;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;margin:-5px 0 0 0;transition:.3s}input[type=range]:focus::-webkit-slider-runnable-track{background:#ccc}input[type=range]{border:1px solid white}input[type=range]::-moz-range-track{height:3px;background:#ddd;border:none}input[type=range]::-moz-range-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;margin-top:-5px}input[type=range]:-moz-focusring{outline:1px solid #fff;outline-offset:-1px}input[type=range]:focus::-moz-range-track{background:#ccc}input[type=range]::-ms-track{height:3px;background:transparent;border-color:transparent;border-width:6px 0;color:transparent}input[type=range]::-ms-fill-lower{background:#777}input[type=range]::-ms-fill-upper{background:#ddd}input[type=range]::-ms-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a}input[type=range]:focus::-ms-fill-lower{background:#888}input[type=range]:focus::-ms-fill-upper{background:#ccc}.table-of-contents.fixed{position:fixed}.table-of-contents li{padding:2px 0}.table-of-contents a{display:inline-block;font-weight:300;color:#757575;padding-left:20px;height:1.5rem;line-height:1.5rem;letter-spacing:.4;display:inline-block}.table-of-contents a:hover{color:#a8a8a8;padding-left:19px;border-left:1px solid #ee6e73}.table-of-contents a.active{font-weight:500;padding-left:18px;border-left:2px solid #ee6e73}.side-nav{position:fixed;width:300px;left:0;top:0;margin:0;-webkit-transform:translateX(-100%);transform:translateX(-100%);height:100%;height:calc(100% + 60px);height:-moz-calc(100%);padding-bottom:60px;background-color:#fff;z-index:999;overflow-y:auto;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateX(-105%);transform:translateX(-105%)}.side-nav.right-aligned{right:0;-webkit-transform:translateX(105%);transform:translateX(105%);left:auto;-webkit-transform:translateX(100%);transform:translateX(100%)}.side-nav .collapsible{margin:0}.side-nav li{float:none;line-height:48px}.side-nav li.active{background-color:rgba(0,0,0,0.05)}.side-nav a{color:rgba(0,0,0,0.87);display:block;font-size:14px;font-weight:500;height:48px;line-height:48px;padding:0 32px}.side-nav a:hover{background-color:rgba(0,0,0,0.05)}.side-nav a.btn,.side-nav a.btn-large,.side-nav a.btn-large,.side-nav a.btn-flat,.side-nav a.btn-floating{margin:10px 15px}.side-nav a.btn,.side-nav a.btn-large,.side-nav a.btn-large,.side-nav a.btn-floating{color:#fff}.side-nav a.btn-flat{color:#343434}.side-nav a.btn:hover,.side-nav a.btn-large:hover,.side-nav a.btn-large:hover{background-color:#2bbbad}.side-nav a.btn-floating:hover{background-color:#26a69a}.side-nav li>a>i,.side-nav li>a>[class^="mdi-"],.side-nav li>a>[class*="mdi-"],.side-nav li>a>i.material-icons{float:left;height:48px;line-height:48px;margin:0 32px 0 0;width:24px;color:rgba(0,0,0,0.54)}.side-nav .divider{margin:8px 0 0 0}.side-nav .subheader{cursor:initial;pointer-events:none;color:rgba(0,0,0,0.54);font-size:14px;font-weight:500;line-height:48px}.side-nav .subheader:hover{background-color:transparent}.side-nav .userView{position:relative;padding:32px 32px 0;margin-bottom:8px}.side-nav .userView>a{height:auto;padding:0}.side-nav .userView>a:hover{background-color:transparent}.side-nav .userView .background{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.side-nav .userView .circle,.side-nav .userView .name,.side-nav .userView .email{display:block}.side-nav .userView .circle{height:64px;width:64px}.side-nav .userView .name,.side-nav .userView .email{font-size:14px;line-height:24px}.side-nav .userView .name{margin-top:16px;font-weight:500}.side-nav .userView .email{padding-bottom:16px;font-weight:400}.drag-target{height:100%;width:10px;position:fixed;top:0;z-index:998}.side-nav.fixed{left:0;-webkit-transform:translateX(0);transform:translateX(0);position:fixed}.side-nav.fixed.right-aligned{right:0;left:auto}@media only screen and (max-width: 992px){.side-nav.fixed{-webkit-transform:translateX(-105%);transform:translateX(-105%)}.side-nav.fixed.right-aligned{-webkit-transform:translateX(105%);transform:translateX(105%)}.side-nav a{padding:0 16px}.side-nav .userView{padding:16px 16px 0}}.side-nav .collapsible-body>ul:not(.collapsible)>li.active,.side-nav.fixed .collapsible-body>ul:not(.collapsible)>li.active{background-color:#ee6e73}.side-nav .collapsible-body>ul:not(.collapsible)>li.active a,.side-nav.fixed .collapsible-body>ul:not(.collapsible)>li.active a{color:#fff}#sidenav-overlay{position:fixed;top:0;left:0;right:0;height:120vh;background-color:rgba(0,0,0,0.5);z-index:997;will-change:opacity}.preloader-wrapper{display:inline-block;position:relative;width:48px;height:48px}.preloader-wrapper.small{width:36px;height:36px}.preloader-wrapper.big{width:64px;height:64px}.preloader-wrapper.active{-webkit-animation:container-rotate 1568ms linear infinite;animation:container-rotate 1568ms linear infinite}@-webkit-keyframes container-rotate{to{-webkit-transform:rotate(360deg)}}@keyframes container-rotate{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-layer{position:absolute;width:100%;height:100%;opacity:0;border-color:#26a69a}.spinner-blue,.spinner-blue-only{border-color:#4285f4}.spinner-red,.spinner-red-only{border-color:#db4437}.spinner-yellow,.spinner-yellow-only{border-color:#f4b400}.spinner-green,.spinner-green-only{border-color:#0f9d58}.active .spinner-layer.spinner-blue{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-red{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-yellow{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-green{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer,.active .spinner-layer.spinner-blue-only,.active .spinner-layer.spinner-red-only,.active .spinner-layer.spinner-yellow-only,.active .spinner-layer.spinner-green-only{opacity:1;-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg)}}@keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg);transform:rotate(1080deg)}}@-webkit-keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@-webkit-keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@-webkit-keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@-webkit-keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}@keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}.gap-patch{position:absolute;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.gap-patch .circle{width:1000%;left:-450%}.circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.circle-clipper .circle{width:200%;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent !important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0}.circle-clipper.left .circle{left:0;border-right-color:transparent !important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.circle-clipper.right .circle{left:-100%;border-left-color:transparent !important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.active .circle-clipper.left .circle{-webkit-animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .circle-clipper.right .circle{-webkit-animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes left-spin{from{-webkit-transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg)}}@keyframes left-spin{from{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}}@-webkit-keyframes right-spin{from{-webkit-transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg)}}@keyframes right-spin{from{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}}#spinnerContainer.cooldown{-webkit-animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1)}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}.slider{position:relative;height:400px;width:100%}.slider.fullscreen{height:100%;width:100%;position:absolute;top:0;left:0;right:0;bottom:0}.slider.fullscreen ul.slides{height:100%}.slider.fullscreen ul.indicators{z-index:2;bottom:30px}.slider .slides{background-color:#9e9e9e;margin:0;height:400px}.slider .slides li{opacity:0;position:absolute;top:0;left:0;z-index:1;width:100%;height:inherit;overflow:hidden}.slider .slides li img{height:100%;width:100%;background-size:cover;background-position:center}.slider .slides li .caption{color:#fff;position:absolute;top:15%;left:15%;width:70%;opacity:0}.slider .slides li .caption p{color:#e0e0e0}.slider .slides li.active{z-index:2}.slider .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.slider .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:16px;width:16px;margin:0 12px;background-color:#e0e0e0;transition:background-color .3s;border-radius:50%}.slider .indicators .indicator-item.active{background-color:#4CAF50}.carousel{overflow:hidden;position:relative;width:100%;height:400px;-webkit-perspective:500px;perspective:500px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform-origin:0% 50%;transform-origin:0% 50%}.carousel.carousel-slider{top:0;left:0;height:0}.carousel.carousel-slider .carousel-fixed-item{position:absolute;left:0;right:0;bottom:20px;z-index:1}.carousel.carousel-slider .carousel-fixed-item.with-indicators{bottom:68px}.carousel.carousel-slider .carousel-item{width:100%;height:100%;min-height:400px;position:absolute;top:0;left:0}.carousel.carousel-slider .carousel-item h2{font-size:24px;font-weight:500;line-height:32px}.carousel.carousel-slider .carousel-item p{font-size:15px}.carousel .carousel-item{display:none;width:200px;height:200px;position:absolute;top:0;left:0}.carousel .carousel-item img{width:100%}.carousel .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.carousel .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:8px;width:8px;margin:24px 4px;background-color:rgba(255,255,255,0.5);transition:background-color .3s;border-radius:50%}.carousel .indicators .indicator-item.active{background-color:#fff}.picker{font-size:16px;text-align:left;line-height:1.2;color:#000000;position:absolute;z-index:10000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.picker__input{cursor:default}.picker__input.picker__input--active{border-color:#0089ec}.picker__holder{width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}/*! - * Default mobile-first, responsive styling for pickadate.js - * Demo: http://amsul.github.io/pickadate.js - */.picker__holder,.picker__frame{bottom:0;left:0;right:0;top:100%}.picker__holder{position:fixed;transition:background 0.15s ease-out, top 0s 0.15s;-webkit-backface-visibility:hidden}.picker__frame{position:absolute;margin:0 auto;min-width:256px;width:300px;max-height:350px;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;transition:all 0.15s ease-out}@media (min-height: 28.875em){.picker__frame{overflow:visible;top:auto;bottom:-100%;max-height:80%}}@media (min-height: 40.125em){.picker__frame{margin-bottom:7.5%}}.picker__wrap{display:table;width:100%;height:100%}@media (min-height: 28.875em){.picker__wrap{display:block}}.picker__box{background:#ffffff;display:table-cell;vertical-align:middle}@media (min-height: 28.875em){.picker__box{display:block;border:1px solid #777777;border-top-color:#898989;border-bottom-width:0;border-radius:5px 5px 0 0;box-shadow:0 12px 36px 16px rgba(0,0,0,0.24)}}.picker--opened .picker__holder{top:0;background:transparent;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";zoom:1;background:rgba(0,0,0,0.32);transition:background 0.15s ease-out}.picker--opened .picker__frame{top:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1}@media (min-height: 35.875em){.picker--opened .picker__frame{top:10%;bottom:auto}}.picker__input.picker__input--active{border-color:#E3F2FD}.picker__frame{margin:0 auto;max-width:325px}@media (min-height: 38.875em){.picker--opened .picker__frame{top:10%;bottom:auto}}.picker__box{padding:0 1em}.picker__header{text-align:center;position:relative;margin-top:.75em}.picker__month,.picker__year{display:inline-block;margin-left:.25em;margin-right:.25em}.picker__select--month,.picker__select--year{height:2em;padding:0;margin-left:.25em;margin-right:.25em}.picker__select--month.browser-default{display:inline;background-color:#FFFFFF;width:40%}.picker__select--year.browser-default{display:inline;background-color:#FFFFFF;width:26%}.picker__select--month:focus,.picker__select--year:focus{border-color:rgba(0,0,0,0.05)}.picker__nav--prev,.picker__nav--next{position:absolute;padding:.5em 1.25em;width:1em;height:1em;box-sizing:content-box;top:-0.25em}.picker__nav--prev{left:-1em;padding-right:1.25em}.picker__nav--next{right:-1em;padding-left:1.25em}.picker__nav--disabled,.picker__nav--disabled:hover,.picker__nav--disabled:before,.picker__nav--disabled:before:hover{cursor:default;background:none;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{text-align:center;border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:1rem;width:100%;margin-top:.75em;margin-bottom:.5em}.picker__table th,.picker__table td{text-align:center}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999999;font-weight:500}@media (min-height: 33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day--today{position:relative;color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day--disabled:before{border-top-color:#aaaaaa}.picker__day--infocus:hover{cursor:pointer;color:#000;font-weight:500}.picker__day--outfocus{display:none;padding:.75rem 0;color:#fff}.picker__day--outfocus:hover{cursor:pointer;color:#dddddd;font-weight:500}.picker__day--highlighted:hover,.picker--focused .picker__day--highlighted{cursor:pointer}.picker__day--selected,.picker__day--selected:hover,.picker--focused .picker__day--selected{border-radius:50%;-webkit-transform:scale(0.75);transform:scale(0.75);background:#0089ec;color:#ffffff}.picker__day--disabled,.picker__day--disabled:hover,.picker--focused .picker__day--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbbbbb}.picker__footer{text-align:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.picker__button--today,.picker__button--clear,.picker__button--close{border:1px solid #ffffff;background:#ffffff;font-size:.8em;padding:.66em 0;font-weight:bold;width:33%;display:inline-block;vertical-align:bottom}.picker__button--today:hover,.picker__button--clear:hover,.picker__button--close:hover{cursor:pointer;color:#000000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--today:focus,.picker__button--clear:focus,.picker__button--close:focus{background:#b1dcfb;border-color:rgba(0,0,0,0.05);outline:none}.picker__button--today:before,.picker__button--clear:before,.picker__button--close:before{position:relative;display:inline-block;height:0}.picker__button--today:before,.picker__button--clear:before{content:" ";margin-right:.45em}.picker__button--today:before{top:-0.05em;width:0;border-top:0.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{top:-0.25em;width:.66em;border-top:3px solid #ee2200}.picker__button--close:before{content:"\D7";top:-0.1em;vertical-align:top;font-size:1.1em;margin-right:.35em;color:#777777}.picker__button--today[disabled],.picker__button--today[disabled]:hover{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default}.picker__button--today[disabled]:before{border-top-color:#aaaaaa}.picker__box{border-radius:2px;overflow:hidden}.picker__date-display{text-align:center;background-color:#26a69a;color:#fff;padding-bottom:15px;font-weight:300}.picker__nav--prev:hover,.picker__nav--next:hover{cursor:pointer;color:#000000;background:#a1ded8}.picker__weekday-display{background-color:#1f897f;padding:10px;font-weight:200;letter-spacing:.5;font-size:1rem;margin-bottom:15px}.picker__month-display{text-transform:uppercase;font-size:2rem}.picker__day-display{font-size:4.5rem;font-weight:400}.picker__year-display{font-size:1.8rem;color:rgba(255,255,255,0.4)}.picker__box{padding:0}.picker__calendar-container{padding:0 1rem}.picker__calendar-container thead{border:none}.picker__table{margin-top:0;margin-bottom:.5em}.picker__day--infocus{color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day.picker__day--today{color:#26a69a}.picker__day.picker__day--today.picker__day--selected{color:#fff}.picker__weekday{font-size:.9rem}.picker__day--selected,.picker__day--selected:hover,.picker--focused .picker__day--selected{border-radius:50%;-webkit-transform:scale(0.9);transform:scale(0.9);background-color:#26a69a;color:#ffffff}.picker__day--selected.picker__day--outfocus,.picker__day--selected:hover.picker__day--outfocus,.picker--focused .picker__day--selected.picker__day--outfocus{background-color:#a1ded8}.picker__footer{text-align:right;padding:5px 10px}.picker__close,.picker__today{font-size:1.1rem;padding:0 1rem;color:#26a69a}.picker__nav--prev:before,.picker__nav--next:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:0.75em solid #676767;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:0.75em solid #676767}button.picker__today:focus,button.picker__clear:focus,button.picker__close:focus{background-color:#a1ded8}.picker__list{list-style:none;padding:0.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #dddddd;border-top:1px solid #dddddd;margin-bottom:-1px;position:relative;background:#ffffff;padding:.75em 1.25em}@media (min-height: 46.75em){.picker__list-item{padding:.5em 1em}}.picker__list-item:hover{cursor:pointer;color:#000000;background:#b1dcfb;border-color:#0089ec;z-index:10}.picker__list-item--highlighted{border-color:#0089ec;z-index:10}.picker__list-item--highlighted:hover,.picker--focused .picker__list-item--highlighted{cursor:pointer;color:#000000;background:#b1dcfb}.picker__list-item--selected,.picker__list-item--selected:hover,.picker--focused .picker__list-item--selected{background:#0089ec;color:#ffffff;z-index:10}.picker__list-item--disabled,.picker__list-item--disabled:hover,.picker--focused .picker__list-item--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default;border-color:#dddddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:none;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:hover,.picker--time .picker__button--clear:focus{color:#000000;background:#b1dcfb;background:#ee2200;border-color:#ee2200;cursor:pointer;color:#ffffff;outline:none}.picker--time .picker__button--clear:before{top:-0.25em;color:#666;font-size:1.25em;font-weight:bold}.picker--time .picker__button--clear:hover:before,.picker--time .picker__button--clear:focus:before{color:#ffffff}.picker--time .picker__frame{min-width:256px;max-width:320px}.picker--time .picker__box{font-size:1em;background:#f2f2f2;padding:0}@media (min-height: 40.125em){.picker--time .picker__box{margin-bottom:5em}}body{background-color:#fcfcfc}p.box{padding:20px}p{color:rgba(0,0,0,0.71);padding:0;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{-webkit-font-smoothing:antialiased}h5>span{font-size:14px;margin-left:15px;color:#777}nav a{-webkit-font-smoothing:antialiased}nav ul li a:hover,nav ul li.active{background-color:#ea454b}.header{color:#ee6e73;font-weight:300}.caption{font-size:1.25rem;font-weight:300;margin-bottom:30px}.preview{background-color:#FFF;border:1px solid #eee;padding:20px 20px}header,main,footer{padding-left:300px}.parallax-demo header,.parallax-demo main,.parallax-demo footer{padding-left:0}footer.example{padding-left:0}@media only screen and (max-width: 992px){header,main,footer{padding-left:0}h5>span{display:block;margin:0 0 15px 0}}ul.side-nav.fixed li.logo{text-align:center;margin-top:32px;margin-bottom:80px}ul.side-nav.fixed li.logo:hover,ul.side-nav.fixed li.logo #logo-container:hover{background-color:transparent}ul.side-nav.fixed{overflow:hidden}ul.side-nav.fixed li{line-height:44px}ul.side-nav.fixed li.active{background-color:rgba(0,0,0,0.05)}ul.side-nav.fixed li a{font-size:13px;line-height:44px;height:44px;padding:0 30px}ul.side-nav.fixed ul.collapsible-accordion{background-color:#FFF}ul.side-nav.fixed ul.collapsible-accordion a.collapsible-header{padding:0 30px}ul.side-nav.fixed ul.collapsible-accordion .collapsible-body li a{font-weight:400;padding:0 37.5px 0 45px}ul.side-nav.fixed:hover{overflow-y:auto}.bold>a{font-weight:bold}#logo-container{height:57px;margin-bottom:32px}nav.top-nav{height:122px;box-shadow:none}nav.top-nav a.page-title{line-height:122px;font-size:48px}a.button-collapse.top-nav{position:absolute;text-align:center;height:48px;width:48px;left:7.5%;top:0;float:none;margin-left:1.5rem;color:#fff;font-size:36px;z-index:2}a.button-collapse.top-nav.full{line-height:122px}a.button-collapse.top-nav i{font-size:32px}@media only screen and (max-width: 600px){a.button-collapse.top-nav{left:5%}}@media only screen and (max-width: 992px){nav .nav-wrapper{text-align:center}nav .nav-wrapper a.page-title{font-size:36px}}@media only screen and (min-width: 993px){.container{width:85%}}#front-page-logo{display:inline-block;height:100%;pointer-events:none}@media only screen and (max-width: 992px){#front-page-nav ul.side-nav li{float:none;padding:0 15px}#front-page-nav ul.side-nav li:hover{background-color:#ddd}#front-page-nav ul.side-nav li .active{background-color:transparent}#front-page-nav ul.side-nav a{color:#444}}#responsive-img{width:80%;display:block;margin:0 auto}#index-banner{background-color:#ee6e73}#index-banner .container{position:relative}#index-banner .header{color:#FFF}#index-banner h4{margin-bottom:40px}#index-banner h1{margin-top:16px}@media only screen and (max-width: 992px){#index-banner h1{margin-top:60px}#index-banner h4{margin-bottom:15px}}@media only screen and (max-width: 600px){#index-banner h4{margin-bottom:0}}.github-commit{padding:14px 0;height:64px;line-height:36px;background-color:#5c5757;color:#e6e6e6;font-size:.9rem}@media only screen and (max-width: 992px){.github-commit{text-align:center}}#github-button{background-color:#6f6d6d;transition:.25s ease}#github-button:hover{background-color:#797777}.sha{color:#f0f0f0;margin:0 6px 0 6px}#download-button{background-color:#f3989b;width:260px;height:70px;line-height:70px;font-size:18px;font-weight:400}#download-button:hover{background-color:#f5a5a8}.promo{width:100%}.promo i{margin:40px 0;color:#ee6e73;font-size:7rem;display:block}.promo-caption{font-size:1.7rem;font-weight:500;margin-top:5px;margin-bottom:0}#front-page-nav{background-color:#FFF;position:relative}#front-page-nav a{color:#ee6e73}#front-page-nav li:hover{background-color:#fdeaeb}#front-page-nav li.active{background-color:#fdeaeb}#front-page-nav .container{height:inherit}.col.grid-example{border:1px solid #eee;margin:7px 0;text-align:center;line-height:50px;font-size:28px;background-color:tomato;color:white;padding:0}.col.grid-example span{font-weight:200;line-height:50px}.promo-example{overflow:hidden}#site-layout-example-left{background-color:#90a4ae;height:300px}#site-layout-example-right{background-color:#26a69a;height:300px}#site-layout-example-top{background-color:#E57373;height:42px}.flat-text-header{height:35px;width:80%;background-color:rgba(255,255,255,0.15);display:block;margin:27px auto}.flat-text{height:25px;width:80%;background-color:rgba(0,0,0,0.15);display:block;margin:27px auto}.flat-text.small{width:25%;height:25px;background-color:rgba(0,0,0,0.15)}.flat-text.full-width{width:100%}.browser-window{text-align:left;width:100%;height:auto;display:inline-block;border-radius:5px 5px 2px 2px;background-color:#fff;margin:20px 0px;overflow:hidden}.browser-window .top-bar{height:30px;border-radius:5px 5px 0 0;border-top:thin solid #eaeae9;border-bottom:thin solid #dfdfde;background:linear-gradient(#e7e7e6, #E2E2E1)}.browser-window .circle{height:10px;width:10px;display:inline-block;border-radius:50%;background-color:#fff;margin-right:1px}#close-circle{background-color:#FF5C5A}#minimize-circle{background-color:#FFBB50}#maximize-circle{background-color:#1BC656}.browser-window .circles{margin:5px 12px}.browser-window .content{margin:0;width:100%;display:inline-block;border-radius:0 0 5px 5px;background-color:#fafafa}.browser-window .row{margin:0}.clear{clear:both}.dynamic-color .red,.dynamic-color .pink,.dynamic-color .purple,.dynamic-color .deep-purple,.dynamic-color .indigo,.dynamic-color .blue,.dynamic-color .light-blue,.dynamic-color .cyan,.dynamic-color .teal,.dynamic-color .green,.dynamic-color .light-green,.dynamic-color .lime,.dynamic-color .yellow,.dynamic-color .amber,.dynamic-color .orange,.dynamic-color .deep-orange,.dynamic-color .brown,.dynamic-color .grey,.dynamic-color .blue-grey,.dynamic-color .black,.dynamic-color .white,.dynamic-color .transparent{height:55px;width:100%;padding:0 15px;line-height:55px;font-weight:500;font-size:12px;display:block;box-sizing:border-box}.dynamic-color .col{margin-bottom:55px}.center{text-align:center;vertical-align:middle}.material-icons.icon-demo{line-height:50px}.icon-container i{font-size:3em;margin-bottom:10px}.icon-container .icon-preview{height:120px;text-align:center}.icon-container span{display:block}.icon-holder{display:block;text-align:center;width:150px;height:115px;float:left;margin:0 0px 15px 0px}.icon-holder p{margin:0 0}.tabs-wrapper{position:relative;height:48px}.tabs-wrapper .row.pinned{position:fixed;width:100%;top:0;z-index:10}.shadow-demo{background-color:#26a69a;width:100px;height:100px;margin:20px auto}@media only screen and (max-width: 600px){.shadow-demo{width:150px;height:150px}}.parallax-container .text-center{position:absolute;top:50%;left:0;right:0;margin-top:-27px}ul.table-of-contents{margin-top:0;padding-top:48px}code,pre{position:relative;font-size:1.1rem}.directory-markup{font-size:1rem;line-height:1.1rem !important}pre[class*="language-"]{padding:25px 12px 7px 12px;border:solid 1px rgba(51,51,51,0.12)}pre[class*="language-"]:before{position:absolute;padding:1px 5px;background:#e8e6e3;top:0;left:0;font-family:"Roboto", sans-serif;-webkit-font-smoothing:antialiased;color:#555;content:attr(class);font-size:.9rem;border:solid 1px rgba(51,51,51,0.12);border-top:none;border-left:none}.toc-wrapper{position:relative;margin-top:42px}.toc-wrapper.pin-bottom{margin-top:84px}#carbonads{max-width:150px;display:inline-block;position:relative;text-align:left;-webkit-font-smoothing:antialiased}#carbonads>span,#carbonads span.carbon-wrap{height:100px;display:block}#carbonads a.carbon-img{height:100px;display:inline-block;margin-right:10px}#carbonads a.carbon-text,#carbonads input[type="submit"]{position:relative;top:0;width:150px;vertical-align:top;display:inline-block;font-size:13px;color:#E57373}#carbonads a.carbon-poweredby{position:relative;left:28px;font-size:11px;color:#EF9A9A}.buysellads #carbonads>span,.buysellads #carbonads span.carbon-wrap{height:auto}.buysellads #carbonads a.carbon-text{top:5px;left:0;width:130px;display:block;font-size:13px;-webkit-font-smoothing:antialiased;color:#E57373}.buysellads #carbonads a.carbon-poweredby{top:5px}.buysellads-header #carbonads>span,.buysellads-header #carbonads span.carbon-wrap{height:auto}.buysellads-header #carbonads a.carbon-text{color:#fff}.buysellads-header #carbonads a.carbon-poweredby{color:rgba(255,255,255,0.8)}.buysellads-homepage #carbonads{display:block;overflow:hidden;margin:4em auto 0;padding:1em;max-width:360px;border-radius:2px;background-color:rgba(255,255,255,0.13)}.buysellads-homepage #carbonads span{position:relative;display:block;overflow:hidden}.buysellads-homepage #carbonads .carbon-img{float:left;margin-right:1em}.buysellads-homepage #carbonads .carbon-text{max-width:calc(100% - 135px - 1em);width:auto}.buysellads-homepage #carbonads .carbon-poweredby{position:absolute;left:auto;right:0;bottom:-4px}.buysellads{-webkit-font-smoothing:antialiased;position:relative}.buysellads.buysellads-demo{bottom:20px;right:20px;position:fixed;padding:10px;background-color:rgba(255,255,255,0.9);z-index:1000}.buysellads.buysellads-demo #carbonads a.carbon-img{margin-right:0}.buysellads.buysellads-demo #carbonads a.carbon-text{top:0}.buysellads.buysellads-demo a.close{text-align:center;background-color:#fff;border-radius:50%;box-shadow:0 2px 4px 0 rgba(0,0,0,0.1);height:24px;width:24px;position:absolute;top:-6px;right:-6px;z-index:1;transition:background-color .2s}.buysellads.buysellads-demo a.close:hover{background-color:#ddd}.buysellads.buysellads-demo a.close .material-icons{font-size:18px;line-height:24px}.buysellads .bsa_it.one{width:130px;position:absolute;left:0;top:50px}.buysellads .bsa_it.one .bsa_it_p{left:0;bottom:-15px}.buysellads .bsa_it.one .bsa_it_ad .bsa_it_t{color:#E57373}.buysellads .bsa_it.one .bsa_it_ad .bsa_it_d{color:#EF9A9A}.buysellads .bsa_it_ad a{display:block;width:130px}.buysellads-header{margin-top:30px}.buysellads-header .bsa_it.one .bsa_it_p{bottom:-20px}.bsa_it.one{min-width:230px;max-width:270px;display:inline-block;text-align:left}.bsa_it.one .bsa_it_ad{border:0;padding:0;background-color:transparent}.bsa_it.one .bsa_it_ad .bsa_it_t{color:#fff}.bsa_it.one .bsa_it_ad .bsa_it_d{color:#FFCDD2}.bsa_it.one .bsa_it_p{right:auto;left:40px;bottom:-5px}.bsa_it.one .bsa_it_p a{color:#FFCDD2}footer{font-size:.9rem}body.parallax-demo footer{margin-top:0}.image-container{width:100%}.image-container img{max-width:100%}@media only screen and (max-width: 600px){.mobile-image{max-width:100%}}.waves-color-demo .collection-item{height:37px;line-height:37px;box-sizing:content-box}.waves-color-demo .collection-item code{line-height:37px}.waves-color-demo .btn:not(.waves-light),.waves-color-demo .btn-large:not(.waves-light){background-color:#fff;color:#212121}.card-panel span,.card-content p{-webkit-font-smoothing:antialiased}#images .card-panel .row{margin-bottom:0}.pushpin-demo{position:relative;height:100px}#pushpin-demo-1{display:block;height:inherit;background-color:#ddd}.valign-demo{height:400px;background-color:#ddd}.talign-demo{height:100px;background-color:#ddd}#staggered-test li,#image-test{opacity:0}#tx-live-lang-container{background-color:#fcfcfc;z-index:999}#tx-live-lang-container #tx-live-lang-picker{background-color:#fcfcfc}#tx-live-lang-container #tx-live-lang-picker li{color:rgba(0,0,0,0.87)}#tx-live-lang-container #tx-live-lang-picker li:hover{color:inherit;background-color:#fdeaeb}#tx-live-lang-container .txlive-langselector-toggle{border-bottom:2px solid #ee6e73}#tx-live-lang-container .txlive-langselector-current{color:rgba(0,0,0,0.87)}#tx-live-lang-container .txlive-langselector-marker{border-bottom:4px solid rgba(0,0,0,0.61)}#download-thanks{display:none}#twitter-widget-0{width:300px !important}#nav-mobile li.search{position:absolute;left:0;right:0;top:120px;margin-top:1px;padding:1px 0 0 0;z-index:2}#nav-mobile li.search:hover{background-color:#fff}#nav-mobile li.search .search-wrapper{margin:0 12px;transition:margin .25s ease}#nav-mobile li.search .search-wrapper.focused{margin:0}#nav-mobile li.search .search-wrapper input#search{display:block;font-size:16px;font-weight:300;width:100%;height:45px;margin:0;padding:0 45px 0 15px;border:0}#nav-mobile li.search .search-wrapper input#search:focus{outline:none}#nav-mobile li.search .search-wrapper i.material-icons{position:absolute;top:10px;right:10px;cursor:pointer}#nav-mobile li.search .search-results{margin:0;border-top:1px solid #e9e9e9;background-color:#fff}#nav-mobile li.search .search-results a{font-size:12px;white-space:nowrap}#nav-mobile li.search .search-results a:hover,#nav-mobile li.search .search-results a.focused{background-color:#eee;outline:none} diff --git a/node_modules/materialize-css/css/prism.css b/node_modules/materialize-css/css/prism.css deleted file mode 100644 index 584cc8e..0000000 --- a/node_modules/materialize-css/css/prism.css +++ /dev/null @@ -1,133 +0,0 @@ -/* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript+scss+bash */ -/** - * prism.js default theme for JavaScript, CSS and HTML - * Based on dabblet (http://dabblet.com) - * @author Lea Verou - */ - -code[class*="language-"], -pre[class*="language-"] { - color: black; -/* text-shadow: 0 1px white;*/ - font-family: 'Inconsolata', Monaco, Consolas, 'Andale Mono', monospace; - direction: ltr; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - line-height: 1.4; - - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} - -pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, -code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { - text-shadow: none; - background: #b3d4fc; -} - -pre[class*="language-"]::selection, pre[class*="language-"] ::selection, -code[class*="language-"]::selection, code[class*="language-"] ::selection { - text-shadow: none; - background: #b3d4fc; -} - -@media print { - code[class*="language-"], - pre[class*="language-"] { - text-shadow: none; - } -} - -/* Code blocks */ -pre[class*="language-"] { - padding: 1em; - margin: .5em 0; - overflow: auto; -} - -:not(pre) > code[class*="language-"], -pre[class*="language-"] { - background: #f5f2f0; -} - -/* Inline code */ -:not(pre) > code[class*="language-"] { - padding: .1em; - border-radius: .3em; -} - -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: slategray; -} - -.token.punctuation { - color: #999; -} - -.namespace { - opacity: .7; -} - -.token.property, -.token.tag, -.token.boolean, -.token.number, -.token.constant, -.token.symbol, -.token.deleted { - color: #905; -} - -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.builtin, -.token.inserted { - color: #690; -} - -.token.operator, -.token.entity, -.token.url, -.language-css .token.string, -.style .token.string { - color: #a67f59; - background: hsla(0, 0%, 100%, .5); -} - -.token.atrule, -.token.attr-value, -.token.keyword { - color: #07a; -} - -.token.function { - color: #DD4A68; -} - -.token.regex, -.token.important, -.token.variable { - color: #e90; -} - -.token.important { - font-weight: bold; -} - -.token.entity { - cursor: help; -} - diff --git a/node_modules/materialize-css/dialogs.html b/node_modules/materialize-css/dialogs.html deleted file mode 100644 index 0b99596..0000000 --- a/node_modules/materialize-css/dialogs.html +++ /dev/null @@ -1,320 +0,0 @@ - - - - - - - - - Dialogs - Materialize - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- -
-

Dialogs are content that are not originally visible on a page but show up with extra information if needed. The transitions should make the appearance of the dialog make sense and not jarring to the user.

-

Toasts

-

Materialize provides an easy way for you to send unobtrusive alerts to your users through toasts. These toasts are also placed and sized responsively, try it out by clicking the button below on different device sizes.

- Toast! -

To do this, call the Materialize.toast() function programatically in JavaScript.

-

-  // Materialize.toast(message, displayLength, className, completeCallback);
-  Materialize.toast('I am a toast!', 4000) // 4000 is the duration of the toast
-        
-

One way to add this into your application is to add this as an onclick event to a button

-

-  <a class="btn" onclick="Materialize.toast('I am a toast', 4000)">Toast!</a>
-        
- -

Custom HTML

-

You can pass in an HTML String as the first argument as well. Take a look at the example below, where we pass in text as well as a flat button. If you call an external function instead of in-line JavaScript, you will not need to escape quotation marks.

- Toast with Action -

-  var $toastContent = $('<span>I am toast content</span>');
-  Materialize.toast($toastContent, 5000);
-        
- -

Callback

-

You can have the toast callback a function when it has been dismissed

- Toast! -

-  <a class="btn" onclick="Materialize.toast('I am a toast', 4000,'',function(){alert('Your toast was dismissed')})">Toast!</a>
-        
- -

Styling Toasts

-

We've added the ability to customize your toasts easily. You can pass in classes as an optional parameter into the toast function. We've added a rounded class for you, but you can create your own CSS classes and apply them to toasts. Checkout out our full example below.

- - Round Toast! - -

-  Materialize.toast('I am a toast!', 3000, 'rounded') // 'rounded' is the class I'm applying to the toast
-        
-
- - - - -
-

Tooltips

- -

Tooltips are small, interactive, textual hints for mainly graphical elements. When using icons for actions you can use a tooltip to give people clarification on its function.

- - - -

Add the Tooltipped class to your element and add either top, bottom, left, right on data-tooltip to control the position.

-

-  <!-- data-position can be : bottom, top, left, or right -->
-  <!-- data-delay controls delay before tooltip shows (in milliseconds)-->
-  <a class="btn tooltipped" data-position="bottom" data-delay="50" data-tooltip="I am tooltip">Hover me!</a>
-        
-
-

Initialization

-

Tooltips are initialized automatically, but if you have dynamically added tooltips, you will need to initialize them.

-

-  $(document).ready(function(){
-    $('.tooltipped').tooltip({delay: 50});
-  });
-        

- -

jQuery Plugin Options

- - - - - - - - - - - - - - - - - - - - - - - - - - -
Option NameDescription
delayDelay time before tooltip appears. (Default: 350)
tooltipTooltip text. Can use custom HTML if you set the html option.
positionSet the direction of the tooltip. 'top', 'right', 'bottom', 'left'. (Default: 'bottom')
htmlAllow custom html inside the tooltip. (Default: false)
- -
-

Removal

-

To remove the tooltip from the button, pass in 'remove' as the option to the tooltip function

-

-  // This will remove the tooltip functionality for the buttons on this page
-  $('.tooltipped').tooltip('remove');
-        
-
- -
- - - -
-
-
- - -
-
- -
-
-
- -
-
- -
-
-
-
-
Help Materialize Grow
-

We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

-
- - - -
- -
-
-
Join the Discussion
-

We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

- Chat -
-
-
Connect
- -
- -
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/dist/css/materialize.css b/node_modules/materialize-css/dist/css/materialize.css deleted file mode 100644 index 27de210..0000000 --- a/node_modules/materialize-css/dist/css/materialize.css +++ /dev/null @@ -1,8582 +0,0 @@ -/*! - * Materialize v0.98.0 (http://materializecss.com) - * Copyright 2014-2015 Materialize - * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) - */ -.materialize-red { - background-color: #e51c23 !important; -} - -.materialize-red-text { - color: #e51c23 !important; -} - -.materialize-red.lighten-5 { - background-color: #fdeaeb !important; -} - -.materialize-red-text.text-lighten-5 { - color: #fdeaeb !important; -} - -.materialize-red.lighten-4 { - background-color: #f8c1c3 !important; -} - -.materialize-red-text.text-lighten-4 { - color: #f8c1c3 !important; -} - -.materialize-red.lighten-3 { - background-color: #f3989b !important; -} - -.materialize-red-text.text-lighten-3 { - color: #f3989b !important; -} - -.materialize-red.lighten-2 { - background-color: #ee6e73 !important; -} - -.materialize-red-text.text-lighten-2 { - color: #ee6e73 !important; -} - -.materialize-red.lighten-1 { - background-color: #ea454b !important; -} - -.materialize-red-text.text-lighten-1 { - color: #ea454b !important; -} - -.materialize-red.darken-1 { - background-color: #d0181e !important; -} - -.materialize-red-text.text-darken-1 { - color: #d0181e !important; -} - -.materialize-red.darken-2 { - background-color: #b9151b !important; -} - -.materialize-red-text.text-darken-2 { - color: #b9151b !important; -} - -.materialize-red.darken-3 { - background-color: #a21318 !important; -} - -.materialize-red-text.text-darken-3 { - color: #a21318 !important; -} - -.materialize-red.darken-4 { - background-color: #8b1014 !important; -} - -.materialize-red-text.text-darken-4 { - color: #8b1014 !important; -} - -.red { - background-color: #F44336 !important; -} - -.red-text { - color: #F44336 !important; -} - -.red.lighten-5 { - background-color: #FFEBEE !important; -} - -.red-text.text-lighten-5 { - color: #FFEBEE !important; -} - -.red.lighten-4 { - background-color: #FFCDD2 !important; -} - -.red-text.text-lighten-4 { - color: #FFCDD2 !important; -} - -.red.lighten-3 { - background-color: #EF9A9A !important; -} - -.red-text.text-lighten-3 { - color: #EF9A9A !important; -} - -.red.lighten-2 { - background-color: #E57373 !important; -} - -.red-text.text-lighten-2 { - color: #E57373 !important; -} - -.red.lighten-1 { - background-color: #EF5350 !important; -} - -.red-text.text-lighten-1 { - color: #EF5350 !important; -} - -.red.darken-1 { - background-color: #E53935 !important; -} - -.red-text.text-darken-1 { - color: #E53935 !important; -} - -.red.darken-2 { - background-color: #D32F2F !important; -} - -.red-text.text-darken-2 { - color: #D32F2F !important; -} - -.red.darken-3 { - background-color: #C62828 !important; -} - -.red-text.text-darken-3 { - color: #C62828 !important; -} - -.red.darken-4 { - background-color: #B71C1C !important; -} - -.red-text.text-darken-4 { - color: #B71C1C !important; -} - -.red.accent-1 { - background-color: #FF8A80 !important; -} - -.red-text.text-accent-1 { - color: #FF8A80 !important; -} - -.red.accent-2 { - background-color: #FF5252 !important; -} - -.red-text.text-accent-2 { - color: #FF5252 !important; -} - -.red.accent-3 { - background-color: #FF1744 !important; -} - -.red-text.text-accent-3 { - color: #FF1744 !important; -} - -.red.accent-4 { - background-color: #D50000 !important; -} - -.red-text.text-accent-4 { - color: #D50000 !important; -} - -.pink { - background-color: #e91e63 !important; -} - -.pink-text { - color: #e91e63 !important; -} - -.pink.lighten-5 { - background-color: #fce4ec !important; -} - -.pink-text.text-lighten-5 { - color: #fce4ec !important; -} - -.pink.lighten-4 { - background-color: #f8bbd0 !important; -} - -.pink-text.text-lighten-4 { - color: #f8bbd0 !important; -} - -.pink.lighten-3 { - background-color: #f48fb1 !important; -} - -.pink-text.text-lighten-3 { - color: #f48fb1 !important; -} - -.pink.lighten-2 { - background-color: #f06292 !important; -} - -.pink-text.text-lighten-2 { - color: #f06292 !important; -} - -.pink.lighten-1 { - background-color: #ec407a !important; -} - -.pink-text.text-lighten-1 { - color: #ec407a !important; -} - -.pink.darken-1 { - background-color: #d81b60 !important; -} - -.pink-text.text-darken-1 { - color: #d81b60 !important; -} - -.pink.darken-2 { - background-color: #c2185b !important; -} - -.pink-text.text-darken-2 { - color: #c2185b !important; -} - -.pink.darken-3 { - background-color: #ad1457 !important; -} - -.pink-text.text-darken-3 { - color: #ad1457 !important; -} - -.pink.darken-4 { - background-color: #880e4f !important; -} - -.pink-text.text-darken-4 { - color: #880e4f !important; -} - -.pink.accent-1 { - background-color: #ff80ab !important; -} - -.pink-text.text-accent-1 { - color: #ff80ab !important; -} - -.pink.accent-2 { - background-color: #ff4081 !important; -} - -.pink-text.text-accent-2 { - color: #ff4081 !important; -} - -.pink.accent-3 { - background-color: #f50057 !important; -} - -.pink-text.text-accent-3 { - color: #f50057 !important; -} - -.pink.accent-4 { - background-color: #c51162 !important; -} - -.pink-text.text-accent-4 { - color: #c51162 !important; -} - -.purple { - background-color: #9c27b0 !important; -} - -.purple-text { - color: #9c27b0 !important; -} - -.purple.lighten-5 { - background-color: #f3e5f5 !important; -} - -.purple-text.text-lighten-5 { - color: #f3e5f5 !important; -} - -.purple.lighten-4 { - background-color: #e1bee7 !important; -} - -.purple-text.text-lighten-4 { - color: #e1bee7 !important; -} - -.purple.lighten-3 { - background-color: #ce93d8 !important; -} - -.purple-text.text-lighten-3 { - color: #ce93d8 !important; -} - -.purple.lighten-2 { - background-color: #ba68c8 !important; -} - -.purple-text.text-lighten-2 { - color: #ba68c8 !important; -} - -.purple.lighten-1 { - background-color: #ab47bc !important; -} - -.purple-text.text-lighten-1 { - color: #ab47bc !important; -} - -.purple.darken-1 { - background-color: #8e24aa !important; -} - -.purple-text.text-darken-1 { - color: #8e24aa !important; -} - -.purple.darken-2 { - background-color: #7b1fa2 !important; -} - -.purple-text.text-darken-2 { - color: #7b1fa2 !important; -} - -.purple.darken-3 { - background-color: #6a1b9a !important; -} - -.purple-text.text-darken-3 { - color: #6a1b9a !important; -} - -.purple.darken-4 { - background-color: #4a148c !important; -} - -.purple-text.text-darken-4 { - color: #4a148c !important; -} - -.purple.accent-1 { - background-color: #ea80fc !important; -} - -.purple-text.text-accent-1 { - color: #ea80fc !important; -} - -.purple.accent-2 { - background-color: #e040fb !important; -} - -.purple-text.text-accent-2 { - color: #e040fb !important; -} - -.purple.accent-3 { - background-color: #d500f9 !important; -} - -.purple-text.text-accent-3 { - color: #d500f9 !important; -} - -.purple.accent-4 { - background-color: #aa00ff !important; -} - -.purple-text.text-accent-4 { - color: #aa00ff !important; -} - -.deep-purple { - background-color: #673ab7 !important; -} - -.deep-purple-text { - color: #673ab7 !important; -} - -.deep-purple.lighten-5 { - background-color: #ede7f6 !important; -} - -.deep-purple-text.text-lighten-5 { - color: #ede7f6 !important; -} - -.deep-purple.lighten-4 { - background-color: #d1c4e9 !important; -} - -.deep-purple-text.text-lighten-4 { - color: #d1c4e9 !important; -} - -.deep-purple.lighten-3 { - background-color: #b39ddb !important; -} - -.deep-purple-text.text-lighten-3 { - color: #b39ddb !important; -} - -.deep-purple.lighten-2 { - background-color: #9575cd !important; -} - -.deep-purple-text.text-lighten-2 { - color: #9575cd !important; -} - -.deep-purple.lighten-1 { - background-color: #7e57c2 !important; -} - -.deep-purple-text.text-lighten-1 { - color: #7e57c2 !important; -} - -.deep-purple.darken-1 { - background-color: #5e35b1 !important; -} - -.deep-purple-text.text-darken-1 { - color: #5e35b1 !important; -} - -.deep-purple.darken-2 { - background-color: #512da8 !important; -} - -.deep-purple-text.text-darken-2 { - color: #512da8 !important; -} - -.deep-purple.darken-3 { - background-color: #4527a0 !important; -} - -.deep-purple-text.text-darken-3 { - color: #4527a0 !important; -} - -.deep-purple.darken-4 { - background-color: #311b92 !important; -} - -.deep-purple-text.text-darken-4 { - color: #311b92 !important; -} - -.deep-purple.accent-1 { - background-color: #b388ff !important; -} - -.deep-purple-text.text-accent-1 { - color: #b388ff !important; -} - -.deep-purple.accent-2 { - background-color: #7c4dff !important; -} - -.deep-purple-text.text-accent-2 { - color: #7c4dff !important; -} - -.deep-purple.accent-3 { - background-color: #651fff !important; -} - -.deep-purple-text.text-accent-3 { - color: #651fff !important; -} - -.deep-purple.accent-4 { - background-color: #6200ea !important; -} - -.deep-purple-text.text-accent-4 { - color: #6200ea !important; -} - -.indigo { - background-color: #3f51b5 !important; -} - -.indigo-text { - color: #3f51b5 !important; -} - -.indigo.lighten-5 { - background-color: #e8eaf6 !important; -} - -.indigo-text.text-lighten-5 { - color: #e8eaf6 !important; -} - -.indigo.lighten-4 { - background-color: #c5cae9 !important; -} - -.indigo-text.text-lighten-4 { - color: #c5cae9 !important; -} - -.indigo.lighten-3 { - background-color: #9fa8da !important; -} - -.indigo-text.text-lighten-3 { - color: #9fa8da !important; -} - -.indigo.lighten-2 { - background-color: #7986cb !important; -} - -.indigo-text.text-lighten-2 { - color: #7986cb !important; -} - -.indigo.lighten-1 { - background-color: #5c6bc0 !important; -} - -.indigo-text.text-lighten-1 { - color: #5c6bc0 !important; -} - -.indigo.darken-1 { - background-color: #3949ab !important; -} - -.indigo-text.text-darken-1 { - color: #3949ab !important; -} - -.indigo.darken-2 { - background-color: #303f9f !important; -} - -.indigo-text.text-darken-2 { - color: #303f9f !important; -} - -.indigo.darken-3 { - background-color: #283593 !important; -} - -.indigo-text.text-darken-3 { - color: #283593 !important; -} - -.indigo.darken-4 { - background-color: #1a237e !important; -} - -.indigo-text.text-darken-4 { - color: #1a237e !important; -} - -.indigo.accent-1 { - background-color: #8c9eff !important; -} - -.indigo-text.text-accent-1 { - color: #8c9eff !important; -} - -.indigo.accent-2 { - background-color: #536dfe !important; -} - -.indigo-text.text-accent-2 { - color: #536dfe !important; -} - -.indigo.accent-3 { - background-color: #3d5afe !important; -} - -.indigo-text.text-accent-3 { - color: #3d5afe !important; -} - -.indigo.accent-4 { - background-color: #304ffe !important; -} - -.indigo-text.text-accent-4 { - color: #304ffe !important; -} - -.blue { - background-color: #2196F3 !important; -} - -.blue-text { - color: #2196F3 !important; -} - -.blue.lighten-5 { - background-color: #E3F2FD !important; -} - -.blue-text.text-lighten-5 { - color: #E3F2FD !important; -} - -.blue.lighten-4 { - background-color: #BBDEFB !important; -} - -.blue-text.text-lighten-4 { - color: #BBDEFB !important; -} - -.blue.lighten-3 { - background-color: #90CAF9 !important; -} - -.blue-text.text-lighten-3 { - color: #90CAF9 !important; -} - -.blue.lighten-2 { - background-color: #64B5F6 !important; -} - -.blue-text.text-lighten-2 { - color: #64B5F6 !important; -} - -.blue.lighten-1 { - background-color: #42A5F5 !important; -} - -.blue-text.text-lighten-1 { - color: #42A5F5 !important; -} - -.blue.darken-1 { - background-color: #1E88E5 !important; -} - -.blue-text.text-darken-1 { - color: #1E88E5 !important; -} - -.blue.darken-2 { - background-color: #1976D2 !important; -} - -.blue-text.text-darken-2 { - color: #1976D2 !important; -} - -.blue.darken-3 { - background-color: #1565C0 !important; -} - -.blue-text.text-darken-3 { - color: #1565C0 !important; -} - -.blue.darken-4 { - background-color: #0D47A1 !important; -} - -.blue-text.text-darken-4 { - color: #0D47A1 !important; -} - -.blue.accent-1 { - background-color: #82B1FF !important; -} - -.blue-text.text-accent-1 { - color: #82B1FF !important; -} - -.blue.accent-2 { - background-color: #448AFF !important; -} - -.blue-text.text-accent-2 { - color: #448AFF !important; -} - -.blue.accent-3 { - background-color: #2979FF !important; -} - -.blue-text.text-accent-3 { - color: #2979FF !important; -} - -.blue.accent-4 { - background-color: #2962FF !important; -} - -.blue-text.text-accent-4 { - color: #2962FF !important; -} - -.light-blue { - background-color: #03a9f4 !important; -} - -.light-blue-text { - color: #03a9f4 !important; -} - -.light-blue.lighten-5 { - background-color: #e1f5fe !important; -} - -.light-blue-text.text-lighten-5 { - color: #e1f5fe !important; -} - -.light-blue.lighten-4 { - background-color: #b3e5fc !important; -} - -.light-blue-text.text-lighten-4 { - color: #b3e5fc !important; -} - -.light-blue.lighten-3 { - background-color: #81d4fa !important; -} - -.light-blue-text.text-lighten-3 { - color: #81d4fa !important; -} - -.light-blue.lighten-2 { - background-color: #4fc3f7 !important; -} - -.light-blue-text.text-lighten-2 { - color: #4fc3f7 !important; -} - -.light-blue.lighten-1 { - background-color: #29b6f6 !important; -} - -.light-blue-text.text-lighten-1 { - color: #29b6f6 !important; -} - -.light-blue.darken-1 { - background-color: #039be5 !important; -} - -.light-blue-text.text-darken-1 { - color: #039be5 !important; -} - -.light-blue.darken-2 { - background-color: #0288d1 !important; -} - -.light-blue-text.text-darken-2 { - color: #0288d1 !important; -} - -.light-blue.darken-3 { - background-color: #0277bd !important; -} - -.light-blue-text.text-darken-3 { - color: #0277bd !important; -} - -.light-blue.darken-4 { - background-color: #01579b !important; -} - -.light-blue-text.text-darken-4 { - color: #01579b !important; -} - -.light-blue.accent-1 { - background-color: #80d8ff !important; -} - -.light-blue-text.text-accent-1 { - color: #80d8ff !important; -} - -.light-blue.accent-2 { - background-color: #40c4ff !important; -} - -.light-blue-text.text-accent-2 { - color: #40c4ff !important; -} - -.light-blue.accent-3 { - background-color: #00b0ff !important; -} - -.light-blue-text.text-accent-3 { - color: #00b0ff !important; -} - -.light-blue.accent-4 { - background-color: #0091ea !important; -} - -.light-blue-text.text-accent-4 { - color: #0091ea !important; -} - -.cyan { - background-color: #00bcd4 !important; -} - -.cyan-text { - color: #00bcd4 !important; -} - -.cyan.lighten-5 { - background-color: #e0f7fa !important; -} - -.cyan-text.text-lighten-5 { - color: #e0f7fa !important; -} - -.cyan.lighten-4 { - background-color: #b2ebf2 !important; -} - -.cyan-text.text-lighten-4 { - color: #b2ebf2 !important; -} - -.cyan.lighten-3 { - background-color: #80deea !important; -} - -.cyan-text.text-lighten-3 { - color: #80deea !important; -} - -.cyan.lighten-2 { - background-color: #4dd0e1 !important; -} - -.cyan-text.text-lighten-2 { - color: #4dd0e1 !important; -} - -.cyan.lighten-1 { - background-color: #26c6da !important; -} - -.cyan-text.text-lighten-1 { - color: #26c6da !important; -} - -.cyan.darken-1 { - background-color: #00acc1 !important; -} - -.cyan-text.text-darken-1 { - color: #00acc1 !important; -} - -.cyan.darken-2 { - background-color: #0097a7 !important; -} - -.cyan-text.text-darken-2 { - color: #0097a7 !important; -} - -.cyan.darken-3 { - background-color: #00838f !important; -} - -.cyan-text.text-darken-3 { - color: #00838f !important; -} - -.cyan.darken-4 { - background-color: #006064 !important; -} - -.cyan-text.text-darken-4 { - color: #006064 !important; -} - -.cyan.accent-1 { - background-color: #84ffff !important; -} - -.cyan-text.text-accent-1 { - color: #84ffff !important; -} - -.cyan.accent-2 { - background-color: #18ffff !important; -} - -.cyan-text.text-accent-2 { - color: #18ffff !important; -} - -.cyan.accent-3 { - background-color: #00e5ff !important; -} - -.cyan-text.text-accent-3 { - color: #00e5ff !important; -} - -.cyan.accent-4 { - background-color: #00b8d4 !important; -} - -.cyan-text.text-accent-4 { - color: #00b8d4 !important; -} - -.teal { - background-color: #009688 !important; -} - -.teal-text { - color: #009688 !important; -} - -.teal.lighten-5 { - background-color: #e0f2f1 !important; -} - -.teal-text.text-lighten-5 { - color: #e0f2f1 !important; -} - -.teal.lighten-4 { - background-color: #b2dfdb !important; -} - -.teal-text.text-lighten-4 { - color: #b2dfdb !important; -} - -.teal.lighten-3 { - background-color: #80cbc4 !important; -} - -.teal-text.text-lighten-3 { - color: #80cbc4 !important; -} - -.teal.lighten-2 { - background-color: #4db6ac !important; -} - -.teal-text.text-lighten-2 { - color: #4db6ac !important; -} - -.teal.lighten-1 { - background-color: #26a69a !important; -} - -.teal-text.text-lighten-1 { - color: #26a69a !important; -} - -.teal.darken-1 { - background-color: #00897b !important; -} - -.teal-text.text-darken-1 { - color: #00897b !important; -} - -.teal.darken-2 { - background-color: #00796b !important; -} - -.teal-text.text-darken-2 { - color: #00796b !important; -} - -.teal.darken-3 { - background-color: #00695c !important; -} - -.teal-text.text-darken-3 { - color: #00695c !important; -} - -.teal.darken-4 { - background-color: #004d40 !important; -} - -.teal-text.text-darken-4 { - color: #004d40 !important; -} - -.teal.accent-1 { - background-color: #a7ffeb !important; -} - -.teal-text.text-accent-1 { - color: #a7ffeb !important; -} - -.teal.accent-2 { - background-color: #64ffda !important; -} - -.teal-text.text-accent-2 { - color: #64ffda !important; -} - -.teal.accent-3 { - background-color: #1de9b6 !important; -} - -.teal-text.text-accent-3 { - color: #1de9b6 !important; -} - -.teal.accent-4 { - background-color: #00bfa5 !important; -} - -.teal-text.text-accent-4 { - color: #00bfa5 !important; -} - -.green { - background-color: #4CAF50 !important; -} - -.green-text { - color: #4CAF50 !important; -} - -.green.lighten-5 { - background-color: #E8F5E9 !important; -} - -.green-text.text-lighten-5 { - color: #E8F5E9 !important; -} - -.green.lighten-4 { - background-color: #C8E6C9 !important; -} - -.green-text.text-lighten-4 { - color: #C8E6C9 !important; -} - -.green.lighten-3 { - background-color: #A5D6A7 !important; -} - -.green-text.text-lighten-3 { - color: #A5D6A7 !important; -} - -.green.lighten-2 { - background-color: #81C784 !important; -} - -.green-text.text-lighten-2 { - color: #81C784 !important; -} - -.green.lighten-1 { - background-color: #66BB6A !important; -} - -.green-text.text-lighten-1 { - color: #66BB6A !important; -} - -.green.darken-1 { - background-color: #43A047 !important; -} - -.green-text.text-darken-1 { - color: #43A047 !important; -} - -.green.darken-2 { - background-color: #388E3C !important; -} - -.green-text.text-darken-2 { - color: #388E3C !important; -} - -.green.darken-3 { - background-color: #2E7D32 !important; -} - -.green-text.text-darken-3 { - color: #2E7D32 !important; -} - -.green.darken-4 { - background-color: #1B5E20 !important; -} - -.green-text.text-darken-4 { - color: #1B5E20 !important; -} - -.green.accent-1 { - background-color: #B9F6CA !important; -} - -.green-text.text-accent-1 { - color: #B9F6CA !important; -} - -.green.accent-2 { - background-color: #69F0AE !important; -} - -.green-text.text-accent-2 { - color: #69F0AE !important; -} - -.green.accent-3 { - background-color: #00E676 !important; -} - -.green-text.text-accent-3 { - color: #00E676 !important; -} - -.green.accent-4 { - background-color: #00C853 !important; -} - -.green-text.text-accent-4 { - color: #00C853 !important; -} - -.light-green { - background-color: #8bc34a !important; -} - -.light-green-text { - color: #8bc34a !important; -} - -.light-green.lighten-5 { - background-color: #f1f8e9 !important; -} - -.light-green-text.text-lighten-5 { - color: #f1f8e9 !important; -} - -.light-green.lighten-4 { - background-color: #dcedc8 !important; -} - -.light-green-text.text-lighten-4 { - color: #dcedc8 !important; -} - -.light-green.lighten-3 { - background-color: #c5e1a5 !important; -} - -.light-green-text.text-lighten-3 { - color: #c5e1a5 !important; -} - -.light-green.lighten-2 { - background-color: #aed581 !important; -} - -.light-green-text.text-lighten-2 { - color: #aed581 !important; -} - -.light-green.lighten-1 { - background-color: #9ccc65 !important; -} - -.light-green-text.text-lighten-1 { - color: #9ccc65 !important; -} - -.light-green.darken-1 { - background-color: #7cb342 !important; -} - -.light-green-text.text-darken-1 { - color: #7cb342 !important; -} - -.light-green.darken-2 { - background-color: #689f38 !important; -} - -.light-green-text.text-darken-2 { - color: #689f38 !important; -} - -.light-green.darken-3 { - background-color: #558b2f !important; -} - -.light-green-text.text-darken-3 { - color: #558b2f !important; -} - -.light-green.darken-4 { - background-color: #33691e !important; -} - -.light-green-text.text-darken-4 { - color: #33691e !important; -} - -.light-green.accent-1 { - background-color: #ccff90 !important; -} - -.light-green-text.text-accent-1 { - color: #ccff90 !important; -} - -.light-green.accent-2 { - background-color: #b2ff59 !important; -} - -.light-green-text.text-accent-2 { - color: #b2ff59 !important; -} - -.light-green.accent-3 { - background-color: #76ff03 !important; -} - -.light-green-text.text-accent-3 { - color: #76ff03 !important; -} - -.light-green.accent-4 { - background-color: #64dd17 !important; -} - -.light-green-text.text-accent-4 { - color: #64dd17 !important; -} - -.lime { - background-color: #cddc39 !important; -} - -.lime-text { - color: #cddc39 !important; -} - -.lime.lighten-5 { - background-color: #f9fbe7 !important; -} - -.lime-text.text-lighten-5 { - color: #f9fbe7 !important; -} - -.lime.lighten-4 { - background-color: #f0f4c3 !important; -} - -.lime-text.text-lighten-4 { - color: #f0f4c3 !important; -} - -.lime.lighten-3 { - background-color: #e6ee9c !important; -} - -.lime-text.text-lighten-3 { - color: #e6ee9c !important; -} - -.lime.lighten-2 { - background-color: #dce775 !important; -} - -.lime-text.text-lighten-2 { - color: #dce775 !important; -} - -.lime.lighten-1 { - background-color: #d4e157 !important; -} - -.lime-text.text-lighten-1 { - color: #d4e157 !important; -} - -.lime.darken-1 { - background-color: #c0ca33 !important; -} - -.lime-text.text-darken-1 { - color: #c0ca33 !important; -} - -.lime.darken-2 { - background-color: #afb42b !important; -} - -.lime-text.text-darken-2 { - color: #afb42b !important; -} - -.lime.darken-3 { - background-color: #9e9d24 !important; -} - -.lime-text.text-darken-3 { - color: #9e9d24 !important; -} - -.lime.darken-4 { - background-color: #827717 !important; -} - -.lime-text.text-darken-4 { - color: #827717 !important; -} - -.lime.accent-1 { - background-color: #f4ff81 !important; -} - -.lime-text.text-accent-1 { - color: #f4ff81 !important; -} - -.lime.accent-2 { - background-color: #eeff41 !important; -} - -.lime-text.text-accent-2 { - color: #eeff41 !important; -} - -.lime.accent-3 { - background-color: #c6ff00 !important; -} - -.lime-text.text-accent-3 { - color: #c6ff00 !important; -} - -.lime.accent-4 { - background-color: #aeea00 !important; -} - -.lime-text.text-accent-4 { - color: #aeea00 !important; -} - -.yellow { - background-color: #ffeb3b !important; -} - -.yellow-text { - color: #ffeb3b !important; -} - -.yellow.lighten-5 { - background-color: #fffde7 !important; -} - -.yellow-text.text-lighten-5 { - color: #fffde7 !important; -} - -.yellow.lighten-4 { - background-color: #fff9c4 !important; -} - -.yellow-text.text-lighten-4 { - color: #fff9c4 !important; -} - -.yellow.lighten-3 { - background-color: #fff59d !important; -} - -.yellow-text.text-lighten-3 { - color: #fff59d !important; -} - -.yellow.lighten-2 { - background-color: #fff176 !important; -} - -.yellow-text.text-lighten-2 { - color: #fff176 !important; -} - -.yellow.lighten-1 { - background-color: #ffee58 !important; -} - -.yellow-text.text-lighten-1 { - color: #ffee58 !important; -} - -.yellow.darken-1 { - background-color: #fdd835 !important; -} - -.yellow-text.text-darken-1 { - color: #fdd835 !important; -} - -.yellow.darken-2 { - background-color: #fbc02d !important; -} - -.yellow-text.text-darken-2 { - color: #fbc02d !important; -} - -.yellow.darken-3 { - background-color: #f9a825 !important; -} - -.yellow-text.text-darken-3 { - color: #f9a825 !important; -} - -.yellow.darken-4 { - background-color: #f57f17 !important; -} - -.yellow-text.text-darken-4 { - color: #f57f17 !important; -} - -.yellow.accent-1 { - background-color: #ffff8d !important; -} - -.yellow-text.text-accent-1 { - color: #ffff8d !important; -} - -.yellow.accent-2 { - background-color: #ffff00 !important; -} - -.yellow-text.text-accent-2 { - color: #ffff00 !important; -} - -.yellow.accent-3 { - background-color: #ffea00 !important; -} - -.yellow-text.text-accent-3 { - color: #ffea00 !important; -} - -.yellow.accent-4 { - background-color: #ffd600 !important; -} - -.yellow-text.text-accent-4 { - color: #ffd600 !important; -} - -.amber { - background-color: #ffc107 !important; -} - -.amber-text { - color: #ffc107 !important; -} - -.amber.lighten-5 { - background-color: #fff8e1 !important; -} - -.amber-text.text-lighten-5 { - color: #fff8e1 !important; -} - -.amber.lighten-4 { - background-color: #ffecb3 !important; -} - -.amber-text.text-lighten-4 { - color: #ffecb3 !important; -} - -.amber.lighten-3 { - background-color: #ffe082 !important; -} - -.amber-text.text-lighten-3 { - color: #ffe082 !important; -} - -.amber.lighten-2 { - background-color: #ffd54f !important; -} - -.amber-text.text-lighten-2 { - color: #ffd54f !important; -} - -.amber.lighten-1 { - background-color: #ffca28 !important; -} - -.amber-text.text-lighten-1 { - color: #ffca28 !important; -} - -.amber.darken-1 { - background-color: #ffb300 !important; -} - -.amber-text.text-darken-1 { - color: #ffb300 !important; -} - -.amber.darken-2 { - background-color: #ffa000 !important; -} - -.amber-text.text-darken-2 { - color: #ffa000 !important; -} - -.amber.darken-3 { - background-color: #ff8f00 !important; -} - -.amber-text.text-darken-3 { - color: #ff8f00 !important; -} - -.amber.darken-4 { - background-color: #ff6f00 !important; -} - -.amber-text.text-darken-4 { - color: #ff6f00 !important; -} - -.amber.accent-1 { - background-color: #ffe57f !important; -} - -.amber-text.text-accent-1 { - color: #ffe57f !important; -} - -.amber.accent-2 { - background-color: #ffd740 !important; -} - -.amber-text.text-accent-2 { - color: #ffd740 !important; -} - -.amber.accent-3 { - background-color: #ffc400 !important; -} - -.amber-text.text-accent-3 { - color: #ffc400 !important; -} - -.amber.accent-4 { - background-color: #ffab00 !important; -} - -.amber-text.text-accent-4 { - color: #ffab00 !important; -} - -.orange { - background-color: #ff9800 !important; -} - -.orange-text { - color: #ff9800 !important; -} - -.orange.lighten-5 { - background-color: #fff3e0 !important; -} - -.orange-text.text-lighten-5 { - color: #fff3e0 !important; -} - -.orange.lighten-4 { - background-color: #ffe0b2 !important; -} - -.orange-text.text-lighten-4 { - color: #ffe0b2 !important; -} - -.orange.lighten-3 { - background-color: #ffcc80 !important; -} - -.orange-text.text-lighten-3 { - color: #ffcc80 !important; -} - -.orange.lighten-2 { - background-color: #ffb74d !important; -} - -.orange-text.text-lighten-2 { - color: #ffb74d !important; -} - -.orange.lighten-1 { - background-color: #ffa726 !important; -} - -.orange-text.text-lighten-1 { - color: #ffa726 !important; -} - -.orange.darken-1 { - background-color: #fb8c00 !important; -} - -.orange-text.text-darken-1 { - color: #fb8c00 !important; -} - -.orange.darken-2 { - background-color: #f57c00 !important; -} - -.orange-text.text-darken-2 { - color: #f57c00 !important; -} - -.orange.darken-3 { - background-color: #ef6c00 !important; -} - -.orange-text.text-darken-3 { - color: #ef6c00 !important; -} - -.orange.darken-4 { - background-color: #e65100 !important; -} - -.orange-text.text-darken-4 { - color: #e65100 !important; -} - -.orange.accent-1 { - background-color: #ffd180 !important; -} - -.orange-text.text-accent-1 { - color: #ffd180 !important; -} - -.orange.accent-2 { - background-color: #ffab40 !important; -} - -.orange-text.text-accent-2 { - color: #ffab40 !important; -} - -.orange.accent-3 { - background-color: #ff9100 !important; -} - -.orange-text.text-accent-3 { - color: #ff9100 !important; -} - -.orange.accent-4 { - background-color: #ff6d00 !important; -} - -.orange-text.text-accent-4 { - color: #ff6d00 !important; -} - -.deep-orange { - background-color: #ff5722 !important; -} - -.deep-orange-text { - color: #ff5722 !important; -} - -.deep-orange.lighten-5 { - background-color: #fbe9e7 !important; -} - -.deep-orange-text.text-lighten-5 { - color: #fbe9e7 !important; -} - -.deep-orange.lighten-4 { - background-color: #ffccbc !important; -} - -.deep-orange-text.text-lighten-4 { - color: #ffccbc !important; -} - -.deep-orange.lighten-3 { - background-color: #ffab91 !important; -} - -.deep-orange-text.text-lighten-3 { - color: #ffab91 !important; -} - -.deep-orange.lighten-2 { - background-color: #ff8a65 !important; -} - -.deep-orange-text.text-lighten-2 { - color: #ff8a65 !important; -} - -.deep-orange.lighten-1 { - background-color: #ff7043 !important; -} - -.deep-orange-text.text-lighten-1 { - color: #ff7043 !important; -} - -.deep-orange.darken-1 { - background-color: #f4511e !important; -} - -.deep-orange-text.text-darken-1 { - color: #f4511e !important; -} - -.deep-orange.darken-2 { - background-color: #e64a19 !important; -} - -.deep-orange-text.text-darken-2 { - color: #e64a19 !important; -} - -.deep-orange.darken-3 { - background-color: #d84315 !important; -} - -.deep-orange-text.text-darken-3 { - color: #d84315 !important; -} - -.deep-orange.darken-4 { - background-color: #bf360c !important; -} - -.deep-orange-text.text-darken-4 { - color: #bf360c !important; -} - -.deep-orange.accent-1 { - background-color: #ff9e80 !important; -} - -.deep-orange-text.text-accent-1 { - color: #ff9e80 !important; -} - -.deep-orange.accent-2 { - background-color: #ff6e40 !important; -} - -.deep-orange-text.text-accent-2 { - color: #ff6e40 !important; -} - -.deep-orange.accent-3 { - background-color: #ff3d00 !important; -} - -.deep-orange-text.text-accent-3 { - color: #ff3d00 !important; -} - -.deep-orange.accent-4 { - background-color: #dd2c00 !important; -} - -.deep-orange-text.text-accent-4 { - color: #dd2c00 !important; -} - -.brown { - background-color: #795548 !important; -} - -.brown-text { - color: #795548 !important; -} - -.brown.lighten-5 { - background-color: #efebe9 !important; -} - -.brown-text.text-lighten-5 { - color: #efebe9 !important; -} - -.brown.lighten-4 { - background-color: #d7ccc8 !important; -} - -.brown-text.text-lighten-4 { - color: #d7ccc8 !important; -} - -.brown.lighten-3 { - background-color: #bcaaa4 !important; -} - -.brown-text.text-lighten-3 { - color: #bcaaa4 !important; -} - -.brown.lighten-2 { - background-color: #a1887f !important; -} - -.brown-text.text-lighten-2 { - color: #a1887f !important; -} - -.brown.lighten-1 { - background-color: #8d6e63 !important; -} - -.brown-text.text-lighten-1 { - color: #8d6e63 !important; -} - -.brown.darken-1 { - background-color: #6d4c41 !important; -} - -.brown-text.text-darken-1 { - color: #6d4c41 !important; -} - -.brown.darken-2 { - background-color: #5d4037 !important; -} - -.brown-text.text-darken-2 { - color: #5d4037 !important; -} - -.brown.darken-3 { - background-color: #4e342e !important; -} - -.brown-text.text-darken-3 { - color: #4e342e !important; -} - -.brown.darken-4 { - background-color: #3e2723 !important; -} - -.brown-text.text-darken-4 { - color: #3e2723 !important; -} - -.blue-grey { - background-color: #607d8b !important; -} - -.blue-grey-text { - color: #607d8b !important; -} - -.blue-grey.lighten-5 { - background-color: #eceff1 !important; -} - -.blue-grey-text.text-lighten-5 { - color: #eceff1 !important; -} - -.blue-grey.lighten-4 { - background-color: #cfd8dc !important; -} - -.blue-grey-text.text-lighten-4 { - color: #cfd8dc !important; -} - -.blue-grey.lighten-3 { - background-color: #b0bec5 !important; -} - -.blue-grey-text.text-lighten-3 { - color: #b0bec5 !important; -} - -.blue-grey.lighten-2 { - background-color: #90a4ae !important; -} - -.blue-grey-text.text-lighten-2 { - color: #90a4ae !important; -} - -.blue-grey.lighten-1 { - background-color: #78909c !important; -} - -.blue-grey-text.text-lighten-1 { - color: #78909c !important; -} - -.blue-grey.darken-1 { - background-color: #546e7a !important; -} - -.blue-grey-text.text-darken-1 { - color: #546e7a !important; -} - -.blue-grey.darken-2 { - background-color: #455a64 !important; -} - -.blue-grey-text.text-darken-2 { - color: #455a64 !important; -} - -.blue-grey.darken-3 { - background-color: #37474f !important; -} - -.blue-grey-text.text-darken-3 { - color: #37474f !important; -} - -.blue-grey.darken-4 { - background-color: #263238 !important; -} - -.blue-grey-text.text-darken-4 { - color: #263238 !important; -} - -.grey { - background-color: #9e9e9e !important; -} - -.grey-text { - color: #9e9e9e !important; -} - -.grey.lighten-5 { - background-color: #fafafa !important; -} - -.grey-text.text-lighten-5 { - color: #fafafa !important; -} - -.grey.lighten-4 { - background-color: #f5f5f5 !important; -} - -.grey-text.text-lighten-4 { - color: #f5f5f5 !important; -} - -.grey.lighten-3 { - background-color: #eeeeee !important; -} - -.grey-text.text-lighten-3 { - color: #eeeeee !important; -} - -.grey.lighten-2 { - background-color: #e0e0e0 !important; -} - -.grey-text.text-lighten-2 { - color: #e0e0e0 !important; -} - -.grey.lighten-1 { - background-color: #bdbdbd !important; -} - -.grey-text.text-lighten-1 { - color: #bdbdbd !important; -} - -.grey.darken-1 { - background-color: #757575 !important; -} - -.grey-text.text-darken-1 { - color: #757575 !important; -} - -.grey.darken-2 { - background-color: #616161 !important; -} - -.grey-text.text-darken-2 { - color: #616161 !important; -} - -.grey.darken-3 { - background-color: #424242 !important; -} - -.grey-text.text-darken-3 { - color: #424242 !important; -} - -.grey.darken-4 { - background-color: #212121 !important; -} - -.grey-text.text-darken-4 { - color: #212121 !important; -} - -.black { - background-color: #000000 !important; -} - -.black-text { - color: #000000 !important; -} - -.white { - background-color: #FFFFFF !important; -} - -.white-text { - color: #FFFFFF !important; -} - -.transparent { - background-color: transparent !important; -} - -.transparent-text { - color: transparent !important; -} - -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS and IE text size adjust after device orientation change, - * without disabling user zoom. - */ -html { - font-family: sans-serif; - /* 1 */ - -ms-text-size-adjust: 100%; - /* 2 */ - -webkit-text-size-adjust: 100%; - /* 2 */ -} - -/** - * Remove default margin. - */ -body { - margin: 0; -} - -/* HTML5 display definitions - ========================================================================== */ -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ -audio, -canvas, -progress, -video { - display: inline-block; - /* 1 */ - vertical-align: baseline; - /* 2 */ -} - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. - */ -[hidden], -template { - display: none; -} - -/* Links - ========================================================================== */ -/** - * Remove the gray background color from active links in IE 10. - */ -a { - background-color: transparent; -} - -/** - * Improve readability of focused elements when they are also in an - * active/hover state. - */ -a:active, -a:hover { - outline: 0; -} - -/* Text-level semantics - ========================================================================== */ -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ -abbr[title] { - border-bottom: 1px dotted; -} - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ -b, -strong { - font-weight: bold; -} - -/** - * Address styling not present in Safari and Chrome. - */ -dfn { - font-style: italic; -} - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/** - * Address styling not present in IE 8/9. - */ -mark { - background: #ff0; - color: #000; -} - -/** - * Address inconsistent and variable font size in all browsers. - */ -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -/* Embedded content - ========================================================================== */ -/** - * Remove border when inside `a` element in IE 8/9/10. - */ -img { - border: 0; -} - -/** - * Correct overflow not hidden in IE 9/10/11. - */ -svg:not(:root) { - overflow: hidden; -} - -/* Grouping content - ========================================================================== */ -/** - * Address margin not present in IE 8/9 and Safari. - */ -figure { - margin: 1em 40px; -} - -/** - * Address differences between Firefox and other browsers. - */ -hr { - box-sizing: content-box; - height: 0; -} - -/** - * Contain overflow in all browsers. - */ -pre { - overflow: auto; -} - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -/* Forms - ========================================================================== */ -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ -button, -input, -optgroup, -select, -textarea { - color: inherit; - /* 1 */ - font: inherit; - /* 2 */ - margin: 0; - /* 3 */ -} - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ -button { - overflow: visible; -} - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ -button, -select { - text-transform: none; -} - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - /* 2 */ - cursor: pointer; - /* 3 */ -} - -/** - * Re-set default cursor for disabled elements. - */ -button[disabled], -html input[disabled] { - cursor: default; -} - -/** - * Remove inner padding and border in Firefox 4+. - */ -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ -input { - line-height: normal; -} - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - /* 1 */ - padding: 0; - /* 2 */ -} - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome. - */ -input[type="search"] { - -webkit-appearance: textfield; - /* 1 */ - box-sizing: content-box; - /* 2 */ -} - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * Define consistent border, margin, and padding. - */ -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ -legend { - border: 0; - /* 1 */ - padding: 0; - /* 2 */ -} - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ -textarea { - overflow: auto; -} - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ -optgroup { - font-weight: bold; -} - -/* Tables - ========================================================================== */ -/** - * Remove most spacing between table cells. - */ -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} - -html { - box-sizing: border-box; -} - -*, *:before, *:after { - box-sizing: inherit; -} - -ul:not(.browser-default) { - padding-left: 0; - list-style-type: none; -} - -ul:not(.browser-default) li { - list-style-type: none; -} - -a { - color: #039be5; - text-decoration: none; - -webkit-tap-highlight-color: transparent; -} - -.valign-wrapper { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; -} - -.valign-wrapper .valign { - display: block; -} - -.clearfix { - clear: both; -} - -.z-depth-0 { - box-shadow: none !important; -} - -.z-depth-1, nav, .card-panel, .card, .toast, .btn, .btn-large, .btn-floating, .dropdown-content, .collapsible, .side-nav { - box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); -} - -.z-depth-1-half, .btn:hover, .btn-large:hover, .btn-floating:hover { - box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2); -} - -.z-depth-2 { - box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3); -} - -.z-depth-3 { - box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.3); -} - -.z-depth-4, .modal { - box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.3); -} - -.z-depth-5 { - box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.3); -} - -.hoverable { - transition: box-shadow .25s; - box-shadow: 0; -} - -.hoverable:hover { - transition: box-shadow .25s; - box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); -} - -.divider { - height: 1px; - overflow: hidden; - background-color: #e0e0e0; -} - -blockquote { - margin: 20px 0; - padding-left: 1.5rem; - border-left: 5px solid #ee6e73; -} - -i { - line-height: inherit; -} - -i.left { - float: left; - margin-right: 15px; -} - -i.right { - float: right; - margin-left: 15px; -} - -i.tiny { - font-size: 1rem; -} - -i.small { - font-size: 2rem; -} - -i.medium { - font-size: 4rem; -} - -i.large { - font-size: 6rem; -} - -img.responsive-img, -video.responsive-video { - max-width: 100%; - height: auto; -} - -.pagination li { - display: inline-block; - border-radius: 2px; - text-align: center; - vertical-align: top; - height: 30px; -} - -.pagination li a { - color: #444; - display: inline-block; - font-size: 1.2rem; - padding: 0 10px; - line-height: 30px; -} - -.pagination li.active a { - color: #fff; -} - -.pagination li.active { - background-color: #ee6e73; -} - -.pagination li.disabled a { - cursor: default; - color: #999; -} - -.pagination li i { - font-size: 2rem; -} - -.pagination li.pages ul li { - display: inline-block; - float: none; -} - -@media only screen and (max-width: 992px) { - .pagination { - width: 100%; - } - .pagination li.prev, - .pagination li.next { - width: 10%; - } - .pagination li.pages { - width: 80%; - overflow: hidden; - white-space: nowrap; - } -} - -.breadcrumb { - font-size: 18px; - color: rgba(255, 255, 255, 0.7); -} - -.breadcrumb i, -.breadcrumb [class^="mdi-"], .breadcrumb [class*="mdi-"], -.breadcrumb i.material-icons { - display: inline-block; - float: left; - font-size: 24px; -} - -.breadcrumb:before { - content: '\E5CC'; - color: rgba(255, 255, 255, 0.7); - vertical-align: top; - display: inline-block; - font-family: 'Material Icons'; - font-weight: normal; - font-style: normal; - font-size: 25px; - margin: 0 10px 0 8px; - -webkit-font-smoothing: antialiased; -} - -.breadcrumb:first-child:before { - display: none; -} - -.breadcrumb:last-child { - color: #fff; -} - -.parallax-container { - position: relative; - overflow: hidden; - height: 500px; -} - -.parallax { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: -1; -} - -.parallax img { - display: none; - position: absolute; - left: 50%; - bottom: 0; - min-width: 100%; - min-height: 100%; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-transform: translateX(-50%); - transform: translateX(-50%); -} - -.pin-top, .pin-bottom { - position: relative; -} - -.pinned { - position: fixed !important; -} - -/********************* - Transition Classes -**********************/ -ul.staggered-list li { - opacity: 0; -} - -.fade-in { - opacity: 0; - -webkit-transform-origin: 0 50%; - transform-origin: 0 50%; -} - -/********************* - Media Query Classes -**********************/ -@media only screen and (max-width: 600px) { - .hide-on-small-only, .hide-on-small-and-down { - display: none !important; - } -} - -@media only screen and (max-width: 992px) { - .hide-on-med-and-down { - display: none !important; - } -} - -@media only screen and (min-width: 601px) { - .hide-on-med-and-up { - display: none !important; - } -} - -@media only screen and (min-width: 600px) and (max-width: 992px) { - .hide-on-med-only { - display: none !important; - } -} - -@media only screen and (min-width: 993px) { - .hide-on-large-only { - display: none !important; - } -} - -@media only screen and (min-width: 993px) { - .show-on-large { - display: block !important; - } -} - -@media only screen and (min-width: 600px) and (max-width: 992px) { - .show-on-medium { - display: block !important; - } -} - -@media only screen and (max-width: 600px) { - .show-on-small { - display: block !important; - } -} - -@media only screen and (min-width: 601px) { - .show-on-medium-and-up { - display: block !important; - } -} - -@media only screen and (max-width: 992px) { - .show-on-medium-and-down { - display: block !important; - } -} - -@media only screen and (max-width: 600px) { - .center-on-small-only { - text-align: center; - } -} - -footer.page-footer { - padding-top: 20px; - background-color: #ee6e73; -} - -footer.page-footer .footer-copyright { - overflow: hidden; - min-height: 50px; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - padding: 10px 0px; - color: rgba(255, 255, 255, 0.8); - background-color: rgba(51, 51, 51, 0.08); -} - -table, th, td { - border: none; -} - -table { - width: 100%; - display: table; -} - -table.bordered > thead > tr, -table.bordered > tbody > tr { - border-bottom: 1px solid #d0d0d0; -} - -table.striped > tbody > tr:nth-child(odd) { - background-color: #f2f2f2; -} - -table.striped > tbody > tr > td { - border-radius: 0; -} - -table.highlight > tbody > tr { - transition: background-color .25s ease; -} - -table.highlight > tbody > tr:hover { - background-color: #f2f2f2; -} - -table.centered thead tr th, table.centered tbody tr td { - text-align: center; -} - -thead { - border-bottom: 1px solid #d0d0d0; -} - -td, th { - padding: 15px 5px; - display: table-cell; - text-align: left; - vertical-align: middle; - border-radius: 2px; -} - -@media only screen and (max-width: 992px) { - table.responsive-table { - width: 100%; - border-collapse: collapse; - border-spacing: 0; - display: block; - position: relative; - /* sort out borders */ - } - table.responsive-table td:empty:before { - content: '\00a0'; - } - table.responsive-table th, - table.responsive-table td { - margin: 0; - vertical-align: top; - } - table.responsive-table th { - text-align: left; - } - table.responsive-table thead { - display: block; - float: left; - } - table.responsive-table thead tr { - display: block; - padding: 0 10px 0 0; - } - table.responsive-table thead tr th::before { - content: "\00a0"; - } - table.responsive-table tbody { - display: block; - width: auto; - position: relative; - overflow-x: auto; - white-space: nowrap; - } - table.responsive-table tbody tr { - display: inline-block; - vertical-align: top; - } - table.responsive-table th { - display: block; - text-align: right; - } - table.responsive-table td { - display: block; - min-height: 1.25em; - text-align: left; - } - table.responsive-table tr { - padding: 0 10px; - } - table.responsive-table thead { - border: 0; - border-right: 1px solid #d0d0d0; - } - table.responsive-table.bordered th { - border-bottom: 0; - border-left: 0; - } - table.responsive-table.bordered td { - border-left: 0; - border-right: 0; - border-bottom: 0; - } - table.responsive-table.bordered tr { - border: 0; - } - table.responsive-table.bordered tbody tr { - border-right: 1px solid #d0d0d0; - } -} - -.collection { - margin: 0.5rem 0 1rem 0; - border: 1px solid #e0e0e0; - border-radius: 2px; - overflow: hidden; - position: relative; -} - -.collection .collection-item { - background-color: #fff; - line-height: 1.5rem; - padding: 10px 20px; - margin: 0; - border-bottom: 1px solid #e0e0e0; -} - -.collection .collection-item.avatar { - min-height: 84px; - padding-left: 72px; - position: relative; -} - -.collection .collection-item.avatar .circle { - position: absolute; - width: 42px; - height: 42px; - overflow: hidden; - left: 15px; - display: inline-block; - vertical-align: middle; -} - -.collection .collection-item.avatar i.circle { - font-size: 18px; - line-height: 42px; - color: #fff; - background-color: #999; - text-align: center; -} - -.collection .collection-item.avatar .title { - font-size: 16px; -} - -.collection .collection-item.avatar p { - margin: 0; -} - -.collection .collection-item.avatar .secondary-content { - position: absolute; - top: 16px; - right: 16px; -} - -.collection .collection-item:last-child { - border-bottom: none; -} - -.collection .collection-item.active { - background-color: #26a69a; - color: #eafaf9; -} - -.collection .collection-item.active .secondary-content { - color: #fff; -} - -.collection a.collection-item { - display: block; - transition: .25s; - color: #26a69a; -} - -.collection a.collection-item:not(.active):hover { - background-color: #ddd; -} - -.collection.with-header .collection-header { - background-color: #fff; - border-bottom: 1px solid #e0e0e0; - padding: 10px 20px; -} - -.collection.with-header .collection-item { - padding-left: 30px; -} - -.collection.with-header .collection-item.avatar { - padding-left: 72px; -} - -.secondary-content { - float: right; - color: #26a69a; -} - -.collapsible .collection { - margin: 0; - border: none; -} - -.video-container { - position: relative; - padding-bottom: 56.25%; - height: 0; - overflow: hidden; -} - -.video-container iframe, .video-container object, .video-container embed { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} - -.progress { - position: relative; - height: 4px; - display: block; - width: 100%; - background-color: #acece6; - border-radius: 2px; - margin: 0.5rem 0 1rem 0; - overflow: hidden; -} - -.progress .determinate { - position: absolute; - top: 0; - left: 0; - bottom: 0; - background-color: #26a69a; - transition: width .3s linear; -} - -.progress .indeterminate { - background-color: #26a69a; -} - -.progress .indeterminate:before { - content: ''; - position: absolute; - background-color: inherit; - top: 0; - left: 0; - bottom: 0; - will-change: left, right; - -webkit-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; - animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; -} - -.progress .indeterminate:after { - content: ''; - position: absolute; - background-color: inherit; - top: 0; - left: 0; - bottom: 0; - will-change: left, right; - -webkit-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; - animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; - -webkit-animation-delay: 1.15s; - animation-delay: 1.15s; -} - -@-webkit-keyframes indeterminate { - 0% { - left: -35%; - right: 100%; - } - 60% { - left: 100%; - right: -90%; - } - 100% { - left: 100%; - right: -90%; - } -} - -@keyframes indeterminate { - 0% { - left: -35%; - right: 100%; - } - 60% { - left: 100%; - right: -90%; - } - 100% { - left: 100%; - right: -90%; - } -} - -@-webkit-keyframes indeterminate-short { - 0% { - left: -200%; - right: 100%; - } - 60% { - left: 107%; - right: -8%; - } - 100% { - left: 107%; - right: -8%; - } -} - -@keyframes indeterminate-short { - 0% { - left: -200%; - right: 100%; - } - 60% { - left: 107%; - right: -8%; - } - 100% { - left: 107%; - right: -8%; - } -} - -/******************* - Utility Classes -*******************/ -.hide { - display: none !important; -} - -.left-align { - text-align: left; -} - -.right-align { - text-align: right; -} - -.center, .center-align { - text-align: center; -} - -.left { - float: left !important; -} - -.right { - float: right !important; -} - -.no-select, input[type=range], -input[type=range] + .thumb { - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.circle { - border-radius: 50%; -} - -.center-block { - display: block; - margin-left: auto; - margin-right: auto; -} - -.truncate { - display: block; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.no-padding { - padding: 0 !important; -} - -span.badge { - min-width: 3rem; - padding: 0 6px; - margin-left: 14px; - text-align: center; - font-size: 1rem; - line-height: 22px; - height: 22px; - color: #757575; - float: right; - box-sizing: border-box; -} - -span.badge.new { - font-weight: 300; - font-size: 0.8rem; - color: #fff; - background-color: #26a69a; - border-radius: 2px; -} - -span.badge.new:after { - content: " new"; -} - -span.badge[data-badge-caption]::after { - content: " " attr(data-badge-caption); -} - -nav ul a span.badge { - display: inline-block; - float: none; - margin-left: 4px; - line-height: 22px; - height: 22px; -} - -.collection-item span.badge { - margin-top: calc(0.75rem - 11px); -} - -.collapsible span.badge { - margin-top: calc(1.5rem - 11px); -} - -.side-nav span.badge { - margin-top: calc(24px - 11px); -} - -/* This is needed for some mobile phones to display the Google Icon font properly */ -.material-icons { - text-rendering: optimizeLegibility; - -webkit-font-feature-settings: 'liga'; - -moz-font-feature-settings: 'liga'; - font-feature-settings: 'liga'; -} - -.container { - margin: 0 auto; - max-width: 1280px; - width: 90%; -} - -@media only screen and (min-width: 601px) { - .container { - width: 85%; - } -} - -@media only screen and (min-width: 993px) { - .container { - width: 70%; - } -} - -.container .row { - margin-left: -0.75rem; - margin-right: -0.75rem; -} - -.section { - padding-top: 1rem; - padding-bottom: 1rem; -} - -.section.no-pad { - padding: 0; -} - -.section.no-pad-bot { - padding-bottom: 0; -} - -.section.no-pad-top { - padding-top: 0; -} - -.row { - margin-left: auto; - margin-right: auto; - margin-bottom: 20px; -} - -.row:after { - content: ""; - display: table; - clear: both; -} - -.row .col { - float: left; - box-sizing: border-box; - padding: 0 0.75rem; - min-height: 1px; -} - -.row .col[class*="push-"], .row .col[class*="pull-"] { - position: relative; -} - -.row .col.s1 { - width: 8.3333333333%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s2 { - width: 16.6666666667%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s3 { - width: 25%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s4 { - width: 33.3333333333%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s5 { - width: 41.6666666667%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s6 { - width: 50%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s7 { - width: 58.3333333333%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s8 { - width: 66.6666666667%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s9 { - width: 75%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s10 { - width: 83.3333333333%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s11 { - width: 91.6666666667%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.s12 { - width: 100%; - margin-left: auto; - left: auto; - right: auto; -} - -.row .col.offset-s1 { - margin-left: 8.3333333333%; -} - -.row .col.pull-s1 { - right: 8.3333333333%; -} - -.row .col.push-s1 { - left: 8.3333333333%; -} - -.row .col.offset-s2 { - margin-left: 16.6666666667%; -} - -.row .col.pull-s2 { - right: 16.6666666667%; -} - -.row .col.push-s2 { - left: 16.6666666667%; -} - -.row .col.offset-s3 { - margin-left: 25%; -} - -.row .col.pull-s3 { - right: 25%; -} - -.row .col.push-s3 { - left: 25%; -} - -.row .col.offset-s4 { - margin-left: 33.3333333333%; -} - -.row .col.pull-s4 { - right: 33.3333333333%; -} - -.row .col.push-s4 { - left: 33.3333333333%; -} - -.row .col.offset-s5 { - margin-left: 41.6666666667%; -} - -.row .col.pull-s5 { - right: 41.6666666667%; -} - -.row .col.push-s5 { - left: 41.6666666667%; -} - -.row .col.offset-s6 { - margin-left: 50%; -} - -.row .col.pull-s6 { - right: 50%; -} - -.row .col.push-s6 { - left: 50%; -} - -.row .col.offset-s7 { - margin-left: 58.3333333333%; -} - -.row .col.pull-s7 { - right: 58.3333333333%; -} - -.row .col.push-s7 { - left: 58.3333333333%; -} - -.row .col.offset-s8 { - margin-left: 66.6666666667%; -} - -.row .col.pull-s8 { - right: 66.6666666667%; -} - -.row .col.push-s8 { - left: 66.6666666667%; -} - -.row .col.offset-s9 { - margin-left: 75%; -} - -.row .col.pull-s9 { - right: 75%; -} - -.row .col.push-s9 { - left: 75%; -} - -.row .col.offset-s10 { - margin-left: 83.3333333333%; -} - -.row .col.pull-s10 { - right: 83.3333333333%; -} - -.row .col.push-s10 { - left: 83.3333333333%; -} - -.row .col.offset-s11 { - margin-left: 91.6666666667%; -} - -.row .col.pull-s11 { - right: 91.6666666667%; -} - -.row .col.push-s11 { - left: 91.6666666667%; -} - -.row .col.offset-s12 { - margin-left: 100%; -} - -.row .col.pull-s12 { - right: 100%; -} - -.row .col.push-s12 { - left: 100%; -} - -@media only screen and (min-width: 601px) { - .row .col.m1 { - width: 8.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m2 { - width: 16.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m3 { - width: 25%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m4 { - width: 33.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m5 { - width: 41.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m6 { - width: 50%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m7 { - width: 58.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m8 { - width: 66.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m9 { - width: 75%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m10 { - width: 83.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m11 { - width: 91.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.m12 { - width: 100%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.offset-m1 { - margin-left: 8.3333333333%; - } - .row .col.pull-m1 { - right: 8.3333333333%; - } - .row .col.push-m1 { - left: 8.3333333333%; - } - .row .col.offset-m2 { - margin-left: 16.6666666667%; - } - .row .col.pull-m2 { - right: 16.6666666667%; - } - .row .col.push-m2 { - left: 16.6666666667%; - } - .row .col.offset-m3 { - margin-left: 25%; - } - .row .col.pull-m3 { - right: 25%; - } - .row .col.push-m3 { - left: 25%; - } - .row .col.offset-m4 { - margin-left: 33.3333333333%; - } - .row .col.pull-m4 { - right: 33.3333333333%; - } - .row .col.push-m4 { - left: 33.3333333333%; - } - .row .col.offset-m5 { - margin-left: 41.6666666667%; - } - .row .col.pull-m5 { - right: 41.6666666667%; - } - .row .col.push-m5 { - left: 41.6666666667%; - } - .row .col.offset-m6 { - margin-left: 50%; - } - .row .col.pull-m6 { - right: 50%; - } - .row .col.push-m6 { - left: 50%; - } - .row .col.offset-m7 { - margin-left: 58.3333333333%; - } - .row .col.pull-m7 { - right: 58.3333333333%; - } - .row .col.push-m7 { - left: 58.3333333333%; - } - .row .col.offset-m8 { - margin-left: 66.6666666667%; - } - .row .col.pull-m8 { - right: 66.6666666667%; - } - .row .col.push-m8 { - left: 66.6666666667%; - } - .row .col.offset-m9 { - margin-left: 75%; - } - .row .col.pull-m9 { - right: 75%; - } - .row .col.push-m9 { - left: 75%; - } - .row .col.offset-m10 { - margin-left: 83.3333333333%; - } - .row .col.pull-m10 { - right: 83.3333333333%; - } - .row .col.push-m10 { - left: 83.3333333333%; - } - .row .col.offset-m11 { - margin-left: 91.6666666667%; - } - .row .col.pull-m11 { - right: 91.6666666667%; - } - .row .col.push-m11 { - left: 91.6666666667%; - } - .row .col.offset-m12 { - margin-left: 100%; - } - .row .col.pull-m12 { - right: 100%; - } - .row .col.push-m12 { - left: 100%; - } -} - -@media only screen and (min-width: 993px) { - .row .col.l1 { - width: 8.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l2 { - width: 16.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l3 { - width: 25%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l4 { - width: 33.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l5 { - width: 41.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l6 { - width: 50%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l7 { - width: 58.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l8 { - width: 66.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l9 { - width: 75%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l10 { - width: 83.3333333333%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l11 { - width: 91.6666666667%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.l12 { - width: 100%; - margin-left: auto; - left: auto; - right: auto; - } - .row .col.offset-l1 { - margin-left: 8.3333333333%; - } - .row .col.pull-l1 { - right: 8.3333333333%; - } - .row .col.push-l1 { - left: 8.3333333333%; - } - .row .col.offset-l2 { - margin-left: 16.6666666667%; - } - .row .col.pull-l2 { - right: 16.6666666667%; - } - .row .col.push-l2 { - left: 16.6666666667%; - } - .row .col.offset-l3 { - margin-left: 25%; - } - .row .col.pull-l3 { - right: 25%; - } - .row .col.push-l3 { - left: 25%; - } - .row .col.offset-l4 { - margin-left: 33.3333333333%; - } - .row .col.pull-l4 { - right: 33.3333333333%; - } - .row .col.push-l4 { - left: 33.3333333333%; - } - .row .col.offset-l5 { - margin-left: 41.6666666667%; - } - .row .col.pull-l5 { - right: 41.6666666667%; - } - .row .col.push-l5 { - left: 41.6666666667%; - } - .row .col.offset-l6 { - margin-left: 50%; - } - .row .col.pull-l6 { - right: 50%; - } - .row .col.push-l6 { - left: 50%; - } - .row .col.offset-l7 { - margin-left: 58.3333333333%; - } - .row .col.pull-l7 { - right: 58.3333333333%; - } - .row .col.push-l7 { - left: 58.3333333333%; - } - .row .col.offset-l8 { - margin-left: 66.6666666667%; - } - .row .col.pull-l8 { - right: 66.6666666667%; - } - .row .col.push-l8 { - left: 66.6666666667%; - } - .row .col.offset-l9 { - margin-left: 75%; - } - .row .col.pull-l9 { - right: 75%; - } - .row .col.push-l9 { - left: 75%; - } - .row .col.offset-l10 { - margin-left: 83.3333333333%; - } - .row .col.pull-l10 { - right: 83.3333333333%; - } - .row .col.push-l10 { - left: 83.3333333333%; - } - .row .col.offset-l11 { - margin-left: 91.6666666667%; - } - .row .col.pull-l11 { - right: 91.6666666667%; - } - .row .col.push-l11 { - left: 91.6666666667%; - } - .row .col.offset-l12 { - margin-left: 100%; - } - .row .col.pull-l12 { - right: 100%; - } - .row .col.push-l12 { - left: 100%; - } -} - -nav { - color: #fff; - background-color: #ee6e73; - width: 100%; - height: 56px; - line-height: 56px; -} - -nav.nav-extended { - height: auto; -} - -nav.nav-extended .nav-wrapper { - min-height: 56px; - height: auto; -} - -nav.nav-extended .nav-content { - position: relative; - line-height: normal; -} - -nav a { - color: #fff; -} - -nav i, -nav [class^="mdi-"], nav [class*="mdi-"], -nav i.material-icons { - display: block; - font-size: 24px; - height: 56px; - line-height: 56px; -} - -nav .nav-wrapper { - position: relative; - height: 100%; -} - -@media only screen and (min-width: 993px) { - nav a.button-collapse { - display: none; - } -} - -nav .button-collapse { - float: left; - position: relative; - z-index: 1; - height: 56px; - margin: 0 18px; -} - -nav .button-collapse i { - height: 56px; - line-height: 56px; -} - -nav .brand-logo { - position: absolute; - color: #fff; - display: inline-block; - font-size: 2.1rem; - padding: 0; - white-space: nowrap; -} - -nav .brand-logo.center { - left: 50%; - -webkit-transform: translateX(-50%); - transform: translateX(-50%); -} - -@media only screen and (max-width: 992px) { - nav .brand-logo { - left: 50%; - -webkit-transform: translateX(-50%); - transform: translateX(-50%); - } - nav .brand-logo.left, nav .brand-logo.right { - padding: 0; - -webkit-transform: none; - transform: none; - } - nav .brand-logo.left { - left: 0.5rem; - } - nav .brand-logo.right { - right: 0.5rem; - left: auto; - } -} - -nav .brand-logo.right { - right: 0.5rem; - padding: 0; -} - -nav .brand-logo i, -nav .brand-logo [class^="mdi-"], nav .brand-logo [class*="mdi-"], -nav .brand-logo i.material-icons { - float: left; - margin-right: 15px; -} - -nav .nav-title { - display: inline-block; - font-size: 32px; - padding: 28px 0; -} - -nav ul { - margin: 0; -} - -nav ul li { - transition: background-color .3s; - float: left; - padding: 0; -} - -nav ul li.active { - background-color: rgba(0, 0, 0, 0.1); -} - -nav ul a { - transition: background-color .3s; - font-size: 1rem; - color: #fff; - display: block; - padding: 0 15px; - cursor: pointer; -} - -nav ul a.btn, nav ul a.btn-large, nav ul a.btn-large, nav ul a.btn-flat, nav ul a.btn-floating { - margin-top: -2px; - margin-left: 15px; - margin-right: 15px; -} - -nav ul a.btn > .material-icons, nav ul a.btn-large > .material-icons, nav ul a.btn-large > .material-icons, nav ul a.btn-flat > .material-icons, nav ul a.btn-floating > .material-icons { - height: inherit; - line-height: inherit; -} - -nav ul a:hover { - background-color: rgba(0, 0, 0, 0.1); -} - -nav ul.left { - float: left; -} - -nav form { - height: 100%; -} - -nav .input-field { - margin: 0; - height: 100%; -} - -nav .input-field input { - height: 100%; - font-size: 1.2rem; - border: none; - padding-left: 2rem; -} - -nav .input-field input:focus, nav .input-field input[type=text]:valid, nav .input-field input[type=password]:valid, nav .input-field input[type=email]:valid, nav .input-field input[type=url]:valid, nav .input-field input[type=date]:valid { - border: none; - box-shadow: none; -} - -nav .input-field label { - top: 0; - left: 0; -} - -nav .input-field label i { - color: rgba(255, 255, 255, 0.7); - transition: color .3s; -} - -nav .input-field label.active i { - color: #fff; -} - -.navbar-fixed { - position: relative; - height: 56px; - z-index: 997; -} - -.navbar-fixed nav { - position: fixed; -} - -@media only screen and (min-width: 601px) { - nav.nav-extended .nav-wrapper { - min-height: 64px; - } - nav, nav .nav-wrapper i, nav a.button-collapse, nav a.button-collapse i { - height: 64px; - line-height: 64px; - } - .navbar-fixed { - height: 64px; - } -} - -@font-face { - font-family: "Roboto"; - src: local(Roboto Thin), url("../fonts/roboto/Roboto-Thin.eot"); - src: url("../fonts/roboto/Roboto-Thin.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Thin.woff2") format("woff2"), url("../fonts/roboto/Roboto-Thin.woff") format("woff"), url("../fonts/roboto/Roboto-Thin.ttf") format("truetype"); - font-weight: 200; -} - -@font-face { - font-family: "Roboto"; - src: local(Roboto Light), url("../fonts/roboto/Roboto-Light.eot"); - src: url("../fonts/roboto/Roboto-Light.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Light.woff2") format("woff2"), url("../fonts/roboto/Roboto-Light.woff") format("woff"), url("../fonts/roboto/Roboto-Light.ttf") format("truetype"); - font-weight: 300; -} - -@font-face { - font-family: "Roboto"; - src: local(Roboto Regular), url("../fonts/roboto/Roboto-Regular.eot"); - src: url("../fonts/roboto/Roboto-Regular.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Regular.woff2") format("woff2"), url("../fonts/roboto/Roboto-Regular.woff") format("woff"), url("../fonts/roboto/Roboto-Regular.ttf") format("truetype"); - font-weight: 400; -} - -@font-face { - font-family: "Roboto"; - src: url("../fonts/roboto/Roboto-Medium.eot"); - src: url("../fonts/roboto/Roboto-Medium.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Medium.woff2") format("woff2"), url("../fonts/roboto/Roboto-Medium.woff") format("woff"), url("../fonts/roboto/Roboto-Medium.ttf") format("truetype"); - font-weight: 500; -} - -@font-face { - font-family: "Roboto"; - src: url("../fonts/roboto/Roboto-Bold.eot"); - src: url("../fonts/roboto/Roboto-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Bold.woff2") format("woff2"), url("../fonts/roboto/Roboto-Bold.woff") format("woff"), url("../fonts/roboto/Roboto-Bold.ttf") format("truetype"); - font-weight: 700; -} - -a { - text-decoration: none; -} - -html { - line-height: 1.5; - font-family: "Roboto", sans-serif; - font-weight: normal; - color: rgba(0, 0, 0, 0.87); -} - -@media only screen and (min-width: 0) { - html { - font-size: 14px; - } -} - -@media only screen and (min-width: 992px) { - html { - font-size: 14.5px; - } -} - -@media only screen and (min-width: 1200px) { - html { - font-size: 15px; - } -} - -h1, h2, h3, h4, h5, h6 { - font-weight: 400; - line-height: 1.1; -} - -h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { - font-weight: inherit; -} - -h1 { - font-size: 4.2rem; - line-height: 110%; - margin: 2.1rem 0 1.68rem 0; -} - -h2 { - font-size: 3.56rem; - line-height: 110%; - margin: 1.78rem 0 1.424rem 0; -} - -h3 { - font-size: 2.92rem; - line-height: 110%; - margin: 1.46rem 0 1.168rem 0; -} - -h4 { - font-size: 2.28rem; - line-height: 110%; - margin: 1.14rem 0 0.912rem 0; -} - -h5 { - font-size: 1.64rem; - line-height: 110%; - margin: 0.82rem 0 0.656rem 0; -} - -h6 { - font-size: 1rem; - line-height: 110%; - margin: 0.5rem 0 0.4rem 0; -} - -em { - font-style: italic; -} - -strong { - font-weight: 500; -} - -small { - font-size: 75%; -} - -.light, footer.page-footer .footer-copyright { - font-weight: 300; -} - -.thin { - font-weight: 200; -} - -.flow-text { - font-weight: 300; -} - -@media only screen and (min-width: 360px) { - .flow-text { - font-size: 1.2rem; - } -} - -@media only screen and (min-width: 390px) { - .flow-text { - font-size: 1.224rem; - } -} - -@media only screen and (min-width: 420px) { - .flow-text { - font-size: 1.248rem; - } -} - -@media only screen and (min-width: 450px) { - .flow-text { - font-size: 1.272rem; - } -} - -@media only screen and (min-width: 480px) { - .flow-text { - font-size: 1.296rem; - } -} - -@media only screen and (min-width: 510px) { - .flow-text { - font-size: 1.32rem; - } -} - -@media only screen and (min-width: 540px) { - .flow-text { - font-size: 1.344rem; - } -} - -@media only screen and (min-width: 570px) { - .flow-text { - font-size: 1.368rem; - } -} - -@media only screen and (min-width: 600px) { - .flow-text { - font-size: 1.392rem; - } -} - -@media only screen and (min-width: 630px) { - .flow-text { - font-size: 1.416rem; - } -} - -@media only screen and (min-width: 660px) { - .flow-text { - font-size: 1.44rem; - } -} - -@media only screen and (min-width: 690px) { - .flow-text { - font-size: 1.464rem; - } -} - -@media only screen and (min-width: 720px) { - .flow-text { - font-size: 1.488rem; - } -} - -@media only screen and (min-width: 750px) { - .flow-text { - font-size: 1.512rem; - } -} - -@media only screen and (min-width: 780px) { - .flow-text { - font-size: 1.536rem; - } -} - -@media only screen and (min-width: 810px) { - .flow-text { - font-size: 1.56rem; - } -} - -@media only screen and (min-width: 840px) { - .flow-text { - font-size: 1.584rem; - } -} - -@media only screen and (min-width: 870px) { - .flow-text { - font-size: 1.608rem; - } -} - -@media only screen and (min-width: 900px) { - .flow-text { - font-size: 1.632rem; - } -} - -@media only screen and (min-width: 930px) { - .flow-text { - font-size: 1.656rem; - } -} - -@media only screen and (min-width: 960px) { - .flow-text { - font-size: 1.68rem; - } -} - -@media only screen and (max-width: 360px) { - .flow-text { - font-size: 1.2rem; - } -} - -.scale-transition { - transition: -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important; - transition: transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important; - transition: transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63), -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important; -} - -.scale-transition.scale-out { - -webkit-transform: scale(0); - transform: scale(0); - transition: -webkit-transform .2s !important; - transition: transform .2s !important; - transition: transform .2s, -webkit-transform .2s !important; -} - -.scale-transition.scale-in { - -webkit-transform: scale(1); - transform: scale(1); -} - -.card-panel { - transition: box-shadow .25s; - padding: 24px; - margin: 0.5rem 0 1rem 0; - border-radius: 2px; - background-color: #fff; -} - -.card { - position: relative; - margin: 0.5rem 0 1rem 0; - background-color: #fff; - transition: box-shadow .25s; - border-radius: 2px; -} - -.card .card-title { - font-size: 24px; - font-weight: 300; -} - -.card .card-title.activator { - cursor: pointer; -} - -.card.small, .card.medium, .card.large { - position: relative; -} - -.card.small .card-image, .card.medium .card-image, .card.large .card-image { - max-height: 60%; - overflow: hidden; -} - -.card.small .card-image + .card-content, .card.medium .card-image + .card-content, .card.large .card-image + .card-content { - max-height: 40%; -} - -.card.small .card-content, .card.medium .card-content, .card.large .card-content { - max-height: 100%; - overflow: hidden; -} - -.card.small .card-action, .card.medium .card-action, .card.large .card-action { - position: absolute; - bottom: 0; - left: 0; - right: 0; -} - -.card.small { - height: 300px; -} - -.card.medium { - height: 400px; -} - -.card.large { - height: 500px; -} - -.card.horizontal { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; -} - -.card.horizontal.small .card-image, .card.horizontal.medium .card-image, .card.horizontal.large .card-image { - height: 100%; - max-height: none; - overflow: visible; -} - -.card.horizontal.small .card-image img, .card.horizontal.medium .card-image img, .card.horizontal.large .card-image img { - height: 100%; -} - -.card.horizontal .card-image { - max-width: 50%; -} - -.card.horizontal .card-image img { - border-radius: 2px 0 0 2px; - max-width: 100%; - width: auto; -} - -.card.horizontal .card-stacked { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; - position: relative; -} - -.card.horizontal .card-stacked .card-content { - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; -} - -.card.sticky-action .card-action { - z-index: 2; -} - -.card.sticky-action .card-reveal { - z-index: 1; - padding-bottom: 64px; -} - -.card .card-image { - position: relative; -} - -.card .card-image img { - display: block; - border-radius: 2px 2px 0 0; - position: relative; - left: 0; - right: 0; - top: 0; - bottom: 0; - width: 100%; -} - -.card .card-image .card-title { - color: #fff; - position: absolute; - bottom: 0; - left: 0; - max-width: 100%; - padding: 24px; -} - -.card .card-content { - padding: 24px; - border-radius: 0 0 2px 2px; -} - -.card .card-content p { - margin: 0; - color: inherit; -} - -.card .card-content .card-title { - display: block; - line-height: 32px; - margin-bottom: 8px; -} - -.card .card-content .card-title i { - line-height: 32px; -} - -.card .card-action { - position: relative; - background-color: inherit; - border-top: 1px solid rgba(160, 160, 160, 0.2); - padding: 16px 24px; -} - -.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating) { - color: #ffab40; - margin-right: 24px; - transition: color .3s ease; - text-transform: uppercase; -} - -.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating):hover { - color: #ffd8a6; -} - -.card .card-reveal { - padding: 24px; - position: absolute; - background-color: #fff; - width: 100%; - overflow-y: auto; - left: 0; - top: 100%; - height: 100%; - z-index: 3; - display: none; -} - -.card .card-reveal .card-title { - cursor: pointer; - display: block; -} - -#toast-container { - display: block; - position: fixed; - z-index: 10000; -} - -@media only screen and (max-width: 600px) { - #toast-container { - min-width: 100%; - bottom: 0%; - } -} - -@media only screen and (min-width: 601px) and (max-width: 992px) { - #toast-container { - left: 5%; - bottom: 7%; - max-width: 90%; - } -} - -@media only screen and (min-width: 993px) { - #toast-container { - top: 10%; - right: 7%; - max-width: 86%; - } -} - -.toast { - border-radius: 2px; - top: 35px; - width: auto; - clear: both; - margin-top: 10px; - position: relative; - max-width: 100%; - height: auto; - min-height: 48px; - line-height: 1.5em; - word-break: break-all; - background-color: #323232; - padding: 10px 25px; - font-size: 1.1rem; - font-weight: 300; - color: #fff; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; -} - -.toast .btn, .toast .btn-large, .toast .btn-flat { - margin: 0; - margin-left: 3rem; -} - -.toast.rounded { - border-radius: 24px; -} - -@media only screen and (max-width: 600px) { - .toast { - width: 100%; - border-radius: 0; - } -} - -@media only screen and (min-width: 601px) and (max-width: 992px) { - .toast { - float: left; - } -} - -@media only screen and (min-width: 993px) { - .toast { - float: right; - } -} - -.tabs { - position: relative; - overflow-x: auto; - overflow-y: hidden; - height: 48px; - width: 100%; - background-color: #fff; - margin: 0 auto; - white-space: nowrap; -} - -.tabs.tabs-transparent { - background-color: transparent; -} - -.tabs.tabs-transparent .tab a, -.tabs.tabs-transparent .tab.disabled a, -.tabs.tabs-transparent .tab.disabled a:hover { - color: rgba(255, 255, 255, 0.7); -} - -.tabs.tabs-transparent .tab a:hover, -.tabs.tabs-transparent .tab a.active { - color: #fff; -} - -.tabs.tabs-transparent .indicator { - background-color: #fff; -} - -.tabs.tabs-fixed-width { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; -} - -.tabs.tabs-fixed-width .tab { - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; -} - -.tabs .tab { - display: inline-block; - text-align: center; - line-height: 48px; - height: 48px; - padding: 0; - margin: 0; - text-transform: uppercase; -} - -.tabs .tab a { - color: rgba(238, 110, 115, 0.7); - display: block; - width: 100%; - height: 100%; - padding: 0 24px; - font-size: 14px; - text-overflow: ellipsis; - overflow: hidden; - transition: color .28s ease; -} - -.tabs .tab a:hover, .tabs .tab a.active { - background-color: transparent; - color: #ee6e73; -} - -.tabs .tab.disabled a, -.tabs .tab.disabled a:hover { - color: rgba(238, 110, 115, 0.7); - cursor: default; -} - -.tabs .indicator { - position: absolute; - bottom: 0; - height: 2px; - background-color: #f6b2b5; - will-change: left, right; -} - -@media only screen and (max-width: 992px) { - .tabs { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - } - .tabs .tab { - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - } - .tabs .tab a { - padding: 0 12px; - } -} - -.material-tooltip { - padding: 10px 8px; - font-size: 1rem; - z-index: 2000; - background-color: transparent; - border-radius: 2px; - color: #fff; - min-height: 36px; - line-height: 120%; - opacity: 0; - position: absolute; - text-align: center; - max-width: calc(100% - 4px); - overflow: hidden; - left: 0; - top: 0; - pointer-events: none; - visibility: hidden; -} - -.backdrop { - position: absolute; - opacity: 0; - height: 7px; - width: 14px; - border-radius: 0 0 50% 50%; - background-color: #323232; - z-index: -1; - -webkit-transform-origin: 50% 0%; - transform-origin: 50% 0%; - visibility: hidden; -} - -.btn, .btn-large, -.btn-flat { - border: none; - border-radius: 2px; - display: inline-block; - height: 36px; - line-height: 36px; - padding: 0 2rem; - text-transform: uppercase; - vertical-align: middle; - -webkit-tap-highlight-color: transparent; -} - -.btn.disabled, .disabled.btn-large, -.btn-floating.disabled, -.btn-large.disabled, -.btn-flat.disabled, -.btn:disabled, -.btn-large:disabled, -.btn-floating:disabled, -.btn-large:disabled, -.btn-flat:disabled, -.btn[disabled], -[disabled].btn-large, -.btn-floating[disabled], -.btn-large[disabled], -.btn-flat[disabled] { - pointer-events: none; - background-color: #DFDFDF !important; - box-shadow: none; - color: #9F9F9F !important; - cursor: default; -} - -.btn.disabled:hover, .disabled.btn-large:hover, -.btn-floating.disabled:hover, -.btn-large.disabled:hover, -.btn-flat.disabled:hover, -.btn:disabled:hover, -.btn-large:disabled:hover, -.btn-floating:disabled:hover, -.btn-large:disabled:hover, -.btn-flat:disabled:hover, -.btn[disabled]:hover, -[disabled].btn-large:hover, -.btn-floating[disabled]:hover, -.btn-large[disabled]:hover, -.btn-flat[disabled]:hover { - background-color: #DFDFDF !important; - color: #9F9F9F !important; -} - -.btn, .btn-large, -.btn-floating, -.btn-large, -.btn-flat { - outline: 0; -} - -.btn i, .btn-large i, -.btn-floating i, -.btn-large i, -.btn-flat i { - font-size: 1.3rem; - line-height: inherit; -} - -.btn:focus, .btn-large:focus, -.btn-floating:focus { - background-color: #1d7d74; -} - -.btn, .btn-large { - text-decoration: none; - color: #fff; - background-color: #26a69a; - text-align: center; - letter-spacing: .5px; - transition: .2s ease-out; - cursor: pointer; -} - -.btn:hover, .btn-large:hover { - background-color: #2bbbad; -} - -.btn-floating { - display: inline-block; - color: #fff; - position: relative; - overflow: hidden; - z-index: 1; - width: 40px; - height: 40px; - line-height: 40px; - padding: 0; - background-color: #26a69a; - border-radius: 50%; - transition: .3s; - cursor: pointer; - vertical-align: middle; -} - -.btn-floating:hover { - background-color: #26a69a; -} - -.btn-floating:before { - border-radius: 0; -} - -.btn-floating.btn-large { - width: 56px; - height: 56px; -} - -.btn-floating.btn-large i { - line-height: 56px; -} - -.btn-floating.halfway-fab { - position: absolute; - right: 24px; - bottom: 0; - -webkit-transform: translateY(50%); - transform: translateY(50%); -} - -.btn-floating.halfway-fab.left { - right: auto; - left: 24px; -} - -.btn-floating i { - width: inherit; - display: inline-block; - text-align: center; - color: #fff; - font-size: 1.6rem; - line-height: 40px; -} - -button.btn-floating { - border: none; -} - -.fixed-action-btn { - position: fixed; - right: 23px; - bottom: 23px; - padding-top: 15px; - margin-bottom: 0; - z-index: 998; -} - -.fixed-action-btn.active ul { - visibility: visible; -} - -.fixed-action-btn.horizontal { - padding: 0 0 0 15px; -} - -.fixed-action-btn.horizontal ul { - text-align: right; - right: 64px; - top: 50%; - -webkit-transform: translateY(-50%); - transform: translateY(-50%); - height: 100%; - left: auto; - width: 500px; - /*width 100% only goes to width of button container */ -} - -.fixed-action-btn.horizontal ul li { - display: inline-block; - margin: 15px 15px 0 0; -} - -.fixed-action-btn.toolbar { - padding: 0; - height: 56px; -} - -.fixed-action-btn.toolbar.active > a i { - opacity: 0; -} - -.fixed-action-btn.toolbar ul { - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - top: 0; - bottom: 0; -} - -.fixed-action-btn.toolbar ul li { - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; - display: inline-block; - margin: 0; - height: 100%; - transition: none; -} - -.fixed-action-btn.toolbar ul li a { - display: block; - overflow: hidden; - position: relative; - width: 100%; - height: 100%; - background-color: transparent; - box-shadow: none; - color: #fff; - line-height: 56px; - z-index: 1; -} - -.fixed-action-btn.toolbar ul li a i { - line-height: inherit; -} - -.fixed-action-btn ul { - left: 0; - right: 0; - text-align: center; - position: absolute; - bottom: 64px; - margin: 0; - visibility: hidden; -} - -.fixed-action-btn ul li { - margin-bottom: 15px; -} - -.fixed-action-btn ul a.btn-floating { - opacity: 0; -} - -.fixed-action-btn .fab-backdrop { - position: absolute; - top: 0; - left: 0; - z-index: -1; - width: 40px; - height: 40px; - background-color: #26a69a; - border-radius: 50%; - -webkit-transform: scale(0); - transform: scale(0); -} - -.btn-flat { - box-shadow: none; - background-color: transparent; - color: #343434; - cursor: pointer; - transition: background-color .2s; -} - -.btn-flat:focus, .btn-flat:active { - background-color: transparent; -} - -.btn-flat:focus, .btn-flat:hover { - background-color: rgba(0, 0, 0, 0.1); - box-shadow: none; -} - -.btn-flat:active { - background-color: rgba(0, 0, 0, 0.2); -} - -.btn-flat.disabled { - background-color: transparent !important; - color: #b3b3b3 !important; - cursor: default; -} - -.btn-large { - height: 54px; - line-height: 54px; -} - -.btn-large i { - font-size: 1.6rem; -} - -.btn-block { - display: block; -} - -.dropdown-content { - background-color: #fff; - margin: 0; - display: none; - min-width: 100px; - max-height: 650px; - overflow-y: auto; - opacity: 0; - position: absolute; - z-index: 999; - will-change: width, height; -} - -.dropdown-content li { - clear: both; - color: rgba(0, 0, 0, 0.87); - cursor: pointer; - min-height: 50px; - line-height: 1.5rem; - width: 100%; - text-align: left; - text-transform: none; -} - -.dropdown-content li:hover, .dropdown-content li.active, .dropdown-content li.selected { - background-color: #eee; -} - -.dropdown-content li.active.selected { - background-color: #e1e1e1; -} - -.dropdown-content li.divider { - min-height: 0; - height: 1px; -} - -.dropdown-content li > a, .dropdown-content li > span { - font-size: 16px; - color: #26a69a; - display: block; - line-height: 22px; - padding: 14px 16px; -} - -.dropdown-content li > span > label { - top: 1px; - left: 0; - height: 18px; -} - -.dropdown-content li > a > i { - height: inherit; - line-height: inherit; -} - -.input-field.col .dropdown-content [type="checkbox"] + label { - top: 1px; - left: 0; - height: 18px; -} - -/*! - * Waves v0.6.0 - * http://fian.my.id/Waves - * - * Copyright 2014 Alfiana E. Sibuea and other contributors - * Released under the MIT license - * https://github.com/fians/Waves/blob/master/LICENSE - */ -.waves-effect { - position: relative; - cursor: pointer; - display: inline-block; - overflow: hidden; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-tap-highlight-color: transparent; - vertical-align: middle; - z-index: 1; - transition: .3s ease-out; -} - -.waves-effect .waves-ripple { - position: absolute; - border-radius: 50%; - width: 20px; - height: 20px; - margin-top: -10px; - margin-left: -10px; - opacity: 0; - background: rgba(0, 0, 0, 0.2); - transition: all 0.7s ease-out; - transition-property: opacity, -webkit-transform; - transition-property: transform, opacity; - transition-property: transform, opacity, -webkit-transform; - -webkit-transform: scale(0); - transform: scale(0); - pointer-events: none; -} - -.waves-effect.waves-light .waves-ripple { - background-color: rgba(255, 255, 255, 0.45); -} - -.waves-effect.waves-red .waves-ripple { - background-color: rgba(244, 67, 54, 0.7); -} - -.waves-effect.waves-yellow .waves-ripple { - background-color: rgba(255, 235, 59, 0.7); -} - -.waves-effect.waves-orange .waves-ripple { - background-color: rgba(255, 152, 0, 0.7); -} - -.waves-effect.waves-purple .waves-ripple { - background-color: rgba(156, 39, 176, 0.7); -} - -.waves-effect.waves-green .waves-ripple { - background-color: rgba(76, 175, 80, 0.7); -} - -.waves-effect.waves-teal .waves-ripple { - background-color: rgba(0, 150, 136, 0.7); -} - -.waves-effect input[type="button"], .waves-effect input[type="reset"], .waves-effect input[type="submit"] { - border: 0; - font-style: normal; - font-size: inherit; - text-transform: inherit; - background: none; -} - -.waves-effect img { - position: relative; - z-index: -1; -} - -.waves-notransition { - transition: none !important; -} - -.waves-circle { - -webkit-transform: translateZ(0); - transform: translateZ(0); - -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%); -} - -.waves-input-wrapper { - border-radius: 0.2em; - vertical-align: bottom; -} - -.waves-input-wrapper .waves-button-input { - position: relative; - top: 0; - left: 0; - z-index: 1; -} - -.waves-circle { - text-align: center; - width: 2.5em; - height: 2.5em; - line-height: 2.5em; - border-radius: 50%; - -webkit-mask-image: none; -} - -.waves-block { - display: block; -} - -/* Firefox Bug: link not triggered */ -.waves-effect .waves-ripple { - z-index: -1; -} - -.modal { - display: none; - position: fixed; - left: 0; - right: 0; - background-color: #fafafa; - padding: 0; - max-height: 70%; - width: 55%; - margin: auto; - overflow-y: auto; - border-radius: 2px; - will-change: top, opacity; -} - -@media only screen and (max-width: 992px) { - .modal { - width: 80%; - } -} - -.modal h1, .modal h2, .modal h3, .modal h4 { - margin-top: 0; -} - -.modal .modal-content { - padding: 24px; -} - -.modal .modal-close { - cursor: pointer; -} - -.modal .modal-footer { - border-radius: 0 0 2px 2px; - background-color: #fafafa; - padding: 4px 6px; - height: 56px; - width: 100%; -} - -.modal .modal-footer .btn, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat { - float: right; - margin: 6px 0; -} - -.modal-overlay { - position: fixed; - z-index: 999; - top: -100px; - left: 0; - bottom: 0; - right: 0; - height: 125%; - width: 100%; - background: #000; - display: none; - will-change: opacity; -} - -.modal.modal-fixed-footer { - padding: 0; - height: 70%; -} - -.modal.modal-fixed-footer .modal-content { - position: absolute; - height: calc(100% - 56px); - max-height: 100%; - width: 100%; - overflow-y: auto; -} - -.modal.modal-fixed-footer .modal-footer { - border-top: 1px solid rgba(0, 0, 0, 0.1); - position: absolute; - bottom: 0; -} - -.modal.bottom-sheet { - top: auto; - bottom: -100%; - margin: 0; - width: 100%; - max-height: 45%; - border-radius: 0; - will-change: bottom, opacity; -} - -.collapsible { - border-top: 1px solid #ddd; - border-right: 1px solid #ddd; - border-left: 1px solid #ddd; - margin: 0.5rem 0 1rem 0; -} - -.collapsible-header { - display: block; - cursor: pointer; - min-height: 3rem; - line-height: 3rem; - padding: 0 1rem; - background-color: #fff; - border-bottom: 1px solid #ddd; -} - -.collapsible-header i { - width: 2rem; - font-size: 1.6rem; - line-height: 3rem; - display: block; - float: left; - text-align: center; - margin-right: 1rem; -} - -.collapsible-body { - display: none; - border-bottom: 1px solid #ddd; - box-sizing: border-box; - padding: 2rem; -} - -.side-nav .collapsible, -.side-nav.fixed .collapsible { - border: none; - box-shadow: none; -} - -.side-nav .collapsible li, -.side-nav.fixed .collapsible li { - padding: 0; -} - -.side-nav .collapsible-header, -.side-nav.fixed .collapsible-header { - background-color: transparent; - border: none; - line-height: inherit; - height: inherit; - padding: 0 16px; -} - -.side-nav .collapsible-header:hover, -.side-nav.fixed .collapsible-header:hover { - background-color: rgba(0, 0, 0, 0.05); -} - -.side-nav .collapsible-header i, -.side-nav.fixed .collapsible-header i { - line-height: inherit; -} - -.side-nav .collapsible-body, -.side-nav.fixed .collapsible-body { - border: 0; - background-color: #fff; -} - -.side-nav .collapsible-body li a, -.side-nav.fixed .collapsible-body li a { - padding: 0 23.5px 0 31px; -} - -.collapsible.popout { - border: none; - box-shadow: none; -} - -.collapsible.popout > li { - box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); - margin: 0 24px; - transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94); -} - -.collapsible.popout > li.active { - box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); - margin: 16px 0; -} - -.chip { - display: inline-block; - height: 32px; - font-size: 13px; - font-weight: 500; - color: rgba(0, 0, 0, 0.6); - line-height: 32px; - padding: 0 12px; - border-radius: 16px; - background-color: #e4e4e4; - margin-bottom: 5px; - margin-right: 5px; -} - -.chip img { - float: left; - margin: 0 8px 0 -12px; - height: 32px; - width: 32px; - border-radius: 50%; -} - -.chip .close { - cursor: pointer; - float: right; - font-size: 16px; - line-height: 32px; - padding-left: 8px; -} - -.chips { - border: none; - border-bottom: 1px solid #9e9e9e; - box-shadow: none; - margin: 0 0 20px 0; - min-height: 45px; - outline: none; - transition: all .3s; -} - -.chips.focus { - border-bottom: 1px solid #26a69a; - box-shadow: 0 1px 0 0 #26a69a; -} - -.chips:hover { - cursor: text; -} - -.chips .chip.selected { - background-color: #26a69a; - color: #fff; -} - -.chips .input { - background: none; - border: 0; - color: rgba(0, 0, 0, 0.6); - display: inline-block; - font-size: 1rem; - height: 3rem; - line-height: 32px; - outline: 0; - margin: 0; - padding: 0 !important; - width: 120px !important; -} - -.chips .input:focus { - border: 0 !important; - box-shadow: none !important; -} - -.prefix ~ .chips { - margin-left: 3rem; - width: 92%; - width: calc(100% - 3rem); -} - -.chips:empty ~ label { - font-size: 0.8rem; - -webkit-transform: translateY(-140%); - transform: translateY(-140%); -} - -.materialboxed { - display: block; - cursor: -webkit-zoom-in; - cursor: zoom-in; - position: relative; - transition: opacity .4s; - -webkit-backface-visibility: hidden; -} - -.materialboxed:hover:not(.active) { - opacity: .8; -} - -.materialboxed.active { - cursor: -webkit-zoom-out; - cursor: zoom-out; -} - -#materialbox-overlay { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: #292929; - z-index: 1000; - will-change: opacity; -} - -.materialbox-caption { - position: fixed; - display: none; - color: #fff; - line-height: 50px; - bottom: 0; - left: 0; - width: 100%; - text-align: center; - padding: 0% 15%; - height: 50px; - z-index: 1000; - -webkit-font-smoothing: antialiased; -} - -select:focus { - outline: 1px solid #c9f3ef; -} - -button:focus { - outline: none; - background-color: #2ab7a9; -} - -label { - font-size: 0.8rem; - color: #9e9e9e; -} - -/* Text Inputs + Textarea - ========================================================================== */ -/* Style Placeholders */ -::-webkit-input-placeholder { - color: #d1d1d1; -} - -:-moz-placeholder { - /* Firefox 18- */ - color: #d1d1d1; -} - -::-moz-placeholder { - /* Firefox 19+ */ - color: #d1d1d1; -} - -:-ms-input-placeholder { - color: #d1d1d1; -} - -/* Text inputs */ -input:not([type]), -input[type=text], -input[type=password], -input[type=email], -input[type=url], -input[type=time], -input[type=date], -input[type=datetime], -input[type=datetime-local], -input[type=tel], -input[type=number], -input[type=search], -textarea.materialize-textarea { - background-color: transparent; - border: none; - border-bottom: 1px solid #9e9e9e; - border-radius: 0; - outline: none; - height: 3rem; - width: 100%; - font-size: 1rem; - margin: 0 0 20px 0; - padding: 0; - box-shadow: none; - box-sizing: content-box; - transition: all 0.3s; -} - -input:not([type]):disabled, input:not([type])[readonly="readonly"], -input[type=text]:disabled, -input[type=text][readonly="readonly"], -input[type=password]:disabled, -input[type=password][readonly="readonly"], -input[type=email]:disabled, -input[type=email][readonly="readonly"], -input[type=url]:disabled, -input[type=url][readonly="readonly"], -input[type=time]:disabled, -input[type=time][readonly="readonly"], -input[type=date]:disabled, -input[type=date][readonly="readonly"], -input[type=datetime]:disabled, -input[type=datetime][readonly="readonly"], -input[type=datetime-local]:disabled, -input[type=datetime-local][readonly="readonly"], -input[type=tel]:disabled, -input[type=tel][readonly="readonly"], -input[type=number]:disabled, -input[type=number][readonly="readonly"], -input[type=search]:disabled, -input[type=search][readonly="readonly"], -textarea.materialize-textarea:disabled, -textarea.materialize-textarea[readonly="readonly"] { - color: rgba(0, 0, 0, 0.26); - border-bottom: 1px dotted rgba(0, 0, 0, 0.26); -} - -input:not([type]):disabled + label, -input:not([type])[readonly="readonly"] + label, -input[type=text]:disabled + label, -input[type=text][readonly="readonly"] + label, -input[type=password]:disabled + label, -input[type=password][readonly="readonly"] + label, -input[type=email]:disabled + label, -input[type=email][readonly="readonly"] + label, -input[type=url]:disabled + label, -input[type=url][readonly="readonly"] + label, -input[type=time]:disabled + label, -input[type=time][readonly="readonly"] + label, -input[type=date]:disabled + label, -input[type=date][readonly="readonly"] + label, -input[type=datetime]:disabled + label, -input[type=datetime][readonly="readonly"] + label, -input[type=datetime-local]:disabled + label, -input[type=datetime-local][readonly="readonly"] + label, -input[type=tel]:disabled + label, -input[type=tel][readonly="readonly"] + label, -input[type=number]:disabled + label, -input[type=number][readonly="readonly"] + label, -input[type=search]:disabled + label, -input[type=search][readonly="readonly"] + label, -textarea.materialize-textarea:disabled + label, -textarea.materialize-textarea[readonly="readonly"] + label { - color: rgba(0, 0, 0, 0.26); -} - -input:not([type]):focus:not([readonly]), -input[type=text]:focus:not([readonly]), -input[type=password]:focus:not([readonly]), -input[type=email]:focus:not([readonly]), -input[type=url]:focus:not([readonly]), -input[type=time]:focus:not([readonly]), -input[type=date]:focus:not([readonly]), -input[type=datetime]:focus:not([readonly]), -input[type=datetime-local]:focus:not([readonly]), -input[type=tel]:focus:not([readonly]), -input[type=number]:focus:not([readonly]), -input[type=search]:focus:not([readonly]), -textarea.materialize-textarea:focus:not([readonly]) { - border-bottom: 1px solid #26a69a; - box-shadow: 0 1px 0 0 #26a69a; -} - -input:not([type]):focus:not([readonly]) + label, -input[type=text]:focus:not([readonly]) + label, -input[type=password]:focus:not([readonly]) + label, -input[type=email]:focus:not([readonly]) + label, -input[type=url]:focus:not([readonly]) + label, -input[type=time]:focus:not([readonly]) + label, -input[type=date]:focus:not([readonly]) + label, -input[type=datetime]:focus:not([readonly]) + label, -input[type=datetime-local]:focus:not([readonly]) + label, -input[type=tel]:focus:not([readonly]) + label, -input[type=number]:focus:not([readonly]) + label, -input[type=search]:focus:not([readonly]) + label, -textarea.materialize-textarea:focus:not([readonly]) + label { - color: #26a69a; -} - -input:not([type]).valid, input:not([type]):focus.valid, -input[type=text].valid, -input[type=text]:focus.valid, -input[type=password].valid, -input[type=password]:focus.valid, -input[type=email].valid, -input[type=email]:focus.valid, -input[type=url].valid, -input[type=url]:focus.valid, -input[type=time].valid, -input[type=time]:focus.valid, -input[type=date].valid, -input[type=date]:focus.valid, -input[type=datetime].valid, -input[type=datetime]:focus.valid, -input[type=datetime-local].valid, -input[type=datetime-local]:focus.valid, -input[type=tel].valid, -input[type=tel]:focus.valid, -input[type=number].valid, -input[type=number]:focus.valid, -input[type=search].valid, -input[type=search]:focus.valid, -textarea.materialize-textarea.valid, -textarea.materialize-textarea:focus.valid { - border-bottom: 1px solid #4CAF50; - box-shadow: 0 1px 0 0 #4CAF50; -} - -input:not([type]).valid + label:after, -input:not([type]):focus.valid + label:after, -input[type=text].valid + label:after, -input[type=text]:focus.valid + label:after, -input[type=password].valid + label:after, -input[type=password]:focus.valid + label:after, -input[type=email].valid + label:after, -input[type=email]:focus.valid + label:after, -input[type=url].valid + label:after, -input[type=url]:focus.valid + label:after, -input[type=time].valid + label:after, -input[type=time]:focus.valid + label:after, -input[type=date].valid + label:after, -input[type=date]:focus.valid + label:after, -input[type=datetime].valid + label:after, -input[type=datetime]:focus.valid + label:after, -input[type=datetime-local].valid + label:after, -input[type=datetime-local]:focus.valid + label:after, -input[type=tel].valid + label:after, -input[type=tel]:focus.valid + label:after, -input[type=number].valid + label:after, -input[type=number]:focus.valid + label:after, -input[type=search].valid + label:after, -input[type=search]:focus.valid + label:after, -textarea.materialize-textarea.valid + label:after, -textarea.materialize-textarea:focus.valid + label:after { - content: attr(data-success); - color: #4CAF50; - opacity: 1; -} - -input:not([type]).invalid, input:not([type]):focus.invalid, -input[type=text].invalid, -input[type=text]:focus.invalid, -input[type=password].invalid, -input[type=password]:focus.invalid, -input[type=email].invalid, -input[type=email]:focus.invalid, -input[type=url].invalid, -input[type=url]:focus.invalid, -input[type=time].invalid, -input[type=time]:focus.invalid, -input[type=date].invalid, -input[type=date]:focus.invalid, -input[type=datetime].invalid, -input[type=datetime]:focus.invalid, -input[type=datetime-local].invalid, -input[type=datetime-local]:focus.invalid, -input[type=tel].invalid, -input[type=tel]:focus.invalid, -input[type=number].invalid, -input[type=number]:focus.invalid, -input[type=search].invalid, -input[type=search]:focus.invalid, -textarea.materialize-textarea.invalid, -textarea.materialize-textarea:focus.invalid { - border-bottom: 1px solid #F44336; - box-shadow: 0 1px 0 0 #F44336; -} - -input:not([type]).invalid + label:after, -input:not([type]):focus.invalid + label:after, -input[type=text].invalid + label:after, -input[type=text]:focus.invalid + label:after, -input[type=password].invalid + label:after, -input[type=password]:focus.invalid + label:after, -input[type=email].invalid + label:after, -input[type=email]:focus.invalid + label:after, -input[type=url].invalid + label:after, -input[type=url]:focus.invalid + label:after, -input[type=time].invalid + label:after, -input[type=time]:focus.invalid + label:after, -input[type=date].invalid + label:after, -input[type=date]:focus.invalid + label:after, -input[type=datetime].invalid + label:after, -input[type=datetime]:focus.invalid + label:after, -input[type=datetime-local].invalid + label:after, -input[type=datetime-local]:focus.invalid + label:after, -input[type=tel].invalid + label:after, -input[type=tel]:focus.invalid + label:after, -input[type=number].invalid + label:after, -input[type=number]:focus.invalid + label:after, -input[type=search].invalid + label:after, -input[type=search]:focus.invalid + label:after, -textarea.materialize-textarea.invalid + label:after, -textarea.materialize-textarea:focus.invalid + label:after { - content: attr(data-error); - color: #F44336; - opacity: 1; -} - -input:not([type]).validate + label, -input[type=text].validate + label, -input[type=password].validate + label, -input[type=email].validate + label, -input[type=url].validate + label, -input[type=time].validate + label, -input[type=date].validate + label, -input[type=datetime].validate + label, -input[type=datetime-local].validate + label, -input[type=tel].validate + label, -input[type=number].validate + label, -input[type=search].validate + label, -textarea.materialize-textarea.validate + label { - width: 100%; - pointer-events: none; -} - -input:not([type]) + label:after, -input[type=text] + label:after, -input[type=password] + label:after, -input[type=email] + label:after, -input[type=url] + label:after, -input[type=time] + label:after, -input[type=date] + label:after, -input[type=datetime] + label:after, -input[type=datetime-local] + label:after, -input[type=tel] + label:after, -input[type=number] + label:after, -input[type=search] + label:after, -textarea.materialize-textarea + label:after { - display: block; - content: ""; - position: absolute; - top: 60px; - opacity: 0; - transition: .2s opacity ease-out, .2s color ease-out; -} - -.input-field { - position: relative; - margin-top: 1rem; -} - -.input-field.inline { - display: inline-block; - vertical-align: middle; - margin-left: 5px; -} - -.input-field.inline input, -.input-field.inline .select-dropdown { - margin-bottom: 1rem; -} - -.input-field.col label { - left: 0.75rem; -} - -.input-field.col .prefix ~ label, -.input-field.col .prefix ~ .validate ~ label { - width: calc(100% - 3rem - 1.5rem); -} - -.input-field label { - color: #9e9e9e; - position: absolute; - top: 0.8rem; - left: 0; - font-size: 1rem; - cursor: text; - transition: .2s ease-out; -} - -.input-field label:not(.label-icon).active { - font-size: 0.8rem; - -webkit-transform: translateY(-140%); - transform: translateY(-140%); -} - -.input-field .prefix { - position: absolute; - width: 3rem; - font-size: 2rem; - transition: color .2s; -} - -.input-field .prefix.active { - color: #26a69a; -} - -.input-field .prefix ~ input, -.input-field .prefix ~ textarea, -.input-field .prefix ~ label, -.input-field .prefix ~ .validate ~ label, -.input-field .prefix ~ .autocomplete-content { - margin-left: 3rem; - width: 92%; - width: calc(100% - 3rem); -} - -.input-field .prefix ~ label { - margin-left: 3rem; -} - -@media only screen and (max-width: 992px) { - .input-field .prefix ~ input { - width: 86%; - width: calc(100% - 3rem); - } -} - -@media only screen and (max-width: 600px) { - .input-field .prefix ~ input { - width: 80%; - width: calc(100% - 3rem); - } -} - -/* Search Field */ -.input-field input[type=search] { - display: block; - line-height: inherit; - padding-left: 4rem; - width: calc(100% - 4rem); -} - -.input-field input[type=search]:focus { - background-color: #fff; - border: 0; - box-shadow: none; - color: #444; -} - -.input-field input[type=search]:focus + label i, -.input-field input[type=search]:focus ~ .mdi-navigation-close, -.input-field input[type=search]:focus ~ .material-icons { - color: #444; -} - -.input-field input[type=search] + label { - left: 1rem; -} - -.input-field input[type=search] ~ .mdi-navigation-close, -.input-field input[type=search] ~ .material-icons { - position: absolute; - top: 0; - right: 1rem; - color: transparent; - cursor: pointer; - font-size: 2rem; - transition: .3s color; -} - -/* Textarea */ -textarea { - width: 100%; - height: 3rem; - background-color: transparent; -} - -textarea.materialize-textarea { - overflow-y: hidden; - /* prevents scroll bar flash */ - padding: .8rem 0 1.6rem 0; - /* prevents text jump on Enter keypress */ - resize: none; - min-height: 3rem; -} - -.hiddendiv { - display: none; - white-space: pre-wrap; - word-wrap: break-word; - overflow-wrap: break-word; - /* future version of deprecated 'word-wrap' */ - padding-top: 1.2rem; - /* prevents text jump on Enter keypress */ -} - -/* Autocomplete */ -.autocomplete-content { - margin-top: -15px; - display: block; - opacity: 1; - position: static; -} - -.autocomplete-content li .highlight { - color: #444; -} - -.autocomplete-content li img { - height: 40px; - width: 40px; - margin: 5px 15px; -} - -/* Radio Buttons - ========================================================================== */ -[type="radio"]:not(:checked), -[type="radio"]:checked { - position: absolute; - left: -9999px; - opacity: 0; -} - -[type="radio"]:not(:checked) + label, -[type="radio"]:checked + label { - position: relative; - padding-left: 35px; - cursor: pointer; - display: inline-block; - height: 25px; - line-height: 25px; - font-size: 1rem; - transition: .28s ease; - /* webkit (konqueror) browsers */ - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -[type="radio"] + label:before, -[type="radio"] + label:after { - content: ''; - position: absolute; - left: 0; - top: 0; - margin: 4px; - width: 16px; - height: 16px; - z-index: 0; - transition: .28s ease; -} - -/* Unchecked styles */ -[type="radio"]:not(:checked) + label:before, -[type="radio"]:not(:checked) + label:after, -[type="radio"]:checked + label:before, -[type="radio"]:checked + label:after, -[type="radio"].with-gap:checked + label:before, -[type="radio"].with-gap:checked + label:after { - border-radius: 50%; -} - -[type="radio"]:not(:checked) + label:before, -[type="radio"]:not(:checked) + label:after { - border: 2px solid #5a5a5a; -} - -[type="radio"]:not(:checked) + label:after { - -webkit-transform: scale(0); - transform: scale(0); -} - -/* Checked styles */ -[type="radio"]:checked + label:before { - border: 2px solid transparent; -} - -[type="radio"]:checked + label:after, -[type="radio"].with-gap:checked + label:before, -[type="radio"].with-gap:checked + label:after { - border: 2px solid #26a69a; -} - -[type="radio"]:checked + label:after, -[type="radio"].with-gap:checked + label:after { - background-color: #26a69a; -} - -[type="radio"]:checked + label:after { - -webkit-transform: scale(1.02); - transform: scale(1.02); -} - -/* Radio With gap */ -[type="radio"].with-gap:checked + label:after { - -webkit-transform: scale(0.5); - transform: scale(0.5); -} - -/* Focused styles */ -[type="radio"].tabbed:focus + label:before { - box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1); -} - -/* Disabled Radio With gap */ -[type="radio"].with-gap:disabled:checked + label:before { - border: 2px solid rgba(0, 0, 0, 0.26); -} - -[type="radio"].with-gap:disabled:checked + label:after { - border: none; - background-color: rgba(0, 0, 0, 0.26); -} - -/* Disabled style */ -[type="radio"]:disabled:not(:checked) + label:before, -[type="radio"]:disabled:checked + label:before { - background-color: transparent; - border-color: rgba(0, 0, 0, 0.26); -} - -[type="radio"]:disabled + label { - color: rgba(0, 0, 0, 0.26); -} - -[type="radio"]:disabled:not(:checked) + label:before { - border-color: rgba(0, 0, 0, 0.26); -} - -[type="radio"]:disabled:checked + label:after { - background-color: rgba(0, 0, 0, 0.26); - border-color: #BDBDBD; -} - -/* Checkboxes - ========================================================================== */ -/* CUSTOM CSS CHECKBOXES */ -form p { - margin-bottom: 10px; - text-align: left; -} - -form p:last-child { - margin-bottom: 0; -} - -/* Remove default checkbox */ -[type="checkbox"]:not(:checked), -[type="checkbox"]:checked { - position: absolute; - left: -9999px; - opacity: 0; -} - -[type="checkbox"] { - /* checkbox aspect */ -} - -[type="checkbox"] + label { - position: relative; - padding-left: 35px; - cursor: pointer; - display: inline-block; - height: 25px; - line-height: 25px; - font-size: 1rem; - -webkit-user-select: none; - /* webkit (safari, chrome) browsers */ - -moz-user-select: none; - /* mozilla browsers */ - -khtml-user-select: none; - /* webkit (konqueror) browsers */ - -ms-user-select: none; - /* IE10+ */ -} - -[type="checkbox"] + label:before, -[type="checkbox"]:not(.filled-in) + label:after { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 18px; - height: 18px; - z-index: 0; - border: 2px solid #5a5a5a; - border-radius: 1px; - margin-top: 2px; - transition: .2s; -} - -[type="checkbox"]:not(.filled-in) + label:after { - border: 0; - -webkit-transform: scale(0); - transform: scale(0); -} - -[type="checkbox"]:not(:checked):disabled + label:before { - border: none; - background-color: rgba(0, 0, 0, 0.26); -} - -[type="checkbox"].tabbed:focus + label:after { - -webkit-transform: scale(1); - transform: scale(1); - border: 0; - border-radius: 50%; - box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1); - background-color: rgba(0, 0, 0, 0.1); -} - -[type="checkbox"]:checked + label:before { - top: -4px; - left: -5px; - width: 12px; - height: 22px; - border-top: 2px solid transparent; - border-left: 2px solid transparent; - border-right: 2px solid #26a69a; - border-bottom: 2px solid #26a69a; - -webkit-transform: rotate(40deg); - transform: rotate(40deg); - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-transform-origin: 100% 100%; - transform-origin: 100% 100%; -} - -[type="checkbox"]:checked:disabled + label:before { - border-right: 2px solid rgba(0, 0, 0, 0.26); - border-bottom: 2px solid rgba(0, 0, 0, 0.26); -} - -/* Indeterminate checkbox */ -[type="checkbox"]:indeterminate + label:before { - top: -11px; - left: -12px; - width: 10px; - height: 22px; - border-top: none; - border-left: none; - border-right: 2px solid #26a69a; - border-bottom: none; - -webkit-transform: rotate(90deg); - transform: rotate(90deg); - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-transform-origin: 100% 100%; - transform-origin: 100% 100%; -} - -[type="checkbox"]:indeterminate:disabled + label:before { - border-right: 2px solid rgba(0, 0, 0, 0.26); - background-color: transparent; -} - -[type="checkbox"].filled-in + label:after { - border-radius: 2px; -} - -[type="checkbox"].filled-in + label:before, -[type="checkbox"].filled-in + label:after { - content: ''; - left: 0; - position: absolute; - /* .1s delay is for check animation */ - transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s; - z-index: 1; -} - -[type="checkbox"].filled-in:not(:checked) + label:before { - width: 0; - height: 0; - border: 3px solid transparent; - left: 6px; - top: 10px; - -webkit-transform: rotateZ(37deg); - transform: rotateZ(37deg); - -webkit-transform-origin: 20% 40%; - transform-origin: 100% 100%; -} - -[type="checkbox"].filled-in:not(:checked) + label:after { - height: 20px; - width: 20px; - background-color: transparent; - border: 2px solid #5a5a5a; - top: 0px; - z-index: 0; -} - -[type="checkbox"].filled-in:checked + label:before { - top: 0; - left: 1px; - width: 8px; - height: 13px; - border-top: 2px solid transparent; - border-left: 2px solid transparent; - border-right: 2px solid #fff; - border-bottom: 2px solid #fff; - -webkit-transform: rotateZ(37deg); - transform: rotateZ(37deg); - -webkit-transform-origin: 100% 100%; - transform-origin: 100% 100%; -} - -[type="checkbox"].filled-in:checked + label:after { - top: 0; - width: 20px; - height: 20px; - border: 2px solid #26a69a; - background-color: #26a69a; - z-index: 0; -} - -[type="checkbox"].filled-in.tabbed:focus + label:after { - border-radius: 2px; - border-color: #5a5a5a; - background-color: rgba(0, 0, 0, 0.1); -} - -[type="checkbox"].filled-in.tabbed:checked:focus + label:after { - border-radius: 2px; - background-color: #26a69a; - border-color: #26a69a; -} - -[type="checkbox"].filled-in:disabled:not(:checked) + label:before { - background-color: transparent; - border: 2px solid transparent; -} - -[type="checkbox"].filled-in:disabled:not(:checked) + label:after { - border-color: transparent; - background-color: #BDBDBD; -} - -[type="checkbox"].filled-in:disabled:checked + label:before { - background-color: transparent; -} - -[type="checkbox"].filled-in:disabled:checked + label:after { - background-color: #BDBDBD; - border-color: #BDBDBD; -} - -/* Switch - ========================================================================== */ -.switch, -.switch * { - -webkit-user-select: none; - -moz-user-select: none; - -khtml-user-select: none; - -ms-user-select: none; -} - -.switch label { - cursor: pointer; -} - -.switch label input[type=checkbox] { - opacity: 0; - width: 0; - height: 0; -} - -.switch label input[type=checkbox]:checked + .lever { - background-color: #84c7c1; -} - -.switch label input[type=checkbox]:checked + .lever:after { - background-color: #26a69a; - left: 24px; -} - -.switch label .lever { - content: ""; - display: inline-block; - position: relative; - width: 40px; - height: 15px; - background-color: #818181; - border-radius: 15px; - margin-right: 10px; - transition: background 0.3s ease; - vertical-align: middle; - margin: 0 16px; -} - -.switch label .lever:after { - content: ""; - position: absolute; - display: inline-block; - width: 21px; - height: 21px; - background-color: #F1F1F1; - border-radius: 21px; - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4); - left: -5px; - top: -3px; - transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease; -} - -input[type=checkbox]:checked:not(:disabled) ~ .lever:active::after, -input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after { - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(38, 166, 154, 0.1); -} - -input[type=checkbox]:not(:disabled) ~ .lever:active:after, -input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after { - box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.08); -} - -.switch input[type=checkbox][disabled] + .lever { - cursor: default; -} - -.switch label input[type=checkbox][disabled] + .lever:after, -.switch label input[type=checkbox][disabled]:checked + .lever:after { - background-color: #BDBDBD; -} - -/* Select Field - ========================================================================== */ -select { - display: none; -} - -select.browser-default { - display: block; -} - -select { - background-color: rgba(255, 255, 255, 0.9); - width: 100%; - padding: 5px; - border: 1px solid #f2f2f2; - border-radius: 2px; - height: 3rem; -} - -.select-label { - position: absolute; -} - -.select-wrapper { - position: relative; -} - -.select-wrapper input.select-dropdown { - position: relative; - cursor: pointer; - background-color: transparent; - border: none; - border-bottom: 1px solid #9e9e9e; - outline: none; - height: 3rem; - line-height: 3rem; - width: 100%; - font-size: 1rem; - margin: 0 0 20px 0; - padding: 0; - display: block; -} - -.select-wrapper span.caret { - color: initial; - position: absolute; - right: 0; - top: 0; - bottom: 0; - height: 10px; - margin: auto 0; - font-size: 10px; - line-height: 10px; -} - -.select-wrapper span.caret.disabled { - color: rgba(0, 0, 0, 0.26); -} - -.select-wrapper + label { - position: absolute; - top: -14px; - font-size: 0.8rem; -} - -select:disabled { - color: rgba(0, 0, 0, 0.3); -} - -.select-wrapper input.select-dropdown:disabled { - color: rgba(0, 0, 0, 0.3); - cursor: default; - -webkit-user-select: none; - /* webkit (safari, chrome) browsers */ - -moz-user-select: none; - /* mozilla browsers */ - -ms-user-select: none; - /* IE10+ */ - border-bottom: 1px solid rgba(0, 0, 0, 0.3); -} - -.select-wrapper i { - color: rgba(0, 0, 0, 0.3); -} - -.select-dropdown li.disabled, -.select-dropdown li.disabled > span, -.select-dropdown li.optgroup { - color: rgba(0, 0, 0, 0.3); - background-color: transparent; -} - -.prefix ~ .select-wrapper { - margin-left: 3rem; - width: 92%; - width: calc(100% - 3rem); -} - -.prefix ~ label { - margin-left: 3rem; -} - -.select-dropdown li img { - height: 40px; - width: 40px; - margin: 5px 15px; - float: right; -} - -.select-dropdown li.optgroup { - border-top: 1px solid #eee; -} - -.select-dropdown li.optgroup.selected > span { - color: rgba(0, 0, 0, 0.7); -} - -.select-dropdown li.optgroup > span { - color: rgba(0, 0, 0, 0.4); -} - -.select-dropdown li.optgroup ~ li.optgroup-option { - padding-left: 1rem; -} - -/* File Input - ========================================================================== */ -.file-field { - position: relative; -} - -.file-field .file-path-wrapper { - overflow: hidden; - padding-left: 10px; -} - -.file-field input.file-path { - width: 100%; -} - -.file-field .btn, .file-field .btn-large { - float: left; - height: 3rem; - line-height: 3rem; -} - -.file-field span { - cursor: pointer; -} - -.file-field input[type=file] { - position: absolute; - top: 0; - right: 0; - left: 0; - bottom: 0; - width: 100%; - margin: 0; - padding: 0; - font-size: 20px; - cursor: pointer; - opacity: 0; - filter: alpha(opacity=0); -} - -/* Range - ========================================================================== */ -.range-field { - position: relative; -} - -input[type=range], -input[type=range] + .thumb { - cursor: pointer; -} - -input[type=range] { - position: relative; - background-color: transparent; - border: none; - outline: none; - width: 100%; - margin: 15px 0; - padding: 0; -} - -input[type=range]:focus { - outline: none; -} - -input[type=range] + .thumb { - position: absolute; - border: none; - height: 0; - width: 0; - border-radius: 50%; - background-color: #26a69a; - top: 10px; - margin-left: -6px; - -webkit-transform-origin: 50% 50%; - transform-origin: 50% 50%; - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); -} - -input[type=range] + .thumb .value { - display: block; - width: 30px; - text-align: center; - color: #26a69a; - font-size: 0; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); -} - -input[type=range] + .thumb.active { - border-radius: 50% 50% 50% 0; -} - -input[type=range] + .thumb.active .value { - color: #fff; - margin-left: -1px; - margin-top: 8px; - font-size: 10px; -} - -input[type=range] { - -webkit-appearance: none; -} - -input[type=range]::-webkit-slider-runnable-track { - height: 3px; - background: #c2c0c2; - border: none; -} - -input[type=range]::-webkit-slider-thumb { - -webkit-appearance: none; - border: none; - height: 14px; - width: 14px; - border-radius: 50%; - background-color: #26a69a; - -webkit-transform-origin: 50% 50%; - transform-origin: 50% 50%; - margin: -5px 0 0 0; - transition: .3s; -} - -input[type=range]:focus::-webkit-slider-runnable-track { - background: #ccc; -} - -input[type=range] { - /* fix for FF unable to apply focus style bug */ - border: 1px solid white; - /*required for proper track sizing in FF*/ -} - -input[type=range]::-moz-range-track { - height: 3px; - background: #ddd; - border: none; -} - -input[type=range]::-moz-range-thumb { - border: none; - height: 14px; - width: 14px; - border-radius: 50%; - background: #26a69a; - margin-top: -5px; -} - -input[type=range]:-moz-focusring { - outline: 1px solid #fff; - outline-offset: -1px; -} - -input[type=range]:focus::-moz-range-track { - background: #ccc; -} - -input[type=range]::-ms-track { - height: 3px; - background: transparent; - border-color: transparent; - border-width: 6px 0; - /*remove default tick marks*/ - color: transparent; -} - -input[type=range]::-ms-fill-lower { - background: #777; -} - -input[type=range]::-ms-fill-upper { - background: #ddd; -} - -input[type=range]::-ms-thumb { - border: none; - height: 14px; - width: 14px; - border-radius: 50%; - background: #26a69a; -} - -input[type=range]:focus::-ms-fill-lower { - background: #888; -} - -input[type=range]:focus::-ms-fill-upper { - background: #ccc; -} - -/*************** - Nav List -***************/ -.table-of-contents.fixed { - position: fixed; -} - -.table-of-contents li { - padding: 2px 0; -} - -.table-of-contents a { - display: inline-block; - font-weight: 300; - color: #757575; - padding-left: 20px; - height: 1.5rem; - line-height: 1.5rem; - letter-spacing: .4; - display: inline-block; -} - -.table-of-contents a:hover { - color: #a8a8a8; - padding-left: 19px; - border-left: 1px solid #ee6e73; -} - -.table-of-contents a.active { - font-weight: 500; - padding-left: 18px; - border-left: 2px solid #ee6e73; -} - -.side-nav { - position: fixed; - width: 300px; - left: 0; - top: 0; - margin: 0; - -webkit-transform: translateX(-100%); - transform: translateX(-100%); - height: 100%; - height: calc(100% + 60px); - height: -moz-calc(100%); - padding-bottom: 60px; - background-color: #fff; - z-index: 999; - overflow-y: auto; - will-change: transform; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-transform: translateX(-105%); - transform: translateX(-105%); -} - -.side-nav.right-aligned { - right: 0; - -webkit-transform: translateX(105%); - transform: translateX(105%); - left: auto; - -webkit-transform: translateX(100%); - transform: translateX(100%); -} - -.side-nav .collapsible { - margin: 0; -} - -.side-nav li { - float: none; - line-height: 48px; -} - -.side-nav li.active { - background-color: rgba(0, 0, 0, 0.05); -} - -.side-nav a { - color: rgba(0, 0, 0, 0.87); - display: block; - font-size: 14px; - font-weight: 500; - height: 48px; - line-height: 48px; - padding: 0 32px; -} - -.side-nav a:hover { - background-color: rgba(0, 0, 0, 0.05); -} - -.side-nav a.btn, .side-nav a.btn-large, .side-nav a.btn-large, .side-nav a.btn-flat, .side-nav a.btn-floating { - margin: 10px 15px; -} - -.side-nav a.btn, .side-nav a.btn-large, .side-nav a.btn-large, .side-nav a.btn-floating { - color: #fff; -} - -.side-nav a.btn-flat { - color: #343434; -} - -.side-nav a.btn:hover, .side-nav a.btn-large:hover, .side-nav a.btn-large:hover { - background-color: #2bbbad; -} - -.side-nav a.btn-floating:hover { - background-color: #26a69a; -} - -.side-nav li > a > i, -.side-nav li > a > [class^="mdi-"], .side-nav li > a > [class*="mdi-"], -.side-nav li > a > i.material-icons { - float: left; - height: 48px; - line-height: 48px; - margin: 0 32px 0 0; - width: 24px; - color: rgba(0, 0, 0, 0.54); -} - -.side-nav .divider { - margin: 8px 0 0 0; -} - -.side-nav .subheader { - cursor: initial; - pointer-events: none; - color: rgba(0, 0, 0, 0.54); - font-size: 14px; - font-weight: 500; - line-height: 48px; -} - -.side-nav .subheader:hover { - background-color: transparent; -} - -.side-nav .userView { - position: relative; - padding: 32px 32px 0; - margin-bottom: 8px; -} - -.side-nav .userView > a { - height: auto; - padding: 0; -} - -.side-nav .userView > a:hover { - background-color: transparent; -} - -.side-nav .userView .background { - overflow: hidden; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: -1; -} - -.side-nav .userView .circle, .side-nav .userView .name, .side-nav .userView .email { - display: block; -} - -.side-nav .userView .circle { - height: 64px; - width: 64px; -} - -.side-nav .userView .name, -.side-nav .userView .email { - font-size: 14px; - line-height: 24px; -} - -.side-nav .userView .name { - margin-top: 16px; - font-weight: 500; -} - -.side-nav .userView .email { - padding-bottom: 16px; - font-weight: 400; -} - -.drag-target { - height: 100%; - width: 10px; - position: fixed; - top: 0; - z-index: 998; -} - -.side-nav.fixed { - left: 0; - -webkit-transform: translateX(0); - transform: translateX(0); - position: fixed; -} - -.side-nav.fixed.right-aligned { - right: 0; - left: auto; -} - -@media only screen and (max-width: 992px) { - .side-nav.fixed { - -webkit-transform: translateX(-105%); - transform: translateX(-105%); - } - .side-nav.fixed.right-aligned { - -webkit-transform: translateX(105%); - transform: translateX(105%); - } - .side-nav a { - padding: 0 16px; - } - .side-nav .userView { - padding: 16px 16px 0; - } -} - -.side-nav .collapsible-body > ul:not(.collapsible) > li.active, -.side-nav.fixed .collapsible-body > ul:not(.collapsible) > li.active { - background-color: #ee6e73; -} - -.side-nav .collapsible-body > ul:not(.collapsible) > li.active a, -.side-nav.fixed .collapsible-body > ul:not(.collapsible) > li.active a { - color: #fff; -} - -#sidenav-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - height: 120vh; - background-color: rgba(0, 0, 0, 0.5); - z-index: 997; - will-change: opacity; -} - -/* - @license - Copyright (c) 2014 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 - */ -/**************************/ -/* STYLES FOR THE SPINNER */ -/**************************/ -/* - * Constants: - * STROKEWIDTH = 3px - * ARCSIZE = 270 degrees (amount of circle the arc takes up) - * ARCTIME = 1333ms (time it takes to expand and contract arc) - * ARCSTARTROT = 216 degrees (how much the start location of the arc - * should rotate each time, 216 gives us a - * 5 pointed star shape (it's 360/5 * 3). - * For a 7 pointed star, we might do - * 360/7 * 3 = 154.286) - * CONTAINERWIDTH = 28px - * SHRINK_TIME = 400ms - */ -.preloader-wrapper { - display: inline-block; - position: relative; - width: 48px; - height: 48px; -} - -.preloader-wrapper.small { - width: 36px; - height: 36px; -} - -.preloader-wrapper.big { - width: 64px; - height: 64px; -} - -.preloader-wrapper.active { - /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */ - -webkit-animation: container-rotate 1568ms linear infinite; - animation: container-rotate 1568ms linear infinite; -} - -@-webkit-keyframes container-rotate { - to { - -webkit-transform: rotate(360deg); - } -} - -@keyframes container-rotate { - to { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} - -.spinner-layer { - position: absolute; - width: 100%; - height: 100%; - opacity: 0; - border-color: #26a69a; -} - -.spinner-blue, -.spinner-blue-only { - border-color: #4285f4; -} - -.spinner-red, -.spinner-red-only { - border-color: #db4437; -} - -.spinner-yellow, -.spinner-yellow-only { - border-color: #f4b400; -} - -.spinner-green, -.spinner-green-only { - border-color: #0f9d58; -} - -/** - * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee): - * - * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't - * guarantee that the animation will start _exactly_ after that value. So we avoid using - * animation-delay and instead set custom keyframes for each color (as redundant as it - * seems). - * - * We write out each animation in full (instead of separating animation-name, - * animation-duration, etc.) because under the polyfill, Safari does not recognize those - * specific properties properly, treats them as -webkit-animation, and overrides the - * other animation rules. See https://github.com/Polymer/platform/issues/53. - */ -.active .spinner-layer.spinner-blue { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -.active .spinner-layer.spinner-red { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -.active .spinner-layer.spinner-yellow { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -.active .spinner-layer.spinner-green { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -.active .spinner-layer, -.active .spinner-layer.spinner-blue-only, -.active .spinner-layer.spinner-red-only, -.active .spinner-layer.spinner-yellow-only, -.active .spinner-layer.spinner-green-only { - /* durations: 4 * ARCTIME */ - opacity: 1; - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -@-webkit-keyframes fill-unfill-rotate { - 12.5% { - -webkit-transform: rotate(135deg); - } - /* 0.5 * ARCSIZE */ - 25% { - -webkit-transform: rotate(270deg); - } - /* 1 * ARCSIZE */ - 37.5% { - -webkit-transform: rotate(405deg); - } - /* 1.5 * ARCSIZE */ - 50% { - -webkit-transform: rotate(540deg); - } - /* 2 * ARCSIZE */ - 62.5% { - -webkit-transform: rotate(675deg); - } - /* 2.5 * ARCSIZE */ - 75% { - -webkit-transform: rotate(810deg); - } - /* 3 * ARCSIZE */ - 87.5% { - -webkit-transform: rotate(945deg); - } - /* 3.5 * ARCSIZE */ - to { - -webkit-transform: rotate(1080deg); - } - /* 4 * ARCSIZE */ -} - -@keyframes fill-unfill-rotate { - 12.5% { - -webkit-transform: rotate(135deg); - transform: rotate(135deg); - } - /* 0.5 * ARCSIZE */ - 25% { - -webkit-transform: rotate(270deg); - transform: rotate(270deg); - } - /* 1 * ARCSIZE */ - 37.5% { - -webkit-transform: rotate(405deg); - transform: rotate(405deg); - } - /* 1.5 * ARCSIZE */ - 50% { - -webkit-transform: rotate(540deg); - transform: rotate(540deg); - } - /* 2 * ARCSIZE */ - 62.5% { - -webkit-transform: rotate(675deg); - transform: rotate(675deg); - } - /* 2.5 * ARCSIZE */ - 75% { - -webkit-transform: rotate(810deg); - transform: rotate(810deg); - } - /* 3 * ARCSIZE */ - 87.5% { - -webkit-transform: rotate(945deg); - transform: rotate(945deg); - } - /* 3.5 * ARCSIZE */ - to { - -webkit-transform: rotate(1080deg); - transform: rotate(1080deg); - } - /* 4 * ARCSIZE */ -} - -@-webkit-keyframes blue-fade-in-out { - from { - opacity: 1; - } - 25% { - opacity: 1; - } - 26% { - opacity: 0; - } - 89% { - opacity: 0; - } - 90% { - opacity: 1; - } - 100% { - opacity: 1; - } -} - -@keyframes blue-fade-in-out { - from { - opacity: 1; - } - 25% { - opacity: 1; - } - 26% { - opacity: 0; - } - 89% { - opacity: 0; - } - 90% { - opacity: 1; - } - 100% { - opacity: 1; - } -} - -@-webkit-keyframes red-fade-in-out { - from { - opacity: 0; - } - 15% { - opacity: 0; - } - 25% { - opacity: 1; - } - 50% { - opacity: 1; - } - 51% { - opacity: 0; - } -} - -@keyframes red-fade-in-out { - from { - opacity: 0; - } - 15% { - opacity: 0; - } - 25% { - opacity: 1; - } - 50% { - opacity: 1; - } - 51% { - opacity: 0; - } -} - -@-webkit-keyframes yellow-fade-in-out { - from { - opacity: 0; - } - 40% { - opacity: 0; - } - 50% { - opacity: 1; - } - 75% { - opacity: 1; - } - 76% { - opacity: 0; - } -} - -@keyframes yellow-fade-in-out { - from { - opacity: 0; - } - 40% { - opacity: 0; - } - 50% { - opacity: 1; - } - 75% { - opacity: 1; - } - 76% { - opacity: 0; - } -} - -@-webkit-keyframes green-fade-in-out { - from { - opacity: 0; - } - 65% { - opacity: 0; - } - 75% { - opacity: 1; - } - 90% { - opacity: 1; - } - 100% { - opacity: 0; - } -} - -@keyframes green-fade-in-out { - from { - opacity: 0; - } - 65% { - opacity: 0; - } - 75% { - opacity: 1; - } - 90% { - opacity: 1; - } - 100% { - opacity: 0; - } -} - -/** - * Patch the gap that appear between the two adjacent div.circle-clipper while the - * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11). - */ -.gap-patch { - position: absolute; - top: 0; - left: 45%; - width: 10%; - height: 100%; - overflow: hidden; - border-color: inherit; -} - -.gap-patch .circle { - width: 1000%; - left: -450%; -} - -.circle-clipper { - display: inline-block; - position: relative; - width: 50%; - height: 100%; - overflow: hidden; - border-color: inherit; -} - -.circle-clipper .circle { - width: 200%; - height: 100%; - border-width: 3px; - /* STROKEWIDTH */ - border-style: solid; - border-color: inherit; - border-bottom-color: transparent !important; - border-radius: 50%; - -webkit-animation: none; - animation: none; - position: absolute; - top: 0; - right: 0; - bottom: 0; -} - -.circle-clipper.left .circle { - left: 0; - border-right-color: transparent !important; - -webkit-transform: rotate(129deg); - transform: rotate(129deg); -} - -.circle-clipper.right .circle { - left: -100%; - border-left-color: transparent !important; - -webkit-transform: rotate(-129deg); - transform: rotate(-129deg); -} - -.active .circle-clipper.left .circle { - /* duration: ARCTIME */ - -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -.active .circle-clipper.right .circle { - /* duration: ARCTIME */ - -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; -} - -@-webkit-keyframes left-spin { - from { - -webkit-transform: rotate(130deg); - } - 50% { - -webkit-transform: rotate(-5deg); - } - to { - -webkit-transform: rotate(130deg); - } -} - -@keyframes left-spin { - from { - -webkit-transform: rotate(130deg); - transform: rotate(130deg); - } - 50% { - -webkit-transform: rotate(-5deg); - transform: rotate(-5deg); - } - to { - -webkit-transform: rotate(130deg); - transform: rotate(130deg); - } -} - -@-webkit-keyframes right-spin { - from { - -webkit-transform: rotate(-130deg); - } - 50% { - -webkit-transform: rotate(5deg); - } - to { - -webkit-transform: rotate(-130deg); - } -} - -@keyframes right-spin { - from { - -webkit-transform: rotate(-130deg); - transform: rotate(-130deg); - } - 50% { - -webkit-transform: rotate(5deg); - transform: rotate(5deg); - } - to { - -webkit-transform: rotate(-130deg); - transform: rotate(-130deg); - } -} - -#spinnerContainer.cooldown { - /* duration: SHRINK_TIME */ - -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1); - animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1); -} - -@-webkit-keyframes fade-out { - from { - opacity: 1; - } - to { - opacity: 0; - } -} - -@keyframes fade-out { - from { - opacity: 1; - } - to { - opacity: 0; - } -} - -.slider { - position: relative; - height: 400px; - width: 100%; -} - -.slider.fullscreen { - height: 100%; - width: 100%; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; -} - -.slider.fullscreen ul.slides { - height: 100%; -} - -.slider.fullscreen ul.indicators { - z-index: 2; - bottom: 30px; -} - -.slider .slides { - background-color: #9e9e9e; - margin: 0; - height: 400px; -} - -.slider .slides li { - opacity: 0; - position: absolute; - top: 0; - left: 0; - z-index: 1; - width: 100%; - height: inherit; - overflow: hidden; -} - -.slider .slides li img { - height: 100%; - width: 100%; - background-size: cover; - background-position: center; -} - -.slider .slides li .caption { - color: #fff; - position: absolute; - top: 15%; - left: 15%; - width: 70%; - opacity: 0; -} - -.slider .slides li .caption p { - color: #e0e0e0; -} - -.slider .slides li.active { - z-index: 2; -} - -.slider .indicators { - position: absolute; - text-align: center; - left: 0; - right: 0; - bottom: 0; - margin: 0; -} - -.slider .indicators .indicator-item { - display: inline-block; - position: relative; - cursor: pointer; - height: 16px; - width: 16px; - margin: 0 12px; - background-color: #e0e0e0; - transition: background-color .3s; - border-radius: 50%; -} - -.slider .indicators .indicator-item.active { - background-color: #4CAF50; -} - -.carousel { - overflow: hidden; - position: relative; - width: 100%; - height: 400px; - -webkit-perspective: 500px; - perspective: 500px; - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; - -webkit-transform-origin: 0% 50%; - transform-origin: 0% 50%; -} - -.carousel.carousel-slider { - top: 0; - left: 0; - height: 0; -} - -.carousel.carousel-slider .carousel-fixed-item { - position: absolute; - left: 0; - right: 0; - bottom: 20px; - z-index: 1; -} - -.carousel.carousel-slider .carousel-fixed-item.with-indicators { - bottom: 68px; -} - -.carousel.carousel-slider .carousel-item { - width: 100%; - height: 100%; - min-height: 400px; - position: absolute; - top: 0; - left: 0; -} - -.carousel.carousel-slider .carousel-item h2 { - font-size: 24px; - font-weight: 500; - line-height: 32px; -} - -.carousel.carousel-slider .carousel-item p { - font-size: 15px; -} - -.carousel .carousel-item { - display: none; - width: 200px; - height: 200px; - position: absolute; - top: 0; - left: 0; -} - -.carousel .carousel-item img { - width: 100%; -} - -.carousel .indicators { - position: absolute; - text-align: center; - left: 0; - right: 0; - bottom: 0; - margin: 0; -} - -.carousel .indicators .indicator-item { - display: inline-block; - position: relative; - cursor: pointer; - height: 8px; - width: 8px; - margin: 24px 4px; - background-color: rgba(255, 255, 255, 0.5); - transition: background-color .3s; - border-radius: 50%; -} - -.carousel .indicators .indicator-item.active { - background-color: #fff; -} - -/* ========================================================================== - $BASE-PICKER - ========================================================================== */ -/** - * Note: the root picker element should *NOT* be styled more than what's here. - */ -.picker { - font-size: 16px; - text-align: left; - line-height: 1.2; - color: #000000; - position: absolute; - z-index: 10000; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -/** - * The picker input element. - */ -.picker__input { - cursor: default; -} - -/** - * When the picker is opened, the input element is "activated". - */ -.picker__input.picker__input--active { - border-color: #0089ec; -} - -/** - * The holder is the only "scrollable" top-level container element. - */ -.picker__holder { - width: 100%; - overflow-y: auto; - -webkit-overflow-scrolling: touch; -} - -/*! - * Default mobile-first, responsive styling for pickadate.js - * Demo: http://amsul.github.io/pickadate.js - */ -/** - * Note: the root picker element should *NOT* be styled more than what's here. - */ -/** - * Make the holder and frame fullscreen. - */ -.picker__holder, -.picker__frame { - bottom: 0; - left: 0; - right: 0; - top: 100%; -} - -/** - * The holder should overlay the entire screen. - */ -.picker__holder { - position: fixed; - transition: background 0.15s ease-out, top 0s 0.15s; - -webkit-backface-visibility: hidden; -} - -/** - * The frame that bounds the box contents of the picker. - */ -.picker__frame { - position: absolute; - margin: 0 auto; - min-width: 256px; - width: 300px; - max-height: 350px; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -moz-opacity: 0; - opacity: 0; - transition: all 0.15s ease-out; -} - -@media (min-height: 28.875em) { - .picker__frame { - overflow: visible; - top: auto; - bottom: -100%; - max-height: 80%; - } -} - -@media (min-height: 40.125em) { - .picker__frame { - margin-bottom: 7.5%; - } -} - -/** - * The wrapper sets the stage to vertically align the box contents. - */ -.picker__wrap { - display: table; - width: 100%; - height: 100%; -} - -@media (min-height: 28.875em) { - .picker__wrap { - display: block; - } -} - -/** - * The box contains all the picker contents. - */ -.picker__box { - background: #ffffff; - display: table-cell; - vertical-align: middle; -} - -@media (min-height: 28.875em) { - .picker__box { - display: block; - border: 1px solid #777777; - border-top-color: #898989; - border-bottom-width: 0; - border-radius: 5px 5px 0 0; - box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); - } -} - -/** - * When the picker opens... - */ -.picker--opened .picker__holder { - top: 0; - background: transparent; - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)"; - zoom: 1; - background: rgba(0, 0, 0, 0.32); - transition: background 0.15s ease-out; -} - -.picker--opened .picker__frame { - top: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; - filter: alpha(opacity=100); - -moz-opacity: 1; - opacity: 1; -} - -@media (min-height: 35.875em) { - .picker--opened .picker__frame { - top: 10%; - bottom: auto; - } -} - -/** - * For `large` screens, transform into an inline picker. - */ -/* ========================================================================== - CUSTOM MATERIALIZE STYLES - ========================================================================== */ -.picker__input.picker__input--active { - border-color: #E3F2FD; -} - -.picker__frame { - margin: 0 auto; - max-width: 325px; -} - -@media (min-height: 38.875em) { - .picker--opened .picker__frame { - top: 10%; - bottom: auto; - } -} - -/* ========================================================================== - $BASE-DATE-PICKER - ========================================================================== */ -/** - * The picker box. - */ -.picker__box { - padding: 0 1em; -} - -/** - * The header containing the month and year stuff. - */ -.picker__header { - text-align: center; - position: relative; - margin-top: .75em; -} - -/** - * The month and year labels. - */ -.picker__month, -.picker__year { - display: inline-block; - margin-left: .25em; - margin-right: .25em; -} - -/** - * The month and year selectors. - */ -.picker__select--month, -.picker__select--year { - height: 2em; - padding: 0; - margin-left: .25em; - margin-right: .25em; -} - -.picker__select--month.browser-default { - display: inline; - background-color: #FFFFFF; - width: 40%; -} - -.picker__select--year.browser-default { - display: inline; - background-color: #FFFFFF; - width: 26%; -} - -.picker__select--month:focus, -.picker__select--year:focus { - border-color: rgba(0, 0, 0, 0.05); -} - -/** - * The month navigation buttons. - */ -.picker__nav--prev, -.picker__nav--next { - position: absolute; - padding: .5em 1.25em; - width: 1em; - height: 1em; - box-sizing: content-box; - top: -0.25em; -} - -.picker__nav--prev { - left: -1em; - padding-right: 1.25em; -} - -.picker__nav--next { - right: -1em; - padding-left: 1.25em; -} - -.picker__nav--disabled, -.picker__nav--disabled:hover, -.picker__nav--disabled:before, -.picker__nav--disabled:before:hover { - cursor: default; - background: none; - border-right-color: #f5f5f5; - border-left-color: #f5f5f5; -} - -/** - * The calendar table of dates - */ -.picker__table { - text-align: center; - border-collapse: collapse; - border-spacing: 0; - table-layout: fixed; - font-size: 1rem; - width: 100%; - margin-top: .75em; - margin-bottom: .5em; -} - -.picker__table th, .picker__table td { - text-align: center; -} - -.picker__table td { - margin: 0; - padding: 0; -} - -/** - * The weekday labels - */ -.picker__weekday { - width: 14.285714286%; - font-size: .75em; - padding-bottom: .25em; - color: #999999; - font-weight: 500; - /* Increase the spacing a tad */ -} - -@media (min-height: 33.875em) { - .picker__weekday { - padding-bottom: .5em; - } -} - -/** - * The days on the calendar - */ -.picker__day--today { - position: relative; - color: #595959; - letter-spacing: -.3; - padding: .75rem 0; - font-weight: 400; - border: 1px solid transparent; -} - -.picker__day--disabled:before { - border-top-color: #aaaaaa; -} - -.picker__day--infocus:hover { - cursor: pointer; - color: #000; - font-weight: 500; -} - -.picker__day--outfocus { - display: none; - padding: .75rem 0; - color: #fff; -} - -.picker__day--outfocus:hover { - cursor: pointer; - color: #dddddd; - font-weight: 500; -} - -.picker__day--highlighted:hover, -.picker--focused .picker__day--highlighted { - cursor: pointer; -} - -.picker__day--selected, -.picker__day--selected:hover, -.picker--focused .picker__day--selected { - border-radius: 50%; - -webkit-transform: scale(0.75); - transform: scale(0.75); - background: #0089ec; - color: #ffffff; -} - -.picker__day--disabled, -.picker__day--disabled:hover, -.picker--focused .picker__day--disabled { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; -} - -.picker__day--highlighted.picker__day--disabled, -.picker__day--highlighted.picker__day--disabled:hover { - background: #bbbbbb; -} - -/** - * The footer containing the "today", "clear", and "close" buttons. - */ -.picker__footer { - text-align: center; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; -} - -.picker__button--today, -.picker__button--clear, -.picker__button--close { - border: 1px solid #ffffff; - background: #ffffff; - font-size: .8em; - padding: .66em 0; - font-weight: bold; - width: 33%; - display: inline-block; - vertical-align: bottom; -} - -.picker__button--today:hover, -.picker__button--clear:hover, -.picker__button--close:hover { - cursor: pointer; - color: #000000; - background: #b1dcfb; - border-bottom-color: #b1dcfb; -} - -.picker__button--today:focus, -.picker__button--clear:focus, -.picker__button--close:focus { - background: #b1dcfb; - border-color: rgba(0, 0, 0, 0.05); - outline: none; -} - -.picker__button--today:before, -.picker__button--clear:before, -.picker__button--close:before { - position: relative; - display: inline-block; - height: 0; -} - -.picker__button--today:before, -.picker__button--clear:before { - content: " "; - margin-right: .45em; -} - -.picker__button--today:before { - top: -0.05em; - width: 0; - border-top: 0.66em solid #0059bc; - border-left: .66em solid transparent; -} - -.picker__button--clear:before { - top: -0.25em; - width: .66em; - border-top: 3px solid #ee2200; -} - -.picker__button--close:before { - content: "\D7"; - top: -0.1em; - vertical-align: top; - font-size: 1.1em; - margin-right: .35em; - color: #777777; -} - -.picker__button--today[disabled], -.picker__button--today[disabled]:hover { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; -} - -.picker__button--today[disabled]:before { - border-top-color: #aaaaaa; -} - -/* ========================================================================== - CUSTOM MATERIALIZE STYLES - ========================================================================== */ -.picker__box { - border-radius: 2px; - overflow: hidden; -} - -.picker__date-display { - text-align: center; - background-color: #26a69a; - color: #fff; - padding-bottom: 15px; - font-weight: 300; -} - -.picker__nav--prev:hover, -.picker__nav--next:hover { - cursor: pointer; - color: #000000; - background: #a1ded8; -} - -.picker__weekday-display { - background-color: #1f897f; - padding: 10px; - font-weight: 200; - letter-spacing: .5; - font-size: 1rem; - margin-bottom: 15px; -} - -.picker__month-display { - text-transform: uppercase; - font-size: 2rem; -} - -.picker__day-display { - font-size: 4.5rem; - font-weight: 400; -} - -.picker__year-display { - font-size: 1.8rem; - color: rgba(255, 255, 255, 0.4); -} - -.picker__box { - padding: 0; -} - -.picker__calendar-container { - padding: 0 1rem; -} - -.picker__calendar-container thead { - border: none; -} - -.picker__table { - margin-top: 0; - margin-bottom: .5em; -} - -.picker__day--infocus { - color: #595959; - letter-spacing: -.3; - padding: .75rem 0; - font-weight: 400; - border: 1px solid transparent; -} - -.picker__day.picker__day--today { - color: #26a69a; -} - -.picker__day.picker__day--today.picker__day--selected { - color: #fff; -} - -.picker__weekday { - font-size: .9rem; -} - -.picker__day--selected, -.picker__day--selected:hover, -.picker--focused .picker__day--selected { - border-radius: 50%; - -webkit-transform: scale(0.9); - transform: scale(0.9); - background-color: #26a69a; - color: #ffffff; -} - -.picker__day--selected.picker__day--outfocus, -.picker__day--selected:hover.picker__day--outfocus, -.picker--focused .picker__day--selected.picker__day--outfocus { - background-color: #a1ded8; -} - -.picker__footer { - text-align: right; - padding: 5px 10px; -} - -.picker__close, .picker__today { - font-size: 1.1rem; - padding: 0 1rem; - color: #26a69a; -} - -.picker__nav--prev:before, -.picker__nav--next:before { - content: " "; - border-top: .5em solid transparent; - border-bottom: .5em solid transparent; - border-right: 0.75em solid #676767; - width: 0; - height: 0; - display: block; - margin: 0 auto; -} - -.picker__nav--next:before { - border-right: 0; - border-left: 0.75em solid #676767; -} - -button.picker__today:focus, button.picker__clear:focus, button.picker__close:focus { - background-color: #a1ded8; -} - -/* ========================================================================== - $BASE-TIME-PICKER - ========================================================================== */ -/** - * The list of times. - */ -.picker__list { - list-style: none; - padding: 0.75em 0 4.2em; - margin: 0; -} - -/** - * The times on the clock. - */ -.picker__list-item { - border-bottom: 1px solid #dddddd; - border-top: 1px solid #dddddd; - margin-bottom: -1px; - position: relative; - background: #ffffff; - padding: .75em 1.25em; -} - -@media (min-height: 46.75em) { - .picker__list-item { - padding: .5em 1em; - } -} - -/* Hovered time */ -.picker__list-item:hover { - cursor: pointer; - color: #000000; - background: #b1dcfb; - border-color: #0089ec; - z-index: 10; -} - -/* Highlighted and hovered/focused time */ -.picker__list-item--highlighted { - border-color: #0089ec; - z-index: 10; -} - -.picker__list-item--highlighted:hover, -.picker--focused .picker__list-item--highlighted { - cursor: pointer; - color: #000000; - background: #b1dcfb; -} - -/* Selected and hovered/focused time */ -.picker__list-item--selected, -.picker__list-item--selected:hover, -.picker--focused .picker__list-item--selected { - background: #0089ec; - color: #ffffff; - z-index: 10; -} - -/* Disabled time */ -.picker__list-item--disabled, -.picker__list-item--disabled:hover, -.picker--focused .picker__list-item--disabled { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; - border-color: #dddddd; - z-index: auto; -} - -/** - * The clear button - */ -.picker--time .picker__button--clear { - display: block; - width: 80%; - margin: 1em auto 0; - padding: 1em 1.25em; - background: none; - border: 0; - font-weight: 500; - font-size: .67em; - text-align: center; - text-transform: uppercase; - color: #666; -} - -.picker--time .picker__button--clear:hover, -.picker--time .picker__button--clear:focus { - color: #000000; - background: #b1dcfb; - background: #ee2200; - border-color: #ee2200; - cursor: pointer; - color: #ffffff; - outline: none; -} - -.picker--time .picker__button--clear:before { - top: -0.25em; - color: #666; - font-size: 1.25em; - font-weight: bold; -} - -.picker--time .picker__button--clear:hover:before, -.picker--time .picker__button--clear:focus:before { - color: #ffffff; -} - -/* ========================================================================== - $DEFAULT-TIME-PICKER - ========================================================================== */ -/** - * The frame the bounds the time picker. - */ -.picker--time .picker__frame { - min-width: 256px; - max-width: 320px; -} - -/** - * The picker box. - */ -.picker--time .picker__box { - font-size: 1em; - background: #f2f2f2; - padding: 0; -} - -@media (min-height: 40.125em) { - .picker--time .picker__box { - margin-bottom: 5em; - } -} diff --git a/node_modules/materialize-css/dist/css/materialize.min.css b/node_modules/materialize-css/dist/css/materialize.min.css deleted file mode 100644 index 9104745..0000000 --- a/node_modules/materialize-css/dist/css/materialize.min.css +++ /dev/null @@ -1,16 +0,0 @@ -/*! - * Materialize v0.98.0 (http://materializecss.com) - * Copyright 2014-2015 Materialize - * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) - */ -.materialize-red{background-color:#e51c23 !important}.materialize-red-text{color:#e51c23 !important}.materialize-red.lighten-5{background-color:#fdeaeb !important}.materialize-red-text.text-lighten-5{color:#fdeaeb !important}.materialize-red.lighten-4{background-color:#f8c1c3 !important}.materialize-red-text.text-lighten-4{color:#f8c1c3 !important}.materialize-red.lighten-3{background-color:#f3989b !important}.materialize-red-text.text-lighten-3{color:#f3989b !important}.materialize-red.lighten-2{background-color:#ee6e73 !important}.materialize-red-text.text-lighten-2{color:#ee6e73 !important}.materialize-red.lighten-1{background-color:#ea454b !important}.materialize-red-text.text-lighten-1{color:#ea454b !important}.materialize-red.darken-1{background-color:#d0181e !important}.materialize-red-text.text-darken-1{color:#d0181e !important}.materialize-red.darken-2{background-color:#b9151b !important}.materialize-red-text.text-darken-2{color:#b9151b !important}.materialize-red.darken-3{background-color:#a21318 !important}.materialize-red-text.text-darken-3{color:#a21318 !important}.materialize-red.darken-4{background-color:#8b1014 !important}.materialize-red-text.text-darken-4{color:#8b1014 !important}.red{background-color:#F44336 !important}.red-text{color:#F44336 !important}.red.lighten-5{background-color:#FFEBEE !important}.red-text.text-lighten-5{color:#FFEBEE !important}.red.lighten-4{background-color:#FFCDD2 !important}.red-text.text-lighten-4{color:#FFCDD2 !important}.red.lighten-3{background-color:#EF9A9A !important}.red-text.text-lighten-3{color:#EF9A9A !important}.red.lighten-2{background-color:#E57373 !important}.red-text.text-lighten-2{color:#E57373 !important}.red.lighten-1{background-color:#EF5350 !important}.red-text.text-lighten-1{color:#EF5350 !important}.red.darken-1{background-color:#E53935 !important}.red-text.text-darken-1{color:#E53935 !important}.red.darken-2{background-color:#D32F2F !important}.red-text.text-darken-2{color:#D32F2F !important}.red.darken-3{background-color:#C62828 !important}.red-text.text-darken-3{color:#C62828 !important}.red.darken-4{background-color:#B71C1C !important}.red-text.text-darken-4{color:#B71C1C !important}.red.accent-1{background-color:#FF8A80 !important}.red-text.text-accent-1{color:#FF8A80 !important}.red.accent-2{background-color:#FF5252 !important}.red-text.text-accent-2{color:#FF5252 !important}.red.accent-3{background-color:#FF1744 !important}.red-text.text-accent-3{color:#FF1744 !important}.red.accent-4{background-color:#D50000 !important}.red-text.text-accent-4{color:#D50000 !important}.pink{background-color:#e91e63 !important}.pink-text{color:#e91e63 !important}.pink.lighten-5{background-color:#fce4ec !important}.pink-text.text-lighten-5{color:#fce4ec !important}.pink.lighten-4{background-color:#f8bbd0 !important}.pink-text.text-lighten-4{color:#f8bbd0 !important}.pink.lighten-3{background-color:#f48fb1 !important}.pink-text.text-lighten-3{color:#f48fb1 !important}.pink.lighten-2{background-color:#f06292 !important}.pink-text.text-lighten-2{color:#f06292 !important}.pink.lighten-1{background-color:#ec407a !important}.pink-text.text-lighten-1{color:#ec407a !important}.pink.darken-1{background-color:#d81b60 !important}.pink-text.text-darken-1{color:#d81b60 !important}.pink.darken-2{background-color:#c2185b !important}.pink-text.text-darken-2{color:#c2185b !important}.pink.darken-3{background-color:#ad1457 !important}.pink-text.text-darken-3{color:#ad1457 !important}.pink.darken-4{background-color:#880e4f !important}.pink-text.text-darken-4{color:#880e4f !important}.pink.accent-1{background-color:#ff80ab !important}.pink-text.text-accent-1{color:#ff80ab !important}.pink.accent-2{background-color:#ff4081 !important}.pink-text.text-accent-2{color:#ff4081 !important}.pink.accent-3{background-color:#f50057 !important}.pink-text.text-accent-3{color:#f50057 !important}.pink.accent-4{background-color:#c51162 !important}.pink-text.text-accent-4{color:#c51162 !important}.purple{background-color:#9c27b0 !important}.purple-text{color:#9c27b0 !important}.purple.lighten-5{background-color:#f3e5f5 !important}.purple-text.text-lighten-5{color:#f3e5f5 !important}.purple.lighten-4{background-color:#e1bee7 !important}.purple-text.text-lighten-4{color:#e1bee7 !important}.purple.lighten-3{background-color:#ce93d8 !important}.purple-text.text-lighten-3{color:#ce93d8 !important}.purple.lighten-2{background-color:#ba68c8 !important}.purple-text.text-lighten-2{color:#ba68c8 !important}.purple.lighten-1{background-color:#ab47bc !important}.purple-text.text-lighten-1{color:#ab47bc !important}.purple.darken-1{background-color:#8e24aa !important}.purple-text.text-darken-1{color:#8e24aa !important}.purple.darken-2{background-color:#7b1fa2 !important}.purple-text.text-darken-2{color:#7b1fa2 !important}.purple.darken-3{background-color:#6a1b9a !important}.purple-text.text-darken-3{color:#6a1b9a !important}.purple.darken-4{background-color:#4a148c !important}.purple-text.text-darken-4{color:#4a148c !important}.purple.accent-1{background-color:#ea80fc !important}.purple-text.text-accent-1{color:#ea80fc !important}.purple.accent-2{background-color:#e040fb !important}.purple-text.text-accent-2{color:#e040fb !important}.purple.accent-3{background-color:#d500f9 !important}.purple-text.text-accent-3{color:#d500f9 !important}.purple.accent-4{background-color:#a0f !important}.purple-text.text-accent-4{color:#a0f !important}.deep-purple{background-color:#673ab7 !important}.deep-purple-text{color:#673ab7 !important}.deep-purple.lighten-5{background-color:#ede7f6 !important}.deep-purple-text.text-lighten-5{color:#ede7f6 !important}.deep-purple.lighten-4{background-color:#d1c4e9 !important}.deep-purple-text.text-lighten-4{color:#d1c4e9 !important}.deep-purple.lighten-3{background-color:#b39ddb !important}.deep-purple-text.text-lighten-3{color:#b39ddb !important}.deep-purple.lighten-2{background-color:#9575cd !important}.deep-purple-text.text-lighten-2{color:#9575cd !important}.deep-purple.lighten-1{background-color:#7e57c2 !important}.deep-purple-text.text-lighten-1{color:#7e57c2 !important}.deep-purple.darken-1{background-color:#5e35b1 !important}.deep-purple-text.text-darken-1{color:#5e35b1 !important}.deep-purple.darken-2{background-color:#512da8 !important}.deep-purple-text.text-darken-2{color:#512da8 !important}.deep-purple.darken-3{background-color:#4527a0 !important}.deep-purple-text.text-darken-3{color:#4527a0 !important}.deep-purple.darken-4{background-color:#311b92 !important}.deep-purple-text.text-darken-4{color:#311b92 !important}.deep-purple.accent-1{background-color:#b388ff !important}.deep-purple-text.text-accent-1{color:#b388ff !important}.deep-purple.accent-2{background-color:#7c4dff !important}.deep-purple-text.text-accent-2{color:#7c4dff !important}.deep-purple.accent-3{background-color:#651fff !important}.deep-purple-text.text-accent-3{color:#651fff !important}.deep-purple.accent-4{background-color:#6200ea !important}.deep-purple-text.text-accent-4{color:#6200ea !important}.indigo{background-color:#3f51b5 !important}.indigo-text{color:#3f51b5 !important}.indigo.lighten-5{background-color:#e8eaf6 !important}.indigo-text.text-lighten-5{color:#e8eaf6 !important}.indigo.lighten-4{background-color:#c5cae9 !important}.indigo-text.text-lighten-4{color:#c5cae9 !important}.indigo.lighten-3{background-color:#9fa8da !important}.indigo-text.text-lighten-3{color:#9fa8da !important}.indigo.lighten-2{background-color:#7986cb !important}.indigo-text.text-lighten-2{color:#7986cb !important}.indigo.lighten-1{background-color:#5c6bc0 !important}.indigo-text.text-lighten-1{color:#5c6bc0 !important}.indigo.darken-1{background-color:#3949ab !important}.indigo-text.text-darken-1{color:#3949ab !important}.indigo.darken-2{background-color:#303f9f !important}.indigo-text.text-darken-2{color:#303f9f !important}.indigo.darken-3{background-color:#283593 !important}.indigo-text.text-darken-3{color:#283593 !important}.indigo.darken-4{background-color:#1a237e !important}.indigo-text.text-darken-4{color:#1a237e !important}.indigo.accent-1{background-color:#8c9eff !important}.indigo-text.text-accent-1{color:#8c9eff !important}.indigo.accent-2{background-color:#536dfe !important}.indigo-text.text-accent-2{color:#536dfe !important}.indigo.accent-3{background-color:#3d5afe !important}.indigo-text.text-accent-3{color:#3d5afe !important}.indigo.accent-4{background-color:#304ffe !important}.indigo-text.text-accent-4{color:#304ffe !important}.blue{background-color:#2196F3 !important}.blue-text{color:#2196F3 !important}.blue.lighten-5{background-color:#E3F2FD !important}.blue-text.text-lighten-5{color:#E3F2FD !important}.blue.lighten-4{background-color:#BBDEFB !important}.blue-text.text-lighten-4{color:#BBDEFB !important}.blue.lighten-3{background-color:#90CAF9 !important}.blue-text.text-lighten-3{color:#90CAF9 !important}.blue.lighten-2{background-color:#64B5F6 !important}.blue-text.text-lighten-2{color:#64B5F6 !important}.blue.lighten-1{background-color:#42A5F5 !important}.blue-text.text-lighten-1{color:#42A5F5 !important}.blue.darken-1{background-color:#1E88E5 !important}.blue-text.text-darken-1{color:#1E88E5 !important}.blue.darken-2{background-color:#1976D2 !important}.blue-text.text-darken-2{color:#1976D2 !important}.blue.darken-3{background-color:#1565C0 !important}.blue-text.text-darken-3{color:#1565C0 !important}.blue.darken-4{background-color:#0D47A1 !important}.blue-text.text-darken-4{color:#0D47A1 !important}.blue.accent-1{background-color:#82B1FF !important}.blue-text.text-accent-1{color:#82B1FF !important}.blue.accent-2{background-color:#448AFF !important}.blue-text.text-accent-2{color:#448AFF !important}.blue.accent-3{background-color:#2979FF !important}.blue-text.text-accent-3{color:#2979FF !important}.blue.accent-4{background-color:#2962FF !important}.blue-text.text-accent-4{color:#2962FF !important}.light-blue{background-color:#03a9f4 !important}.light-blue-text{color:#03a9f4 !important}.light-blue.lighten-5{background-color:#e1f5fe !important}.light-blue-text.text-lighten-5{color:#e1f5fe !important}.light-blue.lighten-4{background-color:#b3e5fc !important}.light-blue-text.text-lighten-4{color:#b3e5fc !important}.light-blue.lighten-3{background-color:#81d4fa !important}.light-blue-text.text-lighten-3{color:#81d4fa !important}.light-blue.lighten-2{background-color:#4fc3f7 !important}.light-blue-text.text-lighten-2{color:#4fc3f7 !important}.light-blue.lighten-1{background-color:#29b6f6 !important}.light-blue-text.text-lighten-1{color:#29b6f6 !important}.light-blue.darken-1{background-color:#039be5 !important}.light-blue-text.text-darken-1{color:#039be5 !important}.light-blue.darken-2{background-color:#0288d1 !important}.light-blue-text.text-darken-2{color:#0288d1 !important}.light-blue.darken-3{background-color:#0277bd !important}.light-blue-text.text-darken-3{color:#0277bd !important}.light-blue.darken-4{background-color:#01579b !important}.light-blue-text.text-darken-4{color:#01579b !important}.light-blue.accent-1{background-color:#80d8ff !important}.light-blue-text.text-accent-1{color:#80d8ff !important}.light-blue.accent-2{background-color:#40c4ff !important}.light-blue-text.text-accent-2{color:#40c4ff !important}.light-blue.accent-3{background-color:#00b0ff !important}.light-blue-text.text-accent-3{color:#00b0ff !important}.light-blue.accent-4{background-color:#0091ea !important}.light-blue-text.text-accent-4{color:#0091ea !important}.cyan{background-color:#00bcd4 !important}.cyan-text{color:#00bcd4 !important}.cyan.lighten-5{background-color:#e0f7fa !important}.cyan-text.text-lighten-5{color:#e0f7fa !important}.cyan.lighten-4{background-color:#b2ebf2 !important}.cyan-text.text-lighten-4{color:#b2ebf2 !important}.cyan.lighten-3{background-color:#80deea !important}.cyan-text.text-lighten-3{color:#80deea !important}.cyan.lighten-2{background-color:#4dd0e1 !important}.cyan-text.text-lighten-2{color:#4dd0e1 !important}.cyan.lighten-1{background-color:#26c6da !important}.cyan-text.text-lighten-1{color:#26c6da !important}.cyan.darken-1{background-color:#00acc1 !important}.cyan-text.text-darken-1{color:#00acc1 !important}.cyan.darken-2{background-color:#0097a7 !important}.cyan-text.text-darken-2{color:#0097a7 !important}.cyan.darken-3{background-color:#00838f !important}.cyan-text.text-darken-3{color:#00838f !important}.cyan.darken-4{background-color:#006064 !important}.cyan-text.text-darken-4{color:#006064 !important}.cyan.accent-1{background-color:#84ffff !important}.cyan-text.text-accent-1{color:#84ffff !important}.cyan.accent-2{background-color:#18ffff !important}.cyan-text.text-accent-2{color:#18ffff !important}.cyan.accent-3{background-color:#00e5ff !important}.cyan-text.text-accent-3{color:#00e5ff !important}.cyan.accent-4{background-color:#00b8d4 !important}.cyan-text.text-accent-4{color:#00b8d4 !important}.teal{background-color:#009688 !important}.teal-text{color:#009688 !important}.teal.lighten-5{background-color:#e0f2f1 !important}.teal-text.text-lighten-5{color:#e0f2f1 !important}.teal.lighten-4{background-color:#b2dfdb !important}.teal-text.text-lighten-4{color:#b2dfdb !important}.teal.lighten-3{background-color:#80cbc4 !important}.teal-text.text-lighten-3{color:#80cbc4 !important}.teal.lighten-2{background-color:#4db6ac !important}.teal-text.text-lighten-2{color:#4db6ac !important}.teal.lighten-1{background-color:#26a69a !important}.teal-text.text-lighten-1{color:#26a69a !important}.teal.darken-1{background-color:#00897b !important}.teal-text.text-darken-1{color:#00897b !important}.teal.darken-2{background-color:#00796b !important}.teal-text.text-darken-2{color:#00796b !important}.teal.darken-3{background-color:#00695c !important}.teal-text.text-darken-3{color:#00695c !important}.teal.darken-4{background-color:#004d40 !important}.teal-text.text-darken-4{color:#004d40 !important}.teal.accent-1{background-color:#a7ffeb !important}.teal-text.text-accent-1{color:#a7ffeb !important}.teal.accent-2{background-color:#64ffda !important}.teal-text.text-accent-2{color:#64ffda !important}.teal.accent-3{background-color:#1de9b6 !important}.teal-text.text-accent-3{color:#1de9b6 !important}.teal.accent-4{background-color:#00bfa5 !important}.teal-text.text-accent-4{color:#00bfa5 !important}.green{background-color:#4CAF50 !important}.green-text{color:#4CAF50 !important}.green.lighten-5{background-color:#E8F5E9 !important}.green-text.text-lighten-5{color:#E8F5E9 !important}.green.lighten-4{background-color:#C8E6C9 !important}.green-text.text-lighten-4{color:#C8E6C9 !important}.green.lighten-3{background-color:#A5D6A7 !important}.green-text.text-lighten-3{color:#A5D6A7 !important}.green.lighten-2{background-color:#81C784 !important}.green-text.text-lighten-2{color:#81C784 !important}.green.lighten-1{background-color:#66BB6A !important}.green-text.text-lighten-1{color:#66BB6A !important}.green.darken-1{background-color:#43A047 !important}.green-text.text-darken-1{color:#43A047 !important}.green.darken-2{background-color:#388E3C !important}.green-text.text-darken-2{color:#388E3C !important}.green.darken-3{background-color:#2E7D32 !important}.green-text.text-darken-3{color:#2E7D32 !important}.green.darken-4{background-color:#1B5E20 !important}.green-text.text-darken-4{color:#1B5E20 !important}.green.accent-1{background-color:#B9F6CA !important}.green-text.text-accent-1{color:#B9F6CA !important}.green.accent-2{background-color:#69F0AE !important}.green-text.text-accent-2{color:#69F0AE !important}.green.accent-3{background-color:#00E676 !important}.green-text.text-accent-3{color:#00E676 !important}.green.accent-4{background-color:#00C853 !important}.green-text.text-accent-4{color:#00C853 !important}.light-green{background-color:#8bc34a !important}.light-green-text{color:#8bc34a !important}.light-green.lighten-5{background-color:#f1f8e9 !important}.light-green-text.text-lighten-5{color:#f1f8e9 !important}.light-green.lighten-4{background-color:#dcedc8 !important}.light-green-text.text-lighten-4{color:#dcedc8 !important}.light-green.lighten-3{background-color:#c5e1a5 !important}.light-green-text.text-lighten-3{color:#c5e1a5 !important}.light-green.lighten-2{background-color:#aed581 !important}.light-green-text.text-lighten-2{color:#aed581 !important}.light-green.lighten-1{background-color:#9ccc65 !important}.light-green-text.text-lighten-1{color:#9ccc65 !important}.light-green.darken-1{background-color:#7cb342 !important}.light-green-text.text-darken-1{color:#7cb342 !important}.light-green.darken-2{background-color:#689f38 !important}.light-green-text.text-darken-2{color:#689f38 !important}.light-green.darken-3{background-color:#558b2f !important}.light-green-text.text-darken-3{color:#558b2f !important}.light-green.darken-4{background-color:#33691e !important}.light-green-text.text-darken-4{color:#33691e !important}.light-green.accent-1{background-color:#ccff90 !important}.light-green-text.text-accent-1{color:#ccff90 !important}.light-green.accent-2{background-color:#b2ff59 !important}.light-green-text.text-accent-2{color:#b2ff59 !important}.light-green.accent-3{background-color:#76ff03 !important}.light-green-text.text-accent-3{color:#76ff03 !important}.light-green.accent-4{background-color:#64dd17 !important}.light-green-text.text-accent-4{color:#64dd17 !important}.lime{background-color:#cddc39 !important}.lime-text{color:#cddc39 !important}.lime.lighten-5{background-color:#f9fbe7 !important}.lime-text.text-lighten-5{color:#f9fbe7 !important}.lime.lighten-4{background-color:#f0f4c3 !important}.lime-text.text-lighten-4{color:#f0f4c3 !important}.lime.lighten-3{background-color:#e6ee9c !important}.lime-text.text-lighten-3{color:#e6ee9c !important}.lime.lighten-2{background-color:#dce775 !important}.lime-text.text-lighten-2{color:#dce775 !important}.lime.lighten-1{background-color:#d4e157 !important}.lime-text.text-lighten-1{color:#d4e157 !important}.lime.darken-1{background-color:#c0ca33 !important}.lime-text.text-darken-1{color:#c0ca33 !important}.lime.darken-2{background-color:#afb42b !important}.lime-text.text-darken-2{color:#afb42b !important}.lime.darken-3{background-color:#9e9d24 !important}.lime-text.text-darken-3{color:#9e9d24 !important}.lime.darken-4{background-color:#827717 !important}.lime-text.text-darken-4{color:#827717 !important}.lime.accent-1{background-color:#f4ff81 !important}.lime-text.text-accent-1{color:#f4ff81 !important}.lime.accent-2{background-color:#eeff41 !important}.lime-text.text-accent-2{color:#eeff41 !important}.lime.accent-3{background-color:#c6ff00 !important}.lime-text.text-accent-3{color:#c6ff00 !important}.lime.accent-4{background-color:#aeea00 !important}.lime-text.text-accent-4{color:#aeea00 !important}.yellow{background-color:#ffeb3b !important}.yellow-text{color:#ffeb3b !important}.yellow.lighten-5{background-color:#fffde7 !important}.yellow-text.text-lighten-5{color:#fffde7 !important}.yellow.lighten-4{background-color:#fff9c4 !important}.yellow-text.text-lighten-4{color:#fff9c4 !important}.yellow.lighten-3{background-color:#fff59d !important}.yellow-text.text-lighten-3{color:#fff59d !important}.yellow.lighten-2{background-color:#fff176 !important}.yellow-text.text-lighten-2{color:#fff176 !important}.yellow.lighten-1{background-color:#ffee58 !important}.yellow-text.text-lighten-1{color:#ffee58 !important}.yellow.darken-1{background-color:#fdd835 !important}.yellow-text.text-darken-1{color:#fdd835 !important}.yellow.darken-2{background-color:#fbc02d !important}.yellow-text.text-darken-2{color:#fbc02d !important}.yellow.darken-3{background-color:#f9a825 !important}.yellow-text.text-darken-3{color:#f9a825 !important}.yellow.darken-4{background-color:#f57f17 !important}.yellow-text.text-darken-4{color:#f57f17 !important}.yellow.accent-1{background-color:#ffff8d !important}.yellow-text.text-accent-1{color:#ffff8d !important}.yellow.accent-2{background-color:#ff0 !important}.yellow-text.text-accent-2{color:#ff0 !important}.yellow.accent-3{background-color:#ffea00 !important}.yellow-text.text-accent-3{color:#ffea00 !important}.yellow.accent-4{background-color:#ffd600 !important}.yellow-text.text-accent-4{color:#ffd600 !important}.amber{background-color:#ffc107 !important}.amber-text{color:#ffc107 !important}.amber.lighten-5{background-color:#fff8e1 !important}.amber-text.text-lighten-5{color:#fff8e1 !important}.amber.lighten-4{background-color:#ffecb3 !important}.amber-text.text-lighten-4{color:#ffecb3 !important}.amber.lighten-3{background-color:#ffe082 !important}.amber-text.text-lighten-3{color:#ffe082 !important}.amber.lighten-2{background-color:#ffd54f !important}.amber-text.text-lighten-2{color:#ffd54f !important}.amber.lighten-1{background-color:#ffca28 !important}.amber-text.text-lighten-1{color:#ffca28 !important}.amber.darken-1{background-color:#ffb300 !important}.amber-text.text-darken-1{color:#ffb300 !important}.amber.darken-2{background-color:#ffa000 !important}.amber-text.text-darken-2{color:#ffa000 !important}.amber.darken-3{background-color:#ff8f00 !important}.amber-text.text-darken-3{color:#ff8f00 !important}.amber.darken-4{background-color:#ff6f00 !important}.amber-text.text-darken-4{color:#ff6f00 !important}.amber.accent-1{background-color:#ffe57f !important}.amber-text.text-accent-1{color:#ffe57f !important}.amber.accent-2{background-color:#ffd740 !important}.amber-text.text-accent-2{color:#ffd740 !important}.amber.accent-3{background-color:#ffc400 !important}.amber-text.text-accent-3{color:#ffc400 !important}.amber.accent-4{background-color:#ffab00 !important}.amber-text.text-accent-4{color:#ffab00 !important}.orange{background-color:#ff9800 !important}.orange-text{color:#ff9800 !important}.orange.lighten-5{background-color:#fff3e0 !important}.orange-text.text-lighten-5{color:#fff3e0 !important}.orange.lighten-4{background-color:#ffe0b2 !important}.orange-text.text-lighten-4{color:#ffe0b2 !important}.orange.lighten-3{background-color:#ffcc80 !important}.orange-text.text-lighten-3{color:#ffcc80 !important}.orange.lighten-2{background-color:#ffb74d !important}.orange-text.text-lighten-2{color:#ffb74d !important}.orange.lighten-1{background-color:#ffa726 !important}.orange-text.text-lighten-1{color:#ffa726 !important}.orange.darken-1{background-color:#fb8c00 !important}.orange-text.text-darken-1{color:#fb8c00 !important}.orange.darken-2{background-color:#f57c00 !important}.orange-text.text-darken-2{color:#f57c00 !important}.orange.darken-3{background-color:#ef6c00 !important}.orange-text.text-darken-3{color:#ef6c00 !important}.orange.darken-4{background-color:#e65100 !important}.orange-text.text-darken-4{color:#e65100 !important}.orange.accent-1{background-color:#ffd180 !important}.orange-text.text-accent-1{color:#ffd180 !important}.orange.accent-2{background-color:#ffab40 !important}.orange-text.text-accent-2{color:#ffab40 !important}.orange.accent-3{background-color:#ff9100 !important}.orange-text.text-accent-3{color:#ff9100 !important}.orange.accent-4{background-color:#ff6d00 !important}.orange-text.text-accent-4{color:#ff6d00 !important}.deep-orange{background-color:#ff5722 !important}.deep-orange-text{color:#ff5722 !important}.deep-orange.lighten-5{background-color:#fbe9e7 !important}.deep-orange-text.text-lighten-5{color:#fbe9e7 !important}.deep-orange.lighten-4{background-color:#ffccbc !important}.deep-orange-text.text-lighten-4{color:#ffccbc !important}.deep-orange.lighten-3{background-color:#ffab91 !important}.deep-orange-text.text-lighten-3{color:#ffab91 !important}.deep-orange.lighten-2{background-color:#ff8a65 !important}.deep-orange-text.text-lighten-2{color:#ff8a65 !important}.deep-orange.lighten-1{background-color:#ff7043 !important}.deep-orange-text.text-lighten-1{color:#ff7043 !important}.deep-orange.darken-1{background-color:#f4511e !important}.deep-orange-text.text-darken-1{color:#f4511e !important}.deep-orange.darken-2{background-color:#e64a19 !important}.deep-orange-text.text-darken-2{color:#e64a19 !important}.deep-orange.darken-3{background-color:#d84315 !important}.deep-orange-text.text-darken-3{color:#d84315 !important}.deep-orange.darken-4{background-color:#bf360c !important}.deep-orange-text.text-darken-4{color:#bf360c !important}.deep-orange.accent-1{background-color:#ff9e80 !important}.deep-orange-text.text-accent-1{color:#ff9e80 !important}.deep-orange.accent-2{background-color:#ff6e40 !important}.deep-orange-text.text-accent-2{color:#ff6e40 !important}.deep-orange.accent-3{background-color:#ff3d00 !important}.deep-orange-text.text-accent-3{color:#ff3d00 !important}.deep-orange.accent-4{background-color:#dd2c00 !important}.deep-orange-text.text-accent-4{color:#dd2c00 !important}.brown{background-color:#795548 !important}.brown-text{color:#795548 !important}.brown.lighten-5{background-color:#efebe9 !important}.brown-text.text-lighten-5{color:#efebe9 !important}.brown.lighten-4{background-color:#d7ccc8 !important}.brown-text.text-lighten-4{color:#d7ccc8 !important}.brown.lighten-3{background-color:#bcaaa4 !important}.brown-text.text-lighten-3{color:#bcaaa4 !important}.brown.lighten-2{background-color:#a1887f !important}.brown-text.text-lighten-2{color:#a1887f !important}.brown.lighten-1{background-color:#8d6e63 !important}.brown-text.text-lighten-1{color:#8d6e63 !important}.brown.darken-1{background-color:#6d4c41 !important}.brown-text.text-darken-1{color:#6d4c41 !important}.brown.darken-2{background-color:#5d4037 !important}.brown-text.text-darken-2{color:#5d4037 !important}.brown.darken-3{background-color:#4e342e !important}.brown-text.text-darken-3{color:#4e342e !important}.brown.darken-4{background-color:#3e2723 !important}.brown-text.text-darken-4{color:#3e2723 !important}.blue-grey{background-color:#607d8b !important}.blue-grey-text{color:#607d8b !important}.blue-grey.lighten-5{background-color:#eceff1 !important}.blue-grey-text.text-lighten-5{color:#eceff1 !important}.blue-grey.lighten-4{background-color:#cfd8dc !important}.blue-grey-text.text-lighten-4{color:#cfd8dc !important}.blue-grey.lighten-3{background-color:#b0bec5 !important}.blue-grey-text.text-lighten-3{color:#b0bec5 !important}.blue-grey.lighten-2{background-color:#90a4ae !important}.blue-grey-text.text-lighten-2{color:#90a4ae !important}.blue-grey.lighten-1{background-color:#78909c !important}.blue-grey-text.text-lighten-1{color:#78909c !important}.blue-grey.darken-1{background-color:#546e7a !important}.blue-grey-text.text-darken-1{color:#546e7a !important}.blue-grey.darken-2{background-color:#455a64 !important}.blue-grey-text.text-darken-2{color:#455a64 !important}.blue-grey.darken-3{background-color:#37474f !important}.blue-grey-text.text-darken-3{color:#37474f !important}.blue-grey.darken-4{background-color:#263238 !important}.blue-grey-text.text-darken-4{color:#263238 !important}.grey{background-color:#9e9e9e !important}.grey-text{color:#9e9e9e !important}.grey.lighten-5{background-color:#fafafa !important}.grey-text.text-lighten-5{color:#fafafa !important}.grey.lighten-4{background-color:#f5f5f5 !important}.grey-text.text-lighten-4{color:#f5f5f5 !important}.grey.lighten-3{background-color:#eee !important}.grey-text.text-lighten-3{color:#eee !important}.grey.lighten-2{background-color:#e0e0e0 !important}.grey-text.text-lighten-2{color:#e0e0e0 !important}.grey.lighten-1{background-color:#bdbdbd !important}.grey-text.text-lighten-1{color:#bdbdbd !important}.grey.darken-1{background-color:#757575 !important}.grey-text.text-darken-1{color:#757575 !important}.grey.darken-2{background-color:#616161 !important}.grey-text.text-darken-2{color:#616161 !important}.grey.darken-3{background-color:#424242 !important}.grey-text.text-darken-3{color:#424242 !important}.grey.darken-4{background-color:#212121 !important}.grey-text.text-darken-4{color:#212121 !important}.black{background-color:#000 !important}.black-text{color:#000 !important}.white{background-color:#fff !important}.white-text{color:#fff !important}.transparent{background-color:transparent !important}.transparent-text{color:transparent !important}/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}ul:not(.browser-default){padding-left:0;list-style-type:none}ul:not(.browser-default) li{list-style-type:none}a{color:#039be5;text-decoration:none;-webkit-tap-highlight-color:transparent}.valign-wrapper{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.valign-wrapper .valign{display:block}.clearfix{clear:both}.z-depth-0{box-shadow:none !important}.z-depth-1,nav,.card-panel,.card,.toast,.btn,.btn-large,.btn-floating,.dropdown-content,.collapsible,.side-nav{box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 1px 5px 0 rgba(0,0,0,0.12),0 3px 1px -2px rgba(0,0,0,0.2)}.z-depth-1-half,.btn:hover,.btn-large:hover,.btn-floating:hover{box-shadow:0 3px 3px 0 rgba(0,0,0,0.14),0 1px 7px 0 rgba(0,0,0,0.12),0 3px 1px -1px rgba(0,0,0,0.2)}.z-depth-2{box-shadow:0 4px 5px 0 rgba(0,0,0,0.14),0 1px 10px 0 rgba(0,0,0,0.12),0 2px 4px -1px rgba(0,0,0,0.3)}.z-depth-3{box-shadow:0 6px 10px 0 rgba(0,0,0,0.14),0 1px 18px 0 rgba(0,0,0,0.12),0 3px 5px -1px rgba(0,0,0,0.3)}.z-depth-4,.modal{box-shadow:0 8px 10px 1px rgba(0,0,0,0.14),0 3px 14px 2px rgba(0,0,0,0.12),0 5px 5px -3px rgba(0,0,0,0.3)}.z-depth-5{box-shadow:0 16px 24px 2px rgba(0,0,0,0.14),0 6px 30px 5px rgba(0,0,0,0.12),0 8px 10px -5px rgba(0,0,0,0.3)}.hoverable{transition:box-shadow .25s;box-shadow:0}.hoverable:hover{transition:box-shadow .25s;box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.divider{height:1px;overflow:hidden;background-color:#e0e0e0}blockquote{margin:20px 0;padding-left:1.5rem;border-left:5px solid #ee6e73}i{line-height:inherit}i.left{float:left;margin-right:15px}i.right{float:right;margin-left:15px}i.tiny{font-size:1rem}i.small{font-size:2rem}i.medium{font-size:4rem}i.large{font-size:6rem}img.responsive-img,video.responsive-video{max-width:100%;height:auto}.pagination li{display:inline-block;border-radius:2px;text-align:center;vertical-align:top;height:30px}.pagination li a{color:#444;display:inline-block;font-size:1.2rem;padding:0 10px;line-height:30px}.pagination li.active a{color:#fff}.pagination li.active{background-color:#ee6e73}.pagination li.disabled a{cursor:default;color:#999}.pagination li i{font-size:2rem}.pagination li.pages ul li{display:inline-block;float:none}@media only screen and (max-width: 992px){.pagination{width:100%}.pagination li.prev,.pagination li.next{width:10%}.pagination li.pages{width:80%;overflow:hidden;white-space:nowrap}}.breadcrumb{font-size:18px;color:rgba(255,255,255,0.7)}.breadcrumb i,.breadcrumb [class^="mdi-"],.breadcrumb [class*="mdi-"],.breadcrumb i.material-icons{display:inline-block;float:left;font-size:24px}.breadcrumb:before{content:'\E5CC';color:rgba(255,255,255,0.7);vertical-align:top;display:inline-block;font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:25px;margin:0 10px 0 8px;-webkit-font-smoothing:antialiased}.breadcrumb:first-child:before{display:none}.breadcrumb:last-child{color:#fff}.parallax-container{position:relative;overflow:hidden;height:500px}.parallax{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1}.parallax img{display:none;position:absolute;left:50%;bottom:0;min-width:100%;min-height:100%;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pin-top,.pin-bottom{position:relative}.pinned{position:fixed !important}ul.staggered-list li{opacity:0}.fade-in{opacity:0;-webkit-transform-origin:0 50%;transform-origin:0 50%}@media only screen and (max-width: 600px){.hide-on-small-only,.hide-on-small-and-down{display:none !important}}@media only screen and (max-width: 992px){.hide-on-med-and-down{display:none !important}}@media only screen and (min-width: 601px){.hide-on-med-and-up{display:none !important}}@media only screen and (min-width: 600px) and (max-width: 992px){.hide-on-med-only{display:none !important}}@media only screen and (min-width: 993px){.hide-on-large-only{display:none !important}}@media only screen and (min-width: 993px){.show-on-large{display:block !important}}@media only screen and (min-width: 600px) and (max-width: 992px){.show-on-medium{display:block !important}}@media only screen and (max-width: 600px){.show-on-small{display:block !important}}@media only screen and (min-width: 601px){.show-on-medium-and-up{display:block !important}}@media only screen and (max-width: 992px){.show-on-medium-and-down{display:block !important}}@media only screen and (max-width: 600px){.center-on-small-only{text-align:center}}footer.page-footer{padding-top:20px;background-color:#ee6e73}footer.page-footer .footer-copyright{overflow:hidden;min-height:50px;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:10px 0px;color:rgba(255,255,255,0.8);background-color:rgba(51,51,51,0.08)}table,th,td{border:none}table{width:100%;display:table}table.bordered>thead>tr,table.bordered>tbody>tr{border-bottom:1px solid #d0d0d0}table.striped>tbody>tr:nth-child(odd){background-color:#f2f2f2}table.striped>tbody>tr>td{border-radius:0}table.highlight>tbody>tr{transition:background-color .25s ease}table.highlight>tbody>tr:hover{background-color:#f2f2f2}table.centered thead tr th,table.centered tbody tr td{text-align:center}thead{border-bottom:1px solid #d0d0d0}td,th{padding:15px 5px;display:table-cell;text-align:left;vertical-align:middle;border-radius:2px}@media only screen and (max-width: 992px){table.responsive-table{width:100%;border-collapse:collapse;border-spacing:0;display:block;position:relative}table.responsive-table td:empty:before{content:'\00a0'}table.responsive-table th,table.responsive-table td{margin:0;vertical-align:top}table.responsive-table th{text-align:left}table.responsive-table thead{display:block;float:left}table.responsive-table thead tr{display:block;padding:0 10px 0 0}table.responsive-table thead tr th::before{content:"\00a0"}table.responsive-table tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}table.responsive-table tbody tr{display:inline-block;vertical-align:top}table.responsive-table th{display:block;text-align:right}table.responsive-table td{display:block;min-height:1.25em;text-align:left}table.responsive-table tr{padding:0 10px}table.responsive-table thead{border:0;border-right:1px solid #d0d0d0}table.responsive-table.bordered th{border-bottom:0;border-left:0}table.responsive-table.bordered td{border-left:0;border-right:0;border-bottom:0}table.responsive-table.bordered tr{border:0}table.responsive-table.bordered tbody tr{border-right:1px solid #d0d0d0}}.collection{margin:.5rem 0 1rem 0;border:1px solid #e0e0e0;border-radius:2px;overflow:hidden;position:relative}.collection .collection-item{background-color:#fff;line-height:1.5rem;padding:10px 20px;margin:0;border-bottom:1px solid #e0e0e0}.collection .collection-item.avatar{min-height:84px;padding-left:72px;position:relative}.collection .collection-item.avatar .circle{position:absolute;width:42px;height:42px;overflow:hidden;left:15px;display:inline-block;vertical-align:middle}.collection .collection-item.avatar i.circle{font-size:18px;line-height:42px;color:#fff;background-color:#999;text-align:center}.collection .collection-item.avatar .title{font-size:16px}.collection .collection-item.avatar p{margin:0}.collection .collection-item.avatar .secondary-content{position:absolute;top:16px;right:16px}.collection .collection-item:last-child{border-bottom:none}.collection .collection-item.active{background-color:#26a69a;color:#eafaf9}.collection .collection-item.active .secondary-content{color:#fff}.collection a.collection-item{display:block;transition:.25s;color:#26a69a}.collection a.collection-item:not(.active):hover{background-color:#ddd}.collection.with-header .collection-header{background-color:#fff;border-bottom:1px solid #e0e0e0;padding:10px 20px}.collection.with-header .collection-item{padding-left:30px}.collection.with-header .collection-item.avatar{padding-left:72px}.secondary-content{float:right;color:#26a69a}.collapsible .collection{margin:0;border:none}.video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.video-container iframe,.video-container object,.video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.progress{position:relative;height:4px;display:block;width:100%;background-color:#acece6;border-radius:2px;margin:.5rem 0 1rem 0;overflow:hidden}.progress .determinate{position:absolute;top:0;left:0;bottom:0;background-color:#26a69a;transition:width .3s linear}.progress .indeterminate{background-color:#26a69a}.progress .indeterminate:before{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.progress .indeterminate:after{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}.hide{display:none !important}.left-align{text-align:left}.right-align{text-align:right}.center,.center-align{text-align:center}.left{float:left !important}.right{float:right !important}.no-select,input[type=range],input[type=range]+.thumb{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.circle{border-radius:50%}.center-block{display:block;margin-left:auto;margin-right:auto}.truncate{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-padding{padding:0 !important}span.badge{min-width:3rem;padding:0 6px;margin-left:14px;text-align:center;font-size:1rem;line-height:22px;height:22px;color:#757575;float:right;box-sizing:border-box}span.badge.new{font-weight:300;font-size:0.8rem;color:#fff;background-color:#26a69a;border-radius:2px}span.badge.new:after{content:" new"}span.badge[data-badge-caption]::after{content:" " attr(data-badge-caption)}nav ul a span.badge{display:inline-block;float:none;margin-left:4px;line-height:22px;height:22px}.collection-item span.badge{margin-top:calc(.75rem - 11px)}.collapsible span.badge{margin-top:calc(1.5rem - 11px)}.side-nav span.badge{margin-top:calc(24px - 11px)}.material-icons{text-rendering:optimizeLegibility;-webkit-font-feature-settings:'liga';-moz-font-feature-settings:'liga';font-feature-settings:'liga'}.container{margin:0 auto;max-width:1280px;width:90%}@media only screen and (min-width: 601px){.container{width:85%}}@media only screen and (min-width: 993px){.container{width:70%}}.container .row{margin-left:-.75rem;margin-right:-.75rem}.section{padding-top:1rem;padding-bottom:1rem}.section.no-pad{padding:0}.section.no-pad-bot{padding-bottom:0}.section.no-pad-top{padding-top:0}.row{margin-left:auto;margin-right:auto;margin-bottom:20px}.row:after{content:"";display:table;clear:both}.row .col{float:left;box-sizing:border-box;padding:0 .75rem;min-height:1px}.row .col[class*="push-"],.row .col[class*="pull-"]{position:relative}.row .col.s1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.s4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.s7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.s10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-s1{margin-left:8.3333333333%}.row .col.pull-s1{right:8.3333333333%}.row .col.push-s1{left:8.3333333333%}.row .col.offset-s2{margin-left:16.6666666667%}.row .col.pull-s2{right:16.6666666667%}.row .col.push-s2{left:16.6666666667%}.row .col.offset-s3{margin-left:25%}.row .col.pull-s3{right:25%}.row .col.push-s3{left:25%}.row .col.offset-s4{margin-left:33.3333333333%}.row .col.pull-s4{right:33.3333333333%}.row .col.push-s4{left:33.3333333333%}.row .col.offset-s5{margin-left:41.6666666667%}.row .col.pull-s5{right:41.6666666667%}.row .col.push-s5{left:41.6666666667%}.row .col.offset-s6{margin-left:50%}.row .col.pull-s6{right:50%}.row .col.push-s6{left:50%}.row .col.offset-s7{margin-left:58.3333333333%}.row .col.pull-s7{right:58.3333333333%}.row .col.push-s7{left:58.3333333333%}.row .col.offset-s8{margin-left:66.6666666667%}.row .col.pull-s8{right:66.6666666667%}.row .col.push-s8{left:66.6666666667%}.row .col.offset-s9{margin-left:75%}.row .col.pull-s9{right:75%}.row .col.push-s9{left:75%}.row .col.offset-s10{margin-left:83.3333333333%}.row .col.pull-s10{right:83.3333333333%}.row .col.push-s10{left:83.3333333333%}.row .col.offset-s11{margin-left:91.6666666667%}.row .col.pull-s11{right:91.6666666667%}.row .col.push-s11{left:91.6666666667%}.row .col.offset-s12{margin-left:100%}.row .col.pull-s12{right:100%}.row .col.push-s12{left:100%}@media only screen and (min-width: 601px){.row .col.m1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.m4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.m7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.m10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-m1{margin-left:8.3333333333%}.row .col.pull-m1{right:8.3333333333%}.row .col.push-m1{left:8.3333333333%}.row .col.offset-m2{margin-left:16.6666666667%}.row .col.pull-m2{right:16.6666666667%}.row .col.push-m2{left:16.6666666667%}.row .col.offset-m3{margin-left:25%}.row .col.pull-m3{right:25%}.row .col.push-m3{left:25%}.row .col.offset-m4{margin-left:33.3333333333%}.row .col.pull-m4{right:33.3333333333%}.row .col.push-m4{left:33.3333333333%}.row .col.offset-m5{margin-left:41.6666666667%}.row .col.pull-m5{right:41.6666666667%}.row .col.push-m5{left:41.6666666667%}.row .col.offset-m6{margin-left:50%}.row .col.pull-m6{right:50%}.row .col.push-m6{left:50%}.row .col.offset-m7{margin-left:58.3333333333%}.row .col.pull-m7{right:58.3333333333%}.row .col.push-m7{left:58.3333333333%}.row .col.offset-m8{margin-left:66.6666666667%}.row .col.pull-m8{right:66.6666666667%}.row .col.push-m8{left:66.6666666667%}.row .col.offset-m9{margin-left:75%}.row .col.pull-m9{right:75%}.row .col.push-m9{left:75%}.row .col.offset-m10{margin-left:83.3333333333%}.row .col.pull-m10{right:83.3333333333%}.row .col.push-m10{left:83.3333333333%}.row .col.offset-m11{margin-left:91.6666666667%}.row .col.pull-m11{right:91.6666666667%}.row .col.push-m11{left:91.6666666667%}.row .col.offset-m12{margin-left:100%}.row .col.pull-m12{right:100%}.row .col.push-m12{left:100%}}@media only screen and (min-width: 993px){.row .col.l1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.l4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.l7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.l10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-l1{margin-left:8.3333333333%}.row .col.pull-l1{right:8.3333333333%}.row .col.push-l1{left:8.3333333333%}.row .col.offset-l2{margin-left:16.6666666667%}.row .col.pull-l2{right:16.6666666667%}.row .col.push-l2{left:16.6666666667%}.row .col.offset-l3{margin-left:25%}.row .col.pull-l3{right:25%}.row .col.push-l3{left:25%}.row .col.offset-l4{margin-left:33.3333333333%}.row .col.pull-l4{right:33.3333333333%}.row .col.push-l4{left:33.3333333333%}.row .col.offset-l5{margin-left:41.6666666667%}.row .col.pull-l5{right:41.6666666667%}.row .col.push-l5{left:41.6666666667%}.row .col.offset-l6{margin-left:50%}.row .col.pull-l6{right:50%}.row .col.push-l6{left:50%}.row .col.offset-l7{margin-left:58.3333333333%}.row .col.pull-l7{right:58.3333333333%}.row .col.push-l7{left:58.3333333333%}.row .col.offset-l8{margin-left:66.6666666667%}.row .col.pull-l8{right:66.6666666667%}.row .col.push-l8{left:66.6666666667%}.row .col.offset-l9{margin-left:75%}.row .col.pull-l9{right:75%}.row .col.push-l9{left:75%}.row .col.offset-l10{margin-left:83.3333333333%}.row .col.pull-l10{right:83.3333333333%}.row .col.push-l10{left:83.3333333333%}.row .col.offset-l11{margin-left:91.6666666667%}.row .col.pull-l11{right:91.6666666667%}.row .col.push-l11{left:91.6666666667%}.row .col.offset-l12{margin-left:100%}.row .col.pull-l12{right:100%}.row .col.push-l12{left:100%}}nav{color:#fff;background-color:#ee6e73;width:100%;height:56px;line-height:56px}nav.nav-extended{height:auto}nav.nav-extended .nav-wrapper{min-height:56px;height:auto}nav.nav-extended .nav-content{position:relative;line-height:normal}nav a{color:#fff}nav i,nav [class^="mdi-"],nav [class*="mdi-"],nav i.material-icons{display:block;font-size:24px;height:56px;line-height:56px}nav .nav-wrapper{position:relative;height:100%}@media only screen and (min-width: 993px){nav a.button-collapse{display:none}}nav .button-collapse{float:left;position:relative;z-index:1;height:56px;margin:0 18px}nav .button-collapse i{height:56px;line-height:56px}nav .brand-logo{position:absolute;color:#fff;display:inline-block;font-size:2.1rem;padding:0;white-space:nowrap}nav .brand-logo.center{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}@media only screen and (max-width: 992px){nav .brand-logo{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}nav .brand-logo.left,nav .brand-logo.right{padding:0;-webkit-transform:none;transform:none}nav .brand-logo.left{left:0.5rem}nav .brand-logo.right{right:0.5rem;left:auto}}nav .brand-logo.right{right:0.5rem;padding:0}nav .brand-logo i,nav .brand-logo [class^="mdi-"],nav .brand-logo [class*="mdi-"],nav .brand-logo i.material-icons{float:left;margin-right:15px}nav .nav-title{display:inline-block;font-size:32px;padding:28px 0}nav ul{margin:0}nav ul li{transition:background-color .3s;float:left;padding:0}nav ul li.active{background-color:rgba(0,0,0,0.1)}nav ul a{transition:background-color .3s;font-size:1rem;color:#fff;display:block;padding:0 15px;cursor:pointer}nav ul a.btn,nav ul a.btn-large,nav ul a.btn-large,nav ul a.btn-flat,nav ul a.btn-floating{margin-top:-2px;margin-left:15px;margin-right:15px}nav ul a.btn>.material-icons,nav ul a.btn-large>.material-icons,nav ul a.btn-large>.material-icons,nav ul a.btn-flat>.material-icons,nav ul a.btn-floating>.material-icons{height:inherit;line-height:inherit}nav ul a:hover{background-color:rgba(0,0,0,0.1)}nav ul.left{float:left}nav form{height:100%}nav .input-field{margin:0;height:100%}nav .input-field input{height:100%;font-size:1.2rem;border:none;padding-left:2rem}nav .input-field input:focus,nav .input-field input[type=text]:valid,nav .input-field input[type=password]:valid,nav .input-field input[type=email]:valid,nav .input-field input[type=url]:valid,nav .input-field input[type=date]:valid{border:none;box-shadow:none}nav .input-field label{top:0;left:0}nav .input-field label i{color:rgba(255,255,255,0.7);transition:color .3s}nav .input-field label.active i{color:#fff}.navbar-fixed{position:relative;height:56px;z-index:997}.navbar-fixed nav{position:fixed}@media only screen and (min-width: 601px){nav.nav-extended .nav-wrapper{min-height:64px}nav,nav .nav-wrapper i,nav a.button-collapse,nav a.button-collapse i{height:64px;line-height:64px}.navbar-fixed{height:64px}}@font-face{font-family:"Roboto";src:local(Roboto Thin),url("../fonts/roboto/Roboto-Thin.eot");src:url("../fonts/roboto/Roboto-Thin.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Thin.woff2") format("woff2"),url("../fonts/roboto/Roboto-Thin.woff") format("woff"),url("../fonts/roboto/Roboto-Thin.ttf") format("truetype");font-weight:200}@font-face{font-family:"Roboto";src:local(Roboto Light),url("../fonts/roboto/Roboto-Light.eot");src:url("../fonts/roboto/Roboto-Light.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Light.woff2") format("woff2"),url("../fonts/roboto/Roboto-Light.woff") format("woff"),url("../fonts/roboto/Roboto-Light.ttf") format("truetype");font-weight:300}@font-face{font-family:"Roboto";src:local(Roboto Regular),url("../fonts/roboto/Roboto-Regular.eot");src:url("../fonts/roboto/Roboto-Regular.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Regular.woff2") format("woff2"),url("../fonts/roboto/Roboto-Regular.woff") format("woff"),url("../fonts/roboto/Roboto-Regular.ttf") format("truetype");font-weight:400}@font-face{font-family:"Roboto";src:url("../fonts/roboto/Roboto-Medium.eot");src:url("../fonts/roboto/Roboto-Medium.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Medium.woff2") format("woff2"),url("../fonts/roboto/Roboto-Medium.woff") format("woff"),url("../fonts/roboto/Roboto-Medium.ttf") format("truetype");font-weight:500}@font-face{font-family:"Roboto";src:url("../fonts/roboto/Roboto-Bold.eot");src:url("../fonts/roboto/Roboto-Bold.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Bold.woff2") format("woff2"),url("../fonts/roboto/Roboto-Bold.woff") format("woff"),url("../fonts/roboto/Roboto-Bold.ttf") format("truetype");font-weight:700}a{text-decoration:none}html{line-height:1.5;font-family:"Roboto", sans-serif;font-weight:normal;color:rgba(0,0,0,0.87)}@media only screen and (min-width: 0){html{font-size:14px}}@media only screen and (min-width: 992px){html{font-size:14.5px}}@media only screen and (min-width: 1200px){html{font-size:15px}}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1.1}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{font-weight:inherit}h1{font-size:4.2rem;line-height:110%;margin:2.1rem 0 1.68rem 0}h2{font-size:3.56rem;line-height:110%;margin:1.78rem 0 1.424rem 0}h3{font-size:2.92rem;line-height:110%;margin:1.46rem 0 1.168rem 0}h4{font-size:2.28rem;line-height:110%;margin:1.14rem 0 .912rem 0}h5{font-size:1.64rem;line-height:110%;margin:.82rem 0 .656rem 0}h6{font-size:1rem;line-height:110%;margin:.5rem 0 .4rem 0}em{font-style:italic}strong{font-weight:500}small{font-size:75%}.light,footer.page-footer .footer-copyright{font-weight:300}.thin{font-weight:200}.flow-text{font-weight:300}@media only screen and (min-width: 360px){.flow-text{font-size:1.2rem}}@media only screen and (min-width: 390px){.flow-text{font-size:1.224rem}}@media only screen and (min-width: 420px){.flow-text{font-size:1.248rem}}@media only screen and (min-width: 450px){.flow-text{font-size:1.272rem}}@media only screen and (min-width: 480px){.flow-text{font-size:1.296rem}}@media only screen and (min-width: 510px){.flow-text{font-size:1.32rem}}@media only screen and (min-width: 540px){.flow-text{font-size:1.344rem}}@media only screen and (min-width: 570px){.flow-text{font-size:1.368rem}}@media only screen and (min-width: 600px){.flow-text{font-size:1.392rem}}@media only screen and (min-width: 630px){.flow-text{font-size:1.416rem}}@media only screen and (min-width: 660px){.flow-text{font-size:1.44rem}}@media only screen and (min-width: 690px){.flow-text{font-size:1.464rem}}@media only screen and (min-width: 720px){.flow-text{font-size:1.488rem}}@media only screen and (min-width: 750px){.flow-text{font-size:1.512rem}}@media only screen and (min-width: 780px){.flow-text{font-size:1.536rem}}@media only screen and (min-width: 810px){.flow-text{font-size:1.56rem}}@media only screen and (min-width: 840px){.flow-text{font-size:1.584rem}}@media only screen and (min-width: 870px){.flow-text{font-size:1.608rem}}@media only screen and (min-width: 900px){.flow-text{font-size:1.632rem}}@media only screen and (min-width: 930px){.flow-text{font-size:1.656rem}}@media only screen and (min-width: 960px){.flow-text{font-size:1.68rem}}@media only screen and (max-width: 360px){.flow-text{font-size:1.2rem}}.scale-transition{transition:-webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;transition:transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;transition:transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63), -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important}.scale-transition.scale-out{-webkit-transform:scale(0);transform:scale(0);transition:-webkit-transform .2s !important;transition:transform .2s !important;transition:transform .2s, -webkit-transform .2s !important}.scale-transition.scale-in{-webkit-transform:scale(1);transform:scale(1)}.card-panel{transition:box-shadow .25s;padding:24px;margin:.5rem 0 1rem 0;border-radius:2px;background-color:#fff}.card{position:relative;margin:.5rem 0 1rem 0;background-color:#fff;transition:box-shadow .25s;border-radius:2px}.card .card-title{font-size:24px;font-weight:300}.card .card-title.activator{cursor:pointer}.card.small,.card.medium,.card.large{position:relative}.card.small .card-image,.card.medium .card-image,.card.large .card-image{max-height:60%;overflow:hidden}.card.small .card-image+.card-content,.card.medium .card-image+.card-content,.card.large .card-image+.card-content{max-height:40%}.card.small .card-content,.card.medium .card-content,.card.large .card-content{max-height:100%;overflow:hidden}.card.small .card-action,.card.medium .card-action,.card.large .card-action{position:absolute;bottom:0;left:0;right:0}.card.small{height:300px}.card.medium{height:400px}.card.large{height:500px}.card.horizontal{display:-webkit-flex;display:-ms-flexbox;display:flex}.card.horizontal.small .card-image,.card.horizontal.medium .card-image,.card.horizontal.large .card-image{height:100%;max-height:none;overflow:visible}.card.horizontal.small .card-image img,.card.horizontal.medium .card-image img,.card.horizontal.large .card-image img{height:100%}.card.horizontal .card-image{max-width:50%}.card.horizontal .card-image img{border-radius:2px 0 0 2px;max-width:100%;width:auto}.card.horizontal .card-stacked{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex:1;-ms-flex:1;flex:1;position:relative}.card.horizontal .card-stacked .card-content{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.card.sticky-action .card-action{z-index:2}.card.sticky-action .card-reveal{z-index:1;padding-bottom:64px}.card .card-image{position:relative}.card .card-image img{display:block;border-radius:2px 2px 0 0;position:relative;left:0;right:0;top:0;bottom:0;width:100%}.card .card-image .card-title{color:#fff;position:absolute;bottom:0;left:0;max-width:100%;padding:24px}.card .card-content{padding:24px;border-radius:0 0 2px 2px}.card .card-content p{margin:0;color:inherit}.card .card-content .card-title{display:block;line-height:32px;margin-bottom:8px}.card .card-content .card-title i{line-height:32px}.card .card-action{position:relative;background-color:inherit;border-top:1px solid rgba(160,160,160,0.2);padding:16px 24px}.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating){color:#ffab40;margin-right:24px;transition:color .3s ease;text-transform:uppercase}.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating):hover{color:#ffd8a6}.card .card-reveal{padding:24px;position:absolute;background-color:#fff;width:100%;overflow-y:auto;left:0;top:100%;height:100%;z-index:3;display:none}.card .card-reveal .card-title{cursor:pointer;display:block}#toast-container{display:block;position:fixed;z-index:10000}@media only screen and (max-width: 600px){#toast-container{min-width:100%;bottom:0%}}@media only screen and (min-width: 601px) and (max-width: 992px){#toast-container{left:5%;bottom:7%;max-width:90%}}@media only screen and (min-width: 993px){#toast-container{top:10%;right:7%;max-width:86%}}.toast{border-radius:2px;top:35px;width:auto;clear:both;margin-top:10px;position:relative;max-width:100%;height:auto;min-height:48px;line-height:1.5em;word-break:break-all;background-color:#323232;padding:10px 25px;font-size:1.1rem;font-weight:300;color:#fff;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.toast .btn,.toast .btn-large,.toast .btn-flat{margin:0;margin-left:3rem}.toast.rounded{border-radius:24px}@media only screen and (max-width: 600px){.toast{width:100%;border-radius:0}}@media only screen and (min-width: 601px) and (max-width: 992px){.toast{float:left}}@media only screen and (min-width: 993px){.toast{float:right}}.tabs{position:relative;overflow-x:auto;overflow-y:hidden;height:48px;width:100%;background-color:#fff;margin:0 auto;white-space:nowrap}.tabs.tabs-transparent{background-color:transparent}.tabs.tabs-transparent .tab a,.tabs.tabs-transparent .tab.disabled a,.tabs.tabs-transparent .tab.disabled a:hover{color:rgba(255,255,255,0.7)}.tabs.tabs-transparent .tab a:hover,.tabs.tabs-transparent .tab a.active{color:#fff}.tabs.tabs-transparent .indicator{background-color:#fff}.tabs.tabs-fixed-width{display:-webkit-flex;display:-ms-flexbox;display:flex}.tabs.tabs-fixed-width .tab{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.tabs .tab{display:inline-block;text-align:center;line-height:48px;height:48px;padding:0;margin:0;text-transform:uppercase}.tabs .tab a{color:rgba(238,110,115,0.7);display:block;width:100%;height:100%;padding:0 24px;font-size:14px;text-overflow:ellipsis;overflow:hidden;transition:color .28s ease}.tabs .tab a:hover,.tabs .tab a.active{background-color:transparent;color:#ee6e73}.tabs .tab.disabled a,.tabs .tab.disabled a:hover{color:rgba(238,110,115,0.7);cursor:default}.tabs .indicator{position:absolute;bottom:0;height:2px;background-color:#f6b2b5;will-change:left, right}@media only screen and (max-width: 992px){.tabs{display:-webkit-flex;display:-ms-flexbox;display:flex}.tabs .tab{-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.tabs .tab a{padding:0 12px}}.material-tooltip{padding:10px 8px;font-size:1rem;z-index:2000;background-color:transparent;border-radius:2px;color:#fff;min-height:36px;line-height:120%;opacity:0;position:absolute;text-align:center;max-width:calc(100% - 4px);overflow:hidden;left:0;top:0;pointer-events:none;visibility:hidden}.backdrop{position:absolute;opacity:0;height:7px;width:14px;border-radius:0 0 50% 50%;background-color:#323232;z-index:-1;-webkit-transform-origin:50% 0%;transform-origin:50% 0%;visibility:hidden}.btn,.btn-large,.btn-flat{border:none;border-radius:2px;display:inline-block;height:36px;line-height:36px;padding:0 2rem;text-transform:uppercase;vertical-align:middle;-webkit-tap-highlight-color:transparent}.btn.disabled,.disabled.btn-large,.btn-floating.disabled,.btn-large.disabled,.btn-flat.disabled,.btn:disabled,.btn-large:disabled,.btn-floating:disabled,.btn-large:disabled,.btn-flat:disabled,.btn[disabled],[disabled].btn-large,.btn-floating[disabled],.btn-large[disabled],.btn-flat[disabled]{pointer-events:none;background-color:#DFDFDF !important;box-shadow:none;color:#9F9F9F !important;cursor:default}.btn.disabled:hover,.disabled.btn-large:hover,.btn-floating.disabled:hover,.btn-large.disabled:hover,.btn-flat.disabled:hover,.btn:disabled:hover,.btn-large:disabled:hover,.btn-floating:disabled:hover,.btn-large:disabled:hover,.btn-flat:disabled:hover,.btn[disabled]:hover,[disabled].btn-large:hover,.btn-floating[disabled]:hover,.btn-large[disabled]:hover,.btn-flat[disabled]:hover{background-color:#DFDFDF !important;color:#9F9F9F !important}.btn,.btn-large,.btn-floating,.btn-large,.btn-flat{outline:0}.btn i,.btn-large i,.btn-floating i,.btn-large i,.btn-flat i{font-size:1.3rem;line-height:inherit}.btn:focus,.btn-large:focus,.btn-floating:focus{background-color:#1d7d74}.btn,.btn-large{text-decoration:none;color:#fff;background-color:#26a69a;text-align:center;letter-spacing:.5px;transition:.2s ease-out;cursor:pointer}.btn:hover,.btn-large:hover{background-color:#2bbbad}.btn-floating{display:inline-block;color:#fff;position:relative;overflow:hidden;z-index:1;width:40px;height:40px;line-height:40px;padding:0;background-color:#26a69a;border-radius:50%;transition:.3s;cursor:pointer;vertical-align:middle}.btn-floating:hover{background-color:#26a69a}.btn-floating:before{border-radius:0}.btn-floating.btn-large{width:56px;height:56px}.btn-floating.btn-large i{line-height:56px}.btn-floating.halfway-fab{position:absolute;right:24px;bottom:0;-webkit-transform:translateY(50%);transform:translateY(50%)}.btn-floating.halfway-fab.left{right:auto;left:24px}.btn-floating i{width:inherit;display:inline-block;text-align:center;color:#fff;font-size:1.6rem;line-height:40px}button.btn-floating{border:none}.fixed-action-btn{position:fixed;right:23px;bottom:23px;padding-top:15px;margin-bottom:0;z-index:998}.fixed-action-btn.active ul{visibility:visible}.fixed-action-btn.horizontal{padding:0 0 0 15px}.fixed-action-btn.horizontal ul{text-align:right;right:64px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);height:100%;left:auto;width:500px}.fixed-action-btn.horizontal ul li{display:inline-block;margin:15px 15px 0 0}.fixed-action-btn.toolbar{padding:0;height:56px}.fixed-action-btn.toolbar.active>a i{opacity:0}.fixed-action-btn.toolbar ul{display:-webkit-flex;display:-ms-flexbox;display:flex;top:0;bottom:0}.fixed-action-btn.toolbar ul li{-webkit-flex:1;-ms-flex:1;flex:1;display:inline-block;margin:0;height:100%;transition:none}.fixed-action-btn.toolbar ul li a{display:block;overflow:hidden;position:relative;width:100%;height:100%;background-color:transparent;box-shadow:none;color:#fff;line-height:56px;z-index:1}.fixed-action-btn.toolbar ul li a i{line-height:inherit}.fixed-action-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0;visibility:hidden}.fixed-action-btn ul li{margin-bottom:15px}.fixed-action-btn ul a.btn-floating{opacity:0}.fixed-action-btn .fab-backdrop{position:absolute;top:0;left:0;z-index:-1;width:40px;height:40px;background-color:#26a69a;border-radius:50%;-webkit-transform:scale(0);transform:scale(0)}.btn-flat{box-shadow:none;background-color:transparent;color:#343434;cursor:pointer;transition:background-color .2s}.btn-flat:focus,.btn-flat:active{background-color:transparent}.btn-flat:focus,.btn-flat:hover{background-color:rgba(0,0,0,0.1);box-shadow:none}.btn-flat:active{background-color:rgba(0,0,0,0.2)}.btn-flat.disabled{background-color:transparent !important;color:#b3b3b3 !important;cursor:default}.btn-large{height:54px;line-height:54px}.btn-large i{font-size:1.6rem}.btn-block{display:block}.dropdown-content{background-color:#fff;margin:0;display:none;min-width:100px;max-height:650px;overflow-y:auto;opacity:0;position:absolute;z-index:999;will-change:width, height}.dropdown-content li{clear:both;color:rgba(0,0,0,0.87);cursor:pointer;min-height:50px;line-height:1.5rem;width:100%;text-align:left;text-transform:none}.dropdown-content li:hover,.dropdown-content li.active,.dropdown-content li.selected{background-color:#eee}.dropdown-content li.active.selected{background-color:#e1e1e1}.dropdown-content li.divider{min-height:0;height:1px}.dropdown-content li>a,.dropdown-content li>span{font-size:16px;color:#26a69a;display:block;line-height:22px;padding:14px 16px}.dropdown-content li>span>label{top:1px;left:0;height:18px}.dropdown-content li>a>i{height:inherit;line-height:inherit}.input-field.col .dropdown-content [type="checkbox"]+label{top:1px;left:0;height:18px}/*! - * Waves v0.6.0 - * http://fian.my.id/Waves - * - * Copyright 2014 Alfiana E. Sibuea and other contributors - * Released under the MIT license - * https://github.com/fians/Waves/blob/master/LICENSE - */.waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle;z-index:1;transition:.3s ease-out}.waves-effect .waves-ripple{position:absolute;border-radius:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;opacity:0;background:rgba(0,0,0,0.2);transition:all 0.7s ease-out;transition-property:opacity, -webkit-transform;transition-property:transform, opacity;transition-property:transform, opacity, -webkit-transform;-webkit-transform:scale(0);transform:scale(0);pointer-events:none}.waves-effect.waves-light .waves-ripple{background-color:rgba(255,255,255,0.45)}.waves-effect.waves-red .waves-ripple{background-color:rgba(244,67,54,0.7)}.waves-effect.waves-yellow .waves-ripple{background-color:rgba(255,235,59,0.7)}.waves-effect.waves-orange .waves-ripple{background-color:rgba(255,152,0,0.7)}.waves-effect.waves-purple .waves-ripple{background-color:rgba(156,39,176,0.7)}.waves-effect.waves-green .waves-ripple{background-color:rgba(76,175,80,0.7)}.waves-effect.waves-teal .waves-ripple{background-color:rgba(0,150,136,0.7)}.waves-effect input[type="button"],.waves-effect input[type="reset"],.waves-effect input[type="submit"]{border:0;font-style:normal;font-size:inherit;text-transform:inherit;background:none}.waves-effect img{position:relative;z-index:-1}.waves-notransition{transition:none !important}.waves-circle{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(circle, #fff 100%, #000 100%)}.waves-input-wrapper{border-radius:0.2em;vertical-align:bottom}.waves-input-wrapper .waves-button-input{position:relative;top:0;left:0;z-index:1}.waves-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%;-webkit-mask-image:none}.waves-block{display:block}.waves-effect .waves-ripple{z-index:-1}.modal{display:none;position:fixed;left:0;right:0;background-color:#fafafa;padding:0;max-height:70%;width:55%;margin:auto;overflow-y:auto;border-radius:2px;will-change:top, opacity}@media only screen and (max-width: 992px){.modal{width:80%}}.modal h1,.modal h2,.modal h3,.modal h4{margin-top:0}.modal .modal-content{padding:24px}.modal .modal-close{cursor:pointer}.modal .modal-footer{border-radius:0 0 2px 2px;background-color:#fafafa;padding:4px 6px;height:56px;width:100%}.modal .modal-footer .btn,.modal .modal-footer .btn-large,.modal .modal-footer .btn-flat{float:right;margin:6px 0}.modal-overlay{position:fixed;z-index:999;top:-100px;left:0;bottom:0;right:0;height:125%;width:100%;background:#000;display:none;will-change:opacity}.modal.modal-fixed-footer{padding:0;height:70%}.modal.modal-fixed-footer .modal-content{position:absolute;height:calc(100% - 56px);max-height:100%;width:100%;overflow-y:auto}.modal.modal-fixed-footer .modal-footer{border-top:1px solid rgba(0,0,0,0.1);position:absolute;bottom:0}.modal.bottom-sheet{top:auto;bottom:-100%;margin:0;width:100%;max-height:45%;border-radius:0;will-change:bottom, opacity}.collapsible{border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;margin:.5rem 0 1rem 0}.collapsible-header{display:block;cursor:pointer;min-height:3rem;line-height:3rem;padding:0 1rem;background-color:#fff;border-bottom:1px solid #ddd}.collapsible-header i{width:2rem;font-size:1.6rem;line-height:3rem;display:block;float:left;text-align:center;margin-right:1rem}.collapsible-body{display:none;border-bottom:1px solid #ddd;box-sizing:border-box;padding:2rem}.side-nav .collapsible,.side-nav.fixed .collapsible{border:none;box-shadow:none}.side-nav .collapsible li,.side-nav.fixed .collapsible li{padding:0}.side-nav .collapsible-header,.side-nav.fixed .collapsible-header{background-color:transparent;border:none;line-height:inherit;height:inherit;padding:0 16px}.side-nav .collapsible-header:hover,.side-nav.fixed .collapsible-header:hover{background-color:rgba(0,0,0,0.05)}.side-nav .collapsible-header i,.side-nav.fixed .collapsible-header i{line-height:inherit}.side-nav .collapsible-body,.side-nav.fixed .collapsible-body{border:0;background-color:#fff}.side-nav .collapsible-body li a,.side-nav.fixed .collapsible-body li a{padding:0 23.5px 0 31px}.collapsible.popout{border:none;box-shadow:none}.collapsible.popout>li{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);margin:0 24px;transition:margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.collapsible.popout>li.active{box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15);margin:16px 0}.chip{display:inline-block;height:32px;font-size:13px;font-weight:500;color:rgba(0,0,0,0.6);line-height:32px;padding:0 12px;border-radius:16px;background-color:#e4e4e4;margin-bottom:5px;margin-right:5px}.chip img{float:left;margin:0 8px 0 -12px;height:32px;width:32px;border-radius:50%}.chip .close{cursor:pointer;float:right;font-size:16px;line-height:32px;padding-left:8px}.chips{border:none;border-bottom:1px solid #9e9e9e;box-shadow:none;margin:0 0 20px 0;min-height:45px;outline:none;transition:all .3s}.chips.focus{border-bottom:1px solid #26a69a;box-shadow:0 1px 0 0 #26a69a}.chips:hover{cursor:text}.chips .chip.selected{background-color:#26a69a;color:#fff}.chips .input{background:none;border:0;color:rgba(0,0,0,0.6);display:inline-block;font-size:1rem;height:3rem;line-height:32px;outline:0;margin:0;padding:0 !important;width:120px !important}.chips .input:focus{border:0 !important;box-shadow:none !important}.prefix ~ .chips{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.chips:empty ~ label{font-size:0.8rem;-webkit-transform:translateY(-140%);transform:translateY(-140%)}.materialboxed{display:block;cursor:-webkit-zoom-in;cursor:zoom-in;position:relative;transition:opacity .4s;-webkit-backface-visibility:hidden}.materialboxed:hover:not(.active){opacity:.8}.materialboxed.active{cursor:-webkit-zoom-out;cursor:zoom-out}#materialbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#292929;z-index:1000;will-change:opacity}.materialbox-caption{position:fixed;display:none;color:#fff;line-height:50px;bottom:0;left:0;width:100%;text-align:center;padding:0% 15%;height:50px;z-index:1000;-webkit-font-smoothing:antialiased}select:focus{outline:1px solid #c9f3ef}button:focus{outline:none;background-color:#2ab7a9}label{font-size:.8rem;color:#9e9e9e}::-webkit-input-placeholder{color:#d1d1d1}:-moz-placeholder{color:#d1d1d1}::-moz-placeholder{color:#d1d1d1}:-ms-input-placeholder{color:#d1d1d1}input:not([type]),input[type=text],input[type=password],input[type=email],input[type=url],input[type=time],input[type=date],input[type=datetime],input[type=datetime-local],input[type=tel],input[type=number],input[type=search],textarea.materialize-textarea{background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;border-radius:0;outline:none;height:3rem;width:100%;font-size:1rem;margin:0 0 20px 0;padding:0;box-shadow:none;box-sizing:content-box;transition:all 0.3s}input:not([type]):disabled,input:not([type])[readonly="readonly"],input[type=text]:disabled,input[type=text][readonly="readonly"],input[type=password]:disabled,input[type=password][readonly="readonly"],input[type=email]:disabled,input[type=email][readonly="readonly"],input[type=url]:disabled,input[type=url][readonly="readonly"],input[type=time]:disabled,input[type=time][readonly="readonly"],input[type=date]:disabled,input[type=date][readonly="readonly"],input[type=datetime]:disabled,input[type=datetime][readonly="readonly"],input[type=datetime-local]:disabled,input[type=datetime-local][readonly="readonly"],input[type=tel]:disabled,input[type=tel][readonly="readonly"],input[type=number]:disabled,input[type=number][readonly="readonly"],input[type=search]:disabled,input[type=search][readonly="readonly"],textarea.materialize-textarea:disabled,textarea.materialize-textarea[readonly="readonly"]{color:rgba(0,0,0,0.26);border-bottom:1px dotted rgba(0,0,0,0.26)}input:not([type]):disabled+label,input:not([type])[readonly="readonly"]+label,input[type=text]:disabled+label,input[type=text][readonly="readonly"]+label,input[type=password]:disabled+label,input[type=password][readonly="readonly"]+label,input[type=email]:disabled+label,input[type=email][readonly="readonly"]+label,input[type=url]:disabled+label,input[type=url][readonly="readonly"]+label,input[type=time]:disabled+label,input[type=time][readonly="readonly"]+label,input[type=date]:disabled+label,input[type=date][readonly="readonly"]+label,input[type=datetime]:disabled+label,input[type=datetime][readonly="readonly"]+label,input[type=datetime-local]:disabled+label,input[type=datetime-local][readonly="readonly"]+label,input[type=tel]:disabled+label,input[type=tel][readonly="readonly"]+label,input[type=number]:disabled+label,input[type=number][readonly="readonly"]+label,input[type=search]:disabled+label,input[type=search][readonly="readonly"]+label,textarea.materialize-textarea:disabled+label,textarea.materialize-textarea[readonly="readonly"]+label{color:rgba(0,0,0,0.26)}input:not([type]):focus:not([readonly]),input[type=text]:focus:not([readonly]),input[type=password]:focus:not([readonly]),input[type=email]:focus:not([readonly]),input[type=url]:focus:not([readonly]),input[type=time]:focus:not([readonly]),input[type=date]:focus:not([readonly]),input[type=datetime]:focus:not([readonly]),input[type=datetime-local]:focus:not([readonly]),input[type=tel]:focus:not([readonly]),input[type=number]:focus:not([readonly]),input[type=search]:focus:not([readonly]),textarea.materialize-textarea:focus:not([readonly]){border-bottom:1px solid #26a69a;box-shadow:0 1px 0 0 #26a69a}input:not([type]):focus:not([readonly])+label,input[type=text]:focus:not([readonly])+label,input[type=password]:focus:not([readonly])+label,input[type=email]:focus:not([readonly])+label,input[type=url]:focus:not([readonly])+label,input[type=time]:focus:not([readonly])+label,input[type=date]:focus:not([readonly])+label,input[type=datetime]:focus:not([readonly])+label,input[type=datetime-local]:focus:not([readonly])+label,input[type=tel]:focus:not([readonly])+label,input[type=number]:focus:not([readonly])+label,input[type=search]:focus:not([readonly])+label,textarea.materialize-textarea:focus:not([readonly])+label{color:#26a69a}input:not([type]).valid,input:not([type]):focus.valid,input[type=text].valid,input[type=text]:focus.valid,input[type=password].valid,input[type=password]:focus.valid,input[type=email].valid,input[type=email]:focus.valid,input[type=url].valid,input[type=url]:focus.valid,input[type=time].valid,input[type=time]:focus.valid,input[type=date].valid,input[type=date]:focus.valid,input[type=datetime].valid,input[type=datetime]:focus.valid,input[type=datetime-local].valid,input[type=datetime-local]:focus.valid,input[type=tel].valid,input[type=tel]:focus.valid,input[type=number].valid,input[type=number]:focus.valid,input[type=search].valid,input[type=search]:focus.valid,textarea.materialize-textarea.valid,textarea.materialize-textarea:focus.valid{border-bottom:1px solid #4CAF50;box-shadow:0 1px 0 0 #4CAF50}input:not([type]).valid+label:after,input:not([type]):focus.valid+label:after,input[type=text].valid+label:after,input[type=text]:focus.valid+label:after,input[type=password].valid+label:after,input[type=password]:focus.valid+label:after,input[type=email].valid+label:after,input[type=email]:focus.valid+label:after,input[type=url].valid+label:after,input[type=url]:focus.valid+label:after,input[type=time].valid+label:after,input[type=time]:focus.valid+label:after,input[type=date].valid+label:after,input[type=date]:focus.valid+label:after,input[type=datetime].valid+label:after,input[type=datetime]:focus.valid+label:after,input[type=datetime-local].valid+label:after,input[type=datetime-local]:focus.valid+label:after,input[type=tel].valid+label:after,input[type=tel]:focus.valid+label:after,input[type=number].valid+label:after,input[type=number]:focus.valid+label:after,input[type=search].valid+label:after,input[type=search]:focus.valid+label:after,textarea.materialize-textarea.valid+label:after,textarea.materialize-textarea:focus.valid+label:after{content:attr(data-success);color:#4CAF50;opacity:1}input:not([type]).invalid,input:not([type]):focus.invalid,input[type=text].invalid,input[type=text]:focus.invalid,input[type=password].invalid,input[type=password]:focus.invalid,input[type=email].invalid,input[type=email]:focus.invalid,input[type=url].invalid,input[type=url]:focus.invalid,input[type=time].invalid,input[type=time]:focus.invalid,input[type=date].invalid,input[type=date]:focus.invalid,input[type=datetime].invalid,input[type=datetime]:focus.invalid,input[type=datetime-local].invalid,input[type=datetime-local]:focus.invalid,input[type=tel].invalid,input[type=tel]:focus.invalid,input[type=number].invalid,input[type=number]:focus.invalid,input[type=search].invalid,input[type=search]:focus.invalid,textarea.materialize-textarea.invalid,textarea.materialize-textarea:focus.invalid{border-bottom:1px solid #F44336;box-shadow:0 1px 0 0 #F44336}input:not([type]).invalid+label:after,input:not([type]):focus.invalid+label:after,input[type=text].invalid+label:after,input[type=text]:focus.invalid+label:after,input[type=password].invalid+label:after,input[type=password]:focus.invalid+label:after,input[type=email].invalid+label:after,input[type=email]:focus.invalid+label:after,input[type=url].invalid+label:after,input[type=url]:focus.invalid+label:after,input[type=time].invalid+label:after,input[type=time]:focus.invalid+label:after,input[type=date].invalid+label:after,input[type=date]:focus.invalid+label:after,input[type=datetime].invalid+label:after,input[type=datetime]:focus.invalid+label:after,input[type=datetime-local].invalid+label:after,input[type=datetime-local]:focus.invalid+label:after,input[type=tel].invalid+label:after,input[type=tel]:focus.invalid+label:after,input[type=number].invalid+label:after,input[type=number]:focus.invalid+label:after,input[type=search].invalid+label:after,input[type=search]:focus.invalid+label:after,textarea.materialize-textarea.invalid+label:after,textarea.materialize-textarea:focus.invalid+label:after{content:attr(data-error);color:#F44336;opacity:1}input:not([type]).validate+label,input[type=text].validate+label,input[type=password].validate+label,input[type=email].validate+label,input[type=url].validate+label,input[type=time].validate+label,input[type=date].validate+label,input[type=datetime].validate+label,input[type=datetime-local].validate+label,input[type=tel].validate+label,input[type=number].validate+label,input[type=search].validate+label,textarea.materialize-textarea.validate+label{width:100%;pointer-events:none}input:not([type])+label:after,input[type=text]+label:after,input[type=password]+label:after,input[type=email]+label:after,input[type=url]+label:after,input[type=time]+label:after,input[type=date]+label:after,input[type=datetime]+label:after,input[type=datetime-local]+label:after,input[type=tel]+label:after,input[type=number]+label:after,input[type=search]+label:after,textarea.materialize-textarea+label:after{display:block;content:"";position:absolute;top:60px;opacity:0;transition:.2s opacity ease-out, .2s color ease-out}.input-field{position:relative;margin-top:1rem}.input-field.inline{display:inline-block;vertical-align:middle;margin-left:5px}.input-field.inline input,.input-field.inline .select-dropdown{margin-bottom:1rem}.input-field.col label{left:.75rem}.input-field.col .prefix ~ label,.input-field.col .prefix ~ .validate ~ label{width:calc(100% - 3rem - 1.5rem)}.input-field label{color:#9e9e9e;position:absolute;top:0.8rem;left:0;font-size:1rem;cursor:text;transition:.2s ease-out}.input-field label:not(.label-icon).active{font-size:.8rem;-webkit-transform:translateY(-140%);transform:translateY(-140%)}.input-field .prefix{position:absolute;width:3rem;font-size:2rem;transition:color .2s}.input-field .prefix.active{color:#26a69a}.input-field .prefix ~ input,.input-field .prefix ~ textarea,.input-field .prefix ~ label,.input-field .prefix ~ .validate ~ label,.input-field .prefix ~ .autocomplete-content{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.input-field .prefix ~ label{margin-left:3rem}@media only screen and (max-width: 992px){.input-field .prefix ~ input{width:86%;width:calc(100% - 3rem)}}@media only screen and (max-width: 600px){.input-field .prefix ~ input{width:80%;width:calc(100% - 3rem)}}.input-field input[type=search]{display:block;line-height:inherit;padding-left:4rem;width:calc(100% - 4rem)}.input-field input[type=search]:focus{background-color:#fff;border:0;box-shadow:none;color:#444}.input-field input[type=search]:focus+label i,.input-field input[type=search]:focus ~ .mdi-navigation-close,.input-field input[type=search]:focus ~ .material-icons{color:#444}.input-field input[type=search]+label{left:1rem}.input-field input[type=search] ~ .mdi-navigation-close,.input-field input[type=search] ~ .material-icons{position:absolute;top:0;right:1rem;color:transparent;cursor:pointer;font-size:2rem;transition:.3s color}textarea{width:100%;height:3rem;background-color:transparent}textarea.materialize-textarea{overflow-y:hidden;padding:.8rem 0 1.6rem 0;resize:none;min-height:3rem}.hiddendiv{display:none;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;padding-top:1.2rem}.autocomplete-content{margin-top:-15px;display:block;opacity:1;position:static}.autocomplete-content li .highlight{color:#444}.autocomplete-content li img{height:40px;width:40px;margin:5px 15px}[type="radio"]:not(:checked),[type="radio"]:checked{position:absolute;left:-9999px;opacity:0}[type="radio"]:not(:checked)+label,[type="radio"]:checked+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;transition:.28s ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[type="radio"]+label:before,[type="radio"]+label:after{content:'';position:absolute;left:0;top:0;margin:4px;width:16px;height:16px;z-index:0;transition:.28s ease}[type="radio"]:not(:checked)+label:before,[type="radio"]:not(:checked)+label:after,[type="radio"]:checked+label:before,[type="radio"]:checked+label:after,[type="radio"].with-gap:checked+label:before,[type="radio"].with-gap:checked+label:after{border-radius:50%}[type="radio"]:not(:checked)+label:before,[type="radio"]:not(:checked)+label:after{border:2px solid #5a5a5a}[type="radio"]:not(:checked)+label:after{-webkit-transform:scale(0);transform:scale(0)}[type="radio"]:checked+label:before{border:2px solid transparent}[type="radio"]:checked+label:after,[type="radio"].with-gap:checked+label:before,[type="radio"].with-gap:checked+label:after{border:2px solid #26a69a}[type="radio"]:checked+label:after,[type="radio"].with-gap:checked+label:after{background-color:#26a69a}[type="radio"]:checked+label:after{-webkit-transform:scale(1.02);transform:scale(1.02)}[type="radio"].with-gap:checked+label:after{-webkit-transform:scale(0.5);transform:scale(0.5)}[type="radio"].tabbed:focus+label:before{box-shadow:0 0 0 10px rgba(0,0,0,0.1)}[type="radio"].with-gap:disabled:checked+label:before{border:2px solid rgba(0,0,0,0.26)}[type="radio"].with-gap:disabled:checked+label:after{border:none;background-color:rgba(0,0,0,0.26)}[type="radio"]:disabled:not(:checked)+label:before,[type="radio"]:disabled:checked+label:before{background-color:transparent;border-color:rgba(0,0,0,0.26)}[type="radio"]:disabled+label{color:rgba(0,0,0,0.26)}[type="radio"]:disabled:not(:checked)+label:before{border-color:rgba(0,0,0,0.26)}[type="radio"]:disabled:checked+label:after{background-color:rgba(0,0,0,0.26);border-color:#BDBDBD}form p{margin-bottom:10px;text-align:left}form p:last-child{margin-bottom:0}[type="checkbox"]:not(:checked),[type="checkbox"]:checked{position:absolute;left:-9999px;opacity:0}[type="checkbox"]+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}[type="checkbox"]+label:before,[type="checkbox"]:not(.filled-in)+label:after{content:'';position:absolute;top:0;left:0;width:18px;height:18px;z-index:0;border:2px solid #5a5a5a;border-radius:1px;margin-top:2px;transition:.2s}[type="checkbox"]:not(.filled-in)+label:after{border:0;-webkit-transform:scale(0);transform:scale(0)}[type="checkbox"]:not(:checked):disabled+label:before{border:none;background-color:rgba(0,0,0,0.26)}[type="checkbox"].tabbed:focus+label:after{-webkit-transform:scale(1);transform:scale(1);border:0;border-radius:50%;box-shadow:0 0 0 10px rgba(0,0,0,0.1);background-color:rgba(0,0,0,0.1)}[type="checkbox"]:checked+label:before{top:-4px;left:-5px;width:12px;height:22px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #26a69a;border-bottom:2px solid #26a69a;-webkit-transform:rotate(40deg);transform:rotate(40deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:checked:disabled+label:before{border-right:2px solid rgba(0,0,0,0.26);border-bottom:2px solid rgba(0,0,0,0.26)}[type="checkbox"]:indeterminate+label:before{top:-11px;left:-12px;width:10px;height:22px;border-top:none;border-left:none;border-right:2px solid #26a69a;border-bottom:none;-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:indeterminate:disabled+label:before{border-right:2px solid rgba(0,0,0,0.26);background-color:transparent}[type="checkbox"].filled-in+label:after{border-radius:2px}[type="checkbox"].filled-in+label:before,[type="checkbox"].filled-in+label:after{content:'';left:0;position:absolute;transition:border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;z-index:1}[type="checkbox"].filled-in:not(:checked)+label:before{width:0;height:0;border:3px solid transparent;left:6px;top:10px;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:20% 40%;transform-origin:100% 100%}[type="checkbox"].filled-in:not(:checked)+label:after{height:20px;width:20px;background-color:transparent;border:2px solid #5a5a5a;top:0px;z-index:0}[type="checkbox"].filled-in:checked+label:before{top:0;left:1px;width:8px;height:13px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"].filled-in:checked+label:after{top:0;width:20px;height:20px;border:2px solid #26a69a;background-color:#26a69a;z-index:0}[type="checkbox"].filled-in.tabbed:focus+label:after{border-radius:2px;border-color:#5a5a5a;background-color:rgba(0,0,0,0.1)}[type="checkbox"].filled-in.tabbed:checked:focus+label:after{border-radius:2px;background-color:#26a69a;border-color:#26a69a}[type="checkbox"].filled-in:disabled:not(:checked)+label:before{background-color:transparent;border:2px solid transparent}[type="checkbox"].filled-in:disabled:not(:checked)+label:after{border-color:transparent;background-color:#BDBDBD}[type="checkbox"].filled-in:disabled:checked+label:before{background-color:transparent}[type="checkbox"].filled-in:disabled:checked+label:after{background-color:#BDBDBD;border-color:#BDBDBD}.switch,.switch *{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.switch label{cursor:pointer}.switch label input[type=checkbox]{opacity:0;width:0;height:0}.switch label input[type=checkbox]:checked+.lever{background-color:#84c7c1}.switch label input[type=checkbox]:checked+.lever:after{background-color:#26a69a;left:24px}.switch label .lever{content:"";display:inline-block;position:relative;width:40px;height:15px;background-color:#818181;border-radius:15px;margin-right:10px;transition:background 0.3s ease;vertical-align:middle;margin:0 16px}.switch label .lever:after{content:"";position:absolute;display:inline-block;width:21px;height:21px;background-color:#F1F1F1;border-radius:21px;box-shadow:0 1px 3px 1px rgba(0,0,0,0.4);left:-5px;top:-3px;transition:left 0.3s ease, background .3s ease, box-shadow 0.1s ease}input[type=checkbox]:checked:not(:disabled) ~ .lever:active::after,input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after{box-shadow:0 1px 3px 1px rgba(0,0,0,0.4),0 0 0 15px rgba(38,166,154,0.1)}input[type=checkbox]:not(:disabled) ~ .lever:active:after,input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after{box-shadow:0 1px 3px 1px rgba(0,0,0,0.4),0 0 0 15px rgba(0,0,0,0.08)}.switch input[type=checkbox][disabled]+.lever{cursor:default}.switch label input[type=checkbox][disabled]+.lever:after,.switch label input[type=checkbox][disabled]:checked+.lever:after{background-color:#BDBDBD}select{display:none}select.browser-default{display:block}select{background-color:rgba(255,255,255,0.9);width:100%;padding:5px;border:1px solid #f2f2f2;border-radius:2px;height:3rem}.select-label{position:absolute}.select-wrapper{position:relative}.select-wrapper input.select-dropdown{position:relative;cursor:pointer;background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;outline:none;height:3rem;line-height:3rem;width:100%;font-size:1rem;margin:0 0 20px 0;padding:0;display:block}.select-wrapper span.caret{color:initial;position:absolute;right:0;top:0;bottom:0;height:10px;margin:auto 0;font-size:10px;line-height:10px}.select-wrapper span.caret.disabled{color:rgba(0,0,0,0.26)}.select-wrapper+label{position:absolute;top:-14px;font-size:.8rem}select:disabled{color:rgba(0,0,0,0.3)}.select-wrapper input.select-dropdown:disabled{color:rgba(0,0,0,0.3);cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;border-bottom:1px solid rgba(0,0,0,0.3)}.select-wrapper i{color:rgba(0,0,0,0.3)}.select-dropdown li.disabled,.select-dropdown li.disabled>span,.select-dropdown li.optgroup{color:rgba(0,0,0,0.3);background-color:transparent}.prefix ~ .select-wrapper{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.prefix ~ label{margin-left:3rem}.select-dropdown li img{height:40px;width:40px;margin:5px 15px;float:right}.select-dropdown li.optgroup{border-top:1px solid #eee}.select-dropdown li.optgroup.selected>span{color:rgba(0,0,0,0.7)}.select-dropdown li.optgroup>span{color:rgba(0,0,0,0.4)}.select-dropdown li.optgroup ~ li.optgroup-option{padding-left:1rem}.file-field{position:relative}.file-field .file-path-wrapper{overflow:hidden;padding-left:10px}.file-field input.file-path{width:100%}.file-field .btn,.file-field .btn-large{float:left;height:3rem;line-height:3rem}.file-field span{cursor:pointer}.file-field input[type=file]{position:absolute;top:0;right:0;left:0;bottom:0;width:100%;margin:0;padding:0;font-size:20px;cursor:pointer;opacity:0;filter:alpha(opacity=0)}.range-field{position:relative}input[type=range],input[type=range]+.thumb{cursor:pointer}input[type=range]{position:relative;background-color:transparent;border:none;outline:none;width:100%;margin:15px 0;padding:0}input[type=range]:focus{outline:none}input[type=range]+.thumb{position:absolute;border:none;height:0;width:0;border-radius:50%;background-color:#26a69a;top:10px;margin-left:-6px;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}input[type=range]+.thumb .value{display:block;width:30px;text-align:center;color:#26a69a;font-size:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}input[type=range]+.thumb.active{border-radius:50% 50% 50% 0}input[type=range]+.thumb.active .value{color:#fff;margin-left:-1px;margin-top:8px;font-size:10px}input[type=range]{-webkit-appearance:none}input[type=range]::-webkit-slider-runnable-track{height:3px;background:#c2c0c2;border:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:none;height:14px;width:14px;border-radius:50%;background-color:#26a69a;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;margin:-5px 0 0 0;transition:.3s}input[type=range]:focus::-webkit-slider-runnable-track{background:#ccc}input[type=range]{border:1px solid white}input[type=range]::-moz-range-track{height:3px;background:#ddd;border:none}input[type=range]::-moz-range-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;margin-top:-5px}input[type=range]:-moz-focusring{outline:1px solid #fff;outline-offset:-1px}input[type=range]:focus::-moz-range-track{background:#ccc}input[type=range]::-ms-track{height:3px;background:transparent;border-color:transparent;border-width:6px 0;color:transparent}input[type=range]::-ms-fill-lower{background:#777}input[type=range]::-ms-fill-upper{background:#ddd}input[type=range]::-ms-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a}input[type=range]:focus::-ms-fill-lower{background:#888}input[type=range]:focus::-ms-fill-upper{background:#ccc}.table-of-contents.fixed{position:fixed}.table-of-contents li{padding:2px 0}.table-of-contents a{display:inline-block;font-weight:300;color:#757575;padding-left:20px;height:1.5rem;line-height:1.5rem;letter-spacing:.4;display:inline-block}.table-of-contents a:hover{color:#a8a8a8;padding-left:19px;border-left:1px solid #ee6e73}.table-of-contents a.active{font-weight:500;padding-left:18px;border-left:2px solid #ee6e73}.side-nav{position:fixed;width:300px;left:0;top:0;margin:0;-webkit-transform:translateX(-100%);transform:translateX(-100%);height:100%;height:calc(100% + 60px);height:-moz-calc(100%);padding-bottom:60px;background-color:#fff;z-index:999;overflow-y:auto;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateX(-105%);transform:translateX(-105%)}.side-nav.right-aligned{right:0;-webkit-transform:translateX(105%);transform:translateX(105%);left:auto;-webkit-transform:translateX(100%);transform:translateX(100%)}.side-nav .collapsible{margin:0}.side-nav li{float:none;line-height:48px}.side-nav li.active{background-color:rgba(0,0,0,0.05)}.side-nav a{color:rgba(0,0,0,0.87);display:block;font-size:14px;font-weight:500;height:48px;line-height:48px;padding:0 32px}.side-nav a:hover{background-color:rgba(0,0,0,0.05)}.side-nav a.btn,.side-nav a.btn-large,.side-nav a.btn-large,.side-nav a.btn-flat,.side-nav a.btn-floating{margin:10px 15px}.side-nav a.btn,.side-nav a.btn-large,.side-nav a.btn-large,.side-nav a.btn-floating{color:#fff}.side-nav a.btn-flat{color:#343434}.side-nav a.btn:hover,.side-nav a.btn-large:hover,.side-nav a.btn-large:hover{background-color:#2bbbad}.side-nav a.btn-floating:hover{background-color:#26a69a}.side-nav li>a>i,.side-nav li>a>[class^="mdi-"],.side-nav li>a>[class*="mdi-"],.side-nav li>a>i.material-icons{float:left;height:48px;line-height:48px;margin:0 32px 0 0;width:24px;color:rgba(0,0,0,0.54)}.side-nav .divider{margin:8px 0 0 0}.side-nav .subheader{cursor:initial;pointer-events:none;color:rgba(0,0,0,0.54);font-size:14px;font-weight:500;line-height:48px}.side-nav .subheader:hover{background-color:transparent}.side-nav .userView{position:relative;padding:32px 32px 0;margin-bottom:8px}.side-nav .userView>a{height:auto;padding:0}.side-nav .userView>a:hover{background-color:transparent}.side-nav .userView .background{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.side-nav .userView .circle,.side-nav .userView .name,.side-nav .userView .email{display:block}.side-nav .userView .circle{height:64px;width:64px}.side-nav .userView .name,.side-nav .userView .email{font-size:14px;line-height:24px}.side-nav .userView .name{margin-top:16px;font-weight:500}.side-nav .userView .email{padding-bottom:16px;font-weight:400}.drag-target{height:100%;width:10px;position:fixed;top:0;z-index:998}.side-nav.fixed{left:0;-webkit-transform:translateX(0);transform:translateX(0);position:fixed}.side-nav.fixed.right-aligned{right:0;left:auto}@media only screen and (max-width: 992px){.side-nav.fixed{-webkit-transform:translateX(-105%);transform:translateX(-105%)}.side-nav.fixed.right-aligned{-webkit-transform:translateX(105%);transform:translateX(105%)}.side-nav a{padding:0 16px}.side-nav .userView{padding:16px 16px 0}}.side-nav .collapsible-body>ul:not(.collapsible)>li.active,.side-nav.fixed .collapsible-body>ul:not(.collapsible)>li.active{background-color:#ee6e73}.side-nav .collapsible-body>ul:not(.collapsible)>li.active a,.side-nav.fixed .collapsible-body>ul:not(.collapsible)>li.active a{color:#fff}#sidenav-overlay{position:fixed;top:0;left:0;right:0;height:120vh;background-color:rgba(0,0,0,0.5);z-index:997;will-change:opacity}.preloader-wrapper{display:inline-block;position:relative;width:48px;height:48px}.preloader-wrapper.small{width:36px;height:36px}.preloader-wrapper.big{width:64px;height:64px}.preloader-wrapper.active{-webkit-animation:container-rotate 1568ms linear infinite;animation:container-rotate 1568ms linear infinite}@-webkit-keyframes container-rotate{to{-webkit-transform:rotate(360deg)}}@keyframes container-rotate{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-layer{position:absolute;width:100%;height:100%;opacity:0;border-color:#26a69a}.spinner-blue,.spinner-blue-only{border-color:#4285f4}.spinner-red,.spinner-red-only{border-color:#db4437}.spinner-yellow,.spinner-yellow-only{border-color:#f4b400}.spinner-green,.spinner-green-only{border-color:#0f9d58}.active .spinner-layer.spinner-blue{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-red{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-yellow{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-green{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer,.active .spinner-layer.spinner-blue-only,.active .spinner-layer.spinner-red-only,.active .spinner-layer.spinner-yellow-only,.active .spinner-layer.spinner-green-only{opacity:1;-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg)}}@keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg);transform:rotate(1080deg)}}@-webkit-keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@-webkit-keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@-webkit-keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@-webkit-keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}@keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}.gap-patch{position:absolute;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.gap-patch .circle{width:1000%;left:-450%}.circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.circle-clipper .circle{width:200%;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent !important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0}.circle-clipper.left .circle{left:0;border-right-color:transparent !important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.circle-clipper.right .circle{left:-100%;border-left-color:transparent !important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.active .circle-clipper.left .circle{-webkit-animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .circle-clipper.right .circle{-webkit-animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes left-spin{from{-webkit-transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg)}}@keyframes left-spin{from{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}}@-webkit-keyframes right-spin{from{-webkit-transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg)}}@keyframes right-spin{from{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}}#spinnerContainer.cooldown{-webkit-animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1)}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}.slider{position:relative;height:400px;width:100%}.slider.fullscreen{height:100%;width:100%;position:absolute;top:0;left:0;right:0;bottom:0}.slider.fullscreen ul.slides{height:100%}.slider.fullscreen ul.indicators{z-index:2;bottom:30px}.slider .slides{background-color:#9e9e9e;margin:0;height:400px}.slider .slides li{opacity:0;position:absolute;top:0;left:0;z-index:1;width:100%;height:inherit;overflow:hidden}.slider .slides li img{height:100%;width:100%;background-size:cover;background-position:center}.slider .slides li .caption{color:#fff;position:absolute;top:15%;left:15%;width:70%;opacity:0}.slider .slides li .caption p{color:#e0e0e0}.slider .slides li.active{z-index:2}.slider .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.slider .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:16px;width:16px;margin:0 12px;background-color:#e0e0e0;transition:background-color .3s;border-radius:50%}.slider .indicators .indicator-item.active{background-color:#4CAF50}.carousel{overflow:hidden;position:relative;width:100%;height:400px;-webkit-perspective:500px;perspective:500px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform-origin:0% 50%;transform-origin:0% 50%}.carousel.carousel-slider{top:0;left:0;height:0}.carousel.carousel-slider .carousel-fixed-item{position:absolute;left:0;right:0;bottom:20px;z-index:1}.carousel.carousel-slider .carousel-fixed-item.with-indicators{bottom:68px}.carousel.carousel-slider .carousel-item{width:100%;height:100%;min-height:400px;position:absolute;top:0;left:0}.carousel.carousel-slider .carousel-item h2{font-size:24px;font-weight:500;line-height:32px}.carousel.carousel-slider .carousel-item p{font-size:15px}.carousel .carousel-item{display:none;width:200px;height:200px;position:absolute;top:0;left:0}.carousel .carousel-item img{width:100%}.carousel .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.carousel .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:8px;width:8px;margin:24px 4px;background-color:rgba(255,255,255,0.5);transition:background-color .3s;border-radius:50%}.carousel .indicators .indicator-item.active{background-color:#fff}.picker{font-size:16px;text-align:left;line-height:1.2;color:#000000;position:absolute;z-index:10000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.picker__input{cursor:default}.picker__input.picker__input--active{border-color:#0089ec}.picker__holder{width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}/*! - * Default mobile-first, responsive styling for pickadate.js - * Demo: http://amsul.github.io/pickadate.js - */.picker__holder,.picker__frame{bottom:0;left:0;right:0;top:100%}.picker__holder{position:fixed;transition:background 0.15s ease-out, top 0s 0.15s;-webkit-backface-visibility:hidden}.picker__frame{position:absolute;margin:0 auto;min-width:256px;width:300px;max-height:350px;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;transition:all 0.15s ease-out}@media (min-height: 28.875em){.picker__frame{overflow:visible;top:auto;bottom:-100%;max-height:80%}}@media (min-height: 40.125em){.picker__frame{margin-bottom:7.5%}}.picker__wrap{display:table;width:100%;height:100%}@media (min-height: 28.875em){.picker__wrap{display:block}}.picker__box{background:#ffffff;display:table-cell;vertical-align:middle}@media (min-height: 28.875em){.picker__box{display:block;border:1px solid #777777;border-top-color:#898989;border-bottom-width:0;border-radius:5px 5px 0 0;box-shadow:0 12px 36px 16px rgba(0,0,0,0.24)}}.picker--opened .picker__holder{top:0;background:transparent;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";zoom:1;background:rgba(0,0,0,0.32);transition:background 0.15s ease-out}.picker--opened .picker__frame{top:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1}@media (min-height: 35.875em){.picker--opened .picker__frame{top:10%;bottom:auto}}.picker__input.picker__input--active{border-color:#E3F2FD}.picker__frame{margin:0 auto;max-width:325px}@media (min-height: 38.875em){.picker--opened .picker__frame{top:10%;bottom:auto}}.picker__box{padding:0 1em}.picker__header{text-align:center;position:relative;margin-top:.75em}.picker__month,.picker__year{display:inline-block;margin-left:.25em;margin-right:.25em}.picker__select--month,.picker__select--year{height:2em;padding:0;margin-left:.25em;margin-right:.25em}.picker__select--month.browser-default{display:inline;background-color:#FFFFFF;width:40%}.picker__select--year.browser-default{display:inline;background-color:#FFFFFF;width:26%}.picker__select--month:focus,.picker__select--year:focus{border-color:rgba(0,0,0,0.05)}.picker__nav--prev,.picker__nav--next{position:absolute;padding:.5em 1.25em;width:1em;height:1em;box-sizing:content-box;top:-0.25em}.picker__nav--prev{left:-1em;padding-right:1.25em}.picker__nav--next{right:-1em;padding-left:1.25em}.picker__nav--disabled,.picker__nav--disabled:hover,.picker__nav--disabled:before,.picker__nav--disabled:before:hover{cursor:default;background:none;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{text-align:center;border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:1rem;width:100%;margin-top:.75em;margin-bottom:.5em}.picker__table th,.picker__table td{text-align:center}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999999;font-weight:500}@media (min-height: 33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day--today{position:relative;color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day--disabled:before{border-top-color:#aaaaaa}.picker__day--infocus:hover{cursor:pointer;color:#000;font-weight:500}.picker__day--outfocus{display:none;padding:.75rem 0;color:#fff}.picker__day--outfocus:hover{cursor:pointer;color:#dddddd;font-weight:500}.picker__day--highlighted:hover,.picker--focused .picker__day--highlighted{cursor:pointer}.picker__day--selected,.picker__day--selected:hover,.picker--focused .picker__day--selected{border-radius:50%;-webkit-transform:scale(0.75);transform:scale(0.75);background:#0089ec;color:#ffffff}.picker__day--disabled,.picker__day--disabled:hover,.picker--focused .picker__day--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbbbbb}.picker__footer{text-align:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.picker__button--today,.picker__button--clear,.picker__button--close{border:1px solid #ffffff;background:#ffffff;font-size:.8em;padding:.66em 0;font-weight:bold;width:33%;display:inline-block;vertical-align:bottom}.picker__button--today:hover,.picker__button--clear:hover,.picker__button--close:hover{cursor:pointer;color:#000000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--today:focus,.picker__button--clear:focus,.picker__button--close:focus{background:#b1dcfb;border-color:rgba(0,0,0,0.05);outline:none}.picker__button--today:before,.picker__button--clear:before,.picker__button--close:before{position:relative;display:inline-block;height:0}.picker__button--today:before,.picker__button--clear:before{content:" ";margin-right:.45em}.picker__button--today:before{top:-0.05em;width:0;border-top:0.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{top:-0.25em;width:.66em;border-top:3px solid #ee2200}.picker__button--close:before{content:"\D7";top:-0.1em;vertical-align:top;font-size:1.1em;margin-right:.35em;color:#777777}.picker__button--today[disabled],.picker__button--today[disabled]:hover{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default}.picker__button--today[disabled]:before{border-top-color:#aaaaaa}.picker__box{border-radius:2px;overflow:hidden}.picker__date-display{text-align:center;background-color:#26a69a;color:#fff;padding-bottom:15px;font-weight:300}.picker__nav--prev:hover,.picker__nav--next:hover{cursor:pointer;color:#000000;background:#a1ded8}.picker__weekday-display{background-color:#1f897f;padding:10px;font-weight:200;letter-spacing:.5;font-size:1rem;margin-bottom:15px}.picker__month-display{text-transform:uppercase;font-size:2rem}.picker__day-display{font-size:4.5rem;font-weight:400}.picker__year-display{font-size:1.8rem;color:rgba(255,255,255,0.4)}.picker__box{padding:0}.picker__calendar-container{padding:0 1rem}.picker__calendar-container thead{border:none}.picker__table{margin-top:0;margin-bottom:.5em}.picker__day--infocus{color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day.picker__day--today{color:#26a69a}.picker__day.picker__day--today.picker__day--selected{color:#fff}.picker__weekday{font-size:.9rem}.picker__day--selected,.picker__day--selected:hover,.picker--focused .picker__day--selected{border-radius:50%;-webkit-transform:scale(0.9);transform:scale(0.9);background-color:#26a69a;color:#ffffff}.picker__day--selected.picker__day--outfocus,.picker__day--selected:hover.picker__day--outfocus,.picker--focused .picker__day--selected.picker__day--outfocus{background-color:#a1ded8}.picker__footer{text-align:right;padding:5px 10px}.picker__close,.picker__today{font-size:1.1rem;padding:0 1rem;color:#26a69a}.picker__nav--prev:before,.picker__nav--next:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:0.75em solid #676767;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:0.75em solid #676767}button.picker__today:focus,button.picker__clear:focus,button.picker__close:focus{background-color:#a1ded8}.picker__list{list-style:none;padding:0.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #dddddd;border-top:1px solid #dddddd;margin-bottom:-1px;position:relative;background:#ffffff;padding:.75em 1.25em}@media (min-height: 46.75em){.picker__list-item{padding:.5em 1em}}.picker__list-item:hover{cursor:pointer;color:#000000;background:#b1dcfb;border-color:#0089ec;z-index:10}.picker__list-item--highlighted{border-color:#0089ec;z-index:10}.picker__list-item--highlighted:hover,.picker--focused .picker__list-item--highlighted{cursor:pointer;color:#000000;background:#b1dcfb}.picker__list-item--selected,.picker__list-item--selected:hover,.picker--focused .picker__list-item--selected{background:#0089ec;color:#ffffff;z-index:10}.picker__list-item--disabled,.picker__list-item--disabled:hover,.picker--focused .picker__list-item--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default;border-color:#dddddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:none;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:hover,.picker--time .picker__button--clear:focus{color:#000000;background:#b1dcfb;background:#ee2200;border-color:#ee2200;cursor:pointer;color:#ffffff;outline:none}.picker--time .picker__button--clear:before{top:-0.25em;color:#666;font-size:1.25em;font-weight:bold}.picker--time .picker__button--clear:hover:before,.picker--time .picker__button--clear:focus:before{color:#ffffff}.picker--time .picker__frame{min-width:256px;max-width:320px}.picker--time .picker__box{font-size:1em;background:#f2f2f2;padding:0}@media (min-height: 40.125em){.picker--time .picker__box{margin-bottom:5em}} diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Bold.eot b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Bold.eot deleted file mode 100644 index b73776e..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Bold.eot and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Bold.ttf b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Bold.ttf deleted file mode 100644 index 68822ca..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Bold.ttf and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Bold.woff b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Bold.woff deleted file mode 100644 index 1f75afd..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Bold.woff and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Bold.woff2 b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Bold.woff2 deleted file mode 100644 index 350d1c3..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Bold.woff2 and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Light.eot b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Light.eot deleted file mode 100644 index 072cdc4..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Light.eot and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Light.ttf b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Light.ttf deleted file mode 100644 index aa45340..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Light.ttf and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Light.woff b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Light.woff deleted file mode 100644 index 3480c6c..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Light.woff and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Light.woff2 b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Light.woff2 deleted file mode 100644 index 9a4d98c..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Light.woff2 and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Medium.eot b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Medium.eot deleted file mode 100644 index f9ad995..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Medium.eot and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Medium.ttf b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Medium.ttf deleted file mode 100644 index a3c1a1f..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Medium.ttf and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Medium.woff b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Medium.woff deleted file mode 100644 index 1186773..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Medium.woff and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Medium.woff2 b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Medium.woff2 deleted file mode 100644 index d10a592..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Medium.woff2 and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Regular.eot b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Regular.eot deleted file mode 100644 index 9b5e8e4..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Regular.eot and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Regular.ttf b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Regular.ttf deleted file mode 100644 index 0e58508..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Regular.ttf and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Regular.woff b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Regular.woff deleted file mode 100644 index f823258..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Regular.woff and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Regular.woff2 b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Regular.woff2 deleted file mode 100644 index b7082ef..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Regular.woff2 and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Thin.eot b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Thin.eot deleted file mode 100644 index 2284a3b..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Thin.eot and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Thin.ttf b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Thin.ttf deleted file mode 100644 index 8779333..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Thin.ttf and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Thin.woff b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Thin.woff deleted file mode 100644 index 2a98c1e..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Thin.woff and /dev/null differ diff --git a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Thin.woff2 b/node_modules/materialize-css/dist/fonts/roboto/Roboto-Thin.woff2 deleted file mode 100644 index a38025a..0000000 Binary files a/node_modules/materialize-css/dist/fonts/roboto/Roboto-Thin.woff2 and /dev/null differ diff --git a/node_modules/materialize-css/dist/js/materialize.js b/node_modules/materialize-css/dist/js/materialize.js deleted file mode 100644 index 8c994c4..0000000 --- a/node_modules/materialize-css/dist/js/materialize.js +++ /dev/null @@ -1,8031 +0,0 @@ -/*! - * Materialize v0.98.0 (http://materializecss.com) - * Copyright 2014-2015 Materialize - * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) - */ -// Check for jQuery. -if (typeof(jQuery) === 'undefined') { - var jQuery; - // Check if require is a defined function. - if (typeof(require) === 'function') { - jQuery = $ = require('jquery'); - // Else use the dollar sign alias. - } else { - jQuery = $; - } -} -;/* - * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ - * - * Uses the built in easing capabilities added In jQuery 1.1 - * to offer multiple easing options - * - * TERMS OF USE - jQuery Easing - * - * Open source under the BSD License. - * - * Copyright © 2008 George McGinley Smith - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * Neither the name of the author nor the names of 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. - * -*/ - -// t: current time, b: begInnIng value, c: change In value, d: duration -jQuery.easing['jswing'] = jQuery.easing['swing']; - -jQuery.extend( jQuery.easing, -{ - def: 'easeOutQuad', - swing: function (x, t, b, c, d) { - //alert(jQuery.easing.default); - return jQuery.easing[jQuery.easing.def](x, t, b, c, d); - }, - easeInQuad: function (x, t, b, c, d) { - return c*(t/=d)*t + b; - }, - easeOutQuad: function (x, t, b, c, d) { - return -c *(t/=d)*(t-2) + b; - }, - easeInOutQuad: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t + b; - return -c/2 * ((--t)*(t-2) - 1) + b; - }, - easeInCubic: function (x, t, b, c, d) { - return c*(t/=d)*t*t + b; - }, - easeOutCubic: function (x, t, b, c, d) { - return c*((t=t/d-1)*t*t + 1) + b; - }, - easeInOutCubic: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t + b; - return c/2*((t-=2)*t*t + 2) + b; - }, - easeInQuart: function (x, t, b, c, d) { - return c*(t/=d)*t*t*t + b; - }, - easeOutQuart: function (x, t, b, c, d) { - return -c * ((t=t/d-1)*t*t*t - 1) + b; - }, - easeInOutQuart: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t*t + b; - return -c/2 * ((t-=2)*t*t*t - 2) + b; - }, - easeInQuint: function (x, t, b, c, d) { - return c*(t/=d)*t*t*t*t + b; - }, - easeOutQuint: function (x, t, b, c, d) { - return c*((t=t/d-1)*t*t*t*t + 1) + b; - }, - easeInOutQuint: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; - return c/2*((t-=2)*t*t*t*t + 2) + b; - }, - easeInSine: function (x, t, b, c, d) { - return -c * Math.cos(t/d * (Math.PI/2)) + c + b; - }, - easeOutSine: function (x, t, b, c, d) { - return c * Math.sin(t/d * (Math.PI/2)) + b; - }, - easeInOutSine: function (x, t, b, c, d) { - return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; - }, - easeInExpo: function (x, t, b, c, d) { - return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; - }, - easeOutExpo: function (x, t, b, c, d) { - return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; - }, - easeInOutExpo: function (x, t, b, c, d) { - if (t==0) return b; - if (t==d) return b+c; - if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; - return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; - }, - easeInCirc: function (x, t, b, c, d) { - return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; - }, - easeOutCirc: function (x, t, b, c, d) { - return c * Math.sqrt(1 - (t=t/d-1)*t) + b; - }, - easeInOutCirc: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; - return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; - }, - easeInElastic: function (x, t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - }, - easeOutElastic: function (x, t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; - }, - easeInOutElastic: function (x, t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; - }, - easeInBack: function (x, t, b, c, d, s) { - if (s == undefined) s = 1.70158; - return c*(t/=d)*t*((s+1)*t - s) + b; - }, - easeOutBack: function (x, t, b, c, d, s) { - if (s == undefined) s = 1.70158; - return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; - }, - easeInOutBack: function (x, t, b, c, d, s) { - if (s == undefined) s = 1.70158; - if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; - return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; - }, - easeInBounce: function (x, t, b, c, d) { - return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b; - }, - easeOutBounce: function (x, t, b, c, d) { - if ((t/=d) < (1/2.75)) { - return c*(7.5625*t*t) + b; - } else if (t < (2/2.75)) { - return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; - } else if (t < (2.5/2.75)) { - return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; - } else { - return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; - } - }, - easeInOutBounce: function (x, t, b, c, d) { - if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; - return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; - } -}); - -/* - * - * TERMS OF USE - EASING EQUATIONS - * - * Open source under the BSD License. - * - * Copyright © 2001 Robert Penner - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * Neither the name of the author nor the names of 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. - * - */;// Custom Easing -jQuery.extend( jQuery.easing, -{ - easeInOutMaterial: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t + b; - return c/4*((t-=2)*t*t + 2) + b; - } -});;/*! VelocityJS.org (1.2.3). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */ -/*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */ -/*! Note that this has been modified by Materialize to confirm that Velocity is not already being imported. */ -jQuery.Velocity?console.log("Velocity is already loaded. You may be needlessly importing Velocity again; note that Materialize includes Velocity."):(!function(e){function t(e){var t=e.length,a=r.type(e);return"function"===a||r.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===a||0===t||"number"==typeof t&&t>0&&t-1 in e}if(!e.jQuery){var r=function(e,t){return new r.fn.init(e,t)};r.isWindow=function(e){return null!=e&&e==e.window},r.type=function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e},r.isArray=Array.isArray||function(e){return"array"===r.type(e)},r.isPlainObject=function(e){var t;if(!e||"object"!==r.type(e)||e.nodeType||r.isWindow(e))return!1;try{if(e.constructor&&!o.call(e,"constructor")&&!o.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(a){return!1}for(t in e);return void 0===t||o.call(e,t)},r.each=function(e,r,a){var n,o=0,i=e.length,s=t(e);if(a){if(s)for(;i>o&&(n=r.apply(e[o],a),n!==!1);o++);else for(o in e)if(n=r.apply(e[o],a),n===!1)break}else if(s)for(;i>o&&(n=r.call(e[o],o,e[o]),n!==!1);o++);else for(o in e)if(n=r.call(e[o],o,e[o]),n===!1)break;return e},r.data=function(e,t,n){if(void 0===n){var o=e[r.expando],i=o&&a[o];if(void 0===t)return i;if(i&&t in i)return i[t]}else if(void 0!==t){var o=e[r.expando]||(e[r.expando]=++r.uuid);return a[o]=a[o]||{},a[o][t]=n,n}},r.removeData=function(e,t){var n=e[r.expando],o=n&&a[n];o&&r.each(t,function(e,t){delete o[t]})},r.extend=function(){var e,t,a,n,o,i,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[l]||{},l++),"object"!=typeof s&&"function"!==r.type(s)&&(s={}),l===u&&(s=this,l--);u>l;l++)if(null!=(o=arguments[l]))for(n in o)e=s[n],a=o[n],s!==a&&(c&&a&&(r.isPlainObject(a)||(t=r.isArray(a)))?(t?(t=!1,i=e&&r.isArray(e)?e:[]):i=e&&r.isPlainObject(e)?e:{},s[n]=r.extend(c,i,a)):void 0!==a&&(s[n]=a));return s},r.queue=function(e,a,n){function o(e,r){var a=r||[];return null!=e&&(t(Object(e))?!function(e,t){for(var r=+t.length,a=0,n=e.length;r>a;)e[n++]=t[a++];if(r!==r)for(;void 0!==t[a];)e[n++]=t[a++];return e.length=n,e}(a,"string"==typeof e?[e]:e):[].push.call(a,e)),a}if(e){a=(a||"fx")+"queue";var i=r.data(e,a);return n?(!i||r.isArray(n)?i=r.data(e,a,o(n)):i.push(n),i):i||[]}},r.dequeue=function(e,t){r.each(e.nodeType?[e]:e,function(e,a){t=t||"fx";var n=r.queue(a,t),o=n.shift();"inprogress"===o&&(o=n.shift()),o&&("fx"===t&&n.unshift("inprogress"),o.call(a,function(){r.dequeue(a,t)}))})},r.fn=r.prototype={init:function(e){if(e.nodeType)return this[0]=e,this;throw new Error("Not a DOM node.")},offset:function(){var t=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:t.top+(e.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:t.left+(e.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function e(){for(var e=this.offsetParent||document;e&&"html"===!e.nodeType.toLowerCase&&"static"===e.style.position;)e=e.offsetParent;return e||document}var t=this[0],e=e.apply(t),a=this.offset(),n=/^(?:body|html)$/i.test(e.nodeName)?{top:0,left:0}:r(e).offset();return a.top-=parseFloat(t.style.marginTop)||0,a.left-=parseFloat(t.style.marginLeft)||0,e.style&&(n.top+=parseFloat(e.style.borderTopWidth)||0,n.left+=parseFloat(e.style.borderLeftWidth)||0),{top:a.top-n.top,left:a.left-n.left}}};var a={};r.expando="velocity"+(new Date).getTime(),r.uuid=0;for(var n={},o=n.hasOwnProperty,i=n.toString,s="Boolean Number String Function Array Date RegExp Object Error".split(" "),l=0;ln;++n){var o=u(r,e,a);if(0===o)return r;var i=l(r,e,a)-t;r-=i/o}return r}function p(){for(var t=0;b>t;++t)w[t]=l(t*x,e,a)}function f(t,r,n){var o,i,s=0;do i=r+(n-r)/2,o=l(i,e,a)-t,o>0?n=i:r=i;while(Math.abs(o)>h&&++s=y?c(t,s):0==l?s:f(t,r,r+x)}function g(){V=!0,(e!=r||a!=n)&&p()}var m=4,y=.001,h=1e-7,v=10,b=11,x=1/(b-1),S="Float32Array"in t;if(4!==arguments.length)return!1;for(var P=0;4>P;++P)if("number"!=typeof arguments[P]||isNaN(arguments[P])||!isFinite(arguments[P]))return!1;e=Math.min(e,1),a=Math.min(a,1),e=Math.max(e,0),a=Math.max(a,0);var w=S?new Float32Array(b):new Array(b),V=!1,C=function(t){return V||g(),e===r&&a===n?t:0===t?0:1===t?1:l(d(t),r,n)};C.getControlPoints=function(){return[{x:e,y:r},{x:a,y:n}]};var T="generateBezier("+[e,r,a,n]+")";return C.toString=function(){return T},C}function u(e,t){var r=e;return m.isString(e)?b.Easings[e]||(r=!1):r=m.isArray(e)&&1===e.length?s.apply(null,e):m.isArray(e)&&2===e.length?x.apply(null,e.concat([t])):m.isArray(e)&&4===e.length?l.apply(null,e):!1,r===!1&&(r=b.Easings[b.defaults.easing]?b.defaults.easing:v),r}function c(e){if(e){var t=(new Date).getTime(),r=b.State.calls.length;r>1e4&&(b.State.calls=n(b.State.calls));for(var o=0;r>o;o++)if(b.State.calls[o]){var s=b.State.calls[o],l=s[0],u=s[2],d=s[3],g=!!d,y=null;d||(d=b.State.calls[o][3]=t-16);for(var h=Math.min((t-d)/u.duration,1),v=0,x=l.length;x>v;v++){var P=l[v],V=P.element;if(i(V)){var C=!1;if(u.display!==a&&null!==u.display&&"none"!==u.display){if("flex"===u.display){var T=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];f.each(T,function(e,t){S.setPropertyValue(V,"display",t)})}S.setPropertyValue(V,"display",u.display)}u.visibility!==a&&"hidden"!==u.visibility&&S.setPropertyValue(V,"visibility",u.visibility);for(var k in P)if("element"!==k){var A,F=P[k],j=m.isString(F.easing)?b.Easings[F.easing]:F.easing;if(1===h)A=F.endValue;else{var E=F.endValue-F.startValue;if(A=F.startValue+E*j(h,u,E),!g&&A===F.currentValue)continue}if(F.currentValue=A,"tween"===k)y=A;else{if(S.Hooks.registered[k]){var H=S.Hooks.getRoot(k),N=i(V).rootPropertyValueCache[H];N&&(F.rootPropertyValue=N)}var L=S.setPropertyValue(V,k,F.currentValue+(0===parseFloat(A)?"":F.unitType),F.rootPropertyValue,F.scrollData);S.Hooks.registered[k]&&(i(V).rootPropertyValueCache[H]=S.Normalizations.registered[H]?S.Normalizations.registered[H]("extract",null,L[1]):L[1]),"transform"===L[0]&&(C=!0)}}u.mobileHA&&i(V).transformCache.translate3d===a&&(i(V).transformCache.translate3d="(0px, 0px, 0px)",C=!0),C&&S.flushTransformCache(V)}}u.display!==a&&"none"!==u.display&&(b.State.calls[o][2].display=!1),u.visibility!==a&&"hidden"!==u.visibility&&(b.State.calls[o][2].visibility=!1),u.progress&&u.progress.call(s[1],s[1],h,Math.max(0,d+u.duration-t),d,y),1===h&&p(o)}}b.State.isTicking&&w(c)}function p(e,t){if(!b.State.calls[e])return!1;for(var r=b.State.calls[e][0],n=b.State.calls[e][1],o=b.State.calls[e][2],s=b.State.calls[e][4],l=!1,u=0,c=r.length;c>u;u++){var p=r[u].element;if(t||o.loop||("none"===o.display&&S.setPropertyValue(p,"display",o.display),"hidden"===o.visibility&&S.setPropertyValue(p,"visibility",o.visibility)),o.loop!==!0&&(f.queue(p)[1]===a||!/\.velocityQueueEntryFlag/i.test(f.queue(p)[1]))&&i(p)){i(p).isAnimating=!1,i(p).rootPropertyValueCache={};var d=!1;f.each(S.Lists.transforms3D,function(e,t){var r=/^scale/.test(t)?1:0,n=i(p).transformCache[t];i(p).transformCache[t]!==a&&new RegExp("^\\("+r+"[^.]").test(n)&&(d=!0,delete i(p).transformCache[t])}),o.mobileHA&&(d=!0,delete i(p).transformCache.translate3d),d&&S.flushTransformCache(p),S.Values.removeClass(p,"velocity-animating")}if(!t&&o.complete&&!o.loop&&u===c-1)try{o.complete.call(n,n)}catch(g){setTimeout(function(){throw g},1)}s&&o.loop!==!0&&s(n),i(p)&&o.loop===!0&&!t&&(f.each(i(p).tweensContainer,function(e,t){/^rotate/.test(e)&&360===parseFloat(t.endValue)&&(t.endValue=0,t.startValue=360),/^backgroundPosition/.test(e)&&100===parseFloat(t.endValue)&&"%"===t.unitType&&(t.endValue=0,t.startValue=100)}),b(p,"reverse",{loop:!0,delay:o.delay})),o.queue!==!1&&f.dequeue(p,o.queue)}b.State.calls[e]=!1;for(var m=0,y=b.State.calls.length;y>m;m++)if(b.State.calls[m]!==!1){l=!0;break}l===!1&&(b.State.isTicking=!1,delete b.State.calls,b.State.calls=[])}var f,d=function(){if(r.documentMode)return r.documentMode;for(var e=7;e>4;e--){var t=r.createElement("div");if(t.innerHTML="",t.getElementsByTagName("span").length)return t=null,e}return a}(),g=function(){var e=0;return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||function(t){var r,a=(new Date).getTime();return r=Math.max(0,16-(a-e)),e=a+r,setTimeout(function(){t(a+r)},r)}}(),m={isString:function(e){return"string"==typeof e},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},isFunction:function(e){return"[object Function]"===Object.prototype.toString.call(e)},isNode:function(e){return e&&e.nodeType},isNodeList:function(e){return"object"==typeof e&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(e))&&e.length!==a&&(0===e.length||"object"==typeof e[0]&&e[0].nodeType>0)},isWrapped:function(e){return e&&(e.jquery||t.Zepto&&t.Zepto.zepto.isZ(e))},isSVG:function(e){return t.SVGElement&&e instanceof t.SVGElement},isEmptyObject:function(e){for(var t in e)return!1;return!0}},y=!1;if(e.fn&&e.fn.jquery?(f=e,y=!0):f=t.Velocity.Utilities,8>=d&&!y)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=d)return void(jQuery.fn.velocity=jQuery.fn.animate);var h=400,v="swing",b={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:t.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:r.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:f,Redirects:{},Easings:{},Promise:t.Promise,defaults:{queue:"",duration:h,easing:v,begin:a,complete:a,progress:a,display:a,visibility:a,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(e){f.data(e,"velocity",{isSVG:m.isSVG(e),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:2},debug:!1};t.pageYOffset!==a?(b.State.scrollAnchor=t,b.State.scrollPropertyLeft="pageXOffset",b.State.scrollPropertyTop="pageYOffset"):(b.State.scrollAnchor=r.documentElement||r.body.parentNode||r.body,b.State.scrollPropertyLeft="scrollLeft",b.State.scrollPropertyTop="scrollTop");var x=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,a){var n={x:t.x+a.dx*r,v:t.v+a.dv*r,tension:t.tension,friction:t.friction};return{dx:n.v,dv:e(n)}}function r(r,a){var n={dx:r.v,dv:e(r)},o=t(r,.5*a,n),i=t(r,.5*a,o),s=t(r,a,i),l=1/6*(n.dx+2*(o.dx+i.dx)+s.dx),u=1/6*(n.dv+2*(o.dv+i.dv)+s.dv);return r.x=r.x+l*a,r.v=r.v+u*a,r}return function a(e,t,n){var o,i,s,l={x:-1,v:0,tension:null,friction:null},u=[0],c=0,p=1e-4,f=.016;for(e=parseFloat(e)||500,t=parseFloat(t)||20,n=n||null,l.tension=e,l.friction=t,o=null!==n,o?(c=a(e,t),i=c/n*f):i=f;s=r(s||l,i),u.push(1+s.x),c+=16,Math.abs(s.x)>p&&Math.abs(s.v)>p;);return o?function(e){return u[e*(u.length-1)|0]}:c}}();b.Easings={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},spring:function(e){return 1-Math.cos(4.5*e*Math.PI)*Math.exp(6*-e)}},f.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(e,t){b.Easings[t[0]]=l.apply(null,t[1])});var S=b.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var e=0;e=d)switch(e){case"name":return"filter";case"extract":var a=r.toString().match(/alpha\(opacity=(.*)\)/i);return r=a?a[1]/100:1;case"inject":return t.style.zoom=1,parseFloat(r)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(r),10)+")"}else switch(e){case"name":return"opacity";case"extract":return r;case"inject":return r}}},register:function(){9>=d||b.State.isGingerbread||(S.Lists.transformsBase=S.Lists.transformsBase.concat(S.Lists.transforms3D));for(var e=0;en&&(n=1),o=!/(\d)$/i.test(n);break;case"skew":o=!/(deg|\d)$/i.test(n);break;case"rotate":o=!/(deg|\d)$/i.test(n)}return o||(i(r).transformCache[t]="("+n+")"),i(r).transformCache[t]}}}();for(var e=0;e=d||3!==o.split(" ").length||(o+=" 1"),o;case"inject":return 8>=d?4===n.split(" ").length&&(n=n.split(/\s+/).slice(0,3).join(" ")):3===n.split(" ").length&&(n+=" 1"),(8>=d?"rgb":"rgba")+"("+n.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})},SVGAttribute:function(e){var t="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(d||b.State.isAndroid&&!b.State.isChrome)&&(t+="|transform"),new RegExp("^("+t+")$","i").test(e)},prefixCheck:function(e){if(b.State.prefixMatches[e])return[b.State.prefixMatches[e],!0];for(var t=["","Webkit","Moz","ms","O"],r=0,a=t.length;a>r;r++){var n;if(n=0===r?e:t[r]+e.replace(/^\w/,function(e){return e.toUpperCase()}),m.isString(b.State.prefixElement.style[n]))return b.State.prefixMatches[e]=n,[n,!0]}return[e,!1]}},Values:{hexToRgb:function(e){var t,r=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return e=e.replace(r,function(e,t,r,a){return t+t+r+r+a+a}),t=a.exec(e),t?[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]:[0,0,0]},isCSSNullValue:function(e){return 0==e||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(e)},getUnitType:function(e){return/^(rotate|skew)/i.test(e)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e)?"":"px"},getDisplayType:function(e){var t=e&&e.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(t)?"inline":/^(li)$/i.test(t)?"list-item":/^(tr)$/i.test(t)?"table-row":/^(table)$/i.test(t)?"table":/^(tbody)$/i.test(t)?"table-row-group":"block"},addClass:function(e,t){e.classList?e.classList.add(t):e.className+=(e.className.length?" ":"")+t},removeClass:function(e,t){e.classList?e.classList.remove(t):e.className=e.className.toString().replace(new RegExp("(^|\\s)"+t.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(e,r,n,o){function s(e,r){function n(){u&&S.setPropertyValue(e,"display","none")}var l=0;if(8>=d)l=f.css(e,r);else{var u=!1;if(/^(width|height)$/.test(r)&&0===S.getPropertyValue(e,"display")&&(u=!0,S.setPropertyValue(e,"display",S.Values.getDisplayType(e))),!o){if("height"===r&&"border-box"!==S.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var c=e.offsetHeight-(parseFloat(S.getPropertyValue(e,"borderTopWidth"))||0)-(parseFloat(S.getPropertyValue(e,"borderBottomWidth"))||0)-(parseFloat(S.getPropertyValue(e,"paddingTop"))||0)-(parseFloat(S.getPropertyValue(e,"paddingBottom"))||0);return n(),c}if("width"===r&&"border-box"!==S.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var p=e.offsetWidth-(parseFloat(S.getPropertyValue(e,"borderLeftWidth"))||0)-(parseFloat(S.getPropertyValue(e,"borderRightWidth"))||0)-(parseFloat(S.getPropertyValue(e,"paddingLeft"))||0)-(parseFloat(S.getPropertyValue(e,"paddingRight"))||0);return n(),p}}var g;g=i(e)===a?t.getComputedStyle(e,null):i(e).computedStyle?i(e).computedStyle:i(e).computedStyle=t.getComputedStyle(e,null),"borderColor"===r&&(r="borderTopColor"),l=9===d&&"filter"===r?g.getPropertyValue(r):g[r],(""===l||null===l)&&(l=e.style[r]),n()}if("auto"===l&&/^(top|right|bottom|left)$/i.test(r)){var m=s(e,"position");("fixed"===m||"absolute"===m&&/top|left/i.test(r))&&(l=f(e).position()[r]+"px")}return l}var l;if(S.Hooks.registered[r]){var u=r,c=S.Hooks.getRoot(u);n===a&&(n=S.getPropertyValue(e,S.Names.prefixCheck(c)[0])),S.Normalizations.registered[c]&&(n=S.Normalizations.registered[c]("extract",e,n)),l=S.Hooks.extractValue(u,n)}else if(S.Normalizations.registered[r]){var p,g;p=S.Normalizations.registered[r]("name",e),"transform"!==p&&(g=s(e,S.Names.prefixCheck(p)[0]),S.Values.isCSSNullValue(g)&&S.Hooks.templates[r]&&(g=S.Hooks.templates[r][1])),l=S.Normalizations.registered[r]("extract",e,g)}if(!/^[\d-]/.test(l))if(i(e)&&i(e).isSVG&&S.Names.SVGAttribute(r))if(/^(height|width)$/i.test(r))try{l=e.getBBox()[r]}catch(m){l=0}else l=e.getAttribute(r);else l=s(e,S.Names.prefixCheck(r)[0]);return S.Values.isCSSNullValue(l)&&(l=0),b.debug>=2&&console.log("Get "+r+": "+l),l},setPropertyValue:function(e,r,a,n,o){var s=r;if("scroll"===r)o.container?o.container["scroll"+o.direction]=a:"Left"===o.direction?t.scrollTo(a,o.alternateValue):t.scrollTo(o.alternateValue,a);else if(S.Normalizations.registered[r]&&"transform"===S.Normalizations.registered[r]("name",e))S.Normalizations.registered[r]("inject",e,a),s="transform",a=i(e).transformCache[r];else{if(S.Hooks.registered[r]){var l=r,u=S.Hooks.getRoot(r);n=n||S.getPropertyValue(e,u),a=S.Hooks.injectValue(l,a,n),r=u}if(S.Normalizations.registered[r]&&(a=S.Normalizations.registered[r]("inject",e,a),r=S.Normalizations.registered[r]("name",e)),s=S.Names.prefixCheck(r)[0],8>=d)try{e.style[s]=a}catch(c){b.debug&&console.log("Browser does not support ["+a+"] for ["+s+"]")}else i(e)&&i(e).isSVG&&S.Names.SVGAttribute(r)?e.setAttribute(r,a):e.style[s]=a;b.debug>=2&&console.log("Set "+r+" ("+s+"): "+a)}return[s,a]},flushTransformCache:function(e){function t(t){return parseFloat(S.getPropertyValue(e,t))}var r="";if((d||b.State.isAndroid&&!b.State.isChrome)&&i(e).isSVG){var a={translate:[t("translateX"),t("translateY")],skewX:[t("skewX")],skewY:[t("skewY")],scale:1!==t("scale")?[t("scale"),t("scale")]:[t("scaleX"),t("scaleY")],rotate:[t("rotateZ"),0,0]};f.each(i(e).transformCache,function(e){/^translate/i.test(e)?e="translate":/^scale/i.test(e)?e="scale":/^rotate/i.test(e)&&(e="rotate"),a[e]&&(r+=e+"("+a[e].join(" ")+") ",delete a[e])})}else{var n,o;f.each(i(e).transformCache,function(t){return n=i(e).transformCache[t],"transformPerspective"===t?(o=n,!0):(9===d&&"rotateZ"===t&&(t="rotate"),void(r+=t+n+" "))}),o&&(r="perspective"+o+" "+r)}S.setPropertyValue(e,"transform",r)}};S.Hooks.register(),S.Normalizations.register(),b.hook=function(e,t,r){var n=a;return e=o(e),f.each(e,function(e,o){if(i(o)===a&&b.init(o),r===a)n===a&&(n=b.CSS.getPropertyValue(o,t));else{var s=b.CSS.setPropertyValue(o,t,r);"transform"===s[0]&&b.CSS.flushTransformCache(o),n=s}}),n};var P=function(){function e(){return s?k.promise||null:l}function n(){function e(e){function p(e,t){var r=a,n=a,i=a;return m.isArray(e)?(r=e[0],!m.isArray(e[1])&&/^[\d-]/.test(e[1])||m.isFunction(e[1])||S.RegEx.isHex.test(e[1])?i=e[1]:(m.isString(e[1])&&!S.RegEx.isHex.test(e[1])||m.isArray(e[1]))&&(n=t?e[1]:u(e[1],s.duration),e[2]!==a&&(i=e[2]))):r=e,t||(n=n||s.easing),m.isFunction(r)&&(r=r.call(o,V,w)),m.isFunction(i)&&(i=i.call(o,V,w)),[r||0,n,i]}function d(e,t){var r,a;return a=(t||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(e){return r=e,""}),r||(r=S.Values.getUnitType(e)),[a,r]}function h(){var e={myParent:o.parentNode||r.body,position:S.getPropertyValue(o,"position"),fontSize:S.getPropertyValue(o,"fontSize")},a=e.position===L.lastPosition&&e.myParent===L.lastParent,n=e.fontSize===L.lastFontSize;L.lastParent=e.myParent,L.lastPosition=e.position,L.lastFontSize=e.fontSize;var s=100,l={};if(n&&a)l.emToPx=L.lastEmToPx,l.percentToPxWidth=L.lastPercentToPxWidth,l.percentToPxHeight=L.lastPercentToPxHeight;else{var u=i(o).isSVG?r.createElementNS("http://www.w3.org/2000/svg","rect"):r.createElement("div");b.init(u),e.myParent.appendChild(u),f.each(["overflow","overflowX","overflowY"],function(e,t){b.CSS.setPropertyValue(u,t,"hidden")}),b.CSS.setPropertyValue(u,"position",e.position),b.CSS.setPropertyValue(u,"fontSize",e.fontSize),b.CSS.setPropertyValue(u,"boxSizing","content-box"),f.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(e,t){b.CSS.setPropertyValue(u,t,s+"%")}),b.CSS.setPropertyValue(u,"paddingLeft",s+"em"),l.percentToPxWidth=L.lastPercentToPxWidth=(parseFloat(S.getPropertyValue(u,"width",null,!0))||1)/s,l.percentToPxHeight=L.lastPercentToPxHeight=(parseFloat(S.getPropertyValue(u,"height",null,!0))||1)/s,l.emToPx=L.lastEmToPx=(parseFloat(S.getPropertyValue(u,"paddingLeft"))||1)/s,e.myParent.removeChild(u)}return null===L.remToPx&&(L.remToPx=parseFloat(S.getPropertyValue(r.body,"fontSize"))||16),null===L.vwToPx&&(L.vwToPx=parseFloat(t.innerWidth)/100,L.vhToPx=parseFloat(t.innerHeight)/100),l.remToPx=L.remToPx,l.vwToPx=L.vwToPx,l.vhToPx=L.vhToPx,b.debug>=1&&console.log("Unit ratios: "+JSON.stringify(l),o),l}if(s.begin&&0===V)try{s.begin.call(g,g)}catch(x){setTimeout(function(){throw x},1)}if("scroll"===A){var P,C,T,F=/^x$/i.test(s.axis)?"Left":"Top",j=parseFloat(s.offset)||0;s.container?m.isWrapped(s.container)||m.isNode(s.container)?(s.container=s.container[0]||s.container,P=s.container["scroll"+F],T=P+f(o).position()[F.toLowerCase()]+j):s.container=null:(P=b.State.scrollAnchor[b.State["scrollProperty"+F]],C=b.State.scrollAnchor[b.State["scrollProperty"+("Left"===F?"Top":"Left")]],T=f(o).offset()[F.toLowerCase()]+j),l={scroll:{rootPropertyValue:!1,startValue:P,currentValue:P,endValue:T,unitType:"",easing:s.easing,scrollData:{container:s.container,direction:F,alternateValue:C}},element:o},b.debug&&console.log("tweensContainer (scroll): ",l.scroll,o)}else if("reverse"===A){if(!i(o).tweensContainer)return void f.dequeue(o,s.queue);"none"===i(o).opts.display&&(i(o).opts.display="auto"),"hidden"===i(o).opts.visibility&&(i(o).opts.visibility="visible"),i(o).opts.loop=!1,i(o).opts.begin=null,i(o).opts.complete=null,v.easing||delete s.easing,v.duration||delete s.duration,s=f.extend({},i(o).opts,s);var E=f.extend(!0,{},i(o).tweensContainer);for(var H in E)if("element"!==H){var N=E[H].startValue;E[H].startValue=E[H].currentValue=E[H].endValue,E[H].endValue=N,m.isEmptyObject(v)||(E[H].easing=s.easing),b.debug&&console.log("reverse tweensContainer ("+H+"): "+JSON.stringify(E[H]),o)}l=E}else if("start"===A){var E;i(o).tweensContainer&&i(o).isAnimating===!0&&(E=i(o).tweensContainer),f.each(y,function(e,t){if(RegExp("^"+S.Lists.colors.join("$|^")+"$").test(e)){var r=p(t,!0),n=r[0],o=r[1],i=r[2];if(S.RegEx.isHex.test(n)){for(var s=["Red","Green","Blue"],l=S.Values.hexToRgb(n),u=i?S.Values.hexToRgb(i):a,c=0;cO;O++){var q={delay:j.delay,progress:j.progress};O===z-1&&(q.display=j.display,q.visibility=j.visibility,q.complete=j.complete),P(g,"reverse",q)}return e()}};b=f.extend(P,b),b.animate=P;var w=t.requestAnimationFrame||g;return b.State.isMobile||r.hidden===a||r.addEventListener("visibilitychange",function(){r.hidden?(w=function(e){return setTimeout(function(){e(!0)},16)},c()):w=t.requestAnimationFrame||g}),e.Velocity=b,e!==t&&(e.fn.velocity=P,e.fn.velocity.defaults=b.defaults),f.each(["Down","Up"],function(e,t){b.Redirects["slide"+t]=function(e,r,n,o,i,s){var l=f.extend({},r),u=l.begin,c=l.complete,p={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},d={};l.display===a&&(l.display="Down"===t?"inline"===b.CSS.Values.getDisplayType(e)?"inline-block":"block":"none"),l.begin=function(){u&&u.call(i,i);for(var r in p){d[r]=e.style[r];var a=b.CSS.getPropertyValue(e,r);p[r]="Down"===t?[a,0]:[0,a]}d.overflow=e.style.overflow,e.style.overflow="hidden"},l.complete=function(){for(var t in d)e.style[t]=d[t];c&&c.call(i,i),s&&s.resolver(i)},b(e,p,l)}}),f.each(["In","Out"],function(e,t){b.Redirects["fade"+t]=function(e,r,n,o,i,s){var l=f.extend({},r),u={opacity:"In"===t?1:0},c=l.complete;l.complete=n!==o-1?l.begin=null:function(){c&&c.call(i,i),s&&s.resolver(i)},l.display===a&&(l.display="In"===t?"auto":"none"),b(this,u,l)}}),b}(window.jQuery||window.Zepto||window,window,document)})); -;!function(a,b,c,d){"use strict";function k(a,b,c){return setTimeout(q(a,c),b)}function l(a,b,c){return Array.isArray(a)?(m(a,c[b],c),!0):!1}function m(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e-1}function x(a){return a.trim().split(/\s+/g)}function y(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;dc[b]}):d.sort()),d}function B(a,b){for(var c,f,g=b[0].toUpperCase()+b.slice(1),h=0;h1&&!c.firstMultiple?c.firstMultiple=gb(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=hb(d);b.timeStamp=j(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=lb(h,i),b.distance=kb(h,i),eb(c,b),b.offsetDirection=jb(b.deltaX,b.deltaY),b.scale=g?nb(g.pointers,d):1,b.rotation=g?mb(g.pointers,d):0,fb(c,b);var k=a.element;v(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function eb(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===O||f.eventType===Q)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function fb(a,b){var f,g,h,j,c=a.lastInterval||b,e=b.timeStamp-c.timeStamp;if(b.eventType!=R&&(e>N||c.velocity===d)){var k=c.deltaX-b.deltaX,l=c.deltaY-b.deltaY,m=ib(e,k,l);g=m.x,h=m.y,f=i(m.x)>i(m.y)?m.x:m.y,j=jb(k,l),a.lastInterval=b}else f=c.velocity,g=c.velocityX,h=c.velocityY,j=c.direction;b.velocity=f,b.velocityX=g,b.velocityY=h,b.direction=j}function gb(a){for(var b=[],c=0;ce;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:h(c/b),y:h(d/b)}}function ib(a,b,c){return{x:b/a||0,y:c/a||0}}function jb(a,b){return a===b?S:i(a)>=i(b)?a>0?T:U:b>0?V:W}function kb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function lb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function mb(a,b){return lb(b[1],b[0],_)-lb(a[1],a[0],_)}function nb(a,b){return kb(b[0],b[1],_)/kb(a[0],a[1],_)}function rb(){this.evEl=pb,this.evWin=qb,this.allow=!0,this.pressed=!1,ab.apply(this,arguments)}function wb(){this.evEl=ub,this.evWin=vb,ab.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Ab(){this.evTarget=yb,this.evWin=zb,this.started=!1,ab.apply(this,arguments)}function Bb(a,b){var c=z(a.touches),d=z(a.changedTouches);return b&(Q|R)&&(c=A(c.concat(d),"identifier",!0)),[c,d]}function Eb(){this.evTarget=Db,this.targetIds={},ab.apply(this,arguments)}function Fb(a,b){var c=z(a.touches),d=this.targetIds;if(b&(O|P)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=z(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return v(a.target,i)}),b===O)for(e=0;eh&&(b.push(a),h=b.length-1):e&(Q|R)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var xb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},yb="touchstart",zb="touchstart touchmove touchend touchcancel";p(Ab,ab,{handler:function(a){var b=xb[a.type];if(b===O&&(this.started=!0),this.started){var c=Bb.call(this,a,b);b&(Q|R)&&0===c[0].length-c[1].length&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}});var Cb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},Db="touchstart touchmove touchend touchcancel";p(Eb,ab,{handler:function(a){var b=Cb[a.type],c=Fb.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}),p(Gb,ab,{handler:function(a,b,c){var d=c.pointerType==J,e=c.pointerType==L;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Q|R)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Hb=B(f.style,"touchAction"),Ib=Hb!==d,Jb="compute",Kb="auto",Lb="manipulation",Mb="none",Nb="pan-x",Ob="pan-y";Pb.prototype={set:function(a){a==Jb&&(a=this.compute()),Ib&&(this.manager.element.style[Hb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return m(this.manager.recognizers,function(b){r(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),Qb(a.join(" "))},preventDefaults:function(a){if(!Ib){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return b.preventDefault(),void 0;var d=this.actions,e=w(d,Mb),f=w(d,Ob),g=w(d,Nb);return e||f&&c&X||g&&c&Y?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var Rb=1,Sb=2,Tb=4,Ub=8,Vb=Ub,Wb=16,Xb=32;Yb.prototype={defaults:{},set:function(a){return n(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(l(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=_b(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return l(a,"dropRecognizeWith",this)?this:(a=_b(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(l(a,"requireFailure",this))return this;var b=this.requireFail;return a=_b(a,this),-1===y(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(l(a,"dropRequireFailure",this))return this;a=_b(a,this);var b=y(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function d(d){b.manager.emit(b.options.event+(d?Zb(c):""),a)}var b=this,c=this.state;Ub>c&&d(!0),d(),c>=Ub&&d(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):(this.state=Xb,void 0)},canEmit:function(){for(var a=0;af?T:U,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?S:0>g?V:W,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return ac.prototype.attrTest.call(this,a)&&(this.state&Sb||!(this.state&Sb)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),p(cc,ac,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&Sb)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),p(dc,Yb,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[Kb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distanceb.time;if(this._input=a,!d||!c||a.eventType&(Q|R)&&!e)this.reset();else if(a.eventType&O)this.reset(),this._timer=k(function(){this.state=Vb,this.tryEmit()},b.time,this);else if(a.eventType&Q)return Vb;return Xb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===Vb&&(a&&a.eventType&Q?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=j(),this.manager.emit(this.options.event,this._input)))}}),p(ec,ac,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&Sb)}}),p(fc,ac,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:X|Y,pointers:1},getTouchAction:function(){return bc.prototype.getTouchAction.call(this)},attrTest:function(a){var c,b=this.options.direction;return b&(X|Y)?c=a.velocity:b&X?c=a.velocityX:b&Y&&(c=a.velocityY),this._super.attrTest.call(this,a)&&b&a.direction&&a.distance>this.options.threshold&&i(c)>this.options.velocity&&a.eventType&Q},emit:function(a){var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),p(gc,Yb,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[Lb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance= 0 && !requestAnimationFrame) { - requestAnimationFrame = window[vendors[i] + 'RequestAnimationFrame']; - cancelAnimationFrame = window[vendors[i] + 'CancelRequestAnimationFrame']; - } - - // polyfill with setTimeout fallback - // heavily inspired from @darius gist mod: https://gist.github.com/paulirish/1579671#comment-837945 - if (!requestAnimationFrame || !cancelAnimationFrame) { - requestAnimationFrame = function(callback) { - var now = +Date.now(), - nextTime = Math.max(lastTime + 16, now); - return setTimeout(function() { - callback(lastTime = nextTime); - }, nextTime - now); - }; - - cancelAnimationFrame = clearTimeout; - } - - // export to window - window.requestAnimationFrame = requestAnimationFrame; - window.cancelAnimationFrame = cancelAnimationFrame; -}(window)); - - -// Unique ID -Materialize.guid = (function() { - function s4() { - return Math.floor((1 + Math.random()) * 0x10000) - .toString(16) - .substring(1); - } - return function() { - return s4() + s4() + '-' + s4() + '-' + s4() + '-' + - s4() + '-' + s4() + s4() + s4(); - }; -})(); - -/** - * Escapes hash from special characters - * @param {string} hash String returned from this.hash - * @returns {string} - */ -Materialize.escapeHash = function(hash) { - return hash.replace( /(:|\.|\[|\]|,|=)/g, "\\$1" ); -}; - -Materialize.elementOrParentIsFixed = function(element) { - var $element = $(element); - var $checkElements = $element.add($element.parents()); - var isFixed = false; - $checkElements.each(function(){ - if ($(this).css("position") === "fixed") { - isFixed = true; - return false; - } - }); - return isFixed; -}; - - -/** - * Get time in ms - * @license https://raw.github.com/jashkenas/underscore/master/LICENSE - * @type {function} - * @return {number} - */ -var getTime = (Date.now || function () { - return new Date().getTime(); -}); - - -/** - * Returns a function, that, when invoked, will only be triggered at most once - * during a given window of time. Normally, the throttled function will run - * as much as it can, without ever going more than once per `wait` duration; - * but if you'd like to disable the execution on the leading edge, pass - * `{leading: false}`. To disable execution on the trailing edge, ditto. - * @license https://raw.github.com/jashkenas/underscore/master/LICENSE - * @param {function} func - * @param {number} wait - * @param {Object=} options - * @returns {Function} - */ -Materialize.throttle = function(func, wait, options) { - var context, args, result; - var timeout = null; - var previous = 0; - options || (options = {}); - var later = function () { - previous = options.leading === false ? 0 : getTime(); - timeout = null; - result = func.apply(context, args); - context = args = null; - }; - return function () { - var now = getTime(); - if (!previous && options.leading === false) previous = now; - var remaining = wait - (now - previous); - context = this; - args = arguments; - if (remaining <= 0) { - clearTimeout(timeout); - timeout = null; - previous = now; - result = func.apply(context, args); - context = args = null; - } else if (!timeout && options.trailing !== false) { - timeout = setTimeout(later, remaining); - } - return result; - }; -}; - - -// Velocity has conflicts when loaded with jQuery, this will check for it -// First, check if in noConflict mode -var Vel; -if (jQuery) { - Vel = jQuery.Velocity; -} else if ($) { - Vel = $.Velocity; -} else { - Vel = Velocity; -} -;(function ($) { - $.fn.collapsible = function(options) { - var defaults = { - accordion: undefined, - onOpen: undefined, - onClose: undefined - }; - - options = $.extend(defaults, options); - - - return this.each(function() { - - var $this = $(this); - - var $panel_headers = $(this).find('> li > .collapsible-header'); - - var collapsible_type = $this.data("collapsible"); - - // Turn off any existing event handlers - $this.off('click.collapse', '> li > .collapsible-header'); - $panel_headers.off('click.collapse'); - - - /**************** - Helper Functions - ****************/ - - // Accordion Open - function accordionOpen(object) { - $panel_headers = $this.find('> li > .collapsible-header'); - if (object.hasClass('active')) { - object.parent().addClass('active'); - } - else { - object.parent().removeClass('active'); - } - if (object.parent().hasClass('active')){ - object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); - } - else{ - object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); - } - - $panel_headers.not(object).removeClass('active').parent().removeClass('active'); - - // Close previously open accordion elements. - $panel_headers.not(object).parent().children('.collapsible-body').stop(true,false).each(function() { - if ($(this).is(':visible')) { - $(this).slideUp({ - duration: 350, - easing: "easeOutQuart", - queue: false, - complete: - function() { - $(this).css('height', ''); - execCallbacks($(this).siblings('.collapsible-header')); - } - }); - } - }); - } - - // Expandable Open - function expandableOpen(object) { - if (object.hasClass('active')) { - object.parent().addClass('active'); - } - else { - object.parent().removeClass('active'); - } - if (object.parent().hasClass('active')){ - object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); - } - else { - object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); - } - } - - // Open collapsible. object: .collapsible-header - function collapsibleOpen(object) { - if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) { // Handle Accordion - accordionOpen(object); - } else { // Handle Expandables - expandableOpen(object); - } - - execCallbacks(object); - } - - // Handle callbacks - function execCallbacks(object) { - if (object.hasClass('active')) { - if (typeof(options.onOpen) === "function") { - options.onOpen.call(this, object.parent()); - } - } else { - if (typeof(options.onClose) === "function") { - options.onClose.call(this, object.parent()); - } - } - } - - /** - * Check if object is children of panel header - * @param {Object} object Jquery object - * @return {Boolean} true if it is children - */ - function isChildrenOfPanelHeader(object) { - - var panelHeader = getPanelHeader(object); - - return panelHeader.length > 0; - } - - /** - * Get panel header from a children element - * @param {Object} object Jquery object - * @return {Object} panel header object - */ - function getPanelHeader(object) { - - return object.closest('li > .collapsible-header'); - } - - /***** End Helper Functions *****/ - - - - // Add click handler to only direct collapsible header children - $this.on('click.collapse', '> li > .collapsible-header', function(e) { - var element = $(e.target); - - if (isChildrenOfPanelHeader(element)) { - element = getPanelHeader(element); - } - - element.toggleClass('active'); - - collapsibleOpen(element); - }); - - - // Open first active - if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) { // Handle Accordion - collapsibleOpen($panel_headers.filter('.active').first()); - - } else { // Handle Expandables - $panel_headers.filter('.active').each(function() { - collapsibleOpen($(this)); - }); - } - - }); - }; - - $(document).ready(function(){ - $('.collapsible').collapsible(); - }); -}( jQuery ));;(function ($) { - - // Add posibility to scroll to selected option - // usefull for select for example - $.fn.scrollTo = function(elem) { - $(this).scrollTop($(this).scrollTop() - $(this).offset().top + $(elem).offset().top); - return this; - }; - - $.fn.dropdown = function (options) { - var defaults = { - inDuration: 300, - outDuration: 225, - constrainWidth: true, // Constrains width of dropdown to the activator - hover: false, - gutter: 0, // Spacing from edge - belowOrigin: false, - alignment: 'left', - stopPropagation: false - }; - - // Open dropdown. - if (options === "open") { - this.each(function() { - $(this).trigger('open'); - }); - return false; - } - - // Close dropdown. - if (options === "close") { - this.each(function() { - $(this).trigger('close'); - }); - return false; - } - - this.each(function(){ - var origin = $(this); - var curr_options = $.extend({}, defaults, options); - var isFocused = false; - - // Dropdown menu - var activates = $("#"+ origin.attr('data-activates')); - - function updateOptions() { - if (origin.data('induration') !== undefined) - curr_options.inDuration = origin.data('induration'); - if (origin.data('outduration') !== undefined) - curr_options.outDuration = origin.data('outduration'); - if (origin.data('constrainwidth') !== undefined) - curr_options.constrainWidth = origin.data('constrainwidth'); - if (origin.data('hover') !== undefined) - curr_options.hover = origin.data('hover'); - if (origin.data('gutter') !== undefined) - curr_options.gutter = origin.data('gutter'); - if (origin.data('beloworigin') !== undefined) - curr_options.belowOrigin = origin.data('beloworigin'); - if (origin.data('alignment') !== undefined) - curr_options.alignment = origin.data('alignment'); - if (origin.data('stoppropagation') !== undefined) - curr_options.stopPropagation = origin.data('stoppropagation'); - } - - updateOptions(); - - // Attach dropdown to its activator - origin.after(activates); - - /* - Helper function to position and resize dropdown. - Used in hover and click handler. - */ - function placeDropdown(eventType) { - // Check for simultaneous focus and click events. - if (eventType === 'focus') { - isFocused = true; - } - - // Check html data attributes - updateOptions(); - - // Set Dropdown state - activates.addClass('active'); - origin.addClass('active'); - - // Constrain width - if (curr_options.constrainWidth === true) { - activates.css('width', origin.outerWidth()); - - } else { - activates.css('white-space', 'nowrap'); - } - - // Offscreen detection - var windowHeight = window.innerHeight; - var originHeight = origin.innerHeight(); - var offsetLeft = origin.offset().left; - var offsetTop = origin.offset().top - $(window).scrollTop(); - var currAlignment = curr_options.alignment; - var gutterSpacing = 0; - var leftPosition = 0; - - // Below Origin - var verticalOffset = 0; - if (curr_options.belowOrigin === true) { - verticalOffset = originHeight; - } - - // Check for scrolling positioned container. - var scrollYOffset = 0; - var scrollXOffset = 0; - var wrapper = origin.parent(); - if (!wrapper.is('body')) { - if (wrapper[0].scrollHeight > wrapper[0].clientHeight) { - scrollYOffset = wrapper[0].scrollTop; - } - if (wrapper[0].scrollWidth > wrapper[0].clientWidth) { - scrollXOffset = wrapper[0].scrollLeft; - } - } - - - if (offsetLeft + activates.innerWidth() > $(window).width()) { - // Dropdown goes past screen on right, force right alignment - currAlignment = 'right'; - - } else if (offsetLeft - activates.innerWidth() + origin.innerWidth() < 0) { - // Dropdown goes past screen on left, force left alignment - currAlignment = 'left'; - } - // Vertical bottom offscreen detection - if (offsetTop + activates.innerHeight() > windowHeight) { - // If going upwards still goes offscreen, just crop height of dropdown. - if (offsetTop + originHeight - activates.innerHeight() < 0) { - var adjustedHeight = windowHeight - offsetTop - verticalOffset; - activates.css('max-height', adjustedHeight); - } else { - // Flow upwards. - if (!verticalOffset) { - verticalOffset += originHeight; - } - verticalOffset -= activates.innerHeight(); - } - } - - // Handle edge alignment - if (currAlignment === 'left') { - gutterSpacing = curr_options.gutter; - leftPosition = origin.position().left + gutterSpacing; - } - else if (currAlignment === 'right') { - var offsetRight = origin.position().left + origin.outerWidth() - activates.outerWidth(); - gutterSpacing = -curr_options.gutter; - leftPosition = offsetRight + gutterSpacing; - } - - // Position dropdown - activates.css({ - position: 'absolute', - top: origin.position().top + verticalOffset + scrollYOffset, - left: leftPosition + scrollXOffset - }); - - - // Show dropdown - activates.stop(true, true).css('opacity', 0) - .slideDown({ - queue: false, - duration: curr_options.inDuration, - easing: 'easeOutCubic', - complete: function() { - $(this).css('height', ''); - } - }) - .animate( {opacity: 1}, {queue: false, duration: curr_options.inDuration, easing: 'easeOutSine'}); - - // Add click close handler to document - $(document).bind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id'), function (e) { - if (!activates.is(e.target) && !origin.is(e.target) && (!origin.find(e.target).length) ) { - hideDropdown(); - $(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id')); - } - }); - } - - function hideDropdown() { - // Check for simultaneous focus and click events. - isFocused = false; - activates.fadeOut(curr_options.outDuration); - activates.removeClass('active'); - origin.removeClass('active'); - $(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id')); - setTimeout(function() { activates.css('max-height', ''); }, curr_options.outDuration); - } - - // Hover - if (curr_options.hover) { - var open = false; - origin.unbind('click.' + origin.attr('id')); - // Hover handler to show dropdown - origin.on('mouseenter', function(e){ // Mouse over - if (open === false) { - placeDropdown(); - open = true; - } - }); - origin.on('mouseleave', function(e){ - // If hover on origin then to something other than dropdown content, then close - var toEl = e.toElement || e.relatedTarget; // added browser compatibility for target element - if(!$(toEl).closest('.dropdown-content').is(activates)) { - activates.stop(true, true); - hideDropdown(); - open = false; - } - }); - - activates.on('mouseleave', function(e){ // Mouse out - var toEl = e.toElement || e.relatedTarget; - if(!$(toEl).closest('.dropdown-button').is(origin)) { - activates.stop(true, true); - hideDropdown(); - open = false; - } - }); - - // Click - } else { - // Click handler to show dropdown - origin.unbind('click.' + origin.attr('id')); - origin.bind('click.'+origin.attr('id'), function(e){ - if (!isFocused) { - if ( origin[0] == e.currentTarget && - !origin.hasClass('active') && - ($(e.target).closest('.dropdown-content').length === 0)) { - e.preventDefault(); // Prevents button click from moving window - if (curr_options.stopPropagation) { - e.stopPropagation(); - } - placeDropdown('click'); - } - // If origin is clicked and menu is open, close menu - else if (origin.hasClass('active')) { - hideDropdown(); - $(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id')); - } - } - }); - - } // End else - - // Listen to open and close event - useful for select component - origin.on('open', function(e, eventType) { - placeDropdown(eventType); - }); - origin.on('close', hideDropdown); - - - }); - }; // End dropdown plugin - - $(document).ready(function(){ - $('.dropdown-button').dropdown(); - }); -}( jQuery )); -;(function($) { - var _stack = 0, - _lastID = 0, - _generateID = function() { - _lastID++; - return 'materialize-modal-overlay-' + _lastID; - }; - - var methods = { - init : function(options) { - var defaults = { - opacity: 0.5, - inDuration: 350, - outDuration: 250, - ready: undefined, - complete: undefined, - dismissible: true, - startingTop: '4%', - endingTop: '10%' - }; - - // Override defaults - options = $.extend(defaults, options); - - return this.each(function() { - var $modal = $(this); - var modal_id = $(this).attr("id") || '#' + $(this).data('target'); - - var closeModal = function() { - var overlayID = $modal.data('overlay-id'); - var $overlay = $('#' + overlayID); - $modal.removeClass('open'); - - // Enable scrolling - $('body').css({ - overflow: '', - width: '' - }); - - $modal.find('.modal-close').off('click.close'); - $(document).off('keyup.modal' + overlayID); - - $overlay.velocity( { opacity: 0}, {duration: options.outDuration, queue: false, ease: "easeOutQuart"}); - - - // Define Bottom Sheet animation - var exitVelocityOptions = { - duration: options.outDuration, - queue: false, - ease: "easeOutCubic", - // Handle modal ready callback - complete: function() { - $(this).css({display:"none"}); - - // Call complete callback - if (typeof(options.complete) === "function") { - options.complete.call(this, $modal); - } - $overlay.remove(); - _stack--; - } - }; - if ($modal.hasClass('bottom-sheet')) { - $modal.velocity({bottom: "-100%", opacity: 0}, exitVelocityOptions); - } - else { - $modal.velocity( - { top: options.startingTop, opacity: 0, scaleX: 0.7}, - exitVelocityOptions - ); - } - }; - - var openModal = function($trigger) { - var $body = $('body'); - var oldWidth = $body.innerWidth(); - $body.css('overflow', 'hidden'); - $body.width(oldWidth); - - if ($modal.hasClass('open')) { - return; - } - - var overlayID = _generateID(); - var $overlay = $(''); - lStack = (++_stack); - - // Store a reference of the overlay - $overlay.attr('id', overlayID).css('z-index', 1000 + lStack * 2); - $modal.data('overlay-id', overlayID).css('z-index', 1000 + lStack * 2 + 1); - $modal.addClass('open'); - - $("body").append($overlay); - - if (options.dismissible) { - $overlay.click(function() { - closeModal(); - }); - // Return on ESC - $(document).on('keyup.modal' + overlayID, function(e) { - if (e.keyCode === 27) { // ESC key - closeModal(); - } - }); - } - - $modal.find(".modal-close").on('click.close', function(e) { - closeModal(); - }); - - $overlay.css({ display : "block", opacity : 0 }); - - $modal.css({ - display : "block", - opacity: 0 - }); - - $overlay.velocity({opacity: options.opacity}, {duration: options.inDuration, queue: false, ease: "easeOutCubic"}); - $modal.data('associated-overlay', $overlay[0]); - - // Define Bottom Sheet animation - var enterVelocityOptions = { - duration: options.inDuration, - queue: false, - ease: "easeOutCubic", - // Handle modal ready callback - complete: function() { - if (typeof(options.ready) === "function") { - options.ready.call(this, $modal, $trigger); - } - } - }; - if ($modal.hasClass('bottom-sheet')) { - $modal.velocity({bottom: "0", opacity: 1}, enterVelocityOptions); - } - else { - $.Velocity.hook($modal, "scaleX", 0.7); - $modal.css({ top: options.startingTop }); - $modal.velocity({top: options.endingTop, opacity: 1, scaleX: '1'}, enterVelocityOptions); - } - - }; - - // Reset handlers - $(document).off('click.modalTrigger', 'a[href="#' + modal_id + '"], [data-target="' + modal_id + '"]'); - $(this).off('openModal'); - $(this).off('closeModal'); - - // Close Handlers - $(document).on('click.modalTrigger', 'a[href="#' + modal_id + '"], [data-target="' + modal_id + '"]', function(e) { - options.startingTop = ($(this).offset().top - $(window).scrollTop()) /1.15; - openModal($(this)); - e.preventDefault(); - }); // done set on click - - $(this).on('openModal', function() { - var modal_id = $(this).attr("href") || '#' + $(this).data('target'); - openModal(); - }); - - $(this).on('closeModal', function() { - closeModal(); - }); - }); // done return - }, - open : function() { - $(this).trigger('openModal'); - }, - close : function() { - $(this).trigger('closeModal'); - } - }; - - $.fn.modal = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.modal' ); - } - }; -})(jQuery); -;(function ($) { - - $.fn.materialbox = function () { - - return this.each(function() { - - if ($(this).hasClass('initialized')) { - return; - } - - $(this).addClass('initialized'); - - var overlayActive = false; - var doneAnimating = true; - var inDuration = 275; - var outDuration = 200; - var origin = $(this); - var placeholder = $('
').addClass('material-placeholder'); - var originalWidth = 0; - var originalHeight = 0; - var ancestorsChanged; - var ancestor; - origin.wrap(placeholder); - - - origin.on('click', function(){ - var placeholder = origin.parent('.material-placeholder'); - var windowWidth = window.innerWidth; - var windowHeight = window.innerHeight; - var originalWidth = origin.width(); - var originalHeight = origin.height(); - - - // If already modal, return to original - if (doneAnimating === false) { - returnToOriginal(); - return false; - } - else if (overlayActive && doneAnimating===true) { - returnToOriginal(); - return false; - } - - - // Set states - doneAnimating = false; - origin.addClass('active'); - overlayActive = true; - - // Set positioning for placeholder - placeholder.css({ - width: placeholder[0].getBoundingClientRect().width, - height: placeholder[0].getBoundingClientRect().height, - position: 'relative', - top: 0, - left: 0 - }); - - // Find ancestor with overflow: hidden; and remove it - ancestorsChanged = undefined; - ancestor = placeholder[0].parentNode; - var count = 0; - while (ancestor !== null && !$(ancestor).is(document)) { - var curr = $(ancestor); - if (curr.css('overflow') !== 'visible') { - curr.css('overflow', 'visible'); - if (ancestorsChanged === undefined) { - ancestorsChanged = curr; - } - else { - ancestorsChanged = ancestorsChanged.add(curr); - } - } - ancestor = ancestor.parentNode; - } - - // Set css on origin - origin.css({ - position: 'absolute', - 'z-index': 1000, - 'will-change': 'left, top, width, height' - }) - .data('width', originalWidth) - .data('height', originalHeight); - - // Add overlay - var overlay = $('
') - .css({ - opacity: 0 - }) - .click(function(){ - if (doneAnimating === true) - returnToOriginal(); - }); - - // Put before in origin image to preserve z-index layering. - origin.before(overlay); - - // Set dimensions if needed - var overlayOffset = overlay[0].getBoundingClientRect(); - overlay.css({ - width: windowWidth, - height: windowHeight, - left: -1 * overlayOffset.left, - top: -1 * overlayOffset.top - }) - - // Animate Overlay - overlay.velocity({opacity: 1}, - {duration: inDuration, queue: false, easing: 'easeOutQuad'} ); - - // Add and animate caption if it exists - if (origin.data('caption') !== "") { - var $photo_caption = $('
'); - $photo_caption.text(origin.data('caption')); - $('body').append($photo_caption); - $photo_caption.css({ "display": "inline" }); - $photo_caption.velocity({opacity: 1}, {duration: inDuration, queue: false, easing: 'easeOutQuad'}); - } - - // Resize Image - var ratio = 0; - var widthPercent = originalWidth / windowWidth; - var heightPercent = originalHeight / windowHeight; - var newWidth = 0; - var newHeight = 0; - - if (widthPercent > heightPercent) { - ratio = originalHeight / originalWidth; - newWidth = windowWidth * 0.9; - newHeight = windowWidth * 0.9 * ratio; - } - else { - ratio = originalWidth / originalHeight; - newWidth = (windowHeight * 0.9) * ratio; - newHeight = windowHeight * 0.9; - } - - // Animate image + set z-index - if(origin.hasClass('responsive-img')) { - origin.velocity({'max-width': newWidth, 'width': originalWidth}, {duration: 0, queue: false, - complete: function(){ - origin.css({left: 0, top: 0}) - .velocity( - { - height: newHeight, - width: newWidth, - left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2, - top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2 - }, - { - duration: inDuration, - queue: false, - easing: 'easeOutQuad', - complete: function(){doneAnimating = true;} - } - ); - } // End Complete - }); // End Velocity - } - else { - origin.css('left', 0) - .css('top', 0) - .velocity( - { - height: newHeight, - width: newWidth, - left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2, - top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2 - }, - { - duration: inDuration, - queue: false, - easing: 'easeOutQuad', - complete: function(){doneAnimating = true;} - } - ); // End Velocity - } - - }); // End origin on click - - - // Return on scroll - $(window).scroll(function() { - if (overlayActive) { - returnToOriginal(); - } - }); - - // Return on ESC - $(document).keyup(function(e) { - - if (e.keyCode === 27 && doneAnimating === true) { // ESC key - if (overlayActive) { - returnToOriginal(); - } - } - }); - - - // This function returns the modaled image to the original spot - function returnToOriginal() { - - doneAnimating = false; - - var placeholder = origin.parent('.material-placeholder'); - var windowWidth = window.innerWidth; - var windowHeight = window.innerHeight; - var originalWidth = origin.data('width'); - var originalHeight = origin.data('height'); - - origin.velocity("stop", true); - $('#materialbox-overlay').velocity("stop", true); - $('.materialbox-caption').velocity("stop", true); - - - $('#materialbox-overlay').velocity({opacity: 0}, { - duration: outDuration, // Delay prevents animation overlapping - queue: false, easing: 'easeOutQuad', - complete: function(){ - // Remove Overlay - overlayActive = false; - $(this).remove(); - } - }); - - // Resize Image - origin.velocity( - { - width: originalWidth, - height: originalHeight, - left: 0, - top: 0 - }, - { - duration: outDuration, - queue: false, easing: 'easeOutQuad' - } - ); - - // Remove Caption + reset css settings on image - $('.materialbox-caption').velocity({opacity: 0}, { - duration: outDuration, // Delay prevents animation overlapping - queue: false, easing: 'easeOutQuad', - complete: function(){ - placeholder.css({ - height: '', - width: '', - position: '', - top: '', - left: '' - }); - - origin.css({ - height: '', - top: '', - left: '', - width: '', - 'max-width': '', - position: '', - 'z-index': '', - 'will-change': '' - }); - - // Remove class - origin.removeClass('active'); - doneAnimating = true; - $(this).remove(); - - // Remove overflow overrides on ancestors - if (ancestorsChanged) { - ancestorsChanged.css('overflow', ''); - } - } - }); - - } - }); - }; - - $(document).ready(function(){ - $('.materialboxed').materialbox(); - }); - -}( jQuery )); -;(function ($) { - - $.fn.parallax = function () { - var window_width = $(window).width(); - // Parallax Scripts - return this.each(function(i) { - var $this = $(this); - $this.addClass('parallax'); - - function updateParallax(initial) { - var container_height; - if (window_width < 601) { - container_height = ($this.height() > 0) ? $this.height() : $this.children("img").height(); - } - else { - container_height = ($this.height() > 0) ? $this.height() : 500; - } - var $img = $this.children("img").first(); - var img_height = $img.height(); - var parallax_dist = img_height - container_height; - var bottom = $this.offset().top + container_height; - var top = $this.offset().top; - var scrollTop = $(window).scrollTop(); - var windowHeight = window.innerHeight; - var windowBottom = scrollTop + windowHeight; - var percentScrolled = (windowBottom - top) / (container_height + windowHeight); - var parallax = Math.round((parallax_dist * percentScrolled)); - - if (initial) { - $img.css('display', 'block'); - } - if ((bottom > scrollTop) && (top < (scrollTop + windowHeight))) { - $img.css('transform', "translate3D(-50%," + parallax + "px, 0)"); - } - - } - - // Wait for image load - $this.children("img").one("load", function() { - updateParallax(true); - }).each(function() { - if (this.complete) $(this).trigger("load"); - }); - - $(window).scroll(function() { - window_width = $(window).width(); - updateParallax(false); - }); - - $(window).resize(function() { - window_width = $(window).width(); - updateParallax(false); - }); - - }); - - }; -}( jQuery )); -;(function ($) { - - var methods = { - init : function(options) { - var defaults = { - onShow: null, - swipeable: false, - responsiveThreshold: Infinity, // breakpoint for swipeable - }; - options = $.extend(defaults, options); - - return this.each(function() { - - // For each set of tabs, we want to keep track of - // which tab is active and its associated content - var $this = $(this), - window_width = $(window).width(); - - var $active, $content, $links = $this.find('li.tab a'), - $tabs_width = $this.width(), - $tabs_content = $(), - $tabs_wrapper, - $tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length, - $indicator, - index = prev_index = 0, - clicked = false, - clickedTimeout, - transition = 300; - - - // Finds right attribute for indicator based on active tab. - // el: jQuery Object - var calcRightPos = function(el) { - return $tabs_width - el.position().left - el.outerWidth() - $this.scrollLeft(); - }; - - // Finds left attribute for indicator based on active tab. - // el: jQuery Object - var calcLeftPos = function(el) { - return el.position().left + $this.scrollLeft(); - }; - - // Animates Indicator to active tab. - // prev_index: Number - var animateIndicator = function(prev_index) { - if ((index - prev_index) >= 0) { - $indicator.velocity({"right": calcRightPos($active) }, { duration: transition, queue: false, easing: 'easeOutQuad'}); - $indicator.velocity({"left": calcLeftPos($active) }, {duration: transition, queue: false, easing: 'easeOutQuad', delay: 90}); - - } else { - $indicator.velocity({"left": calcLeftPos($active) }, { duration: transition, queue: false, easing: 'easeOutQuad'}); - $indicator.velocity({"right": calcRightPos($active) }, {duration: transition, queue: false, easing: 'easeOutQuad', delay: 90}); - } - }; - - // Change swipeable according to responsive threshold - if (options.swipeable) { - if (window_width > options.responsiveThreshold) { - options.swipeable = false; - } - } - - - // If the location.hash matches one of the links, use that as the active tab. - $active = $($links.filter('[href="'+location.hash+'"]')); - - // If no match is found, use the first link or any with class 'active' as the initial active tab. - if ($active.length === 0) { - $active = $(this).find('li.tab a.active').first(); - } - if ($active.length === 0) { - $active = $(this).find('li.tab a').first(); - } - - $active.addClass('active'); - index = $links.index($active); - if (index < 0) { - index = 0; - } - - if ($active[0] !== undefined) { - $content = $($active[0].hash); - $content.addClass('active'); - } - - // append indicator then set indicator width to tab width - if (!$this.find('.indicator').length) { - $this.append('
'); - } - $indicator = $this.find('.indicator'); - - // we make sure that the indicator is at the end of the tabs - $this.append($indicator); - - if ($this.is(":visible")) { - // $indicator.css({"right": $tabs_width - ((index + 1) * $tab_width)}); - // $indicator.css({"left": index * $tab_width}); - setTimeout(function() { - $indicator.css({"right": calcRightPos($active) }); - $indicator.css({"left": calcLeftPos($active) }); - }, 0); - } - $(window).resize(function () { - $tabs_width = $this.width(); - $tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length; - if (index < 0) { - index = 0; - } - if ($tab_width !== 0 && $tabs_width !== 0) { - $indicator.css({"right": calcRightPos($active) }); - $indicator.css({"left": calcLeftPos($active) }); - } - }); - - // Initialize Tabs Content. - if (options.swipeable) { - // TODO: Duplicate calls with swipeable? handle multiple div wrapping. - $links.each(function () { - var $curr_content = $(Materialize.escapeHash(this.hash)); - $curr_content.addClass('carousel-item'); - $tabs_content = $tabs_content.add($curr_content); - }); - $tabs_wrapper = $tabs_content.wrapAll(''); - $tabs_content.css('display', ''); - $('.tabs-content.carousel').carousel({ - fullWidth: true, - noWrap: true, - onCycleTo: function(item) { - if (!clicked) { - var prev_index = index; - index = $tabs_wrapper.index(item); - $active = $links.eq(index); - animateIndicator(prev_index); - } - }, - }); - } else { - // Hide the remaining content - $links.not($active).each(function () { - $(Materialize.escapeHash(this.hash)).hide(); - }); - } - - - // Bind the click event handler - $this.on('click', 'a', function(e) { - if ($(this).parent().hasClass('disabled')) { - e.preventDefault(); - return; - } - - // Act as regular link if target attribute is specified. - if (!!$(this).attr("target")) { - return; - } - - clicked = true; - $tabs_width = $this.width(); - $tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length; - - // Make the old tab inactive. - $active.removeClass('active'); - var $oldContent = $content - - // Update the variables with the new link and content - $active = $(this); - $content = $(Materialize.escapeHash(this.hash)); - $links = $this.find('li.tab a'); - var activeRect = $active.position(); - - // Make the tab active. - $active.addClass('active'); - prev_index = index; - index = $links.index($(this)); - if (index < 0) { - index = 0; - } - // Change url to current tab - // window.location.hash = $active.attr('href'); - - // Swap content - if (options.swipeable) { - if ($tabs_content.length) { - $tabs_content.carousel('set', index); - } - } else { - if ($content !== undefined) { - $content.show(); - $content.addClass('active'); - if (typeof(options.onShow) === "function") { - options.onShow.call(this, $content); - } - } - - if ($oldContent !== undefined && - !$oldContent.is($content)) { - $oldContent.hide(); - $oldContent.removeClass('active'); - } - } - - // Reset clicked state - clickedTimeout = setTimeout(function(){ clicked = false; }, transition); - - // Update indicator - animateIndicator(prev_index); - - // Prevent the anchor's default click action - e.preventDefault(); - }); - }); - - }, - select_tab : function( id ) { - this.find('a[href="#' + id + '"]').trigger('click'); - } - }; - - $.fn.tabs = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.tabs' ); - } - }; - - $(document).ready(function(){ - $('ul.tabs').tabs(); - }); -}( jQuery )); -;(function ($) { - $.fn.tooltip = function (options) { - var timeout = null, - margin = 5; - - // Defaults - var defaults = { - delay: 350, - tooltip: '', - position: 'bottom', - html: false - }; - - // Remove tooltip from the activator - if (options === "remove") { - this.each(function() { - $('#' + $(this).attr('data-tooltip-id')).remove(); - $(this).off('mouseenter.tooltip mouseleave.tooltip'); - }); - return false; - } - - options = $.extend(defaults, options); - - return this.each(function() { - var tooltipId = Materialize.guid(); - var origin = $(this); - - // Destroy old tooltip - if (origin.attr('data-tooltip-id')) { - $('#' + origin.attr('data-tooltip-id')).remove(); - } - - origin.attr('data-tooltip-id', tooltipId); - - // Get attributes. - var allowHtml, - tooltipDelay, - tooltipPosition, - tooltipText, - tooltipEl, - backdrop; - var setAttributes = function() { - allowHtml = origin.attr('data-html') ? origin.attr('data-html') === 'true' : options.html; - tooltipDelay = origin.attr('data-delay'); - tooltipDelay = (tooltipDelay === undefined || tooltipDelay === '') ? - options.delay : tooltipDelay; - tooltipPosition = origin.attr('data-position'); - tooltipPosition = (tooltipPosition === undefined || tooltipPosition === '') ? - options.position : tooltipPosition; - tooltipText = origin.attr('data-tooltip'); - tooltipText = (tooltipText === undefined || tooltipText === '') ? - options.tooltip : tooltipText; - }; - setAttributes(); - - var renderTooltipEl = function() { - var tooltip = $('
'); - - // Create Text span - if (allowHtml) { - tooltipText = $('').html(tooltipText); - } else{ - tooltipText = $('').text(tooltipText); - } - - // Create tooltip - tooltip.append(tooltipText) - .appendTo($('body')) - .attr('id', tooltipId); - - // Create backdrop - backdrop = $('
'); - backdrop.appendTo(tooltip); - return tooltip; - }; - tooltipEl = renderTooltipEl(); - - // Destroy previously binded events - origin.off('mouseenter.tooltip mouseleave.tooltip'); - // Mouse In - var started = false, timeoutRef; - origin.on({'mouseenter.tooltip': function(e) { - var showTooltip = function() { - setAttributes(); - started = true; - tooltipEl.velocity('stop'); - backdrop.velocity('stop'); - tooltipEl.css({ visibility: 'visible', left: '0px', top: '0px' }); - - // Tooltip positioning - var originWidth = origin.outerWidth(); - var originHeight = origin.outerHeight(); - var tooltipHeight = tooltipEl.outerHeight(); - var tooltipWidth = tooltipEl.outerWidth(); - var tooltipVerticalMovement = '0px'; - var tooltipHorizontalMovement = '0px'; - var backdropOffsetWidth = backdrop[0].offsetWidth; - var backdropOffsetHeight = backdrop[0].offsetHeight; - var scaleXFactor = 8; - var scaleYFactor = 8; - var scaleFactor = 0; - var targetTop, targetLeft, newCoordinates; - - if (tooltipPosition === "top") { - // Top Position - targetTop = origin.offset().top - tooltipHeight - margin; - targetLeft = origin.offset().left + originWidth/2 - tooltipWidth/2; - newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight); - tooltipVerticalMovement = '-10px'; - backdrop.css({ - bottom: 0, - left: 0, - borderRadius: '14px 14px 0 0', - transformOrigin: '50% 100%', - marginTop: tooltipHeight, - marginLeft: (tooltipWidth/2) - (backdropOffsetWidth/2) - }); - } - // Left Position - else if (tooltipPosition === "left") { - targetTop = origin.offset().top + originHeight/2 - tooltipHeight/2; - targetLeft = origin.offset().left - tooltipWidth - margin; - newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight); - - tooltipHorizontalMovement = '-10px'; - backdrop.css({ - top: '-7px', - right: 0, - width: '14px', - height: '14px', - borderRadius: '14px 0 0 14px', - transformOrigin: '95% 50%', - marginTop: tooltipHeight/2, - marginLeft: tooltipWidth - }); - } - // Right Position - else if (tooltipPosition === "right") { - targetTop = origin.offset().top + originHeight/2 - tooltipHeight/2; - targetLeft = origin.offset().left + originWidth + margin; - newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight); - - tooltipHorizontalMovement = '+10px'; - backdrop.css({ - top: '-7px', - left: 0, - width: '14px', - height: '14px', - borderRadius: '0 14px 14px 0', - transformOrigin: '5% 50%', - marginTop: tooltipHeight/2, - marginLeft: '0px' - }); - } - else { - // Bottom Position - targetTop = origin.offset().top + origin.outerHeight() + margin; - targetLeft = origin.offset().left + originWidth/2 - tooltipWidth/2; - newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight); - tooltipVerticalMovement = '+10px'; - backdrop.css({ - top: 0, - left: 0, - marginLeft: (tooltipWidth/2) - (backdropOffsetWidth/2) - }); - } - - // Set tooptip css placement - tooltipEl.css({ - top: newCoordinates.y, - left: newCoordinates.x - }); - - // Calculate Scale to fill - scaleXFactor = Math.SQRT2 * tooltipWidth / parseInt(backdropOffsetWidth); - scaleYFactor = Math.SQRT2 * tooltipHeight / parseInt(backdropOffsetHeight); - scaleFactor = Math.max(scaleXFactor, scaleYFactor); - - tooltipEl.velocity({ translateY: tooltipVerticalMovement, translateX: tooltipHorizontalMovement}, { duration: 350, queue: false }) - .velocity({opacity: 1}, {duration: 300, delay: 50, queue: false}); - backdrop.css({ visibility: 'visible' }) - .velocity({opacity:1},{duration: 55, delay: 0, queue: false}) - .velocity({scaleX: scaleFactor, scaleY: scaleFactor}, {duration: 300, delay: 0, queue: false, easing: 'easeInOutQuad'}); - }; - - timeoutRef = setTimeout(showTooltip, tooltipDelay); // End Interval - - // Mouse Out - }, - 'mouseleave.tooltip': function(){ - // Reset State - started = false; - clearTimeout(timeoutRef); - - // Animate back - setTimeout(function() { - if (started !== true) { - tooltipEl.velocity({ - opacity: 0, translateY: 0, translateX: 0}, { duration: 225, queue: false}); - backdrop.velocity({opacity: 0, scaleX: 1, scaleY: 1}, { - duration:225, - queue: false, - complete: function(){ - backdrop.css({ visibility: 'hidden' }); - tooltipEl.css({ visibility: 'hidden' }); - started = false;} - }); - } - },225); - } - }); - }); - }; - - var repositionWithinScreen = function(x, y, width, height) { - var newX = x; - var newY = y; - - if (newX < 0) { - newX = 4; - } else if (newX + width > window.innerWidth) { - newX -= newX + width - window.innerWidth; - } - - if (newY < 0) { - newY = 4; - } else if (newY + height > window.innerHeight + $(window).scrollTop) { - newY -= newY + height - window.innerHeight; - } - - return {x: newX, y: newY}; - }; - - $(document).ready(function(){ - $('.tooltipped').tooltip(); - }); -}( jQuery )); -;/*! - * Waves v0.6.4 - * http://fian.my.id/Waves - * - * Copyright 2014 Alfiana E. Sibuea and other contributors - * Released under the MIT license - * https://github.com/fians/Waves/blob/master/LICENSE - */ - -;(function(window) { - 'use strict'; - - var Waves = Waves || {}; - var $$ = document.querySelectorAll.bind(document); - - // Find exact position of element - function isWindow(obj) { - return obj !== null && obj === obj.window; - } - - function getWindow(elem) { - return isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView; - } - - function offset(elem) { - var docElem, win, - box = {top: 0, left: 0}, - doc = elem && elem.ownerDocument; - - docElem = doc.documentElement; - - if (typeof elem.getBoundingClientRect !== typeof undefined) { - box = elem.getBoundingClientRect(); - } - win = getWindow(doc); - return { - top: box.top + win.pageYOffset - docElem.clientTop, - left: box.left + win.pageXOffset - docElem.clientLeft - }; - } - - function convertStyle(obj) { - var style = ''; - - for (var a in obj) { - if (obj.hasOwnProperty(a)) { - style += (a + ':' + obj[a] + ';'); - } - } - - return style; - } - - var Effect = { - - // Effect delay - duration: 750, - - show: function(e, element) { - - // Disable right click - if (e.button === 2) { - return false; - } - - var el = element || this; - - // Create ripple - var ripple = document.createElement('div'); - ripple.className = 'waves-ripple'; - el.appendChild(ripple); - - // Get click coordinate and element witdh - var pos = offset(el); - var relativeY = (e.pageY - pos.top); - var relativeX = (e.pageX - pos.left); - var scale = 'scale('+((el.clientWidth / 100) * 10)+')'; - - // Support for touch devices - if ('touches' in e) { - relativeY = (e.touches[0].pageY - pos.top); - relativeX = (e.touches[0].pageX - pos.left); - } - - // Attach data to element - ripple.setAttribute('data-hold', Date.now()); - ripple.setAttribute('data-scale', scale); - ripple.setAttribute('data-x', relativeX); - ripple.setAttribute('data-y', relativeY); - - // Set ripple position - var rippleStyle = { - 'top': relativeY+'px', - 'left': relativeX+'px' - }; - - ripple.className = ripple.className + ' waves-notransition'; - ripple.setAttribute('style', convertStyle(rippleStyle)); - ripple.className = ripple.className.replace('waves-notransition', ''); - - // Scale the ripple - rippleStyle['-webkit-transform'] = scale; - rippleStyle['-moz-transform'] = scale; - rippleStyle['-ms-transform'] = scale; - rippleStyle['-o-transform'] = scale; - rippleStyle.transform = scale; - rippleStyle.opacity = '1'; - - rippleStyle['-webkit-transition-duration'] = Effect.duration + 'ms'; - rippleStyle['-moz-transition-duration'] = Effect.duration + 'ms'; - rippleStyle['-o-transition-duration'] = Effect.duration + 'ms'; - rippleStyle['transition-duration'] = Effect.duration + 'ms'; - - rippleStyle['-webkit-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; - rippleStyle['-moz-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; - rippleStyle['-o-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; - rippleStyle['transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; - - ripple.setAttribute('style', convertStyle(rippleStyle)); - }, - - hide: function(e) { - TouchHandler.touchup(e); - - var el = this; - var width = el.clientWidth * 1.4; - - // Get first ripple - var ripple = null; - var ripples = el.getElementsByClassName('waves-ripple'); - if (ripples.length > 0) { - ripple = ripples[ripples.length - 1]; - } else { - return false; - } - - var relativeX = ripple.getAttribute('data-x'); - var relativeY = ripple.getAttribute('data-y'); - var scale = ripple.getAttribute('data-scale'); - - // Get delay beetween mousedown and mouse leave - var diff = Date.now() - Number(ripple.getAttribute('data-hold')); - var delay = 350 - diff; - - if (delay < 0) { - delay = 0; - } - - // Fade out ripple after delay - setTimeout(function() { - var style = { - 'top': relativeY+'px', - 'left': relativeX+'px', - 'opacity': '0', - - // Duration - '-webkit-transition-duration': Effect.duration + 'ms', - '-moz-transition-duration': Effect.duration + 'ms', - '-o-transition-duration': Effect.duration + 'ms', - 'transition-duration': Effect.duration + 'ms', - '-webkit-transform': scale, - '-moz-transform': scale, - '-ms-transform': scale, - '-o-transform': scale, - 'transform': scale, - }; - - ripple.setAttribute('style', convertStyle(style)); - - setTimeout(function() { - try { - el.removeChild(ripple); - } catch(e) { - return false; - } - }, Effect.duration); - }, delay); - }, - - // Little hack to make can perform waves effect - wrapInput: function(elements) { - for (var a = 0; a < elements.length; a++) { - var el = elements[a]; - - if (el.tagName.toLowerCase() === 'input') { - var parent = el.parentNode; - - // If input already have parent just pass through - if (parent.tagName.toLowerCase() === 'i' && parent.className.indexOf('waves-effect') !== -1) { - continue; - } - - // Put element class and style to the specified parent - var wrapper = document.createElement('i'); - wrapper.className = el.className + ' waves-input-wrapper'; - - var elementStyle = el.getAttribute('style'); - - if (!elementStyle) { - elementStyle = ''; - } - - wrapper.setAttribute('style', elementStyle); - - el.className = 'waves-button-input'; - el.removeAttribute('style'); - - // Put element as child - parent.replaceChild(wrapper, el); - wrapper.appendChild(el); - } - } - } - }; - - - /** - * Disable mousedown event for 500ms during and after touch - */ - var TouchHandler = { - /* uses an integer rather than bool so there's no issues with - * needing to clear timeouts if another touch event occurred - * within the 500ms. Cannot mouseup between touchstart and - * touchend, nor in the 500ms after touchend. */ - touches: 0, - allowEvent: function(e) { - var allow = true; - - if (e.type === 'touchstart') { - TouchHandler.touches += 1; //push - } else if (e.type === 'touchend' || e.type === 'touchcancel') { - setTimeout(function() { - if (TouchHandler.touches > 0) { - TouchHandler.touches -= 1; //pop after 500ms - } - }, 500); - } else if (e.type === 'mousedown' && TouchHandler.touches > 0) { - allow = false; - } - - return allow; - }, - touchup: function(e) { - TouchHandler.allowEvent(e); - } - }; - - - /** - * Delegated click handler for .waves-effect element. - * returns null when .waves-effect element not in "click tree" - */ - function getWavesEffectElement(e) { - if (TouchHandler.allowEvent(e) === false) { - return null; - } - - var element = null; - var target = e.target || e.srcElement; - - while (target.parentElement !== null) { - if (!(target instanceof SVGElement) && target.className.indexOf('waves-effect') !== -1) { - element = target; - break; - } else if (target.classList.contains('waves-effect')) { - element = target; - break; - } - target = target.parentElement; - } - - return element; - } - - /** - * Bubble the click and show effect if .waves-effect elem was found - */ - function showEffect(e) { - var element = getWavesEffectElement(e); - - if (element !== null) { - Effect.show(e, element); - - if ('ontouchstart' in window) { - element.addEventListener('touchend', Effect.hide, false); - element.addEventListener('touchcancel', Effect.hide, false); - } - - element.addEventListener('mouseup', Effect.hide, false); - element.addEventListener('mouseleave', Effect.hide, false); - } - } - - Waves.displayEffect = function(options) { - options = options || {}; - - if ('duration' in options) { - Effect.duration = options.duration; - } - - //Wrap input inside tag - Effect.wrapInput($$('.waves-effect')); - - if ('ontouchstart' in window) { - document.body.addEventListener('touchstart', showEffect, false); - } - - document.body.addEventListener('mousedown', showEffect, false); - }; - - /** - * Attach Waves to an input element (or any element which doesn't - * bubble mouseup/mousedown events). - * Intended to be used with dynamically loaded forms/inputs, or - * where the user doesn't want a delegated click handler. - */ - Waves.attach = function(element) { - //FUTURE: automatically add waves classes and allow users - // to specify them with an options param? Eg. light/classic/button - if (element.tagName.toLowerCase() === 'input') { - Effect.wrapInput([element]); - element = element.parentElement; - } - - if ('ontouchstart' in window) { - element.addEventListener('touchstart', showEffect, false); - } - - element.addEventListener('mousedown', showEffect, false); - }; - - window.Waves = Waves; - - document.addEventListener('DOMContentLoaded', function() { - Waves.displayEffect(); - }, false); - -})(window); -;Materialize.toast = function (message, displayLength, className, completeCallback) { - className = className || ""; - - var container = document.getElementById('toast-container'); - - // Create toast container if it does not exist - if (container === null) { - // create notification container - container = document.createElement('div'); - container.id = 'toast-container'; - document.body.appendChild(container); - } - - // Select and append toast - var newToast = createToast(message); - - // only append toast if message is not undefined - if(message){ - container.appendChild(newToast); - } - - newToast.style.opacity = 0; - - // Animate toast in - Vel(newToast, {translateY: '-35px', opacity: 1 }, {duration: 300, - easing: 'easeOutCubic', - queue: false}); - - // Allows timer to be pause while being panned - var timeLeft = displayLength; - var counterInterval; - if (timeLeft != null) { - counterInterval = setInterval (function(){ - if (newToast.parentNode === null) - window.clearInterval(counterInterval); - - // If toast is not being dragged, decrease its time remaining - if (!newToast.classList.contains('panning')) { - timeLeft -= 20; - } - - if (timeLeft <= 0) { - // Animate toast out - Vel(newToast, {"opacity": 0, marginTop: '-40px'}, { duration: 375, - easing: 'easeOutExpo', - queue: false, - complete: function(){ - // Call the optional callback - if(typeof(completeCallback) === "function") - completeCallback(); - // Remove toast after it times out - this[0].parentNode.removeChild(this[0]); - } - }); - window.clearInterval(counterInterval); - } - }, 20); - } - - - - function createToast(html) { - - // Create toast - var toast = document.createElement('div'); - toast.classList.add('toast'); - if (className) { - var classes = className.split(' '); - - for (var i = 0, count = classes.length; i < count; i++) { - toast.classList.add(classes[i]); - } - } - // If type of parameter is HTML Element - if ( typeof HTMLElement === "object" ? html instanceof HTMLElement : html && typeof html === "object" && html !== null && html.nodeType === 1 && typeof html.nodeName==="string" -) { - toast.appendChild(html); - } - else if (html instanceof jQuery) { - // Check if it is jQuery object - toast.appendChild(html[0]); - } - else { - // Insert as text; - toast.innerHTML = html; - } - // Bind hammer - var hammerHandler = new Hammer(toast, {prevent_default: false}); - hammerHandler.on('pan', function(e) { - var deltaX = e.deltaX; - var activationDistance = 80; - - // Change toast state - if (!toast.classList.contains('panning')){ - toast.classList.add('panning'); - } - - var opacityPercent = 1-Math.abs(deltaX / activationDistance); - if (opacityPercent < 0) - opacityPercent = 0; - - Vel(toast, {left: deltaX, opacity: opacityPercent }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - - }); - - hammerHandler.on('panend', function(e) { - var deltaX = e.deltaX; - var activationDistance = 80; - - // If toast dragged past activation point - if (Math.abs(deltaX) > activationDistance) { - Vel(toast, {marginTop: '-40px'}, { duration: 375, - easing: 'easeOutExpo', - queue: false, - complete: function(){ - if(typeof(completeCallback) === "function") { - completeCallback(); - } - toast.parentNode.removeChild(toast); - } - }); - - } else { - toast.classList.remove('panning'); - // Put toast back into original position - Vel(toast, { left: 0, opacity: 1 }, { duration: 300, - easing: 'easeOutExpo', - queue: false - }); - - } - }); - - return toast; - } -}; -;(function ($) { - - var methods = { - init : function(options) { - var defaults = { - menuWidth: 300, - edge: 'left', - closeOnClick: false, - draggable: true - }; - options = $.extend(defaults, options); - - $(this).each(function(){ - var $this = $(this); - var menuId = $this.attr('data-activates'); - var menu = $("#"+ menuId); - - // Set to width - if (options.menuWidth != 300) { - menu.css('width', options.menuWidth); - } - - // Add Touch Area - var $dragTarget = $('.drag-target[data-sidenav="' + menuId + '"]'); - if (options.draggable) { - // Regenerate dragTarget - if ($dragTarget.length) { - $dragTarget.remove(); - } - - $dragTarget = $('
').attr('data-sidenav', menuId); - $('body').append($dragTarget); - } else { - $dragTarget = $(); - } - - if (options.edge == 'left') { - menu.css('transform', 'translateX(-100%)'); - $dragTarget.css({'left': 0}); // Add Touch Area - } - else { - menu.addClass('right-aligned') // Change text-alignment to right - .css('transform', 'translateX(100%)'); - $dragTarget.css({'right': 0}); // Add Touch Area - } - - // If fixed sidenav, bring menu out - if (menu.hasClass('fixed')) { - if (window.innerWidth > 992) { - menu.css('transform', 'translateX(0)'); - } - } - - // Window resize to reset on large screens fixed - if (menu.hasClass('fixed')) { - $(window).resize( function() { - if (window.innerWidth > 992) { - // Close menu if window is resized bigger than 992 and user has fixed sidenav - if ($('#sidenav-overlay').length !== 0 && menuOut) { - removeMenu(true); - } - else { - // menu.removeAttr('style'); - menu.css('transform', 'translateX(0%)'); - // menu.css('width', options.menuWidth); - } - } - else if (menuOut === false){ - if (options.edge === 'left') { - menu.css('transform', 'translateX(-100%)'); - } else { - menu.css('transform', 'translateX(100%)'); - } - - } - - }); - } - - // if closeOnClick, then add close event for all a tags in side sideNav - if (options.closeOnClick === true) { - menu.on("click.itemclick", "a:not(.collapsible-header)", function(){ - removeMenu(); - }); - } - - var removeMenu = function(restoreNav) { - panning = false; - menuOut = false; - // Reenable scrolling - $('body').css({ - overflow: '', - width: '' - }); - - $('#sidenav-overlay').velocity({opacity: 0}, {duration: 200, - queue: false, easing: 'easeOutQuad', - complete: function() { - $(this).remove(); - } }); - if (options.edge === 'left') { - // Reset phantom div - $dragTarget.css({width: '', right: '', left: '0'}); - menu.velocity( - {'translateX': '-100%'}, - { duration: 200, - queue: false, - easing: 'easeOutCubic', - complete: function() { - if (restoreNav === true) { - // Restore Fixed sidenav - menu.removeAttr('style'); - menu.css('width', options.menuWidth); - } - } - - }); - } - else { - // Reset phantom div - $dragTarget.css({width: '', right: '0', left: ''}); - menu.velocity( - {'translateX': '100%'}, - { duration: 200, - queue: false, - easing: 'easeOutCubic', - complete: function() { - if (restoreNav === true) { - // Restore Fixed sidenav - menu.removeAttr('style'); - menu.css('width', options.menuWidth); - } - } - }); - } - }; - - - - // Touch Event - var panning = false; - var menuOut = false; - - if (options.draggable) { - $dragTarget.on('click', function(){ - if (menuOut) { - removeMenu(); - } - }); - - $dragTarget.hammer({ - prevent_default: false - }).bind('pan', function(e) { - - if (e.gesture.pointerType == "touch") { - - var direction = e.gesture.direction; - var x = e.gesture.center.x; - var y = e.gesture.center.y; - var velocityX = e.gesture.velocityX; - - // Disable Scrolling - var $body = $('body'); - var $overlay = $('#sidenav-overlay'); - var oldWidth = $body.innerWidth(); - $body.css('overflow', 'hidden'); - $body.width(oldWidth); - - // If overlay does not exist, create one and if it is clicked, close menu - if ($overlay.length === 0) { - $overlay = $('
'); - $overlay.css('opacity', 0).click( function(){ - removeMenu(); - }); - $('body').append($overlay); - } - - // Keep within boundaries - if (options.edge === 'left') { - if (x > options.menuWidth) { x = options.menuWidth; } - else if (x < 0) { x = 0; } - } - - if (options.edge === 'left') { - // Left Direction - if (x < (options.menuWidth / 2)) { menuOut = false; } - // Right Direction - else if (x >= (options.menuWidth / 2)) { menuOut = true; } - menu.css('transform', 'translateX(' + (x - options.menuWidth) + 'px)'); - } - else { - // Left Direction - if (x < (window.innerWidth - options.menuWidth / 2)) { - menuOut = true; - } - // Right Direction - else if (x >= (window.innerWidth - options.menuWidth / 2)) { - menuOut = false; - } - var rightPos = (x - options.menuWidth / 2); - if (rightPos < 0) { - rightPos = 0; - } - - menu.css('transform', 'translateX(' + rightPos + 'px)'); - } - - - // Percentage overlay - var overlayPerc; - if (options.edge === 'left') { - overlayPerc = x / options.menuWidth; - $overlay.velocity({opacity: overlayPerc }, {duration: 10, queue: false, easing: 'easeOutQuad'}); - } - else { - overlayPerc = Math.abs((x - window.innerWidth) / options.menuWidth); - $overlay.velocity({opacity: overlayPerc }, {duration: 10, queue: false, easing: 'easeOutQuad'}); - } - } - - }).bind('panend', function(e) { - - if (e.gesture.pointerType == "touch") { - var $overlay = $('
'); - var velocityX = e.gesture.velocityX; - var x = e.gesture.center.x; - var leftPos = x - options.menuWidth; - var rightPos = x - options.menuWidth / 2; - if (leftPos > 0 ) { - leftPos = 0; - } - if (rightPos < 0) { - rightPos = 0; - } - panning = false; - - if (options.edge === 'left') { - // If velocityX <= 0.3 then the user is flinging the menu closed so ignore menuOut - if ((menuOut && velocityX <= 0.3) || velocityX < -0.5) { - // Return menu to open - if (leftPos !== 0) { - menu.velocity({'translateX': [0, leftPos]}, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - - $overlay.velocity({opacity: 1 }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - $dragTarget.css({width: '50%', right: 0, left: ''}); - menuOut = true; - } - else if (!menuOut || velocityX > 0.3) { - // Enable Scrolling - $('body').css({ - overflow: '', - width: '' - }); - // Slide menu closed - menu.velocity({'translateX': [-1 * options.menuWidth - 10, leftPos]}, {duration: 200, queue: false, easing: 'easeOutQuad'}); - $overlay.velocity({opacity: 0 }, {duration: 200, queue: false, easing: 'easeOutQuad', - complete: function () { - $(this).remove(); - }}); - $dragTarget.css({width: '10px', right: '', left: 0}); - } - } - else { - if ((menuOut && velocityX >= -0.3) || velocityX > 0.5) { - // Return menu to open - if (rightPos !== 0) { - menu.velocity({'translateX': [0, rightPos]}, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - - $overlay.velocity({opacity: 1 }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - $dragTarget.css({width: '50%', right: '', left: 0}); - menuOut = true; - } - else if (!menuOut || velocityX < -0.3) { - // Enable Scrolling - $('body').css({ - overflow: '', - width: '' - }); - - // Slide menu closed - menu.velocity({'translateX': [options.menuWidth + 10, rightPos]}, {duration: 200, queue: false, easing: 'easeOutQuad'}); - $overlay.velocity({opacity: 0 }, {duration: 200, queue: false, easing: 'easeOutQuad', - complete: function () { - $(this).remove(); - }}); - $dragTarget.css({width: '10px', right: 0, left: ''}); - } - } - - } - }); - } - - $this.off('click.sidenav').on('click.sidenav', function() { - if (menuOut === true) { - menuOut = false; - panning = false; - removeMenu(); - } - else { - - // Disable Scrolling - var $body = $('body'); - var $overlay = $('
'); - var oldWidth = $body.innerWidth(); - $body.css('overflow', 'hidden'); - $body.width(oldWidth); - - // Push current drag target on top of DOM tree - $('body').append($dragTarget); - - if (options.edge === 'left') { - $dragTarget.css({width: '50%', right: 0, left: ''}); - menu.velocity({'translateX': [0, -1 * options.menuWidth]}, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - else { - $dragTarget.css({width: '50%', right: '', left: 0}); - menu.velocity({'translateX': [0, options.menuWidth]}, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - - $overlay.css('opacity', 0) - .click(function(){ - menuOut = false; - panning = false; - removeMenu(); - $overlay.velocity({opacity: 0}, {duration: 300, queue: false, easing: 'easeOutQuad', - complete: function() { - $(this).remove(); - } }); - - }); - $('body').append($overlay); - $overlay.velocity({opacity: 1}, {duration: 300, queue: false, easing: 'easeOutQuad', - complete: function () { - menuOut = true; - panning = false; - } - }); - } - - return false; - }); - }); - - - }, - destroy: function () { - var $overlay = $('#sidenav-overlay'); - var $dragTarget = $('.drag-target[data-sidenav="' + $(this).attr('data-activates') + '"]'); - $overlay.trigger('click'); - $dragTarget.remove(); - $(this).off('click'); - $overlay.remove(); - }, - show : function() { - this.trigger('click'); - }, - hide : function() { - $('#sidenav-overlay').trigger('click'); - } - }; - - - $.fn.sideNav = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.sideNav' ); - } - }; // Plugin end -}( jQuery )); -;/** - * Extend jquery with a scrollspy plugin. - * This watches the window scroll and fires events when elements are scrolled into viewport. - * - * throttle() and getTime() taken from Underscore.js - * https://github.com/jashkenas/underscore - * - * @author Copyright 2013 John Smart - * @license https://raw.github.com/thesmart/jquery-scrollspy/master/LICENSE - * @see https://github.com/thesmart - * @version 0.1.2 - */ -(function($) { - - var jWindow = $(window); - var elements = []; - var elementsInView = []; - var isSpying = false; - var ticks = 0; - var unique_id = 1; - var offset = { - top : 0, - right : 0, - bottom : 0, - left : 0, - } - - /** - * Find elements that are within the boundary - * @param {number} top - * @param {number} right - * @param {number} bottom - * @param {number} left - * @return {jQuery} A collection of elements - */ - function findElements(top, right, bottom, left) { - var hits = $(); - $.each(elements, function(i, element) { - if (element.height() > 0) { - var elTop = element.offset().top, - elLeft = element.offset().left, - elRight = elLeft + element.width(), - elBottom = elTop + element.height(); - - var isIntersect = !(elLeft > right || - elRight < left || - elTop > bottom || - elBottom < top); - - if (isIntersect) { - hits.push(element); - } - } - }); - - return hits; - } - - - /** - * Called when the user scrolls the window - */ - function onScroll(scrollOffset) { - // unique tick id - ++ticks; - - // viewport rectangle - var top = jWindow.scrollTop(), - left = jWindow.scrollLeft(), - right = left + jWindow.width(), - bottom = top + jWindow.height(); - - // determine which elements are in view - var intersections = findElements(top+offset.top + scrollOffset || 200, right+offset.right, bottom+offset.bottom, left+offset.left); - $.each(intersections, function(i, element) { - - var lastTick = element.data('scrollSpy:ticks'); - if (typeof lastTick != 'number') { - // entered into view - element.triggerHandler('scrollSpy:enter'); - } - - // update tick id - element.data('scrollSpy:ticks', ticks); - }); - - // determine which elements are no longer in view - $.each(elementsInView, function(i, element) { - var lastTick = element.data('scrollSpy:ticks'); - if (typeof lastTick == 'number' && lastTick !== ticks) { - // exited from view - element.triggerHandler('scrollSpy:exit'); - element.data('scrollSpy:ticks', null); - } - }); - - // remember elements in view for next tick - elementsInView = intersections; - } - - /** - * Called when window is resized - */ - function onWinSize() { - jWindow.trigger('scrollSpy:winSize'); - } - - - /** - * Enables ScrollSpy using a selector - * @param {jQuery|string} selector The elements collection, or a selector - * @param {Object=} options Optional. - throttle : number -> scrollspy throttling. Default: 100 ms - offsetTop : number -> offset from top. Default: 0 - offsetRight : number -> offset from right. Default: 0 - offsetBottom : number -> offset from bottom. Default: 0 - offsetLeft : number -> offset from left. Default: 0 - * @returns {jQuery} - */ - $.scrollSpy = function(selector, options) { - var defaults = { - throttle: 100, - scrollOffset: 200 // offset - 200 allows elements near bottom of page to scroll - }; - options = $.extend(defaults, options); - - var visible = []; - selector = $(selector); - selector.each(function(i, element) { - elements.push($(element)); - $(element).data("scrollSpy:id", i); - // Smooth scroll to section - $('a[href="#' + $(element).attr('id') + '"]').click(function(e) { - e.preventDefault(); - var offset = $(Materialize.escapeHash(this.hash)).offset().top + 1; - $('html, body').animate({ scrollTop: offset - options.scrollOffset }, {duration: 400, queue: false, easing: 'easeOutCubic'}); - }); - }); - - offset.top = options.offsetTop || 0; - offset.right = options.offsetRight || 0; - offset.bottom = options.offsetBottom || 0; - offset.left = options.offsetLeft || 0; - - var throttledScroll = Materialize.throttle(function() { - onScroll(options.scrollOffset); - }, options.throttle || 100); - var readyScroll = function(){ - $(document).ready(throttledScroll); - }; - - if (!isSpying) { - jWindow.on('scroll', readyScroll); - jWindow.on('resize', readyScroll); - isSpying = true; - } - - // perform a scan once, after current execution context, and after dom is ready - setTimeout(readyScroll, 0); - - - selector.on('scrollSpy:enter', function() { - visible = $.grep(visible, function(value) { - return value.height() != 0; - }); - - var $this = $(this); - - if (visible[0]) { - $('a[href="#' + visible[0].attr('id') + '"]').removeClass('active'); - if ($this.data('scrollSpy:id') < visible[0].data('scrollSpy:id')) { - visible.unshift($(this)); - } - else { - visible.push($(this)); - } - } - else { - visible.push($(this)); - } - - - $('a[href="#' + visible[0].attr('id') + '"]').addClass('active'); - }); - selector.on('scrollSpy:exit', function() { - visible = $.grep(visible, function(value) { - return value.height() != 0; - }); - - if (visible[0]) { - $('a[href="#' + visible[0].attr('id') + '"]').removeClass('active'); - var $this = $(this); - visible = $.grep(visible, function(value) { - return value.attr('id') != $this.attr('id'); - }); - if (visible[0]) { // Check if empty - $('a[href="#' + visible[0].attr('id') + '"]').addClass('active'); - } - } - }); - - return selector; - }; - - /** - * Listen for window resize events - * @param {Object=} options Optional. Set { throttle: number } to change throttling. Default: 100 ms - * @returns {jQuery} $(window) - */ - $.winSizeSpy = function(options) { - $.winSizeSpy = function() { return jWindow; }; // lock from multiple calls - options = options || { - throttle: 100 - }; - return jWindow.on('resize', Materialize.throttle(onWinSize, options.throttle || 100)); - }; - - /** - * Enables ScrollSpy on a collection of elements - * e.g. $('.scrollSpy').scrollSpy() - * @param {Object=} options Optional. - throttle : number -> scrollspy throttling. Default: 100 ms - offsetTop : number -> offset from top. Default: 0 - offsetRight : number -> offset from right. Default: 0 - offsetBottom : number -> offset from bottom. Default: 0 - offsetLeft : number -> offset from left. Default: 0 - * @returns {jQuery} - */ - $.fn.scrollSpy = function(options) { - return $.scrollSpy($(this), options); - }; - -})(jQuery); -;(function ($) { - $(document).ready(function() { - - // Function to update labels of text fields - Materialize.updateTextFields = function() { - var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea'; - $(input_selector).each(function(index, element) { - var $this = $(this); - if ($(element).val().length > 0 || element.autofocus || $this.attr('placeholder') !== undefined) { - $this.siblings('label').addClass('active'); - } else if ($(element)[0].validity) { - $this.siblings('label').toggleClass('active', $(element)[0].validity.badInput === true); - } else { - $this.siblings('label').removeClass('active'); - } - }); - }; - - // Text based inputs - var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea'; - - // Add active if form auto complete - $(document).on('change', input_selector, function () { - if($(this).val().length !== 0 || $(this).attr('placeholder') !== undefined) { - $(this).siblings('label').addClass('active'); - } - validate_field($(this)); - }); - - // Add active if input element has been pre-populated on document ready - $(document).ready(function() { - Materialize.updateTextFields(); - }); - - // HTML DOM FORM RESET handling - $(document).on('reset', function(e) { - var formReset = $(e.target); - if (formReset.is('form')) { - formReset.find(input_selector).removeClass('valid').removeClass('invalid'); - formReset.find(input_selector).each(function () { - if ($(this).attr('value') === '') { - $(this).siblings('label').removeClass('active'); - } - }); - - // Reset select - formReset.find('select.initialized').each(function () { - var reset_text = formReset.find('option[selected]').text(); - formReset.siblings('input.select-dropdown').val(reset_text); - }); - } - }); - - // Add active when element has focus - $(document).on('focus', input_selector, function () { - $(this).siblings('label, .prefix').addClass('active'); - }); - - $(document).on('blur', input_selector, function () { - var $inputElement = $(this); - var selector = ".prefix"; - - if ($inputElement.val().length === 0 && $inputElement[0].validity.badInput !== true && $inputElement.attr('placeholder') === undefined) { - selector += ", label"; - } - - $inputElement.siblings(selector).removeClass('active'); - - validate_field($inputElement); - }); - - window.validate_field = function(object) { - var hasLength = object.attr('data-length') !== undefined; - var lenAttr = parseInt(object.attr('data-length')); - var len = object.val().length; - - if (object.val().length === 0 && object[0].validity.badInput === false) { - if (object.hasClass('validate')) { - object.removeClass('valid'); - object.removeClass('invalid'); - } - } - else { - if (object.hasClass('validate')) { - // Check for character counter attributes - if ((object.is(':valid') && hasLength && (len <= lenAttr)) || (object.is(':valid') && !hasLength)) { - object.removeClass('invalid'); - object.addClass('valid'); - } - else { - object.removeClass('valid'); - object.addClass('invalid'); - } - } - } - }; - - // Radio and Checkbox focus class - var radio_checkbox = 'input[type=radio], input[type=checkbox]'; - $(document).on('keyup.radio', radio_checkbox, function(e) { - // TAB, check if tabbing to radio or checkbox. - if (e.which === 9) { - $(this).addClass('tabbed'); - var $this = $(this); - $this.one('blur', function(e) { - - $(this).removeClass('tabbed'); - }); - return; - } - }); - - // Textarea Auto Resize - var hiddenDiv = $('.hiddendiv').first(); - if (!hiddenDiv.length) { - hiddenDiv = $('
'); - $('body').append(hiddenDiv); - } - var text_area_selector = '.materialize-textarea'; - - function textareaAutoResize($textarea) { - // Set font properties of hiddenDiv - - var fontFamily = $textarea.css('font-family'); - var fontSize = $textarea.css('font-size'); - var lineHeight = $textarea.css('line-height'); - - if (fontSize) { hiddenDiv.css('font-size', fontSize); } - if (fontFamily) { hiddenDiv.css('font-family', fontFamily); } - if (lineHeight) { hiddenDiv.css('line-height', lineHeight); } - - if ($textarea.attr('wrap') === "off") { - hiddenDiv.css('overflow-wrap', "normal") - .css('white-space', "pre"); - } - - hiddenDiv.text($textarea.val() + '\n'); - var content = hiddenDiv.html().replace(/\n/g, '
'); - hiddenDiv.html(content); - - - // When textarea is hidden, width goes crazy. - // Approximate with half of window size - - if ($textarea.is(':visible')) { - hiddenDiv.css('width', $textarea.width()); - } - else { - hiddenDiv.css('width', $(window).width()/2); - } - - $textarea.css('height', hiddenDiv.height()); - } - - $(text_area_selector).each(function () { - var $textarea = $(this); - if ($textarea.val().length) { - textareaAutoResize($textarea); - } - }); - - $('body').on('keyup keydown autoresize', text_area_selector, function () { - textareaAutoResize($(this)); - }); - - // File Input Path - $(document).on('change', '.file-field input[type="file"]', function () { - var file_field = $(this).closest('.file-field'); - var path_input = file_field.find('input.file-path'); - var files = $(this)[0].files; - var file_names = []; - for (var i = 0; i < files.length; i++) { - file_names.push(files[i].name); - } - path_input.val(file_names.join(", ")); - path_input.trigger('change'); - }); - - /**************** - * Range Input * - ****************/ - - var range_type = 'input[type=range]'; - var range_mousedown = false; - var left; - - $(range_type).each(function () { - var thumb = $(''); - $(this).after(thumb); - }); - - var range_wrapper = '.range-field'; - $(document).on('change', range_type, function(e) { - var thumb = $(this).siblings('.thumb'); - thumb.find('.value').html($(this).val()); - }); - - $(document).on('input mousedown touchstart', range_type, function(e) { - var thumb = $(this).siblings('.thumb'); - var width = $(this).outerWidth(); - - // If thumb indicator does not exist yet, create it - if (thumb.length <= 0) { - thumb = $(''); - $(this).after(thumb); - } - - // Set indicator value - thumb.find('.value').html($(this).val()); - - range_mousedown = true; - $(this).addClass('active'); - - if (!thumb.hasClass('active')) { - thumb.velocity({ height: "30px", width: "30px", top: "-20px", marginLeft: "-15px"}, { duration: 300, easing: 'easeOutExpo' }); - } - - if (e.type !== 'input') { - if(e.pageX === undefined || e.pageX === null){//mobile - left = e.originalEvent.touches[0].pageX - $(this).offset().left; - } - else{ // desktop - left = e.pageX - $(this).offset().left; - } - if (left < 0) { - left = 0; - } - else if (left > width) { - left = width; - } - thumb.addClass('active').css('left', left); - } - - thumb.find('.value').html($(this).val()); - }); - - $(document).on('mouseup touchend', range_wrapper, function() { - range_mousedown = false; - $(this).removeClass('active'); - }); - - $(document).on('mousemove touchmove', range_wrapper, function(e) { - var thumb = $(this).children('.thumb'); - var left; - if (range_mousedown) { - if (!thumb.hasClass('active')) { - thumb.velocity({ height: '30px', width: '30px', top: '-20px', marginLeft: '-15px'}, { duration: 300, easing: 'easeOutExpo' }); - } - if (e.pageX === undefined || e.pageX === null) { //mobile - left = e.originalEvent.touches[0].pageX - $(this).offset().left; - } - else{ // desktop - left = e.pageX - $(this).offset().left; - } - var width = $(this).outerWidth(); - - if (left < 0) { - left = 0; - } - else if (left > width) { - left = width; - } - thumb.addClass('active').css('left', left); - thumb.find('.value').html(thumb.siblings(range_type).val()); - } - }); - - $(document).on('mouseout touchleave', range_wrapper, function() { - if (!range_mousedown) { - - var thumb = $(this).children('.thumb'); - - if (thumb.hasClass('active')) { - thumb.velocity({ height: '0', width: '0', top: '10px', marginLeft: '-6px'}, { duration: 100 }); - } - thumb.removeClass('active'); - } - }); - - /************************** - * Auto complete plugin * - *************************/ - $.fn.autocomplete = function (options) { - // Defaults - var defaults = { - data: {}, - limit: Infinity, - onAutocomplete: null - }; - - options = $.extend(defaults, options); - - return this.each(function() { - var $input = $(this); - var data = options.data, - count = 0, - activeIndex = 0, - oldVal, - $inputDiv = $input.closest('.input-field'); // Div to append on - - // Check if data isn't empty - if (!$.isEmptyObject(data)) { - var $autocomplete = $(''); - var $oldAutocomplete; - - // Append autocomplete element. - // Prevent double structure init. - if ($inputDiv.length) { - $oldAutocomplete = $inputDiv.children('.autocomplete-content.dropdown-content').first(); - if (!$oldAutocomplete.length) { - $inputDiv.append($autocomplete); // Set ul in body - } - } else { - $oldAutocomplete = $input.next('.autocomplete-content.dropdown-content'); - if (!$oldAutocomplete.length) { - $input.after($autocomplete); - } - } - if ($oldAutocomplete.length) { - $autocomplete = $oldAutocomplete; - } - - // Highlight partial match. - var highlight = function(string, $el) { - var img = $el.find('img'); - var matchStart = $el.text().toLowerCase().indexOf("" + string.toLowerCase() + ""), - matchEnd = matchStart + string.length - 1, - beforeMatch = $el.text().slice(0, matchStart), - matchText = $el.text().slice(matchStart, matchEnd + 1), - afterMatch = $el.text().slice(matchEnd + 1); - $el.html("" + beforeMatch + "" + matchText + "" + afterMatch + ""); - if (img.length) { - $el.prepend(img); - } - }; - - // Reset current element position - var resetCurrentElement = function() { - activeIndex = 0; - $autocomplete.find('.active').removeClass('active'); - } - - // Perform search - $input.off('keyup.autocomplete').on('keyup.autocomplete', function (e) { - // Reset count. - count = 0; - - // Don't capture enter or arrow key usage. - if (e.which === 13 || - e.which === 38 || - e.which === 40) { - return; - } - - var val = $input.val().toLowerCase(); - - // Check if the input isn't empty - if (oldVal !== val) { - $autocomplete.empty(); - resetCurrentElement(); - - if (val !== '') { - for(var key in data) { - if (data.hasOwnProperty(key) && - key.toLowerCase().indexOf(val) !== -1 && - key.toLowerCase() !== val) { - // Break if past limit - if (count >= options.limit) { - break; - } - - var autocompleteOption = $('
  • '); - if (!!data[key]) { - autocompleteOption.append(''+ key +''); - } else { - autocompleteOption.append(''+ key +''); - } - - $autocomplete.append(autocompleteOption); - highlight(val, autocompleteOption); - count++; - } - } - } - } - - // Update oldVal - oldVal = val; - }); - - $input.off('keydown.autocomplete').on('keydown.autocomplete', function (e) { - // Arrow keys and enter key usage - var keyCode = e.which, - liElement, - numItems = $autocomplete.children('li').length, - $active = $autocomplete.children('.active').first(); - - // select element on Enter - if (keyCode === 13) { - liElement = $autocomplete.children('li').eq(activeIndex); - if (liElement.length) { - liElement.click(); - e.preventDefault(); - } - return; - } - - // Capture up and down key - if ( keyCode === 38 || keyCode === 40 ) { - e.preventDefault(); - - if (keyCode === 38 && - activeIndex > 0) { - activeIndex--; - } - - if (keyCode === 40 && - activeIndex < (numItems - 1) && - $active.length) { - activeIndex++; - } - - $active.removeClass('active'); - $autocomplete.children('li').eq(activeIndex).addClass('active'); - } - }); - - // Set input value - $autocomplete.on('click', 'li', function () { - var text = $(this).text().trim(); - $input.val(text); - $input.trigger('change'); - $autocomplete.empty(); - resetCurrentElement(); - - // Handle onAutocomplete callback. - if (typeof(options.onAutocomplete) === "function") { - options.onAutocomplete.call(this, text); - } - }); - } - }); - }; - - }); // End of $(document).ready - - /******************* - * Select Plugin * - ******************/ - $.fn.material_select = function (callback) { - $(this).each(function(){ - var $select = $(this); - - if ($select.hasClass('browser-default')) { - return; // Continue to next (return false breaks out of entire loop) - } - - var multiple = $select.attr('multiple') ? true : false, - lastID = $select.data('select-id'); // Tear down structure if Select needs to be rebuilt - - if (lastID) { - $select.parent().find('span.caret').remove(); - $select.parent().find('input').remove(); - - $select.unwrap(); - $('ul#select-options-'+lastID).remove(); - } - - // If destroying the select, remove the selelct-id and reset it to it's uninitialized state. - if(callback === 'destroy') { - $select.data('select-id', null).removeClass('initialized'); - return; - } - - var uniqueID = Materialize.guid(); - $select.data('select-id', uniqueID); - var wrapper = $('
    '); - wrapper.addClass($select.attr('class')); - var options = $(''), - selectChildren = $select.children('option, optgroup'), - valuesSelected = [], - optionsHover = false; - - var label = $select.find('option:selected').html() || $select.find('option:first').html() || ""; - - // Function that renders and appends the option taking into - // account type and possible image icon. - var appendOptionWithIcon = function(select, option, type) { - // Add disabled attr if disabled - var disabledClass = (option.is(':disabled')) ? 'disabled ' : ''; - var optgroupClass = (type === 'optgroup-option') ? 'optgroup-option ' : ''; - - // add icons - var icon_url = option.data('icon'); - var classes = option.attr('class'); - if (!!icon_url) { - var classString = ''; - if (!!classes) classString = ' class="' + classes + '"'; - - // Check for multiple type. - if (type === 'multiple') { - options.append($('
  • ' + option.html() + '
  • ')); - } else { - options.append($('
  • ' + option.html() + '
  • ')); - } - return true; - } - - // Check for multiple type. - if (type === 'multiple') { - options.append($('
  • ' + option.html() + '
  • ')); - } else { - options.append($('
  • ' + option.html() + '
  • ')); - } - }; - - /* Create dropdown structure. */ - if (selectChildren.length) { - selectChildren.each(function() { - if ($(this).is('option')) { - // Direct descendant option. - if (multiple) { - appendOptionWithIcon($select, $(this), 'multiple'); - - } else { - appendOptionWithIcon($select, $(this)); - } - } else if ($(this).is('optgroup')) { - // Optgroup. - var selectOptions = $(this).children('option'); - options.append($('
  • ' + $(this).attr('label') + '
  • ')); - - selectOptions.each(function() { - appendOptionWithIcon($select, $(this), 'optgroup-option'); - }); - } - }); - } - - options.find('li:not(.optgroup)').each(function (i) { - $(this).click(function (e) { - // Check if option element is disabled - if (!$(this).hasClass('disabled') && !$(this).hasClass('optgroup')) { - var selected = true; - - if (multiple) { - $('input[type="checkbox"]', this).prop('checked', function(i, v) { return !v; }); - selected = toggleEntryFromArray(valuesSelected, $(this).index(), $select); - $newSelect.trigger('focus'); - } else { - options.find('li').removeClass('active'); - $(this).toggleClass('active'); - $newSelect.val($(this).text()); - } - - activateOption(options, $(this)); - $select.find('option').eq(i).prop('selected', selected); - // Trigger onchange() event - $select.trigger('change'); - if (typeof callback !== 'undefined') callback(); - } - - e.stopPropagation(); - }); - }); - - // Wrap Elements - $select.wrap(wrapper); - // Add Select Display Element - var dropdownIcon = $(''); - if ($select.is(':disabled')) - dropdownIcon.addClass('disabled'); - - // escape double quotes - var sanitizedLabelHtml = label.replace(/"/g, '"'); - - var $newSelect = $(''); - $select.before($newSelect); - $newSelect.before(dropdownIcon); - - $newSelect.after(options); - // Check if section element is disabled - if (!$select.is(':disabled')) { - $newSelect.dropdown({'hover': false, 'closeOnClick': false}); - } - - // Copy tabindex - if ($select.attr('tabindex')) { - $($newSelect[0]).attr('tabindex', $select.attr('tabindex')); - } - - $select.addClass('initialized'); - - $newSelect.on({ - 'focus': function (){ - if ($('ul.select-dropdown').not(options[0]).is(':visible')) { - $('input.select-dropdown').trigger('close'); - } - if (!options.is(':visible')) { - $(this).trigger('open', ['focus']); - var label = $(this).val(); - if (multiple && label.indexOf(',') >= 0) { - label = label.split(',')[0]; - } - - var selectedOption = options.find('li').filter(function() { - return $(this).text().toLowerCase() === label.toLowerCase(); - })[0]; - activateOption(options, selectedOption, true); - } - }, - 'click': function (e){ - e.stopPropagation(); - } - }); - - $newSelect.on('blur', function() { - if (!multiple) { - $(this).trigger('close'); - } - options.find('li.selected').removeClass('selected'); - }); - - options.hover(function() { - optionsHover = true; - }, function () { - optionsHover = false; - }); - - $(window).on({ - 'click': function () { - multiple && (optionsHover || $newSelect.trigger('close')); - } - }); - - // Add initial multiple selections. - if (multiple) { - $select.find("option:selected:not(:disabled)").each(function () { - var index = $(this).index(); - - toggleEntryFromArray(valuesSelected, index, $select); - options.find("li").eq(index).find(":checkbox").prop("checked", true); - }); - } - - /** - * Make option as selected and scroll to selected position - * @param {jQuery} collection Select options jQuery element - * @param {Element} newOption element of the new option - * @param {Boolean} firstActivation If on first activation of select - */ - var activateOption = function(collection, newOption, firstActivation) { - if (newOption) { - collection.find('li.selected').removeClass('selected'); - var option = $(newOption); - option.addClass('selected'); - if (!multiple || !!firstActivation) { - options.scrollTo(option); - } - } - }; - - // Allow user to search by typing - // this array is cleared after 1 second - var filterQuery = [], - onKeyDown = function(e){ - // TAB - switch to another input - if(e.which == 9){ - $newSelect.trigger('close'); - return; - } - - // ARROW DOWN WHEN SELECT IS CLOSED - open select options - if(e.which == 40 && !options.is(':visible')){ - $newSelect.trigger('open'); - return; - } - - // ENTER WHEN SELECT IS CLOSED - submit form - if(e.which == 13 && !options.is(':visible')){ - return; - } - - e.preventDefault(); - - // CASE WHEN USER TYPE LETTERS - var letter = String.fromCharCode(e.which).toLowerCase(), - nonLetters = [9,13,27,38,40]; - if (letter && (nonLetters.indexOf(e.which) === -1)) { - filterQuery.push(letter); - - var string = filterQuery.join(''), - newOption = options.find('li').filter(function() { - return $(this).text().toLowerCase().indexOf(string) === 0; - })[0]; - - if (newOption) { - activateOption(options, newOption); - } - } - - // ENTER - select option and close when select options are opened - if (e.which == 13) { - var activeOption = options.find('li.selected:not(.disabled)')[0]; - if(activeOption){ - $(activeOption).trigger('click'); - if (!multiple) { - $newSelect.trigger('close'); - } - } - } - - // ARROW DOWN - move to next not disabled option - if (e.which == 40) { - if (options.find('li.selected').length) { - newOption = options.find('li.selected').next('li:not(.disabled)')[0]; - } else { - newOption = options.find('li:not(.disabled)')[0]; - } - activateOption(options, newOption); - } - - // ESC - close options - if (e.which == 27) { - $newSelect.trigger('close'); - } - - // ARROW UP - move to previous not disabled option - if (e.which == 38) { - newOption = options.find('li.selected').prev('li:not(.disabled)')[0]; - if(newOption) - activateOption(options, newOption); - } - - // Automaticaly clean filter query so user can search again by starting letters - setTimeout(function(){ filterQuery = []; }, 1000); - }; - - $newSelect.on('keydown', onKeyDown); - }); - - function toggleEntryFromArray(entriesArray, entryIndex, select) { - var index = entriesArray.indexOf(entryIndex), - notAdded = index === -1; - - if (notAdded) { - entriesArray.push(entryIndex); - } else { - entriesArray.splice(index, 1); - } - - select.siblings('ul.dropdown-content').find('li').eq(entryIndex).toggleClass('active'); - - // use notAdded instead of true (to detect if the option is selected or not) - select.find('option').eq(entryIndex).prop('selected', notAdded); - setValueToInput(entriesArray, select); - - return notAdded; - } - - function setValueToInput(entriesArray, select) { - var value = ''; - - for (var i = 0, count = entriesArray.length; i < count; i++) { - var text = select.find('option').eq(entriesArray[i]).text(); - - i === 0 ? value += text : value += ', ' + text; - } - - if (value === '') { - value = select.find('option:disabled').eq(0).text(); - } - - select.siblings('input.select-dropdown').val(value); - } - }; - -}( jQuery )); -;(function ($) { - - var methods = { - - init : function(options) { - var defaults = { - indicators: true, - height: 400, - transition: 500, - interval: 6000 - }; - options = $.extend(defaults, options); - - return this.each(function() { - - // For each slider, we want to keep track of - // which slide is active and its associated content - var $this = $(this); - var $slider = $this.find('ul.slides').first(); - var $slides = $slider.find('> li'); - var $active_index = $slider.find('.active').index(); - var $active, $indicators, $interval; - if ($active_index != -1) { $active = $slides.eq($active_index); } - - // Transitions the caption depending on alignment - function captionTransition(caption, duration) { - if (caption.hasClass("center-align")) { - caption.velocity({opacity: 0, translateY: -100}, {duration: duration, queue: false}); - } - else if (caption.hasClass("right-align")) { - caption.velocity({opacity: 0, translateX: 100}, {duration: duration, queue: false}); - } - else if (caption.hasClass("left-align")) { - caption.velocity({opacity: 0, translateX: -100}, {duration: duration, queue: false}); - } - } - - // This function will transition the slide to any index of the next slide - function moveToSlide(index) { - // Wrap around indices. - if (index >= $slides.length) index = 0; - else if (index < 0) index = $slides.length -1; - - $active_index = $slider.find('.active').index(); - - // Only do if index changes - if ($active_index != index) { - $active = $slides.eq($active_index); - $caption = $active.find('.caption'); - - $active.removeClass('active'); - $active.velocity({opacity: 0}, {duration: options.transition, queue: false, easing: 'easeOutQuad', - complete: function() { - $slides.not('.active').velocity({opacity: 0, translateX: 0, translateY: 0}, {duration: 0, queue: false}); - } }); - captionTransition($caption, options.transition); - - - // Update indicators - if (options.indicators) { - $indicators.eq($active_index).removeClass('active'); - } - - $slides.eq(index).velocity({opacity: 1}, {duration: options.transition, queue: false, easing: 'easeOutQuad'}); - $slides.eq(index).find('.caption').velocity({opacity: 1, translateX: 0, translateY: 0}, {duration: options.transition, delay: options.transition, queue: false, easing: 'easeOutQuad'}); - $slides.eq(index).addClass('active'); - - - // Update indicators - if (options.indicators) { - $indicators.eq(index).addClass('active'); - } - } - } - - // Set height of slider - // If fullscreen, do nothing - if (!$this.hasClass('fullscreen')) { - if (options.indicators) { - // Add height if indicators are present - $this.height(options.height + 40); - } - else { - $this.height(options.height); - } - $slider.height(options.height); - } - - - // Set initial positions of captions - $slides.find('.caption').each(function () { - captionTransition($(this), 0); - }); - - // Move img src into background-image - $slides.find('img').each(function () { - var placeholderBase64 = 'data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='; - if ($(this).attr('src') !== placeholderBase64) { - $(this).css('background-image', 'url(' + $(this).attr('src') + ')' ); - $(this).attr('src', placeholderBase64); - } - }); - - // dynamically add indicators - if (options.indicators) { - $indicators = $('
      '); - $slides.each(function( index ) { - var $indicator = $('
    • '); - - // Handle clicks on indicators - $indicator.click(function () { - var $parent = $slider.parent(); - var curr_index = $parent.find($(this)).index(); - moveToSlide(curr_index); - - // reset interval - clearInterval($interval); - $interval = setInterval( - function(){ - $active_index = $slider.find('.active').index(); - if ($slides.length == $active_index + 1) $active_index = 0; // loop to start - else $active_index += 1; - - moveToSlide($active_index); - - }, options.transition + options.interval - ); - }); - $indicators.append($indicator); - }); - $this.append($indicators); - $indicators = $this.find('ul.indicators').find('li.indicator-item'); - } - - if ($active) { - $active.show(); - } - else { - $slides.first().addClass('active').velocity({opacity: 1}, {duration: options.transition, queue: false, easing: 'easeOutQuad'}); - - $active_index = 0; - $active = $slides.eq($active_index); - - // Update indicators - if (options.indicators) { - $indicators.eq($active_index).addClass('active'); - } - } - - // Adjust height to current slide - $active.find('img').each(function() { - $active.find('.caption').velocity({opacity: 1, translateX: 0, translateY: 0}, {duration: options.transition, queue: false, easing: 'easeOutQuad'}); - }); - - // auto scroll - $interval = setInterval( - function(){ - $active_index = $slider.find('.active').index(); - moveToSlide($active_index + 1); - - }, options.transition + options.interval - ); - - - // HammerJS, Swipe navigation - - // Touch Event - var panning = false; - var swipeLeft = false; - var swipeRight = false; - - $this.hammer({ - prevent_default: false - }).bind('pan', function(e) { - if (e.gesture.pointerType === "touch") { - - // reset interval - clearInterval($interval); - - var direction = e.gesture.direction; - var x = e.gesture.deltaX; - var velocityX = e.gesture.velocityX; - var velocityY = e.gesture.velocityY; - - $curr_slide = $slider.find('.active'); - if (Math.abs(velocityX) > Math.abs(velocityY)) { - $curr_slide.velocity({ translateX: x - }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - } - - // Swipe Left - if (direction === 4 && (x > ($this.innerWidth() / 2) || velocityX < -0.65)) { - swipeRight = true; - } - // Swipe Right - else if (direction === 2 && (x < (-1 * $this.innerWidth() / 2) || velocityX > 0.65)) { - swipeLeft = true; - } - - // Make Slide Behind active slide visible - var next_slide; - if (swipeLeft) { - next_slide = $curr_slide.next(); - if (next_slide.length === 0) { - next_slide = $slides.first(); - } - next_slide.velocity({ opacity: 1 - }, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - if (swipeRight) { - next_slide = $curr_slide.prev(); - if (next_slide.length === 0) { - next_slide = $slides.last(); - } - next_slide.velocity({ opacity: 1 - }, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - - - } - - }).bind('panend', function(e) { - if (e.gesture.pointerType === "touch") { - - $curr_slide = $slider.find('.active'); - panning = false; - curr_index = $slider.find('.active').index(); - - if (!swipeRight && !swipeLeft || $slides.length <=1) { - // Return to original spot - $curr_slide.velocity({ translateX: 0 - }, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - else if (swipeLeft) { - moveToSlide(curr_index + 1); - $curr_slide.velocity({translateX: -1 * $this.innerWidth() }, {duration: 300, queue: false, easing: 'easeOutQuad', - complete: function() { - $curr_slide.velocity({opacity: 0, translateX: 0}, {duration: 0, queue: false}); - } }); - } - else if (swipeRight) { - moveToSlide(curr_index - 1); - $curr_slide.velocity({translateX: $this.innerWidth() }, {duration: 300, queue: false, easing: 'easeOutQuad', - complete: function() { - $curr_slide.velocity({opacity: 0, translateX: 0}, {duration: 0, queue: false}); - } }); - } - swipeLeft = false; - swipeRight = false; - - // Restart interval - clearInterval($interval); - $interval = setInterval( - function(){ - $active_index = $slider.find('.active').index(); - if ($slides.length == $active_index + 1) $active_index = 0; // loop to start - else $active_index += 1; - - moveToSlide($active_index); - - }, options.transition + options.interval - ); - } - }); - - $this.on('sliderPause', function() { - clearInterval($interval); - }); - - $this.on('sliderStart', function() { - clearInterval($interval); - $interval = setInterval( - function(){ - $active_index = $slider.find('.active').index(); - if ($slides.length == $active_index + 1) $active_index = 0; // loop to start - else $active_index += 1; - - moveToSlide($active_index); - - }, options.transition + options.interval - ); - }); - - $this.on('sliderNext', function() { - $active_index = $slider.find('.active').index(); - moveToSlide($active_index + 1); - }); - - $this.on('sliderPrev', function() { - $active_index = $slider.find('.active').index(); - moveToSlide($active_index - 1); - }); - - }); - - - - }, - pause : function() { - $(this).trigger('sliderPause'); - }, - start : function() { - $(this).trigger('sliderStart'); - }, - next : function() { - $(this).trigger('sliderNext'); - }, - prev : function() { - $(this).trigger('sliderPrev'); - } - }; - - - $.fn.slider = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.tooltip' ); - } - }; // Plugin end -}( jQuery )); -;(function ($) { - $(document).ready(function() { - - $(document).on('click.card', '.card', function (e) { - if ($(this).find('> .card-reveal').length) { - if ($(e.target).is($('.card-reveal .card-title')) || $(e.target).is($('.card-reveal .card-title i'))) { - // Make Reveal animate down and display none - $(this).find('.card-reveal').velocity( - {translateY: 0}, { - duration: 225, - queue: false, - easing: 'easeInOutQuad', - complete: function() { $(this).css({ display: 'none'}); } - } - ); - } - else if ($(e.target).is($('.card .activator')) || - $(e.target).is($('.card .activator i')) ) { - $(e.target).closest('.card').css('overflow', 'hidden'); - $(this).find('.card-reveal').css({ display: 'block'}).velocity("stop", false).velocity({translateY: '-100%'}, {duration: 300, queue: false, easing: 'easeInOutQuad'}); - } - } - }); - - }); -}( jQuery ));;(function ($) { - var materialChipsDefaults = { - data: [], - placeholder: '', - secondaryPlaceholder: '', - autocompleteData: {}, - autocompleteLimit: Infinity, - }; - - $(document).ready(function() { - // Handle removal of static chips. - $(document).on('click', '.chip .close', function(e){ - var $chips = $(this).closest('.chips'); - if ($chips.attr('data-initialized')) { - return; - } - $(this).closest('.chip').remove(); - }); - }); - - $.fn.material_chip = function (options) { - var self = this; - this.$el = $(this); - this.$document = $(document); - this.SELS = { - CHIPS: '.chips', - CHIP: '.chip', - INPUT: 'input', - DELETE: '.material-icons', - SELECTED_CHIP: '.selected', - }; - - if ('data' === options) { - return this.$el.data('chips'); - } - - var curr_options = $.extend({}, materialChipsDefaults, options); - self.hasAutocomplete = !$.isEmptyObject(curr_options.autocompleteData); - - // Initialize - this.init = function() { - var i = 0; - var chips; - self.$el.each(function(){ - var $chips = $(this); - var chipId = Materialize.guid(); - self.chipId = chipId; - - if (!curr_options.data || !(curr_options.data instanceof Array)) { - curr_options.data = []; - } - $chips.data('chips', curr_options.data); - $chips.attr('data-index', i); - $chips.attr('data-initialized', true); - - if (!$chips.hasClass(self.SELS.CHIPS)) { - $chips.addClass('chips'); - } - - self.chips($chips, chipId); - i++; - }); - }; - - this.handleEvents = function() { - var SELS = self.SELS; - - self.$document.off('click.chips-focus', SELS.CHIPS).on('click.chips-focus', SELS.CHIPS, function(e){ - $(e.target).find(SELS.INPUT).focus(); - }); - - self.$document.off('click.chips-select', SELS.CHIP).on('click.chips-select', SELS.CHIP, function(e){ - var $chip = $(e.target); - if ($chip.length) { - var wasSelected = $chip.hasClass('selected'); - var $chips = $chip.closest(SELS.CHIPS); - $(SELS.CHIP).removeClass('selected'); - - if (!wasSelected) { - self.selectChip($chip.index(), $chips); - } - } - }); - - self.$document.off('keydown.chips').on('keydown.chips', function(e){ - if ($(e.target).is('input, textarea')) { - return; - } - - // delete - var $chip = self.$document.find(SELS.CHIP + SELS.SELECTED_CHIP); - var $chips = $chip.closest(SELS.CHIPS); - var length = $chip.siblings(SELS.CHIP).length; - var index; - - if (!$chip.length) { - return; - } - - if (e.which === 8 || e.which === 46) { - e.preventDefault(); - - index = $chip.index(); - self.deleteChip(index, $chips); - - var selectIndex = null; - if ((index + 1) < length) { - selectIndex = index; - } else if (index === length || (index + 1) === length) { - selectIndex = length - 1; - } - - if (selectIndex < 0) selectIndex = null; - - if (null !== selectIndex) { - self.selectChip(selectIndex, $chips); - } - if (!length) $chips.find('input').focus(); - - // left - } else if (e.which === 37) { - index = $chip.index() - 1; - if (index < 0) { - return; - } - $(SELS.CHIP).removeClass('selected'); - self.selectChip(index, $chips); - - // right - } else if (e.which === 39) { - index = $chip.index() + 1; - $(SELS.CHIP).removeClass('selected'); - if (index > length) { - $chips.find('input').focus(); - return; - } - self.selectChip(index, $chips); - } - }); - - self.$document.off('focusin.chips', SELS.CHIPS + ' ' + SELS.INPUT).on('focusin.chips', SELS.CHIPS + ' ' + SELS.INPUT, function(e){ - var $currChips = $(e.target).closest(SELS.CHIPS); - $currChips.addClass('focus'); - $currChips.siblings('label, .prefix').addClass('active'); - $(SELS.CHIP).removeClass('selected'); - }); - - self.$document.off('focusout.chips', SELS.CHIPS + ' ' + SELS.INPUT).on('focusout.chips', SELS.CHIPS + ' ' + SELS.INPUT, function(e){ - var $currChips = $(e.target).closest(SELS.CHIPS); - $currChips.removeClass('focus'); - - // Remove active if empty - if (!$currChips.data('chips').length) { - $currChips.siblings('label').removeClass('active'); - } - $currChips.siblings('.prefix').removeClass('active'); - }); - - self.$document.off('keydown.chips-add', SELS.CHIPS + ' ' + SELS.INPUT).on('keydown.chips-add', SELS.CHIPS + ' ' + SELS.INPUT, function(e){ - var $target = $(e.target); - var $chips = $target.closest(SELS.CHIPS); - var chipsLength = $chips.children(SELS.CHIP).length; - - // enter - if (13 === e.which) { - // Override enter if autocompleting. - if (self.hasAutocomplete && - $chips.find('.autocomplete-content.dropdown-content').length && - $chips.find('.autocomplete-content.dropdown-content').children().length) { - return; - } - - e.preventDefault(); - self.addChip({tag: $target.val()}, $chips); - $target.val(''); - return; - } - - // delete or left - if ((8 === e.keyCode || 37 === e.keyCode) && '' === $target.val() && chipsLength) { - e.preventDefault(); - self.selectChip(chipsLength - 1, $chips); - $target.blur(); - return; - } - }); - - // Click on delete icon in chip. - self.$document.off('click.chips-delete', SELS.CHIPS + ' ' + SELS.DELETE).on('click.chips-delete', SELS.CHIPS + ' ' + SELS.DELETE, function(e) { - var $target = $(e.target); - var $chips = $target.closest(SELS.CHIPS); - var $chip = $target.closest(SELS.CHIP); - e.stopPropagation(); - self.deleteChip($chip.index(), $chips); - $chips.find('input').focus(); - }); - }; - - this.chips = function($chips, chipId) { - var html = ''; - $chips.data('chips').forEach(function(elem){ - html += self.renderChip(elem); - }); - html += ''; - $chips.html(html); - self.setPlaceholder($chips); - - // Set for attribute for label - var label = $chips.next('label'); - if (label.length) { - label.attr('for', chipId); - - if ($chips.data('chips').length) { - label.addClass('active'); - } - } - - // Setup autocomplete if needed. - var input = $('#' + chipId); - if (self.hasAutocomplete) { - input.autocomplete({ - data: curr_options.autocompleteData, - limit: curr_options.autocompleteLimit, - onAutocomplete: function(val) { - self.addChip({tag: val}, $chips); - input.val(''); - input.focus(); - }, - }) - } - }; - - this.renderChip = function(elem) { - if (!elem.tag) return; - - var html = '
      ' + elem.tag; - if (elem.image) { - html += ' '; - } - html += 'close'; - html += '
      '; - return html; - }; - - this.setPlaceholder = function($chips) { - if ($chips.data('chips').length && curr_options.placeholder) { - $chips.find('input').prop('placeholder', curr_options.placeholder); - - } else if (!$chips.data('chips').length && curr_options.secondaryPlaceholder) { - $chips.find('input').prop('placeholder', curr_options.secondaryPlaceholder); - } - }; - - this.isValid = function($chips, elem) { - var chips = $chips.data('chips'); - var exists = false; - for (var i=0; i < chips.length; i++) { - if (chips[i].tag === elem.tag) { - exists = true; - return; - } - } - return '' !== elem.tag && !exists; - }; - - this.addChip = function(elem, $chips) { - if (!self.isValid($chips, elem)) { - return; - } - var chipHtml = self.renderChip(elem); - var newData = []; - var oldData = $chips.data('chips'); - for (var i = 0; i < oldData.length; i++) { - newData.push(oldData[i]); - } - newData.push(elem); - - $chips.data('chips', newData); - $(chipHtml).insertBefore($chips.find('input')); - $chips.trigger('chip.add', elem); - self.setPlaceholder($chips); - }; - - this.deleteChip = function(chipIndex, $chips) { - var chip = $chips.data('chips')[chipIndex]; - $chips.find('.chip').eq(chipIndex).remove(); - - var newData = []; - var oldData = $chips.data('chips'); - for (var i = 0; i < oldData.length; i++) { - if (i !== chipIndex) { - newData.push(oldData[i]); - } - } - - $chips.data('chips', newData); - $chips.trigger('chip.delete', chip); - self.setPlaceholder($chips); - }; - - this.selectChip = function(chipIndex, $chips) { - var $chip = $chips.find('.chip').eq(chipIndex); - if ($chip && false === $chip.hasClass('selected')) { - $chip.addClass('selected'); - $chips.trigger('chip.select', $chips.data('chips')[chipIndex]); - } - }; - - this.getChipsElement = function(index, $chips) { - return $chips.eq(index); - }; - - // init - this.init(); - - this.handleEvents(); - }; -}( jQuery )); -;(function ($) { - $.fn.pushpin = function (options) { - // Defaults - var defaults = { - top: 0, - bottom: Infinity, - offset: 0 - }; - - // Remove pushpin event and classes - if (options === "remove") { - this.each(function () { - if (id = $(this).data('pushpin-id')) { - $(window).off('scroll.' + id); - $(this).removeData('pushpin-id').removeClass('pin-top pinned pin-bottom').removeAttr('style'); - } - }); - return false; - } - - options = $.extend(defaults, options); - - - $index = 0; - return this.each(function() { - var $uniqueId = Materialize.guid(), - $this = $(this), - $original_offset = $(this).offset().top; - - function removePinClasses(object) { - object.removeClass('pin-top'); - object.removeClass('pinned'); - object.removeClass('pin-bottom'); - } - - function updateElements(objects, scrolled) { - objects.each(function () { - // Add position fixed (because its between top and bottom) - if (options.top <= scrolled && options.bottom >= scrolled && !$(this).hasClass('pinned')) { - removePinClasses($(this)); - $(this).css('top', options.offset); - $(this).addClass('pinned'); - } - - // Add pin-top (when scrolled position is above top) - if (scrolled < options.top && !$(this).hasClass('pin-top')) { - removePinClasses($(this)); - $(this).css('top', 0); - $(this).addClass('pin-top'); - } - - // Add pin-bottom (when scrolled position is below bottom) - if (scrolled > options.bottom && !$(this).hasClass('pin-bottom')) { - removePinClasses($(this)); - $(this).addClass('pin-bottom'); - $(this).css('top', options.bottom - $original_offset); - } - }); - } - - $(this).data('pushpin-id', $uniqueId); - updateElements($this, $(window).scrollTop()); - $(window).on('scroll.' + $uniqueId, function () { - var $scrolled = $(window).scrollTop() + options.offset; - updateElements($this, $scrolled); - }); - - }); - - }; -}( jQuery ));;(function ($) { - $(document).ready(function() { - - // jQuery reverse - $.fn.reverse = [].reverse; - - // Hover behaviour: make sure this doesn't work on .click-to-toggle FABs! - $(document).on('mouseenter.fixedActionBtn', '.fixed-action-btn:not(.click-to-toggle):not(.toolbar)', function(e) { - var $this = $(this); - openFABMenu($this); - }); - $(document).on('mouseleave.fixedActionBtn', '.fixed-action-btn:not(.click-to-toggle):not(.toolbar)', function(e) { - var $this = $(this); - closeFABMenu($this); - }); - - // Toggle-on-click behaviour. - $(document).on('click.fabClickToggle', '.fixed-action-btn.click-to-toggle > a', function(e) { - var $this = $(this); - var $menu = $this.parent(); - if ($menu.hasClass('active')) { - closeFABMenu($menu); - } else { - openFABMenu($menu); - } - }); - - // Toolbar transition behaviour. - $(document).on('click.fabToolbar', '.fixed-action-btn.toolbar > a', function(e) { - var $this = $(this); - var $menu = $this.parent(); - FABtoToolbar($menu); - }); - - }); - - $.fn.extend({ - openFAB: function() { - openFABMenu($(this)); - }, - closeFAB: function() { - closeFABMenu($(this)); - }, - openToolbar: function() { - FABtoToolbar($(this)); - }, - closeToolbar: function() { - toolbarToFAB($(this)); - } - }); - - - var openFABMenu = function (btn) { - var $this = btn; - if ($this.hasClass('active') === false) { - - // Get direction option - var horizontal = $this.hasClass('horizontal'); - var offsetY, offsetX; - - if (horizontal === true) { - offsetX = 40; - } else { - offsetY = 40; - } - - $this.addClass('active'); - $this.find('ul .btn-floating').velocity( - { scaleY: ".4", scaleX: ".4", translateY: offsetY + 'px', translateX: offsetX + 'px'}, - { duration: 0 }); - - var time = 0; - $this.find('ul .btn-floating').reverse().each( function () { - $(this).velocity( - { opacity: "1", scaleX: "1", scaleY: "1", translateY: "0", translateX: '0'}, - { duration: 80, delay: time }); - time += 40; - }); - } - }; - - var closeFABMenu = function (btn) { - var $this = btn; - // Get direction option - var horizontal = $this.hasClass('horizontal'); - var offsetY, offsetX; - - if (horizontal === true) { - offsetX = 40; - } else { - offsetY = 40; - } - - $this.removeClass('active'); - var time = 0; - $this.find('ul .btn-floating').velocity("stop", true); - $this.find('ul .btn-floating').velocity( - { opacity: "0", scaleX: ".4", scaleY: ".4", translateY: offsetY + 'px', translateX: offsetX + 'px'}, - { duration: 80 } - ); - }; - - - /** - * Transform FAB into toolbar - * @param {Object} object jQuery object - */ - var FABtoToolbar = function(btn) { - if (btn.attr('data-open') === "true") { - return; - } - - var offsetX, offsetY, scaleFactor; - var windowWidth = window.innerWidth; - var windowHeight = window.innerHeight; - var btnRect = btn[0].getBoundingClientRect(); - var anchor = btn.find('> a').first(); - var menu = btn.find('> ul').first(); - var backdrop = $('
      '); - var fabColor = anchor.css('background-color'); - anchor.append(backdrop); - - offsetX = btnRect.left - (windowWidth / 2) + (btnRect.width / 2); - offsetY = windowHeight - btnRect.bottom; - scaleFactor = windowWidth / backdrop.width(); - btn.attr('data-origin-bottom', btnRect.bottom); - btn.attr('data-origin-left', btnRect.left); - btn.attr('data-origin-width', btnRect.width); - - // Set initial state - btn.addClass('active'); - btn.attr('data-open', true); - btn.css({ - 'text-align': 'center', - width: '100%', - bottom: 0, - left: 0, - transform: 'translateX(' + offsetX + 'px)', - transition: 'none' - }); - anchor.css({ - transform: 'translateY(' + -offsetY + 'px)', - transition: 'none' - }); - backdrop.css({ - 'background-color': fabColor - }); - - - setTimeout(function() { - btn.css({ - transform: '', - transition: 'transform .2s cubic-bezier(0.550, 0.085, 0.680, 0.530), background-color 0s linear .2s' - }); - anchor.css({ - overflow: 'visible', - transform: '', - transition: 'transform .2s' - }); - - setTimeout(function() { - btn.css({ - overflow: 'hidden', - 'background-color': fabColor - }); - backdrop.css({ - transform: 'scale(' + scaleFactor + ')', - transition: 'transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)' - }); - menu.find('> li > a').css({ - opacity: 1 - }); - - // Scroll to close. - $(window).on('scroll.fabToolbarClose', function() { - toolbarToFAB(btn); - $(window).off('scroll.fabToolbarClose'); - $(document).off('click.fabToolbarClose'); - }); - - $(document).on('click.fabToolbarClose', function(e) { - if (!$(e.target).closest(menu).length) { - toolbarToFAB(btn); - $(window).off('scroll.fabToolbarClose'); - $(document).off('click.fabToolbarClose'); - } - }); - }, 100); - }, 0); - }; - - /** - * Transform toolbar back into FAB - * @param {Object} object jQuery object - */ - var toolbarToFAB = function(btn) { - if (btn.attr('data-open') !== "true") { - return; - } - - var offsetX, offsetY, scaleFactor; - var windowWidth = window.innerWidth; - var windowHeight = window.innerHeight; - var btnWidth = btn.attr('data-origin-width'); - var btnBottom = btn.attr('data-origin-bottom'); - var btnLeft = btn.attr('data-origin-left'); - var anchor = btn.find('> .btn-floating').first(); - var menu = btn.find('> ul').first(); - var backdrop = btn.find('.fab-backdrop'); - var fabColor = anchor.css('background-color'); - - offsetX = btnLeft - (windowWidth / 2) + (btnWidth / 2); - offsetY = windowHeight - btnBottom; - scaleFactor = windowWidth / backdrop.width(); - - - // Hide backdrop - btn.removeClass('active'); - btn.attr('data-open', false); - btn.css({ - 'background-color': 'transparent', - transition: 'none' - }); - anchor.css({ - transition: 'none' - }); - backdrop.css({ - transform: 'scale(0)', - 'background-color': fabColor - }); - menu.find('> li > a').css({ - opacity: '' - }); - - setTimeout(function() { - backdrop.remove(); - - // Set initial state. - btn.css({ - 'text-align': '', - width: '', - bottom: '', - left: '', - overflow: '', - 'background-color': '', - transform: 'translate3d(' + -offsetX + 'px,0,0)' - }); - anchor.css({ - overflow: '', - transform: 'translate3d(0,' + offsetY + 'px,0)' - }); - - setTimeout(function() { - btn.css({ - transform: 'translate3d(0,0,0)', - transition: 'transform .2s' - }); - anchor.css({ - transform: 'translate3d(0,0,0)', - transition: 'transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)' - }); - }, 20); - }, 200); - }; - - -}( jQuery )); -;(function ($) { - // Image transition function - Materialize.fadeInImage = function(selectorOrEl) { - var element; - if (typeof(selectorOrEl) === 'string') { - element = $(selectorOrEl); - } else if (typeof(selectorOrEl) === 'object') { - element = selectorOrEl; - } else { - return; - } - element.css({opacity: 0}); - $(element).velocity({opacity: 1}, { - duration: 650, - queue: false, - easing: 'easeOutSine' - }); - $(element).velocity({opacity: 1}, { - duration: 1300, - queue: false, - easing: 'swing', - step: function(now, fx) { - fx.start = 100; - var grayscale_setting = now/100; - var brightness_setting = 150 - (100 - now)/1.75; - - if (brightness_setting < 100) { - brightness_setting = 100; - } - if (now >= 0) { - $(this).css({ - "-webkit-filter": "grayscale("+grayscale_setting+")" + "brightness("+brightness_setting+"%)", - "filter": "grayscale("+grayscale_setting+")" + "brightness("+brightness_setting+"%)" - }); - } - } - }); - }; - - // Horizontal staggered list - Materialize.showStaggeredList = function(selectorOrEl) { - var element; - if (typeof(selectorOrEl) === 'string') { - element = $(selectorOrEl); - } else if (typeof(selectorOrEl) === 'object') { - element = selectorOrEl; - } else { - return; - } - var time = 0; - element.find('li').velocity( - { translateX: "-100px"}, - { duration: 0 }); - - element.find('li').each(function() { - $(this).velocity( - { opacity: "1", translateX: "0"}, - { duration: 800, delay: time, easing: [60, 10] }); - time += 120; - }); - }; - - - $(document).ready(function() { - // Hardcoded .staggered-list scrollFire - // var staggeredListOptions = []; - // $('ul.staggered-list').each(function (i) { - - // var label = 'scrollFire-' + i; - // $(this).addClass(label); - // staggeredListOptions.push( - // {selector: 'ul.staggered-list.' + label, - // offset: 200, - // callback: 'showStaggeredList("ul.staggered-list.' + label + '")'}); - // }); - // scrollFire(staggeredListOptions); - - // HammerJS, Swipe navigation - - // Touch Event - var swipeLeft = false; - var swipeRight = false; - - - // Dismissible Collections - $('.dismissable').each(function() { - $(this).hammer({ - prevent_default: false - }).bind('pan', function(e) { - if (e.gesture.pointerType === "touch") { - var $this = $(this); - var direction = e.gesture.direction; - var x = e.gesture.deltaX; - var velocityX = e.gesture.velocityX; - - $this.velocity({ translateX: x - }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - - // Swipe Left - if (direction === 4 && (x > ($this.innerWidth() / 2) || velocityX < -0.75)) { - swipeLeft = true; - } - - // Swipe Right - if (direction === 2 && (x < (-1 * $this.innerWidth() / 2) || velocityX > 0.75)) { - swipeRight = true; - } - } - }).bind('panend', function(e) { - // Reset if collection is moved back into original position - if (Math.abs(e.gesture.deltaX) < ($(this).innerWidth() / 2)) { - swipeRight = false; - swipeLeft = false; - } - - if (e.gesture.pointerType === "touch") { - var $this = $(this); - if (swipeLeft || swipeRight) { - var fullWidth; - if (swipeLeft) { fullWidth = $this.innerWidth(); } - else { fullWidth = -1 * $this.innerWidth(); } - - $this.velocity({ translateX: fullWidth, - }, {duration: 100, queue: false, easing: 'easeOutQuad', complete: - function() { - $this.css('border', 'none'); - $this.velocity({ height: 0, padding: 0, - }, {duration: 200, queue: false, easing: 'easeOutQuad', complete: - function() { $this.remove(); } - }); - } - }); - } - else { - $this.velocity({ translateX: 0, - }, {duration: 100, queue: false, easing: 'easeOutQuad'}); - } - swipeLeft = false; - swipeRight = false; - } - }); - - }); - - - // time = 0 - // // Vertical Staggered list - // $('ul.staggered-list.vertical li').velocity( - // { translateY: "100px"}, - // { duration: 0 }); - - // $('ul.staggered-list.vertical li').each(function() { - // $(this).velocity( - // { opacity: "1", translateY: "0"}, - // { duration: 800, delay: time, easing: [60, 25] }); - // time += 120; - // }); - - // // Fade in and Scale - // $('.fade-in.scale').velocity( - // { scaleX: .4, scaleY: .4, translateX: -600}, - // { duration: 0}); - // $('.fade-in').each(function() { - // $(this).velocity( - // { opacity: "1", scaleX: 1, scaleY: 1, translateX: 0}, - // { duration: 800, easing: [60, 10] }); - // }); - }); -}( jQuery )); -;(function($) { - - var scrollFireEventsHandled = false; - - // Input: Array of JSON objects {selector, offset, callback} - Materialize.scrollFire = function(options) { - var onScroll = function() { - var windowScroll = window.pageYOffset + window.innerHeight; - - for (var i = 0 ; i < options.length; i++) { - // Get options from each line - var value = options[i]; - var selector = value.selector, - offset = value.offset, - callback = value.callback; - - var currentElement = document.querySelector(selector); - if ( currentElement !== null) { - var elementOffset = currentElement.getBoundingClientRect().top + window.pageYOffset; - - if (windowScroll > (elementOffset + offset)) { - if (value.done !== true) { - if (typeof(callback) === 'function') { - callback.call(this, currentElement); - } else if (typeof(callback) === 'string') { - var callbackFunc = new Function(callback); - callbackFunc(currentElement); - } - value.done = true; - } - } - } - } - }; - - - var throttledScroll = Materialize.throttle(function() { - onScroll(); - }, options.throttle || 100); - - if (!scrollFireEventsHandled) { - window.addEventListener("scroll", throttledScroll); - window.addEventListener("resize", throttledScroll); - scrollFireEventsHandled = true; - } - - // perform a scan once, after current execution context, and after dom is ready - setTimeout(throttledScroll, 0); - }; - -})(jQuery); -;/*! - * pickadate.js v3.5.0, 2014/04/13 - * By Amsul, http://amsul.ca - * Hosted on http://amsul.github.io/pickadate.js - * Licensed under MIT - */ - -(function ( factory ) { - - // AMD. - if ( typeof define == 'function' && define.amd ) - define( 'picker', ['jquery'], factory ) - - // Node.js/browserify. - else if ( typeof exports == 'object' ) - module.exports = factory( require('jquery') ) - - // Browser globals. - else this.Picker = factory( jQuery ) - -}(function( $ ) { - -var $window = $( window ) -var $document = $( document ) -var $html = $( document.documentElement ) - - -/** - * The picker constructor that creates a blank picker. - */ -function PickerConstructor( ELEMENT, NAME, COMPONENT, OPTIONS ) { - - // If there’s no element, return the picker constructor. - if ( !ELEMENT ) return PickerConstructor - - - var - IS_DEFAULT_THEME = false, - - - // The state of the picker. - STATE = { - id: ELEMENT.id || 'P' + Math.abs( ~~(Math.random() * new Date()) ) - }, - - - // Merge the defaults and options passed. - SETTINGS = COMPONENT ? $.extend( true, {}, COMPONENT.defaults, OPTIONS ) : OPTIONS || {}, - - - // Merge the default classes with the settings classes. - CLASSES = $.extend( {}, PickerConstructor.klasses(), SETTINGS.klass ), - - - // The element node wrapper into a jQuery object. - $ELEMENT = $( ELEMENT ), - - - // Pseudo picker constructor. - PickerInstance = function() { - return this.start() - }, - - - // The picker prototype. - P = PickerInstance.prototype = { - - constructor: PickerInstance, - - $node: $ELEMENT, - - - /** - * Initialize everything - */ - start: function() { - - // If it’s already started, do nothing. - if ( STATE && STATE.start ) return P - - - // Update the picker states. - STATE.methods = {} - STATE.start = true - STATE.open = false - STATE.type = ELEMENT.type - - - // Confirm focus state, convert into text input to remove UA stylings, - // and set as readonly to prevent keyboard popup. - ELEMENT.autofocus = ELEMENT == getActiveElement() - ELEMENT.readOnly = !SETTINGS.editable - ELEMENT.id = ELEMENT.id || STATE.id - if ( ELEMENT.type != 'text' ) { - ELEMENT.type = 'text' - } - - - // Create a new picker component with the settings. - P.component = new COMPONENT(P, SETTINGS) - - - // Create the picker root with a holder and then prepare it. - P.$root = $( PickerConstructor._.node('div', createWrappedComponent(), CLASSES.picker, 'id="' + ELEMENT.id + '_root" tabindex="0"') ) - prepareElementRoot() - - - // If there’s a format for the hidden input element, create the element. - if ( SETTINGS.formatSubmit ) { - prepareElementHidden() - } - - - // Prepare the input element. - prepareElement() - - - // Insert the root as specified in the settings. - if ( SETTINGS.container ) $( SETTINGS.container ).append( P.$root ) - else $ELEMENT.after( P.$root ) - - - // Bind the default component and settings events. - P.on({ - start: P.component.onStart, - render: P.component.onRender, - stop: P.component.onStop, - open: P.component.onOpen, - close: P.component.onClose, - set: P.component.onSet - }).on({ - start: SETTINGS.onStart, - render: SETTINGS.onRender, - stop: SETTINGS.onStop, - open: SETTINGS.onOpen, - close: SETTINGS.onClose, - set: SETTINGS.onSet - }) - - - // Once we’re all set, check the theme in use. - IS_DEFAULT_THEME = isUsingDefaultTheme( P.$root.children()[ 0 ] ) - - - // If the element has autofocus, open the picker. - if ( ELEMENT.autofocus ) { - P.open() - } - - - // Trigger queued the “start” and “render” events. - return P.trigger( 'start' ).trigger( 'render' ) - }, //start - - - /** - * Render a new picker - */ - render: function( entireComponent ) { - - // Insert a new component holder in the root or box. - if ( entireComponent ) P.$root.html( createWrappedComponent() ) - else P.$root.find( '.' + CLASSES.box ).html( P.component.nodes( STATE.open ) ) - - // Trigger the queued “render” events. - return P.trigger( 'render' ) - }, //render - - - /** - * Destroy everything - */ - stop: function() { - - // If it’s already stopped, do nothing. - if ( !STATE.start ) return P - - // Then close the picker. - P.close() - - // Remove the hidden field. - if ( P._hidden ) { - P._hidden.parentNode.removeChild( P._hidden ) - } - - // Remove the root. - P.$root.remove() - - // Remove the input class, remove the stored data, and unbind - // the events (after a tick for IE - see `P.close`). - $ELEMENT.removeClass( CLASSES.input ).removeData( NAME ) - setTimeout( function() { - $ELEMENT.off( '.' + STATE.id ) - }, 0) - - // Restore the element state - ELEMENT.type = STATE.type - ELEMENT.readOnly = false - - // Trigger the queued “stop” events. - P.trigger( 'stop' ) - - // Reset the picker states. - STATE.methods = {} - STATE.start = false - - return P - }, //stop - - - /** - * Open up the picker - */ - open: function( dontGiveFocus ) { - - // If it’s already open, do nothing. - if ( STATE.open ) return P - - // Add the “active” class. - $ELEMENT.addClass( CLASSES.active ) - aria( ELEMENT, 'expanded', true ) - - // * A Firefox bug, when `html` has `overflow:hidden`, results in - // killing transitions :(. So add the “opened” state on the next tick. - // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289 - setTimeout( function() { - - // Add the “opened” class to the picker root. - P.$root.addClass( CLASSES.opened ) - aria( P.$root[0], 'hidden', false ) - - }, 0 ) - - // If we have to give focus, bind the element and doc events. - if ( dontGiveFocus !== false ) { - - // Set it as open. - STATE.open = true - - // Prevent the page from scrolling. - if ( IS_DEFAULT_THEME ) { - $html. - css( 'overflow', 'hidden' ). - css( 'padding-right', '+=' + getScrollbarWidth() ) - } - - // Pass focus to the root element’s jQuery object. - // * Workaround for iOS8 to bring the picker’s root into view. - P.$root.eq(0).focus() - - // Bind the document events. - $document.on( 'click.' + STATE.id + ' focusin.' + STATE.id, function( event ) { - - var target = event.target - - // If the target of the event is not the element, close the picker picker. - // * Don’t worry about clicks or focusins on the root because those don’t bubble up. - // Also, for Firefox, a click on an `option` element bubbles up directly - // to the doc. So make sure the target wasn't the doc. - // * In Firefox stopPropagation() doesn’t prevent right-click events from bubbling, - // which causes the picker to unexpectedly close when right-clicking it. So make - // sure the event wasn’t a right-click. - if ( target != ELEMENT && target != document && event.which != 3 ) { - - // If the target was the holder that covers the screen, - // keep the element focused to maintain tabindex. - P.close( target === P.$root.children()[0] ) - } - - }).on( 'keydown.' + STATE.id, function( event ) { - - var - // Get the keycode. - keycode = event.keyCode, - - // Translate that to a selection change. - keycodeToMove = P.component.key[ keycode ], - - // Grab the target. - target = event.target - - - // On escape, close the picker and give focus. - if ( keycode == 27 ) { - P.close( true ) - } - - - // Check if there is a key movement or “enter” keypress on the element. - else if ( target == P.$root[0] && ( keycodeToMove || keycode == 13 ) ) { - - // Prevent the default action to stop page movement. - event.preventDefault() - - // Trigger the key movement action. - if ( keycodeToMove ) { - PickerConstructor._.trigger( P.component.key.go, P, [ PickerConstructor._.trigger( keycodeToMove ) ] ) - } - - // On “enter”, if the highlighted item isn’t disabled, set the value and close. - else if ( !P.$root.find( '.' + CLASSES.highlighted ).hasClass( CLASSES.disabled ) ) { - P.set( 'select', P.component.item.highlight ).close() - } - } - - - // If the target is within the root and “enter” is pressed, - // prevent the default action and trigger a click on the target instead. - else if ( $.contains( P.$root[0], target ) && keycode == 13 ) { - event.preventDefault() - target.click() - } - }) - } - - // Trigger the queued “open” events. - return P.trigger( 'open' ) - }, //open - - - /** - * Close the picker - */ - close: function( giveFocus ) { - - // If we need to give focus, do it before changing states. - if ( giveFocus ) { - // ....ah yes! It would’ve been incomplete without a crazy workaround for IE :| - // The focus is triggered *after* the close has completed - causing it - // to open again. So unbind and rebind the event at the next tick. - P.$root.off( 'focus.toOpen' ).eq(0).focus() - setTimeout( function() { - P.$root.on( 'focus.toOpen', handleFocusToOpenEvent ) - }, 0 ) - } - - // Remove the “active” class. - $ELEMENT.removeClass( CLASSES.active ) - aria( ELEMENT, 'expanded', false ) - - // * A Firefox bug, when `html` has `overflow:hidden`, results in - // killing transitions :(. So remove the “opened” state on the next tick. - // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289 - setTimeout( function() { - - // Remove the “opened” and “focused” class from the picker root. - P.$root.removeClass( CLASSES.opened + ' ' + CLASSES.focused ) - aria( P.$root[0], 'hidden', true ) - - }, 0 ) - - // If it’s already closed, do nothing more. - if ( !STATE.open ) return P - - // Set it as closed. - STATE.open = false - - // Allow the page to scroll. - if ( IS_DEFAULT_THEME ) { - $html. - css( 'overflow', '' ). - css( 'padding-right', '-=' + getScrollbarWidth() ) - } - - // Unbind the document events. - $document.off( '.' + STATE.id ) - - // Trigger the queued “close” events. - return P.trigger( 'close' ) - }, //close - - - /** - * Clear the values - */ - clear: function( options ) { - return P.set( 'clear', null, options ) - }, //clear - - - /** - * Set something - */ - set: function( thing, value, options ) { - - var thingItem, thingValue, - thingIsObject = $.isPlainObject( thing ), - thingObject = thingIsObject ? thing : {} - - // Make sure we have usable options. - options = thingIsObject && $.isPlainObject( value ) ? value : options || {} - - if ( thing ) { - - // If the thing isn’t an object, make it one. - if ( !thingIsObject ) { - thingObject[ thing ] = value - } - - // Go through the things of items to set. - for ( thingItem in thingObject ) { - - // Grab the value of the thing. - thingValue = thingObject[ thingItem ] - - // First, if the item exists and there’s a value, set it. - if ( thingItem in P.component.item ) { - if ( thingValue === undefined ) thingValue = null - P.component.set( thingItem, thingValue, options ) - } - - // Then, check to update the element value and broadcast a change. - if ( thingItem == 'select' || thingItem == 'clear' ) { - $ELEMENT. - val( thingItem == 'clear' ? '' : P.get( thingItem, SETTINGS.format ) ). - trigger( 'change' ) - } - } - - // Render a new picker. - P.render() - } - - // When the method isn’t muted, trigger queued “set” events and pass the `thingObject`. - return options.muted ? P : P.trigger( 'set', thingObject ) - }, //set - - - /** - * Get something - */ - get: function( thing, format ) { - - // Make sure there’s something to get. - thing = thing || 'value' - - // If a picker state exists, return that. - if ( STATE[ thing ] != null ) { - return STATE[ thing ] - } - - // Return the submission value, if that. - if ( thing == 'valueSubmit' ) { - if ( P._hidden ) { - return P._hidden.value - } - thing = 'value' - } - - // Return the value, if that. - if ( thing == 'value' ) { - return ELEMENT.value - } - - // Check if a component item exists, return that. - if ( thing in P.component.item ) { - if ( typeof format == 'string' ) { - var thingValue = P.component.get( thing ) - return thingValue ? - PickerConstructor._.trigger( - P.component.formats.toString, - P.component, - [ format, thingValue ] - ) : '' - } - return P.component.get( thing ) - } - }, //get - - - - /** - * Bind events on the things. - */ - on: function( thing, method, internal ) { - - var thingName, thingMethod, - thingIsObject = $.isPlainObject( thing ), - thingObject = thingIsObject ? thing : {} - - if ( thing ) { - - // If the thing isn’t an object, make it one. - if ( !thingIsObject ) { - thingObject[ thing ] = method - } - - // Go through the things to bind to. - for ( thingName in thingObject ) { - - // Grab the method of the thing. - thingMethod = thingObject[ thingName ] - - // If it was an internal binding, prefix it. - if ( internal ) { - thingName = '_' + thingName - } - - // Make sure the thing methods collection exists. - STATE.methods[ thingName ] = STATE.methods[ thingName ] || [] - - // Add the method to the relative method collection. - STATE.methods[ thingName ].push( thingMethod ) - } - } - - return P - }, //on - - - - /** - * Unbind events on the things. - */ - off: function() { - var i, thingName, - names = arguments; - for ( i = 0, namesCount = names.length; i < namesCount; i += 1 ) { - thingName = names[i] - if ( thingName in STATE.methods ) { - delete STATE.methods[thingName] - } - } - return P - }, - - - /** - * Fire off method events. - */ - trigger: function( name, data ) { - var _trigger = function( name ) { - var methodList = STATE.methods[ name ] - if ( methodList ) { - methodList.map( function( method ) { - PickerConstructor._.trigger( method, P, [ data ] ) - }) - } - } - _trigger( '_' + name ) - _trigger( name ) - return P - } //trigger - } //PickerInstance.prototype - - - /** - * Wrap the picker holder components together. - */ - function createWrappedComponent() { - - // Create a picker wrapper holder - return PickerConstructor._.node( 'div', - - // Create a picker wrapper node - PickerConstructor._.node( 'div', - - // Create a picker frame - PickerConstructor._.node( 'div', - - // Create a picker box node - PickerConstructor._.node( 'div', - - // Create the components nodes. - P.component.nodes( STATE.open ), - - // The picker box class - CLASSES.box - ), - - // Picker wrap class - CLASSES.wrap - ), - - // Picker frame class - CLASSES.frame - ), - - // Picker holder class - CLASSES.holder - ) //endreturn - } //createWrappedComponent - - - - /** - * Prepare the input element with all bindings. - */ - function prepareElement() { - - $ELEMENT. - - // Store the picker data by component name. - data(NAME, P). - - // Add the “input” class name. - addClass(CLASSES.input). - - // Remove the tabindex. - attr('tabindex', -1). - - // If there’s a `data-value`, update the value of the element. - val( $ELEMENT.data('value') ? - P.get('select', SETTINGS.format) : - ELEMENT.value - ) - - - // Only bind keydown events if the element isn’t editable. - if ( !SETTINGS.editable ) { - - $ELEMENT. - - // On focus/click, focus onto the root to open it up. - on( 'focus.' + STATE.id + ' click.' + STATE.id, function( event ) { - event.preventDefault() - P.$root.eq(0).focus() - }). - - // Handle keyboard event based on the picker being opened or not. - on( 'keydown.' + STATE.id, handleKeydownEvent ) - } - - - // Update the aria attributes. - aria(ELEMENT, { - haspopup: true, - expanded: false, - readonly: false, - owns: ELEMENT.id + '_root' - }) - } - - - /** - * Prepare the root picker element with all bindings. - */ - function prepareElementRoot() { - - P.$root. - - on({ - - // For iOS8. - keydown: handleKeydownEvent, - - // When something within the root is focused, stop from bubbling - // to the doc and remove the “focused” state from the root. - focusin: function( event ) { - P.$root.removeClass( CLASSES.focused ) - event.stopPropagation() - }, - - // When something within the root holder is clicked, stop it - // from bubbling to the doc. - 'mousedown click': function( event ) { - - var target = event.target - - // Make sure the target isn’t the root holder so it can bubble up. - if ( target != P.$root.children()[ 0 ] ) { - - event.stopPropagation() - - // * For mousedown events, cancel the default action in order to - // prevent cases where focus is shifted onto external elements - // when using things like jQuery mobile or MagnificPopup (ref: #249 & #120). - // Also, for Firefox, don’t prevent action on the `option` element. - if ( event.type == 'mousedown' && !$( target ).is( 'input, select, textarea, button, option' )) { - - event.preventDefault() - - // Re-focus onto the root so that users can click away - // from elements focused within the picker. - P.$root.eq(0).focus() - } - } - } - }). - - // Add/remove the “target” class on focus and blur. - on({ - focus: function() { - $ELEMENT.addClass( CLASSES.target ) - }, - blur: function() { - $ELEMENT.removeClass( CLASSES.target ) - } - }). - - // Open the picker and adjust the root “focused” state - on( 'focus.toOpen', handleFocusToOpenEvent ). - - // If there’s a click on an actionable element, carry out the actions. - on( 'click', '[data-pick], [data-nav], [data-clear], [data-close]', function() { - - var $target = $( this ), - targetData = $target.data(), - targetDisabled = $target.hasClass( CLASSES.navDisabled ) || $target.hasClass( CLASSES.disabled ), - - // * For IE, non-focusable elements can be active elements as well - // (http://stackoverflow.com/a/2684561). - activeElement = getActiveElement() - activeElement = activeElement && ( activeElement.type || activeElement.href ) - - // If it’s disabled or nothing inside is actively focused, re-focus the element. - if ( targetDisabled || activeElement && !$.contains( P.$root[0], activeElement ) ) { - P.$root.eq(0).focus() - } - - // If something is superficially changed, update the `highlight` based on the `nav`. - if ( !targetDisabled && targetData.nav ) { - P.set( 'highlight', P.component.item.highlight, { nav: targetData.nav } ) - } - - // If something is picked, set `select` then close with focus. - else if ( !targetDisabled && 'pick' in targetData ) { - P.set( 'select', targetData.pick ) - } - - // If a “clear” button is pressed, empty the values and close with focus. - else if ( targetData.clear ) { - P.clear().close( true ) - } - - else if ( targetData.close ) { - P.close( true ) - } - - }) //P.$root - - aria( P.$root[0], 'hidden', true ) - } - - - /** - * Prepare the hidden input element along with all bindings. - */ - function prepareElementHidden() { - - var name - - if ( SETTINGS.hiddenName === true ) { - name = ELEMENT.name - ELEMENT.name = '' - } - else { - name = [ - typeof SETTINGS.hiddenPrefix == 'string' ? SETTINGS.hiddenPrefix : '', - typeof SETTINGS.hiddenSuffix == 'string' ? SETTINGS.hiddenSuffix : '_submit' - ] - name = name[0] + ELEMENT.name + name[1] - } - - P._hidden = $( - '' - )[0] - - $ELEMENT. - - // If the value changes, update the hidden input with the correct format. - on('change.' + STATE.id, function() { - P._hidden.value = ELEMENT.value ? - P.get('select', SETTINGS.formatSubmit) : - '' - }) - - - // Insert the hidden input as specified in the settings. - if ( SETTINGS.container ) $( SETTINGS.container ).append( P._hidden ) - else $ELEMENT.after( P._hidden ) - } - - - // For iOS8. - function handleKeydownEvent( event ) { - - var keycode = event.keyCode, - - // Check if one of the delete keys was pressed. - isKeycodeDelete = /^(8|46)$/.test(keycode) - - // For some reason IE clears the input value on “escape”. - if ( keycode == 27 ) { - P.close() - return false - } - - // Check if `space` or `delete` was pressed or the picker is closed with a key movement. - if ( keycode == 32 || isKeycodeDelete || !STATE.open && P.component.key[keycode] ) { - - // Prevent it from moving the page and bubbling to doc. - event.preventDefault() - event.stopPropagation() - - // If `delete` was pressed, clear the values and close the picker. - // Otherwise open the picker. - if ( isKeycodeDelete ) { P.clear().close() } - else { P.open() } - } - } - - - // Separated for IE - function handleFocusToOpenEvent( event ) { - - // Stop the event from propagating to the doc. - event.stopPropagation() - - // If it’s a focus event, add the “focused” class to the root. - if ( event.type == 'focus' ) { - P.$root.addClass( CLASSES.focused ) - } - - // And then finally open the picker. - P.open() - } - - - // Return a new picker instance. - return new PickerInstance() -} //PickerConstructor - - - -/** - * The default classes and prefix to use for the HTML classes. - */ -PickerConstructor.klasses = function( prefix ) { - prefix = prefix || 'picker' - return { - - picker: prefix, - opened: prefix + '--opened', - focused: prefix + '--focused', - - input: prefix + '__input', - active: prefix + '__input--active', - target: prefix + '__input--target', - - holder: prefix + '__holder', - - frame: prefix + '__frame', - wrap: prefix + '__wrap', - - box: prefix + '__box' - } -} //PickerConstructor.klasses - - - -/** - * Check if the default theme is being used. - */ -function isUsingDefaultTheme( element ) { - - var theme, - prop = 'position' - - // For IE. - if ( element.currentStyle ) { - theme = element.currentStyle[prop] - } - - // For normal browsers. - else if ( window.getComputedStyle ) { - theme = getComputedStyle( element )[prop] - } - - return theme == 'fixed' -} - - - -/** - * Get the width of the browser’s scrollbar. - * Taken from: https://github.com/VodkaBears/Remodal/blob/master/src/jquery.remodal.js - */ -function getScrollbarWidth() { - - if ( $html.height() <= $window.height() ) { - return 0 - } - - var $outer = $( '
      ' ). - appendTo( 'body' ) - - // Get the width without scrollbars. - var widthWithoutScroll = $outer[0].offsetWidth - - // Force adding scrollbars. - $outer.css( 'overflow', 'scroll' ) - - // Add the inner div. - var $inner = $( '
      ' ).appendTo( $outer ) - - // Get the width with scrollbars. - var widthWithScroll = $inner[0].offsetWidth - - // Remove the divs. - $outer.remove() - - // Return the difference between the widths. - return widthWithoutScroll - widthWithScroll -} - - - -/** - * PickerConstructor helper methods. - */ -PickerConstructor._ = { - - /** - * Create a group of nodes. Expects: - * ` - { - min: {Integer}, - max: {Integer}, - i: {Integer}, - node: {String}, - item: {Function} - } - * ` - */ - group: function( groupObject ) { - - var - // Scope for the looped object - loopObjectScope, - - // Create the nodes list - nodesList = '', - - // The counter starts from the `min` - counter = PickerConstructor._.trigger( groupObject.min, groupObject ) - - - // Loop from the `min` to `max`, incrementing by `i` - for ( ; counter <= PickerConstructor._.trigger( groupObject.max, groupObject, [ counter ] ); counter += groupObject.i ) { - - // Trigger the `item` function within scope of the object - loopObjectScope = PickerConstructor._.trigger( groupObject.item, groupObject, [ counter ] ) - - // Splice the subgroup and create nodes out of the sub nodes - nodesList += PickerConstructor._.node( - groupObject.node, - loopObjectScope[ 0 ], // the node - loopObjectScope[ 1 ], // the classes - loopObjectScope[ 2 ] // the attributes - ) - } - - // Return the list of nodes - return nodesList - }, //group - - - /** - * Create a dom node string - */ - node: function( wrapper, item, klass, attribute ) { - - // If the item is false-y, just return an empty string - if ( !item ) return '' - - // If the item is an array, do a join - item = $.isArray( item ) ? item.join( '' ) : item - - // Check for the class - klass = klass ? ' class="' + klass + '"' : '' - - // Check for any attributes - attribute = attribute ? ' ' + attribute : '' - - // Return the wrapped item - return '<' + wrapper + klass + attribute + '>' + item + '' - }, //node - - - /** - * Lead numbers below 10 with a zero. - */ - lead: function( number ) { - return ( number < 10 ? '0': '' ) + number - }, - - - /** - * Trigger a function otherwise return the value. - */ - trigger: function( callback, scope, args ) { - return typeof callback == 'function' ? callback.apply( scope, args || [] ) : callback - }, - - - /** - * If the second character is a digit, length is 2 otherwise 1. - */ - digits: function( string ) { - return ( /\d/ ).test( string[ 1 ] ) ? 2 : 1 - }, - - - /** - * Tell if something is a date object. - */ - isDate: function( value ) { - return {}.toString.call( value ).indexOf( 'Date' ) > -1 && this.isInteger( value.getDate() ) - }, - - - /** - * Tell if something is an integer. - */ - isInteger: function( value ) { - return {}.toString.call( value ).indexOf( 'Number' ) > -1 && value % 1 === 0 - }, - - - /** - * Create ARIA attribute strings. - */ - ariaAttr: ariaAttr -} //PickerConstructor._ - - - -/** - * Extend the picker with a component and defaults. - */ -PickerConstructor.extend = function( name, Component ) { - - // Extend jQuery. - $.fn[ name ] = function( options, action ) { - - // Grab the component data. - var componentData = this.data( name ) - - // If the picker is requested, return the data object. - if ( options == 'picker' ) { - return componentData - } - - // If the component data exists and `options` is a string, carry out the action. - if ( componentData && typeof options == 'string' ) { - return PickerConstructor._.trigger( componentData[ options ], componentData, [ action ] ) - } - - // Otherwise go through each matched element and if the component - // doesn’t exist, create a new picker using `this` element - // and merging the defaults and options with a deep copy. - return this.each( function() { - var $this = $( this ) - if ( !$this.data( name ) ) { - new PickerConstructor( this, name, Component, options ) - } - }) - } - - // Set the defaults. - $.fn[ name ].defaults = Component.defaults -} //PickerConstructor.extend - - - -function aria(element, attribute, value) { - if ( $.isPlainObject(attribute) ) { - for ( var key in attribute ) { - ariaSet(element, key, attribute[key]) - } - } - else { - ariaSet(element, attribute, value) - } -} -function ariaSet(element, attribute, value) { - element.setAttribute( - (attribute == 'role' ? '' : 'aria-') + attribute, - value - ) -} -function ariaAttr(attribute, data) { - if ( !$.isPlainObject(attribute) ) { - attribute = { attribute: data } - } - data = '' - for ( var key in attribute ) { - var attr = (key == 'role' ? '' : 'aria-') + key, - attrVal = attribute[key] - data += attrVal == null ? '' : attr + '="' + attribute[key] + '"' - } - return data -} - -// IE8 bug throws an error for activeElements within iframes. -function getActiveElement() { - try { - return document.activeElement - } catch ( err ) { } -} - - - -// Expose the picker constructor. -return PickerConstructor - - -})); - - -;/*! - * Date picker for pickadate.js v3.5.0 - * http://amsul.github.io/pickadate.js/date.htm - */ - -(function ( factory ) { - - // AMD. - if ( typeof define == 'function' && define.amd ) - define( ['picker', 'jquery'], factory ) - - // Node.js/browserify. - else if ( typeof exports == 'object' ) - module.exports = factory( require('./picker.js'), require('jquery') ) - - // Browser globals. - else factory( Picker, jQuery ) - -}(function( Picker, $ ) { - - -/** - * Globals and constants - */ -var DAYS_IN_WEEK = 7, - WEEKS_IN_CALENDAR = 6, - _ = Picker._ - - - -/** - * The date picker constructor - */ -function DatePicker( picker, settings ) { - - var calendar = this, - element = picker.$node[ 0 ], - elementValue = element.value, - elementDataValue = picker.$node.data( 'value' ), - valueString = elementDataValue || elementValue, - formatString = elementDataValue ? settings.formatSubmit : settings.format, - isRTL = function() { - - return element.currentStyle ? - - // For IE. - element.currentStyle.direction == 'rtl' : - - // For normal browsers. - getComputedStyle( picker.$root[0] ).direction == 'rtl' - } - - calendar.settings = settings - calendar.$node = picker.$node - - // The queue of methods that will be used to build item objects. - calendar.queue = { - min: 'measure create', - max: 'measure create', - now: 'now create', - select: 'parse create validate', - highlight: 'parse navigate create validate', - view: 'parse create validate viewset', - disable: 'deactivate', - enable: 'activate' - } - - // The component's item object. - calendar.item = {} - - calendar.item.clear = null - calendar.item.disable = ( settings.disable || [] ).slice( 0 ) - calendar.item.enable = -(function( collectionDisabled ) { - return collectionDisabled[ 0 ] === true ? collectionDisabled.shift() : -1 - })( calendar.item.disable ) - - calendar. - set( 'min', settings.min ). - set( 'max', settings.max ). - set( 'now' ) - - // When there’s a value, set the `select`, which in turn - // also sets the `highlight` and `view`. - if ( valueString ) { - calendar.set( 'select', valueString, { format: formatString }) - } - - // If there’s no value, default to highlighting “today”. - else { - calendar. - set( 'select', null ). - set( 'highlight', calendar.item.now ) - } - - - // The keycode to movement mapping. - calendar.key = { - 40: 7, // Down - 38: -7, // Up - 39: function() { return isRTL() ? -1 : 1 }, // Right - 37: function() { return isRTL() ? 1 : -1 }, // Left - go: function( timeChange ) { - var highlightedObject = calendar.item.highlight, - targetDate = new Date( highlightedObject.year, highlightedObject.month, highlightedObject.date + timeChange ) - calendar.set( - 'highlight', - targetDate, - { interval: timeChange } - ) - this.render() - } - } - - - // Bind some picker events. - picker. - on( 'render', function() { - picker.$root.find( '.' + settings.klass.selectMonth ).on( 'change', function() { - var value = this.value - if ( value ) { - picker.set( 'highlight', [ picker.get( 'view' ).year, value, picker.get( 'highlight' ).date ] ) - picker.$root.find( '.' + settings.klass.selectMonth ).trigger( 'focus' ) - } - }) - picker.$root.find( '.' + settings.klass.selectYear ).on( 'change', function() { - var value = this.value - if ( value ) { - picker.set( 'highlight', [ value, picker.get( 'view' ).month, picker.get( 'highlight' ).date ] ) - picker.$root.find( '.' + settings.klass.selectYear ).trigger( 'focus' ) - } - }) - }, 1 ). - on( 'open', function() { - var includeToday = '' - if ( calendar.disabled( calendar.get('now') ) ) { - includeToday = ':not(.' + settings.klass.buttonToday + ')' - } - picker.$root.find( 'button' + includeToday + ', select' ).attr( 'disabled', false ) - }, 1 ). - on( 'close', function() { - picker.$root.find( 'button, select' ).attr( 'disabled', true ) - }, 1 ) - -} //DatePicker - - -/** - * Set a datepicker item object. - */ -DatePicker.prototype.set = function( type, value, options ) { - - var calendar = this, - calendarItem = calendar.item - - // If the value is `null` just set it immediately. - if ( value === null ) { - if ( type == 'clear' ) type = 'select' - calendarItem[ type ] = value - return calendar - } - - // Otherwise go through the queue of methods, and invoke the functions. - // Update this as the time unit, and set the final value as this item. - // * In the case of `enable`, keep the queue but set `disable` instead. - // And in the case of `flip`, keep the queue but set `enable` instead. - calendarItem[ ( type == 'enable' ? 'disable' : type == 'flip' ? 'enable' : type ) ] = calendar.queue[ type ].split( ' ' ).map( function( method ) { - value = calendar[ method ]( type, value, options ) - return value - }).pop() - - // Check if we need to cascade through more updates. - if ( type == 'select' ) { - calendar.set( 'highlight', calendarItem.select, options ) - } - else if ( type == 'highlight' ) { - calendar.set( 'view', calendarItem.highlight, options ) - } - else if ( type.match( /^(flip|min|max|disable|enable)$/ ) ) { - if ( calendarItem.select && calendar.disabled( calendarItem.select ) ) { - calendar.set( 'select', calendarItem.select, options ) - } - if ( calendarItem.highlight && calendar.disabled( calendarItem.highlight ) ) { - calendar.set( 'highlight', calendarItem.highlight, options ) - } - } - - return calendar -} //DatePicker.prototype.set - - -/** - * Get a datepicker item object. - */ -DatePicker.prototype.get = function( type ) { - return this.item[ type ] -} //DatePicker.prototype.get - - -/** - * Create a picker date object. - */ -DatePicker.prototype.create = function( type, value, options ) { - - var isInfiniteValue, - calendar = this - - // If there’s no value, use the type as the value. - value = value === undefined ? type : value - - - // If it’s infinity, update the value. - if ( value == -Infinity || value == Infinity ) { - isInfiniteValue = value - } - - // If it’s an object, use the native date object. - else if ( $.isPlainObject( value ) && _.isInteger( value.pick ) ) { - value = value.obj - } - - // If it’s an array, convert it into a date and make sure - // that it’s a valid date – otherwise default to today. - else if ( $.isArray( value ) ) { - value = new Date( value[ 0 ], value[ 1 ], value[ 2 ] ) - value = _.isDate( value ) ? value : calendar.create().obj - } - - // If it’s a number or date object, make a normalized date. - else if ( _.isInteger( value ) || _.isDate( value ) ) { - value = calendar.normalize( new Date( value ), options ) - } - - // If it’s a literal true or any other case, set it to now. - else /*if ( value === true )*/ { - value = calendar.now( type, value, options ) - } - - // Return the compiled object. - return { - year: isInfiniteValue || value.getFullYear(), - month: isInfiniteValue || value.getMonth(), - date: isInfiniteValue || value.getDate(), - day: isInfiniteValue || value.getDay(), - obj: isInfiniteValue || value, - pick: isInfiniteValue || value.getTime() - } -} //DatePicker.prototype.create - - -/** - * Create a range limit object using an array, date object, - * literal “true”, or integer relative to another time. - */ -DatePicker.prototype.createRange = function( from, to ) { - - var calendar = this, - createDate = function( date ) { - if ( date === true || $.isArray( date ) || _.isDate( date ) ) { - return calendar.create( date ) - } - return date - } - - // Create objects if possible. - if ( !_.isInteger( from ) ) { - from = createDate( from ) - } - if ( !_.isInteger( to ) ) { - to = createDate( to ) - } - - // Create relative dates. - if ( _.isInteger( from ) && $.isPlainObject( to ) ) { - from = [ to.year, to.month, to.date + from ]; - } - else if ( _.isInteger( to ) && $.isPlainObject( from ) ) { - to = [ from.year, from.month, from.date + to ]; - } - - return { - from: createDate( from ), - to: createDate( to ) - } -} //DatePicker.prototype.createRange - - -/** - * Check if a date unit falls within a date range object. - */ -DatePicker.prototype.withinRange = function( range, dateUnit ) { - range = this.createRange(range.from, range.to) - return dateUnit.pick >= range.from.pick && dateUnit.pick <= range.to.pick -} - - -/** - * Check if two date range objects overlap. - */ -DatePicker.prototype.overlapRanges = function( one, two ) { - - var calendar = this - - // Convert the ranges into comparable dates. - one = calendar.createRange( one.from, one.to ) - two = calendar.createRange( two.from, two.to ) - - return calendar.withinRange( one, two.from ) || calendar.withinRange( one, two.to ) || - calendar.withinRange( two, one.from ) || calendar.withinRange( two, one.to ) -} - - -/** - * Get the date today. - */ -DatePicker.prototype.now = function( type, value, options ) { - value = new Date() - if ( options && options.rel ) { - value.setDate( value.getDate() + options.rel ) - } - return this.normalize( value, options ) -} - - -/** - * Navigate to next/prev month. - */ -DatePicker.prototype.navigate = function( type, value, options ) { - - var targetDateObject, - targetYear, - targetMonth, - targetDate, - isTargetArray = $.isArray( value ), - isTargetObject = $.isPlainObject( value ), - viewsetObject = this.item.view/*, - safety = 100*/ - - - if ( isTargetArray || isTargetObject ) { - - if ( isTargetObject ) { - targetYear = value.year - targetMonth = value.month - targetDate = value.date - } - else { - targetYear = +value[0] - targetMonth = +value[1] - targetDate = +value[2] - } - - // If we’re navigating months but the view is in a different - // month, navigate to the view’s year and month. - if ( options && options.nav && viewsetObject && viewsetObject.month !== targetMonth ) { - targetYear = viewsetObject.year - targetMonth = viewsetObject.month - } - - // Figure out the expected target year and month. - targetDateObject = new Date( targetYear, targetMonth + ( options && options.nav ? options.nav : 0 ), 1 ) - targetYear = targetDateObject.getFullYear() - targetMonth = targetDateObject.getMonth() - - // If the month we’re going to doesn’t have enough days, - // keep decreasing the date until we reach the month’s last date. - while ( /*safety &&*/ new Date( targetYear, targetMonth, targetDate ).getMonth() !== targetMonth ) { - targetDate -= 1 - /*safety -= 1 - if ( !safety ) { - throw 'Fell into an infinite loop while navigating to ' + new Date( targetYear, targetMonth, targetDate ) + '.' - }*/ - } - - value = [ targetYear, targetMonth, targetDate ] - } - - return value -} //DatePicker.prototype.navigate - - -/** - * Normalize a date by setting the hours to midnight. - */ -DatePicker.prototype.normalize = function( value/*, options*/ ) { - value.setHours( 0, 0, 0, 0 ) - return value -} - - -/** - * Measure the range of dates. - */ -DatePicker.prototype.measure = function( type, value/*, options*/ ) { - - var calendar = this - - // If it’s anything false-y, remove the limits. - if ( !value ) { - value = type == 'min' ? -Infinity : Infinity - } - - // If it’s a string, parse it. - else if ( typeof value == 'string' ) { - value = calendar.parse( type, value ) - } - - // If it's an integer, get a date relative to today. - else if ( _.isInteger( value ) ) { - value = calendar.now( type, value, { rel: value } ) - } - - return value -} ///DatePicker.prototype.measure - - -/** - * Create a viewset object based on navigation. - */ -DatePicker.prototype.viewset = function( type, dateObject/*, options*/ ) { - return this.create([ dateObject.year, dateObject.month, 1 ]) -} - - -/** - * Validate a date as enabled and shift if needed. - */ -DatePicker.prototype.validate = function( type, dateObject, options ) { - - var calendar = this, - - // Keep a reference to the original date. - originalDateObject = dateObject, - - // Make sure we have an interval. - interval = options && options.interval ? options.interval : 1, - - // Check if the calendar enabled dates are inverted. - isFlippedBase = calendar.item.enable === -1, - - // Check if we have any enabled dates after/before now. - hasEnabledBeforeTarget, hasEnabledAfterTarget, - - // The min & max limits. - minLimitObject = calendar.item.min, - maxLimitObject = calendar.item.max, - - // Check if we’ve reached the limit during shifting. - reachedMin, reachedMax, - - // Check if the calendar is inverted and at least one weekday is enabled. - hasEnabledWeekdays = isFlippedBase && calendar.item.disable.filter( function( value ) { - - // If there’s a date, check where it is relative to the target. - if ( $.isArray( value ) ) { - var dateTime = calendar.create( value ).pick - if ( dateTime < dateObject.pick ) hasEnabledBeforeTarget = true - else if ( dateTime > dateObject.pick ) hasEnabledAfterTarget = true - } - - // Return only integers for enabled weekdays. - return _.isInteger( value ) - }).length/*, - - safety = 100*/ - - - - // Cases to validate for: - // [1] Not inverted and date disabled. - // [2] Inverted and some dates enabled. - // [3] Not inverted and out of range. - // - // Cases to **not** validate for: - // • Navigating months. - // • Not inverted and date enabled. - // • Inverted and all dates disabled. - // • ..and anything else. - if ( !options || !options.nav ) if ( - /* 1 */ ( !isFlippedBase && calendar.disabled( dateObject ) ) || - /* 2 */ ( isFlippedBase && calendar.disabled( dateObject ) && ( hasEnabledWeekdays || hasEnabledBeforeTarget || hasEnabledAfterTarget ) ) || - /* 3 */ ( !isFlippedBase && (dateObject.pick <= minLimitObject.pick || dateObject.pick >= maxLimitObject.pick) ) - ) { - - - // When inverted, flip the direction if there aren’t any enabled weekdays - // and there are no enabled dates in the direction of the interval. - if ( isFlippedBase && !hasEnabledWeekdays && ( ( !hasEnabledAfterTarget && interval > 0 ) || ( !hasEnabledBeforeTarget && interval < 0 ) ) ) { - interval *= -1 - } - - - // Keep looping until we reach an enabled date. - while ( /*safety &&*/ calendar.disabled( dateObject ) ) { - - /*safety -= 1 - if ( !safety ) { - throw 'Fell into an infinite loop while validating ' + dateObject.obj + '.' - }*/ - - - // If we’ve looped into the next/prev month with a large interval, return to the original date and flatten the interval. - if ( Math.abs( interval ) > 1 && ( dateObject.month < originalDateObject.month || dateObject.month > originalDateObject.month ) ) { - dateObject = originalDateObject - interval = interval > 0 ? 1 : -1 - } - - - // If we’ve reached the min/max limit, reverse the direction, flatten the interval and set it to the limit. - if ( dateObject.pick <= minLimitObject.pick ) { - reachedMin = true - interval = 1 - dateObject = calendar.create([ - minLimitObject.year, - minLimitObject.month, - minLimitObject.date + (dateObject.pick === minLimitObject.pick ? 0 : -1) - ]) - } - else if ( dateObject.pick >= maxLimitObject.pick ) { - reachedMax = true - interval = -1 - dateObject = calendar.create([ - maxLimitObject.year, - maxLimitObject.month, - maxLimitObject.date + (dateObject.pick === maxLimitObject.pick ? 0 : 1) - ]) - } - - - // If we’ve reached both limits, just break out of the loop. - if ( reachedMin && reachedMax ) { - break - } - - - // Finally, create the shifted date using the interval and keep looping. - dateObject = calendar.create([ dateObject.year, dateObject.month, dateObject.date + interval ]) - } - - } //endif - - - // Return the date object settled on. - return dateObject -} //DatePicker.prototype.validate - - -/** - * Check if a date is disabled. - */ -DatePicker.prototype.disabled = function( dateToVerify ) { - - var - calendar = this, - - // Filter through the disabled dates to check if this is one. - isDisabledMatch = calendar.item.disable.filter( function( dateToDisable ) { - - // If the date is a number, match the weekday with 0index and `firstDay` check. - if ( _.isInteger( dateToDisable ) ) { - return dateToVerify.day === ( calendar.settings.firstDay ? dateToDisable : dateToDisable - 1 ) % 7 - } - - // If it’s an array or a native JS date, create and match the exact date. - if ( $.isArray( dateToDisable ) || _.isDate( dateToDisable ) ) { - return dateToVerify.pick === calendar.create( dateToDisable ).pick - } - - // If it’s an object, match a date within the “from” and “to” range. - if ( $.isPlainObject( dateToDisable ) ) { - return calendar.withinRange( dateToDisable, dateToVerify ) - } - }) - - // If this date matches a disabled date, confirm it’s not inverted. - isDisabledMatch = isDisabledMatch.length && !isDisabledMatch.filter(function( dateToDisable ) { - return $.isArray( dateToDisable ) && dateToDisable[3] == 'inverted' || - $.isPlainObject( dateToDisable ) && dateToDisable.inverted - }).length - - // Check the calendar “enabled” flag and respectively flip the - // disabled state. Then also check if it’s beyond the min/max limits. - return calendar.item.enable === -1 ? !isDisabledMatch : isDisabledMatch || - dateToVerify.pick < calendar.item.min.pick || - dateToVerify.pick > calendar.item.max.pick - -} //DatePicker.prototype.disabled - - -/** - * Parse a string into a usable type. - */ -DatePicker.prototype.parse = function( type, value, options ) { - - var calendar = this, - parsingObject = {} - - // If it’s already parsed, we’re good. - if ( !value || typeof value != 'string' ) { - return value - } - - // We need a `.format` to parse the value with. - if ( !( options && options.format ) ) { - options = options || {} - options.format = calendar.settings.format - } - - // Convert the format into an array and then map through it. - calendar.formats.toArray( options.format ).map( function( label ) { - - var - // Grab the formatting label. - formattingLabel = calendar.formats[ label ], - - // The format length is from the formatting label function or the - // label length without the escaping exclamation (!) mark. - formatLength = formattingLabel ? _.trigger( formattingLabel, calendar, [ value, parsingObject ] ) : label.replace( /^!/, '' ).length - - // If there's a format label, split the value up to the format length. - // Then add it to the parsing object with appropriate label. - if ( formattingLabel ) { - parsingObject[ label ] = value.substr( 0, formatLength ) - } - - // Update the value as the substring from format length to end. - value = value.substr( formatLength ) - }) - - // Compensate for month 0index. - return [ - parsingObject.yyyy || parsingObject.yy, - +( parsingObject.mm || parsingObject.m ) - 1, - parsingObject.dd || parsingObject.d - ] -} //DatePicker.prototype.parse - - -/** - * Various formats to display the object in. - */ -DatePicker.prototype.formats = (function() { - - // Return the length of the first word in a collection. - function getWordLengthFromCollection( string, collection, dateObject ) { - - // Grab the first word from the string. - var word = string.match( /\w+/ )[ 0 ] - - // If there's no month index, add it to the date object - if ( !dateObject.mm && !dateObject.m ) { - dateObject.m = collection.indexOf( word ) + 1 - } - - // Return the length of the word. - return word.length - } - - // Get the length of the first word in a string. - function getFirstWordLength( string ) { - return string.match( /\w+/ )[ 0 ].length - } - - return { - - d: function( string, dateObject ) { - - // If there's string, then get the digits length. - // Otherwise return the selected date. - return string ? _.digits( string ) : dateObject.date - }, - dd: function( string, dateObject ) { - - // If there's a string, then the length is always 2. - // Otherwise return the selected date with a leading zero. - return string ? 2 : _.lead( dateObject.date ) - }, - ddd: function( string, dateObject ) { - - // If there's a string, then get the length of the first word. - // Otherwise return the short selected weekday. - return string ? getFirstWordLength( string ) : this.settings.weekdaysShort[ dateObject.day ] - }, - dddd: function( string, dateObject ) { - - // If there's a string, then get the length of the first word. - // Otherwise return the full selected weekday. - return string ? getFirstWordLength( string ) : this.settings.weekdaysFull[ dateObject.day ] - }, - m: function( string, dateObject ) { - - // If there's a string, then get the length of the digits - // Otherwise return the selected month with 0index compensation. - return string ? _.digits( string ) : dateObject.month + 1 - }, - mm: function( string, dateObject ) { - - // If there's a string, then the length is always 2. - // Otherwise return the selected month with 0index and leading zero. - return string ? 2 : _.lead( dateObject.month + 1 ) - }, - mmm: function( string, dateObject ) { - - var collection = this.settings.monthsShort - - // If there's a string, get length of the relevant month from the short - // months collection. Otherwise return the selected month from that collection. - return string ? getWordLengthFromCollection( string, collection, dateObject ) : collection[ dateObject.month ] - }, - mmmm: function( string, dateObject ) { - - var collection = this.settings.monthsFull - - // If there's a string, get length of the relevant month from the full - // months collection. Otherwise return the selected month from that collection. - return string ? getWordLengthFromCollection( string, collection, dateObject ) : collection[ dateObject.month ] - }, - yy: function( string, dateObject ) { - - // If there's a string, then the length is always 2. - // Otherwise return the selected year by slicing out the first 2 digits. - return string ? 2 : ( '' + dateObject.year ).slice( 2 ) - }, - yyyy: function( string, dateObject ) { - - // If there's a string, then the length is always 4. - // Otherwise return the selected year. - return string ? 4 : dateObject.year - }, - - // Create an array by splitting the formatting string passed. - toArray: function( formatString ) { return formatString.split( /(d{1,4}|m{1,4}|y{4}|yy|!.)/g ) }, - - // Format an object into a string using the formatting options. - toString: function ( formatString, itemObject ) { - var calendar = this - return calendar.formats.toArray( formatString ).map( function( label ) { - return _.trigger( calendar.formats[ label ], calendar, [ 0, itemObject ] ) || label.replace( /^!/, '' ) - }).join( '' ) - } - } -})() //DatePicker.prototype.formats - - - - -/** - * Check if two date units are the exact. - */ -DatePicker.prototype.isDateExact = function( one, two ) { - - var calendar = this - - // When we’re working with weekdays, do a direct comparison. - if ( - ( _.isInteger( one ) && _.isInteger( two ) ) || - ( typeof one == 'boolean' && typeof two == 'boolean' ) - ) { - return one === two - } - - // When we’re working with date representations, compare the “pick” value. - if ( - ( _.isDate( one ) || $.isArray( one ) ) && - ( _.isDate( two ) || $.isArray( two ) ) - ) { - return calendar.create( one ).pick === calendar.create( two ).pick - } - - // When we’re working with range objects, compare the “from” and “to”. - if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) { - return calendar.isDateExact( one.from, two.from ) && calendar.isDateExact( one.to, two.to ) - } - - return false -} - - -/** - * Check if two date units overlap. - */ -DatePicker.prototype.isDateOverlap = function( one, two ) { - - var calendar = this, - firstDay = calendar.settings.firstDay ? 1 : 0 - - // When we’re working with a weekday index, compare the days. - if ( _.isInteger( one ) && ( _.isDate( two ) || $.isArray( two ) ) ) { - one = one % 7 + firstDay - return one === calendar.create( two ).day + 1 - } - if ( _.isInteger( two ) && ( _.isDate( one ) || $.isArray( one ) ) ) { - two = two % 7 + firstDay - return two === calendar.create( one ).day + 1 - } - - // When we’re working with range objects, check if the ranges overlap. - if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) { - return calendar.overlapRanges( one, two ) - } - - return false -} - - -/** - * Flip the “enabled” state. - */ -DatePicker.prototype.flipEnable = function(val) { - var itemObject = this.item - itemObject.enable = val || (itemObject.enable == -1 ? 1 : -1) -} - - -/** - * Mark a collection of dates as “disabled”. - */ -DatePicker.prototype.deactivate = function( type, datesToDisable ) { - - var calendar = this, - disabledItems = calendar.item.disable.slice(0) - - - // If we’re flipping, that’s all we need to do. - if ( datesToDisable == 'flip' ) { - calendar.flipEnable() - } - - else if ( datesToDisable === false ) { - calendar.flipEnable(1) - disabledItems = [] - } - - else if ( datesToDisable === true ) { - calendar.flipEnable(-1) - disabledItems = [] - } - - // Otherwise go through the dates to disable. - else { - - datesToDisable.map(function( unitToDisable ) { - - var matchFound - - // When we have disabled items, check for matches. - // If something is matched, immediately break out. - for ( var index = 0; index < disabledItems.length; index += 1 ) { - if ( calendar.isDateExact( unitToDisable, disabledItems[index] ) ) { - matchFound = true - break - } - } - - // If nothing was found, add the validated unit to the collection. - if ( !matchFound ) { - if ( - _.isInteger( unitToDisable ) || - _.isDate( unitToDisable ) || - $.isArray( unitToDisable ) || - ( $.isPlainObject( unitToDisable ) && unitToDisable.from && unitToDisable.to ) - ) { - disabledItems.push( unitToDisable ) - } - } - }) - } - - // Return the updated collection. - return disabledItems -} //DatePicker.prototype.deactivate - - -/** - * Mark a collection of dates as “enabled”. - */ -DatePicker.prototype.activate = function( type, datesToEnable ) { - - var calendar = this, - disabledItems = calendar.item.disable, - disabledItemsCount = disabledItems.length - - // If we’re flipping, that’s all we need to do. - if ( datesToEnable == 'flip' ) { - calendar.flipEnable() - } - - else if ( datesToEnable === true ) { - calendar.flipEnable(1) - disabledItems = [] - } - - else if ( datesToEnable === false ) { - calendar.flipEnable(-1) - disabledItems = [] - } - - // Otherwise go through the disabled dates. - else { - - datesToEnable.map(function( unitToEnable ) { - - var matchFound, - disabledUnit, - index, - isExactRange - - // Go through the disabled items and try to find a match. - for ( index = 0; index < disabledItemsCount; index += 1 ) { - - disabledUnit = disabledItems[index] - - // When an exact match is found, remove it from the collection. - if ( calendar.isDateExact( disabledUnit, unitToEnable ) ) { - matchFound = disabledItems[index] = null - isExactRange = true - break - } - - // When an overlapped match is found, add the “inverted” state to it. - else if ( calendar.isDateOverlap( disabledUnit, unitToEnable ) ) { - if ( $.isPlainObject( unitToEnable ) ) { - unitToEnable.inverted = true - matchFound = unitToEnable - } - else if ( $.isArray( unitToEnable ) ) { - matchFound = unitToEnable - if ( !matchFound[3] ) matchFound.push( 'inverted' ) - } - else if ( _.isDate( unitToEnable ) ) { - matchFound = [ unitToEnable.getFullYear(), unitToEnable.getMonth(), unitToEnable.getDate(), 'inverted' ] - } - break - } - } - - // If a match was found, remove a previous duplicate entry. - if ( matchFound ) for ( index = 0; index < disabledItemsCount; index += 1 ) { - if ( calendar.isDateExact( disabledItems[index], unitToEnable ) ) { - disabledItems[index] = null - break - } - } - - // In the event that we’re dealing with an exact range of dates, - // make sure there are no “inverted” dates because of it. - if ( isExactRange ) for ( index = 0; index < disabledItemsCount; index += 1 ) { - if ( calendar.isDateOverlap( disabledItems[index], unitToEnable ) ) { - disabledItems[index] = null - break - } - } - - // If something is still matched, add it into the collection. - if ( matchFound ) { - disabledItems.push( matchFound ) - } - }) - } - - // Return the updated collection. - return disabledItems.filter(function( val ) { return val != null }) -} //DatePicker.prototype.activate - - -/** - * Create a string for the nodes in the picker. - */ -DatePicker.prototype.nodes = function( isOpen ) { - - var - calendar = this, - settings = calendar.settings, - calendarItem = calendar.item, - nowObject = calendarItem.now, - selectedObject = calendarItem.select, - highlightedObject = calendarItem.highlight, - viewsetObject = calendarItem.view, - disabledCollection = calendarItem.disable, - minLimitObject = calendarItem.min, - maxLimitObject = calendarItem.max, - - - // Create the calendar table head using a copy of weekday labels collection. - // * We do a copy so we don't mutate the original array. - tableHead = (function( collection, fullCollection ) { - - // If the first day should be Monday, move Sunday to the end. - if ( settings.firstDay ) { - collection.push( collection.shift() ) - fullCollection.push( fullCollection.shift() ) - } - - // Create and return the table head group. - return _.node( - 'thead', - _.node( - 'tr', - _.group({ - min: 0, - max: DAYS_IN_WEEK - 1, - i: 1, - node: 'th', - item: function( counter ) { - return [ - collection[ counter ], - settings.klass.weekdays, - 'scope=col title="' + fullCollection[ counter ] + '"' - ] - } - }) - ) - ) //endreturn - - // Materialize modified - })( ( settings.showWeekdaysFull ? settings.weekdaysFull : settings.weekdaysLetter ).slice( 0 ), settings.weekdaysFull.slice( 0 ) ), //tableHead - - - // Create the nav for next/prev month. - createMonthNav = function( next ) { - - // Otherwise, return the created month tag. - return _.node( - 'div', - ' ', - settings.klass[ 'nav' + ( next ? 'Next' : 'Prev' ) ] + ( - - // If the focused month is outside the range, disabled the button. - ( next && viewsetObject.year >= maxLimitObject.year && viewsetObject.month >= maxLimitObject.month ) || - ( !next && viewsetObject.year <= minLimitObject.year && viewsetObject.month <= minLimitObject.month ) ? - ' ' + settings.klass.navDisabled : '' - ), - 'data-nav=' + ( next || -1 ) + ' ' + - _.ariaAttr({ - role: 'button', - controls: calendar.$node[0].id + '_table' - }) + ' ' + - 'title="' + (next ? settings.labelMonthNext : settings.labelMonthPrev ) + '"' - ) //endreturn - }, //createMonthNav - - - // Create the month label. - //Materialize modified - createMonthLabel = function(override) { - - var monthsCollection = settings.showMonthsShort ? settings.monthsShort : settings.monthsFull - - // Materialize modified - if (override == "short_months") { - monthsCollection = settings.monthsShort; - } - - // If there are months to select, add a dropdown menu. - if ( settings.selectMonths && override == undefined) { - - return _.node( 'select', - _.group({ - min: 0, - max: 11, - i: 1, - node: 'option', - item: function( loopedMonth ) { - - return [ - - // The looped month and no classes. - monthsCollection[ loopedMonth ], 0, - - // Set the value and selected index. - 'value=' + loopedMonth + - ( viewsetObject.month == loopedMonth ? ' selected' : '' ) + - ( - ( - ( viewsetObject.year == minLimitObject.year && loopedMonth < minLimitObject.month ) || - ( viewsetObject.year == maxLimitObject.year && loopedMonth > maxLimitObject.month ) - ) ? - ' disabled' : '' - ) - ] - } - }), - settings.klass.selectMonth + ' browser-default', - ( isOpen ? '' : 'disabled' ) + ' ' + - _.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' + - 'title="' + settings.labelMonthSelect + '"' - ) - } - - // Materialize modified - if (override == "short_months") - if (selectedObject != null) - return _.node( 'div', monthsCollection[ selectedObject.month ] ); - else return _.node( 'div', monthsCollection[ viewsetObject.month ] ); - - // If there's a need for a month selector - return _.node( 'div', monthsCollection[ viewsetObject.month ], settings.klass.month ) - }, //createMonthLabel - - - // Create the year label. - // Materialize modified - createYearLabel = function(override) { - - var focusedYear = viewsetObject.year, - - // If years selector is set to a literal "true", set it to 5. Otherwise - // divide in half to get half before and half after focused year. - numberYears = settings.selectYears === true ? 5 : ~~( settings.selectYears / 2 ) - - // If there are years to select, add a dropdown menu. - if ( numberYears ) { - - var - minYear = minLimitObject.year, - maxYear = maxLimitObject.year, - lowestYear = focusedYear - numberYears, - highestYear = focusedYear + numberYears - - // If the min year is greater than the lowest year, increase the highest year - // by the difference and set the lowest year to the min year. - if ( minYear > lowestYear ) { - highestYear += minYear - lowestYear - lowestYear = minYear - } - - // If the max year is less than the highest year, decrease the lowest year - // by the lower of the two: available and needed years. Then set the - // highest year to the max year. - if ( maxYear < highestYear ) { - - var availableYears = lowestYear - minYear, - neededYears = highestYear - maxYear - - lowestYear -= availableYears > neededYears ? neededYears : availableYears - highestYear = maxYear - } - - if ( settings.selectYears && override == undefined ) { - return _.node( 'select', - _.group({ - min: lowestYear, - max: highestYear, - i: 1, - node: 'option', - item: function( loopedYear ) { - return [ - - // The looped year and no classes. - loopedYear, 0, - - // Set the value and selected index. - 'value=' + loopedYear + ( focusedYear == loopedYear ? ' selected' : '' ) - ] - } - }), - settings.klass.selectYear + ' browser-default', - ( isOpen ? '' : 'disabled' ) + ' ' + _.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' + - 'title="' + settings.labelYearSelect + '"' - ) - } - } - - // Materialize modified - if (override == "raw") - return _.node( 'div', focusedYear ) - - // Otherwise just return the year focused - return _.node( 'div', focusedYear, settings.klass.year ) - } //createYearLabel - - - // Materialize modified - createDayLabel = function() { - if (selectedObject != null) - return _.node( 'div', selectedObject.date) - else return _.node( 'div', nowObject.date) - } - createWeekdayLabel = function() { - var display_day; - - if (selectedObject != null) - display_day = selectedObject.day; - else - display_day = nowObject.day; - var weekday = settings.weekdaysFull[ display_day ] - return weekday - } - - - // Create and return the entire calendar. -return _.node( - // Date presentation View - 'div', - _.node( - 'div', - createWeekdayLabel(), - "picker__weekday-display" - )+ - _.node( - // Div for short Month - 'div', - createMonthLabel("short_months"), - settings.klass.month_display - )+ - _.node( - // Div for Day - 'div', - createDayLabel() , - settings.klass.day_display - )+ - _.node( - // Div for Year - 'div', - createYearLabel("raw") , - settings.klass.year_display - ), - settings.klass.date_display - )+ - // Calendar container - _.node('div', - _.node('div', - ( settings.selectYears ? createMonthLabel() + createYearLabel() : createMonthLabel() + createYearLabel() ) + - createMonthNav() + createMonthNav( 1 ), - settings.klass.header - ) + _.node( - 'table', - tableHead + - _.node( - 'tbody', - _.group({ - min: 0, - max: WEEKS_IN_CALENDAR - 1, - i: 1, - node: 'tr', - item: function( rowCounter ) { - - // If Monday is the first day and the month starts on Sunday, shift the date back a week. - var shiftDateBy = settings.firstDay && calendar.create([ viewsetObject.year, viewsetObject.month, 1 ]).day === 0 ? -7 : 0 - - return [ - _.group({ - min: DAYS_IN_WEEK * rowCounter - viewsetObject.day + shiftDateBy + 1, // Add 1 for weekday 0index - max: function() { - return this.min + DAYS_IN_WEEK - 1 - }, - i: 1, - node: 'td', - item: function( targetDate ) { - - // Convert the time date from a relative date to a target date. - targetDate = calendar.create([ viewsetObject.year, viewsetObject.month, targetDate + ( settings.firstDay ? 1 : 0 ) ]) - - var isSelected = selectedObject && selectedObject.pick == targetDate.pick, - isHighlighted = highlightedObject && highlightedObject.pick == targetDate.pick, - isDisabled = disabledCollection && calendar.disabled( targetDate ) || targetDate.pick < minLimitObject.pick || targetDate.pick > maxLimitObject.pick, - formattedDate = _.trigger( calendar.formats.toString, calendar, [ settings.format, targetDate ] ) - - return [ - _.node( - 'div', - targetDate.date, - (function( klasses ) { - - // Add the `infocus` or `outfocus` classes based on month in view. - klasses.push( viewsetObject.month == targetDate.month ? settings.klass.infocus : settings.klass.outfocus ) - - // Add the `today` class if needed. - if ( nowObject.pick == targetDate.pick ) { - klasses.push( settings.klass.now ) - } - - // Add the `selected` class if something's selected and the time matches. - if ( isSelected ) { - klasses.push( settings.klass.selected ) - } - - // Add the `highlighted` class if something's highlighted and the time matches. - if ( isHighlighted ) { - klasses.push( settings.klass.highlighted ) - } - - // Add the `disabled` class if something's disabled and the object matches. - if ( isDisabled ) { - klasses.push( settings.klass.disabled ) - } - - return klasses.join( ' ' ) - })([ settings.klass.day ]), - 'data-pick=' + targetDate.pick + ' ' + _.ariaAttr({ - role: 'gridcell', - label: formattedDate, - selected: isSelected && calendar.$node.val() === formattedDate ? true : null, - activedescendant: isHighlighted ? true : null, - disabled: isDisabled ? true : null - }) - ), - '', - _.ariaAttr({ role: 'presentation' }) - ] //endreturn - } - }) - ] //endreturn - } - }) - ), - settings.klass.table, - 'id="' + calendar.$node[0].id + '_table' + '" ' + _.ariaAttr({ - role: 'grid', - controls: calendar.$node[0].id, - readonly: true - }) - ) - , settings.klass.calendar_container) // end calendar - - + - - // * For Firefox forms to submit, make sure to set the buttons’ `type` attributes as “button”. - _.node( - 'div', - _.node( 'button', settings.today, "btn-flat picker__today", - 'type=button data-pick=' + nowObject.pick + - ( isOpen && !calendar.disabled(nowObject) ? '' : ' disabled' ) + ' ' + - _.ariaAttr({ controls: calendar.$node[0].id }) ) + - _.node( 'button', settings.clear, "btn-flat picker__clear", - 'type=button data-clear=1' + - ( isOpen ? '' : ' disabled' ) + ' ' + - _.ariaAttr({ controls: calendar.$node[0].id }) ) + - _.node('button', settings.close, "btn-flat picker__close", - 'type=button data-close=true ' + - ( isOpen ? '' : ' disabled' ) + ' ' + - _.ariaAttr({ controls: calendar.$node[0].id }) ), - settings.klass.footer - ) //endreturn -} //DatePicker.prototype.nodes - - - - -/** - * The date picker defaults. - */ -DatePicker.defaults = (function( prefix ) { - - return { - - // The title label to use for the month nav buttons - labelMonthNext: 'Next month', - labelMonthPrev: 'Previous month', - - // The title label to use for the dropdown selectors - labelMonthSelect: 'Select a month', - labelYearSelect: 'Select a year', - - // Months and weekdays - monthsFull: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], - monthsShort: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ], - weekdaysFull: [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ], - weekdaysShort: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ], - - // Materialize modified - weekdaysLetter: [ 'S', 'M', 'T', 'W', 'T', 'F', 'S' ], - - // Today and clear - today: 'Today', - clear: 'Clear', - close: 'Close', - - // The format to show on the `input` element - format: 'd mmmm, yyyy', - - // Classes - klass: { - - table: prefix + 'table', - - header: prefix + 'header', - - - // Materialize Added klasses - date_display: prefix + 'date-display', - day_display: prefix + 'day-display', - month_display: prefix + 'month-display', - year_display: prefix + 'year-display', - calendar_container: prefix + 'calendar-container', - // end - - - - navPrev: prefix + 'nav--prev', - navNext: prefix + 'nav--next', - navDisabled: prefix + 'nav--disabled', - - month: prefix + 'month', - year: prefix + 'year', - - selectMonth: prefix + 'select--month', - selectYear: prefix + 'select--year', - - weekdays: prefix + 'weekday', - - day: prefix + 'day', - disabled: prefix + 'day--disabled', - selected: prefix + 'day--selected', - highlighted: prefix + 'day--highlighted', - now: prefix + 'day--today', - infocus: prefix + 'day--infocus', - outfocus: prefix + 'day--outfocus', - - footer: prefix + 'footer', - - buttonClear: prefix + 'button--clear', - buttonToday: prefix + 'button--today', - buttonClose: prefix + 'button--close' - } - } -})( Picker.klasses().picker + '__' ) - - - - - -/** - * Extend the picker to add the date picker. - */ -Picker.extend( 'pickadate', DatePicker ) - - -})); - - -;(function ($) { - - $.fn.characterCounter = function(){ - return this.each(function(){ - var $input = $(this); - var $counterElement = $input.parent().find('span[class="character-counter"]'); - - // character counter has already been added appended to the parent container - if ($counterElement.length) { - return; - } - - var itHasLengthAttribute = $input.attr('data-length') !== undefined; - - if(itHasLengthAttribute){ - $input.on('input', updateCounter); - $input.on('focus', updateCounter); - $input.on('blur', removeCounterElement); - - addCounterElement($input); - } - - }); - }; - - function updateCounter(){ - var maxLength = +$(this).attr('data-length'), - actualLength = +$(this).val().length, - isValidLength = actualLength <= maxLength; - - $(this).parent().find('span[class="character-counter"]') - .html( actualLength + '/' + maxLength); - - addInputStyle(isValidLength, $(this)); - } - - function addCounterElement($input) { - var $counterElement = $input.parent().find('span[class="character-counter"]'); - - if ($counterElement.length) { - return; - } - - $counterElement = $('') - .addClass('character-counter') - .css('float','right') - .css('font-size','12px') - .css('height', 1); - - $input.parent().append($counterElement); - } - - function removeCounterElement(){ - $(this).parent().find('span[class="character-counter"]').html(''); - } - - function addInputStyle(isValidLength, $input){ - var inputHasInvalidClass = $input.hasClass('invalid'); - if (isValidLength && inputHasInvalidClass) { - $input.removeClass('invalid'); - } - else if(!isValidLength && !inputHasInvalidClass){ - $input.removeClass('valid'); - $input.addClass('invalid'); - } - } - - $(document).ready(function(){ - $('input, textarea').characterCounter(); - }); - -}( jQuery )); -;(function ($) { - - var methods = { - - init : function(options) { - var defaults = { - duration: 200, // ms - dist: -100, // zoom scale TODO: make this more intuitive as an option - shift: 0, // spacing for center image - padding: 0, // Padding between non center items - fullWidth: false, // Change to full width styles - indicators: false, // Toggle indicators - noWrap: false, // Don't wrap around and cycle through items. - onCycleTo: null // Callback for when a new slide is cycled to. - }; - options = $.extend(defaults, options); - - return this.each(function() { - - var images, item_width, item_height, offset, center, pressed, dim, count, - reference, referenceY, amplitude, target, velocity, - xform, frame, timestamp, ticker, dragged, vertical_dragged; - var $indicators = $('
        '); - - - // Initialize - var view = $(this); - var showIndicators = view.attr('data-indicators') || options.indicators; - - // Don't double initialize. - if (view.hasClass('initialized')) { - // Redraw carousel. - $(this).trigger('carouselNext', [0.000001]); - return true; - } - - - // Options - if (options.fullWidth) { - options.dist = 0; - var firstImage = view.find('.carousel-item img').first(); - if (firstImage.length) { - imageHeight = firstImage.on('load', function(){ - view.css('height', $(this).height()); - }); - } else { - imageHeight = view.find('.carousel-item').first().height(); - view.css('height', imageHeight); - } - - // Offset fixed items when indicators. - if (showIndicators) { - view.find('.carousel-fixed-item').addClass('with-indicators'); - } - } - - - view.addClass('initialized'); - pressed = false; - offset = target = 0; - images = []; - item_width = view.find('.carousel-item').first().innerWidth(); - item_height = view.find('.carousel-item').first().innerHeight(); - dim = item_width * 2 + options.padding; - - view.find('.carousel-item').each(function (i) { - images.push($(this)[0]); - if (showIndicators) { - var $indicator = $('
      • '); - - // Add active to first by default. - if (i === 0) { - $indicator.addClass('active'); - } - - // Handle clicks on indicators. - $indicator.click(function (e) { - e.stopPropagation(); - - var index = $(this).index(); - cycleTo(index); - }); - $indicators.append($indicator); - } - }); - - if (showIndicators) { - view.append($indicators); - } - count = images.length; - - - function setupEvents() { - if (typeof window.ontouchstart !== 'undefined') { - view[0].addEventListener('touchstart', tap); - view[0].addEventListener('touchmove', drag); - view[0].addEventListener('touchend', release); - } - view[0].addEventListener('mousedown', tap); - view[0].addEventListener('mousemove', drag); - view[0].addEventListener('mouseup', release); - view[0].addEventListener('mouseleave', release); - view[0].addEventListener('click', click); - } - - function xpos(e) { - // touch event - if (e.targetTouches && (e.targetTouches.length >= 1)) { - return e.targetTouches[0].clientX; - } - - // mouse event - return e.clientX; - } - - function ypos(e) { - // touch event - if (e.targetTouches && (e.targetTouches.length >= 1)) { - return e.targetTouches[0].clientY; - } - - // mouse event - return e.clientY; - } - - function wrap(x) { - return (x >= count) ? (x % count) : (x < 0) ? wrap(count + (x % count)) : x; - } - - function scroll(x) { - var i, half, delta, dir, tween, el, alignment, xTranslation; - var lastCenter = center; - - offset = (typeof x === 'number') ? x : offset; - center = Math.floor((offset + dim / 2) / dim); - delta = offset - center * dim; - dir = (delta < 0) ? 1 : -1; - tween = -dir * delta * 2 / dim; - half = count >> 1; - - if (!options.fullWidth) { - alignment = 'translateX(' + (view[0].clientWidth - item_width) / 2 + 'px) '; - alignment += 'translateY(' + (view[0].clientHeight - item_height) / 2 + 'px)'; - } else { - alignment = 'translateX(0)'; - } - - // Set indicator active - if (showIndicators) { - var diff = (center % count); - var activeIndicator = $indicators.find('.indicator-item.active'); - if (activeIndicator.index() !== diff) { - activeIndicator.removeClass('active'); - $indicators.find('.indicator-item').eq(diff).addClass('active'); - } - } - - // center - // Don't show wrapped items. - if (!options.noWrap || (center >= 0 && center < count)) { - el = images[wrap(center)]; - - // Add active class to center item. - if (!$(el).hasClass('active')) { - view.find('.carousel-item').removeClass('active'); - $(el).addClass('active'); - } - el.style[xform] = alignment + - ' translateX(' + (-delta / 2) + 'px)' + - ' translateX(' + (dir * options.shift * tween * i) + 'px)' + - ' translateZ(' + (options.dist * tween) + 'px)'; - el.style.zIndex = 0; - if (options.fullWidth) { tweenedOpacity = 1; } - else { tweenedOpacity = 1 - 0.2 * tween; } - el.style.opacity = tweenedOpacity; - el.style.display = 'block'; - } - - for (i = 1; i <= half; ++i) { - // right side - if (options.fullWidth) { - zTranslation = options.dist; - tweenedOpacity = (i === half && delta < 0) ? 1 - tween : 1; - } else { - zTranslation = options.dist * (i * 2 + tween * dir); - tweenedOpacity = 1 - 0.2 * (i * 2 + tween * dir); - } - // Don't show wrapped items. - if (!options.noWrap || center + i < count) { - el = images[wrap(center + i)]; - el.style[xform] = alignment + - ' translateX(' + (options.shift + (dim * i - delta) / 2) + 'px)' + - ' translateZ(' + zTranslation + 'px)'; - el.style.zIndex = -i; - el.style.opacity = tweenedOpacity; - el.style.display = 'block'; - } - - - // left side - if (options.fullWidth) { - zTranslation = options.dist; - tweenedOpacity = (i === half && delta > 0) ? 1 - tween : 1; - } else { - zTranslation = options.dist * (i * 2 - tween * dir); - tweenedOpacity = 1 - 0.2 * (i * 2 - tween * dir); - } - // Don't show wrapped items. - if (!options.noWrap || center - i >= 0) { - el = images[wrap(center - i)]; - el.style[xform] = alignment + - ' translateX(' + (-options.shift + (-dim * i - delta) / 2) + 'px)' + - ' translateZ(' + zTranslation + 'px)'; - el.style.zIndex = -i; - el.style.opacity = tweenedOpacity; - el.style.display = 'block'; - } - } - - // center - // Don't show wrapped items. - if (!options.noWrap || (center >= 0 && center < count)) { - el = images[wrap(center)]; - el.style[xform] = alignment + - ' translateX(' + (-delta / 2) + 'px)' + - ' translateX(' + (dir * options.shift * tween) + 'px)' + - ' translateZ(' + (options.dist * tween) + 'px)'; - el.style.zIndex = 0; - if (options.fullWidth) { tweenedOpacity = 1; } - else { tweenedOpacity = 1 - 0.2 * tween; } - el.style.opacity = tweenedOpacity; - el.style.display = 'block'; - } - - // onCycleTo callback - if (lastCenter !== center && - typeof(options.onCycleTo) === "function") { - var $curr_item = view.find('.carousel-item').eq(wrap(center)); - options.onCycleTo.call(this, $curr_item, dragged); - } - } - - function track() { - var now, elapsed, delta, v; - - now = Date.now(); - elapsed = now - timestamp; - timestamp = now; - delta = offset - frame; - frame = offset; - - v = 1000 * delta / (1 + elapsed); - velocity = 0.8 * v + 0.2 * velocity; - } - - function autoScroll() { - var elapsed, delta; - - if (amplitude) { - elapsed = Date.now() - timestamp; - delta = amplitude * Math.exp(-elapsed / options.duration); - if (delta > 2 || delta < -2) { - scroll(target - delta); - requestAnimationFrame(autoScroll); - } else { - scroll(target); - } - } - } - - function click(e) { - // Disable clicks if carousel was dragged. - if (dragged) { - e.preventDefault(); - e.stopPropagation(); - return false; - - } else if (!options.fullWidth) { - var clickedIndex = $(e.target).closest('.carousel-item').index(); - var diff = (center % count) - clickedIndex; - - // Disable clicks if carousel was shifted by click - if (diff !== 0) { - e.preventDefault(); - e.stopPropagation(); - } - cycleTo(clickedIndex); - } - } - - function cycleTo(n) { - var diff = (center % count) - n; - - // Account for wraparound. - if (!options.noWrap) { - if (diff < 0) { - if (Math.abs(diff + count) < Math.abs(diff)) { diff += count; } - - } else if (diff > 0) { - if (Math.abs(diff - count) < diff) { diff -= count; } - } - } - - // Call prev or next accordingly. - if (diff < 0) { - view.trigger('carouselNext', [Math.abs(diff)]); - - } else if (diff > 0) { - view.trigger('carouselPrev', [diff]); - } - } - - function tap(e) { - pressed = true; - dragged = false; - vertical_dragged = false; - reference = xpos(e); - referenceY = ypos(e); - - velocity = amplitude = 0; - frame = offset; - timestamp = Date.now(); - clearInterval(ticker); - ticker = setInterval(track, 100); - - } - - function drag(e) { - var x, delta, deltaY; - if (pressed) { - x = xpos(e); - y = ypos(e); - delta = reference - x; - deltaY = Math.abs(referenceY - y); - if (deltaY < 30 && !vertical_dragged) { - // If vertical scrolling don't allow dragging. - if (delta > 2 || delta < -2) { - dragged = true; - reference = x; - scroll(offset + delta); - } - - } else if (dragged) { - // If dragging don't allow vertical scroll. - e.preventDefault(); - e.stopPropagation(); - return false; - - } else { - // Vertical scrolling. - vertical_dragged = true; - } - } - - if (dragged) { - // If dragging don't allow vertical scroll. - e.preventDefault(); - e.stopPropagation(); - return false; - } - } - - function release(e) { - if (pressed) { - pressed = false; - } else { - return; - } - - clearInterval(ticker); - target = offset; - if (velocity > 10 || velocity < -10) { - amplitude = 0.9 * velocity; - target = offset + amplitude; - } - target = Math.round(target / dim) * dim; - - // No wrap of items. - if (options.noWrap) { - if (target >= dim * (count - 1)) { - target = dim * (count - 1); - } else if (target < 0) { - target = 0; - } - } - amplitude = target - offset; - timestamp = Date.now(); - requestAnimationFrame(autoScroll); - - if (dragged) { - e.preventDefault(); - e.stopPropagation(); - } - return false; - } - - xform = 'transform'; - ['webkit', 'Moz', 'O', 'ms'].every(function (prefix) { - var e = prefix + 'Transform'; - if (typeof document.body.style[e] !== 'undefined') { - xform = e; - return false; - } - return true; - }); - - - $(window).on('resize.carousel', function() { - if (options.fullWidth) { - item_width = view.find('.carousel-item').first().innerWidth(); - item_height = view.find('.carousel-item').first().innerHeight(); - dim = item_width * 2 + options.padding; - offset = center * 2 * item_width; - target = offset; - } else { - scroll(); - } - }); - - setupEvents(); - scroll(offset); - - $(this).on('carouselNext', function(e, n) { - if (n === undefined) { - n = 1; - } - target = (dim * Math.round(offset / dim)) + (dim * n); - if (offset !== target) { - amplitude = target - offset; - timestamp = Date.now(); - requestAnimationFrame(autoScroll); - } - }); - - $(this).on('carouselPrev', function(e, n) { - if (n === undefined) { - n = 1; - } - target = (dim * Math.round(offset / dim)) - (dim * n); - if (offset !== target) { - amplitude = target - offset; - timestamp = Date.now(); - requestAnimationFrame(autoScroll); - } - }); - - $(this).on('carouselSet', function(e, n) { - if (n === undefined) { - n = 0; - } - cycleTo(n); - }); - - }); - - - - }, - next : function(n) { - $(this).trigger('carouselNext', [n]); - }, - prev : function(n) { - $(this).trigger('carouselPrev', [n]); - }, - set : function(n) { - $(this).trigger('carouselSet', [n]); - } - }; - - - $.fn.carousel = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.carousel' ); - } - }; // Plugin end -}( jQuery )); \ No newline at end of file diff --git a/node_modules/materialize-css/dist/js/materialize.min.js b/node_modules/materialize-css/dist/js/materialize.min.js deleted file mode 100644 index 00c0d5f..0000000 --- a/node_modules/materialize-css/dist/js/materialize.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * Materialize v0.98.0 (http://materializecss.com) - * Copyright 2014-2015 Materialize - * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) - */ -if("undefined"==typeof jQuery){var jQuery;jQuery="function"==typeof require?$=require("jquery"):$}jQuery.easing.jswing=jQuery.easing.swing,jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(a,b,c,d,e){return jQuery.easing[jQuery.easing.def](a,b,c,d,e)},easeInQuad:function(a,b,c,d,e){return d*(b/=e)*b+c},easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c},easeInOutQuad:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b+c:-d/2*(--b*(b-2)-1)+c},easeInCubic:function(a,b,c,d,e){return d*(b/=e)*b*b+c},easeOutCubic:function(a,b,c,d,e){return d*((b=b/e-1)*b*b+1)+c},easeInOutCubic:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b+c:d/2*((b-=2)*b*b+2)+c},easeInQuart:function(a,b,c,d,e){return d*(b/=e)*b*b*b+c},easeOutQuart:function(a,b,c,d,e){return-d*((b=b/e-1)*b*b*b-1)+c},easeInOutQuart:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b+c:-d/2*((b-=2)*b*b*b-2)+c},easeInQuint:function(a,b,c,d,e){return d*(b/=e)*b*b*b*b+c},easeOutQuint:function(a,b,c,d,e){return d*((b=b/e-1)*b*b*b*b+1)+c},easeInOutQuint:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b*b+c:d/2*((b-=2)*b*b*b*b+2)+c},easeInSine:function(a,b,c,d,e){return-d*Math.cos(b/e*(Math.PI/2))+d+c},easeOutSine:function(a,b,c,d,e){return d*Math.sin(b/e*(Math.PI/2))+c},easeInOutSine:function(a,b,c,d,e){return-d/2*(Math.cos(Math.PI*b/e)-1)+c},easeInExpo:function(a,b,c,d,e){return 0==b?c:d*Math.pow(2,10*(b/e-1))+c},easeOutExpo:function(a,b,c,d,e){return b==e?c+d:d*(-Math.pow(2,-10*b/e)+1)+c},easeInOutExpo:function(a,b,c,d,e){return 0==b?c:b==e?c+d:(b/=e/2)<1?d/2*Math.pow(2,10*(b-1))+c:d/2*(-Math.pow(2,-10*--b)+2)+c},easeInCirc:function(a,b,c,d,e){return-d*(Math.sqrt(1-(b/=e)*b)-1)+c},easeOutCirc:function(a,b,c,d,e){return d*Math.sqrt(1-(b=b/e-1)*b)+c},easeInOutCirc:function(a,b,c,d,e){return(b/=e/2)<1?-d/2*(Math.sqrt(1-b*b)-1)+c:d/2*(Math.sqrt(1-(b-=2)*b)+1)+c},easeInElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(0==b)return c;if(1==(b/=e))return c+d;if(g||(g=.3*e),h0&&b-1 in a))}if(!a.jQuery){var c=function(a,b){return new c.fn.init(a,b)};c.isWindow=function(a){return null!=a&&a==a.window},c.type=function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?e[g.call(a)]||"object":typeof a},c.isArray=Array.isArray||function(a){return"array"===c.type(a)},c.isPlainObject=function(a){var b;if(!a||"object"!==c.type(a)||a.nodeType||c.isWindow(a))return!1;try{if(a.constructor&&!f.call(a,"constructor")&&!f.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(d){return!1}for(b in a);return void 0===b||f.call(a,b)},c.each=function(a,c,d){var e,f=0,g=a.length,h=b(a);if(d){if(h)for(;g>f&&(e=c.apply(a[f],d),e!==!1);f++);else for(f in a)if(e=c.apply(a[f],d),e===!1)break}else if(h)for(;g>f&&(e=c.call(a[f],f,a[f]),e!==!1);f++);else for(f in a)if(e=c.call(a[f],f,a[f]),e===!1)break;return a},c.data=function(a,b,e){if(void 0===e){var f=a[c.expando],g=f&&d[f];if(void 0===b)return g;if(g&&b in g)return g[b]}else if(void 0!==b){var f=a[c.expando]||(a[c.expando]=++c.uuid);return d[f]=d[f]||{},d[f][b]=e,e}},c.removeData=function(a,b){var e=a[c.expando],f=e&&d[e];f&&c.each(b,function(a,b){delete f[b]})},c.extend=function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[i]||{},i++),"object"!=typeof h&&"function"!==c.type(h)&&(h={}),i===j&&(h=this,i--);j>i;i++)if(null!=(f=arguments[i]))for(e in f)a=h[e],d=f[e],h!==d&&(k&&d&&(c.isPlainObject(d)||(b=c.isArray(d)))?(b?(b=!1,g=a&&c.isArray(a)?a:[]):g=a&&c.isPlainObject(a)?a:{},h[e]=c.extend(k,g,d)):void 0!==d&&(h[e]=d));return h},c.queue=function(a,d,e){function f(a,c){var d=c||[];return null!=a&&(b(Object(a))?!function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;)a[e++]=b[d++];if(c!==c)for(;void 0!==b[d];)a[e++]=b[d++];return a.length=e,a}(d,"string"==typeof a?[a]:a):[].push.call(d,a)),d}if(a){d=(d||"fx")+"queue";var g=c.data(a,d);return e?(!g||c.isArray(e)?g=c.data(a,d,f(e)):g.push(e),g):g||[]}},c.dequeue=function(a,b){c.each(a.nodeType?[a]:a,function(a,d){b=b||"fx";var e=c.queue(d,b),f=e.shift();"inprogress"===f&&(f=e.shift()),f&&("fx"===b&&e.unshift("inprogress"),f.call(d,function(){c.dequeue(d,b)}))})},c.fn=c.prototype={init:function(a){if(a.nodeType)return this[0]=a,this;throw new Error("Not a DOM node.")},offset:function(){var b=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:b.top+(a.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:b.left+(a.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function a(){for(var a=this.offsetParent||document;a&&"html"===!a.nodeType.toLowerCase&&"static"===a.style.position;)a=a.offsetParent;return a||document}var b=this[0],a=a.apply(b),d=this.offset(),e=/^(?:body|html)$/i.test(a.nodeName)?{top:0,left:0}:c(a).offset();return d.top-=parseFloat(b.style.marginTop)||0,d.left-=parseFloat(b.style.marginLeft)||0,a.style&&(e.top+=parseFloat(a.style.borderTopWidth)||0,e.left+=parseFloat(a.style.borderLeftWidth)||0),{top:d.top-e.top,left:d.left-e.left}}};var d={};c.expando="velocity"+(new Date).getTime(),c.uuid=0;for(var e={},f=e.hasOwnProperty,g=e.toString,h="Boolean Number String Function Array Date RegExp Object Error".split(" "),i=0;ie;++e){var f=j(c,a,d);if(0===f)return c;var g=i(c,a,d)-b;c-=g/f}return c}function l(){for(var b=0;t>b;++b)x[b]=i(b*u,a,d)}function m(b,c,e){var f,g,h=0;do g=c+(e-c)/2,f=i(g,a,d)-b,f>0?e=g:c=g;while(Math.abs(f)>r&&++h=q?k(b,h):0==i?h:m(b,c,c+u)}function o(){y=!0,(a!=c||d!=e)&&l()}var p=4,q=.001,r=1e-7,s=10,t=11,u=1/(t-1),v="Float32Array"in b;if(4!==arguments.length)return!1;for(var w=0;4>w;++w)if("number"!=typeof arguments[w]||isNaN(arguments[w])||!isFinite(arguments[w]))return!1;a=Math.min(a,1),d=Math.min(d,1),a=Math.max(a,0),d=Math.max(d,0);var x=v?new Float32Array(t):new Array(t),y=!1,z=function(b){return y||o(),a===c&&d===e?b:0===b?0:1===b?1:i(n(b),c,e)};z.getControlPoints=function(){return[{x:a,y:c},{x:d,y:e}]};var A="generateBezier("+[a,c,d,e]+")";return z.toString=function(){return A},z}function j(a,b){var c=a;return p.isString(a)?t.Easings[a]||(c=!1):c=p.isArray(a)&&1===a.length?h.apply(null,a):p.isArray(a)&&2===a.length?u.apply(null,a.concat([b])):!(!p.isArray(a)||4!==a.length)&&i.apply(null,a),c===!1&&(c=t.Easings[t.defaults.easing]?t.defaults.easing:s),c}function k(a){if(a){var b=(new Date).getTime(),c=t.State.calls.length;c>1e4&&(t.State.calls=e(t.State.calls));for(var f=0;c>f;f++)if(t.State.calls[f]){var h=t.State.calls[f],i=h[0],j=h[2],n=h[3],o=!!n,q=null;n||(n=t.State.calls[f][3]=b-16);for(var r=Math.min((b-n)/j.duration,1),s=0,u=i.length;u>s;s++){var w=i[s],y=w.element;if(g(y)){var z=!1;if(j.display!==d&&null!==j.display&&"none"!==j.display){if("flex"===j.display){var A=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];m.each(A,function(a,b){v.setPropertyValue(y,"display",b)})}v.setPropertyValue(y,"display",j.display)}j.visibility!==d&&"hidden"!==j.visibility&&v.setPropertyValue(y,"visibility",j.visibility);for(var B in w)if("element"!==B){var C,D=w[B],E=p.isString(D.easing)?t.Easings[D.easing]:D.easing;if(1===r)C=D.endValue;else{var F=D.endValue-D.startValue;if(C=D.startValue+F*E(r,j,F),!o&&C===D.currentValue)continue}if(D.currentValue=C,"tween"===B)q=C;else{if(v.Hooks.registered[B]){var G=v.Hooks.getRoot(B),H=g(y).rootPropertyValueCache[G];H&&(D.rootPropertyValue=H)}var I=v.setPropertyValue(y,B,D.currentValue+(0===parseFloat(C)?"":D.unitType),D.rootPropertyValue,D.scrollData);v.Hooks.registered[B]&&(g(y).rootPropertyValueCache[G]=v.Normalizations.registered[G]?v.Normalizations.registered[G]("extract",null,I[1]):I[1]),"transform"===I[0]&&(z=!0)}}j.mobileHA&&g(y).transformCache.translate3d===d&&(g(y).transformCache.translate3d="(0px, 0px, 0px)",z=!0),z&&v.flushTransformCache(y)}}j.display!==d&&"none"!==j.display&&(t.State.calls[f][2].display=!1),j.visibility!==d&&"hidden"!==j.visibility&&(t.State.calls[f][2].visibility=!1),j.progress&&j.progress.call(h[1],h[1],r,Math.max(0,n+j.duration-b),n,q),1===r&&l(f)}}t.State.isTicking&&x(k)}function l(a,b){if(!t.State.calls[a])return!1;for(var c=t.State.calls[a][0],e=t.State.calls[a][1],f=t.State.calls[a][2],h=t.State.calls[a][4],i=!1,j=0,k=c.length;k>j;j++){var l=c[j].element;if(b||f.loop||("none"===f.display&&v.setPropertyValue(l,"display",f.display),"hidden"===f.visibility&&v.setPropertyValue(l,"visibility",f.visibility)),f.loop!==!0&&(m.queue(l)[1]===d||!/\.velocityQueueEntryFlag/i.test(m.queue(l)[1]))&&g(l)){g(l).isAnimating=!1,g(l).rootPropertyValueCache={};var n=!1;m.each(v.Lists.transforms3D,function(a,b){var c=/^scale/.test(b)?1:0,e=g(l).transformCache[b];g(l).transformCache[b]!==d&&new RegExp("^\\("+c+"[^.]").test(e)&&(n=!0,delete g(l).transformCache[b])}),f.mobileHA&&(n=!0,delete g(l).transformCache.translate3d),n&&v.flushTransformCache(l),v.Values.removeClass(l,"velocity-animating")}if(!b&&f.complete&&!f.loop&&j===k-1)try{f.complete.call(e,e)}catch(o){setTimeout(function(){throw o},1)}h&&f.loop!==!0&&h(e),g(l)&&f.loop===!0&&!b&&(m.each(g(l).tweensContainer,function(a,b){/^rotate/.test(a)&&360===parseFloat(b.endValue)&&(b.endValue=0,b.startValue=360),/^backgroundPosition/.test(a)&&100===parseFloat(b.endValue)&&"%"===b.unitType&&(b.endValue=0,b.startValue=100)}),t(l,"reverse",{loop:!0,delay:f.delay})),f.queue!==!1&&m.dequeue(l,f.queue)}t.State.calls[a]=!1;for(var p=0,q=t.State.calls.length;q>p;p++)if(t.State.calls[p]!==!1){i=!0;break}i===!1&&(t.State.isTicking=!1,delete t.State.calls,t.State.calls=[])}var m,n=function(){if(c.documentMode)return c.documentMode;for(var a=7;a>4;a--){var b=c.createElement("div");if(b.innerHTML="",b.getElementsByTagName("span").length)return b=null,a}return d}(),o=function(){var a=0;return b.webkitRequestAnimationFrame||b.mozRequestAnimationFrame||function(b){var c,d=(new Date).getTime();return c=Math.max(0,16-(d-a)),a=d+c,setTimeout(function(){b(d+c)},c)}}(),p={isString:function(a){return"string"==typeof a},isArray:Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},isFunction:function(a){return"[object Function]"===Object.prototype.toString.call(a)},isNode:function(a){return a&&a.nodeType},isNodeList:function(a){return"object"==typeof a&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(a))&&a.length!==d&&(0===a.length||"object"==typeof a[0]&&a[0].nodeType>0)},isWrapped:function(a){return a&&(a.jquery||b.Zepto&&b.Zepto.zepto.isZ(a))},isSVG:function(a){return b.SVGElement&&a instanceof b.SVGElement},isEmptyObject:function(a){for(var b in a)return!1;return!0}},q=!1;if(a.fn&&a.fn.jquery?(m=a,q=!0):m=b.Velocity.Utilities,8>=n&&!q)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=n)return void(jQuery.fn.velocity=jQuery.fn.animate);var r=400,s="swing",t={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:b.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:c.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:m,Redirects:{},Easings:{},Promise:b.Promise,defaults:{queue:"",duration:r,easing:s,begin:d,complete:d,progress:d,display:d,visibility:d,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(a){m.data(a,"velocity",{isSVG:p.isSVG(a),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:2},debug:!1};b.pageYOffset!==d?(t.State.scrollAnchor=b,t.State.scrollPropertyLeft="pageXOffset",t.State.scrollPropertyTop="pageYOffset"):(t.State.scrollAnchor=c.documentElement||c.body.parentNode||c.body,t.State.scrollPropertyLeft="scrollLeft",t.State.scrollPropertyTop="scrollTop");var u=function(){function a(a){return-a.tension*a.x-a.friction*a.v}function b(b,c,d){var e={x:b.x+d.dx*c,v:b.v+d.dv*c,tension:b.tension,friction:b.friction};return{dx:e.v,dv:a(e)}}function c(c,d){var e={dx:c.v,dv:a(c)},f=b(c,.5*d,e),g=b(c,.5*d,f),h=b(c,d,g),i=1/6*(e.dx+2*(f.dx+g.dx)+h.dx),j=1/6*(e.dv+2*(f.dv+g.dv)+h.dv);return c.x=c.x+i*d,c.v=c.v+j*d,c}return function d(a,b,e){var f,g,h,i={x:-1,v:0,tension:null,friction:null},j=[0],k=0,l=1e-4,m=.016;for(a=parseFloat(a)||500,b=parseFloat(b)||20,e=e||null,i.tension=a,i.friction=b,f=null!==e,f?(k=d(a,b),g=k/e*m):g=m;h=c(h||i,g),j.push(1+h.x),k+=16,Math.abs(h.x)>l&&Math.abs(h.v)>l;);return f?function(a){return j[a*(j.length-1)|0]}:k}}();t.Easings={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},spring:function(a){return 1-Math.cos(4.5*a*Math.PI)*Math.exp(6*-a)}},m.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(a,b){t.Easings[b[0]]=i.apply(null,b[1])});var v=t.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var a=0;a=n)switch(a){case"name":return"filter";case"extract":var d=c.toString().match(/alpha\(opacity=(.*)\)/i);return c=d?d[1]/100:1;case"inject":return b.style.zoom=1,parseFloat(c)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(c),10)+")"}else switch(a){case"name":return"opacity";case"extract":return c;case"inject":return c}}},register:function(){9>=n||t.State.isGingerbread||(v.Lists.transformsBase=v.Lists.transformsBase.concat(v.Lists.transforms3D));for(var a=0;ae&&(e=1),f=!/(\d)$/i.test(e);break;case"skew":f=!/(deg|\d)$/i.test(e);break;case"rotate":f=!/(deg|\d)$/i.test(e)}return f||(g(c).transformCache[b]="("+e+")"),g(c).transformCache[b]}}}();for(var a=0;a=n||3!==f.split(" ").length||(f+=" 1"),f;case"inject":return 8>=n?4===e.split(" ").length&&(e=e.split(/\s+/).slice(0,3).join(" ")):3===e.split(" ").length&&(e+=" 1"),(8>=n?"rgb":"rgba")+"("+e.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(a){return a.replace(/-(\w)/g,function(a,b){return b.toUpperCase()})},SVGAttribute:function(a){var b="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(n||t.State.isAndroid&&!t.State.isChrome)&&(b+="|transform"),new RegExp("^("+b+")$","i").test(a)},prefixCheck:function(a){if(t.State.prefixMatches[a])return[t.State.prefixMatches[a],!0];for(var b=["","Webkit","Moz","ms","O"],c=0,d=b.length;d>c;c++){var e;if(e=0===c?a:b[c]+a.replace(/^\w/,function(a){return a.toUpperCase()}),p.isString(t.State.prefixElement.style[e]))return t.State.prefixMatches[a]=e,[e,!0]}return[a,!1]}},Values:{hexToRgb:function(a){var b,c=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,d=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return a=a.replace(c,function(a,b,c,d){return b+b+c+c+d+d}),b=d.exec(a),b?[parseInt(b[1],16),parseInt(b[2],16),parseInt(b[3],16)]:[0,0,0]},isCSSNullValue:function(a){return 0==a||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(a)},getUnitType:function(a){return/^(rotate|skew)/i.test(a)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(a)?"":"px"},getDisplayType:function(a){var b=a&&a.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(b)?"inline":/^(li)$/i.test(b)?"list-item":/^(tr)$/i.test(b)?"table-row":/^(table)$/i.test(b)?"table":/^(tbody)$/i.test(b)?"table-row-group":"block"},addClass:function(a,b){a.classList?a.classList.add(b):a.className+=(a.className.length?" ":"")+b},removeClass:function(a,b){a.classList?a.classList.remove(b):a.className=a.className.toString().replace(new RegExp("(^|\\s)"+b.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(a,c,e,f){function h(a,c){function e(){j&&v.setPropertyValue(a,"display","none")}var i=0;if(8>=n)i=m.css(a,c);else{var j=!1;if(/^(width|height)$/.test(c)&&0===v.getPropertyValue(a,"display")&&(j=!0,v.setPropertyValue(a,"display",v.Values.getDisplayType(a))),!f){if("height"===c&&"border-box"!==v.getPropertyValue(a,"boxSizing").toString().toLowerCase()){var k=a.offsetHeight-(parseFloat(v.getPropertyValue(a,"borderTopWidth"))||0)-(parseFloat(v.getPropertyValue(a,"borderBottomWidth"))||0)-(parseFloat(v.getPropertyValue(a,"paddingTop"))||0)-(parseFloat(v.getPropertyValue(a,"paddingBottom"))||0);return e(),k}if("width"===c&&"border-box"!==v.getPropertyValue(a,"boxSizing").toString().toLowerCase()){var l=a.offsetWidth-(parseFloat(v.getPropertyValue(a,"borderLeftWidth"))||0)-(parseFloat(v.getPropertyValue(a,"borderRightWidth"))||0)-(parseFloat(v.getPropertyValue(a,"paddingLeft"))||0)-(parseFloat(v.getPropertyValue(a,"paddingRight"))||0);return e(),l}}var o;o=g(a)===d?b.getComputedStyle(a,null):g(a).computedStyle?g(a).computedStyle:g(a).computedStyle=b.getComputedStyle(a,null),"borderColor"===c&&(c="borderTopColor"),i=9===n&&"filter"===c?o.getPropertyValue(c):o[c],(""===i||null===i)&&(i=a.style[c]),e()}if("auto"===i&&/^(top|right|bottom|left)$/i.test(c)){var p=h(a,"position");("fixed"===p||"absolute"===p&&/top|left/i.test(c))&&(i=m(a).position()[c]+"px")}return i}var i;if(v.Hooks.registered[c]){var j=c,k=v.Hooks.getRoot(j);e===d&&(e=v.getPropertyValue(a,v.Names.prefixCheck(k)[0])),v.Normalizations.registered[k]&&(e=v.Normalizations.registered[k]("extract",a,e)),i=v.Hooks.extractValue(j,e)}else if(v.Normalizations.registered[c]){var l,o;l=v.Normalizations.registered[c]("name",a),"transform"!==l&&(o=h(a,v.Names.prefixCheck(l)[0]),v.Values.isCSSNullValue(o)&&v.Hooks.templates[c]&&(o=v.Hooks.templates[c][1])),i=v.Normalizations.registered[c]("extract",a,o)}if(!/^[\d-]/.test(i))if(g(a)&&g(a).isSVG&&v.Names.SVGAttribute(c))if(/^(height|width)$/i.test(c))try{i=a.getBBox()[c]}catch(p){i=0}else i=a.getAttribute(c);else i=h(a,v.Names.prefixCheck(c)[0]);return v.Values.isCSSNullValue(i)&&(i=0),t.debug>=2&&console.log("Get "+c+": "+i),i},setPropertyValue:function(a,c,d,e,f){var h=c;if("scroll"===c)f.container?f.container["scroll"+f.direction]=d:"Left"===f.direction?b.scrollTo(d,f.alternateValue):b.scrollTo(f.alternateValue,d);else if(v.Normalizations.registered[c]&&"transform"===v.Normalizations.registered[c]("name",a))v.Normalizations.registered[c]("inject",a,d),h="transform",d=g(a).transformCache[c];else{if(v.Hooks.registered[c]){var i=c,j=v.Hooks.getRoot(c);e=e||v.getPropertyValue(a,j),d=v.Hooks.injectValue(i,d,e),c=j}if(v.Normalizations.registered[c]&&(d=v.Normalizations.registered[c]("inject",a,d),c=v.Normalizations.registered[c]("name",a)),h=v.Names.prefixCheck(c)[0],8>=n)try{a.style[h]=d}catch(k){t.debug&&console.log("Browser does not support ["+d+"] for ["+h+"]")}else g(a)&&g(a).isSVG&&v.Names.SVGAttribute(c)?a.setAttribute(c,d):a.style[h]=d;t.debug>=2&&console.log("Set "+c+" ("+h+"): "+d)}return[h,d]},flushTransformCache:function(a){function b(b){return parseFloat(v.getPropertyValue(a,b))}var c="";if((n||t.State.isAndroid&&!t.State.isChrome)&&g(a).isSVG){var d={translate:[b("translateX"),b("translateY")],skewX:[b("skewX")],skewY:[b("skewY")],scale:1!==b("scale")?[b("scale"),b("scale")]:[b("scaleX"),b("scaleY")],rotate:[b("rotateZ"),0,0]};m.each(g(a).transformCache,function(a){/^translate/i.test(a)?a="translate":/^scale/i.test(a)?a="scale":/^rotate/i.test(a)&&(a="rotate"),d[a]&&(c+=a+"("+d[a].join(" ")+") ",delete d[a])})}else{var e,f;m.each(g(a).transformCache,function(b){return e=g(a).transformCache[b],"transformPerspective"===b?(f=e,!0):(9===n&&"rotateZ"===b&&(b="rotate"),void(c+=b+e+" "))}),f&&(c="perspective"+f+" "+c)}v.setPropertyValue(a,"transform",c)}};v.Hooks.register(),v.Normalizations.register(),t.hook=function(a,b,c){var e=d;return a=f(a),m.each(a,function(a,f){if(g(f)===d&&t.init(f),c===d)e===d&&(e=t.CSS.getPropertyValue(f,b));else{var h=t.CSS.setPropertyValue(f,b,c);"transform"===h[0]&&t.CSS.flushTransformCache(f),e=h}}),e};var w=function(){function a(){return h?B.promise||null:i}function e(){function a(a){function l(a,b){var c=d,e=d,g=d;return p.isArray(a)?(c=a[0],!p.isArray(a[1])&&/^[\d-]/.test(a[1])||p.isFunction(a[1])||v.RegEx.isHex.test(a[1])?g=a[1]:(p.isString(a[1])&&!v.RegEx.isHex.test(a[1])||p.isArray(a[1]))&&(e=b?a[1]:j(a[1],h.duration),a[2]!==d&&(g=a[2]))):c=a,b||(e=e||h.easing),p.isFunction(c)&&(c=c.call(f,y,x)),p.isFunction(g)&&(g=g.call(f,y,x)),[c||0,e,g]}function n(a,b){var c,d;return d=(b||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(a){return c=a,""}),c||(c=v.Values.getUnitType(a)),[d,c]}function r(){var a={myParent:f.parentNode||c.body,position:v.getPropertyValue(f,"position"),fontSize:v.getPropertyValue(f,"fontSize")},d=a.position===I.lastPosition&&a.myParent===I.lastParent,e=a.fontSize===I.lastFontSize;I.lastParent=a.myParent,I.lastPosition=a.position,I.lastFontSize=a.fontSize;var h=100,i={};if(e&&d)i.emToPx=I.lastEmToPx,i.percentToPxWidth=I.lastPercentToPxWidth,i.percentToPxHeight=I.lastPercentToPxHeight;else{var j=g(f).isSVG?c.createElementNS("http://www.w3.org/2000/svg","rect"):c.createElement("div");t.init(j),a.myParent.appendChild(j),m.each(["overflow","overflowX","overflowY"],function(a,b){t.CSS.setPropertyValue(j,b,"hidden")}),t.CSS.setPropertyValue(j,"position",a.position),t.CSS.setPropertyValue(j,"fontSize",a.fontSize),t.CSS.setPropertyValue(j,"boxSizing","content-box"),m.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(a,b){t.CSS.setPropertyValue(j,b,h+"%")}),t.CSS.setPropertyValue(j,"paddingLeft",h+"em"),i.percentToPxWidth=I.lastPercentToPxWidth=(parseFloat(v.getPropertyValue(j,"width",null,!0))||1)/h,i.percentToPxHeight=I.lastPercentToPxHeight=(parseFloat(v.getPropertyValue(j,"height",null,!0))||1)/h,i.emToPx=I.lastEmToPx=(parseFloat(v.getPropertyValue(j,"paddingLeft"))||1)/h,a.myParent.removeChild(j)}return null===I.remToPx&&(I.remToPx=parseFloat(v.getPropertyValue(c.body,"fontSize"))||16),null===I.vwToPx&&(I.vwToPx=parseFloat(b.innerWidth)/100,I.vhToPx=parseFloat(b.innerHeight)/100),i.remToPx=I.remToPx,i.vwToPx=I.vwToPx,i.vhToPx=I.vhToPx,t.debug>=1&&console.log("Unit ratios: "+JSON.stringify(i),f),i}if(h.begin&&0===y)try{h.begin.call(o,o)}catch(u){setTimeout(function(){throw u},1)}if("scroll"===C){var w,z,A,D=/^x$/i.test(h.axis)?"Left":"Top",E=parseFloat(h.offset)||0;h.container?p.isWrapped(h.container)||p.isNode(h.container)?(h.container=h.container[0]||h.container,w=h.container["scroll"+D],A=w+m(f).position()[D.toLowerCase()]+E):h.container=null:(w=t.State.scrollAnchor[t.State["scrollProperty"+D]],z=t.State.scrollAnchor[t.State["scrollProperty"+("Left"===D?"Top":"Left")]],A=m(f).offset()[D.toLowerCase()]+E),i={scroll:{rootPropertyValue:!1,startValue:w,currentValue:w,endValue:A,unitType:"",easing:h.easing,scrollData:{container:h.container,direction:D,alternateValue:z}},element:f},t.debug&&console.log("tweensContainer (scroll): ",i.scroll,f)}else if("reverse"===C){if(!g(f).tweensContainer)return void m.dequeue(f,h.queue);"none"===g(f).opts.display&&(g(f).opts.display="auto"),"hidden"===g(f).opts.visibility&&(g(f).opts.visibility="visible"),g(f).opts.loop=!1,g(f).opts.begin=null,g(f).opts.complete=null,s.easing||delete h.easing,s.duration||delete h.duration,h=m.extend({},g(f).opts,h);var F=m.extend(!0,{},g(f).tweensContainer);for(var G in F)if("element"!==G){var H=F[G].startValue;F[G].startValue=F[G].currentValue=F[G].endValue,F[G].endValue=H,p.isEmptyObject(s)||(F[G].easing=h.easing),t.debug&&console.log("reverse tweensContainer ("+G+"): "+JSON.stringify(F[G]),f)}i=F}else if("start"===C){var F;g(f).tweensContainer&&g(f).isAnimating===!0&&(F=g(f).tweensContainer),m.each(q,function(a,b){if(RegExp("^"+v.Lists.colors.join("$|^")+"$").test(a)){var c=l(b,!0),e=c[0],f=c[1],g=c[2];if(v.RegEx.isHex.test(e)){for(var h=["Red","Green","Blue"],i=v.Values.hexToRgb(e),j=g?v.Values.hexToRgb(g):d,k=0;kL;L++){var M={delay:E.delay,progress:E.progress};L===K-1&&(M.display=E.display,M.visibility=E.visibility,M.complete=E.complete),w(o,"reverse",M)}return a()}};t=m.extend(w,t),t.animate=w;var x=b.requestAnimationFrame||o;return t.State.isMobile||c.hidden===d||c.addEventListener("visibilitychange",function(){c.hidden?(x=function(a){return setTimeout(function(){a(!0)},16)},k()):x=b.requestAnimationFrame||o}),a.Velocity=t,a!==b&&(a.fn.velocity=w,a.fn.velocity.defaults=t.defaults),m.each(["Down","Up"],function(a,b){t.Redirects["slide"+b]=function(a,c,e,f,g,h){var i=m.extend({},c),j=i.begin,k=i.complete,l={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},n={};i.display===d&&(i.display="Down"===b?"inline"===t.CSS.Values.getDisplayType(a)?"inline-block":"block":"none"),i.begin=function(){j&&j.call(g,g);for(var c in l){n[c]=a.style[c];var d=t.CSS.getPropertyValue(a,c);l[c]="Down"===b?[d,0]:[0,d]}n.overflow=a.style.overflow,a.style.overflow="hidden"},i.complete=function(){for(var b in n)a.style[b]=n[b];k&&k.call(g,g),h&&h.resolver(g)},t(a,l,i)}}),m.each(["In","Out"],function(a,b){t.Redirects["fade"+b]=function(a,c,e,f,g,h){var i=m.extend({},c),j={opacity:"In"===b?1:0},k=i.complete;i.complete=e!==f-1?i.begin=null:function(){k&&k.call(g,g),h&&h.resolver(g)},i.display===d&&(i.display="In"===b?"auto":"none"),t(this,j,i)}}),t}(window.jQuery||window.Zepto||window,window,document)})),!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(k(a,c),b)}function f(a,b,c){return!!Array.isArray(a)&&(g(a,c[b],c),!0)}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e-1}function r(a){return a.trim().split(/\s+/g)}function s(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;dc[b]}):d.sort()),d}function v(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g1&&!c.firstMultiple?c.firstMultiple=E(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=F(d);b.timeStamp=na(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=J(h,i),b.distance=I(h,i),C(c,b),b.offsetDirection=H(b.deltaX,b.deltaY),b.scale=g?L(g.pointers,d):1,b.rotation=g?K(g.pointers,d):0,D(c,b);var j=a.element;p(b.srcEvent.target,j)&&(j=b.srcEvent.target),b.target=j}function C(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===ya||f.eventType===Aa)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function D(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Ba&&(i>xa||h.velocity===d)){var j=h.deltaX-b.deltaX,k=h.deltaY-b.deltaY,l=G(i,j,k);e=l.x,f=l.y,c=ma(l.x)>ma(l.y)?l.x:l.y,g=H(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function E(a){for(var b=[],c=0;ce;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:la(c/b),y:la(d/b)}}function G(a,b,c){return{x:b/a||0,y:c/a||0}}function H(a,b){return a===b?Ca:ma(a)>=ma(b)?a>0?Da:Ea:b>0?Fa:Ga}function I(a,b,c){c||(c=Ka);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function J(a,b,c){c||(c=Ka);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function K(a,b){return J(b[1],b[0],La)-J(a[1],a[0],La)}function L(a,b){return I(b[0],b[1],La)/I(a[0],a[1],La)}function M(){this.evEl=Na,this.evWin=Oa,this.allow=!0,this.pressed=!1,y.apply(this,arguments)}function N(){this.evEl=Ra,this.evWin=Sa,y.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function O(){this.evTarget=Ua,this.evWin=Va,this.started=!1,y.apply(this,arguments)}function P(a,b){var c=t(a.touches),d=t(a.changedTouches);return b&(Aa|Ba)&&(c=u(c.concat(d),"identifier",!0)),[c,d]}function Q(){this.evTarget=Xa,this.targetIds={},y.apply(this,arguments)}function R(a,b){var c=t(a.touches),d=this.targetIds;if(b&(ya|za)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=t(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return p(a.target,i)}),b===ya)for(e=0;eh&&(b.push(a),h=b.length-1):e&(Aa|Ba)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Ta={touchstart:ya,touchmove:za,touchend:Aa,touchcancel:Ba},Ua="touchstart",Va="touchstart touchmove touchend touchcancel";j(O,y,{handler:function(a){var b=Ta[a.type];if(b===ya&&(this.started=!0),this.started){var c=P.call(this,a,b);b&(Aa|Ba)&&0===c[0].length-c[1].length&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:ta,srcEvent:a})}}});var Wa={touchstart:ya,touchmove:za,touchend:Aa,touchcancel:Ba},Xa="touchstart touchmove touchend touchcancel";j(Q,y,{handler:function(a){var b=Wa[a.type],c=R.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:ta,srcEvent:a})}}),j(S,y,{handler:function(a,b,c){var d=c.pointerType==ta,e=c.pointerType==va;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Aa|Ba)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Ya=v(ja.style,"touchAction"),Za=Ya!==d,$a="compute",_a="auto",ab="manipulation",bb="none",cb="pan-x",db="pan-y";T.prototype={set:function(a){a==$a&&(a=this.compute()),Za&&(this.manager.element.style[Ya]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){l(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),U(a.join(" "))},preventDefaults:function(a){if(!Za){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=q(d,bb),f=q(d,db),g=q(d,cb);return e||f&&c&Ha||g&&c&Ia?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var eb=1,fb=2,gb=4,hb=8,ib=hb,jb=16,kb=32;V.prototype={defaults:{},set:function(a){return h(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=Y(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=Y(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=Y(a,this),-1===s(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=Y(a,this);var b=s(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(c.options.event+(b?W(d):""),a)}var c=this,d=this.state;hb>d&&b(!0),b(),d>=hb&&b(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=kb)},canEmit:function(){for(var a=0;af?Da:Ea,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Ca:0>g?Fa:Ga,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return Z.prototype.attrTest.call(this,a)&&(this.state&fb||!(this.state&fb)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),j(_,Z,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[bb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&fb)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),j(aa,V,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[_a]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distanceb.time;if(this._input=a,!d||!c||a.eventType&(Aa|Ba)&&!f)this.reset();else if(a.eventType&ya)this.reset(),this._timer=e(function(){this.state=ib,this.tryEmit()},b.time,this);else if(a.eventType&Aa)return ib;return kb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===ib&&(a&&a.eventType&Aa?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=na(),this.manager.emit(this.options.event,this._input)))}}),j(ba,Z,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[bb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&fb)}}),j(ca,Z,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Ha|Ia,pointers:1},getTouchAction:function(){return $.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Ha|Ia)?b=a.velocity:c&Ha?b=a.velocityX:c&Ia&&(b=a.velocityY),this._super.attrTest.call(this,a)&&c&a.direction&&a.distance>this.options.threshold&&ma(b)>this.options.velocity&&a.eventType&Aa},emit:function(a){var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),j(da,V,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ab]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance=0&&!d;)d=a[c[f]+"RequestAnimationFrame"],e=a[c[f]+"CancelRequestAnimationFrame"];d&&e||(d=function(a){var c=+Date.now(),d=Math.max(b+16,c);return setTimeout(function(){a(b=d)},d-c)},e=clearTimeout),a.requestAnimationFrame=d,a.cancelAnimationFrame=e}(window),Materialize.guid=function(){function a(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return function(){return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()}}(),Materialize.escapeHash=function(a){return a.replace(/(:|\.|\[|\]|,|=)/g,"\\$1")},Materialize.elementOrParentIsFixed=function(a){var b=$(a),c=b.add(b.parents()),d=!1;return c.each(function(){if("fixed"===$(this).css("position"))return d=!0,!1}),d};var getTime=Date.now||function(){return(new Date).getTime()};Materialize.throttle=function(a,b,c){var d,e,f,g=null,h=0;c||(c={});var i=function(){h=c.leading===!1?0:getTime(),g=null,f=a.apply(d,e),d=e=null};return function(){var j=getTime();h||c.leading!==!1||(h=j);var k=b-(j-h);return d=this,e=arguments,k<=0?(clearTimeout(g),g=null,h=j,f=a.apply(d,e),d=e=null):g||c.trailing===!1||(g=setTimeout(i,k)),f}};var Vel;Vel=jQuery?jQuery.Velocity:$?$.Velocity:Velocity,function(a){a.fn.collapsible=function(b){var c={accordion:void 0,onOpen:void 0,onClose:void 0};return b=a.extend(c,b),this.each(function(){function c(b){j=i.find("> li > .collapsible-header"),b.hasClass("active")?b.parent().addClass("active"):b.parent().removeClass("active"),b.parent().hasClass("active")?b.siblings(".collapsible-body").stop(!0,!1).slideDown({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}}):b.siblings(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}}),j.not(b).removeClass("active").parent().removeClass("active"),j.not(b).parent().children(".collapsible-body").stop(!0,!1).each(function(){a(this).is(":visible")&&a(this).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height",""),f(a(this).siblings(".collapsible-header"))}})})}function d(b){b.hasClass("active")?b.parent().addClass("active"):b.parent().removeClass("active"),b.parent().hasClass("active")?b.siblings(".collapsible-body").stop(!0,!1).slideDown({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}}):b.siblings(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}})}function e(a){b.accordion||"accordion"===k||void 0===k?c(a):d(a),f(a)}function f(a){a.hasClass("active")?"function"==typeof b.onOpen&&b.onOpen.call(this,a.parent()):"function"==typeof b.onClose&&b.onClose.call(this,a.parent())}function g(a){var b=h(a);return b.length>0}function h(a){return a.closest("li > .collapsible-header")}var i=a(this),j=a(this).find("> li > .collapsible-header"),k=i.data("collapsible");i.off("click.collapse","> li > .collapsible-header"),j.off("click.collapse"),i.on("click.collapse","> li > .collapsible-header",function(b){var c=a(b.target);g(c)&&(c=h(c)),c.toggleClass("active"),e(c)}),b.accordion||"accordion"===k||void 0===k?e(j.filter(".active").first()):j.filter(".active").each(function(){e(a(this))})})},a(document).ready(function(){a(".collapsible").collapsible()})}(jQuery),function(a){a.fn.scrollTo=function(b){return a(this).scrollTop(a(this).scrollTop()-a(this).offset().top+a(b).offset().top),this},a.fn.dropdown=function(b){var c={inDuration:300,outDuration:225,constrainWidth:!0,hover:!1,gutter:0,belowOrigin:!1,alignment:"left",stopPropagation:!1};return"open"===b?(this.each(function(){a(this).trigger("open")}),!1):"close"===b?(this.each(function(){a(this).trigger("close")}),!1):void this.each(function(){function d(){void 0!==g.data("induration")&&(h.inDuration=g.data("induration")),void 0!==g.data("outduration")&&(h.outDuration=g.data("outduration")),void 0!==g.data("constrainwidth")&&(h.constrainWidth=g.data("constrainwidth")),void 0!==g.data("hover")&&(h.hover=g.data("hover")),void 0!==g.data("gutter")&&(h.gutter=g.data("gutter")),void 0!==g.data("beloworigin")&&(h.belowOrigin=g.data("beloworigin")),void 0!==g.data("alignment")&&(h.alignment=g.data("alignment")),void 0!==g.data("stoppropagation")&&(h.stopPropagation=g.data("stoppropagation"))}function e(b){"focus"===b&&(i=!0),d(),j.addClass("active"),g.addClass("active"),h.constrainWidth===!0?j.css("width",g.outerWidth()):j.css("white-space","nowrap");var c=window.innerHeight,e=g.innerHeight(),k=g.offset().left,l=g.offset().top-a(window).scrollTop(),m=h.alignment,n=0,o=0,p=0;h.belowOrigin===!0&&(p=e);var q=0,r=0,s=g.parent();if(s.is("body")||(s[0].scrollHeight>s[0].clientHeight&&(q=s[0].scrollTop),s[0].scrollWidth>s[0].clientWidth&&(r=s[0].scrollLeft)),k+j.innerWidth()>a(window).width()?m="right":k-j.innerWidth()+g.innerWidth()<0&&(m="left"),l+j.innerHeight()>c)if(l+e-j.innerHeight()<0){var t=c-l-p;j.css("max-height",t)}else p||(p+=e),p-=j.innerHeight();if("left"===m)n=h.gutter,o=g.position().left+n;else if("right"===m){var u=g.position().left+g.outerWidth()-j.outerWidth();n=-h.gutter,o=u+n}j.css({position:"absolute",top:g.position().top+p+q,left:o+r}),j.stop(!0,!0).css("opacity",0).slideDown({queue:!1,duration:h.inDuration,easing:"easeOutCubic",complete:function(){a(this).css("height","")}}).animate({opacity:1},{queue:!1,duration:h.inDuration,easing:"easeOutSine"}),a(document).bind("click."+j.attr("id")+" touchstart."+j.attr("id"),function(b){j.is(b.target)||g.is(b.target)||g.find(b.target).length||(f(),a(document).unbind("click."+j.attr("id")+" touchstart."+j.attr("id")))})}function f(){i=!1,j.fadeOut(h.outDuration),j.removeClass("active"),g.removeClass("active"),a(document).unbind("click."+j.attr("id")+" touchstart."+j.attr("id")),setTimeout(function(){j.css("max-height","")},h.outDuration)}var g=a(this),h=a.extend({},c,b),i=!1,j=a("#"+g.attr("data-activates"));if(d(),g.after(j),h.hover){var k=!1;g.unbind("click."+g.attr("id")),g.on("mouseenter",function(a){k===!1&&(e(),k=!0)}),g.on("mouseleave",function(b){var c=b.toElement||b.relatedTarget;a(c).closest(".dropdown-content").is(j)||(j.stop(!0,!0),f(),k=!1)}),j.on("mouseleave",function(b){var c=b.toElement||b.relatedTarget;a(c).closest(".dropdown-button").is(g)||(j.stop(!0,!0),f(),k=!1)})}else g.unbind("click."+g.attr("id")),g.bind("click."+g.attr("id"),function(b){i||(g[0]!=b.currentTarget||g.hasClass("active")||0!==a(b.target).closest(".dropdown-content").length?g.hasClass("active")&&(f(),a(document).unbind("click."+j.attr("id")+" touchstart."+j.attr("id"))):(b.preventDefault(),h.stopPropagation&&b.stopPropagation(),e("click")))});g.on("open",function(a,b){e(b)}),g.on("close",f)})},a(document).ready(function(){a(".dropdown-button").dropdown()})}(jQuery),function(a){var b=0,c=0,d=function(){return c++,"materialize-modal-overlay-"+c},e={init:function(c){var e={opacity:.5,inDuration:350,outDuration:250,ready:void 0, -complete:void 0,dismissible:!0,startingTop:"4%",endingTop:"10%"};return c=a.extend(e,c),this.each(function(){var e=a(this),f=a(this).attr("id")||"#"+a(this).data("target"),g=function(){var d=e.data("overlay-id"),f=a("#"+d);e.removeClass("open"),a("body").css({overflow:"",width:""}),e.find(".modal-close").off("click.close"),a(document).off("keyup.modal"+d),f.velocity({opacity:0},{duration:c.outDuration,queue:!1,ease:"easeOutQuart"});var g={duration:c.outDuration,queue:!1,ease:"easeOutCubic",complete:function(){a(this).css({display:"none"}),"function"==typeof c.complete&&c.complete.call(this,e),f.remove(),b--}};e.hasClass("bottom-sheet")?e.velocity({bottom:"-100%",opacity:0},g):e.velocity({top:c.startingTop,opacity:0,scaleX:.7},g)},h=function(f){var h=a("body"),i=h.innerWidth();if(h.css("overflow","hidden"),h.width(i),!e.hasClass("open")){var j=d(),k=a('');lStack=++b,k.attr("id",j).css("z-index",1e3+2*lStack),e.data("overlay-id",j).css("z-index",1e3+2*lStack+1),e.addClass("open"),a("body").append(k),c.dismissible&&(k.click(function(){g()}),a(document).on("keyup.modal"+j,function(a){27===a.keyCode&&g()})),e.find(".modal-close").on("click.close",function(a){g()}),k.css({display:"block",opacity:0}),e.css({display:"block",opacity:0}),k.velocity({opacity:c.opacity},{duration:c.inDuration,queue:!1,ease:"easeOutCubic"}),e.data("associated-overlay",k[0]);var l={duration:c.inDuration,queue:!1,ease:"easeOutCubic",complete:function(){"function"==typeof c.ready&&c.ready.call(this,e,f)}};e.hasClass("bottom-sheet")?e.velocity({bottom:"0",opacity:1},l):(a.Velocity.hook(e,"scaleX",.7),e.css({top:c.startingTop}),e.velocity({top:c.endingTop,opacity:1,scaleX:"1"},l))}};a(document).off("click.modalTrigger",'a[href="#'+f+'"], [data-target="'+f+'"]'),a(this).off("openModal"),a(this).off("closeModal"),a(document).on("click.modalTrigger",'a[href="#'+f+'"], [data-target="'+f+'"]',function(b){c.startingTop=(a(this).offset().top-a(window).scrollTop())/1.15,h(a(this)),b.preventDefault()}),a(this).on("openModal",function(){a(this).attr("href")||"#"+a(this).data("target");h()}),a(this).on("closeModal",function(){g()})})},open:function(){a(this).trigger("openModal")},close:function(){a(this).trigger("closeModal")}};a.fn.modal=function(b){return e[b]?e[b].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof b&&b?void a.error("Method "+b+" does not exist on jQuery.modal"):e.init.apply(this,arguments)}}(jQuery),function(a){a.fn.materialbox=function(){return this.each(function(){function b(){f=!1;var b=i.parent(".material-placeholder"),d=(window.innerWidth,window.innerHeight,i.data("width")),g=i.data("height");i.velocity("stop",!0),a("#materialbox-overlay").velocity("stop",!0),a(".materialbox-caption").velocity("stop",!0),a("#materialbox-overlay").velocity({opacity:0},{duration:h,queue:!1,easing:"easeOutQuad",complete:function(){e=!1,a(this).remove()}}),i.velocity({width:d,height:g,left:0,top:0},{duration:h,queue:!1,easing:"easeOutQuad"}),a(".materialbox-caption").velocity({opacity:0},{duration:h,queue:!1,easing:"easeOutQuad",complete:function(){b.css({height:"",width:"",position:"",top:"",left:""}),i.css({height:"",top:"",left:"",width:"","max-width":"",position:"","z-index":"","will-change":""}),i.removeClass("active"),f=!0,a(this).remove(),c&&c.css("overflow","")}})}if(!a(this).hasClass("initialized")){a(this).addClass("initialized");var c,d,e=!1,f=!0,g=275,h=200,i=a(this),j=a("
        ").addClass("material-placeholder");i.wrap(j),i.on("click",function(){var h=i.parent(".material-placeholder"),j=window.innerWidth,k=window.innerHeight,l=i.width(),m=i.height();if(f===!1)return b(),!1;if(e&&f===!0)return b(),!1;f=!1,i.addClass("active"),e=!0,h.css({width:h[0].getBoundingClientRect().width,height:h[0].getBoundingClientRect().height,position:"relative",top:0,left:0}),c=void 0,d=h[0].parentNode;for(;null!==d&&!a(d).is(document);){var n=a(d);"visible"!==n.css("overflow")&&(n.css("overflow","visible"),c=void 0===c?n:c.add(n)),d=d.parentNode}i.css({position:"absolute","z-index":1e3,"will-change":"left, top, width, height"}).data("width",l).data("height",m);var o=a('
        ').css({opacity:0}).click(function(){f===!0&&b()});i.before(o);var p=o[0].getBoundingClientRect();if(o.css({width:j,height:k,left:-1*p.left,top:-1*p.top}),o.velocity({opacity:1},{duration:g,queue:!1,easing:"easeOutQuad"}),""!==i.data("caption")){var q=a('
        ');q.text(i.data("caption")),a("body").append(q),q.css({display:"inline"}),q.velocity({opacity:1},{duration:g,queue:!1,easing:"easeOutQuad"})}var r=0,s=l/j,t=m/k,u=0,v=0;s>t?(r=m/l,u=.9*j,v=.9*j*r):(r=l/m,u=.9*k*r,v=.9*k),i.hasClass("responsive-img")?i.velocity({"max-width":u,width:l},{duration:0,queue:!1,complete:function(){i.css({left:0,top:0}).velocity({height:v,width:u,left:a(document).scrollLeft()+j/2-i.parent(".material-placeholder").offset().left-u/2,top:a(document).scrollTop()+k/2-i.parent(".material-placeholder").offset().top-v/2},{duration:g,queue:!1,easing:"easeOutQuad",complete:function(){f=!0}})}}):i.css("left",0).css("top",0).velocity({height:v,width:u,left:a(document).scrollLeft()+j/2-i.parent(".material-placeholder").offset().left-u/2,top:a(document).scrollTop()+k/2-i.parent(".material-placeholder").offset().top-v/2},{duration:g,queue:!1,easing:"easeOutQuad",complete:function(){f=!0}})}),a(window).scroll(function(){e&&b()}),a(document).keyup(function(a){27===a.keyCode&&f===!0&&e&&b()})}})},a(document).ready(function(){a(".materialboxed").materialbox()})}(jQuery),function(a){a.fn.parallax=function(){var b=a(window).width();return this.each(function(c){function d(c){var d;d=b<601?e.height()>0?e.height():e.children("img").height():e.height()>0?e.height():500;var f=e.children("img").first(),g=f.height(),h=g-d,i=e.offset().top+d,j=e.offset().top,k=a(window).scrollTop(),l=window.innerHeight,m=k+l,n=(m-j)/(d+l),o=Math.round(h*n);c&&f.css("display","block"),i>k&&j=0?(f.velocity({right:q(c)},{duration:p,queue:!1,easing:"easeOutQuad"}),f.velocity({left:r(c)},{duration:p,queue:!1,easing:"easeOutQuad",delay:90})):(f.velocity({left:r(c)},{duration:p,queue:!1,easing:"easeOutQuad"}),f.velocity({right:q(c)},{duration:p,queue:!1,easing:"easeOutQuad",delay:90}))};b.swipeable&&i>b.responsiveThreshold&&(b.swipeable=!1),c=a(j.filter('[href="'+location.hash+'"]')),0===c.length&&(c=a(this).find("li.tab a.active").first()),0===c.length&&(c=a(this).find("li.tab a").first()),c.addClass("active"),n=j.index(c),n<0&&(n=0),void 0!==c[0]&&(d=a(c[0].hash),d.addClass("active")),h.find(".indicator").length||h.append('
        '),f=h.find(".indicator"),h.append(f),h.is(":visible")&&setTimeout(function(){f.css({right:q(c)}),f.css({left:r(c)})},0),a(window).resize(function(){k=h.width(),m=Math.max(k,h[0].scrollWidth)/j.length,n<0&&(n=0),0!==m&&0!==k&&(f.css({right:q(c)}),f.css({left:r(c)}))}),b.swipeable?(j.each(function(){var b=a(Materialize.escapeHash(this.hash));b.addClass("carousel-item"),l=l.add(b)}),e=l.wrapAll(''),l.css("display",""),a(".tabs-content.carousel").carousel({fullWidth:!0,noWrap:!0,onCycleTo:function(a){if(!o){var b=n;n=e.index(a),c=j.eq(n),s(b)}}})):j.not(c).each(function(){a(Materialize.escapeHash(this.hash)).hide()}),h.on("click","a",function(e){if(a(this).parent().hasClass("disabled"))return void e.preventDefault();if(!a(this).attr("target")){o=!0,k=h.width(),m=Math.max(k,h[0].scrollWidth)/j.length,c.removeClass("active");var f=d;c=a(this),d=a(Materialize.escapeHash(this.hash)),j=h.find("li.tab a");c.position();c.addClass("active"),prev_index=n,n=j.index(a(this)),n<0&&(n=0),b.swipeable?l.length&&l.carousel("set",n):(void 0!==d&&(d.show(),d.addClass("active"),"function"==typeof b.onShow&&b.onShow.call(this,d)),void 0===f||f.is(d)||(f.hide(),f.removeClass("active"))),g=setTimeout(function(){o=!1},p),s(prev_index),e.preventDefault()}})})},select_tab:function(a){this.find('a[href="#'+a+'"]').trigger("click")}};a.fn.tabs=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.tabs"):b.init.apply(this,arguments)},a(document).ready(function(){a("ul.tabs").tabs()})}(jQuery),function(a){a.fn.tooltip=function(c){var d=5,e={delay:350,tooltip:"",position:"bottom",html:!1};return"remove"===c?(this.each(function(){a("#"+a(this).attr("data-tooltip-id")).remove(),a(this).off("mouseenter.tooltip mouseleave.tooltip")}),!1):(c=a.extend(e,c),this.each(function(){var e=Materialize.guid(),f=a(this);f.attr("data-tooltip-id")&&a("#"+f.attr("data-tooltip-id")).remove(),f.attr("data-tooltip-id",e);var g,h,i,j,k,l,m=function(){g=f.attr("data-html")?"true"===f.attr("data-html"):c.html,h=f.attr("data-delay"),h=void 0===h||""===h?c.delay:h,i=f.attr("data-position"),i=void 0===i||""===i?c.position:i,j=f.attr("data-tooltip"),j=void 0===j||""===j?c.tooltip:j};m();var n=function(){var b=a('
        ');return j=g?a("").html(j):a("").text(j),b.append(j).appendTo(a("body")).attr("id",e),l=a('
        '),l.appendTo(b),b};k=n(),f.off("mouseenter.tooltip mouseleave.tooltip");var o,p=!1;f.on({"mouseenter.tooltip":function(a){var c=function(){m(),p=!0,k.velocity("stop"),l.velocity("stop"),k.css({visibility:"visible",left:"0px",top:"0px"});var a,c,e,g=f.outerWidth(),h=f.outerHeight(),j=k.outerHeight(),n=k.outerWidth(),o="0px",q="0px",r=l[0].offsetWidth,s=l[0].offsetHeight,t=8,u=8,v=0;"top"===i?(a=f.offset().top-j-d,c=f.offset().left+g/2-n/2,e=b(c,a,n,j),o="-10px",l.css({bottom:0,left:0,borderRadius:"14px 14px 0 0",transformOrigin:"50% 100%",marginTop:j,marginLeft:n/2-r/2})):"left"===i?(a=f.offset().top+h/2-j/2,c=f.offset().left-n-d,e=b(c,a,n,j),q="-10px",l.css({top:"-7px",right:0,width:"14px",height:"14px",borderRadius:"14px 0 0 14px",transformOrigin:"95% 50%",marginTop:j/2,marginLeft:n})):"right"===i?(a=f.offset().top+h/2-j/2,c=f.offset().left+g+d,e=b(c,a,n,j),q="+10px",l.css({top:"-7px",left:0,width:"14px",height:"14px",borderRadius:"0 14px 14px 0",transformOrigin:"5% 50%",marginTop:j/2,marginLeft:"0px"})):(a=f.offset().top+f.outerHeight()+d,c=f.offset().left+g/2-n/2,e=b(c,a,n,j),o="+10px",l.css({top:0,left:0,marginLeft:n/2-r/2})),k.css({top:e.y,left:e.x}),t=Math.SQRT2*n/parseInt(r),u=Math.SQRT2*j/parseInt(s),v=Math.max(t,u),k.velocity({translateY:o,translateX:q},{duration:350,queue:!1}).velocity({opacity:1},{duration:300,delay:50,queue:!1}),l.css({visibility:"visible"}).velocity({opacity:1},{duration:55,delay:0,queue:!1}).velocity({scaleX:v,scaleY:v},{duration:300,delay:0,queue:!1,easing:"easeInOutQuad"})};o=setTimeout(c,h)},"mouseleave.tooltip":function(){p=!1,clearTimeout(o),setTimeout(function(){p!==!0&&(k.velocity({opacity:0,translateY:0,translateX:0},{duration:225,queue:!1}),l.velocity({opacity:0,scaleX:1,scaleY:1},{duration:225,queue:!1,complete:function(){l.css({visibility:"hidden"}),k.css({visibility:"hidden"}),p=!1}}))},225)}})}))};var b=function(b,c,d,e){var f=b,g=c;return f<0?f=4:f+d>window.innerWidth&&(f-=f+d-window.innerWidth),g<0?g=4:g+e>window.innerHeight+a(window).scrollTop&&(g-=g+e-window.innerHeight),{x:f,y:g}};a(document).ready(function(){a(".tooltipped").tooltip()})}(jQuery),function(a){"use strict";function b(a){return null!==a&&a===a.window}function c(a){return b(a)?a:9===a.nodeType&&a.defaultView}function d(a){var b,d,e={top:0,left:0},f=a&&a.ownerDocument;return b=f.documentElement,"undefined"!=typeof a.getBoundingClientRect&&(e=a.getBoundingClientRect()),d=c(f),{top:e.top+d.pageYOffset-b.clientTop,left:e.left+d.pageXOffset-b.clientLeft}}function e(a){var b="";for(var c in a)a.hasOwnProperty(c)&&(b+=c+":"+a[c]+";");return b}function f(a){if(k.allowEvent(a)===!1)return null;for(var b=null,c=a.target||a.srcElement;null!==c.parentElement;){if(!(c instanceof SVGElement||c.className.indexOf("waves-effect")===-1)){b=c;break}if(c.classList.contains("waves-effect")){b=c;break}c=c.parentElement}return b}function g(b){var c=f(b);null!==c&&(j.show(b,c),"ontouchstart"in a&&(c.addEventListener("touchend",j.hide,!1),c.addEventListener("touchcancel",j.hide,!1)),c.addEventListener("mouseup",j.hide,!1),c.addEventListener("mouseleave",j.hide,!1))}var h=h||{},i=document.querySelectorAll.bind(document),j={duration:750,show:function(a,b){if(2===a.button)return!1;var c=b||this,f=document.createElement("div");f.className="waves-ripple",c.appendChild(f);var g=d(c),h=a.pageY-g.top,i=a.pageX-g.left,k="scale("+c.clientWidth/100*10+")";"touches"in a&&(h=a.touches[0].pageY-g.top,i=a.touches[0].pageX-g.left),f.setAttribute("data-hold",Date.now()),f.setAttribute("data-scale",k),f.setAttribute("data-x",i),f.setAttribute("data-y",h);var l={top:h+"px",left:i+"px"};f.className=f.className+" waves-notransition",f.setAttribute("style",e(l)),f.className=f.className.replace("waves-notransition",""),l["-webkit-transform"]=k,l["-moz-transform"]=k,l["-ms-transform"]=k,l["-o-transform"]=k,l.transform=k,l.opacity="1",l["-webkit-transition-duration"]=j.duration+"ms",l["-moz-transition-duration"]=j.duration+"ms",l["-o-transition-duration"]=j.duration+"ms",l["transition-duration"]=j.duration+"ms",l["-webkit-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["-moz-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["-o-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",f.setAttribute("style",e(l))},hide:function(a){k.touchup(a);var b=this,c=(1.4*b.clientWidth,null),d=b.getElementsByClassName("waves-ripple");if(!(d.length>0))return!1;c=d[d.length-1];var f=c.getAttribute("data-x"),g=c.getAttribute("data-y"),h=c.getAttribute("data-scale"),i=Date.now()-Number(c.getAttribute("data-hold")),l=350-i;l<0&&(l=0),setTimeout(function(){var a={top:g+"px",left:f+"px",opacity:"0","-webkit-transition-duration":j.duration+"ms","-moz-transition-duration":j.duration+"ms","-o-transition-duration":j.duration+"ms","transition-duration":j.duration+"ms","-webkit-transform":h,"-moz-transform":h,"-ms-transform":h,"-o-transform":h,transform:h};c.setAttribute("style",e(a)),setTimeout(function(){try{b.removeChild(c)}catch(a){return!1}},j.duration)},l)},wrapInput:function(a){for(var b=0;b0&&(k.touches-=1)},500):"mousedown"===a.type&&k.touches>0&&(b=!1),b},touchup:function(a){k.allowEvent(a)}};h.displayEffect=function(b){b=b||{},"duration"in b&&(j.duration=b.duration),j.wrapInput(i(".waves-effect")),"ontouchstart"in a&&document.body.addEventListener("touchstart",g,!1),document.body.addEventListener("mousedown",g,!1)},h.attach=function(b){"input"===b.tagName.toLowerCase()&&(j.wrapInput([b]),b=b.parentElement),"ontouchstart"in a&&b.addEventListener("touchstart",g,!1),b.addEventListener("mousedown",g,!1)},a.Waves=h,document.addEventListener("DOMContentLoaded",function(){h.displayEffect()},!1)}(window),Materialize.toast=function(a,b,c,d){function e(a){var b=document.createElement("div");if(b.classList.add("toast"),c)for(var e=c.split(" "),f=0,g=e.length;fe?Vel(b,{marginTop:"-40px"},{duration:375,easing:"easeOutExpo",queue:!1,complete:function(){"function"==typeof d&&d(),b.parentNode.removeChild(b)}}):(b.classList.remove("panning"),Vel(b,{left:0,opacity:1},{duration:300,easing:"easeOutExpo",queue:!1}))}),b}c=c||"";var f=document.getElementById("toast-container");null===f&&(f=document.createElement("div"),f.id="toast-container",document.body.appendChild(f));var g=e(a);a&&f.appendChild(g),g.style.opacity=0,Vel(g,{translateY:"-35px",opacity:1},{duration:300,easing:"easeOutCubic",queue:!1});var h,i=b;null!=i&&(h=setInterval(function(){null===g.parentNode&&window.clearInterval(h),g.classList.contains("panning")||(i-=20),i<=0&&(Vel(g,{opacity:0,marginTop:"-40px"},{duration:375,easing:"easeOutExpo",queue:!1,complete:function(){"function"==typeof d&&d(),this[0].parentNode.removeChild(this[0])}}),window.clearInterval(h))},20))},function(a){var b={init:function(b){var c={menuWidth:300,edge:"left",closeOnClick:!1,draggable:!0};b=a.extend(c,b),a(this).each(function(){var c=a(this),d=c.attr("data-activates"),e=a("#"+d);300!=b.menuWidth&&e.css("width",b.menuWidth);var f=a('.drag-target[data-sidenav="'+d+'"]');b.draggable?(f.length&&f.remove(),f=a('
        ').attr("data-sidenav",d),a("body").append(f)):f=a(),"left"==b.edge?(e.css("transform","translateX(-100%)"),f.css({left:0})):(e.addClass("right-aligned").css("transform","translateX(100%)"),f.css({right:0})),e.hasClass("fixed")&&window.innerWidth>992&&e.css("transform","translateX(0)"),e.hasClass("fixed")&&a(window).resize(function(){window.innerWidth>992?0!==a("#sidenav-overlay").length&&i?g(!0):e.css("transform","translateX(0%)"):i===!1&&("left"===b.edge?e.css("transform","translateX(-100%)"):e.css("transform","translateX(100%)"))}),b.closeOnClick===!0&&e.on("click.itemclick","a:not(.collapsible-header)",function(){g()});var g=function(c){h=!1,i=!1,a("body").css({overflow:"",width:""}),a("#sidenav-overlay").velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}}),"left"===b.edge?(f.css({width:"",right:"",left:"0"}),e.velocity({translateX:"-100%"},{duration:200,queue:!1,easing:"easeOutCubic",complete:function(){c===!0&&(e.removeAttr("style"),e.css("width",b.menuWidth))}})):(f.css({width:"",right:"0",left:""}),e.velocity({translateX:"100%"},{duration:200,queue:!1,easing:"easeOutCubic",complete:function(){c===!0&&(e.removeAttr("style"),e.css("width",b.menuWidth))}}))},h=!1,i=!1;b.draggable&&(f.on("click",function(){i&&g()}),f.hammer({prevent_default:!1}).bind("pan",function(c){if("touch"==c.gesture.pointerType){var d=(c.gesture.direction,c.gesture.center.x),f=(c.gesture.center.y,c.gesture.velocityX,a("body")),h=a("#sidenav-overlay"),j=f.innerWidth();if(f.css("overflow","hidden"),f.width(j),0===h.length&&(h=a('
        '),h.css("opacity",0).click(function(){g()}),a("body").append(h)),"left"===b.edge&&(d>b.menuWidth?d=b.menuWidth:d<0&&(d=0)),"left"===b.edge)d=b.menuWidth/2&&(i=!0),e.css("transform","translateX("+(d-b.menuWidth)+"px)");else{d=window.innerWidth-b.menuWidth/2&&(i=!1);var k=d-b.menuWidth/2;k<0&&(k=0),e.css("transform","translateX("+k+"px)")}var l;"left"===b.edge?(l=d/b.menuWidth,h.velocity({opacity:l},{duration:10,queue:!1,easing:"easeOutQuad"})):(l=Math.abs((d-window.innerWidth)/b.menuWidth),h.velocity({opacity:l},{duration:10,queue:!1,easing:"easeOutQuad"}))}}).bind("panend",function(c){if("touch"==c.gesture.pointerType){var d=a('
        '),g=c.gesture.velocityX,j=c.gesture.center.x,k=j-b.menuWidth,l=j-b.menuWidth/2;k>0&&(k=0),l<0&&(l=0),h=!1,"left"===b.edge?i&&g<=.3||g<-.5?(0!==k&&e.velocity({translateX:[0,k]},{duration:300,queue:!1,easing:"easeOutQuad"}),d.velocity({opacity:1},{duration:50,queue:!1,easing:"easeOutQuad"}),f.css({width:"50%",right:0,left:""}),i=!0):(!i||g>.3)&&(a("body").css({overflow:"",width:""}),e.velocity({translateX:[-1*b.menuWidth-10,k]},{duration:200,queue:!1,easing:"easeOutQuad"}),d.velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}}),f.css({width:"10px",right:"",left:0})):i&&g>=-.3||g>.5?(0!==l&&e.velocity({translateX:[0,l]},{duration:300,queue:!1,easing:"easeOutQuad"}),d.velocity({opacity:1},{duration:50,queue:!1,easing:"easeOutQuad"}),f.css({width:"50%",right:"",left:0}),i=!0):(!i||g<-.3)&&(a("body").css({overflow:"",width:""}),e.velocity({translateX:[b.menuWidth+10,l]},{duration:200,queue:!1,easing:"easeOutQuad"}),d.velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}}),f.css({width:"10px",right:0,left:""}))}})),c.off("click.sidenav").on("click.sidenav",function(){if(i===!0)i=!1,h=!1,g();else{var c=a("body"),d=a('
        '),j=c.innerWidth();c.css("overflow","hidden"),c.width(j),a("body").append(f),"left"===b.edge?(f.css({width:"50%",right:0,left:""}),e.velocity({translateX:[0,-1*b.menuWidth]},{duration:300,queue:!1,easing:"easeOutQuad"})):(f.css({width:"50%",right:"",left:0}),e.velocity({translateX:[0,b.menuWidth]},{duration:300,queue:!1,easing:"easeOutQuad"})),d.css("opacity",0).click(function(){i=!1,h=!1,g(),d.velocity({opacity:0},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}})}),a("body").append(d),d.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){i=!0,h=!1}})}return!1})})},destroy:function(){var b=a("#sidenav-overlay"),c=a('.drag-target[data-sidenav="'+a(this).attr("data-activates")+'"]');b.trigger("click"),c.remove(),a(this).off("click"),b.remove()},show:function(){this.trigger("click")},hide:function(){a("#sidenav-overlay").trigger("click")}};a.fn.sideNav=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.sideNav"):b.init.apply(this,arguments)}}(jQuery),function(a){function b(b,c,d,e){var g=a();return a.each(f,function(a,f){if(f.height()>0){var h=f.offset().top,i=f.offset().left,j=i+f.width(),k=h+f.height(),l=!(i>c||jd||k");e.html(g),b.is(":visible")?e.css("width",b.width()):e.css("width",a(window).width()/2),b.css("height",e.height())}Materialize.updateTextFields=function(){var b="input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea";a(b).each(function(b,c){var d=a(this);a(c).val().length>0||c.autofocus||void 0!==d.attr("placeholder")?d.siblings("label").addClass("active"):a(c)[0].validity?d.siblings("label").toggleClass("active",a(c)[0].validity.badInput===!0):d.siblings("label").removeClass("active")})};var c="input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea";a(document).on("change",c,function(){0===a(this).val().length&&void 0===a(this).attr("placeholder")||a(this).siblings("label").addClass("active"),validate_field(a(this))}),a(document).ready(function(){Materialize.updateTextFields()}),a(document).on("reset",function(b){var d=a(b.target);d.is("form")&&(d.find(c).removeClass("valid").removeClass("invalid"),d.find(c).each(function(){""===a(this).attr("value")&&a(this).siblings("label").removeClass("active")}),d.find("select.initialized").each(function(){var a=d.find("option[selected]").text();d.siblings("input.select-dropdown").val(a)}))}),a(document).on("focus",c,function(){a(this).siblings("label, .prefix").addClass("active")}),a(document).on("blur",c,function(){var b=a(this),c=".prefix";0===b.val().length&&b[0].validity.badInput!==!0&&void 0===b.attr("placeholder")&&(c+=", label"),b.siblings(c).removeClass("active"),validate_field(b)}),window.validate_field=function(a){var b=void 0!==a.attr("data-length"),c=parseInt(a.attr("data-length")),d=a.val().length;0===a.val().length&&a[0].validity.badInput===!1?a.hasClass("validate")&&(a.removeClass("valid"),a.removeClass("invalid")):a.hasClass("validate")&&(a.is(":valid")&&b&&d<=c||a.is(":valid")&&!b?(a.removeClass("invalid"),a.addClass("valid")):(a.removeClass("valid"),a.addClass("invalid")))};var d="input[type=radio], input[type=checkbox]";a(document).on("keyup.radio",d,function(b){if(9===b.which){a(this).addClass("tabbed");var c=a(this);return void c.one("blur",function(b){a(this).removeClass("tabbed")})}});var e=a(".hiddendiv").first();e.length||(e=a('
        '),a("body").append(e));var f=".materialize-textarea";a(f).each(function(){var c=a(this);c.val().length&&b(c)}),a("body").on("keyup keydown autoresize",f,function(){b(a(this))}),a(document).on("change",'.file-field input[type="file"]',function(){for(var b=a(this).closest(".file-field"),c=b.find("input.file-path"),d=a(this)[0].files,e=[],f=0;f
        ');a(this).after(b)});var j=".range-field";a(document).on("change",h,function(b){var c=a(this).siblings(".thumb");c.find(".value").html(a(this).val())}),a(document).on("input mousedown touchstart",h,function(b){var c=a(this).siblings(".thumb"),d=a(this).outerWidth();c.length<=0&&(c=a(''),a(this).after(c)),c.find(".value").html(a(this).val()),i=!0,a(this).addClass("active"),c.hasClass("active")||c.velocity({height:"30px",width:"30px",top:"-20px",marginLeft:"-15px"},{duration:300,easing:"easeOutExpo"}),"input"!==b.type&&(g=void 0===b.pageX||null===b.pageX?b.originalEvent.touches[0].pageX-a(this).offset().left:b.pageX-a(this).offset().left,g<0?g=0:g>d&&(g=d),c.addClass("active").css("left",g)),c.find(".value").html(a(this).val())}),a(document).on("mouseup touchend",j,function(){i=!1,a(this).removeClass("active")}),a(document).on("mousemove touchmove",j,function(b){var c,d=a(this).children(".thumb");if(i){d.hasClass("active")||d.velocity({height:"30px",width:"30px",top:"-20px",marginLeft:"-15px"},{duration:300,easing:"easeOutExpo"}),c=void 0===b.pageX||null===b.pageX?b.originalEvent.touches[0].pageX-a(this).offset().left:b.pageX-a(this).offset().left;var e=a(this).outerWidth();c<0?c=0:c>e&&(c=e),d.addClass("active").css("left",c),d.find(".value").html(d.siblings(h).val())}}),a(document).on("mouseout touchleave",j,function(){if(!i){var b=a(this).children(".thumb");b.hasClass("active")&&b.velocity({height:"0",width:"0",top:"10px",marginLeft:"-6px"},{duration:100}),b.removeClass("active")}}),a.fn.autocomplete=function(b){var c={data:{},limit:1/0,onAutocomplete:null};return b=a.extend(c,b),this.each(function(){var c,d=a(this),e=b.data,f=0,g=0,h=d.closest(".input-field");if(!a.isEmptyObject(e)){var i,j=a('');h.length?(i=h.children(".autocomplete-content.dropdown-content").first(),i.length||h.append(j)):(i=d.next(".autocomplete-content.dropdown-content"),i.length||d.after(j)),i.length&&(j=i);var k=function(a,b){var c=b.find("img"),d=b.text().toLowerCase().indexOf(""+a.toLowerCase()),e=d+a.length-1,f=b.text().slice(0,d),g=b.text().slice(d,e+1),h=b.text().slice(e+1);b.html(""+f+""+g+""+h+""),c.length&&b.prepend(c)},l=function(){g=0,j.find(".active").removeClass("active")};d.off("keyup.autocomplete").on("keyup.autocomplete",function(g){if(f=0,13!==g.which&&38!==g.which&&40!==g.which){var h=d.val().toLowerCase();if(c!==h&&(j.empty(),l(),""!==h))for(var i in e)if(e.hasOwnProperty(i)&&i.toLowerCase().indexOf(h)!==-1&&i.toLowerCase()!==h){if(f>=b.limit)break;var m=a("
      • ");e[i]?m.append(''+i+""):m.append(""+i+""),j.append(m),k(h,m),f++}c=h}}),d.off("keydown.autocomplete").on("keydown.autocomplete",function(a){var b,c=a.which,d=j.children("li").length,e=j.children(".active").first();return 13===c?(b=j.children("li").eq(g),void(b.length&&(b.click(),a.preventDefault()))):void(38!==c&&40!==c||(a.preventDefault(),38===c&&g>0&&g--,40===c&&g
        ');h.addClass(d.attr("class"));var i=a(''),j=d.children("option, optgroup"),k=[],l=!1,m=d.find("option:selected").html()||d.find("option:first").html()||"",n=function(b,c,d){var e=c.is(":disabled")?"disabled ":"",f="optgroup-option"===d?"optgroup-option ":"",g=c.data("icon"),h=c.attr("class");if(g){var j="";return h&&(j=' class="'+h+'"'),"multiple"===d?i.append(a('
      • "+c.html()+"
      • ")):i.append(a('
      • "+c.html()+"
      • ")),!0}"multiple"===d?i.append(a('
      • "+c.html()+"
      • ")):i.append(a('
      • '+c.html()+"
      • "))};j.length&&j.each(function(){if(a(this).is("option"))e?n(d,a(this),"multiple"):n(d,a(this));else if(a(this).is("optgroup")){var b=a(this).children("option");i.append(a('
      • '+a(this).attr("label")+"
      • ")),b.each(function(){n(d,a(this),"optgroup-option")})}}),i.find("li:not(.optgroup)").each(function(f){a(this).click(function(g){if(!a(this).hasClass("disabled")&&!a(this).hasClass("optgroup")){var h=!0;e?(a('input[type="checkbox"]',this).prop("checked",function(a,b){return!b}),h=c(k,a(this).index(),d),q.trigger("focus")):(i.find("li").removeClass("active"),a(this).toggleClass("active"),q.val(a(this).text())),r(i,a(this)),d.find("option").eq(f).prop("selected",h),d.trigger("change"),"undefined"!=typeof b&&b()}g.stopPropagation()})}),d.wrap(h);var o=a('');d.is(":disabled")&&o.addClass("disabled");var p=m.replace(/"/g,"""),q=a('');d.before(q),q.before(o),q.after(i),d.is(":disabled")||q.dropdown({hover:!1,closeOnClick:!1}),d.attr("tabindex")&&a(q[0]).attr("tabindex",d.attr("tabindex")),d.addClass("initialized"),q.on({focus:function(){if(a("ul.select-dropdown").not(i[0]).is(":visible")&&a("input.select-dropdown").trigger("close"),!i.is(":visible")){a(this).trigger("open",["focus"]);var b=a(this).val();e&&b.indexOf(",")>=0&&(b=b.split(",")[0]);var c=i.find("li").filter(function(){return a(this).text().toLowerCase()===b.toLowerCase()})[0];r(i,c,!0)}},click:function(a){a.stopPropagation()}}),q.on("blur",function(){e||a(this).trigger("close"),i.find("li.selected").removeClass("selected")}),i.hover(function(){l=!0},function(){l=!1}),a(window).on({click:function(){e&&(l||q.trigger("close"))}}),e&&d.find("option:selected:not(:disabled)").each(function(){var b=a(this).index();c(k,b,d),i.find("li").eq(b).find(":checkbox").prop("checked",!0)});var r=function(b,c,d){if(c){b.find("li.selected").removeClass("selected");var f=a(c);f.addClass("selected"),e&&!d||i.scrollTo(f)}},s=[],t=function(b){if(9==b.which)return void q.trigger("close");if(40==b.which&&!i.is(":visible"))return void q.trigger("open");if(13!=b.which||i.is(":visible")){b.preventDefault();var c=String.fromCharCode(b.which).toLowerCase(),d=[9,13,27,38,40];if(c&&d.indexOf(b.which)===-1){s.push(c);var f=s.join(""),g=i.find("li").filter(function(){return 0===a(this).text().toLowerCase().indexOf(f)})[0];g&&r(i,g)}if(13==b.which){var h=i.find("li.selected:not(.disabled)")[0];h&&(a(h).trigger("click"),e||q.trigger("close"))}40==b.which&&(g=i.find("li.selected").length?i.find("li.selected").next("li:not(.disabled)")[0]:i.find("li:not(.disabled)")[0],r(i,g)),27==b.which&&q.trigger("close"),38==b.which&&(g=i.find("li.selected").prev("li:not(.disabled)")[0],g&&r(i,g)),setTimeout(function(){s=[]},1e3)}};q.on("keydown",t)}})}}(jQuery),function(a){var b={init:function(b){var c={indicators:!0,height:400,transition:500,interval:6e3};return b=a.extend(c,b),this.each(function(){function c(a,b){a.hasClass("center-align")?a.velocity({opacity:0,translateY:-100},{duration:b,queue:!1}):a.hasClass("right-align")?a.velocity({opacity:0,translateX:100},{duration:b,queue:!1}):a.hasClass("left-align")&&a.velocity({opacity:0,translateX:-100},{duration:b,queue:!1})}function d(a){a>=j.length?a=0:a<0&&(a=j.length-1),k=i.find(".active").index(),k!=a&&(e=j.eq(k),$caption=e.find(".caption"),e.removeClass("active"),e.velocity({opacity:0},{duration:b.transition,queue:!1,easing:"easeOutQuad",complete:function(){j.not(".active").velocity({opacity:0,translateX:0,translateY:0},{duration:0,queue:!1})}}),c($caption,b.transition),b.indicators&&f.eq(k).removeClass("active"),j.eq(a).velocity({opacity:1},{duration:b.transition,queue:!1,easing:"easeOutQuad"}),j.eq(a).find(".caption").velocity({opacity:1,translateX:0,translateY:0},{duration:b.transition,delay:b.transition,queue:!1,easing:"easeOutQuad"}),j.eq(a).addClass("active"),b.indicators&&f.eq(a).addClass("active"))}var e,f,g,h=a(this),i=h.find("ul.slides").first(),j=i.find("> li"),k=i.find(".active").index();k!=-1&&(e=j.eq(k)),h.hasClass("fullscreen")||(b.indicators?h.height(b.height+40):h.height(b.height),i.height(b.height)),j.find(".caption").each(function(){c(a(this),0)}),j.find("img").each(function(){var b="data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";a(this).attr("src")!==b&&(a(this).css("background-image","url("+a(this).attr("src")+")"),a(this).attr("src",b))}),b.indicators&&(f=a('
          '),j.each(function(c){var e=a('
        • ');e.click(function(){var c=i.parent(),e=c.find(a(this)).index();d(e),clearInterval(g),g=setInterval(function(){k=i.find(".active").index(),j.length==k+1?k=0:k+=1,d(k)},b.transition+b.interval)}),f.append(e)}),h.append(f),f=h.find("ul.indicators").find("li.indicator-item")),e?e.show():(j.first().addClass("active").velocity({opacity:1},{duration:b.transition,queue:!1,easing:"easeOutQuad"}),k=0,e=j.eq(k),b.indicators&&f.eq(k).addClass("active")),e.find("img").each(function(){e.find(".caption").velocity({opacity:1,translateX:0,translateY:0},{duration:b.transition,queue:!1,easing:"easeOutQuad"})}),g=setInterval(function(){k=i.find(".active").index(),d(k+1)},b.transition+b.interval);var l=!1,m=!1,n=!1;h.hammer({prevent_default:!1}).bind("pan",function(a){if("touch"===a.gesture.pointerType){clearInterval(g);var b=a.gesture.direction,c=a.gesture.deltaX,d=a.gesture.velocityX,e=a.gesture.velocityY;$curr_slide=i.find(".active"),Math.abs(d)>Math.abs(e)&&$curr_slide.velocity({translateX:c},{duration:50,queue:!1,easing:"easeOutQuad"}),4===b&&(c>h.innerWidth()/2||d<-.65)?n=!0:2===b&&(c<-1*h.innerWidth()/2||d>.65)&&(m=!0);var f;m&&(f=$curr_slide.next(),0===f.length&&(f=j.first()),f.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad"})),n&&(f=$curr_slide.prev(),0===f.length&&(f=j.last()),f.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad"}))}}).bind("panend",function(a){"touch"===a.gesture.pointerType&&($curr_slide=i.find(".active"),l=!1,curr_index=i.find(".active").index(),!n&&!m||j.length<=1?$curr_slide.velocity({translateX:0},{duration:300,queue:!1,easing:"easeOutQuad"}):m?(d(curr_index+1),$curr_slide.velocity({translateX:-1*h.innerWidth()},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){$curr_slide.velocity({opacity:0,translateX:0},{duration:0,queue:!1})}})):n&&(d(curr_index-1),$curr_slide.velocity({translateX:h.innerWidth()},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){$curr_slide.velocity({opacity:0,translateX:0},{duration:0,queue:!1})}})),m=!1,n=!1,clearInterval(g),g=setInterval(function(){k=i.find(".active").index(),j.length==k+1?k=0:k+=1,d(k)},b.transition+b.interval))}),h.on("sliderPause",function(){clearInterval(g)}),h.on("sliderStart",function(){clearInterval(g),g=setInterval(function(){k=i.find(".active").index(),j.length==k+1?k=0:k+=1,d(k)},b.transition+b.interval)}),h.on("sliderNext",function(){k=i.find(".active").index(),d(k+1)}),h.on("sliderPrev",function(){k=i.find(".active").index(),d(k-1)})})},pause:function(){a(this).trigger("sliderPause")},start:function(){a(this).trigger("sliderStart")},next:function(){a(this).trigger("sliderNext")},prev:function(){a(this).trigger("sliderPrev")}};a.fn.slider=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.tooltip"):b.init.apply(this,arguments)}}(jQuery),function(a){a(document).ready(function(){a(document).on("click.card",".card",function(b){a(this).find("> .card-reveal").length&&(a(b.target).is(a(".card-reveal .card-title"))||a(b.target).is(a(".card-reveal .card-title i"))?a(this).find(".card-reveal").velocity({translateY:0},{duration:225,queue:!1,easing:"easeInOutQuad",complete:function(){a(this).css({display:"none"})}}):(a(b.target).is(a(".card .activator"))||a(b.target).is(a(".card .activator i")))&&(a(b.target).closest(".card").css("overflow","hidden"),a(this).find(".card-reveal").css({display:"block"}).velocity("stop",!1).velocity({translateY:"-100%"},{duration:300,queue:!1,easing:"easeInOutQuad"})))})})}(jQuery),function(a){var b={data:[],placeholder:"",secondaryPlaceholder:"",autocompleteData:{},autocompleteLimit:1/0};a(document).ready(function(){a(document).on("click",".chip .close",function(b){var c=a(this).closest(".chips");c.attr("data-initialized")||a(this).closest(".chip").remove()})}),a.fn.material_chip=function(c){var d=this;if(this.$el=a(this),this.$document=a(document),this.SELS={CHIPS:".chips",CHIP:".chip",INPUT:"input",DELETE:".material-icons",SELECTED_CHIP:".selected"},"data"===c)return this.$el.data("chips");var e=a.extend({},b,c);d.hasAutocomplete=!a.isEmptyObject(e.autocompleteData),this.init=function(){var b=0;d.$el.each(function(){var c=a(this),f=Materialize.guid();d.chipId=f,e.data&&e.data instanceof Array||(e.data=[]),c.data("chips",e.data),c.attr("data-index",b),c.attr("data-initialized",!0),c.hasClass(d.SELS.CHIPS)||c.addClass("chips"),d.chips(c,f),b++})},this.handleEvents=function(){var b=d.SELS;d.$document.off("click.chips-focus",b.CHIPS).on("click.chips-focus",b.CHIPS,function(c){a(c.target).find(b.INPUT).focus()}),d.$document.off("click.chips-select",b.CHIP).on("click.chips-select",b.CHIP,function(c){var e=a(c.target);if(e.length){var f=e.hasClass("selected"),g=e.closest(b.CHIPS);a(b.CHIP).removeClass("selected"),f||d.selectChip(e.index(),g)}}),d.$document.off("keydown.chips").on("keydown.chips",function(c){if(!a(c.target).is("input, textarea")){var e,f=d.$document.find(b.CHIP+b.SELECTED_CHIP),g=f.closest(b.CHIPS),h=f.siblings(b.CHIP).length;if(f.length)if(8===c.which||46===c.which){c.preventDefault(),e=f.index(),d.deleteChip(e,g);var i=null;e+1h)return void g.find("input").focus();d.selectChip(e,g)}}}),d.$document.off("focusin.chips",b.CHIPS+" "+b.INPUT).on("focusin.chips",b.CHIPS+" "+b.INPUT,function(c){var d=a(c.target).closest(b.CHIPS);d.addClass("focus"),d.siblings("label, .prefix").addClass("active"),a(b.CHIP).removeClass("selected")}),d.$document.off("focusout.chips",b.CHIPS+" "+b.INPUT).on("focusout.chips",b.CHIPS+" "+b.INPUT,function(c){var d=a(c.target).closest(b.CHIPS);d.removeClass("focus"),d.data("chips").length||d.siblings("label").removeClass("active"),d.siblings(".prefix").removeClass("active")}),d.$document.off("keydown.chips-add",b.CHIPS+" "+b.INPUT).on("keydown.chips-add",b.CHIPS+" "+b.INPUT,function(c){var e=a(c.target),f=e.closest(b.CHIPS),g=f.children(b.CHIP).length;if(13===c.which){if(d.hasAutocomplete&&f.find(".autocomplete-content.dropdown-content").length&&f.find(".autocomplete-content.dropdown-content").children().length)return;return c.preventDefault(),d.addChip({tag:e.val()},f),void e.val("")}if((8===c.keyCode||37===c.keyCode)&&""===e.val()&&g)return c.preventDefault(),d.selectChip(g-1,f),void e.blur()}),d.$document.off("click.chips-delete",b.CHIPS+" "+b.DELETE).on("click.chips-delete",b.CHIPS+" "+b.DELETE,function(c){var e=a(c.target),f=e.closest(b.CHIPS),g=e.closest(b.CHIP);c.stopPropagation(),d.deleteChip(g.index(),f),f.find("input").focus()})},this.chips=function(b,c){var f="";b.data("chips").forEach(function(a){f+=d.renderChip(a)}),f+='',b.html(f),d.setPlaceholder(b);var g=b.next("label");g.length&&(g.attr("for",c),b.data("chips").length&&g.addClass("active"));var h=a("#"+c);d.hasAutocomplete&&h.autocomplete({data:e.autocompleteData,limit:e.autocompleteLimit,onAutocomplete:function(a){d.addChip({tag:a},b),h.val(""),h.focus()}})},this.renderChip=function(a){if(a.tag){var b='
          '+a.tag;return a.image&&(b+=' '),b+='close',b+="
          "}},this.setPlaceholder=function(a){a.data("chips").length&&e.placeholder?a.find("input").prop("placeholder",e.placeholder):!a.data("chips").length&&e.secondaryPlaceholder&&a.find("input").prop("placeholder",e.secondaryPlaceholder)},this.isValid=function(a,b){for(var c=a.data("chips"),d=!1,e=0;e=e&&!a(this).hasClass("pinned")&&(c(a(this)),a(this).css("top",b.offset),a(this).addClass("pinned")),eb.bottom&&!a(this).hasClass("pin-bottom")&&(c(a(this)),a(this).addClass("pin-bottom"),a(this).css("top",b.bottom-g))})}var e=Materialize.guid(),f=a(this),g=a(this).offset().top;a(this).data("pushpin-id",e),d(f,a(window).scrollTop()),a(window).on("scroll."+e,function(){var c=a(window).scrollTop()+b.offset;d(f,c)})}))}}(jQuery),function(a){a(document).ready(function(){a.fn.reverse=[].reverse,a(document).on("mouseenter.fixedActionBtn",".fixed-action-btn:not(.click-to-toggle):not(.toolbar)",function(c){var d=a(this);b(d)}),a(document).on("mouseleave.fixedActionBtn",".fixed-action-btn:not(.click-to-toggle):not(.toolbar)",function(b){var d=a(this);c(d)}),a(document).on("click.fabClickToggle",".fixed-action-btn.click-to-toggle > a",function(d){var e=a(this),f=e.parent();f.hasClass("active")?c(f):b(f)}),a(document).on("click.fabToolbar",".fixed-action-btn.toolbar > a",function(b){var c=a(this),e=c.parent();d(e)})}),a.fn.extend({openFAB:function(){b(a(this))},closeFAB:function(){c(a(this))},openToolbar:function(){d(a(this))},closeToolbar:function(){e(a(this))}});var b=function(b){var c=b;if(c.hasClass("active")===!1){var d,e,f=c.hasClass("horizontal");f===!0?e=40:d=40,c.addClass("active"),c.find("ul .btn-floating").velocity({scaleY:".4",scaleX:".4",translateY:d+"px",translateX:e+"px"},{duration:0});var g=0;c.find("ul .btn-floating").reverse().each(function(){a(this).velocity({opacity:"1",scaleX:"1",scaleY:"1",translateY:"0",translateX:"0"},{duration:80,delay:g}),g+=40})}},c=function(a){var b,c,d=a,e=d.hasClass("horizontal");e===!0?c=40:b=40,d.removeClass("active");d.find("ul .btn-floating").velocity("stop",!0),d.find("ul .btn-floating").velocity({opacity:"0",scaleX:".4",scaleY:".4",translateY:b+"px",translateX:c+"px"},{duration:80})},d=function(b){if("true"!==b.attr("data-open")){var c,d,f,g=window.innerWidth,h=window.innerHeight,i=b[0].getBoundingClientRect(),j=b.find("> a").first(),k=b.find("> ul").first(),l=a('
          '),m=j.css("background-color");j.append(l),c=i.left-g/2+i.width/2,d=h-i.bottom,f=g/l.width(),b.attr("data-origin-bottom",i.bottom),b.attr("data-origin-left",i.left),b.attr("data-origin-width",i.width),b.addClass("active"),b.attr("data-open",!0),b.css({"text-align":"center",width:"100%",bottom:0,left:0,transform:"translateX("+c+"px)",transition:"none"}),j.css({transform:"translateY("+-d+"px)",transition:"none"}),l.css({"background-color":m}),setTimeout(function(){b.css({transform:"",transition:"transform .2s cubic-bezier(0.550, 0.085, 0.680, 0.530), background-color 0s linear .2s"}),j.css({overflow:"visible",transform:"",transition:"transform .2s"}),setTimeout(function(){b.css({overflow:"hidden","background-color":m}),l.css({transform:"scale("+f+")",transition:"transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)"}),k.find("> li > a").css({opacity:1}),a(window).on("scroll.fabToolbarClose",function(){e(b),a(window).off("scroll.fabToolbarClose"),a(document).off("click.fabToolbarClose")}),a(document).on("click.fabToolbarClose",function(c){a(c.target).closest(k).length||(e(b),a(window).off("scroll.fabToolbarClose"),a(document).off("click.fabToolbarClose"))})},100)},0)}},e=function(a){if("true"===a.attr("data-open")){var b,c,d,e=window.innerWidth,f=window.innerHeight,g=a.attr("data-origin-width"),h=a.attr("data-origin-bottom"),i=a.attr("data-origin-left"),j=a.find("> .btn-floating").first(),k=a.find("> ul").first(),l=a.find(".fab-backdrop"),m=j.css("background-color");b=i-e/2+g/2,c=f-h,d=e/l.width(),a.removeClass("active"),a.attr("data-open",!1),a.css({"background-color":"transparent",transition:"none"}),j.css({transition:"none"}),l.css({transform:"scale(0)","background-color":m}),k.find("> li > a").css({opacity:""}),setTimeout(function(){l.remove(),a.css({"text-align":"",width:"",bottom:"",left:"",overflow:"","background-color":"",transform:"translate3d("+-b+"px,0,0)"}),j.css({overflow:"",transform:"translate3d(0,"+c+"px,0)"}),setTimeout(function(){a.css({transform:"translate3d(0,0,0)",transition:"transform .2s"}),j.css({transform:"translate3d(0,0,0)",transition:"transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)"})},20)},200)}}}(jQuery),function(a){Materialize.fadeInImage=function(b){var c;if("string"==typeof b)c=a(b);else{if("object"!=typeof b)return;c=b}c.css({opacity:0}),a(c).velocity({opacity:1},{duration:650,queue:!1,easing:"easeOutSine"}),a(c).velocity({opacity:1},{duration:1300,queue:!1,easing:"swing",step:function(b,c){c.start=100;var d=b/100,e=150-(100-b)/1.75;e<100&&(e=100),b>=0&&a(this).css({"-webkit-filter":"grayscale("+d+")brightness("+e+"%)",filter:"grayscale("+d+")brightness("+e+"%)"})}})},Materialize.showStaggeredList=function(b){var c;if("string"==typeof b)c=a(b);else{if("object"!=typeof b)return;c=b}var d=0;c.find("li").velocity({translateX:"-100px"},{duration:0}),c.find("li").each(function(){a(this).velocity({opacity:"1",translateX:"0"},{duration:800,delay:d,easing:[60,10]}),d+=120})},a(document).ready(function(){var b=!1,c=!1;a(".dismissable").each(function(){a(this).hammer({prevent_default:!1}).bind("pan",function(d){if("touch"===d.gesture.pointerType){var e=a(this),f=d.gesture.direction,g=d.gesture.deltaX,h=d.gesture.velocityX;e.velocity({translateX:g},{duration:50,queue:!1,easing:"easeOutQuad"}),4===f&&(g>e.innerWidth()/2||h<-.75)&&(b=!0),2===f&&(g<-1*e.innerWidth()/2||h>.75)&&(c=!0)}}).bind("panend",function(d){if(Math.abs(d.gesture.deltaX)i+f&&d.done!==!0){if("function"==typeof g)g.call(this,h);else if("string"==typeof g){var j=new Function(g);j(h)}d.done=!0}}}},d=Materialize.throttle(function(){c()},a.throttle||100);b||(window.addEventListener("scroll",d),window.addEventListener("resize",d),b=!0),setTimeout(d,0)}}(jQuery),function(a){"function"==typeof define&&define.amd?define("picker",["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):this.Picker=a(jQuery)}(function(a){function b(f,g,i,l){function m(){return b._.node("div",b._.node("div",b._.node("div",b._.node("div",y.component.nodes(t.open),v.box),v.wrap),v.frame),v.holder)}function n(){w.data(g,y).addClass(v.input).attr("tabindex",-1).val(w.data("value")?y.get("select",u.format):f.value),u.editable||w.on("focus."+t.id+" click."+t.id,function(a){a.preventDefault(),y.$root.eq(0).focus()}).on("keydown."+t.id,q),e(f,{haspopup:!0,expanded:!1,readonly:!1,owns:f.id+"_root"})}function o(){y.$root.on({keydown:q,focusin:function(a){y.$root.removeClass(v.focused),a.stopPropagation()},"mousedown click":function(b){var c=b.target;c!=y.$root.children()[0]&&(b.stopPropagation(),"mousedown"!=b.type||a(c).is("input, select, textarea, button, option")||(b.preventDefault(),y.$root.eq(0).focus()))}}).on({focus:function(){w.addClass(v.target)},blur:function(){w.removeClass(v.target)}}).on("focus.toOpen",r).on("click","[data-pick], [data-nav], [data-clear], [data-close]",function(){var b=a(this),c=b.data(),d=b.hasClass(v.navDisabled)||b.hasClass(v.disabled),e=h();e=e&&(e.type||e.href),(d||e&&!a.contains(y.$root[0],e))&&y.$root.eq(0).focus(),!d&&c.nav?y.set("highlight",y.component.item.highlight,{nav:c.nav}):!d&&"pick"in c?y.set("select",c.pick):c.clear?y.clear().close(!0):c.close&&y.close(!0)}),e(y.$root[0],"hidden",!0)}function p(){var b;u.hiddenName===!0?(b=f.name,f.name=""):(b=["string"==typeof u.hiddenPrefix?u.hiddenPrefix:"","string"==typeof u.hiddenSuffix?u.hiddenSuffix:"_submit"],b=b[0]+f.name+b[1]),y._hidden=a('")[0],w.on("change."+t.id,function(){y._hidden.value=f.value?y.get("select",u.formatSubmit):""}),u.container?a(u.container).append(y._hidden):w.after(y._hidden)}function q(a){var b=a.keyCode,c=/^(8|46)$/.test(b);return 27==b?(y.close(),!1):void((32==b||c||!t.open&&y.component.key[b])&&(a.preventDefault(),a.stopPropagation(),c?y.clear().close():y.open()))}function r(a){a.stopPropagation(),"focus"==a.type&&y.$root.addClass(v.focused),y.open()}if(!f)return b;var s=!1,t={id:f.id||"P"+Math.abs(~~(Math.random()*new Date))},u=i?a.extend(!0,{},i.defaults,l):l||{},v=a.extend({},b.klasses(),u.klass),w=a(f),x=function(){return this.start()},y=x.prototype={constructor:x,$node:w,start:function(){return t&&t.start?y:(t.methods={},t.start=!0,t.open=!1,t.type=f.type,f.autofocus=f==h(),f.readOnly=!u.editable,f.id=f.id||t.id,"text"!=f.type&&(f.type="text"),y.component=new i(y,u),y.$root=a(b._.node("div",m(),v.picker,'id="'+f.id+'_root" tabindex="0"')),o(),u.formatSubmit&&p(),n(),u.container?a(u.container).append(y.$root):w.after(y.$root),y.on({start:y.component.onStart,render:y.component.onRender,stop:y.component.onStop,open:y.component.onOpen,close:y.component.onClose,set:y.component.onSet}).on({start:u.onStart,render:u.onRender,stop:u.onStop,open:u.onOpen,close:u.onClose,set:u.onSet}),s=c(y.$root.children()[0]),f.autofocus&&y.open(),y.trigger("start").trigger("render"))},render:function(a){return a?y.$root.html(m()):y.$root.find("."+v.box).html(y.component.nodes(t.open)),y.trigger("render")},stop:function(){return t.start?(y.close(),y._hidden&&y._hidden.parentNode.removeChild(y._hidden),y.$root.remove(),w.removeClass(v.input).removeData(g),setTimeout(function(){w.off("."+t.id)},0),f.type=t.type,f.readOnly=!1,y.trigger("stop"),t.methods={},t.start=!1,y):y},open:function(c){return t.open?y:(w.addClass(v.active),e(f,"expanded",!0),setTimeout(function(){y.$root.addClass(v.opened),e(y.$root[0],"hidden",!1)},0),c!==!1&&(t.open=!0,s&&k.css("overflow","hidden").css("padding-right","+="+d()),y.$root.eq(0).focus(),j.on("click."+t.id+" focusin."+t.id,function(a){var b=a.target;b!=f&&b!=document&&3!=a.which&&y.close(b===y.$root.children()[0])}).on("keydown."+t.id,function(c){var d=c.keyCode,e=y.component.key[d],f=c.target;27==d?y.close(!0):f!=y.$root[0]||!e&&13!=d?a.contains(y.$root[0],f)&&13==d&&(c.preventDefault(),f.click()):(c.preventDefault(),e?b._.trigger(y.component.key.go,y,[b._.trigger(e)]):y.$root.find("."+v.highlighted).hasClass(v.disabled)||y.set("select",y.component.item.highlight).close())})),y.trigger("open"))},close:function(a){return a&&(y.$root.off("focus.toOpen").eq(0).focus(),setTimeout(function(){y.$root.on("focus.toOpen",r)},0)),w.removeClass(v.active),e(f,"expanded",!1),setTimeout(function(){y.$root.removeClass(v.opened+" "+v.focused),e(y.$root[0],"hidden",!0)},0),t.open?(t.open=!1,s&&k.css("overflow","").css("padding-right","-="+d()),j.off("."+t.id),y.trigger("close")):y},clear:function(a){return y.set("clear",null,a)},set:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(d=g&&a.isPlainObject(c)?c:d||{},b){g||(h[b]=c);for(e in h)f=h[e],e in y.component.item&&(void 0===f&&(f=null),y.component.set(e,f,d)),"select"!=e&&"clear"!=e||w.val("clear"==e?"":y.get(e,u.format)).trigger("change");y.render()}return d.muted?y:y.trigger("set",h)},get:function(a,c){if(a=a||"value",null!=t[a])return t[a];if("valueSubmit"==a){if(y._hidden)return y._hidden.value;a="value"}if("value"==a)return f.value;if(a in y.component.item){if("string"==typeof c){var d=y.component.get(a);return d?b._.trigger(y.component.formats.toString,y.component,[c,d]):""}return y.component.get(a)}},on:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(b){g||(h[b]=c);for(e in h)f=h[e],d&&(e="_"+e),t.methods[e]=t.methods[e]||[],t.methods[e].push(f)}return y},off:function(){var a,b,c=arguments;for(a=0,namesCount=c.length;a').appendTo("body"),c=b[0].offsetWidth;b.css("overflow","scroll");var d=a('
          ').appendTo(b),e=d[0].offsetWidth;return b.remove(),c-e}function e(b,c,d){if(a.isPlainObject(c))for(var e in c)f(b,e,c[e]);else f(b,c,d)}function f(a,b,c){a.setAttribute(("role"==b?"":"aria-")+b,c)}function g(b,c){a.isPlainObject(b)||(b={attribute:c}),c="";for(var d in b){var e=("role"==d?"":"aria-")+d,f=b[d];c+=null==f?"":e+'="'+b[d]+'"'}return c}function h(){try{return document.activeElement}catch(a){}}var i=a(window),j=a(document),k=a(document.documentElement);return b.klasses=function(a){return a=a||"picker",{picker:a,opened:a+"--opened",focused:a+"--focused",input:a+"__input",active:a+"__input--active",target:a+"__input--target",holder:a+"__holder",frame:a+"__frame",wrap:a+"__wrap",box:a+"__box"}},b._={group:function(a){for(var c,d="",e=b._.trigger(a.min,a);e<=b._.trigger(a.max,a,[e]);e+=a.i)c=b._.trigger(a.item,a,[e]),d+=b._.node(a.node,c[0],c[1],c[2]);return d},node:function(b,c,d,e){return c?(c=a.isArray(c)?c.join(""):c,d=d?' class="'+d+'"':"",e=e?" "+e:"","<"+b+d+e+">"+c+""):""},lead:function(a){return(a<10?"0":"")+a},trigger:function(a,b,c){return"function"==typeof a?a.apply(b,c||[]):a},digits:function(a){return/\d/.test(a[1])?2:1},isDate:function(a){return{}.toString.call(a).indexOf("Date")>-1&&this.isInteger(a.getDate())},isInteger:function(a){return{}.toString.call(a).indexOf("Number")>-1&&a%1===0},ariaAttr:g},b.extend=function(c,d){a.fn[c]=function(e,f){var g=this.data(c);return"picker"==e?g:g&&"string"==typeof e?b._.trigger(g[e],g,[f]):this.each(function(){var f=a(this);f.data(c)||new b(this,c,d,e)})},a.fn[c].defaults=d.defaults},b}),function(a){"function"==typeof define&&define.amd?define(["picker","jquery"],a):"object"==typeof exports?module.exports=a(require("./picker.js"),require("jquery")):a(Picker,jQuery)}(function(a,b){function c(a,b){var c=this,d=a.$node[0],e=d.value,f=a.$node.data("value"),g=f||e,h=f?b.formatSubmit:b.format,i=function(){return d.currentStyle?"rtl"==d.currentStyle.direction:"rtl"==getComputedStyle(a.$root[0]).direction};c.settings=b,c.$node=a.$node,c.queue={min:"measure create",max:"measure create",now:"now create",select:"parse create validate",highlight:"parse navigate create validate",view:"parse create validate viewset",disable:"deactivate",enable:"activate"},c.item={},c.item.clear=null,c.item.disable=(b.disable||[]).slice(0),c.item.enable=-function(a){return a[0]===!0?a.shift():-1}(c.item.disable),c.set("min",b.min).set("max",b.max).set("now"),g?c.set("select",g,{format:h}):c.set("select",null).set("highlight",c.item.now),c.key={40:7,38:-7,39:function(){return i()?-1:1},37:function(){return i()?1:-1},go:function(a){var b=c.item.highlight,d=new Date(b.year,b.month,b.date+a);c.set("highlight",d,{interval:a}),this.render()}},a.on("render",function(){a.$root.find("."+b.klass.selectMonth).on("change",function(){var c=this.value;c&&(a.set("highlight",[a.get("view").year,c,a.get("highlight").date]),a.$root.find("."+b.klass.selectMonth).trigger("focus"))}),a.$root.find("."+b.klass.selectYear).on("change",function(){var c=this.value;c&&(a.set("highlight",[c,a.get("view").month,a.get("highlight").date]),a.$root.find("."+b.klass.selectYear).trigger("focus"))})},1).on("open",function(){var d="";c.disabled(c.get("now"))&&(d=":not(."+b.klass.buttonToday+")"),a.$root.find("button"+d+", select").attr("disabled",!1)},1).on("close",function(){a.$root.find("button, select").attr("disabled",!0)},1)}var d=7,e=6,f=a._;c.prototype.set=function(a,b,c){var d=this,e=d.item;return null===b?("clear"==a&&(a="select"),e[a]=b,d):(e["enable"==a?"disable":"flip"==a?"enable":a]=d.queue[a].split(" ").map(function(e){return b=d[e](a,b,c)}).pop(),"select"==a?d.set("highlight",e.select,c):"highlight"==a?d.set("view",e.highlight,c):a.match(/^(flip|min|max|disable|enable)$/)&&(e.select&&d.disabled(e.select)&&d.set("select",e.select,c),e.highlight&&d.disabled(e.highlight)&&d.set("highlight",e.highlight,c)),d)},c.prototype.get=function(a){return this.item[a]},c.prototype.create=function(a,c,d){var e,g=this;return c=void 0===c?a:c, -c==-(1/0)||c==1/0?e=c:b.isPlainObject(c)&&f.isInteger(c.pick)?c=c.obj:b.isArray(c)?(c=new Date(c[0],c[1],c[2]),c=f.isDate(c)?c:g.create().obj):c=f.isInteger(c)||f.isDate(c)?g.normalize(new Date(c),d):g.now(a,c,d),{year:e||c.getFullYear(),month:e||c.getMonth(),date:e||c.getDate(),day:e||c.getDay(),obj:e||c,pick:e||c.getTime()}},c.prototype.createRange=function(a,c){var d=this,e=function(a){return a===!0||b.isArray(a)||f.isDate(a)?d.create(a):a};return f.isInteger(a)||(a=e(a)),f.isInteger(c)||(c=e(c)),f.isInteger(a)&&b.isPlainObject(c)?a=[c.year,c.month,c.date+a]:f.isInteger(c)&&b.isPlainObject(a)&&(c=[a.year,a.month,a.date+c]),{from:e(a),to:e(c)}},c.prototype.withinRange=function(a,b){return a=this.createRange(a.from,a.to),b.pick>=a.from.pick&&b.pick<=a.to.pick},c.prototype.overlapRanges=function(a,b){var c=this;return a=c.createRange(a.from,a.to),b=c.createRange(b.from,b.to),c.withinRange(a,b.from)||c.withinRange(a,b.to)||c.withinRange(b,a.from)||c.withinRange(b,a.to)},c.prototype.now=function(a,b,c){return b=new Date,c&&c.rel&&b.setDate(b.getDate()+c.rel),this.normalize(b,c)},c.prototype.navigate=function(a,c,d){var e,f,g,h,i=b.isArray(c),j=b.isPlainObject(c),k=this.item.view;if(i||j){for(j?(f=c.year,g=c.month,h=c.date):(f=+c[0],g=+c[1],h=+c[2]),d&&d.nav&&k&&k.month!==g&&(f=k.year,g=k.month),e=new Date(f,g+(d&&d.nav?d.nav:0),1),f=e.getFullYear(),g=e.getMonth();new Date(f,g,h).getMonth()!==g;)h-=1;c=[f,g,h]}return c},c.prototype.normalize=function(a){return a.setHours(0,0,0,0),a},c.prototype.measure=function(a,b){var c=this;return b?"string"==typeof b?b=c.parse(a,b):f.isInteger(b)&&(b=c.now(a,b,{rel:b})):b="min"==a?-(1/0):1/0,b},c.prototype.viewset=function(a,b){return this.create([b.year,b.month,1])},c.prototype.validate=function(a,c,d){var e,g,h,i,j=this,k=c,l=d&&d.interval?d.interval:1,m=j.item.enable===-1,n=j.item.min,o=j.item.max,p=m&&j.item.disable.filter(function(a){if(b.isArray(a)){var d=j.create(a).pick;dc.pick&&(g=!0)}return f.isInteger(a)}).length;if((!d||!d.nav)&&(!m&&j.disabled(c)||m&&j.disabled(c)&&(p||e||g)||!m&&(c.pick<=n.pick||c.pick>=o.pick)))for(m&&!p&&(!g&&l>0||!e&&l<0)&&(l*=-1);j.disabled(c)&&(Math.abs(l)>1&&(c.monthk.month)&&(c=k,l=l>0?1:-1),c.pick<=n.pick?(h=!0,l=1,c=j.create([n.year,n.month,n.date+(c.pick===n.pick?0:-1)])):c.pick>=o.pick&&(i=!0,l=-1,c=j.create([o.year,o.month,o.date+(c.pick===o.pick?0:1)])),!h||!i);)c=j.create([c.year,c.month,c.date+l]);return c},c.prototype.disabled=function(a){var c=this,d=c.item.disable.filter(function(d){return f.isInteger(d)?a.day===(c.settings.firstDay?d:d-1)%7:b.isArray(d)||f.isDate(d)?a.pick===c.create(d).pick:b.isPlainObject(d)?c.withinRange(d,a):void 0});return d=d.length&&!d.filter(function(a){return b.isArray(a)&&"inverted"==a[3]||b.isPlainObject(a)&&a.inverted}).length,c.item.enable===-1?!d:d||a.pickc.item.max.pick},c.prototype.parse=function(a,b,c){var d=this,e={};return b&&"string"==typeof b?(c&&c.format||(c=c||{},c.format=d.settings.format),d.formats.toArray(c.format).map(function(a){var c=d.formats[a],g=c?f.trigger(c,d,[b,e]):a.replace(/^!/,"").length;c&&(e[a]=b.substr(0,g)),b=b.substr(g)}),[e.yyyy||e.yy,+(e.mm||e.m)-1,e.dd||e.d]):b},c.prototype.formats=function(){function a(a,b,c){var d=a.match(/\w+/)[0];return c.mm||c.m||(c.m=b.indexOf(d)+1),d.length}function b(a){return a.match(/\w+/)[0].length}return{d:function(a,b){return a?f.digits(a):b.date},dd:function(a,b){return a?2:f.lead(b.date)},ddd:function(a,c){return a?b(a):this.settings.weekdaysShort[c.day]},dddd:function(a,c){return a?b(a):this.settings.weekdaysFull[c.day]},m:function(a,b){return a?f.digits(a):b.month+1},mm:function(a,b){return a?2:f.lead(b.month+1)},mmm:function(b,c){var d=this.settings.monthsShort;return b?a(b,d,c):d[c.month]},mmmm:function(b,c){var d=this.settings.monthsFull;return b?a(b,d,c):d[c.month]},yy:function(a,b){return a?2:(""+b.year).slice(2)},yyyy:function(a,b){return a?4:b.year},toArray:function(a){return a.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)},toString:function(a,b){var c=this;return c.formats.toArray(a).map(function(a){return f.trigger(c.formats[a],c,[0,b])||a.replace(/^!/,"")}).join("")}}}(),c.prototype.isDateExact=function(a,c){var d=this;return f.isInteger(a)&&f.isInteger(c)||"boolean"==typeof a&&"boolean"==typeof c?a===c:(f.isDate(a)||b.isArray(a))&&(f.isDate(c)||b.isArray(c))?d.create(a).pick===d.create(c).pick:!(!b.isPlainObject(a)||!b.isPlainObject(c))&&(d.isDateExact(a.from,c.from)&&d.isDateExact(a.to,c.to))},c.prototype.isDateOverlap=function(a,c){var d=this,e=d.settings.firstDay?1:0;return f.isInteger(a)&&(f.isDate(c)||b.isArray(c))?(a=a%7+e,a===d.create(c).day+1):f.isInteger(c)&&(f.isDate(a)||b.isArray(a))?(c=c%7+e,c===d.create(a).day+1):!(!b.isPlainObject(a)||!b.isPlainObject(c))&&d.overlapRanges(a,c)},c.prototype.flipEnable=function(a){var b=this.item;b.enable=a||(b.enable==-1?1:-1)},c.prototype.deactivate=function(a,c){var d=this,e=d.item.disable.slice(0);return"flip"==c?d.flipEnable():c===!1?(d.flipEnable(1),e=[]):c===!0?(d.flipEnable(-1),e=[]):c.map(function(a){for(var c,g=0;g=n.year&&k.month>=n.month||!a&&k.year<=m.year&&k.month<=m.month?" "+c.klass.navDisabled:""),"data-nav="+(a||-1)+" "+f.ariaAttr({role:"button",controls:b.$node[0].id+"_table"})+' title="'+(a?c.labelMonthNext:c.labelMonthPrev)+'"')},q=function(d){var e=c.showMonthsShort?c.monthsShort:c.monthsFull;return"short_months"==d&&(e=c.monthsShort),c.selectMonths&&void 0==d?f.node("select",f.group({min:0,max:11,i:1,node:"option",item:function(a){return[e[a],0,"value="+a+(k.month==a?" selected":"")+(k.year==m.year&&an.month?" disabled":"")]}}),c.klass.selectMonth+" browser-default",(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table"})+' title="'+c.labelMonthSelect+'"'):"short_months"==d?null!=i?f.node("div",e[i.month]):f.node("div",e[k.month]):f.node("div",e[k.month],c.klass.month)},r=function(d){var e=k.year,g=c.selectYears===!0?5:~~(c.selectYears/2);if(g){var h=m.year,i=n.year,j=e-g,l=e+g;if(h>j&&(l+=h-j,j=h),ip?p:o,l=i}if(c.selectYears&&void 0==d)return f.node("select",f.group({min:j,max:l,i:1,node:"option",item:function(a){return[a,0,"value="+a+(e==a?" selected":"")]}}),c.klass.selectYear+" browser-default",(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table"})+' title="'+c.labelYearSelect+'"')}return"raw"==d?f.node("div",e):f.node("div",e,c.klass.year)};return createDayLabel=function(){return null!=i?f.node("div",i.date):f.node("div",h.date)},createWeekdayLabel=function(){var a;a=null!=i?i.day:h.day;var b=c.weekdaysFull[a];return b},f.node("div",f.node("div",createWeekdayLabel(),"picker__weekday-display")+f.node("div",q("short_months"),c.klass.month_display)+f.node("div",createDayLabel(),c.klass.day_display)+f.node("div",r("raw"),c.klass.year_display),c.klass.date_display)+f.node("div",f.node("div",(c.selectYears?q()+r():q()+r())+p()+p(1),c.klass.header)+f.node("table",o+f.node("tbody",f.group({min:0,max:e-1,i:1,node:"tr",item:function(a){var e=c.firstDay&&0===b.create([k.year,k.month,1]).day?-7:0;return[f.group({min:d*a-k.day+e+1,max:function(){return this.min+d-1},i:1,node:"td",item:function(a){a=b.create([k.year,k.month,a+(c.firstDay?1:0)]);var d=i&&i.pick==a.pick,e=j&&j.pick==a.pick,g=l&&b.disabled(a)||a.pickn.pick,o=f.trigger(b.formats.toString,b,[c.format,a]);return[f.node("div",a.date,function(b){return b.push(k.month==a.month?c.klass.infocus:c.klass.outfocus),h.pick==a.pick&&b.push(c.klass.now),d&&b.push(c.klass.selected),e&&b.push(c.klass.highlighted),g&&b.push(c.klass.disabled),b.join(" ")}([c.klass.day]),"data-pick="+a.pick+" "+f.ariaAttr({role:"gridcell",label:o,selected:!(!d||b.$node.val()!==o)||null,activedescendant:!!e||null,disabled:!!g||null})),"",f.ariaAttr({role:"presentation"})]}})]}})),c.klass.table,'id="'+b.$node[0].id+'_table" '+f.ariaAttr({role:"grid",controls:b.$node[0].id,readonly:!0})),c.klass.calendar_container)+f.node("div",f.node("button",c.today,"btn-flat picker__today","type=button data-pick="+h.pick+(a&&!b.disabled(h)?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id}))+f.node("button",c.clear,"btn-flat picker__clear","type=button data-clear=1"+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id}))+f.node("button",c.close,"btn-flat picker__close","type=button data-close=true "+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id})),c.klass.footer)},c.defaults=function(a){return{labelMonthNext:"Next month",labelMonthPrev:"Previous month",labelMonthSelect:"Select a month",labelYearSelect:"Select a year",monthsFull:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdaysFull:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],weekdaysLetter:["S","M","T","W","T","F","S"],today:"Today",clear:"Clear",close:"Close",format:"d mmmm, yyyy",klass:{table:a+"table",header:a+"header",date_display:a+"date-display",day_display:a+"day-display",month_display:a+"month-display",year_display:a+"year-display",calendar_container:a+"calendar-container",navPrev:a+"nav--prev",navNext:a+"nav--next",navDisabled:a+"nav--disabled",month:a+"month",year:a+"year",selectMonth:a+"select--month",selectYear:a+"select--year",weekdays:a+"weekday",day:a+"day",disabled:a+"day--disabled",selected:a+"day--selected",highlighted:a+"day--highlighted",now:a+"day--today",infocus:a+"day--infocus",outfocus:a+"day--outfocus",footer:a+"footer",buttonClear:a+"button--clear",buttonToday:a+"button--today",buttonClose:a+"button--close"}}}(a.klasses().picker+"__"),a.extend("pickadate",c)}),function(a){function b(){var b=+a(this).attr("data-length"),c=+a(this).val().length,d=c<=b;a(this).parent().find('span[class="character-counter"]').html(c+"/"+b),e(d,a(this))}function c(b){var c=b.parent().find('span[class="character-counter"]');c.length||(c=a("").addClass("character-counter").css("float","right").css("font-size","12px").css("height",1),b.parent().append(c))}function d(){a(this).parent().find('span[class="character-counter"]').html("")}function e(a,b){var c=b.hasClass("invalid");a&&c?b.removeClass("invalid"):a||c||(b.removeClass("valid"),b.addClass("invalid"))}a.fn.characterCounter=function(){return this.each(function(){var e=a(this),f=e.parent().find('span[class="character-counter"]');if(!f.length){var g=void 0!==e.attr("data-length");g&&(e.on("input",b),e.on("focus",b),e.on("blur",d),c(e))}})},a(document).ready(function(){a("input, textarea").characterCounter()})}(jQuery),function(a){var b={init:function(b){var c={duration:200,dist:-100,shift:0,padding:0,fullWidth:!1,indicators:!1,noWrap:!1,onCycleTo:null};return b=a.extend(c,b),this.each(function(){function c(){"undefined"!=typeof window.ontouchstart&&(J[0].addEventListener("touchstart",l),J[0].addEventListener("touchmove",m),J[0].addEventListener("touchend",n)),J[0].addEventListener("mousedown",l),J[0].addEventListener("mousemove",m),J[0].addEventListener("mouseup",n),J[0].addEventListener("mouseleave",n),J[0].addEventListener("click",j)}function d(a){return a.targetTouches&&a.targetTouches.length>=1?a.targetTouches[0].clientX:a.clientX}function e(a){return a.targetTouches&&a.targetTouches.length>=1?a.targetTouches[0].clientY:a.clientY}function f(a){return a>=v?a%v:a<0?f(v+a%v):a}function g(c){var d,e,g,h,i,j,k,l=s;if(r="number"==typeof c?c:r,s=Math.floor((r+u/2)/u),g=r-s*u,h=g<0?1:-1,i=-h*g*2/u,e=v>>1,b.fullWidth?k="translateX(0)":(k="translateX("+(J[0].clientWidth-p)/2+"px) ",k+="translateY("+(J[0].clientHeight-q)/2+"px)"),K){var m=s%v,n=I.find(".indicator-item.active");n.index()!==m&&(n.removeClass("active"),I.find(".indicator-item").eq(m).addClass("active"))}for((!b.noWrap||s>=0&&s0?1-i:1):(zTranslation=b.dist*(2*d-i*h),tweenedOpacity=1-.2*(2*d-i*h)),(!b.noWrap||s-d>=0)&&(j=o[f(s-d)],j.style[C]=k+" translateX("+(-b.shift+(-u*d-g)/2)+"px) translateZ("+zTranslation+"px)",j.style.zIndex=-d,j.style.opacity=tweenedOpacity,j.style.display="block");if((!b.noWrap||s>=0&&s2||c<-2?(g(A-c),requestAnimationFrame(i)):g(A))}function j(c){if(G)return c.preventDefault(),c.stopPropagation(),!1;if(!b.fullWidth){var d=a(c.target).closest(".carousel-item").index(),e=s%v-d;0!==e&&(c.preventDefault(),c.stopPropagation()),k(d)}}function k(a){var c=s%v-a;b.noWrap||(c<0?Math.abs(c+v)0&&Math.abs(c-v)0&&J.trigger("carouselPrev",[c])}function l(a){t=!0,G=!1,H=!1,w=d(a),x=e(a),B=z=0,D=r,E=Date.now(),clearInterval(F),F=setInterval(h,100)}function m(a){var b,c,f;if(t)if(b=d(a),y=e(a),c=w-b,f=Math.abs(x-y),f<30&&!H)(c>2||c<-2)&&(G=!0,w=b,g(r+c));else{if(G)return a.preventDefault(),a.stopPropagation(),!1;H=!0}if(G)return a.preventDefault(),a.stopPropagation(),!1}function n(a){if(t)return t=!1,clearInterval(F),A=r,(B>10||B<-10)&&(z=.9*B,A=r+z),A=Math.round(A/u)*u,b.noWrap&&(A>=u*(v-1)?A=u*(v-1):A<0&&(A=0)),z=A-r,E=Date.now(),requestAnimationFrame(i),G&&(a.preventDefault(),a.stopPropagation()),!1}var o,p,q,r,s,t,u,v,w,x,z,A,B,C,D,E,F,G,H,I=a('
            '),J=a(this),K=J.attr("data-indicators")||b.indicators;if(J.hasClass("initialized"))return a(this).trigger("carouselNext",[1e-6]),!0;if(b.fullWidth){b.dist=0;var L=J.find(".carousel-item img").first();L.length?imageHeight=L.on("load",function(){J.css("height",a(this).height())}):(imageHeight=J.find(".carousel-item").first().height(),J.css("height",imageHeight)),K&&J.find(".carousel-fixed-item").addClass("with-indicators")}J.addClass("initialized"),t=!1,r=A=0,o=[],p=J.find(".carousel-item").first().innerWidth(),q=J.find(".carousel-item").first().innerHeight(),u=2*p+b.padding,J.find(".carousel-item").each(function(b){if(o.push(a(this)[0]),K){var c=a('
          • ');0===b&&c.addClass("active"),c.click(function(b){b.stopPropagation();var c=a(this).index();k(c)}),I.append(c)}}),K&&J.append(I),v=o.length,C="transform",["webkit","Moz","O","ms"].every(function(a){var b=a+"Transform";return"undefined"==typeof document.body.style[b]||(C=b,!1)}),a(window).on("resize.carousel",function(){b.fullWidth?(p=J.find(".carousel-item").first().innerWidth(),q=J.find(".carousel-item").first().innerHeight(),u=2*p+b.padding,r=2*s*p,A=r):g()}),c(),g(r),a(this).on("carouselNext",function(a,b){void 0===b&&(b=1),A=u*Math.round(r/u)+u*b,r!==A&&(z=A-r,E=Date.now(),requestAnimationFrame(i))}),a(this).on("carouselPrev",function(a,b){void 0===b&&(b=1),A=u*Math.round(r/u)-u*b,r!==A&&(z=A-r,E=Date.now(),requestAnimationFrame(i))}),a(this).on("carouselSet",function(a,b){void 0===b&&(b=0),k(b)})})},next:function(b){a(this).trigger("carouselNext",[b])},prev:function(b){a(this).trigger("carouselPrev",[b])},set:function(b){a(this).trigger("carouselSet",[b])}};a.fn.carousel=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.carousel"):b.init.apply(this,arguments)}}(jQuery); \ No newline at end of file diff --git a/node_modules/materialize-css/dropdown.html b/node_modules/materialize-css/dropdown.html deleted file mode 100644 index ccd8417..0000000 --- a/node_modules/materialize-css/dropdown.html +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - - - - Dropdown - Materialize - - - - - - - - - - - - - - - - -
            - - - -
            -
            -
            -
            - -
            -

            Introduction

            -

            Add a dropdown list to any button. Make sure that the data-activates attribute matches the id in the <ul> tag.

            -

            You can add a divider with the <li class="divider"></li> tag.

            - Drop Me! - -
            
            -  <!-- Dropdown Trigger -->
            -  <a class='dropdown-button btn' href='#' data-activates='dropdown1'>Drop Me!</a>
            -
            -  <!-- Dropdown Structure -->
            -  <ul id='dropdown1' class='dropdown-content'>
            -    <li><a href="#!">one</a></li>
            -    <li><a href="#!">two</a></li>
            -    <li class="divider"></li>
            -    <li><a href="#!">three</a></li>
            -  </ul>
            -        
            -
            - -
            -

            Options

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            Option NameDescription
            inDurationThe duration of the transition enter in milliseconds. Default: 300
            outDurationThe duration of the transition out in milliseconds. Default: 225
            constrainWidthIf true, constrainWidth to the size of the dropdown activator. Default: true
            hoverIf true, the dropdown will open on hover. Default: false
            gutterThis defines the spacing from the aligned edge. Default: 0
            belowOriginIf true, the dropdown will show below the activator. Default: false
            alignmentDefines the edge the menu is aligned to. Default: 'left'
            stopPropagationIf true, stops the event propagating from the dropdown origin click handler. Default: false
            -

            To use these inline you have to add them as data attributes. If you want more dynamic control, you can define them using the jQuery plugin below.

            -
            
            -  <a class='dropdown-button btn' data-beloworigin="true" href='#' data-activates='dropdown1'>Drop Me!</a>
            -        
            -
            - - - -
            -

            jQuery Plugin Initialization

            -

            Initialization for dropdowns is only necessary if you create them dynamically.

            -
            
            -  $('.dropdown-button').dropdown({
            -      inDuration: 300,
            -      outDuration: 225,
            -      constrainWidth: false, // Does not change width of dropdown to that of the activator
            -      hover: true, // Activate on hover
            -      gutter: 0, // Spacing from edge
            -      belowOrigin: false, // Displays dropdown below the button
            -      alignment: 'left' // Displays dropdown with edge aligned to the left of button
            -      stopPropagation: false // Stops event propagation
            -    }
            -  );
            -        
            - -

            - You can also open dropdowns programatically, the below code will make your modal open on document ready: -

            - -
            
            -  $('.dropdown-button').dropdown('open');
            -        
            - -

            - You can also close dropdowns programatically: -

            - -
            
            -  $('.dropdown-button').dropdown('close');
            -        
            -
            - - -
            - - -
            -
            -
            - - -
            - -
            -
            - -
            -
            - -
            -
            -
            -
            -
            Help Materialize Grow
            -

            We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

            -
            - - - -
            - -
            -
            -
            Join the Discussion
            -

            We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

            - Chat -
            -
            -
            Connect
            - -
            - -
            -
            -
            -
            -
            - -
            - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/extras/noUiSlider/nouislider.css b/node_modules/materialize-css/extras/noUiSlider/nouislider.css deleted file mode 100644 index c8f3177..0000000 --- a/node_modules/materialize-css/extras/noUiSlider/nouislider.css +++ /dev/null @@ -1,399 +0,0 @@ -/*! - * Materialize v0.98.0 (http://materializecss.com) - * Copyright 2014-2015 Materialize - * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) - */ - -/*! nouislider - 9.1.0 - 2016-12-10 16:00:32 */ - - -/* Functional styling; - * These styles are required for noUiSlider to function. - * You don't need to change these rules to apply your design. - */ -.noUi-target, -.noUi-target * { - -webkit-touch-callout: none; - -webkit-tap-highlight-color: rgba(0,0,0,0); - -webkit-user-select: none; - -ms-touch-action: none; - touch-action: none; - -ms-user-select: none; - -moz-user-select: none; - user-select: none; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.noUi-target { - position: relative; - direction: ltr; -} -.noUi-base { - width: 100%; - height: 100%; - position: relative; - z-index: 1; /* Fix 401 */ -} -.noUi-connect { - position: absolute; - right: 0; - top: 0; - left: 0; - bottom: 0; -} -.noUi-origin { - position: absolute; - height: 0; - width: 0; -} -.noUi-handle { - position: relative; - z-index: 1; -} -.noUi-state-tap .noUi-connect, -.noUi-state-tap .noUi-origin { - -webkit-transition: top 0.25s, right 0.25s, bottom 0.25s, left 0.25s; - transition: top 0.25s, right 0.25s, bottom 0.25s, left 0.25s; -} -.noUi-state-drag * { - cursor: inherit !important; -} - -/* Painting and performance; - * Browsers can paint handles in their own layer. - */ -.noUi-base, -.noUi-handle { - -webkit-transform: translate3d(0,0,0); - transform: translate3d(0,0,0); -} - -/* Slider size and handle placement; - */ -.noUi-horizontal { - height: 18px; -} -.noUi-horizontal .noUi-handle { - width: 34px; - height: 28px; - left: -17px; - top: -6px; -} -.noUi-vertical { - width: 18px; -} -.noUi-vertical .noUi-handle { - width: 28px; - height: 34px; - left: -6px; - top: -17px; -} - -/* Styling; - */ -.noUi-target { - background: #cdcdcd; - border-radius: 4px; - border: 1px solid transparent; -} -.noUi-connect { - background: #26A69A; - -webkit-transition: background 450ms; - transition: background 450ms; -} - -/* Handles and cursors; - */ -.noUi-draggable { - cursor: ew-resize; -} -.noUi-vertical .noUi-draggable { - cursor: ns-resize; -} -.noUi-handle { - border: 1px solid #D9D9D9; - border-radius: 3px; - background: #FFF; - cursor: default; - box-shadow: inset 0 0 1px #FFF, - inset 0 1px 7px #EBEBEB, - 0 3px 6px -3px #BBB; -} -.noUi-active { - box-shadow: inset 0 0 1px #FFF, - inset 0 1px 7px #DDD, - 0 3px 6px -3px #BBB; -} - -/* Handle stripes - */ -.noUi-handle:before, -.noUi-handle:after { - content: ""; - display: block; - position: absolute; - height: 14px; - width: 1px; - background: #E8E7E6; - left: 14px; - top: 6px; -} -.noUi-handle:after { - left: 17px; -} -.noUi-vertical .noUi-handle:before, -.noUi-vertical .noUi-handle:after { - width: 14px; - height: 1px; - left: 6px; - top: 14px; -} -.noUi-vertical .noUi-handle:after { - top: 17px; -} - -/* Disabled state; - */ - -[disabled] .noUi-connect { - background: #B8B8B8; -} -[disabled].noUi-target, -[disabled].noUi-handle, -[disabled] .noUi-handle { - cursor: not-allowed; -} - - -/* Base; - * - */ -.noUi-pips, -.noUi-pips * { - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.noUi-pips { - position: absolute; - color: #999; -} - -/* Values; - * - */ -.noUi-value { - position: absolute; - text-align: center; -} -.noUi-value-sub { - color: #ccc; - font-size: 10px; -} - -/* Markings; - * - */ -.noUi-marker { - position: absolute; - background: #CCC; -} -.noUi-marker-sub { - background: #AAA; -} -.noUi-marker-large { - background: #AAA; -} - -/* Horizontal layout; - * - */ -.noUi-pips-horizontal { - padding: 10px 0; - height: 80px; - top: 100%; - left: 0; - width: 100%; -} -.noUi-value-horizontal { - -webkit-transform: translate3d(-50%,50%,0); - transform: translate3d(-50%,50%,0); -} - -.noUi-marker-horizontal.noUi-marker { - margin-left: -1px; - width: 2px; - height: 5px; -} -.noUi-marker-horizontal.noUi-marker-sub { - height: 10px; -} -.noUi-marker-horizontal.noUi-marker-large { - height: 15px; -} - -/* Vertical layout; - * - */ -.noUi-pips-vertical { - padding: 0 10px; - height: 100%; - top: 0; - left: 100%; -} -.noUi-value-vertical { - -webkit-transform: translate3d(0,50%,0); - transform: translate3d(0,50%,0); - padding-left: 25px; -} - -.noUi-marker-vertical.noUi-marker { - width: 5px; - height: 2px; - margin-top: -1px; -} -.noUi-marker-vertical.noUi-marker-sub { - width: 10px; -} -.noUi-marker-vertical.noUi-marker-large { - width: 15px; -} - -.noUi-tooltip { - display: block; - position: absolute; - border: 1px solid transparent; - border-radius: 3px; - background: #fff; - color: #000; - padding: 5px; - text-align: center; -} -.noUi-horizontal .noUi-tooltip { - -webkit-transform: translate(-50%, 0); - transform: translate(-50%, 0); - left: 50%; - bottom: 120%; -} -.noUi-vertical .noUi-tooltip { - -webkit-transform: translate(0, -50%); - transform: translate(0, -50%); - top: 50%; - right: 120%; -} - -/* Materialize Styles */ -.noUi-target { - border: 0; - border-radius: 0; -} -.noUi-horizontal { - height: 3px; -} - -.noUi-vertical { - height: 100%; - width: 3px; -} - -.noUi-horizontal .noUi-handle, -.noUi-vertical .noUi-handle { - width: 15px; - height: 15px; - border-radius: 50%; - box-shadow: none; - background-color: #26A69A; - border: none; - left: -5px; - top: -6px; - transition: width .2s cubic-bezier(0.215, 0.610, 0.355, 1.000), - height .2s cubic-bezier(0.215, 0.610, 0.355, 1.000), - left .2s cubic-bezier(0.215, 0.610, 0.355, 1.000), - top .2s cubic-bezier(0.215, 0.610, 0.355, 1.000); -} -.noUi-handle:before { - content: none; -} -.noUi-handle:after { - content: none; -} - -.noUi-target .noUi-active.noUi-handle { - width: 3px; - height: 3px; - left: 0; - top: 0; -} - -.noUi-target.noUi-horizontal .noUi-tooltip { - position: absolute; - height: 30px; - width: 30px; - top: -17px; - left: -2px; - background-color: #26A69A; - border-radius: 50%; - transition: border-radius .25s cubic-bezier(0.215, 0.610, 0.355, 1.000), - transform .25s cubic-bezier(0.215, 0.610, 0.355, 1.000); - transform: scale(.5) rotate(-45deg); - transform-origin: 50% 100%; -} -.noUi-target.noUi-horizontal .noUi-active .noUi-tooltip { - border-radius: 15px 15px 15px 0; - transform: rotate(-45deg) translate(23px, -25px); -} - -.noUi-tooltip span { - width: 100%; - text-align: center; - color: #fff; - font-size: 12px; - opacity: 0; - position: absolute; - top: 6px; - left: -1px; - transition: opacity .25s cubic-bezier(0.215, 0.610, 0.355, 1.000); -} - -.noUi-horizontal .noUi-tooltip span { - transform: rotate(45deg); -} - -.noUi-vertical .noUi-tooltip span { - transform: rotate(135deg); -} - - -.noUi-target.noUi-vertical .noUi-tooltip { - position: absolute; - height: 30px; - width: 30px; - top: -17px; - left: -2px; - background-color: #26A69A; - border-radius: 50%; - transition: border-radius .25s cubic-bezier(0.215, 0.610, 0.355, 1.000), - transform .25s cubic-bezier(0.215, 0.610, 0.355, 1.000); - transform: scale(.5) rotate(-45deg); - transform-origin: 50% 100%; -} -.noUi-target.noUi-vertical .noUi-active .noUi-tooltip { - border-radius: 15px 15px 15px 0; - transform: rotate(-135deg) translate(35px, -10px); -} -.noUi-vertical .noUi-tooltip span { - width: 100%; - text-align: center; - color: #fff; - font-size: 12px; - transform: rotate(135deg); - opacity: 0; - position: absolute; - top: 7px; - left: -1px; - transition: opacity .25s cubic-bezier(0.215, 0.610, 0.355, 1.000); -} - -.noUi-horizontal .noUi-active .noUi-tooltip span, -.noUi-vertical .noUi-active .noUi-tooltip span { - opacity: 1; -} diff --git a/node_modules/materialize-css/extras/noUiSlider/nouislider.js b/node_modules/materialize-css/extras/noUiSlider/nouislider.js deleted file mode 100644 index b03f2bd..0000000 --- a/node_modules/materialize-css/extras/noUiSlider/nouislider.js +++ /dev/null @@ -1,2145 +0,0 @@ -/*! - * Materialize v0.98.0 (http://materializecss.com) - * Copyright 2014-2015 Materialize - * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) - */ - -// wNumb -(function(){function r(b){return b.split("").reverse().join("")}function s(b,f,c){if((b[f]||b[c])&&b[f]===b[c])throw Error(f);}function v(b,f,c,d,e,p,q,k,l,h,n,a){q=a;var m,g=n="";p&&(a=p(a));if("number"!==typeof a||!isFinite(a))return!1;b&&0===parseFloat(a.toFixed(b))&&(a=0);0>a&&(m=!0,a=Math.abs(a));b&&(p=Math.pow(10,b),a=(Math.round(a*p)/p).toFixed(b));a=a.toString();-1!==a.indexOf(".")&&(b=a.split("."),a=b[0],c&&(n=c+b[1]));f&&(a=r(a).match(/.{1,3}/g),a=r(a.join(r(f))));m&&k&&(g+=k);d&&(g+=d); - m&&l&&(g+=l);g=g+a+n;e&&(g+=e);h&&(g=h(g,q));return g}function w(b,f,c,d,e,h,q,k,l,r,n,a){var m;b="";n&&(a=n(a));if(!a||"string"!==typeof a)return!1;k&&a.substring(0,k.length)===k&&(a=a.replace(k,""),m=!0);d&&a.substring(0,d.length)===d&&(a=a.replace(d,""));l&&a.substring(0,l.length)===l&&(a=a.replace(l,""),m=!0);e&&a.slice(-1*e.length)===e&&(a=a.slice(0,-1*e.length));f&&(a=a.split(f).join(""));c&&(a=a.replace(c,"."));m&&(b+="-");b=Number((b+a).replace(/[^0-9\.\-.]/g,""));q&&(b=q(b));return"number"=== -typeof b&&isFinite(b)?b:!1}function x(b){var f,c,d,e={};for(f=0;fd&&(e[c]=d):"encoder"===c||"decoder"===c||"edit"===c||"undo"===c?"function"===typeof d&&(e[c]=d):"string"===typeof d&&(e[c]=d);s(e,"mark","thousand");s(e,"prefix","negative");s(e,"prefix","negativeBefore");return e}function u(b,f,c){var d,e=[];for(d=0;d 0) { - addClass(element, className); - setTimeout(function(){ - removeClass(element, className); - }, duration); - } - } - - // Limits a value to 0 - 100 - function limit ( a ) { - return Math.max(Math.min(a, 100), 0); - } - - // Wraps a variable as an array, if it isn't one yet. - // Note that an input array is returned by reference! - function asArray ( a ) { - return Array.isArray(a) ? a : [a]; - } - - // Counts decimals - function countDecimals ( numStr ) { - numStr = String(numStr); - var pieces = numStr.split("."); - return pieces.length > 1 ? pieces[1].length : 0; - } - - // http://youmightnotneedjquery.com/#add_class - function addClass ( el, className ) { - if ( el.classList ) { - el.classList.add(className); - } else { - el.className += ' ' + className; - } - } - - // http://youmightnotneedjquery.com/#remove_class - function removeClass ( el, className ) { - if ( el.classList ) { - el.classList.remove(className); - } else { - el.className = el.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' '); - } - } - - // https://plainjs.com/javascript/attributes/adding-removing-and-testing-for-classes-9/ - function hasClass ( el, className ) { - return el.classList ? el.classList.contains(className) : new RegExp('\\b' + className + '\\b').test(el.className); - } - - // https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollY#Notes - function getPageOffset ( ) { - - var supportPageOffset = window.pageXOffset !== undefined, - isCSS1Compat = ((document.compatMode || "") === "CSS1Compat"), - x = supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft, - y = supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop; - - return { - x: x, - y: y - }; - } - - // we provide a function to compute constants instead - // of accessing window.* as soon as the module needs it - // so that we do not compute anything if not needed - function getActions ( ) { - - // Determine the events to bind. IE11 implements pointerEvents without - // a prefix, which breaks compatibility with the IE10 implementation. - return window.navigator.pointerEnabled ? { - start: 'pointerdown', - move: 'pointermove', - end: 'pointerup' - } : window.navigator.msPointerEnabled ? { - start: 'MSPointerDown', - move: 'MSPointerMove', - end: 'MSPointerUp' - } : { - start: 'mousedown touchstart', - move: 'mousemove touchmove', - end: 'mouseup touchend' - }; - } - - -// Value calculation - - // Determine the size of a sub-range in relation to a full range. - function subRangeRatio ( pa, pb ) { - return (100 / (pb - pa)); - } - - // (percentage) How many percent is this value of this range? - function fromPercentage ( range, value ) { - return (value * 100) / ( range[1] - range[0] ); - } - - // (percentage) Where is this value on this range? - function toPercentage ( range, value ) { - return fromPercentage( range, range[0] < 0 ? - value + Math.abs(range[0]) : - value - range[0] ); - } - - // (value) How much is this percentage on this range? - function isPercentage ( range, value ) { - return ((value * ( range[1] - range[0] )) / 100) + range[0]; - } - - -// Range conversion - - function getJ ( value, arr ) { - - var j = 1; - - while ( value >= arr[j] ){ - j += 1; - } - - return j; - } - - // (percentage) Input a value, find where, on a scale of 0-100, it applies. - function toStepping ( xVal, xPct, value ) { - - if ( value >= xVal.slice(-1)[0] ){ - return 100; - } - - var j = getJ( value, xVal ), va, vb, pa, pb; - - va = xVal[j-1]; - vb = xVal[j]; - pa = xPct[j-1]; - pb = xPct[j]; - - return pa + (toPercentage([va, vb], value) / subRangeRatio (pa, pb)); - } - - // (value) Input a percentage, find where it is on the specified range. - function fromStepping ( xVal, xPct, value ) { - - // There is no range group that fits 100 - if ( value >= 100 ){ - return xVal.slice(-1)[0]; - } - - var j = getJ( value, xPct ), va, vb, pa, pb; - - va = xVal[j-1]; - vb = xVal[j]; - pa = xPct[j-1]; - pb = xPct[j]; - - return isPercentage([va, vb], (value - pa) * subRangeRatio (pa, pb)); - } - - // (percentage) Get the step that applies at a certain value. - function getStep ( xPct, xSteps, snap, value ) { - - if ( value === 100 ) { - return value; - } - - var j = getJ( value, xPct ), a, b; - - // If 'snap' is set, steps are used as fixed points on the slider. - if ( snap ) { - - a = xPct[j-1]; - b = xPct[j]; - - // Find the closest position, a or b. - if ((value - a) > ((b-a)/2)){ - return b; - } - - return a; - } - - if ( !xSteps[j-1] ){ - return value; - } - - return xPct[j-1] + closest( - value - xPct[j-1], - xSteps[j-1] - ); - } - - -// Entry parsing - - function handleEntryPoint ( index, value, that ) { - - var percentage; - - // Wrap numerical input in an array. - if ( typeof value === "number" ) { - value = [value]; - } - - // Reject any invalid input, by testing whether value is an array. - if ( Object.prototype.toString.call( value ) !== '[object Array]' ){ - throw new Error("noUiSlider: 'range' contains invalid value."); - } - - // Covert min/max syntax to 0 and 100. - if ( index === 'min' ) { - percentage = 0; - } else if ( index === 'max' ) { - percentage = 100; - } else { - percentage = parseFloat( index ); - } - - // Check for correct input. - if ( !isNumeric( percentage ) || !isNumeric( value[0] ) ) { - throw new Error("noUiSlider: 'range' value isn't numeric."); - } - - // Store values. - that.xPct.push( percentage ); - that.xVal.push( value[0] ); - - // NaN will evaluate to false too, but to keep - // logging clear, set step explicitly. Make sure - // not to override the 'step' setting with false. - if ( !percentage ) { - if ( !isNaN( value[1] ) ) { - that.xSteps[0] = value[1]; - } - } else { - that.xSteps.push( isNaN(value[1]) ? false : value[1] ); - } - - that.xHighestCompleteStep.push(0); - } - - function handleStepPoint ( i, n, that ) { - - // Ignore 'false' stepping. - if ( !n ) { - return true; - } - - // Factor to range ratio - that.xSteps[i] = fromPercentage([ - that.xVal[i] - ,that.xVal[i+1] - ], n) / subRangeRatio ( - that.xPct[i], - that.xPct[i+1] ); - - var totalSteps = (that.xVal[i+1] - that.xVal[i]) / that.xNumSteps[i]; - var highestStep = Math.ceil(Number(totalSteps.toFixed(3)) - 1); - var step = that.xVal[i] + (that.xNumSteps[i] * highestStep); - - that.xHighestCompleteStep[i] = step; - } - - -// Interface - - // The interface to Spectrum handles all direction-based - // conversions, so the above values are unaware. - - function Spectrum ( entry, snap, direction, singleStep ) { - - this.xPct = []; - this.xVal = []; - this.xSteps = [ singleStep || false ]; - this.xNumSteps = [ false ]; - this.xHighestCompleteStep = []; - - this.snap = snap; - this.direction = direction; - - var index, ordered = [ /* [0, 'min'], [1, '50%'], [2, 'max'] */ ]; - - // Map the object keys to an array. - for ( index in entry ) { - if ( entry.hasOwnProperty(index) ) { - ordered.push([entry[index], index]); - } - } - - // Sort all entries by value (numeric sort). - if ( ordered.length && typeof ordered[0][0] === "object" ) { - ordered.sort(function(a, b) { return a[0][0] - b[0][0]; }); - } else { - ordered.sort(function(a, b) { return a[0] - b[0]; }); - } - - - // Convert all entries to subranges. - for ( index = 0; index < ordered.length; index++ ) { - handleEntryPoint(ordered[index][1], ordered[index][0], this); - } - - // Store the actual step values. - // xSteps is sorted in the same order as xPct and xVal. - this.xNumSteps = this.xSteps.slice(0); - - // Convert all numeric steps to the percentage of the subrange they represent. - for ( index = 0; index < this.xNumSteps.length; index++ ) { - handleStepPoint(index, this.xNumSteps[index], this); - } - } - - Spectrum.prototype.getMargin = function ( value ) { - - var step = this.xNumSteps[0]; - - if ( step && ((value / step) % 1) !== 0 ) { - throw new Error("noUiSlider: 'limit', 'margin' and 'padding' must be divisible by step."); - } - - return this.xPct.length === 2 ? fromPercentage(this.xVal, value) : false; - }; - - Spectrum.prototype.toStepping = function ( value ) { - - value = toStepping( this.xVal, this.xPct, value ); - - return value; - }; - - Spectrum.prototype.fromStepping = function ( value ) { - - return fromStepping( this.xVal, this.xPct, value ); - }; - - Spectrum.prototype.getStep = function ( value ) { - - value = getStep(this.xPct, this.xSteps, this.snap, value ); - - return value; - }; - - Spectrum.prototype.getNearbySteps = function ( value ) { - - var j = getJ(value, this.xPct); - - return { - stepBefore: { startValue: this.xVal[j-2], step: this.xNumSteps[j-2], highestStep: this.xHighestCompleteStep[j-2] }, - thisStep: { startValue: this.xVal[j-1], step: this.xNumSteps[j-1], highestStep: this.xHighestCompleteStep[j-1] }, - stepAfter: { startValue: this.xVal[j-0], step: this.xNumSteps[j-0], highestStep: this.xHighestCompleteStep[j-0] } - }; - }; - - Spectrum.prototype.countStepDecimals = function () { - var stepDecimals = this.xNumSteps.map(countDecimals); - return Math.max.apply(null, stepDecimals); - }; - - // Outside testing - Spectrum.prototype.convert = function ( value ) { - return this.getStep(this.toStepping(value)); - }; - - /* Every input option is tested and parsed. This'll prevent - endless validation in internal methods. These tests are - structured with an item for every option available. An - option can be marked as required by setting the 'r' flag. - The testing function is provided with three arguments: - - The provided value for the option; - - A reference to the options object; - - The name for the option; - - The testing function returns false when an error is detected, - or true when everything is OK. It can also modify the option - object, to make sure all values can be correctly looped elsewhere. */ - - var defaultFormatter = { 'to': function( value ){ - return value !== undefined && value.toFixed(2); - }, 'from': Number }; - - function testStep ( parsed, entry ) { - - if ( !isNumeric( entry ) ) { - throw new Error("noUiSlider: 'step' is not numeric."); - } - - // The step option can still be used to set stepping - // for linear sliders. Overwritten if set in 'range'. - parsed.singleStep = entry; - } - - function testRange ( parsed, entry ) { - - // Filter incorrect input. - if ( typeof entry !== 'object' || Array.isArray(entry) ) { - throw new Error("noUiSlider: 'range' is not an object."); - } - - // Catch missing start or end. - if ( entry.min === undefined || entry.max === undefined ) { - throw new Error("noUiSlider: Missing 'min' or 'max' in 'range'."); - } - - // Catch equal start or end. - if ( entry.min === entry.max ) { - throw new Error("noUiSlider: 'range' 'min' and 'max' cannot be equal."); - } - - parsed.spectrum = new Spectrum(entry, parsed.snap, parsed.dir, parsed.singleStep); - } - - function testStart ( parsed, entry ) { - - entry = asArray(entry); - - // Validate input. Values aren't tested, as the public .val method - // will always provide a valid location. - if ( !Array.isArray( entry ) || !entry.length ) { - throw new Error("noUiSlider: 'start' option is incorrect."); - } - - // Store the number of handles. - parsed.handles = entry.length; - - // When the slider is initialized, the .val method will - // be called with the start options. - parsed.start = entry; - } - - function testSnap ( parsed, entry ) { - - // Enforce 100% stepping within subranges. - parsed.snap = entry; - - if ( typeof entry !== 'boolean' ){ - throw new Error("noUiSlider: 'snap' option must be a boolean."); - } - } - - function testAnimate ( parsed, entry ) { - - // Enforce 100% stepping within subranges. - parsed.animate = entry; - - if ( typeof entry !== 'boolean' ){ - throw new Error("noUiSlider: 'animate' option must be a boolean."); - } - } - - function testAnimationDuration ( parsed, entry ) { - - parsed.animationDuration = entry; - - if ( typeof entry !== 'number' ){ - throw new Error("noUiSlider: 'animationDuration' option must be a number."); - } - } - - function testConnect ( parsed, entry ) { - - var connect = [false]; - var i; - - // Map legacy options - if ( entry === 'lower' ) { - entry = [true, false]; - } - - else if ( entry === 'upper' ) { - entry = [false, true]; - } - - // Handle boolean options - if ( entry === true || entry === false ) { - - for ( i = 1; i < parsed.handles; i++ ) { - connect.push(entry); - } - - connect.push(false); - } - - // Reject invalid input - else if ( !Array.isArray( entry ) || !entry.length || entry.length !== parsed.handles + 1 ) { - throw new Error("noUiSlider: 'connect' option doesn't match handle count."); - } - - else { - connect = entry; - } - - parsed.connect = connect; - } - - function testOrientation ( parsed, entry ) { - - // Set orientation to an a numerical value for easy - // array selection. - switch ( entry ){ - case 'horizontal': - parsed.ort = 0; - break; - case 'vertical': - parsed.ort = 1; - break; - default: - throw new Error("noUiSlider: 'orientation' option is invalid."); - } - } - - function testMargin ( parsed, entry ) { - - if ( !isNumeric(entry) ){ - throw new Error("noUiSlider: 'margin' option must be numeric."); - } - - // Issue #582 - if ( entry === 0 ) { - return; - } - - parsed.margin = parsed.spectrum.getMargin(entry); - - if ( !parsed.margin ) { - throw new Error("noUiSlider: 'margin' option is only supported on linear sliders."); - } - } - - function testLimit ( parsed, entry ) { - - if ( !isNumeric(entry) ){ - throw new Error("noUiSlider: 'limit' option must be numeric."); - } - - parsed.limit = parsed.spectrum.getMargin(entry); - - if ( !parsed.limit || parsed.handles < 2 ) { - throw new Error("noUiSlider: 'limit' option is only supported on linear sliders with 2 or more handles."); - } - } - - function testPadding ( parsed, entry ) { - - if ( !isNumeric(entry) ){ - throw new Error("noUiSlider: 'padding' option must be numeric."); - } - - if ( entry === 0 ) { - return; - } - - parsed.padding = parsed.spectrum.getMargin(entry); - - if ( !parsed.padding ) { - throw new Error("noUiSlider: 'padding' option is only supported on linear sliders."); - } - - if ( parsed.padding < 0 ) { - throw new Error("noUiSlider: 'padding' option must be a positive number."); - } - - if ( parsed.padding >= 50 ) { - throw new Error("noUiSlider: 'padding' option must be less than half the range."); - } - } - - function testDirection ( parsed, entry ) { - - // Set direction as a numerical value for easy parsing. - // Invert connection for RTL sliders, so that the proper - // handles get the connect/background classes. - switch ( entry ) { - case 'ltr': - parsed.dir = 0; - break; - case 'rtl': - parsed.dir = 1; - break; - default: - throw new Error("noUiSlider: 'direction' option was not recognized."); - } - } - - function testBehaviour ( parsed, entry ) { - - // Make sure the input is a string. - if ( typeof entry !== 'string' ) { - throw new Error("noUiSlider: 'behaviour' must be a string containing options."); - } - - // Check if the string contains any keywords. - // None are required. - var tap = entry.indexOf('tap') >= 0; - var drag = entry.indexOf('drag') >= 0; - var fixed = entry.indexOf('fixed') >= 0; - var snap = entry.indexOf('snap') >= 0; - var hover = entry.indexOf('hover') >= 0; - - if ( fixed ) { - - if ( parsed.handles !== 2 ) { - throw new Error("noUiSlider: 'fixed' behaviour must be used with 2 handles"); - } - - // Use margin to enforce fixed state - testMargin(parsed, parsed.start[1] - parsed.start[0]); - } - - parsed.events = { - tap: tap || snap, - drag: drag, - fixed: fixed, - snap: snap, - hover: hover - }; - } - - function testTooltips ( parsed, entry ) { - - if ( entry === false ) { - return; - } - - else if ( entry === true ) { - - parsed.tooltips = []; - - for ( var i = 0; i < parsed.handles; i++ ) { - parsed.tooltips.push(true); - } - } - - else { - - parsed.tooltips = asArray(entry); - - if ( parsed.tooltips.length !== parsed.handles ) { - throw new Error("noUiSlider: must pass a formatter for all handles."); - } - - parsed.tooltips.forEach(function(formatter){ - if ( typeof formatter !== 'boolean' && (typeof formatter !== 'object' || typeof formatter.to !== 'function') ) { - throw new Error("noUiSlider: 'tooltips' must be passed a formatter or 'false'."); - } - }); - } - } - - function testFormat ( parsed, entry ) { - - parsed.format = entry; - - // Any object with a to and from method is supported. - if ( typeof entry.to === 'function' && typeof entry.from === 'function' ) { - return true; - } - - throw new Error("noUiSlider: 'format' requires 'to' and 'from' methods."); - } - - function testCssPrefix ( parsed, entry ) { - - if ( entry !== undefined && typeof entry !== 'string' && entry !== false ) { - throw new Error("noUiSlider: 'cssPrefix' must be a string or `false`."); - } - - parsed.cssPrefix = entry; - } - - function testCssClasses ( parsed, entry ) { - - if ( entry !== undefined && typeof entry !== 'object' ) { - throw new Error("noUiSlider: 'cssClasses' must be an object."); - } - - if ( typeof parsed.cssPrefix === 'string' ) { - parsed.cssClasses = {}; - - for ( var key in entry ) { - if ( !entry.hasOwnProperty(key) ) { continue; } - - parsed.cssClasses[key] = parsed.cssPrefix + entry[key]; - } - } else { - parsed.cssClasses = entry; - } - } - - function testUseRaf ( parsed, entry ) { - if ( entry === true || entry === false ) { - parsed.useRequestAnimationFrame = entry; - } else { - throw new Error("noUiSlider: 'useRequestAnimationFrame' option should be true (default) or false."); - } - } - - // Test all developer settings and parse to assumption-safe values. - function testOptions ( options ) { - - // To prove a fix for #537, freeze options here. - // If the object is modified, an error will be thrown. - // Object.freeze(options); - - var parsed = { - margin: 0, - limit: 0, - padding: 0, - animate: true, - animationDuration: 300, - format: defaultFormatter - }; - - // Tests are executed in the order they are presented here. - var tests = { - 'step': { r: false, t: testStep }, - 'start': { r: true, t: testStart }, - 'connect': { r: true, t: testConnect }, - 'direction': { r: true, t: testDirection }, - 'snap': { r: false, t: testSnap }, - 'animate': { r: false, t: testAnimate }, - 'animationDuration': { r: false, t: testAnimationDuration }, - 'range': { r: true, t: testRange }, - 'orientation': { r: false, t: testOrientation }, - 'margin': { r: false, t: testMargin }, - 'limit': { r: false, t: testLimit }, - 'padding': { r: false, t: testPadding }, - 'behaviour': { r: true, t: testBehaviour }, - 'format': { r: false, t: testFormat }, - 'tooltips': { r: false, t: testTooltips }, - 'cssPrefix': { r: false, t: testCssPrefix }, - 'cssClasses': { r: false, t: testCssClasses }, - 'useRequestAnimationFrame': { r: false, t: testUseRaf } - }; - - var defaults = { - 'connect': false, - 'direction': 'ltr', - 'behaviour': 'tap', - 'orientation': 'horizontal', - 'cssPrefix' : 'noUi-', - 'cssClasses': { - target: 'target', - base: 'base', - origin: 'origin', - handle: 'handle', - handleLower: 'handle-lower', - handleUpper: 'handle-upper', - horizontal: 'horizontal', - vertical: 'vertical', - background: 'background', - connect: 'connect', - ltr: 'ltr', - rtl: 'rtl', - draggable: 'draggable', - drag: 'state-drag', - tap: 'state-tap', - active: 'active', - tooltip: 'tooltip', - pips: 'pips', - pipsHorizontal: 'pips-horizontal', - pipsVertical: 'pips-vertical', - marker: 'marker', - markerHorizontal: 'marker-horizontal', - markerVertical: 'marker-vertical', - markerNormal: 'marker-normal', - markerLarge: 'marker-large', - markerSub: 'marker-sub', - value: 'value', - valueHorizontal: 'value-horizontal', - valueVertical: 'value-vertical', - valueNormal: 'value-normal', - valueLarge: 'value-large', - valueSub: 'value-sub' - }, - 'useRequestAnimationFrame': true - }; - - // Run all options through a testing mechanism to ensure correct - // input. It should be noted that options might get modified to - // be handled properly. E.g. wrapping integers in arrays. - Object.keys(tests).forEach(function( name ){ - - // If the option isn't set, but it is required, throw an error. - if ( options[name] === undefined && defaults[name] === undefined ) { - - if ( tests[name].r ) { - throw new Error("noUiSlider: '" + name + "' is required."); - } - - return true; - } - - tests[name].t( parsed, options[name] === undefined ? defaults[name] : options[name] ); - }); - - // Forward pips options - parsed.pips = options.pips; - - var styles = [['left', 'top'], ['right', 'bottom']]; - - // Pre-define the styles. - parsed.style = styles[parsed.dir][parsed.ort]; - parsed.styleOposite = styles[parsed.dir?0:1][parsed.ort]; - - return parsed; - } - - - function closure ( target, options, originalOptions ){ - - var actions = getActions( ); - - // All variables local to 'closure' are prefixed with 'scope_' - var scope_Target = target; - var scope_Locations = []; - var scope_Base; - var scope_Handles; - var scope_HandleNumbers = []; - var scope_ActiveHandle = false; - var scope_Connects; - var scope_Spectrum = options.spectrum; - var scope_Values = []; - var scope_Events = {}; - var scope_Self; - - - // Append a origin to the base - function addOrigin ( base, handleNumber ) { - - var origin = addNodeTo(base, options.cssClasses.origin); - var handle = addNodeTo(origin, options.cssClasses.handle); - - handle.setAttribute('data-handle', handleNumber); - - if ( handleNumber === 0 ) { - addClass(handle, options.cssClasses.handleLower); - } - - else if ( handleNumber === options.handles - 1 ) { - addClass(handle, options.cssClasses.handleUpper); - } - - return origin; - } - - // Insert nodes for connect elements - function addConnect ( base, add ) { - - if ( !add ) { - return false; - } - - return addNodeTo(base, options.cssClasses.connect); - } - - // Add handles to the slider base. - function addElements ( connectOptions, base ) { - - scope_Handles = []; - scope_Connects = []; - - scope_Connects.push(addConnect(base, connectOptions[0])); - - // [::::O====O====O====] - // connectOptions = [0, 1, 1, 1] - - for ( var i = 0; i < options.handles; i++ ) { - // Keep a list of all added handles. - scope_Handles.push(addOrigin(base, i)); - scope_HandleNumbers[i] = i; - scope_Connects.push(addConnect(base, connectOptions[i + 1])); - } - } - - // Initialize a single slider. - function addSlider ( target ) { - - // Apply classes and data to the target. - addClass(target, options.cssClasses.target); - - if ( options.dir === 0 ) { - addClass(target, options.cssClasses.ltr); - } else { - addClass(target, options.cssClasses.rtl); - } - - if ( options.ort === 0 ) { - addClass(target, options.cssClasses.horizontal); - } else { - addClass(target, options.cssClasses.vertical); - } - - scope_Base = addNodeTo(target, options.cssClasses.base); - } - - - function addTooltip ( handle, handleNumber ) { - - if ( !options.tooltips[handleNumber] ) { - return false; - } - - return addNodeTo(handle.firstChild, options.cssClasses.tooltip); - } - - // The tooltips option is a shorthand for using the 'update' event. - function tooltips ( ) { - - // Tooltips are added with options.tooltips in original order. - var tips = scope_Handles.map(addTooltip); - - bindEvent('update', function(values, handleNumber, unencoded) { - - if ( !tips[handleNumber] ) { - return; - } - - var formattedValue = values[handleNumber]; - - if ( options.tooltips[handleNumber] !== true ) { - formattedValue = options.tooltips[handleNumber].to(unencoded[handleNumber]); - } - - tips[handleNumber].innerHTML = '' + formattedValue + ''; - }); - } - - - function getGroup ( mode, values, stepped ) { - - // Use the range. - if ( mode === 'range' || mode === 'steps' ) { - return scope_Spectrum.xVal; - } - - if ( mode === 'count' ) { - - // Divide 0 - 100 in 'count' parts. - var spread = ( 100 / (values-1) ), v, i = 0; - values = []; - - // List these parts and have them handled as 'positions'. - while ((v=i++*spread) <= 100 ) { - values.push(v); - } - - mode = 'positions'; - } - - if ( mode === 'positions' ) { - - // Map all percentages to on-range values. - return values.map(function( value ){ - return scope_Spectrum.fromStepping( stepped ? scope_Spectrum.getStep( value ) : value ); - }); - } - - if ( mode === 'values' ) { - - // If the value must be stepped, it needs to be converted to a percentage first. - if ( stepped ) { - - return values.map(function( value ){ - - // Convert to percentage, apply step, return to value. - return scope_Spectrum.fromStepping( scope_Spectrum.getStep( scope_Spectrum.toStepping( value ) ) ); - }); - - } - - // Otherwise, we can simply use the values. - return values; - } - } - - function generateSpread ( density, mode, group ) { - - function safeIncrement(value, increment) { - // Avoid floating point variance by dropping the smallest decimal places. - return (value + increment).toFixed(7) / 1; - } - - var indexes = {}, - firstInRange = scope_Spectrum.xVal[0], - lastInRange = scope_Spectrum.xVal[scope_Spectrum.xVal.length-1], - ignoreFirst = false, - ignoreLast = false, - prevPct = 0; - - // Create a copy of the group, sort it and filter away all duplicates. - group = unique(group.slice().sort(function(a, b){ return a - b; })); - - // Make sure the range starts with the first element. - if ( group[0] !== firstInRange ) { - group.unshift(firstInRange); - ignoreFirst = true; - } - - // Likewise for the last one. - if ( group[group.length - 1] !== lastInRange ) { - group.push(lastInRange); - ignoreLast = true; - } - - group.forEach(function ( current, index ) { - - // Get the current step and the lower + upper positions. - var step, i, q, - low = current, - high = group[index+1], - newPct, pctDifference, pctPos, type, - steps, realSteps, stepsize; - - // When using 'steps' mode, use the provided steps. - // Otherwise, we'll step on to the next subrange. - if ( mode === 'steps' ) { - step = scope_Spectrum.xNumSteps[ index ]; - } - - // Default to a 'full' step. - if ( !step ) { - step = high-low; - } - - // Low can be 0, so test for false. If high is undefined, - // we are at the last subrange. Index 0 is already handled. - if ( low === false || high === undefined ) { - return; - } - - // Make sure step isn't 0, which would cause an infinite loop (#654) - step = Math.max(step, 0.0000001); - - // Find all steps in the subrange. - for ( i = low; i <= high; i = safeIncrement(i, step) ) { - - // Get the percentage value for the current step, - // calculate the size for the subrange. - newPct = scope_Spectrum.toStepping( i ); - pctDifference = newPct - prevPct; - - steps = pctDifference / density; - realSteps = Math.round(steps); - - // This ratio represents the ammount of percentage-space a point indicates. - // For a density 1 the points/percentage = 1. For density 2, that percentage needs to be re-devided. - // Round the percentage offset to an even number, then divide by two - // to spread the offset on both sides of the range. - stepsize = pctDifference/realSteps; - - // Divide all points evenly, adding the correct number to this subrange. - // Run up to <= so that 100% gets a point, event if ignoreLast is set. - for ( q = 1; q <= realSteps; q += 1 ) { - - // The ratio between the rounded value and the actual size might be ~1% off. - // Correct the percentage offset by the number of points - // per subrange. density = 1 will result in 100 points on the - // full range, 2 for 50, 4 for 25, etc. - pctPos = prevPct + ( q * stepsize ); - indexes[pctPos.toFixed(5)] = ['x', 0]; - } - - // Determine the point type. - type = (group.indexOf(i) > -1) ? 1 : ( mode === 'steps' ? 2 : 0 ); - - // Enforce the 'ignoreFirst' option by overwriting the type for 0. - if ( !index && ignoreFirst ) { - type = 0; - } - - if ( !(i === high && ignoreLast)) { - // Mark the 'type' of this point. 0 = plain, 1 = real value, 2 = step value. - indexes[newPct.toFixed(5)] = [i, type]; - } - - // Update the percentage count. - prevPct = newPct; - } - }); - - return indexes; - } - - function addMarking ( spread, filterFunc, formatter ) { - - var element = document.createElement('div'), - out = '', - valueSizeClasses = [ - options.cssClasses.valueNormal, - options.cssClasses.valueLarge, - options.cssClasses.valueSub - ], - markerSizeClasses = [ - options.cssClasses.markerNormal, - options.cssClasses.markerLarge, - options.cssClasses.markerSub - ], - valueOrientationClasses = [ - options.cssClasses.valueHorizontal, - options.cssClasses.valueVertical - ], - markerOrientationClasses = [ - options.cssClasses.markerHorizontal, - options.cssClasses.markerVertical - ]; - - addClass(element, options.cssClasses.pips); - addClass(element, options.ort === 0 ? options.cssClasses.pipsHorizontal : options.cssClasses.pipsVertical); - - function getClasses( type, source ){ - var a = source === options.cssClasses.value, - orientationClasses = a ? valueOrientationClasses : markerOrientationClasses, - sizeClasses = a ? valueSizeClasses : markerSizeClasses; - - return source + ' ' + orientationClasses[options.ort] + ' ' + sizeClasses[type]; - } - - function getTags( offset, source, values ) { - return 'class="' + getClasses(values[1], source) + '" style="' + options.style + ': ' + offset + '%"'; - } - - function addSpread ( offset, values ){ - - // Apply the filter function, if it is set. - values[1] = (values[1] && filterFunc) ? filterFunc(values[0], values[1]) : values[1]; - - // Add a marker for every point - out += '
            '; - - // Values are only appended for points marked '1' or '2'. - if ( values[1] ) { - out += '
            ' + formatter.to(values[0]) + '
            '; - } - } - - // Append all points. - Object.keys(spread).forEach(function(a){ - addSpread(a, spread[a]); - }); - - element.innerHTML = out; - - return element; - } - - function pips ( grid ) { - - var mode = grid.mode, - density = grid.density || 1, - filter = grid.filter || false, - values = grid.values || false, - stepped = grid.stepped || false, - group = getGroup( mode, values, stepped ), - spread = generateSpread( density, mode, group ), - format = grid.format || { - to: Math.round - }; - - return scope_Target.appendChild(addMarking( - spread, - filter, - format - )); - } - - - // Shorthand for base dimensions. - function baseSize ( ) { - var rect = scope_Base.getBoundingClientRect(), alt = 'offset' + ['Width', 'Height'][options.ort]; - return options.ort === 0 ? (rect.width||scope_Base[alt]) : (rect.height||scope_Base[alt]); - } - - // Handler for attaching events trough a proxy. - function attachEvent ( events, element, callback, data ) { - - // This function can be used to 'filter' events to the slider. - // element is a node, not a nodeList - - var method = function ( e ){ - - if ( scope_Target.hasAttribute('disabled') ) { - return false; - } - - // Stop if an active 'tap' transition is taking place. - if ( hasClass(scope_Target, options.cssClasses.tap) ) { - return false; - } - - e = fixEvent(e, data.pageOffset); - - // Handle reject of multitouch - if ( !e ) { - return false; - } - - // Ignore right or middle clicks on start #454 - if ( events === actions.start && e.buttons !== undefined && e.buttons > 1 ) { - return false; - } - - // Ignore right or middle clicks on start #454 - if ( data.hover && e.buttons ) { - return false; - } - - e.calcPoint = e.points[ options.ort ]; - - // Call the event handler with the event [ and additional data ]. - callback ( e, data ); - }; - - var methods = []; - - // Bind a closure on the target for every event type. - events.split(' ').forEach(function( eventName ){ - element.addEventListener(eventName, method, false); - methods.push([eventName, method]); - }); - - return methods; - } - - // Provide a clean event with standardized offset values. - function fixEvent ( e, pageOffset ) { - - // Prevent scrolling and panning on touch events, while - // attempting to slide. The tap event also depends on this. - e.preventDefault(); - - // Filter the event to register the type, which can be - // touch, mouse or pointer. Offset changes need to be - // made on an event specific basis. - var touch = e.type.indexOf('touch') === 0; - var mouse = e.type.indexOf('mouse') === 0; - var pointer = e.type.indexOf('pointer') === 0; - var x; - var y; - - // IE10 implemented pointer events with a prefix; - if ( e.type.indexOf('MSPointer') === 0 ) { - pointer = true; - } - - if ( touch ) { - - // Fix bug when user touches with two or more fingers on mobile devices. - // It's useful when you have two or more sliders on one page, - // that can be touched simultaneously. - // #649, #663, #668 - if ( e.touches.length > 1 ) { - return false; - } - - // noUiSlider supports one movement at a time, - // so we can select the first 'changedTouch'. - x = e.changedTouches[0].pageX; - y = e.changedTouches[0].pageY; - } - - pageOffset = pageOffset || getPageOffset(); - - if ( mouse || pointer ) { - x = e.clientX + pageOffset.x; - y = e.clientY + pageOffset.y; - } - - e.pageOffset = pageOffset; - e.points = [x, y]; - e.cursor = mouse || pointer; // Fix #435 - - return e; - } - - // Translate a coordinate in the document to a percentage on the slider - function calcPointToPercentage ( calcPoint ) { - var location = calcPoint - offset(scope_Base, options.ort); - var proposal = ( location * 100 ) / baseSize(); - return options.dir ? 100 - proposal : proposal; - } - - // Find handle closest to a certain percentage on the slider - function getClosestHandle ( proposal ) { - - var closest = 100; - var handleNumber = false; - - scope_Handles.forEach(function(handle, index){ - - // Disabled handles are ignored - if ( handle.hasAttribute('disabled') ) { - return; - } - - var pos = Math.abs(scope_Locations[index] - proposal); - - if ( pos < closest ) { - handleNumber = index; - closest = pos; - } - }); - - return handleNumber; - } - - // Moves handle(s) by a percentage - // (bool, % to move, [% where handle started, ...], [index in scope_Handles, ...]) - function moveHandles ( upward, proposal, locations, handleNumbers ) { - - var proposals = locations.slice(); - - var b = [!upward, upward]; - var f = [upward, !upward]; - - // Copy handleNumbers so we don't change the dataset - handleNumbers = handleNumbers.slice(); - - // Check to see which handle is 'leading'. - // If that one can't move the second can't either. - if ( upward ) { - handleNumbers.reverse(); - } - - // Step 1: get the maximum percentage that any of the handles can move - if ( handleNumbers.length > 1 ) { - - handleNumbers.forEach(function(handleNumber, o) { - - var to = checkHandlePosition(proposals, handleNumber, proposals[handleNumber] + proposal, b[o], f[o]); - - // Stop if one of the handles can't move. - if ( to === false ) { - proposal = 0; - } else { - proposal = to - proposals[handleNumber]; - proposals[handleNumber] = to; - } - }); - } - - // If using one handle, check backward AND forward - else { - b = f = [true]; - } - - var state = false; - - // Step 2: Try to set the handles with the found percentage - handleNumbers.forEach(function(handleNumber, o) { - state = setHandle(handleNumber, locations[handleNumber] + proposal, b[o], f[o]) || state; - }); - - // Step 3: If a handle moved, fire events - if ( state ) { - handleNumbers.forEach(function(handleNumber){ - fireEvent('update', handleNumber); - fireEvent('slide', handleNumber); - }); - } - } - - // External event handling - function fireEvent ( eventName, handleNumber, tap ) { - - Object.keys(scope_Events).forEach(function( targetEvent ) { - - var eventType = targetEvent.split('.')[0]; - - if ( eventName === eventType ) { - scope_Events[targetEvent].forEach(function( callback ) { - - callback.call( - // Use the slider public API as the scope ('this') - scope_Self, - // Return values as array, so arg_1[arg_2] is always valid. - scope_Values.map(options.format.to), - // Handle index, 0 or 1 - handleNumber, - // Unformatted slider values - scope_Values.slice(), - // Event is fired by tap, true or false - tap || false, - // Left offset of the handle, in relation to the slider - scope_Locations.slice() - ); - }); - } - }); - } - - - // Fire 'end' when a mouse or pen leaves the document. - function documentLeave ( event, data ) { - if ( event.type === "mouseout" && event.target.nodeName === "HTML" && event.relatedTarget === null ){ - eventEnd (event, data); - } - } - - // Handle movement on document for handle and range drag. - function eventMove ( event, data ) { - - // Fix #498 - // Check value of .buttons in 'start' to work around a bug in IE10 mobile (data.buttonsProperty). - // https://connect.microsoft.com/IE/feedback/details/927005/mobile-ie10-windows-phone-buttons-property-of-pointermove-event-always-zero - // IE9 has .buttons and .which zero on mousemove. - // Firefox breaks the spec MDN defines. - if ( navigator.appVersion.indexOf("MSIE 9") === -1 && event.buttons === 0 && data.buttonsProperty !== 0 ) { - return eventEnd(event, data); - } - - // Check if we are moving up or down - var movement = (options.dir ? -1 : 1) * (event.calcPoint - data.startCalcPoint); - - // Convert the movement into a percentage of the slider width/height - var proposal = (movement * 100) / data.baseSize; - - moveHandles(movement > 0, proposal, data.locations, data.handleNumbers); - } - - // Unbind move events on document, call callbacks. - function eventEnd ( event, data ) { - - // The handle is no longer active, so remove the class. - if ( scope_ActiveHandle ) { - removeClass(scope_ActiveHandle, options.cssClasses.active); - scope_ActiveHandle = false; - } - - // Remove cursor styles and text-selection events bound to the body. - if ( event.cursor ) { - document.body.style.cursor = ''; - document.body.removeEventListener('selectstart', document.body.noUiListener); - } - - // Unbind the move and end events, which are added on 'start'. - document.documentElement.noUiListeners.forEach(function( c ) { - document.documentElement.removeEventListener(c[0], c[1]); - }); - - // Remove dragging class. - removeClass(scope_Target, options.cssClasses.drag); - - setZindex(); - - data.handleNumbers.forEach(function(handleNumber){ - fireEvent('set', handleNumber); - fireEvent('change', handleNumber); - fireEvent('end', handleNumber); - }); - } - - // Bind move events on document. - function eventStart ( event, data ) { - - if ( data.handleNumbers.length === 1 ) { - - var handle = scope_Handles[data.handleNumbers[0]]; - - // Ignore 'disabled' handles - if ( handle.hasAttribute('disabled') ) { - return false; - } - - // Mark the handle as 'active' so it can be styled. - scope_ActiveHandle = handle.children[0]; - addClass(scope_ActiveHandle, options.cssClasses.active); - } - - // Fix #551, where a handle gets selected instead of dragged. - event.preventDefault(); - - // A drag should never propagate up to the 'tap' event. - event.stopPropagation(); - - // Attach the move and end events. - var moveEvent = attachEvent(actions.move, document.documentElement, eventMove, { - startCalcPoint: event.calcPoint, - baseSize: baseSize(), - pageOffset: event.pageOffset, - handleNumbers: data.handleNumbers, - buttonsProperty: event.buttons, - locations: scope_Locations.slice() - }); - - var endEvent = attachEvent(actions.end, document.documentElement, eventEnd, { - handleNumbers: data.handleNumbers - }); - - var outEvent = attachEvent("mouseout", document.documentElement, documentLeave, { - handleNumbers: data.handleNumbers - }); - - document.documentElement.noUiListeners = moveEvent.concat(endEvent, outEvent); - - // Text selection isn't an issue on touch devices, - // so adding cursor styles can be skipped. - if ( event.cursor ) { - - // Prevent the 'I' cursor and extend the range-drag cursor. - document.body.style.cursor = getComputedStyle(event.target).cursor; - - // Mark the target with a dragging state. - if ( scope_Handles.length > 1 ) { - addClass(scope_Target, options.cssClasses.drag); - } - - var f = function(){ - return false; - }; - - document.body.noUiListener = f; - - // Prevent text selection when dragging the handles. - document.body.addEventListener('selectstart', f, false); - } - - data.handleNumbers.forEach(function(handleNumber){ - fireEvent('start', handleNumber); - }); - } - - // Move closest handle to tapped location. - function eventTap ( event ) { - - // The tap event shouldn't propagate up - event.stopPropagation(); - - var proposal = calcPointToPercentage(event.calcPoint); - var handleNumber = getClosestHandle(proposal); - - // Tackle the case that all handles are 'disabled'. - if ( handleNumber === false ) { - return false; - } - - // Flag the slider as it is now in a transitional state. - // Transition takes a configurable amount of ms (default 300). Re-enable the slider after that. - if ( !options.events.snap ) { - addClassFor(scope_Target, options.cssClasses.tap, options.animationDuration); - } - - setHandle(handleNumber, proposal, true, true); - - setZindex(); - - fireEvent('slide', handleNumber, true); - fireEvent('set', handleNumber, true); - fireEvent('change', handleNumber, true); - fireEvent('update', handleNumber, true); - - if ( options.events.snap ) { - eventStart(event, { handleNumbers: [handleNumber] }); - } - } - - // Fires a 'hover' event for a hovered mouse/pen position. - function eventHover ( event ) { - - var proposal = calcPointToPercentage(event.calcPoint); - - var to = scope_Spectrum.getStep(proposal); - var value = scope_Spectrum.fromStepping(to); - - Object.keys(scope_Events).forEach(function( targetEvent ) { - if ( 'hover' === targetEvent.split('.')[0] ) { - scope_Events[targetEvent].forEach(function( callback ) { - callback.call( scope_Self, value ); - }); - } - }); - } - - // Attach events to several slider parts. - function bindSliderEvents ( behaviour ) { - - // Attach the standard drag event to the handles. - if ( !behaviour.fixed ) { - - scope_Handles.forEach(function( handle, index ){ - - // These events are only bound to the visual handle - // element, not the 'real' origin element. - attachEvent ( actions.start, handle.children[0], eventStart, { - handleNumbers: [index] - }); - }); - } - - // Attach the tap event to the slider base. - if ( behaviour.tap ) { - attachEvent (actions.start, scope_Base, eventTap, {}); - } - - // Fire hover events - if ( behaviour.hover ) { - attachEvent (actions.move, scope_Base, eventHover, { hover: true }); - } - - // Make the range draggable. - if ( behaviour.drag ){ - - scope_Connects.forEach(function( connect, index ){ - - if ( connect === false || index === 0 || index === scope_Connects.length - 1 ) { - return; - } - - var handleBefore = scope_Handles[index - 1]; - var handleAfter = scope_Handles[index]; - var eventHolders = [connect]; - - addClass(connect, options.cssClasses.draggable); - - // When the range is fixed, the entire range can - // be dragged by the handles. The handle in the first - // origin will propagate the start event upward, - // but it needs to be bound manually on the other. - if ( behaviour.fixed ) { - eventHolders.push(handleBefore.children[0]); - eventHolders.push(handleAfter.children[0]); - } - - eventHolders.forEach(function( eventHolder ) { - attachEvent ( actions.start, eventHolder, eventStart, { - handles: [handleBefore, handleAfter], - handleNumbers: [index - 1, index] - }); - }); - }); - } - } - - - // Split out the handle positioning logic so the Move event can use it, too - function checkHandlePosition ( reference, handleNumber, to, lookBackward, lookForward ) { - - // For sliders with multiple handles, limit movement to the other handle. - // Apply the margin option by adding it to the handle positions. - if ( scope_Handles.length > 1 ) { - - if ( lookBackward && handleNumber > 0 ) { - to = Math.max(to, reference[handleNumber - 1] + options.margin); - } - - if ( lookForward && handleNumber < scope_Handles.length - 1 ) { - to = Math.min(to, reference[handleNumber + 1] - options.margin); - } - } - - // The limit option has the opposite effect, limiting handles to a - // maximum distance from another. Limit must be > 0, as otherwise - // handles would be unmoveable. - if ( scope_Handles.length > 1 && options.limit ) { - - if ( lookBackward && handleNumber > 0 ) { - to = Math.min(to, reference[handleNumber - 1] + options.limit); - } - - if ( lookForward && handleNumber < scope_Handles.length - 1 ) { - to = Math.max(to, reference[handleNumber + 1] - options.limit); - } - } - - // The padding option keeps the handles a certain distance from the - // edges of the slider. Padding must be > 0. - if ( options.padding ) { - - if ( handleNumber === 0 ) { - to = Math.max(to, options.padding); - } - - if ( handleNumber === scope_Handles.length - 1 ) { - to = Math.min(to, 100 - options.padding); - } - } - - to = scope_Spectrum.getStep(to); - - // Limit percentage to the 0 - 100 range - to = limit(to); - - // Return false if handle can't move - if ( to === reference[handleNumber] ) { - return false; - } - - return to; - } - - function toPct ( pct ) { - return pct + '%'; - } - - // Updates scope_Locations and scope_Values, updates visual state - function updateHandlePosition ( handleNumber, to ) { - - // Update locations. - scope_Locations[handleNumber] = to; - - // Convert the value to the slider stepping/range. - scope_Values[handleNumber] = scope_Spectrum.fromStepping(to); - - // Called synchronously or on the next animationFrame - var stateUpdate = function() { - scope_Handles[handleNumber].style[options.style] = toPct(to); - updateConnect(handleNumber); - updateConnect(handleNumber + 1); - }; - - // Set the handle to the new position. - // Use requestAnimationFrame for efficient painting. - // No significant effect in Chrome, Edge sees dramatic performace improvements. - // Option to disable is useful for unit tests, and single-step debugging. - if ( window.requestAnimationFrame && options.useRequestAnimationFrame ) { - window.requestAnimationFrame(stateUpdate); - } else { - stateUpdate(); - } - } - - function setZindex ( ) { - - scope_HandleNumbers.forEach(function(handleNumber){ - // Handles before the slider middle are stacked later = higher, - // Handles after the middle later is lower - // [[7] [8] .......... | .......... [5] [4] - var dir = (scope_Locations[handleNumber] > 50 ? -1 : 1); - var zIndex = 3 + (scope_Handles.length + (dir * handleNumber)); - scope_Handles[handleNumber].childNodes[0].style.zIndex = zIndex; - }); - } - - // Test suggested values and apply margin, step. - function setHandle ( handleNumber, to, lookBackward, lookForward ) { - - to = checkHandlePosition(scope_Locations, handleNumber, to, lookBackward, lookForward); - - if ( to === false ) { - return false; - } - - updateHandlePosition(handleNumber, to); - - return true; - } - - // Updates style attribute for connect nodes - function updateConnect ( index ) { - - // Skip connects set to false - if ( !scope_Connects[index] ) { - return; - } - - var l = 0; - var h = 100; - - if ( index !== 0 ) { - l = scope_Locations[index - 1]; - } - - if ( index !== scope_Connects.length - 1 ) { - h = scope_Locations[index]; - } - - scope_Connects[index].style[options.style] = toPct(l); - scope_Connects[index].style[options.styleOposite] = toPct(100 - h); - } - - // ... - function setValue ( to, handleNumber ) { - - // Setting with null indicates an 'ignore'. - // Inputting 'false' is invalid. - if ( to === null || to === false ) { - return; - } - - // If a formatted number was passed, attemt to decode it. - if ( typeof to === 'number' ) { - to = String(to); - } - - to = options.format.from(to); - - // Request an update for all links if the value was invalid. - // Do so too if setting the handle fails. - if ( to !== false && !isNaN(to) ) { - setHandle(handleNumber, scope_Spectrum.toStepping(to), false, false); - } - } - - // Set the slider value. - function valueSet ( input, fireSetEvent ) { - - var values = asArray(input); - var isInit = scope_Locations[0] === undefined; - - // Event fires by default - fireSetEvent = (fireSetEvent === undefined ? true : !!fireSetEvent); - - values.forEach(setValue); - - // Animation is optional. - // Make sure the initial values were set before using animated placement. - if ( options.animate && !isInit ) { - addClassFor(scope_Target, options.cssClasses.tap, options.animationDuration); - } - - // Now that all base values are set, apply constraints - scope_HandleNumbers.forEach(function(handleNumber){ - setHandle(handleNumber, scope_Locations[handleNumber], true, false); - }); - - setZindex(); - - scope_HandleNumbers.forEach(function(handleNumber){ - - fireEvent('update', handleNumber); - - // Fire the event only for handles that received a new value, as per #579 - if ( values[handleNumber] !== null && fireSetEvent ) { - fireEvent('set', handleNumber); - } - }); - } - - // Reset slider to initial values - function valueReset ( fireSetEvent ) { - valueSet(options.start, fireSetEvent); - } - - // Get the slider value. - function valueGet ( ) { - - var values = scope_Values.map(options.format.to); - - // If only one handle is used, return a single value. - if ( values.length === 1 ){ - return values[0]; - } - - return values; - } - - // Removes classes from the root and empties it. - function destroy ( ) { - - for ( var key in options.cssClasses ) { - if ( !options.cssClasses.hasOwnProperty(key) ) { continue; } - removeClass(scope_Target, options.cssClasses[key]); - } - - while (scope_Target.firstChild) { - scope_Target.removeChild(scope_Target.firstChild); - } - - delete scope_Target.noUiSlider; - } - - // Get the current step size for the slider. - function getCurrentStep ( ) { - - // Check all locations, map them to their stepping point. - // Get the step point, then find it in the input list. - return scope_Locations.map(function( location, index ){ - - var nearbySteps = scope_Spectrum.getNearbySteps( location ); - var value = scope_Values[index]; - var increment = nearbySteps.thisStep.step; - var decrement = null; - - // If the next value in this step moves into the next step, - // the increment is the start of the next step - the current value - if ( increment !== false ) { - if ( value + increment > nearbySteps.stepAfter.startValue ) { - increment = nearbySteps.stepAfter.startValue - value; - } - } - - - // If the value is beyond the starting point - if ( value > nearbySteps.thisStep.startValue ) { - decrement = nearbySteps.thisStep.step; - } - - else if ( nearbySteps.stepBefore.step === false ) { - decrement = false; - } - - // If a handle is at the start of a step, it always steps back into the previous step first - else { - decrement = value - nearbySteps.stepBefore.highestStep; - } - - - // Now, if at the slider edges, there is not in/decrement - if ( location === 100 ) { - increment = null; - } - - else if ( location === 0 ) { - decrement = null; - } - - // As per #391, the comparison for the decrement step can have some rounding issues. - var stepDecimals = scope_Spectrum.countStepDecimals(); - - // Round per #391 - if ( increment !== null && increment !== false ) { - increment = Number(increment.toFixed(stepDecimals)); - } - - if ( decrement !== null && decrement !== false ) { - decrement = Number(decrement.toFixed(stepDecimals)); - } - - return [decrement, increment]; - }); - } - - // Attach an event to this slider, possibly including a namespace - function bindEvent ( namespacedEvent, callback ) { - scope_Events[namespacedEvent] = scope_Events[namespacedEvent] || []; - scope_Events[namespacedEvent].push(callback); - - // If the event bound is 'update,' fire it immediately for all handles. - if ( namespacedEvent.split('.')[0] === 'update' ) { - scope_Handles.forEach(function(a, index){ - fireEvent('update', index); - }); - } - } - - // Undo attachment of event - function removeEvent ( namespacedEvent ) { - - var event = namespacedEvent && namespacedEvent.split('.')[0]; - var namespace = event && namespacedEvent.substring(event.length); - - Object.keys(scope_Events).forEach(function( bind ){ - - var tEvent = bind.split('.')[0], - tNamespace = bind.substring(tEvent.length); - - if ( (!event || event === tEvent) && (!namespace || namespace === tNamespace) ) { - delete scope_Events[bind]; - } - }); - } - - // Updateable: margin, limit, padding, step, range, animate, snap - function updateOptions ( optionsToUpdate, fireSetEvent ) { - - // Spectrum is created using the range, snap, direction and step options. - // 'snap' and 'step' can be updated, 'direction' cannot, due to event binding. - // If 'snap' and 'step' are not passed, they should remain unchanged. - var v = valueGet(); - - var updateAble = ['margin', 'limit', 'padding', 'range', 'animate', 'snap', 'step', 'format']; - - // Only change options that we're actually passed to update. - updateAble.forEach(function(name){ - if ( optionsToUpdate[name] !== undefined ) { - originalOptions[name] = optionsToUpdate[name]; - } - }); - - var newOptions = testOptions(originalOptions); - - // Load new options into the slider state - updateAble.forEach(function(name){ - if ( optionsToUpdate[name] !== undefined ) { - options[name] = newOptions[name]; - } - }); - - // Save current spectrum direction as testOptions in testRange call - // doesn't rely on current direction - newOptions.spectrum.direction = scope_Spectrum.direction; - scope_Spectrum = newOptions.spectrum; - - // Limit, margin and padding depend on the spectrum but are stored outside of it. (#677) - options.margin = newOptions.margin; - options.limit = newOptions.limit; - options.padding = newOptions.padding; - - // Invalidate the current positioning so valueSet forces an update. - scope_Locations = []; - valueSet(optionsToUpdate.start || v, fireSetEvent); - } - - // Throw an error if the slider was already initialized. - if ( scope_Target.noUiSlider ) { - throw new Error('Slider was already initialized.'); - } - - // Create the base element, initialise HTML and set classes. - // Add handles and connect elements. - addSlider(scope_Target); - addElements(options.connect, scope_Base); - - scope_Self = { - destroy: destroy, - steps: getCurrentStep, - on: bindEvent, - off: removeEvent, - get: valueGet, - set: valueSet, - reset: valueReset, - // Exposed for unit testing, don't use this in your application. - __moveHandles: function(a, b, c) { moveHandles(a, b, scope_Locations, c); }, - options: originalOptions, // Issue #600, #678 - updateOptions: updateOptions, - target: scope_Target, // Issue #597 - pips: pips // Issue #594 - }; - - // Attach user events. - bindSliderEvents(options.events); - - // Use the public value method to set the start values. - valueSet(options.start); - - if ( options.pips ) { - pips(options.pips); - } - - if ( options.tooltips ) { - tooltips(); - } - - return scope_Self; - - } - - - // Run the standard initializer - function initialize ( target, originalOptions ) { - - if ( !target.nodeName ) { - throw new Error('noUiSlider.create requires a single element.'); - } - - if (originalOptions.tooltips === undefined) { - originalOptions.tooltips = true; - } - - // Test the options and create the slider environment; - var options = testOptions( originalOptions, target ); - var api = closure( target, options, originalOptions ); - - target.noUiSlider = api; - - return api; - } - - // Use an object instead of a function for future expansibility; - return { - create: initialize - }; - -})); \ No newline at end of file diff --git a/node_modules/materialize-css/extras/noUiSlider/nouislider.min.js b/node_modules/materialize-css/extras/noUiSlider/nouislider.min.js deleted file mode 100644 index b48574c..0000000 --- a/node_modules/materialize-css/extras/noUiSlider/nouislider.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){function a(a){return a.split("").reverse().join("")}function b(a,b,c){if((a[b]||a[c])&&a[b]===a[c])throw Error(b)}function c(b,c,d,e,f,g,h,i,j,k,l,m){h=m;var n,o=l="";return g&&(m=g(m)),!("number"!=typeof m||!isFinite(m))&&(b&&0===parseFloat(m.toFixed(b))&&(m=0),0>m&&(n=!0,m=Math.abs(m)),b&&(g=Math.pow(10,b),m=(Math.round(m*g)/g).toFixed(b)),m=m.toString(),-1!==m.indexOf(".")&&(b=m.split("."),m=b[0],d&&(l=d+b[1])),c&&(m=a(m).match(/.{1,3}/g),m=a(m.join(a(c)))),n&&i&&(o+=i),e&&(o+=e),n&&j&&(o+=j),o=o+m+l,f&&(o+=f),k&&(o=k(o,h)),o)}function d(a,b,c,d,e,f,g,h,i,j,k,l){var m;return a="",k&&(l=k(l)),!(!l||"string"!=typeof l)&&(h&&l.substring(0,h.length)===h&&(l=l.replace(h,""),m=!0),d&&l.substring(0,d.length)===d&&(l=l.replace(d,"")),i&&l.substring(0,i.length)===i&&(l=l.replace(i,""),m=!0),e&&l.slice(-1*e.length)===e&&(l=l.slice(0,-1*e.length)),b&&(l=l.split(b).join("")),c&&(l=l.replace(c,".")),m&&(a+="-"),a=Number((a+l).replace(/[^0-9\.\-.]/g,"")),g&&(a=g(a)),!("number"!=typeof a||!isFinite(a))&&a)}function e(a){var c,d,e,f={};for(c=0;ce&&(f[d]=e):"encoder"===d||"decoder"===d||"edit"===d||"undo"===d?"function"==typeof e&&(f[d]=e):"string"==typeof e&&(f[d]=e);return b(f,"mark","thousand"),b(f,"prefix","negative"),b(f,"prefix","negativeBefore"),f}function f(a,b,c){var d,e=[];for(d=0;d0&&(j(a,b),setTimeout(function(){k(a,b)},c))}function g(a){return Math.max(Math.min(a,100),0)}function h(a){return Array.isArray(a)?a:[a]}function i(a){a=String(a);var b=a.split(".");return b.length>1?b[1].length:0}function j(a,b){a.classList?a.classList.add(b):a.className+=" "+b}function k(a,b){a.classList?a.classList.remove(b):a.className=a.className.replace(new RegExp("(^|\\b)"+b.split(" ").join("|")+"(\\b|$)","gi")," ")}function l(a,b){return a.classList?a.classList.contains(b):new RegExp("\\b"+b+"\\b").test(a.className)}function m(){var a=void 0!==window.pageXOffset,b="CSS1Compat"===(document.compatMode||""),c=a?window.pageXOffset:b?document.documentElement.scrollLeft:document.body.scrollLeft,d=a?window.pageYOffset:b?document.documentElement.scrollTop:document.body.scrollTop;return{x:c,y:d}}function n(){return window.navigator.pointerEnabled?{start:"pointerdown",move:"pointermove",end:"pointerup"}:window.navigator.msPointerEnabled?{start:"MSPointerDown",move:"MSPointerMove",end:"MSPointerUp"}:{start:"mousedown touchstart",move:"mousemove touchmove",end:"mouseup touchend"}}function o(a,b){return 100/(b-a)}function p(a,b){return 100*b/(a[1]-a[0])}function q(a,b){return p(a,a[0]<0?b+Math.abs(a[0]):b-a[0])}function r(a,b){return b*(a[1]-a[0])/100+a[0]}function s(a,b){for(var c=1;a>=b[c];)c+=1;return c}function t(a,b,c){if(c>=a.slice(-1)[0])return 100;var d,e,f,g,h=s(c,a);return d=a[h-1],e=a[h],f=b[h-1],g=b[h],f+q([d,e],c)/o(f,g)}function u(a,b,c){if(c>=100)return a.slice(-1)[0];var d,e,f,g,h=s(c,b);return d=a[h-1],e=a[h],f=b[h-1],g=b[h],r([d,e],(c-f)*o(f,g))}function v(a,b,d,e){if(100===e)return e;var f,g,h=s(e,a);return d?(f=a[h-1],g=a[h],e-f>(g-f)/2?g:f):b[h-1]?a[h-1]+c(e-a[h-1],b[h-1]):e}function w(a,b,c){var d;if("number"==typeof b&&(b=[b]),"[object Array]"!==Object.prototype.toString.call(b))throw new Error("noUiSlider: 'range' contains invalid value.");if(d="min"===a?0:"max"===a?100:parseFloat(a),!e(d)||!e(b[0]))throw new Error("noUiSlider: 'range' value isn't numeric.");c.xPct.push(d),c.xVal.push(b[0]),d?c.xSteps.push(!isNaN(b[1])&&b[1]):isNaN(b[1])||(c.xSteps[0]=b[1]),c.xHighestCompleteStep.push(0)}function x(a,b,c){if(!b)return!0;c.xSteps[a]=p([c.xVal[a],c.xVal[a+1]],b)/o(c.xPct[a],c.xPct[a+1]);var d=(c.xVal[a+1]-c.xVal[a])/c.xNumSteps[a],e=Math.ceil(Number(d.toFixed(3))-1),f=c.xVal[a]+c.xNumSteps[a]*e;c.xHighestCompleteStep[a]=f}function y(a,b,c,d){this.xPct=[],this.xVal=[],this.xSteps=[d||!1],this.xNumSteps=[!1],this.xHighestCompleteStep=[],this.snap=b,this.direction=c;var e,f=[];for(e in a)a.hasOwnProperty(e)&&f.push([a[e],e]);for(f.length&&"object"==typeof f[0][0]?f.sort(function(a,b){return a[0][0]-b[0][0]}):f.sort(function(a,b){return a[0]-b[0]}),e=0;e=50)throw new Error("noUiSlider: 'padding' option must be less than half the range.")}}function K(a,b){switch(b){case"ltr":a.dir=0;break;case"rtl":a.dir=1;break;default:throw new Error("noUiSlider: 'direction' option was not recognized.")}}function L(a,b){if("string"!=typeof b)throw new Error("noUiSlider: 'behaviour' must be a string containing options.");var c=b.indexOf("tap")>=0,d=b.indexOf("drag")>=0,e=b.indexOf("fixed")>=0,f=b.indexOf("snap")>=0,g=b.indexOf("hover")>=0;if(e){if(2!==a.handles)throw new Error("noUiSlider: 'fixed' behaviour must be used with 2 handles");H(a,a.start[1]-a.start[0])}a.events={tap:c||f,drag:d,fixed:e,snap:f,hover:g}}function M(a,b){if(b!==!1)if(b===!0){a.tooltips=[];for(var c=0;c"+f+"
            "}})}function u(a,b,c){if("range"===a||"steps"===a)return ja.xVal;if("count"===a){var d,e=100/(b-1),f=0;for(b=[];(d=f++*e)<=100;)b.push(d);a="positions"}return"positions"===a?b.map(function(a){return ja.fromStepping(c?ja.getStep(a):a)}):"values"===a?c?b.map(function(a){return ja.fromStepping(ja.getStep(ja.toStepping(a)))}):b:void 0}function v(a,c,d){function e(a,b){return(a+b).toFixed(7)/1}var f={},g=ja.xVal[0],h=ja.xVal[ja.xVal.length-1],i=!1,j=!1,k=0;return d=b(d.slice().sort(function(a,b){return a-b})),d[0]!==g&&(d.unshift(g),i=!0),d[d.length-1]!==h&&(d.push(h),j=!0),d.forEach(function(b,g){var h,l,m,n,o,p,q,r,s,t,u=b,v=d[g+1];if("steps"===c&&(h=ja.xNumSteps[g]),h||(h=v-u),u!==!1&&void 0!==v)for(h=Math.max(h,1e-7),l=u;l<=v;l=e(l,h)){for(n=ja.toStepping(l),o=n-k,r=o/a,s=Math.round(r),t=o/s,m=1;m<=s;m+=1)p=k+m*t,f[p.toFixed(5)]=["x",0];q=d.indexOf(l)>-1?1:"steps"===c?2:0,!g&&i&&(q=0),l===v&&j||(f[n.toFixed(5)]=[l,q]),k=n}}),f}function w(a,b,c){function d(a,b){var c=b===e.cssClasses.value,d=c?m:n,f=c?k:l;return b+" "+d[e.ort]+" "+f[a]}function f(a,b,c){return'class="'+d(c[1],b)+'" style="'+e.style+": "+a+'%"'}function g(a,d){d[1]=d[1]&&b?b(d[0],d[1]):d[1],i+="
            ",d[1]&&(i+="
            "+c.to(d[0])+"
            ")}var h=document.createElement("div"),i="",k=[e.cssClasses.valueNormal,e.cssClasses.valueLarge,e.cssClasses.valueSub],l=[e.cssClasses.markerNormal,e.cssClasses.markerLarge,e.cssClasses.markerSub],m=[e.cssClasses.valueHorizontal,e.cssClasses.valueVertical],n=[e.cssClasses.markerHorizontal,e.cssClasses.markerVertical];return j(h,e.cssClasses.pips),j(h,0===e.ort?e.cssClasses.pipsHorizontal:e.cssClasses.pipsVertical),Object.keys(a).forEach(function(b){g(b,a[b])}),h.innerHTML=i,h}function x(a){var b=a.mode,c=a.density||1,d=a.filter||!1,e=a.values||!1,f=a.stepped||!1,g=u(b,e,f),h=v(c,b,g),i=a.format||{to:Math.round};return fa.appendChild(w(h,d,i))}function y(){var a=aa.getBoundingClientRect(),b="offset"+["Width","Height"][e.ort];return 0===e.ort?a.width||aa[b]:a.height||aa[b]}function z(a,b,c,d){var f=function(b){return!fa.hasAttribute("disabled")&&(!l(fa,e.cssClasses.tap)&&(!!(b=A(b,d.pageOffset))&&(!(a===ea.start&&void 0!==b.buttons&&b.buttons>1)&&((!d.hover||!b.buttons)&&(b.calcPoint=b.points[e.ort],void c(b,d))))))},g=[];return a.split(" ").forEach(function(a){b.addEventListener(a,f,!1),g.push([a,f])}),g}function A(a,b){a.preventDefault();var c,d,e=0===a.type.indexOf("touch"),f=0===a.type.indexOf("mouse"),g=0===a.type.indexOf("pointer");if(0===a.type.indexOf("MSPointer")&&(g=!0),e){if(a.touches.length>1)return!1;c=a.changedTouches[0].pageX,d=a.changedTouches[0].pageY}return b=b||m(),(f||g)&&(c=a.clientX+b.x,d=a.clientY+b.y),a.pageOffset=b,a.points=[c,d],a.cursor=f||g,a}function B(a){var b=a-d(aa,e.ort),c=100*b/y();return e.dir?100-c:c}function C(a){var b=100,c=!1;return ba.forEach(function(d,e){if(!d.hasAttribute("disabled")){var f=Math.abs(ga[e]-a);f1?d.forEach(function(a,c){var d=M(e,a,e[a]+b,f[c],g[c]);d===!1?b=0:(b=d-e[a],e[a]=d)}):f=g=[!0];var h=!1;d.forEach(function(a,d){h=Q(a,c[a]+b,f[d],g[d])||h}),h&&d.forEach(function(a){E("update",a),E("slide",a)})}function E(a,b,c){Object.keys(la).forEach(function(d){var f=d.split(".")[0];a===f&&la[d].forEach(function(a){a.call(da,ka.map(e.format.to),b,ka.slice(),c||!1,ga.slice())})})}function F(a,b){"mouseout"===a.type&&"HTML"===a.target.nodeName&&null===a.relatedTarget&&H(a,b)}function G(a,b){if(navigator.appVersion.indexOf("MSIE 9")===-1&&0===a.buttons&&0!==b.buttonsProperty)return H(a,b);var c=(e.dir?-1:1)*(a.calcPoint-b.startCalcPoint),d=100*c/b.baseSize;D(c>0,d,b.locations,b.handleNumbers)}function H(a,b){ia&&(k(ia,e.cssClasses.active),ia=!1),a.cursor&&(document.body.style.cursor="",document.body.removeEventListener("selectstart",document.body.noUiListener)),document.documentElement.noUiListeners.forEach(function(a){document.documentElement.removeEventListener(a[0],a[1])}),k(fa,e.cssClasses.drag),P(),b.handleNumbers.forEach(function(a){E("set",a),E("change",a),E("end",a)})}function I(a,b){if(1===b.handleNumbers.length){var c=ba[b.handleNumbers[0]];if(c.hasAttribute("disabled"))return!1;ia=c.children[0],j(ia,e.cssClasses.active)}a.preventDefault(),a.stopPropagation();var d=z(ea.move,document.documentElement,G,{startCalcPoint:a.calcPoint,baseSize:y(),pageOffset:a.pageOffset,handleNumbers:b.handleNumbers,buttonsProperty:a.buttons,locations:ga.slice()}),f=z(ea.end,document.documentElement,H,{handleNumbers:b.handleNumbers}),g=z("mouseout",document.documentElement,F,{handleNumbers:b.handleNumbers});if(document.documentElement.noUiListeners=d.concat(f,g),a.cursor){document.body.style.cursor=getComputedStyle(a.target).cursor,ba.length>1&&j(fa,e.cssClasses.drag);var h=function(){return!1};document.body.noUiListener=h,document.body.addEventListener("selectstart",h,!1)}b.handleNumbers.forEach(function(a){E("start",a)})}function J(a){a.stopPropagation();var b=B(a.calcPoint),c=C(b);return c!==!1&&(e.events.snap||f(fa,e.cssClasses.tap,e.animationDuration),Q(c,b,!0,!0),P(),E("slide",c,!0),E("set",c,!0),E("change",c,!0),E("update",c,!0),void(e.events.snap&&I(a,{handleNumbers:[c]})))}function K(a){var b=B(a.calcPoint),c=ja.getStep(b),d=ja.fromStepping(c);Object.keys(la).forEach(function(a){"hover"===a.split(".")[0]&&la[a].forEach(function(a){a.call(da,d)})})}function L(a){a.fixed||ba.forEach(function(a,b){z(ea.start,a.children[0],I,{handleNumbers:[b]})}),a.tap&&z(ea.start,aa,J,{}),a.hover&&z(ea.move,aa,K,{hover:!0}),a.drag&&ca.forEach(function(b,c){if(b!==!1&&0!==c&&c!==ca.length-1){var d=ba[c-1],f=ba[c],g=[b];j(b,e.cssClasses.draggable),a.fixed&&(g.push(d.children[0]),g.push(f.children[0])),g.forEach(function(a){z(ea.start,a,I,{handles:[d,f],handleNumbers:[c-1,c]})})}})}function M(a,b,c,d,f){return ba.length>1&&(d&&b>0&&(c=Math.max(c,a[b-1]+e.margin)),f&&b1&&e.limit&&(d&&b>0&&(c=Math.min(c,a[b-1]+e.limit)),f&&b50?-1:1,c=3+(ba.length+b*a);ba[a].childNodes[0].style.zIndex=c})}function Q(a,b,c,d){return b=M(ga,a,b,c,d),b!==!1&&(O(a,b),!0)}function S(a){if(ca[a]){var b=0,c=100;0!==a&&(b=ga[a-1]),a!==ca.length-1&&(c=ga[a]),ca[a].style[e.style]=N(b),ca[a].style[e.styleOposite]=N(100-c)}}function T(a,b){null!==a&&a!==!1&&("number"==typeof a&&(a=String(a)),a=e.format.from(a),a===!1||isNaN(a)||Q(b,ja.toStepping(a),!1,!1))}function U(a,b){var c=h(a),d=void 0===ga[0];b=void 0===b||!!b,c.forEach(T),e.animate&&!d&&f(fa,e.cssClasses.tap,e.animationDuration),ha.forEach(function(a){Q(a,ga[a],!0,!1)}),P(),ha.forEach(function(a){E("update",a),null!==c[a]&&b&&E("set",a)})}function V(a){U(e.start,a)}function W(){var a=ka.map(e.format.to);return 1===a.length?a[0]:a}function X(){for(var a in e.cssClasses)e.cssClasses.hasOwnProperty(a)&&k(fa,e.cssClasses[a]);for(;fa.firstChild;)fa.removeChild(fa.firstChild);delete fa.noUiSlider}function Y(){return ga.map(function(a,b){var c=ja.getNearbySteps(a),d=ka[b],e=c.thisStep.step,f=null;e!==!1&&d+e>c.stepAfter.startValue&&(e=c.stepAfter.startValue-d),f=d>c.thisStep.startValue?c.thisStep.step:c.stepBefore.step!==!1&&d-c.stepBefore.highestStep,100===a?e=null:0===a&&(f=null);var g=ja.countStepDecimals();return null!==e&&e!==!1&&(e=Number(e.toFixed(g))),null!==f&&f!==!1&&(f=Number(f.toFixed(g))),[f,e]})}function Z(a,b){la[a]=la[a]||[],la[a].push(b),"update"===a.split(".")[0]&&ba.forEach(function(a,b){E("update",b)})}function $(a){var b=a&&a.split(".")[0],c=b&&a.substring(b.length);Object.keys(la).forEach(function(a){var d=a.split(".")[0],e=a.substring(d.length);b&&b!==d||c&&c!==e||delete la[a]})}function _(a,b){var c=W(),d=["margin","limit","padding","range","animate","snap","step","format"];d.forEach(function(b){void 0!==a[b]&&(i[b]=a[b])});var f=R(i);d.forEach(function(b){void 0!==a[b]&&(e[b]=f[b])}),f.spectrum.direction=ja.direction,ja=f.spectrum,e.margin=f.margin,e.limit=f.limit,e.padding=f.padding,ga=[],U(a.start||c,b)}var aa,ba,ca,da,ea=n(),fa=c,ga=[],ha=[],ia=!1,ja=e.spectrum,ka=[],la={};if(fa.noUiSlider)throw new Error("Slider was already initialized.");return r(fa),q(e.connect,aa),da={destroy:X,steps:Y,on:Z,off:$,get:W,set:U,reset:V,__moveHandles:function(a,b,c){D(a,b,ga,c)},options:i,updateOptions:_,target:fa,pips:x},L(e.events),U(e.start),e.pips&&x(e.pips),e.tooltips&&t(),da}function T(a,b){if(!a.nodeName)throw new Error("noUiSlider.create requires a single element.");void 0===b.tooltips&&(b.tooltips=!0);var c=R(b,a),d=S(a,c,b);return a.noUiSlider=d,d}y.prototype.getMargin=function(a){var b=this.xNumSteps[0];if(b&&a/b%1!==0)throw new Error("noUiSlider: 'limit', 'margin' and 'padding' must be divisible by step.");return 2===this.xPct.length&&p(this.xVal,a)},y.prototype.toStepping=function(a){return a=t(this.xVal,this.xPct,a)},y.prototype.fromStepping=function(a){return u(this.xVal,this.xPct,a)},y.prototype.getStep=function(a){return a=v(this.xPct,this.xSteps,this.snap,a)},y.prototype.getNearbySteps=function(a){var b=s(a,this.xPct);return{stepBefore:{startValue:this.xVal[b-2],step:this.xNumSteps[b-2],highestStep:this.xHighestCompleteStep[b-2]},thisStep:{startValue:this.xVal[b-1],step:this.xNumSteps[b-1],highestStep:this.xHighestCompleteStep[b-1]},stepAfter:{startValue:this.xVal[b-0],step:this.xNumSteps[b-0],highestStep:this.xHighestCompleteStep[b-0]}}},y.prototype.countStepDecimals=function(){var a=this.xNumSteps.map(i);return Math.max.apply(null,a)},y.prototype.convert=function(a){return this.getStep(this.toStepping(a))};var U={to:function(a){return void 0!==a&&a.toFixed(2)},from:Number};return{create:T}}); \ No newline at end of file diff --git a/node_modules/materialize-css/fab-toolbar-demo.html b/node_modules/materialize-css/fab-toolbar-demo.html deleted file mode 100644 index a61f205..0000000 --- a/node_modules/materialize-css/fab-toolbar-demo.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - Floating Action Button - Materialize - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Bold.eot b/node_modules/materialize-css/fonts/roboto/Roboto-Bold.eot deleted file mode 100644 index b73776e..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Bold.eot and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Bold.ttf b/node_modules/materialize-css/fonts/roboto/Roboto-Bold.ttf deleted file mode 100644 index 68822ca..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Bold.ttf and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Bold.woff b/node_modules/materialize-css/fonts/roboto/Roboto-Bold.woff deleted file mode 100644 index 1f75afd..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Bold.woff and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Bold.woff2 b/node_modules/materialize-css/fonts/roboto/Roboto-Bold.woff2 deleted file mode 100644 index 350d1c3..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Bold.woff2 and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Light.eot b/node_modules/materialize-css/fonts/roboto/Roboto-Light.eot deleted file mode 100644 index 072cdc4..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Light.eot and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Light.ttf b/node_modules/materialize-css/fonts/roboto/Roboto-Light.ttf deleted file mode 100644 index aa45340..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Light.ttf and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Light.woff b/node_modules/materialize-css/fonts/roboto/Roboto-Light.woff deleted file mode 100644 index 3480c6c..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Light.woff and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Light.woff2 b/node_modules/materialize-css/fonts/roboto/Roboto-Light.woff2 deleted file mode 100644 index 9a4d98c..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Light.woff2 and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Medium.eot b/node_modules/materialize-css/fonts/roboto/Roboto-Medium.eot deleted file mode 100644 index f9ad995..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Medium.eot and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Medium.ttf b/node_modules/materialize-css/fonts/roboto/Roboto-Medium.ttf deleted file mode 100644 index a3c1a1f..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Medium.ttf and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Medium.woff b/node_modules/materialize-css/fonts/roboto/Roboto-Medium.woff deleted file mode 100644 index 1186773..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Medium.woff and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Medium.woff2 b/node_modules/materialize-css/fonts/roboto/Roboto-Medium.woff2 deleted file mode 100644 index d10a592..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Medium.woff2 and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Regular.eot b/node_modules/materialize-css/fonts/roboto/Roboto-Regular.eot deleted file mode 100644 index 9b5e8e4..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Regular.eot and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Regular.ttf b/node_modules/materialize-css/fonts/roboto/Roboto-Regular.ttf deleted file mode 100644 index 0e58508..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Regular.ttf and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Regular.woff b/node_modules/materialize-css/fonts/roboto/Roboto-Regular.woff deleted file mode 100644 index f823258..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Regular.woff and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Regular.woff2 b/node_modules/materialize-css/fonts/roboto/Roboto-Regular.woff2 deleted file mode 100644 index b7082ef..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Regular.woff2 and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Thin.eot b/node_modules/materialize-css/fonts/roboto/Roboto-Thin.eot deleted file mode 100644 index 2284a3b..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Thin.eot and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Thin.ttf b/node_modules/materialize-css/fonts/roboto/Roboto-Thin.ttf deleted file mode 100644 index 8779333..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Thin.ttf and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Thin.woff b/node_modules/materialize-css/fonts/roboto/Roboto-Thin.woff deleted file mode 100644 index 2a98c1e..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Thin.woff and /dev/null differ diff --git a/node_modules/materialize-css/fonts/roboto/Roboto-Thin.woff2 b/node_modules/materialize-css/fonts/roboto/Roboto-Thin.woff2 deleted file mode 100644 index a38025a..0000000 Binary files a/node_modules/materialize-css/fonts/roboto/Roboto-Thin.woff2 and /dev/null differ diff --git a/node_modules/materialize-css/footer.html b/node_modules/materialize-css/footer.html deleted file mode 100644 index 1a53d85..0000000 --- a/node_modules/materialize-css/footer.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - - - - - - Footer - Materialize - - - - - - - - - - - - - - - - -
            - - - -
            -
            -
            - -
            - - - - - - -
            
            -  body {
            -    display: flex;
            -    min-height: 100vh;
            -    flex-direction: column;
            -  }
            -
            -  main {
            -    flex: 1 0 auto;
            -  }
            -      
            - -
            - -
            -
            -
            - - -
            -
            - -
            -
            -
            - -
            -
            - - -
            -
            -
            -
            -
            Help Materialize Grow
            -

            We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

            -
            - - - -
            - -
            -
            -
            Join the Discussion
            -

            We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

            - Chat -
            -
            -
            Connect
            - -
            - -
            -
            -
            -
            -
            - -
            - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/forms.html b/node_modules/materialize-css/forms.html deleted file mode 100644 index e46700c..0000000 --- a/node_modules/materialize-css/forms.html +++ /dev/null @@ -1,1098 +0,0 @@ - - - - - - - - - Forms - Materialize - - - - - - - - - - - - - - - - - -
            - - - -
            -
            -
            - -
            - -
            -

            - Forms are the standard way to receive user inputted data. The transitions and smoothness of these elements are very important because of the inherent user interaction associated with forms. -

            - -

            Input fields

            -

            Text fields allow user input. The border should light up simply and clearly indicating which field the user is currently editing. You must have a .input-field div wrapping your input and label. This helps our jQuery animate the label. This is only used in our Input and Textarea form elements.

            -

            The validate class leverages HTML5 validation and will add a valid and invalid class accordingly. If you don't want the Green and Red validation states, just remove the validate class from your inputs.

            -
            -
            -
            -
            -
            - - -
            -
            - - -
            -
            -
            -
            - - -
            -
            -
            -
            - - -
            -
            -
            -
            - - -
            -
            -
            -
            - This is an inline input field: -
            - - -
            -
            -
            -
            -
            -
            
            -  <div class="row">
            -    <form class="col s12">
            -      <div class="row">
            -        <div class="input-field col s6">
            -          <input placeholder="Placeholder" id="first_name" type="text" class="validate">
            -          <label for="first_name">First Name</label>
            -        </div>
            -        <div class="input-field col s6">
            -          <input id="last_name" type="text" class="validate">
            -          <label for="last_name">Last Name</label>
            -        </div>
            -      </div>
            -      <div class="row">
            -        <div class="input-field col s12">
            -          <input disabled value="I am not editable" id="disabled" type="text" class="validate">
            -          <label for="disabled">Disabled</label>
            -        </div>
            -      </div>
            -      <div class="row">
            -        <div class="input-field col s12">
            -          <input id="password" type="password" class="validate">
            -          <label for="password">Password</label>
            -        </div>
            -      </div>
            -      <div class="row">
            -        <div class="input-field col s12">
            -          <input id="email" type="email" class="validate">
            -          <label for="email">Email</label>
            -        </div>
            -      </div>
            -      <div class="row">
            -        <div class="col s12">
            -          This is an inline input field:
            -          <div class="input-field inline">
            -            <input id="email" type="email" class="validate">
            -            <label for="email" data-error="wrong" data-success="right">Email</label>
            -          </div>
            -        </div>
            -      </div>
            -    </form>
            -  </div>
            -        

            -

            Prefilling Text Inputs

            -

            If you are having trouble with the labels overlapping prefilled content, Try adding class="active" to the label.
            You can also call the function Materialize.updateTextFields(); to reinitialize all the Materialize labels on the page if you are dynamically adding inputs.

            -
            -
            - - -
            -
            - -
            
            -  <div class="row">
            -    <div class="input-field col s6">
            -      <input value="Alvin" id="first_name2" type="text" class="validate">
            -      <label class="active" for="first_name2">First Name</label>
            -    </div>
            -  </div>
            -        
            - -
            
            -  $(document).ready(function() {
            -    Materialize.updateTextFields();
            -  });
            -        
            - -

            Icon Prefixes

            -

            You can add an icon prefix to make the form input label even more clear. Just add an icon with the class prefix before the input and label.


            -
            -
            -
            -
            - account_circle - - -
            -
            - phone - - -
            -
            -
            -
            - -
            
            -  <div class="row">
            -    <form class="col s12">
            -      <div class="row">
            -        <div class="input-field col s6">
            -          <i class="material-icons prefix">account_circle</i>
            -          <input id="icon_prefix" type="text" class="validate">
            -          <label for="icon_prefix">First Name</label>
            -        </div>
            -        <div class="input-field col s6">
            -          <i class="material-icons prefix">phone</i>
            -          <input id="icon_telephone" type="tel" class="validate">
            -          <label for="icon_telephone">Telephone</label>
            -        </div>
            -      </div>
            -    </form>
            -  </div>
            -        
            - -

            Custom Error or Success Messages

            -

            You can add custom validation messages by adding either data-error or data-success attributes to your input field labels.


            -
            -
            -
            -
            - - -
            -
            -
            -
            - -
            
            -  <div class="row">
            -    <form class="col s12">
            -      <div class="row">
            -        <div class="input-field col s12">
            -          <input id="email" type="email" class="validate">
            -          <label for="email" data-error="wrong" data-success="right">Email</label>
            -        </div>
            -      </div>
            -    </form>
            -  </div>
            -        
            - - -

            Changing colors

            -

            Here is a CSS template for modifying input fields in CSS. With Sass, you can achieve this by just changing a variable. The CSS shown below is unprefixed. Depending on what you use, you may have to change the type attribute selector.

            -
            
            -  /* label color */
            -   .input-field label {
            -     color: #000;
            -   }
            -   /* label focus color */
            -   .input-field input[type=text]:focus + label {
            -     color: #000;
            -   }
            -   /* label underline focus color */
            -   .input-field input[type=text]:focus {
            -     border-bottom: 1px solid #000;
            -     box-shadow: 0 1px 0 0 #000;
            -   }
            -   /* valid color */
            -   .input-field input[type=text].valid {
            -     border-bottom: 1px solid #000;
            -     box-shadow: 0 1px 0 0 #000;
            -   }
            -   /* invalid color */
            -   .input-field input[type=text].invalid {
            -     border-bottom: 1px solid #000;
            -     box-shadow: 0 1px 0 0 #000;
            -   }
            -   /* icon prefix focus color */
            -   .input-field .prefix.active {
            -     color: #000;
            -   }
            -        
            -
            - - - -
            -

            Textarea

            -

            Textareas allow larger expandable user input. The border should light up simply and clearly indicating which field the user is currently editing. You must have a .input-field div wrapping your input and label. This helps our jQuery animate the label. This is only used in our Input and Textarea form elements.

            -

            Textareas will auto resize to the text inside.

            - - -
            -
            -
            -
            - - -
            -
            -
            -
            -
            
            -  <div class="row">
            -    <form class="col s12">
            -      <div class="row">
            -        <div class="input-field col s12">
            -          <textarea id="textarea1" class="materialize-textarea"></textarea>
            -          <label for="textarea1">Textarea</label>
            -        </div>
            -      </div>
            -    </form>
            -  </div>
            -        
            -

            advanced note: When dynamically changing the value of a textarea with methods like jQuery's .val(), you must trigger an autoresize on it afterwords because .val() does not automatically trigger the events we've binded to the textarea.

            -
            
            -  $('#textarea1').val('New Text');
            -  $('#textarea1').trigger('autoresize');
            -        
            -
            - -

            Icon Prefixes

            -

            You can add an icon prefix to make the form input label even more clear. Just add an icon with the class prefix before the input and label.


            -
            -
            -
            -
            - mode_edit - - -
            -
            -
            -
            - -
            
            -  <div class="row">
            -    <form class="col s12">
            -      <div class="row">
            -        <div class="input-field col s6">
            -          <i class="material-icons prefix">mode_edit</i>
            -          <textarea id="icon_prefix2" class="materialize-textarea"></textarea>
            -          <label for="icon_prefix2">First Name</label>
            -        </div>
            -      </div>
            -    </form>
            -  </div>
            -        
            -
            -
            -

            Select

            -

            Select allows user input through specified options. Make sure you wrap it in a .input-field for proper alignment with other text fields. Remember that this is a jQuery plugin so make sure you initialize this in your document ready.

            -
            -
            -
            -
            - - -
            -
            -
            -

            You can add the property multiple to get the multiple select and select several options.

            -
            -
            - - -
            -
            -
            -

            We also support optgroups in our selects.

            -
            -
            - - -
            -
            -
            -

            You can add icons to your options in any type of select. In the option you add the image source with the data-icon attribute. You can add the left or right class to align your icon. You can also add the circle class to your icon.

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

            You can add the class browser-default to get the browser default.

            -
            -
            - - -
            -
            -
            -
            -
            
            -  <div class="input-field col s12">
            -    <select>
            -      <option value="" disabled selected>Choose your option</option>
            -      <option value="1">Option 1</option>
            -      <option value="2">Option 2</option>
            -      <option value="3">Option 3</option>
            -    </select>
            -    <label>Materialize Select</label>
            -  </div>
            -
            -  <div class="input-field col s12">
            -    <select multiple>
            -      <option value="" disabled selected>Choose your option</option>
            -      <option value="1">Option 1</option>
            -      <option value="2">Option 2</option>
            -      <option value="3">Option 3</option>
            -    </select>
            -    <label>Materialize Multiple Select</label>
            -  </div>
            -
            -  <div class="input-field col s12">
            -    <select multiple>
            -      <optgroup label="team 1">
            -        <option value="1">Option 1</option>
            -        <option value="2">Option 2</option>
            -      </optgroup>
            -      <optgroup label="team 2">
            -        <option value="3">Option 3</option>
            -        <option value="4">Option 4</option>
            -      </optgroup>
            -    </select>
            -    <label>Optgroups</label>
            -  </div>
            -
            -  <div class="input-field col s12 m6">
            -    <select class="icons">
            -      <option value="" disabled selected>Choose your option</option>
            -      <option value="" data-icon="images/sample-1.jpg" class="circle">example 1</option>
            -      <option value="" data-icon="images/office.jpg" class="circle">example 2</option>
            -      <option value="" data-icon="images/yuna.jpg" class="circle">example 1</option>
            -    </select>
            -    <label>Images in select</label>
            -  </div>
            -  <div class="input-field col s12 m6">
            -    <select class="icons">
            -      <option value="" disabled selected>Choose your option</option>
            -      <option value="" data-icon="images/sample-1.jpg" class="left circle">example 1</option>
            -      <option value="" data-icon="images/office.jpg" class="left circle">example 2</option>
            -      <option value="" data-icon="images/yuna.jpg" class="left circle">example 3</option>
            -    </select>
            -    <label>Images in select</label>
            -  </div>
            -
            -  <label>Browser Select</label>
            -  <select class="browser-default">
            -    <option value="" disabled selected>Choose your option</option>
            -    <option value="1">Option 1</option>
            -    <option value="2">Option 2</option>
            -    <option value="3">Option 3</option>
            -  </select>
            -            
            -
            -
            -

            -

            Disabled Styles

            -

            You can also add disabled to the select element to make the whole thing disabled. Or if you add disabled to the options, the individual options will be unselectable.

            -
            -
            -
            -
            - - - - -
            -
            -
            -
            -
            
            -  <label>Materialize Disabled</label>
            -  <select disabled>
            -    <option value="" disabled selected>Choose your option</option>
            -    <option value="1">Option 1</option>
            -    <option value="2">Option 2</option>
            -    <option value="3">Option 3</option>
            -  </select>
            -
            -  <label>Browser Disabled</label>
            -  <select class="browser-default" disabled>
            -    <option value="" disabled selected>Choose your option</option>
            -    <option value="1">Option 1</option>
            -    <option value="2">Option 2</option>
            -    <option value="3">Option 3</option>
            -  </select>
            -            
            -
            -
            - -

            Initialization

            -

            You must initialize the select element as shown below. In addition, you will need a separate call for any dynamically generated select elements your page generates.

            -
            
            -  $(document).ready(function() {
            -    $('select').material_select();
            -  });
            -            
            -
            -
            -

            Updating/Destroying Select

            -

            If you want to update the items inside the select, just rerun the initialization code from above after editing the original select. Or you can destroy the material select with this function below, and create a new select altogether

            -
            
            -  $('select').material_select('destroy');
            -            
            -
            -
            -
            - - -
            -

            Radio Buttons

            -

            Radio Buttons are used when the user must make only one selection out of a group of items

            -
            -

            - - -

            -

            - - -

            -

            - - -

            -

            - - -

            -
            -

            Add radio buttons to a group by adding the name attribute along with the same corresponding value for each of the radio buttons in the group. Create disabled radio buttons by adding the disabled attribute as shown below.

            -
            
            -  <form action="#">
            -    <p>
            -      <input name="group1" type="radio" id="test1" />
            -      <label for="test1">Red</label>
            -    </p>
            -    <p>
            -      <input name="group1" type="radio" id="test2" />
            -      <label for="test2">Yellow</label>
            -    </p>
            -    <p>
            -      <input class="with-gap" name="group1" type="radio" id="test3"  />
            -      <label for="test3">Green</label>
            -    </p>
            -    <p>
            -      <input name="group1" type="radio" id="test4" disabled="disabled" />
            -      <label for="test4">Brown</label>
            -    </p>
            -  </form>
            -        
            -

            Options

            -

            To create a radio button with a gap, add class="with-gap" to your input. See the example below.

            - -

            - - -

            -
            
            -  <p>
            -    <input class="with-gap" name="group3" type="radio" id="test5" checked />
            -    <label for="test5">Red</label>
            -  </p>
            -        
            - -
            - - - -
            -

            Checkboxes

            -

            Use checkboxes when looking for yes or no answers. The for attribute is necessary to bind our custom checkbox with the input. Add the input's id as the value of the for attribute of the label.

            -
            -

            - - -

            -

            - - -

            -

            - - -

            -

            - - -

            -

            - - -

            -

            - - -

            -
            -
            
            -  <form action="#">
            -    <p>
            -      <input type="checkbox" id="test5" />
            -      <label for="test5">Red</label>
            -    </p>
            -    <p>
            -      <input type="checkbox" id="test6" checked="checked" />
            -      <label for="test6">Yellow</label>
            -    </p>
            -    <p>
            -      <input type="checkbox" class="filled-in" id="filled-in-box" checked="checked" />
            -      <label for="filled-in-box">Filled in</label>
            -    </p>
            -    <p>
            -      <input type="checkbox" id="indeterminate-checkbox" />
            -      <label for="indeterminate-checkbox">Indeterminate Style</label>
            -    </p>
            -    <p>
            -      <input type="checkbox" id="test7" checked="checked" disabled="disabled" />
            -      <label for="test7">Green</label>
            -    </p>
            -    <p>
            -      <input type="checkbox" id="test8" disabled="disabled" />
            -      <label for="test8">Brown</label>
            -    </p>
            -  </form>
            -        
            -
            - - -
            -

            Switches

            -
            -

            -

            - -
            -

            - -

            -

            - -
            -

            -
            -
            
            -  <!-- Switch -->
            -  <div class="switch">
            -    <label>
            -      Off
            -      <input type="checkbox">
            -      <span class="lever"></span>
            -      On
            -    </label>
            -  </div>
            -
            -  <!-- Disabled Switch -->
            -  <div class="switch">
            -    <label>
            -      Off
            -      <input disabled type="checkbox">
            -      <span class="lever"></span>
            -      On
            -    </label>
            -  </div>
            -        
            -
            - -
            -

            File Input

            -

            If you want to style an input button with a path input we provide this structure.

            -
            -
            -
            - File - -
            -
            - -
            -
            -
            -
            
            -  <form action="#">
            -    <div class="file-field input-field">
            -      <div class="btn">
            -        <span>File</span>
            -        <input type="file">
            -      </div>
            -      <div class="file-path-wrapper">
            -        <input class="file-path validate" type="text">
            -      </div>
            -    </div>
            -  </form>
            -        
            - -

            You can also use the multiple attribute to allow multiple file uploads.

            -
            -
            -
            - File - -
            -
            - -
            -
            -
            -
            
            -  <form action="#">
            -    <div class="file-field input-field">
            -      <div class="btn">
            -        <span>File</span>
            -        <input type="file" multiple>
            -      </div>
            -      <div class="file-path-wrapper">
            -        <input class="file-path validate" type="text" placeholder="Upload one or more files">
            -      </div>
            -    </div>
            -  </form>
            -        
            -
            - - -
            -

            Range

            -

            Add a range slider for values with a wide range. This one is set to be a number between 0 and 100. We have two different types of sliders. nouiSlider is a 3rd party plugin which we've modified. To use the noUiSlider, you will have to manually link the nouislider.css and nouislider.js files located in the extras folder.

            -

            noUiSlider

            -

            See noUiSlider's official documentation here to see a variety of slider options

            -
            -

             

            -
            
            -  var slider = document.getElementById('test5');
            -  noUiSlider.create(slider, {
            -   start: [20, 80],
            -   connect: true,
            -   step: 1,
            -   range: {
            -     'min': 0,
            -     'max': 100
            -   },
            -   format: wNumb({
            -     decimals: 0
            -   })
            -  });
            -        
            -

            HTML5 Range

            -
            -

            - -

            -
            -
            
            -  <form action="#">
            -    <p class="range-field">
            -      <input type="range" id="test5" min="0" max="100" />
            -    </p>
            -  </form>
            -        
            -
            - -
            -

            Date Picker

            -

            We use a modified version of pickadate.js to create a materialized date picker. Test it out below!

            - - -
            
            -  <input type="date" class="datepicker">
            -        
            - -

            Initialization

            -

            At this time, not all pickadate.js options are working with our implementation

            -
            
            -  $('.datepicker').pickadate({
            -    selectMonths: true, // Creates a dropdown to control month
            -    selectYears: 15 // Creates a dropdown of 15 years to control year
            -  });
            -        
            -
            - - -
            -

            Character Counter

            -

            Use a character counter in fields where a character restriction is in place.

            -
            -
            -
            -
            - - -
            -
            -
            -
            -
            - - -
            -
            -
            -
            -
            
            -    <div class="row">
            -      <form class="col s12">
            -        <div class="row">
            -          <div class="input-field col s6">
            -            <input id="input_text" type="text" data-length="10">
            -            <label for="input_text">Input text</label>
            -          </div>
            -        </div>
            -        <div class="row">
            -          <div class="input-field col s12">
            -            <textarea id="textarea1" class="materialize-textarea" data-length="120"></textarea>
            -            <label for="textarea1">Textarea</label>
            -          </div>
            -        </div>
            -      </form>
            -    </div>
            -          
            -
            -

            Initialization

            -

            There are no options for this plugin, but if you are adding these dynamically, you can use this to initialize them.

            -
            
            -  $(document).ready(function() {
            -    $('input#input_text, textarea#textarea1').characterCounter();
            -  });
            -        
            -
            - -
            -

            Autocomplete

            -

            - Add an autocomplete dropdown below your input to suggest possible values. -

            - -
            -
            -
            -
            - textsms - - -
            -
            -
            -
            - -
            
            -  <div class="row">
            -    <div class="col s12">
            -      <div class="row">
            -        <div class="input-field col s12">
            -          <i class="material-icons prefix">textsms</i>
            -          <input type="text" id="autocomplete-input" class="autocomplete">
            -          <label for="autocomplete-input">Autocomplete</label>
            -        </div>
            -      </div>
            -    </div>
            -  </div>
            -        
            - -

            Initialization

            -

            The data is a json object where the key is the matching string and the value is an optional image url.

            -
            
            -  $('input.autocomplete').autocomplete({
            -    data: {
            -      "Apple": null,
            -      "Microsoft": null,
            -      "Google": 'http://placehold.it/250x250'
            -    },
            -    limit: 20, // The max amount of results that can be shown at once. Default: Infinity.
            -  });
            -        
            -
            - - - -
            - - -
            -
            - -
            -
            -
            -
            -
            Help Materialize Grow
            -

            We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

            -
            - - - -
            - -
            -
            -
            Join the Discussion
            -

            We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

            - Chat -
            -
            -
            Connect
            - -
            - -
            -
            -
            -
            -
            - -
            - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/fullscreen-slider-demo.html b/node_modules/materialize-css/fullscreen-slider-demo.html deleted file mode 100644 index 316f2fc..0000000 --- a/node_modules/materialize-css/fullscreen-slider-demo.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - Fullscreen Slider - Materialize - - - - - - - - - - - - - -
            -
              -
            • - -
              -

              This is our big Tagline!

              -
              Here's our small slogan.
              -
              -
            • -
            • - -
              -

              Left Aligned Caption

              -
              Here's our small slogan.
              -
              -
            • -
            • - -
              -

              Right Aligned Caption

              -
              Here's our small slogan.
              -
              -
            • -
            -
            - -
            - close - - -
            - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/getting-started.html b/node_modules/materialize-css/getting-started.html deleted file mode 100644 index e3d01d5..0000000 --- a/node_modules/materialize-css/getting-started.html +++ /dev/null @@ -1,426 +0,0 @@ - - - - - - - - - Getting Started - Materialize - - - - - - - - - - - - - - - - -
            - - -
            -
            -
            -
            -
            -

            Getting Started

            -

            Learn how to easily start using Materialize in your website.

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

            Download

            -

            Materialize comes in two different forms. You can select which version you want depending on your preference and expertise. To start using Materialize, all you have to do is download one of the options below.

            - -
            -

            Materialize

            -

            This is the standard version that comes with both the minified and unminified CSS and JavaScript files. This option requires little to no setup. Use this if you are unfamiliar with Sass.

            - Materializefile_download -
            -
            -

            Sass

            -

            This version contains the source SCSS files. By choosing this version you have more control over which components to include. You will need a Sass compiler if you choose this option.

            - Sourcefile_download -
            -
            -
            -

            CDN

            -

            You can find all the versions of the CDN at cdnjs.

            -
            
            -  <!-- Compiled and minified CSS -->
            -  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/css/materialize.min.css">
            -
            -  <!-- Compiled and minified JavaScript -->
            -  <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/js/materialize.min.js"></script>
            -          
            -
            -
            -
            -

            NPM

            -

            You can also get the latest release using NPM. This release contains source files as well as the compiled CSS and JavaScript files.

            -
            
            -  npm install materialize-css
            -          
            -
            -
            -
            -

            Bower

            -

            You can also get the latest release using bower. This release contains source files as well as the compiled CSS and JavaScript files.

            -
            
            -  bower install materialize
            -          
            -
            -
            - -
            -

            Thanks for Downloading!

            -

            We hope you find Materialize useful in your next project. We would appreciate if you helped us spread the word about Materialize on our Social Media. Also if you want to support the development, you can donate to us.

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

            Setup

            -

            Project Structure

            -

            After downloading, extract the files into the directory where your website is located. Your directory will look something like this.

            -

            You'll notice that there are two sets of the files. The min means that the file is "compressed" to reduce load times. These minified files are usually used in production while it is better to use the unminified files during development.

            - -
            
            -  MyWebsite/
            -  |--css/
            -  |  |--materialize.css
            -  |
            -  |--fonts/
            -  |  |--roboto/
            -  |
            -  |--js/
            -  |  |--materialize.js
            -  |
            -  |--index.html
            -          
            -
            -
            -

            HTML Setup

            -

            Next you just have to make sure you link the files properly in your webpage. Generally it is wise to import javascript files at the end of the body to reduce page load time. Follow the example below on how to import Materialize into your webpage.

            -

            One last thing to note is that you have to import jQuery before importing materialize.js!

            -
            
            -  <!DOCTYPE html>
            -  <html>
            -    <head>
            -      <!--Import Google Icon Font-->
            -      <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
            -      <!--Import materialize.css-->
            -      <link type="text/css" rel="stylesheet" href="css/materialize.min.css"  media="screen,projection"/>
            -
            -      <!--Let browser know website is optimized for mobile-->
            -      <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
            -    </head>
            -
            -    <body>
            -      <!--Import jQuery before materialize.js-->
            -      <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
            -      <script type="text/javascript" src="js/materialize.min.js"></script>
            -    </body>
            -  </html>
            -        
            -
            -
            - -
            -

            Templates

            -

            We have created some starter templates so you can easily start designing your website with minimal setup up time. Browse through our collection and download your best fit.

            - -
            -

            Starter Template

            - -

            This is the simplest starter page with a Header, Call-to-Action, and Icon Features.

            - Demosearch - Downloadfile_download -
            - -
            -

            Parallax Template

            - -

            This is the simplest starter page with a Header, Call-to-Action, and Icon Features.

            - Demosearch - Downloadfile_download -
            -
            - - - -
            -
            -

            Third-party Options

            -

            There are a few community-made options for you to easily include Materialize in your project. Keep in mind these are untested and may be out-of-date.

            -

            Ruby Gem

            -

            See here for documentation on this gem.

            -
            
            -  gem 'materialize-sass'
            -          
            -

            Meteor Package

            -
            
            -  meteor add materialize:materialize
            -          
            -

            Ember Package

            -
            
            -  # install via npm
            -  $ npm install ember-cli-materialize --save-dev
            -  # make ember-cli fetch internal dependencies
            -  $ ember g ember-cli-materialize
            -          
            - -
            -
            - -
            -
            -

            Sass Setup

            -

            This section is only relevant if you chose to download the Sass version of Materialize.

            -

            Compiling Sass

            -

            Instead of having a css folder, you will find that the download instead contains many .scss files which contain the styles of individual components. Unfortunately, the browser cannot interpret Sass, so you must have your Sass compiler compile the scss/materialize.scss into a regular CSS file. At this point you can link this newly outputted file in your HTML page.

            - -
            
            -  MyWebsite/
            -  |--css/
            -  |  |--materialize.css <-- compiled from scss/materialize.scss
            -  |
            -  |--fonts/
            -  |  |--roboto/
            -  |
            -  |--js/
            -  |  |--materialize.js
            -  |
            -  |--scss/
            -  |  |--materialize.scss
            -  |  |--components/
            -  |
            -  |--index.html
            -        
            -
            -
            - -
            - -
            - -
            - -
            -
            - -
            -
            -
            -
            -
            Help Materialize Grow
            -

            We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

            -
            - - - -
            - -
            -
            -
            Join the Discussion
            -

            We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

            - Chat -
            -
            -
            Connect
            - -
            - -
            -
            -
            -
            -
            - -
            - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/grid.html b/node_modules/materialize-css/grid.html deleted file mode 100644 index fb74d01..0000000 --- a/node_modules/materialize-css/grid.html +++ /dev/null @@ -1,660 +0,0 @@ - - - - - - - - - Grid - Materialize - - - - - - - - - - - - - - - - -
            - - - -
            -
            -
            - -
            - - -
            -
            -

            We are using a standard 12 column fluid responsive grid system. The grid helps you layout your page in an ordered, easy fashion.

            -

            Container

            -

            The container class is not strictly part of the grid but is important in laying out content. It allows you to center your page content. The container class is set to ~70% of the window width. It helps you center and contain your page content. We use the container to contain our body content. - -

            Demo

            -

            Try the button below to see what the page looks like without containers

            - Turn off Containers - - -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            - -
            -
            -
            - -

            -

            -

            -

            -
            -
            -
            -
            -
            -
            -
            - - -

            To add a container just put your content inside a <div> tag with a container class. Here's an example of how your page might be set up.

            - -
            
            -    <body>
            -      <div class="container">
            -        <!-- Page Content goes here -->
            -      </div>
            -    </body>
            -          
            - -
            - - - -
            -

            Introduction

            -

            Take a look at this section to quickly understand how the grid works!

            -

            12 Columns

            -

            Our standard grid has 12 columns. No matter the size of the browser, each of these columns will always have an equal width.

            -
            -
            1
            -
            2
            -
            3
            -
            4
            -
            5
            -
            6
            -
            7
            -
            8
            -
            9
            -
            10
            -
            11
            -
            12
            -
            -

            To get a feel of how the grid is used in HTML, take a look at the code below which will produce a similar result to the one above.

            -
            
            -    <div class="row">
            -      <div class="col s1">1</div>
            -      <div class="col s1">2</div>
            -      <div class="col s1">3</div>
            -      <div class="col s1">4</div>
            -      <div class="col s1">5</div>
            -      <div class="col s1">6</div>
            -      <div class="col s1">7</div>
            -      <div class="col s1">8</div>
            -      <div class="col s1">9</div>
            -      <div class="col s1">10</div>
            -      <div class="col s1">11</div>
            -      <div class="col s1">12</div>
            -    </div>
            -          
            -

            Note: For now, just know that the s1 stands for small-1 which in plain English means "1 column on small screens".

            - -
            - -

            Columns live inside Rows

            -

            Remember when you are creating your layout that all columns must be contained inside a row and that you must add the col class to your inner divs to make them into columns

            -
            -
            This div is 12-columns wide on all screen sizes
            -
            6-columns (one-half)
            -
            6-columns (one-half)
            -
            -
            
            -    <div class="row">
            -      <div class="col s12">This div is 12-columns wide</div>
            -      <div class="col s6">This div is 6-columns wide</div>
            -      <div class="col s6">This div is 6-columns wide</div>
            -    </div>
            -          
            - -
            -
            - - -
            -

            Offsets

            -

            To offset, simply add offset-s2 to the class where s signifies the screen class-prefix (s = small, m = medium, l = large) and the number after is the number of columns you want to offset by.

            -
            -
            This div is 12-columns wide on all screen sizes
            -
            6-columns (offset-by-6)
            -
            -
            
            -    <div class="row">
            -      <div class="col s12"><span class="flow-text">This div is 12-columns wide on all screen sizes</span></div>
            -      <div class="col s6 offset-s6"><span class="flow-text">6-columns (offset-by-6)</span></div>
            -    </div>
            -          
            -
            - -
            - - -
            -

            Push and Pull

            -

            You can easily change the order of your columns with push and pull. Simply add push-s2 or pull-s2 to the class where s signifies the screen class-prefix (s = small, m = medium, l = large) and the number after is the number of columns you want to push or pull by.

            -
            -
            This div is 7-columns wide on pushed to the right by 5-columns.
            -
            5-columns wide pulled to the left by 7-columns.
            -
            -
            
            -    <div class="row">
            -      <div class="col s7 push-s5"><span class="flow-text">This div is 7-columns wide on pushed to the right by 5-columns.</span></div>
            -      <div class="col s5 pull-s7"><span class="flow-text">5-columns wide pulled to the left by 7-columns.</span></div>
            -    </div>
            -          
            -
            - -
            - - -
            -

            Creating Layouts

            -

            Here we will show you how to create some commonly used layouts with our grid system. Hopefully these will get you more comfortable with laying out elements. To keep these demos simple, the ones here will not be responsive.

            -
            -
            -

            Section

            -

            The section class is used for simple top and bottom padding. Just add the section class to your div's containing large blocks of content.

            -
            -
            -

            Divider

            -

            Dividers are 1 pixel lines that help break up your content. Just add the divider to a div in between your content.

            -
            -
            - -

            Example Sections and Dividers

            -
            -
            -
            Section 1
            -

            Stuff

            -
            -
            -
            -
            Section 2
            -

            Stuff

            -
            -
            -
            -
            Section 3
            -

            Stuff

            -
            -
            -
            
            -  <div class="divider"></div>
            -  <div class="section">
            -    <h5>Section 1</h5>
            -    <p>Stuff</p>
            -  </div>
            -  <div class="divider"></div>
            -  <div class="section">
            -    <h5>Section 2</h5>
            -    <p>Stuff</p>
            -  </div>
            -  <div class="divider"></div>
            -  <div class="section">
            -    <h5>Section 3</h5>
            -    <p>Stuff</p>
            -  </div>
            -          

            - -

            Example Promotion Table

            -

            If we want 3 divs that are equal size, we define the divs with a width of 4-columns, 4+4+4 = 12, which nicely adds up to 12. Inside those divs, we can put our content. Take our front page content for example. We've modified it slightly for the sake of this example.

            -
            -
            -
            - flash_on -

            Speeds up development

            -

            We did most of the heavy lifting for you to provide a default stylings that incorporate our custom components.

            -
            -
            -
            -
            - group -

            User Experience Focused

            -

            By utilizing elements and principles of Material Design, we were able to create a framework that focuses on User Experience.

            -
            -
            -
            -
            - settings -

            Easy to work with

            -

            We have provided detailed documentation as well as specific code examples to help new users get started.

            -
            -
            -
            - -
            
            -    <div class="row">
            -
            -      <div class="col s4">
            -        <!-- Promo Content 1 goes here -->
            -      </div>
            -      <div class="col s4">
            -        <!-- Promo Content 2 goes here -->
            -      </div>
            -      <div class="col s4">
            -        <!-- Promo Content 3 goes here -->
            -      </div>
            -
            -    </div>
            -          
            - -
            - -

            Example Side Navigation Layout

            -

            You can see how easy it is to create layouts using the grid system. Just remember to make sure your column numbers add up to 12 for an even layout.

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

            -

            -

            -
            -
            -

            -

            -

            -

            -
            -
            -
            -
            -
            -
            - -
            
            -    <!-- Navbar goes here -->
            -
            -    <!-- Page Layout here -->
            -    <div class="row">
            -
            -      <div class="col s3">
            -        <!-- Grey navigation panel -->
            -      </div>
            -
            -      <div class="col s9">
            -        <!-- Teal page content  -->
            -      </div>
            -
            -    </div>
            -          
            -
            - - - -
            -

            Creating Responsive Layouts

            -

            Above we showed you how to layout elements using our grid system. Now we'll show you how to design your layouts so that they look great on all screen sizes.

            -

            Screen Sizes

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            Mobile Devices
            <= 600px
            Tablet Devices
            <= 992px
            Desktop Devices
            > 992px
            Class Prefix.s.m.l
            Container Width85%85%70%
            Number of Columns121212
            - -
            - -

            Adding Responsiveness

            -

            In the previous examples, we only defined the size for small screens using "col s12". This is fine if we want a fixed layout since the rules propagate upwards. By just saying s12, we are essentially saying "col s12 m12 l12". But by explicitly defining the size we can make our website more responsive.

            - -
            -
            I am always full-width (col s12)
            -
            I am full-width on mobile (col s12 m6)
            -
            -
            
            -    <div class="row">
            -      <div class="grid-example col s12"><span class="flow-text">I am always full-width (col s12)</span></div>
            -      <div class="grid-example col s12 m6"><span class="flow-text">I am full-width on mobile (col s12 m6)</span></div>
            -    </div>
            -          
            - -
            - -

            Responsive Side Navigation Layout

            -

            In this example below, we take the same layout from above, but we make it responsive by defining how many columns the div should take up on each screen size. Try resizing your browser and watch the layout change below.

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

            -

            -

            -
            -
            -

            -

            -

            -

            -
            -
            -
            -
            -
            -
            - -
            
            -    <!-- Navbar goes here -->
            -
            -    <!-- Page Layout here -->
            -    <div class="row">
            -
            -      <div class="col s12 m4 l3"> <!-- Note that "m4 l3" was added -->
            -        <!-- Grey navigation panel
            -
            -              This content will be:
            -          3-columns-wide on large screens,
            -          4-columns-wide on medium screens,
            -          12-columns-wide on small screens  -->
            -
            -      </div>
            -
            -      <div class="col s12 m8 l9"> <!-- Note that "m8 l9" was added -->
            -        <!-- Teal page content
            -
            -              This content will be:
            -          9-columns-wide on large screens,
            -          8-columns-wide on medium screens,
            -          12-columns-wide on small screens  -->
            -
            -      </div>
            -
            -    </div>
            -          
            - -

            More Responsive Grid Examples

            -
            -
            s12
            -
            s12 m4 l2
            -
            s12 m4 l8
            -
            s12 m4 l2
            -
            s12 m6 l3
            -
            s12 m6 l3
            -
            s12 m6 l3
            -
            s12 m6 l3
            -
            -
            -
            
            -  <div class="row">
            -    <div class="col s12"><p>s12</p></div>
            -    <div class="col s12 m4 l2"><p>s12 m4</p></div>
            -    <div class="col s12 m4 l8"><p>s12 m4</p></div>
            -    <div class="col s12 m4 l2"><p>s12 m4</p></div>
            -  </div>
            -  <div class="row">
            -    <div class="col s12 m6 l3"><p>s12 m6 l3</p></div>
            -    <div class="col s12 m6 l3"><p>s12 m6 l3</p></div>
            -    <div class="col s12 m6 l3"><p>s12 m6 l3</p></div>
            -    <div class="col s12 m6 l3"><p>s12 m6 l3</p></div>
            -  </div>
            -            
            -
            -
            -
            - - -
            - - - -
            -
            - -
            -
            -
            -
            -
            Help Materialize Grow
            -

            We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

            -
            - - - -
            - -
            -
            -
            Join the Discussion
            -

            We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

            - Chat -
            -
            -
            Connect
            - -
            - -
            -
            -
            -
            -
            - -
            - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/helpers.html b/node_modules/materialize-css/helpers.html deleted file mode 100644 index 6452ae2..0000000 --- a/node_modules/materialize-css/helpers.html +++ /dev/null @@ -1,375 +0,0 @@ - - - - - - - - - Helpers - Materialize - - - - - - - - - - - - - - - - -
            - - - -
            -
            -
            - -
            - - -
            -

            Alignment

            -

            We have easy to use classes to help you align your content.

            - -
            Vertical Align
            -

            You can easily vertically center things by adding the class valign-wrapper to the container holding the items you want to vertically align.

            -
            -
            This should be vertically aligned
            -
            -
            
            -<div class="valign-wrapper">
            -  <h5 class="valign">This should be vertically aligned</h5>
            -</div>
            -        

            - -
            Text Align
            -

            These classes are for horizontally aligning content. We have .left-align, .right-align and .center-align

            -
            -
            -
            This should be left aligned
            -
            -
            -
            -
            -
            This should be right aligned
            -
            -
            -
            -
            -
            This should be center aligned
            -
            -
            
            -  <div>
            -    <h5 class="left-align">This should be left aligned</h5>
            -  </div>
            -  <div>
            -    <h5 class="right-align">This should be right aligned</h5>
            -  </div>
            -  <div>
            -    <h5 class="center-align">This should be center aligned</h5>
            -  </div>
            -        

            - -
            Quick Floats
            -

            Quickly float things by adding the class left or right to the element. !important is used to avoid specificity issues.

            -
            
            -<div class="left">...</div>
            -<div class="right">...</div>
            -        

            - -
            - - -
            -

            Hiding Content

            -

            We provide easy to use classes to hide content on specific screen sizes.

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            Screen Range
            .hideHidden for all Devices
            .hide-on-small-onlyHidden for Mobile Only
            .hide-on-med-onlyHidden for Tablet Only
            .hide-on-med-and-downHidden for Tablet and Below
            .hide-on-med-and-upHidden for Tablet and Above
            .hide-on-large-onlyHidden for Desktop Only
            -
            -
            Usage
            -
            
            -  <div class="hide-on-small-only"></div>
            -        

            - -
            - - - - -
            -

            Formatting

            -

            These classes help format various content on your site.

            - -
            Truncation
            -

            To truncate long lines of text in an ellipsis, add the class truncate to the tag which contains the text. See an example below of a header being truncated inside a card.

            - -
            -
            -
            -

            This is an extremely long title that will be truncated

            -
            -
            -
            - -
            
            -  <h4 class="truncate">This is an extremely long title that will be truncated</h4>
            -        

            - -
            Hover
            -

            The hoverable is a hover class that adds an animation for box shadow as seen below. It can be used on most elements, but meant for use on cards.

            -
            -
            - - Card Title -
            -
            -

            I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

            -
            - -
            - -
            
            -  <div class="card-panel hoverable"> Hoverable Card Panel</div>
            -        
            - -
            - - -
            -

            Browser Defaults

            -

            Because we override many of the default browser styles and elements, we provide the .browser-default class to revert these elements to their original state.

            - - - - - - - - - - - - - - - - - - -
            Name of ElementReverted Style
            ULBullet points
            SELECTBrowser default select element
            -
            - - -
            - -
            - -
            - -
            -
            - -
            -
            -
            -
            -
            Help Materialize Grow
            -

            We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

            -
            - - - -
            - -
            -
            -
            Join the Discussion
            -

            We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

            - Chat -
            -
            -
            Connect
            - -
            - -
            -
            -
            -
            -
            - -
            - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/icons.html b/node_modules/materialize-css/icons.html deleted file mode 100644 index c8778f6..0000000 --- a/node_modules/materialize-css/icons.html +++ /dev/null @@ -1,486 +0,0 @@ - - - - - - - - - Icons - Materialize - - - - - - - - - - - - - - - - -
            - - - -
            -
            -
            -
            - -
            -

            We have included 740 Material Design Icons courtesy of Google. You can download them directly from the Material Design specs.

            -

            Usage

            -

            To be able to use these icons, you must include this line in the <head>portion of your HTML code

            -
            
            -  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
            -

            To use these icons, use the material-icons class on an element and provide the ligature as the text content.

            -
            
            -      <i class="material-icons">add</i>
            -            
            - -

            Sizes

            -

            To control the size of the icon, change the font-size: 30px property of your icon. Optionally you can use preset classes as shown below.

            -
            -
            -
            insert_chart

            Tiny

            -
            insert_chart

            Small

            -
            insert_chart

            Medium

            -
            insert_chart

            Large

            -
            -
            -
            
            -      <!--
            -      Sizes:
            -      tiny: 1rem
            -      small: 2rem
            -      medium: 4rem
            -      large: 6rem
            -      -->
            -      <i class="large material-icons">insert_chart</i>
            -            
            - - -
            -

            -
            info_outlineinfo_outline
            -
            inputinput
            -
            invert_colorsinvert_colors
            -
            labellabel
            -
            label_outlinelabel_outline
            -
            languagelanguage
            -
            query_builderquery_builder
            -
            perm_identityperm_identity
            -
            perm_mediaperm_media
            -
            perm_phone_msgperm_phone_msg
            -
            perm_scan_wifiperm_scan_wifi
            -
            picture_in_picturepicture_in_picture
            -
            play_for_workplay_for_work
            -
            polymerpolymer
            -
            power_settings_newpower_settings_new
            -
            printprint
            -
            thumb_downthumb_down
            -
            thumb_upthumb_up
            -
            thumbs_up_downthumbs_up_down
            -
            emailemail
            -
            dialpaddialpad
            -
            dialer_sipdialer_sip
            -
            contactscontacts
            -
            forward_5forward_5
            -
            stay_current_portraitstay_current_portrait
            -
            stay_primary_landscapestay_primary_landscape
            -
            stay_primary_portraitstay_primary_portrait
            -
            swap_callsswap_calls
            -
            textsmstextsms
            -
            voicemailvoicemail
            -
            vpn_keyvpn_key
            -
            group_workgroup_work
            -
            gradegrade
            -
            clear_allclear_all
            -
            chat_bubble_outlinechat_bubble_outline
            -
            chat_bubblechat_bubble
            -
            repeatrepeat
            -
            repeat_onerepeat_one
            -
            replayreplay
            -
            replay_10replay_10
            -
            replay_30replay_30
            -
            replay_5replay_5
            -
            shuffleshuffle
            -
            skip_nextskip_next
            -
            skip_previousskip_previous
            -
            contact_phonecontact_phone
            -
            commentcomment
            -
            recent_actorsrecent_actors
            -
            snoozesnooze
            -
            sort_by_alphasort_by_alpha
            -
            stopstop
            -
            subtitlessubtitles
            -
            surround_soundsurround_sound
            -
            webweb
            -
            volume_upvolume_up
            -
            volume_offvolume_off
            -
            volume_mutevolume_mute
            -
            toctoc
            -
            todaytoday
            -
            tolltoll
            -
            track_changestrack_changes
            -
            translatetranslate
            -
            trending_downtrending_down
            -
            question_answerquestion_answer
            -
            receiptreceipt
            -
            donedone
            -
            tabtab
            -
            tab_unselectedtab_unselected
            -
            theaterstheaters
            -
            hdhd
            -
            gamesgames
            -
            hearinghearing
            -
            view_moduleview_module
            -
            view_listview_list
            -
            settings_remotesettings_remote
            -
            settings_voicesettings_voice
            -
            searchsearch
            -
            settingssettings
            -
            settings_applicationssettings_applications
            -
            settings_backup_restoresettings_backup_restore
            -
            settings_bluetoothsettings_bluetooth
            -
            settings_brightnesssettings_brightness
            -
            settings_cellsettings_cell
            -
            settings_ethernetsettings_ethernet
            -
            settings_input_antennasettings_input_antenna
            -
            trending_flattrending_flat
            -
            trending_uptrending_up
            -
            workwork
            -
            youtube_searched_foryoutube_searched_for
            -
            zoom_inzoom_in
            -
            my_locationmy_location
            -
            visibility_offvisibility_off
            -
            visibilityvisibility
            -
            view_weekview_week
            -
            view_streamview_stream
            -
            view_quiltview_quilt
            -
            video_libraryvideo_library
            -
            videocamvideocam
            -
            videocam_offvideocam_off
            -
            volume_downvolume_down
            -
            settings_overscansettings_overscan
            -
            settings_input_svideosettings_input_svideo
            -
            settings_input_hdmisettings_input_hdmi
            -
            settings_input_compositesettings_input_composite
            -
            settings_input_componentsettings_input_component
            -
            launchlaunch
            -
            perm_device_informationperm_device_information
            -
            perm_data_settingperm_data_setting
            -
            zoom_outzoom_out
            -
            alarm_onalarm_on
            -
            dnsdns
            -
            redeemredeem
            -
            reorderreorder
            -
            report_problemreport_problem
            -
            restorerestore
            -
            roomroom
            -
            scheduleschedule
            -
            moviemovie
            -
            androidandroid
            -
            announcementannouncement
            -
            mic_offmic_off
            -
            mic_nonemic_none
            -
            swap_horizswap_horiz
            -
            swap_vertswap_vert
            -
            swap_vertical_circleswap_vertical_circle
            -
            system_update_altsystem_update_alt
            -
            present_to_allpresent_to_all
            -
            portable_wifi_offportable_wifi_off
            -
            phonelink_setupphonelink_setup
            -
            phonelink_ringphonelink_ring
            -
            phonelink_lockphonelink_lock
            -
            phonelink_erasephonelink_erase
            -
            person_pinperson_pin
            -
            navigationnavigation
            -
            new_releasesnew_releases
            -
            not_interestednot_interested
            -
            pausepause
            -
            pause_circle_filledpause_circle_filled
            -
            pause_circle_outlinepause_circle_outline
            -
            play_arrowplay_arrow
            -
            play_circle_filledplay_circle_filled
            -
            play_circle_outlineplay_circle_outline
            -
            playlist_addplaylist_add
            -
            queuequeue
            -
            queue_musicqueue_music
            -
            radioradio
            -
            classclass
            -
            codecode
            -
            credit_cardcredit_card
            -
            dashboarddashboard
            -
            deletedelete
            -
            descriptiondescription
            -
            open_withopen_with
            -
            pageviewpageview
            -
            paymentpayment
            -
            perm_camera_micperm_camera_mic
            -
            perm_contact_calendarperm_contact_calendar
            -
            airplayairplay
            -
            done_alldone_all
            -
            phonephone
            -
            no_simno_sim
            -
            invert_colors_offinvert_colors_off
            -
            chatchat
            -
            call_splitcall_split
            -
            call_receivedcall_received
            -
            call_missedcall_missed
            -
            call_mergecall_merge
            -
            call_madecall_made
            -
            call_endcall_end
            -
            callcall
            -
            businessbusiness
            -
            alarm_offalarm_off
            -
            messagemessage
            -
            location_onlocation_on
            -
            location_offlocation_off
            -
            live_helplive_help
            -
            albumalbum
            -
            av_timerav_timer
            -
            closed_captionclosed_caption
            -
            equalizerequalizer
            -
            turned_in_notturned_in_not
            -
            verified_userverified_user
            -
            view_agendaview_agenda
            -
            view_arrayview_array
            -
            view_carouselview_carousel
            -
            view_columnview_column
            -
            subjectsubject
            -
            supervisor_accountsupervisor_account
            -
            settings_powersettings_power
            -
            shopshop
            -
            shop_twoshop_two
            -
            shopping_basketshopping_basket
            -
            shopping_cartshopping_cart
            -
            speaker_notesspeaker_notes
            -
            spellcheckspellcheck
            -
            starstar
            -
            starsstars
            -
            storestore
            -
            ring_volumering_volume
            -
            speaker_phonespeaker_phone
            -
            stay_current_landscapestay_current_landscape
            -
            forumforum
            -
            import_exportimport_export
            -
            open_in_browseropen_in_browser
            -
            open_in_newopen_in_new
            -
            forward_30forward_30
            -
            turned_inturned_in
            -
            view_headlineview_headline
            -
            view_dayview_day
            -
            warningwarning
            -
            error_outlineerror_outline
            -
            errorerror
            -
            add_alertadd_alert
            -
            settings_phonesettings_phone
            -
            forward_10forward_10
            -
            fast_rewindfast_rewind
            -
            fast_forwardfast_forward
            -
            explicitexplicit
            -
            listlist
            -
            locklock
            -
            lock_openlock_open
            -
            lock_outlinelock_outline
            -
            loyaltyloyalty
            -
            markunread_mailboxmarkunread_mailbox
            -
            note_addnote_add
            -
            offline_pinoffline_pin
            -
            httphttp
            -
            micmic
            -
            looploop
            -
            library_musiclibrary_music
            -
            library_bookslibrary_books
            -
            library_addlibrary_add
            -
            high_qualityhigh_quality
            -
            infoinfo
            -
            httpshttps
            -
            aspect_ratioaspect_ratio
            -
            assessmentassessment
            -
            assignmentassignment
            -
            assignment_indassignment_ind
            -
            assignment_lateassignment_late
            -
            mode_editmode_edit
            - - -
            -
            - -
            - - -
            -
            -
            - - -
            - -
            -
            - -
            -
            - -
            -
            -
            -
            -
            Help Materialize Grow
            -

            We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

            -
            - - - -
            - -
            -
            -
            Join the Discussion
            -

            We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

            - Chat -
            -
            -
            Connect
            - -
            - -
            -
            -
            -
            -
            - -
            - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/index.html b/node_modules/materialize-css/index.html deleted file mode 100644 index 3c9fff0..0000000 --- a/node_modules/materialize-css/index.html +++ /dev/null @@ -1,260 +0,0 @@ - - - - - - - - - Documentation - Materialize - - - - - - - - - - - - - - - - -
            - - -
            -
            -
            -

            Materialize

            -
            -

            A modern responsive front-end framework based on Material Design

            -
            - - - -
            - - -
            -
            - -
            -
            -
            -
            - Latest Commit on Github: -    - -    - - Github -
            -
            -
            -
            - -
            -
            - -
            -
            -
            - -
            -
            - -
            -

            Materialize simplifies life for developers and the users they serve.

            -
            - - -
            -
            -
            - flash_on -

            Speeds up development

            -

            We did most of the heavy lifting for you to provide a default stylings that incorporate our custom components. Additionally, we refined animations and transitions to provide a smoother experience for developers.

            -
            -
            - -
            -
            - group -

            User Experience Focused

            -

            By utilizing elements and principles of Material Design, we were able to create a framework that incorporates components and animations that provide more feedback to users. Additionally, a single underlying responsive system across all platforms allow for a more unified user experience.

            -
            -
            - -
            -
            - settings -

            Easy to work with

            -

            We have provided detailed documentation as well as specific code examples to help new users get started. We are also always open to feedback and can answer any questions a user may have about Materialize.

            -
            -
            -
            - -
            -
            -
            -
            -

            Materialize Showcase

            -

            Checkout what people are creating with Materialize. Get inspired by these beautiful sites and you can even submit your own website to be showcased here.

            - Explore our Showcase -
            -
            -
            - - -
            -
            -
            -
            -
            Help Materialize Grow
            -

            We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

            -
            - - - -
            - -
            -
            -
            Join the Discussion
            -

            We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

            - Chat -
            -
            -
            Connect
            - -
            - -
            -
            -
            -
            -
            - -
            - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/jade/404.jade b/node_modules/materialize-css/jade/404.jade deleted file mode 100644 index 3a31640..0000000 --- a/node_modules/materialize-css/jade/404.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var white_nav = true -- var page = "404" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/404_content.html - include _footer.html - include _scripts.html diff --git a/node_modules/materialize-css/jade/_footer.html b/node_modules/materialize-css/jade/_footer.html deleted file mode 100644 index 32159d9..0000000 --- a/node_modules/materialize-css/jade/_footer.html +++ /dev/null @@ -1,37 +0,0 @@ -
            -
            -
            -
            -
            Help Materialize Grow
            -

            We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

            -
            - - - -
            - -
            -
            -
            Join the Discussion
            -

            We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

            - Chat -
            -
            -
            Connect
            - -
            - -
            -
            -
            -
            -
            - -
            diff --git a/node_modules/materialize-css/jade/_head.jade b/node_modules/materialize-css/jade/_head.jade deleted file mode 100644 index 30e82bc..0000000 --- a/node_modules/materialize-css/jade/_head.jade +++ /dev/null @@ -1,40 +0,0 @@ -meta(http-equiv='Content-Type', content='text/html; charset=UTF-8') -meta(name='viewport', content='width=device-width, initial-scale=1') -meta(http-equiv='X-UA-Compatible', content='IE=edge') -meta(name='msapplication-tap-highlight', content='no') - -if meta_descript - meta(name='description', content='#{meta_descript}') -else - meta(name='description', content='Materialize is a modern responsive CSS framework based on Material Design by Google. ') - -if page - title #{page} - Materialize -else - title Documentation - Materialize - - -// Favicons -link(rel='apple-touch-icon-precomposed', href='images/favicon/apple-touch-icon-152x152.png') -meta(name='msapplication-TileColor', content='#FFFFFF') -meta(name='msapplication-TileImage', content='images/favicon/mstile-144x144.png') -link(rel='icon', href='images/favicon/favicon-32x32.png', sizes='32x32') - -// Android 5 Chrome Color -meta(name='theme-color', content='#EE6E73') -// CSS -link(href='css/prism.css', rel='stylesheet') -link(href='css/ghpages-materialize.css', type='text/css', rel='stylesheet', media='screen,projection') -link(href='http://fonts.googleapis.com/css?family=Inconsolata', rel='stylesheet', type='text/css') -link(href='http://fonts.googleapis.com/icon?family=Material+Icons', rel='stylesheet') - -if !isDemo - script. - window.liveSettings = { - api_key: "a0b49b34b93844c38eaee15690d86413", - picker: "bottom-right", - detectlang: true, - dynamic: true, - autocollect: true - }; - script(src='//cdn.transifex.com/live.js') diff --git a/node_modules/materialize-css/jade/_navbar.jade b/node_modules/materialize-css/jade/_navbar.jade deleted file mode 100644 index 6c61916..0000000 --- a/node_modules/materialize-css/jade/_navbar.jade +++ /dev/null @@ -1,115 +0,0 @@ -header - if no_nav == false - nav.top-nav - .container - .nav-wrapper - a.page-title #{page} - .container - a.button-collapse.top-nav(href='#', data-activates='nav-mobile', class=(no_nav == false ? "full hide-on-large-only" : "" + "waves-effect waves-light circle hide-on-large-only")) - i.material-icons menu - ul#nav-mobile.side-nav.fixed - li(class="logo") - a#logo-container.brand-logo(href='http://materializecss.com/') - object#front-page-logo(type='image/svg+xml', data='res/materialize.svg') Your browser does not support SVG - li(class="search") - div.search-wrapper.card - input(id="search") - i.material-icons search - div.search-results - li.bold(class=(page == "About" ? "active" : "")) - a.waves-effect.waves-teal(href='about.html') About - li.bold(class=(page == "Getting Started" ? "active" : "")) - a.waves-effect.waves-teal(href='getting-started.html') Getting Started - - li.no-padding - ul.collapsible.collapsible-accordion - li.bold - a.collapsible-header(class=(page == "Sass" || page == "Typography" || page == "Color" || page == "Shadow" || page == "Grid" || page == "Media CSS" || page == "Table" || page == "CSS Transitions" || page == "Helpers" ? "active" : "")+" waves-effect waves-teal") - | CSS - .collapsible-body - ul - li(class=(page == "Color" ? "active" : "")) - a(href='color.html') Color - li(class=(page == "Grid" ? "active" : "")) - a(href='grid.html') Grid - li(class=(page == "Helpers" ? "active" : "")) - a(href='helpers.html') Helpers - li(class=(page == "Media CSS" ? "active" : "")) - a(href='media-css.html') Media - li(class=(page == "Sass" ? "active" : "")) - a(href='sass.html') Sass - li(class=(page == "Shadow" ? "active" : "")) - a(href='shadow.html') Shadow - li(class=(page == "Table" ? "active" : "")) - a(href='table.html') Table - li(class=(page == "CSS Transitions" ? "active" : "")) - a(href='css-transitions.html') Transitions - li(class=(page == "Typography" ? "active" : "")) - a(href='typography.html') Typography - li.bold - a.collapsible-header(class=(page == "Forms" || page == "Buttons" || page == "Navbar" || page == "Cards" || page == "Chips" || page == "Preloader" || page == "Pagination" || page == "Collections" || page == "Badges" || page == "Breadcrumbs" || page == "Footer" ? "active" : "" || page == "Icons" ? "active" : "")+" waves-effect waves-teal") - | Components - .collapsible-body - ul - li(class=(page == "Badges" ? "active" : "")) - a(href='badges.html') Badges - li(class=(page == "Buttons" ? "active" : "")) - a(href='buttons.html') Buttons - li(class=(page == "Breadcrumbs" ? "active" : "")) - a(href='breadcrumbs.html') Breadcrumbs - li(class=(page == "Cards" ? "active" : "")) - a(href='cards.html') Cards - li(class=(page == "Chips" ? "active" : "")) - a(href='chips.html') Chips - li(class=(page == "Collections" ? "active" : "")) - a(href='collections.html') Collections - li(class=(page == "Footer" ? "active" : "")) - a(href='footer.html') Footer - li(class=(page == "Forms" ? "active" : "")) - a(href='forms.html') Forms - li(class=(page == "Icons" ? "active" : "")) - a(href='icons.html') Icons - li(class=(page == "Navbar" ? "active" : "")) - a(href='navbar.html') Navbar - li(class=(page == "Pagination" ? "active" : "")) - a(href='pagination.html') Pagination - li(class=(page == "Preloader" ? "active" : "")) - a(href='preloader.html') Preloader - li.bold - a.collapsible-header(class=(page == "Dialogs" || page == "Modals" || page == "Dropdown" || page == "Tabs" || page == "ScrollFire" || page == "Scrollspy" || page == "SideNav" || page == "Pushpin" || page == "Waves" || page == "Media" || page == "Transitions" || page == "Parallax" || page == "Collapsible" ? "active" : "" || page == "Carousel" ? "active" : "")+" waves-effect waves-teal") - | JavaScript - .collapsible-body - ul - li(class=(page == "Carousel" ? "active" : "")) - a(href='carousel.html') Carousel - li(class=(page == "Collapsible" ? "active" : "")) - a(href='collapsible.html') Collapsible - li(class=(page == "Dialogs" ? "active" : "")) - a(href='dialogs.html') Dialogs - li(class=(page == "Dropdown" ? "active" : "")) - a(href='dropdown.html') Dropdown - li(class=(page == "Media" ? "active" : "")) - a(href='media.html') Media - li(class=(page == "Modals" ? "active" : "")) - a(href='modals.html') Modals - li(class=(page == "Parallax" ? "active" : "")) - a(href='parallax.html') Parallax - li(class=(page == "Pushpin" ? "active" : "")) - a(href='pushpin.html') Pushpin - li(class=(page == "ScrollFire" ? "active" : "")) - a(href='scrollfire.html') ScrollFire - li(class=(page == "Scrollspy" ? "active" : "")) - a(href='scrollspy.html') Scrollspy - li(class=(page == "SideNav" ? "active" : "")) - a(href='side-nav.html') SideNav - li(class=(page == "Tabs" ? "active" : "")) - a(href='tabs.html') Tabs - li(class=(page == "Transitions" ? "active" : "")) - a(href='transitions.html') Transitions - li(class=(page == "Waves" ? "active" : "")) - a(href='waves.html') Waves - - li.bold(class=(page == "Mobile" ? "active" : "")) - a.waves-effect.waves-teal(href='http://materializecss.com/mobile.html') Mobile - li.bold(class=(page == "Showcase" ? "active" : "")) - a.waves-effect.waves-teal(href='showcase.html') Showcase diff --git a/node_modules/materialize-css/jade/_scripts.html b/node_modules/materialize-css/jade/_scripts.html deleted file mode 100644 index 69b338c..0000000 --- a/node_modules/materialize-css/jade/_scripts.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/node_modules/materialize-css/jade/about.jade b/node_modules/materialize-css/jade/about.jade deleted file mode 100644 index f9eb4ce..0000000 --- a/node_modules/materialize-css/jade/about.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var white_nav = true -- var page = "About" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include about/about_content.html - include _footer.html - include _scripts.html diff --git a/node_modules/materialize-css/jade/about/about_content.html b/node_modules/materialize-css/jade/about/about_content.html deleted file mode 100644 index 0c2640b..0000000 --- a/node_modules/materialize-css/jade/about/about_content.html +++ /dev/null @@ -1,132 +0,0 @@ -
            -
            -
            -
            -

            About

            -

            Learn about the Material Design and our Project Team.

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

            Material Design

            -

            Created and designed by Google, Material Design is a design language that combines the classic principles of successful design - along with innovation and technology. Google's goal is to develop a system of design that allows for a unified user experience - across all their products on any platform.

            -
            - -
            -
            -

            Principles

            -
            - -

            Material is the metaphor

            -

            The metaphor of material defines the relationship between space and motion. The idea is that the technology is inspired by paper and ink and is utilized to facilitate creativity and innovation. Surfaces and edges provide familiar visual cues that allow users to quickly understand the technology beyond the physical world.

            -
            -
            - -
            - -

            Bold, graphic, intentional

            -

            Elements and components such as grids, typography, color, and imagery are not only visually pleasing, but also create a sense of hierarchy, meaning, and focus. Emphasis on different actions and components create a visual guide for users.

            -
            -
            - -
            - -

            Motion provides meaning

            -

            Motion allows the user to draw a parallel between what they see on the screen and in real life. By providing both feedback and familiarity, this allows the user to fully immerse him or herself into unfamiliar technology. Motion contains consistency and continuity in addition to giving users additional subconscious information about objects and transformations.

            -
            -
            -
            - - -
            -
            -

            Meet the Team

            -

            We are a team of students from Carnegie Mellon University.

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

            Alvin Wang

            -

            Alvin is an Information Systems and Human Computer Interaction Major. He worked as a Software Engineer at Fidelity Investments this past summer.

            -
            -
            - -
            -
            -
            - -
            -
            -
            -

            Alan Chang

            -

            Alan is an Information Systems major with a minor in computer science. He worked at as a Front End Developer at Shift Collaborative this past summer.

            -
            -
            - -
            -
            -
            - -
            -
            -
            -

            Alex Mark

            -

            Alex is an Information Systems major with a minor in Human Computer Interaction. He worked as a software developer for Intuit this past summer.

            -
            -
            - -
            -
            -
            - -
            -
            -
            -

            Kevin Louie

            -

            Kevin is an Information Systems major with a minor in Human Computer Interaction. This past summer, he worked as a technology analyst at PPG Industries.

            -
            -
            -
            - -
            - -
            - -
            - -
            -
            \ No newline at end of file diff --git a/node_modules/materialize-css/jade/badges.jade b/node_modules/materialize-css/jade/badges.jade deleted file mode 100644 index 184ec19..0000000 --- a/node_modules/materialize-css/jade/badges.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Badges" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/badges_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/breadcrumbs.jade b/node_modules/materialize-css/jade/breadcrumbs.jade deleted file mode 100644 index 0d4196a..0000000 --- a/node_modules/materialize-css/jade/breadcrumbs.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Breadcrumbs" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/breadcrumbs_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/buttons.jade b/node_modules/materialize-css/jade/buttons.jade deleted file mode 100644 index b169b07..0000000 --- a/node_modules/materialize-css/jade/buttons.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Buttons" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/buttons_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/cards.jade b/node_modules/materialize-css/jade/cards.jade deleted file mode 100644 index 3414188..0000000 --- a/node_modules/materialize-css/jade/cards.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Cards" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/cards_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/carousel.jade b/node_modules/materialize-css/jade/carousel.jade deleted file mode 100644 index 00e5945..0000000 --- a/node_modules/materialize-css/jade/carousel.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Carousel" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/carousel_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/chips.jade b/node_modules/materialize-css/jade/chips.jade deleted file mode 100644 index 8ca245b..0000000 --- a/node_modules/materialize-css/jade/chips.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Chips" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/chips_content.html - include _footer.html - include _scripts.html diff --git a/node_modules/materialize-css/jade/collapsible.jade b/node_modules/materialize-css/jade/collapsible.jade deleted file mode 100644 index bee01c4..0000000 --- a/node_modules/materialize-css/jade/collapsible.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Collapsible" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/collapsible_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/collections.jade b/node_modules/materialize-css/jade/collections.jade deleted file mode 100644 index 5933892..0000000 --- a/node_modules/materialize-css/jade/collections.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Collections" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/collections_content.html - include _footer.html - include _scripts.html diff --git a/node_modules/materialize-css/jade/color.jade b/node_modules/materialize-css/jade/color.jade deleted file mode 100644 index 2b44b3e..0000000 --- a/node_modules/materialize-css/jade/color.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Color" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/color_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/css-transitions.jade b/node_modules/materialize-css/jade/css-transitions.jade deleted file mode 100644 index 569fdda..0000000 --- a/node_modules/materialize-css/jade/css-transitions.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "CSS Transitions" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/css-transitions_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/dialogs.jade b/node_modules/materialize-css/jade/dialogs.jade deleted file mode 100644 index 6ecbc69..0000000 --- a/node_modules/materialize-css/jade/dialogs.jade +++ /dev/null @@ -1,18 +0,0 @@ -- var no_nav = false -- var page = "Dialogs" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/dialogs_content.html - include _footer.html - include _scripts.html - script(type='text/javascript'). - var displayCustomHTMLToast = function () { - var $toastContent = $('I am toast content'); - Materialize.toast($toastContent, 5000); - } diff --git a/node_modules/materialize-css/jade/dropdown.jade b/node_modules/materialize-css/jade/dropdown.jade deleted file mode 100644 index 6bec7e4..0000000 --- a/node_modules/materialize-css/jade/dropdown.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Dropdown" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/dropdown_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/footer.jade b/node_modules/materialize-css/jade/footer.jade deleted file mode 100644 index 049b671..0000000 --- a/node_modules/materialize-css/jade/footer.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Footer" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/footer_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/forms.jade b/node_modules/materialize-css/jade/forms.jade deleted file mode 100644 index bbdcc14..0000000 --- a/node_modules/materialize-css/jade/forms.jade +++ /dev/null @@ -1,29 +0,0 @@ -- var no_nav = false -- var page = "Forms" - -doctype html -html(lang="en") - head - include _head.jade - link(href='/extras/noUiSlider/nouislider.css', rel='stylesheet') - body - include _navbar.jade - main - include page-contents/forms_content.html - include _footer.html - include _scripts.html - script(src="/extras/noUiSlider/nouislider.js") - script(type='text/javascript'). - var slider = document.getElementById('range-input'); - noUiSlider.create(slider, { - start: [20, 80], - connect: true, - step: 1, - range: { - 'min': 0, - 'max': 100 - }, - format: wNumb({ - decimals: 0 - }) - }); \ No newline at end of file diff --git a/node_modules/materialize-css/jade/fullscreen-slider-demo.jade b/node_modules/materialize-css/jade/fullscreen-slider-demo.jade deleted file mode 100644 index bb995f4..0000000 --- a/node_modules/materialize-css/jade/fullscreen-slider-demo.jade +++ /dev/null @@ -1,10 +0,0 @@ -- var page = "Fullscreen Slider" -- var isDemo = true - -doctype html -html(lang="en") - head - include _head.jade - body - include page-contents/fullscreen_slider_demo_content.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/getting-started.jade b/node_modules/materialize-css/jade/getting-started.jade deleted file mode 100644 index 386b602..0000000 --- a/node_modules/materialize-css/jade/getting-started.jade +++ /dev/null @@ -1,26 +0,0 @@ -- var white_nav = true -- var page = "Getting Started" -- var meta_descript = "Learn how to quickly get started using our CSS framework. We have guides for a variety of skill levels." - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include getting_started/getting_started_content.html - include _footer.html - include _scripts.html - script. - $('#download-source, #download-sass').on('click', function () { - $('#download').slideUp( - { duration: 500, - easing: "easeOutQuart", - queue: false, - complete: function() - { $('#download-thanks').slideDown({ duration: 300, - easing: "easeOutQuart"}); } - }); - - }); \ No newline at end of file diff --git a/node_modules/materialize-css/jade/getting_started/getting_started_content.html b/node_modules/materialize-css/jade/getting_started/getting_started_content.html deleted file mode 100644 index 858ff5d..0000000 --- a/node_modules/materialize-css/jade/getting_started/getting_started_content.html +++ /dev/null @@ -1,237 +0,0 @@ -
            -
            -
            -
            -

            Getting Started

            -

            Learn how to easily start using Materialize in your website.

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

            Download

            -

            Materialize comes in two different forms. You can select which version you want depending on your preference and expertise. To start using Materialize, all you have to do is download one of the options below.

            - -
            -

            Materialize

            -

            This is the standard version that comes with both the minified and unminified CSS and JavaScript files. This option requires little to no setup. Use this if you are unfamiliar with Sass.

            - Materializefile_download -
            -
            -

            Sass

            -

            This version contains the source SCSS files. By choosing this version you have more control over which components to include. You will need a Sass compiler if you choose this option.

            - Sourcefile_download -
            -
            -
            -

            CDN

            -

            You can find all the versions of the CDN at cdnjs.

            -
            
            -  <!-- Compiled and minified CSS -->
            -  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/css/materialize.min.css">
            -
            -  <!-- Compiled and minified JavaScript -->
            -  <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/js/materialize.min.js"></script>
            -          
            -
            -
            -
            -

            NPM

            -

            You can also get the latest release using NPM. This release contains source files as well as the compiled CSS and JavaScript files.

            -
            
            -  npm install materialize-css
            -          
            -
            -
            -
            -

            Bower

            -

            You can also get the latest release using bower. This release contains source files as well as the compiled CSS and JavaScript files.

            -
            
            -  bower install materialize
            -          
            -
            -
            - -
            -

            Thanks for Downloading!

            -

            We hope you find Materialize useful in your next project. We would appreciate if you helped us spread the word about Materialize on our Social Media. Also if you want to support the development, you can donate to us.

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

            Setup

            -

            Project Structure

            -

            After downloading, extract the files into the directory where your website is located. Your directory will look something like this.

            -

            You'll notice that there are two sets of the files. The min means that the file is "compressed" to reduce load times. These minified files are usually used in production while it is better to use the unminified files during development.

            - -
            
            -  MyWebsite/
            -  |--css/
            -  |  |--materialize.css
            -  |
            -  |--fonts/
            -  |  |--roboto/
            -  |
            -  |--js/
            -  |  |--materialize.js
            -  |
            -  |--index.html
            -          
            -
            -
            -

            HTML Setup

            -

            Next you just have to make sure you link the files properly in your webpage. Generally it is wise to import javascript files at the end of the body to reduce page load time. Follow the example below on how to import Materialize into your webpage.

            -

            One last thing to note is that you have to import jQuery before importing materialize.js!

            -
            
            -  <!DOCTYPE html>
            -  <html>
            -    <head>
            -      <!--Import Google Icon Font-->
            -      <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
            -      <!--Import materialize.css-->
            -      <link type="text/css" rel="stylesheet" href="css/materialize.min.css"  media="screen,projection"/>
            -
            -      <!--Let browser know website is optimized for mobile-->
            -      <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
            -    </head>
            -
            -    <body>
            -      <!--Import jQuery before materialize.js-->
            -      <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
            -      <script type="text/javascript" src="js/materialize.min.js"></script>
            -    </body>
            -  </html>
            -        
            -
            -
            - -
            -

            Templates

            -

            We have created some starter templates so you can easily start designing your website with minimal setup up time. Browse through our collection and download your best fit.

            - -
            -

            Starter Template

            - -

            This is the simplest starter page with a Header, Call-to-Action, and Icon Features.

            - Demosearch - Downloadfile_download -
            - -
            -

            Parallax Template

            - -

            This is the simplest starter page with a Header, Call-to-Action, and Icon Features.

            - Demosearch - Downloadfile_download -
            -
            - - - -
            -
            -

            Third-party Options

            -

            There are a few community-made options for you to easily include Materialize in your project. Keep in mind these are untested and may be out-of-date.

            -

            Ruby Gem

            -

            See here for documentation on this gem.

            -
            
            -  gem 'materialize-sass'
            -          
            -

            Meteor Package

            -
            
            -  meteor add materialize:materialize
            -          
            -

            Ember Package

            -
            
            -  # install via npm
            -  $ npm install ember-cli-materialize --save-dev
            -  # make ember-cli fetch internal dependencies
            -  $ ember g ember-cli-materialize
            -          
            - -
            -
            - -
            -
            -

            Sass Setup

            -

            This section is only relevant if you chose to download the Sass version of Materialize.

            -

            Compiling Sass

            -

            Instead of having a css folder, you will find that the download instead contains many .scss files which contain the styles of individual components. Unfortunately, the browser cannot interpret Sass, so you must have your Sass compiler compile the scss/materialize.scss into a regular CSS file. At this point you can link this newly outputted file in your HTML page.

            - -
            
            -  MyWebsite/
            -  |--css/
            -  |  |--materialize.css <-- compiled from scss/materialize.scss
            -  |
            -  |--fonts/
            -  |  |--roboto/
            -  |
            -  |--js/
            -  |  |--materialize.js
            -  |
            -  |--scss/
            -  |  |--materialize.scss
            -  |  |--components/
            -  |
            -  |--index.html
            -        
            -
            -
            - -
            - -
            - -
            - -
            -
            diff --git a/node_modules/materialize-css/jade/grid.jade b/node_modules/materialize-css/jade/grid.jade deleted file mode 100644 index 72c9700..0000000 --- a/node_modules/materialize-css/jade/grid.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Grid" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/grid_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/helpers.jade b/node_modules/materialize-css/jade/helpers.jade deleted file mode 100644 index 907b022..0000000 --- a/node_modules/materialize-css/jade/helpers.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Helpers" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/helpers_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/icons.jade b/node_modules/materialize-css/jade/icons.jade deleted file mode 100644 index 8308b5b..0000000 --- a/node_modules/materialize-css/jade/icons.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Icons" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/icons_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/index.jade b/node_modules/materialize-css/jade/index.jade deleted file mode 100644 index 50dfc27..0000000 --- a/node_modules/materialize-css/jade/index.jade +++ /dev/null @@ -1,12 +0,0 @@ -- var no_nav = true - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include index/index_content.html - include _footer.html - include _scripts.html diff --git a/node_modules/materialize-css/jade/index/index_content.html b/node_modules/materialize-css/jade/index/index_content.html deleted file mode 100644 index 379a892..0000000 --- a/node_modules/materialize-css/jade/index/index_content.html +++ /dev/null @@ -1,84 +0,0 @@ -
            -
            -

            Materialize

            -
            -

            A modern responsive front-end framework based on Material Design

            -
            - - - -
            - - -
            -
            - -
            -
            -
            -
            - Latest Commit on Github: -    - -    - - Github -
            -
            -
            -
            - -
            -
            - -
            -
            -
            - -
            -
            - -
            -

            Materialize simplifies life for developers and the users they serve.

            -
            - - -
            -
            -
            - flash_on -

            Speeds up development

            -

            We did most of the heavy lifting for you to provide a default stylings that incorporate our custom components. Additionally, we refined animations and transitions to provide a smoother experience for developers.

            -
            -
            - -
            -
            - group -

            User Experience Focused

            -

            By utilizing elements and principles of Material Design, we were able to create a framework that incorporates components and animations that provide more feedback to users. Additionally, a single underlying responsive system across all platforms allow for a more unified user experience.

            -
            -
            - -
            -
            - settings -

            Easy to work with

            -

            We have provided detailed documentation as well as specific code examples to help new users get started. We are also always open to feedback and can answer any questions a user may have about Materialize.

            -
            -
            -
            - -
            -
            -
            -
            -

            Materialize Showcase

            -

            Checkout what people are creating with Materialize. Get inspired by these beautiful sites and you can even submit your own website to be showcased here.

            - Explore our Showcase -
            -
            -
            - diff --git a/node_modules/materialize-css/jade/lunr.min.js b/node_modules/materialize-css/jade/lunr.min.js deleted file mode 100644 index 6aa6bc7..0000000 --- a/node_modules/materialize-css/jade/lunr.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 0.5.12 - * Copyright (C) 2015 Oliver Nightingale - * MIT Licensed - * @license - */ -!function(){var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.5.12",t.utils={},t.utils.warn=function(t){return function(e){t.console&&console.warn&&console.warn(e)}}(this),t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var t=Array.prototype.slice.call(arguments),e=t.pop(),n=t;if("function"!=typeof e)throw new TypeError("last argument must be a function");n.forEach(function(t){this.hasHandler(t)||(this.events[t]=[]),this.events[t].push(e)},this)},t.EventEmitter.prototype.removeListener=function(t,e){if(this.hasHandler(t)){var n=this.events[t].indexOf(e);this.events[t].splice(n,1),this.events[t].length||delete this.events[t]}},t.EventEmitter.prototype.emit=function(t){if(this.hasHandler(t)){var e=Array.prototype.slice.call(arguments,1);this.events[t].forEach(function(t){t.apply(void 0,e)})}},t.EventEmitter.prototype.hasHandler=function(t){return t in this.events},t.tokenizer=function(t){return arguments.length&&null!=t&&void 0!=t?Array.isArray(t)?t.map(function(t){return t.toLowerCase()}):t.toString().trim().toLowerCase().split(/[\s\-]+/):[]},t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.registeredFunctions[e];if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e);if(-1==i)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e);if(-1==i)throw new Error("Cannot find existingFn");this._stack.splice(i,0,n)},t.Pipeline.prototype.remove=function(t){var e=this._stack.indexOf(t);-1!=e&&this._stack.splice(e,1)},t.Pipeline.prototype.run=function(t){for(var e=[],n=t.length,i=this._stack.length,o=0;n>o;o++){for(var r=t[o],s=0;i>s&&(r=this._stack[s](r,o,t),void 0!==r);s++);void 0!==r&&e.push(r)}return e},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},t.Vector.Node=function(t,e,n){this.idx=t,this.val=e,this.next=n},t.Vector.prototype.insert=function(e,n){this._magnitude=void 0;var i=this.list;if(!i)return this.list=new t.Vector.Node(e,n,i),this.length++;if(en.idx?n=n.next:(i+=e.val*n.val,e=e.next,n=n.next);return i},t.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},t.SortedSet=function(){this.length=0,this.elements=[]},t.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},t.SortedSet.prototype.add=function(){var t,e;for(t=0;t1;){if(r===t)return o;t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o]}return r===t?o:-1},t.SortedSet.prototype.locationFor=function(t){for(var e=0,n=this.elements.length,i=n-e,o=e+Math.floor(i/2),r=this.elements[o];i>1;)t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o];return r>t?o:t>r?o+1:void 0},t.SortedSet.prototype.intersect=function(e){for(var n=new t.SortedSet,i=0,o=0,r=this.length,s=e.length,a=this.elements,h=e.elements;;){if(i>r-1||o>s-1)break;a[i]!==h[o]?a[i]h[o]&&o++:(n.add(a[i]),i++,o++)}return n},t.SortedSet.prototype.clone=function(){var e=new t.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},t.SortedSet.prototype.union=function(t){var e,n,i;return this.length>=t.length?(e=this,n=t):(e=t,n=this),i=e.clone(),i.add.apply(i,n.toArray()),i},t.SortedSet.prototype.toJSON=function(){return this.toArray()},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.Store,this.tokenStore=new t.TokenStore,this.corpusTokens=new t.SortedSet,this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var t=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,t)},t.Index.prototype.off=function(t,e){return this.eventEmitter.removeListener(t,e)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;return n._fields=e.fields,n._ref=e.ref,n.documentStore=t.Store.load(e.documentStore),n.tokenStore=t.TokenStore.load(e.tokenStore),n.corpusTokens=t.SortedSet.load(e.corpusTokens),n.pipeline=t.Pipeline.load(e.pipeline),n},t.Index.prototype.field=function(t,e){var e=e||{},n={name:t,boost:e.boost||1};return this._fields.push(n),this},t.Index.prototype.ref=function(t){return this._ref=t,this},t.Index.prototype.add=function(e,n){var i={},o=new t.SortedSet,r=e[this._ref],n=void 0===n?!0:n;this._fields.forEach(function(n){var r=this.pipeline.run(t.tokenizer(e[n.name]));i[n.name]=r,t.SortedSet.prototype.add.apply(o,r)},this),this.documentStore.set(r,o),t.SortedSet.prototype.add.apply(this.corpusTokens,o.toArray());for(var s=0;s0&&(i=1+Math.log(this.documentStore.length/n)),this._idfCache[e]=i},t.Index.prototype.search=function(e){var n=this.pipeline.run(t.tokenizer(e)),i=new t.Vector,o=[],r=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(e,n,s){var a=1/s.length*this._fields.length*r,h=this,l=this.tokenStore.expand(e).reduce(function(n,o){var r=h.corpusTokens.indexOf(o),s=h.idf(o),l=1,u=new t.SortedSet;if(o!==e){var c=Math.max(3,o.length-e.length);l=1/Math.log(c)}return r>-1&&i.insert(r,a*s*l),Object.keys(h.tokenStore.get(o)).forEach(function(t){u.add(t)}),n.union(u)},new t.SortedSet);o.push(l)},this);var a=o.reduce(function(t,e){return t.intersect(e)});return a.map(function(t){return{ref:t,score:i.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},t.Index.prototype.documentVector=function(e){for(var n=this.documentStore.get(e),i=n.length,o=new t.Vector,r=0;i>r;r++){var s=n.elements[r],a=this.tokenStore.get(s)[e].tf,h=this.idf(s);o.insert(this.corpusTokens.indexOf(s),a*h)}return o},t.Index.prototype.toJSON=function(){return{version:t.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(t){var e=Array.prototype.slice.call(arguments,1);e.unshift(this),t.apply(this,e)},t.Store=function(){this.store={},this.length=0},t.Store.load=function(e){var n=new this;return n.length=e.length,n.store=Object.keys(e.store).reduce(function(n,i){return n[i]=t.SortedSet.load(e.store[i]),n},{}),n},t.Store.prototype.set=function(t,e){this.has(t)||this.length++,this.store[t]=e},t.Store.prototype.get=function(t){return this.store[t]},t.Store.prototype.has=function(t){return t in this.store},t.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},t.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},t.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",o=n+"[^aeiouy]*",r=i+"[aeiou]*",s="^("+o+")?"+r+o,a="^("+o+")?"+r+o+"("+r+")?$",h="^("+o+")?"+r+o+r+o,l="^("+o+")?"+i,u=new RegExp(s),c=new RegExp(h),f=new RegExp(a),d=new RegExp(l),p=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,v=/^(.+?)eed$/,y=/^(.+?)(ed|ing)$/,g=/.$/,S=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),x=new RegExp("^"+o+i+"[^aeiouwxy]$"),k=/^(.+?[^aeiou])y$/,b=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,E=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,_=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,F=/^(.+?)(s|t)(ion)$/,O=/^(.+?)e$/,P=/ll$/,N=new RegExp("^"+o+i+"[^aeiouwxy]$"),T=function(n){var i,o,r,s,a,h,l;if(n.length<3)return n;if(r=n.substr(0,1),"y"==r&&(n=r.toUpperCase()+n.substr(1)),s=p,a=m,s.test(n)?n=n.replace(s,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),s=v,a=y,s.test(n)){var T=s.exec(n);s=u,s.test(T[1])&&(s=g,n=n.replace(s,""))}else if(a.test(n)){var T=a.exec(n);i=T[1],a=d,a.test(i)&&(n=i,a=S,h=w,l=x,a.test(n)?n+="e":h.test(n)?(s=g,n=n.replace(s,"")):l.test(n)&&(n+="e"))}if(s=k,s.test(n)){var T=s.exec(n);i=T[1],n=i+"i"}if(s=b,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+t[o])}if(s=E,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+e[o])}if(s=_,a=F,s.test(n)){var T=s.exec(n);i=T[1],s=c,s.test(i)&&(n=i)}else if(a.test(n)){var T=a.exec(n);i=T[1]+T[2],a=c,a.test(i)&&(n=i)}if(s=O,s.test(n)){var T=s.exec(n);i=T[1],s=c,a=f,h=N,(s.test(i)||a.test(i)&&!h.test(i))&&(n=i)}return s=P,a=c,s.test(n)&&a.test(n)&&(s=g,n=n.replace(s,"")),"y"==r&&(n=r.toLowerCase()+n.substr(1)),n};return T}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.stopWordFilter=function(e){return e&&t.stopWordFilter.stopWords[e]!==e?e:void 0},t.stopWordFilter.stopWords={a:"a",able:"able",about:"about",across:"across",after:"after",all:"all",almost:"almost",also:"also",am:"am",among:"among",an:"an",and:"and",any:"any",are:"are",as:"as",at:"at",be:"be",because:"because",been:"been",but:"but",by:"by",can:"can",cannot:"cannot",could:"could",dear:"dear",did:"did","do":"do",does:"does",either:"either","else":"else",ever:"ever",every:"every","for":"for",from:"from",get:"get",got:"got",had:"had",has:"has",have:"have",he:"he",her:"her",hers:"hers",him:"him",his:"his",how:"how",however:"however",i:"i","if":"if","in":"in",into:"into",is:"is",it:"it",its:"its",just:"just",least:"least",let:"let",like:"like",likely:"likely",may:"may",me:"me",might:"might",most:"most",must:"must",my:"my",neither:"neither",no:"no",nor:"nor",not:"not",of:"of",off:"off",often:"often",on:"on",only:"only",or:"or",other:"other",our:"our",own:"own",rather:"rather",said:"said",say:"say",says:"says",she:"she",should:"should",since:"since",so:"so",some:"some",than:"than",that:"that",the:"the",their:"their",them:"them",then:"then",there:"there",these:"these",they:"they","this":"this",tis:"tis",to:"to",too:"too",twas:"twas",us:"us",wants:"wants",was:"was",we:"we",were:"were",what:"what",when:"when",where:"where",which:"which","while":"while",who:"who",whom:"whom",why:"why",will:"will","with":"with",would:"would",yet:"yet",you:"you",your:"your"},t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(t){var e=t.replace(/^\W+/,"").replace(/\W+$/,"");return""===e?void 0:e},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.TokenStore=function(){this.root={docs:{}},this.length=0},t.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},t.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,i=t[0],o=t.slice(1);return i in n||(n[i]={docs:{}}),0===o.length?(n[i].docs[e.ref]=e,void(this.length+=1)):this.add(o,e,n[i])},t.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;n -
            -
            - - - - - -
            -

            Toast

            -

            Swipe to Dismiss

            -

            On all devices, you can swipe to dismiss toasts.

            - - -
            -
            -
            -
            -
            - - -
            -
            - -
            -
            -
            -
            diff --git a/node_modules/materialize-css/jade/modals.jade b/node_modules/materialize-css/jade/modals.jade deleted file mode 100644 index 21d7d07..0000000 --- a/node_modules/materialize-css/jade/modals.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Modals" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/modals_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/navbar.jade b/node_modules/materialize-css/jade/navbar.jade deleted file mode 100644 index ce17736..0000000 --- a/node_modules/materialize-css/jade/navbar.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Navbar" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/navbar_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/page-contents/404_content.html b/node_modules/materialize-css/jade/page-contents/404_content.html deleted file mode 100644 index cf3b410..0000000 --- a/node_modules/materialize-css/jade/page-contents/404_content.html +++ /dev/null @@ -1,33 +0,0 @@ -
            -
            -
            -
            -

            404

            -

            Page not found.

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

            Are You Lost?

            -

            The page you were looking for does not exist. If you think this is a mistake and one of our pages has gone missing, throw us an email or send us a tweet. Click below to learn more about our CSS framework.

            - Learn More -
            - -
            - -
            -
            \ No newline at end of file diff --git a/node_modules/materialize-css/jade/page-contents/badges_content.html b/node_modules/materialize-css/jade/page-contents/badges_content.html deleted file mode 100644 index 4e3c7f9..0000000 --- a/node_modules/materialize-css/jade/page-contents/badges_content.html +++ /dev/null @@ -1,196 +0,0 @@ -
            -
            - -
            - - -
            - -
            -
            -

            Badges can notify you that there are new or unread messages or notifications. Add the new class to the badge to give it the background.

            - -

            Collections

            - -
            - 1Alan - 4Alan - Alan - 14Alan -
            -
            
            -  <div class="collection">
            -    <a href="#!" class="collection-item"><span class="badge">1</span>Alan</a>
            -    <a href="#!" class="collection-item"><span class="new badge">4</span>Alan</a>
            -    <a href="#!" class="collection-item">Alan</a>
            -    <a href="#!" class="collection-item"><span class="badge">14</span>Alan</a>
            -  </div>
            -            
            -
            -
            -
            - - - - - -
            -
            -
            - -

            Badges in Collapsibles

            - -
              -
            • -
              4filter_dramaFirst
              -

              Lorem ipsum dolor sit amet.

              -
            • -
            • -
              1placeSecond
              -

              Lorem ipsum dolor sit amet.

              -
            • -
            -
            - -
            
            -<ul class="collapsible" data-collapsible="accordion">
            -  <li>
            -    <div class="collapsible-header"><span class="new badge">4</span><i class="material-icons">filter_drama</i>First</div>
            -    <div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
            -  </li>
            -  <li>
            -    <div class="collapsible-header"><span class="badge">1</span><i class="material-icons">place</i>Second</div>
            -    <div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
            -  </li>
            -</ul>
            - -
            -
            -
            - -
            - -
            -
            -

            Options

            -

            You can customize captions in many ways.

            -
            -
            - -
            -
            Custom Caption
            - -
            -

            You can explicitly set the caption in a badge using the data-badge-caption attribute.

            -
            
            -  <span class="new badge" data-badge-caption="custom caption">4</span>
            -  <span class="badge" data-badge-caption="custom caption">4</span>
            -            
            -
            -
            - -
            -
            Colors
            -
            -
            - Red4 - Blue4 -
            -
            -
            -

            You can use our color classes to set the background-color of the badge.

            -
            
            -  <span class="new badge red">4</span>
            -  <span class="new badge blue">4</span>
            -            
            -
            -
            - -
            - - - -
            - -
            -
            -
            - - -
            - -
            -
            - -
            -
            - diff --git a/node_modules/materialize-css/jade/page-contents/breadcrumbs_content.html b/node_modules/materialize-css/jade/page-contents/breadcrumbs_content.html deleted file mode 100644 index 7553c21..0000000 --- a/node_modules/materialize-css/jade/page-contents/breadcrumbs_content.html +++ /dev/null @@ -1,61 +0,0 @@ -
            -
            - -
            - - -
            - -
            -
            -

            Breadcrumbs are a good way to display your current location. This is usually used when you have multiple layers of content.

            -

            Basic

            - - - -

            -
            
            -  <nav>
            -    <div class="nav-wrapper">
            -      <div class="col s12">
            -        <a href="#!" class="breadcrumb">First</a>
            -        <a href="#!" class="breadcrumb">Second</a>
            -        <a href="#!" class="breadcrumb">Third</a>
            -      </div>
            -    </div>
            -  </nav>
            -            
            -
            -
            -
            -
            - - - -
            - -
            -
            -
            - - -
            -
            - -
            -
            -
            - -
            -
            - diff --git a/node_modules/materialize-css/jade/page-contents/buttons_content.html b/node_modules/materialize-css/jade/page-contents/buttons_content.html deleted file mode 100644 index e18f381..0000000 --- a/node_modules/materialize-css/jade/page-contents/buttons_content.html +++ /dev/null @@ -1,207 +0,0 @@ -
            -
            - -
            -
            -

            - There are 3 main button types described in material design. The raised button is a standard button that signify actions and seek to give depth to a mostly flat page. The floating circular action button is meant for very important functions. Flat buttons are usually used within elements that already have depth like cards or modals. -

            -

            Raised

            - button - cloudbutton - cloudbutton -
            
            -<a class="waves-effect waves-light btn">button</a>
            -<a class="waves-effect waves-light btn"><i class="material-icons left">cloud</i>button</a>
            -<a class="waves-effect waves-light btn"><i class="material-icons right">cloud</i>button</a>
            -        
            -
            -
            -

            Floating

            - add

            -
            
            -  <a class="btn-floating btn-large waves-effect waves-light red"><i class="material-icons">add</i></a>
            -        
            -
            - -

            Fixed Action Button

            -

            If you want a fixed floating action button, you can add multiple actions that will appear on hover. Our demo is in the bottom righthand corner of the page.

            -
            
            -  <div class="fixed-action-btn">
            -    <a class="btn-floating btn-large red">
            -      <i class="large material-icons">mode_edit</i>
            -    </a>
            -    <ul>
            -      <li><a class="btn-floating red"><i class="material-icons">insert_chart</i></a></li>
            -      <li><a class="btn-floating yellow darken-1"><i class="material-icons">format_quote</i></a></li>
            -      <li><a class="btn-floating green"><i class="material-icons">publish</i></a></li>
            -      <li><a class="btn-floating blue"><i class="material-icons">attach_file</i></a></li>
            -    </ul>
            -  </div>
            -        
            - -

            You can also open and close the Fixed Action Button Menu programatically.

            -
            
            -  $('.fixed-action-btn').openFAB();
            -  $('.fixed-action-btn').closeFAB();
            -  $('.fixed-action-btn.toolbar').openToolbar();
            -  $('.fixed-action-btn.toolbar').closeToolbar();
            -        
            -
            -

            Horizontal FAB

            -

            Creating a horizontal FAB is easy! Just add the class horizontal to the FAB.

            - -
            
            -  <div class="fixed-action-btn horizontal">
            -    <a class="btn-floating btn-large red">
            -      <i class="large material-icons">mode_edit</i>
            -    </a>
            -    <ul>
            -      <li><a class="btn-floating red"><i class="material-icons">insert_chart</i></a></li>
            -      <li><a class="btn-floating yellow darken-1"><i class="material-icons">format_quote</i></a></li>
            -      <li><a class="btn-floating green"><i class="material-icons">publish</i></a></li>
            -      <li><a class="btn-floating blue"><i class="material-icons">attach_file</i></a></li>
            -    </ul>
            -  </div>
            -        
            - - -
            - -

            Click-only FAB

            -

            If you want to disable the hover behaviour, and instead toggle the FAB menu when the user clicks on the large button (works great on mobile!), just add the click-to-toggle class to the FAB.

            - -
            
            -  <div class="fixed-action-btn horizontal click-to-toggle">
            -    <a class="btn-floating btn-large red">
            -      <i class="material-icons">menu</i>
            -    </a>
            -    <ul>
            -      <li><a class="btn-floating red"><i class="material-icons">insert_chart</i></a></li>
            -      <li><a class="btn-floating yellow darken-1"><i class="material-icons">format_quote</i></a></li>
            -      <li><a class="btn-floating green"><i class="material-icons">publish</i></a></li>
            -      <li><a class="btn-floating blue"><i class="material-icons">attach_file</i></a></li>
            -    </ul>
            -  </div>
            -        
            - -

            FAB to Toolbar

            -

            Instead of displaying individual button options, you can transition your FAB into a toolbar on click. Just add the toolbar class to the FAB.

            - -
            
            -  <div class="fixed-action-btn toolbar">
            -    <a class="btn-floating btn-large red">
            -      <i class="large material-icons">mode_edit</i>
            -    </a>
            -    <ul>
            -      <li class="waves-effect waves-light"><a href="#!"><i class="material-icons">insert_chart</i></a></li>
            -      <li class="waves-effect waves-light"><a href="#!"><i class="material-icons">format_quote</i></a></li>
            -      <li class="waves-effect waves-light"><a href="#!"><i class="material-icons">publish</i></a></li>
            -      <li class="waves-effect waves-light"><a href="#!"><i class="material-icons">attach_file</i></a></li>
            -    </ul>
            -  </div>
            -        
            - -
            -
            -

            Flat

            -

            Flat buttons are used to reduce excessive layering. For example, flat buttons are usually used for actions within a card or modal so there aren't too many overlapping shadows.

            - Button -
            
            -  <a class="waves-effect waves-teal btn-flat">Button</a>
            -        
            -
            -
            -

            Submit Button

            -

            When you use a button to submit a form, instead of using a input tag, use a button tag with a type submit

            - -
            
            -  <button class="btn waves-effect waves-light" type="submit" name="action">Submit
            -    <i class="material-icons right">send</i>
            -  </button>
            -        
            -
            -
            -

            Large

            -

            This button has a larger height for buttons that need more attention.

            - Button - cloudbutton - cloudbutton -
            
            -<a class="waves-effect waves-light btn-large">Button</a>
            -<a class="waves-effect waves-light btn-large"><i class="material-icons left">cloud</i>button</a>
            -<a class="waves-effect waves-light btn-large"><i class="material-icons right">cloud</i>button</a>
            -        
            -
            -
            -

            Disabled

            -

            This style can be applied to all button types

            - Button - Button - Button - add -
            
            -<a class="btn-large disabled">Button</a>
            -<a class="btn disabled">Button</a>
            -<a class="btn-flat disabled">Button</a>
            -<a class="btn-floating disabled"><i class="material-icons">add</i></a>
            -        
            -
            - -
            - -
            -
            -
            - - -
            -
            - -
            -
            -
            - -
            -
            diff --git a/node_modules/materialize-css/jade/page-contents/cards_content.html b/node_modules/materialize-css/jade/page-contents/cards_content.html deleted file mode 100644 index c212d98..0000000 --- a/node_modules/materialize-css/jade/page-contents/cards_content.html +++ /dev/null @@ -1,566 +0,0 @@ -
            -
            - -
            - - -
            -

            Cards are a convenient means of displaying content composed of different types of objects. They’re also well-suited for presenting similar objects whose size or supported actions can vary considerably, like photos with captions of variable length.

            -

            Basic Card

            -
            -
            - -
            -
            - Card Title -

            I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

            -
            - -
            -
            - -
            -
            -
            
            -      <div class="row">
            -        <div class="col s12 m6">
            -          <div class="card blue-grey darken-1">
            -            <div class="card-content white-text">
            -              <span class="card-title">Card Title</span>
            -              <p>I am a very simple card. I am good at containing small bits of information.
            -              I am convenient because I require little markup to use effectively.</p>
            -            </div>
            -            <div class="card-action">
            -              <a href="#">This is a link</a>
            -              <a href="#">This is a link</a>
            -            </div>
            -          </div>
            -        </div>
            -      </div>
            -            
            -
            -
            -
            -
            - -
            -
            - -
            -

            Image Card

            -
            -
            - - Card Title -
            -
            -

            I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

            -
            - -
            -
            -
            -



            -

            - Here is the standard card with an image thumbnail. -

            -
            -
            -
            -
            
            -      <div class="row">
            -        <div class="col s12 m7">
            -          <div class="card">
            -            <div class="card-image">
            -              <img src="images/sample-1.jpg">
            -              <span class="card-title">Card Title</span>
            -            </div>
            -            <div class="card-content">
            -              <p>I am a very simple card. I am good at containing small bits of information.
            -              I am convenient because I require little markup to use effectively.</p>
            -            </div>
            -            <div class="card-action">
            -              <a href="#">This is a link</a>
            -            </div>
            -          </div>
            -        </div>
            -      </div>
            -            
            -
            -
            -
            -
            - -
            -
            - -
            -

            FABs in Cards

            -
            -
            - - Card Title - add -
            -
            -

            I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

            -
            -
            -
            -
            -



            -

            - Here is an image card with a Floating Action Button. -

            -
            -
            -
            -
            -
            -
            - - add -
            -
            - Card Title -

            I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

            -
            -
            -
            -
            -

            - Here is an image card with a large Floating Action Button. -

            -
            -
            -
            -
            
            -  <div class="row">
            -    <div class="col s12 m6">
            -      <div class="card">
            -        <div class="card-image">
            -          <img src="images/sample-1.jpg">
            -          <span class="card-title">Card Title</span>
            -          <a class="btn-floating halfway-fab waves-effect waves-light red"><i class="material-icons">add</i></a>
            -        </div>
            -        <div class="card-content">
            -          <p>I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.</p>
            -        </div>
            -      </div>
            -    </div>
            -  </div>
            -            
            -
            -
            -
            -
            - -
            -
            - -
            -

            Horizontal Card

            -
            -
            - -
            -
            -
            -

            I am a very simple card. I am good at containing small bits of information.

            -
            - -
            -
            -
            -
            -



            -

            - Here is the standard card with a horizontal image. -

            -
            -
            -
            -
            
            -  <div class="col s12 m7">
            -    <h2 class="header">Horizontal Card</h2>
            -    <div class="card horizontal">
            -      <div class="card-image">
            -        <img src="http://lorempixel.com/100/190/nature/6">
            -      </div>
            -      <div class="card-stacked">
            -        <div class="card-content">
            -          <p>I am a very simple card. I am good at containing small bits of information.</p>
            -        </div>
            -        <div class="card-action">
            -          <a href="#">This is a link</a>
            -        </div>
            -      </div>
            -    </div>
            -  </div>
            -            
            -
            -
            -
            -
            - -
            -
            - -
            -

            Card Reveal

            -
            -
            - -
            -
            - Card Titlemore_vert - -

            This is a link

            -
            -
            - Card Titleclose -

            Here is some more information about this product that is only revealed once clicked on.

            -
            -
            -
            -
            -



            -

            - Here you can add a card that reveals more information once clicked. Just add the card-reveal div with a span.card-title inside to make this work. Add the class activator to an element inside the card to allow it to open the card reveal. -

            -
            -
            -
            -
            
            -  <div class="card">
            -    <div class="card-image waves-effect waves-block waves-light">
            -      <img class="activator" src="images/office.jpg">
            -    </div>
            -    <div class="card-content">
            -      <span class="card-title activator grey-text text-darken-4">Card Title<i class="material-icons right">more_vert</i></span>
            -      <p><a href="#">This is a link</a></p>
            -    </div>
            -    <div class="card-reveal">
            -      <span class="card-title grey-text text-darken-4">Card Title<i class="material-icons right">close</i></span>
            -      <p>Here is some more information about this product that is only revealed once clicked on.</p>
            -    </div>
            -  </div>
            -            
            -
            -
            -
            -
            -

            Card Action Options

            -
            -
            - -
            -
            - Card Titlemore_vert - -

            This is a link

            -
            -
            - Card Titleclose -

            Here is some more information about this product that is only revealed once clicked on.

            -
            - - -
            -
            -
            -

            -

            - The default state is having the card-reveal go over the card-action. -

            -
            -
            -
            -
            -
            -
            - -
            -
            - Card Titlemore_vert - -

            This is a link

            -
            - - - -
            - Card Titleclose -

            Here is some more information about this product that is only revealed once clicked on.

            -
            -
            -
            -
            -

            - You can make your card-action always visible by adding the class sticky-action to the overall card. -

            -
            -
            -
            -
            
            -  <div class="card sticky-action">
            -    ...
            -
            -    <div class="card-action">...</div>
            -
            -    <div class="card-reveal">...</div>
            -  </div>
            -            
            -
            -
            -
            - - -
            -
            - -
            -

            Tabs in Cards

            -

            - You can add tabs to your cards by adding a dividing cards-tabs div inbetween your header content and your tab content. -

            -
            
            -  <div class="card">
            -    <div class="card-content">
            -      <p>I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.</p>
            -    </div>
            -    <div class="card-tabs">
            -      <ul class="tabs tabs-fixed-width">
            -        <li class="tab"><a href="#test4">Test 1</a></li>
            -        <li class="tab"><a class="active" href="#test5">Test 2</a></li>
            -        <li class="tab"><a href="#test6">Test 3</a></li>
            -      </ul>
            -    </div>
            -    <div class="card-content grey lighten-4">
            -      <div id="test4">Test 1</div>
            -      <div id="test5">Test 2</div>
            -      <div id="test6">Test 3</div>
            -    </div>
            -  </div>
            -
            -
            -
            -
            -

            White

            -
            -
            -

            I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

            -
            -
            - -
            -
            -
            Test 1
            -
            Test 2
            -
            Test 3
            -
            -
            -
            -
            -

            -

            - Basic white background card with tabs. -

            -
            -
            -
            -
            -

            Colored

            -
            -
            -

            I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

            -
            -
            - -
            -
            -
            Test 1
            -
            Test 2
            -
            Test 3
            -
            -
            -
            -
            -

            -

            - Colored or dark background card with tabs. -

            -
            -
            -
            - - -
            -
            - -
            -

            Card Sizes

            -

            If you want to have uniformly sized cards, you can use our premade size classes. Just add the size class in addition to the card class.

            -
            
            -  <div class="card small">
            -    <!-- Card Content -->
            -  </div>
            -            
            -
            -
            -
            -
            -

            Small

            -
            -
            - - Card Title -
            -
            -

            I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

            -
            - -
            -
            -
            -

            -

            - The Small Card limits the height of the card to 300px. -

            -
            -
            - -
            -
            -

            Medium

            -
            -
            - - Card Title -
            -
            -

            I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

            -
            - -
            -
            -
            -

            -

            - The Medium Card limits the height of the card to 400px. -

            -
            -
            - -
            -
            -

            Large

            -
            -
            - - Card Title -
            -
            -

            I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

            -
            - -
            -
            -
            -

            -

            - The Large Card limits the height of the card to 500px. -

            -
            -
            -
            - - -
            -
            - -
            -

            Card Panel

            -
            I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively. I am similar to what is called a panel in other frameworks. -
            -
            -
            -



            -

            - For a simpler card with less markup, try using a card panel which just has padding and a shadow effect -

            -
            -
            -
            -
            
            -    <div class="row">
            -      <div class="col s12 m5">
            -        <div class="card-panel teal">
            -          <span class="white-text">I am a very simple card. I am good at containing small bits of information.
            -          I am convenient because I require little markup to use effectively. I am similar to what is called a panel in other frameworks.
            -          </span>
            -        </div>
            -      </div>
            -    </div>
            -            
            -
            -
            -
            - - -
            - - - -
            -
            - diff --git a/node_modules/materialize-css/jade/page-contents/carousel_content.html b/node_modules/materialize-css/jade/page-contents/carousel_content.html deleted file mode 100644 index 7d4be4d..0000000 --- a/node_modules/materialize-css/jade/page-contents/carousel_content.html +++ /dev/null @@ -1,203 +0,0 @@ -
            -
            -
            - - -
            -

            Introduction

            -

            Our Carousel is a robust and versatile component that can be an image slider, to an item carousel, to an onboarding experience. It is touch enabled making it especially smooth to use on mobile.

            -

            Note: This is also touch compatible! Try swiping with your finger to scroll through the carousel.


            - -
            - -
            
            -  <div class="carousel">
            -    <a class="carousel-item" href="#one!"><img src="http://lorempixel.com/250/250/nature/1"></a>
            -    <a class="carousel-item" href="#two!"><img src="http://lorempixel.com/250/250/nature/2"></a>
            -    <a class="carousel-item" href="#three!"><img src="http://lorempixel.com/250/250/nature/3"></a>
            -    <a class="carousel-item" href="#four!"><img src="http://lorempixel.com/250/250/nature/4"></a>
            -    <a class="carousel-item" href="#five!"><img src="http://lorempixel.com/250/250/nature/5"></a>
            -  </div>
            -      
            -
            - - -
            -

            jQuery Initialization

            -
            
            -    $(document).ready(function(){
            -      $('.carousel').carousel();
            -    });
            -        
            -
            - -

            jQuery Plugin Options

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            Option NameDescription
            durationTransition duration in milliseconds. (Default: 200)
            distPerspective zoom. If 0, all items are the same size. (Default: -100)
            shiftSet the spacing of the center item. (Default: 0)
            paddingSet the padding between non center items. (Default: 0)
            fullWidthMake the carousel a full width slider like the second example. (Default: false)
            indicatorsSet to true to show indicators. (Default: false)
            noWrapDon't wrap around and cycle through items. (Default: false)
            -
            - -

            jQuery Plugin Methods

            -

            We have methods to pause, start, move to next and move to previous slide.

            -
            
            -// Next slide
            -$('.carousel').carousel('next');
            -$('.carousel').carousel('next', 3); // Move next n times.
            -// Previous slide
            -$('.carousel').carousel('prev');
            -$('.carousel').carousel('prev', 4); // Move prev n times.
            -// Set to nth slide
            -$('.carousel').carousel('set', 4);
            -      
            -
            - - -
            -

            Full Width Slider

            -

            Our carousel has a full width option that makes it into a simple and elegant image carousel. You can also have indicators that show up on the bottom of the slider.

            -

            Note: This is also touch compatible! Try swiping with your finger to scroll through the carousel.


            - -
            - -
            
            -  <div class="carousel carousel-slider">
            -    <a class="carousel-item" href="#one!"><img src="http://lorempixel.com/800/400/food/1"></a>
            -    <a class="carousel-item" href="#two!"><img src="http://lorempixel.com/800/400/food/2"></a>
            -    <a class="carousel-item" href="#three!"><img src="http://lorempixel.com/800/400/food/3"></a>
            -    <a class="carousel-item" href="#four!"><img src="http://lorempixel.com/800/400/food/4"></a>
            -  </div>
            -        
            - -
            
            -  $('.carousel.carousel-slider').carousel({fullWidth: true});
            -        
            -
            - - -
            -

            Special Options

            -

            The carousel doesn't only support images but also allows you to make content carousels. You can add fixed items to your carousel by adding a div with the class carousel-fixed-item and adding your fixed content in there.

            -

            Note: This is also touch compatible! Try swiping with your finger to scroll through the carousel.

            -
            - -
            -
            
            -  <div class="carousel carousel-slider center" data-indicators="true">
            -    <div class="carousel-fixed-item center">
            -      <a class="btn waves-effect white grey-text darken-text-2">button</a>
            -    </div>
            -    <div class="carousel-item red white-text" href="#one!">
            -      <h2>First Panel</h2>
            -      <p class="white-text">This is your first panel</p>
            -    </div>
            -    <div class="carousel-item amber white-text" href="#two!">
            -      <h2>Second Panel</h2>
            -      <p class="white-text">This is your second panel</p>
            -    </div>
            -    <div class="carousel-item green white-text" href="#three!">
            -      <h2>Third Panel</h2>
            -      <p class="white-text">This is your third panel</p>
            -    </div>
            -    <div class="carousel-item blue white-text" href="#four!">
            -      <h2>Fourth Panel</h2>
            -      <p class="white-text">This is your fourth panel</p>
            -    </div>
            -  </div>
            -        
            -
            
            -  $('.carousel.carousel-slider').carousel({fullWidth: true});
            -        
            -
            - -
            - - - - - -
            - -
            - -
            -
            diff --git a/node_modules/materialize-css/jade/page-contents/chips_content.html b/node_modules/materialize-css/jade/page-contents/chips_content.html deleted file mode 100644 index dd64e3f..0000000 --- a/node_modules/materialize-css/jade/page-contents/chips_content.html +++ /dev/null @@ -1,239 +0,0 @@ -
            -
            - -
            - -
            -

            Introduction

            -

            - Chips can be used to represent small blocks of information. They are most commonly used either for contacts or for tags. -

            -
            - Contact Person - Jane Doe -
            -
            - Tag - close -
            -
            - -
            -

            Contacts

            -

            - To create a contact chip just add an img inside. -

            -
            
            -  <div class="chip">
            -    <img src="images/yuna.jpg" alt="Contact Person">
            -    Jane Doe
            -  </div>
            -        
            -
            - -
            -

            Tags

            -

            - To create a tag chip just add an close icon inside with the class close. -

            -
            
            -  <div class="chip">
            -    Tag
            -    <i class="close material-icons">close</i>
            -  </div>
            -        
            -
            - -
            -

            Javascript Plugin Usage

            -

            To add tags, just enter your tag text and press enter. You can delete them by clicking on the close icon or by using your delete button.

            -
            -
            -

            Set initial tags.

            -
            -
            -

            Use placeholders and override hint texts.

            -
            -
            -

            Use autocomplete with chips.

            -
            -
            - -
            -

            Markup

            -
            
            -  <div class="chips"></div>
            -  <div class="chips chips-initial"></div>
            -  <div class="chips chips-placeholder"></div>
            -  <div class="chips chips-autocomplete"></div>
            -        
            -

            jQuery Initialization

            -
            
            -  $('.chips').material_chip();
            -  $('.chips-initial').material_chip({
            -    data: [{
            -      tag: 'Apple',
            -    }, {
            -      tag: 'Microsoft',
            -    }, {
            -      tag: 'Google',
            -    }],
            -  });
            -  $('.chips-placeholder').material_chip({
            -    placeholder: 'Enter a tag',
            -    secondaryPlaceholder: '+Tag',
            -  });
            -  $('.chips-autocomplete').material_chip({
            -    autocompleteData: {
            -      'Apple': null,
            -      'Microsoft': null,
            -      'Google': null
            -    }
            -  });
            -        
            -

            Chip data object

            -
            
            -  var chip = {
            -    tag: 'chip content',
            -    image: '', //optional
            -    id: 1, //optional
            -  };
            -        
            - -
            -

            jQuery Plugin Options

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            Option NameTypeDescription
            dataarraySet the chip data (look at the Chip data object)
            placeholderstringSet first placeholder when there are no tags.
            secondaryPlaceholderstringSet second placeholder when adding additional tags.
            autocompleteDataObjectSet autocomplete data.
            autocompleteLimitIntegerSet autocomplete limit.
            -
            - -
            -

            Events

            -

            Material chips exposes a few events for hooking - into chips functionality. -

            - - - - - - - - - - - - - - - - - - - - - -
            EventDescription
            chips.addthis method is triggered when a chip is added.
            chips.deletethis method is triggered when a chip is deleted.
            chips.selectthis method is triggered when a chip is selected.
            - -

            - -
            
            -  $('.chips').on('chip.add', function(e, chip){
            -    // you have the added chip here
            -  });
            -
            -  $('.chips').on('chip.delete', function(e, chip){
            -    // you have the deleted chip here
            -  });
            -
            -  $('.chips').on('chip.select', function(e, chip){
            -    // you have the selected chip here
            -  });
            -        
            - -
            -
            -

            Methods

            -

            - Use these methods to access the chip data. -

            - - - - - - - - - - - - - -
            ParameterDescription
            dataIt returns the stored data.
            - -

            - -
            
            -  $('.chips-initial').material_chip('data');
            -        
            - -
            -
            - - -
            -
            -
            - - -
            - -
            -
            - -
            -
            \ No newline at end of file diff --git a/node_modules/materialize-css/jade/page-contents/collapsible_content.html b/node_modules/materialize-css/jade/page-contents/collapsible_content.html deleted file mode 100644 index aacbe95..0000000 --- a/node_modules/materialize-css/jade/page-contents/collapsible_content.html +++ /dev/null @@ -1,198 +0,0 @@ -
            -
            - -
            - -
            -

            Introduction

            -

            - Collapsibles are accordion elements that expand when clicked on. They allow you to hide content that is not immediately relevant to the user. - -

              -
            • -
              filter_dramaFirst
              -
              Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
              -
            • -
            • -
              placeSecond
              -
              Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
              -
            • -
            • -
              whatshotThird
              -
              Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
              -
            • -
            -
            - -
            -

            Popout

            -

            - To create a popout collapsible, just add the class popout. - -

              -
            • -
              subtitlesFirst
              -
              Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
              -
            • -
            • -
              gamesSecond
              -
              Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
              -
            • -
            • -
              library_booksThird
              -
              Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
              -
            • -
            -
            
            -  <ul class="collapsible popout" data-collapsible="accordion">
            -        
            -
            - - - -
            -

            Collapsible HTML Structure

            -
            
            -  <ul class="collapsible" data-collapsible="accordion">
            -    <li>
            -      <div class="collapsible-header"><i class="material-icons">filter_drama</i>First</div>
            -      <div class="collapsible-body"><span>Lorem ipsum dolor sit amet.</span></div>
            -    </li>
            -    <li>
            -      <div class="collapsible-header"><i class="material-icons">place</i>Second</div>
            -      <div class="collapsible-body"><span>Lorem ipsum dolor sit amet.</span></div>
            -    </li>
            -    <li>
            -      <div class="collapsible-header"><i class="material-icons">whatshot</i>Third</div>
            -      <div class="collapsible-body"><span>Lorem ipsum dolor sit amet.</span></div>
            -    </li>
            -  </ul>
            -        
            -
            - -
            -

            Initialization

            - Collapsible elements only need initialization if they are added dynamically. You can also pass in options inside the initialization, however this can be done in the HTML markup as well. -
            
            -  $(document).ready(function(){
            -    $('.collapsible').collapsible();
            -  });
            -        
            - -

            -
            Preselected Section
            - If you want a collapsible with a preopened section just add the active class to the collapsible-header. -
              -
            • -
              filter_dramaFirst
              -
              Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
              -
            • -
            • -
              placeSecond
              -
              Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
              -
            • -
            • -
              whatshotThird
              -
              Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
              -
            • -
            -
            
            -  <div class="collapsible-header active"><i class="mdi-maps-place"></i>Second</div>
            -        
            -
            - -
            -

            Options

            - You can customize the behavior of each collapsible using these options. For example, you can call a custom function to run when a collapsbile is opened or closed. The function passes the li element that was opened or closed as an argument. -
            
            -  $('.collapsible').collapsible({
            -    accordion: false, // A setting that changes the collapsible behavior to expandable instead of the default accordion style
            -    onOpen: function(el) { alert('Open'); }, // Callback for Collapsible open
            -    onClose: function(el) { alert('Closed'); } // Callback for Collapsible close
            -  });
            -        
            -

            - -

            Collapsible Types

            - There are two ways a collapsible can behave. It can either allow multiple sections to stay open, or it can only allow one section to stay open at a time, which is called an accordion. See below for a demo of each type -
            -
            -
            -
            Accordion
            -
            -
              -
            • -
              filter_dramaFirst
              -
              Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
              -
            • -
            • -
              placeSecond
              -
              Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
              -
            • -
            • -
              whatshotThird
              -
              Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
              -
            • -
            -
            -
            - This is default behavior, but you can explicitly set it by setting the data-collapsible attribute in HTML. -
            
            -    <ul class="collapsible" data-collapsible="accordion">
            -            
            -
            -
            -
            -
            -
            -
            Expandable
            -
            -
              -
            • -
              filter_dramaFirst
              -
              Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
              -
            • -
            • -
              placeSecond
              -
              Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
              -
            • -
            • -
              whatshotThird
              -
              Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
              -
            • -
            -
            -
            -
            
            -  <ul class="collapsible" data-collapsible="expandable">
            -            
            -
            -
            -
            - -
            - - - - - -
            -
            diff --git a/node_modules/materialize-css/jade/page-contents/collections_content.html b/node_modules/materialize-css/jade/page-contents/collections_content.html deleted file mode 100644 index c0ee638..0000000 --- a/node_modules/materialize-css/jade/page-contents/collections_content.html +++ /dev/null @@ -1,232 +0,0 @@ -
            -
            - -
            - - -
            - -
            -
            -

            Collections allow you to group list objects together.

            -

            Basic

            -
              -
            • Alvin
            • -
            • Alvin
            • -
            • Alvin
            • -
            • Alvin
            • -
            -
            
            -    <ul class="collection">
            -      <li class="collection-item">Alvin</li>
            -      <li class="collection-item">Alvin</li>
            -      <li class="collection-item">Alvin</li>
            -      <li class="collection-item">Alvin</li>
            -    </ul>
            -            
            -
            -
            -
            -
            - - - -
            -
            -
            -

            Headers

            -
              -
            • First Names

            • -
            • Alvin
            • -
            • Alvin
            • -
            • Alvin
            • -
            • Alvin
            • -
            -
            
            -      <ul class="collection with-header">
            -        <li class="collection-header"><h4>First Names</h4></li>
            -        <li class="collection-item">Alvin</li>
            -        <li class="collection-item">Alvin</li>
            -        <li class="collection-item">Alvin</li>
            -        <li class="collection-item">Alvin</li>
            -      </ul>
            -            
            -
            -
            -
            - - -
            -
            -
            -

            Secondary content

            - -
            
            -      <ul class="collection with-header">
            -        <li class="collection-header"><h4>First Names</h4></li>
            -        <li class="collection-item"><div>Alvin<a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
            -        <li class="collection-item"><div>Alvin<a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
            -        <li class="collection-item"><div>Alvin<a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
            -        <li class="collection-item"><div>Alvin<a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
            -      </ul>
            -            
            -
            - -
            -
            - -
            -
            -
            -

            Avatar Content

            -
              -
            • - - Title -

              First Line
              - Second Line -

              - grade -
            • -
            • - folder - Title -

              First Line
              - Second Line -

              - grade -
            • -
            • - insert_chart - Title -

              First Line
              - Second Line -

              - grade -
            • -
            • - play_arrow - Title -

              First Line
              - Second Line -

              - grade -
            • -
            -
            
            -  <ul class="collection">
            -    <li class="collection-item avatar">
            -      <img src="images/yuna.jpg" alt="" class="circle">
            -      <span class="title">Title</span>
            -      <p>First Line <br>
            -         Second Line
            -      </p>
            -      <a href="#!" class="secondary-content"><i class="material-icons">grade</i></a>
            -    </li>
            -    <li class="collection-item avatar">
            -      <i class="material-icons circle">folder</i>
            -      <span class="title">Title</span>
            -      <p>First Line <br>
            -         Second Line
            -      </p>
            -      <a href="#!" class="secondary-content"><i class="material-icons">grade</i></a>
            -    </li>
            -    <li class="collection-item avatar">
            -      <i class="material-icons circle green">insert_chart</i>
            -      <span class="title">Title</span>
            -      <p>First Line <br>
            -         Second Line
            -      </p>
            -      <a href="#!" class="secondary-content"><i class="material-icons">grade</i></a>
            -    </li>
            -    <li class="collection-item avatar">
            -      <i class="material-icons circle red">play_arrow</i>
            -      <span class="title">Title</span>
            -      <p>First Line <br>
            -         Second Line
            -      </p>
            -      <a href="#!" class="secondary-content"><i class="material-icons">grade</i></a>
            -    </li>
            -  </ul>
            -            
            -
            - -
            -
            - -
            -
            -
            -

            Dismissable Content

            -

            You can just add the class dismissable to enable each collection item to be swiped away. This is only for touch enabled devices.

            - -
            
            -      <ul class="collection">
            -        <li class="collection-item dismissable"><div>Alvin<a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
            -        <li class="collection-item dismissable"><div>Alvin<a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
            -        <li class="collection-item dismissable"><div>Alvin<a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
            -        <li class="collection-item dismissable"><div>Alvin<a href="#!" class="secondary-content"><i class="material-icons">send</i></a></div></li>
            -      </ul>
            -            
            -
            - -
            -
            - - - -
            - - - -
            -
            - diff --git a/node_modules/materialize-css/jade/page-contents/color_content.html b/node_modules/materialize-css/jade/page-contents/color_content.html deleted file mode 100644 index b5a7e62..0000000 --- a/node_modules/materialize-css/jade/page-contents/color_content.html +++ /dev/null @@ -1,381 +0,0 @@ -
            -
            - -
            - -
            -

            Usage

            -

            - Here is a color palette based on the material design base colors. Each of these colors is defined with a base color class and an optional lighten or darken class. -

            -
            -
            Background Color
            -
            -

            To apply a background color, just add the color name and light/darkness as a class to the element.

            -
            This is a card panel with a teal lighten-2 class
            -
            
            -    <div class="card-panel teal lighten-2">This is a card panel with a teal lighten-2 class</div>
            -            
            -
            - -
            - -
            Text Color
            -
            -

            To apply a text color, just append -text to the color class like this:

            -
            This is a card panel with dark blue text
            -
            
            -    <div class="card-panel">
            -      <span class="blue-text text-darken-2">This is a card panel with dark blue text</span>
            -    </div>
            -            
            -
            -
            -
            - -
            -

            Sass

            -

            - For background colors, you can apply the color simply by extending the classes like the example below. -

            -
            
            -  .ilike-blue-container {
            -    @extend .blue, .lighten-4;
            -  }
            -        
            - -

            - For changing text color, you can apply the color simply by extending the classes like the example below. -

            -
            
            -  .ilike-blue-container {
            -    @extend .blue-text, .text-lighten-4;
            -  }
            -        
            -
            -
            - -

            Color Palette

            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            -
            -
            - - -
            -
            - -
            -
            -
            - -
            -
            diff --git a/node_modules/materialize-css/jade/page-contents/css-transitions_content.html b/node_modules/materialize-css/jade/page-contents/css-transitions_content.html deleted file mode 100644 index bddb37f..0000000 --- a/node_modules/materialize-css/jade/page-contents/css-transitions_content.html +++ /dev/null @@ -1,47 +0,0 @@ -
            -
            - -
            - -
            -

            We've made some custom animation classes that will transition your content with only CSS. Each CSS transition consists of a base class that applies the necessary styles and additional classes that control the state of the transition.

            - -

            Scale

            -

            Use this scale in and out elements. Make sure to add the base transition class scale-transition. Then add the class scale-out to scale the element down until it is hidden. To start something as hidden, add the class scale-out first, and then add the class scale-in to scale the element up until it is shown.

            - - add - - Toggle Scale - -
            
            -  <!-- Scaled in -->
            -  <a id="scale-demo" href="#!" class="btn-floating btn-large scale-transition">
            -    <i class="material-icons">add</i>
            -  </a>
            -
            -  <!-- Scaled out -->
            -  <a id="scale-demo" href="#!" class="btn-floating btn-large scale-transition scale-out">
            -    <i class="material-icons">add</i>
            -  </a>
            -  
            -
            - -
            - -
            -
            -
            - - -
            -
            - -
            -
            -
            - -
            -
            - diff --git a/node_modules/materialize-css/jade/page-contents/dialogs_content.html b/node_modules/materialize-css/jade/page-contents/dialogs_content.html deleted file mode 100644 index c314d40..0000000 --- a/node_modules/materialize-css/jade/page-contents/dialogs_content.html +++ /dev/null @@ -1,133 +0,0 @@ -
            -
            -
            - -
            -

            Dialogs are content that are not originally visible on a page but show up with extra information if needed. The transitions should make the appearance of the dialog make sense and not jarring to the user.

            -

            Toasts

            -

            Materialize provides an easy way for you to send unobtrusive alerts to your users through toasts. These toasts are also placed and sized responsively, try it out by clicking the button below on different device sizes.

            - Toast! -

            To do this, call the Materialize.toast() function programatically in JavaScript.

            -
            
            -  // Materialize.toast(message, displayLength, className, completeCallback);
            -  Materialize.toast('I am a toast!', 4000) // 4000 is the duration of the toast
            -        
            -

            One way to add this into your application is to add this as an onclick event to a button

            -
            
            -  <a class="btn" onclick="Materialize.toast('I am a toast', 4000)">Toast!</a>
            -        
            - -

            Custom HTML

            -

            You can pass in an HTML String as the first argument as well. Take a look at the example below, where we pass in text as well as a flat button. If you call an external function instead of in-line JavaScript, you will not need to escape quotation marks.

            - Toast with Action -
            
            -  var $toastContent = $('<span>I am toast content</span>');
            -  Materialize.toast($toastContent, 5000);
            -        
            - -

            Callback

            -

            You can have the toast callback a function when it has been dismissed

            - Toast! -
            
            -  <a class="btn" onclick="Materialize.toast('I am a toast', 4000,'',function(){alert('Your toast was dismissed')})">Toast!</a>
            -        
            - -

            Styling Toasts

            -

            We've added the ability to customize your toasts easily. You can pass in classes as an optional parameter into the toast function. We've added a rounded class for you, but you can create your own CSS classes and apply them to toasts. Checkout out our full example below.

            - - Round Toast! - -
            
            -  Materialize.toast('I am a toast!', 3000, 'rounded') // 'rounded' is the class I'm applying to the toast
            -        
            -
            - - - - -
            -

            Tooltips

            - -

            Tooltips are small, interactive, textual hints for mainly graphical elements. When using icons for actions you can use a tooltip to give people clarification on its function.

            - - - -

            Add the Tooltipped class to your element and add either top, bottom, left, right on data-tooltip to control the position.

            -
            
            -  <!-- data-position can be : bottom, top, left, or right -->
            -  <!-- data-delay controls delay before tooltip shows (in milliseconds)-->
            -  <a class="btn tooltipped" data-position="bottom" data-delay="50" data-tooltip="I am tooltip">Hover me!</a>
            -        
            -
            -

            Initialization

            -

            Tooltips are initialized automatically, but if you have dynamically added tooltips, you will need to initialize them.

            -
            
            -  $(document).ready(function(){
            -    $('.tooltipped').tooltip({delay: 50});
            -  });
            -        

            - -

            jQuery Plugin Options

            - - - - - - - - - - - - - - - - - - - - - - - - - - -
            Option NameDescription
            delayDelay time before tooltip appears. (Default: 350)
            tooltipTooltip text. Can use custom HTML if you set the html option.
            positionSet the direction of the tooltip. 'top', 'right', 'bottom', 'left'. (Default: 'bottom')
            htmlAllow custom html inside the tooltip. (Default: false)
            - -
            -

            Removal

            -

            To remove the tooltip from the button, pass in 'remove' as the option to the tooltip function

            -
            
            -  // This will remove the tooltip functionality for the buttons on this page
            -  $('.tooltipped').tooltip('remove');
            -        
            -
            - -
            - - - -
            -
            -
            - - -
            -
            - -
            -
            -
            - -
            -
            diff --git a/node_modules/materialize-css/jade/page-contents/dropdown_content.html b/node_modules/materialize-css/jade/page-contents/dropdown_content.html deleted file mode 100644 index 192f1e8..0000000 --- a/node_modules/materialize-css/jade/page-contents/dropdown_content.html +++ /dev/null @@ -1,138 +0,0 @@ -
            -
            -
            - -
            -

            Introduction

            -

            Add a dropdown list to any button. Make sure that the data-activates attribute matches the id in the <ul> tag.

            -

            You can add a divider with the <li class="divider"></li> tag.

            - Drop Me! - -
            
            -  <!-- Dropdown Trigger -->
            -  <a class='dropdown-button btn' href='#' data-activates='dropdown1'>Drop Me!</a>
            -
            -  <!-- Dropdown Structure -->
            -  <ul id='dropdown1' class='dropdown-content'>
            -    <li><a href="#!">one</a></li>
            -    <li><a href="#!">two</a></li>
            -    <li class="divider"></li>
            -    <li><a href="#!">three</a></li>
            -  </ul>
            -        
            -
            - -
            -

            Options

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            Option NameDescription
            inDurationThe duration of the transition enter in milliseconds. Default: 300
            outDurationThe duration of the transition out in milliseconds. Default: 225
            constrainWidthIf true, constrainWidth to the size of the dropdown activator. Default: true
            hoverIf true, the dropdown will open on hover. Default: false
            gutterThis defines the spacing from the aligned edge. Default: 0
            belowOriginIf true, the dropdown will show below the activator. Default: false
            alignmentDefines the edge the menu is aligned to. Default: 'left'
            stopPropagationIf true, stops the event propagating from the dropdown origin click handler. Default: false
            -

            To use these inline you have to add them as data attributes. If you want more dynamic control, you can define them using the jQuery plugin below.

            -
            
            -  <a class='dropdown-button btn' data-beloworigin="true" href='#' data-activates='dropdown1'>Drop Me!</a>
            -        
            -
            - - - -
            -

            jQuery Plugin Initialization

            -

            Initialization for dropdowns is only necessary if you create them dynamically.

            -
            
            -  $('.dropdown-button').dropdown({
            -      inDuration: 300,
            -      outDuration: 225,
            -      constrainWidth: false, // Does not change width of dropdown to that of the activator
            -      hover: true, // Activate on hover
            -      gutter: 0, // Spacing from edge
            -      belowOrigin: false, // Displays dropdown below the button
            -      alignment: 'left' // Displays dropdown with edge aligned to the left of button
            -      stopPropagation: false // Stops event propagation
            -    }
            -  );
            -        
            - -

            - You can also open dropdowns programatically, the below code will make your modal open on document ready: -

            - -
            
            -  $('.dropdown-button').dropdown('open');
            -        
            - -

            - You can also close dropdowns programatically: -

            - -
            
            -  $('.dropdown-button').dropdown('close');
            -        
            -
            - - -
            - - -
            -
            -
            - - -
            - -
            -
            - -
            -
            diff --git a/node_modules/materialize-css/jade/page-contents/footer_content.html b/node_modules/materialize-css/jade/page-contents/footer_content.html deleted file mode 100644 index 711a0a1..0000000 --- a/node_modules/materialize-css/jade/page-contents/footer_content.html +++ /dev/null @@ -1,108 +0,0 @@ -
            -
            - -
            - - - - - - -
            
            -  body {
            -    display: flex;
            -    min-height: 100vh;
            -    flex-direction: column;
            -  }
            -
            -  main {
            -    flex: 1 0 auto;
            -  }
            -      
            - -
            - -
            -
            -
            - - -
            -
            - -
            -
            -
            - -
            -
            - diff --git a/node_modules/materialize-css/jade/page-contents/forms_content.html b/node_modules/materialize-css/jade/page-contents/forms_content.html deleted file mode 100644 index a7a554b..0000000 --- a/node_modules/materialize-css/jade/page-contents/forms_content.html +++ /dev/null @@ -1,900 +0,0 @@ -
            -
            - -
            - -
            -

            - Forms are the standard way to receive user inputted data. The transitions and smoothness of these elements are very important because of the inherent user interaction associated with forms. -

            - -

            Input fields

            -

            Text fields allow user input. The border should light up simply and clearly indicating which field the user is currently editing. You must have a .input-field div wrapping your input and label. This helps our jQuery animate the label. This is only used in our Input and Textarea form elements.

            -

            The validate class leverages HTML5 validation and will add a valid and invalid class accordingly. If you don't want the Green and Red validation states, just remove the validate class from your inputs.

            -
            -
            -
            -
            -
            - - -
            -
            - - -
            -
            -
            -
            - - -
            -
            -
            -
            - - -
            -
            -
            -
            - - -
            -
            -
            -
            - This is an inline input field: -
            - - -
            -
            -
            -
            -
            -
            
            -  <div class="row">
            -    <form class="col s12">
            -      <div class="row">
            -        <div class="input-field col s6">
            -          <input placeholder="Placeholder" id="first_name" type="text" class="validate">
            -          <label for="first_name">First Name</label>
            -        </div>
            -        <div class="input-field col s6">
            -          <input id="last_name" type="text" class="validate">
            -          <label for="last_name">Last Name</label>
            -        </div>
            -      </div>
            -      <div class="row">
            -        <div class="input-field col s12">
            -          <input disabled value="I am not editable" id="disabled" type="text" class="validate">
            -          <label for="disabled">Disabled</label>
            -        </div>
            -      </div>
            -      <div class="row">
            -        <div class="input-field col s12">
            -          <input id="password" type="password" class="validate">
            -          <label for="password">Password</label>
            -        </div>
            -      </div>
            -      <div class="row">
            -        <div class="input-field col s12">
            -          <input id="email" type="email" class="validate">
            -          <label for="email">Email</label>
            -        </div>
            -      </div>
            -      <div class="row">
            -        <div class="col s12">
            -          This is an inline input field:
            -          <div class="input-field inline">
            -            <input id="email" type="email" class="validate">
            -            <label for="email" data-error="wrong" data-success="right">Email</label>
            -          </div>
            -        </div>
            -      </div>
            -    </form>
            -  </div>
            -        

            -

            Prefilling Text Inputs

            -

            If you are having trouble with the labels overlapping prefilled content, Try adding class="active" to the label.
            You can also call the function Materialize.updateTextFields(); to reinitialize all the Materialize labels on the page if you are dynamically adding inputs.

            -
            -
            - - -
            -
            - -
            
            -  <div class="row">
            -    <div class="input-field col s6">
            -      <input value="Alvin" id="first_name2" type="text" class="validate">
            -      <label class="active" for="first_name2">First Name</label>
            -    </div>
            -  </div>
            -        
            - -
            
            -  $(document).ready(function() {
            -    Materialize.updateTextFields();
            -  });
            -        
            - -

            Icon Prefixes

            -

            You can add an icon prefix to make the form input label even more clear. Just add an icon with the class prefix before the input and label.


            -
            -
            -
            -
            - account_circle - - -
            -
            - phone - - -
            -
            -
            -
            - -
            
            -  <div class="row">
            -    <form class="col s12">
            -      <div class="row">
            -        <div class="input-field col s6">
            -          <i class="material-icons prefix">account_circle</i>
            -          <input id="icon_prefix" type="text" class="validate">
            -          <label for="icon_prefix">First Name</label>
            -        </div>
            -        <div class="input-field col s6">
            -          <i class="material-icons prefix">phone</i>
            -          <input id="icon_telephone" type="tel" class="validate">
            -          <label for="icon_telephone">Telephone</label>
            -        </div>
            -      </div>
            -    </form>
            -  </div>
            -        
            - -

            Custom Error or Success Messages

            -

            You can add custom validation messages by adding either data-error or data-success attributes to your input field labels.


            -
            -
            -
            -
            - - -
            -
            -
            -
            - -
            
            -  <div class="row">
            -    <form class="col s12">
            -      <div class="row">
            -        <div class="input-field col s12">
            -          <input id="email" type="email" class="validate">
            -          <label for="email" data-error="wrong" data-success="right">Email</label>
            -        </div>
            -      </div>
            -    </form>
            -  </div>
            -        
            - - -

            Changing colors

            -

            Here is a CSS template for modifying input fields in CSS. With Sass, you can achieve this by just changing a variable. The CSS shown below is unprefixed. Depending on what you use, you may have to change the type attribute selector.

            -
            
            -  /* label color */
            -   .input-field label {
            -     color: #000;
            -   }
            -   /* label focus color */
            -   .input-field input[type=text]:focus + label {
            -     color: #000;
            -   }
            -   /* label underline focus color */
            -   .input-field input[type=text]:focus {
            -     border-bottom: 1px solid #000;
            -     box-shadow: 0 1px 0 0 #000;
            -   }
            -   /* valid color */
            -   .input-field input[type=text].valid {
            -     border-bottom: 1px solid #000;
            -     box-shadow: 0 1px 0 0 #000;
            -   }
            -   /* invalid color */
            -   .input-field input[type=text].invalid {
            -     border-bottom: 1px solid #000;
            -     box-shadow: 0 1px 0 0 #000;
            -   }
            -   /* icon prefix focus color */
            -   .input-field .prefix.active {
            -     color: #000;
            -   }
            -        
            -
            - - - -
            -

            Textarea

            -

            Textareas allow larger expandable user input. The border should light up simply and clearly indicating which field the user is currently editing. You must have a .input-field div wrapping your input and label. This helps our jQuery animate the label. This is only used in our Input and Textarea form elements.

            -

            Textareas will auto resize to the text inside.

            - - -
            -
            -
            -
            - - -
            -
            -
            -
            -
            
            -  <div class="row">
            -    <form class="col s12">
            -      <div class="row">
            -        <div class="input-field col s12">
            -          <textarea id="textarea1" class="materialize-textarea"></textarea>
            -          <label for="textarea1">Textarea</label>
            -        </div>
            -      </div>
            -    </form>
            -  </div>
            -        
            -

            advanced note: When dynamically changing the value of a textarea with methods like jQuery's .val(), you must trigger an autoresize on it afterwords because .val() does not automatically trigger the events we've binded to the textarea.

            -
            
            -  $('#textarea1').val('New Text');
            -  $('#textarea1').trigger('autoresize');
            -        
            -
            - -

            Icon Prefixes

            -

            You can add an icon prefix to make the form input label even more clear. Just add an icon with the class prefix before the input and label.


            -
            -
            -
            -
            - mode_edit - - -
            -
            -
            -
            - -
            
            -  <div class="row">
            -    <form class="col s12">
            -      <div class="row">
            -        <div class="input-field col s6">
            -          <i class="material-icons prefix">mode_edit</i>
            -          <textarea id="icon_prefix2" class="materialize-textarea"></textarea>
            -          <label for="icon_prefix2">First Name</label>
            -        </div>
            -      </div>
            -    </form>
            -  </div>
            -        
            -
            -
            -

            Select

            -

            Select allows user input through specified options. Make sure you wrap it in a .input-field for proper alignment with other text fields. Remember that this is a jQuery plugin so make sure you initialize this in your document ready.

            -
            -
            -
            -
            - - -
            -
            -
            -

            You can add the property multiple to get the multiple select and select several options.

            -
            -
            - - -
            -
            -
            -

            We also support optgroups in our selects.

            -
            -
            - - -
            -
            -
            -

            You can add icons to your options in any type of select. In the option you add the image source with the data-icon attribute. You can add the left or right class to align your icon. You can also add the circle class to your icon.

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

            You can add the class browser-default to get the browser default.

            -
            -
            - - -
            -
            -
            -
            -
            
            -  <div class="input-field col s12">
            -    <select>
            -      <option value="" disabled selected>Choose your option</option>
            -      <option value="1">Option 1</option>
            -      <option value="2">Option 2</option>
            -      <option value="3">Option 3</option>
            -    </select>
            -    <label>Materialize Select</label>
            -  </div>
            -
            -  <div class="input-field col s12">
            -    <select multiple>
            -      <option value="" disabled selected>Choose your option</option>
            -      <option value="1">Option 1</option>
            -      <option value="2">Option 2</option>
            -      <option value="3">Option 3</option>
            -    </select>
            -    <label>Materialize Multiple Select</label>
            -  </div>
            -
            -  <div class="input-field col s12">
            -    <select multiple>
            -      <optgroup label="team 1">
            -        <option value="1">Option 1</option>
            -        <option value="2">Option 2</option>
            -      </optgroup>
            -      <optgroup label="team 2">
            -        <option value="3">Option 3</option>
            -        <option value="4">Option 4</option>
            -      </optgroup>
            -    </select>
            -    <label>Optgroups</label>
            -  </div>
            -
            -  <div class="input-field col s12 m6">
            -    <select class="icons">
            -      <option value="" disabled selected>Choose your option</option>
            -      <option value="" data-icon="images/sample-1.jpg" class="circle">example 1</option>
            -      <option value="" data-icon="images/office.jpg" class="circle">example 2</option>
            -      <option value="" data-icon="images/yuna.jpg" class="circle">example 1</option>
            -    </select>
            -    <label>Images in select</label>
            -  </div>
            -  <div class="input-field col s12 m6">
            -    <select class="icons">
            -      <option value="" disabled selected>Choose your option</option>
            -      <option value="" data-icon="images/sample-1.jpg" class="left circle">example 1</option>
            -      <option value="" data-icon="images/office.jpg" class="left circle">example 2</option>
            -      <option value="" data-icon="images/yuna.jpg" class="left circle">example 3</option>
            -    </select>
            -    <label>Images in select</label>
            -  </div>
            -
            -  <label>Browser Select</label>
            -  <select class="browser-default">
            -    <option value="" disabled selected>Choose your option</option>
            -    <option value="1">Option 1</option>
            -    <option value="2">Option 2</option>
            -    <option value="3">Option 3</option>
            -  </select>
            -            
            -
            -
            -

            -

            Disabled Styles

            -

            You can also add disabled to the select element to make the whole thing disabled. Or if you add disabled to the options, the individual options will be unselectable.

            -
            -
            -
            -
            - - - - -
            -
            -
            -
            -
            
            -  <label>Materialize Disabled</label>
            -  <select disabled>
            -    <option value="" disabled selected>Choose your option</option>
            -    <option value="1">Option 1</option>
            -    <option value="2">Option 2</option>
            -    <option value="3">Option 3</option>
            -  </select>
            -
            -  <label>Browser Disabled</label>
            -  <select class="browser-default" disabled>
            -    <option value="" disabled selected>Choose your option</option>
            -    <option value="1">Option 1</option>
            -    <option value="2">Option 2</option>
            -    <option value="3">Option 3</option>
            -  </select>
            -            
            -
            -
            - -

            Initialization

            -

            You must initialize the select element as shown below. In addition, you will need a separate call for any dynamically generated select elements your page generates.

            -
            
            -  $(document).ready(function() {
            -    $('select').material_select();
            -  });
            -            
            -
            -
            -

            Updating/Destroying Select

            -

            If you want to update the items inside the select, just rerun the initialization code from above after editing the original select. Or you can destroy the material select with this function below, and create a new select altogether

            -
            
            -  $('select').material_select('destroy');
            -            
            -
            -
            -
            - - -
            -

            Radio Buttons

            -

            Radio Buttons are used when the user must make only one selection out of a group of items

            -
            -

            - - -

            -

            - - -

            -

            - - -

            -

            - - -

            -
            -

            Add radio buttons to a group by adding the name attribute along with the same corresponding value for each of the radio buttons in the group. Create disabled radio buttons by adding the disabled attribute as shown below.

            -
            
            -  <form action="#">
            -    <p>
            -      <input name="group1" type="radio" id="test1" />
            -      <label for="test1">Red</label>
            -    </p>
            -    <p>
            -      <input name="group1" type="radio" id="test2" />
            -      <label for="test2">Yellow</label>
            -    </p>
            -    <p>
            -      <input class="with-gap" name="group1" type="radio" id="test3"  />
            -      <label for="test3">Green</label>
            -    </p>
            -    <p>
            -      <input name="group1" type="radio" id="test4" disabled="disabled" />
            -      <label for="test4">Brown</label>
            -    </p>
            -  </form>
            -        
            -

            Options

            -

            To create a radio button with a gap, add class="with-gap" to your input. See the example below.

            - -

            - - -

            -
            
            -  <p>
            -    <input class="with-gap" name="group3" type="radio" id="test5" checked />
            -    <label for="test5">Red</label>
            -  </p>
            -        
            - -
            - - - -
            -

            Checkboxes

            -

            Use checkboxes when looking for yes or no answers. The for attribute is necessary to bind our custom checkbox with the input. Add the input's id as the value of the for attribute of the label.

            -
            -

            - - -

            -

            - - -

            -

            - - -

            -

            - - -

            -

            - - -

            -

            - - -

            -
            -
            
            -  <form action="#">
            -    <p>
            -      <input type="checkbox" id="test5" />
            -      <label for="test5">Red</label>
            -    </p>
            -    <p>
            -      <input type="checkbox" id="test6" checked="checked" />
            -      <label for="test6">Yellow</label>
            -    </p>
            -    <p>
            -      <input type="checkbox" class="filled-in" id="filled-in-box" checked="checked" />
            -      <label for="filled-in-box">Filled in</label>
            -    </p>
            -    <p>
            -      <input type="checkbox" id="indeterminate-checkbox" />
            -      <label for="indeterminate-checkbox">Indeterminate Style</label>
            -    </p>
            -    <p>
            -      <input type="checkbox" id="test7" checked="checked" disabled="disabled" />
            -      <label for="test7">Green</label>
            -    </p>
            -    <p>
            -      <input type="checkbox" id="test8" disabled="disabled" />
            -      <label for="test8">Brown</label>
            -    </p>
            -  </form>
            -        
            -
            - - -
            -

            Switches

            -
            -

            -

            - -
            -

            - -

            -

            - -
            -

            -
            -
            
            -  <!-- Switch -->
            -  <div class="switch">
            -    <label>
            -      Off
            -      <input type="checkbox">
            -      <span class="lever"></span>
            -      On
            -    </label>
            -  </div>
            -
            -  <!-- Disabled Switch -->
            -  <div class="switch">
            -    <label>
            -      Off
            -      <input disabled type="checkbox">
            -      <span class="lever"></span>
            -      On
            -    </label>
            -  </div>
            -        
            -
            - -
            -

            File Input

            -

            If you want to style an input button with a path input we provide this structure.

            -
            -
            -
            - File - -
            -
            - -
            -
            -
            -
            
            -  <form action="#">
            -    <div class="file-field input-field">
            -      <div class="btn">
            -        <span>File</span>
            -        <input type="file">
            -      </div>
            -      <div class="file-path-wrapper">
            -        <input class="file-path validate" type="text">
            -      </div>
            -    </div>
            -  </form>
            -        
            - -

            You can also use the multiple attribute to allow multiple file uploads.

            -
            -
            -
            - File - -
            -
            - -
            -
            -
            -
            
            -  <form action="#">
            -    <div class="file-field input-field">
            -      <div class="btn">
            -        <span>File</span>
            -        <input type="file" multiple>
            -      </div>
            -      <div class="file-path-wrapper">
            -        <input class="file-path validate" type="text" placeholder="Upload one or more files">
            -      </div>
            -    </div>
            -  </form>
            -        
            -
            - - -
            -

            Range

            -

            Add a range slider for values with a wide range. This one is set to be a number between 0 and 100. We have two different types of sliders. nouiSlider is a 3rd party plugin which we've modified. To use the noUiSlider, you will have to manually link the nouislider.css and nouislider.js files located in the extras folder.

            -

            noUiSlider

            -

            See noUiSlider's official documentation here to see a variety of slider options

            -
            -

             

            -
            
            -  var slider = document.getElementById('test5');
            -  noUiSlider.create(slider, {
            -   start: [20, 80],
            -   connect: true,
            -   step: 1,
            -   range: {
            -     'min': 0,
            -     'max': 100
            -   },
            -   format: wNumb({
            -     decimals: 0
            -   })
            -  });
            -        
            -

            HTML5 Range

            -
            -

            - -

            -
            -
            
            -  <form action="#">
            -    <p class="range-field">
            -      <input type="range" id="test5" min="0" max="100" />
            -    </p>
            -  </form>
            -        
            -
            - -
            -

            Date Picker

            -

            We use a modified version of pickadate.js to create a materialized date picker. Test it out below!

            - - -
            
            -  <input type="date" class="datepicker">
            -        
            - -

            Initialization

            -

            At this time, not all pickadate.js options are working with our implementation

            -
            
            -  $('.datepicker').pickadate({
            -    selectMonths: true, // Creates a dropdown to control month
            -    selectYears: 15 // Creates a dropdown of 15 years to control year
            -  });
            -        
            -
            - - -
            -

            Character Counter

            -

            Use a character counter in fields where a character restriction is in place.

            -
            -
            -
            -
            - - -
            -
            -
            -
            -
            - - -
            -
            -
            -
            -
            
            -    <div class="row">
            -      <form class="col s12">
            -        <div class="row">
            -          <div class="input-field col s6">
            -            <input id="input_text" type="text" data-length="10">
            -            <label for="input_text">Input text</label>
            -          </div>
            -        </div>
            -        <div class="row">
            -          <div class="input-field col s12">
            -            <textarea id="textarea1" class="materialize-textarea" data-length="120"></textarea>
            -            <label for="textarea1">Textarea</label>
            -          </div>
            -        </div>
            -      </form>
            -    </div>
            -          
            -
            -

            Initialization

            -

            There are no options for this plugin, but if you are adding these dynamically, you can use this to initialize them.

            -
            
            -  $(document).ready(function() {
            -    $('input#input_text, textarea#textarea1').characterCounter();
            -  });
            -        
            -
            - -
            -

            Autocomplete

            -

            - Add an autocomplete dropdown below your input to suggest possible values. -

            - -
            -
            -
            -
            - textsms - - -
            -
            -
            -
            - -
            
            -  <div class="row">
            -    <div class="col s12">
            -      <div class="row">
            -        <div class="input-field col s12">
            -          <i class="material-icons prefix">textsms</i>
            -          <input type="text" id="autocomplete-input" class="autocomplete">
            -          <label for="autocomplete-input">Autocomplete</label>
            -        </div>
            -      </div>
            -    </div>
            -  </div>
            -        
            - -

            Initialization

            -

            The data is a json object where the key is the matching string and the value is an optional image url.

            -
            
            -  $('input.autocomplete').autocomplete({
            -    data: {
            -      "Apple": null,
            -      "Microsoft": null,
            -      "Google": 'http://placehold.it/250x250'
            -    },
            -    limit: 20, // The max amount of results that can be shown at once. Default: Infinity.
            -  });
            -        
            -
            - - - -
            - - -
            -
            diff --git a/node_modules/materialize-css/jade/page-contents/fullscreen_slider_demo_content.html b/node_modules/materialize-css/jade/page-contents/fullscreen_slider_demo_content.html deleted file mode 100644 index c63635f..0000000 --- a/node_modules/materialize-css/jade/page-contents/fullscreen_slider_demo_content.html +++ /dev/null @@ -1,31 +0,0 @@ -
            -
              -
            • - -
              -

              This is our big Tagline!

              -
              Here's our small slogan.
              -
              -
            • -
            • - -
              -

              Left Aligned Caption

              -
              Here's our small slogan.
              -
              -
            • -
            • - -
              -

              Right Aligned Caption

              -
              Here's our small slogan.
              -
              -
            • -
            -
            - -
            - close - - -
            \ No newline at end of file diff --git a/node_modules/materialize-css/jade/page-contents/grid_content.html b/node_modules/materialize-css/jade/page-contents/grid_content.html deleted file mode 100644 index bdea5fe..0000000 --- a/node_modules/materialize-css/jade/page-contents/grid_content.html +++ /dev/null @@ -1,479 +0,0 @@ -
            -
            - -
            - - -
            -
            -

            We are using a standard 12 column fluid responsive grid system. The grid helps you layout your page in an ordered, easy fashion.

            -

            Container

            -

            The container class is not strictly part of the grid but is important in laying out content. It allows you to center your page content. The container class is set to ~70% of the window width. It helps you center and contain your page content. We use the container to contain our body content. - -

            Demo

            -

            Try the button below to see what the page looks like without containers

            - Turn off Containers - - -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            - -
            -
            -
            - -

            -

            -

            -

            -
            -
            -
            -
            -
            -
            -
            - - -

            To add a container just put your content inside a <div> tag with a container class. Here's an example of how your page might be set up.

            - -
            
            -    <body>
            -      <div class="container">
            -        <!-- Page Content goes here -->
            -      </div>
            -    </body>
            -          
            - -
            - - - -
            -

            Introduction

            -

            Take a look at this section to quickly understand how the grid works!

            -

            12 Columns

            -

            Our standard grid has 12 columns. No matter the size of the browser, each of these columns will always have an equal width.

            -
            -
            1
            -
            2
            -
            3
            -
            4
            -
            5
            -
            6
            -
            7
            -
            8
            -
            9
            -
            10
            -
            11
            -
            12
            -
            -

            To get a feel of how the grid is used in HTML, take a look at the code below which will produce a similar result to the one above.

            -
            
            -    <div class="row">
            -      <div class="col s1">1</div>
            -      <div class="col s1">2</div>
            -      <div class="col s1">3</div>
            -      <div class="col s1">4</div>
            -      <div class="col s1">5</div>
            -      <div class="col s1">6</div>
            -      <div class="col s1">7</div>
            -      <div class="col s1">8</div>
            -      <div class="col s1">9</div>
            -      <div class="col s1">10</div>
            -      <div class="col s1">11</div>
            -      <div class="col s1">12</div>
            -    </div>
            -          
            -

            Note: For now, just know that the s1 stands for small-1 which in plain English means "1 column on small screens".

            - -
            - -

            Columns live inside Rows

            -

            Remember when you are creating your layout that all columns must be contained inside a row and that you must add the col class to your inner divs to make them into columns

            -
            -
            This div is 12-columns wide on all screen sizes
            -
            6-columns (one-half)
            -
            6-columns (one-half)
            -
            -
            
            -    <div class="row">
            -      <div class="col s12">This div is 12-columns wide</div>
            -      <div class="col s6">This div is 6-columns wide</div>
            -      <div class="col s6">This div is 6-columns wide</div>
            -    </div>
            -          
            - -
            -
            - - -
            -

            Offsets

            -

            To offset, simply add offset-s2 to the class where s signifies the screen class-prefix (s = small, m = medium, l = large) and the number after is the number of columns you want to offset by.

            -
            -
            This div is 12-columns wide on all screen sizes
            -
            6-columns (offset-by-6)
            -
            -
            
            -    <div class="row">
            -      <div class="col s12"><span class="flow-text">This div is 12-columns wide on all screen sizes</span></div>
            -      <div class="col s6 offset-s6"><span class="flow-text">6-columns (offset-by-6)</span></div>
            -    </div>
            -          
            -
            - -
            - - -
            -

            Push and Pull

            -

            You can easily change the order of your columns with push and pull. Simply add push-s2 or pull-s2 to the class where s signifies the screen class-prefix (s = small, m = medium, l = large) and the number after is the number of columns you want to push or pull by.

            -
            -
            This div is 7-columns wide on pushed to the right by 5-columns.
            -
            5-columns wide pulled to the left by 7-columns.
            -
            -
            
            -    <div class="row">
            -      <div class="col s7 push-s5"><span class="flow-text">This div is 7-columns wide on pushed to the right by 5-columns.</span></div>
            -      <div class="col s5 pull-s7"><span class="flow-text">5-columns wide pulled to the left by 7-columns.</span></div>
            -    </div>
            -          
            -
            - -
            - - -
            -

            Creating Layouts

            -

            Here we will show you how to create some commonly used layouts with our grid system. Hopefully these will get you more comfortable with laying out elements. To keep these demos simple, the ones here will not be responsive.

            -
            -
            -

            Section

            -

            The section class is used for simple top and bottom padding. Just add the section class to your div's containing large blocks of content.

            -
            -
            -

            Divider

            -

            Dividers are 1 pixel lines that help break up your content. Just add the divider to a div in between your content.

            -
            -
            - -

            Example Sections and Dividers

            -
            -
            -
            Section 1
            -

            Stuff

            -
            -
            -
            -
            Section 2
            -

            Stuff

            -
            -
            -
            -
            Section 3
            -

            Stuff

            -
            -
            -
            
            -  <div class="divider"></div>
            -  <div class="section">
            -    <h5>Section 1</h5>
            -    <p>Stuff</p>
            -  </div>
            -  <div class="divider"></div>
            -  <div class="section">
            -    <h5>Section 2</h5>
            -    <p>Stuff</p>
            -  </div>
            -  <div class="divider"></div>
            -  <div class="section">
            -    <h5>Section 3</h5>
            -    <p>Stuff</p>
            -  </div>
            -          

            - -

            Example Promotion Table

            -

            If we want 3 divs that are equal size, we define the divs with a width of 4-columns, 4+4+4 = 12, which nicely adds up to 12. Inside those divs, we can put our content. Take our front page content for example. We've modified it slightly for the sake of this example.

            -
            -
            -
            - flash_on -

            Speeds up development

            -

            We did most of the heavy lifting for you to provide a default stylings that incorporate our custom components.

            -
            -
            -
            -
            - group -

            User Experience Focused

            -

            By utilizing elements and principles of Material Design, we were able to create a framework that focuses on User Experience.

            -
            -
            -
            -
            - settings -

            Easy to work with

            -

            We have provided detailed documentation as well as specific code examples to help new users get started.

            -
            -
            -
            - -
            
            -    <div class="row">
            -
            -      <div class="col s4">
            -        <!-- Promo Content 1 goes here -->
            -      </div>
            -      <div class="col s4">
            -        <!-- Promo Content 2 goes here -->
            -      </div>
            -      <div class="col s4">
            -        <!-- Promo Content 3 goes here -->
            -      </div>
            -
            -    </div>
            -          
            - -
            - -

            Example Side Navigation Layout

            -

            You can see how easy it is to create layouts using the grid system. Just remember to make sure your column numbers add up to 12 for an even layout.

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

            -

            -

            -
            -
            -

            -

            -

            -

            -
            -
            -
            -
            -
            -
            - -
            
            -    <!-- Navbar goes here -->
            -
            -    <!-- Page Layout here -->
            -    <div class="row">
            -
            -      <div class="col s3">
            -        <!-- Grey navigation panel -->
            -      </div>
            -
            -      <div class="col s9">
            -        <!-- Teal page content  -->
            -      </div>
            -
            -    </div>
            -          
            -
            - - - -
            -

            Creating Responsive Layouts

            -

            Above we showed you how to layout elements using our grid system. Now we'll show you how to design your layouts so that they look great on all screen sizes.

            -

            Screen Sizes

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            Mobile Devices
            <= 600px
            Tablet Devices
            <= 992px
            Desktop Devices
            > 992px
            Class Prefix.s.m.l
            Container Width85%85%70%
            Number of Columns121212
            - -
            - -

            Adding Responsiveness

            -

            In the previous examples, we only defined the size for small screens using "col s12". This is fine if we want a fixed layout since the rules propagate upwards. By just saying s12, we are essentially saying "col s12 m12 l12". But by explicitly defining the size we can make our website more responsive.

            - -
            -
            I am always full-width (col s12)
            -
            I am full-width on mobile (col s12 m6)
            -
            -
            
            -    <div class="row">
            -      <div class="grid-example col s12"><span class="flow-text">I am always full-width (col s12)</span></div>
            -      <div class="grid-example col s12 m6"><span class="flow-text">I am full-width on mobile (col s12 m6)</span></div>
            -    </div>
            -          
            - -
            - -

            Responsive Side Navigation Layout

            -

            In this example below, we take the same layout from above, but we make it responsive by defining how many columns the div should take up on each screen size. Try resizing your browser and watch the layout change below.

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

            -

            -

            -
            -
            -

            -

            -

            -

            -
            -
            -
            -
            -
            -
            - -
            
            -    <!-- Navbar goes here -->
            -
            -    <!-- Page Layout here -->
            -    <div class="row">
            -
            -      <div class="col s12 m4 l3"> <!-- Note that "m4 l3" was added -->
            -        <!-- Grey navigation panel
            -
            -              This content will be:
            -          3-columns-wide on large screens,
            -          4-columns-wide on medium screens,
            -          12-columns-wide on small screens  -->
            -
            -      </div>
            -
            -      <div class="col s12 m8 l9"> <!-- Note that "m8 l9" was added -->
            -        <!-- Teal page content
            -
            -              This content will be:
            -          9-columns-wide on large screens,
            -          8-columns-wide on medium screens,
            -          12-columns-wide on small screens  -->
            -
            -      </div>
            -
            -    </div>
            -          
            - -

            More Responsive Grid Examples

            -
            -
            s12
            -
            s12 m4 l2
            -
            s12 m4 l8
            -
            s12 m4 l2
            -
            s12 m6 l3
            -
            s12 m6 l3
            -
            s12 m6 l3
            -
            s12 m6 l3
            -
            -
            -
            
            -  <div class="row">
            -    <div class="col s12"><p>s12</p></div>
            -    <div class="col s12 m4 l2"><p>s12 m4</p></div>
            -    <div class="col s12 m4 l8"><p>s12 m4</p></div>
            -    <div class="col s12 m4 l2"><p>s12 m4</p></div>
            -  </div>
            -  <div class="row">
            -    <div class="col s12 m6 l3"><p>s12 m6 l3</p></div>
            -    <div class="col s12 m6 l3"><p>s12 m6 l3</p></div>
            -    <div class="col s12 m6 l3"><p>s12 m6 l3</p></div>
            -    <div class="col s12 m6 l3"><p>s12 m6 l3</p></div>
            -  </div>
            -            
            -
            -
            -
            - - -
            - - - -
            -
            diff --git a/node_modules/materialize-css/jade/page-contents/helpers_content.html b/node_modules/materialize-css/jade/page-contents/helpers_content.html deleted file mode 100644 index aa44f9b..0000000 --- a/node_modules/materialize-css/jade/page-contents/helpers_content.html +++ /dev/null @@ -1,194 +0,0 @@ -
            -
            - -
            - - -
            -

            Alignment

            -

            We have easy to use classes to help you align your content.

            - -
            Vertical Align
            -

            You can easily vertically center things by adding the class valign-wrapper to the container holding the items you want to vertically align.

            -
            -
            This should be vertically aligned
            -
            -
            
            -<div class="valign-wrapper">
            -  <h5 class="valign">This should be vertically aligned</h5>
            -</div>
            -        

            - -
            Text Align
            -

            These classes are for horizontally aligning content. We have .left-align, .right-align and .center-align

            -
            -
            -
            This should be left aligned
            -
            -
            -
            -
            -
            This should be right aligned
            -
            -
            -
            -
            -
            This should be center aligned
            -
            -
            
            -  <div>
            -    <h5 class="left-align">This should be left aligned</h5>
            -  </div>
            -  <div>
            -    <h5 class="right-align">This should be right aligned</h5>
            -  </div>
            -  <div>
            -    <h5 class="center-align">This should be center aligned</h5>
            -  </div>
            -        

            - -
            Quick Floats
            -

            Quickly float things by adding the class left or right to the element. !important is used to avoid specificity issues.

            -
            
            -<div class="left">...</div>
            -<div class="right">...</div>
            -        

            - -
            - - -
            -

            Hiding Content

            -

            We provide easy to use classes to hide content on specific screen sizes.

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            Screen Range
            .hideHidden for all Devices
            .hide-on-small-onlyHidden for Mobile Only
            .hide-on-med-onlyHidden for Tablet Only
            .hide-on-med-and-downHidden for Tablet and Below
            .hide-on-med-and-upHidden for Tablet and Above
            .hide-on-large-onlyHidden for Desktop Only
            -
            -
            Usage
            -
            
            -  <div class="hide-on-small-only"></div>
            -        

            - -
            - - - - -
            -

            Formatting

            -

            These classes help format various content on your site.

            - -
            Truncation
            -

            To truncate long lines of text in an ellipsis, add the class truncate to the tag which contains the text. See an example below of a header being truncated inside a card.

            - -
            -
            -
            -

            This is an extremely long title that will be truncated

            -
            -
            -
            - -
            
            -  <h4 class="truncate">This is an extremely long title that will be truncated</h4>
            -        

            - -
            Hover
            -

            The hoverable is a hover class that adds an animation for box shadow as seen below. It can be used on most elements, but meant for use on cards.

            -
            -
            - - Card Title -
            -
            -

            I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

            -
            - -
            - -
            
            -  <div class="card-panel hoverable"> Hoverable Card Panel</div>
            -        
            - -
            - - -
            -

            Browser Defaults

            -

            Because we override many of the default browser styles and elements, we provide the .browser-default class to revert these elements to their original state.

            - - - - - - - - - - - - - - - - - - -
            Name of ElementReverted Style
            ULBullet points
            SELECTBrowser default select element
            -
            - - -
            - -
            - -
            - -
            -
            diff --git a/node_modules/materialize-css/jade/page-contents/icons_content.html b/node_modules/materialize-css/jade/page-contents/icons_content.html deleted file mode 100644 index 8c3bb0d..0000000 --- a/node_modules/materialize-css/jade/page-contents/icons_content.html +++ /dev/null @@ -1,305 +0,0 @@ -
            -
            -
            - -
            -

            We have included 740 Material Design Icons courtesy of Google. You can download them directly from the Material Design specs.

            -

            Usage

            -

            To be able to use these icons, you must include this line in the <head>portion of your HTML code

            -
            
            -  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
            -

            To use these icons, use the material-icons class on an element and provide the ligature as the text content.

            -
            
            -      <i class="material-icons">add</i>
            -            
            - -

            Sizes

            -

            To control the size of the icon, change the font-size: 30px property of your icon. Optionally you can use preset classes as shown below.

            -
            -
            -
            insert_chart

            Tiny

            -
            insert_chart

            Small

            -
            insert_chart

            Medium

            -
            insert_chart

            Large

            -
            -
            -
            
            -      <!--
            -      Sizes:
            -      tiny: 1rem
            -      small: 2rem
            -      medium: 4rem
            -      large: 6rem
            -      -->
            -      <i class="large material-icons">insert_chart</i>
            -            
            - - -
            -

            -
            info_outlineinfo_outline
            -
            inputinput
            -
            invert_colorsinvert_colors
            -
            labellabel
            -
            label_outlinelabel_outline
            -
            languagelanguage
            -
            query_builderquery_builder
            -
            perm_identityperm_identity
            -
            perm_mediaperm_media
            -
            perm_phone_msgperm_phone_msg
            -
            perm_scan_wifiperm_scan_wifi
            -
            picture_in_picturepicture_in_picture
            -
            play_for_workplay_for_work
            -
            polymerpolymer
            -
            power_settings_newpower_settings_new
            -
            printprint
            -
            thumb_downthumb_down
            -
            thumb_upthumb_up
            -
            thumbs_up_downthumbs_up_down
            -
            emailemail
            -
            dialpaddialpad
            -
            dialer_sipdialer_sip
            -
            contactscontacts
            -
            forward_5forward_5
            -
            stay_current_portraitstay_current_portrait
            -
            stay_primary_landscapestay_primary_landscape
            -
            stay_primary_portraitstay_primary_portrait
            -
            swap_callsswap_calls
            -
            textsmstextsms
            -
            voicemailvoicemail
            -
            vpn_keyvpn_key
            -
            group_workgroup_work
            -
            gradegrade
            -
            clear_allclear_all
            -
            chat_bubble_outlinechat_bubble_outline
            -
            chat_bubblechat_bubble
            -
            repeatrepeat
            -
            repeat_onerepeat_one
            -
            replayreplay
            -
            replay_10replay_10
            -
            replay_30replay_30
            -
            replay_5replay_5
            -
            shuffleshuffle
            -
            skip_nextskip_next
            -
            skip_previousskip_previous
            -
            contact_phonecontact_phone
            -
            commentcomment
            -
            recent_actorsrecent_actors
            -
            snoozesnooze
            -
            sort_by_alphasort_by_alpha
            -
            stopstop
            -
            subtitlessubtitles
            -
            surround_soundsurround_sound
            -
            webweb
            -
            volume_upvolume_up
            -
            volume_offvolume_off
            -
            volume_mutevolume_mute
            -
            toctoc
            -
            todaytoday
            -
            tolltoll
            -
            track_changestrack_changes
            -
            translatetranslate
            -
            trending_downtrending_down
            -
            question_answerquestion_answer
            -
            receiptreceipt
            -
            donedone
            -
            tabtab
            -
            tab_unselectedtab_unselected
            -
            theaterstheaters
            -
            hdhd
            -
            gamesgames
            -
            hearinghearing
            -
            view_moduleview_module
            -
            view_listview_list
            -
            settings_remotesettings_remote
            -
            settings_voicesettings_voice
            -
            searchsearch
            -
            settingssettings
            -
            settings_applicationssettings_applications
            -
            settings_backup_restoresettings_backup_restore
            -
            settings_bluetoothsettings_bluetooth
            -
            settings_brightnesssettings_brightness
            -
            settings_cellsettings_cell
            -
            settings_ethernetsettings_ethernet
            -
            settings_input_antennasettings_input_antenna
            -
            trending_flattrending_flat
            -
            trending_uptrending_up
            -
            workwork
            -
            youtube_searched_foryoutube_searched_for
            -
            zoom_inzoom_in
            -
            my_locationmy_location
            -
            visibility_offvisibility_off
            -
            visibilityvisibility
            -
            view_weekview_week
            -
            view_streamview_stream
            -
            view_quiltview_quilt
            -
            video_libraryvideo_library
            -
            videocamvideocam
            -
            videocam_offvideocam_off
            -
            volume_downvolume_down
            -
            settings_overscansettings_overscan
            -
            settings_input_svideosettings_input_svideo
            -
            settings_input_hdmisettings_input_hdmi
            -
            settings_input_compositesettings_input_composite
            -
            settings_input_componentsettings_input_component
            -
            launchlaunch
            -
            perm_device_informationperm_device_information
            -
            perm_data_settingperm_data_setting
            -
            zoom_outzoom_out
            -
            alarm_onalarm_on
            -
            dnsdns
            -
            redeemredeem
            -
            reorderreorder
            -
            report_problemreport_problem
            -
            restorerestore
            -
            roomroom
            -
            scheduleschedule
            -
            moviemovie
            -
            androidandroid
            -
            announcementannouncement
            -
            mic_offmic_off
            -
            mic_nonemic_none
            -
            swap_horizswap_horiz
            -
            swap_vertswap_vert
            -
            swap_vertical_circleswap_vertical_circle
            -
            system_update_altsystem_update_alt
            -
            present_to_allpresent_to_all
            -
            portable_wifi_offportable_wifi_off
            -
            phonelink_setupphonelink_setup
            -
            phonelink_ringphonelink_ring
            -
            phonelink_lockphonelink_lock
            -
            phonelink_erasephonelink_erase
            -
            person_pinperson_pin
            -
            navigationnavigation
            -
            new_releasesnew_releases
            -
            not_interestednot_interested
            -
            pausepause
            -
            pause_circle_filledpause_circle_filled
            -
            pause_circle_outlinepause_circle_outline
            -
            play_arrowplay_arrow
            -
            play_circle_filledplay_circle_filled
            -
            play_circle_outlineplay_circle_outline
            -
            playlist_addplaylist_add
            -
            queuequeue
            -
            queue_musicqueue_music
            -
            radioradio
            -
            classclass
            -
            codecode
            -
            credit_cardcredit_card
            -
            dashboarddashboard
            -
            deletedelete
            -
            descriptiondescription
            -
            open_withopen_with
            -
            pageviewpageview
            -
            paymentpayment
            -
            perm_camera_micperm_camera_mic
            -
            perm_contact_calendarperm_contact_calendar
            -
            airplayairplay
            -
            done_alldone_all
            -
            phonephone
            -
            no_simno_sim
            -
            invert_colors_offinvert_colors_off
            -
            chatchat
            -
            call_splitcall_split
            -
            call_receivedcall_received
            -
            call_missedcall_missed
            -
            call_mergecall_merge
            -
            call_madecall_made
            -
            call_endcall_end
            -
            callcall
            -
            businessbusiness
            -
            alarm_offalarm_off
            -
            messagemessage
            -
            location_onlocation_on
            -
            location_offlocation_off
            -
            live_helplive_help
            -
            albumalbum
            -
            av_timerav_timer
            -
            closed_captionclosed_caption
            -
            equalizerequalizer
            -
            turned_in_notturned_in_not
            -
            verified_userverified_user
            -
            view_agendaview_agenda
            -
            view_arrayview_array
            -
            view_carouselview_carousel
            -
            view_columnview_column
            -
            subjectsubject
            -
            supervisor_accountsupervisor_account
            -
            settings_powersettings_power
            -
            shopshop
            -
            shop_twoshop_two
            -
            shopping_basketshopping_basket
            -
            shopping_cartshopping_cart
            -
            speaker_notesspeaker_notes
            -
            spellcheckspellcheck
            -
            starstar
            -
            starsstars
            -
            storestore
            -
            ring_volumering_volume
            -
            speaker_phonespeaker_phone
            -
            stay_current_landscapestay_current_landscape
            -
            forumforum
            -
            import_exportimport_export
            -
            open_in_browseropen_in_browser
            -
            open_in_newopen_in_new
            -
            forward_30forward_30
            -
            turned_inturned_in
            -
            view_headlineview_headline
            -
            view_dayview_day
            -
            warningwarning
            -
            error_outlineerror_outline
            -
            errorerror
            -
            add_alertadd_alert
            -
            settings_phonesettings_phone
            -
            forward_10forward_10
            -
            fast_rewindfast_rewind
            -
            fast_forwardfast_forward
            -
            explicitexplicit
            -
            listlist
            -
            locklock
            -
            lock_openlock_open
            -
            lock_outlinelock_outline
            -
            loyaltyloyalty
            -
            markunread_mailboxmarkunread_mailbox
            -
            note_addnote_add
            -
            offline_pinoffline_pin
            -
            httphttp
            -
            micmic
            -
            looploop
            -
            library_musiclibrary_music
            -
            library_bookslibrary_books
            -
            library_addlibrary_add
            -
            high_qualityhigh_quality
            -
            infoinfo
            -
            httpshttps
            -
            aspect_ratioaspect_ratio
            -
            assessmentassessment
            -
            assignmentassignment
            -
            assignment_indassignment_ind
            -
            assignment_lateassignment_late
            -
            mode_editmode_edit
            - - -
            -
            - -
            - - -
            -
            -
            - - -
            - -
            -
            - -
            -
            diff --git a/node_modules/materialize-css/jade/page-contents/media-css_content.html b/node_modules/materialize-css/jade/page-contents/media-css_content.html deleted file mode 100644 index 806c106..0000000 --- a/node_modules/materialize-css/jade/page-contents/media-css_content.html +++ /dev/null @@ -1,103 +0,0 @@ -
            -
            - -
            - - -
            -

            Images

            -

            Images can be styled in different ways using Materialize

            - -

            Responsive Images

            -

            To make images resize responsively to page width, you can add the class responsive-img to your image tag. It will now have a max-width: 100% and height:auto.

            -
            
            -    <img class="responsive-img" src="cool_pic.jpg">
            -        
            -

            Circular images

            -
            -
            -
            -
            - -
            -
            - - This is a square image. Add the "circle" class to it to make it appear circular. - -
            -
            -
            -
            - -
            -
            -

            To make images appear circular, simply add class="circle" to them

            -
            
            -      <div class="col s12 m8 offset-m2 l6 offset-l3">
            -        <div class="card-panel grey lighten-5 z-depth-1">
            -          <div class="row valign-wrapper">
            -            <div class="col s2">
            -              <img src="images/yuna.jpg" alt="" class="circle responsive-img"> <!-- notice the "circle" class -->
            -            </div>
            -            <div class="col s10">
            -              <span class="black-text">
            -                This is a square image. Add the "circle" class to it to make it appear circular.
            -              </span>
            -            </div>
            -          </div>
            -        </div>
            -      </div>
            -            
            -
            -
            -
            - - -
            -

            Videos

            -

            We provide a container for Embedded Videos that resizes them responsively.

            -

            Responsive Embeds

            -

            To make your embeds responsive, merely wrap them with a containing div which has the class video-container

            -
            - -
            -
            
            -      <div class="video-container">
            -        <iframe width="853" height="480" src="//www.youtube.com/embed/Q8TXgCzxEnw?rel=0" frameborder="0" allowfullscreen></iframe>
            -      </div>
            -        
            -

            Responsive Videos

            -

            To make your HTML5 Videos responsive just add the class responsive-video to the video tag.

            - - -
            
            -  <video class="responsive-video" controls>
            -    <source src="movie.mp4" type="video/mp4">
            -  </video>
            -        
            - -
            - - -
            - -
            -
            -
            - - -
            -
            - -
            -
            -
            - -
            -
            - diff --git a/node_modules/materialize-css/jade/page-contents/media_content.html b/node_modules/materialize-css/jade/page-contents/media_content.html deleted file mode 100644 index 307f1bb..0000000 --- a/node_modules/materialize-css/jade/page-contents/media_content.html +++ /dev/null @@ -1,188 +0,0 @@ -
            -
            -
            -

            Media components include things that have to do with large media objects like Images, Video, Audio, etc.

            - -
            -

            Material Box

            -

            Material box is a material design implementation of the Lightbox plugin. When a user clicks on an image that can be enlarged. Material box centers the image and enlarges it in a smooth, non-jarring manner. To dismiss the image, the user can either click on the image again, scroll away, or press the ESC key.

            - - -

            Creating the above image with the effect is as simple as adding a materialboxed class to the image tag.

            -
            
            -    <img class="materialboxed" width="650" src="images/sample-1.jpg">
            -      
            - - -

            Initialization

            -

            Materialbox is intialized automatically. However, if you add images dynamically, you will have to add this initialization code.

            -
            
            -  $(document).ready(function(){
            -    $('.materialboxed').materialbox();
            -  });
            -        
            - -

            Captions

            -

            It is very easy to add a short caption to your photo. Just add the caption as a data-caption attribute.

            - -
            
            -  <img class="materialboxed" data-caption="A picture of some deer and tons of trees" width="250" src="http://th01.deviantart.net/fs70/PRE/i/2013/126/1/e/nature_portrait_by_pw_fotografie-d63tx0n.jpg">
            -          
            -
            - -
            - - - -
            -

            Slider

            -

            Our slider is a simple and elegant image carousel. You can also have captions that will be transitioned on their own depending on their alignment. You can also have indicators that show up on the bottom of the slider.

            -

            Note: This is also Hammer.js compatible! Try swiping with your finger to scroll through the slider.


            - -
            -
              -
            • - -
              -

              This is our big Tagline!

              -
              Here's our small slogan.
              -
              -
            • -
            • - -
              -

              Left Aligned Caption

              -
              Here's our small slogan.
              -
              -
            • -
            • - -
              -

              Right Aligned Caption

              -
              Here's our small slogan.
              -
              -
            • -
            • - -
              -

              This is our big Tagline!

              -
              Here's our small slogan.
              -
              -
            • -
            -

            - -
            
            -  <div class="slider">
            -    <ul class="slides">
            -      <li>
            -        <img src="http://lorempixel.com/580/250/nature/1"> <!-- random image -->
            -        <div class="caption center-align">
            -          <h3>This is our big Tagline!</h3>
            -          <h5 class="light grey-text text-lighten-3">Here's our small slogan.</h5>
            -        </div>
            -      </li>
            -      <li>
            -        <img src="http://lorempixel.com/580/250/nature/2"> <!-- random image -->
            -        <div class="caption left-align">
            -          <h3>Left Aligned Caption</h3>
            -          <h5 class="light grey-text text-lighten-3">Here's our small slogan.</h5>
            -        </div>
            -      </li>
            -      <li>
            -        <img src="http://lorempixel.com/580/250/nature/3"> <!-- random image -->
            -        <div class="caption right-align">
            -          <h3>Right Aligned Caption</h3>
            -          <h5 class="light grey-text text-lighten-3">Here's our small slogan.</h5>
            -        </div>
            -      </li>
            -      <li>
            -        <img src="http://lorempixel.com/580/250/nature/4"> <!-- random image -->
            -        <div class="caption center-align">
            -          <h3>This is our big Tagline!</h3>
            -          <h5 class="light grey-text text-lighten-3">Here's our small slogan.</h5>
            -        </div>
            -      </li>
            -    </ul>
            -  </div>
            -      
            - -
            -

            Fullscreen Slider

            -

            You can easliy make this slider a fullscreen slider by adding the class fullscreen to the slider div. Here's a quick demo.

            - Open Demo - -
            -

            jQuery Initialization

            -
            
            -    $(document).ready(function(){
            -      $('.slider').slider();
            -    });
            -        
            -
            - -

            jQuery Plugin Options

            - - - - - - - - - - - - - - - - - - - - - - - - - - -
            Option NameDescription
            indicatorsSet to false to hide slide indicators. (Default: True)
            heightSet height of slider. (Default: 400)
            transitionSet the duration of the transition animation in ms. (Default: 500)
            intervalSet the duration between transitions in ms. (Default: 6000)
            -
            - -

            jQuery Plugin Methods

            -

            We have methods to pause, start, move to next and move to previous slide.

            -
            
            -// Pause slider
            -$('.slider').slider('pause');
            -// Start slider
            -$('.slider').slider('start');
            -// Next slide
            -$('.slider').slider('next');
            -// Previous slide
            -$('.slider').slider('prev');
            -      
            -
            - -
            - - - -
            -
            -
            - - -
            -
            - -
            -
            -
            - -
            -
            diff --git a/node_modules/materialize-css/jade/page-contents/modals_content.html b/node_modules/materialize-css/jade/page-contents/modals_content.html deleted file mode 100644 index 9a8f0a9..0000000 --- a/node_modules/materialize-css/jade/page-contents/modals_content.html +++ /dev/null @@ -1,213 +0,0 @@ -
            -
            -
            - -
            -

            Introduction

            -

            Use a modal for dialog boxes, confirmation messages, or other content that can be called up. In order for the modal to work you have to add the Modal ID to the link of the trigger. To add a close button, just add the class .modal-close to your button.

            - Modal    Modal With Fixed Footer    Modal Bottom Sheet Style - - - -
            - - - -
            -

            Modals HTML Structure

            -
            
            -  <!-- Modal Trigger -->
            -  <a class="waves-effect waves-light btn" href="#modal1">Modal</a>
            -
            -  <!-- Modal Structure -->
            -  <div id="modal1" class="modal">
            -    <div class="modal-content">
            -      <h4>Modal Header</h4>
            -      <p>A bunch of text</p>
            -    </div>
            -    <div class="modal-footer">
            -      <a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">Agree</a>
            -    </div>
            -  </div>
            -          
            -
            - - - - -
            -

            Bottom Sheet Modals

            -

            Bottom Sheet Modals are good for displaying actions to the user on the bottom of a screen. They still act the same as regular modals.

            -
            
            -  <!-- Modal Trigger -->
            -  <a class="waves-effect waves-light btn" href="#modal1">Modal</a>
            -
            -  <!-- Modal Structure -->
            -  <div id="modal1" class="modal bottom-sheet">
            -    <div class="modal-content">
            -      <h4>Modal Header</h4>
            -      <p>A bunch of text</p>
            -    </div>
            -    <div class="modal-footer">
            -      <a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">Agree</a>
            -    </div>
            -  </div>
            -          
            -
            - -
            -

            Modals with Button trigger

            -

            If you prefer to use a button to open a modal specify the Modal ID in data-target rather than the href attribute.

            - -
            
            -  <!-- Modal Trigger -->
            -  <button data-target="modal1" class="btn">Modal</button>
            -          
            -
            - - - -
            -

            jQuery Plugin Initialization

            -

            To open a modal using a trigger:

            -
            
            -  $(document).ready(function(){
            -    // the "href" attribute of .modal-trigger must specify the modal ID that wants to be triggered
            -    $('.modal').modal();
            -  });
            -          
            -

            You can also open modals programatically, the below code will make your modal open on document ready:

            -
            
            -  $('#modal1').modal('open');
            -          
            -

            You can also close them programatically:

            -
            
            -  $('#modal1').modal('close');
            -        
            -
            - - - -
            -

            Options

            -

            You can customize the behavior of each modal using these options. For example, you can call a custom function to run when a modal is dismissed. To do this, just place your function in the intialization code as shown below.

            -
            
            -  $('.modal').modal({
            -      dismissible: true, // Modal can be dismissed by clicking outside of the modal
            -      opacity: .5, // Opacity of modal background
            -      inDuration: 300, // Transition in duration
            -      outDuration: 200, // Transition out duration
            -      startingTop: '4%', // Starting top style attribute
            -      endingTop: '10%', // Ending top style attribute
            -      ready: function(modal, trigger) { // Callback for Modal open. Modal and trigger parameters available.
            -        alert("Ready");
            -        console.log(modal, trigger);
            -      },
            -      complete: function() { alert('Closed'); } // Callback for Modal close
            -    }
            -  );
            -      
            -
            - -
            - - - - -
            -
            diff --git a/node_modules/materialize-css/jade/page-contents/navbar_content.html b/node_modules/materialize-css/jade/page-contents/navbar_content.html deleted file mode 100644 index ad08fb1..0000000 --- a/node_modules/materialize-css/jade/page-contents/navbar_content.html +++ /dev/null @@ -1,520 +0,0 @@ -
            -
            - -
            - - - -
            -

            Left Aligned Links

            -

            To left align your navbar links, just add a left class to your <ul> that contains them.

            -
            -
            
            -  <nav>
            -    <div class="nav-wrapper">
            -      <a href="#" class="brand-logo right">Logo</a>
            -      <ul id="nav-mobile" class="left hide-on-med-and-down">
            -        <li><a href="sass.html">Sass</a></li>
            -        <li><a href="badges.html">Components</a></li>
            -        <li><a href="collapsible.html">JavaScript</a></li>
            -      </ul>
            -    </div>
            -  </nav>
            -        
            -
            - -
            -

            Centering the logo

            -

            The logo will center itself on medium and down screens, but if you want the logo to always be centered, add the center class to your <a class="brand-logo">. You will have to make sure yourself that links do not overlap if you use this.

            -
            -
            
            -  <nav>
            -    <div class="nav-wrapper">
            -      <a href="#" class="brand-logo center">Logo</a>
            -      <ul id="nav-mobile" class="left hide-on-med-and-down">
            -        <li><a href="sass.html">Sass</a></li>
            -        <li><a href="badges.html">Components</a></li>
            -        <li><a href="collapsible.html">JavaScript</a></li>
            -      </ul>
            -    </div>
            -  </nav>
            -        
            -
            - -
            - -

            Active Items

            -

            - Add active class to your li tags to denote the current page. -

            - -
            - -
            
            -  <nav>
            -    <div class="nav-wrapper">
            -      <a href="#!" class="brand-logo center">Logo</a>
            -      <ul class="left hide-on-med-and-down">
            -        <li><a href="sass.html">Sass</a></li>
            -        <li><a href="badges.html">Components</a></li>
            -        <li class="active"><a href="collapsible.html">JavaScript</a></li>
            -      </ul>
            -    </div>
            -  </nav>
            -        
            -
            - - - - - - - -
            -

            Icon Links

            - - - -
            - -

            You can add icons into links. For icon only links you don't need any additional class. Just pop the i tag in and it will work.

            -
            
            -  <nav>
            -    <div class="nav-wrapper">
            -      <a href="#!" class="brand-logo"><i class="material-icons">cloud</i>Logo</a>
            -      <ul class="right hide-on-med-and-down">
            -        <li><a href="sass.html"><i class="material-icons">search</i></a></li>
            -        <li><a href="badges.html"><i class="material-icons">view_module</i></a></li>
            -        <li><a href="collapsible.html"><i class="material-icons">refresh</i></a></li>
            -        <li><a href="mobile.html"><i class="material-icons">more_vert</i></a></li>
            -      </ul>
            -    </div>
            -  </nav>
            -
            - - - -
            - -

            For adding an icon to a text link you need to add either a left or right class to the icon depending on where you want the icon to be.

            -
            
            -  <nav>
            -    <div class="nav-wrapper">
            -      <a href="#!" class="brand-logo">Logo</a>
            -      <ul class="right hide-on-med-and-down">
            -        <li><a href="sass.html"><i class="material-icons left">search</i>Link with Left Icon</a></li>
            -        <li><a href="badges.html"><i class="material-icons right">view_module</i>Link with Right Icon</a></li>
            -      </ul>
            -    </div>
            -  </nav>
            -
            -
            - -
            -

            Buttons

            - - - -
            - -

            You can add buttons into links. For buttons you don't need any additional class. Just pop the .btn class on the a tag.

            -
            
            -  <nav>
            -    <div class="nav-wrapper">
            -      <a href="#!" class="brand-logo">Logo</a>
            -      <ul class="right hide-on-med-and-down">
            -        <li><a class="waves-effect waves-light btn">Button</a></li>
            -        <li><a class="waves-effect waves-light btn">Button <i class="material-icons right">cloud</i></a></li>
            -        <li><a class="waves-effect waves-light btn-large">Large Button</a></li>
            -      </ul>
            -    </div>
            -  </nav>
            -
            - -
            Halfway FAB in Extended Navbar
            -

            Add a halfway FAB to your extended navbar.

            - - -

            -
            
            -  <nav class="nav-extended">
            -    <div class="nav-wrapper">
            -      <a href="#!" class="brand-logo">Logo</a>
            -      <ul class="right hide-on-med-and-down">
            -        <li><a>A link</a></li>
            -        <li><a>A second link</a></li>
            -        <li><a>A third link</a></li>
            -      </ul>
            -    </div>
            -    <div class="nav-content">
            -      <span class="nav-title">Title</span>
            -      <a class="btn-floating btn-large halfway-fab waves-effect waves-light teal">
            -        <i class="material-icons">add</i>
            -      </a>
            -    </div>
            -  </nav>
            -
            -
            - -
            -

            Search Bar

            - - - -
            - -

            You can add a search form in the navbar.

            -
            
            -  <nav>
            -    <div class="nav-wrapper">
            -      <form>
            -        <div class="input-field">
            -          <input id="search" type="search" required>
            -          <label class="label-icon" for="search"><i class="material-icons">search</i></label>
            -          <i class="material-icons">close</i>
            -        </div>
            -      </form>
            -    </div>
            -  </nav>
            -
            - -
            - -
            -

            Mobile Collapse Button

            - - - -
            - -

            When your nav bar is resized, you will see that the links on the right turn into a hamburger icon menu. Take a look at the example below to get this functionality. Add the entire button-collapse line to your nav.

            -
            
            -  <nav>
            -    <div class="nav-wrapper">
            -      <a href="#!" class="brand-logo">Logo</a>
            -      <a href="#" data-activates="mobile-demo" class="button-collapse"><i class="material-icons">menu</i></a>
            -      <ul class="right hide-on-med-and-down">
            -        <li><a href="sass.html">Sass</a></li>
            -        <li><a href="badges.html">Components</a></li>
            -        <li><a href="collapsible.html">Javascript</a></li>
            -        <li><a href="mobile.html">Mobile</a></li>
            -      </ul>
            -      <ul class="side-nav" id="mobile-demo">
            -        <li><a href="sass.html">Sass</a></li>
            -        <li><a href="badges.html">Components</a></li>
            -        <li><a href="collapsible.html">Javascript</a></li>
            -        <li><a href="mobile.html">Mobile</a></li>
            -      </ul>
            -    </div>
            -  </nav>
            -          
            - -
            -

            Initialization

            -

            After including the button-collapse line into your navbar, all you have to do now is place this code in your page's $( document ).ready(function(){}) code. This example below assumes you have not modified the classes in the above example. In the case that you have, just change the jQuery selector in the line below to match it.

            -
            
            -    $(".button-collapse").sideNav();
            -        
            -
            - -
            - - - -
            -
            diff --git a/node_modules/materialize-css/jade/page-contents/pagination_content.html b/node_modules/materialize-css/jade/page-contents/pagination_content.html deleted file mode 100644 index 088eac6..0000000 --- a/node_modules/materialize-css/jade/page-contents/pagination_content.html +++ /dev/null @@ -1,63 +0,0 @@ -
            -
            - -
            - - -
            - -
            -
            -

            Add pagination links to help split up your long content into shorter, easier to understand blocks.

            -

            Basic

            - -

            -
            
            -  <ul class="pagination">
            -    <li class="disabled"><a href="#!"><i class="material-icons">chevron_left</i></a></li>
            -    <li class="active"><a href="#!">1</a></li>
            -    <li class="waves-effect"><a href="#!">2</a></li>
            -    <li class="waves-effect"><a href="#!">3</a></li>
            -    <li class="waves-effect"><a href="#!">4</a></li>
            -    <li class="waves-effect"><a href="#!">5</a></li>
            -    <li class="waves-effect"><a href="#!"><i class="material-icons">chevron_right</i></a></li>
            -  </ul>
            -            
            -
            -
            -
            -
            - - - -
            - -
            -
            -
            - - -
            -
            - -
            -
            -
            - -
            -
            - diff --git a/node_modules/materialize-css/jade/page-contents/parallax_content.html b/node_modules/materialize-css/jade/page-contents/parallax_content.html deleted file mode 100644 index 89b783c..0000000 --- a/node_modules/materialize-css/jade/page-contents/parallax_content.html +++ /dev/null @@ -1,70 +0,0 @@ -
            -
            - -
            - - -
            -

            Introduction

            -

            Parallax is an effect where the background content or image in this case, is moved at a different speed than the foreground content while scrolling. Check out the demo to get a better idea of it.

            - Open Demo -
            - - - -
            -

            Parallax HTML Structure

            -
            
            -    <div class="parallax-container">
            -      <div class="parallax"><img src="images/parallax1.jpg"></div>
            -    </div>
            -        
            -
            - - - -
            -

            Initialization

            -
            
            -    $(document).ready(function(){
            -      $('.parallax').parallax();
            -    });
            -        
            -
            - - - -
            -

            Parallax Customization

            -

            The parallax container height is what defines how much of the image can be seen. This is set to a default of 500px. You can add your own style to override this.

            -
            
            -    .parallax-container {
            -      height: "your height here";
            -    }
            -        
            -
            - -
            - - - -
            - -
            - -
            -
            - diff --git a/node_modules/materialize-css/jade/page-contents/parallax_demo_content.html b/node_modules/materialize-css/jade/page-contents/parallax_demo_content.html deleted file mode 100644 index 967ce21..0000000 --- a/node_modules/materialize-css/jade/page-contents/parallax_demo_content.html +++ /dev/null @@ -1,51 +0,0 @@ -
            - -
            - -
            - -
            -
            -
            -
            -
            -

            Parallax

            -

            Parallax is an effect where the background content or image in this case, is moved at a different speed than the foreground content while scrolling.

            -
            -
            -

            Parallax Demo HTML

            -
            
            -  <div class="parallax-container">
            -    <div class="parallax"><img src="images/parallax1.jpg"></div>
            -  </div>
            -  <div class="section white">
            -    <div class="row container">
            -      <h2 class="header">Parallax</h2>
            -      <p class="grey-text text-darken-3 lighten-3">Parallax is an effect where the background content or image in this case, is moved at a different speed than the foreground content while scrolling.</p>
            -    </div>
            -  </div>
            -  <div class="parallax-container">
            -    <div class="parallax"><img src="images/parallax2.jpg"></div>
            -  </div>
            -      
            -
            -
            -
            -
            -
            - -
            - close - - -
            \ No newline at end of file diff --git a/node_modules/materialize-css/jade/page-contents/preloader_content.html b/node_modules/materialize-css/jade/page-contents/preloader_content.html deleted file mode 100644 index 5b19388..0000000 --- a/node_modules/materialize-css/jade/page-contents/preloader_content.html +++ /dev/null @@ -1,333 +0,0 @@ -
            -
            - -
            -

            If you have content that will take a long time to load, you should give the user feedback. For this reason we provide a number activity + progress indicators.

            -
            -

            Linear

            -

            There are a couple different types of linear progress bars.

            -

            Determinate

            -
            -
            -
            -
            -
            -
            -
            -
            
            -  <div class="progress">
            -      <div class="determinate" style="width: 70%"></div>
            -  </div>
            -        
            - -

            Indeterminate

            -
            -
            -
            -
            -
            -
            -
            -
            
            -  <div class="progress">
            -      <div class="indeterminate"></div>
            -  </div>
            -        
            - -
            - - -
            -

            Circular

            -

            There are 4 colors and 3 sizes of circular spinners. The spinner should be nested in a preloader-wrapper div. The default size is medium, but you can add the classes big or small to adjust the size accordingly. You can add the classes spinner-red-only, spinner-blue-only, spinner-yellow-only and spinner-green-only. You can also leave this class as just spinner-layer and it will be set to the $spinner-default-color variable in our variables.scss file.

            -

            Colors

            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            - -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            -
            - -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            -
            -
            
            -  <div class="preloader-wrapper big active">
            -    <div class="spinner-layer spinner-blue-only">
            -      <div class="circle-clipper left">
            -        <div class="circle"></div>
            -      </div><div class="gap-patch">
            -        <div class="circle"></div>
            -      </div><div class="circle-clipper right">
            -        <div class="circle"></div>
            -      </div>
            -    </div>
            -  </div>
            -
            -  <div class="preloader-wrapper active">
            -    <div class="spinner-layer spinner-red-only">
            -      <div class="circle-clipper left">
            -        <div class="circle"></div>
            -      </div><div class="gap-patch">
            -        <div class="circle"></div>
            -      </div><div class="circle-clipper right">
            -        <div class="circle"></div>
            -      </div>
            -    </div>
            -  </div>
            -
            -  <div class="preloader-wrapper small active">
            -    <div class="spinner-layer spinner-green-only">
            -      <div class="circle-clipper left">
            -        <div class="circle"></div>
            -      </div><div class="gap-patch">
            -        <div class="circle"></div>
            -      </div><div class="circle-clipper right">
            -        <div class="circle"></div>
            -      </div>
            -    </div>
            -  </div>
            -        
            -
            - -
            -

            Circular Flashing Colors

            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            -
            - -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            - -
            -
            -
            
            -    <div class="preloader-wrapper big active">
            -      <div class="spinner-layer spinner-blue">
            -        <div class="circle-clipper left">
            -          <div class="circle"></div>
            -        </div><div class="gap-patch">
            -          <div class="circle"></div>
            -        </div><div class="circle-clipper right">
            -          <div class="circle"></div>
            -        </div>
            -      </div>
            -
            -      <div class="spinner-layer spinner-red">
            -        <div class="circle-clipper left">
            -          <div class="circle"></div>
            -        </div><div class="gap-patch">
            -          <div class="circle"></div>
            -        </div><div class="circle-clipper right">
            -          <div class="circle"></div>
            -        </div>
            -      </div>
            -
            -      <div class="spinner-layer spinner-yellow">
            -        <div class="circle-clipper left">
            -          <div class="circle"></div>
            -        </div><div class="gap-patch">
            -          <div class="circle"></div>
            -        </div><div class="circle-clipper right">
            -          <div class="circle"></div>
            -        </div>
            -      </div>
            -
            -      <div class="spinner-layer spinner-green">
            -        <div class="circle-clipper left">
            -          <div class="circle"></div>
            -        </div><div class="gap-patch">
            -          <div class="circle"></div>
            -        </div><div class="circle-clipper right">
            -          <div class="circle"></div>
            -        </div>
            -      </div>
            -    </div>
            -        
            -
            - - -
            - - -
            -
            -
            - - -
            - -
            -
            - -
            -
            - diff --git a/node_modules/materialize-css/jade/page-contents/pushpin_content.html b/node_modules/materialize-css/jade/page-contents/pushpin_content.html deleted file mode 100644 index ede15c8..0000000 --- a/node_modules/materialize-css/jade/page-contents/pushpin_content.html +++ /dev/null @@ -1,126 +0,0 @@ -
            -
            - -
            - -
            -

            Introduction

            -

            Pushpin is our fixed positioning plugin. Use this to pin elements to your page during specific scroll ranges. You can check out our live example: the fixed table of contents on the right.

            - - Open Demo - -

            -
            Demo Code
            -
            
            -  $('.pushpin-demo-nav').each(function() {
            -    var $this = $(this);
            -    var $target = $('#' + $(this).attr('data-target'));
            -    $this.pushpin({
            -      top: $target.offset().top,
            -      bottom: $target.offset().top + $target.outerHeight() - $this.height()
            -    });
            -  });
            -        
            -
            
            -  // Only necessary for window height sized blocks.
            -  html, body, .block {
            -    height: 100%;
            -  }
            -        
            - -
            - -
            -

            jQuery Plugin Initialization

            -

            Here is a sample initialization of pushpin. Take a look at what the options are and customize them to your needs.

            -
            
            -  $(document).ready(function(){
            -    $('.target').pushpin({
            -      top: 0,
            -      bottom: 1000,
            -      offset: 0
            -    });
            -  });
            -        
            -
            - -
            -

            CSS Classes

            -

            A pushpinned element has 3 states. One above and below the scrolling threshold, and the pinned state where the element becomes fixed. Because pushpin changes positioning, chances are your element will look different when the states change. Use these css classes to correctly style your 3 states.

            -
            
            -  // Class for when element is above threshold
            -  .pin-top {
            -    position: relative;
            -  }
            -
            -  // Class for when element is below threshold
            -  .pin-bottom {
            -    position: relative;
            -  }
            -
            -  // Class for when element is pinned
            -  .pinned {
            -    position: fixed !important;
            -  }
            -        
            -
            - - -
            -

            jQuery Plugin Options

            - - - - - - - - - - - - - - - - - - - - - - -
            Option NameDescription
            topThe distance in pixels from the top of the page where the element becomes fixed. (Default: 0)
            bottomThe distance in pixels from the top of the page where the elements stops being fixed. (Default: Infinity)
            offsetThe offset from the top the element will be fixed at. (Default: 0)
            - -
            -

            Removal

            -

            To remove the pushpin from an element, pass in 'remove' as the option to the pushpin function

            -
            
            -  //Removes pushpin and pushpin classes
            -  $('.tabs-wrapper .row').pushpin('remove');
            -        
            - -
            -
            - - - -
            -
            -
            - - -
            - -
            -
            - -
            -
            diff --git a/node_modules/materialize-css/jade/page-contents/pushpin_demo_content.html b/node_modules/materialize-css/jade/page-contents/pushpin_demo_content.html deleted file mode 100644 index 13f7ddb..0000000 --- a/node_modules/materialize-css/jade/page-contents/pushpin_demo_content.html +++ /dev/null @@ -1,50 +0,0 @@ -
            - -
            - -
            - -
            - -
            - -
            - -
            - close - - -
            diff --git a/node_modules/materialize-css/jade/page-contents/sass_content.html b/node_modules/materialize-css/jade/page-contents/sass_content.html deleted file mode 100644 index f63480a..0000000 --- a/node_modules/materialize-css/jade/page-contents/sass_content.html +++ /dev/null @@ -1,159 +0,0 @@ -
            -
            - -
            - - -
            -

            Variables

            -

            - When using Sass, you can change the color scheme of your site extremely quickly. Below is a very small sample of what you can change through sass in _variables.scss. -

            -
            
            -  $primary-color: color("materialize-red", "lighten-2") !default;
            -  $primary-color-light: false !default;
            -  $primary-color-dark: false !default;
            -  @if not $primary-color-light {
            -    $primary-color-light: lighten($primary-color, 15%);
            -  }
            -  @if not $primary-color-dark {
            -    $primary-color-dark: darken($primary-color, 15%);
            -  }
            -  $secondary-color: color("teal", "lighten-1") !default;
            -  $success-color: color("green", "base") !default;
            -  $error-color: color("red", "base") !default;
            -
            -  $link-color: color("light-blue", "darken-1") !default;
            -
            -  /*** More variables not shown here.. ***/
            -        
            -
            - - -
            -

            Media Queries

            -

            - We have 3 media queries for the 3 standard screen sizes you can use in your custom Sass files. This also includes media query variables that will define the range. -

            -

            - Small screens are defined as having a max-width of 600px -
            - Medium screens are defined as having a max-width of 992px -
            - Large screen are defined as having a min-width of 993px -

            - -

            CSS

            -
            
            -  /* These classes can be added to HTML Elements
            -   * to affect visibility on certain displays.
            -   */
            -  .hide-on-small-only
            -  .hide-on-small-and-down
            -  .hide-on-med-and-down
            -  .hide-on-med-and-up
            -  .hide-on-med-only
            -  .hide-on-large-only
            -  .show-on-large
            -  .show-on-medium
            -  .show-on-small
            -  .show-on-medium-and-up
            -  .show-on-medium-and-down
            -            
            - -

            Sass

            -
            
            -  @media #{$small-and-down} {
            -    // styles for small screens and down
            -  }
            -  @media #{$medium-and-up} {
            -    // styles for medium screens and larger
            -  }
            -  @media #{$medium-and-down} {
            -    // styles for medium screens and down
            -  }
            -  @media #{$large-and-up} {
            -    // styles for large screens and up
            -  }
            -            
            -
            - - -
            -

            Prefixer

            -

            - One major goal of this framework is to be as adaptable as possible which includes cross browser compatibility. We have adapted a prefixer script to Sass which will automatically add all browser prefixes for certain CSS properties. -

            - - - For Example: Using this Sass mixin -
            
            -  @include transition(.3s);
            -        
            - Will Output This -
            
            -  -webkit-transition: 0.3s;
            -  -moz-transition: 0.3s;
            -  -o-transition: 0.3s;
            -  -ms-transition: 0.3s;
            -  transition: 0.3s;
            -        
            - Here is the full list of mixins -
            
            -  animation($args)
            -  animation-delay($delay)
            -  animation-direction($direction)
            -  animation-duration($duration)
            -  animation-fill-mode($mode)
            -  animation-iteration-count($count)
            -  animation-name($name)
            -  animation-play-state($state)
            -  animation-timing-function($function)
            -  background-size($args)
            -  box-sizing($args)
            -      border-box()
            -      content-box()
            -  columns($args)
            -      column-count($count)
            -      column-gap($gap)
            -      column-rule($args)
            -      column-width($width)
            -  gradient($default,$start,$stop)
            -      linear-gradient-top($default,$color1,$stop1,$color2,$stop2,[$color3,$stop3,$color4,$stop4])
            -      linear-gradient-left($default,$color1,$stop1,$color2,$stop2,[$color3,$stop3,$color4,$stop4])
            -  transform($args)
            -      transform-origin($args)
            -      transform-style($style)
            -      rotate($deg)
            -      scale($factor)
            -      translate($x,$y)
            -      translate3d($x,$y,$z)
            -      translateHardware($x,$y)
            -  text-shadow($args)
            -  transition($args)
            -      transition-delay($delay)
            -      transition-duration($duration)
            -      transition-property($property)
            -      transition-timing-function($function)
            -        
            -
            -
            -
            -
            -
            - - -
            - -
            -
            - -
            - -
            diff --git a/node_modules/materialize-css/jade/page-contents/scrollfire_content.html b/node_modules/materialize-css/jade/page-contents/scrollfire_content.html deleted file mode 100644 index 5fa8692..0000000 --- a/node_modules/materialize-css/jade/page-contents/scrollfire_content.html +++ /dev/null @@ -1,124 +0,0 @@ -
            -
            - -
            - -
            -

            Introduction

            -

            ScrollFire is a jQuery Plugin that executes callback functions depending on how far into the page you've scrolled. We'll show you how you can use this plugin with many demos and examples.

            -
            - - -
            -

            jQuery Plugin Initialization

            -
            
            -  var options = [
            -    {selector: '.class', offset: 200, callback: customCallbackFunc } },
            -    {selector: '.other-class', offset: 200, callback: function() {
            -      customCallbackFunc();
            -    } },
            -  ];
            -  Materialize.scrollFire(options);
            -        
            -
            - -
            -

            jQuery Plugin Options

            - - - - - - - - - - - - - - - - - - - - - - -
            Option NameDescription
            selectorThe selector for the element that is being tracked.
            offsetIf this is 0, the callback will be fired when the selector element is at the very bottom of the user's window.
            callbackExecute a callback function when the user scrolls to the threshold. It will only be called once.
            The callback provides a parameter which refers to the current element selected.
            - - -

            ScrollFire Demo

            -

            Scroll through slowly to get sense of what ScrollFire can do for you. This is the ScrollFire code that we have used on this page.

            -
            -    
            -    var options = [
            -      {selector: '#staggered-test', offset: 50, callback: function(el) {
            -        Materialize.toast("This is our ScrollFire Demo!", 1500 );
            -      } },
            -      {selector: '#staggered-test', offset: 205, callback: function(el) {
            -        Materialize.toast("Please continue scrolling!", 1500 );
            -      } },
            -      {selector: '#staggered-test', offset: 400, callback: function(el) {
            -        Materialize.showStaggeredList($(el));
            -      } },
            -      {selector: '#image-test', offset: 500, callback: function(el) {
            -        Materialize.fadeInImage($(el));
            -      } }
            -    ];
            -    Materialize.scrollFire(options);
            -        
            - - - -
            - - - -
            - -
            -
            -
            - - -
            - -
            -
            - -
            -
            - - - diff --git a/node_modules/materialize-css/jade/page-contents/scrollspy_content.html b/node_modules/materialize-css/jade/page-contents/scrollspy_content.html deleted file mode 100644 index 0aeddfc..0000000 --- a/node_modules/materialize-css/jade/page-contents/scrollspy_content.html +++ /dev/null @@ -1,92 +0,0 @@ -
            -
            - -
            - -
            -

            Introduction

            -

            Scrollspy is a jQuery plugin that tracks certain elements and which element the user's screen is currently centered on. Our main demo of this is our table of contents on every documentation page to the right. Clicking on these links will also scroll the page to that element.

            -
            - - -
            -

            Table of Contents Structure

            -
            
            -  <div class="row">
            -    <div class="col s12 m9 l10">
            -      <div id="introduction" class="section scrollspy">
            -        <p>Content </p>
            -      </div>
            -
            -      <div id="structure" class="section scrollspy">
            -        <p>Content </p>
            -      </div>
            -
            -      <div id="initialization" class="section scrollspy">
            -        <p>Content </p>
            -      </div>
            -    </div>
            -    <div class="col hide-on-small-only m3 l2">
            -      <ul class="section table-of-contents">
            -        <li><a href="#introduction">Introduction</a></li>
            -        <li><a href="#structure">Structure</a></li>
            -        <li><a href="#initialization">Intialization</a></li>
            -      </ul>
            -    </div>
            -  </div>
            -        
            -
            - - -
            -

            jQuery Plugin Initialization

            -
            
            -  $(document).ready(function(){
            -    $('.scrollspy').scrollSpy();
            -  });
            -        
            -
            - - -
            -

            jQuery Plugin Options

            - - - - - - - - - - - - - - -
            Option NameDescription
            scrollOffsetOffset for centering element when scrolled to. Default: 200
            -
            - -
            - - -
            -
            -
            - - -
            - -
            -
            - -
            -
            - diff --git a/node_modules/materialize-css/jade/page-contents/shadow_content.html b/node_modules/materialize-css/jade/page-contents/shadow_content.html deleted file mode 100644 index db9eb8e..0000000 --- a/node_modules/materialize-css/jade/page-contents/shadow_content.html +++ /dev/null @@ -1,64 +0,0 @@ -
            -
            - -
            - -
            -

            In material design, everything should have a certain z-depth that determines how far raised or close to the page the element is.

            -

            You can easily apply this shadow effect by adding a class="z-depth-2" to an HTML tag. Alternatively you can extend any of these shadows with Sass using @extend .z-depth-2. A z-depth-0 can be used to remove shadows from elements that have z-depths by default.

            -
            -
            -

            -
            -
            -

            -
            -
            -

            -
            -
            -

            -
            -
            -

            -
            -
            -

            -
            -
            -
            
            -    <div class="col s12 m2">
            -      <p class="z-depth-1">z-depth-1</p>
            -    </div>
            -    <div class="col s12 m2">
            -      <p class="z-depth-2">z-depth-2</p>
            -    </div>
            -    <div class="col s12 m2">
            -      <p class="z-depth-3">z-depth-3</p>
            -    </div>
            -    <div class="col s12 m2">
            -      <p class="z-depth-4">z-depth-4</p>
            -    </div>
            -    <div class="col s12 m2">
            -      <p class="z-depth-5">z-depth-5</p>
            -    </div>
            -        
            -
            -
            - -
            -
            -
            - - -
            -
            - -
            -
            -
            - -
            -
            \ No newline at end of file diff --git a/node_modules/materialize-css/jade/page-contents/sideNav_content.html b/node_modules/materialize-css/jade/page-contents/sideNav_content.html deleted file mode 100644 index e7f3d15..0000000 --- a/node_modules/materialize-css/jade/page-contents/sideNav_content.html +++ /dev/null @@ -1,184 +0,0 @@ -
            -
            - -
            - -
            -

            Introduction

            -

            This is a slide out menu. You can add a dropdown to your sidebar by using our collapsible component. If you want to see a demo, our sidebar will use this on smaller screens. To use this in conjunction with a fullscreen navigation, you have to use two copies of the same UL.

            - - Side nav demo - - - -

            HTML Structure

            -
            
            -  <ul id="slide-out" class="side-nav">
            -    <li><div class="userView">
            -      <div class="background">
            -        <img src="images/office.jpg">
            -      </div>
            -      <a href="#!user"><img class="circle" src="images/yuna.jpg"></a>
            -      <a href="#!name"><span class="white-text name">John Doe</span></a>
            -      <a href="#!email"><span class="white-text email">jdandturk@gmail.com</span></a>
            -    </div></li>
            -    <li><a href="#!"><i class="material-icons">cloud</i>First Link With Icon</a></li>
            -    <li><a href="#!">Second Link</a></li>
            -    <li><div class="divider"></div></li>
            -    <li><a class="subheader">Subheader</a></li>
            -    <li><a class="waves-effect" href="#!">Third Link With Waves</a></li>
            -  </ul>
            -  <a href="#" data-activates="slide-out" class="button-collapse"><i class="material-icons">menu</i></a>
            -        
            -
            - -
            -

            jQuery Plugin Initialization

            -
            
            -  // Initialize collapse button
            -  $(".button-collapse").sideNav();
            -  // Initialize collapsible (uncomment the line below if you use the dropdown variation)
            -  //$('.collapsible').collapsible();
            -        
            -
            - - -
            -

            Options

            -

            You can customize the sideNav by setting your own width and the alignment of the menu.

            -
            
            -  $('.button-collapse').sideNav({
            -      menuWidth: 300, // Default is 300
            -      edge: 'right', // Choose the horizontal origin
            -      closeOnClick: true, // Closes side-nav on <a> clicks, useful for Angular/Meteor
            -      draggable: true // Choose whether you can drag to open on touch screens
            -    }
            -  );
            -        
            -
            - -
            -

            jQuery Plugin Methods

            -

            We have methods to show and hide your sidebar you can use to programmatically control your sidebar.

            -
            
            -  // Show sideNav
            -  $('.button-collapse').sideNav('show');
            -  // Hide sideNav
            -  $('.button-collapse').sideNav('hide');
            -  // Destroy sideNav
            -  $('.button-collapse').sideNav('destroy');
            -        
            -
            - -
            -

            Variations

            -

            - Here are some useful variations and additional elements you can add to your sidebar. -

            - -

            Dropdown HTML Structure

            -

            Add collapsible menus to your sidebar.

            -
            
            -    <ul id="slide-out" class="side-nav">
            -      <li><a href="#!">First Sidebar Link</a></li>
            -      <li><a href="#!">Second Sidebar Link</a></li>
            -      <li class="no-padding">
            -        <ul class="collapsible collapsible-accordion">
            -          <li>
            -            <a class="collapsible-header">Dropdown<i class="material-icons">arrow_drop_down</i></a>
            -            <div class="collapsible-body">
            -              <ul>
            -                <li><a href="#!">First</a></li>
            -                <li><a href="#!">Second</a></li>
            -                <li><a href="#!">Third</a></li>
            -                <li><a href="#!">Fourth</a></li>
            -              </ul>
            -            </div>
            -          </li>
            -        </ul>
            -      </li>
            -    </ul>
            -    <ul class="right hide-on-med-and-down">
            -      <li><a href="#!">First Sidebar Link</a></li>
            -      <li><a href="#!">Second Sidebar Link</a></li>
            -      <li><a class="dropdown-button" href="#!" data-activates="dropdown1">Dropdown<i class="material-icons right">arrow_drop_down</i></a></li>
            -      <ul id='dropdown1' class='dropdown-content'>
            -        <li><a href="#!">First</a></li>
            -        <li><a href="#!">Second</a></li>
            -        <li><a href="#!">Third</a></li>
            -        <li><a href="#!">Fourth</a></li>
            -      </ul>
            -    </ul>
            -    <a href="#" data-activates="slide-out" class="button-collapse"><i class="material-icons">menu</i></a>
            -          

            - -

            Fullscreen HTML Structure

            -

            If you want the menu to be accessible on all screensizes you just have to add a simple helper class show-on-large to the .button-collapse.

            - -
            
            -    <ul id="slide-out" class="side-nav">
            -      <li><a href="#!">First Sidebar Link</a></li>
            -      <li><a href="#!">Second Sidebar Link</a></li>
            -    </ul>
            -    <a href="#" data-activates="slide-out" class="button-collapse show-on-large"><i class="material-icons">menu</i></a>
            -          

            - -

            Fixed HTML Structure

            -

            Add the class fixed to have the sideNav be fixed and open on large screens and hides to the regular functionality on smaller screens. Our sideNav on the left is an example of this.

            -
            
            -    <ul id="slide-out" class="side-nav fixed">
            -      <li><a href="#!">First Sidebar Link</a></li>
            -      <li><a href="#!">Second Sidebar Link</a></li>
            -    </ul>
            -    <a href="#" data-activates="slide-out" class="button-collapse"><i class="material-icons">menu</i></a>
            -          
            -

            If you are planning on using this you will have to offset your content by the width of the side menu. Place the padding on where the offset content will be, which in our case is in header, main and footer.

            -
            
            -    header, main, footer {
            -      padding-left: 300px;
            -    }
            -
            -    @media only screen and (max-width : 992px) {
            -      header, main, footer {
            -        padding-left: 0;
            -      }
            -    }
            -          
            -
            -
            - - -
            - -
            - -
            -
            diff --git a/node_modules/materialize-css/jade/page-contents/table_content.html b/node_modules/materialize-css/jade/page-contents/table_content.html deleted file mode 100644 index 041597c..0000000 --- a/node_modules/materialize-css/jade/page-contents/table_content.html +++ /dev/null @@ -1,307 +0,0 @@ -
            -
            - -
            - - -
            -

            Tables are a nice way to organize a lot of data. We provide a few utility classes to help you style your table as easily as possible. In addition, to improve mobile experience, all tables on mobile-screen widths are centered automatically.

            -

            Borderless Table

            -
            -
            -

            Tables are borderless by default.

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameItem NameItem Price
            AlvinEclair$0.87
            AlanJellybean$3.76
            JonathanLollipop$7.00
            ShannonKitKat$9.99
            -
            -
            -
            
            -      <table>
            -        <thead>
            -          <tr>
            -              <th data-field="id">Name</th>
            -              <th data-field="name">Item Name</th>
            -              <th data-field="price">Item Price</th>
            -          </tr>
            -        </thead>
            -
            -        <tbody>
            -          <tr>
            -            <td>Alvin</td>
            -            <td>Eclair</td>
            -            <td>$0.87</td>
            -          </tr>
            -          <tr>
            -            <td>Alan</td>
            -            <td>Jellybean</td>
            -            <td>$3.76</td>
            -          </tr>
            -          <tr>
            -            <td>Jonathan</td>
            -            <td>Lollipop</td>
            -            <td>$7.00</td>
            -          </tr>
            -        </tbody>
            -      </table>
            -            
            -
            -
            -
            - -
            -

            Bordered Table

            -
            -
            -

            Add class="bordered" to the table tag for a bordered table

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameItem NameItem Price
            AlvinEclair$0.87
            AlanJellybean$3.76
            JonathanLollipop$7.00
            ShannonKitKat$9.99
            -
            -
            -
            - -
            -

            Striped Table

            -
            -
            -

            Add class="striped" to the table tag for a striped table

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameItem NameItem Price
            AlvinEclair$0.87
            AlanJellybean$3.76
            JonathanLollipop$7.00
            ShannonKitKat$9.99
            -
            -
            -
            - -
            -

            Highlight Table

            -
            -
            -

            Add class="highlight" to the table tag for a highlight table

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameItem NameItem Price
            AlvinEclair$0.87
            AlanJellybean$3.76
            JonathanLollipop$7.00
            ShannonKitKat$9.99
            -
            -
            -
            - -
            -

            Centered Table

            -
            -
            -

            Add class="centered" to the table tag to center align all the text in the table

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameItem NameItem Price
            AlvinEclair$0.87
            AlanJellybean$3.76
            JonathanLollipop$7.00
            ShannonKitKat$9.99
            -
            -
            - -
            - -
            -

            Responsive Table

            -
            -
            -

            Add class="responsive-table" to the table tag to make the table horizontally scrollable on smaller screen widths.

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            NameItem NameItem Price
            AlvinEclair$0.87
            AlanJellybean$3.76
            JonathanLollipop$7.00
            ShannonKitKat$9.99
            -
            -
            - -
            - - -
            - -
            -
            -
            - - -
            - -
            -
            - -
            -
            - diff --git a/node_modules/materialize-css/jade/page-contents/tabs_content.html b/node_modules/materialize-css/jade/page-contents/tabs_content.html deleted file mode 100644 index 5f2b8e5..0000000 --- a/node_modules/materialize-css/jade/page-contents/tabs_content.html +++ /dev/null @@ -1,210 +0,0 @@ -
            -
            - -
            - -
            -

            Introduction

            -

            The tabs structure consists of an unordered list of tabs that have hashes corresponding to tab ids. Then when you click on each tab, only the container with the corresponding tab id will become visible. You can add the class .disabled to make a tab inaccessible.

            - -
            -
            Variable Width TabsDefault
            - -

            Test 1

            -

            Test 2

            -

            Test 3

            -

            Test 4

            - -
            -
            Fixed Width TabsAdd the .tabs-fixed-width class
            - -

            Test 1

            -

            Test 2

            -

            Test 3

            -

            Test 4

            -

            Test 5

            - -
            -
            Scrollable Tabs Tabs automatically become scrollable
            - -

            Test 5

            -

            Test 6

            -

            Test 7

            -

            Test 8

            -

            Test 9

            -

            Test 10

            -

            Test 11

            -

            Test 12

            -

            Test 13

            -

            Test 14

            -

            Test 15

            -
            - - -
            -

            Tabs HTML Structure

            -
            
            -  <div class="row">
            -    <div class="col s12">
            -      <ul class="tabs">
            -        <li class="tab col s3"><a href="#test1">Test 1</a></li>
            -        <li class="tab col s3"><a class="active" href="#test2">Test 2</a></li>
            -        <li class="tab col s3 disabled"><a href="#test3">Disabled Tab</a></li>
            -        <li class="tab col s3"><a href="#test4">Test 4</a></li>
            -      </ul>
            -    </div>
            -    <div id="test1" class="col s12">Test 1</div>
            -    <div id="test2" class="col s12">Test 2</div>
            -    <div id="test3" class="col s12">Test 3</div>
            -    <div id="test4" class="col s12">Test 4</div>
            -  </div>
            -        
            -
            - -
            -

            jQuery Plugin Initialization

            -

            Tabs are initialized automatically, but if you add tabs dynamically you will have to initialize them like this.

            -
            
            -  $(document).ready(function(){
            -    $('ul.tabs').tabs();
            -  });
            -        
            -
            - -
            -

            jQuery Plugin Methods

            -

            You can programmatically trigger a tab change with our select_tab method. You have to input the id of the tab you want to switch to. In the case of our demo it would be either test1, test2, test3, or test4.

            -
            
            -  $(document).ready(function(){
            -    $('ul.tabs').tabs('select_tab', 'tab_id');
            -  });
            -        
            -
            - - -
            -

            jQuery Plugin Options

            - - - - - - - - - - - - - - - - - - - - - - -
            Option NameDescription
            onShowExecute a callback function when the tab is changed.
            The callback provides a parameter which refers to the current tab being shown.
            swipeableSet to true to enable swipeable tabs. This also uses the responsiveThreshold option. Default: false
            responsiveThresholdThe maximum width of the screen, in pixels, where the swipeable functionality initializes. Default: Infinity
            -
            - - -
            -

            Preselecting a tab

            -

            By default, the first tab is selected. But if this is not what you want, you can preselect a tab by either passing in the hash in the url ex:#test2. Or you can add the class active to the a tag.

            -
            
            -  <li class="tab col s2"><a class="active" href="#test3">Test 3</a></li>
            -        
            -
            - - -
            -

            Linking to an External Page

            -

            By default, Materialize tabs will ignore their default anchor behaviour. To force a tab to behave as a regular hyperlink, just specify the target property of that link! A list of target values may be found here.

            -
            
            -  <li class="tab col s2">
            -    <a target="_blank" href="https://github.com/Dogfalo/materialize">External link in new window</a>
            -  </li>
            -  <li class="tab col s2">
            -    <a target="_self" href="https://github.com/Dogfalo/materialize">External link in same window</a>
            -  </li>
            -        
            -
            - - -
            -

            Swipeable Tabs

            -

            By setting the swipeable option to true, you can enable tabs where you can swipe on touch enabled devices to switch tabs. Make sure you keep the tab content divs in the same wrapping container. You can also set the responsiveThreshold option to a screen width in pixels where the swipeable functionality will activate.

            -

            Note: This is also touch compatible! Try swiping with your finger to scroll through the carousel.

            - -
            Test 1
            -
            Test 2
            -
            Test 3
            - -
            
            -  <ul id="tabs-swipe-demo" class="tabs">
            -    <li class="tab col s3"><a href="#test-swipe-1">Test 1</a></li>
            -    <li class="tab col s3"><a class="active" href="#test-swipe-2">Test 2</a></li>
            -    <li class="tab col s3"><a href="#test-swipe-3">Test 3</a></li>
            -  </ul>
            -  <div id="test-swipe-1" class="col s12 blue">Test 1</div>
            -  <div id="test-swipe-2" class="col s12 red">Test 2</div>
            -  <div id="test-swipe-3" class="col s12 green">Test 3</div>
            -        
            -
            - -
            - - - - -
            -
            - diff --git a/node_modules/materialize-css/jade/page-contents/transitions_content.html b/node_modules/materialize-css/jade/page-contents/transitions_content.html deleted file mode 100644 index bfd0047..0000000 --- a/node_modules/materialize-css/jade/page-contents/transitions_content.html +++ /dev/null @@ -1,103 +0,0 @@ -
            -
            - -
            - -
            -

            We've made some custom animation functions that will transition your content. It's recommended to use this with our ScrollFire Plugin to make your content transition in as you scroll.

            - -

            showStaggeredList

            -

            Use this to create a staggered reveal effect for any UL Tag with list items. Just make sure the list items in the UL are opacity: 0; to ensure the animation works correctly.

            - - - - - - - - - - - - - - - -
            Option NameDescription
            selectorOrElThe selector or element that the transition targets.
            -
            - - Click Me -
            
            -  <a href="#!" class="btn" onclick="Materialize.showStaggeredList('#staggered-test')">Click Me</a>
            -        
            - -
            - -
            -

            fadeInImage

            -

            Use this to fade in images. It also animates grayscale and brightness to give it a unique effect.

            - - - - - - - - - - - - - - - -
            Option NameDescription
            selectorOrElThe selector or element that the transition targets.
            -
            - - Click Me -
            
            -  <a href="#!" class="btn" onclick="Materialize.fadeInImage('#image-test')">Click Me</a>
            -        
            - -
            -
            - -
            - -
            - -
            -
            - diff --git a/node_modules/materialize-css/jade/page-contents/typography_content.html b/node_modules/materialize-css/jade/page-contents/typography_content.html deleted file mode 100644 index b351b38..0000000 --- a/node_modules/materialize-css/jade/page-contents/typography_content.html +++ /dev/null @@ -1,95 +0,0 @@ -
            -
            - -
            - -
            -
            -

            Roboto 2.0

            -

            - The standard font Material Design uses is Roboto. We have included the font files with our framework. -

            -
            -

            We bundle our framework with the latest iteration of Roboto Google has released. It comes with 5 different font weights you can use: 200, 300, 400, 500, 600.

            Here is an image from Google's Roboto Specimen document displaying the different font weights.

            - -
            - -

            Removing Roboto

            -

            In case you don't want to use Roboto on your webpage, fear not. Simply change the font stack by modifying the code below to your liking and add it to your custom css.

            -
            
            -  html {
            -    font-family: GillSans, Calibri, Trebuchet, sans-serif;
            -  }
            -        
            -
            - - -
            -

            Headers

            -

            We provide some basic styling on header tags. In the example, you can see the the 6 header tags' different sizes.

            -
            -

            Heading h1

            -

            Heading h2

            -

            Heading h3

            -

            Heading h4

            -
            Heading h5
            -
            Heading h6
            -
            -
            - -
            -

            Blockquotes

            -

            - Blockquotes are mainly used to give emphasis to a quote or citation. You can also use these for some extra text hierarchy and emphasis. -

            -
            - This is an example quotation that uses the blockquote tag. -
            Here is another line to make it look bigger. -
            -
            
            -    <blockquote>
            -      This is an example quotation that uses the blockquote tag.
            -    </blockquote>
            -          
            -
            - -
            -

            Flow Text

            - Toggle flow-text -
            -

            - One common flaw we've seen in many frameworks is a lack of support for truly responsive text. While elements on the page resize fluidly, text still resizes on a fixed basis. To ameliorate this problem, for text heavy pages, we've created a class that fluidly scales text size and line-height to optimize readability for the user. Line length stays between 45-80 characters and line height scales to be larger on smaller screens.

            -

            To see Flow Text in action, slowly resize your browser and watch the size of this text body change! Use the button above to toggle off/on flow-text to see the difference!

            -
            - -
            - -

            To use flow-text on a body of text, simply just add the class flow-text to a tag, see the code blow.

            -
            -
            
            -    <p class="flow-text">I am Flow Text</p>
            -          
            -
            -
            - -
            - -
            -
            -
            -
            - - -
            - -
            -
            -
            -
            \ No newline at end of file diff --git a/node_modules/materialize-css/jade/page-contents/waves_content.html b/node_modules/materialize-css/jade/page-contents/waves_content.html deleted file mode 100644 index e6910dd..0000000 --- a/node_modules/materialize-css/jade/page-contents/waves_content.html +++ /dev/null @@ -1,110 +0,0 @@ -
            -
            - -
            - -
            - -

            Introduction

            -

            Waves is an external library that we've included in Materialize to allow us to create the ink effect outlined in Material Design

            - Wave -
            - - - -
            -

            Applying Waves

            -

            To put the waves effect on buttons, you just have to put the class waves-effect on to the buttons. If you want the waves effect to be white instead, add both waves-effect waves-light as classes.

            -
            
            -  <a class="waves-effect waves-light btn-large" href="#">Wave</a>
            -      
            -
            - - - -
            - -

            Customization

            -

            There are several ways to customize waves, you can either use pre-created classes, or you can define your own color by creating a new class

            -
            -
            -
            Available Colors
            -

            To use these, just add the corresponding class to your button. Play around with changing the background color of butons and the waves effect to create something cool!

            -
            
            -    <a href="#!" class="btn waves-effect waves-teal">Send</a>
            -          
            -
            -
            DefaultSend
            -
            waves-lightSend
            -
            waves-redSend
            -
            waves-yellowSend
            -
            waves-orangeSend
            -
            waves-purpleSend
            -
            waves-greenSend
            -
            waves-tealSend
            -
            -
            - -
            -
            Custom Colors
            -

            If the color you want is not already available, you can easily make your own waves color by creating a custom CSS class. Take a look at the example below where we add a waves-brown effect

            - -
            
            -    /*
            -    When creating your CSS selector,
            -    change "brown" to something of your choosing
            -    */
            -    .waves-effect.waves-brown .waves-ripple {
            -     /* The alpha value allows the text and background color
            -     of the button to still show through. */
            -      background-color: rgba(121, 85, 72, 0.65);
            -    }
            -          
            -
            -
            -
            - -
            - -

            Circle

            -

            If you want waves to form to a non rectangular shape, there is an option for circular waves. Just add the waves-circle in addition to waves-effect

            -
            -
            -
            HTML Markup
            -
            
            -  <a href="#!" class="waves-effect waves-circle waves-light btn-floating secondary-content">
            -    <i class="material-icons">add</i>
            -  </a>
            -          
            -
            -
            Defaultadd
            -
            waves-lightadd
            -
            -
            -
            -
            - -
            - - - -
            - -
            - -
            -
            - diff --git a/node_modules/materialize-css/jade/pagination.jade b/node_modules/materialize-css/jade/pagination.jade deleted file mode 100644 index 395c4ef..0000000 --- a/node_modules/materialize-css/jade/pagination.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Pagination" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/pagination_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/parallax-demo.jade b/node_modules/materialize-css/jade/parallax-demo.jade deleted file mode 100644 index 1303858..0000000 --- a/node_modules/materialize-css/jade/parallax-demo.jade +++ /dev/null @@ -1,11 +0,0 @@ -- var page = "Parallax" -- var isDemo = true - -doctype html -html(lang="en") - head - include _head.jade - body(class="parallax-demo") - include page-contents/parallax_demo_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/parallax.jade b/node_modules/materialize-css/jade/parallax.jade deleted file mode 100644 index 0682abe..0000000 --- a/node_modules/materialize-css/jade/parallax.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Parallax" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/parallax_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/parallax/parallax_content.html b/node_modules/materialize-css/jade/parallax/parallax_content.html deleted file mode 100644 index 6f0cec1..0000000 --- a/node_modules/materialize-css/jade/parallax/parallax_content.html +++ /dev/null @@ -1,51 +0,0 @@ -
            - -
            - -
            - -
            -
            -
            -
            -
            -

            Parallax

            -

            Parallax is an effect where the background content or image in this case, is moved at a different speed than the foreground content while scrolling.

            -
            -
            -

            Parallax Demo HTML

            -
            
            -  <div class="parallax-container">
            -    <div class="parallax"><img src="images/parallax1.jpg"></div>
            -  </div>
            -  <div class="section white">
            -    <div class="row container">
            -      <h2 class="header">Parallax</h2>
            -      <p class="grey-text text-darken-3 lighten-3">Parallax is an effect where the background content or image in this case, is moved at a different speed than the foreground content while scrolling.</p>
            -    </div>
            -  </div>
            -  <div class="parallax-container">
            -    <div class="parallax"><img src="images/parallax2.jpg"></div>
            -  </div>
            -      
            -
            -
            -
            -
            -
            - \ No newline at end of file diff --git a/node_modules/materialize-css/jade/preloader.jade b/node_modules/materialize-css/jade/preloader.jade deleted file mode 100644 index bd9c64c..0000000 --- a/node_modules/materialize-css/jade/preloader.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Preloader" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/preloader_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/pushpin-demo.jade b/node_modules/materialize-css/jade/pushpin-demo.jade deleted file mode 100644 index 0cfefed..0000000 --- a/node_modules/materialize-css/jade/pushpin-demo.jade +++ /dev/null @@ -1,21 +0,0 @@ -- var page = "Pushpin Demo" -- var isDemo = true - -doctype html -html(lang="en") - head - include _head.jade - style. - html, body, .block { - height: 100%; - } - nav ul li a:hover, nav ul li a.active { - background-color: rgba(0,0,0,.1); - } - footer { - padding-left: 0; - } - body - include page-contents/pushpin_demo_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/pushpin.jade b/node_modules/materialize-css/jade/pushpin.jade deleted file mode 100644 index 9133412..0000000 --- a/node_modules/materialize-css/jade/pushpin.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Pushpin" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/pushpin_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/sass.jade b/node_modules/materialize-css/jade/sass.jade deleted file mode 100644 index 5bb19dd..0000000 --- a/node_modules/materialize-css/jade/sass.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Sass" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/sass_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/scrollFire.jade b/node_modules/materialize-css/jade/scrollFire.jade deleted file mode 100644 index 11d76c9..0000000 --- a/node_modules/materialize-css/jade/scrollFire.jade +++ /dev/null @@ -1,34 +0,0 @@ -- var no_nav = false -- var page = "ScrollFire" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/scrollfire_content.html - include _footer.html - include _scripts.html - //- Scrollfire Script - script(type='text/javascript'). - var options = [ - {selector: '#staggered-test', offset: 50, callback: function(el) { - Materialize.toast("This is our ScrollFire Demo!", 1500); - $("#call-1").velocity({ backgroundColor: "#333", color: "#ef5350" }, {duration: 500}); - } }, - {selector: '#staggered-test', offset: 205, callback: function(el) { - Materialize.toast("Please continue scrolling!", 1500); - $("#call-2").velocity({ backgroundColor: "#333", color: "#ef5350" }, {duration: 500}); - } }, - {selector: '#staggered-test', offset: 500, callback: function(el) { - Materialize.showStaggeredList($(el)); - $("#call-3").velocity({ backgroundColor: "#333", color: "#ef5350" }, {duration: 500}); - } }, - {selector: '#image-test', offset: 500, callback: function(el) { - Materialize.fadeInImage($(el)); - $("#call-4").velocity({ backgroundColor: "#333", color: "#ef5350" }, {duration: 500}); - } } - ]; - Materialize.scrollFire(options); diff --git a/node_modules/materialize-css/jade/scrollspy.jade b/node_modules/materialize-css/jade/scrollspy.jade deleted file mode 100644 index 162770b..0000000 --- a/node_modules/materialize-css/jade/scrollspy.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Scrollspy" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/scrollspy_content.html - include _footer.html - include _scripts.html diff --git a/node_modules/materialize-css/jade/search.js b/node_modules/materialize-css/jade/search.js deleted file mode 100644 index 965648f..0000000 --- a/node_modules/materialize-css/jade/search.js +++ /dev/null @@ -1,348 +0,0 @@ -(function ($) { - $(document).ready(function() { - window.index = lunr(function () { - this.field('title', {boost: 10}); - this.field('body'); - this.ref('href'); - }); - window.index.pipeline.reset(); - - window.index.add({ - href: 'http://materializecss.com/about.html', - title: 'About', - body: 'Created and designed by Google, Material Design is a design language that combines the classic principles of successful design along with innovation and technology. Google"s goal is to develop a system of design that allows for a unified user experience across all their products on any platform.' - }); - - window.index.add({ - href: 'http://materializecss.com/badges.html', - title: 'Badges', - body: 'Badges can notify you that there are new or unread messages or notifications.' - }); - - window.index.add({ - href: 'http://materializecss.com/buttons.html', - title: 'Buttons', - body: 'There are 3 main button types described in material design. The raised button is a standard button that signify actions and seek to give depth to a mostly flat page. The floating circular action button is meant for very important functions. Flat buttons are usually used within elements that already have depth like cards or modals.' - }); - - window.index.add({ - href: 'http://materializecss.com/breadcrumbs.html', - title: 'Breadcrumbs', - body: 'There are 3 main button types described in material design. The raised button is a standard button that signify actions and seek to give depth to a mostly flat page. The floating circular action button is meant for very important functions. Flat buttons are usually used within elements that already have depth like cards or modals.' - }); - - window.index.add({ - href: 'http://materializecss.com/cards.html', - title: 'Cards', - body: 'Breadcrumbs are a good way to display your current location. This is usually used when you have multiple layers of content.' - }); - - window.index.add({ - href: 'http://materializecss.com/carousel.html', - title: 'Carousel', - body: 'Our Carousel is a robust and versatile component that can be an image slider, to an item carousel, to an onboarding experience.' - }); - - window.index.add({ - href: 'http://materializecss.com/chips.html', - title: 'Chips', - body: 'Chips can be used to represent small blocks of information. They are most commonly used either for contacts or for tags.' - }); - - window.index.add({ - href: 'http://materializecss.com/collapsible.html', - title: 'Collapsible', - body: 'Collapsibles are accordion elements that expand when clicked on. They allow you to hide content that is not immediately relevant to the user.' - }); - - window.index.add({ - href: 'http://materializecss.com/collections.html', - title: 'Collections', - body: 'Collections allow you to group list objects together.' - }); - - window.index.add({ - href: 'http://materializecss.com/color.html', - title: 'Color', - body: 'Here is a color palette based on the material design base colors. Each of these colors is defined with a base color class and an optional lighten or darken class.' - }); - - window.index.add({ - href: 'http://materializecss.com/dialogs.html', - title: 'dialogs tooltips toasts', - body: 'Dialogs are content that are not original visible on a page but show up with extra information if needed. The transitions should make the appearance of the dialog make sense and not jarring to the user.' - }); - - window.index.add({ - href: 'http://materializecss.com/dropdown.html', - title: 'dropdown', - body: 'Add a dropdown list to any button.' - }); - - window.index.add({ - href: 'http://materializecss.com/footer.html', - title: 'footer', - body: 'Footers are a great way to organize a lot of site navigation and information at the end of a page. This is where the user will look once hes finished scrolling through the current page or is looking for additional information about your website.' - }); - - window.index.add({ - href: 'http://materializecss.com/forms.html', - title: 'forms select radio checkbox switch range textarea', - body: 'Forms are the standard way to receive user inputted data. The transitions and smoothness of these elements are very important because of the inherent user interaction associated with forms.' - }); - - window.index.add({ - href: 'http://materializecss.com/fullscreen-slider-demo.html', - title: 'Fullscreen slider demo', - body: 'Fullscreen slider demo' - }); - - window.index.add({ - href: 'http://materializecss.com/getting-started.html', - title: 'Getting Started', - body: 'Learn how to easily start using Materialize in your website.' - }); - - window.index.add({ - href: 'http://materializecss.com/grid.html', - title: 'Grid', - body: 'We are using a standard 12 column fluid responsive grid system. The grid helps you layout your page in an ordered, easy fashion.' - }); - - window.index.add({ - href: 'http://materializecss.com/helpers.html', - title: 'Helpers', - body: 'helper classes' - }); - - window.index.add({ - href: 'http://materializecss.com/icons.html', - title: 'icons', - body: 'We have included 740 Material Design Icons courtesy of Google' - }); - - window.index.add({ - href: 'http://materializecss.com/media-css.html', - title: 'Media CSS', - body: 'Media CSS classes' - }); - - window.index.add({ - href: 'http://materializecss.com/media.html', - title: 'Media JavaScript slider materialbox', - body: 'Media components include things that have to do with large media objects like Images, Video, Audio, etc.' - }); - - window.index.add({ - href: 'http://materializecss.com/mobile.html', - title: 'Mobile', - body: 'Mobile only interactive components.' - }); - - window.index.add({ - href: 'http://materializecss.com/modals.html', - title: 'modals', - body: 'Use a modal for dialog boxes, confirmation messages, or other content that can be called up.' - }); - - window.index.add({ - href: 'http://materializecss.com/navbar.html', - title: 'navbar', - body: 'The navbar is fully contained by an HTML5 Nav tag. Inside a recommended container div, there are 2 main parts of the navbar. A logo or brand link, and the navigations links. You can align these links to the left or right.' - }); - - window.index.add({ - href: 'http://materializecss.com/pagination.html', - title: 'pagination', - body: 'Add pagination links to help split up your long content into shorter, easier to understand blocks.' - }); - - window.index.add({ - href: 'http://materializecss.com/parallax.html', - title: 'parallax', - body: 'Parallax is an effect where the background content or image in this case, is moved at a different speed than the foreground content while scrolling.' - }); - - window.index.add({ - href: 'http://materializecss.com/preloader.html', - title: 'preloader', - body: 'If you have content that will take a long time to load, you should give the user feedback. For this reason we provide a number activity + progress indicators.' - }); - - window.index.add({ - href: 'http://materializecss.com/pushpin.html', - title: 'Pushpin', - body: 'Pushpin is our fixed positioning plugin. You can check out our live examples: the fixed Table of Contents on the right.' - }); - - window.index.add({ - href: 'http://materializecss.com/sass.html', - title: 'Sass', - body: 'When using Sass, you can change the color scheme of your site extremely quickly.' - }); - - window.index.add({ - href: 'http://materializecss.com/scrollfire.html', - title: 'scrollFire', - body: 'ScrollFire is a jQuery Plugin that executes callback functions depending on how far into the page you"ve scrolled.' - }); - - window.index.add({ - href: 'http://materializecss.com/scrollspy.html', - title: 'scrollspy', - body: 'Scrollspy is a jQuery plugin that tracks certain elements and which element the users screen is currently centered on.' - }); - - window.index.add({ - href: 'http://materializecss.com/shadow.html', - title: 'shadow', - body: 'In material design, everything should have a certain z-depth that determines how far raised or close to the page the element is.' - }); - - window.index.add({ - href: 'http://materializecss.com/showcase.html', - title: 'showcase', - body: 'Here is our showcase of websites that use materialize.' - }); - - window.index.add({ - href: 'http://materializecss.com/side-nav.html', - title: 'sideNav side Nav', - body: 'This is a slide out menu. You can add a dropdown to your sidebar by using our collapsible component.' - }); - - window.index.add({ - href: 'http://materializecss.com/table.html', - title: 'table', - body: 'Tables are a nice way to organize a lot of data. We provide a few utility classes to help you style your table as easily as possible.' - }); - - window.index.add({ - href: 'http://materializecss.com/tabs.html', - title: 'tabs', - body: 'The tabs structure consists of an unordered list of tabs that have hashes corresponding to tab ids. Then when you click on each tab, only the container with the corresponding tab id will become visible.' - }); - - window.index.add({ - href: 'http://materializecss.com/transitions.html', - title: 'transitions animation', - body: 'Weve made some custom animation functions that will transition your content.' - }); - - window.index.add({ - href: 'http://materializecss.com/typography.html', - title: 'Typography', - body: 'font, headers, blockquotes, flow text.' - }); - - window.index.add({ - href: 'http://materializecss.com/waves.html', - title: 'waves', - body: 'Waves is an external library that weve included in Materialize to allow us to create the ink effect outlined in Material Design' - }); - - // icon click - $('ul#nav-mobile li.search .search-wrapper i.material-icons').click(function() { - if ($('.search-results .focused').length) { - $('.search-results .focused').first()[0].click(); - } else if ($('.search-results').children().length) { - $('.search-results').children().first()[0].click(); - } - }); - - var renderResults = function(results) { - var resultsContainer = $('.search-results'); - resultsContainer.empty(); - Array.prototype.forEach.call(results, function(result) { - var resultDiv = $('' + result[0] + ''); - resultsContainer.append(resultDiv); - }); - }; - - var debounce = function (fn) { - var timeout; - return function () { - var args = Array.prototype.slice.call(arguments), - ctx = this; - - clearTimeout(timeout); - timeout = setTimeout(function () { - fn.apply(ctx, args); - }, 100); - }; - }; - - $('input#search').focus(function() { $(this).parent().addClass('focused'); }); - $('input#search').blur(function() { - if (!$(this).val()) { - $(this).parent().removeClass('focused'); - } - }); - - $('input#search').bind('keyup', debounce(function (e) { - if ($(this).val() < 2) { - renderResults([]); - return; - } - - if (e.which === 38 || e.which === 40 || e.keyCode === 13) return; - - var query = $(this).val(); - var results = window.index.search(query).slice(0, 6).map(function (result) { - var href = result.ref.split('http://materializecss.com/')[1]; - return [href.charAt(0).toUpperCase() + href.slice(1), result.ref]; - }); - renderResults(results); - })); - - - $('input#search').bind('keydown', debounce(function (e) { - // Escape. - if (e.keyCode === 27) { - $(this).val(''); - $(this).blur(); - renderResults([]); - return; - } else if (e.keyCode === 13) { - // enter - if ($('.search-results .focused').length) { - $('.search-results .focused').first()[0].click(); - } else if ($('.search-results').children().length) { - $('.search-results').children().first()[0].click(); - } - return; - } - - // Arrow keys. - var focused; - switch(e.which) { - case 38: // up - if ($('.search-results .focused').length) { - focused = $('.search-results .focused'); - focused.removeClass('focused'); - focused.prev().addClass('focused'); - } - break; - - case 40: // down - if (!$('.search-results .focused').length) { - focused = $('.search-results').children().first(); - focused.addClass('focused'); - } else { - focused = $('.search-results .focused'); - if (focused.next().length) { - focused.removeClass('focused'); - focused.next().addClass('focused'); - } - } - break; - - default: return; // exit this handler for other keys - } - e.preventDefault(); - })); - - - - }); -}( jQuery )); \ No newline at end of file diff --git a/node_modules/materialize-css/jade/shadow.jade b/node_modules/materialize-css/jade/shadow.jade deleted file mode 100644 index bc03f2d..0000000 --- a/node_modules/materialize-css/jade/shadow.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Shadow" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/shadow_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/showcase.jade b/node_modules/materialize-css/jade/showcase.jade deleted file mode 100644 index af51141..0000000 --- a/node_modules/materialize-css/jade/showcase.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Showcase" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include showcase/showcase_content.html - include _footer.html - include _scripts.html diff --git a/node_modules/materialize-css/jade/showcase/showcase_content.html b/node_modules/materialize-css/jade/showcase/showcase_content.html deleted file mode 100644 index bfc3139..0000000 --- a/node_modules/materialize-css/jade/showcase/showcase_content.html +++ /dev/null @@ -1,118 +0,0 @@ -
            -
            -
            -

            - Submit your site -

            - - -
            -
            - -
            - - -
            - -
            - -
            Emerald
            -
            -
            - -
            Caliber
            -
            -
            - -
            -
            - -
            Close Heat
            -
            -
            - -
            Stamplay
            -
            -
            - -
            RDX Sports
            -
            -
            - -
            - -
            - -
            Mako
            -
            -
            - -
            Straphq
            -
            -
            - -
            - - -
            - -
            Adbeus
            -
            -
            - -
            -
            - -
            Roboterwelt
            -
            -
            - -
            Joel Cox
            -
            - -
            - -
            -
            - -
            eadBox
            -
            -
            - -
            Webonise
            -
            -
            - -
            Kenya Apps
            -
            - -
            - -
            - -
            - - -
            - - - - diff --git a/node_modules/materialize-css/jade/sideNav.jade b/node_modules/materialize-css/jade/sideNav.jade deleted file mode 100644 index 58c7f2d..0000000 --- a/node_modules/materialize-css/jade/sideNav.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "SideNav" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/sideNav_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/table.jade b/node_modules/materialize-css/jade/table.jade deleted file mode 100644 index 3435fc4..0000000 --- a/node_modules/materialize-css/jade/table.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Table" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/table_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/tabs.jade b/node_modules/materialize-css/jade/tabs.jade deleted file mode 100644 index 5700bf3..0000000 --- a/node_modules/materialize-css/jade/tabs.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Tabs" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/tabs_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/transitions.jade b/node_modules/materialize-css/jade/transitions.jade deleted file mode 100644 index 1b1886e..0000000 --- a/node_modules/materialize-css/jade/transitions.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Transitions" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/transitions_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/typography.jade b/node_modules/materialize-css/jade/typography.jade deleted file mode 100644 index f51717a..0000000 --- a/node_modules/materialize-css/jade/typography.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Typography" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/typography_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/jade/waves.jade b/node_modules/materialize-css/jade/waves.jade deleted file mode 100644 index 64bd904..0000000 --- a/node_modules/materialize-css/jade/waves.jade +++ /dev/null @@ -1,13 +0,0 @@ -- var no_nav = false -- var page = "Waves" - -doctype html -html(lang="en") - head - include _head.jade - body - include _navbar.jade - main - include page-contents/waves_content.html - include _footer.html - include _scripts.html \ No newline at end of file diff --git a/node_modules/materialize-css/js/animation.js b/node_modules/materialize-css/js/animation.js deleted file mode 100644 index f9e6cf3..0000000 --- a/node_modules/materialize-css/js/animation.js +++ /dev/null @@ -1,8 +0,0 @@ -// Custom Easing -jQuery.extend( jQuery.easing, -{ - easeInOutMaterial: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t + b; - return c/4*((t-=2)*t*t + 2) + b; - } -}); \ No newline at end of file diff --git a/node_modules/materialize-css/js/buttons.js b/node_modules/materialize-css/js/buttons.js deleted file mode 100644 index b15a04c..0000000 --- a/node_modules/materialize-css/js/buttons.js +++ /dev/null @@ -1,267 +0,0 @@ -(function ($) { - $(document).ready(function() { - - // jQuery reverse - $.fn.reverse = [].reverse; - - // Hover behaviour: make sure this doesn't work on .click-to-toggle FABs! - $(document).on('mouseenter.fixedActionBtn', '.fixed-action-btn:not(.click-to-toggle):not(.toolbar)', function(e) { - var $this = $(this); - openFABMenu($this); - }); - $(document).on('mouseleave.fixedActionBtn', '.fixed-action-btn:not(.click-to-toggle):not(.toolbar)', function(e) { - var $this = $(this); - closeFABMenu($this); - }); - - // Toggle-on-click behaviour. - $(document).on('click.fabClickToggle', '.fixed-action-btn.click-to-toggle > a', function(e) { - var $this = $(this); - var $menu = $this.parent(); - if ($menu.hasClass('active')) { - closeFABMenu($menu); - } else { - openFABMenu($menu); - } - }); - - // Toolbar transition behaviour. - $(document).on('click.fabToolbar', '.fixed-action-btn.toolbar > a', function(e) { - var $this = $(this); - var $menu = $this.parent(); - FABtoToolbar($menu); - }); - - }); - - $.fn.extend({ - openFAB: function() { - openFABMenu($(this)); - }, - closeFAB: function() { - closeFABMenu($(this)); - }, - openToolbar: function() { - FABtoToolbar($(this)); - }, - closeToolbar: function() { - toolbarToFAB($(this)); - } - }); - - - var openFABMenu = function (btn) { - var $this = btn; - if ($this.hasClass('active') === false) { - - // Get direction option - var horizontal = $this.hasClass('horizontal'); - var offsetY, offsetX; - - if (horizontal === true) { - offsetX = 40; - } else { - offsetY = 40; - } - - $this.addClass('active'); - $this.find('ul .btn-floating').velocity( - { scaleY: ".4", scaleX: ".4", translateY: offsetY + 'px', translateX: offsetX + 'px'}, - { duration: 0 }); - - var time = 0; - $this.find('ul .btn-floating').reverse().each( function () { - $(this).velocity( - { opacity: "1", scaleX: "1", scaleY: "1", translateY: "0", translateX: '0'}, - { duration: 80, delay: time }); - time += 40; - }); - } - }; - - var closeFABMenu = function (btn) { - var $this = btn; - // Get direction option - var horizontal = $this.hasClass('horizontal'); - var offsetY, offsetX; - - if (horizontal === true) { - offsetX = 40; - } else { - offsetY = 40; - } - - $this.removeClass('active'); - var time = 0; - $this.find('ul .btn-floating').velocity("stop", true); - $this.find('ul .btn-floating').velocity( - { opacity: "0", scaleX: ".4", scaleY: ".4", translateY: offsetY + 'px', translateX: offsetX + 'px'}, - { duration: 80 } - ); - }; - - - /** - * Transform FAB into toolbar - * @param {Object} object jQuery object - */ - var FABtoToolbar = function(btn) { - if (btn.attr('data-open') === "true") { - return; - } - - var offsetX, offsetY, scaleFactor; - var windowWidth = window.innerWidth; - var windowHeight = window.innerHeight; - var btnRect = btn[0].getBoundingClientRect(); - var anchor = btn.find('> a').first(); - var menu = btn.find('> ul').first(); - var backdrop = $('
            '); - var fabColor = anchor.css('background-color'); - anchor.append(backdrop); - - offsetX = btnRect.left - (windowWidth / 2) + (btnRect.width / 2); - offsetY = windowHeight - btnRect.bottom; - scaleFactor = windowWidth / backdrop.width(); - btn.attr('data-origin-bottom', btnRect.bottom); - btn.attr('data-origin-left', btnRect.left); - btn.attr('data-origin-width', btnRect.width); - - // Set initial state - btn.addClass('active'); - btn.attr('data-open', true); - btn.css({ - 'text-align': 'center', - width: '100%', - bottom: 0, - left: 0, - transform: 'translateX(' + offsetX + 'px)', - transition: 'none' - }); - anchor.css({ - transform: 'translateY(' + -offsetY + 'px)', - transition: 'none' - }); - backdrop.css({ - 'background-color': fabColor - }); - - - setTimeout(function() { - btn.css({ - transform: '', - transition: 'transform .2s cubic-bezier(0.550, 0.085, 0.680, 0.530), background-color 0s linear .2s' - }); - anchor.css({ - overflow: 'visible', - transform: '', - transition: 'transform .2s' - }); - - setTimeout(function() { - btn.css({ - overflow: 'hidden', - 'background-color': fabColor - }); - backdrop.css({ - transform: 'scale(' + scaleFactor + ')', - transition: 'transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)' - }); - menu.find('> li > a').css({ - opacity: 1 - }); - - // Scroll to close. - $(window).on('scroll.fabToolbarClose', function() { - toolbarToFAB(btn); - $(window).off('scroll.fabToolbarClose'); - $(document).off('click.fabToolbarClose'); - }); - - $(document).on('click.fabToolbarClose', function(e) { - if (!$(e.target).closest(menu).length) { - toolbarToFAB(btn); - $(window).off('scroll.fabToolbarClose'); - $(document).off('click.fabToolbarClose'); - } - }); - }, 100); - }, 0); - }; - - /** - * Transform toolbar back into FAB - * @param {Object} object jQuery object - */ - var toolbarToFAB = function(btn) { - if (btn.attr('data-open') !== "true") { - return; - } - - var offsetX, offsetY, scaleFactor; - var windowWidth = window.innerWidth; - var windowHeight = window.innerHeight; - var btnWidth = btn.attr('data-origin-width'); - var btnBottom = btn.attr('data-origin-bottom'); - var btnLeft = btn.attr('data-origin-left'); - var anchor = btn.find('> .btn-floating').first(); - var menu = btn.find('> ul').first(); - var backdrop = btn.find('.fab-backdrop'); - var fabColor = anchor.css('background-color'); - - offsetX = btnLeft - (windowWidth / 2) + (btnWidth / 2); - offsetY = windowHeight - btnBottom; - scaleFactor = windowWidth / backdrop.width(); - - - // Hide backdrop - btn.removeClass('active'); - btn.attr('data-open', false); - btn.css({ - 'background-color': 'transparent', - transition: 'none' - }); - anchor.css({ - transition: 'none' - }); - backdrop.css({ - transform: 'scale(0)', - 'background-color': fabColor - }); - menu.find('> li > a').css({ - opacity: '' - }); - - setTimeout(function() { - backdrop.remove(); - - // Set initial state. - btn.css({ - 'text-align': '', - width: '', - bottom: '', - left: '', - overflow: '', - 'background-color': '', - transform: 'translate3d(' + -offsetX + 'px,0,0)' - }); - anchor.css({ - overflow: '', - transform: 'translate3d(0,' + offsetY + 'px,0)' - }); - - setTimeout(function() { - btn.css({ - transform: 'translate3d(0,0,0)', - transition: 'transform .2s' - }); - anchor.css({ - transform: 'translate3d(0,0,0)', - transition: 'transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)' - }); - }, 20); - }, 200); - }; - - -}( jQuery )); diff --git a/node_modules/materialize-css/js/cards.js b/node_modules/materialize-css/js/cards.js deleted file mode 100644 index ccd6610..0000000 --- a/node_modules/materialize-css/js/cards.js +++ /dev/null @@ -1,26 +0,0 @@ -(function ($) { - $(document).ready(function() { - - $(document).on('click.card', '.card', function (e) { - if ($(this).find('> .card-reveal').length) { - if ($(e.target).is($('.card-reveal .card-title')) || $(e.target).is($('.card-reveal .card-title i'))) { - // Make Reveal animate down and display none - $(this).find('.card-reveal').velocity( - {translateY: 0}, { - duration: 225, - queue: false, - easing: 'easeInOutQuad', - complete: function() { $(this).css({ display: 'none'}); } - } - ); - } - else if ($(e.target).is($('.card .activator')) || - $(e.target).is($('.card .activator i')) ) { - $(e.target).closest('.card').css('overflow', 'hidden'); - $(this).find('.card-reveal').css({ display: 'block'}).velocity("stop", false).velocity({translateY: '-100%'}, {duration: 300, queue: false, easing: 'easeInOutQuad'}); - } - } - }); - - }); -}( jQuery )); \ No newline at end of file diff --git a/node_modules/materialize-css/js/carousel.js b/node_modules/materialize-css/js/carousel.js deleted file mode 100644 index 6a8b8fe..0000000 --- a/node_modules/materialize-css/js/carousel.js +++ /dev/null @@ -1,481 +0,0 @@ -(function ($) { - - var methods = { - - init : function(options) { - var defaults = { - duration: 200, // ms - dist: -100, // zoom scale TODO: make this more intuitive as an option - shift: 0, // spacing for center image - padding: 0, // Padding between non center items - fullWidth: false, // Change to full width styles - indicators: false, // Toggle indicators - noWrap: false, // Don't wrap around and cycle through items. - onCycleTo: null // Callback for when a new slide is cycled to. - }; - options = $.extend(defaults, options); - - return this.each(function() { - - var images, item_width, item_height, offset, center, pressed, dim, count, - reference, referenceY, amplitude, target, velocity, - xform, frame, timestamp, ticker, dragged, vertical_dragged; - var $indicators = $('
              '); - - - // Initialize - var view = $(this); - var showIndicators = view.attr('data-indicators') || options.indicators; - - // Don't double initialize. - if (view.hasClass('initialized')) { - // Redraw carousel. - $(this).trigger('carouselNext', [0.000001]); - return true; - } - - - // Options - if (options.fullWidth) { - options.dist = 0; - var firstImage = view.find('.carousel-item img').first(); - if (firstImage.length) { - imageHeight = firstImage.on('load', function(){ - view.css('height', $(this).height()); - }); - } else { - imageHeight = view.find('.carousel-item').first().height(); - view.css('height', imageHeight); - } - - // Offset fixed items when indicators. - if (showIndicators) { - view.find('.carousel-fixed-item').addClass('with-indicators'); - } - } - - - view.addClass('initialized'); - pressed = false; - offset = target = 0; - images = []; - item_width = view.find('.carousel-item').first().innerWidth(); - item_height = view.find('.carousel-item').first().innerHeight(); - dim = item_width * 2 + options.padding; - - view.find('.carousel-item').each(function (i) { - images.push($(this)[0]); - if (showIndicators) { - var $indicator = $('
            • '); - - // Add active to first by default. - if (i === 0) { - $indicator.addClass('active'); - } - - // Handle clicks on indicators. - $indicator.click(function (e) { - e.stopPropagation(); - - var index = $(this).index(); - cycleTo(index); - }); - $indicators.append($indicator); - } - }); - - if (showIndicators) { - view.append($indicators); - } - count = images.length; - - - function setupEvents() { - if (typeof window.ontouchstart !== 'undefined') { - view[0].addEventListener('touchstart', tap); - view[0].addEventListener('touchmove', drag); - view[0].addEventListener('touchend', release); - } - view[0].addEventListener('mousedown', tap); - view[0].addEventListener('mousemove', drag); - view[0].addEventListener('mouseup', release); - view[0].addEventListener('mouseleave', release); - view[0].addEventListener('click', click); - } - - function xpos(e) { - // touch event - if (e.targetTouches && (e.targetTouches.length >= 1)) { - return e.targetTouches[0].clientX; - } - - // mouse event - return e.clientX; - } - - function ypos(e) { - // touch event - if (e.targetTouches && (e.targetTouches.length >= 1)) { - return e.targetTouches[0].clientY; - } - - // mouse event - return e.clientY; - } - - function wrap(x) { - return (x >= count) ? (x % count) : (x < 0) ? wrap(count + (x % count)) : x; - } - - function scroll(x) { - var i, half, delta, dir, tween, el, alignment, xTranslation; - var lastCenter = center; - - offset = (typeof x === 'number') ? x : offset; - center = Math.floor((offset + dim / 2) / dim); - delta = offset - center * dim; - dir = (delta < 0) ? 1 : -1; - tween = -dir * delta * 2 / dim; - half = count >> 1; - - if (!options.fullWidth) { - alignment = 'translateX(' + (view[0].clientWidth - item_width) / 2 + 'px) '; - alignment += 'translateY(' + (view[0].clientHeight - item_height) / 2 + 'px)'; - } else { - alignment = 'translateX(0)'; - } - - // Set indicator active - if (showIndicators) { - var diff = (center % count); - var activeIndicator = $indicators.find('.indicator-item.active'); - if (activeIndicator.index() !== diff) { - activeIndicator.removeClass('active'); - $indicators.find('.indicator-item').eq(diff).addClass('active'); - } - } - - // center - // Don't show wrapped items. - if (!options.noWrap || (center >= 0 && center < count)) { - el = images[wrap(center)]; - - // Add active class to center item. - if (!$(el).hasClass('active')) { - view.find('.carousel-item').removeClass('active'); - $(el).addClass('active'); - } - el.style[xform] = alignment + - ' translateX(' + (-delta / 2) + 'px)' + - ' translateX(' + (dir * options.shift * tween * i) + 'px)' + - ' translateZ(' + (options.dist * tween) + 'px)'; - el.style.zIndex = 0; - if (options.fullWidth) { tweenedOpacity = 1; } - else { tweenedOpacity = 1 - 0.2 * tween; } - el.style.opacity = tweenedOpacity; - el.style.display = 'block'; - } - - for (i = 1; i <= half; ++i) { - // right side - if (options.fullWidth) { - zTranslation = options.dist; - tweenedOpacity = (i === half && delta < 0) ? 1 - tween : 1; - } else { - zTranslation = options.dist * (i * 2 + tween * dir); - tweenedOpacity = 1 - 0.2 * (i * 2 + tween * dir); - } - // Don't show wrapped items. - if (!options.noWrap || center + i < count) { - el = images[wrap(center + i)]; - el.style[xform] = alignment + - ' translateX(' + (options.shift + (dim * i - delta) / 2) + 'px)' + - ' translateZ(' + zTranslation + 'px)'; - el.style.zIndex = -i; - el.style.opacity = tweenedOpacity; - el.style.display = 'block'; - } - - - // left side - if (options.fullWidth) { - zTranslation = options.dist; - tweenedOpacity = (i === half && delta > 0) ? 1 - tween : 1; - } else { - zTranslation = options.dist * (i * 2 - tween * dir); - tweenedOpacity = 1 - 0.2 * (i * 2 - tween * dir); - } - // Don't show wrapped items. - if (!options.noWrap || center - i >= 0) { - el = images[wrap(center - i)]; - el.style[xform] = alignment + - ' translateX(' + (-options.shift + (-dim * i - delta) / 2) + 'px)' + - ' translateZ(' + zTranslation + 'px)'; - el.style.zIndex = -i; - el.style.opacity = tweenedOpacity; - el.style.display = 'block'; - } - } - - // center - // Don't show wrapped items. - if (!options.noWrap || (center >= 0 && center < count)) { - el = images[wrap(center)]; - el.style[xform] = alignment + - ' translateX(' + (-delta / 2) + 'px)' + - ' translateX(' + (dir * options.shift * tween) + 'px)' + - ' translateZ(' + (options.dist * tween) + 'px)'; - el.style.zIndex = 0; - if (options.fullWidth) { tweenedOpacity = 1; } - else { tweenedOpacity = 1 - 0.2 * tween; } - el.style.opacity = tweenedOpacity; - el.style.display = 'block'; - } - - // onCycleTo callback - if (lastCenter !== center && - typeof(options.onCycleTo) === "function") { - var $curr_item = view.find('.carousel-item').eq(wrap(center)); - options.onCycleTo.call(this, $curr_item, dragged); - } - } - - function track() { - var now, elapsed, delta, v; - - now = Date.now(); - elapsed = now - timestamp; - timestamp = now; - delta = offset - frame; - frame = offset; - - v = 1000 * delta / (1 + elapsed); - velocity = 0.8 * v + 0.2 * velocity; - } - - function autoScroll() { - var elapsed, delta; - - if (amplitude) { - elapsed = Date.now() - timestamp; - delta = amplitude * Math.exp(-elapsed / options.duration); - if (delta > 2 || delta < -2) { - scroll(target - delta); - requestAnimationFrame(autoScroll); - } else { - scroll(target); - } - } - } - - function click(e) { - // Disable clicks if carousel was dragged. - if (dragged) { - e.preventDefault(); - e.stopPropagation(); - return false; - - } else if (!options.fullWidth) { - var clickedIndex = $(e.target).closest('.carousel-item').index(); - var diff = (center % count) - clickedIndex; - - // Disable clicks if carousel was shifted by click - if (diff !== 0) { - e.preventDefault(); - e.stopPropagation(); - } - cycleTo(clickedIndex); - } - } - - function cycleTo(n) { - var diff = (center % count) - n; - - // Account for wraparound. - if (!options.noWrap) { - if (diff < 0) { - if (Math.abs(diff + count) < Math.abs(diff)) { diff += count; } - - } else if (diff > 0) { - if (Math.abs(diff - count) < diff) { diff -= count; } - } - } - - // Call prev or next accordingly. - if (diff < 0) { - view.trigger('carouselNext', [Math.abs(diff)]); - - } else if (diff > 0) { - view.trigger('carouselPrev', [diff]); - } - } - - function tap(e) { - pressed = true; - dragged = false; - vertical_dragged = false; - reference = xpos(e); - referenceY = ypos(e); - - velocity = amplitude = 0; - frame = offset; - timestamp = Date.now(); - clearInterval(ticker); - ticker = setInterval(track, 100); - - } - - function drag(e) { - var x, delta, deltaY; - if (pressed) { - x = xpos(e); - y = ypos(e); - delta = reference - x; - deltaY = Math.abs(referenceY - y); - if (deltaY < 30 && !vertical_dragged) { - // If vertical scrolling don't allow dragging. - if (delta > 2 || delta < -2) { - dragged = true; - reference = x; - scroll(offset + delta); - } - - } else if (dragged) { - // If dragging don't allow vertical scroll. - e.preventDefault(); - e.stopPropagation(); - return false; - - } else { - // Vertical scrolling. - vertical_dragged = true; - } - } - - if (dragged) { - // If dragging don't allow vertical scroll. - e.preventDefault(); - e.stopPropagation(); - return false; - } - } - - function release(e) { - if (pressed) { - pressed = false; - } else { - return; - } - - clearInterval(ticker); - target = offset; - if (velocity > 10 || velocity < -10) { - amplitude = 0.9 * velocity; - target = offset + amplitude; - } - target = Math.round(target / dim) * dim; - - // No wrap of items. - if (options.noWrap) { - if (target >= dim * (count - 1)) { - target = dim * (count - 1); - } else if (target < 0) { - target = 0; - } - } - amplitude = target - offset; - timestamp = Date.now(); - requestAnimationFrame(autoScroll); - - if (dragged) { - e.preventDefault(); - e.stopPropagation(); - } - return false; - } - - xform = 'transform'; - ['webkit', 'Moz', 'O', 'ms'].every(function (prefix) { - var e = prefix + 'Transform'; - if (typeof document.body.style[e] !== 'undefined') { - xform = e; - return false; - } - return true; - }); - - - $(window).on('resize.carousel', function() { - if (options.fullWidth) { - item_width = view.find('.carousel-item').first().innerWidth(); - item_height = view.find('.carousel-item').first().innerHeight(); - dim = item_width * 2 + options.padding; - offset = center * 2 * item_width; - target = offset; - } else { - scroll(); - } - }); - - setupEvents(); - scroll(offset); - - $(this).on('carouselNext', function(e, n) { - if (n === undefined) { - n = 1; - } - target = (dim * Math.round(offset / dim)) + (dim * n); - if (offset !== target) { - amplitude = target - offset; - timestamp = Date.now(); - requestAnimationFrame(autoScroll); - } - }); - - $(this).on('carouselPrev', function(e, n) { - if (n === undefined) { - n = 1; - } - target = (dim * Math.round(offset / dim)) - (dim * n); - if (offset !== target) { - amplitude = target - offset; - timestamp = Date.now(); - requestAnimationFrame(autoScroll); - } - }); - - $(this).on('carouselSet', function(e, n) { - if (n === undefined) { - n = 0; - } - cycleTo(n); - }); - - }); - - - - }, - next : function(n) { - $(this).trigger('carouselNext', [n]); - }, - prev : function(n) { - $(this).trigger('carouselPrev', [n]); - }, - set : function(n) { - $(this).trigger('carouselSet', [n]); - } - }; - - - $.fn.carousel = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.carousel' ); - } - }; // Plugin end -}( jQuery )); \ No newline at end of file diff --git a/node_modules/materialize-css/js/character_counter.js b/node_modules/materialize-css/js/character_counter.js deleted file mode 100644 index f85bf91..0000000 --- a/node_modules/materialize-css/js/character_counter.js +++ /dev/null @@ -1,72 +0,0 @@ -(function ($) { - - $.fn.characterCounter = function(){ - return this.each(function(){ - var $input = $(this); - var $counterElement = $input.parent().find('span[class="character-counter"]'); - - // character counter has already been added appended to the parent container - if ($counterElement.length) { - return; - } - - var itHasLengthAttribute = $input.attr('data-length') !== undefined; - - if(itHasLengthAttribute){ - $input.on('input', updateCounter); - $input.on('focus', updateCounter); - $input.on('blur', removeCounterElement); - - addCounterElement($input); - } - - }); - }; - - function updateCounter(){ - var maxLength = +$(this).attr('data-length'), - actualLength = +$(this).val().length, - isValidLength = actualLength <= maxLength; - - $(this).parent().find('span[class="character-counter"]') - .html( actualLength + '/' + maxLength); - - addInputStyle(isValidLength, $(this)); - } - - function addCounterElement($input) { - var $counterElement = $input.parent().find('span[class="character-counter"]'); - - if ($counterElement.length) { - return; - } - - $counterElement = $('') - .addClass('character-counter') - .css('float','right') - .css('font-size','12px') - .css('height', 1); - - $input.parent().append($counterElement); - } - - function removeCounterElement(){ - $(this).parent().find('span[class="character-counter"]').html(''); - } - - function addInputStyle(isValidLength, $input){ - var inputHasInvalidClass = $input.hasClass('invalid'); - if (isValidLength && inputHasInvalidClass) { - $input.removeClass('invalid'); - } - else if(!isValidLength && !inputHasInvalidClass){ - $input.removeClass('valid'); - $input.addClass('invalid'); - } - } - - $(document).ready(function(){ - $('input, textarea').characterCounter(); - }); - -}( jQuery )); diff --git a/node_modules/materialize-css/js/chips.js b/node_modules/materialize-css/js/chips.js deleted file mode 100644 index 3238cd8..0000000 --- a/node_modules/materialize-css/js/chips.js +++ /dev/null @@ -1,318 +0,0 @@ -(function ($) { - var materialChipsDefaults = { - data: [], - placeholder: '', - secondaryPlaceholder: '', - autocompleteData: {}, - autocompleteLimit: Infinity, - }; - - $(document).ready(function() { - // Handle removal of static chips. - $(document).on('click', '.chip .close', function(e){ - var $chips = $(this).closest('.chips'); - if ($chips.attr('data-initialized')) { - return; - } - $(this).closest('.chip').remove(); - }); - }); - - $.fn.material_chip = function (options) { - var self = this; - this.$el = $(this); - this.$document = $(document); - this.SELS = { - CHIPS: '.chips', - CHIP: '.chip', - INPUT: 'input', - DELETE: '.material-icons', - SELECTED_CHIP: '.selected', - }; - - if ('data' === options) { - return this.$el.data('chips'); - } - - var curr_options = $.extend({}, materialChipsDefaults, options); - self.hasAutocomplete = !$.isEmptyObject(curr_options.autocompleteData); - - // Initialize - this.init = function() { - var i = 0; - var chips; - self.$el.each(function(){ - var $chips = $(this); - var chipId = Materialize.guid(); - self.chipId = chipId; - - if (!curr_options.data || !(curr_options.data instanceof Array)) { - curr_options.data = []; - } - $chips.data('chips', curr_options.data); - $chips.attr('data-index', i); - $chips.attr('data-initialized', true); - - if (!$chips.hasClass(self.SELS.CHIPS)) { - $chips.addClass('chips'); - } - - self.chips($chips, chipId); - i++; - }); - }; - - this.handleEvents = function() { - var SELS = self.SELS; - - self.$document.off('click.chips-focus', SELS.CHIPS).on('click.chips-focus', SELS.CHIPS, function(e){ - $(e.target).find(SELS.INPUT).focus(); - }); - - self.$document.off('click.chips-select', SELS.CHIP).on('click.chips-select', SELS.CHIP, function(e){ - var $chip = $(e.target); - if ($chip.length) { - var wasSelected = $chip.hasClass('selected'); - var $chips = $chip.closest(SELS.CHIPS); - $(SELS.CHIP).removeClass('selected'); - - if (!wasSelected) { - self.selectChip($chip.index(), $chips); - } - } - }); - - self.$document.off('keydown.chips').on('keydown.chips', function(e){ - if ($(e.target).is('input, textarea')) { - return; - } - - // delete - var $chip = self.$document.find(SELS.CHIP + SELS.SELECTED_CHIP); - var $chips = $chip.closest(SELS.CHIPS); - var length = $chip.siblings(SELS.CHIP).length; - var index; - - if (!$chip.length) { - return; - } - - if (e.which === 8 || e.which === 46) { - e.preventDefault(); - - index = $chip.index(); - self.deleteChip(index, $chips); - - var selectIndex = null; - if ((index + 1) < length) { - selectIndex = index; - } else if (index === length || (index + 1) === length) { - selectIndex = length - 1; - } - - if (selectIndex < 0) selectIndex = null; - - if (null !== selectIndex) { - self.selectChip(selectIndex, $chips); - } - if (!length) $chips.find('input').focus(); - - // left - } else if (e.which === 37) { - index = $chip.index() - 1; - if (index < 0) { - return; - } - $(SELS.CHIP).removeClass('selected'); - self.selectChip(index, $chips); - - // right - } else if (e.which === 39) { - index = $chip.index() + 1; - $(SELS.CHIP).removeClass('selected'); - if (index > length) { - $chips.find('input').focus(); - return; - } - self.selectChip(index, $chips); - } - }); - - self.$document.off('focusin.chips', SELS.CHIPS + ' ' + SELS.INPUT).on('focusin.chips', SELS.CHIPS + ' ' + SELS.INPUT, function(e){ - var $currChips = $(e.target).closest(SELS.CHIPS); - $currChips.addClass('focus'); - $currChips.siblings('label, .prefix').addClass('active'); - $(SELS.CHIP).removeClass('selected'); - }); - - self.$document.off('focusout.chips', SELS.CHIPS + ' ' + SELS.INPUT).on('focusout.chips', SELS.CHIPS + ' ' + SELS.INPUT, function(e){ - var $currChips = $(e.target).closest(SELS.CHIPS); - $currChips.removeClass('focus'); - - // Remove active if empty - if (!$currChips.data('chips').length) { - $currChips.siblings('label').removeClass('active'); - } - $currChips.siblings('.prefix').removeClass('active'); - }); - - self.$document.off('keydown.chips-add', SELS.CHIPS + ' ' + SELS.INPUT).on('keydown.chips-add', SELS.CHIPS + ' ' + SELS.INPUT, function(e){ - var $target = $(e.target); - var $chips = $target.closest(SELS.CHIPS); - var chipsLength = $chips.children(SELS.CHIP).length; - - // enter - if (13 === e.which) { - // Override enter if autocompleting. - if (self.hasAutocomplete && - $chips.find('.autocomplete-content.dropdown-content').length && - $chips.find('.autocomplete-content.dropdown-content').children().length) { - return; - } - - e.preventDefault(); - self.addChip({tag: $target.val()}, $chips); - $target.val(''); - return; - } - - // delete or left - if ((8 === e.keyCode || 37 === e.keyCode) && '' === $target.val() && chipsLength) { - e.preventDefault(); - self.selectChip(chipsLength - 1, $chips); - $target.blur(); - return; - } - }); - - // Click on delete icon in chip. - self.$document.off('click.chips-delete', SELS.CHIPS + ' ' + SELS.DELETE).on('click.chips-delete', SELS.CHIPS + ' ' + SELS.DELETE, function(e) { - var $target = $(e.target); - var $chips = $target.closest(SELS.CHIPS); - var $chip = $target.closest(SELS.CHIP); - e.stopPropagation(); - self.deleteChip($chip.index(), $chips); - $chips.find('input').focus(); - }); - }; - - this.chips = function($chips, chipId) { - var html = ''; - $chips.data('chips').forEach(function(elem){ - html += self.renderChip(elem); - }); - html += ''; - $chips.html(html); - self.setPlaceholder($chips); - - // Set for attribute for label - var label = $chips.next('label'); - if (label.length) { - label.attr('for', chipId); - - if ($chips.data('chips').length) { - label.addClass('active'); - } - } - - // Setup autocomplete if needed. - var input = $('#' + chipId); - if (self.hasAutocomplete) { - input.autocomplete({ - data: curr_options.autocompleteData, - limit: curr_options.autocompleteLimit, - onAutocomplete: function(val) { - self.addChip({tag: val}, $chips); - input.val(''); - input.focus(); - }, - }) - } - }; - - this.renderChip = function(elem) { - if (!elem.tag) return; - - var html = '
              ' + elem.tag; - if (elem.image) { - html += ' '; - } - html += 'close'; - html += '
              '; - return html; - }; - - this.setPlaceholder = function($chips) { - if ($chips.data('chips').length && curr_options.placeholder) { - $chips.find('input').prop('placeholder', curr_options.placeholder); - - } else if (!$chips.data('chips').length && curr_options.secondaryPlaceholder) { - $chips.find('input').prop('placeholder', curr_options.secondaryPlaceholder); - } - }; - - this.isValid = function($chips, elem) { - var chips = $chips.data('chips'); - var exists = false; - for (var i=0; i < chips.length; i++) { - if (chips[i].tag === elem.tag) { - exists = true; - return; - } - } - return '' !== elem.tag && !exists; - }; - - this.addChip = function(elem, $chips) { - if (!self.isValid($chips, elem)) { - return; - } - var chipHtml = self.renderChip(elem); - var newData = []; - var oldData = $chips.data('chips'); - for (var i = 0; i < oldData.length; i++) { - newData.push(oldData[i]); - } - newData.push(elem); - - $chips.data('chips', newData); - $(chipHtml).insertBefore($chips.find('input')); - $chips.trigger('chip.add', elem); - self.setPlaceholder($chips); - }; - - this.deleteChip = function(chipIndex, $chips) { - var chip = $chips.data('chips')[chipIndex]; - $chips.find('.chip').eq(chipIndex).remove(); - - var newData = []; - var oldData = $chips.data('chips'); - for (var i = 0; i < oldData.length; i++) { - if (i !== chipIndex) { - newData.push(oldData[i]); - } - } - - $chips.data('chips', newData); - $chips.trigger('chip.delete', chip); - self.setPlaceholder($chips); - }; - - this.selectChip = function(chipIndex, $chips) { - var $chip = $chips.find('.chip').eq(chipIndex); - if ($chip && false === $chip.hasClass('selected')) { - $chip.addClass('selected'); - $chips.trigger('chip.select', $chips.data('chips')[chipIndex]); - } - }; - - this.getChipsElement = function(index, $chips) { - return $chips.eq(index); - }; - - // init - this.init(); - - this.handleEvents(); - }; -}( jQuery )); diff --git a/node_modules/materialize-css/js/collapsible.js b/node_modules/materialize-css/js/collapsible.js deleted file mode 100644 index 650c702..0000000 --- a/node_modules/materialize-css/js/collapsible.js +++ /dev/null @@ -1,160 +0,0 @@ -(function ($) { - $.fn.collapsible = function(options) { - var defaults = { - accordion: undefined, - onOpen: undefined, - onClose: undefined - }; - - options = $.extend(defaults, options); - - - return this.each(function() { - - var $this = $(this); - - var $panel_headers = $(this).find('> li > .collapsible-header'); - - var collapsible_type = $this.data("collapsible"); - - // Turn off any existing event handlers - $this.off('click.collapse', '> li > .collapsible-header'); - $panel_headers.off('click.collapse'); - - - /**************** - Helper Functions - ****************/ - - // Accordion Open - function accordionOpen(object) { - $panel_headers = $this.find('> li > .collapsible-header'); - if (object.hasClass('active')) { - object.parent().addClass('active'); - } - else { - object.parent().removeClass('active'); - } - if (object.parent().hasClass('active')){ - object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); - } - else{ - object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); - } - - $panel_headers.not(object).removeClass('active').parent().removeClass('active'); - - // Close previously open accordion elements. - $panel_headers.not(object).parent().children('.collapsible-body').stop(true,false).each(function() { - if ($(this).is(':visible')) { - $(this).slideUp({ - duration: 350, - easing: "easeOutQuart", - queue: false, - complete: - function() { - $(this).css('height', ''); - execCallbacks($(this).siblings('.collapsible-header')); - } - }); - } - }); - } - - // Expandable Open - function expandableOpen(object) { - if (object.hasClass('active')) { - object.parent().addClass('active'); - } - else { - object.parent().removeClass('active'); - } - if (object.parent().hasClass('active')){ - object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); - } - else { - object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); - } - } - - // Open collapsible. object: .collapsible-header - function collapsibleOpen(object) { - if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) { // Handle Accordion - accordionOpen(object); - } else { // Handle Expandables - expandableOpen(object); - } - - execCallbacks(object); - } - - // Handle callbacks - function execCallbacks(object) { - if (object.hasClass('active')) { - if (typeof(options.onOpen) === "function") { - options.onOpen.call(this, object.parent()); - } - } else { - if (typeof(options.onClose) === "function") { - options.onClose.call(this, object.parent()); - } - } - } - - /** - * Check if object is children of panel header - * @param {Object} object Jquery object - * @return {Boolean} true if it is children - */ - function isChildrenOfPanelHeader(object) { - - var panelHeader = getPanelHeader(object); - - return panelHeader.length > 0; - } - - /** - * Get panel header from a children element - * @param {Object} object Jquery object - * @return {Object} panel header object - */ - function getPanelHeader(object) { - - return object.closest('li > .collapsible-header'); - } - - /***** End Helper Functions *****/ - - - - // Add click handler to only direct collapsible header children - $this.on('click.collapse', '> li > .collapsible-header', function(e) { - var element = $(e.target); - - if (isChildrenOfPanelHeader(element)) { - element = getPanelHeader(element); - } - - element.toggleClass('active'); - - collapsibleOpen(element); - }); - - - // Open first active - if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) { // Handle Accordion - collapsibleOpen($panel_headers.filter('.active').first()); - - } else { // Handle Expandables - $panel_headers.filter('.active').each(function() { - collapsibleOpen($(this)); - }); - } - - }); - }; - - $(document).ready(function(){ - $('.collapsible').collapsible(); - }); -}( jQuery )); \ No newline at end of file diff --git a/node_modules/materialize-css/js/date_picker/picker.date.js b/node_modules/materialize-css/js/date_picker/picker.date.js deleted file mode 100644 index fb264d0..0000000 --- a/node_modules/materialize-css/js/date_picker/picker.date.js +++ /dev/null @@ -1,1430 +0,0 @@ -/*! - * Date picker for pickadate.js v3.5.0 - * http://amsul.github.io/pickadate.js/date.htm - */ - -(function ( factory ) { - - // AMD. - if ( typeof define == 'function' && define.amd ) - define( ['picker', 'jquery'], factory ) - - // Node.js/browserify. - else if ( typeof exports == 'object' ) - module.exports = factory( require('./picker.js'), require('jquery') ) - - // Browser globals. - else factory( Picker, jQuery ) - -}(function( Picker, $ ) { - - -/** - * Globals and constants - */ -var DAYS_IN_WEEK = 7, - WEEKS_IN_CALENDAR = 6, - _ = Picker._ - - - -/** - * The date picker constructor - */ -function DatePicker( picker, settings ) { - - var calendar = this, - element = picker.$node[ 0 ], - elementValue = element.value, - elementDataValue = picker.$node.data( 'value' ), - valueString = elementDataValue || elementValue, - formatString = elementDataValue ? settings.formatSubmit : settings.format, - isRTL = function() { - - return element.currentStyle ? - - // For IE. - element.currentStyle.direction == 'rtl' : - - // For normal browsers. - getComputedStyle( picker.$root[0] ).direction == 'rtl' - } - - calendar.settings = settings - calendar.$node = picker.$node - - // The queue of methods that will be used to build item objects. - calendar.queue = { - min: 'measure create', - max: 'measure create', - now: 'now create', - select: 'parse create validate', - highlight: 'parse navigate create validate', - view: 'parse create validate viewset', - disable: 'deactivate', - enable: 'activate' - } - - // The component's item object. - calendar.item = {} - - calendar.item.clear = null - calendar.item.disable = ( settings.disable || [] ).slice( 0 ) - calendar.item.enable = -(function( collectionDisabled ) { - return collectionDisabled[ 0 ] === true ? collectionDisabled.shift() : -1 - })( calendar.item.disable ) - - calendar. - set( 'min', settings.min ). - set( 'max', settings.max ). - set( 'now' ) - - // When there’s a value, set the `select`, which in turn - // also sets the `highlight` and `view`. - if ( valueString ) { - calendar.set( 'select', valueString, { format: formatString }) - } - - // If there’s no value, default to highlighting “today”. - else { - calendar. - set( 'select', null ). - set( 'highlight', calendar.item.now ) - } - - - // The keycode to movement mapping. - calendar.key = { - 40: 7, // Down - 38: -7, // Up - 39: function() { return isRTL() ? -1 : 1 }, // Right - 37: function() { return isRTL() ? 1 : -1 }, // Left - go: function( timeChange ) { - var highlightedObject = calendar.item.highlight, - targetDate = new Date( highlightedObject.year, highlightedObject.month, highlightedObject.date + timeChange ) - calendar.set( - 'highlight', - targetDate, - { interval: timeChange } - ) - this.render() - } - } - - - // Bind some picker events. - picker. - on( 'render', function() { - picker.$root.find( '.' + settings.klass.selectMonth ).on( 'change', function() { - var value = this.value - if ( value ) { - picker.set( 'highlight', [ picker.get( 'view' ).year, value, picker.get( 'highlight' ).date ] ) - picker.$root.find( '.' + settings.klass.selectMonth ).trigger( 'focus' ) - } - }) - picker.$root.find( '.' + settings.klass.selectYear ).on( 'change', function() { - var value = this.value - if ( value ) { - picker.set( 'highlight', [ value, picker.get( 'view' ).month, picker.get( 'highlight' ).date ] ) - picker.$root.find( '.' + settings.klass.selectYear ).trigger( 'focus' ) - } - }) - }, 1 ). - on( 'open', function() { - var includeToday = '' - if ( calendar.disabled( calendar.get('now') ) ) { - includeToday = ':not(.' + settings.klass.buttonToday + ')' - } - picker.$root.find( 'button' + includeToday + ', select' ).attr( 'disabled', false ) - }, 1 ). - on( 'close', function() { - picker.$root.find( 'button, select' ).attr( 'disabled', true ) - }, 1 ) - -} //DatePicker - - -/** - * Set a datepicker item object. - */ -DatePicker.prototype.set = function( type, value, options ) { - - var calendar = this, - calendarItem = calendar.item - - // If the value is `null` just set it immediately. - if ( value === null ) { - if ( type == 'clear' ) type = 'select' - calendarItem[ type ] = value - return calendar - } - - // Otherwise go through the queue of methods, and invoke the functions. - // Update this as the time unit, and set the final value as this item. - // * In the case of `enable`, keep the queue but set `disable` instead. - // And in the case of `flip`, keep the queue but set `enable` instead. - calendarItem[ ( type == 'enable' ? 'disable' : type == 'flip' ? 'enable' : type ) ] = calendar.queue[ type ].split( ' ' ).map( function( method ) { - value = calendar[ method ]( type, value, options ) - return value - }).pop() - - // Check if we need to cascade through more updates. - if ( type == 'select' ) { - calendar.set( 'highlight', calendarItem.select, options ) - } - else if ( type == 'highlight' ) { - calendar.set( 'view', calendarItem.highlight, options ) - } - else if ( type.match( /^(flip|min|max|disable|enable)$/ ) ) { - if ( calendarItem.select && calendar.disabled( calendarItem.select ) ) { - calendar.set( 'select', calendarItem.select, options ) - } - if ( calendarItem.highlight && calendar.disabled( calendarItem.highlight ) ) { - calendar.set( 'highlight', calendarItem.highlight, options ) - } - } - - return calendar -} //DatePicker.prototype.set - - -/** - * Get a datepicker item object. - */ -DatePicker.prototype.get = function( type ) { - return this.item[ type ] -} //DatePicker.prototype.get - - -/** - * Create a picker date object. - */ -DatePicker.prototype.create = function( type, value, options ) { - - var isInfiniteValue, - calendar = this - - // If there’s no value, use the type as the value. - value = value === undefined ? type : value - - - // If it’s infinity, update the value. - if ( value == -Infinity || value == Infinity ) { - isInfiniteValue = value - } - - // If it’s an object, use the native date object. - else if ( $.isPlainObject( value ) && _.isInteger( value.pick ) ) { - value = value.obj - } - - // If it’s an array, convert it into a date and make sure - // that it’s a valid date – otherwise default to today. - else if ( $.isArray( value ) ) { - value = new Date( value[ 0 ], value[ 1 ], value[ 2 ] ) - value = _.isDate( value ) ? value : calendar.create().obj - } - - // If it’s a number or date object, make a normalized date. - else if ( _.isInteger( value ) || _.isDate( value ) ) { - value = calendar.normalize( new Date( value ), options ) - } - - // If it’s a literal true or any other case, set it to now. - else /*if ( value === true )*/ { - value = calendar.now( type, value, options ) - } - - // Return the compiled object. - return { - year: isInfiniteValue || value.getFullYear(), - month: isInfiniteValue || value.getMonth(), - date: isInfiniteValue || value.getDate(), - day: isInfiniteValue || value.getDay(), - obj: isInfiniteValue || value, - pick: isInfiniteValue || value.getTime() - } -} //DatePicker.prototype.create - - -/** - * Create a range limit object using an array, date object, - * literal “true”, or integer relative to another time. - */ -DatePicker.prototype.createRange = function( from, to ) { - - var calendar = this, - createDate = function( date ) { - if ( date === true || $.isArray( date ) || _.isDate( date ) ) { - return calendar.create( date ) - } - return date - } - - // Create objects if possible. - if ( !_.isInteger( from ) ) { - from = createDate( from ) - } - if ( !_.isInteger( to ) ) { - to = createDate( to ) - } - - // Create relative dates. - if ( _.isInteger( from ) && $.isPlainObject( to ) ) { - from = [ to.year, to.month, to.date + from ]; - } - else if ( _.isInteger( to ) && $.isPlainObject( from ) ) { - to = [ from.year, from.month, from.date + to ]; - } - - return { - from: createDate( from ), - to: createDate( to ) - } -} //DatePicker.prototype.createRange - - -/** - * Check if a date unit falls within a date range object. - */ -DatePicker.prototype.withinRange = function( range, dateUnit ) { - range = this.createRange(range.from, range.to) - return dateUnit.pick >= range.from.pick && dateUnit.pick <= range.to.pick -} - - -/** - * Check if two date range objects overlap. - */ -DatePicker.prototype.overlapRanges = function( one, two ) { - - var calendar = this - - // Convert the ranges into comparable dates. - one = calendar.createRange( one.from, one.to ) - two = calendar.createRange( two.from, two.to ) - - return calendar.withinRange( one, two.from ) || calendar.withinRange( one, two.to ) || - calendar.withinRange( two, one.from ) || calendar.withinRange( two, one.to ) -} - - -/** - * Get the date today. - */ -DatePicker.prototype.now = function( type, value, options ) { - value = new Date() - if ( options && options.rel ) { - value.setDate( value.getDate() + options.rel ) - } - return this.normalize( value, options ) -} - - -/** - * Navigate to next/prev month. - */ -DatePicker.prototype.navigate = function( type, value, options ) { - - var targetDateObject, - targetYear, - targetMonth, - targetDate, - isTargetArray = $.isArray( value ), - isTargetObject = $.isPlainObject( value ), - viewsetObject = this.item.view/*, - safety = 100*/ - - - if ( isTargetArray || isTargetObject ) { - - if ( isTargetObject ) { - targetYear = value.year - targetMonth = value.month - targetDate = value.date - } - else { - targetYear = +value[0] - targetMonth = +value[1] - targetDate = +value[2] - } - - // If we’re navigating months but the view is in a different - // month, navigate to the view’s year and month. - if ( options && options.nav && viewsetObject && viewsetObject.month !== targetMonth ) { - targetYear = viewsetObject.year - targetMonth = viewsetObject.month - } - - // Figure out the expected target year and month. - targetDateObject = new Date( targetYear, targetMonth + ( options && options.nav ? options.nav : 0 ), 1 ) - targetYear = targetDateObject.getFullYear() - targetMonth = targetDateObject.getMonth() - - // If the month we’re going to doesn’t have enough days, - // keep decreasing the date until we reach the month’s last date. - while ( /*safety &&*/ new Date( targetYear, targetMonth, targetDate ).getMonth() !== targetMonth ) { - targetDate -= 1 - /*safety -= 1 - if ( !safety ) { - throw 'Fell into an infinite loop while navigating to ' + new Date( targetYear, targetMonth, targetDate ) + '.' - }*/ - } - - value = [ targetYear, targetMonth, targetDate ] - } - - return value -} //DatePicker.prototype.navigate - - -/** - * Normalize a date by setting the hours to midnight. - */ -DatePicker.prototype.normalize = function( value/*, options*/ ) { - value.setHours( 0, 0, 0, 0 ) - return value -} - - -/** - * Measure the range of dates. - */ -DatePicker.prototype.measure = function( type, value/*, options*/ ) { - - var calendar = this - - // If it’s anything false-y, remove the limits. - if ( !value ) { - value = type == 'min' ? -Infinity : Infinity - } - - // If it’s a string, parse it. - else if ( typeof value == 'string' ) { - value = calendar.parse( type, value ) - } - - // If it's an integer, get a date relative to today. - else if ( _.isInteger( value ) ) { - value = calendar.now( type, value, { rel: value } ) - } - - return value -} ///DatePicker.prototype.measure - - -/** - * Create a viewset object based on navigation. - */ -DatePicker.prototype.viewset = function( type, dateObject/*, options*/ ) { - return this.create([ dateObject.year, dateObject.month, 1 ]) -} - - -/** - * Validate a date as enabled and shift if needed. - */ -DatePicker.prototype.validate = function( type, dateObject, options ) { - - var calendar = this, - - // Keep a reference to the original date. - originalDateObject = dateObject, - - // Make sure we have an interval. - interval = options && options.interval ? options.interval : 1, - - // Check if the calendar enabled dates are inverted. - isFlippedBase = calendar.item.enable === -1, - - // Check if we have any enabled dates after/before now. - hasEnabledBeforeTarget, hasEnabledAfterTarget, - - // The min & max limits. - minLimitObject = calendar.item.min, - maxLimitObject = calendar.item.max, - - // Check if we’ve reached the limit during shifting. - reachedMin, reachedMax, - - // Check if the calendar is inverted and at least one weekday is enabled. - hasEnabledWeekdays = isFlippedBase && calendar.item.disable.filter( function( value ) { - - // If there’s a date, check where it is relative to the target. - if ( $.isArray( value ) ) { - var dateTime = calendar.create( value ).pick - if ( dateTime < dateObject.pick ) hasEnabledBeforeTarget = true - else if ( dateTime > dateObject.pick ) hasEnabledAfterTarget = true - } - - // Return only integers for enabled weekdays. - return _.isInteger( value ) - }).length/*, - - safety = 100*/ - - - - // Cases to validate for: - // [1] Not inverted and date disabled. - // [2] Inverted and some dates enabled. - // [3] Not inverted and out of range. - // - // Cases to **not** validate for: - // • Navigating months. - // • Not inverted and date enabled. - // • Inverted and all dates disabled. - // • ..and anything else. - if ( !options || !options.nav ) if ( - /* 1 */ ( !isFlippedBase && calendar.disabled( dateObject ) ) || - /* 2 */ ( isFlippedBase && calendar.disabled( dateObject ) && ( hasEnabledWeekdays || hasEnabledBeforeTarget || hasEnabledAfterTarget ) ) || - /* 3 */ ( !isFlippedBase && (dateObject.pick <= minLimitObject.pick || dateObject.pick >= maxLimitObject.pick) ) - ) { - - - // When inverted, flip the direction if there aren’t any enabled weekdays - // and there are no enabled dates in the direction of the interval. - if ( isFlippedBase && !hasEnabledWeekdays && ( ( !hasEnabledAfterTarget && interval > 0 ) || ( !hasEnabledBeforeTarget && interval < 0 ) ) ) { - interval *= -1 - } - - - // Keep looping until we reach an enabled date. - while ( /*safety &&*/ calendar.disabled( dateObject ) ) { - - /*safety -= 1 - if ( !safety ) { - throw 'Fell into an infinite loop while validating ' + dateObject.obj + '.' - }*/ - - - // If we’ve looped into the next/prev month with a large interval, return to the original date and flatten the interval. - if ( Math.abs( interval ) > 1 && ( dateObject.month < originalDateObject.month || dateObject.month > originalDateObject.month ) ) { - dateObject = originalDateObject - interval = interval > 0 ? 1 : -1 - } - - - // If we’ve reached the min/max limit, reverse the direction, flatten the interval and set it to the limit. - if ( dateObject.pick <= minLimitObject.pick ) { - reachedMin = true - interval = 1 - dateObject = calendar.create([ - minLimitObject.year, - minLimitObject.month, - minLimitObject.date + (dateObject.pick === minLimitObject.pick ? 0 : -1) - ]) - } - else if ( dateObject.pick >= maxLimitObject.pick ) { - reachedMax = true - interval = -1 - dateObject = calendar.create([ - maxLimitObject.year, - maxLimitObject.month, - maxLimitObject.date + (dateObject.pick === maxLimitObject.pick ? 0 : 1) - ]) - } - - - // If we’ve reached both limits, just break out of the loop. - if ( reachedMin && reachedMax ) { - break - } - - - // Finally, create the shifted date using the interval and keep looping. - dateObject = calendar.create([ dateObject.year, dateObject.month, dateObject.date + interval ]) - } - - } //endif - - - // Return the date object settled on. - return dateObject -} //DatePicker.prototype.validate - - -/** - * Check if a date is disabled. - */ -DatePicker.prototype.disabled = function( dateToVerify ) { - - var - calendar = this, - - // Filter through the disabled dates to check if this is one. - isDisabledMatch = calendar.item.disable.filter( function( dateToDisable ) { - - // If the date is a number, match the weekday with 0index and `firstDay` check. - if ( _.isInteger( dateToDisable ) ) { - return dateToVerify.day === ( calendar.settings.firstDay ? dateToDisable : dateToDisable - 1 ) % 7 - } - - // If it’s an array or a native JS date, create and match the exact date. - if ( $.isArray( dateToDisable ) || _.isDate( dateToDisable ) ) { - return dateToVerify.pick === calendar.create( dateToDisable ).pick - } - - // If it’s an object, match a date within the “from” and “to” range. - if ( $.isPlainObject( dateToDisable ) ) { - return calendar.withinRange( dateToDisable, dateToVerify ) - } - }) - - // If this date matches a disabled date, confirm it’s not inverted. - isDisabledMatch = isDisabledMatch.length && !isDisabledMatch.filter(function( dateToDisable ) { - return $.isArray( dateToDisable ) && dateToDisable[3] == 'inverted' || - $.isPlainObject( dateToDisable ) && dateToDisable.inverted - }).length - - // Check the calendar “enabled” flag and respectively flip the - // disabled state. Then also check if it’s beyond the min/max limits. - return calendar.item.enable === -1 ? !isDisabledMatch : isDisabledMatch || - dateToVerify.pick < calendar.item.min.pick || - dateToVerify.pick > calendar.item.max.pick - -} //DatePicker.prototype.disabled - - -/** - * Parse a string into a usable type. - */ -DatePicker.prototype.parse = function( type, value, options ) { - - var calendar = this, - parsingObject = {} - - // If it’s already parsed, we’re good. - if ( !value || typeof value != 'string' ) { - return value - } - - // We need a `.format` to parse the value with. - if ( !( options && options.format ) ) { - options = options || {} - options.format = calendar.settings.format - } - - // Convert the format into an array and then map through it. - calendar.formats.toArray( options.format ).map( function( label ) { - - var - // Grab the formatting label. - formattingLabel = calendar.formats[ label ], - - // The format length is from the formatting label function or the - // label length without the escaping exclamation (!) mark. - formatLength = formattingLabel ? _.trigger( formattingLabel, calendar, [ value, parsingObject ] ) : label.replace( /^!/, '' ).length - - // If there's a format label, split the value up to the format length. - // Then add it to the parsing object with appropriate label. - if ( formattingLabel ) { - parsingObject[ label ] = value.substr( 0, formatLength ) - } - - // Update the value as the substring from format length to end. - value = value.substr( formatLength ) - }) - - // Compensate for month 0index. - return [ - parsingObject.yyyy || parsingObject.yy, - +( parsingObject.mm || parsingObject.m ) - 1, - parsingObject.dd || parsingObject.d - ] -} //DatePicker.prototype.parse - - -/** - * Various formats to display the object in. - */ -DatePicker.prototype.formats = (function() { - - // Return the length of the first word in a collection. - function getWordLengthFromCollection( string, collection, dateObject ) { - - // Grab the first word from the string. - var word = string.match( /\w+/ )[ 0 ] - - // If there's no month index, add it to the date object - if ( !dateObject.mm && !dateObject.m ) { - dateObject.m = collection.indexOf( word ) + 1 - } - - // Return the length of the word. - return word.length - } - - // Get the length of the first word in a string. - function getFirstWordLength( string ) { - return string.match( /\w+/ )[ 0 ].length - } - - return { - - d: function( string, dateObject ) { - - // If there's string, then get the digits length. - // Otherwise return the selected date. - return string ? _.digits( string ) : dateObject.date - }, - dd: function( string, dateObject ) { - - // If there's a string, then the length is always 2. - // Otherwise return the selected date with a leading zero. - return string ? 2 : _.lead( dateObject.date ) - }, - ddd: function( string, dateObject ) { - - // If there's a string, then get the length of the first word. - // Otherwise return the short selected weekday. - return string ? getFirstWordLength( string ) : this.settings.weekdaysShort[ dateObject.day ] - }, - dddd: function( string, dateObject ) { - - // If there's a string, then get the length of the first word. - // Otherwise return the full selected weekday. - return string ? getFirstWordLength( string ) : this.settings.weekdaysFull[ dateObject.day ] - }, - m: function( string, dateObject ) { - - // If there's a string, then get the length of the digits - // Otherwise return the selected month with 0index compensation. - return string ? _.digits( string ) : dateObject.month + 1 - }, - mm: function( string, dateObject ) { - - // If there's a string, then the length is always 2. - // Otherwise return the selected month with 0index and leading zero. - return string ? 2 : _.lead( dateObject.month + 1 ) - }, - mmm: function( string, dateObject ) { - - var collection = this.settings.monthsShort - - // If there's a string, get length of the relevant month from the short - // months collection. Otherwise return the selected month from that collection. - return string ? getWordLengthFromCollection( string, collection, dateObject ) : collection[ dateObject.month ] - }, - mmmm: function( string, dateObject ) { - - var collection = this.settings.monthsFull - - // If there's a string, get length of the relevant month from the full - // months collection. Otherwise return the selected month from that collection. - return string ? getWordLengthFromCollection( string, collection, dateObject ) : collection[ dateObject.month ] - }, - yy: function( string, dateObject ) { - - // If there's a string, then the length is always 2. - // Otherwise return the selected year by slicing out the first 2 digits. - return string ? 2 : ( '' + dateObject.year ).slice( 2 ) - }, - yyyy: function( string, dateObject ) { - - // If there's a string, then the length is always 4. - // Otherwise return the selected year. - return string ? 4 : dateObject.year - }, - - // Create an array by splitting the formatting string passed. - toArray: function( formatString ) { return formatString.split( /(d{1,4}|m{1,4}|y{4}|yy|!.)/g ) }, - - // Format an object into a string using the formatting options. - toString: function ( formatString, itemObject ) { - var calendar = this - return calendar.formats.toArray( formatString ).map( function( label ) { - return _.trigger( calendar.formats[ label ], calendar, [ 0, itemObject ] ) || label.replace( /^!/, '' ) - }).join( '' ) - } - } -})() //DatePicker.prototype.formats - - - - -/** - * Check if two date units are the exact. - */ -DatePicker.prototype.isDateExact = function( one, two ) { - - var calendar = this - - // When we’re working with weekdays, do a direct comparison. - if ( - ( _.isInteger( one ) && _.isInteger( two ) ) || - ( typeof one == 'boolean' && typeof two == 'boolean' ) - ) { - return one === two - } - - // When we’re working with date representations, compare the “pick” value. - if ( - ( _.isDate( one ) || $.isArray( one ) ) && - ( _.isDate( two ) || $.isArray( two ) ) - ) { - return calendar.create( one ).pick === calendar.create( two ).pick - } - - // When we’re working with range objects, compare the “from” and “to”. - if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) { - return calendar.isDateExact( one.from, two.from ) && calendar.isDateExact( one.to, two.to ) - } - - return false -} - - -/** - * Check if two date units overlap. - */ -DatePicker.prototype.isDateOverlap = function( one, two ) { - - var calendar = this, - firstDay = calendar.settings.firstDay ? 1 : 0 - - // When we’re working with a weekday index, compare the days. - if ( _.isInteger( one ) && ( _.isDate( two ) || $.isArray( two ) ) ) { - one = one % 7 + firstDay - return one === calendar.create( two ).day + 1 - } - if ( _.isInteger( two ) && ( _.isDate( one ) || $.isArray( one ) ) ) { - two = two % 7 + firstDay - return two === calendar.create( one ).day + 1 - } - - // When we’re working with range objects, check if the ranges overlap. - if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) { - return calendar.overlapRanges( one, two ) - } - - return false -} - - -/** - * Flip the “enabled” state. - */ -DatePicker.prototype.flipEnable = function(val) { - var itemObject = this.item - itemObject.enable = val || (itemObject.enable == -1 ? 1 : -1) -} - - -/** - * Mark a collection of dates as “disabled”. - */ -DatePicker.prototype.deactivate = function( type, datesToDisable ) { - - var calendar = this, - disabledItems = calendar.item.disable.slice(0) - - - // If we’re flipping, that’s all we need to do. - if ( datesToDisable == 'flip' ) { - calendar.flipEnable() - } - - else if ( datesToDisable === false ) { - calendar.flipEnable(1) - disabledItems = [] - } - - else if ( datesToDisable === true ) { - calendar.flipEnable(-1) - disabledItems = [] - } - - // Otherwise go through the dates to disable. - else { - - datesToDisable.map(function( unitToDisable ) { - - var matchFound - - // When we have disabled items, check for matches. - // If something is matched, immediately break out. - for ( var index = 0; index < disabledItems.length; index += 1 ) { - if ( calendar.isDateExact( unitToDisable, disabledItems[index] ) ) { - matchFound = true - break - } - } - - // If nothing was found, add the validated unit to the collection. - if ( !matchFound ) { - if ( - _.isInteger( unitToDisable ) || - _.isDate( unitToDisable ) || - $.isArray( unitToDisable ) || - ( $.isPlainObject( unitToDisable ) && unitToDisable.from && unitToDisable.to ) - ) { - disabledItems.push( unitToDisable ) - } - } - }) - } - - // Return the updated collection. - return disabledItems -} //DatePicker.prototype.deactivate - - -/** - * Mark a collection of dates as “enabled”. - */ -DatePicker.prototype.activate = function( type, datesToEnable ) { - - var calendar = this, - disabledItems = calendar.item.disable, - disabledItemsCount = disabledItems.length - - // If we’re flipping, that’s all we need to do. - if ( datesToEnable == 'flip' ) { - calendar.flipEnable() - } - - else if ( datesToEnable === true ) { - calendar.flipEnable(1) - disabledItems = [] - } - - else if ( datesToEnable === false ) { - calendar.flipEnable(-1) - disabledItems = [] - } - - // Otherwise go through the disabled dates. - else { - - datesToEnable.map(function( unitToEnable ) { - - var matchFound, - disabledUnit, - index, - isExactRange - - // Go through the disabled items and try to find a match. - for ( index = 0; index < disabledItemsCount; index += 1 ) { - - disabledUnit = disabledItems[index] - - // When an exact match is found, remove it from the collection. - if ( calendar.isDateExact( disabledUnit, unitToEnable ) ) { - matchFound = disabledItems[index] = null - isExactRange = true - break - } - - // When an overlapped match is found, add the “inverted” state to it. - else if ( calendar.isDateOverlap( disabledUnit, unitToEnable ) ) { - if ( $.isPlainObject( unitToEnable ) ) { - unitToEnable.inverted = true - matchFound = unitToEnable - } - else if ( $.isArray( unitToEnable ) ) { - matchFound = unitToEnable - if ( !matchFound[3] ) matchFound.push( 'inverted' ) - } - else if ( _.isDate( unitToEnable ) ) { - matchFound = [ unitToEnable.getFullYear(), unitToEnable.getMonth(), unitToEnable.getDate(), 'inverted' ] - } - break - } - } - - // If a match was found, remove a previous duplicate entry. - if ( matchFound ) for ( index = 0; index < disabledItemsCount; index += 1 ) { - if ( calendar.isDateExact( disabledItems[index], unitToEnable ) ) { - disabledItems[index] = null - break - } - } - - // In the event that we’re dealing with an exact range of dates, - // make sure there are no “inverted” dates because of it. - if ( isExactRange ) for ( index = 0; index < disabledItemsCount; index += 1 ) { - if ( calendar.isDateOverlap( disabledItems[index], unitToEnable ) ) { - disabledItems[index] = null - break - } - } - - // If something is still matched, add it into the collection. - if ( matchFound ) { - disabledItems.push( matchFound ) - } - }) - } - - // Return the updated collection. - return disabledItems.filter(function( val ) { return val != null }) -} //DatePicker.prototype.activate - - -/** - * Create a string for the nodes in the picker. - */ -DatePicker.prototype.nodes = function( isOpen ) { - - var - calendar = this, - settings = calendar.settings, - calendarItem = calendar.item, - nowObject = calendarItem.now, - selectedObject = calendarItem.select, - highlightedObject = calendarItem.highlight, - viewsetObject = calendarItem.view, - disabledCollection = calendarItem.disable, - minLimitObject = calendarItem.min, - maxLimitObject = calendarItem.max, - - - // Create the calendar table head using a copy of weekday labels collection. - // * We do a copy so we don't mutate the original array. - tableHead = (function( collection, fullCollection ) { - - // If the first day should be Monday, move Sunday to the end. - if ( settings.firstDay ) { - collection.push( collection.shift() ) - fullCollection.push( fullCollection.shift() ) - } - - // Create and return the table head group. - return _.node( - 'thead', - _.node( - 'tr', - _.group({ - min: 0, - max: DAYS_IN_WEEK - 1, - i: 1, - node: 'th', - item: function( counter ) { - return [ - collection[ counter ], - settings.klass.weekdays, - 'scope=col title="' + fullCollection[ counter ] + '"' - ] - } - }) - ) - ) //endreturn - - // Materialize modified - })( ( settings.showWeekdaysFull ? settings.weekdaysFull : settings.weekdaysLetter ).slice( 0 ), settings.weekdaysFull.slice( 0 ) ), //tableHead - - - // Create the nav for next/prev month. - createMonthNav = function( next ) { - - // Otherwise, return the created month tag. - return _.node( - 'div', - ' ', - settings.klass[ 'nav' + ( next ? 'Next' : 'Prev' ) ] + ( - - // If the focused month is outside the range, disabled the button. - ( next && viewsetObject.year >= maxLimitObject.year && viewsetObject.month >= maxLimitObject.month ) || - ( !next && viewsetObject.year <= minLimitObject.year && viewsetObject.month <= minLimitObject.month ) ? - ' ' + settings.klass.navDisabled : '' - ), - 'data-nav=' + ( next || -1 ) + ' ' + - _.ariaAttr({ - role: 'button', - controls: calendar.$node[0].id + '_table' - }) + ' ' + - 'title="' + (next ? settings.labelMonthNext : settings.labelMonthPrev ) + '"' - ) //endreturn - }, //createMonthNav - - - // Create the month label. - //Materialize modified - createMonthLabel = function(override) { - - var monthsCollection = settings.showMonthsShort ? settings.monthsShort : settings.monthsFull - - // Materialize modified - if (override == "short_months") { - monthsCollection = settings.monthsShort; - } - - // If there are months to select, add a dropdown menu. - if ( settings.selectMonths && override == undefined) { - - return _.node( 'select', - _.group({ - min: 0, - max: 11, - i: 1, - node: 'option', - item: function( loopedMonth ) { - - return [ - - // The looped month and no classes. - monthsCollection[ loopedMonth ], 0, - - // Set the value and selected index. - 'value=' + loopedMonth + - ( viewsetObject.month == loopedMonth ? ' selected' : '' ) + - ( - ( - ( viewsetObject.year == minLimitObject.year && loopedMonth < minLimitObject.month ) || - ( viewsetObject.year == maxLimitObject.year && loopedMonth > maxLimitObject.month ) - ) ? - ' disabled' : '' - ) - ] - } - }), - settings.klass.selectMonth + ' browser-default', - ( isOpen ? '' : 'disabled' ) + ' ' + - _.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' + - 'title="' + settings.labelMonthSelect + '"' - ) - } - - // Materialize modified - if (override == "short_months") - if (selectedObject != null) - return _.node( 'div', monthsCollection[ selectedObject.month ] ); - else return _.node( 'div', monthsCollection[ viewsetObject.month ] ); - - // If there's a need for a month selector - return _.node( 'div', monthsCollection[ viewsetObject.month ], settings.klass.month ) - }, //createMonthLabel - - - // Create the year label. - // Materialize modified - createYearLabel = function(override) { - - var focusedYear = viewsetObject.year, - - // If years selector is set to a literal "true", set it to 5. Otherwise - // divide in half to get half before and half after focused year. - numberYears = settings.selectYears === true ? 5 : ~~( settings.selectYears / 2 ) - - // If there are years to select, add a dropdown menu. - if ( numberYears ) { - - var - minYear = minLimitObject.year, - maxYear = maxLimitObject.year, - lowestYear = focusedYear - numberYears, - highestYear = focusedYear + numberYears - - // If the min year is greater than the lowest year, increase the highest year - // by the difference and set the lowest year to the min year. - if ( minYear > lowestYear ) { - highestYear += minYear - lowestYear - lowestYear = minYear - } - - // If the max year is less than the highest year, decrease the lowest year - // by the lower of the two: available and needed years. Then set the - // highest year to the max year. - if ( maxYear < highestYear ) { - - var availableYears = lowestYear - minYear, - neededYears = highestYear - maxYear - - lowestYear -= availableYears > neededYears ? neededYears : availableYears - highestYear = maxYear - } - - if ( settings.selectYears && override == undefined ) { - return _.node( 'select', - _.group({ - min: lowestYear, - max: highestYear, - i: 1, - node: 'option', - item: function( loopedYear ) { - return [ - - // The looped year and no classes. - loopedYear, 0, - - // Set the value and selected index. - 'value=' + loopedYear + ( focusedYear == loopedYear ? ' selected' : '' ) - ] - } - }), - settings.klass.selectYear + ' browser-default', - ( isOpen ? '' : 'disabled' ) + ' ' + _.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' + - 'title="' + settings.labelYearSelect + '"' - ) - } - } - - // Materialize modified - if (override == "raw") - return _.node( 'div', focusedYear ) - - // Otherwise just return the year focused - return _.node( 'div', focusedYear, settings.klass.year ) - } //createYearLabel - - - // Materialize modified - createDayLabel = function() { - if (selectedObject != null) - return _.node( 'div', selectedObject.date) - else return _.node( 'div', nowObject.date) - } - createWeekdayLabel = function() { - var display_day; - - if (selectedObject != null) - display_day = selectedObject.day; - else - display_day = nowObject.day; - var weekday = settings.weekdaysFull[ display_day ] - return weekday - } - - - // Create and return the entire calendar. -return _.node( - // Date presentation View - 'div', - _.node( - 'div', - createWeekdayLabel(), - "picker__weekday-display" - )+ - _.node( - // Div for short Month - 'div', - createMonthLabel("short_months"), - settings.klass.month_display - )+ - _.node( - // Div for Day - 'div', - createDayLabel() , - settings.klass.day_display - )+ - _.node( - // Div for Year - 'div', - createYearLabel("raw") , - settings.klass.year_display - ), - settings.klass.date_display - )+ - // Calendar container - _.node('div', - _.node('div', - ( settings.selectYears ? createMonthLabel() + createYearLabel() : createMonthLabel() + createYearLabel() ) + - createMonthNav() + createMonthNav( 1 ), - settings.klass.header - ) + _.node( - 'table', - tableHead + - _.node( - 'tbody', - _.group({ - min: 0, - max: WEEKS_IN_CALENDAR - 1, - i: 1, - node: 'tr', - item: function( rowCounter ) { - - // If Monday is the first day and the month starts on Sunday, shift the date back a week. - var shiftDateBy = settings.firstDay && calendar.create([ viewsetObject.year, viewsetObject.month, 1 ]).day === 0 ? -7 : 0 - - return [ - _.group({ - min: DAYS_IN_WEEK * rowCounter - viewsetObject.day + shiftDateBy + 1, // Add 1 for weekday 0index - max: function() { - return this.min + DAYS_IN_WEEK - 1 - }, - i: 1, - node: 'td', - item: function( targetDate ) { - - // Convert the time date from a relative date to a target date. - targetDate = calendar.create([ viewsetObject.year, viewsetObject.month, targetDate + ( settings.firstDay ? 1 : 0 ) ]) - - var isSelected = selectedObject && selectedObject.pick == targetDate.pick, - isHighlighted = highlightedObject && highlightedObject.pick == targetDate.pick, - isDisabled = disabledCollection && calendar.disabled( targetDate ) || targetDate.pick < minLimitObject.pick || targetDate.pick > maxLimitObject.pick, - formattedDate = _.trigger( calendar.formats.toString, calendar, [ settings.format, targetDate ] ) - - return [ - _.node( - 'div', - targetDate.date, - (function( klasses ) { - - // Add the `infocus` or `outfocus` classes based on month in view. - klasses.push( viewsetObject.month == targetDate.month ? settings.klass.infocus : settings.klass.outfocus ) - - // Add the `today` class if needed. - if ( nowObject.pick == targetDate.pick ) { - klasses.push( settings.klass.now ) - } - - // Add the `selected` class if something's selected and the time matches. - if ( isSelected ) { - klasses.push( settings.klass.selected ) - } - - // Add the `highlighted` class if something's highlighted and the time matches. - if ( isHighlighted ) { - klasses.push( settings.klass.highlighted ) - } - - // Add the `disabled` class if something's disabled and the object matches. - if ( isDisabled ) { - klasses.push( settings.klass.disabled ) - } - - return klasses.join( ' ' ) - })([ settings.klass.day ]), - 'data-pick=' + targetDate.pick + ' ' + _.ariaAttr({ - role: 'gridcell', - label: formattedDate, - selected: isSelected && calendar.$node.val() === formattedDate ? true : null, - activedescendant: isHighlighted ? true : null, - disabled: isDisabled ? true : null - }) - ), - '', - _.ariaAttr({ role: 'presentation' }) - ] //endreturn - } - }) - ] //endreturn - } - }) - ), - settings.klass.table, - 'id="' + calendar.$node[0].id + '_table' + '" ' + _.ariaAttr({ - role: 'grid', - controls: calendar.$node[0].id, - readonly: true - }) - ) - , settings.klass.calendar_container) // end calendar - - + - - // * For Firefox forms to submit, make sure to set the buttons’ `type` attributes as “button”. - _.node( - 'div', - _.node( 'button', settings.today, "btn-flat picker__today", - 'type=button data-pick=' + nowObject.pick + - ( isOpen && !calendar.disabled(nowObject) ? '' : ' disabled' ) + ' ' + - _.ariaAttr({ controls: calendar.$node[0].id }) ) + - _.node( 'button', settings.clear, "btn-flat picker__clear", - 'type=button data-clear=1' + - ( isOpen ? '' : ' disabled' ) + ' ' + - _.ariaAttr({ controls: calendar.$node[0].id }) ) + - _.node('button', settings.close, "btn-flat picker__close", - 'type=button data-close=true ' + - ( isOpen ? '' : ' disabled' ) + ' ' + - _.ariaAttr({ controls: calendar.$node[0].id }) ), - settings.klass.footer - ) //endreturn -} //DatePicker.prototype.nodes - - - - -/** - * The date picker defaults. - */ -DatePicker.defaults = (function( prefix ) { - - return { - - // The title label to use for the month nav buttons - labelMonthNext: 'Next month', - labelMonthPrev: 'Previous month', - - // The title label to use for the dropdown selectors - labelMonthSelect: 'Select a month', - labelYearSelect: 'Select a year', - - // Months and weekdays - monthsFull: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], - monthsShort: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ], - weekdaysFull: [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ], - weekdaysShort: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ], - - // Materialize modified - weekdaysLetter: [ 'S', 'M', 'T', 'W', 'T', 'F', 'S' ], - - // Today and clear - today: 'Today', - clear: 'Clear', - close: 'Close', - - // The format to show on the `input` element - format: 'd mmmm, yyyy', - - // Classes - klass: { - - table: prefix + 'table', - - header: prefix + 'header', - - - // Materialize Added klasses - date_display: prefix + 'date-display', - day_display: prefix + 'day-display', - month_display: prefix + 'month-display', - year_display: prefix + 'year-display', - calendar_container: prefix + 'calendar-container', - // end - - - - navPrev: prefix + 'nav--prev', - navNext: prefix + 'nav--next', - navDisabled: prefix + 'nav--disabled', - - month: prefix + 'month', - year: prefix + 'year', - - selectMonth: prefix + 'select--month', - selectYear: prefix + 'select--year', - - weekdays: prefix + 'weekday', - - day: prefix + 'day', - disabled: prefix + 'day--disabled', - selected: prefix + 'day--selected', - highlighted: prefix + 'day--highlighted', - now: prefix + 'day--today', - infocus: prefix + 'day--infocus', - outfocus: prefix + 'day--outfocus', - - footer: prefix + 'footer', - - buttonClear: prefix + 'button--clear', - buttonToday: prefix + 'button--today', - buttonClose: prefix + 'button--close' - } - } -})( Picker.klasses().picker + '__' ) - - - - - -/** - * Extend the picker to add the date picker. - */ -Picker.extend( 'pickadate', DatePicker ) - - -})); - - diff --git a/node_modules/materialize-css/js/date_picker/picker.js b/node_modules/materialize-css/js/date_picker/picker.js deleted file mode 100644 index 48fbbad..0000000 --- a/node_modules/materialize-css/js/date_picker/picker.js +++ /dev/null @@ -1,1123 +0,0 @@ -/*! - * pickadate.js v3.5.0, 2014/04/13 - * By Amsul, http://amsul.ca - * Hosted on http://amsul.github.io/pickadate.js - * Licensed under MIT - */ - -(function ( factory ) { - - // AMD. - if ( typeof define == 'function' && define.amd ) - define( 'picker', ['jquery'], factory ) - - // Node.js/browserify. - else if ( typeof exports == 'object' ) - module.exports = factory( require('jquery') ) - - // Browser globals. - else this.Picker = factory( jQuery ) - -}(function( $ ) { - -var $window = $( window ) -var $document = $( document ) -var $html = $( document.documentElement ) - - -/** - * The picker constructor that creates a blank picker. - */ -function PickerConstructor( ELEMENT, NAME, COMPONENT, OPTIONS ) { - - // If there’s no element, return the picker constructor. - if ( !ELEMENT ) return PickerConstructor - - - var - IS_DEFAULT_THEME = false, - - - // The state of the picker. - STATE = { - id: ELEMENT.id || 'P' + Math.abs( ~~(Math.random() * new Date()) ) - }, - - - // Merge the defaults and options passed. - SETTINGS = COMPONENT ? $.extend( true, {}, COMPONENT.defaults, OPTIONS ) : OPTIONS || {}, - - - // Merge the default classes with the settings classes. - CLASSES = $.extend( {}, PickerConstructor.klasses(), SETTINGS.klass ), - - - // The element node wrapper into a jQuery object. - $ELEMENT = $( ELEMENT ), - - - // Pseudo picker constructor. - PickerInstance = function() { - return this.start() - }, - - - // The picker prototype. - P = PickerInstance.prototype = { - - constructor: PickerInstance, - - $node: $ELEMENT, - - - /** - * Initialize everything - */ - start: function() { - - // If it’s already started, do nothing. - if ( STATE && STATE.start ) return P - - - // Update the picker states. - STATE.methods = {} - STATE.start = true - STATE.open = false - STATE.type = ELEMENT.type - - - // Confirm focus state, convert into text input to remove UA stylings, - // and set as readonly to prevent keyboard popup. - ELEMENT.autofocus = ELEMENT == getActiveElement() - ELEMENT.readOnly = !SETTINGS.editable - ELEMENT.id = ELEMENT.id || STATE.id - if ( ELEMENT.type != 'text' ) { - ELEMENT.type = 'text' - } - - - // Create a new picker component with the settings. - P.component = new COMPONENT(P, SETTINGS) - - - // Create the picker root with a holder and then prepare it. - P.$root = $( PickerConstructor._.node('div', createWrappedComponent(), CLASSES.picker, 'id="' + ELEMENT.id + '_root" tabindex="0"') ) - prepareElementRoot() - - - // If there’s a format for the hidden input element, create the element. - if ( SETTINGS.formatSubmit ) { - prepareElementHidden() - } - - - // Prepare the input element. - prepareElement() - - - // Insert the root as specified in the settings. - if ( SETTINGS.container ) $( SETTINGS.container ).append( P.$root ) - else $ELEMENT.after( P.$root ) - - - // Bind the default component and settings events. - P.on({ - start: P.component.onStart, - render: P.component.onRender, - stop: P.component.onStop, - open: P.component.onOpen, - close: P.component.onClose, - set: P.component.onSet - }).on({ - start: SETTINGS.onStart, - render: SETTINGS.onRender, - stop: SETTINGS.onStop, - open: SETTINGS.onOpen, - close: SETTINGS.onClose, - set: SETTINGS.onSet - }) - - - // Once we’re all set, check the theme in use. - IS_DEFAULT_THEME = isUsingDefaultTheme( P.$root.children()[ 0 ] ) - - - // If the element has autofocus, open the picker. - if ( ELEMENT.autofocus ) { - P.open() - } - - - // Trigger queued the “start” and “render” events. - return P.trigger( 'start' ).trigger( 'render' ) - }, //start - - - /** - * Render a new picker - */ - render: function( entireComponent ) { - - // Insert a new component holder in the root or box. - if ( entireComponent ) P.$root.html( createWrappedComponent() ) - else P.$root.find( '.' + CLASSES.box ).html( P.component.nodes( STATE.open ) ) - - // Trigger the queued “render” events. - return P.trigger( 'render' ) - }, //render - - - /** - * Destroy everything - */ - stop: function() { - - // If it’s already stopped, do nothing. - if ( !STATE.start ) return P - - // Then close the picker. - P.close() - - // Remove the hidden field. - if ( P._hidden ) { - P._hidden.parentNode.removeChild( P._hidden ) - } - - // Remove the root. - P.$root.remove() - - // Remove the input class, remove the stored data, and unbind - // the events (after a tick for IE - see `P.close`). - $ELEMENT.removeClass( CLASSES.input ).removeData( NAME ) - setTimeout( function() { - $ELEMENT.off( '.' + STATE.id ) - }, 0) - - // Restore the element state - ELEMENT.type = STATE.type - ELEMENT.readOnly = false - - // Trigger the queued “stop” events. - P.trigger( 'stop' ) - - // Reset the picker states. - STATE.methods = {} - STATE.start = false - - return P - }, //stop - - - /** - * Open up the picker - */ - open: function( dontGiveFocus ) { - - // If it’s already open, do nothing. - if ( STATE.open ) return P - - // Add the “active” class. - $ELEMENT.addClass( CLASSES.active ) - aria( ELEMENT, 'expanded', true ) - - // * A Firefox bug, when `html` has `overflow:hidden`, results in - // killing transitions :(. So add the “opened” state on the next tick. - // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289 - setTimeout( function() { - - // Add the “opened” class to the picker root. - P.$root.addClass( CLASSES.opened ) - aria( P.$root[0], 'hidden', false ) - - }, 0 ) - - // If we have to give focus, bind the element and doc events. - if ( dontGiveFocus !== false ) { - - // Set it as open. - STATE.open = true - - // Prevent the page from scrolling. - if ( IS_DEFAULT_THEME ) { - $html. - css( 'overflow', 'hidden' ). - css( 'padding-right', '+=' + getScrollbarWidth() ) - } - - // Pass focus to the root element’s jQuery object. - // * Workaround for iOS8 to bring the picker’s root into view. - P.$root.eq(0).focus() - - // Bind the document events. - $document.on( 'click.' + STATE.id + ' focusin.' + STATE.id, function( event ) { - - var target = event.target - - // If the target of the event is not the element, close the picker picker. - // * Don’t worry about clicks or focusins on the root because those don’t bubble up. - // Also, for Firefox, a click on an `option` element bubbles up directly - // to the doc. So make sure the target wasn't the doc. - // * In Firefox stopPropagation() doesn’t prevent right-click events from bubbling, - // which causes the picker to unexpectedly close when right-clicking it. So make - // sure the event wasn’t a right-click. - if ( target != ELEMENT && target != document && event.which != 3 ) { - - // If the target was the holder that covers the screen, - // keep the element focused to maintain tabindex. - P.close( target === P.$root.children()[0] ) - } - - }).on( 'keydown.' + STATE.id, function( event ) { - - var - // Get the keycode. - keycode = event.keyCode, - - // Translate that to a selection change. - keycodeToMove = P.component.key[ keycode ], - - // Grab the target. - target = event.target - - - // On escape, close the picker and give focus. - if ( keycode == 27 ) { - P.close( true ) - } - - - // Check if there is a key movement or “enter” keypress on the element. - else if ( target == P.$root[0] && ( keycodeToMove || keycode == 13 ) ) { - - // Prevent the default action to stop page movement. - event.preventDefault() - - // Trigger the key movement action. - if ( keycodeToMove ) { - PickerConstructor._.trigger( P.component.key.go, P, [ PickerConstructor._.trigger( keycodeToMove ) ] ) - } - - // On “enter”, if the highlighted item isn’t disabled, set the value and close. - else if ( !P.$root.find( '.' + CLASSES.highlighted ).hasClass( CLASSES.disabled ) ) { - P.set( 'select', P.component.item.highlight ).close() - } - } - - - // If the target is within the root and “enter” is pressed, - // prevent the default action and trigger a click on the target instead. - else if ( $.contains( P.$root[0], target ) && keycode == 13 ) { - event.preventDefault() - target.click() - } - }) - } - - // Trigger the queued “open” events. - return P.trigger( 'open' ) - }, //open - - - /** - * Close the picker - */ - close: function( giveFocus ) { - - // If we need to give focus, do it before changing states. - if ( giveFocus ) { - // ....ah yes! It would’ve been incomplete without a crazy workaround for IE :| - // The focus is triggered *after* the close has completed - causing it - // to open again. So unbind and rebind the event at the next tick. - P.$root.off( 'focus.toOpen' ).eq(0).focus() - setTimeout( function() { - P.$root.on( 'focus.toOpen', handleFocusToOpenEvent ) - }, 0 ) - } - - // Remove the “active” class. - $ELEMENT.removeClass( CLASSES.active ) - aria( ELEMENT, 'expanded', false ) - - // * A Firefox bug, when `html` has `overflow:hidden`, results in - // killing transitions :(. So remove the “opened” state on the next tick. - // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289 - setTimeout( function() { - - // Remove the “opened” and “focused” class from the picker root. - P.$root.removeClass( CLASSES.opened + ' ' + CLASSES.focused ) - aria( P.$root[0], 'hidden', true ) - - }, 0 ) - - // If it’s already closed, do nothing more. - if ( !STATE.open ) return P - - // Set it as closed. - STATE.open = false - - // Allow the page to scroll. - if ( IS_DEFAULT_THEME ) { - $html. - css( 'overflow', '' ). - css( 'padding-right', '-=' + getScrollbarWidth() ) - } - - // Unbind the document events. - $document.off( '.' + STATE.id ) - - // Trigger the queued “close” events. - return P.trigger( 'close' ) - }, //close - - - /** - * Clear the values - */ - clear: function( options ) { - return P.set( 'clear', null, options ) - }, //clear - - - /** - * Set something - */ - set: function( thing, value, options ) { - - var thingItem, thingValue, - thingIsObject = $.isPlainObject( thing ), - thingObject = thingIsObject ? thing : {} - - // Make sure we have usable options. - options = thingIsObject && $.isPlainObject( value ) ? value : options || {} - - if ( thing ) { - - // If the thing isn’t an object, make it one. - if ( !thingIsObject ) { - thingObject[ thing ] = value - } - - // Go through the things of items to set. - for ( thingItem in thingObject ) { - - // Grab the value of the thing. - thingValue = thingObject[ thingItem ] - - // First, if the item exists and there’s a value, set it. - if ( thingItem in P.component.item ) { - if ( thingValue === undefined ) thingValue = null - P.component.set( thingItem, thingValue, options ) - } - - // Then, check to update the element value and broadcast a change. - if ( thingItem == 'select' || thingItem == 'clear' ) { - $ELEMENT. - val( thingItem == 'clear' ? '' : P.get( thingItem, SETTINGS.format ) ). - trigger( 'change' ) - } - } - - // Render a new picker. - P.render() - } - - // When the method isn’t muted, trigger queued “set” events and pass the `thingObject`. - return options.muted ? P : P.trigger( 'set', thingObject ) - }, //set - - - /** - * Get something - */ - get: function( thing, format ) { - - // Make sure there’s something to get. - thing = thing || 'value' - - // If a picker state exists, return that. - if ( STATE[ thing ] != null ) { - return STATE[ thing ] - } - - // Return the submission value, if that. - if ( thing == 'valueSubmit' ) { - if ( P._hidden ) { - return P._hidden.value - } - thing = 'value' - } - - // Return the value, if that. - if ( thing == 'value' ) { - return ELEMENT.value - } - - // Check if a component item exists, return that. - if ( thing in P.component.item ) { - if ( typeof format == 'string' ) { - var thingValue = P.component.get( thing ) - return thingValue ? - PickerConstructor._.trigger( - P.component.formats.toString, - P.component, - [ format, thingValue ] - ) : '' - } - return P.component.get( thing ) - } - }, //get - - - - /** - * Bind events on the things. - */ - on: function( thing, method, internal ) { - - var thingName, thingMethod, - thingIsObject = $.isPlainObject( thing ), - thingObject = thingIsObject ? thing : {} - - if ( thing ) { - - // If the thing isn’t an object, make it one. - if ( !thingIsObject ) { - thingObject[ thing ] = method - } - - // Go through the things to bind to. - for ( thingName in thingObject ) { - - // Grab the method of the thing. - thingMethod = thingObject[ thingName ] - - // If it was an internal binding, prefix it. - if ( internal ) { - thingName = '_' + thingName - } - - // Make sure the thing methods collection exists. - STATE.methods[ thingName ] = STATE.methods[ thingName ] || [] - - // Add the method to the relative method collection. - STATE.methods[ thingName ].push( thingMethod ) - } - } - - return P - }, //on - - - - /** - * Unbind events on the things. - */ - off: function() { - var i, thingName, - names = arguments; - for ( i = 0, namesCount = names.length; i < namesCount; i += 1 ) { - thingName = names[i] - if ( thingName in STATE.methods ) { - delete STATE.methods[thingName] - } - } - return P - }, - - - /** - * Fire off method events. - */ - trigger: function( name, data ) { - var _trigger = function( name ) { - var methodList = STATE.methods[ name ] - if ( methodList ) { - methodList.map( function( method ) { - PickerConstructor._.trigger( method, P, [ data ] ) - }) - } - } - _trigger( '_' + name ) - _trigger( name ) - return P - } //trigger - } //PickerInstance.prototype - - - /** - * Wrap the picker holder components together. - */ - function createWrappedComponent() { - - // Create a picker wrapper holder - return PickerConstructor._.node( 'div', - - // Create a picker wrapper node - PickerConstructor._.node( 'div', - - // Create a picker frame - PickerConstructor._.node( 'div', - - // Create a picker box node - PickerConstructor._.node( 'div', - - // Create the components nodes. - P.component.nodes( STATE.open ), - - // The picker box class - CLASSES.box - ), - - // Picker wrap class - CLASSES.wrap - ), - - // Picker frame class - CLASSES.frame - ), - - // Picker holder class - CLASSES.holder - ) //endreturn - } //createWrappedComponent - - - - /** - * Prepare the input element with all bindings. - */ - function prepareElement() { - - $ELEMENT. - - // Store the picker data by component name. - data(NAME, P). - - // Add the “input” class name. - addClass(CLASSES.input). - - // Remove the tabindex. - attr('tabindex', -1). - - // If there’s a `data-value`, update the value of the element. - val( $ELEMENT.data('value') ? - P.get('select', SETTINGS.format) : - ELEMENT.value - ) - - - // Only bind keydown events if the element isn’t editable. - if ( !SETTINGS.editable ) { - - $ELEMENT. - - // On focus/click, focus onto the root to open it up. - on( 'focus.' + STATE.id + ' click.' + STATE.id, function( event ) { - event.preventDefault() - P.$root.eq(0).focus() - }). - - // Handle keyboard event based on the picker being opened or not. - on( 'keydown.' + STATE.id, handleKeydownEvent ) - } - - - // Update the aria attributes. - aria(ELEMENT, { - haspopup: true, - expanded: false, - readonly: false, - owns: ELEMENT.id + '_root' - }) - } - - - /** - * Prepare the root picker element with all bindings. - */ - function prepareElementRoot() { - - P.$root. - - on({ - - // For iOS8. - keydown: handleKeydownEvent, - - // When something within the root is focused, stop from bubbling - // to the doc and remove the “focused” state from the root. - focusin: function( event ) { - P.$root.removeClass( CLASSES.focused ) - event.stopPropagation() - }, - - // When something within the root holder is clicked, stop it - // from bubbling to the doc. - 'mousedown click': function( event ) { - - var target = event.target - - // Make sure the target isn’t the root holder so it can bubble up. - if ( target != P.$root.children()[ 0 ] ) { - - event.stopPropagation() - - // * For mousedown events, cancel the default action in order to - // prevent cases where focus is shifted onto external elements - // when using things like jQuery mobile or MagnificPopup (ref: #249 & #120). - // Also, for Firefox, don’t prevent action on the `option` element. - if ( event.type == 'mousedown' && !$( target ).is( 'input, select, textarea, button, option' )) { - - event.preventDefault() - - // Re-focus onto the root so that users can click away - // from elements focused within the picker. - P.$root.eq(0).focus() - } - } - } - }). - - // Add/remove the “target” class on focus and blur. - on({ - focus: function() { - $ELEMENT.addClass( CLASSES.target ) - }, - blur: function() { - $ELEMENT.removeClass( CLASSES.target ) - } - }). - - // Open the picker and adjust the root “focused” state - on( 'focus.toOpen', handleFocusToOpenEvent ). - - // If there’s a click on an actionable element, carry out the actions. - on( 'click', '[data-pick], [data-nav], [data-clear], [data-close]', function() { - - var $target = $( this ), - targetData = $target.data(), - targetDisabled = $target.hasClass( CLASSES.navDisabled ) || $target.hasClass( CLASSES.disabled ), - - // * For IE, non-focusable elements can be active elements as well - // (http://stackoverflow.com/a/2684561). - activeElement = getActiveElement() - activeElement = activeElement && ( activeElement.type || activeElement.href ) - - // If it’s disabled or nothing inside is actively focused, re-focus the element. - if ( targetDisabled || activeElement && !$.contains( P.$root[0], activeElement ) ) { - P.$root.eq(0).focus() - } - - // If something is superficially changed, update the `highlight` based on the `nav`. - if ( !targetDisabled && targetData.nav ) { - P.set( 'highlight', P.component.item.highlight, { nav: targetData.nav } ) - } - - // If something is picked, set `select` then close with focus. - else if ( !targetDisabled && 'pick' in targetData ) { - P.set( 'select', targetData.pick ) - } - - // If a “clear” button is pressed, empty the values and close with focus. - else if ( targetData.clear ) { - P.clear().close( true ) - } - - else if ( targetData.close ) { - P.close( true ) - } - - }) //P.$root - - aria( P.$root[0], 'hidden', true ) - } - - - /** - * Prepare the hidden input element along with all bindings. - */ - function prepareElementHidden() { - - var name - - if ( SETTINGS.hiddenName === true ) { - name = ELEMENT.name - ELEMENT.name = '' - } - else { - name = [ - typeof SETTINGS.hiddenPrefix == 'string' ? SETTINGS.hiddenPrefix : '', - typeof SETTINGS.hiddenSuffix == 'string' ? SETTINGS.hiddenSuffix : '_submit' - ] - name = name[0] + ELEMENT.name + name[1] - } - - P._hidden = $( - '' - )[0] - - $ELEMENT. - - // If the value changes, update the hidden input with the correct format. - on('change.' + STATE.id, function() { - P._hidden.value = ELEMENT.value ? - P.get('select', SETTINGS.formatSubmit) : - '' - }) - - - // Insert the hidden input as specified in the settings. - if ( SETTINGS.container ) $( SETTINGS.container ).append( P._hidden ) - else $ELEMENT.after( P._hidden ) - } - - - // For iOS8. - function handleKeydownEvent( event ) { - - var keycode = event.keyCode, - - // Check if one of the delete keys was pressed. - isKeycodeDelete = /^(8|46)$/.test(keycode) - - // For some reason IE clears the input value on “escape”. - if ( keycode == 27 ) { - P.close() - return false - } - - // Check if `space` or `delete` was pressed or the picker is closed with a key movement. - if ( keycode == 32 || isKeycodeDelete || !STATE.open && P.component.key[keycode] ) { - - // Prevent it from moving the page and bubbling to doc. - event.preventDefault() - event.stopPropagation() - - // If `delete` was pressed, clear the values and close the picker. - // Otherwise open the picker. - if ( isKeycodeDelete ) { P.clear().close() } - else { P.open() } - } - } - - - // Separated for IE - function handleFocusToOpenEvent( event ) { - - // Stop the event from propagating to the doc. - event.stopPropagation() - - // If it’s a focus event, add the “focused” class to the root. - if ( event.type == 'focus' ) { - P.$root.addClass( CLASSES.focused ) - } - - // And then finally open the picker. - P.open() - } - - - // Return a new picker instance. - return new PickerInstance() -} //PickerConstructor - - - -/** - * The default classes and prefix to use for the HTML classes. - */ -PickerConstructor.klasses = function( prefix ) { - prefix = prefix || 'picker' - return { - - picker: prefix, - opened: prefix + '--opened', - focused: prefix + '--focused', - - input: prefix + '__input', - active: prefix + '__input--active', - target: prefix + '__input--target', - - holder: prefix + '__holder', - - frame: prefix + '__frame', - wrap: prefix + '__wrap', - - box: prefix + '__box' - } -} //PickerConstructor.klasses - - - -/** - * Check if the default theme is being used. - */ -function isUsingDefaultTheme( element ) { - - var theme, - prop = 'position' - - // For IE. - if ( element.currentStyle ) { - theme = element.currentStyle[prop] - } - - // For normal browsers. - else if ( window.getComputedStyle ) { - theme = getComputedStyle( element )[prop] - } - - return theme == 'fixed' -} - - - -/** - * Get the width of the browser’s scrollbar. - * Taken from: https://github.com/VodkaBears/Remodal/blob/master/src/jquery.remodal.js - */ -function getScrollbarWidth() { - - if ( $html.height() <= $window.height() ) { - return 0 - } - - var $outer = $( '
              ' ). - appendTo( 'body' ) - - // Get the width without scrollbars. - var widthWithoutScroll = $outer[0].offsetWidth - - // Force adding scrollbars. - $outer.css( 'overflow', 'scroll' ) - - // Add the inner div. - var $inner = $( '
              ' ).appendTo( $outer ) - - // Get the width with scrollbars. - var widthWithScroll = $inner[0].offsetWidth - - // Remove the divs. - $outer.remove() - - // Return the difference between the widths. - return widthWithoutScroll - widthWithScroll -} - - - -/** - * PickerConstructor helper methods. - */ -PickerConstructor._ = { - - /** - * Create a group of nodes. Expects: - * ` - { - min: {Integer}, - max: {Integer}, - i: {Integer}, - node: {String}, - item: {Function} - } - * ` - */ - group: function( groupObject ) { - - var - // Scope for the looped object - loopObjectScope, - - // Create the nodes list - nodesList = '', - - // The counter starts from the `min` - counter = PickerConstructor._.trigger( groupObject.min, groupObject ) - - - // Loop from the `min` to `max`, incrementing by `i` - for ( ; counter <= PickerConstructor._.trigger( groupObject.max, groupObject, [ counter ] ); counter += groupObject.i ) { - - // Trigger the `item` function within scope of the object - loopObjectScope = PickerConstructor._.trigger( groupObject.item, groupObject, [ counter ] ) - - // Splice the subgroup and create nodes out of the sub nodes - nodesList += PickerConstructor._.node( - groupObject.node, - loopObjectScope[ 0 ], // the node - loopObjectScope[ 1 ], // the classes - loopObjectScope[ 2 ] // the attributes - ) - } - - // Return the list of nodes - return nodesList - }, //group - - - /** - * Create a dom node string - */ - node: function( wrapper, item, klass, attribute ) { - - // If the item is false-y, just return an empty string - if ( !item ) return '' - - // If the item is an array, do a join - item = $.isArray( item ) ? item.join( '' ) : item - - // Check for the class - klass = klass ? ' class="' + klass + '"' : '' - - // Check for any attributes - attribute = attribute ? ' ' + attribute : '' - - // Return the wrapped item - return '<' + wrapper + klass + attribute + '>' + item + '' - }, //node - - - /** - * Lead numbers below 10 with a zero. - */ - lead: function( number ) { - return ( number < 10 ? '0': '' ) + number - }, - - - /** - * Trigger a function otherwise return the value. - */ - trigger: function( callback, scope, args ) { - return typeof callback == 'function' ? callback.apply( scope, args || [] ) : callback - }, - - - /** - * If the second character is a digit, length is 2 otherwise 1. - */ - digits: function( string ) { - return ( /\d/ ).test( string[ 1 ] ) ? 2 : 1 - }, - - - /** - * Tell if something is a date object. - */ - isDate: function( value ) { - return {}.toString.call( value ).indexOf( 'Date' ) > -1 && this.isInteger( value.getDate() ) - }, - - - /** - * Tell if something is an integer. - */ - isInteger: function( value ) { - return {}.toString.call( value ).indexOf( 'Number' ) > -1 && value % 1 === 0 - }, - - - /** - * Create ARIA attribute strings. - */ - ariaAttr: ariaAttr -} //PickerConstructor._ - - - -/** - * Extend the picker with a component and defaults. - */ -PickerConstructor.extend = function( name, Component ) { - - // Extend jQuery. - $.fn[ name ] = function( options, action ) { - - // Grab the component data. - var componentData = this.data( name ) - - // If the picker is requested, return the data object. - if ( options == 'picker' ) { - return componentData - } - - // If the component data exists and `options` is a string, carry out the action. - if ( componentData && typeof options == 'string' ) { - return PickerConstructor._.trigger( componentData[ options ], componentData, [ action ] ) - } - - // Otherwise go through each matched element and if the component - // doesn’t exist, create a new picker using `this` element - // and merging the defaults and options with a deep copy. - return this.each( function() { - var $this = $( this ) - if ( !$this.data( name ) ) { - new PickerConstructor( this, name, Component, options ) - } - }) - } - - // Set the defaults. - $.fn[ name ].defaults = Component.defaults -} //PickerConstructor.extend - - - -function aria(element, attribute, value) { - if ( $.isPlainObject(attribute) ) { - for ( var key in attribute ) { - ariaSet(element, key, attribute[key]) - } - } - else { - ariaSet(element, attribute, value) - } -} -function ariaSet(element, attribute, value) { - element.setAttribute( - (attribute == 'role' ? '' : 'aria-') + attribute, - value - ) -} -function ariaAttr(attribute, data) { - if ( !$.isPlainObject(attribute) ) { - attribute = { attribute: data } - } - data = '' - for ( var key in attribute ) { - var attr = (key == 'role' ? '' : 'aria-') + key, - attrVal = attribute[key] - data += attrVal == null ? '' : attr + '="' + attribute[key] + '"' - } - return data -} - -// IE8 bug throws an error for activeElements within iframes. -function getActiveElement() { - try { - return document.activeElement - } catch ( err ) { } -} - - - -// Expose the picker constructor. -return PickerConstructor - - -})); - - diff --git a/node_modules/materialize-css/js/dropdown.js b/node_modules/materialize-css/js/dropdown.js deleted file mode 100644 index ccbefc9..0000000 --- a/node_modules/materialize-css/js/dropdown.js +++ /dev/null @@ -1,265 +0,0 @@ -(function ($) { - - // Add posibility to scroll to selected option - // usefull for select for example - $.fn.scrollTo = function(elem) { - $(this).scrollTop($(this).scrollTop() - $(this).offset().top + $(elem).offset().top); - return this; - }; - - $.fn.dropdown = function (options) { - var defaults = { - inDuration: 300, - outDuration: 225, - constrainWidth: true, // Constrains width of dropdown to the activator - hover: false, - gutter: 0, // Spacing from edge - belowOrigin: false, - alignment: 'left', - stopPropagation: false - }; - - // Open dropdown. - if (options === "open") { - this.each(function() { - $(this).trigger('open'); - }); - return false; - } - - // Close dropdown. - if (options === "close") { - this.each(function() { - $(this).trigger('close'); - }); - return false; - } - - this.each(function(){ - var origin = $(this); - var curr_options = $.extend({}, defaults, options); - var isFocused = false; - - // Dropdown menu - var activates = $("#"+ origin.attr('data-activates')); - - function updateOptions() { - if (origin.data('induration') !== undefined) - curr_options.inDuration = origin.data('induration'); - if (origin.data('outduration') !== undefined) - curr_options.outDuration = origin.data('outduration'); - if (origin.data('constrainwidth') !== undefined) - curr_options.constrainWidth = origin.data('constrainwidth'); - if (origin.data('hover') !== undefined) - curr_options.hover = origin.data('hover'); - if (origin.data('gutter') !== undefined) - curr_options.gutter = origin.data('gutter'); - if (origin.data('beloworigin') !== undefined) - curr_options.belowOrigin = origin.data('beloworigin'); - if (origin.data('alignment') !== undefined) - curr_options.alignment = origin.data('alignment'); - if (origin.data('stoppropagation') !== undefined) - curr_options.stopPropagation = origin.data('stoppropagation'); - } - - updateOptions(); - - // Attach dropdown to its activator - origin.after(activates); - - /* - Helper function to position and resize dropdown. - Used in hover and click handler. - */ - function placeDropdown(eventType) { - // Check for simultaneous focus and click events. - if (eventType === 'focus') { - isFocused = true; - } - - // Check html data attributes - updateOptions(); - - // Set Dropdown state - activates.addClass('active'); - origin.addClass('active'); - - // Constrain width - if (curr_options.constrainWidth === true) { - activates.css('width', origin.outerWidth()); - - } else { - activates.css('white-space', 'nowrap'); - } - - // Offscreen detection - var windowHeight = window.innerHeight; - var originHeight = origin.innerHeight(); - var offsetLeft = origin.offset().left; - var offsetTop = origin.offset().top - $(window).scrollTop(); - var currAlignment = curr_options.alignment; - var gutterSpacing = 0; - var leftPosition = 0; - - // Below Origin - var verticalOffset = 0; - if (curr_options.belowOrigin === true) { - verticalOffset = originHeight; - } - - // Check for scrolling positioned container. - var scrollYOffset = 0; - var scrollXOffset = 0; - var wrapper = origin.parent(); - if (!wrapper.is('body')) { - if (wrapper[0].scrollHeight > wrapper[0].clientHeight) { - scrollYOffset = wrapper[0].scrollTop; - } - if (wrapper[0].scrollWidth > wrapper[0].clientWidth) { - scrollXOffset = wrapper[0].scrollLeft; - } - } - - - if (offsetLeft + activates.innerWidth() > $(window).width()) { - // Dropdown goes past screen on right, force right alignment - currAlignment = 'right'; - - } else if (offsetLeft - activates.innerWidth() + origin.innerWidth() < 0) { - // Dropdown goes past screen on left, force left alignment - currAlignment = 'left'; - } - // Vertical bottom offscreen detection - if (offsetTop + activates.innerHeight() > windowHeight) { - // If going upwards still goes offscreen, just crop height of dropdown. - if (offsetTop + originHeight - activates.innerHeight() < 0) { - var adjustedHeight = windowHeight - offsetTop - verticalOffset; - activates.css('max-height', adjustedHeight); - } else { - // Flow upwards. - if (!verticalOffset) { - verticalOffset += originHeight; - } - verticalOffset -= activates.innerHeight(); - } - } - - // Handle edge alignment - if (currAlignment === 'left') { - gutterSpacing = curr_options.gutter; - leftPosition = origin.position().left + gutterSpacing; - } - else if (currAlignment === 'right') { - var offsetRight = origin.position().left + origin.outerWidth() - activates.outerWidth(); - gutterSpacing = -curr_options.gutter; - leftPosition = offsetRight + gutterSpacing; - } - - // Position dropdown - activates.css({ - position: 'absolute', - top: origin.position().top + verticalOffset + scrollYOffset, - left: leftPosition + scrollXOffset - }); - - - // Show dropdown - activates.stop(true, true).css('opacity', 0) - .slideDown({ - queue: false, - duration: curr_options.inDuration, - easing: 'easeOutCubic', - complete: function() { - $(this).css('height', ''); - } - }) - .animate( {opacity: 1}, {queue: false, duration: curr_options.inDuration, easing: 'easeOutSine'}); - - // Add click close handler to document - $(document).bind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id'), function (e) { - if (!activates.is(e.target) && !origin.is(e.target) && (!origin.find(e.target).length) ) { - hideDropdown(); - $(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id')); - } - }); - } - - function hideDropdown() { - // Check for simultaneous focus and click events. - isFocused = false; - activates.fadeOut(curr_options.outDuration); - activates.removeClass('active'); - origin.removeClass('active'); - $(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id')); - setTimeout(function() { activates.css('max-height', ''); }, curr_options.outDuration); - } - - // Hover - if (curr_options.hover) { - var open = false; - origin.unbind('click.' + origin.attr('id')); - // Hover handler to show dropdown - origin.on('mouseenter', function(e){ // Mouse over - if (open === false) { - placeDropdown(); - open = true; - } - }); - origin.on('mouseleave', function(e){ - // If hover on origin then to something other than dropdown content, then close - var toEl = e.toElement || e.relatedTarget; // added browser compatibility for target element - if(!$(toEl).closest('.dropdown-content').is(activates)) { - activates.stop(true, true); - hideDropdown(); - open = false; - } - }); - - activates.on('mouseleave', function(e){ // Mouse out - var toEl = e.toElement || e.relatedTarget; - if(!$(toEl).closest('.dropdown-button').is(origin)) { - activates.stop(true, true); - hideDropdown(); - open = false; - } - }); - - // Click - } else { - // Click handler to show dropdown - origin.unbind('click.' + origin.attr('id')); - origin.bind('click.'+origin.attr('id'), function(e){ - if (!isFocused) { - if ( origin[0] == e.currentTarget && - !origin.hasClass('active') && - ($(e.target).closest('.dropdown-content').length === 0)) { - e.preventDefault(); // Prevents button click from moving window - if (curr_options.stopPropagation) { - e.stopPropagation(); - } - placeDropdown('click'); - } - // If origin is clicked and menu is open, close menu - else if (origin.hasClass('active')) { - hideDropdown(); - $(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id')); - } - } - }); - - } // End else - - // Listen to open and close event - useful for select component - origin.on('open', function(e, eventType) { - placeDropdown(eventType); - }); - origin.on('close', hideDropdown); - - - }); - }; // End dropdown plugin - - $(document).ready(function(){ - $('.dropdown-button').dropdown(); - }); -}( jQuery )); diff --git a/node_modules/materialize-css/js/forms.js b/node_modules/materialize-css/js/forms.js deleted file mode 100644 index ce7a0fa..0000000 --- a/node_modules/materialize-css/js/forms.js +++ /dev/null @@ -1,778 +0,0 @@ -(function ($) { - $(document).ready(function() { - - // Function to update labels of text fields - Materialize.updateTextFields = function() { - var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea'; - $(input_selector).each(function(index, element) { - var $this = $(this); - if ($(element).val().length > 0 || element.autofocus || $this.attr('placeholder') !== undefined) { - $this.siblings('label').addClass('active'); - } else if ($(element)[0].validity) { - $this.siblings('label').toggleClass('active', $(element)[0].validity.badInput === true); - } else { - $this.siblings('label').removeClass('active'); - } - }); - }; - - // Text based inputs - var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea'; - - // Add active if form auto complete - $(document).on('change', input_selector, function () { - if($(this).val().length !== 0 || $(this).attr('placeholder') !== undefined) { - $(this).siblings('label').addClass('active'); - } - validate_field($(this)); - }); - - // Add active if input element has been pre-populated on document ready - $(document).ready(function() { - Materialize.updateTextFields(); - }); - - // HTML DOM FORM RESET handling - $(document).on('reset', function(e) { - var formReset = $(e.target); - if (formReset.is('form')) { - formReset.find(input_selector).removeClass('valid').removeClass('invalid'); - formReset.find(input_selector).each(function () { - if ($(this).attr('value') === '') { - $(this).siblings('label').removeClass('active'); - } - }); - - // Reset select - formReset.find('select.initialized').each(function () { - var reset_text = formReset.find('option[selected]').text(); - formReset.siblings('input.select-dropdown').val(reset_text); - }); - } - }); - - // Add active when element has focus - $(document).on('focus', input_selector, function () { - $(this).siblings('label, .prefix').addClass('active'); - }); - - $(document).on('blur', input_selector, function () { - var $inputElement = $(this); - var selector = ".prefix"; - - if ($inputElement.val().length === 0 && $inputElement[0].validity.badInput !== true && $inputElement.attr('placeholder') === undefined) { - selector += ", label"; - } - - $inputElement.siblings(selector).removeClass('active'); - - validate_field($inputElement); - }); - - window.validate_field = function(object) { - var hasLength = object.attr('data-length') !== undefined; - var lenAttr = parseInt(object.attr('data-length')); - var len = object.val().length; - - if (object.val().length === 0 && object[0].validity.badInput === false) { - if (object.hasClass('validate')) { - object.removeClass('valid'); - object.removeClass('invalid'); - } - } - else { - if (object.hasClass('validate')) { - // Check for character counter attributes - if ((object.is(':valid') && hasLength && (len <= lenAttr)) || (object.is(':valid') && !hasLength)) { - object.removeClass('invalid'); - object.addClass('valid'); - } - else { - object.removeClass('valid'); - object.addClass('invalid'); - } - } - } - }; - - // Radio and Checkbox focus class - var radio_checkbox = 'input[type=radio], input[type=checkbox]'; - $(document).on('keyup.radio', radio_checkbox, function(e) { - // TAB, check if tabbing to radio or checkbox. - if (e.which === 9) { - $(this).addClass('tabbed'); - var $this = $(this); - $this.one('blur', function(e) { - - $(this).removeClass('tabbed'); - }); - return; - } - }); - - // Textarea Auto Resize - var hiddenDiv = $('.hiddendiv').first(); - if (!hiddenDiv.length) { - hiddenDiv = $('
              '); - $('body').append(hiddenDiv); - } - var text_area_selector = '.materialize-textarea'; - - function textareaAutoResize($textarea) { - // Set font properties of hiddenDiv - - var fontFamily = $textarea.css('font-family'); - var fontSize = $textarea.css('font-size'); - var lineHeight = $textarea.css('line-height'); - - if (fontSize) { hiddenDiv.css('font-size', fontSize); } - if (fontFamily) { hiddenDiv.css('font-family', fontFamily); } - if (lineHeight) { hiddenDiv.css('line-height', lineHeight); } - - if ($textarea.attr('wrap') === "off") { - hiddenDiv.css('overflow-wrap', "normal") - .css('white-space', "pre"); - } - - hiddenDiv.text($textarea.val() + '\n'); - var content = hiddenDiv.html().replace(/\n/g, '
              '); - hiddenDiv.html(content); - - - // When textarea is hidden, width goes crazy. - // Approximate with half of window size - - if ($textarea.is(':visible')) { - hiddenDiv.css('width', $textarea.width()); - } - else { - hiddenDiv.css('width', $(window).width()/2); - } - - $textarea.css('height', hiddenDiv.height()); - } - - $(text_area_selector).each(function () { - var $textarea = $(this); - if ($textarea.val().length) { - textareaAutoResize($textarea); - } - }); - - $('body').on('keyup keydown autoresize', text_area_selector, function () { - textareaAutoResize($(this)); - }); - - // File Input Path - $(document).on('change', '.file-field input[type="file"]', function () { - var file_field = $(this).closest('.file-field'); - var path_input = file_field.find('input.file-path'); - var files = $(this)[0].files; - var file_names = []; - for (var i = 0; i < files.length; i++) { - file_names.push(files[i].name); - } - path_input.val(file_names.join(", ")); - path_input.trigger('change'); - }); - - /**************** - * Range Input * - ****************/ - - var range_type = 'input[type=range]'; - var range_mousedown = false; - var left; - - $(range_type).each(function () { - var thumb = $(''); - $(this).after(thumb); - }); - - var range_wrapper = '.range-field'; - $(document).on('change', range_type, function(e) { - var thumb = $(this).siblings('.thumb'); - thumb.find('.value').html($(this).val()); - }); - - $(document).on('input mousedown touchstart', range_type, function(e) { - var thumb = $(this).siblings('.thumb'); - var width = $(this).outerWidth(); - - // If thumb indicator does not exist yet, create it - if (thumb.length <= 0) { - thumb = $(''); - $(this).after(thumb); - } - - // Set indicator value - thumb.find('.value').html($(this).val()); - - range_mousedown = true; - $(this).addClass('active'); - - if (!thumb.hasClass('active')) { - thumb.velocity({ height: "30px", width: "30px", top: "-20px", marginLeft: "-15px"}, { duration: 300, easing: 'easeOutExpo' }); - } - - if (e.type !== 'input') { - if(e.pageX === undefined || e.pageX === null){//mobile - left = e.originalEvent.touches[0].pageX - $(this).offset().left; - } - else{ // desktop - left = e.pageX - $(this).offset().left; - } - if (left < 0) { - left = 0; - } - else if (left > width) { - left = width; - } - thumb.addClass('active').css('left', left); - } - - thumb.find('.value').html($(this).val()); - }); - - $(document).on('mouseup touchend', range_wrapper, function() { - range_mousedown = false; - $(this).removeClass('active'); - }); - - $(document).on('mousemove touchmove', range_wrapper, function(e) { - var thumb = $(this).children('.thumb'); - var left; - if (range_mousedown) { - if (!thumb.hasClass('active')) { - thumb.velocity({ height: '30px', width: '30px', top: '-20px', marginLeft: '-15px'}, { duration: 300, easing: 'easeOutExpo' }); - } - if (e.pageX === undefined || e.pageX === null) { //mobile - left = e.originalEvent.touches[0].pageX - $(this).offset().left; - } - else{ // desktop - left = e.pageX - $(this).offset().left; - } - var width = $(this).outerWidth(); - - if (left < 0) { - left = 0; - } - else if (left > width) { - left = width; - } - thumb.addClass('active').css('left', left); - thumb.find('.value').html(thumb.siblings(range_type).val()); - } - }); - - $(document).on('mouseout touchleave', range_wrapper, function() { - if (!range_mousedown) { - - var thumb = $(this).children('.thumb'); - - if (thumb.hasClass('active')) { - thumb.velocity({ height: '0', width: '0', top: '10px', marginLeft: '-6px'}, { duration: 100 }); - } - thumb.removeClass('active'); - } - }); - - /************************** - * Auto complete plugin * - *************************/ - $.fn.autocomplete = function (options) { - // Defaults - var defaults = { - data: {}, - limit: Infinity, - onAutocomplete: null - }; - - options = $.extend(defaults, options); - - return this.each(function() { - var $input = $(this); - var data = options.data, - count = 0, - activeIndex = 0, - oldVal, - $inputDiv = $input.closest('.input-field'); // Div to append on - - // Check if data isn't empty - if (!$.isEmptyObject(data)) { - var $autocomplete = $(''); - var $oldAutocomplete; - - // Append autocomplete element. - // Prevent double structure init. - if ($inputDiv.length) { - $oldAutocomplete = $inputDiv.children('.autocomplete-content.dropdown-content').first(); - if (!$oldAutocomplete.length) { - $inputDiv.append($autocomplete); // Set ul in body - } - } else { - $oldAutocomplete = $input.next('.autocomplete-content.dropdown-content'); - if (!$oldAutocomplete.length) { - $input.after($autocomplete); - } - } - if ($oldAutocomplete.length) { - $autocomplete = $oldAutocomplete; - } - - // Highlight partial match. - var highlight = function(string, $el) { - var img = $el.find('img'); - var matchStart = $el.text().toLowerCase().indexOf("" + string.toLowerCase() + ""), - matchEnd = matchStart + string.length - 1, - beforeMatch = $el.text().slice(0, matchStart), - matchText = $el.text().slice(matchStart, matchEnd + 1), - afterMatch = $el.text().slice(matchEnd + 1); - $el.html("" + beforeMatch + "" + matchText + "" + afterMatch + ""); - if (img.length) { - $el.prepend(img); - } - }; - - // Reset current element position - var resetCurrentElement = function() { - activeIndex = 0; - $autocomplete.find('.active').removeClass('active'); - } - - // Perform search - $input.off('keyup.autocomplete').on('keyup.autocomplete', function (e) { - // Reset count. - count = 0; - - // Don't capture enter or arrow key usage. - if (e.which === 13 || - e.which === 38 || - e.which === 40) { - return; - } - - var val = $input.val().toLowerCase(); - - // Check if the input isn't empty - if (oldVal !== val) { - $autocomplete.empty(); - resetCurrentElement(); - - if (val !== '') { - for(var key in data) { - if (data.hasOwnProperty(key) && - key.toLowerCase().indexOf(val) !== -1 && - key.toLowerCase() !== val) { - // Break if past limit - if (count >= options.limit) { - break; - } - - var autocompleteOption = $('
            • '); - if (!!data[key]) { - autocompleteOption.append(''+ key +''); - } else { - autocompleteOption.append(''+ key +''); - } - - $autocomplete.append(autocompleteOption); - highlight(val, autocompleteOption); - count++; - } - } - } - } - - // Update oldVal - oldVal = val; - }); - - $input.off('keydown.autocomplete').on('keydown.autocomplete', function (e) { - // Arrow keys and enter key usage - var keyCode = e.which, - liElement, - numItems = $autocomplete.children('li').length, - $active = $autocomplete.children('.active').first(); - - // select element on Enter - if (keyCode === 13) { - liElement = $autocomplete.children('li').eq(activeIndex); - if (liElement.length) { - liElement.click(); - e.preventDefault(); - } - return; - } - - // Capture up and down key - if ( keyCode === 38 || keyCode === 40 ) { - e.preventDefault(); - - if (keyCode === 38 && - activeIndex > 0) { - activeIndex--; - } - - if (keyCode === 40 && - activeIndex < (numItems - 1) && - $active.length) { - activeIndex++; - } - - $active.removeClass('active'); - $autocomplete.children('li').eq(activeIndex).addClass('active'); - } - }); - - // Set input value - $autocomplete.on('click', 'li', function () { - var text = $(this).text().trim(); - $input.val(text); - $input.trigger('change'); - $autocomplete.empty(); - resetCurrentElement(); - - // Handle onAutocomplete callback. - if (typeof(options.onAutocomplete) === "function") { - options.onAutocomplete.call(this, text); - } - }); - } - }); - }; - - }); // End of $(document).ready - - /******************* - * Select Plugin * - ******************/ - $.fn.material_select = function (callback) { - $(this).each(function(){ - var $select = $(this); - - if ($select.hasClass('browser-default')) { - return; // Continue to next (return false breaks out of entire loop) - } - - var multiple = $select.attr('multiple') ? true : false, - lastID = $select.data('select-id'); // Tear down structure if Select needs to be rebuilt - - if (lastID) { - $select.parent().find('span.caret').remove(); - $select.parent().find('input').remove(); - - $select.unwrap(); - $('ul#select-options-'+lastID).remove(); - } - - // If destroying the select, remove the selelct-id and reset it to it's uninitialized state. - if(callback === 'destroy') { - $select.data('select-id', null).removeClass('initialized'); - return; - } - - var uniqueID = Materialize.guid(); - $select.data('select-id', uniqueID); - var wrapper = $('
              '); - wrapper.addClass($select.attr('class')); - var options = $(''), - selectChildren = $select.children('option, optgroup'), - valuesSelected = [], - optionsHover = false; - - var label = $select.find('option:selected').html() || $select.find('option:first').html() || ""; - - // Function that renders and appends the option taking into - // account type and possible image icon. - var appendOptionWithIcon = function(select, option, type) { - // Add disabled attr if disabled - var disabledClass = (option.is(':disabled')) ? 'disabled ' : ''; - var optgroupClass = (type === 'optgroup-option') ? 'optgroup-option ' : ''; - - // add icons - var icon_url = option.data('icon'); - var classes = option.attr('class'); - if (!!icon_url) { - var classString = ''; - if (!!classes) classString = ' class="' + classes + '"'; - - // Check for multiple type. - if (type === 'multiple') { - options.append($('
            • ' + option.html() + '
            • ')); - } else { - options.append($('
            • ' + option.html() + '
            • ')); - } - return true; - } - - // Check for multiple type. - if (type === 'multiple') { - options.append($('
            • ' + option.html() + '
            • ')); - } else { - options.append($('
            • ' + option.html() + '
            • ')); - } - }; - - /* Create dropdown structure. */ - if (selectChildren.length) { - selectChildren.each(function() { - if ($(this).is('option')) { - // Direct descendant option. - if (multiple) { - appendOptionWithIcon($select, $(this), 'multiple'); - - } else { - appendOptionWithIcon($select, $(this)); - } - } else if ($(this).is('optgroup')) { - // Optgroup. - var selectOptions = $(this).children('option'); - options.append($('
            • ' + $(this).attr('label') + '
            • ')); - - selectOptions.each(function() { - appendOptionWithIcon($select, $(this), 'optgroup-option'); - }); - } - }); - } - - options.find('li:not(.optgroup)').each(function (i) { - $(this).click(function (e) { - // Check if option element is disabled - if (!$(this).hasClass('disabled') && !$(this).hasClass('optgroup')) { - var selected = true; - - if (multiple) { - $('input[type="checkbox"]', this).prop('checked', function(i, v) { return !v; }); - selected = toggleEntryFromArray(valuesSelected, $(this).index(), $select); - $newSelect.trigger('focus'); - } else { - options.find('li').removeClass('active'); - $(this).toggleClass('active'); - $newSelect.val($(this).text()); - } - - activateOption(options, $(this)); - $select.find('option').eq(i).prop('selected', selected); - // Trigger onchange() event - $select.trigger('change'); - if (typeof callback !== 'undefined') callback(); - } - - e.stopPropagation(); - }); - }); - - // Wrap Elements - $select.wrap(wrapper); - // Add Select Display Element - var dropdownIcon = $(''); - if ($select.is(':disabled')) - dropdownIcon.addClass('disabled'); - - // escape double quotes - var sanitizedLabelHtml = label.replace(/"/g, '"'); - - var $newSelect = $(''); - $select.before($newSelect); - $newSelect.before(dropdownIcon); - - $newSelect.after(options); - // Check if section element is disabled - if (!$select.is(':disabled')) { - $newSelect.dropdown({'hover': false, 'closeOnClick': false}); - } - - // Copy tabindex - if ($select.attr('tabindex')) { - $($newSelect[0]).attr('tabindex', $select.attr('tabindex')); - } - - $select.addClass('initialized'); - - $newSelect.on({ - 'focus': function (){ - if ($('ul.select-dropdown').not(options[0]).is(':visible')) { - $('input.select-dropdown').trigger('close'); - } - if (!options.is(':visible')) { - $(this).trigger('open', ['focus']); - var label = $(this).val(); - if (multiple && label.indexOf(',') >= 0) { - label = label.split(',')[0]; - } - - var selectedOption = options.find('li').filter(function() { - return $(this).text().toLowerCase() === label.toLowerCase(); - })[0]; - activateOption(options, selectedOption, true); - } - }, - 'click': function (e){ - e.stopPropagation(); - } - }); - - $newSelect.on('blur', function() { - if (!multiple) { - $(this).trigger('close'); - } - options.find('li.selected').removeClass('selected'); - }); - - options.hover(function() { - optionsHover = true; - }, function () { - optionsHover = false; - }); - - $(window).on({ - 'click': function () { - multiple && (optionsHover || $newSelect.trigger('close')); - } - }); - - // Add initial multiple selections. - if (multiple) { - $select.find("option:selected:not(:disabled)").each(function () { - var index = $(this).index(); - - toggleEntryFromArray(valuesSelected, index, $select); - options.find("li").eq(index).find(":checkbox").prop("checked", true); - }); - } - - /** - * Make option as selected and scroll to selected position - * @param {jQuery} collection Select options jQuery element - * @param {Element} newOption element of the new option - * @param {Boolean} firstActivation If on first activation of select - */ - var activateOption = function(collection, newOption, firstActivation) { - if (newOption) { - collection.find('li.selected').removeClass('selected'); - var option = $(newOption); - option.addClass('selected'); - if (!multiple || !!firstActivation) { - options.scrollTo(option); - } - } - }; - - // Allow user to search by typing - // this array is cleared after 1 second - var filterQuery = [], - onKeyDown = function(e){ - // TAB - switch to another input - if(e.which == 9){ - $newSelect.trigger('close'); - return; - } - - // ARROW DOWN WHEN SELECT IS CLOSED - open select options - if(e.which == 40 && !options.is(':visible')){ - $newSelect.trigger('open'); - return; - } - - // ENTER WHEN SELECT IS CLOSED - submit form - if(e.which == 13 && !options.is(':visible')){ - return; - } - - e.preventDefault(); - - // CASE WHEN USER TYPE LETTERS - var letter = String.fromCharCode(e.which).toLowerCase(), - nonLetters = [9,13,27,38,40]; - if (letter && (nonLetters.indexOf(e.which) === -1)) { - filterQuery.push(letter); - - var string = filterQuery.join(''), - newOption = options.find('li').filter(function() { - return $(this).text().toLowerCase().indexOf(string) === 0; - })[0]; - - if (newOption) { - activateOption(options, newOption); - } - } - - // ENTER - select option and close when select options are opened - if (e.which == 13) { - var activeOption = options.find('li.selected:not(.disabled)')[0]; - if(activeOption){ - $(activeOption).trigger('click'); - if (!multiple) { - $newSelect.trigger('close'); - } - } - } - - // ARROW DOWN - move to next not disabled option - if (e.which == 40) { - if (options.find('li.selected').length) { - newOption = options.find('li.selected').next('li:not(.disabled)')[0]; - } else { - newOption = options.find('li:not(.disabled)')[0]; - } - activateOption(options, newOption); - } - - // ESC - close options - if (e.which == 27) { - $newSelect.trigger('close'); - } - - // ARROW UP - move to previous not disabled option - if (e.which == 38) { - newOption = options.find('li.selected').prev('li:not(.disabled)')[0]; - if(newOption) - activateOption(options, newOption); - } - - // Automaticaly clean filter query so user can search again by starting letters - setTimeout(function(){ filterQuery = []; }, 1000); - }; - - $newSelect.on('keydown', onKeyDown); - }); - - function toggleEntryFromArray(entriesArray, entryIndex, select) { - var index = entriesArray.indexOf(entryIndex), - notAdded = index === -1; - - if (notAdded) { - entriesArray.push(entryIndex); - } else { - entriesArray.splice(index, 1); - } - - select.siblings('ul.dropdown-content').find('li').eq(entryIndex).toggleClass('active'); - - // use notAdded instead of true (to detect if the option is selected or not) - select.find('option').eq(entryIndex).prop('selected', notAdded); - setValueToInput(entriesArray, select); - - return notAdded; - } - - function setValueToInput(entriesArray, select) { - var value = ''; - - for (var i = 0, count = entriesArray.length; i < count; i++) { - var text = select.find('option').eq(entriesArray[i]).text(); - - i === 0 ? value += text : value += ', ' + text; - } - - if (value === '') { - value = select.find('option:disabled').eq(0).text(); - } - - select.siblings('input.select-dropdown').val(value); - } - }; - -}( jQuery )); diff --git a/node_modules/materialize-css/js/global.js b/node_modules/materialize-css/js/global.js deleted file mode 100644 index ec83d39..0000000 --- a/node_modules/materialize-css/js/global.js +++ /dev/null @@ -1,153 +0,0 @@ -// Required for Meteor package, the use of window prevents export by Meteor -(function(window){ - if(window.Package){ - Materialize = {}; - } else { - window.Materialize = {}; - } -})(window); - - -/* - * raf.js - * https://github.com/ngryman/raf.js - * - * original requestAnimationFrame polyfill by Erik Möller - * inspired from paul_irish gist and post - * - * Copyright (c) 2013 ngryman - * Licensed under the MIT license. - */ -(function(window) { - var lastTime = 0, - vendors = ['webkit', 'moz'], - requestAnimationFrame = window.requestAnimationFrame, - cancelAnimationFrame = window.cancelAnimationFrame, - i = vendors.length; - - // try to un-prefix existing raf - while (--i >= 0 && !requestAnimationFrame) { - requestAnimationFrame = window[vendors[i] + 'RequestAnimationFrame']; - cancelAnimationFrame = window[vendors[i] + 'CancelRequestAnimationFrame']; - } - - // polyfill with setTimeout fallback - // heavily inspired from @darius gist mod: https://gist.github.com/paulirish/1579671#comment-837945 - if (!requestAnimationFrame || !cancelAnimationFrame) { - requestAnimationFrame = function(callback) { - var now = +Date.now(), - nextTime = Math.max(lastTime + 16, now); - return setTimeout(function() { - callback(lastTime = nextTime); - }, nextTime - now); - }; - - cancelAnimationFrame = clearTimeout; - } - - // export to window - window.requestAnimationFrame = requestAnimationFrame; - window.cancelAnimationFrame = cancelAnimationFrame; -}(window)); - - -// Unique ID -Materialize.guid = (function() { - function s4() { - return Math.floor((1 + Math.random()) * 0x10000) - .toString(16) - .substring(1); - } - return function() { - return s4() + s4() + '-' + s4() + '-' + s4() + '-' + - s4() + '-' + s4() + s4() + s4(); - }; -})(); - -/** - * Escapes hash from special characters - * @param {string} hash String returned from this.hash - * @returns {string} - */ -Materialize.escapeHash = function(hash) { - return hash.replace( /(:|\.|\[|\]|,|=)/g, "\\$1" ); -}; - -Materialize.elementOrParentIsFixed = function(element) { - var $element = $(element); - var $checkElements = $element.add($element.parents()); - var isFixed = false; - $checkElements.each(function(){ - if ($(this).css("position") === "fixed") { - isFixed = true; - return false; - } - }); - return isFixed; -}; - - -/** - * Get time in ms - * @license https://raw.github.com/jashkenas/underscore/master/LICENSE - * @type {function} - * @return {number} - */ -var getTime = (Date.now || function () { - return new Date().getTime(); -}); - - -/** - * Returns a function, that, when invoked, will only be triggered at most once - * during a given window of time. Normally, the throttled function will run - * as much as it can, without ever going more than once per `wait` duration; - * but if you'd like to disable the execution on the leading edge, pass - * `{leading: false}`. To disable execution on the trailing edge, ditto. - * @license https://raw.github.com/jashkenas/underscore/master/LICENSE - * @param {function} func - * @param {number} wait - * @param {Object=} options - * @returns {Function} - */ -Materialize.throttle = function(func, wait, options) { - var context, args, result; - var timeout = null; - var previous = 0; - options || (options = {}); - var later = function () { - previous = options.leading === false ? 0 : getTime(); - timeout = null; - result = func.apply(context, args); - context = args = null; - }; - return function () { - var now = getTime(); - if (!previous && options.leading === false) previous = now; - var remaining = wait - (now - previous); - context = this; - args = arguments; - if (remaining <= 0) { - clearTimeout(timeout); - timeout = null; - previous = now; - result = func.apply(context, args); - context = args = null; - } else if (!timeout && options.trailing !== false) { - timeout = setTimeout(later, remaining); - } - return result; - }; -}; - - -// Velocity has conflicts when loaded with jQuery, this will check for it -// First, check if in noConflict mode -var Vel; -if (jQuery) { - Vel = jQuery.Velocity; -} else if ($) { - Vel = $.Velocity; -} else { - Vel = Velocity; -} diff --git a/node_modules/materialize-css/js/hammer.min.js b/node_modules/materialize-css/js/hammer.min.js deleted file mode 100644 index 6c232c8..0000000 --- a/node_modules/materialize-css/js/hammer.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a,b,c,d){"use strict";function k(a,b,c){return setTimeout(q(a,c),b)}function l(a,b,c){return Array.isArray(a)?(m(a,c[b],c),!0):!1}function m(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e-1}function x(a){return a.trim().split(/\s+/g)}function y(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;dc[b]}):d.sort()),d}function B(a,b){for(var c,f,g=b[0].toUpperCase()+b.slice(1),h=0;h1&&!c.firstMultiple?c.firstMultiple=gb(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=hb(d);b.timeStamp=j(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=lb(h,i),b.distance=kb(h,i),eb(c,b),b.offsetDirection=jb(b.deltaX,b.deltaY),b.scale=g?nb(g.pointers,d):1,b.rotation=g?mb(g.pointers,d):0,fb(c,b);var k=a.element;v(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function eb(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===O||f.eventType===Q)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function fb(a,b){var f,g,h,j,c=a.lastInterval||b,e=b.timeStamp-c.timeStamp;if(b.eventType!=R&&(e>N||c.velocity===d)){var k=c.deltaX-b.deltaX,l=c.deltaY-b.deltaY,m=ib(e,k,l);g=m.x,h=m.y,f=i(m.x)>i(m.y)?m.x:m.y,j=jb(k,l),a.lastInterval=b}else f=c.velocity,g=c.velocityX,h=c.velocityY,j=c.direction;b.velocity=f,b.velocityX=g,b.velocityY=h,b.direction=j}function gb(a){for(var b=[],c=0;ce;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:h(c/b),y:h(d/b)}}function ib(a,b,c){return{x:b/a||0,y:c/a||0}}function jb(a,b){return a===b?S:i(a)>=i(b)?a>0?T:U:b>0?V:W}function kb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function lb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function mb(a,b){return lb(b[1],b[0],_)-lb(a[1],a[0],_)}function nb(a,b){return kb(b[0],b[1],_)/kb(a[0],a[1],_)}function rb(){this.evEl=pb,this.evWin=qb,this.allow=!0,this.pressed=!1,ab.apply(this,arguments)}function wb(){this.evEl=ub,this.evWin=vb,ab.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Ab(){this.evTarget=yb,this.evWin=zb,this.started=!1,ab.apply(this,arguments)}function Bb(a,b){var c=z(a.touches),d=z(a.changedTouches);return b&(Q|R)&&(c=A(c.concat(d),"identifier",!0)),[c,d]}function Eb(){this.evTarget=Db,this.targetIds={},ab.apply(this,arguments)}function Fb(a,b){var c=z(a.touches),d=this.targetIds;if(b&(O|P)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=z(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return v(a.target,i)}),b===O)for(e=0;eh&&(b.push(a),h=b.length-1):e&(Q|R)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var xb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},yb="touchstart",zb="touchstart touchmove touchend touchcancel";p(Ab,ab,{handler:function(a){var b=xb[a.type];if(b===O&&(this.started=!0),this.started){var c=Bb.call(this,a,b);b&(Q|R)&&0===c[0].length-c[1].length&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}});var Cb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},Db="touchstart touchmove touchend touchcancel";p(Eb,ab,{handler:function(a){var b=Cb[a.type],c=Fb.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}),p(Gb,ab,{handler:function(a,b,c){var d=c.pointerType==J,e=c.pointerType==L;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Q|R)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Hb=B(f.style,"touchAction"),Ib=Hb!==d,Jb="compute",Kb="auto",Lb="manipulation",Mb="none",Nb="pan-x",Ob="pan-y";Pb.prototype={set:function(a){a==Jb&&(a=this.compute()),Ib&&(this.manager.element.style[Hb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return m(this.manager.recognizers,function(b){r(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),Qb(a.join(" "))},preventDefaults:function(a){if(!Ib){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return b.preventDefault(),void 0;var d=this.actions,e=w(d,Mb),f=w(d,Ob),g=w(d,Nb);return e||f&&c&X||g&&c&Y?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var Rb=1,Sb=2,Tb=4,Ub=8,Vb=Ub,Wb=16,Xb=32;Yb.prototype={defaults:{},set:function(a){return n(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(l(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=_b(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return l(a,"dropRecognizeWith",this)?this:(a=_b(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(l(a,"requireFailure",this))return this;var b=this.requireFail;return a=_b(a,this),-1===y(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(l(a,"dropRequireFailure",this))return this;a=_b(a,this);var b=y(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function d(d){b.manager.emit(b.options.event+(d?Zb(c):""),a)}var b=this,c=this.state;Ub>c&&d(!0),d(),c>=Ub&&d(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):(this.state=Xb,void 0)},canEmit:function(){for(var a=0;af?T:U,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?S:0>g?V:W,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return ac.prototype.attrTest.call(this,a)&&(this.state&Sb||!(this.state&Sb)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),p(cc,ac,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&Sb)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),p(dc,Yb,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[Kb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distanceb.time;if(this._input=a,!d||!c||a.eventType&(Q|R)&&!e)this.reset();else if(a.eventType&O)this.reset(),this._timer=k(function(){this.state=Vb,this.tryEmit()},b.time,this);else if(a.eventType&Q)return Vb;return Xb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===Vb&&(a&&a.eventType&Q?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=j(),this.manager.emit(this.options.event,this._input)))}}),p(ec,ac,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&Sb)}}),p(fc,ac,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:X|Y,pointers:1},getTouchAction:function(){return bc.prototype.getTouchAction.call(this)},attrTest:function(a){var c,b=this.options.direction;return b&(X|Y)?c=a.velocity:b&X?c=a.velocityX:b&Y&&(c=a.velocityY),this._super.attrTest.call(this,a)&&b&a.direction&&a.distance>this.options.threshold&&i(c)>this.options.velocity&&a.eventType&Q},emit:function(a){var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),p(gc,Yb,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[Lb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance= 0 || $(this).hasClass('black')) { - $(this).css('color', 'rgba(255,255,255,.9'); - } - }); - }); - - // Floating-Fixed table of contents - setTimeout(function() { - var tocWrapperHeight = 260; // Max height of ads. - var tocHeight = $('.toc-wrapper .table-of-contents').length ? $('.toc-wrapper .table-of-contents').height() : 0; - var socialHeight = 95; // Height of unloaded social media in footer. - var footerOffset = $('body > footer').first().length ? $('body > footer').first().offset().top : 0; - var bottomOffset = footerOffset - socialHeight - tocHeight - tocWrapperHeight; - - if ($('nav').length) { - $('.toc-wrapper').pushpin({ - top: $('nav').height(), - bottom: bottomOffset - }); - } - else if ($('#index-banner').length) { - $('.toc-wrapper').pushpin({ - top: $('#index-banner').height(), - bottom: bottomOffset - }); - } - else { - $('.toc-wrapper').pushpin({ - top: 0, - bottom: bottomOffset - }); - } - }, 100); - - - // BuySellAds Detection - var $bsa = $(".buysellads"), - $timesToCheck = 3; - function checkForChanges() { - if (!$bsa.find('#carbonads').length) { - $timesToCheck -= 1; - if ($timesToCheck >= 0) { - setTimeout(checkForChanges, 500); - } - else { - var donateAd = $(''); - - $bsa.append(donateAd); - } - } - - } - checkForChanges(); - - - // BuySellAds Demos close button. - $('.buysellads.buysellads-demo .close').on('click', function() { - $(this).parent().remove(); - }); - - - // Github Latest Commit - if ($('.github-commit').length) { // Checks if widget div exists (Index only) - $.ajax({ - url: "https://api.github.com/repos/dogfalo/materialize/commits/master", - dataType: "json", - success: function (data) { - var sha = data.sha, - date = jQuery.timeago(data.commit.author.date); - if (window_width < 1120) { - sha = sha.substring(0,7); - } - $('.github-commit').find('.date').html(date); - $('.github-commit').find('.sha').html(sha).attr('href', data.html_url); - } - }); - } - - // Toggle Flow Text - var toggleFlowTextButton = $('#flow-toggle'); - toggleFlowTextButton.click( function(){ - $('#flow-text-demo').children('p').each(function(){ - $(this).toggleClass('flow-text'); - }); - }); - -// Toggle Containers on page - var toggleContainersButton = $('#container-toggle-button'); - toggleContainersButton.click(function(){ - $('body .browser-window .container, .had-container').each(function(){ - $(this).toggleClass('had-container'); - $(this).toggleClass('container'); - if ($(this).hasClass('container')) { - toggleContainersButton.text("Turn off Containers"); - } - else { - toggleContainersButton.text("Turn on Containers"); - } - }); - }); - - // Detect touch screen and enable scrollbar if necessary - function is_touch_device() { - try { - document.createEvent("TouchEvent"); - return true; - } catch (e) { - return false; - } - } - if (is_touch_device()) { - $('#nav-mobile').css({ overflow: 'auto'}); - } - - // Set checkbox on forms.html to indeterminate - var indeterminateCheckbox = document.getElementById('indeterminate-checkbox'); - if (indeterminateCheckbox !== null) - indeterminateCheckbox.indeterminate = true; - - - // Pushpin Demo Init - if ($('.pushpin-demo-nav').length) { - $('.pushpin-demo-nav').each(function() { - var $this = $(this); - var $target = $('#' + $(this).attr('data-target')); - $this.pushpin({ - top: $target.offset().top, - bottom: $target.offset().top + $target.outerHeight() - $this.height() - }); - }); - } - - // CSS Transitions Demo Init - if ($('#scale-demo').length && - $('#scale-demo-trigger').length) { - $('#scale-demo-trigger').click(function() { - $('#scale-demo').toggleClass('scale-out'); - }); - } - - // Swipeable Tabs Demo Init - if ($('#tabs-swipe-demo').length) { - $('#tabs-swipe-demo').tabs({ 'swipeable': true }); - } - - // Plugin initialization - $('.carousel.carousel-slider').carousel({fullWidth: true}); - $('.carousel').carousel(); - $('.slider').slider(); - $('.parallax').parallax(); - $('.modal').modal(); - $('.scrollspy').scrollSpy(); - $('.button-collapse').sideNav({'edge': 'left'}); - $('.datepicker').pickadate({selectYears: 20}); - $('select').not('.disabled').material_select(); - $('input.autocomplete').autocomplete({ - data: {"Apple": null, "Microsoft": null, "Google": 'http://placehold.it/250x250'} - }); - - // Chips - $('.chips').material_chip(); - $('.chips-initial').material_chip({ - readOnly: true, - data: [{ - tag: 'Apple', - }, { - tag: 'Microsoft', - }, { - tag: 'Google', - }] - }); - $('.chips-placeholder').material_chip({ - placeholder: 'Enter a tag', - secondaryPlaceholder: '+Tag', - }); - $('.chips-autocomplete').material_chip({ - autocompleteData: { - 'Apple': null, - 'Microsoft': null, - 'Google': null - } - }); - - - }); // end of document ready -})(jQuery); // end of jQuery name space diff --git a/node_modules/materialize-css/js/initial.js b/node_modules/materialize-css/js/initial.js deleted file mode 100644 index 13f317d..0000000 --- a/node_modules/materialize-css/js/initial.js +++ /dev/null @@ -1,11 +0,0 @@ -// Check for jQuery. -if (typeof(jQuery) === 'undefined') { - var jQuery; - // Check if require is a defined function. - if (typeof(require) === 'function') { - jQuery = $ = require('jquery'); - // Else use the dollar sign alias. - } else { - jQuery = $; - } -} diff --git a/node_modules/materialize-css/js/jquery.easing.1.3.js b/node_modules/materialize-css/js/jquery.easing.1.3.js deleted file mode 100644 index 2e67998..0000000 --- a/node_modules/materialize-css/js/jquery.easing.1.3.js +++ /dev/null @@ -1,205 +0,0 @@ -/* - * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ - * - * Uses the built in easing capabilities added In jQuery 1.1 - * to offer multiple easing options - * - * TERMS OF USE - jQuery Easing - * - * Open source under the BSD License. - * - * Copyright © 2008 George McGinley Smith - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * Neither the name of the author nor the names of 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. - * -*/ - -// t: current time, b: begInnIng value, c: change In value, d: duration -jQuery.easing['jswing'] = jQuery.easing['swing']; - -jQuery.extend( jQuery.easing, -{ - def: 'easeOutQuad', - swing: function (x, t, b, c, d) { - //alert(jQuery.easing.default); - return jQuery.easing[jQuery.easing.def](x, t, b, c, d); - }, - easeInQuad: function (x, t, b, c, d) { - return c*(t/=d)*t + b; - }, - easeOutQuad: function (x, t, b, c, d) { - return -c *(t/=d)*(t-2) + b; - }, - easeInOutQuad: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t + b; - return -c/2 * ((--t)*(t-2) - 1) + b; - }, - easeInCubic: function (x, t, b, c, d) { - return c*(t/=d)*t*t + b; - }, - easeOutCubic: function (x, t, b, c, d) { - return c*((t=t/d-1)*t*t + 1) + b; - }, - easeInOutCubic: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t + b; - return c/2*((t-=2)*t*t + 2) + b; - }, - easeInQuart: function (x, t, b, c, d) { - return c*(t/=d)*t*t*t + b; - }, - easeOutQuart: function (x, t, b, c, d) { - return -c * ((t=t/d-1)*t*t*t - 1) + b; - }, - easeInOutQuart: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t*t + b; - return -c/2 * ((t-=2)*t*t*t - 2) + b; - }, - easeInQuint: function (x, t, b, c, d) { - return c*(t/=d)*t*t*t*t + b; - }, - easeOutQuint: function (x, t, b, c, d) { - return c*((t=t/d-1)*t*t*t*t + 1) + b; - }, - easeInOutQuint: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; - return c/2*((t-=2)*t*t*t*t + 2) + b; - }, - easeInSine: function (x, t, b, c, d) { - return -c * Math.cos(t/d * (Math.PI/2)) + c + b; - }, - easeOutSine: function (x, t, b, c, d) { - return c * Math.sin(t/d * (Math.PI/2)) + b; - }, - easeInOutSine: function (x, t, b, c, d) { - return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; - }, - easeInExpo: function (x, t, b, c, d) { - return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; - }, - easeOutExpo: function (x, t, b, c, d) { - return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; - }, - easeInOutExpo: function (x, t, b, c, d) { - if (t==0) return b; - if (t==d) return b+c; - if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; - return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; - }, - easeInCirc: function (x, t, b, c, d) { - return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; - }, - easeOutCirc: function (x, t, b, c, d) { - return c * Math.sqrt(1 - (t=t/d-1)*t) + b; - }, - easeInOutCirc: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; - return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; - }, - easeInElastic: function (x, t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - }, - easeOutElastic: function (x, t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; - }, - easeInOutElastic: function (x, t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; - }, - easeInBack: function (x, t, b, c, d, s) { - if (s == undefined) s = 1.70158; - return c*(t/=d)*t*((s+1)*t - s) + b; - }, - easeOutBack: function (x, t, b, c, d, s) { - if (s == undefined) s = 1.70158; - return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; - }, - easeInOutBack: function (x, t, b, c, d, s) { - if (s == undefined) s = 1.70158; - if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; - return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; - }, - easeInBounce: function (x, t, b, c, d) { - return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b; - }, - easeOutBounce: function (x, t, b, c, d) { - if ((t/=d) < (1/2.75)) { - return c*(7.5625*t*t) + b; - } else if (t < (2/2.75)) { - return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; - } else if (t < (2.5/2.75)) { - return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; - } else { - return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; - } - }, - easeInOutBounce: function (x, t, b, c, d) { - if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; - return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; - } -}); - -/* - * - * TERMS OF USE - EASING EQUATIONS - * - * Open source under the BSD License. - * - * Copyright © 2001 Robert Penner - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * Neither the name of the author nor the names of 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. - * - */ \ No newline at end of file diff --git a/node_modules/materialize-css/js/jquery.hammer.js b/node_modules/materialize-css/js/jquery.hammer.js deleted file mode 100644 index e444b5c..0000000 --- a/node_modules/materialize-css/js/jquery.hammer.js +++ /dev/null @@ -1,33 +0,0 @@ -(function(factory) { - if (typeof define === 'function' && define.amd) { - define(['jquery', 'hammerjs'], factory); - } else if (typeof exports === 'object') { - factory(require('jquery'), require('hammerjs')); - } else { - factory(jQuery, Hammer); - } -}(function($, Hammer) { - function hammerify(el, options) { - var $el = $(el); - if(!$el.data("hammer")) { - $el.data("hammer", new Hammer($el[0], options)); - } - } - - $.fn.hammer = function(options) { - return this.each(function() { - hammerify(this, options); - }); - }; - - // extend the emit method to also trigger jQuery events - Hammer.Manager.prototype.emit = (function(originalEmit) { - return function(type, data) { - originalEmit.call(this, type, data); - $(this.element).trigger({ - type: type, - gesture: data - }); - }; - })(Hammer.Manager.prototype.emit); -})); diff --git a/node_modules/materialize-css/js/jquery.timeago.min.js b/node_modules/materialize-css/js/jquery.timeago.min.js deleted file mode 100644 index 102a56c..0000000 --- a/node_modules/materialize-css/js/jquery.timeago.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(t){function e(){var e=a(this),o=r.settings;return isNaN(e.datetime)||(0==o.cutoff||Math.abs(n(e.datetime))0)||r.isTime(e)&&e.attr("title")||e.attr("title",a)}return e.data("timeago")}function i(t){return r.inWords(n(t))}function n(t){return(new Date).getTime()-t.getTime()}t.timeago=function(e){return i(e instanceof Date?e:"string"==typeof e?t.timeago.parse(e):"number"==typeof e?new Date(e):t.timeago.datetime(e))};var r=t.timeago;t.extend(t.timeago,{settings:{refreshMillis:6e4,allowPast:!0,allowFuture:!1,localeTitle:!1,cutoff:0,strings:{prefixAgo:null,prefixFromNow:null,suffixAgo:"ago",suffixFromNow:"from now",inPast:"any moment now",seconds:"less than a minute",minute:"about a minute",minutes:"%d minutes",hour:"about an hour",hours:"about %d hours",day:"a day",days:"%d days",month:"about a month",months:"%d months",year:"about a year",years:"%d years",wordSeparator:" ",numbers:[]}},inWords:function(e){function a(a,n){var r=t.isFunction(a)?a(n,e):a,o=i.numbers&&i.numbers[n]||n;return r.replace(/%d/i,o)}if(!this.settings.allowPast&&!this.settings.allowFuture)throw"timeago allowPast and allowFuture settings can not both be set to false.";var i=this.settings.strings,n=i.prefixAgo,r=i.suffixAgo;if(this.settings.allowFuture&&0>e&&(n=i.prefixFromNow,r=i.suffixFromNow),!this.settings.allowPast&&e>=0)return this.settings.strings.inPast;var o=Math.abs(e)/1e3,s=o/60,u=s/60,m=u/24,l=m/365,d=45>o&&a(i.seconds,Math.round(o))||90>o&&a(i.minute,1)||45>s&&a(i.minutes,Math.round(s))||90>s&&a(i.hour,1)||24>u&&a(i.hours,Math.round(u))||42>u&&a(i.day,1)||30>m&&a(i.days,Math.round(m))||45>m&&a(i.month,1)||365>m&&a(i.months,Math.round(m/30))||1.5>l&&a(i.year,1)||a(i.years,Math.round(l)),f=i.wordSeparator||"";return void 0===i.wordSeparator&&(f=" "),t.trim([n,d,r].join(f))},parse:function(e){var a=t.trim(e);return a=a.replace(/\.\d+/,""),a=a.replace(/-/,"/").replace(/-/,"/"),a=a.replace(/T/," ").replace(/Z/," UTC"),a=a.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"),a=a.replace(/([\+\-]\d\d)$/," $100"),new Date(a)},datetime:function(e){var a=t(e).attr(r.isTime(e)?"datetime":"title");return r.parse(a)},isTime:function(e){return"time"===t(e).get(0).tagName.toLowerCase()}});var o={init:function(){var a=t.proxy(e,this);a();var i=r.settings;i.refreshMillis>0&&(this._timeagoInterval=setInterval(a,i.refreshMillis))},update:function(a){var i=r.parse(a);t(this).data("timeago",{datetime:i}),r.settings.localeTitle&&t(this).attr("title",i.toLocaleString()),e.apply(this)},updateFromDOM:function(){t(this).data("timeago",{datetime:r.parse(t(this).attr(r.isTime(this)?"datetime":"title"))}),e.apply(this)},dispose:function(){this._timeagoInterval&&(window.clearInterval(this._timeagoInterval),this._timeagoInterval=null)}};t.fn.timeago=function(t,e){var a=t?o[t]:o.init;if(!a)throw new Error("Unknown function name '"+t+"' for timeago");return this.each(function(){a.call(this,e)}),this},document.createElement("abbr"),document.createElement("time")}); \ No newline at end of file diff --git a/node_modules/materialize-css/js/materialbox.js b/node_modules/materialize-css/js/materialbox.js deleted file mode 100644 index 64e77a7..0000000 --- a/node_modules/materialize-css/js/materialbox.js +++ /dev/null @@ -1,285 +0,0 @@ -(function ($) { - - $.fn.materialbox = function () { - - return this.each(function() { - - if ($(this).hasClass('initialized')) { - return; - } - - $(this).addClass('initialized'); - - var overlayActive = false; - var doneAnimating = true; - var inDuration = 275; - var outDuration = 200; - var origin = $(this); - var placeholder = $('
              ').addClass('material-placeholder'); - var originalWidth = 0; - var originalHeight = 0; - var ancestorsChanged; - var ancestor; - origin.wrap(placeholder); - - - origin.on('click', function(){ - var placeholder = origin.parent('.material-placeholder'); - var windowWidth = window.innerWidth; - var windowHeight = window.innerHeight; - var originalWidth = origin.width(); - var originalHeight = origin.height(); - - - // If already modal, return to original - if (doneAnimating === false) { - returnToOriginal(); - return false; - } - else if (overlayActive && doneAnimating===true) { - returnToOriginal(); - return false; - } - - - // Set states - doneAnimating = false; - origin.addClass('active'); - overlayActive = true; - - // Set positioning for placeholder - placeholder.css({ - width: placeholder[0].getBoundingClientRect().width, - height: placeholder[0].getBoundingClientRect().height, - position: 'relative', - top: 0, - left: 0 - }); - - // Find ancestor with overflow: hidden; and remove it - ancestorsChanged = undefined; - ancestor = placeholder[0].parentNode; - var count = 0; - while (ancestor !== null && !$(ancestor).is(document)) { - var curr = $(ancestor); - if (curr.css('overflow') !== 'visible') { - curr.css('overflow', 'visible'); - if (ancestorsChanged === undefined) { - ancestorsChanged = curr; - } - else { - ancestorsChanged = ancestorsChanged.add(curr); - } - } - ancestor = ancestor.parentNode; - } - - // Set css on origin - origin.css({ - position: 'absolute', - 'z-index': 1000, - 'will-change': 'left, top, width, height' - }) - .data('width', originalWidth) - .data('height', originalHeight); - - // Add overlay - var overlay = $('
              ') - .css({ - opacity: 0 - }) - .click(function(){ - if (doneAnimating === true) - returnToOriginal(); - }); - - // Put before in origin image to preserve z-index layering. - origin.before(overlay); - - // Set dimensions if needed - var overlayOffset = overlay[0].getBoundingClientRect(); - overlay.css({ - width: windowWidth, - height: windowHeight, - left: -1 * overlayOffset.left, - top: -1 * overlayOffset.top - }) - - // Animate Overlay - overlay.velocity({opacity: 1}, - {duration: inDuration, queue: false, easing: 'easeOutQuad'} ); - - // Add and animate caption if it exists - if (origin.data('caption') !== "") { - var $photo_caption = $('
              '); - $photo_caption.text(origin.data('caption')); - $('body').append($photo_caption); - $photo_caption.css({ "display": "inline" }); - $photo_caption.velocity({opacity: 1}, {duration: inDuration, queue: false, easing: 'easeOutQuad'}); - } - - // Resize Image - var ratio = 0; - var widthPercent = originalWidth / windowWidth; - var heightPercent = originalHeight / windowHeight; - var newWidth = 0; - var newHeight = 0; - - if (widthPercent > heightPercent) { - ratio = originalHeight / originalWidth; - newWidth = windowWidth * 0.9; - newHeight = windowWidth * 0.9 * ratio; - } - else { - ratio = originalWidth / originalHeight; - newWidth = (windowHeight * 0.9) * ratio; - newHeight = windowHeight * 0.9; - } - - // Animate image + set z-index - if(origin.hasClass('responsive-img')) { - origin.velocity({'max-width': newWidth, 'width': originalWidth}, {duration: 0, queue: false, - complete: function(){ - origin.css({left: 0, top: 0}) - .velocity( - { - height: newHeight, - width: newWidth, - left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2, - top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2 - }, - { - duration: inDuration, - queue: false, - easing: 'easeOutQuad', - complete: function(){doneAnimating = true;} - } - ); - } // End Complete - }); // End Velocity - } - else { - origin.css('left', 0) - .css('top', 0) - .velocity( - { - height: newHeight, - width: newWidth, - left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2, - top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2 - }, - { - duration: inDuration, - queue: false, - easing: 'easeOutQuad', - complete: function(){doneAnimating = true;} - } - ); // End Velocity - } - - }); // End origin on click - - - // Return on scroll - $(window).scroll(function() { - if (overlayActive) { - returnToOriginal(); - } - }); - - // Return on ESC - $(document).keyup(function(e) { - - if (e.keyCode === 27 && doneAnimating === true) { // ESC key - if (overlayActive) { - returnToOriginal(); - } - } - }); - - - // This function returns the modaled image to the original spot - function returnToOriginal() { - - doneAnimating = false; - - var placeholder = origin.parent('.material-placeholder'); - var windowWidth = window.innerWidth; - var windowHeight = window.innerHeight; - var originalWidth = origin.data('width'); - var originalHeight = origin.data('height'); - - origin.velocity("stop", true); - $('#materialbox-overlay').velocity("stop", true); - $('.materialbox-caption').velocity("stop", true); - - - $('#materialbox-overlay').velocity({opacity: 0}, { - duration: outDuration, // Delay prevents animation overlapping - queue: false, easing: 'easeOutQuad', - complete: function(){ - // Remove Overlay - overlayActive = false; - $(this).remove(); - } - }); - - // Resize Image - origin.velocity( - { - width: originalWidth, - height: originalHeight, - left: 0, - top: 0 - }, - { - duration: outDuration, - queue: false, easing: 'easeOutQuad' - } - ); - - // Remove Caption + reset css settings on image - $('.materialbox-caption').velocity({opacity: 0}, { - duration: outDuration, // Delay prevents animation overlapping - queue: false, easing: 'easeOutQuad', - complete: function(){ - placeholder.css({ - height: '', - width: '', - position: '', - top: '', - left: '' - }); - - origin.css({ - height: '', - top: '', - left: '', - width: '', - 'max-width': '', - position: '', - 'z-index': '', - 'will-change': '' - }); - - // Remove class - origin.removeClass('active'); - doneAnimating = true; - $(this).remove(); - - // Remove overflow overrides on ancestors - if (ancestorsChanged) { - ancestorsChanged.css('overflow', ''); - } - } - }); - - } - }); - }; - - $(document).ready(function(){ - $('.materialboxed').materialbox(); - }); - -}( jQuery )); diff --git a/node_modules/materialize-css/js/materialize.js b/node_modules/materialize-css/js/materialize.js deleted file mode 100644 index f3d4137..0000000 --- a/node_modules/materialize-css/js/materialize.js +++ /dev/null @@ -1,18 +0,0 @@ -//@prepros-append "jquery.easing.1.3.js" -//@prepros-append "velocity.min.js" -//@prepros-append "hammer.min.js"; -//@prepros-append "jquery.hammer.js"; -//@prepros-append "collapsible.js" -//@prepros-append "dropdown.js" -//@prepros-append "leanModal.js" -//@prepros-append "materialbox.js" -//@prepros-append "parallax.js" -//@prepros-append "tabs.js" -//@prepros-append "tooltip.js" -//@prepros-append "waves.js" -//@prepros-append "toasts.js" -//@prepros-append "sideNav.js" -//@prepros-append "scrollspy.js" -//@prepros-append "forms.js" -//@prepros-append "date_picker/picker.js" -//@prepros-append "date_picker/picker.date.js" \ No newline at end of file diff --git a/node_modules/materialize-css/js/modal.js b/node_modules/materialize-css/js/modal.js deleted file mode 100644 index aa788a7..0000000 --- a/node_modules/materialize-css/js/modal.js +++ /dev/null @@ -1,184 +0,0 @@ -(function($) { - var _stack = 0, - _lastID = 0, - _generateID = function() { - _lastID++; - return 'materialize-modal-overlay-' + _lastID; - }; - - var methods = { - init : function(options) { - var defaults = { - opacity: 0.5, - inDuration: 350, - outDuration: 250, - ready: undefined, - complete: undefined, - dismissible: true, - startingTop: '4%', - endingTop: '10%' - }; - - // Override defaults - options = $.extend(defaults, options); - - return this.each(function() { - var $modal = $(this); - var modal_id = $(this).attr("id") || '#' + $(this).data('target'); - - var closeModal = function() { - var overlayID = $modal.data('overlay-id'); - var $overlay = $('#' + overlayID); - $modal.removeClass('open'); - - // Enable scrolling - $('body').css({ - overflow: '', - width: '' - }); - - $modal.find('.modal-close').off('click.close'); - $(document).off('keyup.modal' + overlayID); - - $overlay.velocity( { opacity: 0}, {duration: options.outDuration, queue: false, ease: "easeOutQuart"}); - - - // Define Bottom Sheet animation - var exitVelocityOptions = { - duration: options.outDuration, - queue: false, - ease: "easeOutCubic", - // Handle modal ready callback - complete: function() { - $(this).css({display:"none"}); - - // Call complete callback - if (typeof(options.complete) === "function") { - options.complete.call(this, $modal); - } - $overlay.remove(); - _stack--; - } - }; - if ($modal.hasClass('bottom-sheet')) { - $modal.velocity({bottom: "-100%", opacity: 0}, exitVelocityOptions); - } - else { - $modal.velocity( - { top: options.startingTop, opacity: 0, scaleX: 0.7}, - exitVelocityOptions - ); - } - }; - - var openModal = function($trigger) { - var $body = $('body'); - var oldWidth = $body.innerWidth(); - $body.css('overflow', 'hidden'); - $body.width(oldWidth); - - if ($modal.hasClass('open')) { - return; - } - - var overlayID = _generateID(); - var $overlay = $(''); - lStack = (++_stack); - - // Store a reference of the overlay - $overlay.attr('id', overlayID).css('z-index', 1000 + lStack * 2); - $modal.data('overlay-id', overlayID).css('z-index', 1000 + lStack * 2 + 1); - $modal.addClass('open'); - - $("body").append($overlay); - - if (options.dismissible) { - $overlay.click(function() { - closeModal(); - }); - // Return on ESC - $(document).on('keyup.modal' + overlayID, function(e) { - if (e.keyCode === 27) { // ESC key - closeModal(); - } - }); - } - - $modal.find(".modal-close").on('click.close', function(e) { - closeModal(); - }); - - $overlay.css({ display : "block", opacity : 0 }); - - $modal.css({ - display : "block", - opacity: 0 - }); - - $overlay.velocity({opacity: options.opacity}, {duration: options.inDuration, queue: false, ease: "easeOutCubic"}); - $modal.data('associated-overlay', $overlay[0]); - - // Define Bottom Sheet animation - var enterVelocityOptions = { - duration: options.inDuration, - queue: false, - ease: "easeOutCubic", - // Handle modal ready callback - complete: function() { - if (typeof(options.ready) === "function") { - options.ready.call(this, $modal, $trigger); - } - } - }; - if ($modal.hasClass('bottom-sheet')) { - $modal.velocity({bottom: "0", opacity: 1}, enterVelocityOptions); - } - else { - $.Velocity.hook($modal, "scaleX", 0.7); - $modal.css({ top: options.startingTop }); - $modal.velocity({top: options.endingTop, opacity: 1, scaleX: '1'}, enterVelocityOptions); - } - - }; - - // Reset handlers - $(document).off('click.modalTrigger', 'a[href="#' + modal_id + '"], [data-target="' + modal_id + '"]'); - $(this).off('openModal'); - $(this).off('closeModal'); - - // Close Handlers - $(document).on('click.modalTrigger', 'a[href="#' + modal_id + '"], [data-target="' + modal_id + '"]', function(e) { - options.startingTop = ($(this).offset().top - $(window).scrollTop()) /1.15; - openModal($(this)); - e.preventDefault(); - }); // done set on click - - $(this).on('openModal', function() { - var modal_id = $(this).attr("href") || '#' + $(this).data('target'); - openModal(); - }); - - $(this).on('closeModal', function() { - closeModal(); - }); - }); // done return - }, - open : function() { - $(this).trigger('openModal'); - }, - close : function() { - $(this).trigger('closeModal'); - } - }; - - $.fn.modal = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.modal' ); - } - }; -})(jQuery); diff --git a/node_modules/materialize-css/js/parallax.js b/node_modules/materialize-css/js/parallax.js deleted file mode 100644 index 8c82a37..0000000 --- a/node_modules/materialize-css/js/parallax.js +++ /dev/null @@ -1,58 +0,0 @@ -(function ($) { - - $.fn.parallax = function () { - var window_width = $(window).width(); - // Parallax Scripts - return this.each(function(i) { - var $this = $(this); - $this.addClass('parallax'); - - function updateParallax(initial) { - var container_height; - if (window_width < 601) { - container_height = ($this.height() > 0) ? $this.height() : $this.children("img").height(); - } - else { - container_height = ($this.height() > 0) ? $this.height() : 500; - } - var $img = $this.children("img").first(); - var img_height = $img.height(); - var parallax_dist = img_height - container_height; - var bottom = $this.offset().top + container_height; - var top = $this.offset().top; - var scrollTop = $(window).scrollTop(); - var windowHeight = window.innerHeight; - var windowBottom = scrollTop + windowHeight; - var percentScrolled = (windowBottom - top) / (container_height + windowHeight); - var parallax = Math.round((parallax_dist * percentScrolled)); - - if (initial) { - $img.css('display', 'block'); - } - if ((bottom > scrollTop) && (top < (scrollTop + windowHeight))) { - $img.css('transform', "translate3D(-50%," + parallax + "px, 0)"); - } - - } - - // Wait for image load - $this.children("img").one("load", function() { - updateParallax(true); - }).each(function() { - if (this.complete) $(this).trigger("load"); - }); - - $(window).scroll(function() { - window_width = $(window).width(); - updateParallax(false); - }); - - $(window).resize(function() { - window_width = $(window).width(); - updateParallax(false); - }); - - }); - - }; -}( jQuery )); diff --git a/node_modules/materialize-css/js/prism.js b/node_modules/materialize-css/js/prism.js deleted file mode 100644 index da77df9..0000000 --- a/node_modules/materialize-css/js/prism.js +++ /dev/null @@ -1,8 +0,0 @@ -/* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript+scss+bash */ -self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{};var Prism=function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=self.Prism={util:{encode:function(e){return e instanceof n?new n(e.type,t.util.encode(e.content),e.alias):"Array"===t.util.type(e)?e.map(t.util.encode):e.replace(/&/g,"&").replace(/e.length)break e;if(!(d instanceof a)){g.lastIndex=0;var m=g.exec(d);if(m){c&&(f=m[1].length);var y=m.index-1+f,m=m[0].slice(f),v=m.length,k=y+v,b=d.slice(0,y+1),w=d.slice(k+1),O=[p,1];b&&O.push(b);var N=new a(l,u?t.tokenize(m,u):m,h);O.push(N),w&&O.push(w),Array.prototype.splice.apply(r,O)}}}}}return r},hooks:{all:{},add:function(e,n){var a=t.hooks.all;a[e]=a[e]||[],a[e].push(n)},run:function(e,n){var a=t.hooks.all[e];if(a&&a.length)for(var r,i=0;r=a[i++];)r(n)}}},n=t.Token=function(e,t,n){this.type=e,this.content=t,this.alias=n};if(n.stringify=function(e,a,r){if("string"==typeof e)return e;if("[object Array]"==Object.prototype.toString.call(e))return e.map(function(t){return n.stringify(t,a,e)}).join("");var i={type:e.type,content:n.stringify(e.content,a,r),tag:"span",classes:["token",e.type],attributes:{},language:a,parent:r};if("comment"==i.type&&(i.attributes.spellcheck="true"),e.alias){var l="Array"===t.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(i.classes,l)}t.hooks.run("wrap",i);var s="";for(var o in i.attributes)s+=o+'="'+(i.attributes[o]||"")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'" '+s+">"+i.content+""},!self.document)return self.addEventListener?(self.addEventListener("message",function(e){var n=JSON.parse(e.data),a=n.language,r=n.code;self.postMessage(JSON.stringify(t.util.encode(t.tokenize(r,t.languages[a])))),self.close()},!1),self.Prism):self.Prism;var a=document.getElementsByTagName("script");return a=a[a.length-1],a&&(t.filename=a.src,document.addEventListener&&!a.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)),self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism);; -Prism.languages.markup={comment://g,prolog:/<\?.+?\?>/,doctype://,cdata://i,tag:{pattern:/<\/?[\w:-]+\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|[^\s'">=]+))?\s*)*\/?>/gi,inside:{tag:{pattern:/^<\/?[\w:-]+/i,inside:{punctuation:/^<\/?/,namespace:/^[\w-]+?:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/gi,inside:{punctuation:/=|>|"/g}},punctuation:/\/?>/g,"attr-name":{pattern:/[\w:-]+/g,inside:{namespace:/^[\w-]+?:/}}}},entity:/\&#?[\da-z]{1,8};/gi},Prism.hooks.add("wrap",function(t){"entity"===t.type&&(t.attributes.title=t.content.replace(/&/,"&"))});; -Prism.languages.css={comment:/\/\*[\w\W]*?\*\//g,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*{))/gi,inside:{punctuation:/[;:]/g}},url:/url\((["']?).*?\1\)/gi,selector:/[^\{\}\s][^\{\};]*(?=\s*\{)/g,property:/(\b|\B)[\w-]+(?=\s*:)/gi,string:/("|')(\\?.)*?\1/g,important:/\B!important\b/gi,punctuation:/[\{\};:]/g,"function":/[-a-z0-9]+(?=\()/gi},Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/[\w\W]*?<\/style>/gi,inside:{tag:{pattern:/|<\/style>/gi,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.css},alias:"language-css"}}),Prism.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|').+?\1/gi,inside:{"attr-name":{pattern:/^\s*style/gi,inside:Prism.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/gi,inside:Prism.languages.css}},alias:"language-css"}},Prism.languages.markup.tag));; -Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\w\W]*?\*\//g,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*?(\r?\n|$)/g,lookbehind:!0}],string:/("|')(\\?.)*?\1/g,"class-name":{pattern:/((?:(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/gi,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/g,"boolean":/\b(true|false)\b/g,"function":{pattern:/[a-z0-9_]+\(/gi,inside:{punctuation:/\(/}},number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/g,operator:/[-+]{1,2}|!|<=?|>=?|={1,3}|&{1,2}|\|?\||\?|\*|\/|\~|\^|\%/g,ignore:/&(lt|gt|amp);/gi,punctuation:/[{}[\];(),.:]/g};; -Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|get|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/g,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|-?Infinity)\b/g,"function":/(?!\d)[a-z0-9_$]+(?=\()/gi}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/g,lookbehind:!0}}),Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/[\w\W]*?<\/script>/gi,inside:{tag:{pattern:/|<\/script>/gi,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.javascript},alias:"language-javascript"}});; -Prism.languages.scss=Prism.languages.extend("css",{comment:{pattern:/(^|[^\\])(\/\*[\w\W]*?\*\/|\/\/.*?(\r?\n|$))/g,lookbehind:!0},atrule:/@[\w-]+(?=\s+(\(|\{|;))/gi,url:/([-a-z]+-)*url(?=\()/gi,selector:/([^@;\{\}\(\)]?([^@;\{\}\(\)]|&|\#\{\$[-_\w]+\})+)(?=\s*\{(\}|\s|[^\}]+(:|\{)[^\}]+))/gm}),Prism.languages.insertBefore("scss","atrule",{keyword:/@(if|else if|else|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)|(?=@for\s+\$[-_\w]+\s)+from/i}),Prism.languages.insertBefore("scss","property",{variable:/((\$[-_\w]+)|(#\{\$[-_\w]+\}))/i}),Prism.languages.insertBefore("scss","ignore",{placeholder:/%[-_\w]+/i,statement:/\B!(default|optional)\b/gi,"boolean":/\b(true|false)\b/g,"null":/\b(null)\b/g,operator:/\s+([-+]{1,2}|={1,2}|!=|\|?\||\?|\*|\/|\%)\s+/g});; -Prism.languages.bash=Prism.languages.extend("clike",{comment:{pattern:/(^|[^"{\\])(#.*?(\r?\n|$))/g,lookbehind:!0},string:{pattern:/("|')(\\?[\s\S])*?\1/g,inside:{property:/\$([a-zA-Z0-9_#\?\-\*!@]+|\{[^\}]+\})/g}},keyword:/\b(if|then|else|elif|fi|for|break|continue|while|in|case|function|select|do|done|until|echo|exit|return|set|declare)\b/g}),Prism.languages.insertBefore("bash","keyword",{property:/\$([a-zA-Z0-9_#\?\-\*!@]+|\{[^}]+\})/g}),Prism.languages.insertBefore("bash","comment",{important:/(^#!\s*\/bin\/bash)|(^#!\s*\/bin\/sh)/g});; diff --git a/node_modules/materialize-css/js/pushpin.js b/node_modules/materialize-css/js/pushpin.js deleted file mode 100644 index 5f42246..0000000 --- a/node_modules/materialize-css/js/pushpin.js +++ /dev/null @@ -1,71 +0,0 @@ -(function ($) { - $.fn.pushpin = function (options) { - // Defaults - var defaults = { - top: 0, - bottom: Infinity, - offset: 0 - }; - - // Remove pushpin event and classes - if (options === "remove") { - this.each(function () { - if (id = $(this).data('pushpin-id')) { - $(window).off('scroll.' + id); - $(this).removeData('pushpin-id').removeClass('pin-top pinned pin-bottom').removeAttr('style'); - } - }); - return false; - } - - options = $.extend(defaults, options); - - - $index = 0; - return this.each(function() { - var $uniqueId = Materialize.guid(), - $this = $(this), - $original_offset = $(this).offset().top; - - function removePinClasses(object) { - object.removeClass('pin-top'); - object.removeClass('pinned'); - object.removeClass('pin-bottom'); - } - - function updateElements(objects, scrolled) { - objects.each(function () { - // Add position fixed (because its between top and bottom) - if (options.top <= scrolled && options.bottom >= scrolled && !$(this).hasClass('pinned')) { - removePinClasses($(this)); - $(this).css('top', options.offset); - $(this).addClass('pinned'); - } - - // Add pin-top (when scrolled position is above top) - if (scrolled < options.top && !$(this).hasClass('pin-top')) { - removePinClasses($(this)); - $(this).css('top', 0); - $(this).addClass('pin-top'); - } - - // Add pin-bottom (when scrolled position is below bottom) - if (scrolled > options.bottom && !$(this).hasClass('pin-bottom')) { - removePinClasses($(this)); - $(this).addClass('pin-bottom'); - $(this).css('top', options.bottom - $original_offset); - } - }); - } - - $(this).data('pushpin-id', $uniqueId); - updateElements($this, $(window).scrollTop()); - $(window).on('scroll.' + $uniqueId, function () { - var $scrolled = $(window).scrollTop() + options.offset; - updateElements($this, $scrolled); - }); - - }); - - }; -}( jQuery )); \ No newline at end of file diff --git a/node_modules/materialize-css/js/scrollFire.js b/node_modules/materialize-css/js/scrollFire.js deleted file mode 100644 index 96d1230..0000000 --- a/node_modules/materialize-css/js/scrollFire.js +++ /dev/null @@ -1,51 +0,0 @@ -(function($) { - - var scrollFireEventsHandled = false; - - // Input: Array of JSON objects {selector, offset, callback} - Materialize.scrollFire = function(options) { - var onScroll = function() { - var windowScroll = window.pageYOffset + window.innerHeight; - - for (var i = 0 ; i < options.length; i++) { - // Get options from each line - var value = options[i]; - var selector = value.selector, - offset = value.offset, - callback = value.callback; - - var currentElement = document.querySelector(selector); - if ( currentElement !== null) { - var elementOffset = currentElement.getBoundingClientRect().top + window.pageYOffset; - - if (windowScroll > (elementOffset + offset)) { - if (value.done !== true) { - if (typeof(callback) === 'function') { - callback.call(this, currentElement); - } else if (typeof(callback) === 'string') { - var callbackFunc = new Function(callback); - callbackFunc(currentElement); - } - value.done = true; - } - } - } - } - }; - - - var throttledScroll = Materialize.throttle(function() { - onScroll(); - }, options.throttle || 100); - - if (!scrollFireEventsHandled) { - window.addEventListener("scroll", throttledScroll); - window.addEventListener("resize", throttledScroll); - scrollFireEventsHandled = true; - } - - // perform a scan once, after current execution context, and after dom is ready - setTimeout(throttledScroll, 0); - }; - -})(jQuery); diff --git a/node_modules/materialize-css/js/scrollspy.js b/node_modules/materialize-css/js/scrollspy.js deleted file mode 100644 index 9171cb7..0000000 --- a/node_modules/materialize-css/js/scrollspy.js +++ /dev/null @@ -1,233 +0,0 @@ -/** - * Extend jquery with a scrollspy plugin. - * This watches the window scroll and fires events when elements are scrolled into viewport. - * - * throttle() and getTime() taken from Underscore.js - * https://github.com/jashkenas/underscore - * - * @author Copyright 2013 John Smart - * @license https://raw.github.com/thesmart/jquery-scrollspy/master/LICENSE - * @see https://github.com/thesmart - * @version 0.1.2 - */ -(function($) { - - var jWindow = $(window); - var elements = []; - var elementsInView = []; - var isSpying = false; - var ticks = 0; - var unique_id = 1; - var offset = { - top : 0, - right : 0, - bottom : 0, - left : 0, - } - - /** - * Find elements that are within the boundary - * @param {number} top - * @param {number} right - * @param {number} bottom - * @param {number} left - * @return {jQuery} A collection of elements - */ - function findElements(top, right, bottom, left) { - var hits = $(); - $.each(elements, function(i, element) { - if (element.height() > 0) { - var elTop = element.offset().top, - elLeft = element.offset().left, - elRight = elLeft + element.width(), - elBottom = elTop + element.height(); - - var isIntersect = !(elLeft > right || - elRight < left || - elTop > bottom || - elBottom < top); - - if (isIntersect) { - hits.push(element); - } - } - }); - - return hits; - } - - - /** - * Called when the user scrolls the window - */ - function onScroll(scrollOffset) { - // unique tick id - ++ticks; - - // viewport rectangle - var top = jWindow.scrollTop(), - left = jWindow.scrollLeft(), - right = left + jWindow.width(), - bottom = top + jWindow.height(); - - // determine which elements are in view - var intersections = findElements(top+offset.top + scrollOffset || 200, right+offset.right, bottom+offset.bottom, left+offset.left); - $.each(intersections, function(i, element) { - - var lastTick = element.data('scrollSpy:ticks'); - if (typeof lastTick != 'number') { - // entered into view - element.triggerHandler('scrollSpy:enter'); - } - - // update tick id - element.data('scrollSpy:ticks', ticks); - }); - - // determine which elements are no longer in view - $.each(elementsInView, function(i, element) { - var lastTick = element.data('scrollSpy:ticks'); - if (typeof lastTick == 'number' && lastTick !== ticks) { - // exited from view - element.triggerHandler('scrollSpy:exit'); - element.data('scrollSpy:ticks', null); - } - }); - - // remember elements in view for next tick - elementsInView = intersections; - } - - /** - * Called when window is resized - */ - function onWinSize() { - jWindow.trigger('scrollSpy:winSize'); - } - - - /** - * Enables ScrollSpy using a selector - * @param {jQuery|string} selector The elements collection, or a selector - * @param {Object=} options Optional. - throttle : number -> scrollspy throttling. Default: 100 ms - offsetTop : number -> offset from top. Default: 0 - offsetRight : number -> offset from right. Default: 0 - offsetBottom : number -> offset from bottom. Default: 0 - offsetLeft : number -> offset from left. Default: 0 - * @returns {jQuery} - */ - $.scrollSpy = function(selector, options) { - var defaults = { - throttle: 100, - scrollOffset: 200 // offset - 200 allows elements near bottom of page to scroll - }; - options = $.extend(defaults, options); - - var visible = []; - selector = $(selector); - selector.each(function(i, element) { - elements.push($(element)); - $(element).data("scrollSpy:id", i); - // Smooth scroll to section - $('a[href="#' + $(element).attr('id') + '"]').click(function(e) { - e.preventDefault(); - var offset = $(Materialize.escapeHash(this.hash)).offset().top + 1; - $('html, body').animate({ scrollTop: offset - options.scrollOffset }, {duration: 400, queue: false, easing: 'easeOutCubic'}); - }); - }); - - offset.top = options.offsetTop || 0; - offset.right = options.offsetRight || 0; - offset.bottom = options.offsetBottom || 0; - offset.left = options.offsetLeft || 0; - - var throttledScroll = Materialize.throttle(function() { - onScroll(options.scrollOffset); - }, options.throttle || 100); - var readyScroll = function(){ - $(document).ready(throttledScroll); - }; - - if (!isSpying) { - jWindow.on('scroll', readyScroll); - jWindow.on('resize', readyScroll); - isSpying = true; - } - - // perform a scan once, after current execution context, and after dom is ready - setTimeout(readyScroll, 0); - - - selector.on('scrollSpy:enter', function() { - visible = $.grep(visible, function(value) { - return value.height() != 0; - }); - - var $this = $(this); - - if (visible[0]) { - $('a[href="#' + visible[0].attr('id') + '"]').removeClass('active'); - if ($this.data('scrollSpy:id') < visible[0].data('scrollSpy:id')) { - visible.unshift($(this)); - } - else { - visible.push($(this)); - } - } - else { - visible.push($(this)); - } - - - $('a[href="#' + visible[0].attr('id') + '"]').addClass('active'); - }); - selector.on('scrollSpy:exit', function() { - visible = $.grep(visible, function(value) { - return value.height() != 0; - }); - - if (visible[0]) { - $('a[href="#' + visible[0].attr('id') + '"]').removeClass('active'); - var $this = $(this); - visible = $.grep(visible, function(value) { - return value.attr('id') != $this.attr('id'); - }); - if (visible[0]) { // Check if empty - $('a[href="#' + visible[0].attr('id') + '"]').addClass('active'); - } - } - }); - - return selector; - }; - - /** - * Listen for window resize events - * @param {Object=} options Optional. Set { throttle: number } to change throttling. Default: 100 ms - * @returns {jQuery} $(window) - */ - $.winSizeSpy = function(options) { - $.winSizeSpy = function() { return jWindow; }; // lock from multiple calls - options = options || { - throttle: 100 - }; - return jWindow.on('resize', Materialize.throttle(onWinSize, options.throttle || 100)); - }; - - /** - * Enables ScrollSpy on a collection of elements - * e.g. $('.scrollSpy').scrollSpy() - * @param {Object=} options Optional. - throttle : number -> scrollspy throttling. Default: 100 ms - offsetTop : number -> offset from top. Default: 0 - offsetRight : number -> offset from right. Default: 0 - offsetBottom : number -> offset from bottom. Default: 0 - offsetLeft : number -> offset from left. Default: 0 - * @returns {jQuery} - */ - $.fn.scrollSpy = function(options) { - return $.scrollSpy($(this), options); - }; - -})(jQuery); diff --git a/node_modules/materialize-css/js/sideNav.js b/node_modules/materialize-css/js/sideNav.js deleted file mode 100644 index 3ae7554..0000000 --- a/node_modules/materialize-css/js/sideNav.js +++ /dev/null @@ -1,376 +0,0 @@ -(function ($) { - - var methods = { - init : function(options) { - var defaults = { - menuWidth: 300, - edge: 'left', - closeOnClick: false, - draggable: true - }; - options = $.extend(defaults, options); - - $(this).each(function(){ - var $this = $(this); - var menuId = $this.attr('data-activates'); - var menu = $("#"+ menuId); - - // Set to width - if (options.menuWidth != 300) { - menu.css('width', options.menuWidth); - } - - // Add Touch Area - var $dragTarget = $('.drag-target[data-sidenav="' + menuId + '"]'); - if (options.draggable) { - // Regenerate dragTarget - if ($dragTarget.length) { - $dragTarget.remove(); - } - - $dragTarget = $('
              ').attr('data-sidenav', menuId); - $('body').append($dragTarget); - } else { - $dragTarget = $(); - } - - if (options.edge == 'left') { - menu.css('transform', 'translateX(-100%)'); - $dragTarget.css({'left': 0}); // Add Touch Area - } - else { - menu.addClass('right-aligned') // Change text-alignment to right - .css('transform', 'translateX(100%)'); - $dragTarget.css({'right': 0}); // Add Touch Area - } - - // If fixed sidenav, bring menu out - if (menu.hasClass('fixed')) { - if (window.innerWidth > 992) { - menu.css('transform', 'translateX(0)'); - } - } - - // Window resize to reset on large screens fixed - if (menu.hasClass('fixed')) { - $(window).resize( function() { - if (window.innerWidth > 992) { - // Close menu if window is resized bigger than 992 and user has fixed sidenav - if ($('#sidenav-overlay').length !== 0 && menuOut) { - removeMenu(true); - } - else { - // menu.removeAttr('style'); - menu.css('transform', 'translateX(0%)'); - // menu.css('width', options.menuWidth); - } - } - else if (menuOut === false){ - if (options.edge === 'left') { - menu.css('transform', 'translateX(-100%)'); - } else { - menu.css('transform', 'translateX(100%)'); - } - - } - - }); - } - - // if closeOnClick, then add close event for all a tags in side sideNav - if (options.closeOnClick === true) { - menu.on("click.itemclick", "a:not(.collapsible-header)", function(){ - removeMenu(); - }); - } - - var removeMenu = function(restoreNav) { - panning = false; - menuOut = false; - // Reenable scrolling - $('body').css({ - overflow: '', - width: '' - }); - - $('#sidenav-overlay').velocity({opacity: 0}, {duration: 200, - queue: false, easing: 'easeOutQuad', - complete: function() { - $(this).remove(); - } }); - if (options.edge === 'left') { - // Reset phantom div - $dragTarget.css({width: '', right: '', left: '0'}); - menu.velocity( - {'translateX': '-100%'}, - { duration: 200, - queue: false, - easing: 'easeOutCubic', - complete: function() { - if (restoreNav === true) { - // Restore Fixed sidenav - menu.removeAttr('style'); - menu.css('width', options.menuWidth); - } - } - - }); - } - else { - // Reset phantom div - $dragTarget.css({width: '', right: '0', left: ''}); - menu.velocity( - {'translateX': '100%'}, - { duration: 200, - queue: false, - easing: 'easeOutCubic', - complete: function() { - if (restoreNav === true) { - // Restore Fixed sidenav - menu.removeAttr('style'); - menu.css('width', options.menuWidth); - } - } - }); - } - }; - - - - // Touch Event - var panning = false; - var menuOut = false; - - if (options.draggable) { - $dragTarget.on('click', function(){ - if (menuOut) { - removeMenu(); - } - }); - - $dragTarget.hammer({ - prevent_default: false - }).bind('pan', function(e) { - - if (e.gesture.pointerType == "touch") { - - var direction = e.gesture.direction; - var x = e.gesture.center.x; - var y = e.gesture.center.y; - var velocityX = e.gesture.velocityX; - - // Disable Scrolling - var $body = $('body'); - var $overlay = $('#sidenav-overlay'); - var oldWidth = $body.innerWidth(); - $body.css('overflow', 'hidden'); - $body.width(oldWidth); - - // If overlay does not exist, create one and if it is clicked, close menu - if ($overlay.length === 0) { - $overlay = $('
              '); - $overlay.css('opacity', 0).click( function(){ - removeMenu(); - }); - $('body').append($overlay); - } - - // Keep within boundaries - if (options.edge === 'left') { - if (x > options.menuWidth) { x = options.menuWidth; } - else if (x < 0) { x = 0; } - } - - if (options.edge === 'left') { - // Left Direction - if (x < (options.menuWidth / 2)) { menuOut = false; } - // Right Direction - else if (x >= (options.menuWidth / 2)) { menuOut = true; } - menu.css('transform', 'translateX(' + (x - options.menuWidth) + 'px)'); - } - else { - // Left Direction - if (x < (window.innerWidth - options.menuWidth / 2)) { - menuOut = true; - } - // Right Direction - else if (x >= (window.innerWidth - options.menuWidth / 2)) { - menuOut = false; - } - var rightPos = (x - options.menuWidth / 2); - if (rightPos < 0) { - rightPos = 0; - } - - menu.css('transform', 'translateX(' + rightPos + 'px)'); - } - - - // Percentage overlay - var overlayPerc; - if (options.edge === 'left') { - overlayPerc = x / options.menuWidth; - $overlay.velocity({opacity: overlayPerc }, {duration: 10, queue: false, easing: 'easeOutQuad'}); - } - else { - overlayPerc = Math.abs((x - window.innerWidth) / options.menuWidth); - $overlay.velocity({opacity: overlayPerc }, {duration: 10, queue: false, easing: 'easeOutQuad'}); - } - } - - }).bind('panend', function(e) { - - if (e.gesture.pointerType == "touch") { - var $overlay = $('
              '); - var velocityX = e.gesture.velocityX; - var x = e.gesture.center.x; - var leftPos = x - options.menuWidth; - var rightPos = x - options.menuWidth / 2; - if (leftPos > 0 ) { - leftPos = 0; - } - if (rightPos < 0) { - rightPos = 0; - } - panning = false; - - if (options.edge === 'left') { - // If velocityX <= 0.3 then the user is flinging the menu closed so ignore menuOut - if ((menuOut && velocityX <= 0.3) || velocityX < -0.5) { - // Return menu to open - if (leftPos !== 0) { - menu.velocity({'translateX': [0, leftPos]}, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - - $overlay.velocity({opacity: 1 }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - $dragTarget.css({width: '50%', right: 0, left: ''}); - menuOut = true; - } - else if (!menuOut || velocityX > 0.3) { - // Enable Scrolling - $('body').css({ - overflow: '', - width: '' - }); - // Slide menu closed - menu.velocity({'translateX': [-1 * options.menuWidth - 10, leftPos]}, {duration: 200, queue: false, easing: 'easeOutQuad'}); - $overlay.velocity({opacity: 0 }, {duration: 200, queue: false, easing: 'easeOutQuad', - complete: function () { - $(this).remove(); - }}); - $dragTarget.css({width: '10px', right: '', left: 0}); - } - } - else { - if ((menuOut && velocityX >= -0.3) || velocityX > 0.5) { - // Return menu to open - if (rightPos !== 0) { - menu.velocity({'translateX': [0, rightPos]}, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - - $overlay.velocity({opacity: 1 }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - $dragTarget.css({width: '50%', right: '', left: 0}); - menuOut = true; - } - else if (!menuOut || velocityX < -0.3) { - // Enable Scrolling - $('body').css({ - overflow: '', - width: '' - }); - - // Slide menu closed - menu.velocity({'translateX': [options.menuWidth + 10, rightPos]}, {duration: 200, queue: false, easing: 'easeOutQuad'}); - $overlay.velocity({opacity: 0 }, {duration: 200, queue: false, easing: 'easeOutQuad', - complete: function () { - $(this).remove(); - }}); - $dragTarget.css({width: '10px', right: 0, left: ''}); - } - } - - } - }); - } - - $this.off('click.sidenav').on('click.sidenav', function() { - if (menuOut === true) { - menuOut = false; - panning = false; - removeMenu(); - } - else { - - // Disable Scrolling - var $body = $('body'); - var $overlay = $('
              '); - var oldWidth = $body.innerWidth(); - $body.css('overflow', 'hidden'); - $body.width(oldWidth); - - // Push current drag target on top of DOM tree - $('body').append($dragTarget); - - if (options.edge === 'left') { - $dragTarget.css({width: '50%', right: 0, left: ''}); - menu.velocity({'translateX': [0, -1 * options.menuWidth]}, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - else { - $dragTarget.css({width: '50%', right: '', left: 0}); - menu.velocity({'translateX': [0, options.menuWidth]}, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - - $overlay.css('opacity', 0) - .click(function(){ - menuOut = false; - panning = false; - removeMenu(); - $overlay.velocity({opacity: 0}, {duration: 300, queue: false, easing: 'easeOutQuad', - complete: function() { - $(this).remove(); - } }); - - }); - $('body').append($overlay); - $overlay.velocity({opacity: 1}, {duration: 300, queue: false, easing: 'easeOutQuad', - complete: function () { - menuOut = true; - panning = false; - } - }); - } - - return false; - }); - }); - - - }, - destroy: function () { - var $overlay = $('#sidenav-overlay'); - var $dragTarget = $('.drag-target[data-sidenav="' + $(this).attr('data-activates') + '"]'); - $overlay.trigger('click'); - $dragTarget.remove(); - $(this).off('click'); - $overlay.remove(); - }, - show : function() { - this.trigger('click'); - }, - hide : function() { - $('#sidenav-overlay').trigger('click'); - } - }; - - - $.fn.sideNav = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.sideNav' ); - } - }; // Plugin end -}( jQuery )); diff --git a/node_modules/materialize-css/js/slider.js b/node_modules/materialize-css/js/slider.js deleted file mode 100644 index 4995cf9..0000000 --- a/node_modules/materialize-css/js/slider.js +++ /dev/null @@ -1,324 +0,0 @@ -(function ($) { - - var methods = { - - init : function(options) { - var defaults = { - indicators: true, - height: 400, - transition: 500, - interval: 6000 - }; - options = $.extend(defaults, options); - - return this.each(function() { - - // For each slider, we want to keep track of - // which slide is active and its associated content - var $this = $(this); - var $slider = $this.find('ul.slides').first(); - var $slides = $slider.find('> li'); - var $active_index = $slider.find('.active').index(); - var $active, $indicators, $interval; - if ($active_index != -1) { $active = $slides.eq($active_index); } - - // Transitions the caption depending on alignment - function captionTransition(caption, duration) { - if (caption.hasClass("center-align")) { - caption.velocity({opacity: 0, translateY: -100}, {duration: duration, queue: false}); - } - else if (caption.hasClass("right-align")) { - caption.velocity({opacity: 0, translateX: 100}, {duration: duration, queue: false}); - } - else if (caption.hasClass("left-align")) { - caption.velocity({opacity: 0, translateX: -100}, {duration: duration, queue: false}); - } - } - - // This function will transition the slide to any index of the next slide - function moveToSlide(index) { - // Wrap around indices. - if (index >= $slides.length) index = 0; - else if (index < 0) index = $slides.length -1; - - $active_index = $slider.find('.active').index(); - - // Only do if index changes - if ($active_index != index) { - $active = $slides.eq($active_index); - $caption = $active.find('.caption'); - - $active.removeClass('active'); - $active.velocity({opacity: 0}, {duration: options.transition, queue: false, easing: 'easeOutQuad', - complete: function() { - $slides.not('.active').velocity({opacity: 0, translateX: 0, translateY: 0}, {duration: 0, queue: false}); - } }); - captionTransition($caption, options.transition); - - - // Update indicators - if (options.indicators) { - $indicators.eq($active_index).removeClass('active'); - } - - $slides.eq(index).velocity({opacity: 1}, {duration: options.transition, queue: false, easing: 'easeOutQuad'}); - $slides.eq(index).find('.caption').velocity({opacity: 1, translateX: 0, translateY: 0}, {duration: options.transition, delay: options.transition, queue: false, easing: 'easeOutQuad'}); - $slides.eq(index).addClass('active'); - - - // Update indicators - if (options.indicators) { - $indicators.eq(index).addClass('active'); - } - } - } - - // Set height of slider - // If fullscreen, do nothing - if (!$this.hasClass('fullscreen')) { - if (options.indicators) { - // Add height if indicators are present - $this.height(options.height + 40); - } - else { - $this.height(options.height); - } - $slider.height(options.height); - } - - - // Set initial positions of captions - $slides.find('.caption').each(function () { - captionTransition($(this), 0); - }); - - // Move img src into background-image - $slides.find('img').each(function () { - var placeholderBase64 = 'data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='; - if ($(this).attr('src') !== placeholderBase64) { - $(this).css('background-image', 'url(' + $(this).attr('src') + ')' ); - $(this).attr('src', placeholderBase64); - } - }); - - // dynamically add indicators - if (options.indicators) { - $indicators = $('
                '); - $slides.each(function( index ) { - var $indicator = $('
              • '); - - // Handle clicks on indicators - $indicator.click(function () { - var $parent = $slider.parent(); - var curr_index = $parent.find($(this)).index(); - moveToSlide(curr_index); - - // reset interval - clearInterval($interval); - $interval = setInterval( - function(){ - $active_index = $slider.find('.active').index(); - if ($slides.length == $active_index + 1) $active_index = 0; // loop to start - else $active_index += 1; - - moveToSlide($active_index); - - }, options.transition + options.interval - ); - }); - $indicators.append($indicator); - }); - $this.append($indicators); - $indicators = $this.find('ul.indicators').find('li.indicator-item'); - } - - if ($active) { - $active.show(); - } - else { - $slides.first().addClass('active').velocity({opacity: 1}, {duration: options.transition, queue: false, easing: 'easeOutQuad'}); - - $active_index = 0; - $active = $slides.eq($active_index); - - // Update indicators - if (options.indicators) { - $indicators.eq($active_index).addClass('active'); - } - } - - // Adjust height to current slide - $active.find('img').each(function() { - $active.find('.caption').velocity({opacity: 1, translateX: 0, translateY: 0}, {duration: options.transition, queue: false, easing: 'easeOutQuad'}); - }); - - // auto scroll - $interval = setInterval( - function(){ - $active_index = $slider.find('.active').index(); - moveToSlide($active_index + 1); - - }, options.transition + options.interval - ); - - - // HammerJS, Swipe navigation - - // Touch Event - var panning = false; - var swipeLeft = false; - var swipeRight = false; - - $this.hammer({ - prevent_default: false - }).bind('pan', function(e) { - if (e.gesture.pointerType === "touch") { - - // reset interval - clearInterval($interval); - - var direction = e.gesture.direction; - var x = e.gesture.deltaX; - var velocityX = e.gesture.velocityX; - var velocityY = e.gesture.velocityY; - - $curr_slide = $slider.find('.active'); - if (Math.abs(velocityX) > Math.abs(velocityY)) { - $curr_slide.velocity({ translateX: x - }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - } - - // Swipe Left - if (direction === 4 && (x > ($this.innerWidth() / 2) || velocityX < -0.65)) { - swipeRight = true; - } - // Swipe Right - else if (direction === 2 && (x < (-1 * $this.innerWidth() / 2) || velocityX > 0.65)) { - swipeLeft = true; - } - - // Make Slide Behind active slide visible - var next_slide; - if (swipeLeft) { - next_slide = $curr_slide.next(); - if (next_slide.length === 0) { - next_slide = $slides.first(); - } - next_slide.velocity({ opacity: 1 - }, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - if (swipeRight) { - next_slide = $curr_slide.prev(); - if (next_slide.length === 0) { - next_slide = $slides.last(); - } - next_slide.velocity({ opacity: 1 - }, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - - - } - - }).bind('panend', function(e) { - if (e.gesture.pointerType === "touch") { - - $curr_slide = $slider.find('.active'); - panning = false; - curr_index = $slider.find('.active').index(); - - if (!swipeRight && !swipeLeft || $slides.length <=1) { - // Return to original spot - $curr_slide.velocity({ translateX: 0 - }, {duration: 300, queue: false, easing: 'easeOutQuad'}); - } - else if (swipeLeft) { - moveToSlide(curr_index + 1); - $curr_slide.velocity({translateX: -1 * $this.innerWidth() }, {duration: 300, queue: false, easing: 'easeOutQuad', - complete: function() { - $curr_slide.velocity({opacity: 0, translateX: 0}, {duration: 0, queue: false}); - } }); - } - else if (swipeRight) { - moveToSlide(curr_index - 1); - $curr_slide.velocity({translateX: $this.innerWidth() }, {duration: 300, queue: false, easing: 'easeOutQuad', - complete: function() { - $curr_slide.velocity({opacity: 0, translateX: 0}, {duration: 0, queue: false}); - } }); - } - swipeLeft = false; - swipeRight = false; - - // Restart interval - clearInterval($interval); - $interval = setInterval( - function(){ - $active_index = $slider.find('.active').index(); - if ($slides.length == $active_index + 1) $active_index = 0; // loop to start - else $active_index += 1; - - moveToSlide($active_index); - - }, options.transition + options.interval - ); - } - }); - - $this.on('sliderPause', function() { - clearInterval($interval); - }); - - $this.on('sliderStart', function() { - clearInterval($interval); - $interval = setInterval( - function(){ - $active_index = $slider.find('.active').index(); - if ($slides.length == $active_index + 1) $active_index = 0; // loop to start - else $active_index += 1; - - moveToSlide($active_index); - - }, options.transition + options.interval - ); - }); - - $this.on('sliderNext', function() { - $active_index = $slider.find('.active').index(); - moveToSlide($active_index + 1); - }); - - $this.on('sliderPrev', function() { - $active_index = $slider.find('.active').index(); - moveToSlide($active_index - 1); - }); - - }); - - - - }, - pause : function() { - $(this).trigger('sliderPause'); - }, - start : function() { - $(this).trigger('sliderStart'); - }, - next : function() { - $(this).trigger('sliderNext'); - }, - prev : function() { - $(this).trigger('sliderPrev'); - } - }; - - - $.fn.slider = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.tooltip' ); - } - }; // Plugin end -}( jQuery )); diff --git a/node_modules/materialize-css/js/tabs.js b/node_modules/materialize-css/js/tabs.js deleted file mode 100644 index 422c400..0000000 --- a/node_modules/materialize-css/js/tabs.js +++ /dev/null @@ -1,233 +0,0 @@ -(function ($) { - - var methods = { - init : function(options) { - var defaults = { - onShow: null, - swipeable: false, - responsiveThreshold: Infinity, // breakpoint for swipeable - }; - options = $.extend(defaults, options); - - return this.each(function() { - - // For each set of tabs, we want to keep track of - // which tab is active and its associated content - var $this = $(this), - window_width = $(window).width(); - - var $active, $content, $links = $this.find('li.tab a'), - $tabs_width = $this.width(), - $tabs_content = $(), - $tabs_wrapper, - $tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length, - $indicator, - index = prev_index = 0, - clicked = false, - clickedTimeout, - transition = 300; - - - // Finds right attribute for indicator based on active tab. - // el: jQuery Object - var calcRightPos = function(el) { - return $tabs_width - el.position().left - el.outerWidth() - $this.scrollLeft(); - }; - - // Finds left attribute for indicator based on active tab. - // el: jQuery Object - var calcLeftPos = function(el) { - return el.position().left + $this.scrollLeft(); - }; - - // Animates Indicator to active tab. - // prev_index: Number - var animateIndicator = function(prev_index) { - if ((index - prev_index) >= 0) { - $indicator.velocity({"right": calcRightPos($active) }, { duration: transition, queue: false, easing: 'easeOutQuad'}); - $indicator.velocity({"left": calcLeftPos($active) }, {duration: transition, queue: false, easing: 'easeOutQuad', delay: 90}); - - } else { - $indicator.velocity({"left": calcLeftPos($active) }, { duration: transition, queue: false, easing: 'easeOutQuad'}); - $indicator.velocity({"right": calcRightPos($active) }, {duration: transition, queue: false, easing: 'easeOutQuad', delay: 90}); - } - }; - - // Change swipeable according to responsive threshold - if (options.swipeable) { - if (window_width > options.responsiveThreshold) { - options.swipeable = false; - } - } - - - // If the location.hash matches one of the links, use that as the active tab. - $active = $($links.filter('[href="'+location.hash+'"]')); - - // If no match is found, use the first link or any with class 'active' as the initial active tab. - if ($active.length === 0) { - $active = $(this).find('li.tab a.active').first(); - } - if ($active.length === 0) { - $active = $(this).find('li.tab a').first(); - } - - $active.addClass('active'); - index = $links.index($active); - if (index < 0) { - index = 0; - } - - if ($active[0] !== undefined) { - $content = $($active[0].hash); - $content.addClass('active'); - } - - // append indicator then set indicator width to tab width - if (!$this.find('.indicator').length) { - $this.append('
                '); - } - $indicator = $this.find('.indicator'); - - // we make sure that the indicator is at the end of the tabs - $this.append($indicator); - - if ($this.is(":visible")) { - // $indicator.css({"right": $tabs_width - ((index + 1) * $tab_width)}); - // $indicator.css({"left": index * $tab_width}); - setTimeout(function() { - $indicator.css({"right": calcRightPos($active) }); - $indicator.css({"left": calcLeftPos($active) }); - }, 0); - } - $(window).resize(function () { - $tabs_width = $this.width(); - $tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length; - if (index < 0) { - index = 0; - } - if ($tab_width !== 0 && $tabs_width !== 0) { - $indicator.css({"right": calcRightPos($active) }); - $indicator.css({"left": calcLeftPos($active) }); - } - }); - - // Initialize Tabs Content. - if (options.swipeable) { - // TODO: Duplicate calls with swipeable? handle multiple div wrapping. - $links.each(function () { - var $curr_content = $(Materialize.escapeHash(this.hash)); - $curr_content.addClass('carousel-item'); - $tabs_content = $tabs_content.add($curr_content); - }); - $tabs_wrapper = $tabs_content.wrapAll(''); - $tabs_content.css('display', ''); - $('.tabs-content.carousel').carousel({ - fullWidth: true, - noWrap: true, - onCycleTo: function(item) { - if (!clicked) { - var prev_index = index; - index = $tabs_wrapper.index(item); - $active = $links.eq(index); - animateIndicator(prev_index); - } - }, - }); - } else { - // Hide the remaining content - $links.not($active).each(function () { - $(Materialize.escapeHash(this.hash)).hide(); - }); - } - - - // Bind the click event handler - $this.on('click', 'a', function(e) { - if ($(this).parent().hasClass('disabled')) { - e.preventDefault(); - return; - } - - // Act as regular link if target attribute is specified. - if (!!$(this).attr("target")) { - return; - } - - clicked = true; - $tabs_width = $this.width(); - $tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length; - - // Make the old tab inactive. - $active.removeClass('active'); - var $oldContent = $content - - // Update the variables with the new link and content - $active = $(this); - $content = $(Materialize.escapeHash(this.hash)); - $links = $this.find('li.tab a'); - var activeRect = $active.position(); - - // Make the tab active. - $active.addClass('active'); - prev_index = index; - index = $links.index($(this)); - if (index < 0) { - index = 0; - } - // Change url to current tab - // window.location.hash = $active.attr('href'); - - // Swap content - if (options.swipeable) { - if ($tabs_content.length) { - $tabs_content.carousel('set', index); - } - } else { - if ($content !== undefined) { - $content.show(); - $content.addClass('active'); - if (typeof(options.onShow) === "function") { - options.onShow.call(this, $content); - } - } - - if ($oldContent !== undefined && - !$oldContent.is($content)) { - $oldContent.hide(); - $oldContent.removeClass('active'); - } - } - - // Reset clicked state - clickedTimeout = setTimeout(function(){ clicked = false; }, transition); - - // Update indicator - animateIndicator(prev_index); - - // Prevent the anchor's default click action - e.preventDefault(); - }); - }); - - }, - select_tab : function( id ) { - this.find('a[href="#' + id + '"]').trigger('click'); - } - }; - - $.fn.tabs = function(methodOrOptions) { - if ( methods[methodOrOptions] ) { - return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { - // Default to "init" - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.tabs' ); - } - }; - - $(document).ready(function(){ - $('ul.tabs').tabs(); - }); -}( jQuery )); diff --git a/node_modules/materialize-css/js/toasts.js b/node_modules/materialize-css/js/toasts.js deleted file mode 100644 index 78021ce..0000000 --- a/node_modules/materialize-css/js/toasts.js +++ /dev/null @@ -1,136 +0,0 @@ -Materialize.toast = function (message, displayLength, className, completeCallback) { - className = className || ""; - - var container = document.getElementById('toast-container'); - - // Create toast container if it does not exist - if (container === null) { - // create notification container - container = document.createElement('div'); - container.id = 'toast-container'; - document.body.appendChild(container); - } - - // Select and append toast - var newToast = createToast(message); - - // only append toast if message is not undefined - if(message){ - container.appendChild(newToast); - } - - newToast.style.opacity = 0; - - // Animate toast in - Vel(newToast, {translateY: '-35px', opacity: 1 }, {duration: 300, - easing: 'easeOutCubic', - queue: false}); - - // Allows timer to be pause while being panned - var timeLeft = displayLength; - var counterInterval; - if (timeLeft != null) { - counterInterval = setInterval (function(){ - if (newToast.parentNode === null) - window.clearInterval(counterInterval); - - // If toast is not being dragged, decrease its time remaining - if (!newToast.classList.contains('panning')) { - timeLeft -= 20; - } - - if (timeLeft <= 0) { - // Animate toast out - Vel(newToast, {"opacity": 0, marginTop: '-40px'}, { duration: 375, - easing: 'easeOutExpo', - queue: false, - complete: function(){ - // Call the optional callback - if(typeof(completeCallback) === "function") - completeCallback(); - // Remove toast after it times out - this[0].parentNode.removeChild(this[0]); - } - }); - window.clearInterval(counterInterval); - } - }, 20); - } - - - - function createToast(html) { - - // Create toast - var toast = document.createElement('div'); - toast.classList.add('toast'); - if (className) { - var classes = className.split(' '); - - for (var i = 0, count = classes.length; i < count; i++) { - toast.classList.add(classes[i]); - } - } - // If type of parameter is HTML Element - if ( typeof HTMLElement === "object" ? html instanceof HTMLElement : html && typeof html === "object" && html !== null && html.nodeType === 1 && typeof html.nodeName==="string" -) { - toast.appendChild(html); - } - else if (html instanceof jQuery) { - // Check if it is jQuery object - toast.appendChild(html[0]); - } - else { - // Insert as text; - toast.innerHTML = html; - } - // Bind hammer - var hammerHandler = new Hammer(toast, {prevent_default: false}); - hammerHandler.on('pan', function(e) { - var deltaX = e.deltaX; - var activationDistance = 80; - - // Change toast state - if (!toast.classList.contains('panning')){ - toast.classList.add('panning'); - } - - var opacityPercent = 1-Math.abs(deltaX / activationDistance); - if (opacityPercent < 0) - opacityPercent = 0; - - Vel(toast, {left: deltaX, opacity: opacityPercent }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - - }); - - hammerHandler.on('panend', function(e) { - var deltaX = e.deltaX; - var activationDistance = 80; - - // If toast dragged past activation point - if (Math.abs(deltaX) > activationDistance) { - Vel(toast, {marginTop: '-40px'}, { duration: 375, - easing: 'easeOutExpo', - queue: false, - complete: function(){ - if(typeof(completeCallback) === "function") { - completeCallback(); - } - toast.parentNode.removeChild(toast); - } - }); - - } else { - toast.classList.remove('panning'); - // Put toast back into original position - Vel(toast, { left: 0, opacity: 1 }, { duration: 300, - easing: 'easeOutExpo', - queue: false - }); - - } - }); - - return toast; - } -}; diff --git a/node_modules/materialize-css/js/tooltip.js b/node_modules/materialize-css/js/tooltip.js deleted file mode 100644 index 4f6c66c..0000000 --- a/node_modules/materialize-css/js/tooltip.js +++ /dev/null @@ -1,238 +0,0 @@ -(function ($) { - $.fn.tooltip = function (options) { - var timeout = null, - margin = 5; - - // Defaults - var defaults = { - delay: 350, - tooltip: '', - position: 'bottom', - html: false - }; - - // Remove tooltip from the activator - if (options === "remove") { - this.each(function() { - $('#' + $(this).attr('data-tooltip-id')).remove(); - $(this).off('mouseenter.tooltip mouseleave.tooltip'); - }); - return false; - } - - options = $.extend(defaults, options); - - return this.each(function() { - var tooltipId = Materialize.guid(); - var origin = $(this); - - // Destroy old tooltip - if (origin.attr('data-tooltip-id')) { - $('#' + origin.attr('data-tooltip-id')).remove(); - } - - origin.attr('data-tooltip-id', tooltipId); - - // Get attributes. - var allowHtml, - tooltipDelay, - tooltipPosition, - tooltipText, - tooltipEl, - backdrop; - var setAttributes = function() { - allowHtml = origin.attr('data-html') ? origin.attr('data-html') === 'true' : options.html; - tooltipDelay = origin.attr('data-delay'); - tooltipDelay = (tooltipDelay === undefined || tooltipDelay === '') ? - options.delay : tooltipDelay; - tooltipPosition = origin.attr('data-position'); - tooltipPosition = (tooltipPosition === undefined || tooltipPosition === '') ? - options.position : tooltipPosition; - tooltipText = origin.attr('data-tooltip'); - tooltipText = (tooltipText === undefined || tooltipText === '') ? - options.tooltip : tooltipText; - }; - setAttributes(); - - var renderTooltipEl = function() { - var tooltip = $('
                '); - - // Create Text span - if (allowHtml) { - tooltipText = $('').html(tooltipText); - } else{ - tooltipText = $('').text(tooltipText); - } - - // Create tooltip - tooltip.append(tooltipText) - .appendTo($('body')) - .attr('id', tooltipId); - - // Create backdrop - backdrop = $('
                '); - backdrop.appendTo(tooltip); - return tooltip; - }; - tooltipEl = renderTooltipEl(); - - // Destroy previously binded events - origin.off('mouseenter.tooltip mouseleave.tooltip'); - // Mouse In - var started = false, timeoutRef; - origin.on({'mouseenter.tooltip': function(e) { - var showTooltip = function() { - setAttributes(); - started = true; - tooltipEl.velocity('stop'); - backdrop.velocity('stop'); - tooltipEl.css({ visibility: 'visible', left: '0px', top: '0px' }); - - // Tooltip positioning - var originWidth = origin.outerWidth(); - var originHeight = origin.outerHeight(); - var tooltipHeight = tooltipEl.outerHeight(); - var tooltipWidth = tooltipEl.outerWidth(); - var tooltipVerticalMovement = '0px'; - var tooltipHorizontalMovement = '0px'; - var backdropOffsetWidth = backdrop[0].offsetWidth; - var backdropOffsetHeight = backdrop[0].offsetHeight; - var scaleXFactor = 8; - var scaleYFactor = 8; - var scaleFactor = 0; - var targetTop, targetLeft, newCoordinates; - - if (tooltipPosition === "top") { - // Top Position - targetTop = origin.offset().top - tooltipHeight - margin; - targetLeft = origin.offset().left + originWidth/2 - tooltipWidth/2; - newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight); - tooltipVerticalMovement = '-10px'; - backdrop.css({ - bottom: 0, - left: 0, - borderRadius: '14px 14px 0 0', - transformOrigin: '50% 100%', - marginTop: tooltipHeight, - marginLeft: (tooltipWidth/2) - (backdropOffsetWidth/2) - }); - } - // Left Position - else if (tooltipPosition === "left") { - targetTop = origin.offset().top + originHeight/2 - tooltipHeight/2; - targetLeft = origin.offset().left - tooltipWidth - margin; - newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight); - - tooltipHorizontalMovement = '-10px'; - backdrop.css({ - top: '-7px', - right: 0, - width: '14px', - height: '14px', - borderRadius: '14px 0 0 14px', - transformOrigin: '95% 50%', - marginTop: tooltipHeight/2, - marginLeft: tooltipWidth - }); - } - // Right Position - else if (tooltipPosition === "right") { - targetTop = origin.offset().top + originHeight/2 - tooltipHeight/2; - targetLeft = origin.offset().left + originWidth + margin; - newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight); - - tooltipHorizontalMovement = '+10px'; - backdrop.css({ - top: '-7px', - left: 0, - width: '14px', - height: '14px', - borderRadius: '0 14px 14px 0', - transformOrigin: '5% 50%', - marginTop: tooltipHeight/2, - marginLeft: '0px' - }); - } - else { - // Bottom Position - targetTop = origin.offset().top + origin.outerHeight() + margin; - targetLeft = origin.offset().left + originWidth/2 - tooltipWidth/2; - newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight); - tooltipVerticalMovement = '+10px'; - backdrop.css({ - top: 0, - left: 0, - marginLeft: (tooltipWidth/2) - (backdropOffsetWidth/2) - }); - } - - // Set tooptip css placement - tooltipEl.css({ - top: newCoordinates.y, - left: newCoordinates.x - }); - - // Calculate Scale to fill - scaleXFactor = Math.SQRT2 * tooltipWidth / parseInt(backdropOffsetWidth); - scaleYFactor = Math.SQRT2 * tooltipHeight / parseInt(backdropOffsetHeight); - scaleFactor = Math.max(scaleXFactor, scaleYFactor); - - tooltipEl.velocity({ translateY: tooltipVerticalMovement, translateX: tooltipHorizontalMovement}, { duration: 350, queue: false }) - .velocity({opacity: 1}, {duration: 300, delay: 50, queue: false}); - backdrop.css({ visibility: 'visible' }) - .velocity({opacity:1},{duration: 55, delay: 0, queue: false}) - .velocity({scaleX: scaleFactor, scaleY: scaleFactor}, {duration: 300, delay: 0, queue: false, easing: 'easeInOutQuad'}); - }; - - timeoutRef = setTimeout(showTooltip, tooltipDelay); // End Interval - - // Mouse Out - }, - 'mouseleave.tooltip': function(){ - // Reset State - started = false; - clearTimeout(timeoutRef); - - // Animate back - setTimeout(function() { - if (started !== true) { - tooltipEl.velocity({ - opacity: 0, translateY: 0, translateX: 0}, { duration: 225, queue: false}); - backdrop.velocity({opacity: 0, scaleX: 1, scaleY: 1}, { - duration:225, - queue: false, - complete: function(){ - backdrop.css({ visibility: 'hidden' }); - tooltipEl.css({ visibility: 'hidden' }); - started = false;} - }); - } - },225); - } - }); - }); - }; - - var repositionWithinScreen = function(x, y, width, height) { - var newX = x; - var newY = y; - - if (newX < 0) { - newX = 4; - } else if (newX + width > window.innerWidth) { - newX -= newX + width - window.innerWidth; - } - - if (newY < 0) { - newY = 4; - } else if (newY + height > window.innerHeight + $(window).scrollTop) { - newY -= newY + height - window.innerHeight; - } - - return {x: newX, y: newY}; - }; - - $(document).ready(function(){ - $('.tooltipped').tooltip(); - }); -}( jQuery )); diff --git a/node_modules/materialize-css/js/transitions.js b/node_modules/materialize-css/js/transitions.js deleted file mode 100644 index d3d91b5..0000000 --- a/node_modules/materialize-css/js/transitions.js +++ /dev/null @@ -1,169 +0,0 @@ -(function ($) { - // Image transition function - Materialize.fadeInImage = function(selectorOrEl) { - var element; - if (typeof(selectorOrEl) === 'string') { - element = $(selectorOrEl); - } else if (typeof(selectorOrEl) === 'object') { - element = selectorOrEl; - } else { - return; - } - element.css({opacity: 0}); - $(element).velocity({opacity: 1}, { - duration: 650, - queue: false, - easing: 'easeOutSine' - }); - $(element).velocity({opacity: 1}, { - duration: 1300, - queue: false, - easing: 'swing', - step: function(now, fx) { - fx.start = 100; - var grayscale_setting = now/100; - var brightness_setting = 150 - (100 - now)/1.75; - - if (brightness_setting < 100) { - brightness_setting = 100; - } - if (now >= 0) { - $(this).css({ - "-webkit-filter": "grayscale("+grayscale_setting+")" + "brightness("+brightness_setting+"%)", - "filter": "grayscale("+grayscale_setting+")" + "brightness("+brightness_setting+"%)" - }); - } - } - }); - }; - - // Horizontal staggered list - Materialize.showStaggeredList = function(selectorOrEl) { - var element; - if (typeof(selectorOrEl) === 'string') { - element = $(selectorOrEl); - } else if (typeof(selectorOrEl) === 'object') { - element = selectorOrEl; - } else { - return; - } - var time = 0; - element.find('li').velocity( - { translateX: "-100px"}, - { duration: 0 }); - - element.find('li').each(function() { - $(this).velocity( - { opacity: "1", translateX: "0"}, - { duration: 800, delay: time, easing: [60, 10] }); - time += 120; - }); - }; - - - $(document).ready(function() { - // Hardcoded .staggered-list scrollFire - // var staggeredListOptions = []; - // $('ul.staggered-list').each(function (i) { - - // var label = 'scrollFire-' + i; - // $(this).addClass(label); - // staggeredListOptions.push( - // {selector: 'ul.staggered-list.' + label, - // offset: 200, - // callback: 'showStaggeredList("ul.staggered-list.' + label + '")'}); - // }); - // scrollFire(staggeredListOptions); - - // HammerJS, Swipe navigation - - // Touch Event - var swipeLeft = false; - var swipeRight = false; - - - // Dismissible Collections - $('.dismissable').each(function() { - $(this).hammer({ - prevent_default: false - }).bind('pan', function(e) { - if (e.gesture.pointerType === "touch") { - var $this = $(this); - var direction = e.gesture.direction; - var x = e.gesture.deltaX; - var velocityX = e.gesture.velocityX; - - $this.velocity({ translateX: x - }, {duration: 50, queue: false, easing: 'easeOutQuad'}); - - // Swipe Left - if (direction === 4 && (x > ($this.innerWidth() / 2) || velocityX < -0.75)) { - swipeLeft = true; - } - - // Swipe Right - if (direction === 2 && (x < (-1 * $this.innerWidth() / 2) || velocityX > 0.75)) { - swipeRight = true; - } - } - }).bind('panend', function(e) { - // Reset if collection is moved back into original position - if (Math.abs(e.gesture.deltaX) < ($(this).innerWidth() / 2)) { - swipeRight = false; - swipeLeft = false; - } - - if (e.gesture.pointerType === "touch") { - var $this = $(this); - if (swipeLeft || swipeRight) { - var fullWidth; - if (swipeLeft) { fullWidth = $this.innerWidth(); } - else { fullWidth = -1 * $this.innerWidth(); } - - $this.velocity({ translateX: fullWidth, - }, {duration: 100, queue: false, easing: 'easeOutQuad', complete: - function() { - $this.css('border', 'none'); - $this.velocity({ height: 0, padding: 0, - }, {duration: 200, queue: false, easing: 'easeOutQuad', complete: - function() { $this.remove(); } - }); - } - }); - } - else { - $this.velocity({ translateX: 0, - }, {duration: 100, queue: false, easing: 'easeOutQuad'}); - } - swipeLeft = false; - swipeRight = false; - } - }); - - }); - - - // time = 0 - // // Vertical Staggered list - // $('ul.staggered-list.vertical li').velocity( - // { translateY: "100px"}, - // { duration: 0 }); - - // $('ul.staggered-list.vertical li').each(function() { - // $(this).velocity( - // { opacity: "1", translateY: "0"}, - // { duration: 800, delay: time, easing: [60, 25] }); - // time += 120; - // }); - - // // Fade in and Scale - // $('.fade-in.scale').velocity( - // { scaleX: .4, scaleY: .4, translateX: -600}, - // { duration: 0}); - // $('.fade-in').each(function() { - // $(this).velocity( - // { opacity: "1", scaleX: 1, scaleY: 1, translateX: 0}, - // { duration: 800, easing: [60, 10] }); - // }); - }); -}( jQuery )); diff --git a/node_modules/materialize-css/js/velocity.min.js b/node_modules/materialize-css/js/velocity.min.js deleted file mode 100644 index ea21aad..0000000 --- a/node_modules/materialize-css/js/velocity.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! VelocityJS.org (1.2.3). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */ -/*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */ -/*! Note that this has been modified by Materialize to confirm that Velocity is not already being imported. */ -jQuery.Velocity?console.log("Velocity is already loaded. You may be needlessly importing Velocity again; note that Materialize includes Velocity."):(!function(e){function t(e){var t=e.length,a=r.type(e);return"function"===a||r.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===a||0===t||"number"==typeof t&&t>0&&t-1 in e}if(!e.jQuery){var r=function(e,t){return new r.fn.init(e,t)};r.isWindow=function(e){return null!=e&&e==e.window},r.type=function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e},r.isArray=Array.isArray||function(e){return"array"===r.type(e)},r.isPlainObject=function(e){var t;if(!e||"object"!==r.type(e)||e.nodeType||r.isWindow(e))return!1;try{if(e.constructor&&!o.call(e,"constructor")&&!o.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(a){return!1}for(t in e);return void 0===t||o.call(e,t)},r.each=function(e,r,a){var n,o=0,i=e.length,s=t(e);if(a){if(s)for(;i>o&&(n=r.apply(e[o],a),n!==!1);o++);else for(o in e)if(n=r.apply(e[o],a),n===!1)break}else if(s)for(;i>o&&(n=r.call(e[o],o,e[o]),n!==!1);o++);else for(o in e)if(n=r.call(e[o],o,e[o]),n===!1)break;return e},r.data=function(e,t,n){if(void 0===n){var o=e[r.expando],i=o&&a[o];if(void 0===t)return i;if(i&&t in i)return i[t]}else if(void 0!==t){var o=e[r.expando]||(e[r.expando]=++r.uuid);return a[o]=a[o]||{},a[o][t]=n,n}},r.removeData=function(e,t){var n=e[r.expando],o=n&&a[n];o&&r.each(t,function(e,t){delete o[t]})},r.extend=function(){var e,t,a,n,o,i,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[l]||{},l++),"object"!=typeof s&&"function"!==r.type(s)&&(s={}),l===u&&(s=this,l--);u>l;l++)if(null!=(o=arguments[l]))for(n in o)e=s[n],a=o[n],s!==a&&(c&&a&&(r.isPlainObject(a)||(t=r.isArray(a)))?(t?(t=!1,i=e&&r.isArray(e)?e:[]):i=e&&r.isPlainObject(e)?e:{},s[n]=r.extend(c,i,a)):void 0!==a&&(s[n]=a));return s},r.queue=function(e,a,n){function o(e,r){var a=r||[];return null!=e&&(t(Object(e))?!function(e,t){for(var r=+t.length,a=0,n=e.length;r>a;)e[n++]=t[a++];if(r!==r)for(;void 0!==t[a];)e[n++]=t[a++];return e.length=n,e}(a,"string"==typeof e?[e]:e):[].push.call(a,e)),a}if(e){a=(a||"fx")+"queue";var i=r.data(e,a);return n?(!i||r.isArray(n)?i=r.data(e,a,o(n)):i.push(n),i):i||[]}},r.dequeue=function(e,t){r.each(e.nodeType?[e]:e,function(e,a){t=t||"fx";var n=r.queue(a,t),o=n.shift();"inprogress"===o&&(o=n.shift()),o&&("fx"===t&&n.unshift("inprogress"),o.call(a,function(){r.dequeue(a,t)}))})},r.fn=r.prototype={init:function(e){if(e.nodeType)return this[0]=e,this;throw new Error("Not a DOM node.")},offset:function(){var t=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:t.top+(e.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:t.left+(e.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function e(){for(var e=this.offsetParent||document;e&&"html"===!e.nodeType.toLowerCase&&"static"===e.style.position;)e=e.offsetParent;return e||document}var t=this[0],e=e.apply(t),a=this.offset(),n=/^(?:body|html)$/i.test(e.nodeName)?{top:0,left:0}:r(e).offset();return a.top-=parseFloat(t.style.marginTop)||0,a.left-=parseFloat(t.style.marginLeft)||0,e.style&&(n.top+=parseFloat(e.style.borderTopWidth)||0,n.left+=parseFloat(e.style.borderLeftWidth)||0),{top:a.top-n.top,left:a.left-n.left}}};var a={};r.expando="velocity"+(new Date).getTime(),r.uuid=0;for(var n={},o=n.hasOwnProperty,i=n.toString,s="Boolean Number String Function Array Date RegExp Object Error".split(" "),l=0;ln;++n){var o=u(r,e,a);if(0===o)return r;var i=l(r,e,a)-t;r-=i/o}return r}function p(){for(var t=0;b>t;++t)w[t]=l(t*x,e,a)}function f(t,r,n){var o,i,s=0;do i=r+(n-r)/2,o=l(i,e,a)-t,o>0?n=i:r=i;while(Math.abs(o)>h&&++s=y?c(t,s):0==l?s:f(t,r,r+x)}function g(){V=!0,(e!=r||a!=n)&&p()}var m=4,y=.001,h=1e-7,v=10,b=11,x=1/(b-1),S="Float32Array"in t;if(4!==arguments.length)return!1;for(var P=0;4>P;++P)if("number"!=typeof arguments[P]||isNaN(arguments[P])||!isFinite(arguments[P]))return!1;e=Math.min(e,1),a=Math.min(a,1),e=Math.max(e,0),a=Math.max(a,0);var w=S?new Float32Array(b):new Array(b),V=!1,C=function(t){return V||g(),e===r&&a===n?t:0===t?0:1===t?1:l(d(t),r,n)};C.getControlPoints=function(){return[{x:e,y:r},{x:a,y:n}]};var T="generateBezier("+[e,r,a,n]+")";return C.toString=function(){return T},C}function u(e,t){var r=e;return m.isString(e)?b.Easings[e]||(r=!1):r=m.isArray(e)&&1===e.length?s.apply(null,e):m.isArray(e)&&2===e.length?x.apply(null,e.concat([t])):m.isArray(e)&&4===e.length?l.apply(null,e):!1,r===!1&&(r=b.Easings[b.defaults.easing]?b.defaults.easing:v),r}function c(e){if(e){var t=(new Date).getTime(),r=b.State.calls.length;r>1e4&&(b.State.calls=n(b.State.calls));for(var o=0;r>o;o++)if(b.State.calls[o]){var s=b.State.calls[o],l=s[0],u=s[2],d=s[3],g=!!d,y=null;d||(d=b.State.calls[o][3]=t-16);for(var h=Math.min((t-d)/u.duration,1),v=0,x=l.length;x>v;v++){var P=l[v],V=P.element;if(i(V)){var C=!1;if(u.display!==a&&null!==u.display&&"none"!==u.display){if("flex"===u.display){var T=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];f.each(T,function(e,t){S.setPropertyValue(V,"display",t)})}S.setPropertyValue(V,"display",u.display)}u.visibility!==a&&"hidden"!==u.visibility&&S.setPropertyValue(V,"visibility",u.visibility);for(var k in P)if("element"!==k){var A,F=P[k],j=m.isString(F.easing)?b.Easings[F.easing]:F.easing;if(1===h)A=F.endValue;else{var E=F.endValue-F.startValue;if(A=F.startValue+E*j(h,u,E),!g&&A===F.currentValue)continue}if(F.currentValue=A,"tween"===k)y=A;else{if(S.Hooks.registered[k]){var H=S.Hooks.getRoot(k),N=i(V).rootPropertyValueCache[H];N&&(F.rootPropertyValue=N)}var L=S.setPropertyValue(V,k,F.currentValue+(0===parseFloat(A)?"":F.unitType),F.rootPropertyValue,F.scrollData);S.Hooks.registered[k]&&(i(V).rootPropertyValueCache[H]=S.Normalizations.registered[H]?S.Normalizations.registered[H]("extract",null,L[1]):L[1]),"transform"===L[0]&&(C=!0)}}u.mobileHA&&i(V).transformCache.translate3d===a&&(i(V).transformCache.translate3d="(0px, 0px, 0px)",C=!0),C&&S.flushTransformCache(V)}}u.display!==a&&"none"!==u.display&&(b.State.calls[o][2].display=!1),u.visibility!==a&&"hidden"!==u.visibility&&(b.State.calls[o][2].visibility=!1),u.progress&&u.progress.call(s[1],s[1],h,Math.max(0,d+u.duration-t),d,y),1===h&&p(o)}}b.State.isTicking&&w(c)}function p(e,t){if(!b.State.calls[e])return!1;for(var r=b.State.calls[e][0],n=b.State.calls[e][1],o=b.State.calls[e][2],s=b.State.calls[e][4],l=!1,u=0,c=r.length;c>u;u++){var p=r[u].element;if(t||o.loop||("none"===o.display&&S.setPropertyValue(p,"display",o.display),"hidden"===o.visibility&&S.setPropertyValue(p,"visibility",o.visibility)),o.loop!==!0&&(f.queue(p)[1]===a||!/\.velocityQueueEntryFlag/i.test(f.queue(p)[1]))&&i(p)){i(p).isAnimating=!1,i(p).rootPropertyValueCache={};var d=!1;f.each(S.Lists.transforms3D,function(e,t){var r=/^scale/.test(t)?1:0,n=i(p).transformCache[t];i(p).transformCache[t]!==a&&new RegExp("^\\("+r+"[^.]").test(n)&&(d=!0,delete i(p).transformCache[t])}),o.mobileHA&&(d=!0,delete i(p).transformCache.translate3d),d&&S.flushTransformCache(p),S.Values.removeClass(p,"velocity-animating")}if(!t&&o.complete&&!o.loop&&u===c-1)try{o.complete.call(n,n)}catch(g){setTimeout(function(){throw g},1)}s&&o.loop!==!0&&s(n),i(p)&&o.loop===!0&&!t&&(f.each(i(p).tweensContainer,function(e,t){/^rotate/.test(e)&&360===parseFloat(t.endValue)&&(t.endValue=0,t.startValue=360),/^backgroundPosition/.test(e)&&100===parseFloat(t.endValue)&&"%"===t.unitType&&(t.endValue=0,t.startValue=100)}),b(p,"reverse",{loop:!0,delay:o.delay})),o.queue!==!1&&f.dequeue(p,o.queue)}b.State.calls[e]=!1;for(var m=0,y=b.State.calls.length;y>m;m++)if(b.State.calls[m]!==!1){l=!0;break}l===!1&&(b.State.isTicking=!1,delete b.State.calls,b.State.calls=[])}var f,d=function(){if(r.documentMode)return r.documentMode;for(var e=7;e>4;e--){var t=r.createElement("div");if(t.innerHTML="",t.getElementsByTagName("span").length)return t=null,e}return a}(),g=function(){var e=0;return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||function(t){var r,a=(new Date).getTime();return r=Math.max(0,16-(a-e)),e=a+r,setTimeout(function(){t(a+r)},r)}}(),m={isString:function(e){return"string"==typeof e},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},isFunction:function(e){return"[object Function]"===Object.prototype.toString.call(e)},isNode:function(e){return e&&e.nodeType},isNodeList:function(e){return"object"==typeof e&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(e))&&e.length!==a&&(0===e.length||"object"==typeof e[0]&&e[0].nodeType>0)},isWrapped:function(e){return e&&(e.jquery||t.Zepto&&t.Zepto.zepto.isZ(e))},isSVG:function(e){return t.SVGElement&&e instanceof t.SVGElement},isEmptyObject:function(e){for(var t in e)return!1;return!0}},y=!1;if(e.fn&&e.fn.jquery?(f=e,y=!0):f=t.Velocity.Utilities,8>=d&&!y)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=d)return void(jQuery.fn.velocity=jQuery.fn.animate);var h=400,v="swing",b={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:t.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:r.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:f,Redirects:{},Easings:{},Promise:t.Promise,defaults:{queue:"",duration:h,easing:v,begin:a,complete:a,progress:a,display:a,visibility:a,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(e){f.data(e,"velocity",{isSVG:m.isSVG(e),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:2},debug:!1};t.pageYOffset!==a?(b.State.scrollAnchor=t,b.State.scrollPropertyLeft="pageXOffset",b.State.scrollPropertyTop="pageYOffset"):(b.State.scrollAnchor=r.documentElement||r.body.parentNode||r.body,b.State.scrollPropertyLeft="scrollLeft",b.State.scrollPropertyTop="scrollTop");var x=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,a){var n={x:t.x+a.dx*r,v:t.v+a.dv*r,tension:t.tension,friction:t.friction};return{dx:n.v,dv:e(n)}}function r(r,a){var n={dx:r.v,dv:e(r)},o=t(r,.5*a,n),i=t(r,.5*a,o),s=t(r,a,i),l=1/6*(n.dx+2*(o.dx+i.dx)+s.dx),u=1/6*(n.dv+2*(o.dv+i.dv)+s.dv);return r.x=r.x+l*a,r.v=r.v+u*a,r}return function a(e,t,n){var o,i,s,l={x:-1,v:0,tension:null,friction:null},u=[0],c=0,p=1e-4,f=.016;for(e=parseFloat(e)||500,t=parseFloat(t)||20,n=n||null,l.tension=e,l.friction=t,o=null!==n,o?(c=a(e,t),i=c/n*f):i=f;s=r(s||l,i),u.push(1+s.x),c+=16,Math.abs(s.x)>p&&Math.abs(s.v)>p;);return o?function(e){return u[e*(u.length-1)|0]}:c}}();b.Easings={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},spring:function(e){return 1-Math.cos(4.5*e*Math.PI)*Math.exp(6*-e)}},f.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(e,t){b.Easings[t[0]]=l.apply(null,t[1])});var S=b.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var e=0;e=d)switch(e){case"name":return"filter";case"extract":var a=r.toString().match(/alpha\(opacity=(.*)\)/i);return r=a?a[1]/100:1;case"inject":return t.style.zoom=1,parseFloat(r)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(r),10)+")"}else switch(e){case"name":return"opacity";case"extract":return r;case"inject":return r}}},register:function(){9>=d||b.State.isGingerbread||(S.Lists.transformsBase=S.Lists.transformsBase.concat(S.Lists.transforms3D));for(var e=0;en&&(n=1),o=!/(\d)$/i.test(n);break;case"skew":o=!/(deg|\d)$/i.test(n);break;case"rotate":o=!/(deg|\d)$/i.test(n)}return o||(i(r).transformCache[t]="("+n+")"),i(r).transformCache[t]}}}();for(var e=0;e=d||3!==o.split(" ").length||(o+=" 1"),o;case"inject":return 8>=d?4===n.split(" ").length&&(n=n.split(/\s+/).slice(0,3).join(" ")):3===n.split(" ").length&&(n+=" 1"),(8>=d?"rgb":"rgba")+"("+n.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})},SVGAttribute:function(e){var t="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(d||b.State.isAndroid&&!b.State.isChrome)&&(t+="|transform"),new RegExp("^("+t+")$","i").test(e)},prefixCheck:function(e){if(b.State.prefixMatches[e])return[b.State.prefixMatches[e],!0];for(var t=["","Webkit","Moz","ms","O"],r=0,a=t.length;a>r;r++){var n;if(n=0===r?e:t[r]+e.replace(/^\w/,function(e){return e.toUpperCase()}),m.isString(b.State.prefixElement.style[n]))return b.State.prefixMatches[e]=n,[n,!0]}return[e,!1]}},Values:{hexToRgb:function(e){var t,r=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return e=e.replace(r,function(e,t,r,a){return t+t+r+r+a+a}),t=a.exec(e),t?[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]:[0,0,0]},isCSSNullValue:function(e){return 0==e||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(e)},getUnitType:function(e){return/^(rotate|skew)/i.test(e)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e)?"":"px"},getDisplayType:function(e){var t=e&&e.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(t)?"inline":/^(li)$/i.test(t)?"list-item":/^(tr)$/i.test(t)?"table-row":/^(table)$/i.test(t)?"table":/^(tbody)$/i.test(t)?"table-row-group":"block"},addClass:function(e,t){e.classList?e.classList.add(t):e.className+=(e.className.length?" ":"")+t},removeClass:function(e,t){e.classList?e.classList.remove(t):e.className=e.className.toString().replace(new RegExp("(^|\\s)"+t.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(e,r,n,o){function s(e,r){function n(){u&&S.setPropertyValue(e,"display","none")}var l=0;if(8>=d)l=f.css(e,r);else{var u=!1;if(/^(width|height)$/.test(r)&&0===S.getPropertyValue(e,"display")&&(u=!0,S.setPropertyValue(e,"display",S.Values.getDisplayType(e))),!o){if("height"===r&&"border-box"!==S.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var c=e.offsetHeight-(parseFloat(S.getPropertyValue(e,"borderTopWidth"))||0)-(parseFloat(S.getPropertyValue(e,"borderBottomWidth"))||0)-(parseFloat(S.getPropertyValue(e,"paddingTop"))||0)-(parseFloat(S.getPropertyValue(e,"paddingBottom"))||0);return n(),c}if("width"===r&&"border-box"!==S.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var p=e.offsetWidth-(parseFloat(S.getPropertyValue(e,"borderLeftWidth"))||0)-(parseFloat(S.getPropertyValue(e,"borderRightWidth"))||0)-(parseFloat(S.getPropertyValue(e,"paddingLeft"))||0)-(parseFloat(S.getPropertyValue(e,"paddingRight"))||0);return n(),p}}var g;g=i(e)===a?t.getComputedStyle(e,null):i(e).computedStyle?i(e).computedStyle:i(e).computedStyle=t.getComputedStyle(e,null),"borderColor"===r&&(r="borderTopColor"),l=9===d&&"filter"===r?g.getPropertyValue(r):g[r],(""===l||null===l)&&(l=e.style[r]),n()}if("auto"===l&&/^(top|right|bottom|left)$/i.test(r)){var m=s(e,"position");("fixed"===m||"absolute"===m&&/top|left/i.test(r))&&(l=f(e).position()[r]+"px")}return l}var l;if(S.Hooks.registered[r]){var u=r,c=S.Hooks.getRoot(u);n===a&&(n=S.getPropertyValue(e,S.Names.prefixCheck(c)[0])),S.Normalizations.registered[c]&&(n=S.Normalizations.registered[c]("extract",e,n)),l=S.Hooks.extractValue(u,n)}else if(S.Normalizations.registered[r]){var p,g;p=S.Normalizations.registered[r]("name",e),"transform"!==p&&(g=s(e,S.Names.prefixCheck(p)[0]),S.Values.isCSSNullValue(g)&&S.Hooks.templates[r]&&(g=S.Hooks.templates[r][1])),l=S.Normalizations.registered[r]("extract",e,g)}if(!/^[\d-]/.test(l))if(i(e)&&i(e).isSVG&&S.Names.SVGAttribute(r))if(/^(height|width)$/i.test(r))try{l=e.getBBox()[r]}catch(m){l=0}else l=e.getAttribute(r);else l=s(e,S.Names.prefixCheck(r)[0]);return S.Values.isCSSNullValue(l)&&(l=0),b.debug>=2&&console.log("Get "+r+": "+l),l},setPropertyValue:function(e,r,a,n,o){var s=r;if("scroll"===r)o.container?o.container["scroll"+o.direction]=a:"Left"===o.direction?t.scrollTo(a,o.alternateValue):t.scrollTo(o.alternateValue,a);else if(S.Normalizations.registered[r]&&"transform"===S.Normalizations.registered[r]("name",e))S.Normalizations.registered[r]("inject",e,a),s="transform",a=i(e).transformCache[r];else{if(S.Hooks.registered[r]){var l=r,u=S.Hooks.getRoot(r);n=n||S.getPropertyValue(e,u),a=S.Hooks.injectValue(l,a,n),r=u}if(S.Normalizations.registered[r]&&(a=S.Normalizations.registered[r]("inject",e,a),r=S.Normalizations.registered[r]("name",e)),s=S.Names.prefixCheck(r)[0],8>=d)try{e.style[s]=a}catch(c){b.debug&&console.log("Browser does not support ["+a+"] for ["+s+"]")}else i(e)&&i(e).isSVG&&S.Names.SVGAttribute(r)?e.setAttribute(r,a):e.style[s]=a;b.debug>=2&&console.log("Set "+r+" ("+s+"): "+a)}return[s,a]},flushTransformCache:function(e){function t(t){return parseFloat(S.getPropertyValue(e,t))}var r="";if((d||b.State.isAndroid&&!b.State.isChrome)&&i(e).isSVG){var a={translate:[t("translateX"),t("translateY")],skewX:[t("skewX")],skewY:[t("skewY")],scale:1!==t("scale")?[t("scale"),t("scale")]:[t("scaleX"),t("scaleY")],rotate:[t("rotateZ"),0,0]};f.each(i(e).transformCache,function(e){/^translate/i.test(e)?e="translate":/^scale/i.test(e)?e="scale":/^rotate/i.test(e)&&(e="rotate"),a[e]&&(r+=e+"("+a[e].join(" ")+") ",delete a[e])})}else{var n,o;f.each(i(e).transformCache,function(t){return n=i(e).transformCache[t],"transformPerspective"===t?(o=n,!0):(9===d&&"rotateZ"===t&&(t="rotate"),void(r+=t+n+" "))}),o&&(r="perspective"+o+" "+r)}S.setPropertyValue(e,"transform",r)}};S.Hooks.register(),S.Normalizations.register(),b.hook=function(e,t,r){var n=a;return e=o(e),f.each(e,function(e,o){if(i(o)===a&&b.init(o),r===a)n===a&&(n=b.CSS.getPropertyValue(o,t));else{var s=b.CSS.setPropertyValue(o,t,r);"transform"===s[0]&&b.CSS.flushTransformCache(o),n=s}}),n};var P=function(){function e(){return s?k.promise||null:l}function n(){function e(e){function p(e,t){var r=a,n=a,i=a;return m.isArray(e)?(r=e[0],!m.isArray(e[1])&&/^[\d-]/.test(e[1])||m.isFunction(e[1])||S.RegEx.isHex.test(e[1])?i=e[1]:(m.isString(e[1])&&!S.RegEx.isHex.test(e[1])||m.isArray(e[1]))&&(n=t?e[1]:u(e[1],s.duration),e[2]!==a&&(i=e[2]))):r=e,t||(n=n||s.easing),m.isFunction(r)&&(r=r.call(o,V,w)),m.isFunction(i)&&(i=i.call(o,V,w)),[r||0,n,i]}function d(e,t){var r,a;return a=(t||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(e){return r=e,""}),r||(r=S.Values.getUnitType(e)),[a,r]}function h(){var e={myParent:o.parentNode||r.body,position:S.getPropertyValue(o,"position"),fontSize:S.getPropertyValue(o,"fontSize")},a=e.position===L.lastPosition&&e.myParent===L.lastParent,n=e.fontSize===L.lastFontSize;L.lastParent=e.myParent,L.lastPosition=e.position,L.lastFontSize=e.fontSize;var s=100,l={};if(n&&a)l.emToPx=L.lastEmToPx,l.percentToPxWidth=L.lastPercentToPxWidth,l.percentToPxHeight=L.lastPercentToPxHeight;else{var u=i(o).isSVG?r.createElementNS("http://www.w3.org/2000/svg","rect"):r.createElement("div");b.init(u),e.myParent.appendChild(u),f.each(["overflow","overflowX","overflowY"],function(e,t){b.CSS.setPropertyValue(u,t,"hidden")}),b.CSS.setPropertyValue(u,"position",e.position),b.CSS.setPropertyValue(u,"fontSize",e.fontSize),b.CSS.setPropertyValue(u,"boxSizing","content-box"),f.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(e,t){b.CSS.setPropertyValue(u,t,s+"%")}),b.CSS.setPropertyValue(u,"paddingLeft",s+"em"),l.percentToPxWidth=L.lastPercentToPxWidth=(parseFloat(S.getPropertyValue(u,"width",null,!0))||1)/s,l.percentToPxHeight=L.lastPercentToPxHeight=(parseFloat(S.getPropertyValue(u,"height",null,!0))||1)/s,l.emToPx=L.lastEmToPx=(parseFloat(S.getPropertyValue(u,"paddingLeft"))||1)/s,e.myParent.removeChild(u)}return null===L.remToPx&&(L.remToPx=parseFloat(S.getPropertyValue(r.body,"fontSize"))||16),null===L.vwToPx&&(L.vwToPx=parseFloat(t.innerWidth)/100,L.vhToPx=parseFloat(t.innerHeight)/100),l.remToPx=L.remToPx,l.vwToPx=L.vwToPx,l.vhToPx=L.vhToPx,b.debug>=1&&console.log("Unit ratios: "+JSON.stringify(l),o),l}if(s.begin&&0===V)try{s.begin.call(g,g)}catch(x){setTimeout(function(){throw x},1)}if("scroll"===A){var P,C,T,F=/^x$/i.test(s.axis)?"Left":"Top",j=parseFloat(s.offset)||0;s.container?m.isWrapped(s.container)||m.isNode(s.container)?(s.container=s.container[0]||s.container,P=s.container["scroll"+F],T=P+f(o).position()[F.toLowerCase()]+j):s.container=null:(P=b.State.scrollAnchor[b.State["scrollProperty"+F]],C=b.State.scrollAnchor[b.State["scrollProperty"+("Left"===F?"Top":"Left")]],T=f(o).offset()[F.toLowerCase()]+j),l={scroll:{rootPropertyValue:!1,startValue:P,currentValue:P,endValue:T,unitType:"",easing:s.easing,scrollData:{container:s.container,direction:F,alternateValue:C}},element:o},b.debug&&console.log("tweensContainer (scroll): ",l.scroll,o)}else if("reverse"===A){if(!i(o).tweensContainer)return void f.dequeue(o,s.queue);"none"===i(o).opts.display&&(i(o).opts.display="auto"),"hidden"===i(o).opts.visibility&&(i(o).opts.visibility="visible"),i(o).opts.loop=!1,i(o).opts.begin=null,i(o).opts.complete=null,v.easing||delete s.easing,v.duration||delete s.duration,s=f.extend({},i(o).opts,s);var E=f.extend(!0,{},i(o).tweensContainer);for(var H in E)if("element"!==H){var N=E[H].startValue;E[H].startValue=E[H].currentValue=E[H].endValue,E[H].endValue=N,m.isEmptyObject(v)||(E[H].easing=s.easing),b.debug&&console.log("reverse tweensContainer ("+H+"): "+JSON.stringify(E[H]),o)}l=E}else if("start"===A){var E;i(o).tweensContainer&&i(o).isAnimating===!0&&(E=i(o).tweensContainer),f.each(y,function(e,t){if(RegExp("^"+S.Lists.colors.join("$|^")+"$").test(e)){var r=p(t,!0),n=r[0],o=r[1],i=r[2];if(S.RegEx.isHex.test(n)){for(var s=["Red","Green","Blue"],l=S.Values.hexToRgb(n),u=i?S.Values.hexToRgb(i):a,c=0;cO;O++){var q={delay:j.delay,progress:j.progress};O===z-1&&(q.display=j.display,q.visibility=j.visibility,q.complete=j.complete),P(g,"reverse",q)}return e()}};b=f.extend(P,b),b.animate=P;var w=t.requestAnimationFrame||g;return b.State.isMobile||r.hidden===a||r.addEventListener("visibilitychange",function(){r.hidden?(w=function(e){return setTimeout(function(){e(!0)},16)},c()):w=t.requestAnimationFrame||g}),e.Velocity=b,e!==t&&(e.fn.velocity=P,e.fn.velocity.defaults=b.defaults),f.each(["Down","Up"],function(e,t){b.Redirects["slide"+t]=function(e,r,n,o,i,s){var l=f.extend({},r),u=l.begin,c=l.complete,p={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},d={};l.display===a&&(l.display="Down"===t?"inline"===b.CSS.Values.getDisplayType(e)?"inline-block":"block":"none"),l.begin=function(){u&&u.call(i,i);for(var r in p){d[r]=e.style[r];var a=b.CSS.getPropertyValue(e,r);p[r]="Down"===t?[a,0]:[0,a]}d.overflow=e.style.overflow,e.style.overflow="hidden"},l.complete=function(){for(var t in d)e.style[t]=d[t];c&&c.call(i,i),s&&s.resolver(i)},b(e,p,l)}}),f.each(["In","Out"],function(e,t){b.Redirects["fade"+t]=function(e,r,n,o,i,s){var l=f.extend({},r),u={opacity:"In"===t?1:0},c=l.complete;l.complete=n!==o-1?l.begin=null:function(){c&&c.call(i,i),s&&s.resolver(i)},l.display===a&&(l.display="In"===t?"auto":"none"),b(this,u,l)}}),b}(window.jQuery||window.Zepto||window,window,document)})); diff --git a/node_modules/materialize-css/js/waves.js b/node_modules/materialize-css/js/waves.js deleted file mode 100644 index c76d463..0000000 --- a/node_modules/materialize-css/js/waves.js +++ /dev/null @@ -1,338 +0,0 @@ -/*! - * Waves v0.6.4 - * http://fian.my.id/Waves - * - * Copyright 2014 Alfiana E. Sibuea and other contributors - * Released under the MIT license - * https://github.com/fians/Waves/blob/master/LICENSE - */ - -;(function(window) { - 'use strict'; - - var Waves = Waves || {}; - var $$ = document.querySelectorAll.bind(document); - - // Find exact position of element - function isWindow(obj) { - return obj !== null && obj === obj.window; - } - - function getWindow(elem) { - return isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView; - } - - function offset(elem) { - var docElem, win, - box = {top: 0, left: 0}, - doc = elem && elem.ownerDocument; - - docElem = doc.documentElement; - - if (typeof elem.getBoundingClientRect !== typeof undefined) { - box = elem.getBoundingClientRect(); - } - win = getWindow(doc); - return { - top: box.top + win.pageYOffset - docElem.clientTop, - left: box.left + win.pageXOffset - docElem.clientLeft - }; - } - - function convertStyle(obj) { - var style = ''; - - for (var a in obj) { - if (obj.hasOwnProperty(a)) { - style += (a + ':' + obj[a] + ';'); - } - } - - return style; - } - - var Effect = { - - // Effect delay - duration: 750, - - show: function(e, element) { - - // Disable right click - if (e.button === 2) { - return false; - } - - var el = element || this; - - // Create ripple - var ripple = document.createElement('div'); - ripple.className = 'waves-ripple'; - el.appendChild(ripple); - - // Get click coordinate and element witdh - var pos = offset(el); - var relativeY = (e.pageY - pos.top); - var relativeX = (e.pageX - pos.left); - var scale = 'scale('+((el.clientWidth / 100) * 10)+')'; - - // Support for touch devices - if ('touches' in e) { - relativeY = (e.touches[0].pageY - pos.top); - relativeX = (e.touches[0].pageX - pos.left); - } - - // Attach data to element - ripple.setAttribute('data-hold', Date.now()); - ripple.setAttribute('data-scale', scale); - ripple.setAttribute('data-x', relativeX); - ripple.setAttribute('data-y', relativeY); - - // Set ripple position - var rippleStyle = { - 'top': relativeY+'px', - 'left': relativeX+'px' - }; - - ripple.className = ripple.className + ' waves-notransition'; - ripple.setAttribute('style', convertStyle(rippleStyle)); - ripple.className = ripple.className.replace('waves-notransition', ''); - - // Scale the ripple - rippleStyle['-webkit-transform'] = scale; - rippleStyle['-moz-transform'] = scale; - rippleStyle['-ms-transform'] = scale; - rippleStyle['-o-transform'] = scale; - rippleStyle.transform = scale; - rippleStyle.opacity = '1'; - - rippleStyle['-webkit-transition-duration'] = Effect.duration + 'ms'; - rippleStyle['-moz-transition-duration'] = Effect.duration + 'ms'; - rippleStyle['-o-transition-duration'] = Effect.duration + 'ms'; - rippleStyle['transition-duration'] = Effect.duration + 'ms'; - - rippleStyle['-webkit-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; - rippleStyle['-moz-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; - rippleStyle['-o-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; - rippleStyle['transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; - - ripple.setAttribute('style', convertStyle(rippleStyle)); - }, - - hide: function(e) { - TouchHandler.touchup(e); - - var el = this; - var width = el.clientWidth * 1.4; - - // Get first ripple - var ripple = null; - var ripples = el.getElementsByClassName('waves-ripple'); - if (ripples.length > 0) { - ripple = ripples[ripples.length - 1]; - } else { - return false; - } - - var relativeX = ripple.getAttribute('data-x'); - var relativeY = ripple.getAttribute('data-y'); - var scale = ripple.getAttribute('data-scale'); - - // Get delay beetween mousedown and mouse leave - var diff = Date.now() - Number(ripple.getAttribute('data-hold')); - var delay = 350 - diff; - - if (delay < 0) { - delay = 0; - } - - // Fade out ripple after delay - setTimeout(function() { - var style = { - 'top': relativeY+'px', - 'left': relativeX+'px', - 'opacity': '0', - - // Duration - '-webkit-transition-duration': Effect.duration + 'ms', - '-moz-transition-duration': Effect.duration + 'ms', - '-o-transition-duration': Effect.duration + 'ms', - 'transition-duration': Effect.duration + 'ms', - '-webkit-transform': scale, - '-moz-transform': scale, - '-ms-transform': scale, - '-o-transform': scale, - 'transform': scale, - }; - - ripple.setAttribute('style', convertStyle(style)); - - setTimeout(function() { - try { - el.removeChild(ripple); - } catch(e) { - return false; - } - }, Effect.duration); - }, delay); - }, - - // Little hack to make can perform waves effect - wrapInput: function(elements) { - for (var a = 0; a < elements.length; a++) { - var el = elements[a]; - - if (el.tagName.toLowerCase() === 'input') { - var parent = el.parentNode; - - // If input already have parent just pass through - if (parent.tagName.toLowerCase() === 'i' && parent.className.indexOf('waves-effect') !== -1) { - continue; - } - - // Put element class and style to the specified parent - var wrapper = document.createElement('i'); - wrapper.className = el.className + ' waves-input-wrapper'; - - var elementStyle = el.getAttribute('style'); - - if (!elementStyle) { - elementStyle = ''; - } - - wrapper.setAttribute('style', elementStyle); - - el.className = 'waves-button-input'; - el.removeAttribute('style'); - - // Put element as child - parent.replaceChild(wrapper, el); - wrapper.appendChild(el); - } - } - } - }; - - - /** - * Disable mousedown event for 500ms during and after touch - */ - var TouchHandler = { - /* uses an integer rather than bool so there's no issues with - * needing to clear timeouts if another touch event occurred - * within the 500ms. Cannot mouseup between touchstart and - * touchend, nor in the 500ms after touchend. */ - touches: 0, - allowEvent: function(e) { - var allow = true; - - if (e.type === 'touchstart') { - TouchHandler.touches += 1; //push - } else if (e.type === 'touchend' || e.type === 'touchcancel') { - setTimeout(function() { - if (TouchHandler.touches > 0) { - TouchHandler.touches -= 1; //pop after 500ms - } - }, 500); - } else if (e.type === 'mousedown' && TouchHandler.touches > 0) { - allow = false; - } - - return allow; - }, - touchup: function(e) { - TouchHandler.allowEvent(e); - } - }; - - - /** - * Delegated click handler for .waves-effect element. - * returns null when .waves-effect element not in "click tree" - */ - function getWavesEffectElement(e) { - if (TouchHandler.allowEvent(e) === false) { - return null; - } - - var element = null; - var target = e.target || e.srcElement; - - while (target.parentElement !== null) { - if (!(target instanceof SVGElement) && target.className.indexOf('waves-effect') !== -1) { - element = target; - break; - } else if (target.classList.contains('waves-effect')) { - element = target; - break; - } - target = target.parentElement; - } - - return element; - } - - /** - * Bubble the click and show effect if .waves-effect elem was found - */ - function showEffect(e) { - var element = getWavesEffectElement(e); - - if (element !== null) { - Effect.show(e, element); - - if ('ontouchstart' in window) { - element.addEventListener('touchend', Effect.hide, false); - element.addEventListener('touchcancel', Effect.hide, false); - } - - element.addEventListener('mouseup', Effect.hide, false); - element.addEventListener('mouseleave', Effect.hide, false); - } - } - - Waves.displayEffect = function(options) { - options = options || {}; - - if ('duration' in options) { - Effect.duration = options.duration; - } - - //Wrap input inside tag - Effect.wrapInput($$('.waves-effect')); - - if ('ontouchstart' in window) { - document.body.addEventListener('touchstart', showEffect, false); - } - - document.body.addEventListener('mousedown', showEffect, false); - }; - - /** - * Attach Waves to an input element (or any element which doesn't - * bubble mouseup/mousedown events). - * Intended to be used with dynamically loaded forms/inputs, or - * where the user doesn't want a delegated click handler. - */ - Waves.attach = function(element) { - //FUTURE: automatically add waves classes and allow users - // to specify them with an options param? Eg. light/classic/button - if (element.tagName.toLowerCase() === 'input') { - Effect.wrapInput([element]); - element = element.parentElement; - } - - if ('ontouchstart' in window) { - element.addEventListener('touchstart', showEffect, false); - } - - element.addEventListener('mousedown', showEffect, false); - }; - - window.Waves = Waves; - - document.addEventListener('DOMContentLoaded', function() { - Waves.displayEffect(); - }, false); - -})(window); diff --git a/node_modules/materialize-css/media-css.html b/node_modules/materialize-css/media-css.html deleted file mode 100644 index 9f69f52..0000000 --- a/node_modules/materialize-css/media-css.html +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - - - - Media CSS - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                - -
                - - -
                -

                Images

                -

                Images can be styled in different ways using Materialize

                - -

                Responsive Images

                -

                To make images resize responsively to page width, you can add the class responsive-img to your image tag. It will now have a max-width: 100% and height:auto.

                -
                
                -    <img class="responsive-img" src="cool_pic.jpg">
                -        
                -

                Circular images

                -
                -
                -
                -
                - -
                -
                - - This is a square image. Add the "circle" class to it to make it appear circular. - -
                -
                -
                -
                - -
                -
                -

                To make images appear circular, simply add class="circle" to them

                -
                
                -      <div class="col s12 m8 offset-m2 l6 offset-l3">
                -        <div class="card-panel grey lighten-5 z-depth-1">
                -          <div class="row valign-wrapper">
                -            <div class="col s2">
                -              <img src="images/yuna.jpg" alt="" class="circle responsive-img"> <!-- notice the "circle" class -->
                -            </div>
                -            <div class="col s10">
                -              <span class="black-text">
                -                This is a square image. Add the "circle" class to it to make it appear circular.
                -              </span>
                -            </div>
                -          </div>
                -        </div>
                -      </div>
                -            
                -
                -
                -
                - - -
                -

                Videos

                -

                We provide a container for Embedded Videos that resizes them responsively.

                -

                Responsive Embeds

                -

                To make your embeds responsive, merely wrap them with a containing div which has the class video-container

                -
                - -
                -
                
                -      <div class="video-container">
                -        <iframe width="853" height="480" src="//www.youtube.com/embed/Q8TXgCzxEnw?rel=0" frameborder="0" allowfullscreen></iframe>
                -      </div>
                -        
                -

                Responsive Videos

                -

                To make your HTML5 Videos responsive just add the class responsive-video to the video tag.

                - - -
                
                -  <video class="responsive-video" controls>
                -    <source src="movie.mp4" type="video/mp4">
                -  </video>
                -        
                - -
                - - -
                - -
                -
                -
                - - -
                -
                - -
                -
                -
                - -
                -
                - - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/media.html b/node_modules/materialize-css/media.html deleted file mode 100644 index baada2e..0000000 --- a/node_modules/materialize-css/media.html +++ /dev/null @@ -1,369 +0,0 @@ - - - - - - - - - Media - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                -
                -

                Media components include things that have to do with large media objects like Images, Video, Audio, etc.

                - -
                -

                Material Box

                -

                Material box is a material design implementation of the Lightbox plugin. When a user clicks on an image that can be enlarged. Material box centers the image and enlarges it in a smooth, non-jarring manner. To dismiss the image, the user can either click on the image again, scroll away, or press the ESC key.

                - - -

                Creating the above image with the effect is as simple as adding a materialboxed class to the image tag.

                -
                
                -    <img class="materialboxed" width="650" src="images/sample-1.jpg">
                -      
                - - -

                Initialization

                -

                Materialbox is intialized automatically. However, if you add images dynamically, you will have to add this initialization code.

                -
                
                -  $(document).ready(function(){
                -    $('.materialboxed').materialbox();
                -  });
                -        
                - -

                Captions

                -

                It is very easy to add a short caption to your photo. Just add the caption as a data-caption attribute.

                - -
                
                -  <img class="materialboxed" data-caption="A picture of some deer and tons of trees" width="250" src="http://th01.deviantart.net/fs70/PRE/i/2013/126/1/e/nature_portrait_by_pw_fotografie-d63tx0n.jpg">
                -          
                -
                - -
                - - - -
                -

                Slider

                -

                Our slider is a simple and elegant image carousel. You can also have captions that will be transitioned on their own depending on their alignment. You can also have indicators that show up on the bottom of the slider.

                -

                Note: This is also Hammer.js compatible! Try swiping with your finger to scroll through the slider.


                - -
                -
                  -
                • - -
                  -

                  This is our big Tagline!

                  -
                  Here's our small slogan.
                  -
                  -
                • -
                • - -
                  -

                  Left Aligned Caption

                  -
                  Here's our small slogan.
                  -
                  -
                • -
                • - -
                  -

                  Right Aligned Caption

                  -
                  Here's our small slogan.
                  -
                  -
                • -
                • - -
                  -

                  This is our big Tagline!

                  -
                  Here's our small slogan.
                  -
                  -
                • -
                -

                - -
                
                -  <div class="slider">
                -    <ul class="slides">
                -      <li>
                -        <img src="http://lorempixel.com/580/250/nature/1"> <!-- random image -->
                -        <div class="caption center-align">
                -          <h3>This is our big Tagline!</h3>
                -          <h5 class="light grey-text text-lighten-3">Here's our small slogan.</h5>
                -        </div>
                -      </li>
                -      <li>
                -        <img src="http://lorempixel.com/580/250/nature/2"> <!-- random image -->
                -        <div class="caption left-align">
                -          <h3>Left Aligned Caption</h3>
                -          <h5 class="light grey-text text-lighten-3">Here's our small slogan.</h5>
                -        </div>
                -      </li>
                -      <li>
                -        <img src="http://lorempixel.com/580/250/nature/3"> <!-- random image -->
                -        <div class="caption right-align">
                -          <h3>Right Aligned Caption</h3>
                -          <h5 class="light grey-text text-lighten-3">Here's our small slogan.</h5>
                -        </div>
                -      </li>
                -      <li>
                -        <img src="http://lorempixel.com/580/250/nature/4"> <!-- random image -->
                -        <div class="caption center-align">
                -          <h3>This is our big Tagline!</h3>
                -          <h5 class="light grey-text text-lighten-3">Here's our small slogan.</h5>
                -        </div>
                -      </li>
                -    </ul>
                -  </div>
                -      
                - -
                -

                Fullscreen Slider

                -

                You can easliy make this slider a fullscreen slider by adding the class fullscreen to the slider div. Here's a quick demo.

                - Open Demo - -
                -

                jQuery Initialization

                -
                
                -    $(document).ready(function(){
                -      $('.slider').slider();
                -    });
                -        
                -
                - -

                jQuery Plugin Options

                - - - - - - - - - - - - - - - - - - - - - - - - - - -
                Option NameDescription
                indicatorsSet to false to hide slide indicators. (Default: True)
                heightSet height of slider. (Default: 400)
                transitionSet the duration of the transition animation in ms. (Default: 500)
                intervalSet the duration between transitions in ms. (Default: 6000)
                -
                - -

                jQuery Plugin Methods

                -

                We have methods to pause, start, move to next and move to previous slide.

                -
                
                -// Pause slider
                -$('.slider').slider('pause');
                -// Start slider
                -$('.slider').slider('start');
                -// Next slide
                -$('.slider').slider('next');
                -// Previous slide
                -$('.slider').slider('prev');
                -      
                -
                - -
                - - - -
                -
                -
                - - -
                -
                - -
                -
                -
                - -
                -
                - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/mobile.html b/node_modules/materialize-css/mobile.html deleted file mode 100644 index 488014c..0000000 --- a/node_modules/materialize-css/mobile.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - - - Mobile - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                -
                - - - - - -
                -

                Toast

                -

                Swipe to Dismiss

                -

                On all devices, you can swipe to dismiss toasts.

                - - -
                -
                -
                -
                -
                - - -
                -
                - -
                -
                -
                -
                - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/modals.html b/node_modules/materialize-css/modals.html deleted file mode 100644 index 2a243a2..0000000 --- a/node_modules/materialize-css/modals.html +++ /dev/null @@ -1,394 +0,0 @@ - - - - - - - - - Modals - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                -
                - -
                -

                Introduction

                -

                Use a modal for dialog boxes, confirmation messages, or other content that can be called up. In order for the modal to work you have to add the Modal ID to the link of the trigger. To add a close button, just add the class .modal-close to your button.

                - Modal    Modal With Fixed Footer    Modal Bottom Sheet Style - - - -
                - - - -
                -

                Modals HTML Structure

                -
                
                -  <!-- Modal Trigger -->
                -  <a class="waves-effect waves-light btn" href="#modal1">Modal</a>
                -
                -  <!-- Modal Structure -->
                -  <div id="modal1" class="modal">
                -    <div class="modal-content">
                -      <h4>Modal Header</h4>
                -      <p>A bunch of text</p>
                -    </div>
                -    <div class="modal-footer">
                -      <a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat">Agree</a>
                -    </div>
                -  </div>
                -          
                -
                - - - - -
                -

                Bottom Sheet Modals

                -

                Bottom Sheet Modals are good for displaying actions to the user on the bottom of a screen. They still act the same as regular modals.

                -
                
                -  <!-- Modal Trigger -->
                -  <a class="waves-effect waves-light btn" href="#modal1">Modal</a>
                -
                -  <!-- Modal Structure -->
                -  <div id="modal1" class="modal bottom-sheet">
                -    <div class="modal-content">
                -      <h4>Modal Header</h4>
                -      <p>A bunch of text</p>
                -    </div>
                -    <div class="modal-footer">
                -      <a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat">Agree</a>
                -    </div>
                -  </div>
                -          
                -
                - -
                -

                Modals with Button trigger

                -

                If you prefer to use a button to open a modal specify the Modal ID in data-target rather than the href attribute.

                - -
                
                -  <!-- Modal Trigger -->
                -  <button data-target="modal1" class="btn">Modal</button>
                -          
                -
                - - - -
                -

                jQuery Plugin Initialization

                -

                To open a modal using a trigger:

                -
                
                -  $(document).ready(function(){
                -    // the "href" attribute of .modal-trigger must specify the modal ID that wants to be triggered
                -    $('.modal').modal();
                -  });
                -          
                -

                You can also open modals programatically, the below code will make your modal open on document ready:

                -
                
                -  $('#modal1').modal('open');
                -          
                -

                You can also close them programatically:

                -
                
                -  $('#modal1').modal('close');
                -        
                -
                - - - -
                -

                Options

                -

                You can customize the behavior of each modal using these options. For example, you can call a custom function to run when a modal is dismissed. To do this, just place your function in the intialization code as shown below.

                -
                
                -  $('.modal').modal({
                -      dismissible: true, // Modal can be dismissed by clicking outside of the modal
                -      opacity: .5, // Opacity of modal background
                -      inDuration: 300, // Transition in duration
                -      outDuration: 200, // Transition out duration
                -      startingTop: '4%', // Starting top style attribute
                -      endingTop: '10%', // Ending top style attribute
                -      ready: function(modal, trigger) { // Callback for Modal open. Modal and trigger parameters available.
                -        alert("Ready");
                -        console.log(modal, trigger);
                -      },
                -      complete: function() { alert('Closed'); } // Callback for Modal close
                -    }
                -  );
                -      
                -
                - -
                - - - - -
                -
                - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/navbar.html b/node_modules/materialize-css/navbar.html deleted file mode 100644 index aa2f943..0000000 --- a/node_modules/materialize-css/navbar.html +++ /dev/null @@ -1,701 +0,0 @@ - - - - - - - - - Navbar - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                - -
                - - - -
                -

                Left Aligned Links

                -

                To left align your navbar links, just add a left class to your <ul> that contains them.

                -
                -
                
                -  <nav>
                -    <div class="nav-wrapper">
                -      <a href="#" class="brand-logo right">Logo</a>
                -      <ul id="nav-mobile" class="left hide-on-med-and-down">
                -        <li><a href="sass.html">Sass</a></li>
                -        <li><a href="badges.html">Components</a></li>
                -        <li><a href="collapsible.html">JavaScript</a></li>
                -      </ul>
                -    </div>
                -  </nav>
                -        
                -
                - -
                -

                Centering the logo

                -

                The logo will center itself on medium and down screens, but if you want the logo to always be centered, add the center class to your <a class="brand-logo">. You will have to make sure yourself that links do not overlap if you use this.

                -
                -
                
                -  <nav>
                -    <div class="nav-wrapper">
                -      <a href="#" class="brand-logo center">Logo</a>
                -      <ul id="nav-mobile" class="left hide-on-med-and-down">
                -        <li><a href="sass.html">Sass</a></li>
                -        <li><a href="badges.html">Components</a></li>
                -        <li><a href="collapsible.html">JavaScript</a></li>
                -      </ul>
                -    </div>
                -  </nav>
                -        
                -
                - -
                - -

                Active Items

                -

                - Add active class to your li tags to denote the current page. -

                - -
                - -
                
                -  <nav>
                -    <div class="nav-wrapper">
                -      <a href="#!" class="brand-logo center">Logo</a>
                -      <ul class="left hide-on-med-and-down">
                -        <li><a href="sass.html">Sass</a></li>
                -        <li><a href="badges.html">Components</a></li>
                -        <li class="active"><a href="collapsible.html">JavaScript</a></li>
                -      </ul>
                -    </div>
                -  </nav>
                -        
                -
                - - - - - -
                - -
                -

                Icon Links

                - - - -
                - -

                You can add icons into links. For icon only links you don't need any additional class. Just pop the i tag in and it will work.

                -
                
                -  <nav>
                -    <div class="nav-wrapper">
                -      <a href="#!" class="brand-logo"><i class="material-icons">cloud</i>Logo</a>
                -      <ul class="right hide-on-med-and-down">
                -        <li><a href="sass.html"><i class="material-icons">search</i></a></li>
                -        <li><a href="badges.html"><i class="material-icons">view_module</i></a></li>
                -        <li><a href="collapsible.html"><i class="material-icons">refresh</i></a></li>
                -        <li><a href="mobile.html"><i class="material-icons">more_vert</i></a></li>
                -      </ul>
                -    </div>
                -  </nav>
                -
                - - - -
                - -

                For adding an icon to a text link you need to add either a left or right class to the icon depending on where you want the icon to be.

                -
                
                -  <nav>
                -    <div class="nav-wrapper">
                -      <a href="#!" class="brand-logo">Logo</a>
                -      <ul class="right hide-on-med-and-down">
                -        <li><a href="sass.html"><i class="material-icons left">search</i>Link with Left Icon</a></li>
                -        <li><a href="badges.html"><i class="material-icons right">view_module</i>Link with Right Icon</a></li>
                -      </ul>
                -    </div>
                -  </nav>
                -
                -
                - -
                -

                Buttons

                - - - -
                - -

                You can add buttons into links. For buttons you don't need any additional class. Just pop the .btn class on the a tag.

                -
                
                -  <nav>
                -    <div class="nav-wrapper">
                -      <a href="#!" class="brand-logo">Logo</a>
                -      <ul class="right hide-on-med-and-down">
                -        <li><a class="waves-effect waves-light btn">Button</a></li>
                -        <li><a class="waves-effect waves-light btn">Button <i class="material-icons right">cloud</i></a></li>
                -        <li><a class="waves-effect waves-light btn-large">Large Button</a></li>
                -      </ul>
                -    </div>
                -  </nav>
                -
                - -
                Halfway FAB in Extended Navbar
                -

                Add a halfway FAB to your extended navbar.

                - - -

                -
                
                -  <nav class="nav-extended">
                -    <div class="nav-wrapper">
                -      <a href="#!" class="brand-logo">Logo</a>
                -      <ul class="right hide-on-med-and-down">
                -        <li><a>A link</a></li>
                -        <li><a>A second link</a></li>
                -        <li><a>A third link</a></li>
                -      </ul>
                -    </div>
                -    <div class="nav-content">
                -      <span class="nav-title">Title</span>
                -      <a class="btn-floating btn-large halfway-fab waves-effect waves-light teal">
                -        <i class="material-icons">add</i>
                -      </a>
                -    </div>
                -  </nav>
                -
                -
                - -
                -

                Search Bar

                - - - -
                - -

                You can add a search form in the navbar.

                -
                
                -  <nav>
                -    <div class="nav-wrapper">
                -      <form>
                -        <div class="input-field">
                -          <input id="search" type="search" required>
                -          <label class="label-icon" for="search"><i class="material-icons">search</i></label>
                -          <i class="material-icons">close</i>
                -        </div>
                -      </form>
                -    </div>
                -  </nav>
                -
                - -
                - -
                -

                Mobile Collapse Button

                - - - -
                - -

                When your nav bar is resized, you will see that the links on the right turn into a hamburger icon menu. Take a look at the example below to get this functionality. Add the entire button-collapse line to your nav.

                -
                
                -  <nav>
                -    <div class="nav-wrapper">
                -      <a href="#!" class="brand-logo">Logo</a>
                -      <a href="#" data-activates="mobile-demo" class="button-collapse"><i class="material-icons">menu</i></a>
                -      <ul class="right hide-on-med-and-down">
                -        <li><a href="sass.html">Sass</a></li>
                -        <li><a href="badges.html">Components</a></li>
                -        <li><a href="collapsible.html">Javascript</a></li>
                -        <li><a href="mobile.html">Mobile</a></li>
                -      </ul>
                -      <ul class="side-nav" id="mobile-demo">
                -        <li><a href="sass.html">Sass</a></li>
                -        <li><a href="badges.html">Components</a></li>
                -        <li><a href="collapsible.html">Javascript</a></li>
                -        <li><a href="mobile.html">Mobile</a></li>
                -      </ul>
                -    </div>
                -  </nav>
                -          
                - -
                -

                Initialization

                -

                After including the button-collapse line into your navbar, all you have to do now is place this code in your page's $( document ).ready(function(){}) code. This example below assumes you have not modified the classes in the above example. In the case that you have, just change the jQuery selector in the line below to match it.

                -
                
                -    $(".button-collapse").sideNav();
                -        
                -
                - -
                - - - -
                -
                - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/package.js b/node_modules/materialize-css/package.js deleted file mode 100644 index 289da05..0000000 --- a/node_modules/materialize-css/package.js +++ /dev/null @@ -1,99 +0,0 @@ -// package metadata file for Meteor.js - -Package.describe({ - name: 'materialize:materialize', // http://atmospherejs.com/materialize/materialize - summary: 'Materialize (official): A modern responsive front-end framework based on Material Design', - version: '0.98.0', - git: 'https://github.com/Dogfalo/materialize.git' -}); - - -Package.onUse(function (api) { - api.versionsFrom('METEOR@1.0'); - - api.use('fourseven:scss@3.10.0'); - api.use('jquery', 'client'); - api.imply('jquery', 'client'); - - var assets = [ - 'fonts/roboto/Roboto-Bold.ttf', - 'fonts/roboto/Roboto-Bold.woff', - 'fonts/roboto/Roboto-Bold.woff2', - 'fonts/roboto/Roboto-Light.ttf', - 'fonts/roboto/Roboto-Light.woff', - 'fonts/roboto/Roboto-Light.woff2', - 'fonts/roboto/Roboto-Medium.ttf', - 'fonts/roboto/Roboto-Medium.woff', - 'fonts/roboto/Roboto-Medium.woff2', - 'fonts/roboto/Roboto-Regular.ttf', - 'fonts/roboto/Roboto-Regular.woff', - 'fonts/roboto/Roboto-Regular.woff2', - 'fonts/roboto/Roboto-Thin.ttf', - 'fonts/roboto/Roboto-Thin.woff', - 'fonts/roboto/Roboto-Thin.woff2', - ]; - - addAssets(api, assets); - - api.addFiles([ - 'dist/js/materialize.js' - ], 'client'); - - var scssFiles = [ - 'sass/components/date_picker/_default.date.scss', - 'sass/components/date_picker/_default.scss', - 'sass/components/date_picker/_default.time.scss', - 'sass/components/forms/_checkboxes.scss', - 'sass/components/forms/_file-input.scss', - 'sass/components/forms/_forms.scss', - 'sass/components/forms/_input-fields.scss', - 'sass/components/forms/_radio-buttons.scss', - 'sass/components/forms/_range.scss', - 'sass/components/forms/_select.scss', - 'sass/components/forms/_switches.scss', - 'sass/components/_badges.scss', - 'sass/components/_buttons.scss', - 'sass/components/_cards.scss', - 'sass/components/_carousel.scss', - 'sass/components/_chips.scss', - 'sass/components/_collapsible.scss', - 'sass/components/_color.scss', - 'sass/components/_dropdown.scss', - 'sass/components/_global.scss', - 'sass/components/_grid.scss', - 'sass/components/_icons-material-design.scss', - 'sass/components/_materialbox.scss', - 'sass/components/_mixins.scss', - 'sass/components/_modal.scss', - 'sass/components/_navbar.scss', - 'sass/components/_normalize.scss', - 'sass/components/_prefixer.scss', - 'sass/components/_preloader.scss', - 'sass/components/_roboto.scss', - 'sass/components/_sideNav.scss', - 'sass/components/_slider.scss', - 'sass/components/_table_of_contents.scss', - 'sass/components/_tabs.scss', - 'sass/components/_toast.scss', - 'sass/components/_tooltip.scss', - 'sass/components/_transitions.scss', - 'sass/components/_typography.scss', - 'sass/components/_variables.scss', - 'sass/components/_waves.scss', - 'sass/materialize.scss' - ]; - - api.addFiles(scssFiles, 'client'); - - - api.export('Materialize', 'client'); -}); - - -function addAssets(api, assets){ - if(api.addAssets){ - api.addAssets(assets, 'client'); - } else { - api.addFiles(assets, 'client', {isAsset: true}); - } -} diff --git a/node_modules/materialize-css/package.json b/node_modules/materialize-css/package.json deleted file mode 100644 index 7e866af..0000000 --- a/node_modules/materialize-css/package.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "_args": [ - [ - { - "raw": "materialize-css@^0.98.0", - "scope": null, - "escapedName": "materialize-css", - "name": "materialize-css", - "rawSpec": "^0.98.0", - "spec": ">=0.98.0 <0.99.0", - "type": "range" - }, - "/Users/odella/dev/react-materialize/docs" - ] - ], - "_from": "materialize-css@>=0.98.0 <0.99.0", - "_id": "materialize-css@0.98.0", - "_inCache": true, - "_location": "/materialize-css", - "_nodeVersion": "7.2.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/materialize-css-0.98.0.tgz_1485461368337_0.723597272997722" - }, - "_npmUser": { - "name": "materialize", - "email": "materializeframework@gmail.com" - }, - "_npmVersion": "3.10.10", - "_phantomChildren": {}, - "_requested": { - "raw": "materialize-css@^0.98.0", - "scope": null, - "escapedName": "materialize-css", - "name": "materialize-css", - "rawSpec": "^0.98.0", - "spec": ">=0.98.0 <0.99.0", - "type": "range" - }, - "_requiredBy": [ - "/" - ], - "_resolved": "https://registry.npmjs.org/materialize-css/-/materialize-css-0.98.0.tgz", - "_shasum": "aa612c031c0b22d6e7faa8fcdd405e54ad44d278", - "_shrinkwrap": null, - "_spec": "materialize-css@^0.98.0", - "_where": "/Users/odella/dev/react-materialize/docs", - "author": { - "name": "Alvin Wang, Alan Chang" - }, - "bugs": { - "url": "https://github.com/Dogfalo/materialize/issues" - }, - "dependencies": { - "hammerjs": "^2.0.4", - "jquery": "^2.1.4", - "node-archiver": "^0.3.0" - }, - "description": "Builds Materialize distribution packages", - "devDependencies": { - "autoprefixer": "^6.1.0", - "grunt": "^0.4.5", - "grunt-banner": "^0.6.0", - "grunt-browser-sync": "^2.2.0", - "grunt-concurrent": "^2.0.0", - "grunt-contrib-clean": "^0.7.0", - "grunt-contrib-compress": "^0.14.0", - "grunt-contrib-concat": "^0.5.0", - "grunt-contrib-copy": "^0.8.0", - "grunt-contrib-cssmin": "^0.14.0", - "grunt-contrib-jade": "^0.15.0", - "grunt-contrib-jasmine": "^0.9.2", - "grunt-contrib-uglify": "^0.11.0", - "grunt-contrib-watch": "^0.6.0", - "grunt-notify": "^0.4.1", - "grunt-postcss": "^0.7.1", - "grunt-remove-logging": "^0.2.0", - "grunt-rename": "^0.1.4", - "grunt-sass": "^1.1.0", - "grunt-text-replace": "^0.4.0", - "jasmine": "^2.3.2", - "jasmine-jquery": "^2.1.1", - "jquery": "^2.1.4", - "node-sass": "^3.4.2", - "phantomjs": "^1.9.18" - }, - "directories": {}, - "dist": { - "shasum": "aa612c031c0b22d6e7faa8fcdd405e54ad44d278", - "tarball": "https://registry.npmjs.org/materialize-css/-/materialize-css-0.98.0.tgz" - }, - "engine": "node >= 0.10", - "gitHead": "4d12e0660265ca556064cba6cb1a67bb81eaa53b", - "homepage": "https://github.com/Dogfalo/materialize#readme", - "license": "MIT", - "main": "bin/materialize.js", - "maintainers": [ - { - "name": "materialize", - "email": "materializeframework@gmail.com" - } - ], - "name": "materialize-css", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/Dogfalo/materialize.git" - }, - "scripts": { - "test": "grunt travis --verbose" - }, - "url": "http://materializecss.com/", - "version": "0.98.0" -} diff --git a/node_modules/materialize-css/pagination.html b/node_modules/materialize-css/pagination.html deleted file mode 100644 index ad0805b..0000000 --- a/node_modules/materialize-css/pagination.html +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - - - - Pagination - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                - -
                - - -
                - -
                -
                -

                Add pagination links to help split up your long content into shorter, easier to understand blocks.

                -

                Basic

                - -

                -
                
                -  <ul class="pagination">
                -    <li class="disabled"><a href="#!"><i class="material-icons">chevron_left</i></a></li>
                -    <li class="active"><a href="#!">1</a></li>
                -    <li class="waves-effect"><a href="#!">2</a></li>
                -    <li class="waves-effect"><a href="#!">3</a></li>
                -    <li class="waves-effect"><a href="#!">4</a></li>
                -    <li class="waves-effect"><a href="#!">5</a></li>
                -    <li class="waves-effect"><a href="#!"><i class="material-icons">chevron_right</i></a></li>
                -  </ul>
                -            
                -
                -
                -
                -
                - - - -
                - -
                -
                -
                - - -
                -
                - -
                -
                -
                - -
                -
                - - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/parallax-demo.html b/node_modules/materialize-css/parallax-demo.html deleted file mode 100644 index e25df1c..0000000 --- a/node_modules/materialize-css/parallax-demo.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - - - Parallax - Materialize - - - - - - - - - - - - - -
                - -
                - -
                - -
                -
                -
                -
                -
                -

                Parallax

                -

                Parallax is an effect where the background content or image in this case, is moved at a different speed than the foreground content while scrolling.

                -
                -
                -

                Parallax Demo HTML

                -
                
                -  <div class="parallax-container">
                -    <div class="parallax"><img src="images/parallax1.jpg"></div>
                -  </div>
                -  <div class="section white">
                -    <div class="row container">
                -      <h2 class="header">Parallax</h2>
                -      <p class="grey-text text-darken-3 lighten-3">Parallax is an effect where the background content or image in this case, is moved at a different speed than the foreground content while scrolling.</p>
                -    </div>
                -  </div>
                -  <div class="parallax-container">
                -    <div class="parallax"><img src="images/parallax2.jpg"></div>
                -  </div>
                -      
                -
                -
                -
                -
                -
                - -
                - close - - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/parallax.html b/node_modules/materialize-css/parallax.html deleted file mode 100644 index 1797bcf..0000000 --- a/node_modules/materialize-css/parallax.html +++ /dev/null @@ -1,251 +0,0 @@ - - - - - - - - - Parallax - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                - -
                - - -
                -

                Introduction

                -

                Parallax is an effect where the background content or image in this case, is moved at a different speed than the foreground content while scrolling. Check out the demo to get a better idea of it.

                - Open Demo -
                - - - -
                -

                Parallax HTML Structure

                -
                
                -    <div class="parallax-container">
                -      <div class="parallax"><img src="images/parallax1.jpg"></div>
                -    </div>
                -        
                -
                - - - -
                -

                Initialization

                -
                
                -    $(document).ready(function(){
                -      $('.parallax').parallax();
                -    });
                -        
                -
                - - - -
                -

                Parallax Customization

                -

                The parallax container height is what defines how much of the image can be seen. This is set to a default of 500px. You can add your own style to override this.

                -
                
                -    .parallax-container {
                -      height: "your height here";
                -    }
                -        
                -
                - -
                - - - -
                - -
                - -
                -
                - - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/preloader.html b/node_modules/materialize-css/preloader.html deleted file mode 100644 index 01528c2..0000000 --- a/node_modules/materialize-css/preloader.html +++ /dev/null @@ -1,514 +0,0 @@ - - - - - - - - - Preloader - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                - -
                -

                If you have content that will take a long time to load, you should give the user feedback. For this reason we provide a number activity + progress indicators.

                -
                -

                Linear

                -

                There are a couple different types of linear progress bars.

                -

                Determinate

                -
                -
                -
                -
                -
                -
                -
                -
                
                -  <div class="progress">
                -      <div class="determinate" style="width: 70%"></div>
                -  </div>
                -        
                - -

                Indeterminate

                -
                -
                -
                -
                -
                -
                -
                -
                
                -  <div class="progress">
                -      <div class="indeterminate"></div>
                -  </div>
                -        
                - -
                - - -
                -

                Circular

                -

                There are 4 colors and 3 sizes of circular spinners. The spinner should be nested in a preloader-wrapper div. The default size is medium, but you can add the classes big or small to adjust the size accordingly. You can add the classes spinner-red-only, spinner-blue-only, spinner-yellow-only and spinner-green-only. You can also leave this class as just spinner-layer and it will be set to the $spinner-default-color variable in our variables.scss file.

                -

                Colors

                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                - -
                - -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                - -
                -
                - -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                - -
                -
                -
                
                -  <div class="preloader-wrapper big active">
                -    <div class="spinner-layer spinner-blue-only">
                -      <div class="circle-clipper left">
                -        <div class="circle"></div>
                -      </div><div class="gap-patch">
                -        <div class="circle"></div>
                -      </div><div class="circle-clipper right">
                -        <div class="circle"></div>
                -      </div>
                -    </div>
                -  </div>
                -
                -  <div class="preloader-wrapper active">
                -    <div class="spinner-layer spinner-red-only">
                -      <div class="circle-clipper left">
                -        <div class="circle"></div>
                -      </div><div class="gap-patch">
                -        <div class="circle"></div>
                -      </div><div class="circle-clipper right">
                -        <div class="circle"></div>
                -      </div>
                -    </div>
                -  </div>
                -
                -  <div class="preloader-wrapper small active">
                -    <div class="spinner-layer spinner-green-only">
                -      <div class="circle-clipper left">
                -        <div class="circle"></div>
                -      </div><div class="gap-patch">
                -        <div class="circle"></div>
                -      </div><div class="circle-clipper right">
                -        <div class="circle"></div>
                -      </div>
                -    </div>
                -  </div>
                -        
                -
                - -
                -

                Circular Flashing Colors

                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                - -
                -
                -
                -
                -
                -
                -
                -
                -
                - -
                -
                -
                -
                -
                -
                -
                -
                -
                - -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                - -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                - -
                -
                -
                -
                -
                -
                -
                -
                -
                - -
                -
                -
                -
                -
                -
                -
                -
                -
                - -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                - -
                -
                - -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                - -
                -
                -
                -
                -
                -
                -
                -
                -
                - -
                -
                -
                -
                -
                -
                -
                -
                -
                - -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                - -
                -
                -
                
                -    <div class="preloader-wrapper big active">
                -      <div class="spinner-layer spinner-blue">
                -        <div class="circle-clipper left">
                -          <div class="circle"></div>
                -        </div><div class="gap-patch">
                -          <div class="circle"></div>
                -        </div><div class="circle-clipper right">
                -          <div class="circle"></div>
                -        </div>
                -      </div>
                -
                -      <div class="spinner-layer spinner-red">
                -        <div class="circle-clipper left">
                -          <div class="circle"></div>
                -        </div><div class="gap-patch">
                -          <div class="circle"></div>
                -        </div><div class="circle-clipper right">
                -          <div class="circle"></div>
                -        </div>
                -      </div>
                -
                -      <div class="spinner-layer spinner-yellow">
                -        <div class="circle-clipper left">
                -          <div class="circle"></div>
                -        </div><div class="gap-patch">
                -          <div class="circle"></div>
                -        </div><div class="circle-clipper right">
                -          <div class="circle"></div>
                -        </div>
                -      </div>
                -
                -      <div class="spinner-layer spinner-green">
                -        <div class="circle-clipper left">
                -          <div class="circle"></div>
                -        </div><div class="gap-patch">
                -          <div class="circle"></div>
                -        </div><div class="circle-clipper right">
                -          <div class="circle"></div>
                -        </div>
                -      </div>
                -    </div>
                -        
                -
                - - -
                - - -
                -
                -
                - - -
                - -
                -
                - -
                -
                - - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/pushpin-demo.html b/node_modules/materialize-css/pushpin-demo.html deleted file mode 100644 index 794c560..0000000 --- a/node_modules/materialize-css/pushpin-demo.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - - - Pushpin Demo - Materialize - - - - - - - - - - - - - - -
                - -
                - -
                - -
                - -
                - -
                - -
                - close - - -
                -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/pushpin.html b/node_modules/materialize-css/pushpin.html deleted file mode 100644 index f84a670..0000000 --- a/node_modules/materialize-css/pushpin.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - - - - Pushpin - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                - -
                - -
                -

                Introduction

                -

                Pushpin is our fixed positioning plugin. Use this to pin elements to your page during specific scroll ranges. You can check out our live example: the fixed table of contents on the right.

                - - Open Demo - -

                -
                Demo Code
                -
                
                -  $('.pushpin-demo-nav').each(function() {
                -    var $this = $(this);
                -    var $target = $('#' + $(this).attr('data-target'));
                -    $this.pushpin({
                -      top: $target.offset().top,
                -      bottom: $target.offset().top + $target.outerHeight() - $this.height()
                -    });
                -  });
                -        
                -
                
                -  // Only necessary for window height sized blocks.
                -  html, body, .block {
                -    height: 100%;
                -  }
                -        
                - -
                - -
                -

                jQuery Plugin Initialization

                -

                Here is a sample initialization of pushpin. Take a look at what the options are and customize them to your needs.

                -
                
                -  $(document).ready(function(){
                -    $('.target').pushpin({
                -      top: 0,
                -      bottom: 1000,
                -      offset: 0
                -    });
                -  });
                -        
                -
                - -
                -

                CSS Classes

                -

                A pushpinned element has 3 states. One above and below the scrolling threshold, and the pinned state where the element becomes fixed. Because pushpin changes positioning, chances are your element will look different when the states change. Use these css classes to correctly style your 3 states.

                -
                
                -  // Class for when element is above threshold
                -  .pin-top {
                -    position: relative;
                -  }
                -
                -  // Class for when element is below threshold
                -  .pin-bottom {
                -    position: relative;
                -  }
                -
                -  // Class for when element is pinned
                -  .pinned {
                -    position: fixed !important;
                -  }
                -        
                -
                - - -
                -

                jQuery Plugin Options

                - - - - - - - - - - - - - - - - - - - - - - -
                Option NameDescription
                topThe distance in pixels from the top of the page where the element becomes fixed. (Default: 0)
                bottomThe distance in pixels from the top of the page where the elements stops being fixed. (Default: Infinity)
                offsetThe offset from the top the element will be fixed at. (Default: 0)
                - -
                -

                Removal

                -

                To remove the pushpin from an element, pass in 'remove' as the option to the pushpin function

                -
                
                -  //Removes pushpin and pushpin classes
                -  $('.tabs-wrapper .row').pushpin('remove');
                -        
                - -
                -
                - - - -
                -
                -
                - - -
                - -
                -
                - -
                -
                - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/res/MaterializeLogo-3.ai b/node_modules/materialize-css/res/MaterializeLogo-3.ai deleted file mode 100644 index 755b2e2..0000000 --- a/node_modules/materialize-css/res/MaterializeLogo-3.ai +++ /dev/null @@ -1,4854 +0,0 @@ -%PDF-1.5 % -1 0 obj <>/OCGs[5 0 R 41 0 R 76 0 R 111 0 R 146 0 R 181 0 R 182 0 R 220 0 R 221 0 R 259 0 R 260 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream - - - - - application/pdf - - - MaterializeLogo-3 - - - - - 2014-10-29T19:17:33-04:00 - 2014-10-29T19:17:33-04:00 - 2014-10-29T18:50:04-04:00 - Adobe Illustrator CS6 (Macintosh) - - - - 256 - 44 - JPEG - /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgALAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FUt1nzFo+jLEdRn 9H1+XpAI7luFOX2QafaHXIymI83J0+kyZr4BdJFN+aPliOvAXEv+pGB/xNlyrx4udHsXOf5o+KBm /NzTR/c2Ez+HNlT9XPAdQO5uj2FPrIIGb83bk/3Omon+vKX/AFKmROoPc3x7Bj1n9iBm/NXzG9RH DbRDsQjk/wDDOR+GROeTfHsTCOZkfx7kDN+Yvm6SoF4IweyRRj8SpOR8aXe3x7J04/hv4lBt5p82 XTELqF0zHtEzL1P+RTI+JLvbhotPH+GPx/a0LHzde7+jf3Ff2iszDx6nGpFfE08OsB8npn5dadfa foDQXsLQTGd3COKHiVWh/DMrCCBu812tmjky3E2KZRlzrHYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXAggEdDirsVYx518o3PmFrL0Z0gW29XmXBJPqcKUA/wBTKsuMyp2fZ2vj p+KxfFX2WkUP5QpsZtTJ8VSGn4lz+rK/y/m50u3u6H2/sR0P5T6Ev99dXMh/ySij/iLH8cI04aJd uZegj9v60bD+WvlOP7dvJN/ryuP+IFckMEWmXbGoPUD4I+HyV5Vi+zpsR/16v/xInJeFHuaJdo5z /GVT0PKln/uuwtqe0Mf9MfQO5jxZ59Zn5rZPNnla3Xj+krYKOgjcOPH9iuPiRHVI0OeX8Evx70FN +YvlKLpeGUjskUn6yoGA5ot0eydQf4a+ITXQ9csdas2u7Pn6KuY/jHE1UA9KnxycJiQsOLqdNLDL hlzTDJOO7FXYqktt5y8tXV6LK3vRJcFuAURyUrWn2ivHr3rkBkiTTmz7OzxjxGO3vH611/5u8u2F 8bG6u+F2vENEI5HILAEborDocTkiDSMWgzZI8cY+n3hNo5EkjWRDyRwGVh3BFQcm4hBBorsUOxV2 KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KrYv7pP9UfqxVdirFvPHm288vCy+rQxzG69TkZOW3p8OnE jrzynLkMap2nZugjqOLiJHDX22wub80vM8n2Bbw/6kZP/E2bKDnk7mPYuAfzj8UDN+YHm6WoN+UH gkca/iFrgOWXe3x7K04/h+0ob9Oebb3Zby9lDfsxvJQ7+C7ZHjkerZ+W08P4Yj5O/QXmy83ayvZQ f2pEkofpfHgkei/mdPD+KI+SJh/L/wA3S0IsCg8XkjX8C1ckMUu5rl2rpx/F9hR0P5W+ZpPtm3h/ 15Cf+IK2EYJNEu2sA5cR+CPh/KPUD/fahCnjwRn/AF8MkNOe9ol29DpEs38reXhoOmGxE/1isjSm Tjw+0AKUq38vjmRjhwinS63V+PPiqtk3ybhuxVJ9e1+xstPvgJwt3FDIY4zUNz4Er28chOQALmaX SznOO3pJDyjy3E6epdAEUYLG/uvxH7qjMTG9ZqyD6W/Wk1PzNd3pU8TJJMR14ry4r93IDEbytAiM WGMfIB6ToXmbSIdPtLO5u0S8pwWHcufiIQAAHqKZkxyACi83qtFkM5SjH097JctdY7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq1GCEUHqABireKpfq3l/SNXMJ1G3Fwbfl6VWdQOdOWyla/ZHXIygJ c3IwarJivgNWh4/Kfla3Xl+jbYKOpkRXHh+3XI+HEdGw67PL+OS/6x5Vsj/e2NsR/lQx9/ow3Edz Hgzz6TPzUZvO3lWL7WpRH/U5P/xEHB4se9nHs7Of4CgZvzL8px14TyTU/kicV/4MLkTni3x7H1B6 AfFAzfmzoa/3NrcyH/KCIP8AiTfqyJ1Ab49hZepj9v6kDN+by7iHSyfBnmp+AT+OA6jybo9g98/s /agZfza1k/3NnbJ/r+o/6mXI/mC3x7Cx9ZS+xmfkjXL3WtGa8vOAlEzRj0xxHFVUjYk+OXYpmQsu n7S00cOThjypP6fETU7gCnbbLXXt4qw7z55e1XUQr6bB60joI5ByRKUatfjK9QaZTlgTydz2Xq8e PaZr5oKx8napa+U44BADqfrvM8HJOjDgF5V49EU9cjHGRHzbsnaGOWoJv0VV7qPlPyTq1raao2oQ CG4niWO2XmjVIbmalSwHxKuDHiIu2eu7SxylDgNgHfn7v1teW/KGvQ+bY9RvrURWkPNlYvG1TwKL QIzHqa4wxnisrrO0MUtOYQNyPke96LmS867FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqwX 8zxrDfo2PThcNy9f1Ut+Zr/d8eQT6aVzHz3tTvOxvDHGZ8PTnXmwdfK3my6YFtPumJ7yqy9f9emY /hy7ndnW6eP8Ufh+xFw/lz5ukoTZiMHu8sf6gxOS8GXc1S7W04/iv4FHQ/lT5ifeSa2iHgXcn8Ep +OSGCTRLtzCOQkfx70dD+UVyf77UkT/UiL/rZMkNOe9ol29HpD7UdD+Uemj++v5n8eCqn6+eSGnH e0S7dn0iEfD+V3liP7f1ib/XkA/4gq5LwItEu2s57h8EdD5B8pRUpp6sR3d5Gr97EYfBj3NMu1NQ f4vuTix0+xsIPQs4Et4a8uCCgqdq/hlgiBycPJllM3I2URha3Yq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FX/2Q== - - - - - - uuid:e26a190d-604e-0a43-ad3a-5e51b65c7869 - xmp.did:0480117407206811822AD2084CAF8F40 - uuid:5D20892493BFDB11914A8590D31508C8 - proof:pdf - - xmp.iid:0380117407206811822AD2084CAF8F40 - xmp.did:0380117407206811822AD2084CAF8F40 - uuid:5D20892493BFDB11914A8590D31508C8 - proof:pdf - - - - - saved - xmp.iid:0180117407206811822AD2084CAF8F40 - 2014-10-29T18:19:07-04:00 - Adobe Illustrator CS6 (Macintosh) - / - - - saved - xmp.iid:0480117407206811822AD2084CAF8F40 - 2014-10-29T18:50:03-04:00 - Adobe Illustrator CS6 (Macintosh) - / - - - - - - Document - Print - - - False - False - 1 - - 612.000000 - 792.000000 - Points - - - - Cyan - Magenta - Yellow - Black - - - - - - Default Swatch Group - 0 - - - - White - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 0.000000 - - - Black - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 100.000000 - - - CMYK Red - CMYK - PROCESS - 0.000000 - 100.000000 - 100.000000 - 0.000000 - - - CMYK Yellow - CMYK - PROCESS - 0.000000 - 0.000000 - 100.000000 - 0.000000 - - - CMYK Green - CMYK - PROCESS - 100.000000 - 0.000000 - 100.000000 - 0.000000 - - - CMYK Cyan - CMYK - PROCESS - 100.000000 - 0.000000 - 0.000000 - 0.000000 - - - CMYK Blue - CMYK - PROCESS - 100.000000 - 100.000000 - 0.000000 - 0.000000 - - - CMYK Magenta - CMYK - PROCESS - 0.000000 - 100.000000 - 0.000000 - 0.000000 - - - C=15 M=100 Y=90 K=10 - CMYK - PROCESS - 14.999998 - 100.000000 - 90.000000 - 10.000002 - - - C=0 M=90 Y=85 K=0 - CMYK - PROCESS - 0.000000 - 90.000000 - 85.000000 - 0.000000 - - - C=0 M=80 Y=95 K=0 - CMYK - PROCESS - 0.000000 - 80.000000 - 95.000000 - 0.000000 - - - C=0 M=50 Y=100 K=0 - CMYK - PROCESS - 0.000000 - 50.000000 - 100.000000 - 0.000000 - - - C=0 M=35 Y=85 K=0 - CMYK - PROCESS - 0.000000 - 35.000004 - 85.000000 - 0.000000 - - - C=5 M=0 Y=90 K=0 - CMYK - PROCESS - 5.000001 - 0.000000 - 90.000000 - 0.000000 - - - C=20 M=0 Y=100 K=0 - CMYK - PROCESS - 19.999998 - 0.000000 - 100.000000 - 0.000000 - - - C=50 M=0 Y=100 K=0 - CMYK - PROCESS - 50.000000 - 0.000000 - 100.000000 - 0.000000 - - - C=75 M=0 Y=100 K=0 - CMYK - PROCESS - 75.000000 - 0.000000 - 100.000000 - 0.000000 - - - C=85 M=10 Y=100 K=10 - CMYK - PROCESS - 85.000000 - 10.000002 - 100.000000 - 10.000002 - - - C=90 M=30 Y=95 K=30 - CMYK - PROCESS - 90.000000 - 30.000002 - 95.000000 - 30.000002 - - - C=75 M=0 Y=75 K=0 - CMYK - PROCESS - 75.000000 - 0.000000 - 75.000000 - 0.000000 - - - C=80 M=10 Y=45 K=0 - CMYK - PROCESS - 80.000000 - 10.000002 - 45.000000 - 0.000000 - - - C=70 M=15 Y=0 K=0 - CMYK - PROCESS - 70.000000 - 14.999998 - 0.000000 - 0.000000 - - - C=85 M=50 Y=0 K=0 - CMYK - PROCESS - 85.000000 - 50.000000 - 0.000000 - 0.000000 - - - C=100 M=95 Y=5 K=0 - CMYK - PROCESS - 100.000000 - 95.000000 - 5.000001 - 0.000000 - - - C=100 M=100 Y=25 K=25 - CMYK - PROCESS - 100.000000 - 100.000000 - 25.000000 - 25.000000 - - - C=75 M=100 Y=0 K=0 - CMYK - PROCESS - 75.000000 - 100.000000 - 0.000000 - 0.000000 - - - C=50 M=100 Y=0 K=0 - CMYK - PROCESS - 50.000000 - 100.000000 - 0.000000 - 0.000000 - - - C=35 M=100 Y=35 K=10 - CMYK - PROCESS - 35.000004 - 100.000000 - 35.000004 - 10.000002 - - - C=10 M=100 Y=50 K=0 - CMYK - PROCESS - 10.000002 - 100.000000 - 50.000000 - 0.000000 - - - C=0 M=95 Y=20 K=0 - CMYK - PROCESS - 0.000000 - 95.000000 - 19.999998 - 0.000000 - - - C=25 M=25 Y=40 K=0 - CMYK - PROCESS - 25.000000 - 25.000000 - 39.999996 - 0.000000 - - - C=40 M=45 Y=50 K=5 - CMYK - PROCESS - 39.999996 - 45.000000 - 50.000000 - 5.000001 - - - C=50 M=50 Y=60 K=25 - CMYK - PROCESS - 50.000000 - 50.000000 - 60.000004 - 25.000000 - - - C=55 M=60 Y=65 K=40 - CMYK - PROCESS - 55.000000 - 60.000004 - 65.000000 - 39.999996 - - - C=25 M=40 Y=65 K=0 - CMYK - PROCESS - 25.000000 - 39.999996 - 65.000000 - 0.000000 - - - C=30 M=50 Y=75 K=10 - CMYK - PROCESS - 30.000002 - 50.000000 - 75.000000 - 10.000002 - - - C=35 M=60 Y=80 K=25 - CMYK - PROCESS - 35.000004 - 60.000004 - 80.000000 - 25.000000 - - - C=40 M=65 Y=90 K=35 - CMYK - PROCESS - 39.999996 - 65.000000 - 90.000000 - 35.000004 - - - C=40 M=70 Y=100 K=50 - CMYK - PROCESS - 39.999996 - 70.000000 - 100.000000 - 50.000000 - - - C=50 M=70 Y=80 K=70 - CMYK - PROCESS - 50.000000 - 70.000000 - 80.000000 - 70.000000 - - - - - - Grays - 1 - - - - C=0 M=0 Y=0 K=100 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 100.000000 - - - C=0 M=0 Y=0 K=90 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 89.999405 - - - C=0 M=0 Y=0 K=80 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 79.998795 - - - C=0 M=0 Y=0 K=70 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 69.999702 - - - C=0 M=0 Y=0 K=60 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 59.999104 - - - C=0 M=0 Y=0 K=50 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 50.000000 - - - C=0 M=0 Y=0 K=40 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 39.999401 - - - C=0 M=0 Y=0 K=30 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 29.998802 - - - C=0 M=0 Y=0 K=20 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 19.999701 - - - C=0 M=0 Y=0 K=10 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 9.999103 - - - C=0 M=0 Y=0 K=5 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 4.998803 - - - - - - Brights - 1 - - - - C=0 M=100 Y=100 K=0 - CMYK - PROCESS - 0.000000 - 100.000000 - 100.000000 - 0.000000 - - - C=0 M=75 Y=100 K=0 - CMYK - PROCESS - 0.000000 - 75.000000 - 100.000000 - 0.000000 - - - C=0 M=10 Y=95 K=0 - CMYK - PROCESS - 0.000000 - 10.000002 - 95.000000 - 0.000000 - - - C=85 M=10 Y=100 K=0 - CMYK - PROCESS - 85.000000 - 10.000002 - 100.000000 - 0.000000 - - - C=100 M=90 Y=0 K=0 - CMYK - PROCESS - 100.000000 - 90.000000 - 0.000000 - 0.000000 - - - C=60 M=90 Y=0 K=0 - CMYK - PROCESS - 60.000004 - 90.000000 - 0.003099 - 0.003099 - - - - - - - - - Adobe PDF library 10.01 - - - - - - - - - - - - - - - - - - - - - - - - - endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/ExtGState<>/Properties<>/XObject<>>>/Thumb 269 0 R/TrimBox[0.0 0.0 612.0 792.0]/Type/Page>> endobj 262 0 obj <>stream -H,0DB[Z E0'n[/13D©P&NihZayS*P&x^>stream -8;Z\t3tB1O$q(W5GGaCE:moHHf3*S]8e\uQBT(\l;1rI(CD\Dd*<<<48N#25hhi$] -J+n;dZar?H!F>@rG!MD)[GU/>peJQ1T)BT8Bc?088;koPF:Il2k0*%X9O5hW?01o- -T6*YqQunsWj1:g?[4Xsk?%G?Q"Z>@hs/\:cKmZ'RF\pQqA]Q:L3BLdUI'qIQgL -1kSlD??\s\dbAnMi`][6\8f7HNUu6AFa'sW]#EVTq9iNi_R=*[/UAG. -X!d'njtcu;zzpgN"]!/1?)=T~> endstream endobj 270 0 obj [/Indexed/DeviceRGB 255 271 0 R] endobj 271 0 obj <>stream -8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 267 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 cs 0.034 0.696 0.42 0 scn -/GS0 gs -q 1 0 0 1 174.5 -111.75 cm -0 0 m --349 35 l --349 0 l -0 -35 l -h -f -Q -q 1 0 0 1 174.5 -37.25 cm -0 0 m --349 35 l --349 0 l -0 -35 l -h -f -Q -q 1 0 0 1 174.5 37.25 cm -0 0 m --349 35 l --349 0 l -0 -35 l -h -f -Q - endstream endobj 268 0 obj <>/XObject<>>>/Subtype/Form>>stream -q -/GS0 gs -0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /Fm0 Do -Q - endstream endobj 272 0 obj <> endobj 273 0 obj <>/XObject<>>>/Subtype/Form>>stream -q --384.667 535.662 m --384.667 579.663 l --384.667 623.664 l -1041.334 623.664 l -1041.334 579.663 l -1041.334 535.662 l -h -W n -q -/GS0 gs -0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /Fm0 Do -Q -Q - endstream endobj 274 0 obj <> endobj 275 0 obj <>/XObject<>>>/Subtype/Form>>stream -q -/GS0 gs -0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /Fm0 Do -Q - endstream endobj 276 0 obj <> endobj 277 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 cs 0.029 0.703 0.416 0 scn -/GS0 gs -q 1 0 0 1 348.2002 576.5 cm -0 0 m -25.47 0 l -16.55 -3 13.77 -8.87 12.18 -25.73 c -11.05 -37.75 5.54 -40.84 y -1.41 -40.84 -2.65 -23.42 -6.16 -5.02 c --4.641 -2.1 -2.71 -0.45 0 0 c -f -Q -q 1 0 0 1 353.7402 535.6602 cm -0 0 m --25.471 0 l --20.94 0 -17.811 8.65 -15.99 19.59 c --14.76 26.96 -13.53 32.32 -11.7 35.82 c --8.19 17.42 -4.13 0 0 0 c -f -Q -0 0.449 0.169 0 scn -q 1 0 0 1 342.04 571.48 cm -0 0 m --1.83 -3.5 -3.06 -8.86 -4.29 -16.23 c --6.11 -27.17 -9.24 -35.82 -13.771 -35.82 c --18.69 -34.73 -22.46 -16.27 -27.66 11.79 c --27.82 12.66 -27.98 13.53 -28.15 14.4 c --24.29 34.73 -20.2 52.18 -16.08 52.18 c --14.74 52.18 l --9.83 51.1 -6.06 32.63 -0.86 4.58 c --0.58 3.05 -0.29 1.52 0 0 c -f -Q -0.029 0.703 0.416 0 scn -q 1 0 0 1 301.8198 623.6602 cm -0 0 m -24.14 0 l -20.02 0 15.93 -17.45 12.07 -37.78 c -8.48 -18.68 4.28 0 0 0 c -f -Q -q 1 0 0 1 313.8896 585.8799 cm -0 0 m --0.38 -2.05 -0.77 -4.13 -1.149 -6.22 c --6.939 -37.83 -10.399 -49.34 -14.37 -50.22 c --18.85 -50.22 -23.24 -29.8 -26.939 -9.82 c --27 -9.5 -27.06 -9.18 -27.12 -8.86 c --26.95 -7.98 -26.79 -7.1 -26.63 -6.21 c --20.84 25.39 -17.38 36.91 -13.41 37.78 c --12.07 37.78 l --7.79 37.78 -3.59 19.1 0 0 c -f -Q -q 1 0 0 1 299.52 535.6602 cm -0 0 m --25.48 0 l --21.12 0 -16.79 19.54 -12.75 41.36 c --12.69 41.04 -12.63 40.72 -12.57 40.4 c --8.87 20.42 -4.48 0 0 0 c -f -Q -0 0.449 0.169 0 scn -q 1 0 0 1 286.77 577.02 cm -0 0 m --4.04 -21.82 -8.37 -41.36 -12.73 -41.36 c --17.64 -40.27 -21.42 -21.81 -26.61 6.25 c --26.77 7.13 -26.94 8 -27.1 8.88 c --23.24 29.2 -19.15 46.64 -15.04 46.64 c --13.7 46.64 l --8.85 45.57 -5.1 27.51 0 0 c -f -Q -0.029 0.703 0.416 0 scn -q 1 0 0 1 247.6001 623.6602 cm -0 0 m -24.13 0 l -20.02 0 15.93 -17.44 12.07 -37.76 c -8.47 -18.67 4.27 0 0 0 c -f -Q -q 1 0 0 1 259.6699 585.8999 cm -0 0 m --0.39 -2.05 -0.78 -4.14 -1.16 -6.24 c --6.95 -37.85 -10.41 -49.36 -14.38 -50.24 c --18.86 -50.24 -17.12 -49.4 -19.94 -36.84 c --22.79 -24.15 -24.98 -16.61 -27.85 -12.74 c --27.44 -10.6 -27.03 -8.42 -26.63 -6.23 c --20.84 25.37 -17.38 36.89 -13.41 37.76 c --12.07 37.76 l --7.8 37.76 -3.6 19.09 0 0 c -f -Q -q 1 0 0 1 245.29 535.6602 cm -0 0 m --25.48 0 l --21.38 0 -17.3 17.29 -13.47 37.5 c --10.6 33.63 -8.41 26.09 -5.56 13.4 c --2.74 0.84 -4.48 0 0 0 c -f -Q -0 0.449 0.169 0 scn -q 1 0 0 1 231.8198 573.1602 cm -0 0 m --3.83 -20.21 -7.91 -37.5 -12.01 -37.5 c --12.49 -36.91 -15.32 -37.5 -17.92 -21.88 c --20.31 -7.48 -24.49 1.51 -31.32 3.34 c --5.84 3.34 l --3.5 3.24 -1.64 2.22 0 0 c -f -Q - endstream endobj 278 0 obj <> endobj 265 0 obj <> endobj 264 0 obj [/ICCBased 279 0 R] endobj 279 0 obj <>stream -HuTKtKKJI,t(݋4K%ҹH4J#Ғ(H -wqyy~3̙g<3Y9El -@ ]!O-@\+BVKK :OX~WCaiHKL0qY `5ck -X]x= 8 XĿ׽>.f#aPn D^{y8  dp H st:Y׬cxc IV?S!:_9[YbQP~+rA -ShHht^ '0߅™kYXY9Yqqpl'WzEE$%D>,^|t*K)%/`\ҫ:&D [7dplDa5|mb4,yy{e5 3⚅,t+whlA   m k -xYUH&%Ȥ -qO'Mz3KT@v[NUnn^\o]abTrtlmE]e~U+jאZ:zaqi5};CS[\_ۆwCaQ1;>L$Lz}4:%8M7l̎Χ/}XT^]X>\Ym[n!ycskkƶʷ;v{pIs0Xݯ3s󝋒&$WWW*)!$$%!e$cHNOAKIMEq ƕ;KLw@YX;ؚ8^+DspfKOTCPpJ%D=++O%$*8IZ\Z^UK_wL"dx]}>9=;s_G8/̹N!Gz[<=2|B}PQzlH0Wc(Een|Pds::5&89yFT"od䳔i/ZK^&gd:fgQl kJХeJ*+篍kj5U[ZUh0|em6]B@`PpH?QM1Msψ*iϛ.Z [JYZ)X-]R޸Ѻپw?@?5 ǖ'vNg -W3gLC#u!MMMEvAms˔FVNA̝GLwA̬,llؿsݛnͽ+!B²" 'R&k?3?4+:6oT\ұڿ6VʝoF?LT;:>::>:;eqvx^sawݥʕ'_EFO\DKLtAnFF)F|ԭ6\`@z?m+F;LwiAhy͖)Mgw~_ @ZH_XA,"F)%/*9aZ:Q,\B^_AU񡒀2 -*'[j o5[uR1uh`fm$1xJgBdrltlyyEe$feg-g#`dGbwj0TOC9; ܨݿxz6zx8IP=A!.aAxۑϊ}bG-ޒēx`G/Ԝq_O?0"۬խЮ˯ǰı²µŶȷ͸ӹۺ 0@RfzƏǦȾ *GcЀџҿ'LsٛFsM6+1MZ:{T?~ò~i~L}~cbA~Dad~ty~W~O>~\/~|~`Cx}%H}1X}%z}K} {N}׋<_~7A~-ψ||Dz|+E|[s|z} ^}wO@}-~ċ {Gu{Dz{]Ĭ{f{Zx|[]|ϕM?}R<}Ǝz]YzHħz|z={LNw{\|=>|v|ېI8z/r z;bz'sMzd6zɬqv{D[{0> |;|yyaIy?yazYvzݮ[{^=c{ФI{R*y߄yfUy`VyyuKzZi{ <{z%zȎ~+~}͇}W0}3}HtЄ}Zk}=~zɇ}!~Єd*s}Y<9wpSwuuVrUW؈|;,뇔{RsѲ;:8q)PCV:4.8Ȅ2񡂡?Up Vu9S c bփR.ՁNn U388A/ͬδz6߆өn1T\e7݀tXT)$̯̕6;eCʷˆ imw3SƀV7M -\lGNػځNāa5tNzlߴS<H6*-N}o2ن N%է>w֣A}⇤\fXMݘ2, KԐ3g°[} -0e6M _1 ? 1ӣǾI^I|B̯dܪwLe1$: rW] 1S{z|diL g0\ U{[G{!{ ޔ`{&yE{xbie{Jr|/c5}~ -~:f#MKx+Ca|uI~.yW ώәߎ%¡唘[w!^T`^H*- 5GȨ瘎=Π4rv_ҍRGf,ދ̋|,ƕ{ Ҙtٕ^1Fő,;',#h%T,Qۥ{[s:9󅼓&^!Փa@!" y -.Jl6mHju,bU6+s hܸd-ʥ}wi-sun=0Ľi-_*)U_ˈb$na+;ϧT;ppA7C4.*Iߥa8Mm.ACi7\j|fiԫ)]ޭjʄU]3(í whJch-4x7h׿*P0H됎L랇ڡuÂ,{Bz}8vggҲd[!XTZZ.vlAg -{;Sm`vؿ`~?ga. -3Ì{L^WYe4]L7ok!wI~Ira^=C#Zh`Wu}p)"z7ff&3$FJ8Ҷ5m -uR_,^VS&aR~PfLL_Dw*`\-9]q  TI6)>u6 D`e͢/xqY%9ʜ;åOd\˾P&eRz;].R<oΡ]P{?: r̨\ʻb Ҥ3|m s؟W9oZt]RnÅ\cW#+nI&gyAjsN06HiD'@J+a5V~cRI̫vwtUc[3+?F|l(iU^+O?Rs1Hqil$Wþh=(RE -1BvџnF/ BsGMY9>ܖ3ȗqI ڣ5V_1ȣβiJiX0WVH[8g_/ -n3 ` 38A.|f|ј0I6bv%& ;Y㿜҄#dD.).p'3J12K[Duɥ$s8IƊ.z^48e!R6}vcMiozo0'=~i,3:?-?oS,9w#ROa; ?pB -֞IO ݟe#}ԯN$\l?], y,>&Рq]yh0AqK)ĝBFҍcH:-h-ǟcf)K9T127]qEjL<>h;|U -dpG -ƫ`&!8al`83>.qɂnA9 -; `HByg KB*k㰗2fF=#OM eT? -mTm_OBۊV<ɆF('n3uG~Ȯ#7Њ9[١`Ns.P..콤 'KnpF\? B>-`NWOOWBlfxW^b-_x&*/(j_=߆󑊢zF`LdE:SNʔ@S 03|TOKokto}bFz$4-,.m'j*J|)J6BP ^3ewܫpX.*,07xPڳ:2XOT21|"7=0ߴy}ĸB)H[Fs V+̯+Y(I(x&9JAI'tXmyG=X[8TK)2<TSRvxlȓGO|g/{>4/gRFȶ&A52 uЯ*B幃AuFǞѧuD)B,*?n` 'qQIzK֗4{B_g68#ʉ2.A$69!̒ub1&D3Qx" >ɏnνxVG&TۨÓ)sxd-5KxߣD&1±jdGjJ|J{Z ޲f6/vTp̄ub PmBU#gBg˷)-*E -ar>>Ƶrn[ɭF-IByѸP=ĶKUC wG D}"vN.p]]Q8uY{#qCv}sax_oyiNr( d8aw2CQ}V8UWO\g \yk@dcZt9$u -p-1z(=f) -vě92 w u煼ת#{P6+Dq3HIi%BCb!kc5&U ):X$܎[b2*@PkcӘdoTB_L1Uwi")=2#pI9,RO>T@>;bnDPuCfk^^\G~ oLRcHqܮ=-8^5Ońy*9:-\g8:T<?*C;[yX+I;lRL߭$DvYTQ6DyVmfy%/sIsmXP1Lռȭvow)QBb_LVwupeėO*|+](uHװ4WU.{ 4\m.QwR~MAiRz+%BKz?'{ k҉aa{H]sX}da~3_auQz VM\ĵv5I0LM)DŽp1:5,&4 %!$}ocޤA]R^xT◬M&/B:DwA24?cd&g]5b4a?iǐ Ĉ.OA 6vfvsd(5yTH/P=(a;zUs bWxDa)Eʼ $sgPJreY3w`cFo0|U[j5k.5J&eTor È´}I lpjC8c5J=g%Uo|L58E" -ِ[Ak]J͆VBM"{NrQihЦ@Y?6^߫ZWٯ]ذc؋hKSLj:>O ɲ.ݰQ{5mm<ٷ?^v"}ъw9O&vX7km[ ,70nΒ7|eP\I;-wgFN cIP#qWI ;NٶA)H~7i thl~~dzY Cx2>*c&mb{9f1X*L #> - V@g蒼]7n249=MK% ;,F\j 1klZi؊ΐ.|Q9а$_.!;̿lE,ɥDi}D3^a`Y5g{J=mɳy3CM'jM-iЦm n5? SJE+U~ ;q.tXd~~p*QeS%.Ћ"ưBsZ6-6[\d;^z4`;64藸ͱw;|+&AfLU3XTm)lF'l VɺgcGObbɜ9;v \CL, >B?KGCe"z -@EHILp<5'҉$>8#gL2m c1 c Fw)P+rkC qp/u8#!*g°Pa`vu@oH`"Ž:z_Q<,D>'ӅWP .`xW3|!6 -5 El[",0 e[Oz0~lUO+&xkPc|u$k.?{Qp""kr6isVa=~@W_ -.<7 -2#h?c~m'rE_xs6aG+K 14L^kUp^^_mS^dШ'>}5$:τ!E[bJx&n t(m;ZsF5uqX.ՂBqKP *l%{ٓ{'f';,TT,bhUq2Z3;}T9vwRR;GD - K*/@hUv$j!@ vyבm,W|-͢ ^ ~D_􆭍"ĉ#c禘*X/Ϝe>|XH;:)d9gƖ4aBQ4Ew,C -ۯBU#>SV$L-5gV ϯ*B#} npþtdU$Db&$^\^&Z"/˺+-}%Z:}9AYu rTlP0"~! ͚*@5K?߫Z-P=j>܈[O?)a5 -?WUsy5^(ge${Cm> "Gգ+$踿ϫ& Xw8?g,'ō="/xNM)'EFqrf CįQ9ZY$r!6m)4 V9kJ$# FьX٥Cp[ģ)CS;rFP#ImKGɺzj>>X9,ZL-jIbkȉ8˚?vtxPIO}_ay@:|Ve6ubd/e3<֭ztea'cLaM -lz&,f^_!?l2x2Xyń3D)\?ye ~4O+9$  -EVDTSؓ7X?MM!ԼuOtP Cbt;iްa@gW#@4c9.Do z2>M5i~u0 qswQ9ǸLt삟Mz)>kɝI;io"U)]$YL >$$T:gUo$UK,C`sCMAJMÄKC(g]ٮ9sUG0?L5QM%0Ol5&`Ƒ1,x'{k+mY}-Js#\d:i/NK\8HstQ#-ND).s*Zymnf\1l{(E=VGW9s:?wǟQZsC6A1ƃ6K@8OUY^`7j6@9?,yt4&}"T- -\Y&kVx녣391ٵqQ=beMq\`/nņ|2͌JkzDmͫIR4\~5NlօKɁZ]TC3l̅D3jSS)tWw$IX[wV -WTUw^PeUhWE^ؓ~Wchs sIg`wgs (5mr] B`7JfAaA3ƓG?{O[ ?xj/Z*7exXz Ά})C?`KcMՌ&)Y5J]q':]$؞]Yv x(ıH1eU>_0b?*񸨎b¤،D;Wxm]|N7U13*;.=>SÜj)CM>.eI1/QvН6Tkk+Ɯn\\FFV#Xde&~WE7"bju^I@j@bQ Wk8w_D ^z xZKA _`T}] -x}ЁM0S,rV+ KO&ƈ`;E{irf0F] w86f fm_8c3V<)r1p +hs|p!QP'Ղʛ2rӤej4Y r, r?4! Uq]f(*&umM+;1 --c8CjL=L1TDJ7>)BH*cHY}~xI,{7WjWާʇhg_YovMKiN> QRǧ}AQj^G syJG"?txt,L>֍p_>Po$^<%}KDS4 -*S<ܖyd;éIJ~JMn>ȸcI6uɖژ䩊i77_5W2' 9t^}/8%wd0k)ͦF9kih3ShPBULzs'0$Y/L3ol|f ɪ\AW#siS-O^I+36xas @M -A hm45V-' ѵ1S+ ~*%~k˝ʉl * -lك=3_2~OgPs -Ccd[aے{<ХjA {! ߲ۓ;O'9+wEHE&JV?fiӺ j05瀶bhWZxo=ƺ 0zhK5mov (YOut;e=R*yMVn,$v:QڳE.yVl;svn,Wi.[@34SD_!MF>J柣ND @$Y~-CMu (+lBpБ^#$~2è /@̣6 3nh -;۪.3Fq3\َvZnZ"/vNFNJ2V{#ΚVse_쑮Ta8C¢!Η>FL\M{5eH~7;F AB?VY=۩Q i9J.sӿc%FVbdեiL`a)kD=W \ne>NX7Ƒ†2IYf-to7/~Uas[`W*v3_`~:kjR("E -* -e)DDIss,f_n6":hmh+]AqñQqSa9{~8|~bh6GZĠםN\h+(E30~kTMGβ1:zka'LG2>,gt X&@?e% -=@Ihs)HUOeX^m7R7~,, \jJԌfͬ8!*]JR:WR]Mɚ PZ;JN.8ɦ,[r*Α]MM"waX)Lbjd`>:?|:?u>^G$fa. -ʥ_S%ED8 J=ĕK{6r zGG Ui<Kg"^ q -I6vPWy^,uc/5@:ǹ+[N+li{P#^yv,ñ-NѳH⺣<֡gxV</nb6󴳜Ρ +nhB˾PoT(W##ĉTwZU} w-vT-9O᭺HIz) z9R'dI5aZGS˟agW=.P1ٜ y?2X)r4VaGXBe`9Q1͚@85$W?D}z2* -pt +;Br\ܕ'> -vCNeʔL-ʌqKHr 7I d<BgNelB^փRγF2AqCR&t7߄{" D9u)Cw1t}?"'[7o̩~1{>Ru* ʖdClutqf2[l~{S4>J$.nQnlP#x])By`r+wLH?VD:|iUG~ժ+&+Rb gP>}WԹkQǖ]WSkqwZ -DQdVd24KGMvU35KJ~4&jwJ*y;X߉˔O@5hw)񘴕o-9E:_̂o&6#V(ѽS-te$ פp}4%4mrnzhe4KX*KÃ29ʩ~'Ǥl|O5ÍB -;^j㛑Q`exH;J\*`l˴Khk -&tF|(8VǡܷR:ϳoG*UjSKknRgl ޅ-6&Nŗ7O4rGmO[du_TvY{ ̏Iy\aRKy&P7ݪJ)l"W5{K S_j0WSW;wixF1^lО伴^'1b%OAXhq)L7j}=9PX=n`ɗKX#CùA *7{ jWܴTByufכd=Af]F=_u*`q+_i݋\^`BaE|S&%Z a8+QgQ[IK-jIKr2Tcju=A ʧQ"7{ٮם*X|,Yzѽ}ƈf:jCo[>]x^hlhNrϳEDkcCǪ ת9c Ht<)}z!hE~DBӳ2S͆i{;ouIp??砃46ٺ^"1R<-65sjpCSjqi6dzھİ紈 41.$5EG9:=ob쾄 v#[xﯦAF+T(C@RQF772I$^a$Eq>.AEbiO0]ТK5ΫPÛG ZdJ*$d ^}E*֤>?Ƅ$dO _tl%$^7[KSECqz"$]*B]}W zT[Rk"n]EUYvFUW\B6-RB^Me2B4/wͺh4Ek5˖<1U[tD>Q!.kR涧7uJc>c -l/i^3;iڐ0sĀZnS -qW7Np:([568ViAFޜ~h9Pldüj2dO -+61--1Ewv =JCHW34܏&x8,&#Rc3Dvz6RSyu_N/nmكvT֥Y˼?RFװKzn9Q4gC^5l`P\ܲG&ޫ` 9PҞٲXr6 -V4,{a؄\tcY`]lǿԾar鴯؏=b!&Yb ^[\aYt$w -[R)i[{$7f"o Xp -zBz'hO|Ō4ǐ|-j -:}̴a%Tv5Y9QK d0 ?$ćH|#uD3 phrd@,@XmVKY@ou([8#!OM~.7SoJn%OG" -Ü3N|/'O-R_1Vh&׺ NPz8de 勊ZTH;XQ6}+'h_|ȋCcuHjBA,NOS{3 L`]1> A rxӴ*E^.ؐ`Q5 v{`=W6뼟\9avGOXc& v1w~0W:ʎ~f: 0/˵%m KRKAcR% P#CSߥfmD5oEx17B0<&Yd8"1wܡ5 TaaJ3p57A>+yIMcu Zd?Bk1x-rsV9sH6p]DGgO| y5S$aE`$Ls -[Ym ~u8p`6*I ߕ`S88sn9O3nXOE /7f^lbN[PBFO.9Z_.5>F S̉R'}ΪѬ`_dX|{dHXԾ3QlZe7PRqشO5OkZrx5u`aǂ:*`T), -DPQʮdߓJRk=H+ -*#u)h) )B6s9߹瞏HZGzGT"93hDͺ sr|b4y $TK "$I~$v(B#].qi?CN ~ޱ|ܷLcOnT~vxj̦5<.f\K<2p:CpSy,66>|zC -E -T)f/:X1}J+>_~Q;^ㆪvs&۸>.k7yZS:˩㜍rݖۜaKa!l.g57Kv0!;ڗfe %]"XT J3aժlwVj=v姠αe=bI/gH& :g,(y 27>aba88fVVqɌT0NɉB`( _"fo! t}Wg_0}HX 9,Qx=~Jٹx>ӱe9M2mFS)Vk-eZFF٥btg0O?Dǐ%7eyښ6WSCyeUS}l`a8i g"1лJ"|PKڝc,$+&PvꖴGBoj_t4I vqf熚(eC!b׼^SbYi1¨;2W`/7uh?4 -!z@#(T 6 ^!R S#>E/Sq9z_ /G%ӈ0C9[ۼ@(٩P ,}XTOkpQȫUG6 x2e,> -?ϭQެYz/T5FL^`tީ3\#̬D:,vw[mDW)TBZ`0Ֆ`3tBQ˟kks41y `\޸cV#z`XHhwA0چFTyqӵܫ*F˪%*/>9 -gS'"b'zL=N)cs*bR)W<#S 癛)K -&L\9WtW!Y17i*%wJ_ 閥nWJ!p-0T`:K6B+SzlL,~J#ZLHBEe߈Eq1 -ڸTD}bB;*OTCnՍl$OYQ0mz7o9NŻ|hDV[Ve֩b7YZÖHl~I)ܻJ5oOݑ%(,hZGҼmRd!/NEWutV57z;jjs^^lDǾ0-a_aL؁w44簍b^ppi&nX uƻ-݂ -cY4_g ?jGIfH %J҂[%ϩC6OzvWzoZtA$?z;ؼFT2/+0@@S<@>0bSuqw;j4S'/4sEթ(P[V^5ƊHkg/ۄw 0*֭ ajyB5TC J(_F4!m, RN ?S9 :״OfOV"յڇ1,V)S@._ -#Q`K|ͨ%cj/&\: [Ft^Z"q٤Jm뙊jMarח`VCg -w"~>< 8i}XT8dzQVY<p%HG/Û`rq;Nm~Ms\/Zh:(MXа^F.꜋.Ys}5`a((X0T+JS 4&~|iB!! !)$)ʰ WFY]E븎3x,˽}|dc -|i-0Ws -Q_GpRjy0׿tjT̎ԍD1څڍ›N:ka? 7ek_%]a;זF=9-b= &Mm0-vD'^j+/5(er^+EL F1$1KWE|fOFMKm::1`ڥfXЩM*i9 -l?+Lw?-Nx͈wɳ\C0瑃f sM;iđ`$O0z*RٹB9@"k5v~.lB?ug]ed8JAj͹um.DO^^v:y;ske+,L¶vŝҼخd_5Z;q#k> MU\J{l*͟ґ3Doy"UDcu#H)BPit/ v`_Sʝ{e5mpPpy=-2[m+v6*.WۿSǔ] -^DMk,2.#ɲ\!{^I4Ԉ.~çlDcBU\b"c jvJG|H`_2rHѥ tHHBaG :Bf{'9 -[jaЧe -&hz6Fdy?>gۑx&l$^:^nx-'-]O 5@S Uڏy]Tu _,zWPT|BJ,ɕ}`8ߴy?p7gˢu\JO(_vOUue4+Qbi?A.jCxyRJ駥Pt㸲rTfdd$ֺFR>PaL'v2M*׵T]`W*cD*hAe#"ɆKO9JKL2J( KgK3jԉfZnL5oM(_>FOӹGi}<@w#Ndhoo4Y ̾Fٸ2YAz$W֜5Copli\ 32l;a<;S?B>zprjsm1tZc̥{s/J{c*#3ހfϡneh->Bc9SJ"չO8'8ހ `yHϤu-*` x[c')Oy\x!QS9q*;$;d'=NY ,|ܶ34qT=ka%hs䬺UX7Fl[ o1apuxf9QGk4;e -˸7荇5xB:yZdͫ,`2?_a[0~9iY Fs3g Ë9u<,yx87 1Ja,O@/gO㔛94 |.]16'^@1'p:XtwL,jVQv@wl{έ̱\?R^UV\GI+9D03oyd[R<""" -.2}"!<4tH~(-r25DH@l"K濣,/S}"+~wF}V dRz,:w&?C~FqJ}JݢJirjzEgU#p]ZF%+[PjewVjlW7wR/*C%%jGx @EFH)&0_Օ|Xu -DRNXA\0JSH307͛73 CWc+U#r# aQOL4Eљ?s~{sIy?y>ҒLָKd-ޣJ1v*fH 6hz+~BO:IQqZUՍP[UD#BM >$ z|?^!J0W8N WzXfщ@'h< -%sdR۔e[$z,Z2H5[&Ht L UO 췯+52j&P6uRɮ! -a+rk!o4 `ܗP)f%VQTF(Z]s,TR|O)O?ho# ]6yл)OU,F٠E})gsٴGyҘp/kw~˖I'Y;TdgYU'I8@F* 8 $I+A2((+y8OϋWȗE {բbW"@}@C׌teYgvֈHofE`eagbN_4!/e%O;mhtWv6[iyFy4ʔat V] au #QYm3rM/q{~tjD 7fiɷ  . =[n`4qShBrx_5wԐ %nQ~x'G[ `+qb]Q2Ըi=UGn~ڋJ(Aݪd E7Kz +M]!} jnh-Cզ_魺a٭Dfrj6$-4nUZF)Zpux'@]U/ٳۿ3Ug`iU}ڰULWu+SU[;uXJPvOŀ{$KF,qQruH.}imfZh~atMBb0*iWC䶧jZmn[nKfi c+.&oV.&ʭ{5_s9dmIA. *s5: 1Ů m!|fl'6#N -Z>\oMkCZ8)*bEE@(27{I" $!0a=+vUZŁ`-xEJUǺ -~~7TSsV6i1=2J眆Jh@ Uu;7!0 -߽\醮%-;=.e/T7D$v{.ʫ|ZѮmcDֲ+-Cu_{>1H1]"D^nR ٺ:E3[h9 7TJOW+3 vœLimc @6'[c`Ǧ8v!bR{1_ӵuoPE2\@;4"mO m{ ߺE1dA}C=WB}[3']\PJG5VmnYG Xyahd'J[U~ vWۅWo]WnGnR9H7ѨAu 1vZm]lUrTVA -sj6lhm,My4A*0vJR? Ĵ>2C!*#q0MJ!:ŏCR|dFa?2݂ch3dBzSIt?%LmF[AxYGҏ0m;GY1űh%[sጒ@9 q_8G>r Wn)jodEzC.qJviN&If8bg - v|sd%:uTf&L0~p.(RU -; _)w%$/ t# -~#u`u[w.qsY_-*'̳ɩk/)2* i9$7fUzflc9}],툏WYCIkS-ty7>T! 26Kݲ m&cӣh' ..+upC6&@j5tdP0=I˂Ė -C{޶$tR:(ϭuOR4$=jluq1?פ9Si|cqF!_z^SK}`d%DT wV>;<'V=(5H%jWMV#9YD2֓p~~J }D]gNSsjJmn->,vg&SLl#>^i8ʞ%4'RJDhRN0hBA0(r0K+aMY|"EGE_R^v4/?m[˨yN`K/5[71[Gؒ' '铯RGhqꭁ]>iIX -5'\GB ćd^ux+[^%e ֪pxE - 6%!Itި@Ҿ#% :*h$r7שׁ55׈Ց'I+6*ЮwȰ%U#zD+Jt BaUؕ 6}uOr7dP Cu}FEua7RV"KST20 EN{^lkƕ$vW(,F7b ˢÞOy<"_).kh[n 9W?gڈ7yș*ӼuA@ OpIRrP($e[iVYR -n#(aFq&mq3%\g?%ӆM5XD3b$ʁW ƿ5&͔D4®KcᏊ . -1Zo -^`~¿`6z q aXǰ)Ӽ܄'84 n"Db.yC<K d},{*h -ڸh>wMv^ c8Iƻ(~j? -eoyl/Dl5Żרpy1ܣܵ^004{ .%CA22dWuQ>okL<5.ſȠiffh7S-|^TjX[wCY*sG^1Ve֗+˃L3 /2y{+.;CtJ } ->٫y6q< WxA_PZ? Q y1>yK\.!OqM -0Cl];Sk)=RZ@[ɷ5JBeǐ$Ni"0 -úR4H~9.☫|Dϸah-)r~"eoMK%4 _7"‘e -QD~0T.>"x*O>酧.Ey+HVy55RWsEk*PxEGB;(J X(8hiqmh^ 0`}_APWDLZ‹]<4zG֦`oyZR|u^gCF#nr)Va5ƪw9njyIt -xI1bIy>}-AگOShKFx6xqqQ -3SU\ka椚̩Di~ ?{>J3mtߐZt]YNju]ɒQYlZZsNѴѷW>Sݥ0Bj+7q҄fU7m :8^;#eտ+*,_CY3MSU*LX.jQȖg_IWJ5a"9R'C\y׳qH)VU-Z.\+Ѥ/aen/|F[?SPkr" -^Y>VH9 &yaIxQfd}+] -U.o.=q-y][viRgk*`/pLBu+A@[)&PYQ?im/K,Y*gu(i2`؀V"fJSs=RU@7+>dْsmY)w=U?ο3D qjv83׽} 1r@vy:{Eͩԡ.޸,珈~CH{ksv_l毁@"lOR."0Fl]]C˧Mfi nq˶Q{56ef e l[IuY_(i&;to 5kZ/ jjp~Ch⨿䦿iRs!G-֠5 -&wa7WAƫXUr8+}E)oVӃIÌ}qZlh<gw -A?=$6-ޡ|,)!<*ǘ*z!8߀ϸuPpD|Ŝe=sm4'ҢؽYaPOZ(vj?VGgxI=V-̹uMCJH_-C]B~2A\8*E8PTΔTo 9/whaߣby\'F,Ռo%wU/ժnM*T Ƌ{5NJԢT9L;y _fXD\uַA:x")V%V/*]1# )ԋ@X"SVӅ4u.f?Uչk%Nj;c~?]Pۺ˄WҌ=V듍1 -E ֻqd{q׉; -NYHdfttc #&vPtQjd1o ­R)ʽ@}<7 &8wyybH04͂@>o` ~M`Oi#T2"-!NSn\ z$SC%Q%;OzcT)!M.wf.Po1U=Bl1F#F0HD\u̞rڜ*ujQO5u8E$7:"І(UuANgulWYE*Z"cT\kTxlx)$8(YBIY`[}.Bb T$=U8Oŧ yP-x$]0_ -j(sOH|/=wKR` ptl>f*ӡuU<=Ts(&zpKA?sLo`N0Mq+~*m-~F7^5惬H]${|-Ҷ9Y&=X'Vu+^ϖEm -Y/0X cAdPc_X VRx6b|C6^FeC]o-F?f7Q3V>͝yFsy]ݯMF͊k^NնI#FZ.7ƆQfeϫCJn;AjB JFw -mԗ6t(I5beElXQ͌ i,)6QS 1zJezVBf ۹ʹ/ HQ89SnE%o-4NJ``,)~utyQN]vحp+e"xN6y*,7$'x\CQL[8.d@}CɏE)1D?@晹b$?7 - YM N| _Td'wa}0Z<9|3閗3~o=Y>l0Wb=P1jmE XR[louv:.C=;.a.BřS[nWJ3ǟN1='\Xr8۲:KXj6e g΀ap%z"K1.c1ɇzɭGTRiVBe-)K@iͬ!u@_`&2q up%P -SЧ|NWP !o-t_ nyV|ؤ賐e`HʏE=>\Tǀ|cҎkIST!%Gu,%[IR'+#T}m3\/df)`n2#\M(CQd6flqGv첵).Z&wITe{JQܕQE\m`p`Ҵ\z[v7OVo9ݜQ}$SSFMWdnyuя: *o[3 O FRJ0ոl+L+&oE+d- -@?^fEkoo\fyJ8zΰXmi  -Nw}OYpz&@>gݪHc. ]7Mz#fe"g\a@\qyºJc\3ܔ r'WQVE D|PLs\h_h#9Z-TdL>˼!WS/bniA3.1Fx@Ǡ3UNN^nPOZdtvWO&-8ךshveSȉ`wPU_cař=շ}m`<<$+UV66do88{ηzkG}ڻ<<7\jvg!5M!w&GmpfSgO3x? -wZsLRq/~lK]QV:om<Q' R]AMXyu ^ȩ $}! 9LHaH8hʡrTtD-*fY]]wuu[bgg޼ߛ"ȹ I7HR7HBHudt *Ჲ=eJtj| #TI/W?{ΝO^'`v'$^E=7ITF2˵7-^'Z"[x ;[U7,QyWrr9E6cy'I gIRm2ZQ -{0K,^H/>>G@l`T=FZnZH ѳ$m¯鵩KA3D;w7ŏw^J<`i$M_x8wU-,/h!pbP1|*k _U;N45jX_:]$ %ͫX+é Miwzz{7`fOE5FohX}fL}k%Jq_b_A54WK'h?:lTHmm. m&"X7rV7l̨b]r+ OpK[{0EuwrfӵFajCCPktMݻVw[FR(Y-VE8 P?)p>͛5 #TtF%3 qhk ;`LVOpZۓ. j&\Cʡ <*g!r)J;ȁ&xK0N\B&Գ$bԍ7fpt(0H23ӲG1d?ź -bVֆ|\[w+tjj?b7hwJCmm#b.^VBDRb8E]4J 7LGc.Xd/a&ڎ @顢zQuֈ4Tqi˽èb˕ 43~,ymoθ[0 -l} TCuLBt 2ZW>Eh@+[Řy0= -sU"r];û](̏{e E=ma^2'FKv~.Оm0Oj(esߺ Pk*!3IBЦs4{^|{6k\* }XYǠD=A %$hǹWǂORV UBꯪr+Ca6 Kԣe :Zڿu6&?W&k).]%],lb7MX][H"}WL)RIrfr?AƁY&I~_IB${XlZXE&|w#؆`_vߢfu3fm89?9 -̟NՎ`jz1*.@爎܋`oْJ_+-4α6@/DWEjE}HRDl;Y+ z/1Dѓ(z)oι&;.4aZ#gsbZ+XWi;<~n"( M'b6!G lP<^\nM8--aG+dyXP^s:0q \p3bWu.,R&rm#қs)lej(^ ,=/FV6fj;ex%Dk%!FW@ao2QTvs 5h0B{UHiGCOzL'pbIq+'_1Lv -QA%$[H~}{1fKٲ:HmWS -ëd}2w7 j< O7i2G;SWݒ!@YsZ~*PƐ6xQܡ/9i7cGHVf3R>K2jZxH"Z")vHD} @} YJ64T(P_(*C]miSJqOZgA(ny8}wν37;?߇*x"D6HaeZ -5K e -tE=H\ƒW8 72ym]Ly 1N<8͍@:> >6pӹ$.7$C$pA)hJewT*FmKg-lm*{{v\ܲsJa>3_*ݑہ>V5|WG_>RR_YL!RFjz S5fځO2< `}I\:XiZkRH*4[(xX$u|I9̺TkVzl_׼gC%*wXR nY)N.9+wZ[E9ľWJ%wp`Nj[.b|JOsdW,R~#* ĽyFdwCp*L(8OelL˞)A vfFʹ.Knd~A򥾺]Di(i]YʯJߟ?>w[侾7KK6w"!eDp5V* 3VEa{:KoEDcɾJ#oOU44lTjFk,>{S?ýSk>Su=|j}T -SU.nk.mcŮ)RxbT<TV*yÙ<+`RC;S^0-itp<ȗ2IZ_0ȡVVKHWol9=fd jb%}DCy{sI*{ZL1r`n}+D_*Uz3}i779_kjxL+u ;FxL.mmQ`sKzK#>&ޗxiBV^\s3_XX_رC+ҭj|S kϽ|j|[X -ΆBL.?\DCqߢ7nO(M&JOiݖw0IJLM,NCOYPoQRSTUVX Y#Z:[Q\f]x^_`abcdfgh#i3jBkRl^mgnqozpqrstuvwxyz{|}~ˀɁǂф{pdXL@3& ֜ȝ|jWE3 תū}kYG6$ڷȸ~kYG5"ŵƣǑ~lYD.оѧҐyaI1ڲۘ}bG,{W3qHvU3sIa)\ Z, -     !"#$%&'()*+,-./0123456789:;~<|=|>|?}@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`acdeefghijklmnopqrstuvwxyz{|z}o~dXMA5)ۈʉq`N=, -ٖɗmZH6%ؤʥwog`ZTOLIFEDEFHJNRW]cjr{ĄŊƐǖȝɥʭ˶̿*7DQ^kyކߔ ,8CNYcjnoldVD/h 2 -R e r xzzzyuph^RE7)4=@?:4 ,!#"#$$%&'()*+,-./|0p1d2Y3M4A566+7!89 ::;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{||}v~oiaZQH>5+! ؎͏Ðxpjc^YURPOOPRUY_fnx̰߱ 8Ql»!Ceª9^ɂʦ2TtҔӲ6Lat݇ޘߧoX\[VL=*b/fMq T - p_L7! }tfUA, !"#$%z&d'N(9)%**+,-./01y2g3U4D526"7889:;<=>?@}AoBbCUDIE~% ہ‚rW; ϊ}bG-ޒēx`G/Ԝq_O?0"۬խЮ˯ǰı²µŶȷ͸ӹۺ 0@RfzƏǦȾ *GcЀџҿ'LsٛFsM6+1MZ:{OX͙~ʹ~y~eL~j~Qc=9~|4~cl@~]̳~nf~C~لOiZ/gP8v}6q}0}>ϲ:}i^},~ ׉_LpK-~~,*~&E()D9vyowy=TS3wI!D)J%OBvwN64;>FVWm -S^Di*bPkpة?%"1#!ϼK`L<n-e2*+) X䥂C@v2l Q?(=0q MzǃIz7MEY; Y@K (-\U&>rI^2IMe;Ya"VN,S;o_%sD;fƎ.R?l ;0Dq>8zDKG)3o+&<4@n͗0EO94#ҐnW9 b_7}B2yːv/ąJH삻Ȧp$ȫވy;Æǘfo虔F¨LsI,KhW2!AjHE^τ _wdlXggΩr!jU)[%B\DCfp <_\?k,.wȲirJRݐ=>0+cvZ{HllLVAc۠ ^{6oCҏSمbȏ:sz 7jP@Q;[wg|z30Uq`!P-~|X3+z2lIђ:_p-FOJ*Yr(".O'qäfrCRJ'dc~h!€?`}WzBd;hѲGϲmT SAij9< -ߨ%@`8xLTqė=,Mk $hJdx_r̰gʱhtG,KytomVK0X?R=Џ ]ٛa`sʠ7g&Grŀ?>r&z`b>&z%sxbw&{~څ]"WR%c"zD zA rs!֝=jcf]rmANJl$ے#ؑ >wTfGFF699<׵.'SZ*˺#-Jl.ZZx%m*| o 2ӝ_TWK4eRsu33'jRFBWl| -Fgml0L1, y+Hu2f;[T0BE{:qntoT]okI, - LgV_R:Kϋ0dP?= vE̷փ(M4m\Tk׉o,H=Zw/EI-LQ[ 8F/g֖'$?[u~fghXjݚ- VImKՀ,%ibQ*e97WKMYiHtXTBUDw-49#iԗ/r]hGވ/ - -lD2 h‘%TTT*Fdw">GY?"[f r5ʊ4`TAo4H5rWS8Xy;$Yr'q vUPV&4m/5LJE:S7Hvy.. kPXAl` -,e: E$@BKr.!{A$A,CY[EA;| TJkU>41aƜdcT.Us R&BchR) - Pd;ʟHbl?1;_:i^mMh9Ӝ+,x+(‡j3=P6u>a}&b (0=.À<2&m%u9_~zL!S`(6͟>թVlW䨸m5ypg!2< PR%wC>ubvbF.0UK$K;؂P,!rA5%\v" -[2gwdxJ:_'Eښ_+^Cژ I! v,V72UJLNITUKɎIy/R+=+(֨v6!M @PB%R--3|4-)#ͯ w.ܘ<;b#;*>$eG ->3"و~AZ$xOUx f𜓜x;٥Q h X(Zx=`dš 8b†id, ϐ!enZ -b /޲І2P0~ +1baktT ?g)˧9 С`.ޓ`>'4\DRdPaxԗ?i|9,t Ĵq]"m-9OD'Ex>#Bz6Nk%tm6BDzVQGq,2O: y{iHcy[]vaZT5 ȨR 345N@qG!fYXr{3^M7HX1ey87ҙ;NP9tn/D=}*I:2s̋%G{7abTBm6ۺ4JZmI׶Fהz\FD*rEyք ̣V-8ˉi#7XmZLW:2 -$Iⷱd`U+z3 8"}Y\E^\Qܵ)<&uZ!FM)V"ڟ}&à/ ď 5 O546PW눤0 fGlEbdc 'ƪrӬ[{K("M/y%0=zFBx}{w6{Y50%,40R}ԓvTp>K@fR$7HU( /10f<,1BS>٨RI3#&&pa5j19#yTH9cI[էjU̟~? +7NzM`k|-kqJ}(Ҙ2SaӼGi ; b:`uǤayU}T 2Ftm̔%OpuDU0m~L-_:qWg0~huw-] NVrP =<]x;Y1iw@8,n\(zqb !$zB&5dn61Q& & CuЎy#c%$7]w'z\0Lk{8 ;fGS Fx¬P~Km%t3MccM(bCB$ _ J,@՜ %ӸZ;.6B)PT~~:_tHNITScΤ5_3bO6-[o 7$cn:zNqnE2~7\NT' "[fTT^2F&+c5r~ԕ(jl 48mWDC]X#<n_ T 45 C0 V~ m&AGA7w@w;Q8Q ?d9#1yʕq_eS]y|d*&6Q30J(WG>HN vAg+[o:y1ډGmUV'pJ{"M@3X|*oƙޞ%sfJ<ߔ[-0R'G i++qNPF\&XT~ykPx>–~u2LX'P MOW rة Z?qU\+w>-q}y/sRQQJ@737Ka[t̷E8X,Tp!PVK$`Κ׵bu~*LlBz-f{i8DbMp/ŲF_<`w[Uq. Y!'i7L' Rz$v]c-ީ%HY~ٕ 鞀ws{)Wa˹ԑ`{[z ϡZ& z -- U@uBP.8jz B{GtϤ1ޕq# ^o2N*`DZm錞c@QY@Oy`ŕ^ )H??s %J@f-H%{#}řPKn@u5w:=YX9(5#p 9#Av(~-"]Qb'䠡ya -'£ +vO@%7_*Z-r*~z Ց4!wBpG-q.a+c"wmqk=WfB +k^0>npu5㞃= m]0o-1:ǒ~%ui;pVO/a3;0oKܼL6Ed@ZU%{ ^ ͰyOVNHLmu?uMBEQ1\IُOui@L7Nk\dd[i|lRܰ3"rW^  -19~(VZQjsfb5~Nl, $LAE \Yv3k"*Ie.gj4uDk"*T~~g^ ~<|1cPx7kF84K(/AI\%HG;'6`kK -ZJAFqKq$5GT#.a;1 p't.t-SSUn;QY(sў*M8= -BHZ# GcDS{d',Utl=,}*vcr+](_1rØ@?A[KDlv'”o>=ԏ[?Q ôn!ܘeoiB]u3PzP'ߧ%44Qw L7@?;gSVjgohop7syR\7V%xL| 3n|2Q|-GotuV֘Gk}fd'̐yQ/;^+b#&~ي2(ɚpTֆ)$Dru:5zj,|~0T\~>*,6Y -]7E9!7;au*8Y?Ң#WfiA~\mB\$OwDhE16:_JqBR%*X3 !O:`Iok2+}Y'1%Y GPMJ{rK w_ L&N NyA'ճmﺾo4gz"v;L je %Ɯ{NS6U'*@djNcvo^=Bi 795l€Aⶫ627ICkyV_}B.I=YR2U^c~o\Ƙa3Ƹ2@eU*Tlmcӱ~ xnNU)o`Iχa]PFŚVTC&ϣ࿋Y=d]/..FBXs+$=}buM>RWm6Ŗ6ᢐFX 5x{v*j;zv<_~AVUJϐ^IjQxシuQo=lK_ՑEkZ\4sqU7vOa J?Q)4C^\k[{3y~M|J'g4Ay,$0( jHl:Q"V҉1X&e s)MZ(W |Ϲ\88&tcpҔa͔ CC GU$^fb|8u̸&A֍9ke7;㥦koAvՏ0o5y'M3q"y$[Y@SgÓ=ݎP1)L \!B;U!)/C$N$A³ueuU},3Y'/Jc .8_[ON-<"NawGm_+yj~P]ſ^\y X,r-|㒒ܳ<L^T},^eDR,nkqց%|r,!gJx=~p{"\eeEN;Þ=${q@Q_\?/иLe>u#Mp'Yn_e<q㼅Ra8pLB=(YK[l`BKB#4;c;HS^OA>Ʉx\+0lkOԼ`Fcfup.wlCnKJIi]&fXPAn1کFTKBoI!ӮZ f)~Xhy9 ݨOC5&|T2ӲnSLB5eD0:yP;(w9mΪnWhKu{`wk -kH>*ڲ1 wp5Q݌$;LvvJ1f3n*Tg@oO#9|}?V0M5.ۀz{" NK?C_$ P&B̆e>(qIu`|ob|_0l2WꂝsCܴLTIa?f(/+PIwB WhgšH EiŮ(G6 -"  -"(H2̙dfr $xZEP>ţC~EF:}< \{ -% rH6N$(߫Nᷘ_%1]2:$o-8ȥ I-qt;'kTjJW^}kfQUr\ulNkHn᫂H*Wd6M2 *{`V%VRoJJ`+"yO|s86Vy8 :+;9ɨ=.qqѝ=ɥ^ӏwldG;fH^2`zBȳ ŞO*{M2MoR0i:T~%$9ED~cj<}${.-+P]c=Vzpwz\S;!?C:GFIױqYŞ ݇>;]mS)yrEz_n˕aI"l|sGvmߵ_7e]֭>ГU)i:D΂G}V W5*{f? -($p\)9D$ZYr|(4D܁OHʳ ;ܫv۱jxLr_r ;Wi nV|Rudܦ;@YNl-QnJȲc/14C:'K&̕BOJ{ߴzfsW|F-q2 ?}Y[pXdY<\v+M{ir8~LJޯ vlL: ?@o[g`}>?UrǛI2Lk.}GpI8QRV%܂L0/PUE ?ɹTcۼfHs^QMC!)$ ; ej uIy W6#LMi9ĦͱP*HʘFg]mߝn+|X$Z6K'OQJq m(B~ljSuZ ťbhWP"z@UVJ΂\,<\HA 5Oaf΍C75O Uݮx7F>QL~:ʥ#][eTS2%c Æ~EWg9i%3W4ފ:}޼0_X|-ƣµVu8H{YF"qĔ-F95E!L/3zLw@"FRmOQ&[#ZO/xˤr~9T00bܬ 4Pߋb>_nMFY%MOaN$ʡ˖~ &($~>tBM%^i3ϐEf8UB '`-icIaͨ+ دR=ZȾŁ=5U#5HR>njky/s6H؃E oLyCG/?QE%FvMMz)=ZB.ϡƋ/•3O85&YKլ(ST eҝZVx'xaV4Ë*H]z~h~ i0d,K8CZy{jCF')b|xNJ>V{0e#|SE1b狛*_R"37Boξ(p3_<ݥ%-tɫBetƓpx HuRuɵ)H?mf@Iz͂qrgM_D|Ce -ӯ_wCՄYK/Ԩ 佨/Y0y̸7.]*ѳa !d[m9#{-;W[ U$mb?ci3ؘsq6ĂT t֠} dlv{Fyt/ټt̰KQ8 N"4ʻc'׸Ns6I ][#?wsb,4U_ f)Eď* uä6Go76ɵ{'CGa+RUA=@5_rgs1OUG*ʚO&Q͡4%nlc=%Z vY Zeਝ4? eC` _wvĦ10KB/*Brv4όwM 0r `$CܝGa6;g-N_&ɰ.` `0M/s\PMf`p3 $A7 i c(y jӍ 5!UiMSD-rBFL&^:OF-T4w T3c q]2Rd/3U\;?Up=@b -TYRJ3O)*+sWu.[L6ǼA. 귒hoN_=C|HW Gz}w\2h{?Ur_ס,[<4DmD〷C/Fl Mr_򑹾g"P\TMIiDw$=` IӐ }6.jYx^h}]"]l -8"ӽ΃ǐL"Hڝk:^֖Tm.^@1~qxTlU#U75:LE|4&W25exz*̖̆;M0do^lpmaIS7kD#'͊$"lL?bADINmEh 8Ԍ*"vұE݌5Z5 `z~x[MN&a|b(ǁ$ch |cq)M_Ɔw>bSО$  Dpz!G@o3a]PnN2);K4 U"p+q 7bLay$04iCc9(6>E3a{ R䏡0`?s07y9'`Lq`ScLr&MP.ڽ,_ru/F=܏=1ltŜ 9>1lם -KX_t+ =#ثL -uuWK̹ u)F@jR_$YuBśGbQl+$,o8qlg!) n2QήU>Ytw(^'Y! %GU9, &>YcwU Mj"Zo6VWF9=al mynqA/2AI̐i -qAN?!9NxlbO{eiYQ̶>SZ .&sbj?1_ǡPkٟx`дY!n6fVJ?ffon06l)7BuyMAѢ&m>>Nj#4J%&|E]ۊ:i2g0io*6zXh +҂3;1"2ҍ+O?KjaY|nMHpA/LsI5cu*ΐDx!W {|mpq%qehrYbBt M7uA- -w%5,x+ z!Ί}|%wpȩxeXx|Yy$M}yAz5{+=}5"6~{άq~p^Q~Md~*XŸ~,LU~S@~5 ~+f2T"P{pUIpf P[AE;Z1ٓ0U)Fj"0΂op~7f ![BPY_EE;T\1撠C)k"djpmfr=[M,1P\ǑES;`Ћ1')}"Ρmfni=pkqr^mtolVurX wtDyw'0|Yz>̾jqźjlr`ntpu0rnvgkbtgwWIv~yCtxz0b{x|bh|~j|l|^n|~pp|j\s}AVtu[}Bw}0z~l;fׇ i -9kDmh5})oviNqꂿUtXBEv=/yVǧeP{qgi卞|l{nohLp(TsuSAv@Z/ryX_dִ2f}}hƖMk/zmtLgdojT3rxAKuI/8xσ[c&5e[}gܞrQj.xylfoDSr d@u/x\ębp vdܫg%iwy3kyenbSq@to.wUad`RfWh-xkkemn)Rq\@?t@.wZtf4uhvjxxm0xyosekz.qR|{itP?|w-~zK'rp{sqԜu#svFtgwwtudxw*Qz%x?E{zb-}|Xpzr'zssj{@(t{vxv|cwy|Qy -}>z}-R|~H(oYpq݃^s=uPt;bvSPPx <>Ay-|0m{opzrt?s^auQOw+T=y>,{¹luSmoou{psGrlatqOvk?=txj,{ @k mܖnlprxqؔM`WsNuȌ=&x,zj׫4lgmomqq0_s*9N uI_|2so|u]}@vLO}xT;"~z-*|Ly(x*yyr z$y gWTaˢĮkTd@D\dPPp-HG&]30;sCg( 1DE*n6ܵaz*&>P3ĸg| ,X񦁓`S$>BG DǕu#i#܌-`xJ!wم:(`[HWeQ2UFD`|:Cd2~TvkdEeUb2̽p ʠ~[@QdF!7H$ #dLt!BOK*G-iCrB.UlmO> ,B2W<+367ߛ@ )۠&KO 0ޏO igm82=D 4FB[!AIb4~Z *fz\OtF&ӝN&3xF[Hjz&3n14bM zB! |+ -/hw{V\lsTjg?қ۟u 깮D}û.5ʺ(wM ұ=Ljeo(u\ yPXƢ8p2232"uh0 ;(3-ybݷ3WdsF@w ,8#!H*9)iF^ -P7Dg3I33D_)JQNdOm2ta':=J.۱ -s`d+uu- ǵiȵ\L -kw/i&G1|91:H^gW@-Eif?QF?/KvřMkz݈uN0:ӎ3BJ]PU@׊VVzDPC9>RTl{=EY^ScyjN96b~mwj[ Zl'd}[YގM:tU9WI-#d=sѣS IKuƷ6i/JO{s{c@6oPU,'9cV~M6IQ1WwoT+mlF0\Od?oi4M4MC%HfM[r0p[p|R’/Ld/_c8]׍ YpFKM(Ewo@jjI0/kad[H>|/ѓL |00SVRׂV2Cæav4x,'L82'7&n&CĿf]9-f]i{Ta4EeNٟή"V_ǔ3tf65ҷ, jP6Ex)ͻUSu@6M6dFVSˬGŦwƠuy@>.TȆVOdj?#驺sycA)w,zl<ـB*7ij,\P#;}}~r4fxO"ZhNMBe@(78,iA#FaN}qǖ*lf Zۋ M2HB-7߅,yY#p9|qeےNYƐ*M}"A튘6؈U,ۅ#||(qW,esY!MANJje6Ç,}#5tPcjOf=_`rhTkHm=op2s(Hv "zbtu5k#jl_-$nnSjpDHrB=tytn2ݑOv)yL |triIs ^ٟtSuSHt#v=_.x02y)B{! -}~st(o.w]^`cCcHlVf+;t)i0aldOȯ>tsw[-wnw\-_AMb0ke#SsShA!a7kO|o>#r -v0[Dn^aaShdL%rg{`j哟On-=rfv-vm3Zp]­ `܄cr f؝C` jRNnb=q-vBw~o`^q&ccrfBti quk_wInN1yq<{u8,-}pymjynlpptnRrp/qsr_;utMwv2>@?nC)HKс#Eu$%`^>[ -(?`~^x0_+OËv&"YD>s5x']~-if~>NF" P^OG# ǖ0<7ӆ7 :sXL!kݱrx{6Rt"+@q*7k1U誘Y}(~\H`J䞂\ -52[{F;Onݦ *C{2Hpuw0D(MHOB$vKѻX{'V' 5c - -sh]T4I DGãTD(2BNlz9eB_ ݫ.#JUbGɰ Pc36߅!3?o/˼ 4Ta1l-vKWZApɾ<>\Щހka8Z5$GdW#{{ߢ! e8l&Vlu4ʚ@ԸQWJ"쎛)9(6gf y'1?JL)b쭢l]4LkۘPpuﲹ)nCA Ŷ+2dEH'Hm&Y3uѷkѽӭ1n]_Z<ڮRvӛpjm9G݂#j}dA-uڠ -0\C"dhK>مٸ:IFq\BVhF'$[I&3BtK\ D'`;I ["%#N\I -|?a8+ş3"-Aש_ZZKO%u6`X{cͯw1 $+OM{'E],jz6+~ Qk a=_/E qbVk&S7fg\"&]KOÑ: %ijeB>%j:l=T1e~/ߪg I0^YV)<^ϑ% -զՏQS-WGpaθD8ߠ9D֑ՃXM' -UJ]I"mteuuE)-3`Ҍ SoO6Ju@$ZZǚ;oam>݄92)@m{>-V|WU>r$Ӳ]qّ¸zEYuɔ>GT@蚩\'}њG9mp.d.@L4c&,r;b ӂdlt3ݦ]Q<b-w Nk k bK%H@ j"W4sf|Aa{8c%J@bW\E':Ehsř=}9fǹTW !3ߔ% פԘ]YzĀ&XIkWdPيb]9gbIi $ O1wu_)xS$P)m/UI .mpsf5Uwl}oyh 4;=DUIKSDSjj:?2*w0P4o+G4O6jeu HW)ϛ=ݮȆs51 okaIӽ֒Wo0%>#}?V5N_r}%7 -Լ{!`D}K_4 -!Q\HҽzȔHN>uA-^Ჰbg%+k58W #wi+q0khcuTT[`5Z[`J &-v**cs0:-7o3G(Z!d  z Q}vx'E}aQ#*'viƷ|'in˵Y;eR{E1vikYT24o/;K |O c -Rr_T'UtKyγzaL= zs#k)|OĀ܇:axim&&^cŽoIѓ` -W82K/ױϬ˽^ipuO:JD:WtG<8YJ] - ՄyiZP-|xm4rQe`dZH ;4SX1̚`wpu>7 H2%Cd>zES?+&e{\Q>+) ^T9ZPFV+@l@ A B -r3L2$$x *,^-ڷ[]<**RInpdk ŻΫ :C>KXi<_TTՖqcs.JmZEŒ:^΄hsVIbm8tSX&^ a*Ɋn^m=A2s^mICca|k`K{"Y١:nf,ڱW x_n~ -!f睥# Aɧo(u -gįVg攷E)?n/ؠbdSu3QQIB`\C!d -P,2QC[Pһn`RXYU^',|Y5G4-},V{:T5zGFdx|4Zٲ u'ʦ"Ww[f^'0Xcx2rKJJDJmB|CÁ=55oc/hNL9'0jI. =$!_3s^>pX0]ScԹ`gi9Q?+,O|ekkC)6bf!),MjQZF_Y[-ۈfiv&mH!`5oIxudP#F -P&h_2nnmMsC?wOt[Pk+jnA ǐHځY*zל`L﵋TL01|w:44o(%j̨5YJ_|fyl00DO+/.5T"$8[g)T`MH?Ɠ\fިÕyL/\Zj@Ν(Wڢud>P"Yd'$$ʗVJ+W>pG[^Gڻ2|M 5kci{ZJbILFPCR7<]'wKÍQXb* -$f»~ ^̈́:)]}pA(+RXzE;b1t!9ݠBj` d> !L7gh%7nׅ _Qg1R2Ǽĸ:@n\KX)'WIC0hݤ!XL}4l5 Vh2,?bLb#(sÀytk]:ibP_"2S&F ߆*:/~5l6fݻ Ӡv(l1u;8qi7mL[@Wxlg Y<#nMDyYZOEX;/C<_IfGuROM++c7S -4ƊaZԃu Mߊ]>]o/m^&=Nh̕.g*>d_$ -]koj-]wz`g`@XRSZ^6uV^og~XQ 濮a%{s Tp4{HLydW)YU&R?FD/'gH7yOG -S0᪄g :po)-.XF:e*diG{.㯙nwn.tY<"`7dsSC!x$g:SX9Y%r_']4K . q cYv.㏢Mrm*ADbW냊M1Dqby9mT'buq7Or }yXK8`微.;~1K}wҭrB;ҏޒ &6 Rr*?j䆑lugICkM|vhZYHn8VzQ3N??֫zGP5|No(RGJ[5&Hs)qq}^&2n:zǰkFmP03;7Nsi+ZiӍ ^zs7Tm , zb@p22{96ʄ/= 4)c x -t&83B-(;^SedSy7yG^H@Es7<AQ|h[\jeZҎy1|i-M']|k!3h{&m5&[KiK%}UEk̀u hT[*FkkOZ e ev]G ؼ;GLW[d;oo3xY{OEk[@|l2섐^򒼗F6a 9uUQ[Em'*uWAw:^WfAw:Rc$DZ9-N7~c - -?;A34VfO 5*DvUe_Rqr_pMv]{қ[;f4( c5ڑGdxEjO-n -| g8 KٶŲ]{r3J(?ұqlu;S7qWA}ǰ=o -nxg|GCTpTaH͗O0U`llڤClt0jh~pڱY_,x',IUjn\[M zDBb<Ô]T7S0Co}2%sF͘MQ ś!7fSѕ&.!mFk(+O Oȏ@ W1fG 0JZ-#=qb>@@gIxFz|޴\E=Yg6atҺ*SY5T9vh  %2{}n}I90v zRf8kOʼjVo:*xH3_ 6WWx4\;5juK::i7rʶYAd~X:J1<;e -(;MsrlڪU[y5vw(k --OlHWeG㐣݆L9sŠFp6i&xИp0C2}TxmCH#ѽZyڇm{+EAaWdVSy%ې8bש"SLL14$Bs&Bj&d@Y?O+82}-D^ݒD(PR{Ѭ.s!$4Pڣo\i(#u"D8 -:]C>6ڒ׶*m@1GQm lìOrusg# tk-ۤ^G) yۂ2b+PgDWB;T+4Qv{9輵;!f6~/ė|@r~EM$,<`2+oMҿ$ȵk뤆)<$\nnu|LX+z-]:r"Xꗺ.KW;–YFC :Aǔ+IU u+U>.+͋;SN@] LUXKx6 ͑8=*U4^qݗۥ>S韒+Ż eLsf v?m!'粈Yv0zْ2GwT1e{BHM, &fr(y)% P Ehl% -$EVDĶt o \~6-s//E 2<뤪t :mbpVn(Q7:ziZNl*3miИ` snX -U\Пbi0^Kc=!!{pwpyKH&Ș/UDg#M@1&yf_sIrŔ\ Bc7HexXltbu!hI -&) ֩ršbps;Cu GFq~~c6RbO'l"<͖z [T0}5y V|EWrф\2aAA0 /ɷW&aA -AK]מ q\kPU"Jѻ?W{j#'rG^$U)~VHDTup7eÊ⚊R"I^w0^+mOXiMi-T5ȝ'N]~{e r5Ճ-wA-VYF~UgBOJt8y0.{KO(vlJ uS0փyk^?6Wc+ -Cl]Eko%ݼ脦g}h0[[tVۃw,U^|}X?4:a<X s%هU)<@ZQ/[6 . 0A=fxIҗQl3\PBoJ]Դ\>[3?,ЛMOyIOi> '|2kxo6oy*Zo9XYifNP?1k𾠣 *_BupֲB[ 4Xφ}P73d"dٮ&<ăT>x4Y"GXF%Ngt2S 8.hpq܏#~2HleҢ(j =~n$ Y9PKC‰/q䢘&lrS1|8+ۺp5q Z(QӸAX!\$$$CsrL2$L%,*OQuOłBuUX뵊]xV~n,[|nC --bY@X?(e92"կ)fm6@>_|Xȼ L N+VJ2v&ǂga:y*=>C,꽅zqwΣaVbP$Ԇ3H* -|tc^7CvfCUʆN\A X)MȊQrK{Fۏe"j%hCi24.$ҲɹDӮ?2]HMtaPZ+C9J*_r%QNH4r{W) |em}^e ٻ -.v_.e'T)V4(FoUgzf0=rƣ[(hGjKҢy}%]ʟ%(y쭬0L1sR1w^NJO7 نyoxõO`i0)¿6T@JJL#״C[!)9!w+@,&TQ0GU5a -5\1(-9]s41y3yʍ/ G䇫~IĴ41_35g%@.1N§ N̡Pi'74@rz8Z? i;f -cENOri@Du{A6.ѱ>1_:, Jf?/LCNN*E]٭!mq=p)ݍ -cFMH?b;t% 7r~L&3>ﰞ~6slD'9?6T­ϙ^ 5; -k[}gX0^hq$WKJm3qV/f̔&|}31sO[9"6ε6 9K+|dj8a&kɐ=9wUͩ?|0,lugzeU,}* e-^uGSoy77bC#Qşn[,( l^ 6!ʌ>":jbiq2$V1\$ǕwkGԣQ%[`ѐJ Ή `]+Y)u!*5(HIdaoElw17hYxЈrMyA39ScLYgBل*dlQ P/Džml)IR`i?ĞAY訌:et/ ysn琸M>dSG&HPe*p:vFӫ}9|%*CdڌTm ؍θSVkq~VQ< f -CB'LH? 6ǍZWzjxA|+cshi#a43 KZr?'H:m2AĽ eЭdcM^k^Cj#,@DL2I~tHGǫJ̀e W`_qZb -"pp߄CH I&d2L)xʪ*jXEtJJ]EZ_=@XY#>(UT#tgE UO4E]cDix`Ffw0b(U -Y]sAvjfhw@A,bx#iu+E_Xx˼U-EW'_@ce2b1( h^EN -`V[@-kbn_Pe:60lu-'\j|Dme;tHGD˪&աD!ߪ@M?B=rΕtSwo2Y!;DLž]򮆁˶Rf;˷-r0ۏ첸R}"?5#mk+3((.RxP{K$ ~?uX m(U$C[KIl9vL"F]C2q.OI61Qx 1iQZxle_)O&uZCj7$6} A~8zXmb|n^i>]fQBchJDj^ k]rou#Ih -8ЂTc1)üW+-*kxueI~PE:LR] &t-¬^*$M4-bB c鎳A9ZuKDۄT}pp;dzx0w - 7 ? rlJU/3BK3hf@jm1RזD*p֓2O(Vv -ndmMAO;1S`M-a6)N˛,_ -l[c.Hі%Ŗش+#]lcٶ$ s~&b~In^Y6-쪸ʟ/FRa` Ei|o$Գh:)=kZv6g|V'E;R^t\"ZW -YnN'⢒LiK[!6bjnf$=+ *.ӃKvIchP*%zډ,1-pGsD8DC7x&X8e!j5kL4Y &XqYLA)$]s_g^.[fx́{sHq  o݌ KFaa)1$PoגיDO̐Ńwq?0$װޮxYZN8$8 _ُ$`lcZ6ݐ?ȇY+0H5zቔkQ}Ö!~QQ2&P{BcH|7gz9^sylu^A ;RckU>)vQ 8:oVcsK68#7>^nNk_<w*>mڹ3"ΨŢl` D#ޣ7W-#hD:G"DxA4 >X( 6b-X>*'qkxOOX+{5| fP|~NEzEy?|S-2<3}=`[~#ltGPj_ _߷,cn$kaM=UlMQ"gɆ 5iЉ5M%7R%qvLSG[]]M vKsw>q| -7pL=#.[CjϨ^wUOlTvCe]j20uuFfձʪ:AƆ"E*S'_ -!Z:Qpt47rv윽Ys9{<Fr׃d+G1 F~ /bm1&&x, ^ LtZnDz4g?x7o߽06m3fB|=ksΛ 4|K5~Xp%&(*,.0<664^?|X@`PsB#b$ PX<1A͹O3l.O IrOS#?UBP' -BPT;} *~>22 -EOL_~[ g ,v,cy]zFl(}FVύPq㫪J6A$*H$Ρ`v0;f×9zL2ٞQC|QM5xzAR+Ԕ k*xGjsH%Ť^Vaݼr~Lȡ3h5$؋#2'$ -,FP].V!foDc&2`* _'ǹ{# ݰw%{2>aQ*X SV*5r1V/\2dL9x~dE ]0 -^z[AKmILŤSK``;m\ojc{.]w{]}A][UT5䄚T9"#֑$-QJ֙ -(R;7n^윆a:VVTST@e& -PkLlvw6ԷU8{`>5#8-Eʦhc5Ij ɱUx(EUu=XU=ux}{tjG -4a(=Gr(nËqZTivU肝 F7 :&|ؾĮȬ8CLNlG\nt{Bvx~T2?]ъ?:B': nAS+w."nG%PBRBz^MLpz&*T@ mHh؇Dc΢&ZT_Wj 5yI5LOї5m - һE/`v0;fˡp;ϙ־A}UlK8SQC#kדtYFUVErAF̾!b7E|{e wY쓌E8T@V4U4<7IIiA(R@: j:8vug*tE@EQ*r 럄B; !rIC@V@]_ӇQ5UW/)aY/-Ry%F2"  InK/i"tY{p8d|Q\Đxi'6ĩ/UUi5gԧyebLY(ke&\1q(h-Ev;wΛ6 !5kC(xH@m՝N&וy UFeaf5n\+#$,۾.wAڐ&T%_}ؗY6"s 9G&j ơR9aWLt~-m ANv$&! 2p0t{z$?5Z uTj]Ġ`9t& f,h؈!%gS$&T<6ncK /'z&bp`F*8b(@H3x!}': yo8IP&\P{C@Rt(ɓʌ*rH1𵐗&dx'McČ`$f>m|S~䃱ؕ$x0mq]Pe& i#eF6AWB~8QChiTɞ <|]z[u*nz!bg9Ԓr3lq Xr3" >4SPh=m@A8 {Ͼ+\Ǖ--F3a@4M6;ҩ'Z8JԐpjj6 DzQ0'չ=;Qv(X N#0-z#}2Ң>ƾ#Ahw8Vw5C/[r:mU5fYH7H)N6S PX'>}<5ӽe~y'NNdtOݗdjM Z̓x3YAdECM&-ڀjG ož>ْm\-u ZTS#%xG;Ѣ8]0^`#Hƺb~ںnA-9*ViTR8 -`'yM>aATm#GђZVZ˪ݐETD_l }mϒdo8zPc)VdjGT *:YϪ z*MSqKP}W7K۫Ov*om;Czzqt}JeVl|eryItV2j)kb腳h ?|lIlN^mzQr}\E+ݫl([Xp1ٔZ[m@_Xi䮠pvfy?q)?GZ3=@W =T2lvsdrڰP챢ށzE     q5YTp -yOCŻReb &l[Ghmb9M%>]8!p~{gkl’B42?ȩVnI6 -e%2G-8o QP6ncN/J/FQ&= }-9>#, +>nƙ,Π z,>3'ЏԍI6Mo$GWdosfܐT:jGyhKڻ)k[Leٓ#ceA>Vl oiEǪ2p˪lMe.{J~IT"Cvnc53}-"ÐhI'ِ,kHM"D[YjsUZCM:fD˂+)U -Naa␽Zfk@ 0,"IBLtrAlĐ  N9Vr:#Q1ha x!coDjԀE_dLqi&]8NLSNIS/)WKlƜ5==\[jTv]٨@(WKsm!fwO)iiLڤ?鑓#tɕOL=?ٯ9,o9̳t2UAP@C6-!d!@ BB6BĂQDkop94Mre9*ӍRMd0W:rB5*G1GRBd; ib"P'dh8^`B5yϕJ\ L΄*nW2b߭L)3t*E&' sdr* i@s?/=:Vh,~ߗ;{u15k}6EnA;xobhS$u,N%ɕ8j 'q/qO=`S)г ,Tרs=@o5-z$^˚Fk3(lUA?5(!4v(_uw1ff:w-}hXKvzqAOQ NϜ@:&z$B/ $Gc*8?z0;ߗ]/ZZV#sY]X&qzlKNCd P¶GFޜ=;èj!,z5ϥ+D`C^n"NJf90 2?}ɉ=yΝi*mJnL6M$_e A ($eEU Ȁӏ^9,>IoGs}YEHBWh֯յYTwL3rS1MOeS-)*d`[hh%؝jӣ͓\$|[XRK@-_JoЌ+כŋ8V"]?/&{d_$]B?,kʯ2xF5xun#s -[oyDs?{how1,8 fL?CVAyE% -K.?)-amU [5[ڜȺMtM0o?s}*Ϝ|-.̩ {JZVu (lIneC6%FQnj̍;\M{w 564q@p${{bKXQVx &\^fA{O򒻭m.B0b @ħ/d?4m/o -y0wA6kloz=vVtbd.RC{,DŽ4]@Г zӁ4#L#y,xK|}]XÿC>A𵲇i6pD1|܎,HψP(@c ii@Rq2[eaU^FR6Jz!` {v' fQm)0}^(6Rc$5 (r~P,y9wM:(^։gDHDϡyl"0A4t!5F5bl ”#@ -)ۚ+Ou`;\ mqׂZ4++'8bqu2ǬN Gt$ F7 G,)O '6bgSo/+WuQ.mlc`rj($oQM -0rIF?i#@I_S>8Z7gW-[ܫ J?&[1Ck\B"mф;[ - 7qD -$fØt;Sj͖%qzfg,;-^Q`-}"ҘGHv- 35Sl.J7oÉ@ 5pNgmwٱٙmu*ꊸ/#7H NH  @HB\$77!PxE.ov[O8bD>Π)Q6AY-aWjLGU-oF7k1Fj@3\=ۉ <'#Gޙ?uߎo qxeP IÉh1nzY=Wu Mզgԥ'(e]-gCGi.];^ɹ>~o[?) oOP^M!=aǠtRl69m^rU4\ O%%-,O]TB*s;?Mw+Pmv{ւC)#HܥO)ih\LC.!K'b1 HQs.w{ϟ/2Tp c6#s6"bI)i+˰exVz:;9 sYAnSKG?vOW{$a R*ը1o7l ˯WC^kh+qf7 :B|J+*u}B2#PCѦˋS%e*:g cCh܁li) -`Fm5{kï 5!>s^sUXt9UJ厓7YΆ-P7 $*gz0W]yl`\:XA>s97<5'&cE=ffӕDdyix M8ZH6."4Fm Iz9)d1 ź F+)mju@a7gDfFiUcԝRڊXxi>6|XG/@@+$kaQbќ0/nMҋ]%:c!רZTxY jq4Fּ]Xyw?=5a'v:u]㌵u=,"@n9 $$!+E@AHGBBpEA."(hA P뷙ӗ}Їw -oPEiԑ9qͩ[ q)Q<\Uh.gY}WS(35QEJYj)zS h/Pk<^~'?aS| A :8}F/R+|cha - 4Y^HjZU7 -[C1 ?w<}Aw{_Kyē]Pmp\+ؐ- TźˠRVYĐ[tX;-i(i7[9GPq4zg6@0=4kֈ\c-MANTij *A+7V |ZQ4fmld/ 5@ -ݽ#]w̋Usri07mN wˌ|!WQRQIc fWlerU:Gg&{ q? -n. |f0rg$u͚B869A$Vˊ:bVoi L,EUJ@!Og)Л@v4>4=A[+g $fy4"nv,9r1gJc:5J-AYL -:J匞Y*ϗȭy5Zg!W6@@6,GDOMBӆF`+٘^-+*uj/iuUcnC9K)7hsz 5]Nٰ;Td~>TJ4& *ow} u?zXcΑggS+~P2u.3MV&*1Z,_e%I#\iPpYRg/PphmsY}~'kGs4Tj`ޅX~>3en؈24"y 'ʸq~tZh/5kofصOa8s߸F_$@3q˰>'n9;7^^^=1.5?jD'_X,D,Qn?t/J\p &w!ב0؋gTStZ*j| D„=bCB3WYx{ot}5[,w$ 4LBA#oaQQ\xąʈ}IHNK ȇߠ Ke's}*_};v$p;$p\,1~ ?$ - - ! -9~|?}SRwp^@YH{VDrqQ"Ş'VpoTU$VdDױJtzt -*BM"{i1a=~oضR[ Q!q/eUV.yVH[(`IʪYL 1KWiE2c9rg0]DgQ])ܚd]ѯWiMU}:o@:vN?ćѱ@Fq?.[cT(y1oM70œh~8Jh.#lQDҭWF[3j;E#@O<~.;YKhk&qtd=rT}J+zPUX}Ψ9gTz<#8:<1)y/%O$yevUm:>Cn^!R$,@P18Qr .eFҺs&o|<#AD1@q47剜_NJ5yvAT8a@Â*2 -hc^3~13JEi颸r!:Aj$U^NMrs!&xt~8ۀ>4@sWѴm)9PV-kQŸiP8SYFR4c4Kl] IC4<Q zás!{2 ЅfNxfKH~JμΟuF^4܊prfJ@г:6BRBd -Am-[[ꍏm@Ch[kd+>~r`vS!CkBD+Y]d=a&JD;Dlw؛7c_so` - y툈z6tk4 6֗7Z *-Kآ&%ת#qfB׆cʡ2 GMTC?.X [ZH5:Wt6譥dUEFIҬŋ(ZǗkxZ,z0= >=P~?Y9=1y~4tV$aix%A!jLsLdEԶrV!tZQ<s`i ,{߸?xQ#/Ne`%zyx+UnGz)xVY'iNCV`k"|FyT&`y'_z>#n/F\Lz2Cs/)Tb%Ӌ\8yU B+|Ȫ/: {7Ӟ޸ho;A[,8N(V'O7* xUzjޝ;Wd(aCV%l`PPyp<}捑^gՕBkQG5wa…g7pkŭYlhd˿L^b/IİK(9w} ۿy7S[Zh=(L0~l.}-ZYn@."@P -gSDFd{W5d˸:n8 \o3K>^=ݻ_%%4$&8 j%| A -oմĶ^Ƿî:fԌ& 6-LzH| b?ӑu[}U -^^_b6QYU82Tݘi-434o'iͩZRn -ZoH͟sӹ?}W>ߪm7 -b#1en ?#s"*aQ{u5k ixtJK} -LjH -0}0:[gAM vtv3tљvZuծ]uC;rCDD @ !`BBHHBr;\BZPXnŋu ؇}f~/76ذQ @Bbh\Yuun^R! lQwLs6H-M{#RpRʒKʓ7k׌MrM'?gİkS!" q8@& xw3KsޖG!禼:􊑟 %X~H<齾vmWkaİu~AD -(Dh>F,AC~I)o|J"&xŭԤǮ03bgF}PM}3-z[6|ǓoK@C' 룐A PtD`#c{xʢHjl80bÀ!s'<jc/q/Ӄ@ | -8- QMxFeU>iHR|/1{.K<['-<+AIgPW7 K g - N H]iD/X"IYEMo( -g]Ytd_6]8|pR~ =)L}Uz{@ yf4HsRA:VPRX[CYqDu*ܹr. Y%3XlsZ~=*UN^i\U^,t{gP5y - AEr(ӣAeQq>IY`<<)`?5Y^2]b+0gnϪn]T_\Vc/=˚%>x[@A#I=,-B- g Vm<Ǿ_%߭PfZewJ-۸?{5# %SryUC ݠ>Ф'XʂRlFyCrsTI0%ŭҐǞ݌!Wi KFMvWZfC?]>jqF-VTyl?d^6b#Sl0bYKO̹4KftDuE5spx!DGSvWLv|j'mmcUZգ_E&Ѕmc~0 ֑ܙyWk:nv}þv sv$4y4A֏K磻2nuJUaDG222qwQ؃RpaWPgM/ uLnmXivu:3_0%yN䍡I/ɴQ:8nj %bP,|Tv@^@q;$8ΐBOGhOtP___r:!͆i`=li_(x1ra q#Ь$ $v@mdx8$ F{8 -;("a)^STS 7 -Ә>ɟAdL bc!3쨠bUom`kRS2i@1ȏlr>>^@=͚#K+ڴW+lc4`}_81CQ~u6hxF 0l? y;H !?)|$Y"3?iV徊H!fLSI̝Itx#{vMH!!M@0cr?H+e.%fNMcH͐/dLk V-I9wȫ_G 7^P6P%Ȩea-\`XL)jYFX| ך3"紒jro/&ꀣmjv;!NzA1 -1+d)VasYV.o*X0N?'Tg<'TZs{ZI=yw)=?S4О\ p|*N{?(ы -Q#eMeXqiJѳRSFz9XFRwOMnUzwOqKqOVgKx}E5qcu(:ʢ2 R^P)R @JHC"BE0 A\ gnև}99? ^!HyYz@-F*#1KcH9}b_Rh2/s/gf 97y7 HPa 0WRX3aA *v=A)%(j*5ybf?7 +@\MH@2 P7]APeB<*#q -r|h%x\N/bz|VViè- -5(n@ -^$k -$ub -wkd߁zf0]1>F)\d7KheRUr:[Dx%2Q5I%euaYI+tJ^%(G-il \~NSyU0.FyaM𔋵dCPq d&؜L,QdJ)BJ)dB֋$SC wNyߧ6Ʈ6/> -qJhMIlm"Y+q &WQ%+ŕm -Tbs@@ӞEoܭ-~b0䤶2'rą >UepKyBBc^3XVVIqUz1 >7O;AtzB;~ICțF-LZ,8GK(^4#J]cz9@YA}O_\;nzGPLh%%lƲ.I*\Y(ؼX%mK$ik ^-!Bs@i -?lu?ov9цwD%HS2{31| -n)c!5*!/Q)Hj&I A |sPsp3F>M/Gl|tĺκ>mw3ȭUNӑ98żbt,Bw2IjVs:L&9Z&9&^ MaݕɤvOeq'Ey+_hbh'GDzCȺB(kAzE*f5Ό0"4ӌ)ftPnjXo]+o?سB쨅手e36M$Po(u -v02`Ry=0^G/z*TN k㷩a#3 -sr%ۿ -Ve ˴?si1ߓAԇaqIw3SY*v5(Y51讆to40xQ9rl|Wӆus^Y~mKw|NQ^#Bqsғi1s̈9Zn0/GϷ`{|{cn[:6-2vk-oVZm-FC q4Fcqƴ(c j&Rߕ}L{#}9,Wϼ3 , S!VCfi}ؼþMGNK?z8O.{—`bc?[BD/b>bSPo93){J<#}Yw:W@F4 WAZY۾[hΪ8,v -]#xA7̀}@a zZ`C? O-"ܖ#>65ڷ;2"{+vM%\ -ypI^vq2_gQMg9=ǥ=Gg>(*(Ȏ;Hd%| ,심@EERVOU0l*wo{_;Ci zCg н|_H)Om;ݠ0ʃ]ʬ_Y4("65p`63q' ܭc~3!>G P~؎wr+ ..:rN@uᎅEc *lظ -zHMQ xzAԾDkW pN8t8@`s$@fka;PYln "b HQƺoc.᮳cً9 ܹ11?` v뀍5}wG!Bj/YD}鈿S -+5wqY.棇xcy/q14o(v7kHx AAn8x|A -e=1ı.${5pנq -&+0ȋ9 55l eԄJtJ{UK?Mj>"k>G>EOsE7ڙ+2k1`0)쉑KxP{ -]D#؄t -J2:xՙ&V"_8Cj71RuӲ -6YPsMҹ>jY,BOz;[Rd:MRhg75V]={__Зsbc kAENBv?k|?0j78H89PE --aoPoꤜYB#k 5*a\pP&k, -E|>O<3KbXC㟡m+y~oߛ`b<&Uȥ\59颦lY€VɋTg*uũ 6cdJ3Ft@6cv`^GKq;}^] -h;c;H N]/eS  VUfRe $7eMZYWF0W-3|@oΗ l1a ؜um%]V;B=vB\pW-%\gKERSy*ʐU(E_0}&79 @͟ -S߮\tncuO:>hp{+!Z#9RM2Ǫ* KH)T*mN6M2յ4\DgB9_2?B p%MumwuL@#pBA^ ST::8iQimlY"YY9}^Pd9(R6 D)LI3 %8)|'r2$E9)yW ro?(}Sӑ) ֩ COǥ]%c7M5Y,iY!iFy-_RM-ϻR?{9,Rl|RRF$5tYqE7 )ɏ<ޑ)  Y4PSF5;/xWg-^f72.ԊU!AyW2*R/}8Bfzc%9gʥAgjĥ:NwJCrgECzu6Wzsmsw~a5eJmN qȈԪkRbWH:&*_V/+w_rDgfIkU[4Pe1vGO}MO@ٛK_omϕY' YwFHNM?x=G_sb:Uݔɬyɮ|ɭRAb/+զtU|J -WmR}mNW)6'|cDŽ6%ňw3\Heܩ%w_J{1 GV(d2*uTnVyxիE5.vmyN5ҏ.b< >oDrZc}[-U$rD$j {.TB2/^#.SjПS3gi{ݒ>'Oqb_B]\~gݑ&ft{w t\ ꨎltz9)z68D WoZ?u#ꇗT ,iCzҏNF<,iQL?ЛO`S,W}ueyUL+vS;3$~S' j#*eߩ]o^T,7Y+O;'=#e4@ӑ/rdbO,B&xȏYhuX#wvݗ -C3깢L!rL:{NFN&&%ST˴}P<4Mt -/fVwWkS%*4ҩǡ; Ra:6p`F~ 0cFnuF##G! -E$Ks@9]0D Te8v,`X` N70I>~ r>ę["fȱ2E>ރwf6uw r3W)˕ 0b -WS $x9[LkpXBA{c7$;C#@!MO/ X/AbAh)c52 -E0"Z+l xj=ir$5w« /Urc3\嬃hD1w!av%8?)b|Jؠs~S6$ o=OQ3MAdpm:f2ɷ@Hq$KˡS YeLT~Sz7I}t _(Âh#t! NuM5exuH،x1bCp = Ȣ{v)Ki5)Zޤw=@0A}N7PF,`Ȅݾr<`&OlX+m$9CiFg#Zd= ̠W5o*oQ+~(F{.0F0Lw$sD% lggEw:v/@2ڿ.bϰ=l.R-:{RUp#V$BB Y$9Y$0Baod(PW+^!,E^y>9/yw}qzP!qO( CT=gd W o#oŸ_F M"#Q/IѯȷP(7b5. 0w~B~`9PXT?9; @X\V?, !tǻ4̡Y%ԴjH#uz:~CCoX}:No\{5MU?ͯO+r3nwfB` 9HY}LpuD(09ZMF5M.t+y&A ?,'L2򤨈2% `uM%;Ěsy~QC| %'bzjb72zjRXMI\I-)'Kb mB\@ḨOH8Ww~rCsk 3s63Q64r6[!¶K&~˙F"D]?L 49.5%Y =7pH`1],Y1W|rTMOweC/0m|L"H -Qo\JhKٍU}_6HϵIӹ{n OO?|{e/ʏU{Pu''L٠KT2^fq OhgK ^\RQ?& -lLjwxѬw݂{"YMв֞\;Tw}˄ nʦD֤ctB5YN7)S92 C'NEEC,PGI1YR PJ[rY¹}'}K5Uv Y/Ηg1c|I'SCR(NYd*R!Z2_ɞ*!hTAc2px3H]}=@]_Y0^}gwt# cOU EttAVJNSrY&U+UJJE1HaU@5ikwxN|ҹk5zC'KԘ<^-j3$/K5u&-Qp5 J暒Qr4rn,Am@7dK[>Tluٰ}së otxՕ`ߦ*P'B2p5 (\R' G&w5\gZ׻^<|}WwVPr9꘩{.+a%R!(Pq9g83mRa. $rt >SWV:rk>WX}rKEGK 2؀9ZG@$Ub\TDc+شB-h.YK}6(E[%XӸ$.wBly; -OU+ڼGr꽳ݳҚ7y(n)(A=Ǯ52:ZVf$+̂J]#EOP)=@/q֯/qxpoӡrΟ}=K+3FNȺ :VMi ӒLC5vDS7<]~QmP.rF/Pm`C߽yݏ:6Žў%GVg  uDЏ fB)7^^Lu)6Z2>u䝆c Ъh](VED$ -*d/FI - Œb#ngT-.uGܷ0n -B39+r?%RC]9˻RzU.y;w;l`Wqy-g?cS_iy=*| BKZJO6>b)MSXT*4VUj^cu:ZvctWn`>ӳ~˴[9N;W/9'%j:f8#mϲLviTv:^֚ۖǔ.[Wd1uV#eߴj%?Pbv$k4mv!&2yҶ]7tG۝8 /t)]8IWN0׵^bvWrRsLyc?=*˷ /m $KQ TL eP`F80+c_ĴŦXJU$& U% J>=r25j"#C##KnD]=q=ɑgDGw>ѝW!p|!ݲ7=^Jp|Rq^>(9!Q( HaY1!;BG.;QȞX?2n )~c3:Q/H&à r"d(|!/1B?T`GMG b ֶj+}<Aw#` 'p3nI`ǃѴ(ȦG@=# :d Ry=[9}Ʀ߷ V|aStD}Hp GP''C>i>ԓ}<9S|P6%_z=P5uv1 ġP/r. ܙIH@Z^(%Q| DJ/&8X`a:$I!a xa;{K!Ȉra93aӡ@ -eqqu1Syn-\Hnlf裆XT?go"aHi9C -crY3aaH @FVҖECm<$ 1n&x k&i}V3 #~{Pi کaa5, >.A C+Ĺ!<20DC:oe@Xu QS|pS\(nD{;rPo,'!6@f A c8Lש( _6 hLj] -䛙āh'#NwY3a)X<,a&Fc42Q)mkD,Bg_ ܒZTO.P&6+%_e- / _'E}4pR4Bo`,L\jV[x~IvX%=!+9x-7+__)[T-=YsSn\V/*G5f. 9sPl8PY^X#*EP.r`i^|onI)k-筮EҗvElSecM셦Y֓~G>A^W֯;8"߇UcPwGs-}5bc)pڳS2$kw[4UՇ5wtO7T]Kzuᔦp?VM63rz\?Y Brs9z!p2;ik#|r[a[!g=,Ʈlׂw1XWef ƫVD)tL^Nn?Γ8rFJF7qxg3Pr|UO3& S5`їƽ}/0~_5t<᳷9h[C䙆xO$_TN r0󖻍\g'9YߎAZ-՘MOd%LM59U}v!5J@XĖ1fGyPdвp.O80v9f< smOvcb8fZp(%-$T,,5K34HDuQP"KٗdZN<9\vupdi}{>Q `>7ZNHM$RCÆGda+2ZB'pĂp2SHr] -j yhC_K^hyb5b=lО# pQ,[8XG*cE_ODNCVNš)i8GU;ۈ&_HfPHZ!I!q"EmB"~>"pg#!(Ohg3aNQ4NB8kC{-!v,t5J d @T~|p7c1?#HKAo*V"t@' @ P{}dY7` -b u: Z34b(@,i!֡%`D(0~N} G69?CL  [(B[= q.Ш=4Bqq%xg`]y=;{5x5,k 2)Blp'0\Wx@c2;U ._ QM;#tp[\6scc~pG{ÜʘT e0} 5alZ(~'gYb.cny8=לOO11v -{*D̿D[!އ-L쑾h hśH 1%:K谺8|H!rP6 ca=,(^%~wBx/[bE܋=!9a grܑN6C=ڵQTUnE/?%'bW/wsᓸےRȬCAIɃL;8bXɜ!|n>sZzs~Ē7 ѯ4[؝>sQSYr_?ߓߑǷKWҋayu!CNF -;ڢ0xǡؐ|Ѹ#i{KcmJqkjobMZ:Oo tgw%;y}w,p>zݭB/M6小\!8D߲^7ZՐUPq̸%5:=iszGRUgcefobEf -b,g":z_Jמ 獡#NvF:unrsԱLvSQpxWZy}&6K&w*簩2yCgu9Irr{A"rYLtފ#oserɁ`{&^ɛu6LfJSdSy:qMP\Tee`KBE~Cb2isjrqؤϷ&,%!T ; (]@{:!PRB( R'DD H*" qwPagȇ99ߒs9I$(BVK S%> ~"^=7y^as`&ETSYAʨcGq'y3좂s‚nÔ/.w-XOlDde1%PD _*s:bhqИvN~Vqt`~xv>ǵ6Ç_TSq4Һ"މDnW49z)p}8EGדrlD@`VFExߡ³JdT=bH2`#7>"ak{?~л>;0y&6)!3)l09l:`9e̒ (FPyyX햅#`\/X˜pQ<cr9Ut(PZ=/2*PmC|zu;+lrJ'&I̩ZgTn$VlDt_$ X' ڤEmۓJper7ujRzdYgg穾P3Qֵ]SNA&&t.C#I.^hz-;XO#v>c>N6nkRlrk}xg.+98=7Q; pa``4ݣARP.F}CycJO$ ]ㅾjQPpav:MaC/ao,lfʹ%?wHo, ןDY\$o4(^U5"kUfJglYsVXV^ R x_md-;]:fֳ{l`^`h>jd~rgc" t^hXx@@!`CӘJ*䣃t'w9O~[=>*~fnsK;jZ|[=8t#42B/kd@su:pPQD-JSь6t7t䌞[_Ce!S -"gf(`*`Tݍ=.ne4.OH"Q(D'P\ЈhCFG t}JaFK!k.:7ict5A=Ș0EƬ_lWXi?M12qJ$ވ:&$*eQyPEY+:긺 (# ~| G E 3N:8ͺ;8Oz@5!8&cǴ -|5;Gk :{nq#x9g 8fӸ/<.ou[@1?s!p@3 if o^9-j y;Rf5@nrv' tR/2}e_^S\?zqfLxÞ7$>hp ANAF\2r6hjіI,[t;RZq3~.Ӿg\^3E&$ߑN_%| -, @`iRkCٽV@8y5l 9H:ff -(wĬMқ\?'?z u:Lw~v{ S?xJ;oe;5CB"/oSlKlYk3)Nd;9ut3{ܟ1N|ʸI/WIs >@e@>AngkJXO]%i2Bӟ֯eǤ鎣2Մ!n 1!ktkk:K7J?(}\[0G}Eb=l AdHQ@[!Mڮ{W{zn4yX)(6~;aj<ⵠ*+6EI>9?nj3qf K10$H 0<_^ ꝉh4 ]\ܒ\w,_!5{omwrqqQ{/3=.iH}!徽jϾ&)id`Oˬc6'vMUE]sz=H٤[ ע/Kj{FܕXRgkܴ?ZWLdUE7pQ=’_DőEQoQ3C:~AW= 1%ޙhFIiV V\-[SOxgWVS{zTg*|$1ZpqXqU_-khbOc/scs^r⦅sx!!n꽫QZM}y6Tvnj -Ҁ' ;#=T>)2U>(I*ي.Q$]qWVS4)u߀`_vP@cMjM給`:IkOk[ -lZ -ϗΉ#j3I%iCibVvr/]$8)NIC5Cǝ/: ;/1n&K `ŏX4jFtM@- - aPBzVYaLYㅘk|kObX3ٱ~&6r6ȻOOG6ɠDW9i"ӽQEhƜ ,0b*e9,'aՖS3c3{DQ4H0)ځPqE! -<Q=0i` 4LOt=.a.ʰ"aDCE4TQDU8 cPf([ .Rn(ASxX9xG r09ACڗZ1Jj ֨IGբ8hJ*\'8(>M\'ot b`8dLT;YR6*q~uF.J=QrNި?(KGyR$%zQQţGC1 0Vg်Qf@e;b/CxbQި$D*,,  ]彂w9zЧ[0OE-z c LZ` -c16\0j -#ڭaMzo0|?@uDЧj*[>*/x}P~|ݣ|ݥBY0< }c% \*fS1wM\H tdrtqƽ7jCd n]7{G}^kNtiD/5D/4Dj=|f~Rc5uԙqIDQ⊈ȾCHrsH }; - -#xZʴiZԱuZ>sx9||񐊵n.5YMAJ"KA 5 *#pL6#-pͶz7ӦJWn]Rc&S٥";H+,%p jHVJbe)Qa^b(,D y)|Z)qn3כ X)a zmVoRG,K)kȫvٕɎ|3LV&V%XU?@Uw(1ſ!1Ő(ZeW0Wi x6}=A{a.'M6eKȞ&!>6!$.ݙ[+tOfUUFW#ȑWy{R"wypьÝs8>Zﵡ7"fi-hgMoKKiIuHl7Iz7QCi -n -\+k{'B>p6?7{qevCd]@?ߓv> eЛbw8Gv廝xw{S;|)W[E?r/~V迒g9jfjk`s@=aSN3w1_3"ܑН]QM^i@AH ,!!   aȢ ѶNjkkGfܵ"hE .qj3/s{{sfW/=4rl4:&eUԉU'br(PV_}P#>NW8,9u >K~i]ԅ܋/a坟ÝyDUD^Rj NOD{Z\oO#"V7ЊwXN)iQOͿjr˹jʺZ\25/$7'6}&o 7}״Gm:i=ic l:;wP^Ս Ϳ㌊|QMD[}fpNۊ<zǷ1tmk|cm_blԶݜǸv ?6OvwP;;ye*pALdRԩ3vΰOJuvuO*vt/v^^ٳK޳[s.=͐^cHzak=U>GhùwK[w@9(+JcԾ"_L+)qZ;@U=h̦E;ȇ#J$ëpKi -נZV7n7ˁp;8]~QBi8 c>H7'""zBJ*'T"}kC]dR!EBXd/48pܑ~p֑ ͎,xx5quoC('u"4c )d $L.9t?$\0Q ‚̷C|n Pݠ}f>g#Ѕf!8w - -W(|!g5q ̤+$a.9N )Br=H$$(H-@TPiwgpZwl!_t1 b v{ cbh01dU!$Ą Va8*Ĥ@= >re(>/}K _2AR]`O!tZ -WR`HR~E$bP -ev0CKq'@7' - r\>&@~ aأ+{X>߀8rɀ7(qVH pIj*$&9f̙!vh7z+bMDbGd*FU'9oTת+-Πӧ<S@?IH䓐0)IO0M_=_3[|5略3h5gx/4x57xk}10=c ֟.)~ HEnZ{4:ML5y$҇V'c0l{nj]^An}SwQDMЮ$M|[:A8n@,ҘHB>#/~|qĒ2U<}̷;u 3+ޣ&Op/Bh3Pxtp_t=ᙨ*рK_걺I& (NBQ(e(:\ Ź77ǽ#g={ U[Zm7SH!zʿE-!ƚ+ƛ9ji&"N}} {o7sY Rʳj)s\ΞMoBVkNŲZД!cR֐ȧ̻$VqSmDcYi@~<4VJ' s<0,bK%!dW"fŹbR~]ʀs> *SINf패';Q̨<Ѡs,AeԽ"xBBZuh)MְBXRȶ[ȯ)\.<9q]QMi$((H*"@V,f5@ !LK@(h5x92NGǶsȇ߹~z}c)̓*u96Ϝ e^*3WuZM?YP2r}mob ZfkVPa~RM|%Qz|Ǹ$~(ŵO%n -%ZnUSOPj8=G`ߡ_ҥhܟ)<fA%z)U#%ܫefeE䶉ò3. ҼMBZ P+ڰ¦9$P%+2-%&DqlZ`ߗ+ ks9l3k2"Z*?﯊"you@+a{6 }jKKKbA*huE!j iTo5&#YP>e~L`C&ZSXQr5\k޸qM>ʮSkMmeCJ)׻_V& *W"5QXN< @>Bsoh\!B-"y3$0T`½z5:<̶ɖøPFm[ÉZUGJ>EMʪ|oHY8T*Wy-$W6Ec-sFF*"odRJ,48X`f:` -ؼbt̡Bpק{+y~š@~,6<_ɮdUL2d tt[Z?tBɐ!䭐\oJީr1p {@0uָ]r]Ky뀨1dzX]ksTu -BV&*)LU*CqP|Ce¬Aȿ!mpLp~Wy z{ô1){˻O9w&)HWԖu㕧4K3!i03"Y3JJTϑ+ r|ȭ^:OuW) {hshF}p|f+iZ@՜#H1\%wc홗.:3.f$p㦥NNzj5y˟>?}?Oq$6nfDgpG p =I=@+B;D7xxK>ؼ04+6g|`rŁfڵCk3eO=IW_zFοC#fwv~Qir -os+ k cLV-&۞˲?f`;Dx; ejgA'зhv 7|fkg/] z ٿկ{x`),@ [ߙ@C 8`64f1ƳGm4c5ȵ4W+jv8N Z] _;{ z LpA8"4```"pP, RFC` -l¥zb'&jA'^R -4TxPQ HG</chm6F&Vjr -l&e -#n#D -eSNCCC@:*"=S,kP%;LQRBlt$js_%nsFΐـ޻9sG^xWSo-Tj}'润 MuyVMg/hF5DӠDdEa0$L!g*Si=j0DG3t9G.ߌzFZd-tm%mӅZ!?9rNGؠq;EQ=QGNZ (M4LfΙIJz{zX[3ح ټkqyVcW\YgCSǟ"8(s9~P~Tx>좸6xx!IM8JEo`iǒ7g`Yûl;x -ʩg[at5#}!UgєPp6i 6-)>$VG7yTE_UF?UcP=LxI ds0<Z@{-ΑR.¸j8]ECF.-D -ǣ_:N N&!Ƚ2~"RVws܏^ZqO%(ߓok"!dc@13E4wкXD]c[lظ ]lq|,úՙ3 -\+ֹM.}7מEIRN+g^3?*I1ބS8Ä́!9&1<&_b7r2Wi1_ì͍dIUTfgT6k^QIɷ<^3{{j϶:-畅w_u+7nJG騘=C<R}ZVry^).jpdI*/Wy`vs-q-[ 5gdBV.YMY2O(g6yK.omZ>a"^.#NzK\ g8@U+beV%y:Ewn_Bu.Ϩ<PD H)#LQA,"tІFpF RD *1XQp]f%'nf=G}s=WR*x-^nAIܐ84wQSQQ;aQP_B61xCTT0^,p̕_-]Qךnܔm^`UfWH+v)OmRIޒ)ܤ޹oEDBLH$ oA26.98]pfnt.*[;hQ]&8+e6lDzBY[Q+HouSEg|2R>H{-H#BK&E20\ߖpQ )qXt)*+4W֕V"ҭ &ۖg:J $\IN^vNWFv -h[i Q^R"K0T꺭bQ#U+,-}).$)" -&{d1pq5k7٨&+46r5 j:^q:(X̝),dEK9wkE5/snAph}OQQQF_,Õ2ڃJwfm4Յlț5{V5d7DbRd+>6)uSu墈&ކ.uCq~hН) -Sxgz7.^܃ZZi>5Pt:2e^iRuI*Knm7rKs=M2 JnHC{p OpCpC:=zW? --4 ]@e*{磤ϖ)sg.VY97[pp֮(f):v!;ikw۪n{B.^R=lRMPzA]H-u̕IrbVύ>u4BcuGLBd.XPWvﰢqy7N}7{;s& 9:t}C@HĶQc$:2%@`u#BF6_s*ppqp5~'[-LjL.7h2h1=D[!b܍Y?.b/Qߪr#icؤ#7&s,17]Կ+_6dǁ\DU#c$&3+Y+&lU}'|2爦4SJM&-m):S]{ýqwx+}P2 -d.W)6ncmm,m -ib191 qBG|KV@E1aɂ:3jQ!9N,vP>'Sߨ־XԤN]O}&gI}D]\wa% R)i~=>BO͂82ٙ!.g.CX~خe6JlQ*\iTS@H.!y`b FdA@A 4 aJ"cD'( -(
Pϱ+߱}`:{uI ,c`#ց]{I|OdE?Xc{< -8b¯37*535.ClU4-B 8۰::paQpڱX'v1e| 2F9#a[ lA{̷Sɥ,s0\; -"_ h@ |9 fрW2:pb5 a|'&Gq b{̽D|^'Fa7BMhXt'=o) <_YؗڝW(5ܞdZnQcU!-[j!.z5{%-dp_jI:Pw1 d_hwWеL*D:臕fJ>Y)hץ(Sc +e&Ir2j}S_l_W- TC|)3I]':&ͺ(f^zLd/.XBVJ/)y+nd)˼hYh=w2٬ )vQ,yvi%)YaYYWCoadbτd`Π6AfҊ`u ؋M,hSbE nU/*H,X%%.ls>abAǐSN7=p w -%!9kųx)-vbE8{`u,= -*̃/ŖŔ fL7=[+"|WhW+BwK' ,:}mDss^R(shRX\)wPCTffU*'EL;mV1$bل-mWC_^!S~\[~ uI}q-v P߻`G)@N9@ΡKհSk -km N3<:fjm0ormڹ55K֤Uk|YxWWENѨQ?Jw0%wrf@Rɼe%ǘג3Ly)P@w_wOqץu*N:ڕyw[6~_U%1/;{xb ؅>K= c.Ul&׮VsǭX[-uMu^uY~%U4uyqx"*ʡvlC5ިxxŃJs`Vm\clTf3iwNl׶ݴMnc3w<>]لmqN -`TRiyFxs.q|r۵yyo띭}w8>9|nrolʖҵ-ˤe=UΧ䋜o)`"<#“QZ2\b$D+ mk ݾKvxr~Kqf(/]p6Q43` (; e /r*x> ].K< ^9e>gx:,fٌ M`tWDL+p`_+ǐ5|U"wxP w`EĄ+͸EQ"\!dAל8#P ܆Vk=!㼽ay4gTh֩ȑtG] ;z6& -,}sQD%IV%~pYJFii~Nu?V,'ZBsS` 9}yt{\T_b޼1zDw5Q]_Z|#x~sKn)$U9 48U*婄\C"⁒RX?"ZB =zOᨮFgyfG*˒V{3f{OBlMz 4eεFO >pZ`JUD/y:Ľr y̿_ # C{-4k-CF(^ԽfjppQ0f|7\^a3d{wUҕiM դ 0ь]}QNbWT.ŪUV^+1\"h:еg=Փp>j --b oЫ*CH׵Gh(MAcj1:QLtwxBOg tZf݈kVߙ^b]jP!SXIsGN/l7O3y|-0?a LYB6b>@p-3(.7RFvsնD7ó2?YWyĪw6vXhŽ]ٖ eɳјJgg]ȳfPQ%L^`}a`aQ PD0÷Q )Fal7Ls:q&3sޜ0e \[%%I8ù s>pٴi -]ʞQK @ ?IoUWp㠻6DC{=7ff:47BsP u~ڪ`v? lo>mnVGA '&:n1ߒBӡC U(| YO"$=3!Q2 @ׄBz=HfX0IF)_u@wPlP ( PC2hM? tB"A -kSRsӚEs@a=2`8Ȩl3q}JCHb >$L$)^>8qZt^wK-uD'3Ÿ2q'vABpaRNH^ɛB~ CXHPCnnDOZu T 52^HF"$W셺=W3uЯGnj6{ΆF.f#W'~#{;֫e=֥?:CןdNvå_…VW.D.rah+i 8Jc=a} Xa2bak7lcwݿfwܳmЗH=_2p5YIr4'jqbjQ3o7>xDxG#G퍼y13K~{ԷofÆ_$TT.nTwR7\v43g7p$I42w7y Y<=Aߎ~m1[b~(h-hHh\`%li<?"ﻝAtWΰ)83Aq^aQYpZӀ4ۥWsN)LjK$4%Ygu 煵Dğ |1SPk_yd`ZT[0VFr2zeN -K<׭EhJ3y5YxS}k]|tDP%VHEfuIcQؘo1}c%殺9Us0clƐfӧveٷ͙.J[}FG]z%WPt!A|BT*˗$S^X`EаtP7)r>0Oc m@o6Sm9`ߨIvV8ת\+Urg̬-l/VʣBYNxBKdń3_ ܣگ逋"`~ǸCBGGAӢñG%8XrӜ+wcNg3de7 }|aQ$G}%@~HJQbB'Ry"es8Ba+z|tٰ֠iEU9H.%:!_YW˫mks{H=%Qi/dj )Բb-in({HWFG'5ԗ25e;8a\sI}iqp)2t|b -~VA `T;!V.J亻r'?$ -K߱!u="!{KsH_[p"$bP[*( b ݜB~xmuSv%2MYY^aS̃$0(8qKQ[Q&']%3ZZ:WtCY?֠ȺYwrpnvC}V}^8vw֕z&Vk}j15,(-aW¨/U V]uTz>+C4-(lA~*h7#};jdEqmim2Gi9%5\y볿_x,?:_/aa ճ`>GSʹ -]=m]]@^7^/dٿA0Xnb>/!W[cv 幷%ޮB:B:㦉fz~t.tV.=Q7![@$oGx(3͉OF"Ʋ9u5ctmim##?r>o<Y, Q}hPv ec@¤b=%F:ފ] gBgb=3) ΙmU?nqxkzq 7/ޜS'Xc@ -v>ʵ sH:D&u9_[sc>oχ`|mq2oTh3q6٬܍~Ivl?ᮝn9~Wc2 Ng9ឋ@e.,x p iq6.a]xj_Ǻ%,e%V/YUKʥ#LyFr6#Y,/<爯1E#T{'trcIICm׀759`w -ﮃ^ł_9}PV )x=χ_u1>FH}oM+@ lzx> չle D((`W% 1`A,H@Dņ(< C-O1D!ODQDĂg0;=;{9F 9PY0s C Yҿ#DHNb:D X -ACFr<(g3J,Z=X=OZ8 `] h%+"6!j&;@:5ͣ1n@hm -}k7jGK(]48Zw }0`W.e@~5Gn+jM :kRsG?:=@ON}DoG=b{}`]$7bu)bѽ5t?+f 5(F?C?b>`hUŗ`RwŮ`0o4H%$"H>)k xCxjth(m0k0QLɼLDcOWI%KrW߀|ExNyn@߅BV5ջ ]x)[,<:t6ᑬt7J+&BZ7pC]h2ehTsE9塡|(T7Tj -:U3PŸ@7QMVen)wr{q]yMWՌCkp^øZsƝ{=fKm`f9/c)QDy P+Kz?'\z?#qnU듸c>;sC V}ҮBܾUXfLXD%L3lw`φ1H6G[g\qǜqy,wy"y_sW8-q;-v\#,s:Jvv:;9:wlqfLm|N:h{u A!8bnqm* -[u_epKؐ**2,m7֛l1l5)0.7TJ6 W\:dk\^V2Yg`(vF#9. % }#cwJFscS[ŋ6-X f%YZ=_ڽXU9 ֥t'+mZ#PM88>(cEV~O8qT oDѺk6+Y"ʐ-ʑg{fzmS,maeye//L:}?>4sЬD}>͟Po ;`k@xry`A1Zѓ٣L2eit,ET-RBg}[~=h(1:ӑ (X2 d 3lj2|/N&I I?Wbиlqr1_5׸S3Xejf<.iSGCp" -80(ٯ[u^ȉ̘AȈҢ}QXqR9Ӥ'S E ]|j)ǻMk"-&1sT?pjPEq췍Ҽ3NZ,ҿqBj;(v<.@0wlpvL8!f)xy\ԨLȵ" uyGEuqwgfd`.誈i*e60 URUZb2XYK(nQ@M\)GO-hknQ999s{}b<31=uO\u]D1D[~:s[<ס='ˍykP0e P0I(HҜy2s&3.N#56CiuXShvNޠGGp>36o_kE QY|7jdYc?4bIQ4I\tl-4 6)1D")!ΐc/T+b۵ \z/NFŋ~>\3T`'ٔuy%&G,5E^rR!+ea򗤚a6IѶE -$}LR¤r'Vaܦ 7w 3wY`%Rf5Q|'&`_ԥ;I 2ۭ^8cGbt8Nşi kܭz a5_b[7 W`=.Z -׆]4T[]Mo:`+@. -L p? f' iA̓0 8 ׃S -{t{Ȁ>-fn)Eϖ:4@ro9tXr0y TO&`R3`Q19*hZ]nusp2Nm U{0C{2OAy -vP7A%PJ^uqW}@w&cN7sG80u -p>-*ka{l(H/xArA$upup}DwPA;6yDt3=S-iw8O.ձ]#Zr_`HD)PY^K:_KFn )kp9}5O= G; pKŦ@ ؋+p By:xyDM?} :[KWO21 F.~EG+#ɗK q_po-~#nT]:˪^nb -8K!N>C<O}'iǠd[[k;ϯEf\ wNrgũ!p/394L`""}*/@%Spk6\KÍ8†NQp: -jp2`9Nű yy9t>`:G}vm(/cH?5'Ip?P;2z4.c: 'i8ڍVW0.bfzWt[=h/ - n{h˸_E zyɓTb5 O7?OEOHhq`t Dg)`Cʘ!]Zv{*vkphsѦŭ!CΉׇ7OZ4gI{Y*w}? A/zPg&2S:Qh MP3}:5<@SnT6hZ4uuqUҠ%YVkNq+5WSHOQZ*HyYITꩤމ&8biޡ'H}1 -"'b{d86Gji`6D3-vv]m / %^^%^DR[- & +[v\^'_H {BWG7&3ҿ| )-F{lM16ͱhIbƤ2l}C<@,L\5G$jW3NpZzfyմyQG}*.*D=P̎NQ-xyO |JOi:D'mxZѬSQ7uOg x $>[TujZ*W+F^kSRΌUighUjP yj9n/L]ns!I!X2)!K CmJ,S,HNe'e%9ĕىeܬJiybLR^[(TĻ|~$A& \9 4{IF ǪXnZ㻨1b12h![\npI%\BZ_ +/7+)ەN}?&zAI(^s?dN~7_mSJ<ñ TMAeZ$Sa2s -[jfKS\q7K]*Ӵ'Ԥ1n},)F??2 J/W袙h!kS.s(N9]Q;yIq#IlĦ3Ein8U(1} -$pGn?cUk(b,% J,v-I.. Eu݊#ʘOʘA'GHotE,9g0@X3}9ݓT84ɬOOZqIP/y_,*ʷ8o{PzN-gߑn1>c ӧ#% iJ-,KRĦwIp^4;D!:gk{Re܋$$ӻ0 -Lg6)C8cl7FgaTV?x B\,Il|ଥҨղYeY&rM"<'"*WB[+XIYIoR٢M^s=\wD\C5`0D"83ƹBqfL7JHCvKCviH#iȆe!Ԧ.e.I -^ ̦{~F`8[֘B99c@"u(AxI$ %_2JF_Tf!شzS۴Ne*Kv -PrQ? -_H -\ la d5i!݉tOR r+ZJWޕeE9X 0e,sòb 3КB[m(xuQ!b#IY}XLa[8 l5N /xF6#n7LŖ-lڶ* joAe}u͏Dt##s*g16Jҿ< pnPBUNP6t>2 kgBCfQttR@Z| 01O'06 z? 'Q@86!=Õx-~ 0h兠V>xڸ\[ 9/G0+"<5`#Ha 8iAu#y㼖➼ ŜG;/"WX_B_-'{9ȍN2I{F(;޾^S@y\|N u'^5Mw6'݁t$jV; . ={\\ ry =f -0^-z~I8m|E&w͜>ɤDtح;DM"P2$ydIOK exJVғ;؀DW!-tUU񭸆2Gq?"G@ο\!/"o™89iͦ=zГQ3pkMrpqUFjFgъSm$3‘O"%Cpb.đh8!x ܒNuY"o$[ TY:Sf*/G|6Eр&E :=؝~@JDd j|<\5x]7\uK18 Ψ)ؐ<޷=||E>86pcQgvǡJ? -`>e TNXI(ћ`Pl67HCNI6ܒCHrCEIίx̲\fimc?p}a2lEa$&4lLY(6COBao/}\)A55J .{]8..]n r[ۊ(%*XԱmSӦi3δv!mӴt2M3Mil/2f9ߞ>f&mJ`OfO-'_Ʌɍˍ "ܱj}6p/{Vp\qz܊5)hF+" ӚjLjIMs"fÙ!v43gNsCܠ"\4wYSe}~@DPCܦ+;t/m"hUc*7'sMέdFNfXa젶 i{~0ק=hgnK.UEg_  yyBrpeCmnNSgcDǐނA}ۘ~#ۥ悺\noӝQ ~+BY_٤+Ш>BIN1@QD,60aL@ش æ4g"dGٌt*tUVG5U~B$Zʜ5!M^Z{&Mpݵ6W&dw*&]g] ] -+"\F5uWep2CiJi -zE{RpqbS#uEuSnCw}jwςb_c٘B5Y3xwZ. -וywy_sjJ`&FOy]7Gif-PO՟ -f"1j=d\?_T䴼n"[n~i~-J#0GLQ;;ZPŽ0wn)j2@eE~W9tYV2s܁wyu65WGyu7HJxZ)st~P@1лoA^nhRqp@P>CfdJ U!#:¤zq65qMMKr)=kJu.ӞF D5-ʞ[ -d!st#2ƶc8ia=R|+,a_؉pH0ç] M&)|II74eָLZqhcq=dLO ej=N'$$O`fbI"qH+FB3sH\3oFH28O1p#Mύ!Z-v87 dRLL=e\,'`f< )H\8شhlX|s/#~qxqo n=<9) Ch_$uh -ПfIH^6]p) D"\ށX"vŌu+XEJʕA|-p~I|gėPG@pS%gi9i%ҿL/וP1M}SQQB_CRJSNhHER !|dB29>eȲZfǚ550żmw\]繟њ@ҚCeSeSE؈xxu`E D994|Cݬ`@c\ 0^_o !(`$' NRp>ٜ69mV<Z[9ɭ u;yr)ɘ+ƫf0jRӢ P676 -}@R;Nl_lL:X;:8 u'F7yۀ܋ouQ`= PSy -*_6XAEl<sDw' L7;0x0ZSלV/R"ȭN'w97?=G3sǼBOٌ<݋*%_꺑aуBFqd$$o+%9V)6 *5 Gp-'.o Y]> C+"/NyYG(2ꬢ:lΧq&9[<`_Gz)s 1'#`uQ/Z)ʤN`uSJY1ks4r.f~/Ȣ!ӝ7:WGP3ٌV"uC.b,lN%3_gpqoZ躙Y<8I + ᧾dJQϟ0ԊhI>K\P\͜E140M\ts :k42JC斒e.F` J.$A"gѦV84%^:e^.R/NZ*4؉zzu uawc3vE= 2,wwȍ>6^X㴱;MI(M"pX2 ʏqPze6>WNbOr۱t?63/QmvU揱-xN,+? bIaJ.l?=*q|]?o쵘ݖѨ)nyfQ%*W`U56YQ1 ^GXmnzxj3%Gyg{GFhh:!m3;m}PcjQevlMv`7v9Xgka}9VoE{X^nA+'C %bY(zԿ=}bi}z5 56t38zc?*ð1ӱ#9JYXR<,u*BSPۓ C%(Cg( -<'bg$LCRimE/R. aǜ|+W㬰@=ծL?2ԡHWO,TcNiB:[H+~vHZENһ\b͡\l{Jza|7[ +Θ_!90IB|B\`/.> \/E(TL : <&JAigV29Rz)d>rIv!cv RC⎙!c1# !a ؐHĄ -ѡIBTh0=4W -mSL -'-kzaRYA#[]dK3f H0$h\FFhM04ᘮiBdx0%|09_#M273(Bj+7& -"0#2L*8y2T2E$\Ct2_ۮfFmo^R=|yߔ-}ԋRR-)>Ϝ"3*{$efEim4%wW^zQM ʶ&fPndXVL#1Z[W,2Z2cI>&6j!<@ۖh!Y>q4M`,e,x 9*#fT{RclO8MIE,%eF+amڭku!u -j[5Vm8պʭVU_Z-mߺC[[7䷦A-Vsy\۾HJ1eRl4^kЯBnfs nԢ:D~aj^)K`eổf+]M"ˁ샓4(-wZ^;ir) 㞓nwF[Zi&sMk.:⽏B8jijpkxju-HN~spRb]05g9#э܆AV -xE{M\0pvƎ4Gh 1.::6zIù:bQG, r/ֱ>[#>AVG%h8ٜh[mӝihml҉GccPϡ_ONIt=.9_9%tzuR glf13] &;Jw>%}iBPWf2PWIU̫8rf`Db405nt;xZj~yl ҧp>HKo[ȝkrf>7vߐ@a5쇃L  B,$B&'fѿHi5\Buz}M=żtC:~5V)@C(M44sћ 4棱XׯuSDg-:XsE]>c}X+]`F>/jh   M@'_\h(Ac{)ezO=lK59cnE鄩zj>^TPnBHȅ@B.@!B- !"BAQDTRuκεgzvvnݥ]9o|=y2|k1;nmmW׆p%f.Ōb^pe^wqbpGX}qQ,MB!R}[;q+67Dĕ8.n0np̆vr|'p"~b!MX‘8p1Slӛ+,ejwѽW6\ڔsxiXJ$+܂d'wc.#2-޺[b_77 I}O0vG1QݟP{WH{1jm }=]8c,Pxub'k&j~GIF(}Ls1.è( Qv 0 .E!qbz]BgNtW2)ZXKM於C~ʚ%X$|@5敏)pS=e勔Ǡd#$Jr#K*C@ZԂvenx:) -f$sSk48?&"fE9OO5_{Hcq2Kc^2F9)_<Ay)(ѡ]QVE9*(Mp+Фtl ;|Us^lcQQfU=|ƌsdL3NY)GQF@:,xphRRW€ - WzPW [jƙEsjN1Ǩ}|H@1jO'Pݛz49D&N7@9z_ЦG t|4j JQU*;,:7:?L>fԏ /1*Go6Gg!=GrO4\Q|̒մoѽ =?eiѬ_> Tx -`5\@mj#5uiBuc:NVefZq1^Tr*L#NKT֬`o+&&uh<͔zSy(CC xIe_3LVe(%dtSV@uʹ[hUIѶ -X6# D(ЯvB / ?02xmY/sd?q5iݧg&#?E^`!! rB*d lnFf2SH/!-|H }z+NRi2Bz'6@m W7Dd;灼i06@0{]1K%5edX+aXo/m` ƣP;612@:Xvp {KO"ޣbrϯ.˥*4q~d%dԳճ|$$;G؍=g~Iރs{Ecpnk*>'͓|]%5!qw4V BB%}lN:PBp$aIvg9s~DD$<Ɂ' =Q%_BfjDd{=YpN')|FLN3,19%]`aB.(}INPWʤ8xd8Du:1>J;돟Ч[o pp p&t;1({@}>np/p_b?'v5Q5M+[4[Rjcr}Ǯ{GﱷEsS{^ =9כ `.AFhC+qrCH_i!eWk2[EB ;ɳtUvZ+~~vuGMD]쟀F3A#bÎZ̙m e|??[#(FXI 5hHKS?(4HИ9hb4qR<_Zق5b.@dP+^?jFؤsbguC |h4)ڏ$/{;vk.rrkmOqR-Yۤk#ވ ?;@_e.hza}D Bc>رlÎر;ꔏ<-zUv5ZVJ*T)W x+>hv@Iy _bh4ICgV)B^fUllF-n~TTj{OĎ\봷hh{NC-U'5vk}?UV0īܐe-5LbCfaJh*w\*v:"*p~9.ϔbUnܜoGEچ{hsVDh_wTb-pMD(9IQ&1S9DqpŚjdt/ a44ztc-Mh`yн\g̣:0+*"EPEaeXT7( -.ǚb&Zq_c5֥1xXҨZMD? \{0t^>|߂3s1TG9y%41W1~PŌV1V$ٍ6es[2͔-WJ3-WAMJ`?fr1 6 k`T78bEqgO9+h`U9Kq&(%a,pFIJHc0'+ ?:cx#%S3=|K!1'tTN쉽/[P%5)J)Iq$[d-`.s\ŧ<+SJM2ZbSI Qg[)#Si)ZdQ5DJH5ʜ4LiK+Rm9-QtzƦoԘТKj0;1Ue -v~ۘ7m]Č~2g V|F2-cY1YVEg56@cehKoPxve -G -r+^eti)̇ ߶LUvyWMP*սj4ʳrUS99~nբf@ pWKXN/`^ @8)a3/ffl^˹-~**uv4{Wnuٕ-thFt2K` Py;Nn{7M.v77\ĵ7TN(WRjgpG˽_&h'?mM^!A918P~!0qGBAlp.|7ݾ\Gx`K:9:A$'1 -G f:GMhI ކ* ]{.CvyH8ZZg8 U|J}'|/Fk~Eo#v{n;tk`3?M—Nñ=]|m--M< W8/t?úB9sIm|y=C魇 -ЏF{ok:KkOB<u:=K[Dp\џDlAOЕp@F=+1ɤI *!q|@#q8մNjB)odJOXWGta(V2:h䳣:FGqK]k!*WmWxvjgvBm1<{/H.ΐ}"1++YO䱜LYvNATúuLM&آMG2ӤO<JpW0`6``6` -$&!IsM4I&kf]zd=Uuӎv6դQҺN:mkUv޷dz{>I}R/xW%^սŋ7Zʥc:\G&dQqXtS gb"㙏5;e2|+ -O =.V%?{ewV,Y ,de#l33a*pN79nek4y g((FsP;."7)R.JŎ].%Yˏg m K(dXѢV 2X4Lq턶GIPݦ2=Ke6ҿ7Q׾H_Ny5K/Ib$SCrM6MNJ)&X:@w8]eos[<7C_kҝ6GYyҾLh_Fͱ 3k6Tmqeioi⧣"D{(Uh:D,xlO}fۯ_\DVyFWf/k\2,'XL5v IM[aS4,d +48/QxKEDd'{VwQi> fѩ6n5zqmIޚNuk>VֶJTzx#f(-Q[仗G~C(7_eJ"(YRZ X;TvPљN3eՔ1[(80EQ`#.x O~S -U..HgI*1'k*j;ʃ(`KO>=&z(쭥z MIv Y =DFۤ~&~OF'dDwK렴ĔDPKINA? L!w("d U9@pA҆GI#ydGΈ$ ?KŻ$ }*wJkYEHM%ZcUVQ[cȘ06HD:)y$OyZ'$bcxMćOb_O7xG?#~<Ši1"ѡ5UIJQ٘U!}z I$m8Ms`/68e|/Hu^dD~@cL<0""2 -* 5"(Ȧ(( (8* -+˩₩1n&DQc%i[5ǦMjԨI44>99=Ǚg}T:++Hϖs''- ŏ;q?>Əq)S&ժt"_u~uyzYWz+TXGO~>/~طb-v7R(=zB>C,N)V|^)P+[]G9DFx!Ngu%yab Qh@#`52yi>ZUƏq@Vf*%cDuX;;M,$ǩW5Ġ1 -㱟LVUG$oV*V[rcգ_Ks4g [{/^g A' -hEc)hdc)E -ZV,""[.v._iswr# kG>>wpelwUSVw JhYG%Vu.ZꚢZL-q"|Y܊TVjZ֤y-*s?RwTcxJ1lD%G(1,V aAي /иrF,؈lCuR#~=;iAo m -1 -ǽl09C"J (EӸъQ)5UkTtFF[4b0dǼa1|`!vS\7ya&po -K#.M ̣>0dQvMvD}}GEepcĠ`Ԉ\Ƹ5qiFkUظ/MjzbNs5MSTk7IOsf`f{{K9YeIPfRIIHJWzrҒR%SJMJM]j%7)MG`A,W}́z@y>9JTqd2јTI)& -`ҧ)1ݮEXgޭX`>x7e8نV7m\30*ǔ.SR3(;[9%ʩVdLE(}t jK4l)w)We 7v2l {Emg6k|m~sn0(z8E BװH~Rr_&,K8p.+*.]tqíAaa= Gw1]_5 ͩPFs([\!k\>ZiJɩm*si-䱎jb`;6{[ Vf6SDEVFr{ 6xh$2.c}cc}ǹ}7TGKH1Ia1y5빑oz v^x2 - 3#jrK y36 Y+0;g6~K8N[ u?E\vih2@o!ނ18I59͌# </W/RK ե e_&*F;Djǒ7pjY`\ U -\eN>aFї2gl MVżuؠu <=w'-]U'mu}r uvxa}k}Ӹ_C<ω <74}tWE/JD3|t*Ш-6KANw}eE|y\Y"qyW(29?9<{=;BDzQDJ^Gt<ΐ))y|X5<\i0w|G'X4HG# |4J=ͫ O[;i$Nb''sqbױsqiRM6Z:umU]K+T(L\Mh B6&B Ć m0ډ3??~:w}~{cc/V0]b -|Q_75O op}$1s4WG - :kѡ\i5ϫ~j%?L FX0i*\ъvif/hGɋ*ɒ5Q&>d -eEi׸?-Ye,-5jԪJ-ЬyC =ij׌!ƔiM5a<NjĮ1]ר鞒ה0F,Yڬ^FzЧ}c~,lZsLf1;5mnДEami21˘F-Jn\U c>nzRqU Zju~?>./8l>Xz{f,3qږ)Q)&iU֦-,xwnm~LъksxUa -WާyEit-<3M2s36{f 5dw*nנݧG=9bVr\Ym(TO5wU:koÇgZI"r=I8ce^FːH_mUPY^g8[R&Au׎*X;EuTo͉[=?kh=Rioޡyd,}TckDָTߖۿG.Ljj7T2|[/iW?ճ@su~NB/ ]m|5j RC%w{jc@霑sE՝GT*^eٻހ_p7ά濏YjN~#?yJ -ZUVnTTeOLCS-isCO,| $[[&[=>Vy54ИVA:R#Շ}…rn1*bQe\HnUCe٢CFS]C;'Ḵ{Mb?9WY73hzϣ3N Aۄ%n໣RU_*KT>`RـUA6 j`#e )>s2/]_SIǴ0:tf|0^ B-'F)ՃRuPAED6$dLeHKɘJ 'w([*H^T^r*7C%~(cFgJ D H~hObl3ɘ*QIʤ&*Lժ ըT@aتuL.EL%*Pl܎3% Ce{ˇvLJmϳ?ݿ}" JH%:bv̠RѰ$H@phĈ`ּ>5&ym xyX{g(b5 s/w)1WΣ0JWAJc6ԔG1 #uơK?C"<˚eße.o-q3<{>Mzmx_ShB?ʹ |5[By=g®r'oϳ.0gK2{9 2{2r{ 8|oaׄnZr1xvfK04&{CYi>>椏 ~q>J%?A۹B>zƸ%9j]cF2ur9ACa?/~곟B;i8'U9@mcAg|FW(ćW$ ^~Ea{3ظ!'}q=/XRl $Ip.G&& ҝjKt>oKOlH1ӝS{7$ۘ~S M̫2ґZv>Ϫ@VOS;tF=ğI |ݞpOѩye \0]׹ i"'kL>RXf)'Z:%t,ev+-H|';!.'v5LqTa'&3iB/mt9.hXIdn9L?Ev( ,r5^qOCr1/$v9u&q'-[|c!.yds.3: -On1.̓ي -U2E|$E/"|,||\q7˺LOgTT2CeO8[S6[.R^/i8:4D# <4(GJ31yJ}P\M曓Tp$:`v [6 jV^?!=8-:qHCh(fSwԫMԡAS4>. Y2a ݩЃj -=!vA@{ql5[=0fO53\6;ܠICtgUaɚR{Xi Tkh79|uq 5D,P}JEnGBTaT,5VŶDٜ*e/Hy&)7U9]N%}Ik2*#\gsó֣T= W|$^h)Ub{ -Fʳ'+מle'I.;FY)LTc|Pr:#x>3zhL9eHc_#yVR!: qq)ˑLS,yJO-QZZRL#}R\ z@IGeǕ6|W<h5 ћȅL|}^d+ -W\QhŔX]tȑ_$4(c,J*t=TO\K%7MEF4 gR]AQg]wEЪ(* --, -BmăD3iFUi;1&ͤNkNc̴L56i֣c,d?Y罾}FL+`WJQdv|dȕQ Jv\*C ~;+ιOcqX^8V±`>( *id_+;IFYIJdT'[y*u)ڋ'/ыp| <<_h&q;(@1τ;~$J ~dʼnJ**@0 :3"$ * !yURxP JlL_qÿ~Llu1JXbPt|R.Fz#ìCH Njų#aKgpK-/p -PH9ĜE̓}O?/Q_µEgKO F+k+:w%KF.(\/Qu`;ϰ-DMT\~vPBsy&1O _?f4`9VAZM.?Ppxs{Ez3r [d!m\@̳p}jΫ)$C7XlaX?X6N`LM6s6U|RMySpw+TQ"͡|ի^3uK a·A? XWY -q/O=r, w}qKCM~'q~g<>,O ڙzb/ku?#|agD:a/Caq0&Xku7F4(8!8G䠿&M sA ";`4"hu&x`x?NsfO8)w /:r΄;M6HhD9pɈH#88rpu\,b%% -~O -y.!MwAQj@|ν:+OQ8|H❧I~E?"sphBp;C->Un3o>$}|QX5=:7j ~{=Hj=k? -Ux3z]W]Rt+pk>\P\fFi3[GP'^uz|:z:~CE0-{/J'i : A ƸE+Zd$,%ض㷋\DKè!A6]Tyxscu9/pޏ#N[f|a -Gb]m;V]a;l/nvS<7v#dr EA+|2;17bۊtf.v#ʎ^DZ=B]F yBz}d%,ã%2vb\lQ*'a{:sυ.#U{~=7QBy5df'ީ~.=$8#`; ۓ=beد~ ?:CZEKo -rzSL9q,Ǭ`#vpFHo~:b&'2B". -8p@wtұkuԣj .3HxU32_ Vq G-*3VÑG&ȃceTY 1GT5Ii -De=G(\jycm+U5qr ?'L84^zJKXk'/SIF-6X3k,!K.l-HWMbHQuOzU&.UUfRqJL/tBEp |'6\p-^~w[62UcJӔjTM3Te|S**7WUV㖫hjͳUk}Eso*!=pm`cmzk.|q⛃SbUeMRŢ -MI*NS5[ֹ*ZS;IyW)7urR٩O+fL9p{HC -U |w*_ԖTRST:A575Kslʳ*VDEʞT5#}2.5-cD55,! ¿4`$|e}oJx  b I5AI*;œVYKfnVbUQyUۺuն]ﶹ]n9 d'y^z|*|̍W%Yety-Y*R OGrjU(Ek -&-V_vl4~PVg~”߬8Ki̥*PfYI(/TzT) jhQjE'Uo@ɾA%;Ċs2T\*>W?a;Rԃ|ǤJ pϊ|THپx&')ʨLiԪP*JnRbuDŚXFwlU|^U կ+|DUݬmo W -TP *1Q -<|.HF3ńٴF4P(NiO;JN3X3.kᡖ&lAĵ)0(41{$f[3K7E,^mfv)##ψvl/ dx:4z0^oQ&R1&J ȵ Ny=/亭Mԃ>!g}6blS|s>imd7yp.]6E,`c 5YQ>9fq/r9br9c/[yfg0% .mm,o:HCYk7f-Pl,`'&'ߡOQ!zt~"'(~sbϫ5*]Msv,!{_3hl<&Bh-TlDŽ0 ň2=r?F(8 -a:tPuVr4%-|4.F&1BJg蓳q\E?OAr3!pFpvR#<+;<au:Qx\(.A]6}fJ#+{^8i=syS~}=*:+G /P]Wiԟ%.~J~B.i\:ops0^/c_>Q\f -4G5t̻jL?~ʹy -JCxЙOEh47jvP}hũ߄3,ji0)(' -L5{ #u̼M`pEWhT՟W<~`;۹v0Ŵi%mx} %rǘ as9jj=7{L`e R5:%.Z;}Q`O#6Zm/u؞{݌VlEݥ Te е/iVқbX1\G.t욱k.l{]Z쇰V+#]Lb -Y:1~6ktv 5bׄE g?RX a2)snM?ӳٮ:e05&9(Fd}{\,XH.&=Fڍc~t!셱ۦv,n/f:z43UaKH}$A+oX&fp:9/:jQ6LC8JdRruaĉc;ǗN8NvlDZs:M$m״ K֭bBJAVSV1Dm0؀A h*h6&.ZQPG'e=:3Hì1V*f젗 c%Xz>A4lsGX 㰔gKH ;;Ѩ$:u42to>.& zg=;6%ʯc³x/U|8fwcniL".|5ը\nsL]:Yuv0-WxZ(m٣fA,ǔVr vM{RaG^{jSWKVZliDҸZJJ[;lWʺPɲ1%(n۬mjS" -ۧ:\G8N -6 -CC7]'caVDY]-vJ~%uJأjw)UԱ@ 1E(llVG!~*h<G -W^k[KBzNUy9-粼u7 ;\MZL3v@gi%r1O5m - ջ+rW]'OWT]HU+ީJ.Uq}\Kryr{oj'荓@.pm4$x#FE[תסץjWU DJ[զ~UT㟐ۿA |EFpJ偋rPOtk#Z!kR]'D~vy*婩&.W0#gGڅ2j<4)Gh/òRYcm݆]h44O#"YePP\u9rWɨUy}4t'[d"kdlUidJ%#DN *\d ԿEسA,$!=P ˀ91B4B6Lֺ"og4t@ mM@mݍ>T𚱮ib8d6cLll&qc|-0'3/<~w4\|tzFaɪ{Yנ6t-#Hb3ı8VjXCc1dOT -3oce}~z.hE75L\=5-Ch,I5$so%{sIFMı817v0&;XTVfH3׆A!s++z ))"ö[/:@ndwt/ ıv?~ޗ}S) -kyR{꣯s"!Rt{^sk^nh -Ƃz8K!Lt?I!q8feep#TxplCN.a0UXR|e>oH])a0K$SgX'0ٟq%=y2ղ1@ۏk#VR+{ @^y3xޔT'Y{.o?$ %KE&<{ŋsgW ml}y`}ò{ސ͚:Lm`VKs%O,~ccl:W {ś4썓dŧpO/yC/s /d"oGG,~~ͤyIKLWW^/}_%Կ,jg'ހ Ufyw?6sZ) -:2qӺ{Esxq~&̳gcۼ8m~v|;׉8iM鑶뵵)F=Cݠ$@cL ILHCC􏩈C$PP}~{<$% ݜ73 0(_fѯ=MgP^ O߰y ކ!$=~7V!Rd cse e:#h$>+xyK+Dgt*sB?Lm* у_u]S25t,v#Wȑq?>2S{R#aCdC/6k*< 3ϋJ\;-[Cw6Н@wY4:0 Gt7)T 2d V9-hm[=c0g!X=GG xl'[p3=ѲЄqQϰǦ![[-&v؉c'vة`;fL$GS\VY<:ށ(Na |ayjiȓ*ʝʕ3ݔ=$[愬epf(Hicc{SP2(:x$!(*n?/UK/w6$gGL*)r F%O9s* rg}-ckl@%!4 -AhߌM-]N9K-uma*$MG+],ljj@iCePPo)CН$PnNS!6J@e4U6]?MS'hu>[w4qu:@zJʱ{-hAz<2Lrr®Y~ΚE~A!ah66@A<0ǀfq&m&А ឦ ]` ta/)q ĮQaE{HYaNaV6 3]Qg6{9d7l[ Pb F -*e(P*SS -J/Pʥj-2 ʴ:ڱj 3Hm-ɞt;oel?V~YpYKbr5 c̉ջc,NY{&Μ&38]p~ᣴX,k:gHL6}?ѯ' v ?mI[-~x;gr!q68wsΕΒmQQ]·˨#rs[ 7c?}&{vdVĻH"8sIKi&xA;.Gd##h^e~WN0?HH3(qe3~VpNEj'[ٜ;nG<$H9X< WU~H<^W^ef\. euqDINۿ^p᳹ϏU6K<`,D$+5>>ɿJKb&>f- | -Ol.>IQAaM2z 2zQ{u΢k~8 p ޿z]uq-l$.%~u9Gem~~|?D~bz":'~BiUh -^VXe]SNڟ&hq48Zj%v؝lj~>^n.NC)u}v!~D_v<mv\pǝ;vd`IЈ"v;;eZu&v;#bl/"Vc(p< 4z"%kЙcp_/;muiG:ў؊ @ENA{;ӱ;arXeQÛ rW+b f8S a@䩾";=}ll>B~ *YoaT1v|*8=ط{Lcz\cQlz+۱ݍ>l`o6 ;s:>GNU QuCt~1lEоkپ Tc ~o~;@VdjYdg:YG-e:5c_ ;~σaWuMC,lr2ژT2c^y;u£)TE G7Y.wmkUh9WJ4fy$;B5ur%X| EΊ}ṗs&o/E̻,HK}ܥx#+iժDb񠂉jO˓˝lSMG;lqf܆i I|HbxSGdQh- ϻ|Iy"QX+3SD~ -& y24Xr5 9gϢ)K{caq+X³Yφ$/"\Cedj(fsI>'ݲ=&=#U0?;ӼMvū_nF5#\O&~mXflؒ! ||e6;A+h9/)>O&d\25 -r73D V:HJW xmǶAlcoC%K"K+>|pN+=`hiy׀)ޅ~F5}faX5 ZZ" -nUƱ3h:Z+neJ;=HYB6BIH@P !Ѻ/NT;նK2x:ɇ0p=!?}f^LRpφ`@Vr@G Aw"0<A!\ŜԪX<71 1 '#hGw_C0" 5m ṫ` ",B",BPGbP !BpS/ t3Ϟߧ"$/0` %:BrXa`F6;XApٕVb\r>i:_PK -:G/Ґ9c+.q|h"|X ~5.5uбFl 0a|x=u04.zE4)x C$Hl- yױ;'jn i\ W8tl-бk؎nA pNlEMlaY6{ר` -Y;y80_w97=Ecg@Ҁ= бQR$Ή {P1j` B΃Vݕ Yk`Õ(,7U -U+'F|` - ^EMB@n/+iQ'B/ paT/D;C!XB"0cr>Q88/l0݊M?xy~n07|cǎ0q)SMs^(d^^2l/WYn_zWl۾ܵ{"ވ־o|#G?>3L6ğ=w>1)BY"D-U5ڂ¢CiTSźƦffpvv]|nܼu}ŗ_o~OD%}y1<\'_ gK"0X8d$ D0QPp)#`@L6-F8n#mO@zH(=&c̾dݽz~x FEyy = % G X'$`(,K?W-=C o"[ ;=Qo;p0ȱ4Ï?!Idr -bXwAWM1 0 -z޻}_>xo=z;xɓOkMuDT__ba~CٖsJ:CR Z G#e&\WfHKi h0a@À 4 w|kfdKeUh_ݯAųs94HASe *g)AxӀ n_ToO*HSoTb.W]ޠZA Р%4(ײ3n膆>nE$YL!`*_mԝ/QsР 4y"ySIfuaƹgc,i0,5pCu~S9Ѡriȇ۝+]xWY"Z:ӸdM3^Dv 97V0N6CC4N۝#>1tdBG*@C'ie$5hͥotРUrS!\ʖrz$N:Ҡ#{脆ƒn#Hi КʷkJ -A˱)sNy6K"cwgI=q:E+6 Zg -Uo-/4CTРa;rV(ՕБu9'_4qbf՚ *ʶ̅ڸ|5ǢT۳,8Ȅ#Eƾt^鎗{<6XjwУ-VZzQQYkF}QLVנϋIh4X$&}49߻w?cW{YE˫}?Q -˱lpWDL|rV\`ƉмVmӰi4l6 m{Pdžg0|ǐ0aV]ց灡F!ʺ[Kn۹l{`?)`oh@lǧ"sf\޼-RtɌ)Nm-në= -5e'#1=0htHh#EAg"F Vh•Ibm0;;6 7`2>A :SvIQĢU]1W B% OXoL[n` `Q/c×hޫF'Jcs_+!DtU3(˗vjYy`xN+1™-x[VJf AƻC),ȗfjkۭTkëK/ck$fLGz(6lj;^i<)7m}Uɰw>&t%4aS&Hsĉe!e;l[԰0ݸ/WioƮOW}/>{cI_ᜲks,p!m,g9@Ov.Rgu6A$Ⱥ[5X=ښWǖͯslwrl$&";$&,aqJ'=ʲ[_vwMæaӰi7X?ښc˖9_ 0tJddD'%x:,&rA>'>\0EEh`NӽGWpkz^`x +Wc"R,Bq&<$Lci7_uA[=kV};Ǘ/ b$fǢ* ˱\PW@i.wEfx΁HmjiHW#-]`0(̩ IHL` HwEĴϙqrxsvB@E͌:yn8~ ^I3mfځ6MmҔK IJ qCwI֣yGﻭѾobKl˖%[^ p(t4uU}\?ɩk3Xb?<1{B1 )ʠ)u -e;5+jK״4Œ^S5x{z~q_=a8 ie/ŴxXj(Q@ӨʨVf =[rSPԤtuEhx{~ {/ͩ0/!=k[8P&ڪY V $7yMRULMogn`##4n%ubD@tPf*haTIȚ^ʸ,oe>OUq x -"8g3h.PԗMЬ] U,*WPW2M~K(d+\+x{ڍ^o_=NioYz!pg'ئb -Z(e^ik{dEDUۆa}B{_k_ӜB3sޔJ(6y -%<$iCPMAcqd"mnf:p~0HA\^0K Ì*QJ 82Eg`*)=P3؏6r[h/w`}o羣=\[u᣻nj:|ͶoZp7ȗ|ImKu:mlB%a50as5ޱwDGI^{Ivx\/$ٝh cD,IFIdB#mZ47"TՁ>m3V?1Yiޯ-:B}Ky/eN(^, -юd,A#$9Z6mtoJZmio=aqS5ݾ|OӂSacO0.v8hx'#TQ*LIHLʆt ޜYޖ~0˪a -аm=ć“!A)# xB1B 3QFg2R!@ R`, }owYr6[iì+auc71'R 9#lD}qNܱqZӝNUzuuk@zWEAAP I\Bx $F$@BȅpAEVԺ9;m-ʶ?*9M8bɢv:jh"(VV@ߠTei4EJtLpavwk}n䅜4~1+=n*(NU -<L;sYINiBx6 -_sZfFGܰZ)HB':!TUr_JDot$ H\$\VQ"Fa]|VaG ^j2#(Q6"*r*&!i"$]0 k A]0ݺ4!>DZр/rz[IV-9~`qL45z]ECmdULDD](ՀOICVt^DA$"C V[+{$SL:Q 1hG 5M|CF^kʇZx3UAPi/  n҄di=ۊ~i+zd%C6@>k\OX["d>Еq]iB6gx;iذ% -gd9 $*MM//uxUakfR2ȕ\o`*X( 0,OƤAq.<1*; O[T{j8lQƒ .3&Ba:A8/ W=hS g4IC΢/}ڐ:=kJ]* *8l]Kh-nH6j &_ciS 3Ҁir`xaؚDy]Mݧ 1M&o -Zr-s.j)kjTAAdGO۸7`pHGܤM$Հ!o?f*wm2~\?h2b۩z2lnʯK @1'TYY0FG)2UhӲ4`^2nK֬f{}Vm&pҁ-ZwZܥ5UUz(ԦMjJ m3GrA A%h4 `Z ЭlVy1>g~ |y؟~uG? ӷmHozޯ'|%:WS 8#^87Ѐ`SӏT]=r{L&u~C*gN{i%8 dp?3 x \aheeh jOy`~RMOU!KrUh>Du38lj,J0pzT~ޡ{&`jmյk˦t˸("R(HɼX&QoAqq˓2,ah6EeX=7eNަ ;63e0uOɧ4]jnH"QRĀvߌ帶la,/1 G#Œaܔ>ehi3~1k<ʞ1tȧiPQ'5D^LRMl)l8q(˛G| 0#xeX+)z 9Ys{xJ1?o'ud^H2kq2,9ʄq00|hahe>o옵fϘ+&;jpQNj$ -%h>鵐ifqfb5\Éߊys&``1k{ڦ4vTᢁ/AɩYL"2B5=+ v:̂*;\q`r!=\= ycʚqOZO:ᢉ/),duPbM97Fz\Wjz{Be7&H΋ ( un̬uyP>8Z?]'[E(fjY1)QUoh"^jN^l^$oGs4o-Ҁ28>u9Ƚyhlu^sKO3;(jzIyD. As\5KT1E7w>u>3mu *].NQ!iWcZDX ޲=7B^UtpQ+.hD2-hM;[l'Apd:d;,{OHgpj]<5jT:hCjJ -]QI%d@ [[ߎA;.}߆w[|pRB\G;A-٤}SKUT*K0)!D=eRoh`2xo.cxk{wt#;]ds=c?bv> k6`B:EM{MDZ"VE -Ӽgwo2oM{ ireӇŢ#3PS - }fj;8wym>3tE`uÅzAQlnwG6{xϫkE7]HH ~5_8ɯs뜀gq+>~?>].Lm`=acܜ>"ˑ~RJaiVUXaS/%(\bxa@ @Յ e nH\tzK?Y)ƶX f#fHvuqҨFą^DJ +a]XH:$?y.d_Y«ѶOo~~ZJ^]rrj[Eۛb.A\Ԓwͽ xYbN8ww`{-CplInF'LǬ/F>-/,zTB^O>{.V~1vtnYHI׽{Bc{C: >gώP:}$%_z^US~nˢeϪq%kҔIe?R˒6^L|,Oxri' ޥ^y/ >9}Ǿ+22AnB:@$dPɈğ?Ǐ۠d~u9;3'ܝd}/Ds;d~>O`?T.@WY4v,dG$xPt2\11 ЧO| @<(1>0nN\x??G )eUMuƥ6-k8b#S͢v횮馐J~Ү*`wo2`i(`!8):W@KD|Ъj){g3Wzǫqdq 1>, Ay-"8YhfNS%o_%B)X7oǶ;LyeT;- DA  p[ZT ͷ4zS>KkL7tDa 3fY`l^{j{~8 &x@ ?= -R7 -EUne2^dQDLr9I[M#D%@P؆~?VN8 o @A$o @ (pM@/6,qkًxդfu㍼*d %vk\Cn\ӂ9Xgh ?)lń(9 -R7DkPPqKf9T$Y?. c(w 5A3xی{6gsv` ;llHklԪa *,ђY.I38aOr791fkpoui6ٶ0 ( KJlK-Xo;_*%/K8 P*cK3\iaY< r|^|ǐk2L=>_USI;İ 6mNH OHT$+U=Td웒rl+Z3! 6?9(zI!73`zѯP^e-'ڜ2a@d#LҖ*1:HFמӼ(/J pEHy,pWt:;7 ^)m.3ȷ '=Zs&6qg -6q[ͷOG$$_py"!hgT6! !E f_+Rl.[buũ@36.}"~'>]W6SL - 1f񌒢Su<*qOhfuqi6gAm8%h?w=Oe4Ĕ=1a$P[k匭sH_g7)hv!oFVϷ0&96gtdul`5( _YT8PG]s߉5{4;~elH&{aL0Ejm<,P2|sszl e1- -?N٭s׏oPʝ~w8 JW14Gu'C0VЮ#ԫ%JFWV]R-fE`%la*2 -& 7Ym((C U5XB~dgr[7h~ }hč87w*A?:Lڞ64^or]҆Xѝ&jL/RiYvCA)Tu6Ae} -{48=?pkbPVg(3]BGiK{hnzicgXeTCP T!١} փNt[>59w#;vމ)/)+F $ev+Ӥ(󻒔.RPtSj]Τ -eGrJc(D 5f&P}j-~&swl&n.Yh)YQtвE~Nkbr[iWra;=VCjRic.TڄjP E &P)46_.K{OkVW<>D:Ewa>r:lHd(qm6r[uKT[|ks+AutpP.0Vhaf' ,լR:!]: sep1"@L)FK%tەYݑ@ 29!kZb.zۖ7.nޭY["B>ߝ1cEGC z)?"WWc{5: DUՄ/ -jDA?iW7lZ7ʷ;[%NJd&Dr'IY\hR60r-ʺ6WC`}UI$P,1oDAÖ/V:eņ-`,oY/ݱ)|! 1iTܽشDιt^73h0!-/]6(֣5~c#턉ӗR05nl:CLy! a1Q_sOq!)%5#03g!0̃T2^6:ע4C_XW L: ip='>sCa@Ci4kP z#T=saTؽ;`fVg  ;`xN@vvG! R\!pJCPy8Otغ.̾߄?m?.N8BpDt=~8+[Z!H[Ck#`X 0- - "dl2.b" >c @gaЫ\BXK&=ה%?}*_Ŗ͐iŢIbhX<" JFA0(&~> C e Cfpc/شLVbJ-?k.A7_"NDˊǣ%cƒ1;;AͲ^bYgT2Cb!,OK= yЫ7DvZC&3O&L%Hq1|4JYqZy->i':OJ|C> 1d#LĐ3ѫorٔTÛcM'M$cؚr]0IU=uf# ȮZT!΢<0ZOsjӞqkuQj-"eA` @XB$d%!@VI %$lj@AA VG;ߙuzݼ٦$DbRfw9WiQ^cUT-U3f5URmJ*0P 5ṗƝK@ޱ C? - ;61|3$-!xUF1x&(bJfX,tf(FނOg5p}o1(f|Sv/%V})$;͚F.MeםuEmvC'hQCݢYаsh],^trx77n97Lw@,Ddu,B %k{=eե:uS.uܥʐt*ڿB۷/7&V,tOmx} o*<^DAxbyލ0>P,8OkĸDT6.HO:{9F#OV{xAW~%=3ϭ/?ulmWۂ%/=J=:U|?HdeP2дpy7g3w{jd8⇃ȀX <&(Gdl1?Ƞʨ13?3vjjqBn8J:j`G'`21| ;7`&oPh1G a}C )ȁedD#O/6 P{]䈪F (䠀Kc.#KqgKhpu?ŀ׊@ؿtAC}"c_zAW;(v@ہ;\BPn  :w#-ya~ C'z6 UC_ - B 9t ;{p?*NN& n -nlw p?8_QC< -Lq;FVk)+>eRƜ%Y8ωgz4Q0kMa?M47q1콌!} Xu;1pC:b`!7Ey!%x„LiRK33oT-"֋2$+Ill2_;$'I$ʻ厐7Fz, \ GN-M"EǚT`R%~BL&6.dN(&pG~H988l' +]mE P7ȌE2&GrpI/9iγ"Szx2*}L|DjP'^81Nh~ʾ}8K ii1U vp9l Z$N0gy4x2L6AT'f=$7< Kl#&s)' /S՗@ A -N*1hb d| Q&O%xΗL(Ɠ+jU) QS4w75}M{Ҁ6D6%h'h ĈADA pm|("F-lTže 'Z88kaVmFwII7 -i~~~}FY;A2 Πq@PB ^WfΔT! sF.JsѯzJrИk8W\+e^_4 1b ,oB! APw}A"NUqSJxBrR9aC۴s%Ime]+nnYfSV)) !cHɽ_oCP% I/ ֔J zP*5aniԚ>Z*|a98fkz.7q{ʹ=O@dA (F0aDY0H R'uJP - ;-ִWSXmzNf+2~D]nt1k%~fo2 0~Py]܊?K -ՉLMeQkj\rU[kתKmVHaыLzqWb1CO@s0 -&߷uasQOԑLe-ZyUqR+ -Ygԕ[j2ZkkU6NQt.bA&b#VgL{BPz7CF7}V3GvHwVeU+mŲ.5[4my6kR-4UN#rH|jx>A2 91PRo<݂x.NW@Ʋ5΅ʃvz!0$lŜ KHH"N_Ԥy=Hzg04Ay,Ey٬,G} "}bg}OXeeK'!vD _0Yǩo"ȋąs^kJ86׍z99`t2~@2ȓCByvK߿靐E?)ԯ&X׺5\L^sv:F"ed? ƿK \⇻)t{]ue5yn4nq2ueI 1@&d tGeɍRR؞Z`nvb, S!O" -Hu rK}*e:.װ~vxcOѥ$Z"oieLMoʲ@[ F{^ ؙΜ.zD{@,D۵rZ ?8rD݁A bfL6lL0V;f`Kdp3% d 7 l+Gq@#[8ko G-x -,=j] bOrT!H4dT2-pSbj'tC>ZMISs?Ç k -LDFr$j@#H$C!ױAU&46Aw'(vGUNkp+o5SB!JbD}ӃP*CD}qIE3 aQ*qGt7Z#`&gV[VpV0wEJz@٦ }}/DІ.ݐr%`U 0j(6 -pUa/S 1f-u%o/&|E@j R|iA -~9_y" -c>CzϐBT0Bh2@EjpB e(;`uzP/R e@SWI-A+vw>o/e<{g@|˚]b={ǖ lMi24kp/70D'^' RʚBka~mg}#|%#3a&ϰ&5==-:+ZQԣuTD+ʅuBf! H,'$!Ҡ("e(U(Lx@e(λO}s7i /l>BG/`X/Ш[ DՄ.3#6'=0] 3ĉjқ:kci!i{JFӚ0#NI@Z -݀xr 9{"=qH{\v[laSBzYF -Hz1|`D>e1̦X 5Q5P7y7@?H @O< qzܻ,\>5F})b_d < y`ۣpnapE?tݦ,p89 ٹi$,~'<=E3ch/qǘcӬ*h䥄gx=?1x~M\!_;_[ 8> yȷ/5 Yt Ac|bIo#e\=;0 cÑ͢GV\_͘>؇:Cɹ>q%y?h] zjPo4L A f~ 'J8=leC5Q QI^M|or=񁬊@vܛ|ܛ,`:jp!ul,Ap#@䐏bv/f<#|`l \QރR܎V^N9OJtQ'i= -G,`Ow& iנ8 `ڹ} 3 ѻkJ&DD0 GMIT: wc;rjޑnct3:S ])lG en G `2w, oo~g1Ag[$KiPyRT'5kkCWlǷiYjl|(9Uѱrfr% 503o':M,s&[W8nR)UK]^6a֖ 6X~%dgEl|AWIg)E - b K1F|q B̳(V=1mxCY0;̂c&εk\,č `rlLjxcWʴ|Yu6NQaK:|a6.ݮX:ҝbMf*7CIC<\:W{}w/<صSS~ՍuquDPQT(bIl$$,D*0:ŒZ;NZ:nǵZP*2)UdK9}m^|^K.7VzaZjBK5}F_\c<\mzGiafӛ0ܻ=|j|4쳨Ǟ$MW?l{I]voqf"k[եm+UnzZh|:^Eh[m[?QIT"bŋxFR.p\T*m?;1te!WrΉDyjx,k#]!ԳQ>ňX&gk *Y>cȎcd%rQ)#5Ңq+QhG3bwF-!?&H#!EjZQq_qY_iRH #ܰ8΋ŊhM\ sp1nq9fG!~%d͠3Y /RLtFkӡ\Ob ICo2 : Ʃ:KayU4c&ϜBp,4? #G2_%dBR+>a.| sxF=qs@ ݄Y0)։AXISQ-~bOqp?;"s;TR4HH6•%t0 `Hp\"b4GvnM-13Vw_,Q1_@? `g]!gCzztPh -á.r=3'CM*${yCBEXtY m Rw26MV/z/钼vH?i3 lhS`¨DFf(Ь\_ܜvCrH1D%3O ;r,jߥh@aEvy7;S0 A1lz, -8HA6 MPnK|bH- z9DWUB𘂠z'~٨]BfoU A %@ǰlr2p`^cI<BW(w8 V)%$uWT5!zJ _6+_(ltrH e&f|U7h2}`t06 -cP2A J$7?OCj!L0lSAG~DuAYgV\7?QtR6?I:?K 94d0 \`Qr$TOCl6Vh%o eLpq__ӫڣI7?k~"-ցjWuDd !I 2 hQP(ThI ǭ{{̋yy~y$A'b*37EmJO%\OŚx4C  b'iݑ/f F}KF-%:v22vfAi:Oǡs=_H`0Z:*J?,m: 20% qqChmݨ6foT?'j݆49u NU<*А^ _b`406YAP24]f2e\w|D x~j&TxXp%=6s@4j rѐǓ -) [`bc1` i,p<f;/_ -|A;sT!5஘I 7X- eI$->CX?\Ij(cO3 4#76N0 Zd{߽\ml׷m#šC.9 !ƶ˜LV]Q[j6,KeDŽ =<Àd0 x9h@ZjKf{p?pjw˓S?+<ڕߡcSX8Z-PKj~!Bl0{R2Y:=,VGr=/mDP\s`z[k sBfjv,t^<{ j]7wZu@E מVET$xb%Rν)S $"B˸D5ŕhڷxHGz,߾ோ;^5YovYcS%]7+Îj~jrXUPPl,S.)Du2qrgH\&餢aH8, DO7"@@*,XSiy}-z.h umǟѨ1yHJ%e+f% b~jږʑ!K餈tXHFy1_d 9i9%FWa`FN֏oU6>\w1ҧ"6TU"Oe!<32%Q*f<%Ii#b|TȖ 8)GjD́dtm-,_tmkŃ]_t_w]|`eDAmLpfV"tnKR%q)yI㲇%dՈznLHK -B@ -6X֬6c7WG0}wv]:֋5-a9AZRNV -T#$Jđ%"\hrLǟ7J#rn<[%/sڥY-xg ~5=?Xt,S~gZxB/sI$4IŎ gj/C5z*4 F.!gCȚ0 -Em-xlۀl@З}pƁ}U7ܭ>"Ϳ{IŒ81k5Rji`MK vXQdbF0 v<[_o7l@陣UeEmz]~?hn/$%8vC2]$ow/4WԀWKկh!Ab;,å` -tYk24cGfMcݬ?Q }#ف!'Gz6⼆pq^o 7}:Y0y!`XNKg j,eUL9or^!p]/?4$BQ.X=㴞0&+Am;2]>0GzbL;Z hk ,A}kPdk-[me{Vg]1f=Ϝt{jx&{9:jo|}{׉ϾGt~;߁pF:0Yc>:̓|ޖy9ӡ7Fy:-p.]gQMy? q -.,* l!!!{ I 7kKGwKU#-X+:uA=zL[8 -B|潚|w]=hil*5{.]0wp3GN RqU"֘[>asbOn"){>G6bڸ-Gx}HY|HC4ЄaX(AQ> a@TNq Gq2͓$ߡ(2)*%`8z dE!; qL.}6D3e|4|Es262'aqh/Ȣhf3 2* (\GAi,; <As -Ru t:3ALd> 1y -J ' JCʀÄF KTaP-!DXK/ldAV'ɺ.g Ivg|[xbd=xM4d'ѡ`1IgB'^9pGCI<ے!ٟ -tNf@x&v.Ywg!>Y/yB t&xCȀ. &E [D(@/8nBܖ>BE<C!ρ ُQx /(#hPy#o1&BPPCUꓠ4 ʝ =GBH#3 KGR9 &'}HNJ1&QOn=[}KAݝ <Ϡ#4>(:qLT}å -A1(Iy -|v{8TgP^RWhʟk4Owyw:?.)4½a#*}P23L}*QhAd$?ҵj}jzoW ˦QӅQ9g0"7x&XśU@|e渱jGʰs)wtuV+neEc88ᑾx_~aKyrpf.l=tГ|{]Ċ:&N'ؐ=ա#1+mWU]GF&K_ -n[nZd(0[mmECSC-_zl/yAo"ؔ-Y#zY[|%+p2\+9TcqK?gK:-;,J/Y_8Z4h 8NJ),9yL~#d+ȷ.ͱLlK2ȟ9( vmpo]_JSMk{As_%Q{k7%γfGpYeM>'( dȾWOz4̣a[4;Yp؛=n[m .ѕ++ۗn)ztAGd9׉+eU|Yy+׾ʾݮ~.'0FfQC5&2%?1Ad袻[~mC?h9|{ɉǪ]]mK:j\]Etm_Wly8yƟ8H%CESf_˖889v!5dl!ҴeFiK4L^XYA@3AZ6]MDj+.;fw9&G7%ƞgTF.8M$, -%tIIlb樒I^֥N{:+vxof:4 kRe i"anH^lYXVt/#\Ԉ 5=/%z*"9z&,9j649j>$)j%=֓0{"_B4{YS.uEp@ -k%Y5_qOfKf|Pw .F -&BWLxYN\;.v% -#<{+UͤHߴzrLNM~jK -ODdg%222YI„)x䇑 ~d7*a:<:~7ǎ.DDaDrxY~nSћjᮽ&ʷmZ_s2P"wZ~ܙ *d 8ᇧOq#Rgy)~[& `A O_B'=q/n&yd,@؆%`mY`Yn`ug=w4{@7|I:H5 ?BHI t`{R"n>|bf/s/m!?삐OV"xF`'!,ɹ 0z}OX ҂Ag,7{Ɇ_g"D.ǃ -QvGlYMtBt"s+]*W5Fh+ !:i__#;?=G+b `>7ҁO=3@$fAb"h%[WWGmtp:f}6aי D @+5zq$X?r'j"Du"֕ -S g8@> JdHJ[Q+<: D3q,]bk,d;2{!8?Ds3듀UHXAPAK -},N&-*unH2 _x+lƴEwÆ؃Q7Q9/9}pŀw3Wq>&!?{ԯZ{d>@V#֊ArArUU=,7J$6^Z^%s^[%*7!q+C;Q 8/DN&A-d_Ɠ|Ň-֑{@w. …lٲt[R["WQT;KRgIO{[7c! qe#C1$WLhb- -#G4g _4egy?YH_κs[+▲%kҞ+o.J{IEeW@ܩj$>đ|)֑6UTN-g7G8/yZ\ИNn}%7,ܫQ=V!Jy27ңv[V-@g_Bidg'=6M%sz_e_- ~6K]nt^7 -r 9戞;O?O9$w&8|[ٮ]ٖ2h[ͩ㲦ԷƴwI dgQ@zlZhRjwZOkCf>VEuv$ٳ!}*$\KlWv#Ir8}`ZjMk귚}#ꆵVE}Ƹ|{[)!yDmH@6o<l&} ԭmݣFyN$,P}U.+*wWdS6g4e6d\Kٙ٫NQdsqYUDH$[G dΥ‘2VrG6O]m5n6;^.{vW6g?h䷙6 -[ -+eyU; jks?լ}0RiN0-1VU0.{$mJ l޲T͡ p<߽Vԫ{58xthWflYWf6nIY\#-lTWO0vZn|Z^03 iMqTU?(˷y{)L|28k݃(7x_h {YGՌF6Z -Ě*yeNfSkʦԒ4Sb:ST41L a&.&{S͠|>rǔmݭ%"J};uʍbBf\.1M),,ոLZ^ُĀ>ӐX:)(UƔLV&Bٜ3(CU沧iFuh:'ʿ۝j[W[Ģx=rzSS -nW&./fkIiViqUX٬5X9SY׺-CuyTe4\ѪuMBXEAaIXE@0qWzZD -REAPAܵEܗ#n=3v -cNUԞ,gg|~zy}?ѐf͂1=ŧoA4ӵV+ok2?mW{$QRYk+;.b}˶S"{qIyy%w,>{I@m˶\6E~у*!ݮ3FtmuM原Tյh'ly}OqOj# Ǭ;&a)*>K_X?+w᜜}md}=@V^`O2w  Y٧DN6 u1ֳ.3&sՒ"/jT6慮;TnuÛf=,=sӪo2/ UYeCswFRևD"_IUǧ M%S,\RU\,=㰽CQ>wݩy'G,iY5-yc\vSѬc{SkRNo / Æ/?R>*FGRGCo#zTFtb=tG_]ҡkT%^ 1MmDd+/d/>08g6;>'^:1U>>f6#9(TѰ臝Dw]۽j/qTyÈM{\]ۑފ_q3m,k |VS\1s6zڌ1יӣ vyŴ#>3D]!h`?Utr뮈ӖO}[8:>˼&<ت};hVFByCx]DFvAu:yDgD7#jnfʯӖ"kNkzżr =ZkCO]JOxVcz>Fȵ=U͊t2T8w(C@u752ω.4>/N͈V/y/eTFWfɯfOxdחa3/N׷!oc.܂M |{FD7$/!5Z!Dul+Xvv'_=7-)_3{p~jZxY4C -UClw~d5IJAlbY?hGXaD|K#Q;#JÎ7n:Z(3 -BHc?d`l.ATVK\_0l_Lj*P5˿C)EpVCԿ.4YEjE( "A% #@#r A("HM׫XVG+VWZ]gߝ/g|g]ך$i VcjD0!D -hzG[Cq n@=_\r}As}F} -ns[x -ϫAy9*Φ9|f9DY@DB(KD*׌F!.mz?2a4;Na1vk -ZC狰oR # ~H{/px*ٽ_ -LJjٰb׻ͷ=o:~y_#!|\qw| $|ÃQ>P@)wusW`Qn2#5hyR/ף5n3Q-߇/5uM  -N :!x\$hB6&P(APo8.S3)mOEHd`\iXf6iK'Ed Rtv阽';' :>|$l*@zg!U 4S V, =vS^jR -\g [ͨ.Ǭ="w99)xOHKU|%i t D0^y(ewE&:bh F 0$@@)=Į%Ωs?A şS~+[ovlLqɥgr"2.GRIZYEࡄc|;+#vl6Knsc$SA -j)0@7b-ǮȳCcSSfz3%쥓a㹱.#->J ;,3*o&e=d}06ߐp]PW%n 8r r`d0q-=-@Ѝ}M>*g./.qL'꒮O+IX") ]E7!=*nFgfONTF*=ERώ\>fP陕}z;D/*'Dˡ9a~5i(akRe --D}/ -=˷Duz|o.5-Bg7߿f6x@ wqo]GSI:mu~nG߶a6޲z1hQoge!̩R^[.*KחkUM/+(L U~P^^Z6j`0pXWwT hu:yMt52-&bEKh}]m[UM6]e_Q*P+K+njQ@ɵgCe"y;B;9S w!!tC}fh@nj ՔUOguUMbW]CVm7ϐNԱu/ D{X[~|pL[V)DBwNc=fh rͲ]5gm[Gn˞YʆܠRzBNQH~T -Ș -Ht@ĖZYpـp{C |i/CC._-+aNn݉[S;mŴݭՌV"0G)js23^;B|3$toL>,u'{RFj+E^O?dr7 N07]X!@*Bw]Ad Bc _ݤt{+k/7ZT_ks76mDna-r[;~cx|D_|J>KˎEћԂEG->v8T)Nв@]n|;)T{s%35q0Ͷm@yW5;dd&GyS-<D6zvc_֍Yco,dYbjmt"\8\ۅHMkD Ds;^ ,4㹼~ocd 8= TxV{ .\;vhH5mL¯.CwC׏ma3>^gsX~G[BQ(e>*  MCraxayFc xGaw$xKp' l`3vog&_$*BM# |Ʉ@CBZ(( *.\,\ xH` X&c ࠇW!fpU3+l?D"\" Hų: Ix -C =q?/8T 籎簝'c??g5|M˾Erb(xS(b -DZDhĒT /j!8K"f5SdZm$=m2] -{ --HEbfy"z} ];ҏ|!iү 9ꏨbD2wa1xd] ԠkyXzLVG'zB9 q h( F|?b2 ?ɜgfn3~_r -B,#dX,TzGPA}1a4{W#"f2ς友#; @vȨAKH?0q}5HpvE,UO ɯ)cI -n e@t 1W͈1Ҵʀ﫧4OmbEۄ?+[+M:VHiPv}>dj3q]3r57`g0o/iK9XߎM9#sdkQ5nBN y\8 <; ?QB+ y#p!uNxʶ [Ÿ] X&wg<%ݫ:0/<8S6|n:9@틼H뉸Axh|KD~F!ZS4.y} - -|&t3I l}#fr+Ȧ0k4f,9nD$s& J{jUwQ1k n$o<.x:rVȖQF"vIv$5 -Jst0k울 NeNEOU{JX( Z0D] -(ަi0E&pJהFߍyǷ ʣl2v2&%ݵI ť3ɵD K%)^U - -/ -Es -!Bh`/ {o. -c2{WTKEV}9{[I rU:]M/6 %}_7[͖7[|ĒC_dD[ :U7JHu!ܪ5*5LNe莖˜=jС&K<\YH)ʨ+d nQnz 1!Y*bRSv10x{J.7[$5; לvU< uSTbt<%7GEϒ׳dYa$8̯~Lđd"412D -Xp;O눠kXMaщԭq-5ǷUWFRW%TVzeRkYE;')O'̝{/!s[Y)(J"j& pk0hkZ1i8f .ZU*+{H˔Ԥj<|/_|b +.1]$[=gp{W#vVvYB{>bc'ٸQ9jU#'!@jYR.:S%񫚙'+|*'88|"*;R%S"h5[KLqf`34&w3T1Lz-#6-.Y(l5+ȼ&WdC#- n -Va#FpV#ZX+*_ͿE{Wp ``#6ფ!ly +@N{Ss\»JC:՞A=q;mAԣ͈zL(Auy{oq`w0@-vвuq1Q -q/xl#GN *v:s9>Վiq\r@ o/"s;ٿ}52GpsgN kdӻ iWRX0o39jUmW;'2w(tێLݒc} 9. ra ut 4|$@MH3v;b=IQ>as7[MΦ[sf -fjvg:`Kږ:duȎ1{\E+WwA'@?@ίXΟH m!f[Bਞ_l쫏^'1)i}g6Ky+wVn|8x8]Mh_ο-3'pC"HvY(9yѡY&/J9hZru3W/~,=A}ny;P gD.~gЗL{(m# a!: 5px7?ՙSa20 f`FP"JQ,X"q%Uc jtE=.Y{uƵG"%( -!;O}}'~$~0Ofh#v^R+uBW e{; F;m_ x(6Q}اD֍"j)]5GPps`|(|H?-"")bϏ߈5X/v~nH>6J-߳* .C4'DD8?( - - А:H>0ZArCOY -yJLX R`Ev%,M4/q-T{cDAD 38Ӆ㡽.Cw&]mqm{w'♯E^d֬QSzɫly]jyh'P=9]}GK4wV{Ju#qg|&xBSFӉПHD1v( Cjxm#TFtfNLPɮ+( }߆}fDTDDYaVePYM*X&FM0.59Ѵ1ihKs޼[ą3r { ʏ2hnڒ۪1Sb_ǯ*Ҫ=RDna_Y9sMF"",MB0R߯iPQt &VX) wj+\ټwIl徼Tʜl~Yv)(NBQj& -S(Xlaᮔ^;4>#80Pk=uL{Ӽ/xE}ZhBg./c$18%#p0U$MK]O=O>d(NGQb. -w`1JD}P:}'ih`A=hcZU4u kbMeՉV9iҊ~-FX_r'N>++D8E; -QB`4ԃs5ԃz{vH[Cje-ZEM+c-$u))Y$TzU7 Uxm];xs6pk -bJsS 5PH3@/*Ʌ.3rev.+k_ٶ0Ӥ{,wdh9(w辩KpBr_:lEX z.,^.Vô6T~GK5=Z)GvMw[n̳>\Q缮kD{xv;a="zNϤB 4MC rfh a]';m$gxF[bFl6_7 o7䴺)AU輺ɡQA5h8AzvV,Ns!eL83 Gx*NgLбB㐱Um -kpooȱ>^AwP~1?OH1Łi=3LL{յ3OǨޥzZtnT!ACӷyFsh"D3\p-Ds8I?DMy`%6U" lBgE b eJ2L^U++fMOe?Y-k7g]ew+bG)F)O+a5Xs\3 )ς@x+܊f֟btRk(j/˔? 'ODT up~ `$lF򙔱xV2eы,?xO{*PuAo_t?_#?%7j`X~|0^@0WANx絔Ahieޞ`og?hΓ|9g|Ht7B|{`'  zh%hp440ppX%B0H1Bo FʗRQ>= X=Q[LɅCy+)hEˉH #[!`|E~\BAYpS8RB7(ˉ -ro }bL x`B/Hb͇C<hƠ3̕A#z jAM,H`Z&)&5t>2L$U)}~D^ KK0hȠ ]̝ACo l`rI$! 2A%r|INeJvv :2hOZ1[•XB\RJj٨B: Bw,\'u}GEugqSFA"3u -DPAd230 ",BK5ZWcM=hbY-b'su߻}9(zy'V&q_ Nq%]ev^Hihde-r8hQA:'hE"[|}mqBLb?ǖ( zŨ-,rw( e}ow?$kxo%7WCgҋ_w?=߷{'+E;oKQܒ(['e8s21E3fNPxpz]8oW.Z ?Y̬ Y 0/2]7\ -g'\e -/p@w$@/#@oZP/^z~>+]}A&ݙ;U'Eb;w>3_q)0JƧ(:@38]z~@Iw}҆<4{~ެ>;ܛs\Z&Uٳg7'dY>=x5qχ&G<ޚ~f

                #z}b!\ C a ZdC_E yN68=qh~y&sL?ݢ?`xOn>A]gwd-MwN6]V@A`Wal-pM9G2p:ҋ},b>H.p ,ݨ?$Ev/6߹r{Z6A[K:K7]`'QkԱO/&f~e%<疈JGT؃q=ѱ{#4=]7nmtۯ6lM%YK#٪w͡hOPc8O7cq>_'d$8,d_۝P=>Ұ;.AԵ$lSlEGtmMֈ6eY˩1sC9z:N(#5hWұ0e7gRYp" S'g67c{g7'upKJFu=1Ŭ-![ܪYĕ6/Yn"UVѩ6̥2+yy]7Li :Ƣ8н}I ڍ0۔)oS1ņ,؛m ;s䬞l/^g\Pu1$U)&uMCR.־:acE|sejkQ)Wjvţ3q$2 -ÍxAe Z!3|gVglnG^[΢ DY f itMuZ<ʾ$ɱHѩII'ܴI7r/Z52ĉȴI0.x82LcTe} -AO)tX6eiʟPj=VٵuZaIBC]U(ReS*,˶I+-K5;w01E]#.BdSc -PFF 9Pg?\Nay4;ʛfq+ Fuj,ĚqҘFYdNʊmLXŠKhLX9:RXU[<^H}ݍkW J8 -(8g6NZ`jNmzN?f`afnMPEESkٺn]6eyZ(*X -)JYYػہΞ;0}'MZB׋ǽ2-c$)nJjG%W?ō'=vpUB`J56<ցYki3d^S`gꪉ~E+߷bz + |NXc.tsȥձK,i)X,1$f=baoy-~KU^)5cFi(ޔmJצJGxiqoMnx$p̆; .X$lhIix^IUDnIcDܵZ"sVIdގ5^u+7r~v'l3`Jy*qEX[Qsl$S}Fna)kֹ9[V̭3ʮ؇-%$}0=5P-gťʁi\&TwWQXJ(W wݣwy2df3]/ӪKR\;-] lI6h )wHp8_\ɞ:P;`yVCNdQ7F׍j)3u{&կro7$1T(c1f`6ɝ.`2Wûùf6hXt$ G<gSFcwAUQ˴2-Z-~ˣQ;"ijro`R?PTY@Ƈ& cO!g|&_$#%;`?;}MCO"h-ݰ} `;+BgDi#3~n`k/b݅ F I'3@9=.ak[,m03Lv^NOй^6Am?tuނvU*3N5?evSO Hflo|oa1:w4;pPA7 -`s̟ɹ2;ك?e[V`'` x@7BdNqL9ćᇡ7\.,P.W/{rg̎ X>̽o,v$'ehB| CG{"$(C iJ0~OzJclr}jO][B 9 <9Sb(T/yf(ў:-TDA@'/R'yN[ߛ3?;nD$_}š-&¸P9U^x<~4^.0#;ߟi%G\ )PaI6Re١Ԫ֏ k괶MM6ѮAbN} :F9UrꧠǕiE`_PKufT :kA+i_ !7!q6Tt-? A$b@k"q$>ǫPZ%vٱDX}ب]ti;֨ڹS+D7Lj:##ݢ{-T3$88t%|t$ˉWӵ ki-Η=>wqڹ\wYsssy6%6{6&]jH`T$>5@| q4Ay@+#Wӝt[ZF⋴dډS5?gcb)+ )yLeKgMi4Hm5M'UvSUX*iIXgk{YjveVc5 Sհ|w cemyUWo5+ o" JbZE( K!@k@E(޸junkn۱vvt;ad?=s9s߰NJbMH k) ^ ك{x s%' 0!n%&,%^JR/5|ϹR3qS։ةPG2{4!xW!s΀e$ kg|¾Ct+J\V卵WI*9}V8=0MTL$[ƒۘI=!CCY=2/.H]r³ זDظTuYc繥ΕAt_fMMtfv<gTF0즎Їyj^]w!S[lϩ mn6gu4Caͤ&s>*Ie#YBCDHYCB>9Ήװ{^.p!g 0e b GP5&0z -ޝ,}`k~ I_Zȭusf털\;')Yh?P[xJ$  |s×jߢ7 A R7 -`LRʢܺKeM - "]`Ȭ3VVs͆v~YQaIH?+)/n(|+)1"4#Ucpу. {F[UQyнŜX[W]_]j6BJj9%m|cqP4*Ht+rޠ5~#0t`aB 8Y0O0{Ͳny\VQS -(2UXEj/-唞ה^dޗd3MD1AJ^W%fA=X4By#45Zѫ ޥ~E@C]S_kͭif!azSz;\Yu:\YHUITf"P _]AxkC?4 -`Cz'f,@w -;kW j0\Ž-nؾ$mˉuY [uMeW/ة)ZxM* u]xpNA{&q38;p;@57h~D@t[ۛ NDn^>pW BCȃz`uP y2cc}8ܻy3itu` cOx>>ޏ;x}~lFຕ@Cq \֥)bJr:ɣP-g< <ܗ\;JܖᦼUp8^E' 霽:'8^vMm -,U)Q٬jifM~/-߿-4˩ŸS۟*p-lQ犓|P:Ma(UOUϰfRn1MPm6MWf7 -l0Ԭ7m\keYb׭Vh %? Z+jslgXgzj~:J[EJ,6PnLW . )lڜk\]n^bԼfy\d\h,7W9aSs\ Nq+H -eu-??;w -WtX1QcJejtȴ* -OY4KTh;7h.?~vP}^P}n#~zБ]N-:3.mKvʺ{:+=TFiXCEqYZX, -SvfU6zY_L.4W:~Frǜ !{vziBЏdO%⹷7ubM7gjHwP,,ΏL떢u͌lsdvq);|a\NwYo _G=97Y#Y.{{3~,K`E=^&W{^VocvJ4yRp }بR=9$A_ٍCf =s c;eH~kZLtNr"}zpppc-4CJbe6%%ppj\&#}YI %)֘ꌉ!;_3T#R4b JIOde7 1P,,.V:,UHA@*`-k1Xb]QQD#UѱrԊ:k+ڙs@wŤ,F/(GFWύ8;jSxTQWc(a>_# }xk+$|dm8IZ%BN(If4-yYrR"!1ba\eLBUt|M,9"V6:p kv - A>0^舶Kgųf] ޹>-)9;r=$eѹ~Ȝ9aّʰ4$Khz: w=}lIV|(fYb.sFx <%!e3˦˂KQ~-'-Vy[M(Yc^IWؒSڎ]*lH!)6=g;ؖm^!I.I}*$BP# `hKWjlҪP3yU UeXxUYRzVnQyTWW+>j -a^c{s2|s@鎭WU[` |7q8P3kH̐ Y I{6+1n2w55w1lmxk:VXX\s;}FZ:K+* <moԪYG]׏[\?Mx,i+q1K6HVȆjdCLN2T+䃶^7τ={tW -MDofm]2 kPO  3CwǀPosc6.C}$NKE%q\[Hv l#z,za ˞u?0 &5M:0h`<c=F`ӒrXBz\U3X>"$d382;s `. 00(лв]:!e -mv0o E2 -N?!kvN}'5) i{M'܋HDrA..iT5/Z\/_\JyC2h/`pB/뭐yO33OW:赦;X_*8kx!v7\[cی@77,]N)KOgͣp4x0mځ=jz/ȏI~"r~T<</qC.נ(++7&F,(,ȲܖEvvrY˂+  ".!xCEh&Fmc6If:i:MSM[vڴ}z<_9y>|e >X6e7pmŕOK\@$ dXqu,xFVe -*U-])[kkݵMp={aj1drrr_w~ko7CfC $r"CkKGmoWkqKp/4 nRZ.GRZpP9E;}VC)g~֬(b}Bq}Lq==WΑHH둄CHW ׇG17r}G͛`!:)3aNi(-)>)wfi^Qg2z{88w}Hca kl!Mw07ߟWЧ>(U Qϊ귙.=CӞOQ[2 $<%b޿{?@ωlsc9ʅ49Lføv33 @fkזs5ތF~OF-L/jOJ[>})iNؕND"BWO_zp}b0L -&tRݱp@Gt>ի/`wg[]6^g@ێ֬@wV?Ӓt3Fݼ^wKZVw#ơ#"$9p7\G߷`=` -ci`@J0C1)Q0󊸞<+ߝ[ВrE 9{NÈaޒWޕ m'2H1D>O1wW9K(D}7 -A) iN3X&{m.,5V4 -ZE5=!8)Ae_HSGD瘃[xqz~\__z_ΒhlViI]lvcI>Yb9Jl5N-,+̃RaYLPZIXn6iH; \>b';(}-ügyQۼxQ}z ?jXxc^.=.vv)jdҐ0@+w(RV, Ư\2ZBm6^V{Nr1糨{{i'҈ߕ>j@k<ɃȣP]S!> kjX?7vy@E}eaOp}P, -(q]ՠƂADET,NPXh{,G$1qu]{Xۏ{@xgygΑڛ%_>`Q2l]f(2C/)멷4y赌A.| b38~Z9P rxë;<+"Q1ír\\p4éUp,2!9V3yLYǻH?RO VF*gS݀cju#`WDak261ZCcIڲ*K%\@]+!=bԝC݉Eݸr6ԯ_ȠAVh6#GdeYPV: S^ jO-Pwm.߃k=?CIl3Yw8ߕF6eل\dikbR5љ&+"CV!V`zmDQ7+|; R@.Wtll]> 7 Lb|II}g'&w!h!y6N(F{;Q׋]# DuOrLhv/C?[7lO 1yI#_ҐWhv<xռmּExD3=桍i<,`!Pqk6@kA? $#dYM6RDJvRK!u/+~xI!쨭PpW;H32$t䐍dur -.2i.'WG ƙ5H?2|B>N"u9RkC:k%2SVo>~CG7A8RWm! -GzjXjMf|tX@Tjds"@# ~I p'4q7F \hK_hZG9&ۇGx}Lԙ0&He%rM8O_ŠS 8tZ%#R9SThgG8A'5qU˲h%|:bN+qJ'98̃UYê -4jpHՀ&|W2cjAxQeNW^/'7~}6}pV7lGX3`?`8nsWu2:AC=84aT9F@YBz7ˈn.yJ\C;N;tQwðԹGT{$aL敃*|Tx{JHfKi -IA3!!Z=k, `;孁Pg} lʎcPR(bdl HVJ TX)Iy'e~LY֐՝FRK03Ov@ol=P4[Gas8OgHy!s!) !!9!5!U!쐣eOKC"#TțY?]8iG,=c~3XP7la(<`G`q8AZc"[eLeʳƕLFEq2ݸS^~EX(\(I< ԝn_>|r8nU =+LXcFie%-7e&2Lt\E)EjZL1S-0FlSϏ8gj1=6 ,Pe s :W|j -{Kھ>XX? -#e&5E\F3+Pydvf>6#hE ()Tm(O|ǧJx bca@OdFwƒ0XiQGdcNR̎LNNγ]mMV71.!Fh*a`+"}ccbuX2qH &̏(͍͎)K#"q4!SR4VhuGEyafav .D&葨((("0 ̌ (qh]\Q0.cMh4rZ=&Ic\kmm&A;8}}yIirjIjI4j{'JxU?3~F[6a>(ѠԦ*CPnH t$=WV^PVOW5MߡYgMYHc֋*^TZRES.qaQؑlZVudD9TfCi*LiPlJN]Y(_Yeƕjq&˸KΘqZqC&#CT ҏ}mf`69x%RuԘTfbK0ʬcQbBA>dbJxyhI%){rs~0AZy(R+‘R9HLT I\E4L6-U]ު^WY>J"r,JB2`y)PK8]LWA߳H^FB@̯}a瞂hĺ0ǝ"ĸ3ndX宖Ns/nO}M><<P{ - ~u@7hYGo ڥŠ$;Fc@G8;#\<өG] - <M hw=n];G;65+P`0^ہN``~ jCp(C!EAeaqC1}C"? 6je6րv1.Ao8]@8B{|a#hB>n~psynu󘈿+27ԝXg&Qs459=@{?0# pZM3lF{p3,?gyٟ!a{(pm>/д.d/`=fC70ԧ'J"H5K\~¿ƍ b^?EnD|B]k4RCIX= -(z%-BR&kOm?rw޸p0>&?62j4hGLAIþxq1GxPR*Ǎ+GsMԝPS20l<@?F-5Aո޸5ZxWXwq+0"<⢤MT8UKƱs qW\ %uW7hZpYӉQ\ňv ¸C8? ΍3n&<ĉIdGoN~:G ӊx0n11W&%atrF&0- _NI~GH) -^?`ST!|:lG0V#ӝ84ߛш3۱j웹 Cv`p>ݳ10v%%U'8V? _LHjȹ{<3&̬)8>'$r&cp{T`: 5cgP'vö~ak?|^ .l ->/څCք|/@܎FcyG92]ұcq6-.Rlw/# û º]bO~qui;X\/=R}F4XLk6c9 b r&G/Ė$W|ٱVW.jձ*]إ[/vI!-;*ޕb$7SjU=c;3Ҙ?ov$/޸ذ, -Xn}+Ra%=W.H Ƅ'NQ?RjjWr^\ Ekp4riӊ 2)I~<'yNGWJVRn0͐/BBl4ԉC6 rUe8T.j* w4eߓ(N*;STu˯lU' j^,^h71nFȘyP"\ֹ-B-΂d,NJ`/( -bAAdHyղ֯dۆ4fi,5L}2dZU%3_S11׫=W̽H;Xx:O#c㳪EpFIB81(rБ-6!Q"ګ{dwY>ey&& MCMZMZr4;ej\A+XEq 挄2r˲S/dSYlN)ݹINuVR55I4)I%)RCm|GiJ%i"ߋk$UNjr!ۥɕ,]]EBLHuW ]򲪣r|ը纯UUT -U+Wg`/*!mMVXE] k#ݳFz}IEDŽdAyZ8Z1~SIOrYSZU!ϸ\R㻤Ž@H55 IFJd$LEb<[ðu ⽉f`ׂX.omBw{P ޻bh'bh*6FU {'Za'|/^@,%#k& jU8"W-EĪdĢn+ºKuG|qXYĖ,$&niTUk_p -"$DԒPJ2UcLUjj:Jϕ:Gr#y<꒕Ȭ g*]FhI#tM#44B3`i M7-a *tfpY Sa*gC~mw@^dQbOE*<7Ps#)7Fay -믐 - -̟j_v;\y)`jcmAv3yf.fN5`={e!/b򥈥Rpq/R?- T@iڔʿ4A~kS>jmVҾU^#_WOjYQx?Vv&gR\)"K/ʥk%O<Xp1Pom$5qQ cXFTޕe) -SM4PIYhx>]B IϕR)51JjIb۶21 ocR P RCk(b Wovm7) - ĚzrjE oTK;$]++>v۽ c~ǏZZ}-ͥbbjW#0Gi%oFɺUh$/5?(G ~ŏc0$~b9EQ:_|F^}I;l 5wKa MchJV0E:\:Ǣt%B{ KuL/gds2y4]!T=AOI.?H+XMXPܥq>gA*KczM#c/v?>>~_zNo:ptp0JSjc &C0&51II1/gה_q0ބ10fXP+` -6ПPOls&\wV6= 0a&~j [Z=W^u_:Rtzme.4+k4xƠF -)O ίu/`@hȉ+f7r}!>w7%,gҹYn!Kktv> KP_ ٤4*3ZzCǪljjm3S/`R _Z- -N!Mhon6\[b6R\wϑc*=Vc=?jCZyF+n{>@NZ5/bF*#r#7i{YQǍԨ+ƌG(HyNd7xg{=Ê6Wvg"7*l.an ZЭ跔=Js'jvLbR53fg̈YaT2c?5b/ScSbM#I̯\%gˌ\}2|))enE1>=*U)@=Da)fn$[IcuhuX&L;by7q3qFzWhD{o͌ qڽ]iVK4+>B =5#>4`%ۆ)6ZSmD{d[1ѶИ`+UXj,m\Fλݳ 1g$b>ã0{ KHe K"I&L2IfLB&$$C!"ITBR, @!(}cVVc] -B_Hg3s9|/>X$E ҐcU8E5IsT@U-wdґ -G@2#Xa:Ŏ;BGYn;[ycq9.YK$_mqg.j]L,kc acSUU -TE<',ݩӣgFsQ3Lw[,q+'+yN+fNj?g8IK+MuJ,Ty]̈Qif3ȝ;KnEFk\mǽvo[Vr_\GF9ƱlMԀxꉧ,'r`fE8;J9SU3GK= qɔϛ\o@^o1Mfg<`9={4cVy+󱕒c}fCV?8+/n-xBRgT7\c_-or}'w*Q?_n0#b&w[I^+Z\xm&}$=o%PF0 7f|>xhA,BeVVQ2#*RzTVj|&)ԥ`- -V(!x lc 4o2cؒbی-͸"ۈ+c/bO~o&j`C5o(]k(FӜUʥWj֪"ͬFnԴnM=ɵ(zۚ\16&gJm<h|Pu<شZՃ4>\3 i7ѴxMmthJcuC2Mjӄ6ii|qkzCz[Qk`mD#hl#Yy&-)tS4s!&E:TKXܗ.S p8.jkaR3нAWe4ހRbc‡/L>e~>g|A`fNmh5@8 -q P`%:X>qBx_]}%~1%ޅ&V#7B%B70vޯեh>g^}~$%zEs`@}xËWbCaADA z,EL -Fe;{v0-[nrt#Lqjh8Чm>GulꖀiEP0'oeX׈?L0?gpjJU^lbPx;w@x#F7b;&"awQ\r㑗#G~-QXM7gQ;O-SQp2"G#q$*q`i9-2 v/kΘV#cak6X.#/a86`Cj~c>11_Cqy,$Ȱ31;VcJlYi$+6%90HAOPKL=PISA&ze?Z#tI %UoW9R2yWP~XaJy;RU496*pz9֧1ڌv d?}ѓݙCM7!Y'KG=2%|'>KL!rl/碗͙s1  ec [Do=9 V8PxWtS9ڕ{QNUy^ g#?¡3m>K,;&Ygɸl`\*cїyŸ_΂j -([ -OaZ p6¥jJ4 ꚰ>ªzB$a-@Sf4(cCO# 1.aV-EWQ|řh/΃D*.m^4aS$E0 u3J$a"?JE>Nśi^t!:Q%,r\pVhЬEv6VZk`n&AaԾ& EQH5咸Oͫz4KI='=駛qfܚ%piQ)CSU6UhԕêӣAgF&}F F@NZOIB[%*%qX'{j}񻋿UZLXj`-P:FC#j -1tBo Ag}Bcr:#w#K V5HA 5Їf$&"p|wHdꓰb | .&7P[M`븪oR#$32R$uHYjA\, iD"*cDAtH8MENLm]'{LwXǿ *pʐ%DqEׁ /BEyjMl`֓&8֪16Mn?H}~~=~_Y⦎%( )Dn(/WS:`ʖ@Φ%r2mKʡ|2LhLcx, W<$Rk3`\r2#s͡jgQ[ ٙek,3ƛvsZ+*Pb[嵅OΗg -S3`VjeSˌ[ۑCh(u:.:.Xn0g<̙+[F_sa -SyH1g`^.@Us$z 4fp'Eg  -m=E'{xK4bX94s퉮j#MCd;srÎ]ر;ر;h(|Ful]pwr߇ {)5՜ ݌>4Ap&B4hΏ{Hc_N`G#I#ůKuX4`;1'-cٮqux-tɞ%CR[1Y~ւ}8694.HbU(Mm™&>v ~fتnc8!;ݪu.4@W 9| -Mywt{>Sӆ#I? {YrU -nGL_M%݁{ց 0=&&OVۃAcYp drXw@0C̄9P eP`~aY̍;ټ' K==⭇܁uޔ_8 l4r9 scxƎi )>s]u ~˯| | \K68ش +/cHgi? ؂.c*Zkl7ң49Y}]ZZ9flAMOŢ:#WϚdDeo{g)Q~hAN^Z0UiEUUnE&herU|w+Wrm]w?<5nk0I!vßWÕ_n/*}cJ;U *4X;<1*J,{T\,POfӌov?)E]C)!*mU2a.mTAE5k)7Vy~7L9ɚ?^3kz7P2VkJ6Ҥ3J &=UjE7%gaz<+Ŗ7fn^ jzM9X=G(eJSF,BW(5x&k\A yOcB+%FXZ(.EQ6XU<+Ė|l%69i!]552{+w >4)l&MPjX&и /SJ -ج%E҈ CE#\ 06C9,{rhaVᮚɑJ쭉}5 5D㢒46jR'ktQ@#bjxFOCcNjH, Q-נ\ZZ#mPGjRRc<5>_b5&.R)qo%jd%ŧix|4,ޤ5^JأNh`'P-?<*?we1 $n "" 2,0QNHAA(MqZ5q4զM6mzĸ&ƚXa9}"ΡlX?m _fK1SU@Y(/ir'+; ,E&C2 2UZJRSdHPR>%RBNJO %$HrT#,g= 3 -boeȜ6RpeE+#=ItsjLJ26(\MG'qA;Nw(4bS:F @QU5IVcwU^56=VS5Y!r>><ekzP -)iluOy-P0yڇ>+7{4>]5o_pS$l7SO7=ϡ~z&j"9Ff3A(h ܚ4K}i~i<[dZ8ZL-P kygຈmlyh*^/|3Xs"kĚC 7IÚ%%m,1ϵxXE# C N01ҾCP"p8iFjz͚ 5Jc{Jj}?@?6f p뤰;YT':ppzybFcI7xZZ+ow^BmxBP\wFzw>{pbGs֏ ŜC9VM(gU8@xuq?Nx;AEquO/Nj[9WuqN ?%wŗ̺75f/NLN>V 1,vb{%Ө;[|;xR>prWJU}s_DщTMNΨ@Ə7𣋼:~ŏZu[8}D|E Bm'|.85go-/(t"шZ:s_lخ|l6bsll29=قldsۮ"G'#$:D b]Pr\l.`w,$ -ϓTVWUD̮r]9 ];A1B9 (hr4*Ѩf,Ry ZDd+G#r"pvrԾѿ+`ܵ^ Gk4:ıT-TiL\Yn0˰/2,3,31 $vcxKʭk7V괪*RRU~V.Q*Jc;R{;G: rq+YȦcn:JFd)ﱰG}VuWj폴~UeZr6f_T=/F|Tg"S8%S[K8]ͱlsrx[}嘽,Lr fÄce.vLg2=&> 1,wvi9Tk%?k5t2Y$Dq"nG9orj8`!E8\IL&1B(iK{SH9#3jJCq'_vDSyʝi%SK,'r %pj6iLU1݌2ьQfL4-0`tݙ2y_ d2LG_d}>'.zi{XdU˜jɌf*3Y&w/4i'p y-0ws_c=om)]Ɲo6t=&ezX✖.kߜ,ȔjٯZ͛ٗs J*fwa=V|En+x O=ūt?*%o^ΒVGaֺ"tQޓDY3%R=V -=xz1{GN]a92k=c`~53tRLrH[(m $`H#Ϸ\_!9 -}ue1ӿH4)$(~I$ =5XE_Z#_t ^}Wt,RT$k$S @:;I Th$9")Obp/ yvOL\Mb&&+#rrC|ǥĠp!ҮZjBVCq$Y!6BLaCSl aTdo1'"lgqHLݢէ9(Ji+"J_1uBp:ع DSbsMa}aܰnBywx fkf?T#VJ٭aH=Aa+\89JI_4)ҟMDZYXI׃(ORS_US[Ƕ\[U\=%=@vP5,O8"Y=%]6mzI0H_)K0l>.wR )ZL-vj5!/Cp'V54Xք,(z۩g C|D' z "9&5xZpT% -vz'57` BcㆎS}&Tyi0(:5 : HtRwKc)j<)^xrS긭Mz[95YiGcݲ9S OkI7e.5ӍB 2{2ceey(Kk]XXXv]`9DPEEE-}3Ѫ68ƨǚ&5UcըʹMG϶&iLL9l?qg~e}yG㣍 Y&FaV[O?r&4ݑ Cƹߢԩ~?pҪ 'Ki.g]l穋 LhݷS c)+C7`?vj $ur.{gxhV.37kznP7I7M;*D2f;y6U+6S|}.UXzM|;]jsrE5zH]< t9}" v@ Z3a,tS|=t}M>|\sOzO BVȆB}24FQG@Ǘ9 3ЕbA\Ru!u>}p?^0zݣ׽C.RC('~n>_~fb/%||% -x6Otk?Sn)qG>H^WBԟqsϨسu8Mhl6uF*ާVc%>V2e e摍ϯilJfSQM49αͷhf x%{Z1p"ơ4-6o,P -4jИTmnq_x y-5+8{wn}W0zh%KdhVWfvWc!޽LӺR8MI~Tc&X[Us<1=/gjjb(Gˋla5øph?YCif5iJ_&U}M (Q]HѸ8C5 TFU[UWo<=ߏ2pFqZ#-93#gjҔ>(BlQmp֘~+~e_UC,dlְڪ!T~q >O ИUEktI"2¡9*PJ4@);҃i Vgd(͑TG9du(9YgdrF wAF2:)SB}ځγ$:P^ ,g3_Yٲ5(ۢt%ggWk̮*\Jp5fuoQeEຬ(]EgS WgђL1P%PR]e`Yr#+sY<9Sg<);S2Ez7+;y*sIaSDn[X,4&rP ^pV,o4 P!2WdU薡PE#Q4NE --ZE'̃>8dY]p9dj FEvǮ"!fRzD1j56$HӚ1ZsL5Gڴ4uSv~LLJ=}}}J,}Zҗe-=/kMي\!iZP[OhgJ(~ԏ0h.CM& lXoӈ`]~񣇋5顸{ ٽ ]k4N>brK $B])f:[`ki8`ogg~rr9H};¥{Ev$9P,z)YJ\BcU?t-=7L0cQq-)8ť|?ct$`]9sMxB@w~DŽ q` -a2B5XXQfezE|^&WT_?xNDH x&@QGՠoLNי1]e -?>Ǐ?Y>c2D|oI9d 88>//w@<)3̤NL ?>ď0՝?{wgROyN9%x%cd5^ \{%e3)/&.lخlln应wEVوvϓ:^<@G!.b(?hDcy2ĶuDڄ]?Sm+_qх*?J&v%} (nC -D:\fkmt*t3zs7]/Rk3ɰZ嶥jm\Lʤ"iʒUTZM8K[T`T}wj9ME$QnrvJˤ3i ƗR-gE)v8T:Lũ#5-u&0PiєA^MԬI_ ەO_ kx -G҂Ҋ. `+ܔ9"T0k#Qi*7eyG(AuY`w]`e]]6xM0xD⠉hhԦ:M4=$ΤvI۴;^37{y{wiJ>SMM,)O"t]-)n~]6pDo}=׿%؃ -M|!.oNP9M1#U3&_,UVSSE嶶i] u.XwzHb=xpgيlAS!|(^UEUY\QYM29m^a,-<ٗоY.e|9)-0pvӍ*-M0 &]*pĪ̑,Wi*-5,TRŮ:&5UW27j{/h*u]9rFc3e.KFB|P e;GYli*.RQyVe(S^&OF{f)ӡQ]FV>L+y>FG*^3T͑[|oF׸[SQ5SӨ|3kWo2|ەۯ4 \UZ FoTQ=Fh.& B -}/P06Fk[yoHCY2uLRz` XmJ-ocB2)f(= &rkxȧPPɡf%*!BCC݊S\bo+6znڌ5]0Pp]W>mĤX6&*%p¹J[4,p(.ܨ0/6&|f,4b96Dx5ƌ@=|mA{D'Rb45AC[R@pDT#EMaP<0iBSBca<}P{{$7eh6ugrј?v6ʜMncښ 0mx9c8GXfH⽓1[s)V)m)nql( ".ɣ=åM$wc:<_O&(ӧ &⩒iX tSK(kRˆpp [eg%yt2'9drcN/8&s-[ֳji'7UjCm^0}ƛnr ]"W4y&걙ztG7B=V6,Ԣ\1ovaM]QD:Ro ig3tt:~͍[`+<(f"$#I̯e'{5N1bhof=Cc@~ Wad 0*r޸ΞqM&:$fϼɀ$`8dA>ؠAd,-=qB~#M][}wuO|ʯ~g ryAXzEa N -n2.SY4yy]C4b9eh'{̻Ja,#tZ\S Z!}5}L>U3 xG;h^ms{V3]8 -Je|INS4hTO[}?#ĞIybZg)W*7eƻjArz}}Fwㄧ ShGV4\ԭ~b&Tb n_}ث ѫmM-v,ϵ'`| />g,ƒ8B-^T*G_L|7{٢mӉ9:w [iɨ Fܤ`< W;k,ExNT2yg?fۈ_FtA7 -Z9#9NZ֓I:Y' -\9yv2È?#KBh&t0UjgBF5׏p6XfƱZtR'e]o;v.p8qNlp9&MNv-mvJWrT+[v h5[@QZXA\1& -  -!:'}<_+Qˌ7ъFQ4$M,c]OxaYEVW^eN{{J;Q>!ctM:^FݏNtf6R;Iha:fmMEQڣ^C")RQXs< -uM!}*FjT tj"W5=dƲ7k 7,jpV7PE,+s_ܴb%4J{JCvJ.Ym\)Weʘ&+W*ߩd~ -Z4ZHAD˜*@#S4hтk"6P:MAZ]ƴwRIJfa X<1ٔ0974dnҀ9~sb}kIieF˜, WrFAeY*]YzJ9ZM `<ĉeȖ" X-V(b ֣.:c -7(hߡ} -Skj.7-}G\ܓ<:B %CYXc)O/;Qb-SOYrʫYVI6+^UrD~ǤZ[ث&xFNjr;^Ɋphƒ8$:j0.kQmRD5jq*P mZjj9Ffy|Bu|A5WU| qOPٍQ4` z=^0>Eü^P.Z\jvW]/ۧv5GT_?(g\.&9=A6Á23|43 #7964U_.4&ab1۸zsVW6t-ribAL"c+ǶDObIcN9TYPs46LJs;0c`w^@nwUf 5V1!a5&9f6Ԍn&لnތc+Z$_-xIL|1yyuz8c}:`?GgisyǼO& ٷ=0ۃ>9g4OdNi8)<|.[O+q8O^aX\ūÚRZ#u}g\"ӿ30+FHaW MqM7-:uqSu_qp?a`ә>^h^; s͌I.1_^ }C~w=ue|>r,!݆!ytVLX1K/W[e2c̦Z^ً@'~yy_=ͫ O8v?;NDZ%n;7zImvݺ6[E֪] Bҁ( ʠ*kT.T`@`m2sQS>w{y+8!hn X_8wp@7)82}]c^e?̫ -<߅o79|NFb-COoc\#Wp9/|^u¹|<~KhM^#80lO1|e.c_ރw&2؉_3/^P'=C%i/pZO~|1!} -"zARBLy,|>Osyx4c$csyy0;G{ W=hϳ<*wnY6e6NY]adZyN8K΋eT/·df }?edNaA{)tg"֣=Sqy9 ܯ3 -OTnawj~ m+'`6@;vahO0y$>f{;{n2ŵSϰހa<_֜B~c7EE]TK2/{]B?J5hgI8Zrs̜y)u&x"<参 ǃ-hQt1"Eo2KnB>@6X=GRff}6CKc@ ZbKI~hyYE6VhF~ , )Y}E SQiT]ILkiS;,>Dj+>V%%9ib"6N&!ˀXf2ez˪cU99Ty:;QޣeJZV2V˼jQAE-\RrU!u9Eqs mohn0*]7t ԵTiU)CjꔴXSҤZnicƄYEyj0*h|JTgX>E:'?'n݅=XK۳|ý49u_;-s)(WaQV+TѦhEJgάkpnr*[yZsrW^Ru pSngN5pwoc-u@[>C )VB.1WljtU(r+RW:긂 -ܫuonkUsJ5_#9ϫ}*s:Ļv|OA?tbqo&FxL -y,j+P[ZޠMyu7)6U>(g9|'e="|Ruޜp-ĺV|e:^$Z"s~|KwF@܁rҪ d%"#O Y_%xQgTxSJ}NBw3h&hڡ{Pa\a.UF|rFBt-:'kt,=2GWY!D.5Wi8{ 5سly Cc~;7zUSr cN1d5OQy|Lj78SEc*hct U -9?ހڣس^V>7CPǵIrag+Z -eʖʚpȒp1xiE%ɔL%I$1ILY( IpB'Po+h{$qh~\r߅uc H^"sʢ!Sʩ%) -S jV `V4NaRRRl֝Iّ]hϠņd6h3//LH/S/9t5Hu i࿏{vw #A<0sqsc,1|rl7mF1f#+>i<>]s 4y%lH*P_rsN0+8t&ܧH()^b)e`.ɐц?:񣛜M'х.;q+\̎ ')'/aS} 0Pc7!g y?QK9d% .5u!}0klVO)^ތ6)`{`5=0XI}ƏuaK}u\kWr@nzcyGY<D^%-ći 5M7a&X90Os6&j>괟d+V곟Xl!y}K؟6Sϟ!s=U|R</hr뭁H(!0 XBqaC*5?+8plI>| L}_cuM;9`ͅ9x7Z}k -Ǹ(dD\,FN?#'')3q˥|xCulb3׻Z>W]yD&Qp$ U\0!Vs%q@ϓs ,QTg~)!ĻeW9IнFsƺFA}pC&k@&0@>r0u-ys% kTmr YWIe{1܏-S׀CX5ȵG6(пјwUH}r:~\eM! s?ΣijOZ{$U1#1J ]v[>_mpmu })'hЗQ* 8fy ->=w$) t9Ïa|$љY;6f_)b 5خǶ&b{gbx O)5dt;mG/Q'*;)p XUf{&wѺИPn.NVjd ~E=Kx:\?דDtO`X >-`U2K@ +\gQQH/5?z ORz^Nl߰Ǩc~g;h$i= lYnl WP:l7`{'!n-n_%sŃtAzDwm_P|ت]>`tdJa7#u:IDQR-4,MGZYmbÛV͵ǐy,G1C,E'9 'F;5:KQL䥅L>f2H6lq~+93=\ssAOǾٚ5E^8BpDJ8jnV_D*P#ĸc7|8V3pw1wG6Q)pd‘GnRx੅M؟Ld4HR1è:g(UW^1DwAýxK#>6s13:mԐ`ˀ)𔰓U W\ᚈxC v~nw]Al}`hi`, Y̹ßI)&;U^U'4$yRTRLPij݊.V8uS_T(u)G9%RQ}_ι_m>@xV˻JP=Eՙa2åL2TYrEm5WEA{kߢ^y䶝UrF8Xʸ HjFJޗO4:Vđ,Y**U" 3X|WF\~96>>`b:ɧ20ہZyVJ)7WJI*vf*RRY N@9U*!k]S˵HNZe^+쮳9ALk=YHI;cQ5WR> BK?/M< -*ϗ'';A׃AA?L pew^g;n ,$$\ T -D8V^Bq2ZN6#2Ң >q;9oyn'[鐫%g+{ ]Il% -e VP!d"Z "8<<]LpUq-@ԉhܛ_! -c> ) $Uc֥ &Sa -(Hw#)<as29C>q-JFP .~1͵~L{ MHi 4 -JG ll+@5c`*o >40E70cۭ +W/pdK,1!a7fF3bll m B&xjG؄;@ |Ro.<)> ?:cm9&'4^6O/3JκsܺbCg\o3@jiy\g6^g8 9@/}o1DNQCbwD&AzkN# -:Ncnx_`='d62!'#FW?r&eRR;㚅ͬU[uv ~&v6IZFPI`%XEnE㮥>yl>7 ,f=F5\3KTh\5!%>擤!s`1kD- ^[csX|0>CMlFY} s$A n–Z5d||X`5?b ߝ%b&&ϰo_`aM<~H{xy71RX:8{WYIň%@#_&A%WL$u8xWXQ>8B>0uUJ &^pKd|G|FwUV3]6KD_PLpoFp*%U~/N )ڇGNvSO8jQv85mjd+~Ɵ9D!Mǧ);Lr+jOU,U*.V_ZUbRmP*Q!y7^'q~&>@^gUcS;Y))*wzT0TjĞb{*tT(Ѭj-JsHOU/Zl( "Tr O%*HV^SSSI++5W0*7BMJ3:eK1VmlxRS4Na\ɑJb1ǐ' A9J@!%7=A9$e(ϗP&#}cr?8ʫ -o6$,fwI6l~vIHBH&@J$ -$AkJJJRZjŢXZdZQt:0VvږaV;0/۽=s}o -|ӷCyd}Ke+{y3݌slP⼫`M2|ey*(!Uh+ت`>9ò7RN-F 6`|KZi -|A|lr :)wr(4KP -Q~RpBpNˆ/B׏܆hDѲ!|PNc%|a#hpJF0ߕKżbxLq㤸Sn~ǐ Ѐ (%]%\a8g|JHlHOq4di X65|ՆoexhE0W!Д./n{y೎Y|< scZlŏv0 :rEE0&u٦0k@3nIk%e o!ya|HsvB!'KA#KYd>`]*Y Ճr\tuL-1GlkKx_ o8I/9kA!h.\c 2ꄯMS~w9Xeqrđ&fNjn q/X6,ao=puV?&kyGC&g3dL(9!Qjgky?ۇG>-})wžk) -!#6ko,c\ɊA(fC~yCv&ړ{OK߹F*JyW=烀% qe#3pH\΀j<9y{@&/|N:gT "bc|'ku4Jg-_-__߃?[mrrz{ҿrGQ --@t%"}v̨N|StLF8$P3\PEM/3y^b}"3ɹ#LV92l+C -3l3ԑ)eX%x?<>j* - --tL4&qXsh^x_xONjqJtR{L(P&˽v+p^Z!3Ne8qY Squ sa(C2M~] -{mf{Lm5:'`6?)=|w|_APŎL籟.Li$_y=Bz?"kzDZ}p_!B%}'] J)(<5kn tb#BŅ9!:NwpCȎn$|_)nSV"xfO*xlyxH%k7xxSspd;I쯇o9r8+[@ -ԁ8cҕhC|E\ -;{Tn6ٻ4wX܍*ɝyyrgEo/(3?do%3$$`BH@ Ud(Q"EED -TPM(Ȗ-Z""Kw;=4s3_sg}ߖ6(M@rAk&Ь%vJ^ ; KgM@ úZ|u9I<9v,}l+팸 O8:C_ mk<b$J.!)A-A&.~OHtOHZsѴѪŭ$NVi%M["VxsRܢx:{u>4 gqYBzt}N}.ѽzDEģgq%+ġ~ŢNy}d8/aKbrg*bNE} -A3A "M~K[4[<~M [[%VA[rNj?]༆ey|1G@(h`*]S@K!M>b Gs)4 N_(| SC,u%7$ђ4ų `6уv-dwCaآļb1a11NSaȤϋ8!5F -ESw':{U!<\>y0?*>⎤3&C̙",\&57K?GӚ -4JC96g! -dSCI23!rm3A{Z"%I cfqdZ$-*<|6xcw!^"0Å("qkNƤ5!96"M%3 Cso#:24s4/%RLZJkM[f -ESjhrٓ\gRGB %xPEWjI],-VI^T0 GFZќ^IRkA#VN,c.'ZϕW:g/\hL1$iRUkkuRG[bNڱEAΚh˺نTIn}Rɻ@S3$( 4[f\" h /\4DSGwΆ݊+yލCF3gDv6gTT a[>u 4UFhF4B@?hI| baX_MbHДt%0>BS .z$f*|ըj@8:FF0'YPyH`pΪ4M LH9:KFf T{|jHh#OS4puddq'qm*i~RRB7 ೛%ljۛ ZoIq@>CRM}jP~D&%x8(D笚|9*Ŭvh֘Ws/wQqN2,AI5F(SB)RV$M׍luxUyd./(ǘn+ДЬB݆j>׍l[ {T38؂r99<cBvOUdN[`(Y9y -6izEqe-Z^Yqխ暶U_WݱSv7٫w8vC 1r17~¤Snco5{gκos~?.x?.|EO<䩥˖xz3ϮZ k^Z~Ɨ7ymn߱s[{o{>Og𑯎~}Ϝ=ϟ.\JJ]IYWQdg+/RKrR+kAݔ7) nƃe-ʅpa2b"NLUV܉w+3~ܘP~< y G+K<Ô+/b:&e+8fMy[sP>| T}<:I?().^J>\ͻ%~__b2lvǣaO G8#1<\|LҚ7?3' t뮶;f[mq&O6}ƽfϝ7 [xe+.j[ȤƟILiLT*Nhj~o'G~83gϞ;w?]pƶehbm֮-;zW_5a3Жj꩛sӲZdOG. 54PCC 54PCC w +u%^]/9 _ԏ-~kwe ܝVOѢ'~HPG VFծ=Ͽ1}C&|ww>/n{y /Mٵzo.Ѳ{_d'װ6Rk]/޳̾{ttp|gvzffgi;fiNд2/AoF)TLP. E["-)'-߶g/yޘᎀN"_ -)Uka"a>W~ՓĢ ?J!&vezzc-̣>$CkSFkCe\ )j3J-)|ʉ鱶d(;nZs>w'C71}fDmX4 >J6 3O;F.^hW}F]υ -{E"f(/c`4Ѭ7h^!}w>85KhʙHAΡ 5.-F\ |{Gq{im=/ZtUppdK*8+#KD0 -3{717@AoPa.57d0~DK2qH9yBCOmHLU1tՔl2"8dX2, K%e( %6@du= -םj^A\ˎ*$,!2.KGv[=ZP -$A=]+#zw^ XaF*bZ*SRD &^\4h`C͏@v~'x<\վAGi]8^@(WI<}IXA-edYÍDVa( e Zg:8QCHz,I^PQ%xI-02,탡2Ad jk.s[g-HQ$Xi}yJ&E|Ne2@ZFO AF# zw/؄9Ќވ0RYeJ($9J;C`M􂜇}0 P/69&Il됼:y*LYT~?W@lͥt%SYBfaC*Pn;ӑW_ހ}]M*'(bN)%O2qbzȅ)}^KgX $'mo N_u_q y[r=P"fUdVp=!:qܴ.K``ZJ s^9z5-&i *ઑ9u(I#ObDQHnƖP VKE2jVwn '\G&ǼԲ֠m0NJ\ɰuUH Z %4Y@" 5Pog1ip`䉳ߦq/g(MEɱZ,T"V $KM2TjA})Ï9;g/(Ė>Ȝf+Z5b m @92v~ jl̆q'G%7B#~̇ސt& n磛#XB. xю?S]1a^‹w>LpP8:H"Ol@H4@D E> Eߧh x 3{ =p~@bIb)y`o%65~) -}OztGr( yĆ_ x {L|@mT+5s7*Nȁ3GR]xڅ)|9x^d\ \dyb.pPdmkkm_"8'q*)c{&B?P|5 -b} \hXL35j1|%/h`?b!4У( ^@9 Sa6r%'Pb 5A(=)|FIS|F!'AcIn#V4jBkn    {C.bE aԞ=ag*"tVP*GhHLf)sUQ͚H%PY~5[y6V!zgkhpwK -Ly}\DM3 3]WdkijJ$#d=U$yA -7B-P%P_6`ׅ3$}N+5AIL62U`#%yWFSE E[V\Ks2[nh`ԱCbx. 蕽|Đ -Cű-NV>ߊ=jVy& ޠe=ή0ۯk@G -*h\̰O^LA m(U42fwO'pxa0|YPa47(t%1 Ο;\0^vwvgԟg oB l;e^cdUd ~Pb07(PfG?^;87rzĸ~_|)8Wх5SSrITdC!b@ As/=s߼tD[gnyQAA$LN'3 c8FBm}.)u#=g4b4~noUc[Q8ܾMYBy͇fBHOI8t8:K - |H{ȠLdT}ūoݸ\7gMӫ[e`Gp=ϡnO"@EdYs@\4yjlflV/o.=ٴBj:*n%}lNmg[SeJKn/T^P@QQQ@@PA/],YinmyRؽ -e[ -C>yE@)H;a#ssEfKϖ?,?_V3|~lEfAx8䌃XH?Br_({Jh3[^^0_S 3`p^AkOot7$磐dmÐА -P+6/ -f^ Gp1~)$T1|RB.玦TMI千.YoA777SCkCɦC ?#4wPO?Nfo0qZbNYLn~(VbOKmkZeu8MB ̵Օ??#Ȏ,kNDs:#:'>V\9Oe t̚R2'L掞8Nhmנ镡1!?mb#~GPqEfV 7UO$K.R+ \f9\cLu%uMXyߪoNhkGWF 5Ak(9ԁZ$)93Ε4RfiNb]6*MZInAӉW2v -&Ġڷ6[ɐiuL Ye>3YK@e6rU/"4 SjbMCb"5b@ ЇIUBEI*w:SW.+Է[i>9Eߔ+UKr7Se@p^*6A3x!Y!,!*y-vANEM&ACӫ cuԆnvC$e^X_/.bm[rĠyb g \)ƴ&} IQRVmz;hgyn46,bhغ ;WB;b>tv/KWt:A`jNmg\}CEŴ6NΠ7Ҥ}4E111t"/,1AaO\4FٴC AJd2ȫ(8Um3R HaD ذ$[n+A? - cSΙ# ͺvUD֜Zא )F/ -(F;Lj! -14! -rfס^w Y]1|6QHUU5gvŹ=utsԚSͳe׈2xRKFEMP81H|ZOgk15zq4`.dzXFPV(3Kd&Z/asbP+KVPBCǎOf{~4]=|RPIZ-` I-|M)z圾ЂxME os?߻IocA?c)ґ]쉗RtIZbAe򺣕EHE)B)2*AW8/1/o\#=s#ǒF#l{t%/NՓ % ʸtM~aB4|}MG 5 qtl^44ra8((>' ) 1tIDIz*5+ @};XpgӻG\^km'#!_ٴ_DTXrR,-s4A8K`qqY9UX[~M6®QUA۠]tw \ԮUGg<6`**9{".#u 7 '8́j');m{k&h ho''DX_A!NW1K)LY[FfZy on: L㆚ P 5ۗ@+@t =  򆶤YIVS~AƷST*e\W;^^'cF:/n΢wt@s[\d FPEt$H3>eOsJ0)/(kh@>Ӭn fvhN1{vgo'h9_ >u6EgZcin=aqWu7h4(N~ ="l'h0SFI721MGMl/ 4d`B mȠ84'<@sgV;5Q9Ts ny*rQ(FRiھ,&#{ZsJgK|ݶ ۷6@|ftgB&'=TeH[H}U{˚6˪Zs}I/S9K 'h߷ -T7P1!O I=;scPcƪQm%WY.(IM7ـ Ad|LgGX"nJVx+9J%rS}Zd5LV%THdHm/6%^AfdP] ={}-*[[|SJј*9(#6a"[R)|Υt9Xe*\of{{8 o@eЅ փos{Ȑ選 WtEi2ȕMe*icAfa<&ZOki*QCP:gZd`"/zn߽ʯ'mytSqф̚t^s4{g%wQ5g,lmEڬJgd୛ m?gz݋NP*|3I;! RʼnC䖸 5mkey_goMi#֊NǺ_ъbZԊ"( D K! ـ!!@BB "ua(nXQHU^h?ܿʪ@-g{~o٦w7iaݯ'^ EQG TŶȟEa|1Hx]&]-E"͚`^?eܡaWtLmqu~)~?;I _)OԄi_hY=A.3+ݑq+rnW-n/^2禰gl}'=$qϛ2 &[ftC2.L?+N -z*)ShSes s -)[+,vU%8Zyps T z;v6ُ.3 -#0l&. . x D ꞏ|ces`"5^Y{JOD'"E5 2p!8 ;Bq(7n\v{>F+,Uyv.5ก -.I- -vA@Dl 8p}!:.uXb,15(`ռbYȅK2Uw ׇ _ yC7^R@qX;o;w]8|6s\FV[a4,/Aqp[k=;\ȯ f+7@!H26:C6 pm mlO +8{q\ׁD!P@rԣag -BdIR&ԉqMYϢhc.ƓޜG{a87Nso5dX݋`J#o;A ccx⇿LNHVvL7(I sU g F3LcL.SITS󞞹's1{.bXܛ|mz^y3-9D^鮒d L4T ~m8d{嘳@_h[;V'(PJIki)%F'\WTonuwWIeU'z+fjol/c}I6K m+ΨU\f\VnFeoÅwE*I> fh:֥ݰ˧֚.n&(袔[1Z(>D$h $k+{*%KGuS[o{d<5mq|셽qj??gpzB9(RF/oeV[׃ZE-M]5rI@.i' 7crk]:_Szp؜q봋sd 2hD Ӌ>n_ҧʫW\[1(\Ax*P& e~Qaўw5rr,` )||dh2e"1!>LpW1CBzmM><\( WyPzѿdf--hxomP1^R#g¦iIIVD6)/D~R:.rЬ,N/TV ֭],[y -)u߃'/RBHoƒHgyQ0 -L=ED] -DI(>݂]+Q[W_M[f1-cC\ÿDa)5:6`5\,+E$Eq$rV7z߂jZ'W ۄpN%4X`E3@D߅P Y &( Nv /Wm FI,ˣF9"/*J~ ?*\8 'C| X d}51RL܁i k|s'Z8B$1"۳ uod8:;r8 8DC+D8CN@;)/S~l ZCDݑA5"*{&#Ud8p@>3Nl ]80 {`ma CVsX@s`5Qd3c&?.n)TC*בֿ$\)/]N`,w[V6/SW1F@g JUTC4$"1 Bg $*AHP ' `jAj9H7Z $d;A, Q^jC>Ak6*8$l(|g<59jCo_j@nEDioK 0W, `{kX3_*yBJZJEZ n $/F.D>y;5?5HoCIH>,1Sd{jC<, 5ujS h5<:y)!j@Ky4@ݿ4$ig>3MM$" q:y;*CaӇ,.1ҽ?'qL.\|Q&$NzEseP ONM%O_P@<Ґֻ<eh@!Z jYu&o5C\D.S^GU$ͅ`̐n1p=pS4\:9x Va dYˤ~Hg/$'gK'd= iN%  t=n?e5&S74!i HCJ9@ї^\Z;=z4C1O# - FI%>aOЀ~9x,&i<4А͛lG68`H7K -ANmtaLs)JM - - -.QY2%Y")u"bb] -q@$8@50Eڿp0̿bv9YCu7DrV,8dI6Rr<ĵH i(ߴ׵G>trÛV/,أO[C0L]5SI =V E fKt XBkUSjOL~Wi_  鶅 ^9k>=퓝#ۃ͑QqMzZA(VIXb>Yʙ,uIr- RzV]@j -齒B  dW'`#g! ƽßo=UǹC;|{Z#"[o]MIjRE6') oTWV(VX5֝U[++h(\Aj|l>m/^7K>fs,ؐ'NYJdXʮK2_f dzh F<ߪ!zA=P4;A%r@Esw]kЙM? _p8#,-:Ym+jQYņ<YK G*hez}I$jp^ixo\GJ9t[ivO=W{y{7QUmqYd -݄/4s -b)R$Ī8V}pKsةUu_8t#Tov4t_6=sꋈw]`X ҊsdU4a|S$$E#LMaT! LdN)σM~kcK_o}vvo8~,x8<⻘4j̒byƉ_Qy"Z4`k0mz{i4hހ&ǁqܵy 9O"n|@F 'gR> ݈6fYM\d2m&Vp73pp,gnWA8vx2 5c/OOp>D962{"1>m"S^gEYQϸĐ҂z6 -v|yl@jGr j`bCo+ o=]ޜ3a93WgC3"㧉1ԸkxI!/)uJTm sE7Cj?EXzf?l^s_);xًٳa'fKf`cfKʂCgy!$a~W}g{e(]P;# Q7la -8 -` xd( yBr&gp>;~`}juBR*G!lu))6<קix A;/CԞPH i =H1= bPz\Qoh<-^(eCUM-tZ':-"%,X8.λی-~^m灴\qJw֮ udO~q|2PG( ac>lpNj2[Ke8vGEłH "BH)$${$!H*(( X.l"(3{9W?p.Y{ofF0  dI_}Rb/Wx"xW]^ <|s8ųq0}<Nb8!cVx} sw[1,b]YHLelQuҬ`ZdY-IVQ¾guDY@< ␋ -_x:[9pˣ!5Q-e'& -㤞-Pq$FDk -(ܚ|9ǻenkxn1P` #|"Ȝ̍j]w{MEP[[L('1F:רgKjJPER+.4ŧ3M7XN-Kt_>kDP"ga^c'qqK>˞^=SgsוGŜ*OJ)*JS9ZSXW -tr]:ǐ,ȣ+*,4EC>UuӜХKe"[q`/j, -IgMk@76޺|tŦڳ1ѥ|~y -M_La˭LQM-àͥXL$}9UBȹn&;t$=)Y-0epD`anj{9vZkgoaGQudC g Kv1[F?!RS -zdH4%Y0aN8u)H d9s8g[lIJŴ\u]I㚚G1hhjsP+]ռ\}xn~sDr^G{TAPI =uz:ڬ5>tk7ͤ﾿Mw/uk zDs7u#)y)6YAO9e;푷T֦P{@!AsSwZCRs?U O>Rj&;ߨ}M[Z -W}^w76MUK,Ց=8RAbyڰsԁ ֫ uTqZV"D '(`A^Iyݿ20duQ琯UPi5w["I^OjfƵ<ɕawY9*y;zZ]k^wiT4لݔxwg 10dBVI۰ՙ!NG|=xa~iw\p7?W^)m,m*m+w4XƋk/ TA!GRpn .q.qst [q3c>VFn=RRL{ e"Ibw:C/8hΎCBh$3b\PpJx֮CyK2c~q_vdrT]ptInpF"Sp},t66!l"FMl I3Ff9X!AN{H+RƍQgSwy*wlHڨTG= cpsdX"[,G\Z $7@t6KH  -/im>MKH{ -D6XkBA2]d (["O@~bN{@i 9Z F?x9 ϙaciǩF9ݬۜ{1HH@?!i&Ri#g.Qi@sTnBz!<y1v> eJ ?Vެ#Cbhw/e=(}z,~L:%|HŞcdA@6}GnRŨj=˱j*n_J2}rcf32gҎ$MIٔqQ~7לG᜻ vfOJsE]Y*HPkPNaZnZweCI~T~%c"7*kHNT$Kc͢ܧEw/ sGxvt'g@B6$7ϰ&5oT#G:i)E edY$oH I؄ld)C@+R>}/Ç}07H^0iƟRO~O$,i,K0)QN|BȢ`z@`/A\$%%!5v_k]7t 7S.lt9nF f=ް|܁Uǵ6[B!ڐgiznT[$߮sڀxoʐ8dgWos0f3iApZ@bڢ2Mq? n.a~DX+"UP"  "d&R0 w~T]sJ/)h -k0x QbF-&*E jQQDkbaĠ8?R9Q_3kỵ@` ܦO_,Z_t86]aɿe?'#a dëcV[L:@?}b#o$`W{tC -5@; A_m@%kPkj~CfeK0Jjn@A((g4:I?|kXyI*x $%Rtfffjj3Q*jS$bZ\uab'q(\} Tp0zSs( 2A hBmT‰c4탱!]~^qD:M"!#M)Xag -'d&n,D#fa$ȋO0K!G>(B'j m6s+.\I9MD*9N` (7Fx!$fツ^kx]2_K,GT-t@B{,Z_]$$)\Na8XE= Ìzs\2Nl숄^ RMVBd2ePڠfV*`u}P\\cB瀿<JmQۂG0ց~Ӯ^ 7Pz<^O$B°7yi}>Ǎhc'|>B':8<WC𼍑2M0,؀oNXׂ䣮wvkʯHH|;čWH^: 4.x#=h1, -GrR:" `q'yq~=@$= &j ڐw c!o& 0 *r4bY0CFsȒ,!M[t=NU")3`^D`0~폰I𱤡-YI|89H  #D:#eDN3afȎ\E%+!_q U7xw܎ pN}!kH) -'c-uh&W؁/1("B`p7Yke9⬐˶ETxATGLroc?KO~K RSS?{i_c#:u6ᐼJUOjoSp -'r"Rqΐ1QcM#)'XkF/%mG{~B?d%KD.vX5u3Qi`slBE|q볢0H+z/}+K~?Hcd`v1n O ?dh=L-6kq=NƙLR -=d,GJfb *`[%ƶh>U^ذl`=>ԧٝG0odg>$nޤ__I\2s)pFn[lu4v?5c5vwֿ) eG+ ˙%5oDH:2p~LξɹΧ}⏰O2t.KC 7:y, TzdVG[ʾ=VF9Pis.)/w"`8P#~}bC:1J"n!ȼ=sSbMsF])c~.SPnrn(W%3ʓNcžQ[=T ,BBxyɮht9e5hp[Ԋ˓vja̭J9jsT}vi.|oC#$ -$Z-2dAC.q {'i:&C D,{ږ^;2(+r9gJ' -*GUYs[eu-FvAdOse}N6V i(&A;}_;c䰛p­s}Vt*YIVe˯W6嵨~[TsdJiujejekq@H[2YD,%!iAGF>s:jh[i~W#J:Q#gW *J-eٍŻuMj*UgirYB?uz@Q5B];sk:~#-4)A)ԡZ I - -*HDP]@?8*~Yѳ}ssv: {:,{~'ŠBzjZƲԨ3Y i%9ՙp0W(D/D)췉y@4!M?a{g6-—KR.~4qj4h^\:Y]_^+(.*N/gd)ŒԌ 񟱒@:mCySn~c+ǯx`q_8ΩZAd -ёTaiEfFajŜ¾#E%/KiG $I;8-88 w>\/~e*=3rpAO^?۶[cK8!)LjFU^Y\Q/?//[>_LRZbٛ$8I rԫ⾶oý؁{q{nvh䘽a^k]gOhV0qјĴdL^M0TWõO5Ki1oxU+q@6\ET)I}QFˣ{*޴!ݖ17ݶa LjiO$3#>$Mr,ȅ#q)MU2Cu6d7m\N ;~8I jTDfl\o,jo: {FeDzS{“zbb#; WקjHjNgv̦_ -8$t%diF4;$ݑFSh䑎T^Ŗ86_p& ׄ!q쁊D$߁!c`V761=/{5JqP)^^ >;JBf6gdtmB᱃F՜ACƾ,ǴPOhޝ6wBš(whñԉ9mb%~cPI _}8-ۤН /οQKrk{5.T@%uR=w1щXE_R^K>KC  />/iE%FoZgaAլ HkU-ɫV"WCW9FHՔ}B[Z~Z/9})gOrveNfB82GuRbE| |#5lYwT [`wi} ӣ}x={ɏPcMeC0cy^a[I2ކP_B-7:=P&\hΆ80dWPh' bpN't/}hc{6m@]Ĭ Pet7||ϔA$י T%OX黀 >]4.#`\5ƨ LϬ_9,P-R ,?S@5"Ib-adVp'EBP>0O]QM^[TzYuQ Ɛ9! I@ @ A@(rUZPE -*Ȱw;9]笇ظm@X  o#D/a$vla,|Fk~`We0;xۜ{!p .B i+n hkrx[6?nǹQ'q-[FÖ8āh=н0 D Aq1O#pR=%~h@m 3@ ҵ@ez$|e[IZ؀ ws*CfV=zG%v?&W0e 'waO"w6x   Æ9~/ϸnl$;C8 T7[ځ|فa䮛 N!F#{4i!U!_ٔ>oA%W;9-<þ$`ODfhl<%n|TQG wN::>r~u.;Zm`.W&<AȍԄȾD WA3JJb;D|IoKIyO%^H>J3*dS -4p1:?,y7s_pyP]yW~1GyFԦЎ'XGE6&Z,L( %;Hi{I 2+F,,jB&)&:Wn*J.eW{;i4IsȒVIT|(0g-$Z.UíN2 +TU% iC -nE>rSiT՟՟y z ߾C7u27ۉZ5/[|ٲ[WjʙN[QM*jmU-M-4cR<7U>42_%di> -35LA,ty ]lrxOgwۂ_;CO=aCAֶ2fS<֨ThX%B}0/D=$קUR:U)?RHӎ1thkuNf Gkf,ںkyWS:s-=hUR*S Y#0deIU+*"0$N%ǘq5@:g6t1f_Km^t?p#`:Ἇ7R4ԲwVW e2raS(hr+F$!ˬeHP<3Sd[X15@ cbfq݉Ř]K0W4t QrFVXY_aS֗pRK qb\&-O+=JA]4_8̗-,qi O -1P= f<^g̍Kv;φڻp;iSe #ݓ &ZJMr`:/2O_^*yNi7.*a^\W<ƴH=;af~.al̽s0W0}Wu8/l_t.ҳWl:j~IH (" ;BBB@aG(Vԩ#.uSw -,0EtVEq=c= bʎϼO;~|}&GPnj'Stbo~~́ՍҴ껥? eUe>6 S9Gg?2ɃVEnvK7rk. ^H -/usYq[[ 7sbMFuaӶ9Y k -U E┆u9&NMit tIn3 .3^9w^SǰVՑ|פЭ37\X%XQ"L{~:ܮԶʬymdmC9TeZl7$chI-if+ qA3$MScCV{n Э _}#/zq|εIJŕJ*-A#HOr{kJxBrA7좑ܭt~NZn2I##rߒwYQ۞7<{7ú{cDfknNS2KR2LH.$ &zrX艨Y? -^3C \?bY>.Ԉd#hݐky˰qooLlqd)jMlp-:2{-O)zIH8!J"HX>--t?x9g#0 ee:@i5 !e96̰p\C8hՇ" `Bʂ,R)!*Bk ;[s@\#/x7){4<ǃ.fqq!cBE1"ST,B%W"=U^jo3v+w)n࿡) ->HmW] f{!և‡ T\cMPCj1de6C!>Q DHhu«)5QʤL @JM 0&jTًH CָCR6 Qrq Zلq鄏 gLQغ|AACil2} fl)2HϠY_8!e+<8!vCKľāIp1\h"G$wH -.HpAFڕLw8(XahS-^dltf',rw6&`FQ4%oL::!Az;׈Qɛo%Cҹ7I{-GK+ D4ȝP*yLa5%B )mP1oL6Ɍ=~iޫԆ&7rGQo1IyCWW/dclLg)BCBt!ő,:飔c}!"LPƷ:̚ bϱMr6s_`kcN8MEqkKXܪ {H @ b B-@"D@D -A^VPֶ^u9ߞ3)1 ŌyD>$ < {>p}n0 1[ n32+$lw} b:XۯQ)GrU`0kq&LxO1 Q f#@O[ a#O}kTm=0}ډ}Bs"oףX}i$6hWѰV0+ -s~1e9XET2K^Q9A~E6fLH@S@V@((C^ -d!o5n3aNKǪ]/wt9Q~uqXN-Q1J8yj^NB03S?*?g$z$ {s羚P?llew]O~{GI=VkȉŔe&tir:NfQJ8Y9$Q)JRR^y:m<$HX|\^ԯsv-K.O}ݪ7rV>VANfgf1ӋjMOu^>/NPJԷ$?IIeH\@\k X -:G.5yionm>KWg(Kɔ4m#%']ƍϬfeiƴ$:7<-3.#%. lb$ zob0[=\&:7;/j;E W_v_U*є(ɧB-K^P•Djω^H;)ʋ*|˔|J d!"5.7 Eg0ri={vUM-ݥ :gv_cĄr5-4uFxb$[ܒ\A?LQGl2d=iv'poٻǩѕ7w6qiD>YP|]>&Q*4qw mWB-PA;?k#t{h5h0phUw-uHy^/;,1 -0idҌ,M6ɍOhoht#$1a-0 pF;0r]m3`fouw)^lw+{/J#E] J ˒B'Q:*(v#-3>xJ÷!a m̝`,߷A ,hrO-i~%s0ɇv9-t9(ax@!p`9 l ,n0aߌ@v;(ݎ[G%];1MοÞOʾ\O%(wƁfdlfGmrޟ~n^BL Ѿ"4 I\dLCpfbc!Ń5RlOh0P¡Ej9Nh8b#MN dBBgCbrDd9CVI;hdFo۸O@p꣞Sc>k ᳐ENCP@^ᆌE gސlB@|<:S!RԨ/Do/G [1|l hf;U:A=*$(j='os背f2N/d~~C]'^OaM)^Rq|m$ y$ rȋACrr]3CS2.TkyP~@ȏA~6dJ -|:a9z[ gBƄ>c8i80 :W=79>Эvc4ۂnAPAu,lȗQ!ѿ)^E*T'* d#d@G4LX( aaV4D{%1K튢|O"Ə y%~Gnwv?DsdڐT ߳`F5}E=z&L`dcn= -'\y0.+\2lZb憘gMOsN=ɪHӞK{*+y&O\0TAtLi/vNuĂ 7ucżsJ>?.\0s}Իym9,?-wnog\?]}oD|$u0R.`ḁS.͇=/4[/[$ɿ(*n)1wƎKNw=Rv<[7E)F$z".5,uL,Xo?T48˽oҐ17*fhiHRRF酒EMs-3ԧL4'L]c;ڣϳۋd)!J~r}EoY{|_y"űo2ksk._YB|Ʋ.͊c/5K9P|>wϹ%VKedZ n)J{4/#/x -b}_`߻FܽR|~vLU k,WTy|zߜ_);qc2i@Vs%dM}Q ỐOsڷYVp3? c> tF}i1\Ci`mrkU{*7iw<狹_(o3~n9h2m:oHXնf>L0?I8XUA)ғ`B(@( =jjA@P((2눸zQ 3{f{vV|>_NnMF*1&8xxot~ |NΌъXQuTY٭9.}|gWF>UVJoO&51/'&Tſ -NZ 4D#/C -+2TVkrRtLgve뢰%1Gz ;ryr)R~1)ܿ>YƪLa&KEļus->TC"{٘p#W7 ưnA:hO6zIw VzE':J 9U*%IeQ'Nt=h/L@ -TP![ ד`]tk 5]Rwҗ]&ok7BۣKq-IM79'LWBȎr0yL, -M1e?0Y~rD#CdUV&z 0_@]=hxVr⸁pD0`ƿޟ:esZdjJh*dAC1b)VO(P T{kn~x{oeFgC5='ݼios~)wC,D쏹k5t$9ǐ27zO17ml36E|blՋ6<ȕ~WNP0- 7HP5 #(^C}lgIqLO΅sd?8{ &`V`ǘ9f32g̠촋#:JR%n+Wq gC5(~/r!Z Ɯ% Ygf~,"/|&x6dtmGUnߣCnO6p`sY9P@ -HUY.B )RyLR7*71[hP),SOeNwen6sew,~^p\O;Cde.|-{2!aYb3V]5+ꊟJJMWӌV}(>o;6kb6ە/a+~*p<@k:> }Kې_|4kC:(r:k!T -5C^pZ>}w <H[_Hh \~:L:IvMQ" -ְD{P9Jڍrw2Iu|u &9+m8)@ g)kHE vȜ` dYTg;Av5&@ $$$6!)67,E*n8RA[EQ}k=ťӊ֭Uq3_ۙx;}srpig0 bɴA$ -ZH2E1ʴ JYec'6PT9I~(“Fp [83ؘǰ' hiCzu%icj&v&ON߃Ѓ`O B Jπ_.xzǂ6p0~b8A\4uxg3O>C|x\-,@0Yï {M;H3)W;=%wÔ/x0ȃ&|<BDd,H:τ(} Xict `)$- ?&^[?i >Th\H>D,Ku YB !2m@½V"i EknٓWB_ a5W\R'H#ݘZXc!F](#,2S֛CMʆd͔dpG#vg&W߉ڏux!px.S lH`8G!ք`gr{Qv4bgمD)t01&*4 _c3fE;v7{^u~%;4 sI\I>{7s~c -RV$4ePͦ24/-!E: >&ϵ|3So"j9O=w60G=/xߑI;vM +3 " D[1`@*&D3>+ߤL_$~YT|?V.z}nFs#b{=bwUywTyߥ7 Q> v&c a$7d;3,!7#ўL {g c NrPչ_Khȹ&v߅s1D <}Ip"Xˀ|ăs8Ép'4!ιtl2K %dsobɬ&?$3K/w)|*Ι=G :Pui㟈&LUw( dx CIb̀B R2 -{ƛ*WI5GneЌeJѢDNgN˽^w05@rp_Rhhɠj_Ȁ꘴?lww}Kop[b RH~6[EFVQlƯuNV+.Y*Ns:v(@Vo?,r=K%};;RC ˷W$VCؓ/M7&wУ(#Qo̩G06NX'3ZȖgaks&%C>_GT䷫I+&gRVRZfQ6Qmv>-"{9צU[^RZ*^Q$ސA.o9wGxS#VD5\j}\?!m,DPSO;!oQzR[3~:7SohUڻR]\Qo+/]%n.Y'k*ڤXUMYW0Y?U)aDm{gՕAP_&(TLf ֦CnAlMU``|wBmMIs2<;?n-_[])XSY/^],+oWԖ~*鏬(9]VrUQ.rՕT iiQohjl5M]_M:4:-p|澮PѶ[ZT.kzlXпBаliTW}" aQ(B @ؑm( ""PYdY(.Pjg: eLm 8ȢTEgǙ3=a>~s>9 -f?pfތ=!)B3&w7- :íT~!3߷1 ײ~\btqjZVWdx,ҬdX]~at,^}w:}.();x{Br%FeTA:']Hx uE:L8˄M|j2$Z%&EŹ;itK+L)(I:Z㟘75Qp|o~ ^BD&}8jh]π4\nAG byэWYoP|&lmM95qU;U.puVnTUy?? Ȫ=us5:r%j8Of.-lHa^ttz/Z}=b]Zfx;:ƞ͒G7(=:}B|BF:V7^:{Nx -۵W:?yO^T]ׇ^+F5);ǃѽAOﺴ4BU\ۘ{>ȔF|rT^^v=#}#mJ6'jEVH]r.;hHO2pl`)0?cWh-KjэcǚD&Zn*Q<ZG+2[2Q)'9O7^F;uߑ.> g_E̟d+?Āp{߆L3Npp~; ơwRL2,X -kmb>E !T*ք!>8^LI dlT,q*+N׶>~LW4Ӡg3s'|:Dx ꩻDa5`ɿ | 9_!(_SW"y֑vuc8aڽ԰ye=c\\tm2YYpO'-Ba -|P&(Pq%HђBW=iS `0F3 1 -Ә+{XY2kY|uS}.?@O߁2``Aa1 -5ZJTP+Л^4#h=up,08XKt0Ļ75LU$;x #0%uj}4d/K P@領F)AWJ) (t" EƖF;R!"Jh`8 AhyǵHsq'*.Zoω7r,ɖXD8(g?E,A660G \ QJ\ Y ?ψrȝ/j:YB(>\E t1QB0MƲ!Y 2Pͺ(EQK  gijoĨ;Kx,(RfBҜ0SD% ݂5%;_t߸Jkx(i ZG>b9 z }z3u< -qz:O|I~`V=.h` t "7N qQTM ֆAH$2Ī3l5c ~[>`-c5Sfe~ #Ɯ}Ƃٽ0L ƋBF cJjH}1@LIJQz#r߇zVM#ٳn'AF}xiۻnzЂL0X^W6!``U8ߐ4|3-5.!q1GQkG,7[޸VNa{rq&ՐΗB;_ y4F=֧#TX`̿6M{W"H7Bd]沼5_g.}ʎ{fk"f|*k1vWZ~޴b.#" t?>1>Kg O.Qx,ŀ^ `38xػ,|+>Iq峜DKm%8opks=}2f43J>}pIʡ^~3G 4@x{;W`2@_VBkcڝ"_!y٦9zw,;XýȒp>IdY>--\!BEݔjoBWhN(Ԏ}ɂWD+,z*2m;xBa"4hR~/C);ªțfc?]Y뫊]H[@Y1BVaߩSGB:j&Z4y/#g$H;$l61ױTW*H}$B%M\(/, - nOY xb - ;jp:DUʎ0\2ckY,ͦ&k\wUEbʊ:NFQ _r*(VP~[|(B0l5g>BU t]*щvutc%߱0Nkc,l 3R5n^Ԑb]P+uHd|&3e#30x=KvHU=ki;m_0ptn.>'n_Zm}W ->H[4@oƤ`GLspf=1Ze_LRs`6`a(nQ5 S≧3JӾU_zk;qolcoLc9a91 5Rk)C:{PWX\(nvW(hdDzs۵ DQ:8[3.O08ĵ}ݶYٶG1ֻ5]ƶD\"ΡKԼ -*/= 0"&\Bֿl!:!#ԑufq:': ;#;?:kXݵ&$F$W1h|~z=}?o ? n3b{˜XFӛ̊VsBs>)Kk ~ׅBy yV?Kv@x D? ŸBG0qLd0%c Mc{ xgu7v+{u+}u+5=Jp_A_F9\w`l7@0JttTa4F1ned8 Y8ebIeI 52@cs'?25P@` EԔP\ 1l1 l01LF>ba c/jwJRC,Hn!? ۞ Fz0EYf&\TOal>/r* QD('UDE -尢O\\DEM‘0Qn ƹ28_BX=&P3] ^"°O,ߨ[VeJڤRUUG/Tgs⧪+⇪n}Sq[{jVwF@/eP`}\zi=u\Ԏc|p<˘VtS~U*~QV@do}v5uv^ͥQw5y2FkHWɕ(az{tGh.R0#3{g$inuD;nݽov%n=N7coK;bOIǶˮޖ]}$7,5ƣSk<:OQ0-mH8&dհd'dXdYIgs3e]~õ5NW7HL4\rA׭][ަm}^9U3~fݐ{S"6&d2:HF'6Q7t̓МЏyTbq~t[]͙i{iBέ\ΥM8t2&}w }q_GRJEϺ4tKGtfmL,+zwNq›NxLdnG*/ZN~I[rMuG5}qIK@H &8L 5! !!!!B-D~AumγMzvqwHEӒԫ|90;Fzx5OռQQBgC$kP|sKMgZ;> .=w$e@q<;eb6tU!ŕFQ=.Q#U"tGr VMN|D#2fo+) ;i Dokvpa2v\wz`Ys:P{qG2ˬ6d:jH343!ZHXi\:!$;D0ut [8?^|WA ,9ai;d8У;^rji&F7Q*Vnbh -CJdCJ,K!).R.>H_RT -DQ!5({AW ie$J/wwT_ZIqae-Q(w=|kXhރk}twKfWvzoUk%ƜyTe7J| EueTam5-hftd֌W RUXz͏eDL5;hϴ`!@[+{} =L۪_9w^ܧHr+pڸVwU9)ECi6P3&4l6m&lbB&fBdk*=[\?ޅ;`@Iv0ʾd Qџ\ЛvPԓ}-bnV>h0-<m[8u{\r#?Z_#3M/eȐoewbp8S-]YrNaUy,"_M|Tn'UԐZ\&MaSހׯT%=Oz{U z9gIO1!E41C׹z. 銌hԯ-iw {=k aC,CRDNئC -GgsYg./1n_nߘ7wϰ_d8"i46[4X\3 嵄 37%_A_Kn^ ,Pisc ?\tN B`hDSEoOu̐&ʡ'Q <8H1&FTȅ?G|&^(=7ت.Dv6ltvS!{lOVԆ!aP~`*ZpӄqtL:R͠LCsR|I_EuqӱKO,^&?u-Ñ#w6N/►*♺2jw*vEME4ʈhn -ҵПƃL##Z3p'S2'2h,ď,Q ;mu\ݾU{w+igaˣlnsۧ.eqhWD>F` }lAmstl6+Bx4sPzd\yʔŊBb5e Λ]7w+w_cmBKI"KPUvv4 t6L睦y 4,B8,pc7p5aFrD{̔=jG|Ŗ6\!uSiz)kN>*ve]]q+aMLtX*b72):F[\B:qP?Y@PU/bT5?F37Y-gUYv|cVtbYk25X2}ۗiӾ-K;4NҌA^6 ru КHW?w|98/#j8g> ̛fM -KeKr?R|Z9E5.fo/u$F!@n ulJA@5@XYE#.`ǕxZjUlF2Z;sng.8g>>&u)1$~*2~DV]Y$ILLl'bopk9@[D;W"!+H^૫QMmG3ӭ>ȵNSWV:u.NLVH:.K$Mr"91{b7P.8EC`{Jm]inTśXVʳmʲ Y咢LSAFK^z:kQ;kiZ2E]\PUnZV=CU`QJV$YNM.)g')v'(ds8]ٚ&3&I*`Fga4g˨}=@W:Eh[+WV(DVerی"ԒJiRqì5Mh'*o{DZŜb'z|K}jpvAH{WALl:O^UniCan4:vfGɖiY6I55تzv++ETuQOL9DU0DR/i?WS (l BԶ۠rW~>oJn -㬖u1D mRUjNaug}Pw5n|5s U3b7%zCt}v=7[*J5PjfqoEz S:BL6ψiO3ڐk6V*Y%]ֺ)s`7΁-Zòf&^l'~L !߽PvK'^e.=ӑ#Af'OЏl=R-4+Y֕mYdbkufM_Osak%[F~mf6zP(hU((H"y5E/_fm7A|oi=3zj,}{=e{g7>=f>yz LwoTy#@D rH!O.tȇe|5r B<x GhfL{'0yZLA8 c< -0~2$o򏁜a?O@ ([@z0F=7 30z ׋z9cQ- 7ö́1j5򄌑+)?W $ïK(ۍ(0` -2=1 |f Lmo08qLJ8 ƍcGg 0H YG6.Yc \#'+q/?dyTSWK¾!/@ Z*,ʾHHXHԸТH݊8mک^ENw~NrOqw¢)^/  (sHlCbh&M+_<8 xKKO>Nctf' HbGZdAC6=|Gwѽ8}|K ߑgcr?F>c!SMA\=iOcOg#SbH5|'.5ԘhZz%BSE]3QDtNSEWG-M1fO u?Ax}aM>nۓO_)S 'zRC*}I d+d[}̛~?$'7$XW<.z60s;pv*f} τp-#k -,IK`btV`Y.u˻w52U&߽6]n|ѳMF<My~ozIfC޿Ʀ76# uAmaG-Ƽ\%9Zy%FjM0=favo}OOՀ)c>׬>~?l\Ȃ aha߿~}'l_o0'([wb+`50@hlFcYqeF9 3Йۨ(֑p< u}ֽK{BVq -nn -+ogY^G-=w[k [?0^c_t-ě:aqFbe=-V؝՜vkNo o ;(61'ǖg;͑ض9 -|/=7SЅt>LCO!l/5ѓc;)մ31bGں=[n[cm\L_&X'\=* 1X쁭! Bwa0$Ѱѡ 1&T,ҨCh-Mfٚޔ$7'V94%6ҫVovZC,nKCQQ}܈.K]¸c]"0Iiq' AR :Jm(sEM^ğPи(Ƭ Ų\+gjm܂RZW#P BUQVW-Su=#*x!Tc' jLޤQ8' •\CT" RFM.P1ha, 1(6-+Id,[MQPSV -;ej׻ȵe=nRq4ew8],X\iP%28Z2 XNvQSK髂X& Z:\Q-Qg9(J+FuiWIcn(YS üIwypB{a4ܷ 7XFU7(oE42 ÍbrkS,klEV^UM*U.$W4 *\ݢXq04k 3!A4(ADqpU֩Z -X+ -8"8KlUk+.D:Zu}_Z?y}r?hL1+'Ǫ$;LZ_3~Pec^:A?iÖ8g~&h;+Wƒ&^I>7AR9{u{d*`}¬4=f15x/j\jѫ;|v G X{EwϔLmn5l%$ ݓWoy?8lJeҁ529ega:__qڋQq=C89NwnXۚ]2xuj8QgCls4و<+al܃?/ b, q=0DGcr504/"~}Ts{re.r,EvܜGD7H}zQI;q-ri9Ѩ }>mmV ⭱5^tWtSYNq̟Xbߢm_6*m管;k莿+gs' v}8 .B- 8Dz 6PF mmmmdۤ}hͮnyc!xP:շn+9 -d ;H΢l@@ѺEA0[TV%=вdKƠE4++JDuIU>%Kſ+ -T Oﳿ&3{_3[_ wE .R.uCKɗ"ۡrAWY E ] ombj/e?fSXhf? rh^U?mwfpػ>pbP٭P؋!vI/3xG@S` -j'hjXU5@¨#񥤆5kxk ^]zB/Hf,d~Љٖ@ˀO&|P:t^;5o -@] a\:$dwXNR]% -RJ:RpUu~ߜ%Hx]/dϦ{̽j  ~O9^D.Ue纍.O<Otc BTPwk`w%襸MtlVGKf#d<3#Kwa5,Ն!]jr}va2v7Ἰ}[S-.R\ -@!nӀ\!Cu~a/ZlEY`<7"{n\$n q͸Ah?J ŀ2EyuŹf)4S6b*B:Ul| 2ۚ0#Zŭ i4UT$wT9Si̴MuڴWUb*PԅJc~ 2W :b\Qq}nE%󖱢2YQjPYl:e^Ɯ>iNs8ar8.hvO820|aj|tmGF8BF"xY;ը&(n1PO|3Bq"zQt8/ǃKGhE2 jĪ}Eb'{c\jl!B!$K@$6Ibر@ 8X$vl'Y&vL=i&I:Mm433{y9^+b?uUL$L(8/~?b.JϤTJ> FI l -|,Ki #ޖ_LAYB e"dDG_ŞvQe sIZOKB/yȝK3kFJ0}n3уL̽{T -rr\9fW 9eAEEr5 z!֜l=+;ŝ\2S cr0GY)kXP!JEBlkdJ'+RRD.0ԓy 5LG aŸ!5Gh@h@DЯ$a!0\̜/񨻍(#AḦ́˚Ͱy 4iӥr)uQL6WlzUDQs=\,+ {xw/\: >ulG<>G~=<𞍄r98 z1iVIEזƌ3SZPJ\ܞx"Y|RԡZoS'&>Ij){|K !hQ< 0*A-3^d hE0cJ!MaCqG_NU{ʭ.m#۩mv4BfFԤYJh,]KNi~ɦ[ڴ߮%'7؇1wޭF0w]żcX[kN&U&VfG TF4nQZjFn5r]FЮk/'Yt6~5F_EO,g50_.|\}DW1y+Zu/iВFEtUG9*=QYhc5T4sm&Z@bbR&# -ӏJ!@xU&K>zpu6͘79o=Flc 61]ASF4[˩ -ʪnX;恸Jqʟp|&]ՇȗIz"CG/_p3u8mx 8لǚyRHG"^mQlFY]gTֵL}qq:46ZGHX#*qe_k%xa>}g6ּ::1wvw ҠMζm֖Ljn=LnhG; --Zeijg[nAYè>_b9Qe5^Rs|^b;Gxa}x&ּ+?1s [ܮhhw~{I6W*֕IvFVvǘ:˩ -zy{-ns[ -[gDdZ$E,,siJg|XHCBr<(ds r뀯hf'07!_R:WƊ2B_}(VM* 6U M Me0?;ϋgnse@@Ӏs%`-TMP^q7W;AT(ĉff>XxkU@c^_ c?\p/0Qz:Ue@+ n:ԤnZpC͐7݀3!/o)ca؉?DZڏCKswُM>0U﵀&Ѓ)yocܤQ}E.>o9G윸x~Q`:ϞWXx}ͼ{~⦆5i`M󞬉"CFQl`.~ <_ @]Q }Fi -ͦIٴ66*TL';1E;w<;A&W E8>UQ1=H?y,NxdJ<2uQ-R.iOeEBvWjz/+/ x=K{+~rK NX2Z*L-!Kel%]ϒ%#/X -|* -})v\UlSl}Mbc#?4esZ 4tU\q/Q]}IEcdOΔﰦ)[+ZW(7[sUͪ #s5oPtU]*60>kt&T Q?wQ=F*Nm %4N)h"/_WfWdkr6hvج o"nYo̠6ABmАc̿B$Q~<)p0EaWHiCxڰܰъ_({NV ^ -]dLk$d>=H(aAha^S}ZO#=vn4ݛjfWpj/s'Ϡ?FJ׀7GbCdr#H91Pf蛤^'Ygi3lz2 h8;8R}J_#6{܎~f췏l:lvژȉ醕1aRVtYFtbaʅ&-jiّ" )+G7Niq4%CrcG ;ғ=FYcP'pFnXoEF|O v"-6Q͠hfLΈIM=ߐe41zWCR[c@a [5{砚}>)8 -|`BV `)-,5!Z>ʔULM7]?1nݗbWq\>r{c ;ғm|/#Y.h=?goÌX<5/e GAkТ!#@ Az@TBt]OZa]-3umn~L _|?~i扫t$))2k89ǹ0ՒJT2k7gk[=LڃYSL^&3iH$%QS{ Krٻ>5`:d1UKkR$iAzc~97⚣[XVu'4i^ԛ4#uNpK J?sYIjeC?14LӱظP\!?kԜsr2\ VAZwmꔌ5I^Z Iz-Y/(bkی8(bq1;¬Ay¤c> xc&;b|G:1SYQ1#:As9|ҩw X=|}鄓2v q~ x́GO4=ˠ5½ -PBEE(z<(O=޷z]ɸ-w "N! t;< Ji7N}7PHI2$9CԿp;7qBƝIS0"@!tIeKo4pe" WX0/#tpL.#?o05w1cbzx;~~ 3 'MJpT,=/^`Q|9Y0y\t$o>r|O~|F!Dϵg/PdcE]cAnArKĂܑlX Y,?`/G|b‡hEE>{F)[6SDϣ̘.c x6o>&w -C}1<%ă=&YEyCp m49q42,&$ Ud=LZțNr qO?/ -z%qx:)$D-"d% d+APg?u1q -xk%w~AE?4tN"|G҉Xy8&>y;uvQ ?uR8ۃo>?pnA+r7Fx@qnT\9C41$[1jlf4h:Ӆ/u<;HT}Pem:X5$p 1$$"B"QmCToB -~ZC j]FҊ6\lU~\_qQBYOU"1J F* !zR}/&4w|kuWa\QƗ#.hVs|يs=1|Nw'#k"uqb  $?-2zp۸%Wb7;>ŹU8ӽz4Þ8ٳ'z^m8k:CO`kO]"_ǘ٧1-O$.E&꟏Q8ÑEOg`f_BfOr2lav lpxixm71Fd7w_AB> ' ]8\Q|L|4h9'6{6`ٮf:S-ڙLv.Yݤ]nnbkwrܺ!g5CV_>T-ÈG<&w銿6ZY=[|0,Ga_pҍ6 [tyجs0t%zmu:vMl*[/m[bJ,ѝ.ݒ6x,m!J? -O?$[FM|@380J]b^q!ވ,fM\2]WʶUqKiB}YHҤ_%o5OW̸񢔐O%RkL!jy{Io$('ClH&$%IfQmNpM$2BZ -P )Ҟs=n#ڌ2tŪh1hNMaf3sRNaC1,36 -K5e0j*` -G11E٫`Sg~+Ofz^b)K29sG1sӐc 7_k*ԘҐi:A/OL_LoWUPQ*L,Ch>rp:>iBzeE6l r1M4侍>'d[PJYҪ2 ܤW(6uy8ƓuE^W(6ҜN`g!XK- 5?OY=1#?ov` UyvΟ-R%(ZBe“LUQݭqZ>8,;9,?y™'ʝQxɷTd8GڳX@~*P`ڢQ3a6=$fb+ -rٲWZPėX}5 + .ka][׫m]NVM_jUTXE gܤ:![G-^]4:u&rDiי; ^Q%k}j_ooUwj,\ub3^wY Gr`C3}Qye1LȸfnowKlE~F/zGn)\)\*ܮ6,x2Js KtNRS*4~$'j+텒x|Q䋃7q2 t7畖Kr!Yw]Q{;TiޣTďQV"_ <3:S P4vNO~%npUFQ9FXҘlRir* J$?IRF*ErVe*IXPT!*E9!{:;)`Tҝui />aB0H1șldBLf(5\ZO N$I2Cp0]<^PU T$ -QSo&7h"i4L#UOs: {\?a0G!=p:c 066)a ~nL>\yTƟ3, -ʦ0 '-Dk$F5O465"eE 8Hpj%&*.TӨ(1> -&y{E -9^٬IθI&9]hBm^]u KY+ǢVwdX'!-'Y00g#YT:Gaf)r -/lV&TƜҘXe\*T%R=PC_7f1&yeVr dia=H>}BR8Ο,$}oɽX{c?&ؾc~RĬvywR@Դ`5GQk׋WI%0PCi4K+MA/@t Cc4b嘆HG;rX/usRغv)XHk}/q ;z8x@Mi3_pz"©G3*ViDhe -B*"r8*Ǣk$T͆U[U}VRS0\$1θلyY&7Vlc<.=c6$z =08WO] Թԩy$&ߓBwp_F;~v[.vB-ӎxJd"%"SB ԩN 5j{q|˿C?N?D_/b"Od -fRg>u p6Q)\s;SU[whWp}+\D ZBӅ9 H^!M?Ө3m&SǎXC56sjnݸX|8%:Uj- @oX ^zXHo2L77Z3X Ȧ -󸮥F5*phf,Nc'Y@*o1zuAS;hvcGbl ^;CQ T6`sQl -n?Jp!! "',Y<8}hHBmcj"G:rĦ lZDB4zT픊51n(T{GUHOic{WT^o}kd4hg7Pih2X8 PbxņiuBT#'Ib9/a2a"axFq-ENcEv:Y=k=ן@|U߶^pĦXcBIXcզQ74QZek!0}$-3-rPe*S,1mU,65*N*$Pf)盅"JCơqs5>}{`%v,iȵ2j/e[&IK-Ŗ兖 y%[a)-%yjťeyޙ{D K] qDpFf`fD -5.Kq-5zXTkĜ4mz5m<96ij4Iۓd1w= |zemA6G#ulI1kLslJFɄU&3-X,VUZMI[a(wcm<+1Vl y+6"SH"?7wg:xuH?6#<MXmE%4X2EZ -S,7{2 -ۼZ[b~^*6o]BeKa?LK^Ze}%s4kahEI٦*t۲mPj+KlbͫqֵRul:lsm/ԬkCzu]˸9Dq-빮l-#QW -eʔ$#JLHY"8Xr]+~)W$/U~Q)ʅpEy'<[!܃Yż1t7|ۊQBRu&T@j:\L5IRԀXݭRYVxO^YՐLܢߗuJ@o/K} J#Pdc:9pHG#KPX&.q5َ,Gjo2;uq.,q3l>P/^0GO4l^\NGV G3 -w><\$丌X]9bCJLWcqҦ6H&gltҥ^եOuo4gH꣰+y|'{X[rzTB^i$1qO➉ŞdyRaX,|!S$.TFO&ͽNkpoRrFIII>KB^ޠgS@-H zdW BVHX+' ; <)XTeʆUVU(ebNL,n{OKqޫ)ڸʐ6'.S8\>84ʕ] \n ~OFo }HYSs >Ź͚پSX[hbBڟ8tf`5 |?` 4HnX< S1?$0o.f0fi8Ycc 1Qu@fύC PD3I&s[1efƌhLoiqڪ3fL ((@Lс<؈ =x*)`|W ~KwQ{s+=o^[6 Q1LLjۢ0m,&MSX<`*30`1FkZن;aX"FԎG=a֐Qe۩BFT'%`^ v>ۣ0} ڣ1}t'i;w,ǠF ؂ h?[?CAzdݛX'$b_f1G Dqrº+RW,] Lz?]  |d8paD8vs 0CK77[7E. ̹3_oI}^3vi=EWGA a:-Dr:0 3G_l]BG>Z{#=`7ԧ__ DQԾI@!j{r aCя =aOpaȞߓ{G{]E Ybj٬5{#|Dc1=GO>g`|C x/y=dO4 rjbE 20*;o!"\>'ug_KH2kDT} ** EZnnhYDQA@B"2bM01rRV&NRV8ff\*5qܢo~T{=缤O~ld!Hu'3enDٍ^ӉYDdd"d3AvtS"oq?xW?" ~ 1 1tKlF3`'5ڨqssg#>mj O9z<&ȿ?eg7N&qdOT@EꬤF5j8s#5P{8g;V!}i_2:2G;C5ķQĝL%_AԌ3sӨCBjF%5jH-_'QB//} Moq~$7 /DÁc 9}r]*|=c\| urQDUԨF-5>V9wd4o鋫˴wi0Z"6;ٙ0eG'\;kBq5JN&gͣp y]U -Dh9YВSG|kwqlCyeÆo$O^17x Ұ,\p9bu,ǙU85|z6S 9G#qGF^Qߠ1] sh!ȓx吻|!+ȍpy~.)DpM1lt-C[ :jtmD6toO$xm}qoc<6WL7OfRߛ70L.Ot%wW􎝆|=^ }`M.Ůk:-ScJ O9Sylv M=D+4xB y4O3 : -]&s6L*gsf2ϴaR4{bW*UY[Q?kP7S+}]s_\uS^})ZO.;v{{bs%}4h1' >VlDoj|P[*BoηUX3P>G\=X6rޏb|Y,yP<\{-]~tS\ `*aRJ=ʔXLAҎ"eBY$,W ˔br+-]--YtI#e?!,CG߈.10vƲ1-Zָ. Uc6C}PUT:(PLy!E_H^X -1cx@k[Hb[fB+:q#1&.헥{Rh2q<3I+s#kvxa>Y=DlvBP&-~,"d%ĞXVjI 5bԴc1ZiCvZ3\o1\r{y{lb>Kz 4&Vq.]#4"!RhX0&>'dӀ~M}̽5G%]3G%>4G%VhdeT>` - 38E<gTJ&;iHbR48%LSh@jT6Q}Ҧ+:mҲ+3m),)tUShShdArCc#˰ Jsz2gکOzguStV_ٱ -ώS -˙МSPE9kS+c͹,2L/RXݲ|އB}0 f8*]A -, V@a Zƨe|,3mIU7"ue<-\GacFgWA+%r:!-;klql}Q3dcMW2UP -#[yL@^RE7_W?7Hq؃R)`+5okTg/S |!adg,@PՑXuw\ xº2s/)kS -܍>iޖloaHa1~R=Ci}_CP o,^Ç<OXI-A GhFoz<^ÒsdwT2GvNI8Eag0?:Ǚg -hrM@-H| -/:'֣?<ŕldllj֟%hMFg&9GEq\#dG(+t|+e`؛=vEHrsh@:st4CjQNFi-9c֋]DNg:ЙCGaoA:N:K(gJm5b>i-mP՝ U|ǴUl';cWC(NzM=~WO2|u{7W ?w1ԄZY?T}40VEq*  zM f*7h+;8WYEYy!GsC+-)%)a_ڸŵ7+x(0fl#Yik͊P- %,@=# ^+eOiJWZxR#2Q>_ -h- ZE%Hy!@$ $BТmN!Zҭ͵{3nu;֞vNZ!~>Ͻ`͊O= S&',V iw$uLs0^5K>[R)G{Z -6g-=Xaڌ -pŸQ ?|mX -o^:"YDX\f!U<ຒX`d?|lΞH)EkӰ:;9:rLh)GCN9u]Q-\ʰQjIY̡TP/*IT80Tf?گ>8b팣E5yhV-O j Q`e<y [v&*w _4#2]Y&H4cO79rZM;렂Ʊ _39j&c6.N:tpQæ_/'EYQZ' ̆wd%["G+ ?Xu ;i& }60(Ӱ9lT4 -a+,ƕ(5`1h(.z^ɊLC2iTVh#HEc[LyB~'Z$[s8ܦIpf -bLa5eXX0QRBq*[`4(0zOd:yc/"ɴfIJG=L+s3Y&Pa0JR si:K0PTf̊ʽЗ?]yX}"z\loTBe(me-rA/{"z`-]c,Mb{,KQhO|+UA[YJ*WC][:l1pYUD+~g9 ۀ}M.G}\fN*KqC0TGB_]"hj!&y5*P9P:+ZlW3 tu WH=*gDjUO!wIBFs/QwZǀ'Ɇ5y0(Ȑ_{8CAGL V;V߈Vx2oR/#{Z$y HDGqKU(=C$ s[*e^ Oo*2}QHGZ"țRڔM*,o6`YUHj"ѿK['?m$4CB$!s;ڹ'Zg[#cR3 Hi@R$bi,i]G[Xܪ ;u Fl 11man% ¼"EB̺1q}~ux@s `3]9 ;v#%L-[Jpmcr60%&^JI$"|HL8x˥^ȩI @@ \*""^b2T@W=j>gmt]36v[NvݦsT|?D~;K NH#H3i#ϑm%1|I1G,Cy|G3y~g_2)ѐ,O"ƯgFCldbOajWL#>[_0o69aOƒ #5 &$dP/:jTι_72~w1N.~vp:kߤ0ڍ>$%qαRgrragaoj^ԓ24jZ}\ q>)tvpgp//^_ğYopjG708=]O͙xԓ3I<87+]Jjbf@FRcn)C\vV{k4Wy? C~9wyD)B8%3/ DQU^jM]c:ut='ye&I-`SGch"x^Qy1H}^Y:9?"56qj66LubTZGKB<kW)hVub]X1eG;Kf ?6I:E1g ~s7ڧmFeV -5f4`Up>V.X6!QҌ%!X50<_EugxG|Lw -d*g> Iǚl)X>#"BTGP\,SEsajTϭCFTmCyTG@Y̋ Qo -O}؂ձ!|u iKd煕Q~X=u1cQl2jPkDe qN̏,Q⟠Hn (D -•>.SL >{Hh%kS'F$ $Ơ\*C4 z$d(OB܉(L\|2dp:F87`O9Ia0x'29gIigk譞>'B>e`H![BIFlp&9H*F^r%K))w"KyUȢ(S`n:ظv``볎>VG-}+Ǣ$t(#R#O -J٪\Rݰ#+F¤QsDyUd _Ads6x:ْ>(}T"O -:X5)hĄLm6KaLAn6tۑ? HcNAF?V'.w/Zd=F.V}0,9ԋa+`ԧ!Ð -}Bk\q=LH5|Q4@A4 " F'Aj?xK1#MQ2gLdL3a Yt -ZL ԙyH!RU2d"9k^>d{|~y0Bc{?wp$(^ J5ři h!Pۢf"Ֆ UlRHqCSyRHoԾsGBl$va3#{/u+9Tq/𹼜<\z1:EPyCYH΋D# -rGd $:m:!qAEk-b]g|A#% 9i?wQ{">9*VK!G%=B$A ;y @TQ `NQ#"7#xŠO!m9B!H@+9Κ~/;9_ -4s]QQXWeueߑE=-fQ(̸ `T 0q8QU bզAlVMM`L6{bCRc4how{ xmcb-fJM`PW`ŘՔhSE(4\ldZR[_yE`oجloCkiYΧ6B}3UXO|)uF(6VvЫ -dά<Ȇ3D$ͭlJabWS2mzAWڄf_0'xni]' )vba'luPC!d|R[Yp156v)40wIwvjQ:jXG .@Z.Z}-Kbna14,ttN_tb\KK34@ o/uahj!j6pENc$\bq'-%r?= kgY,zA&Z@q.IX4iÁ=9]lix3o'3#MF{- ~FK.wuNĐv>Q@$M1p2 u1(}\4׸7qț|m‘3}ldIƿ>_{[4Ү)yWP(]%| [6]?>FC#c61qF./l~ `0)`(bJzآ~d|isY;}/\pedZ AwH0Ŵ}k1˰_}- :55u]|gu N|OCx̹7T} c ضa{.0.S0I v͏C8 Zנ"ZIJa/`߈"ih~1/Ƕ \M?Ч<~b*-a8k7刦NƠABc")}gcfcߪ^N*ȎSD2P-T+nKK_ϡ1L4ʓIg#?EhXrc;YvO^Ö}51%;JUhi#:cFg1v՜\; keҧ.]:6k 8qW:Dy{+ePvw9] ƧimZqGiV9hsV8s\ -eJ]*TNuA2_T=z6k\FXᷔaw͆SUnZ=̣U9R%3EiI *4,\JhX|~C9>5fSvVfspN_FъpuQ7N :sh@ h;3bʹvK| ]9ʎ UVd21fF ֌=Vi)=MSf)kRb5)\c7+9Zh|qݚy};`sآ#;EXojz\kj|MV*%~&unS5Qr5.at_7W=hTbF&6jdѳm/uT@T@S2 0 ]`H䲨1 `y ^K$Zf*hY)=Zֶɶv:k%ִܓ?>y}}˚ƎL}%q4bb\9\0 -_EUG$+7ª\eGڔYQ5ʌ5EJTjl,5?NܛEra #NJ + q-z -)?zrX͎1*#&U,*-ήԸjYR)JNإ2%Șx~)S'FNm[q88GE9^2LTaJ3D)Ր KB JI,Pr\%ͪiV'4˸Q2ː.;?^b911AaaV٦0QG%#dɔ$cRf%*1D ɏȐRfřE[*| w)<@75؇~gא2jSHdd8̓d4*yS~NC@SKoޖt/*zXlȤ,bI&XP,cR4QE -*(M+NTV) -M-Ճ%4CJɧ䔼K>yC6&35‹JzYQ΅Zz-X҉oya+>J+)5I0=hD{&3SV$_VqOjlyʳ<˳:8e ,\~Zʹ4\SHl2y1!P&JOոJ? HyU%ʳ*UcQe{"n[FVKիUF.wZVmhȠF΅ǩzr@LI1Z(7T:B(GFe遺 : ;лX_mQg?ߎI~%g#=Rb|J cʥUÛйM\\k1>$mIgiໝSQ;vMG'$]0P`C@uQN w+ -}|7[ًO -FwJ]#y‘PRa#> eԥ8 t4v71qzjiW|?-/҃ -܏WO1xNA^SIAN$'gR,Yhmy׵u/`ͅ35b%Ұ>Z ҅\Opn!p8>c"5ec,ýKKf+ų`ߐoO!|z-Kp\uCѫ 7RnWosܦHv;; PeP hfh(MEyEևb7:󺮢gKp>5HCax$q`\,?Yu !yaMZ`{!`{9)E h̏Qh;:.iofp^'Ѻ7/}J3G~1`9U~ YKm@k6Ӣ?ڵzGOѺѩlS$8AQn<r_ w_pYX;|r"𓈏4-"el -ֱc X:V;؎t^*ׅ5h 9$ V,a߆};plՐZ| -]ɳ|kyF;lݘ؀m@an_L b -M&kk^5SWUv6ҤjTiViӤݴnUNC}>}}.Wy%z"Y/_{Ob> -ۻ3>wiJ>EOOUE79𓣛}!\+q~F6e;K 0"WҽMyޑ`HRsxx/Yڱ8]c~9Xze TtOҢQB|c29wxz8-RLSγhqyi'Ooi=lff1s c`4!F?јop4Vc:Wy,=|`oŔ>1 D`1*u`6ƎjLza"ΏnhF0pC LÒ{_CI"%M{MlbdK II%LTc,QcI%:0,APڀ!i H;0 EldcdsI^EwUtmDG{+3wLYfV 37C;1"##) /ՆCГք6tw`z?:GϘ2іyYwz ^ω?9B x6`uKlfiq'L) (R‚@v9NgѦUGޜ!4LE4?-xo s@Ïy uQD\, Nݿ{xmtMc[:oCxhdj2q@FV Z' -ܨ-ZKg1TΡRav+(7~@N<_&-7p%~X Rud h,LGz}jTpp2Ԣ؄ -c;E즣(3@y6uX-/>K%"Y=r`wps:T:&9&*Mp a7Qn.CŅRKlm$iXga]GQ"}opKcm*q-$ RG7u2VP֊&E&.wm  li&IX9㡭BS5uv۠T!ӆ^(Fp -Ho"!R䳈=%.p$[;xuwIE덂99r(ݬ«CׂL:|Hu!7 yI$lBr ҖHlI-_Y̷۴?77s, ijڥZ Qn Y8H!ůܟd2pAф;! !3 OqF_|g|AfY㼓#VA}FK=J} io{eD$ - B - -D !L`0!J{e7#bɽ6ɼ0Xa,L|qzJ] PSSm$;8D'!b8 --,FI> d0 1y7ȹf{5"Iq[\9 N98|_%~ / .) ._\Z!,8 ]u'0B(5wN FO3朜>dPg\Ҥ}jCtrt\\ȯkK8D??8{=<<wrx\O &5y vh}q- t=! P Fj0ؔf/TdV [=v]Ku_}K7펝ץc+ XASZQvg+tB-l7?ckncgX>Ntho+|+{n* ^k踂?t\B{lum29wtt"w71pyG\Vx塿ۏa -]x: k %^i optDoq>!;p(cv;i w|-88,~>^rlWaد@Z=ZAXf8Z_m&:-D`kwp~ >szK?"'f)X~vcN^F[4Eт&tl2!'*,42"^q6Q{rר_\1a#bP Gcᨆc2pӜ.E(>;Fvf|¤n 3a#<H#8 --F"t)rkKwմZ)eZTmjKU}*{lVEσF]W=x2undy>уnOun5W&h{j3T힫qCU1Bc=U9^= y.RJxh~Km**qtS>TgYB*ݨ|V {Sy+0w^s6|;:rT -?Oj_J#5ߤb*ꛪa}sTw+?\Co50hv++2*3䞲B#u jv}L$7TA* 2 (F588CB)7P9!_) t21RJq%ڕP -xwۜC^_IqD7g C"De(#<[JԈ -DNRRl٣Zw}L֘Kp(щCp`<9k6d>FBr<̨~J2(-*F)QJ+):C ׀r%j"ǭٴ]&gzWq2}61dZʧyo":*1CБTCd3F*'k\T%b.TLje΁kJJ%QC|`jK0~a||}XzfXd/,`0oJfJj_5 TE -WQ%+@3T.¤Vބ;@_Kڕ|VKH F7D`aLr_hvȣ<ȣ<iFF6wh es-**12eXI3b3Ism2Q"@zcn^NVN$)I&O/\T ypײ ~ h -x Nw 8 ^o7h:9ϚQL3xm\|pZ+>V4X9np 9 -%pb]79E|Fk.=tqߣp_ ~ @z! 8d -%8b&qO, 7G;[s}F7}#8>oDX׏xobE.!}F'W\G8?#} -y 7{//x8xB/?xxd!]ʥ?8 -Jqq`2ϓ9cʚv鷈uXi<^^G~_['228}@-1/i z]@"b#v91::f)d̲%8 )=`A}`7x#vL*%x[fEA>Nlb=Ӊe2į~xVav];aA-63ڧamFnf:iyZG1cW6!~>gbE,C %F3QVXn8ױwl=>t 3mIB6wh=X)p1b8{V e5YЕ(އq#%Y/>`ݍ.F($ p< -G - 68jȣZӴ<G UJ\ #J7á{6h^b{?v[!{8v -!J$D @2-Dʂ xPW`k,@9GY?[ԟ0G^m8rК.5~a_\0A O:YT W*N.gd m$VM{Mn+rޓ+}GXo|/DA]U9fy;kfTW5-hr,lSNCݚ;d\%X mh#aǕ~Iww[~8:ZڲE7*HFyb=41\ T3f(8NYɲGNWfd2"+Y&YMj:.,/>R+цhkknтҖQ|k9T(ƛm,S/My2̣d3[n\F)%fĬШW#^wh 8ӂ%mhY y>̠NSikTF.+_l# 0 3ΰl -(0.D4Dwq;hc9&٬i&VLlkXSi&=iZcܲUt=}kPqQE! 0ԩ,+7lFSNx1WUJ3nUK)rF7r+%.^nrn-d߂Y?=N#_<&0ҧzs+&OQA1#RVg&),3]Y -*հI2dPp<(0C9?(8/<39AM֪lTi&Sy?;pMgq$*rkPHnȐP`~˿̖qHA>+#C *B ܼg9G0s%\*(EYX'btTP%b_qq-OI,WWҍ1 %gحNՠ:iV4x i|U<}/!㤀A+ Р2|ˌ)h`yr\rYX -0嘵rCƠSW.jB豉4/Ɩd%ӛ BM -0wE=\.BD."c'1!Mdb61;-s8KpG`O+yɇK*a@ȡ3$x \ \5\t5\@5д!`u+-M_M;"88Lum6{&P\ U jbibh[6ҋP@/DG=lyC2D-\X:` -XX G} 35ã9p5XᲈXĢ.$ml||<[\ -nm 5ʡ]ֱ@!H]/Y@ & -VxҏVx£%RZq.|j&UL+q4+ZOX9HfF$|6K[w+(݋ < d۹xvzю(8r965]@:r;zgAK2>Ab{婋t} A===uh $߽V3u"o%9KɓFbvI9V#= u̐ǜc@E?eb(Ea.^zCU>_Z>QA\%!Կ_p55AGy1~ [/ g?>q&8Ǣ%Yzq]9@"g 57<Ǽ=f/΀w9Q|P5Xr*.S 8yP  q-M\׸p@E~_).: x~B>G"QUmpA0ҷx̯5c=U K+<.$;?1?R>@k?eέx -^?ni 53|5ezqA#_L -^.{8 3w𗿂8#=C=:n$2y?t,Y?8VrEr?أ8G:rXD^]M2m~A馲.= ݠ&救GZq+YȑLLV8DDRKX%_"6cvv'iP6Դl_+u:~G-rE.9ϢB1į DWc Ğ2 YNy: ߰Z_j%yWx=19v-{E'{Cf$Ilq1 BjrԑdkL76`0`n&&`CbH'@B(HB[Fi.K@%Ye (mfi6AZN]5mӺ}m6MӦM۪}ؤjڥ4G.S =z?y99『w f 8$7el{W('ߡܿ$xqÖ8 1Ua#f<ߦg3q;cX5#Df= MSw)h5졅p$v1iL.x -8K)gYBDim` $]v>NK<n'2LY%u )tY='e*\v/q~J M5+ɢmIښQ{rڒ˵9%M)aES՜USj61m"Z~D XR(j ?R/1~ -b:m:r"8+GS IږVQQU6`(VBZ7֫޸Qu6Mݪ5Ri3)yNU -VUX>T3SKH'bCطEȓ&K"L3TgU\Z_5ZjUm(hک_Qgͪ,mUb{Sg;>S#{Lo&Yg{(C$;I!Qk,ekͭ*[*m媰W^2GJ[SI39OQsWޜw6 %33IcuKZ~vlF9{IW3SNʜ.*8'"WH>涩 Gyv?ʬQ5` Q)-[J&RVj0vƟ^Dw;X҃][K> 'dMSfI,kr@ ʨVz(PRB=J -)1N0uR;HfbM ~f/w_ዾKax e"'q!a$|:xĞqbMG#a{i{sp mx AY2`͐ѐb: }0q8k]A(nbL4n"LvLavL"&i0bK4A<&?åC){1ǎJw ցJ9>c;cܘɋ9.?7FҳB_Hx| -:;_ U:G;0\|Hv,bb,R(2 $y{8G^~;?oسEi㗩WH*_%p p Ǎ' 67%X,e -2X&8ҫ>_{Ŵna"r܄*_a |n]M>gVcB~PW -Iʊt9c/ggTW6\ۏ_ݛ¸oo=^I/G!R6\{tƟ6%inmzK4IIKKEZ.E\1AAȠ ás)`e2q2&sӝYiOs~/<Yz,GG>ۇ;h -{mf5*c?,ks51#ꋚ b԰>_8?@}^Gnx7u6v̀/b@2(CAw6ڦq-gҿu7g8?R<7{{BGeER?.jK?wvT=:uч踂89,C%tz gz@{཮kz _>/߈M_p귪һܷtɜGG8qyqa6WqR6K'Hz0v]_p|ܟ>ݛ,::)tGsc88#8Zܬ}d/ _R@m!B#_y \b3e'"֯MzGek=:Bt5JR=pt±nѽ(\Sݰt*O.r?b̘C"f'Q~mmIG<4vPAo ɠy#ynsmEo - 8,OUB$P]*,Od_ 2\G{?vX-s^tSsd+\x -)c:h_P -~/k$?fOyF>OqmrѺ!.sSc>;\䱧"p᪇pMdptvZf^w@dG\ȝ --a4uAL&cjHָA9ʂ͞*P}LHuª4Z59_'`K0\RE-U$Fp+mw_ղqlI&&cqjHNQ8:CjU`b+4$JUI -$5ȗ4VH%oUqOxBwU`BSDEOƮGm%#P1i(bPɨ!Ft94y4T*Rjܤbs -*HW5r[)\ʱ\zD $#F#ϯw泥8!7#kȍߚ -YJ-*RBK -UX):Jn[rm3/T}RcxGi3-»[1nŌsJnFS'R*U`cO۞<{r%r9|I );AY㕙>MNgҝ+*{^2^5MlkH=Sl-~@ Fy24+iSө̌\P -93*=+4L={l]< K7#L_O̔zvx75RxeXՅ|vꤖz P#6(e3Ǣ49\#L*Yek.{LddHO*sLIs#>|o #c`;3 mcHrSCn|Ĥ* Y|vY -ke,K)EmJ.+x U\Qy|;rȻ chiCG3#t27^RL%VJe,u) % VRYH 2*ۡXxK^n"/˴2K-pg]9]m jF_-CF2֓b$&@>*-JLx_b}^ SH~gCcc ~cUEp>4q*=NsaXFh11+)`bA MhPi`0MA C?Vj)x6{LzӐأVBV7q7 $K%l\xa0t\x ǸcBHuhcC걓zCON0yy@0"dF\1RkRivHMdM4pġӄ&45GoLLk.Khhh k\ni)![ 9<h#;?;: 6+Xy#tp 30hs1 ; 9tG7&4nrхU]Gy,AUEpܳ:^J<a<2h6ƺ gGI'M/uE賏FG.Y'ṿ; 1pa0p{Lߐ {%W@Ca!WқO c *r1@_RqpfLtLRl`ut^o$6hVӐq -8.sfp>rFqخR+_W.0Y āt0Rοgjs;pH}A#GGs"^@ aG>|Tp!X4T |pƲ~kg88K8G<N]zS'u/ >z:=E;N*ңn<7U#` :._ORܠԍp/h=k!G!^7YJgz\hDt*bn 6^ 489x,؋h2GM>:p6Nv4#ԥY EfUR0we mXu8# teDt2!Ue/Z"\B.j(fmV]O{ jȭ7\~t \χc9)2xYŮC-Z@泳R\ ,F}9(48ĵ5xW:EiU5YJϨ.&j$ -n1 BxS(fYjC(i>'{ogG;k}+l$n9C5rxxK;\p%'/\p k4\5hr#{#PN. -idgqedY1@3zMaL$?r2C&X5>ȡ1A.%jTPFgiD a!w+'tCV:7)5C)O( 1|!OwDt.Xm)1PANO!ǁ紆*dT^Ur .eGxGRZySbdSd{< =ZQ1]!2YQ,jLN\r,rNi 9~LSeLȄ*W*,qB=9  -NUHO]pwL,Xߕ|VLl)f9#'CNPEyLxl2{2yeLJUD0(-U3Ui0v|:ɮL1v -ͥB+tr)D]᥊y -ݸ~0)\*ָɽû{Xfmհ2V|ߵ=růĔTMT۩jEZWj^vqq*B˄ΆKZ[µo5c[_U`8,G bK^2ٓ:hh5i|1/jZVXA>ך_,N7Ѧ _\[=_iu`xD@yy_2%ʹx>r؏{Թr`jf>+Te$9 `cU: I ~%ٱ/袁/h _s)qqlK3[j ML_>7\;ֲc4QkTT((kx[w -ሕKk4U@{.J1P╢4 ŗqE`ƎUn\ɼEi]l'${.yǵ1Ja} !Ϛ:mfG3m4I3]4E35q^'$;i츎[u r@ -1T<ȸѹm a-߉MKvǀz(j-|BL9~3p.Q3 xԭGn߶dN;|ܛ}6'Ѷ$3'qR<%&4S|qJ~DzR>ދx/9f |ʸ'yj= kâٱ ]0!,ڣp~ӳq0rN<Qٗc;ޥ`|<\^\e>PF<?WOcq|xiorM_a{ u| =&RK忚6W$dv}*1?X߶i{#_\Y3Nmc} 6>|d)];__/9Գ -3%OlOI' 3d,mB=E;bW8{; -,g_^U*IltBtl x( $/g :{'iv6l`gv;8hûCQO)͠s'I=. \x)9)#+yJ9ۉxs'5ۆ Tx>)3tSI/ WB)t~-vk~ƻFvNZMsEp]z>Dk;ddI8,ybi|ENbWVf{crVրco5(Xe1/sSG j+GYvꎣ7b%8pTȊ*J3LJY–ٲ_h9 -ukTz.?.7i<%oD,!`R8\)`. .jȥHB@H1%폎@TXb/&f:.cK4#1wsb=8|LfҖxxCCxt $2N(mt 5&j0T?CpmG2aEh9K(U/0q&{@AkX = =Y&zfͺ uЭ>HV^iPfPwމЋlxH9,4ٲ5f` ,x808!qM٠)]I l"10BTI##P$Ccba܍2Sc5#&F&G;Τ-gҖH#D >[3F5b( Ab${izз9&l^}p"F;b2!{asE -D&x#8j$,byb!p,dLY]ّ!1CHlp\q .U%NLH-Rdch -^@D3Hvgxq|Dp*жhcHu}67jʌ -?R#3I3< PS,> ؞Eq\=-R'6;9IAzɆٜI6|XdA,@W־+Y?[ړC iBF-(ӊ -A[(oq@j ȡ^s8j$,AE$h~?Xhڊ>ǁ-•a0|!St+R)5D@*zmahCFnlV7qm͐pnyQњ+{O#Ok R>5y]Nbs0 ;P^84~EJcil)%dtUY#Wq€rFtGz](9dj_8`]భKJ7HKwsؗ1TT..(rۮѵ}4f>z{ϟࣵLAϻsƌzfzkfL(քC ~h?j}CJ3E%/c_TVJ*pT_xEy\_^Hڨ;Wi YA"ҭ[l!Iv^يR9$Vd2nqy>=/<y;s+Nw $ ӟmWy0\*c<0gלuN@B! +G[Yu?R|^rrH/坑,~$K]Kn`l=Z5[7q|gUnr"~F8ߛ-cY đ\ೖ-K1Es)`[>zyH]PF(볫ܤ;dqFV Lk-zPߔJK{wWy~P'C8d,ߴ. :J@7 dzqF@` V" 6X ##  ZeWŔԃN~a~qfu#E".lйy.?Xϊ ;m HK=`(tu4G!gn_:^!B@zhCLZ8l$@ -+ @ e!OAx C8~ⷎNs]=/I֣3ѡM*{q6ljK~!}9Ym!!_7Hlް(Qppj`0GXs,D`+/xGF@ҚSШ -s=t##URuMT?|zq+[:sMnִ䂹33o\P7.B *OEtO1o,N4GO\ٞ~pc݌)GR0XQAl(f4 M)h@<׹L"]NJYsr,'%hݹv - ݆/U)|JnPW -x kFEQ`0|=t[ 1x}fpc3A&ŽpJ ~ 7%1,۰PRND,^HU0uf>7웻ñ]zQZVq6 S d`0XA#GVJ[(9 -RWvHo^0x3 bx -p`+gQ(^1ױ>9ږ騬*^x#qb ,Y2aHwcVMOb/f=-ȁ/} - `=瀾}k) -4`" C!)p3:mu@XoQv ngn3w:s+*qBV- M$NreO{}v R` 83JyMO4)XZGyQj{DM {_πY ̸Ӻ|)weUefᨈ.A]]dciI~\w<8/t Pg+e >*7E`S# 3\GHpχHn aKS[K 5uk;mɶcVރ iEHD_+߾U\'9GVXJ¬9M<~̨փI+qijL9%A0pcF"((`77Q#'q h[:-H,n#*Z_YXO -=Vy!pLYzY*K;x2}{"w7er"Iw:GSy\V[<6'Rչn%:溬'5mDtbZL\&$ -ܾ~vן{}߻<%E&gINDHJ"NƄdD] Q!c@ -d *>7 8PW% \ h`3^l:93cM|;egA :܂8XJ[7XI|0|N7w[{EkvcJȬi%J-Q#u|FBѵ<~ԠVTw|_JvV{J,͓ɯ)l/` R|Vxfm 96pL1c3Y0ߜ,/NP[@Qt+eKTe9ۏ-p -Ȯ|BpW$ %IHO޿y:~0?_(gD,rE}KcШ+)J_*=I,?!4l=Å[Pծ=Ğ [ }g OZO$o!xL=5dbBC) Oմ>RIr\r"#;@V2[kclzi5a#*Xm?;62.#:ĉ֙Li_8L+ endstream endobj 259 0 obj <> endobj 260 0 obj <> endobj 282 0 obj [/View/Design] endobj 283 0 obj <>>> endobj 280 0 obj [/View/Design] endobj 281 0 obj <>>> endobj 266 0 obj <> endobj 263 0 obj <> endobj 284 0 obj <> endobj 285 0 obj <>stream -%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 16.0 %%AI8_CreatorVersion: 16.0.0 %%For: (Alan Chang) () %%Title: (MaterializeLogo-3.ai) %%CreationDate: 10/29/14 7:17 PM %%Canvassize: 16383 %%BoundingBox: -385 -322 1042 -89 %%HiResBoundingBox: -384.7915 -321.8403 1041.334 -89.6665 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 12.0 %AI12_BuildNumber: 682 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%CMYKProcessColor: 1 1 1 1 ([Registration]) %AI3_Cropmarks: 0 -792 612 0 %AI3_TemplateBox: 306.5 -396.5 306.5 -396.5 %AI3_TileBox: 18 -752 594 -18 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 2 %AI9_ColorModel: 2 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 2 %AI9_OpenToView: -344 157 1 1317 754 18 0 0 78 133 0 0 0 0 1 0 1 1 0 1 %AI5_OpenViewLayers: 76 %%PageOrigin:0 -792 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 286 0 obj <>stream -%%BoundingBox: -385 -322 1042 -89 %%HiResBoundingBox: -384.7915 -321.8403 1041.334 -89.6665 %AI7_Thumbnail: 128 24 8 %%BeginData: 2976 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FD1FFFCFFFCACAC3CAC3C39AC3CAFD6CFFCACAA8CAC3C3A1C39AC3 %9ABD9ABC9ABC9ABC9ACAFD63FFCAFFCACAC3CAC3C39AC39ABD9ABD9ABD9A %BD9ABD9AC39ABD9ABD9ABCC9FD60FFA1C39AC39ABC9ABC9ABC9ABC9ABC9A %BC9ABC9ABC9ABC9ABC9ABD9AC39AC3A1CAFD60FFC39ABD9AC3BCBD9AC39A %BD9ABD9ABD9AC3BDC3A1CAC3CACACFCAFD66FF9ABC9ABC9ABD9ABD9AC3A1 %C3A1FD04CAFD6FFFC3A1CAC3CACAFFCAFD6EFFA8FD09FFCFFD17FFCACAA8 %CAA1C39ACAFD0EFFA8CAA7FFFFCAA1CACAFD58FFCAFFCACAC3CAFD04C39A %C39ABD9ABDCAFD0EFFC39AC3CAFFBCBC9BFD40FFA8FD0FFFCAFFCACAA1C3 %A1C39AC39ABC9ABC9ABC9ABC9ABC9ABD9ABC94CAFD0DFFCF9ABDA1CAA8BD %9AC3A1FD49FFCAC3C3A1C3C3C39AC39ABD9ABD9ABD9AC39ABD9ABD9ABD9A %BD9ABD9AC3BCC3CAFD0DFFCABD9AC4C4CA9AC3C3CAFD49FF9ABC9ABC9ABC %9ABC9ABC9ABC9ABC9ABC9ABC9ABD9AC3A1C3A1CAA8CAA8FD10FFCA94BDA1 %C49ABC9AC4A1FD49FFC39ABD9ABD9ABD9AC3BCC39AC3C3CAC3CACAFFCAFD %17FFCACAC3BDC3CAC3C39AC3C4CAC3C3CAFD46FF9AC39AC3A1C3A1CAA8FF %CAFFCAFD1EFFCAA1C39AC3A1C49ABCA1CAC3BC94CAFD47FFCAFD19FFFD05 %CAFD0BFFCAC49ABDCACAC3C3BCFFCAC4BCC3FD3DFFA8FD19FFCFFFA8CAA8 %CAA1C3A1C39AC39ABC94CAFD0CFF9BBC9AFFCAC394C3FFCA9ABC9AFD50FF %CAFFCACAC3CAC3C39AC3BCBD9AC39ABD9AC3BCBD9ABDCAFD0CFFCACACFFF %FFCACACAFFFFCACAFD48FFCACAA1CAA1C3A1C39ABC9ABD9ABC9ABC9ABC9A %BD9ABC9ABD9ABC9ABC9ABC9ACAFD60FFC39ABD9ABD9ABD9ABD9ABD9AC39A %BD9ABD9ABD9AC39AC39AC3C3CAC3CACAFD62FF9ABC9ABC9ABC9ABC9ABC9A %BC9AC39AC3A1C3A1CAA8CFCAFFCAFD67FFC39ABD9AFD04C3FD04CAFD74FF %A1FD04CAFDFCFFFD74FFFF %%EndData endstream endobj 287 0 obj <>stream -v{lO~d|o ⥎7iTJU>ޤr[|DeCs~>޶+yvn/Ϊ,xr̽qV>F45l)UpiqӈELYD0įkE=^-۵pJVN~W W+gt물ΰ1>6$,f}&ej=ޒʦ],}f]iZզ &KB[2>U-aM/n㴙}St*ѪXp ObKy2f^9Y==9t+婓Y<.-l<$~ -98 -5~*8SJߏՊrde-KN K"qfJ Q*?ȯ4-(}}l㪉*%=.æݰ.o z]nא޹rOheSEhtbK`ilu+։d]Y Gmo~rk%^No|Db C@5 .*Q>QLW-h؆̕hՄX<~3qw~;JDn)$d\V/TО]B\vi"*q9 ڃMk{NF޿؍γ+ʜl  < s%[aR#Nl(=]>UE{]fY+W::<^L%{e~ءtQǙљ.|3P2 SlmM2TgV·haCqW.!''J5z^'ogL}P43R)]US`VFP^i໶qF -6Roe -]VSߊЍ(~f¢!߳C2ֹVxQ }wc})l6ɽ4Tt/&e]*g db (æ92w<0[Љ(/T4Bau^ \fgܬ GM̿QYV6=^m|y6`m)A.vF(Vc) RFfgolJf*6uH]M[n̘J[pX\ji8 Т -naY>A3^EΡwz gYo8Cox%mW)?OI=^e}FI0Ov˷,[}[rx6m8֧˭f]\O'*yqݰ,΅q)3ep6wtHg3LN/ES.&=ڐS9/ \C6߅#BrQ]NĞc8-T M/.ԙV -۴[1l~2 O;^8Kc xzPFD3+X\r(s~p-ƳZ7ZF SH\wdVT[l[Tv4'?m^ui'r{p#$@=gW 7D=C9 gQ5>>M9+ԆϸvCN /y:JLN)ώ^rZ}PެӍfzlӑmW}Bf -mj;S aڷϓw8oJDXl\g -aD[G|سnY>jw<к^s󇣦g֍9-̴.Q!Q|dZ -s Gˍ_~3;6{<6ڻI?j^WHްFEYUVa賫F'M:{7C.&%JTU=|a>EsC;,3A:)-۞h41s2d{(5 ^5|*Z긌3Lsݫ(i2?WX,w%:,20O w|WSe(c۳ֶy{'agm٪Ӧ2:){ãʱ-WKAo)h yfzԭ~!w[xBN[BBxz );47h;`y+ºjq[;lAbsgd?fo=ǜ٪at):9 !_wsM!MǼxL^vvr" ??&\p,cG]0y99T}MՙF -N·MڙdrHsqIݛ%있a֓ˉ>+/dWWTn\쭠N+IM)*vMzʟq`nHM^a*MՖt4ױx4ȁU{Tow򟱗_DE})Qm10mMi\,f]>%YUD,`hZ̡޼W;rdbT[e.( OlqM'mz^U&5O*w?X.S?Au6{/4{dQ: Zngۭ{'ĢN [8_S+'k)BOF=$Ģəu؏ =) ea$T%W_%1O!v)U=k~4ĜL|o|Wt4]#e8}) }h"ɭ{x(2nt;+ ӬDfYt b7y]b5nG˒HV?m|-qĄP`0O_VG0TZEqj/ 0mߘiꈱBDtFQ$7,AQ@wqF]%MJٖ"h[g3GS*lF| NfB*AhS&u^Pv%&'D&޸oP2y@gw34D,aK:ݒ.@G 3 J04t!@^% '=YSoH0 5 fWO Ƥsl/-+PXuXr4a9@w.>X(4ڼvac<#4{)/ I2@.l ^vE籩DÊ~+tQB ```lw<{hhDzkCCPB(@%{U_g2/B(Z zx1WO8a}\Y)ЭZe!@O 0#$M8U,r|>A 8Om޳_lK5¶_58@_hW@|1EEyDX'k>om5\BSsqx#|Q.{Z+%{9'M9 `] %lĮ&tWbʺ Kѵ>g}cl{P\}/|WE(719 CPU(@洞DnPy\ - 3nl >HTKB >ů@ZJ٫ xU|6Z=?-W~=}3^[u6 -\TOlx6ꋿ@}7X(C5t$ rFVPfsHFGR4o.)wpo9wUYݖo"rE{|Qs/K~{{@շA%%o4t.lrQkB_<@˷"[,ĘD׈3?wE`O@Q|';I}ֶʪl[~Tq[qxZ-+sOX0|_u߾ B wI,_u| -TrsM쪎]nѮΓ6fM^5@ cVw9ǚ_RYަ[eU` TPzs"j~N{EWrpϜF" a̪UAEؐo]J?M'Xxw Y)YxyX.Q*V0qXX6tBlPM=D/gUɷn}#,gwءohf3WZEBs;fA\rf 1s-?2 =`r 44@֕ZLĸd&3eI䦕_yFN?vgI= RU7,YoxMϐ -5zOk]q"Q֒O:/L~OA9rfBStiD/oӁ7`~n 3> 7-9K^RpJ]F$Nnm}4ٸu8ǾNcSc$FPC a24E'ؒob8Չ猿}8yTs໗oڹ>">:9\ZXQHTS{2 7#=WΒ/%!2l{[={<+eFi"I&K|cr1">\YUzaL7k4ڹxx籬F{1)eï-ʖO:wV 3Xhzva۾pyGTzYOc'\E#cQkj.>ud7K~8&Q_!Orzg臏pZ3H2|1e *f|rxK,m,(% PR2;{|(EjNiݾ?Au&ۇ -QP+rH M4V^3zq<|O vW@;s!ٍwwOKv.NmV]9MDR:$ IMhE{(ٺj?i<}{EWnYMQzXI;HepjROMS:Pz+Y]٫V?H oSožo7}hjޞoNjF]MɮVTiaIy]3pfdLj׽~bo TxTA>,r\/QmB^ZL+P i--Ҳ3O}do s;z Տ͵~:Mt3VosougXaBZQpVA]3vpbxm]ŖB'[Qjk%*^̼ǍwfwN7wg2[Y؜۰S=y8&ti/T{yJy}Fb0{hgv|%sMDZOJa^MIӁE,ݫ9 xTU}OovdaZ`_N|'ZCJNre9Ե$4;6]%,Z(Ry.O}:Ia^8fU~qx.C 3ɣX ?ȯ|鹴*(!5 -a,m+tj4}|x>XC[#v-#K]1{y241bȝ7x0&?BʮZиukmk(] gegoqDv{/;Uby^`?ŧT|q[,^}JGAjj "UAsiy  ܅L'QH:/^ꄾ)%]>=?{-ÜM*T*9uMraNq^6{:U%(yoED*}mUt4}PtGLu2FN$sudqEuw犍Ru5,л3>S ad .iso_ym( ZO} J@ouv*(LYH8c6C$ORbޅH8`iSɢY-RKIؿҡ 5e/xU -@7Gs JIEH߃Ϣ\i[ICD>XWGȱLq_{UO: . !Xx^=΋+j+@ˇ4@)hFM), đKp؈׽2v+:w֧gHiXoWv2쀼!yMW"dB;(߄= -qhwhefq }Iփ#wV~4DžtYcj bp@ -}]6xNbWxo;οնXL(d5 = QLi:'7 r"\=+LrB޹ݾ-AH҉?Au PspKͧ{jҫ Ũٴܧ0|}v[n*\W;x ֙ڎSk -[d~aTuyo2tɼq."Ъ. Y|NWiDg>^$M-;W) .^[!zw5:ۙ '|mNS_kanoUX[$o=pr\9i[9dGmӷ.d&O3VXV;g>l'7`rvmdunc9$߀r[{W~7L{\FՂ1~ e"}nT=.pvԎFlw6[rzՒK @yZ) .Q.Y/}~ :%(Q 1+c[w139kl FїCp7//Ʃ;E+CPFR2W[37N N HuR62Sz/{IY$ZJ&]Ѫo-CbZ7X%+-Kg~]~1r=;K -ϱ$N⾪Mѱ޻c2;IEpk92 ؇(dwIBp.Oq1}/]:=n39mslB3e?t鲪:`^) 6؂( - ؀]sy95H୹xZSVTǝؠHzt)i9Bj392#Tm/7ʦ5Ooq_M%jZpT ?ESG*E]ΆV:Oq@ZGvW+6v.uN+zCᅋTNgY~k#T` #p+t -3 J⻾2Cy -=R"7~*WdiwT 'UY rRбf|XgǂT$KI`jLs\SiFv[qSc ,'wwy0Yp{cT˸kRֳ ro#:9g5Q y~9-0~ao zR.ڑabd8<šb"H t\u  -;O ◈ _2l餁}B75~v؞ Eǃ"'klkVdwWguE͖TMٹ*Lt ZjB 7tɱW9?_;]'̘W-?V2Nguw}YõI@=e{h6^6\ 7[~CrTXӮPYsA:Vd4 Pկ:utq=U}p K"΂۱rzz70@sxS}g؛vHM^nM{#y.Z%N-T홂QRC)?Wx1_0Bά=\.8y^Gwzb\- 9vľ!wQui94onTf+ףs]oQrg>ꧢ֝1 &?ؿ-BHS>ҚrɧUy J7J0,](OɬMKM;{)x` -SUt`Ժ}TEFj[,2Jl¾K(Ğ-~iWK~1R[)r$^}7{`#$hC`6svSgfrYu7orng5sU[T# -~r6f.%=ROM­/𤙿;_P}osq0 !"0[hR -eǭ6Wi6sʴ2m-$_mT3GƟs\_kr6"{ uT{>?\|8$8deTqȰ%"<<)f)=_+˄ko4co-duQyQZ\(wh|#vR)|.,8[fR#};? hK0ʙ넪"++߬6X),_378WX:@h5hv]#<īIA!@8ɢ-a-PhJA` wmg3,:>xbgpK42G @aF -BXP3C$S]ۿ|V1D1FV-z<U_hN*] P1@O'Y-4{qvEZe⯀M2O+*&;#|s; #b<X+sXiMدP&@A) P |8|Z:! (V+> q ̕+W+Z$|$~"H|)t^d6N 7*Lªc4<J{=/3On_MIJe"ԊJb4y_a}UewOҡ5OGĐb @0L|]wy{tŭKZWqn,.B,.J\dѭ9<`g~u?L~w +`Ӱ;W(eyȤtdc dr7?E vKoI\uC/n5^_O/\^~tϪĉ1 R?1oXF(zlp vceȡ-2{g*{5I {{M~%,|T!5N -W|6Ou+d"gUV?@h\ݰ t>S{{>A~пޡBߪwB@\56Nߋ~}e&:T$MoQHeoYPΕ7lW`q@eO#{Wʘ+-伣*|m{Q8O6¹vN oZGnf1c?pHb 2 e'0{Im@)Q?߽oV~wH^ZU;~, oe_~SdGc#sr\p{~etR0CIު$͂CS(|9 oDzY賛LW1`^X1Se|E6vVmjjQ#t_7|J%^wOѼ$&Ԫ7I(56s '?(wZ)Y#x{݂cT Je9 1\2X͉Row]Nݙ31_B w!тCj .⦯^hbPCiđf,^4IzZ6GO[zlJҗZ,ꈑo -N+iJs>I=w(4nq`Z㜾S8hCc7Z`={kשWkz6- c2.ϸvR%lݖ";'EjBfSqǗw=ҮRuue77I/v@stqSΐs$mڮ$\F{B3{DU~d'iru&|ʈ'q6 -z EfePSV,)GVKe7;O93Wǻ0ڢ5|^;s>.ZѐH9)8a~/X5Q#71W[??Dv\

                QwuK^SX ]'n;}>w3mqq7Dݳke 7 -S:Udدl}k睪MlżzrHL|2wVm ~ !_\uTG!inh0^/캕s޹LgVG]t[f}$f zwW'?/dțp~-3rJTvRDŽ?PI.3j:EƎ}c4MjathåNm㽼:b-i[OH輬yR4ջ1&9JeV҇%ne/Ykf2zH~0jWũH߉0UhݹNg[k(vp16N7vwڽի?'x~W=2fxznqQeHק.DqK ܌28h -܇\gSlK%INAY|lWfd7ۍ99vRpZOnmʬKw5mj.dl no{wa:`ry[a.OZZpJѭ5x֘VF)K䊔MJ6$% rp C:Ȳm>sJL)-%md'UFe8 kGӭl.?@7"ӳ|Sd,!q_Uk5\ ֞]3[R#|WGZB-|LG>FHF~Tq׋Rq%zs5Z9k޹!F1%BugkK4ZU嶲> -SZf+U*`h97'Ȋ.q?(<&μrzavid/n=نa;䅦ԕFu)*ʬ$ֺ$vړ̭(߫X9J"=H,JQ,w_jzNAL ׾ɂ"%2J\~<1}kbÉlB*HeM:>8 =̀>LUOb9% -p1AkIL.R4;Cvk-5yl-tBAc Wf=2f|~C3PWw6yV?]q&x)ҧ+PojP9Y[= #3\pqqxNpI/),C,ؓoPou+l5kxxev=iGN+f]EWUeO+Vϙ(ȵU@vKvP_3l eV}(?p$V&ec[|jiCu4:D!e?ؿ?HVd`z &?9@<ֽAG؟7 [ wa*Kx6j˯v8?)}:]e cȬVH_KiP+; t JA(`x )"> )olAxMW?L>T^QkB <h@B4I4#6rOE{lA|_J!WdUȔC^٭z{ w"?ؿuz4z;,)΄50h>=w]->@;}Օ:,F@Sz}V.!dFy*I d_qV~DT7rt[iWOz?9`X#QpXσo5'nmWH㩖wŅыTyYlٟd<z}[1`iۺχ[ `i -{L p O;duZWn ,Vt, ~&rI#gJOO簹1Qӯp!u_.䆫):yC  -=d MNw@p UI8>*.!o68>H/{[޿G;t/$f|r_Nu'zWt;9v\]@ l~ß;ˤkR˗bOiYqN8NjNnzInj+syUu'foǣ7/,; wid|*E##s__]m!l#8ՏF|6I:aO[_lĜ$y;i{thCddVlHW vj@fFq@`b; vvnkɀEGfa3g"JETKjpx:_w^|UD`-ω(sqG j$DY79[P%]í|䘲'XkQc)ݑ,nW^`| x<פz1"&EViT>Ԥ:ԑ@Hē -Sc?k\W&qq^|}[ M-&[V~ Žh'umҶI<ˆ^tpyLpWb#Q!-| R"A+a\ŨN6]L,︂/)X~gK8-fᄾ(K0y7\aȞ\s8oUX2ڋ3-a"c{Y![J)7J//1CfhUaQ+1B׹9c^@+ʵ7D.x+e&&iJXBg_1XWK# ٓ&7LDzO;[Fj]}VYx0f4/>h}CsD, JS~ 1LN:]ǬFl{^ڬ.eˡ酃 iU-&[b -Tciɮ[ I=?ޛMBO^C>\>_@+d 7 6b^yŷoڙ 26@(yfb, sR#wc*3ٗM1b[ - whȓ΍8P8Qwȭҕi{!rʿQWM]s2C k߳§ZPk|GOj{&Sn?槷_{"?X?osݐ^T;wjѥ;i'cDByP$RhÕsO92z 6SN b~x7_Jd^dVP4td}DOr69 !m5ɝϻ[{N}۩o bRoo2]k*BմxΚ3&sur71?z.X{w*}*Y ;1Wss:i0gǺ42/}^ݙ׺vZ RXhsC0oh䳇a#+𙱁| -IuɳUz@ 9uњvX A'A.i'–ƧչwJGY1ɨ ,#|.ZE9Եkdo=Ŵ^[zm.f|j[{7bq?όvi0q_qxJ'izgm׿Ǽ_y:4JsEU^?Z,vZҪRf'JUMmaRjS"߰]yqOf[ jܨÊ;}+gU ˣ⨅/oP E7\z; mwzCz4Υ(V)뱖3"gpNv 2܌U9ȂA\܏/TʜDXRf0gn+B̮74@گRUlv5EQ{y =,)92MZiAJM\ b<&ׇC#0?i$/d<&o/M(@1@H~T0ҥM$  ? a.Lu1ClCzGOqds%DJ6QJ:&`@ΒPI6~71#I - G@>޽$FA tak !Hri%;Lf!^ Vii,mfv 2yݬA_HPN/xtZ`T?Je }%~<1iTg)7]R,&b k'8>^rwV\,HqG:*ǽҴ~o`c29qn1(4j6[F*<H6;W V∺\=_\撼>>}?q#*>Aֽݛ99n鰹~}7ΞJP\'?ۂ[``Z9_{=#= k߈ȷ0< h05nxlH/ ,B77/{\Hߜwl羳 dlJ+4G'74@>.O*~<;OrF{KԢY -˃/|ϣqUF{WٟqBbN]x;YOk0sy|.F?m`6 -e=;1K@ ]AOY ψ -Ƚ7Qn}]w>uu94vo?1*Pα)wпГ~8!LwuvNs\tEbA{ʔ  dHa.֤h' +$3\J:U?JH){c;́]R{w%B"N)m`7hv3{u{ $tz:\'CЎ3\4Wg厛v`]hܝ/s{n -NG{\d=+b-SYtnp;;gY!vɫmz7C1S2 5?ؿuh9E(TZBb{ -R#iwgg%Nwu3؝RحdC2eT˧nc!π~sD;ʗ*OK)zW[jfj͉yѡǿ`W`_]쀌?>|Y\KRXݏmJ]s2ܬ\l~zaZauzeUlakr07wGtovTkq.Ѕys5o3,"LuY4~VN6Ω21'rkkTzfAiYZtizv1VjF9HI(IC`bqKɪ0;oM^qT? NН(dz[q=Ev=d |hiCyJ&"+}?"U;Z6?9lztiJ-v#qb3}v["­NďAlKpp67<53H{#?h+)G, 54bVKG_mG_5ܝzGEP5hߙ$qk -l F2|vZ9!oshF=b ALEB_(! -;KXϪ[(W3K7t/iTOTJXtY']y5@udmOq?.gϓ:)uǣ0Wǒ\9%І΅>/4I瀗lM6+ܐu~(->wp<Ǚ T:$ܹSz5>N҅l(0&5-;rue.@=WLۗS Fuiba= -?ؽ/Zx>]>IvaZz:m7(E0{=6`4(jEKz^M>V^3;ُ&#Ž{Y@Zl0TC+tz2+a^ć,_J=] 6|T؈7Ƞra?Ȉ)PR']d2㤴sWU6db$2W~^Tg~"̧<=`ilO/WE|_;$>&Y{ar3+lԌ\QDKzU4H\f?)Po>yoGPڳItDžhďONٞ?{k関 uwK IPo*@NB^P^Nl`w/ϑyx)q}-XNѬAz=1x,/W4uC|D'9޹wj6B7@jO7d^AS{QݎӿvL}?Mݐ1ޖz -k;r^QjyA쾚\X -ltW30'tIjP[r_'V?_ ZpovӦ?E??1&nj.z_l@Wwr=ړQ{qsi7?vzyD60Iؔ'۫z.;<)|:L&:Mv^4 46gN: Oh/|-^g|uo/?d$5MnYc]N5g>3ד ea*u ݋ԮQ4dN l1%& 8 fJQd~~3gK5zbnbEN1J*[6]]RbCֹ/w֕p^AV)@j$Q%MW]Ul|kLj tƷ]['jP`m[2D_jpbQv>( *l:4ZA!If-ڇNWޑѨ[m%>存f\`U/Ħxz5 @*WVR6#P@.rTVJ~6Or1:8Z#E&F^3/6NY+y־{[?iwz2p0؁2`1iL/QMfiU~_7R%}~sVGrd]>ᬖV ۴[E2A*k܇,.2Hacw DK]Jes8mR:[^"b`̔9_ Z$*a#<#8Y\pw`|2AJ|:h:RI4;L#NuB!ե>DdY SiSX+c-Qv\^>09LoZw975/&"& y w#<+F*֩.Uq! $AB<کnSRPm$E,i*AZH2 -yn* f)>HeiEc7#."cNTU?A>b-* -** -*4_:1٘L""bf ^ nEҋRm ExQ* /1 ̉9Gk.wsz?Kݸ)fAvWo0zRgzDBoJ{̷h&UW^s]teg -S1clLVb11vSl};fb&Au!AGl}=fmM@yOoֶgl/ά52ߛ ˞Vy"P.IzY*s4\N:h'hV!42=\r_ش-qк?ힵ0MȁB"F -cW6VRh^6'?g)=UXsǍq+k坵3M'B>o>a|}{M%3Yla㖹{vɖpM(}^]:lۺ8Mݚ~a:8]..Jq@նhLhܫ_3y #MÔP8n8~&{`"lVMRA3G~>fҜ^z".0[uޗAVQw64m\֏|0>-kc߅!0L[um[eSzvδݬ||e3Rk3e;'߲]ᪿ13V66.KOxo_>!Qp]06®c':m~1lY+lK ^R[OIeFJ'0\ Y Z؛vya{vcaε%T@oY#.`޾z3\/hgtb^ 0T+ֻrhID-nw߯\ww5V؏ -4rn1o)z~&l.tvtk/ ҍEksVΉ]B\>8fwy]gpNmyFHVSL>' u-JF_-7DOW{ |ez],3lLLZQXYΖeuU)%T -0c|y)KfxZzl?c6ieKTκgG+ԔʊGl@ͰU姸f -IzcM"p/ FSRh%4*[\/6ZOJ Rx{Qz+US%9%x3L٥Iujtf+M7c; jL`5f -]#sb)fJ~g 0cuy=Tsn.n`$*;ʭB?~ɛqGɊ # x^$~3LYL{XQ1>d+ |16gri$E'O~Ǚk{{,/V#]쌂ax*V,4]IajK3D鬭l)?$eq.|x#|qj#GS5{ܦ9VM~g 1tUu-."f3κ1+*LΫ9-./Ef'X؉#q7c~ߕps͹i ZXV"c.]a9\5eI2zikWnE!iEK?7;NBR7sԯ^7!s\f*cIJS+/nWt,h*[b98HnҘY7V݂BG~NΡz&,tC5<6ϭvA+% yx;tB>0TU珐]^ ı\56,^, u'NT&Lv:ow҆`b֣y(h3gn7pnL^k b 8|{)A Ư;aY^6(+1X첫WehcdvRupRX*p6nL'o7&R~:\}<:O e-[_d/U/}ŧ[W_\3S=Mf2ၻ"vGWDN|F%ʬJ$(uV%}#5SzcskZkyZnKSݖNu*-*J -/.jsQ&Ȓz+8IVSd2,d3@M?SLnۦuiH:$BģP_n06n5A[j.+s`DUއ|tev;;SrV90,K{Uopg[lffL1 &jQf2L[!9Dgj騡TpRX\|WD9w?4JggJ Q R{EXc*h(dzZhBl3XJeɞglɔV%^+jʎʅBg̎Eʙv{qqq?WZ\!Ӎ\2r'`9x1q?qك\g!Fe;󋥥Wmy-J݀ݍٮ -'kLKS|R\xs2-=O2vn˜p[(zx&mO3gCf]*xt3ZuE޴r{ MI~(G]{6luqX,l`L)z٩|$D.Uw T!w>{\݄y30Lozα&v&Ao!mvpu[jo -߄mBNKc\,|P0Wn%6 ZyX2|v(myaM,RVN;P 4P$Ov}`8]h[Ѷ9{M7L㿈v9!cfC1mQhf0*GkQJQ2;-;J:G^')F Mv^Yd#JQG/io7Goo.ad} PMF4(uZ~6iU\?(8-P*XGk{}%r}&JCSG:EypPV.  W̾9fxY-֚~ z/^  j ))_Afaǐ+14bݾ.ze@Њ!9fRjD(u~8sd{=3fuۥ@͹TSz6M_~ M# <|3ߕF=F+@Y Z O/.hO;>8$1Yb/iji UYdFPzzVc<,a|<=x9 -s!"aUTcV>EȤt}1z UAc0^TlnR(xC%k~con7O61͌[$ѪkCm~[5]c/*lo>Suv*qxʁ/٥Cӊ\(# b 87';_Fo郏aq(*K~nv{]F)n c>vIdp|C!whׄ;CwA%(횺S0Þ3ׅuK1Z*0/l "?+Y3XMx5i69ZJI{tYp]YƳe?彻}ykA?]>A a4 ŘT }7t4۲ℛm"F=cA 3#g}5)ϬwYJ'5ip(f)ЋY v2?d$3z[91ݲ۠9()0mnfk+0MzaNjC̡+@^/(/BP->jy$Ё.WWڽvѿ:- k2q 9{~&xeW ,Wll%;QII4RCU o+G1: P{ -7pÓیvvB0|a)"ד4y@Vj.MI0*U-mʜ%rN_gϚ|~cgAwQճۚs2OncY`&㰰-ur- ;V GƽBeFU_h%1ts8l<F'| ~g8} -4+yNafkinneԁ^UX]U1}+l $*I1f7jJ. CO149w2~0I[u1F -5Կs Yziŵvvow]6/n*z5ei=e!x$='gf(L#VL~٘ح!=>H? Q -1Ԩ@m|PR1~ ~Qcwx",P{}yw8iIfkq.bQ[ZeO-}BKx|F:$&atŤU1[]yԈN[ =N-tЩ5@cAz Axor~];ꧦZ?fqit=ьn{++;e};5ZV%Nt/+8?Vq6s3`e.VuHfR3϶H59.' 8=Ô܀)ϨA& 9t]QfGWɵI/ۯCa~mcG̠X__x4ryZ7jf1Ly}ޮr(b -b#!ke,ny,`G\t< K|kVr yF0j;r+=ÓVj k*/ܕ1p7zx% wOnlu_Z/JlLf0!n݅#3/5x JI[mZ%ii5kLSTAoZ -wj6( 1&h[?-g{f1Yz+hsO?L,ɠRΘ(ei8ffCJJ׮OI/Ygλ @FB~+hMNdVB9&gڤH;$KkYJYzwrVH'zUUt[1 yISFMy^@=f0y}bo* D3\ri˒zՐxl rib݊x~J"h+FFu9h];5* 5I.wUc+GQ -QKmE \i[XaI 2fo:3ȯRES)-? OO'nX/ӪnHZ'5~ښ08=#ZNkdr+Ta)MH -u7_a6]k8ʌnHa.氩a%^>`z`%5o?ZӚ[|lԗTaV([O^k&ihgj'{8VSPe&ˎ]1Vfk{ !*ZTzCeA]캆q# CtZwpeTo$+nDܱ"kʴ - U)sNXXziE$393Ej8:4Nf]X]P#KrBL8Mu[R -U&u;x҄jWbz1Bӹɭ>h Y>_gd9<[-Xϙ=~NL|-;&ᣉOzl?oξ -\s%u/>}OԑуIȁ[1p 8VH+ϧ%-B)Ĉ?+HуNFGGj\oK\T.J_>N`vT:pLv.Wĸ(]v;7NF!P}g+oDF]|ti~,mLL8w-_}q[mW-Zr1%0mts@Oˇn -Sp%FX^&o]SPbj} > O"U=^H-GɺW+>|^G3]=>NX'u<ۑ617w_&,K.(Jscz3/ʵ 9Hɭmj -#'6-0[ɇ"D~+Խ'TN] |BܧxZj=C6vf lkd}e٦w!G UG@_;dd^GIX\ѓfC|#[TG*O_)JWzw&ڮꗴӮglL : 9FH%_WJRxsjeVAN #ۑ.3?¼>E6>g79䩆F`읧ڀu]+9y]kFKqaL}1,?T7yvY#4tFY!<'zTvQwyOoos7KN$dPs*$0 -s`p&egc<<ٹ{{4塴kNf"4җqT4`H ~2/eTyIy+lL=WcAk>A;xdLO8ow%y1x>qfubqyu;[W&ncB4^qMc)lĊ[pyNwIŷHcش3x^T p{S>z+nZm{᣻?[E +MVZ6-_ǧp<|spbWܣtC-~zyrO{ /K^0lE/yiM0K$ V~7B]bjrAYJQ=N {9  Q!gqs2u/mo=S+ݹA\#%s&]٢&-F oN'%54conՍGʹ:Vp0W>U(O5[_nd(mFYb1qK?`rʻϡ\;ux6eګt΃:LKiS -+"5Rb0_uWTFǡ\7|t>,BY -㳰q1qk8z?3f;ԡɟdAskO@Gabwγ,dAETwHѲJč=WʽRxvtfB}yzcTb.T?[|85L%8uruARz]׫cTźpt-vw_uۙOC۬A]L x&h26Zcjێۑn9Qۧ,앩2M 2țQ.ByWDU"orl2VَIBuvB[;;a\ŕc\ZHl"{v6ji 4 h7J5,Kޞl6 'š^m%w4boq]9~O 7vϘiջv3 TOkzҷO.2K^-P*݆8!T>Q(XA݂<:K:Odpdؽnf I_V -/\D:7ܟYLV;ZxWB&ޏ* հx3|@< Of d+~ 2mn޲5* -ZQorH]~j9>'(l(Esj;%0CmcE`F&?kG Y3ul -Qk?Xq;q1ؼrt0aP3hU^ALAO"=B0$E3P)n!kU.U@|h`64KnvѸEN;k7nA{xp#A&|505p|/<`PQg_e0.nqC]nw^ vv Kwf~FtPT ̣߸]VtL.{I6.1r !m>n*7u+flOju%j?˂U#vϬ1_>EiDi8DQ:(fu'E0QQ4_4?ؼ7Q`=(FEVEl B}p?V8F P{Rnv.No iܾE@w<,d A`0"`﹈ -x5H"}b:T]>Qd/Y\ 3Q >JĺlG `QgQQ,(^Tgg@rI) S*pQ,`uuo pf1_]`M$>J WbҜblm݌ң;h 67Gɬ[jۋr4J 0vsɾQo\,?CJ 8ɕլ.PkcӠ 2uӗp7r?Υ_9X>ƐkjLwcH,c(ۅԑ Q:>7HK4sD{Msn0SIFNQO78򑪲x8[^qeծ6瞟tzE c =hp o1"T0 ځ;ia(>y#{-磫0PW/? s ēLޞ;\`Gt28Ŧs]!+8y[1J8bzO# HvytF -u%e]ir~B<8HosZ;'^GGױåqaT;{T˃Un;r޳W~Ï'-1W?шI5d/5 o TkGkSP:Ҟ[ζU}0=\kG5঺ao6:=cXLabasp_bZ>ĈTH><|KpO&U76;ޢSq|oISضAv ݬ4Q/֖ 6.]>Ԯ󭢕ZVଯ꨹E).|{vds͞xkAޮC#RR-\G%mG'3j}kٌl̵ -||ˠ{K՝jXI; -tt@"V -1*@K~$]&L;%`xkal`֑ՍG::&@;~^k~-:b{ͯȖY].ۖ>!K@7Őmj;扛ռВ6_4aQBq^cW]sBz{*5-wiLg9ݺLNçnץV?L$F*w[X"[Sg|c-T5 +kW@fJXȫ`~Q0V31'`V#jF#[nך^jw8I2l~z TW+|Jf75rt%5s ?$&9nE/nEK'eu9?3Z㽄]((jQ>VחYy_ۅbb4iZr>= (TbL&?NVMm31.7Az툴ƙsi瞃1ϥOsт?/jٷFct6?76t+oZ+ 5\Lbu.D7],׶XOϳm[OL;NXZ?!wDNuU"Xq( -+56}7_^ {~{ᔴxt[|5 UqŞkI\Lْk -B7~&g3fk]2- -#טv0j0% %B̙LҨ~l[f[̈S0Mz;,-;%r,mI3dDLi2{W9Α90uk*[/3"DED̊E{uz?;ϋS, -j԰|J& qw$cK#rs{H'+{]Yd+5!g(ڗM՜p'rby' 2OYݐ, v/o{咗h;m d[RJǧG}Am6 h$Që)kɆ_;lq&^p\ V+O7 -;\7XF)&1!ڃZ H)>S~ FnN{F).ȘCu~g5gѐym@<xWUDQ9H"dJ# -eTe/<;QmdƢT5Lk።ŎAAmS}#6BAzYzx.k?$x&%zě"Þ:wX>uwVPvBڒjJfW 8=X,F#.!+fuc -wQsT7l`AC%ܞ8cr“sCQ!l(GOdiu;+bZiJnI) gZ"d8<0F?}D^F&8LZM\"}UEb(K518Y)TFGSf]Ƙ\ cS6g`S^_ls(vR{Vhs=/S>}[DaS[rQx>O~|8iVvDtޟE:1y9!T >7pX-lʱ,[RG8%tѿh6seOU3wOÞ;E ÇZ WL+[-)FW}ЬNKu%DIOo)y.ŨVĊHbw:r;qӾ}3.q.JNl{T( & ]HV7U]`q'1\ !oqF -X]hYdzsZnUuL`1:!M C:Xlt1kC̉y}4 -7J>8ڂo<$"{Be{ mT&Ʀ+t!M5:鴯xFŲo'8%:ĎPesN?`sm3mgYhE-ռ5&yèHbk}[ѡƠe5azG008(Ď:ĥ|2hJkuPr} zVâNZLlY&k0kr0YE["+#CgA[[DousDvwu(]jS;F\6v _RW#Ug(\rrZ)˓B)SC.().}Jm>;{m襀?FI"] :7zw䫵(tT'r]x&&n.ur -ѾKb*.ZCqцxUl|%PBl]kag B dr?*腆a!<-3 |*LȲܦSA iQY"ZGuWiaւ"o|{V!(Kp|l6?3=T~-*&nvӕ#8ɽ,p`̠;Lj<6Th%Яک:T.8^ mW7.0c`7JpzU]@V>o ' NHݚPxG92 -'@=g9$N -e{z| n ?}}֗mz.bdSo8b9\D; @ YR%ȾTY] n ouU|Le'NUCv,޵@Kޮ^Y~-*٩˝@{Y6bB[ @J4Ї|J匹Hwf˂Q |,weGų~F{:ؘtӔ9Ҕe6$M9)3F!{P 3ys34`VXfL*JY~:e$Tf}z~#T0},8}H7}I8YB'tf,2&# dPZ 6@">"yz*f釺MhC/}뒓5j+c iz9gM9e¿fqg*r]}-$}MEͭ']GqX&j{םU|;$ &NÜ76Ϗ( 5NӼ0?#c}KXX#cL^IF) xv`a M?tOx@K'PgӁFl/rƛ7 .ՇiŪCzJF[FzFif+WW.燿͚ ѾN\; -,<}d7jq6hvnDkl!ʫBY-YPFE}Oq~\'~lw!v@_/5o1$s^rh,:ㇺ&סN\r0moKt!Qt -\.jXkh/&TkM՝: Cݞ:NVVwSOA^&27?VƸӽ_~ÿgEK*,S0GYԮ;Su2r9hjaw:q$k SWjfd9I%7Pƛ׋PT^P357ņc+N^y\ eMJ[/؎fܤZ {z^g1#Z7$ZG6<X8K|;67vQKcnAU@G殸ڛ {T -݇#M"gs_/&,:.Ox:&0:r`hkW){UjdaexG _I|'e7:n,8>Um?`?^ܡ~5m!Yt[kCI$d/_?Ê_r[^X}sWiσ:m%wo5[iT˛~kFw|?ES9֘PTϷDʒ/r?wɩl׬-eGҲ9_l|lޙ]p쨖-uF~[ Dt&=o:듹ީk,m$|Tj(2&l+c)*~݅Iw~a jvZG.FM^ʲ;/8bCͷ-v`t>[zIkz::u}5jZ淊|̟mzr]'*⩵Ķ[q+ . nQ0_?f7MpuZ~UuǥU,ήR:?7*MýT}Iz[MeTuF]H}vtOQW\\Ⓢfx43ltZqV#@+&`,o,kFVU5_uPꬢ|8)kJRLvh%h(`t#xGaO:G\4b D -∳lR_?~?|.5 EZF6r1w)1IVI! ?V'k -#쳅Te$p2UAVj7kgd)t_?T|E]&sIO BA`BRZ|Sܧhg%ҦCduȔ?ָڏwARHJ HZLb7r'`4;ߢsz? -$ >oDB9>]K5V,I -SY]2./0S$k.-? >*`,eI!F;[e [ rDTԝ BWN@w0jrVfK~fT;KSqv(حihل{)]D9b{r#,^ ޫ ]GM$ P-?aZi֓Ɲw-*۾s0^!vj!~7LMto#zS-&w}2 v&6Mrs"yR]jWkdgw}?vv^W ٍϸFIFO[? }> -h_|n ׼zIb4qjXZXK b v3օڶc̣}h]~Y+ՖmFsik]0" 4ԭHjq&`@=^wEKd sQH(۰w<Vz֍-tsR^tsq# -k~^>,=2]X= -k9ӕUTBЦa"ru̇/jv*[#-,Ӽf} PgT -8ǃrrƒ p7ֵ*k9RW3^ \GcypQE0Ճım/j_Qw}ǰ)Vi/+;7|jTҸXNKP]gިbO,D쪖ST+&UPVN\A>VN"^Nz4ǤΐnOV"VCCDhF݂+cLoICX=_[N3kEF>Ig}/\zYRN@5*7^|\J/˰.>(.4 .({rzgb8$AIޱnFq)-h ̘IԨMK#n͢p;L -zg6Z|W??`.kӺf\pAYhkЊhGhMg[HAqٙ8_"uYU-Rӹh=mPd8ǖf46gQ)YA6<]P' `7 - =J͌`Ϻ ~ZߛRYg Bw[;l'ac.VB'` sswyc`{gQ"@̒!@-@[H@,lc"5$x^Fsh -)V +IDu":.8|j6ˌ/b?& w% -VWY.%Ir4וo=y3 -sk/5ujjm2@.@m$3c,!C_eGXZ,}kjƿdS%;(d=3@5+@zP9P!ںm =dh dl7B%/wkѳkCMSF3ne▦\ ouou] KB[FIS~E96zouV }{0m1cbe1Ì)VB{)o%wQ_.)?eyΪ#d!deߒ}ߋ5fQre) Se<,Lim1v -o>?2[yD q,YDxג^nT']ѧwJlsxթS}emsJJBYR.;$M5roOxvvղ fMz0rYs"g|kO~cq?~9^D75.NJA~?] z=dm --3g JY,VwqWlRډh=|& -.>_JzNCLi#GcbQEh՞YnϠwv,Kf=AcZ{[1?.vijY5>j2nrk!c 9z 簞< -+Źko=Q`7Y֏7jIsW(\iʢOQH؊?`8f@SLmop7|Vx{Ìn<t}g}ܘ?^{ -yNQ"&Zt~9l֭yڧeNiH7 9Î8l ú; z-D6thaQd g_Zjar/w@PQ=7-$l$rw?;mRR٬hPlvOa[7Lq_'۫& p劊JdUFrj?ZlJ;k (Ϛަ|m[O>ޣeqb`8dkI6Ebq1vn\;:o}4;"]@Թ\[gisRө6E3QRl>p[Ʀ*\$\2}23GR[X&i!<`]Ziih\nYΒbb7\-"kAL\ϭMbO<^s+G }eWxOy<g❸-qia }i~ifsU67- 2:c}z'K>|2@B"d}G^I-:RndIJ< -F&|A|.mvl,56i;Be/FFqzlAZXbBk#7\ f>*0O9es傽DeJ$8*d)"S ȸɸ~ԿԾTT~֖`g7=rjt 85gڹGV #uu-ygcHn,v҃O27Ս&r[,gJOZL/ /l͒-Tٌ"l~ UTN^Wew,׹㓽xޜ;XN'#y_<9 -kfýܕc7;o E4#mS] ;2yeL|>]z7bO+e3W=?ʿl{_6S6 1, [)3x_UY:OK疲DF<l1?92rZlsNTP( hrG$~z8a=l2VyE<'vȽQEsq JYr]7%1r -r -f M_06"Qr'ފ]?S;5nޤ%? vX k/"Vújw*wVB)TV̆Y̰~{IywwJ! 6QPex /~@\ۋ|99p@0 xfSezqچ-nvx.Dhc\6hb9J>^;ea. t2.7 .-I< nl ` %`6 z ~̱y A9ef3 %Tݕ6ޏMY;-W>qws+xZ`fbزhؑ|\nLSjeOB qgs%\c RtA2/=1d|iR;ηs]\Ex^(wM/.쵁 Z*]|;d}$Vr#y<)Ut|*N?ZE&E WR뵌 ]e])X^j0aL>T푶{7vm\yM1KԓC'-~)?u[PQ m]tcF#cĹvMSePʷv(czIS˰<*+ڿ m|^Jm;QݽW6o*{ɶfF%M_7Afawf¡FJj[Q8>O"N{g:]?2FU*bij%x!$:}|U枬 svҽ>7h"]L]܂#QΣr`RmnrtYu8*_[F(#ZU}{[ӷdFőu52,dMLSUӟ&o4\)Ux#{ p]+t]oagEc|k檮 ?#4^]n*bkEd[Bdw/vSLߛϢվ_YϹ,,mhe=- UqdJ6jZo-ٸ>xX?eM_+zw=j8vhQU{C # n n0\HI/gM?'ShEG[W[?i>[لXFgBofQ^*W `/$2և:H\k,{h\!zr9H`n^ӬTO~s\A\rV|..Nk -5 [+fYXw8!p>.'C6+F%3,3nP"ԬUϬwv~|VFF<{-IBt\ 4-NwG$AuVj{ *JvumBFCUO!]'z"N8>|\.[3%S -~a"R%IOfU]' - 費ɢVgkTsJdMEl]›OY] -rUprGw5 _sfzN6s<`>ʖeϦJ;#֕z/RjDieYJoW9[WJԖLŧ0v1&DZd*3.u!~/q-ܤ1{3_f1T^k9P7輧V: =j?fwKt@zxGII=:'q&/rۍHǚ {!xyxzye̽9xV)!aNt輟B8To~#ͬr@1ݭ - -YVSVwlN75Ѽ-!i!; oU>KmG#;}o6kٜl[~?//qVKNEИFZ8pԷOvԦ&.=|4&uYwX)7 v%_yy - H>)y\pMrT]@ln1`bl2g+UE˴=qK$ئJ:/gKёp>vN Ƚ&kʕ wg|RxXyOׯ} y2"hynmquIjy2iʚ<4חᘅqi!3G~@oH)o'T{Ac\4& eE@dѪL?~d`Tr :3y9a"A)2ŕ^ա+MD%4$ݓ픪WMAuAgFM 4}w k<oŏWժ/5.{rf0.𣩘b?;EY5ݒ)aJoJJ;UmĹ2wpwY]G*cۅad`%ŰG}e]lߨ9*mT=H-6h]p/eX/S/X1ݐyY9Ҷ Ķ(A^W,W;[}5}Oj Aqq~WXvbFc zet,w+GD^7oݳئk~7)eYLRɕX40797N^9(whU[elsFKOK,X+d -ysk  -F3), zY\(GW(EA:l,,٣/{؛W1ף=ɝ AG3e5tbbl:|upZtPzdZ/vny]XHF(W84:0WHH@MN:trith'n1d%˳UT)<}Pø{9n:ÆQBit)pB ޡ@W茱tWڨ1n?d|@wYoj9=;I;};`Ҍ}5nd\R{+#x1 i2 *˔]+1ʕZ% -@) 3 QUgH2r2N>+mL.ʷ [ Ō@@M -2}+ -8P=SuT2˄' ֟~xғzW+^T:\SXvD0!9E0'̢5׻lJBS*s Wf S xYv?+w zɷfb#y I(Y@8ef@X]֑ʮh҃S7)(Idf:e1) n)t10Ikڏ,` ;̀Xj_"@|M$Y@m -3 -N$w2S2dk`UMRzp^C) 0wه`zGV|vmyo[dnr+~!Y5myKFMm+loa'188V"O[XWv#ű/o8ڟ1~l`/ ɘk}qmo bOIqO뷝5~ܤG仙!}e>}g#{F>ҟ9<'q.? r69]7'xoZN~?`s~OMxD^e'-dS/ᣂ3&PW qQ#-]G]:ڵ~m7/;\q?Gpxvfv:͉]SQذqØvP} ~R 5bF+/o|wmm5u^I鬮s'6a^fGEqm}I1iȉ*{rkϽM+בXKjP[JN*DOq4>W?nɽϦ4O^¢8>f`m9P\ UZ!1E#>o{1irD&prv:+jμʦ~_[}Zĭ|̬Gs_3#ޭ…|Zwiho)lPm:EAMOAJ`$gA|be^X)C~:F -ﮫ^L';/ĬܨqauPָfLN}Bs{:|#.Ms=O({B==3 }J+8 -R8c ==wSgvwBy6 !fM+3]<|6tfxLڮ O%a엂TuZ蛹՟c+ފzz 0y'6㝺\}c:qu鼱]/ 3[_v_\"o#PMkGZh{;#9sګ6*?o-=c`}?b?[&#[:_*BcMs~i ?[VVqZA\yWMxozD?a'l4ݯUýAct~k w'=IonkZ,uNG1_PS߇s5NjRD2fn+V֖rv{oCg.jn]?8IR:6VȄK*2F?s;%kw?ĘȪυE| `K:t4Z)RdS+RBO^ZVɦǻo|>KˬmƲ={pǰ;k\S6kYc.\QNkeԍ݀RjIu`kIMQ49_̃"dVY^3iR#ciSujhwH]ĿmY'Oe'|KW}xVeS}YGO-AiJ>%KeLJvM$'VOFj M^[T$ͳp5l.s-g)$6= -[2;­'gs-Z :4Jv$ 6_Y`Ցǫj^ m+Q?ǔ4ɫq!`'mOtxhp])MG#^h\,?\LC^p_T>FM 7^iH^g\DtCjrQ,Њ*!嫤jC߰J|V vB1-7Ss ĂG00I= ׾=Pg۞=Պa ;'_ζ5V:vR>MCRi]pC#ߙ*b椖1R(:E;Z T -^wdbuy)BG:jdkg0d -D/F^ L~-]3J%y? Wp{7WvqbU2xlS˜W*I[cFȠ#A*dIug2{'XлKjchZ^cU8nqf_gS|##ݺ]0g} -xZ@yuA]6dg_dN;ص`\}YǘSq@1]B ,Khx5 -L{\Bt!C^!9Ųgg^f嬚vH܋H "Sx(`((`õau,`xt|/>q{Wqgm*M6qTZ>&y%l\Ӆ u)U!<stGyX~x8K(m+]Q^:JOTA$SeMa)Km#l߀8W @\}@ls)UV~D菨\ kI93BOK/ZC.19ب^P}0B= -dj[g:ATH>W*^we[@iG~J8EPlSOO,'y৭팶=GnS]ϱG@>a QS{xPLpx@o{ou@_.00N6uXЏq?+Gh uLȟOTviUvt|`Up?aw -*m O@t1e@R.: n;:R&TyQ)=bPIf<}8O;ಿ5~[Om?2oGo=y_\<"@nh$[;Oaro4۫UkyMp^R O :#R?F 3ecyUjTf`o{ߞ;Eg=Q2Sf䑙DxuV?dau]E~1}ww%̮ibћ v/]vy-8k3Foxnʗ gpǭncڼû!\yg<Ϭ^ -&J~XVdzf1xs{y}?ڭ_yU[/?\ڸQznurfpώClF.Ԉ+w2yZE9j.43Jˍ 9D(O --.wq&y^Uj}t{VQuK.Qd^]pwk) -Ŭx\Ye8R; --3fʍ[3e9vf:2'{U(k7d"bQfP#*s/n._--L<ŇK.j\5e;gfJPհ]X2va;6謒ǴJ?Y{ UyBKb&H@OJtq6l695ע[.{BZt%Ɨ"f1;ՠ^4T֠wX,vi不@vM..ۻe|7Ʃ -g,t)Y>yAHqKb"i MD=%'f|WAzp{a_]Ž{R*!l&8 hcKS jP:a&: -f_ ra.$lͥEu9=Fp_G;-"pd/K-;03ݏ(ư P}6'Ė6mE=ݠOO!%~ũm)$f"v9:i40T9XP,7+sT]^TqfUg!W|q7= tneԺ~(t/u]$[![J:fT&&-/N˛&ZŕON0S -ޓ7iVE&\e& z5jsy<]PŒEeH3Bn/l7+q^pT A?8?X :ѶJ -ZGKPTyRU´|X7>j{V)6CnX2%~YRB'WJ`9Ng/(ףE -Vpj[k -RM_oo*; 0~DeUDsJde/I?Fw ycv&?MPPU}?OC%K[ }5”\1=Q .wzک"xM݀z@B/6HX  ͺXRab N8fyw>!aiNUZtۏ|9/3Ҭrrြ,@(  -<`?}mU[4'~kMQ~VY֫1~m{_<L^ vqַ gdPCһdڏvTCŽ|^3~t>yf>_IKy9HoǻrT,`b޾{{GJp3Os[k.;1_9;%|gj;'/kORb?yQ(2Y2Ǻf~[~3#!-?/.@&Αlgjl'/mN.{YuɻQ9p:]nx埬;u`#~@u.RwR[mU9 N7=k0ƴxg%EGYhӂ/x \-pΫةe՘BeS;C. V'qif]>YR]ܷDq{'VkAl Z_+Vu/n!cN/<;bfĔU[ +FJUZs3o 51>Q7m|S|GKYJNYFֻɵKv\N`g8ݮrzpj6[x%7pCZ*651}5ڇk:Xrdk1SX=^mP -\N=b6Gg`3%h\ - |F{SsЎhjTexf;Zz1~|W4mjNyk%~=ҩ/CZ ::AFUuM ChD\SmQc <~<7N+?^27IzunH7R±R5LwjA)ӫQUÉYỲ T \#l9e\זњRA4gH\Ew^ÖNf|>W/mPǽޭp4;ϵɳ$Tmy#]/YM -9A+ճn7WS]{9{#u+VstE*N (^u翱쵯6:ƯI?-+#xֻ*¾f:ߴL@.qubJOpV1f͗von窦3S[ƷRA6vW4*ҥN'E;JR,eVdSm^X 65u8_B>v;Uz{:vnN26< rzLc QYjZ7Ziw5R ,[˟Piue Mq)l!b&sdjb=m}KԤoAE;~/)˲TWO5Vj ʩ.gKc[$uHGFr?rDmi{RN7ߊ-8{y3+DNJKΟ` ~^V⽊Fژ:I3kVA{ϚPjwZpPz[dJj>\MgҺR$$xq:e-! -oTС@>j4izƉ$``Pa*b,`~7͡+(EaAXATqNm+yuVw"/ȝ/BcsKQCwCh>'4e1;5~08nkyArPr$W>yJ eSXb&ɥa^g`y^tmKbS DmM(¡Cb8'ͫhN}h[Nݟݴڶ{ZFpMfiiy/`vDlkG̔xvHs3sV^Dչe64ZKpoݵhqƬq^#pVTpwվ`?)]1\:8KXCW_{)nF q s#LjI)B6w۩#"U+g=잘av '\_ tQTӢr1b@\ƍ~DJ"N.&L: YxZkNDՊp?uXs[)0ҩuL8ZLY` -բVXi!Ә CW ,n^'f'ߵՏLJݬODm~H+mk%Xo^gd8/+E9in%=a;PFh"Y }[.dl;\T|^nr+aŒJ%A,XٶR SaR a/J.1Gw.;?>[w砢Qj*@ - 5׋&_SܶmĹ&sk~b&TڭgNa)~\;wKED:<!D 2"deė^?1bSˌ^_y ,C?.4?0L$ϖanqɯ$K={ j,vmz NU-`LAg'˚n}{qqIk2pQ @}"JCak^IC9aħT#)Zs6)-qŀHaK> F0SH: {GhY?J AY(jƤ -tF ]`$#&x:߁3 'x/S<-->% \8Z9VfR)ǃ=.H\oau3ނC|Pn{ n h%xmH箥 ~و}u>fkfCY)Vo!w.jةTS%֯ߞ޲ A |Py8Ԣ|HT-@GP{)㔠ymk"Pk.GYn!wODL;<2fxʤ(@g0@}Ҁ0y] =}72.`: 0.~I3etI0~:Lv!¯3Ɵus8s9J[Mmc 5/$&_׿|k/C]lH{kـCY p9^܎n<}nJ>;N;QȏӲ{x..:ssݞ[CyAM)*q=ʿV(I´s]5K@5}bׁn@,H .er9{uB3|e[0k ^KEkMnԏnqBOn?ҭζfd,_r#Ғ+<#@>M ǹY:lVSB?^̿>/O6'%c9POPln@^bby_P7j݈;nrq~X!U# /l?џ@qǻRC܍zw5y]33Z{p]9?G%p!VՎh'p#ɴGmZ,O}1FYnI7?kLvٓ㭼K厉N8QF>c8o -lvYG ISW6|910W=c / qB_p endstream endobj 288 0 obj <>stream -"`cɱGfd`;m6]GsXS cykpPE@xBGan^|N\8Y5/x*](WoĎSH^{#n%iĚ)VE"73#p䌅  ):/VX"qmĞаNAϗuc͈Zz1?'k=N˟'V+As gƽp -OIM%;y؛73Q~c9W@c/Y^n宾Qtu7E{Wfzlx[׵lu[~V<,=?LщR;9%3^7z9P_NOQrI[y,50Qz\M]#~čevhvCFl l>ղQ2ӆE)r'0ΜW-4SוfB)'P;qP_;{m  @Y/jF6vNjghq?ȵ8XfU0tM?83kKŘM;ijny{E3D{:9YOQdr;V;SVu%vV ͚6hKogu -٢w+sPkRass%џWSA֜+' k?D|Z{6@4N6JblRoYR홛Z5m"Szw[uѰkGׯnP-'a5e]~ʜ"ޕʹWE,a2yl43dੑ!?W#*OAmL5Eӻ|Gs6Um3I\g1f3^ƪ*i0tԔL<1o띹Q7kbe~U:WDso$ᬬ(^'[7n4?n['ZF({zk񝠛BmV߬5Ìq,櫼6<.n״_΂oU;eͫz}UGR0JJUz+S4+}JXvY;S@7e,K:jv͘iU|OD3cܯJ ':6<}[bsEkޣQ2&KO*}U)WVSGgWikiٞߤ,Bn+>1D|֓_?g }z\P ;/]FQm4o4>-~Eٗn<TնmCAE1#9'Y5יksoRUafK\o+^PfM<+Jd R璕~:PHgVGVzۊ%U:f nrW/TŔ -''-;ms產]ᓪ#S [G=9LXvi罱ѹ0@߸jZYJV'UkG=EMUFnavQ6ϛ7h~rBv³cŴo=:m'BeO t@N*N OA`@TN:O,nI<^z[0'*X7ez7L;|NsR=uiP( -K23& (nraqΞ59_\@Dש耗ƫ;Nm"qAIIyR)W')zΫ7TYyf2pT@2^_D.|E  `vt36[+eKh O^cL3 /:7a~%|Lo;"C|0C'܃I߂I+vQ6i0(z$PN  0g]JLEhf3&%9L`a z1I7e2?% 1 Y?mѾX%k>C\0j+jу=NW >[e:AO0?4Xz%.\"M $*$w*/~`\xmLC-}9Y'8΀o<_ x!a&xSr% @ǏK0 " W t.9I/CwU-rUGrz!98 y96xuY@C4&?>`BA lNbi#@= !/9-=xU .A`D>e/~W_#skPbQ6"I( 9敏e@U >P` , -P8k ^IE@PH$ 祖v;iGσs^7Jjz{;+*g_R_#2GցZw{@CKU:wM h[`oqt+=ԁ6@ dug̷-k$!M}Yw?.jIokUErUpKͻ-/t``ܓ}`j)0s70k}(frf z~_lme}8棇ĝ9:Aܡy;}C1usd?7ዯuծi<^2$G$ѯQ_7|>L_;T7wbs.%] ]VPm=ǚT<=z[IWo?hk Xٽu~T[ cwC|Cxx+7dC}$w˃6?=ݻwC vP`cV7;YWt~KyFqʴz?.O? Ц/}owU_~]ulU} W,C,%oжb3Z}`L7.Qk+gvC~Bi׺jzG/wpfNR.O9뾸м>Խ3dnx`昚b(3dabSoGRf{蜺CJ -$^UVccՓ?Qܛ}G-s\a5*+-ků ]Ѩ\6>PBZd0>:=)갭+L\t'l^[uÞ,3UY˃l6? BK\nqL>c7[7^m/,gt3)ȵT(d35i%ב灭A؛ /֠.Ж-l+u.FxM*?Fb>ǛQpF=W[ J\4JJA䵟t'G~t0g NI˕{(Z. ~Lw08emXvgdBۘé]ٳO^(M@]Gk.Af68 -1k~-c *f>`#=nێ7ڶ 2=޽r@dA1^Q0 $QL>uڳz؈*cE9땪g^1̬Q-sFUD!oVgƎܛZ8FfZ9,00Ԫ7/q&1KU%VZJ(ɢBͬl<[ԟ{eS~&̴}N/;z11:+Ad4?3ju tw\IwJA*ޓ_QeoW\E^!XQ4-)e?bv[xH3s 3f~!"=.0iږ FMlA*jE:%ru"䴰LvE=UU:P=.ch z;iRf>~IňnDd 4ٚ r@\yߟR"Sr7dK>1}T_DHxRdqo`ݟcĘXHZ-N3XRE?a/FT_TjT(Vx |%;' !j(>xZM2ȓ.AzĬ]T.ƗJ '߷Vɦon7bFJ VTCO)v6ʹN>J䊗N\p> ΧTwj.n]mk|1ڹ[yΆZ WM+K.Y˱rA݃:試ѐ/Ϩ&SuX8;^rez1l[eEk2W~Jm۾΋^{3¬Y^j ݷxw\I(b߹2N/$pg}X58 0oy!J*MT"bC3g`!鰿M?qVmnҐ},.|y. ŝn8#gU -6~EKrSPzv,z8}q`D=@N ]@Ψ }2X,LKd馛@p W簣6cA,5! j{u}KV y$RH0kj/wcN5uUGZ,&LPq :M$/&Ub̕~-)hvaL޺2&VD^ʉi:i5)Kw L)S L;KP%/Q{NO0L) j&&oJo`׶jIv_Q3uxq:0}Mq +,1v셨;t{5"v5t9K,$DŽ:'عE']>`'-C, 8aԿfobqff$V澶쩎Z\ϲE.ut(>gdQݶV82[9%(| R&^\u4Gfq;%'RZ'Jj  ] -bh&[:+*jޑR4/@zs@s!uOщW ,9@. n>U.W.> 62CJ2^iBG@Wzr7|ܯpW}@5Pg5fey"ZZ9|-TO*,x3'5 蚅۴'; {ƪ -nOonB۶&-Ym`<01&.'x,ILR$MWj_''!odoF[֟ȁooCq}뵻*~bm 7W8_Ђ/m.]yr7 ^T_o?0ۯ#֋?̉ۋnKJԐ s̙ioVOnO wca߻{sKvC|A*l @~A}_)9me7ʵ<2VpuQw^o'}آ!}|Pk]M>+aArːTEfGSA慞͆:@Ls)]_i._cCbS^JX`h@؜k|`]DT0TygCԜAR4udnU'|%>bWOd`D-mvݾ{{}W@O -CӿP`q-gSg){sԘQ5QɲS!+kC0Yޣe{=UCBn7ݏUIv&kEŞMPU(n/3{ՓSvC?&s-̏1rAH~+Þy%ݡέ; cPs.<Ԋ|Ue *3|(Z3YMgݰ`nQG[ZzmR aȡ5gJs3>Y`iT Q63mj)ZUJ+ N Sk 6mX@^ԇYySwXxޭZ{xeUۋU.$w?j+H??Qɿ6k(lcpي w(F(]k\QrZ neU)*Ծ\.Ǎ^fAXjA) xE! W1)^~RK +&Дb|8f!zg&6#7@(r׮:J]U~*5O)FPxOJ! =؞C+7s-s6QpjُɢQ!h_d1X8W^GfkyLSˈ>nj1hڥ^1qc:ue>4HvW)nrOii݂-Xg:+ckeJT)ύQui̼[f6dT}(5T4*‹fnaCw]-]ٙek9lGGbW?l5B2Id aOVQX)q34f33b`EЋLǾ[6t&VgiN*-i8$Aeq>-ޛ&GlvNnbNֽܽe'cv#k@Vv٘c!u0onmx6i}~&)hEh,uت0~9 f\|&#1ޞ~jnGWm>>͎RgiWo 7[[z{VM ?WNZ+{ʹ/U\ʉXu{rDmY.R^%񽺶~,Ʌb$Z&We[؆`iQ"<yQw^MtɹZV}uAD-U8%T"+:grT0oS굆"Y.$Ku]i,0MBnRtIHP(zL:JRQ#Nf)Lm_97wJzsFppr }Y5)mw* $&EgE>`{( dEƫ2ֽ1)H*%} ʥ8\զZkBU -W*{ -mM/U3rGYXR2bDxm B>m #<Mn–'­ĕk"1F`o9 z}ib26xoh(Yf Y*Rm -$gȠc]K aKq)ϓR̕:Ǹc*1+tN,ߏ4)K/Ѥ@ KkqOWu9W5|rf~%-fO 9ϸ*JDg߯"?cY]*Ӯ|ϲu+2YeVȠgdb/xOփ?4՝?%,r[zGޒPE *\^E,3oΕaR2Z(su-ObB 1=i m -AQARn<oR8܀qBx=ru}ZAf(zǸE5~g`è|BWa= l:L'd4|JΖn4}OY0!Si8n f G@,` nw tW@R`l~|}jf3SV;ʍXtS+YBmfA|mmMDOt-}d<҉mNP& HKt!4L,7d[HQ -c@[ 8$(OZkB 9-ȌQ4ϋz0Zj()Tރy41!VMTfJ= -y;9@YP!Ar(k&%^f}P2$YRG @1P?3)rEp؝>%'~]}45=Q -7O;[QC^RDVRH0 \Z؂I&ZM]r  -.hq>% h$<73>UN֍X8kmB)zy4^x]Kn.k Se> V WK0'[#X`Sh9`kf{3'?؇dy ʝ[}珳q+qPq[Om' 텻#%56-kpf M!1JPHnsnKpp3qρ ->y5d9pYz.R6~hb6d>{`@H6 -\}B€P3Y t:f`¼B?Npu0 @hM T# }ZdmRO'ֶ3V|$t8?qy/9+G`:H `2ѻ)~@:@ڬ@' v(gwګI,>X{/ -PI63ϾO74᫘~޿6\[NSqTDZ@mvȞ:bEn1:]\ίz^H8˦[$$iP9;m >z7? _6+ ;``S9QhO4!` Z00F'4WF%z}d_mz2[^;䏜ۄZ{7.]ܭqś d1Y_Y+rgة0m~>C?JW^4L˰o2B/u}ֱ{4Ca?)?7h;'?ρ#"}s WG9Fm -WޥrvNeֿօg_;^OўyӉЙ.4ЅΩtRBojOÆdC sS -$ˌ_배}5ﯞʅhG3NӾvmB=IVϘ^V\-vˬlP8Jf(KI@{jPq{\:6k½XC7RZ`*h*5˺ZsbCMhn~RhDHwBhn6ȑbSCWkK1n d]Jf ]ZjU՚TJ\iUƾ^RC; ?f[ujrI_n{ -Yɉ=8|J&B ┬jk9Ǫ -Yu̞rSSn-^mCRֽby}TM=<c9nIT\5kJSCE:]c}n~uLpL+u'l\{تj,fsNFW91SX,'cN&_{(ᮺO9^dnƼ8dDz5fG@GH/|VΌzV+e崧49}hHo>G+V-}/znm7JfhR8 ќhtA=[7)Vd\fBYx1eT |߃"[nj,WN#=0bw}[:[(ud߇(fsm)w9s]RW -qaa?v9:m5}^_f45N,7sLdF \\>u[zT)C)m"3'S(KNDd[->C8>K_j_, lvJA?o}oD%cL?3a6 }T*қ ,o7b>_݊"=#e6P_QrRݔck/|&(܃6hgKry-ǎm eWC*<̻p gAr(s lb7[moճ׹_UJ[D #M J -Sb2<w0w~x%hoT,T<mCi/nNYכ|EVa2Q U;Cz?pAV&cO, uW]jN /"`?qLHz7 $0@8og[Ϝjǻh4Eh*@msu/_F8|l_A}dOoL$+Ȫf9-@<QzEV0[Yk-W`mmdT3П5WU_G'?O_k|CO4q -̈́4ρzs -dSVB -d!]nx4¹OTOWf6|UpۿJ)U)"ƛ@@`{ lC=nu~__&#|3b_QG/6^ xj\: Z{:V/\Ҋ~}V7m׍ɰ_M׺)=CW^;pxՍ YT>V;Ņ-y< F 9@gۣ+auKƇgfsբe(ȯL ʡʵ?66œҚgS>~=]>fV[kWV):c✨Z\Yj{ xny.D3tPxMT xTT< -yoy]elwraDAZ5c^Z6x߳: cHL09.z>VܲFՎ5lq VՁv94QFp萬[}P_ -鵑.%>Li6+]>F}FAܵSzE'3t,謝,2U*C[m,lr#fANm/U8Ǎ=Oڔo/h -WUs3׺\҃zpae2u1Sh\:OZْw~C{oڮ3M `O'<ʮ96 On4yʅGȘУ7TMk] {}rjFhj FrY6 .PR]'O*}4J]*%_tFbmeړr<lyv\yYgnB pS6>zrtROw!wmgl EIz;i|_:gجǞ7_r -i_{ђJ#gM2i^&((xi2߬ , drb0ε+ϩb٭IeaYWA| ӸRX]~2wucrXo=-r3<|8>y_8 +\.JNEP7McɌħ}iL_J:-d-o"xݧZTTQap)c-ЗՆ%K\4r*\ ٰX_du5n`gI(m^м\v1)Nfm>Fd }'s ,U^Sli C:jAiB\|Zyފ3tlhK_f{3{4k-MX]I[Csn=:}/~ j BT.~ 0o+f'w];]XR_k-"Lu- -,w'VA +6sPf{5MY7N\Hvl3^>dt-Sjcak#(BO<#6H/^WėR'hv 0'O~)8emٮsU1ȱ0eU50tS7H&l͝RQ7"ekK벺uf{'AW=FlDY1$aBW.3lryU3Ԋcֽ-Š0e1%.c5gVw(^c+qhn߅r -k\jcd5QO KM񫕃46nsRse냸Ȋ.3] -f<1J9!hmuZ)Q;'߽9|/2[x(U~%x['0 -9Ku)ϾVkJIsu[RbL <)FSz¥KI˙eʓ EZv#a-vs%R l5"qZ_ 2-Dvp8=H5'{<˃}^pJ{3Kt6`R+ 9x%jO$\}̭ ,~|89氍]la?`L$XEl̇8y<:4w_'R,I˷WorTsRG7[ WyƿS\cB}p+3LE؜˺S(6TWe?vL60Z}tϠB ڸĿvP*b^Vs|"iqaprO bEO&'sm:ʶ'1[wg'ܳN m^y*Æe=0kq -=-BCA+Հ]vDG|p4 6^iXud-J3+xNH@ǖsD?r!B'Nn7m{1ɎrLi_Df3YAázKy-p8%(]ֆ%nb{ޱi{ u8Ѥ=Wr3Q07xåBX[/ U;o6:”6HB'wH-$X&-|^2x}r1ĻMp~Tm> v3DolP|DнdW 87BWU`j1UeJc|V26$ܳvsb*-PIRtceڂ4(ԅd@>e@GO -Iz ~Oÿsit<`AmI"-^;6v'r9𻅔SNJz6hi2];@,4LͼWFIdN9VKkFK|]}ljMA*iEQbd9I -T/|o̵Lm'FW0;8h04lfn;ϓh4iw,g ts+(/nd<[[ڽMdWI'Qo zY8\\0'8MW p'Ӏ+s^pdsVE(i39뙀} uwn!ϢBL1?c-j|VT) \wĪ5`Oz?߱L]|;">A@on5j&$T0 -^2vG@0/ r$V3WkFt&w~+RyzE<P;?OG;?ۿS ǯ_.!ޏҀԮ! vR@W 5|Hn1sgirc1%\3Nm!@b7uWp~B#  -+KjU[&'Y -Pan֜VKٽ$2v-l2\ -GJk n}UpK&|- J@@0k u@mBs#A?2ȁ-^pW\:Z*פC@_vipUYM܂W).^'mM%}c)# -:k}+/;RoS"ƥ_M՟j9RRx -QfpCSv rܮM,=cqҖڱXZd.<iV)1? r*P>b9_vvnӏHCˑ{4. U eHc.ϡYAfL&әc~0}>ޕHoС%PV :ke]x[&ٺ)\bw`99|0RGQ@è҇!q}D hj_gnk{M44N[ z7ܙ&Z*XxXZW-r-~rO]h\A?HA qg];Qٴw^yS+x=-jahh9w>RZ[5/?}GusT=eZV8R5CZWpAtvn÷V-2aڴG,GסԦE]CWVQu[*}r6_nEޱx{3V ay,w]/Oo i~Qy3~Tyh*8}}խT-h; W=WvSᢒjAvnAs[z5duTt9&kFy8ngEmG.$º /wCo-*lSյR=h{vEp>:Íc8q[h^?{ފJѺ]d/jvUX7g\r>_y -V㫹hts*XeC]ȘZ3M}4M wt{~9ϔFzJnһq:,/J9lj\+N]9i ߵ_ZjCҵ_mYEn(99uΔՖ捎56׺ T/ cfSN6tARxf;Hs-bSbDƳz&cʣ+JfɭrX{pgƙ^ϾA_Wy+~Ci(,L՟CM>]D{wͣ(9PˡyziptT4vjŒ Œ묝U6wV 9f+ݟ5>}k) {[(0׺P1Y짬$9t$dir{PoYn^5kmn6Z&Flq#Tg .G L9GRC;,nJG+g^\O򿬫f竿QDo/~Hܜ`8B&"jB]tv65LW*DɔrSҍ882w&ZH[*&Jتanb4!:EfB4#G$"B@ȜVJO}(((}+h!EiJ`l7e4 ҮI\HA"q땱te= ]1;6) T?}kC䨼1̭NzJV=Hpк6yh9y -PTz uwGs|H2+itlZtxP &OdU{9kaB*=ftz'(0CTg`$tF 0yK>@Ov,|Tnľ|ъvX`Ӗ2SD'$"iHvqf)1ߌ4G'T.%XV {`l}nl3KM<¨6[4 -ծ woC>IH&G~12UY}}B'_- wWKPl϶j#b -|~(v>.oJ -a[mOFc/&jo{C ;S((n˞  -`B Bpc&7@2 H5L<rg/MVVw@\J, 9tݝ Y$;WzviP TK^.7Ժ{e^N5 -9jZ3¿W0P$0 @%g|Q&8ŹЗ(lY䫵d|jϕl@Nd?dodXrhXg -K#ы|yGzeoЇc~ G tvd z@Ovݨ]ݤ@dqi:4y4ݓ|C~w)ڰO)yd`[&`O~O\/?zQJpnـ>`y>ņre* -~jnEZ"o6mqv?Of.S.xM8Ҁ>da>%ip|x6GHP<#!wjDDsger>]|lvÈݧP 8nu4iNY){Zh~ɰOЯxC -tuO,|:8yfg0m[A[u{%+7Ӯ 6JMHgκ9w&nW/(we*N`BV}TdV?HZf+:"~578ʪ>ӕ7Ygf¯;}";k{!}.4[R`5vP dޭ>Z:4 i?w馺wʮ=+\̓^i];xN:ޣZuuD{oXĩsCQ=ĵiM?ѫUEU TWunIw[F5[(XHZK>+v-SX|~yndSXǙD[kF!@׺Z:w~rcwlGnK L[DZҨ\J:m}yLuğ*>*߮VP)DؕOAaƘ&Ya3A` 4BxWU/#g4!)G0lCrWʼn866)-⨃Ua:]ΎX ”_J |?yZ8>aʶZs;J)4N1DDC03SVצd -kU5׆h)q^`b/OB/pv﵃g1IhpEf|C]~)ngQ\Hz;'{-ҙ|ХtrX~&+Vd"}jEK´[kE 9xp^~/Eg}LqV:ttt+(ܩTة(]nTP&fO10PF.K쌍ސAk5F1KIvYvے_+n)-+#у7(WϔB銑#qBG_Ύr7VΕN Ah74\ g+w6x8q(wu&KAmuHz 0{-XNѭNsH%}BɊҝ_iv'1FEuScZ+`.@7MUA+J\E!qy^ z 9r[Fg=V*esAg92Z5%'՘_5 +*:]>#qR >+Kq8\:Ja ^Rv^WE 0A~#Nb1#wJRS)RqXhvYAM@O]p/k]+_{nhfMm. LԦmp#U}s OⲞ];9=0b2ѺwݺM^ѥTT[Ro3ٰHOc4hS$_'yQɭ@V2'R3J]WLZTZ` -?sʛ_rkڍ͚hV6rCylUHc=3hNij 7ї r,,U2miK1--*/o΄!244"Nd  ʗBA7Y]f?pЦW>u=}k~yn+I?cwi=zj( LA6(K5YʜDz2LROSvEPe1DV5YEdu54QDYQ5Ksfr$2%1]__UZ?Rک=HaBCMy4M?%Dªr"d vx4􈼈yA`w4gD^^XyF g[Drq}0fZD)sYC㿴`xUeʹVLviP۱Sk(ҠMPؕLj0JCX-T#"j;DP%pEPс}AeK!c6DjW]2MP[3ކvu2]rhݬbmAжC*M1drgޗʔ:t6is<#A~;x" tt#ֶn,4R)^(Uwpj@ߵػSB֭sj{ 8J*7;k#|;!bh}{~C[,̃mOosQ/]e\HÞ4R 弽x\ }#bh1Đ_CS0cHF̈!. gb`XӍ|[uzR%m_@WnCR%1hٽ -~x{yGxNxi!N折ybۈ_"9W]Kq-ZZMY$O>ISÒ$qIΆwC.hłX5b 1"VBX]뀥붸ڕ56uX0ƻ%^V+ȶ}Ԁ>l\ ;e}"bC"ssm'pZ!FR/=saya[+ZN͵^uz -vX˖"V c]EK8ڐz~T΢s|ݑg]}ʏ-`mumj)MdKgv -9$"Lpn4 -p]Rrg~ T'R۫ XmVv@G}Ʋs4]a<ڋ<8Z"ڇu>g}nڍ&!Wyrwv6t!Az5 ŷosMr\\|kTjkTjkTj@N)uͮY9LזNCCԿ2QKUCͬUaȻ2VOƺ~2Vi1]L1gQe=kښuKrig=7i^"\Xw;  9zI#ǰDZCW O p*%yYV|%GZwj4m۳K3jZSU6 A! `<4C[u i=?HLλb[\ʙ~Jl:]<xÓ'8DML"ge1XH?ϑAT^*2(1ᬊdzurkڛlҩ:5,;qv)Nd m#kG:#pd^d.`5󚔾LvcF2. -.%X8><^Iys1N\n)k.1*{zx*]ugyM%ǮYE F^#5糝;~cIXiTF>p4F i|;|J|KJP,rtdڷV *OEJ6[ߘ:« Һ{9t 5G -g:(]cPTך4|ɥWÓpK9l5J:\xxIcz%]8Rf@ -M_\FP`Sl3c70a9G]"44ٳ&-Y?c8qyS-DH\9zvWj{ 4UYRA%ep)8wB*ոRV3J~ojٹ,^3/DSnְrrg_p1u8uD~1^4qmHwr2$iT! -a klAQdrvԿ -#! Xߘk! xe_\28, l -,粦mcb{IZx 3UP*{e @ɬcLgٝN4y^<")exa]_O[T䏳g`(t+.0Fҵrز٭p/,F,-Z|C>!kD;CTjm50SChldE1* $ʣ!r ʸ߰zgjpٟ 8cj k2t g?*?RZüLzcs -<6[xk{-xG|I~X(ݴ~ -3}-lo,ڹ.pHzpdoԄ4f3r]q9Sa ?JF-+rrx1XՌ̸%bO,+;q uLLKG1zQ+a -;"Ueԋ:{qB8 -[I) -eUg`b$'5XH{ sԎ"{C%5P}}2.TkϜفTp*; %WݎvG,̑*%{Y<JFS$OTZp^Ȼ̜ (F=AXM׬!Be6ïl5LA|:W6pBu)v4;l(i1=xe#BwQ~X>z&Cdn8MZrlfi@̮2'@##8 q][3u iiWPBeAiɷjNUog2M=Žc͆܊L7 2]N,NNE34MvMHly&79tC')ÏťRG3N&;KX[[tquHvnRrDw+УXFD2vD%t7*-1pҌrA2J,|VEۺ̂$(&! _XUk ˍFEA̳B,0h/= #ߵ[^SL=QbktV8}a/Q# '&Ry#9}<,b`# bOXQ֦r#pG9~ mDn2]3%YD&5vR -Ͳs׵_B6z`nj%E̗pGr" -J\f&{qi[8S6R[JzFJֻR)>ѵUrs4ufGR+#.m`͘VJ^&?<<*G&4!UAbtlTJ]zݣ|A { -R?|WaiomϽc3#UUw <kCG–"U 615~Yu+WXAEX.$HwM -gaT+]e -۳>if=$k#MڝOiَ/A:U9A]3m*IIZA.W-yͪwjLzb COq?.D3ek( FݡMa -˽cXNs;= qr5tU/XhR#\(fOa{Z&]ӌ; [ -E /+Iܧr'kqN"_,A~t¶\*MsFU 5Êrc̄*y}=H=!V3FBO r Tk ?lSLfbavX*SHP*R -5ޅJ*L_U!dv88eIQؓ SȚO8^9/v+d,W=A^kxFzj  EOnd#˝_ueznJ\䘉g4!6q1˕9dE"F3Yp'2e Vb/Z+FJCN]}?aǸ*I>tX]ywQCk< -zs01TjL?®ST*i:a. h9!aR:M@/ĶGt_21 ʥ,Ņ*6rň{H&5{Џta->TD2P |Ub9.aD˳atķ}3y`* t+֎=!՝z?+~rƁH1i ->ɼUr8Lx(*^4{dÔEeW%hlVCVәōsP{w8^2vjtiz܍C.Owζmgox+BQN -D{u1yҷLtԨ[Q:1J±G>K٬D"zJ:}ZU1f+=IL2gs0$)Y+B g g<@ ̟p|ٗ%f{FFqxhv%+i4xăy}Nf+Oi{H6WjB|:Uw=ٲ͊_T.ẼRYT;Cu1`yiWҟ^c(äQϴWJDI -1H);,qKM]zkreK)99WaV#FxOs3 j<,Mqn18sj£-R_<̬h^ m/X1е6^jY旱q#5>?yQwRL&`0@YkapG2Ch\ʮ9[袭z| ,&;t2[¾d` niw55~t/IOۦZ% -.,3LvF _KB -Otۈ;Gm+H0i 8LzGm&mu\KP2L;m{6rrcvW/?*Tf^$yo Wz-e]f՞]ca9I -aԈ]ڦ -ZIo[T3)nA)ZRQfR]L:IC3l`WDk|e`F[؉(̔o0$;L6QlL{uZݒz:VfYe1!~sE.VM8&Ť,99N4[{Zs&G]*GOuǦmU՝K+͌FZ'}ISA'ۦ%eZbaſ#FH艙tO#dpOgf B膞nWx`m`|r$uF ;49@Nڎ2Yl5L-7ks;hB0֜44F5*WSsVvg6ZAa ?*TDl(|s)lwJ\.0&;~-6iҩOwacw2bljQN^lOQeXxQQ*tPǯb|r+gkavJ i7_؜ڗ{*g9di ̯|꣫ejϦ/J Yq\KTbd.YTOQQ[R"TWmBN@.&hr8g_o6|Dg.-r # nJ#pLmg%skM2i^ET4„mԔ15CyRyqbQ3zV鳃MM/jٞ\ \e1kR5ׂkM؏+l˿~Q_BNӒIo -mMvK~ׅv}^{p"7f|Z T aP/C~؎#,Lރ ɠNVضwVɻ.̳[@ J\㾻Y+h:_ _k)za32:W}x%QCo,qjN?F [/XVNkqQ#9t[R|֭Y&oV9l[wȃ~bcǼjyj;j SoqĜn`CV}3=_47?p:Ko-[lȏm᧕k>:D?*TG[^iC>8vo9)˨rmfnUTsmzsص{ph[{m ~r\rC}ԗ܌*є$m@CbkӉ3?=q*ɾ]QSViQωGߦV1g?*>*gU!z]JwQRFl2D^j9y p=Z sS i5COb_AFGh*AˑȜ֢?0_ -Oӈ:f2!yr:y8 5z;뗠?Pd'\i?_mfDG |fs )˕C~)&t6%$AC) ~ۆ4bNb?P%J9mQt[mC6PmN ,/lܖc T/ܕX'ee(:7fl_"jK҇ ʲEQ.[\h -QDg̙_K!uz6ssѵ5P-aio۷mn;֘"t!O3ߙ6}ZmcoU㾐ob҄;E^Ft2 ޒuX_ʞO'Ϲ -`)Z!Za*L8£SxW?(] ggWMԋNgz&Z4uR[ *AdJ,!j[FVUz J},Xp&C.NjV+`, ī0UN^s_DZs+{g!Y5{VU-KgcR=k)eahQdٶÃc%drW!qh?0,MJPErՋβMQmֳqDЗ&Z[-cesyyk.px]wё1 DƐrrp D[:G7]iD^c֡3AQpI<ҙYǁ~]XO}>QcNsDc5utN2'ъGi%U,F.P[;:cer,$gN[$ZWD+pvz&x&zHK  酇DAq)(<_ci٦q]w踉ۂiaTpnZ"Ҭqq QAPdA?ǛD{$z h#E nRtA5?PD!Y=[*tXȅ% -R;A4`;XIc#(BN52N~&OgW Rvz5E}*uKcr^oYި`ȭ_?3iTɷ絓+Ŕi֔o1Yўjw3qayep.+H'$ϯIE[;oʣۚvuSN&ű8]q'\T>mcunx?D9۟K}å[Ƕ븿kХ6mC'q%kHu5ocx6mHM !f֖4|ۘ*㭶Z:ȷ+aBzXnESe'Bʟ!o9ޟ'3_Œ ,̟*|-Gࣁow덐$Q9||'Y+Hy>Y-7Csvl -DTͽwz27V$C&nOR [::ZJ,dT2\ 8FPpD] -Ft_X. Ξ3 ٥f`ia)yX|9-{JgZXѳv%($Bg||h3 $A_IukOt9q -tH󞕅21*Bw: *n/X"VUv"vʫExZF+juslp"~~2\/1-2Zn.'r`sK@]nD<5I2>x-׹Ӓ*wݒ~,?u#p+IP/ϧ6!W2+O0txdS:BZ#j 69's{̽XOqhO)c/qjMa8I Nti \ -b@!S`DisS~R0Ƣ^L9 \8NÇ&ki>Ɉoq^^4fݷ8 ܵ67x9%j<$B4%썐K!٦@<1Dr.j%S&p+SߙHd4rJ;B -G9A^:3 M.|g|y}0=IP{GjMd1fI/au|,{vQuYb, 8*71wQVrGϛ=f봣GEE Ac|V.o+aY[ac/l>n{ l q5#O"!ZoȘ8Χ;hnM>ZWyܻ".0]i_0DS |8n`cf1>%rjD~S)k5K!JCݬW4xfc%Dd 6DD}fKA;K4hs[<# ª{ A!T Y!b|K`|o`o\yC"5 f&)t$-? ,4l `ac#Y)gu|SZbx;=W+w땧YKӐvqb -Wґ"JZ# WJLDW>ݔ~qm\kRwo3 YD`.@4Y7xD1Ļ"ܞۋy0E:ֱDٕ"&s9M\AX)bs˶n 1ܓ~C8xMA39Ћl`-"$7N\E}g~[niYs D+ ޏ!qs1.qs:)F1CoctL(E FQт`t4 0C'@ Fh/`脿Gb?б6. Aw,> #p}9,0+*\6犽_3zxO1~3N&<4H=U 1&n|a o -(2& B3M!1=Ď،gGq2kw%;P1űo9=`W,]gk&q&;J](0ā=UDr__d4?4#JsSA.&=́E0M='<=-zv:lk#Ly+^<9&*~_sz$8]eY^[ -M4Od& >;)ػ[|OER3G&]~8[340>?_n* NKx8ֲIE< _y"aWzJWE/"XNkSДXRu4Hx#C :e~!%f~~ *KAqB]bݡg H7<2i#aЄ"<2d PЀJ ;Zs 1<2|gYPz?܁"p7ѲnQ~Ǽw@}h+ᘶ_X">Gk9)zN$n)&'lזOՀ 9o{6"#mvbe2?h\c;Sjd<+VƳd"Ӭ #WmVKnA6!_9wnymA;_BF N_ s_5J৷ѽҌۇg;=5Tʘ.~ :DHE"RGұWwo R!^sD*lT؎k&1W^A/M}9H#g oC[} - f| -9/_½﷤sLv -G@8 -P8nH%REd!Ӓ7WU̍t},bMMDyE8ac7۽ð.~5@ADpn{Pynf꺼0wxx_X5G^_X&6 *^cq<؏WXpQ-lx;CI{5 'HؐE*qn]&=Nt, ZI$FÏ;sE%:UaQu=nVTVuytfhf% @Hk1ZD1zZS-4n]4x}c4Ō M^F bVMe4W4x[@=| M|m[hgH鸰t>7uV_쥫xT2ks>lv{Z6׫cu<߮Wǯ]E|O.2!!&b!r -~ -'g_d;jrB|c⭰HXv1QZL`meVv߻6B#̨g/+\|ZU(ZB$;Zˡ_Ao>~]`7~!xQ -UE`ᵏ -D;V&ZmB_U2Uk9a]A -w7|%_7!GrŻu_p'|`Y+UOt6pG%SN+qz;CYjDCԦ{XD>>A|a=Wx;oM9sFqv 5xW\ &jT - ݪ'!¯u&$Ĥ(c}^xaLn(~ߕn])Ĥve%_(pҾ6I 3C-70=b~y"KqVc]M£o_¸xz]_*RM+e0Dc\AD0NDMA[WM!݈fo?DGśԬKv)c Dix8 z[E^xpj~:t23jvQV@x]^`,;VcB֮U_6`pfCJQG@9UΆ f֜FLo]ZD &v~ELҠLe::?Xevr"AW@}Y"FQơѢֽ$sT:C?<#~A'2m0զƣA*f'E͠mCIbVv dNE@ߪ̂;tTfI -VN2 Py%MuǸyTړ MKqzu|w5ݽ\eK,-~$Pįu HK<-?Xuz:Ʈ)N-"Ch$A(O?ML"ʸn!,oф(O/+/ja'`qI#!Qz&5ygJwoh=cz|^둕@v^Gxj?)}Mk@2V=ʲ #^X^%e?i]jʮ} -rR>+idi9PGb`52BcϪ(Zg{?HzC=Dz.Oc,0vHrMX {Hb0"Pb1l+(@@ bq(@R0yb!G>),7WQb1w- OX@j{T_퓢|cyG=|fDXA( -^](}oU|T씝S$A}~7TwC'nQn]?~o QO+m^׏{ F]+u3C=Cr}ɡ+XO'<4~Q2Tߩ G\gyp+~v>3P5)UclC#ή){]ׯw_N R?oqE=Wof ~^;-_ǧnEt='D߽*UO4vj]?aMx~|gxI|%BEmgu,ѹʹ߭Z=/l{U1=Z)>&"~46*%TW~j{pUom"}YO u\-.CZTPەLw٫uӻu>q p﷤su]A]v TbHXĒ'udVccoWMV"a>GIvG]˳? (ίbsq~qOWVP@s+eh@qoG#W mgMf(7T4\<]u1Zm;bSovCI;2ԏf*vPV?"'|TPhcf~.nf:ᖓpQl^ydRcӡQ@> 02%8:'ø!3眠٤Qk\LLrMGwLY &§#> z{=^Z"uScj 2kS"+}|Y}JGi'qp ~d!hkJڳfO3.i&tܬ`UIO|ibvJFv2MdvDU+5*k x[f=oTjhTRa˩PK -H,OoT~ڬҬ ;{5Y!GoֳP+lZ} -rw;:]ߘSg&}pu7 rstR653o >_;}\U1ԣɼ&lDvC8EP(bԡpIq &qG4xF/XF`&̸&4! Aaj&3`m8pkh3p2&|9'$cթEJA@8nԸqn$RW ~.nJ&؀"sKI5Ahc:V54ǗĦ)NU]H#ձy%s(xī:hekT5]3Hm3:[z%kҋ<Y ;: ma\MmtԐ[K`Gm:őaĨ[7% ,|mľu&Jg7պ7<j/P=楉 1B;[ñϚ`֭cWEfZrn%{j3ƂEK">j u{֔jR ʝ ݇ҭ\;; `HP^&X%d(P`CDꔰY`Q_au΄dO/XDfDe¤[Jr ExXJͷE'\}aP à!060f1])0 u6Y*{ jb87`%0n+9^nMhUNAH: 1T)WTok*u]cPп8vkʉ7o5A< JKjeJٮRōco5}&ޔP?fw?@s'h2`c㱹D !|KtDȈ2-M}z7'D<%/'{ѥ'4s=i.!#-5p˔wqݑ  J1>g+]FtN]NI+1ܿ< ׌LXT7_|0yW9[ ? - ]^ƽ7ۀ&,O?3xkHxA|RKӭgRG3 qrSƇoј3iAS|t3f"AXz꫅Fz@&p*'7nE\'Aٛ &Q0-%xgH̰m5GD1_H˰ ׫bV{Hl~YC źi-‚ 8m{{DPi#VMOTs*] 3@ezF[rK&HgH{ -XC? -=q*k^ZHT`r7WRB:[Fc$y?%}|#1PgT@R9#= !@4 cD]: 8J樮%R9<֋HY TGBnGpGEGC/q8C -bx$Pdi6%\?P%J9md?g4ن2֑€"Ը6وѹ+NʾQtnl)PZ#-Tg)`i -J1!U|kd)|is#@`\j'Ac4^C2Dz%h&J#RTQ{VDgPa< -": _ӈ$ Yk&Qv~F')׍X5ABagjC\|D3)g73IYE`zO4B9(>6YfWKl -^M?lG?G2Q!(|ryY'b0łPͣf"4*v,(&`+)y0FT1sOc3.]D"b[݊N;K.g"TΪԇܔvVYn͑P׸@6e?nMlJ >uL5x3gS+9벎P`:g3;ۧ(YM%Z(/eB.sGzk{=롅]z~7 -|nUfB%+7K=Q=Ns8[ØNhaܷg'p<PZFnaռ艘 -skc4 c.D+!z`U<D*[wC#0t|SrÛd4BF""`m“"&PKsY@?N_®f4F]U"7-ַ݃%/0uęa /";I7b%Vr,X]ayT 6P0ś %arۃǶ +-+pu~[x[dXvGhd = b#b>3O/ =Tb]~ WDBM;T&m* @oH ";N"Bn2ݝ $Q2,ڻu. 0&qwTuFMDy~zG 49y4y"_ ^[& 7sXBo4>m284T b6Q Oğ>ӸH5"6)|m#k2s7 -1!DOX<ا=)Psg)~ '~^*`1>6u>61S|l&2ϯ:H6QX-,*n 88uQP5`jďݥYgdqMn-6":ZCouȻ@9[ 4Q}P'yct蒗*a-*VCQI~Q|(;Q 3% ufZzel3+O,cɩ^K/ϥLza+ ƺ75\h?n1a G[Lp2rbz^S/O@O@Z#Ksr=ft#>ue.6"sGχN~[t],8kV ,J{xRG< Ck=G؎|wWL~Q\拿5a +q<غf~J|7V6\G-kY -I|E.i9~._ixKQ[mXy[-^^$vܢ 5<{sKoÿB>-[!'P*amfnjPE5G@$m* M--\3Ė….&inLT M>7uѱ# u1@o|& A@mTMq`ʊ7ŚP jR$qKTUYcG (0&, F2AAB4-0 JCd@8at0sd:9n+15op,sl$ TMW٠X -IfW6I aF#h4nY0{l6$ X$caPPS5|dxcPt7Ð9c::C`|ܳfbC=7Q -1-CG Gspl28U ܍l` -`n`,*;\4`|{A1Xan>Pk qFQѕQǠ* xoPc2,_@MMb!",L Ϡ ^03ԬR y)U a+F)'`\@U-Zn=yqi -w6U[+y$Z6fǫ\%;;׏+FzN箎#-4ooJ쿴η(/ s՞-J-LtKVӆ,ne4g&/Z Pov7&X2iOcö[FpX y~[iN_/?%6 ͵Am*N=}.?(vӬ1)Yi|}7FmJKQ;SN?BZKTcW~#/bnlUSNVXǃԟy-W+J9c4oӣb+I'瞟2sr{KvoN7'9wNY=[f9J[,'>O,' I~P<5VeXN[!IIT?>a9WXNCL:c%_I変fILH='y8S?رݱ(ھ9C9iػ{HroN&b ^ޛ|Kt??7g ؏_)/8.gXɗn`eV*TN.2N\f>[^ -'|f%ch%ٙɇ2[Hk7ߖ&Z|oNgB,'S^^ު9-45Es礥uߜMW,]~Mէ׹+?^u˗.鑛X2KWKWˇ[ʷZ\c'yJ,|oKW7]KM/YMSc@nbKߚ~T[ޙ14zґ޽*|-//땵ֆu7FeO/R/R~vդo[dnz:U8e%f+ERX}@2rJO[l5f5$o[Q-Rȟ|{_t{9nisPT+OUwp:_ -Ͼ͟~Z -˹统_+S;ɳͮ3Wvv+WٛqXӅ/ if_b|M͹>&mpdiPʹitn:mj%i Q[ƀ]1yD'6u]tzr*淍fhb|m@yB~n."!樚-FC4SkE? U+5rk_tD@vv9ўv7r=&0KDq`2:#7 C -i -hrE -%tK R&a -h:tɈO(*Rp|< 1@h`)NhQDDF'aF:b!҉J3DU0CZFED#CΆ-G fP/0Ȑ=cw2;~p(abrK#/q<ض'"K6XHFYQn> -u%uA#pWbDO  50; -Fi|B"%P0'1/{Px<"O$` Qv`G"ZI]!'䠈"WWxؖs΁BG }4VW:RJd$QĎ"kI[T.d9Dm,l_F1G|9텔AF 1V{_/Rԅ mճ#^qCLC6Y%2v\HE ) T PYe Ddch-&0%!K%ƛaEɰB,nNB[t(F$t~职A/v;ƙS1d(0MR"냩P`jW;F^Lz(ܴ~s(Y^}[k"t F*`"f'sa[ήϳrхaTYZ r+n),ʑOq7yNz#*#g3<7Fvzn;ؒk9HƝXtGǽ&<5<GM&N`Bc; 9++ nOO#FWZ҉D5,8%Dzēiűl^;ZOKkr JZޑZ}Jz,u- endstream endobj 289 0 obj <>stream -%AI12_CompressedDataxkɑ% ?~h@4Sxi LhT0(V,Xs7EJ+mȸp7_ͳ o~'M7{]}ǿ_x^|W/Ͻz7}wzŻ^O߽ы{q+crl?_~w/޽{pa~WF_|]| %߿yz?{ÛzW&PLG{ӏ&ƋWLrRwЙn/eR?Kb61j]f]v~0;WpɈo:xgg->=nϵ౜?h?ׇu=\uzޯoo7x3ݤfYops}sss{n۩Mrn|]#}調A^#=NN5ˏ6o˶n۶oWan>ie_m_7ƫ*]Wz]WWW? 0a>,>X>ttgNVkr4=>xpj6ۧ0]O7mHc2;iIkҞ!]ܦ綌ϐC=e1͛}uu>u1*9iӑBu5cG1 &4Gd3 -*SO8@W=ccy|L_9dޚTiGm.&c#[SOCgβ2376WdRf475f4OIaߚ~umefzb ņԛh5ͤb,M&@nM$^r7MN&S7)skVfx1Ld&{K&&M۸LK47gsGC7}ꏶUWM^R]ddO~k(mÝro%'F0j8[Kg#F:ۥihKt םֹ_[~/fՏڟk{s^xe.ѕss(}Xd~o}JԒc;93r0?Ց19n(p't7T_Oqcu;֓g9@9vΑ)1 Qaq B bSU2,n鼸\7QPATr5Tz\._`. \mr554H5klmv.( \]SϸLAֹsGGρÞ%J+n}?cG)] P]:Pس\\iYB6&# 2RI. -:BEm& ]2v|p/Ł9$:#npF<}Kʄ#5ș:#tŞ!LU*^OZU-O?e}Ց6?Ց>ՑZ>Ց!Hz gD${KF:nt\8蠆 $]p>(Jk:-pnr^-pe?m>YjO/d'ҏ%{$Wz%سwJ?&{+w#7P`q,kk_,^{N+rcku\xZ%}O3yن9sZJ3'qRv;T^r7 :m&x]?J+OɿnM\a|&Sܗa_~Li8k<鮏hY&(/^p_c)mA@xc#_0Wt)ԕ]]^9.91+ B=~!F.32"6QFTlz16S>0BvcPʟ3Vgj1L:>[B[FJNbH͏QTtVNF:5펯4uȓUΓ0 i*ğ`a|doG<=)g/ܽ.)9Rsr`>֓c;{Nq+y`pc3dh<}}'G ~*}jid;<EO")5C=&/1h )"C(?17'/o2r{yߣ}q%W gIx!Y=3BN[l;9ǁ\6[ 9B&bh9kɁzr!;:=Ȓf6.-kc!6”UcF!=Yp:I6{N 泎?5|'s$[n3?ӊô0AmD.y2M\E"߁QX[LEKuKco9{ Y8 8Ge?I)yMg/gmũG#Hv@*T2یMFl Tv0 -{NB(TuE=fPRǽaTd -z|;@.TLv8qJEOSբMPfq f<S:L3t7mWԞPg&lpSSNǞVX;jW5y0o$?j`Xj`n-DƴRAؙLAҹs".\b:}0gp(Ca[RyךeLؘuZ*zWsu'VZIܭҳrCud8۟w 9p̉)B?|d]r˟YreW 0M+9k{L'}2Qq )<ٞrtOMhLc.6Uk嗋aH|ۓqEyO긝Uaaaaaa?o쁟888'_q=9}cq5(~*!B@ԕ*"u- 춓/ym(W0U\oU]bWWMRƛ&uʾ8W|Vle %^ŗ{k0׹F?Άy߄*Ν9($;J7iև2n:$-x6[e+m2(2{7!WLb̹YRsg8L:(Q]FuuM7ugL=0nqCB@(cQ .Qlw|zp4_Ӣ#q|R02`@qE$Liey6O'er-u::Dy@p(KwF'qGE! -JgU1i^\/ -dlc^]W{-B:*S _sU|Xm!_wTTקeY~`җR^ژR]ܗ~Y2؇"h#(V>.& Z5Vx&yAeM!Xz -=#,~ {AT P 25JU0*@*ʸ@ -TH]qWϏ V -w s}"5+5K|j%ر;r=/%]7\nA#4QjN{:'/g ?4Ӓh.o -Kx( B1AG#|-~RA/^p[IZ@d!1]tʒF/ ` B13I 284x[i8OB6HSq]d\ -o9NB A@e Gw/C.p;{ s='{r As^8I4/8))iÓ;ݑgIDTA{zxS;yj7O9kbDkτs'_Wa!gA/ *++'o t&ɴ{޲=k,'}CiB:_r-W;>s("<<v^1Ks/+m g.lsu~-*sZeI/(iϙLvBfEM | ktT+{^#4^?+>j΂ -u?.|*ڙZ~Dbݹ'ut( UڑV;$aUd*?XO\cԩ'G=@JԃOi#syJ5IFM52Z)??O!Rv)oN0u RR;̢ʏ4FqEw^"P_)A(۔5"^hҊjg q]gzQnSTD ؝dt,-\=m$'O~=Ap8~s7y>E/܉&c\ԄcHs`/ABC(/~z=raކeeOaO)w9lӿ~.\C8OƸ>|.\sO_3/k'5%0<:* Q TZX2/v~6#{5bzIy%vC\|0EgkX&yǮ?ZƏ7?ba[5+ 6p -vtǜ^;b)a)uҀjS(;1t9ԝs?]G:HꎴCQ#>-G -PW4{it's+S?#q+x`K?aFZrxˁ_T! R}F y=>-"B[LNÁ|~~yX7a9S3U4QzqjnsRs|;QD,TX3:d\f|h:k,xΤ7ޮu3l;1{,GWc}:=],wmG,#74evO Y_ԕE Pl:} ID]OB= -zˉvnn~+ǽV\uQP*uWJUT*r5\1Jw ɇ:qu8]粸-ĥ\ J먂X7x=nwEsX^7yuz~{0#xB]B2bt'p1A#c0# #fm U~s'UKvy^yϞU]˷e_~wo쟿}wF!-VfyrbZKSfOe_v?/~~?g+xI<;{ƀ~ٓo?z޾yO?%G?Y/oz/mξw__p̙_0lԆm4݄i¬hY2k1O=޹\kVיv|=4aSi0&KqQ/ m/g3'_ HpfƋ !t,6i ޹،bʆ=ڨN76)6lJSj0gglqeZd 4 rƁ+``|:& Ӓ'Q l\)9 6*3N9Q1|L?f0iyڰAc-ь`~M=jzXvm3-|A! Lhb*66[| |]oLfo i?϶tt[E<#,R i2v|ٴ g U;38B¨n2/Mb^n(&L nwI c023JLI6蝻Ĺxc0)ZVqDl1Ѯm^61me\0.2E7a6 2v6Ī+y50ifI؈mq~L^"oKyS3jpj0f6OR8se?Oip&v>Ͷ %j_6ci^1=Ը-^?Y XLx&2O _jTW &G̛ `Iya6a y Nm[\Wm 8.8ʛ`vm]nfe127"#JTN, v7r4RsSɬEbo(O3;b'Pd˄͙ M-9 yK($.20C‡M:k6ҴCǔ"ݵt$~]3W6U !`2u{oGۺpVwFDmDtT<4ڤXv"8a6u˶ ӽ"[j̦oX -a/`3؄>w#$e&)Ûk }G6\9̀Ҝ|(NX}*S?P({td5A711Ok6yڰ{ÁȚ#=w1暠}GJa_`}6X#/umM+wK 4 0|`pdq>Ç^~7ݝ z1.:H7n'C_mdna,u93g]&<3esPnûz#XD|7X!$cjHLS-ɂU7ckD4Dw#A'j2I[a#86QjR66 <&܃x6*v7n;d60vS[( tW -8x:K×f#uJI ΀$Nkqh-8 i 1 g:pe?l"'' WbK`r[2zIw l){46P;[m+X]24783_o<-d F7XNгy/G#oxK/JTMa?)Iu#}ɞlF=i 7˦e3ipG`n NLv'.TN);mNp*/g#/LAK]ixئۨs3s -BB s~}04&`Lfu"3$0ՆL%]l.#2a6/jSܨtІeZ`OÌ'w={a"4/ɛy`\ -v4`aiŵ`_.s`n8/7mOv;x)n`pjnxOɦ s,( ᖥ'0`pƅ.Ӆd &*3!H1~(ch]E!|;@rYBҞ4GUSyaJיYRؗ:0r~h'XR<ʙO@1;Tc@ hUg7jD T+Vhf\i!೽WA*3l {u6"a;"vA/9SWMմagx垒Gڤb -w0Hrz3ȌL7kO녴l;g+U8Jp%z`L?ka#)d#Sf,tDndlcڵ>,!b#ܖn!4#@Xr0I*K -C]0{yc&GNr\pcm lE>k_XMz w`aӂE!- !$[< ӡ$U,g5p;ƉɐGfZ]IZyec,wDrqNU&"G!V9D͉i&a%V-Ǽfō̢8:Z4 $8ܯ V13mX\bg&-ru9%;kww9%g߹$Vx%o<rK\$=.gj!_Ά2 - i4z"?9wReYQ0FJb6N.?RJV<JMjCG*%]SJ#ULiRnokt`++p'}j[q@xb+2"|X -r0KcF!հytYle<)+K1^a -7"2TO@,! MźT!qٮ%lm fт9QPI VSQ Tuފnv^%ܷ/Q\ng)1b4ƥ WIJe%y⾺kc /{?V{uGR -WJyR[-YoRgQکT6OOij/3|]evvzJ cvE.f'3g/Ȟ=78q٦ygyg8NL`9H6_g|yb\NcGE"'ya[lrëhPx哫wWљ,:&ړvh68-϶O[wLu1o|+:mfjͶ5 ;u^dNp,Z\.HuY&򨠥ʚt[oSުşc:"h\<'"eCk z%IǢ5vSoU81[q:a>I Q&a>M2ܽ=B@_z<5J 3p#X"fP#A/+٨o@=ZA#q/Dq|51!ŽdoFEp3!>(]7Y3д8 Zﻶ( :cxzT -o߸-٢ȠS]CQU_3]1qԞ/G1H+ndN?okggk9C5aP jÑY1AfȠvw`ęuw_ G5{viX` ]jlpki](OR>Ŵ'`ߙbZD7_6_>`0X}v7ߗ,(ѱ rl/>YdDo -EP&1\)<&6F2m6Y ;bmeMT6=IĬF+SNo1JPFQSMaA\򘫂JmBw3QX ]LaoK>~Z0"$ZamQ4Br laɕ 3DŽ;]+aWlU0!p7ф^2V1!FMd1GM0iw1(^ ?Q 1Қ/v -|&j77y=ل3?{=o#++aƺ.ܷ<FlXP0 m?|'&?A%ć&mA"N4adR $H,8h@"5"Hf9u_SA"p0u'$fb~ D@5Lۧ'ƩD\t'V (Ym"@*$m@\!4_ R|j;urL(Rx]ȎGy1a3?5Oa -!;/!{-xHxK6vJvf6ŽxΰxpqʎǝMxO#aǃfM]F;q&Xʎ?]l?Ԏw#xhuȌ5&ㇻgVL-+Yu@;CÈ?A2 -G$+$i*VFEE-Pl~˨Xw3`L_ltU@Fy[~qE]ӃrGlϢ6|&T]A eF2\DiMX &FLh]E1 -FhDfڴ)Ăzj-3< 3ʹ j(U ᖎ1=Avz8& (Ss9M,4,DY)#;u -(£̀oj`61K,J` EOfZg]AZUHm,dϖxI׺T$7a!zG5"5w][ OML.ķrji;XSeٴMM(S8_ )hS,W2q\ -qJI ecZhrB^44 GJkA -p@Bw ;.%AuRbKЄ.D&NC:#&#<(cY`3ƥQ"Y] -*(&" L0ʺz(ƣ){|{ ಺ۙ2Hbq*(g%tXr9=N?wIĄ AbE)#t'3=j[I8g{~ A ƾaa%󪍙uI 5|$2>%$ͨoR 5g#Ac#|"ܥYX”ƻT` 8ٯGD §h P`\1's -:Q蕭%{Frg,!rn<K0H~_@cFT⣣@S +y;)}  dPk-D*ȄS62uU42LM1.%'JQJ0MJTpM"1Bߺ&omB d`"` s_ # -jiMQL -ڥ>*"׾H88)D "PH;S,l6)OJZ5))KF5/BA.3FP ->gPIIU (9ըI+VLzspR E]FW/~Ee(pX/PRv"xf5գhe)v*IUYX6v2 NQ+qc -27Vb2FK:׮ZH)#29ʝl9=q=}6獗Wv;Buݺ0WoSC`<of -,n!"h0C<'\$z]A7LB8vd2&ćIS;*+.L<`-x^][;hGJD6] xE#Q5wuY.1/2ʺ\ MiQ~e*Qyr2WMq= W=GgJr6*&&jg -P]@[|]zyl~J{Łeh:4$y^+$k#9@,^a袨)"^BU!I :ˎ=(׬$Ng9/kP\x -5"*C9XohKMVE] ' CJP T84s9tatΊ"WECC?.t0ITc^Eawya]^eQL^>e28=+ˤeeQ_(J浐ue; ID~!_$€V"i]Ths4o&Ҩ>Ӹc76_MID4*F3iVPI+-%j ;up# -*K$|F  u]V4{鼂&GWKVKʈkV8C)kexU+kE^3jmqQ6!"^,. G< Y#GY4WSPBmGS -S|a#/ -KXT){El<(JK 2(U-ruk(-50f.-%el,d][\DQӾ3S&"EgIk6D1ffe*oսub^iDPuDSCAIT -AdC/x -GUȂDʱYvI"^1Ds@:̄ 2mDf",Ȃh A (~H"-vA½ BC1F+ \7o[!&Vd5a{}~ - y~f5M~ųpc£Çr8hrO9G:~B&?z -MSv/~t8\|7z.K|6+0|"Ej45̼Am9/۪|GSsc3~_]'(߄Ə擱r~kOr?|i[y󬾶9-lm&Fḿ?.HwAme%jk1DWsDt5_f4RSs%ި,X%SS_X$>/H8A Нz.Qih;S]5m.7=P0A=[{92>Ӱ M@ , eS$< -{BPaS |0{֍R{Ɂ=!؅L$0E)m*H()4'9X%P/t T~gFAjB 313 G74/qcf쏠NAc(>!P< ?A2 -AB>w)/3{e4!\SzEHju6jdz&ڦIk 5ګ@1,ƛN-Zut~ eB%v0`kyAf5Y4T#ŠF{olF&Ttp=i;X<5Ag7:m0JBGӦ-)HҙlM݉4~u1: M͇"ńoR=RL ^M2[}DՒNT!hIՐZWJ_`[DJKyْCWl+wƸb ܢ R՜t! U:SG۩󙸢s&j5U51bcV۶:I@SOmn('ysKMsc/5SF)DI^#~Ո/zI3/gC1P@)#7(]$Z9Qi5:ʏ: JARFRGr]t]R&RQZB6ڢGJ+KzP6zUJvuщS:hJVFczul5&aChcj,%բm.2 Uf6RlCkckXy*CP=a\f&}jeƪL]uIq5K4%qtAVeWC1 c<6TYe&a!T!ȩDCa 6M(:OāLp%2r5:(Qv-F:! -gMmgfh{5}cj{"O΂|l2mx9B{$`J%f0C9AW ϓ)XޒZp gBK@ft"cBA ~Hkܸ,'(9\5xA7vRW͚LHi쳾[[A GXJ vaZ aI20Ғr6 4~. V\B-$<)Ԑl8qIqOѝF(.2Vˌͥ/rB8g' _~D?i=#c;ͣCeN<-K0B$0Zb$qDQaK!L#{9*ʙuxO0IE]''U,g5p񇃨J:42d/gFnf +K.4\mGd]r"/Dr5*7HZB}v(6CnGm"y&cɁYmF9e -ն˴rM*N"7mqgWKɅ,n^f1L9+*br7\nr1K&.q];%c,j"KfE, "SdABR RE)`L-P""}AFPF:gԪLu6k< -%I)RȩQ*EJX s -¤)X&OAFCTMd Ѕ8^*'U!A) -6zBҗN]•ttE>+Bڨ,P5,6" -ЮsFb= -&4Rй1uXcr7F20zc(=LNETY%+ ܒ=P+YteXnc5 u16ѯvr_+,Gg?,ߢi,Zȍ\.pW{e3pOwOYn2:*V+JK wjiE*ȚA2&mS~q㊶ƺ*7>P^o4#7KT.B)1Uc[o3B1(]W<~`=2T x -ߴgm7Mt$K7,'D~PbyvDBn9Ů# No_7 nu] <#_vPaͣkխYu5Yu>Ar,9Gej*oh ,*c|Jiεq_Ugv^Ҭ~uY>֓ y-rRuHYt/FqZzkr>H:X{l~Y6X쥅(܆8Z:׋)dMZڊnPqqS*<`9.:Y!h4gs hC $Pͨ lm` }%bѢ\ؖG>1#n+Z斑Gg ՁWMz5W̩zjX:p,Z"4pX"BHwܝ\gA+܆G"ԩ)oev »̩H`R+ujc0eXIu%Xq:֩tIޣA9ȽvL'' fPG qd_=+GJm=>-)&lPo9p!5bG LNqwc!@=V"?9GbgK{M(Gqg)" &8CZB{(dj'u+eF6xB'DpB iؒQM{sW!>Q)C?%z HUH[_'H''eGOe E茿-ԇ5wX Wꕜ`Bbgiw3aX/NVAn61FU?;@'C[o1 ov̾ u(v{3Bsx vj_35ܾb k MђC[ŷ.ɚ17>gʭ~^qJ !0~g/xS4?TZhp~cniKpgXK9ԛ%Z`;'-ˌ0Tҳ/Tw' }UX8X„Y< -J'"qv&^v#@ +7B"vh 2s\g4CwdsrB\a ggΩ%3*?!ryx'}$fs kV 9 ti}2!Nq L?̚QZşII 6&;O5;t]u]5fv?ow\uIVs\少:{nR.vu`28vpu -`;0ȿf;جb;gg--#lҐ= lna;h뇥b;rہ%Lf;{fl-ۡGbÈ!jz:ׁmmn뜮f=E mG 9wG.T߶Uw?M@z?j45yOytt|At8Gg!g>l%z!0mwD_@=<ֹk$C1Q(ji/#DP2.g-. _,.koWf7lI#7E{ipζ/<)OPp{iLB0/[uڣsHPB  ȳ# {!lRD^< 10 FCeN u pa`噜3 ]:OGb`g#ц̝f@Yqӎي tH5X$?9?37|m-61 -y,aUD~xv<+D^gLO.;c^Q@H `J N*{%2ÈBȼ Qwu^<+m^ ȁ|-0,o1M.{!;p" Fn~Cаc^o{@?jK|BXe;v:rL<40"iw^7呁*:0[@%r9#K``h%i\m/"w&.O A>#N55-ב2fP=Krs%dasi!y|3 817yR*^W˄FB.xӏH&) 7$,L7 Xa"k*u%^3ԈWH(@!^Q?yipaq#^1 -/{NCԌyr -O -;t\5f(:/1 NP4ddB `PwS+7 -á SnP f(~2Cf(C"k~ee$XO^f(J mDR3P /)* -(ѭlLl^doMul|rPgl"D3dCF"#ڱB[wٕآ!،>(]@Jsh ֲ)aT| ;d4]!YX3X -=s*;+Ae'=͙! ɘe}idV+YWЄJvKe^{{&8j{6[3A­pˍ 4|I܏5)=:P4S&m'l_8du:,62Lޘ3Ry)rf(W'Q&UFdF⃞ia2h;*!mp"+ $L-r(&T/ՀPXϏtvCָuDd(0SQF=nrYu.'\˝몹4gΠuҗyݣQ$ -ca#"8@ث_PQGw=H -Bj8אLNA&s٩ԫVՅwtRvsw-6z{@M3ÖQC -kZMK Sέ޶VNn)zo#/M2vq#}N#M1^H!V"űRx&2yۄl(es][9sG$|eoQW.ފ9C΋v{-7n,e%0hR~vaK2 -HYk|wY==%! HxkȊt/hvhyKpq~bQ`xO$1&а ŭ.g-V7w *g&\XTc˶F/V34V0#_m^ ӓO -T'l.;{s"_#.w(Oҙ:qj䈣p5_<4DB9'fks3fRStQuBc4(˔ig h T!rBЏaˍu: ɔylw~\Դ3P?:;xd nu6.G`Ig#gH G']OJi\GWDϚsfy 9_6cC670lwTVaΒ 6:мc.8+dSf7cr.te] -} $:N>XY2`Yl[)ڇjb h IvƺY+k"NP>]0Aދ d|L6^sJ׃0H3BP@ZlO*0)(MNi3E1 vGL7r @KN -d"rJLjZ^K̖|C -a,9\9QKm^"eO %I-( M,!)y["uTׅ>[b3V{a`ۖR΄VSqՐ< -D,Gִ *R< PJ'c B6b0Cʵ⌧HꋒUp+S H/tb|5ChrVن;I"uY/̦\xoE G, -lhi؂1BšH* ET1c#ʒ%â@wedT2 [FSb3d{ /z*l4~la:zs(d|"-Xeg_60VOP0aL_/=ub`lS `c?CAl>~.h˷^gR-q\*p (Gp(ʤf.q@m;3! -gLrZER'I *\=ejOIl -'T;*Sɭ 1I#X$S.+_:Ơdt6x uFF bP]T!P -vzw;"A[a^,H7(BgӜr}b hUDd]hhcnNW}(lB)՜ae<12=z7k|g~(dڮwE:@ȎsY*PhZ#F 8/*^z ky50ɣCGq95%%P gi*[V;Jh8h IHj#R xKҙp]gn<307`Q}f-tL9A1e smO-[~] r|WtJ:_j&WT,::yژ -/I1B#.Q$+c/idmveڽ 01f^04b*Z#1f-Ťc ŠSycA^4W [gvXڿx@3H+kTj*S5TAE{FP^]F8A%{FPɞTה$dO% Q5 ^r@5{M=j( -T$fO SAj핂(+ Q$Dў -T5 *SABE=B^WK##lv-q )HѻGe$0vs9 <5<3gؙ4g ;z/v3誱g-g xx`\=G-[΄@a?BA - <dmn! fAAg3`"G3荥 -|ykdxqJݧiQNr=C>m$gaL/@ {>r *3x =x4,{ۧ;3~W_jT:#Hh8:đC )u4H@bGvTp:jv$`G;PGÎ!~T:2?*H5?*H -RGQ u)P5?*X -VGQu?:GO"_Ȏ -+c;2`I#eRN~5R(}w^ux»cMgP1#6hB .h@\ E3:f| A0n p3 ATp f +/vNk ?,0 @ f b4(^@N  :)1x.If ώQ@d oXC-QN& qdXL~ 0l%v_yV5y0BA= @TX 7'BBX Č*zTU7F4zpպn3^-#I{bXFF;TSʼoG5&ewf?j43̫I(FIY"D'U! }r dS$;=+ nEibR>xS|f\ь%}NP>)y,k:}قxbuB4oid"D^|[!׌MRMll%MmD'2|%p -P6Sa0`eΪ8 ׮*θM(원p޻\$yW0'$2k3MKG0A iQmi! ޽FDfDUl6xB$jZUYy*]&9A ]U~v M=56qO_{q"&qGHd\NoP~eqjxMeTۤyjgT|»9.˟6R'G\ge%㍉*9]EW6KKv,8!嶝g~dOI/|͊g?lw;R+yBe{ZKuY1װ1?[E&*Gj'j5[lw,[X}6kK({-8/o>֣% ][ûa 1,i~;$Rv35 k_JY,!5ڛvWWɤ]Wc,*e6T -gCQVh?y޻3@Л''uY0^uݷ5@Jz[-idl/=z%r?emƨSc}K{'~!lg+J&ɊY;+0x%J{7,1zǭ ijO@2?S%j^ 7&|^4tkXw6fWߘ1B^qw 8gaOZWxfa10>s]}@(s&`?2rZLn 'ch#8Y -\3^GHVZ$TT^J=]OL_﫻KAv4cQ ܤ:'/Nql{Tw3!M9"163"Uۻ3c_ézn:V/RUKҝXoF˟|z(R3Vp\E+zeX:>VӗcX|梠\Ir%/:$Z$t:\!ԤV\ֽpםu;/vuzim*7G(uӝ.!oKټbzImx+O'J;0^>2nxFqÛ }{PMc@ -f.:ŞY&(%*mur b 4ut:n쨨Ϥv\Tֈze7 e]< NGYJR|D+*/E J4L,Ɔ-2!zy%n#k,̠J(غpW`onV7ѸþxQ-c[7I,gq6Z?*nUGĻ?z;Y=UY/ {.{Z%_^ɀCf7JP۱C0Pq@OBrXh\Oxf=C01~m=F%<#cǏviXxTsT>sPbKگ_/z*C׏&^]ImE/W6/A&ƬAW[ϭy&k.Mz1ELPr3@FywH̆FGT(KnsVL~?yy|vf1*SX TF\3h 0L_qukF&GF딯ycq_uT?iuMmHBc5/4jNPzݎX/z߿ -g"؄r/6|yilr,8uW?GUqDqc UXwxKg~j8iXvܕx TQq!Uij>'v>J9/T#h[ Uaj"~؈*ʼnW3ڮsOpL/cLq -f)߱;r~Ү[;w*~SϺ3 Y;K`\ƈ;P/y#>qy\:g Kay)ң5^D@gܮԻy#4PĚ꓌|"[uDlq1:^#6ύ?x`i8ocD;Z8eyGRũ),gF2!F7#:v"#Z6,#K;5;-ۨ9H0CMU}i<ȑB/{͑j[ҙ]L-B˦`]'kՍȻڽM7%kV+r:M_'% >\l5kqXhAL - -DLZi1{A -+= 㰈OP|Wayę7"b9ʧj cZt㎩mZ?Z$h_Oe1|e]eK[>?oFijcpƯ}qU>7z,/-}H]rEHqGf9B4)[hy=ر4Hl짷PFKO(.w2lc9QW["48n|Ѵdb"U:Me\A|"Wz (V&0B 8/ qx,Fؙĵ| = cIφ1Ja.0THzǰП5^EKWm\|G7w܌v6frcl1Q#<1=33cY92\d9zdAe"3'HQ, $C\1[xګUڡ>oTn>kmh]͔i 7i/']ݼ>v&$*Aʾ\Yhe6gCӀ}*aZ8%mXmwYO>c{$#!>0'|Q[g %ł%G]s=Yo:g?=04NnSfn"nGc]{s:#-)*.A^4MVzjEDDR֫QPpbxBNmn7:qq9I`V\O3" j‘ш؀AF==5d <]^a5=?w1O+꥽_?ҮU -bzVk jD^dcXC^Kחws4At>ܥ$5N54R!5#qkG,g6OK=Vnm>=(f=WvҾ+-rUvPJeħz>'+ Q`Rsv{F ǂMOe;Uʱtisͮ]8OU3aRnv;N{ l#֞ᡩFxbo16.l qcz܋1G=k^d?EXgoo~/?o~/zT3۝} uCOo??B^W8Wd~~G;s_|oog_ﻆ_~;_w;Xo~Ow|odGs[|,.l?t1KO ?O ?o__w_$h#-@oU/hS~b-H~L??|._gv_~*kz<髟f븢O~k_/?83m7m?[\ Rl/ݨ2~GcPWMWheRU&"^dZU$DPT<@L ,䥱hc$B`t62detMZ ٬ZN ϵZ4YJj^U©s}+6W+:;ӶbgٕGJɢv5p=ەj$wx˧t,au)eaQm>ˋ:XȬ\aCRE_: #"@Ce 7o؊Q <6mq~˥HxWKY{Z*Ez0bL"+ . s,` ;EJyp 3^7,ؙa\j7d :7t, bw¶x8Qi(O$ԃw -WF8d@$\뛅2TP_I!k^6>Ko#,mcPg(EJ)3乻 -b^wE(3IL0&FLUo$AaSWHJ ʉ8VT7$A[- 3nV!ot1<47U>F鶻nJ\LXx]ܽJQ}ߏ2z0"BnbqϪ]^uv+鸌2ˋLMDw$T:"37c7JUL۝tra%jVWVˈvNrpx'49YwI Ґm;+RU=޻aJv?eqw"\è (CӳT Frl$9n6p@T*S gaF\$ f_l Hqr -۬3W{_+qY1]Ɵ5#ۏsUa7R)]q AùX,0gYv -вe :.oE8% ^ɀ,07WkgK]MݟI( q3%7)z'IHj<<%WX*B$۶V 5\71hsoe &2iצ5P46 vZSFxdyj NK_s!O=i3.q04z.yQ;7ޯa&vx̱|7NSxY #J`̿X(LhY -95S0MF5E~kR2ʰiiN c~s!~wa4omvtxS_O+Y@r Q=C:$aZg/E|IONB(|%ߛDs+N[?u)1-sZUln .,RVMjڵ_|5_f7+28,[jC0k]bʈ]D+ -X2MiQ C~"h"pv-&O;E #A\aNܣUN,٤ةt)Vca@*oIÌ:Fv[6F@&vḭJ1BحI~=kމv%x*LգqZ, -zOAVq8N/%6WL}u7IrY{t}'7a}@Q Ea/.!gf=k'QȶZyۋ>o+a6{n\ڕ[E^m/G04pB|34[U 8mi",֙Gۛyz50j^YZM n : -> fA -ѽ7!RgnTaX"FVL50Xýp`%5xY?vLC݃az0ps1oj ]m(=2@,Tc~UKtoG i@ Kys%@fW>bIF 5,YG[l1~pثejn,Qy(X ΰ$EYQ`y;7G3w '0:SPl\`廴-B(ذMvQGf,eZ̰v#4.N=@mX]TJ M&c+e=kj}U.Ȓr ]W[*Y#E<ˮlYn"\-v\UNQҒD?ϳ[0X2!gE(hi^i(_ڴrmq%[!º;I{MJK8ݡ,=zv8x&Z%]HCNNV[~y "7@b56D*w.[U21}>Y/kH,:1JIP8 fsUtܶ.1PZhօuBmMԈq=B,Nɚ6`<5Z`bݚS5`ȵ龜ZSkPl?'2˜QVu -(APgI*,x4%Q - -%h-.GZK wRy%lZ!˦']P$B :YQs1V HIbi&,ʻ,JřCWGCdHTDCE;Y~Z -pCHeʱڙ48ǽ= pXD+AP4Et_nrm*(J}Ճa 7@d3/3Gdd N!lw*1JLHDMQ! T.!V!u+i}S 9}VjՄV1gd48=ߩp+=4,N3f1ߔSd&-0͸RۼQ׭IOW -lL%TEVv8#! -l/!7A{(WһkFlwKA?9UffKnS{W+VEBF4Tz*;5".BW-:V.C -#t3XU%t.ְ#Oy(7\]\N >9+@ʞऩ@Wg`iJ~V4%VWWl,I~/̔dbt)ߥrMJ>0 -Te/7YsI۷g=@FDTpLgPN mO"uY5 @ +d cb}g\M3} -Q[&\ -ԈJ+,5rZRIUdHui ndȝJ. n-20#>˴ÉGHZHE))-|gȦ^xr #IlLv.RAr*10rswE:\*u܄mlZZ=hvb6'1&8'~e *m4` c%ajF]-bXԎEyI,L}cq8K#Pvvb}Tz4R]=Jze)ܽ S.;r:.XXV e%NINkIE*tiCyvǘppFxR* C2bfbZ? kW^VC59S9LtS@e߽l *|LE|ڲ7Ĩ8 !OR(Zݹ7IpnR!yoi xqtAc!]HCۙV'*WS1[yg(!oPgTLFnn,v5@(Q͝}B,g u&5P#3sFlft|>QHq*QXsXNO(X -pׄ;m+`6J85[jU,"M8L_L^U [9)zRsfKy_*,,2(2ⴘW x^zڢυ 'Q ˌ#ۛy1ϰ-T 9#ڪ{1R\H mjqV)(Հ?Z3M6gnRlk4dÕ!qoQϐfۨUoQYBjvY!{&7&G"KIӧ{GTV hir^g^k u=K' r)g&fSW -_}Gm6Z1*ƅ{T}?,HV`Bbg$-v& }Uܼi}"ADgZyl/yCJg*|E,{WN4ab\kKM,{%ۼt{T!+35Գ:SuFa9l=Sʗ$>Jڧ~LrGd$ZrU74k'?iLRֲL6@ -Xcm=>iE -*F$r-e_(G0 6e)CkCKޜǻJ% *p p% rI-Kf:isY;N?֛I>]eŎSwg3(:=#ؓ:O1!iuZpu{$9b ;x -׎:%;f5ӯBϲ*>>w.[MKlScgPGE<SG0>=|U^[t|)0ܾOLnqjVZTR -7Go YgW^%kLj阮ΨOw"]5,/?)x87\JN[JS2)}T%lFui}6.H8!,<hN^nt¾+USHɃ2ԒU" -hb,ݩV{,%/v=dQr,2D5d;+"C? #Y u"9y4p5Ë>*/kT;t{ğ)A؂wvЮTڵ͠ێX.Ƌ6,*5V`V5^\TռXa2"1/}ϟsAJRԋAfJD%?Ұj:mPjS2Y(ܖA;_иOf["5ZPI+@+oavA25tJas敤 RQVHsf&=Nph!H|Lyf~n #=!"-Kzh_BKXlА e 9N,LK#V aEf jY,K ϐjڪO=|K֒`Mn(.jjf쵼V{&DI߻o1TC2XBPCvq -8eo,E \uW`=imkT7Q?HNۼ4}GâVZizu+F{Pd1_|iq6wgIi +CĬ4^k^џ-ґ -[9F[{{X֐K#m ->Рg叹<3bIĶp21AacTZvY(,fr^XjTD`4F^O]nr:TRjT*{#,PAV:JޏiإC7 P0 #݃.g$RԚ*EjQ6V[͢.sr]jZ6g{H$.#T%d8j% Jlk8P9*A6@Le=]rsVS v7lxPSUY)6YV_Ta%*Di'aE1f/F)ܢWʭrd'~|LhDQCӎӲ@VEaIWi ][p[.u٬jD{|y4uocYd.wu&sO'&ET{@"L2mh(q +&s2 Tw$lьBB`sW|{GTrx5sm#81-r);3q#G«Bc}&ҬOݫ^zr劺W޲RL7F[y֐o veq2}u P]llhc_`efsq-AkgMs beC -b ^ޮ-T"S}4R, -VP&C[SbAq_BFeR=m`@(] *a7QBﰕ8H#~(XAMӽ*)Qmo"P]:H[tw徒 -$q CO.A^Fi|2vFM<9Q)# 3kpJtX!l]2~ܩx -2ks ܶm[ӋB"&sFh-"-UlfUhe*nm:7j>mCiSV:%cH$/GFKmзqVSҢ\&=Llpc2Sr٧tA'(f^{0#wƣTICâ1$݈ Z\fvQI_oeQVq)Uc `x -UWՌOXBW5Q0@1؉f<,hހ~Ff90 Q&MR1m^- N]^UT q1ߪB}ck^Ϯ)[>v0#TM,"Q2F#<6?ԑr\F%%KTV)o5&?bj4MOٴ˘&A6OYaD"OnnM<7-}ݏ`UJ.[Sgl% -8 -Xh'@ͻBlhj]yfxHH9JSf*sK@1RU$k"9ZQo*riؼDN cUP UR2ScMn>J5]b+D}y2Ʌ͌/"QbӚͼjmIOx=5&gz,wi6@UHquHEo *Ӄ'XD_{p߶nDUuiv jnsbyyfu7O~R5P[¤苨Gnhl0z/Q -xnBaFn!D:E\}qH -#k;>J^`DO|J^c?fZC?X5G~#8 l1|(?Wo?oƇ=hb M C5VXË)4,T~ĀW,&fT>-0T7M(4&e 5v 祮4ԓ&ֆf^&Λ&İm41 &&˾%>jk&ֆFY@ 70Oz&FجĒ%ibH ۑhbĔ^4n&UUgS*q &&KayİV -"{!Uabɒ`b01~wL{Lq2Vu+2&6- ĈUC$Bq-{ɚyb2bK81%İTU'քHK8 -k{'ƢXpb DoƉaDd8'M{a(818&9qb|`Ɖ5*o8u[ I6Ć!Ħѓ]-@ -ĉ1X뾻4Lذ9NL#IOX{ʼnЏiOXS[{‰5>N 'z8˄'‰5Ă2N8a8a X;BxЕ&ɖibfH413cUUYb4%ƕTK%wYbf %4X;ze,1,oZYbMG, cZ/XCy,1KLàg0(YYbM %A[ѬN,z%Pb?#4ba,,&Aݐ%dcgKeiN$XbDpV #d1%Fڃ%FƣĈXnĘk2Kkai.zHj%F*S)< S/ĚaK%Ɠ#hZXb/gRa)da,,1.dxZ(KN,1>kXSyĚ^,1ͬ%ĽN,&0΃%y%ګOYnb)L#S&IuĦ`~UJ3 -$fLS>7IL$BžHbg$1Y -ILgHbH:3IL%$15)7ILgXW.`Ib]̙$eOX)٨$1$1թQIbIb]LFg:^$1$1,$MÚIbA*$1Y$13IZ$'I]Hb $F -EA*I+x$W$1y%E#%,(@b 1 1$gAbHĺF]1U@bI 1*C HĺfH 'ȳf@b8$֔sO 1# $F,* 12H'1 1@b( 1e3HLHcy$F $d 1;ge _$\1o|Qu#$ƻ[vy3GL"#1sd1}΃#|QV8b-$ODGipN4$4W:yaʗ1GfT8bk~pd12G Ë#p6t2Gl+]8bg;qĆ18bdaBI] Ca IϷΫ9a$1dYFL<0Lj񷖔* >80b2FN`x^#&#b1br2FL/#b޳\I1E$xˆYIˆi|bĔ12FL=1b3FĽS#_ƈQP0b;0bP2FL_O#&Cƈ#/1bX cĸ#zh_BFЊq#`&#.R1bpHƈ`Xc+F-#&ksf9F #.Ӷ`zW#b؊1b] -#F\ňMKƈ%gս_0bބJd2F OشFL?`Ę<1Y FLƈiV0b8+FL2/X׋1b+F,YRĴF1#&S+cĦ!cĦ50b-{ƈqbň)pV0b]a'F`ň-1"o# X)Ĉɘ1b*F #iƈɐ1bv#F`ĈV{1go#GZ1bMSƈֿ#&kƈĂӇ?1bsOk"6=1b+FzňA=1U,#f,O#&K;1je -FR1bӒ1bf&{`(}`T31b1 -_12FFl`ĨycĬ@1c*FlZ2F,Y#֎ ڳ&u#&#6ulbĤu #Q1bÒ1b1x#&FJ;cĆ1bĭFG ad.#Ö1b;cdxb*F#6'q#6,#6F2S5aQ1bĀ+FLׂ3cˆz3cz1b F Cƈ'F cƈYO.c+FlFl#4yƈu'F̖τSedˆͿFlKs-aĘ^1/1O#13F CaxaĸSwˆͿF̌ #̌Sl`$1b]}#&֌5(1B/XςS\T.1 -El2El"Lӷ=)bJgBI1Q1"6 -2EoN(SĦ!QĦ)b=RH#*SXWa"&"g%{E"1Bc(b'*FSiX6ލ_]z&:bJ %vU~cu3>L\Ozض ^Q s|m&v!4 Bc`X^g*]̰l T*1L}D5a"s6yax: -g\.a*W`Yn[Q{gal5Ya 0>gkk&I~l?'(lt v1aژ-}PPfZ@†!q mE)a\"H~aԷFqqm䃉A7Z`TxU GѦ8JkG:&k :` [ A]`|(ez×ZM9U;\AwO/4/Rۑ_-^~Q\ U,Oo?Kx/SYeiX+KaJRrq//l- }Ijc -$[$s0t߃,ރQ4WK^'ˆZecP_嘘/{#>1_J.U̗/NKQV0_JoAp{/a{k%|ɢ<(_X>w/'rLmǤ|fSG|\5)_x z?ǯ9vMmYQ9 C#B)_kPL$\K-*v|*& M/c|m$wNR+E|!:v#/K[n⋴E _v;D,x/t~סv3ý[P%;Oȓrbm!X/zGmӂ%r {M2ѻV붼Tл!ӻ1]R-\ ޅgպQ$z0dz4:Ker2{ K8{RV1}$y(dԒ.|)Jƭ߅Qwahbl9 &k3d]B^h.]]}% 4$4zY^!lrB[:b㨻+]Ð].p"%[wA< 5a |`.ՊlK[2REٮ2)#ӻ=Z#7]wa'] -=]ӻtġ)0wn*˅4B+ %mޅqn0]Ӑ]4# |V]$ޅaW]RE.3RW.TM엱$|\w>G |4$|0i;#2-<*x -K1RL:%ބ%Z]˿ܟE)\$ߥ=bQH503 cTFE]SK58ZEk"w -KqgGsIcGwIπ$YHQ[E[]xgޥ[/.2ǻ r+uB_O޳Qf$h{.j8#]T3KmH}.65:ܱ \^A:$ -FmEh@uIGfRg.Ah>7"0]wtm@O3D*Zk;]x-X#ЀлX]X% +cѵ+kN7}?ׁW. ULR¦W ]:\IX.UmU JхbBIU@t̓)]pO]7!@t CFt1]-vˌ.i GuHe -kZյ,N1 1#nߵNR״dRW:k5H]1FA"uzuXp.H]X:+KY -fA겼rLR,ԅUnm$l UZH]cGD#H]PH].3q^LRq R/غe}|#:K%Gu CAuM,rQK -եQ=@uI %.1e2$*c`]Q]Lv$ TM-娮iɨi TBg .ޛleK}M+ &6a);Ln\]xgW.'a4ڔQvҥWrJUtɲ;Kz:Sbt+~ܓ҅7.IA -Jg:zQ4+YkZ҅n-pAߺ=,]e5re9P0?00&KH 5:K%ʱ8WEMJMäqM-+ӟQ:W+R^; %ߚƠoQ̯7'%ig`B[qq[d5-5bluň3[ +->}퓽%q{kCss8[>zbp9kK, lκNְd0:}K0,NߒB/[j; Q8;AzE|#{[5mn sKUҟ[}:z+ݪB2}KV -xRi-=GM²Lh,Am1Pӷ[(4[ZfϠiER4η) o,goz EEA"2OoaU+[:r4/U=d]}¢oo) 6[V!vװ.-XEY&O U"g)1F*YsjT -Q&g3lD˱9Kş w6n$aŦL͢*Kf݋3뺬>4#01뢷l90K^9HR}ac:f ZybaYMY9/VֵȨ,C-ouI`)8YUϘ˫%PėϕeFE^@dQzrm+ZMu7X oIAǺ{e8Q`c36O Rt,N -c]e2l 6!D|GX[:Kk`,lVkWOQ/T]ۀbXcgL,tRD,yv6z.ՑzYB/o4cLh@F-Xgnm6W8w!&:`JE}㺮AxYЗZwptU߶¼YG^6W-WJ+p+ T JބDRNt9IRh+6Wb(!WJ++^Ys܂xU5j -JV(x%bO^^ W=}=xŢ)+e͵3 -D+YUZ+,* } J(J9-0yxW8]]axNdlp"SĆĻRסuJic E]I rs?yW'JtJlJ?2JKbλV1Nz+YT(-*:2WX?ueQSbREi@^!ר2˂uޚEOHv{0.ne9Ҷ[yk^=zaxem+۝9WJN:WJkfժw&JH"JJ!;^ `HE$PH^It#a+øx%I+q{|BfT5W%1Wf&7W- Է&KydjZ@mԕ|{xE2Jxxw[XRRRUQ܂h:bP!jΫZB^)tWKІ5BxT]i¹dڕ TiWm{ƾwkr+!~TJ^>toZ,CA"uW -<+a ╚RpYWJ(W8Z$^L.3<]E;]@|숳ޕ> b0( Um+ -<"+&Ze2 _CxUL}Yp-X+*5tw;{syѵ9JE ̻Q`λ4N9L xI WYSޕ2ixWӐK+'ޕD+G)cVJ„J6w%e0hϼ&skV@a'8xWXQ2Iqw;Ѯ1hWMu$!>aW}0ƀ]@]5_Tؕd3 - J ! -î$aW+J] yzv*8jYiWjV"Ӯdݝde -=yDRiW MnA⨍R^BAA)Y]4 -vHiݗ@ 0VD\]ZdeL%hW -z/+_JQV8J]Td3JF]ɰ[~B=%W3J3J5 -ԕ do)uŭ7QW'9(/Z'DB]QW:NO6PWXVm2JVUJA˾%f& -Ϸ -4VD9"ը3K+[Urﯜca]*A`]a(+,<,+Tˣ ֕6R -֕,uV֕6* ֕Q+ (U:luEa!jsWX4Vyl@Wl83XXU%D3‰u cP,&er% -r%"YAbמ)WڢVx )W~DjzcwӺZ-qxWP%4LkPʝWq%s`80ץD\MC\MkpTȧ>]0teջi(fw-e*n uh#kV+cUx+ ЕϤ+YWXEp%Z֭PW -*6+Y6fin,Wv%2 -ARy=W%v&j ]T@WvtjLzOZuT.qjKD؃p%йVT^|+Lx+OD~StәU+2bTL0vZ 0d6VqXuFr !8jU6Zݷ(f@ IKVK fU ][;@Va -#J꺢 4Ua "a5-aΰt47zJ$;a.5p_EfD"L+C^e6>@WAbб̳Q('U -"w;`#RΨ(`M*j-*4 d4$N4:д xP}\[pd^"Mw&U-8U E*J}]PXq! UӒ!Ufe Hm+w ʌ*lJA:\&* t=[S>PyЩҗ#luIl#MEuU(vƽ{op!aQT5JjA ;L*B]TH* 3JG]/ɃG_ZQA ӨjjEu)ER멒?IfY+@ --N KUT$!Wldo?8^X^WtޯY *mXlL * 466_JF CžwPPm%[ ^U"$yʌpƳ9TM?tE27 32BEevQo -dޫJ2u:o?Be&n(T(v=CbCEJXûchM` Bx=X?f@ \! T 7 5 Tlx -;.vPBw5'w*<3)T(p-)7VY@v- T[*SgAM{*2pXK*kƳT`P1 *lAw4-5 Y3x״GPT؇( O_ *P2J"u[e=_`fP! *jFPuýzTM| ا=)2jT٪]ʖeφW1*|zx@ TK H.E˾A˃:ŠZBPm)T SZqġB*ITfX/>-$1 -ߊ'f>3@T9MRvDu9 -R2jDzN-RnD&@TC)]R2D+ יJmDe O8J>JMe NB$*Z^Y-u'Q ْ'UHh`vޢ(a?QVpHId;a3)oi J(S(NfxgPS(968T6qSpR9 -Ne J_N~fHơN*g%p//ZtZ }3E/(TZmSu1TN&0Tڭcda1T:q1T& 5Br*QK*C̡ڢsHQaLpkoP&;0T. 8C*>E)S1T8h!0T(.-$ C#)E`dž'A*[[P!jw1T,DŪOΡZNЂB Pcͣʪ,B}ZAkmB ANf@K%{~rJ-_"3{JAs㨴KSBZbƲ[st7RWNw+Gu77t tjj蒋8g ;%2RsvLANc涷ۻ9~qlڠ8E5PWlLõz$vALl;DcA5W?`Lw07Nu*yk| ʩ$4s JY|`jAe"R'!WߐਚGK<*s ,0R5JIDfh6k@ cRug_;` -۶JjmժProqGDm&HIlMJJt֯ - y|m8hjG⓺ѩ6mU(,=sX8ZlYK)DdQOU*2RIp8f>4x/wf1U/ʙPUKUL J -XؕcPחxm |GBNU9yx2z2ˎ/n51ZTszj;(_ե Ҝ4d-`၊C/U;ɮTt9q($eJəoKO&kj;eq{nĉJ_U |_%8p+KS>L42^E:X'@)fQB+Q{%:N8ӒOQe_FSV}rny4QH㞨ZJw7ŷhf*Ց<\*T k|2Ea`^ӄ+ՔE=US[qZ}GH^g^״/]Xn[a*c2Z/u9R\QR2|Px#g|!#v[=A 5XʽW[ՒC)m޴R-5K)R}V [Iu8? ;irSTv^5!ev-eɗWAalBxV7:PzA3s@c/Jk* /w[Tw~H-p3P;Cg=Xl^VRO#fM1<558}eAt"<fH1%߱ tT" -0i$SY=K=K)[ej.U.<%6QfgPʅbeTkӣ>f_;at5!`jF&M\e4 yGiHIcᐅ:gxM1RsR~)6_/dE2֑`fZ6<膲=2qN:Y0,[vJ%uSTaJdjDyt"kd:ovlT/ԓ/A#6Gc[|G]aAO!&T~C:QJ.{HUUS%.”_(ƪP8 xLq[,Tal{cKMlWlSWV7=8@>`s7) -rVYiJD{Π.: -mNuҭS.c*Xbp++Gj=iind)qe/ؾ8<Jv/ nJ=7P' -OK~V)qc3NNï:0((|}V&Sg -R˞kn9amoUNJ2ت*>E^ -4}9SwX]WG|շ:ܜYwzTh -%Kծބ>L,$;wv1V,7ޭW=pn'nq΅SWV2T%IeQ}VARwjud)c9K*zIz"۷;i'uNFO+_яdq\uc5# 8 f߼{3KmBeS~MDqXkaλyr[ݛҥu.ͽ)u+\N񘙴T!;r"=j0|cyi, ; {X -;S<><qlC>2R/%[Unu1UFE\D2Īݘ]S e,Юe㖦ID%.wVKqFfZ-T c1] ntW3e2Cq|usQuU:;) 5[z5)Z)- 󋋣'`!B󮊊{>:M½K-3ɛԱPFaLᶔ6eY9T(6z3] zToԇfmlVU;cx|z8pmv&+ڴiQ祍qmڗna"R(KCa_6 "yØUV=ia?M-THumS({Zi7eᾤak:7Aݘ\]FH͎YJڗ~zIl|ɱ5]Gtzd*J+T11Hmŝtz[eݷ7#T@]Kta.mM]ܬqT-F44quY_~Y` R,Ef)xۣD@PXz,]RmYR00|Tfv9{b^ḪȀ% -(BK}|ڰ;dLvD@1e3(Y)jJ7jھR.aMu%hzk`tIڪ8j~lGVϓgHvkqfGFVJ!}ж1ntc~<$ 8SᔳKcW@R~͝cҟ펻٬[ s[0Ӱ+8m^qG.i\o endstream endobj 290 0 obj <>stream -d4ރ,ٵL0}~ĔHR1C!X3rmXK:i~}yęy.Mer[QQ_H2)IMv߲W$pRN{qJJCG_Cq@R={[o6!)f!l$h&hNE8| --V,4:uu^>Gl [ݜeʬ)L>EsmŜj,ZM\aE'eE34DI,h`r7 -LARlI9aU2IyUzH:r}T+lliVy] KN c8D;)cCzV>$AXJۖ_=QY1_2m%$BUr|'c4\iMqw”-phI)6 %O c(QFSgZvS"줲^ڠ+jzBg~l#q{ )m+8*9:Ɩ2k^ynBVcӊX>gS"@0/iHn -{O*jqrV7)'m")cSJE B5x(kota f uqu' uvwylKmٱ2}(eB8@`nNRat a;͠^^+x`TJNgG7NةDE8S?Կ-ҫ%Eܜ'Yr'ydN\U(NaGџN&5J$XHt0NwG!ҥ!E SP"VIKԵQ̆鐅׈zYj(ZS5 - )fM_Wۜ<v$Ll/<8N6HaR% -;0ҮR -q(ykgV9)z` X6 -&ƻ4#h+R-_vŧlpjSϴS2Ah#r<[^s &:I46*l?^q8INP7s}|baE `I= ^%F"¤*Cg,L< 4m2>XwH$ =-( &^zGcbTs &qqT%0-PՈʈTJcpavN= xvӚ{d7A ;%{pXʫ2EQf}vyW -{ dp!Ux$D>¢Dy;LC;ѡPf&qZA=Q+mudR_$i,ִ(p/!ת붏/? B o(] TuZR I?jZmVǿh{+ u∍!Rc)7qJH J UKN7)K!=1?N%3'bL{A ĔFC62=5Ǎ/e2]ܵ]\0k3obWC:ZA : ; MA_yyHC"W5)18cћ6l*Tv8 )QM@tt<`t;f38S7SeP./jG\N& .0.".yrs a/ _z _3qc97T_[ DtK++KMQٓ|cV-tX9Bch'p9=?==H"BZB%zBD2oRRtV, @ RB{{ TOUU̓C&5Uvf΂1.$ԫې| Քe0WVlU bhrAݷH4^|jTrvJ"mo0JxYp - F< 9LvU@_@RK.z*u&VJNj_]:I[w; ]}{SJJ} Nֺ2Ѫ)ZԵ0O[7'u3o'B -kn$ơNlw-S잟}Y-X;T5@ 5.-PFќiwTѬYX%owF7?,m.ZM / =9Rd(AuC}2= #t7h] -Ud@0TZ}/>awJPAfmnyY% /sR3Mv cv>Ӷ0M}|ˁgrbܰp;4rQR^-rp1mkNS ^\̜]0 vVosGׇ;ۃ~#E S_cTڍb?M5g.S^Ŵ',[OIJ*٪lB]@]kZC \Q ʴLn[bK} @q%oI@1uӉVݝ\?mMAJd{hnR2Y/[S\7"}a[U=Jd ˱놈;m= 5漭e汙nRiP} =M'_7nRR*ZGD4^QgљEx>=Ͷ PycG0hW~ITw퍢M6q҅# wT.ckDy(y-`e:z,ux_7>bT|O.Л B7P@RTCSI_W`N7K۶s$"~VmG$w)ig߸ ۸jil~LӬe.?BUw\?ā{r9Y1t "~vӎ4O>ڠ5#t)ۊ|σbUT8V԰ w+FR1k70=UT<YF*dOh?'hFcN;6 nu%x*Yó -_nG$=|fV\fd<]i-7W}'olTR/3IK__1 *Ы2ؗ5q[VhGd+sViْoZ;})S 0Ĵ;=E*_Qݭb \[oa6f`C}S0 ;%ZvRm⤚5]nifҪƦIXC۬8Uy f>{ufmCR*c?q[8gl7見aɋx(o߾z[|}voOGW -\[_ก3.:䃢i&:YV(q[AB77/+ezPmuaţU|+qzE7RÏ١`?ފ[M/W}bUEMs Ixo~y2vC240rʌA|܂4N/)k .c%^lA872:w8zÒxh4V6?8SDFE9e9UѸ i{ o"@δQu.ʆh)RD`|M}Dۋ27nu9pPjGk0vB4=' K1^Z̍3JX -Q!(805`-TY vހ(&,yeHrR6SFR2tR#6+q/wbZyU P ӝ1Cۈr*q{#Z!iMʜdsHe]|VSBǷKÓOWϽ&c?f3,D䕊q*/N]܉݊߶sԏQ ͈\BbLThAab 9ao~ aXo9Kx%OM,lW^4#5oo"`ķh_O@!֩w -_e 7n{d2AVLrK,+PUD$?pAjm -(J֢cl&hs#[L.Z -vi)Q^7G *{{.Zj~j]O-c-)_b CZu[;;iBC!rQeF߆HIحRk):z{^$JARWԉ۝FcP xx^;MS:Ns+f tsFho٤-6(ePj]M(T*i&TB;|TV!X)ԙ|uA}-QǸϭ8ݛO04Yf\: yPGه`֚eyΒOk@ӝZi >ܭV4;&n:nF*-]PÚ(pk ِ:24D|< -+Q>Z>E[_lTfzx$QWR%tZTULw/i Igu1u^8f K+u)p[X'+mjX!kӮ{!H"* S4nV'ּQ֌ A-. -̓3x9j=Z+KUBPo|is6vS[/T4`v k'Nzgi5EZg$j1۹v!}qBPty -+W+< َV>nԦ04Ynnz/܎*h:?p;=n: SظP -Ύp;>-$T-vZtWޭ -;aCJ4]'g vƇp;T -cѦ|Kp;C9gQ]KӬu;~v NCvm%Ԓp;`L/܎%Qa_v5?¶C$>l;¶eIl;)m'ŀKmX]Rnl;Mn_]v6g*Zp[TQ&[v_]V5$Lnᷚn'8|vx9De?t/:Z5nGD4GV]]IcP -LJ_D6snGdʇn''4nY۩CS>Ec^vIItݮ/TP>t; 4nׇ[y.V.F'eXBCWqn':p;[2dP|v=nGkb۱G)nǙD2܎S`ۙ/N -렚2.) nՀu3np;9|vR+sWV'n%&nZQ I-p; n*/83NTXSvKp%ܮ3erp;2NCJſ3.iWv_ -vIIpܮG}p%jIp;)_ɠ顀ۡ|vR+[Ov{^ɜv[ UvM N #fZv[p nnGp7Wv= -C3[ NC^Qx\v[pND혆 N -ʆ%ͩTVnnSWvTn'P -܎3?p;{3NJU+n+nՀV~vz+N/BiV& -SanG42pYd]RnSp7?p;n?+ۡ|vngD g~v+ ܎:I.)nEuIeqnGxvZ}vMvVa܎%g%%p;*kN_Ѡ[v[pNOSHUnc)p;)FSv4p;[?p;zF l2n+nUDvQvt::+͎8n7?F;vWvX~v<ntp;7W¶eq/ NJaU1m\˶SlPv}vBg=mȗm'8,$|vmG䥰|v9 -Jnh;aA(l;ť*ێ_l,mvh;~QA2vR+NJEa\A+h;CVmE)Uv`: -NP/N-mʣtmh;*nOJh;ݮ/NsEE)EIh;}3_n'mRv(Zf Bӗ(dA/NݩlGL!1n|v6Tfi!}=e&~vz -nlzd! l3NJ%ۡ|vlRvR>d; lTvVK^vLKl7%ۙD& z3C. -َ?d;-b*N_?Džl'2#vLd;b20TP4s.edz,d;8_lP!Y;vh; 3&mpsEQhvmmg_)#Cv~vD2Ne :Lv 2Nq/ڎStbEs+ڎHmG*僶a vvfBÿh=O|v\:]7mG3ڎx3ڎgAuHwB~vP -N9#@!t^Ei%E]vd;gv02َJ_b!ۡhvR:(.d;"l'|Vv -NcTkmC4rULd; _Յl^vL^cP7l'vR ٮ"IYiL%qwl߸._,2َLSkl]TlTvBLӼ%Y'^&щQv6+:w] 0]d;d; - َO!۱H09BUٮ/bM}vFJʋVx?!ۡBCXҩl'Kl\v"%7j!I)d; B#]vRd;-U*NJ%i%+v3_oyBc{!۱=+dpd(Pܹv NB_lGdI`*VװP~v2N; -zQXvdm -؎خ -`;, -hlhہ%*`;_?`;̢ ,)3NlkWRf -3%ʉ lZv/n,/U_vzG`;O ؎oQv #v4>?`;lu]-y -NojGۡflRv l ])Uvd3?`; gQl$l g-ہb`;*ɿ`;,g(/`; -؎oY0,v)Vvt(X fSvJ|vYvدf݊wHۍۑ))Xv$h ؎4lG~KTy_``;] ζ RvR`;lGVۡȦg2؎_~vۑS`;eh?`E^`;}P|vȹ& -=S( D̙k7)]vµ#}-Oŵ#cPv\;J2>Fir\;&_Nk?s\;hk`}v~kRvavJdUµF5 5 kGB!|vvz8+׎2Bڡ˵ -NJ ZZ~vckGKiT;6jgm7jǬڙSڡg~vR Վ(jP,vV]jM-T;>T;BC)T;*@>T;2ՎީB#) Pv%j/>0b?T;UAT/Pf/NJӲRrRhf.T;t N/PT/Վ~Bc[v#l Վx@QYv|v?T;VV2.^gB1.}vVjg/.NGݸg'SP P|v n\w ^LR풒*DT;JӵaQv2n jTG9PXvp]>T;+T;vjj`DTjGxPY_bXvRT;ⷙjvv/RѣSv߁ߜ5%vZU٪d]? Sv8E3$'KDP:_9ej3S=JYxjZv(jv!jB35SH']T; -;2NۈBPRg:=vP햸vdhfBJm5v|B}vH -NaJCC-T;LTJT;Kid='T;/TF%%T;Jp Nl_jcm%S햺v jK#WQv=TR -L]Y$کRz4B,mFjigjP(+T;PjGB)%S((+T$VjOT/Վvʇjgjڡ_B#.Rv[TծsT;~v܏B3;L'K+RvDՎ=dک|RRFPNTڙ/̘2ՎbBC3L[B#Iv#T;uH}vf)jg/NKJCIT;ڑT;:O -ՎץPh-T;,>TKIT;vw?T; ծ(Trއjmni(T;vJKJڙvxo+Ej71~vR+BI-T;^BWBvvR+'B#CC-T;,T;>CoT;Kjj76ΖjP; -njG5T%%APXSd Ƭ@P;y%|v>/CXeR -nު@1e+iMYvBP;, 0jGHiP;>P;-c*ԎNԎɤ@P;*}vtSj [b@jG;jGUW7do/VtyJUwO"NT"Ն1 -NY#9pg N݋e.LN@_GL۪UtV`OGDǎQ'vۧ,B6ӻ2 -ӦV+@ӝ 7C5Nx?,.o,v93NAdt -0N۪+Nb`7'ұ-p;ͣ^8jN.I4:{ND pϖHt͍SvyL :}s*sQ9t\UosYec,wI>F_ /[6sUGCk`\kM[NЂwr ufBXt6/oZΜÆ (E?%FpPx&;/uݒqˬݤ1gG^>N]>GZXrRq%qt\YarR6eφI9λm\Tk'^H4F]L~wzɩHn;a\8L2*K(9lAp/xDSiGpI9"F9E]rkr4 -Ӵ[bXNX{4Qqڙ"^ψۚ;@u9NKԃfpEU҇(aQYu/jX0VrqI -fA5s`jZ`%d\=$d$8 -F0-juLkn E)fx/'ńvS6zDVPq6z]oE0q6F\q1`4y{XH8#*rȧ*%Nߺݔ8B@7% G}ύ#s?bO %mφ,W2$8l<1=IrAu&Y$J*oMo)8/]tG9BKf]φā$7X%Ha\dB` q[ɐ$ۗ1ߚ9߶ -kԽ7'dm%C85(8MMgJ\p#$;Wz -WġD8qrd}݁p纝(nb}U#@6|)8qƲ35yF$)Y1qzXN: ,izfJVB/ǟ9ʰvgS *8 7 R ݐ8&]۱La}7$N{`8@Sӂ)"q4jCQq n>;q[Ɍ:#u|@')B"$Φ=}VsęMaP8Q.Bg(q$ۘWUѢm%Sꔸ[;@R=SqG.]$YpQ@g3%SgM67o꼵ϔ8f{Ǎǂ$2 ,5(qM2t%L)qM0V6Akx;J\3-J\,M0>Je9wjղeU@1#_,&z^JW!p 'KTcyé`Kp1@ wVHiS֫ KIPMw2aXH0N#pZsn$fK+ 4g  Um4MB-1XpT>hv\;']"C9'p׎B-$8)R- ^ߥ|8q^βlu;;}- 4V>+)>M~ZUhղ1+ vߋg3&1ôK}Hd XnZad(`}@H/V2cn G6)hmlIV\ԟYmh2TޝEʒIIDщP_6Y6_[[L|&oE~MhSsuge +iMj$lz)=p6Prl"@˕LfS#lNKTLieKG%ʩukWagl)ˋiu"m-Z =cr{؞( ,f `1AfZ(6aAyĦRއ_6d`tU|@z`5P,ϟlf^ܱ =`SjfLKM"^L ۖu!lIwn]s&U6ok -fZ1XgډQx$EcSY+?+66r'5OQ@`eƮɪt'׌Dec+i\X5wN#8ʑmY5toMkEnM(嶻x,֚_` 6p41ƬQ{ߕ% Ԑ!䴟5 -aM1'f#i %R- F[ς 1jYjpơ9YͼN)`iU#m#`[N}D߼2 Ć?c Y 7XMgKUgZC~/RqZIժٔUkQUjKB5j ->kqդ^0(~͝X)Lj<JV-z5S[jzWM -FUwUknY♰j,j ;X5)Z&V+4\XŰjLVMaCMF{.AJ[=j*r`ՔQûUSj\5TTդZT&jRlYMd5( *\&&EVqy= -)t7eD&q 3W JUkd9WsriOWXpLћujXQ\@I5b}n$j\lW7[&dqGtdqԻw*Sj J|6WMgzC?M<$ZS*闯#5Y&Z࠷ V3enZ9oqPYWMjR?s՚9Uk#%UKjjTl\5UkSjtrF:V% G +պƽ j˦DZM_x5-lmx56ߗ2лGTJ{4cvj*7fAWk[ؗ;]Q Ք0\t XiMlWӦ« D@sLitxgn[ T]juԪsPo`>A3F@aT58%T5O38Բ;V +bUS[2VM tX5/s{ɪ~LcդXP6jR2.X0yyV -US|Yxg,3UM.)FT5"h^$F}-jtUC-j(2uPo2WMB7U.)^U`:UKJxm5jgX5 8Z4UC-j(poLi^>#"1 -3NT5*P5/~3 TwAy7:SM/S TcXj[)bT3cT(Tci]j,?L5TCL5j0eQL5D fOa@c%+‪ѩh6 z:09/[T;'%5{8T癖cVp@߂1׾P5RhtT xƆq[&e@Ոjy?T㾧aN,)P5mn.jtQCh2#ݝj,r:|͂M3SMBKT_'ݕȖí,a }Ot4dZ#Gݭ8צ IiZZ޳jDOLH5)H5Ef,HN4KYGFa{!2xjhRM -BIj̄T{=A bH5+RH%ƁTby7RM7 ƈNS T7 Qm E\Zव7"Ι), 1sn7E9#_2L h`jRg>Mg05EU%:iv͢+L-)cSӟ<١&--a'8̽72N->SkdtՏOg\1m+/v5hRTQ<5YQajƾੑyPҨBxnOU[TCNg#4`We)b=)X⽖. -w7ՙ6elsT;;HsMS;u՘κ|(scFo")m**Gm^sxp)(j0!&.whiBPɺ@MpG cԇf|B4>MţB!r#r8#^TnӞò&)hmD禽|gn;wqvC{%) 3m9x beҢraҞ'Jb&yoTVNdTV>Q4 Dx܇Hh+$(b=#g=53!MI| : a.R -#x4c.:-BQ:TO@DrѶpH[t.lΔ6d(Lo@4qǟC욽t; jOCb-L-XhigBif1rAS sw[SսJOV3t$$ԁ@S LSoQ˲DD?[NwZ3hѬgr'[|{v>>_J=øVm@4<[BF-1gX{y{?7RpEٯޣi0Ǧ'0xg3avPU5&N;J~hg?d5ГK3sqgi밳FDlvf>Fn,ƅu5-0`)p^mVؙ#yqذ3SP|q;CL3+H3hg7E;uL,ouy$֙TKtLʅ`yM3 I(s-;3K%vl%ul֙)ܳ:b޲:KJbz?ukj`a&ПYg sC]3CԙTodsf>J:}q:b%':'~+u j9LE5VQgR/PgR&eG:bŌ:CuW@HgG+{Iv%D1`&t֘Z@̰'BAgMQu~9@>Ag[ Й6fQ vt8]+Mu:jx 渳 wh6Kdf)pF/oD560g5KIpfNGSy8Mu>+ȸ -;57>_|ɮroG^:-6[ʳ][M8ݢrϜ9n*cs҄@U>J 66-SẊ -q.XJ!4FRJQ -hHRοmJ,IvMO3m)oOԴ>n2Mޚb;Bؕn͸cPcrٞy 厄xʆ~t1MUNM~_PR8cbNKR1` i!{hff^*Ue~3V/m^fN8ȡCմ{ֆ™ik3 TB2{(t^0LXؗ`Rߘ -,jFs*.5nC*4Qu<=y><<2??3W^R=AX[uJ{MIq?7<^#-z0!84RCD-cO9lxr9Hj ) -c_f5橿oR -cЊ+83dS*,E78??VO1G!0^}3֤ΣyŎ?DŎ6R:I߈5X3S:$_h)CԼ-6FoFӼ&7kS]Ziжgb 3[ۀ (fQSJ eZn`f5.qۀ1;} vQXȂ&W}k T4w3j=\)OZV]863}+ʶn-ڦhn0hYM5N)xv2t-Jx~yQ(C?|/G!KD5>E}8Ra-(gYrra9PE$ڪ +)cLm}IIIpgE- is^c+)#/u=/7Y/unmd-޵%[pBx}ֹ,$*gΝ;ʃt6 ьw+UO z>ꪱ┑"]. - -riY>(ЯEdR3Kk]RXf1)av>IfJZ)X;索N6{[Vb 8f߼{3wb6G8,X0i s\4߸2An6MѯEo=Mz>Twjw5M}n_h4RP5 59ˍ(_:?,m]u}uIw] cej(J_]wa[ -֓ұdEʙI/(ԙ[fwg۰+ՐA*6",Blrh銍HM.عvv~x"ţ -{_|] &'$ha=^SUh) YY/P --ag e #6I, ELC1`nq &'U4@K0OA&Ohn47(TkICA>o1ƣJl1g -"4y1UڊF"i8d"E:`ӷJ):4Ƒӝ?rcH-G8d;y¥I#2iNȉU?󻵋2YnڭuWT .T?4r X*7dz; -t2U|(Lf[1;Xj5Զ2ZYd;N+LN'`I%,(Uq6`<@2$ f[Q/r%,:4j ?N@_'QQ!Iج|BuKusS=]Ň] r˫ͭ$ĬTrw3FZB#/SG30+KN"R,m UT8WxU4̥ٴkY˻aa'm&|`:\MDCa'b=Ċ62AorۙjD&SﵝQZ7-st)ul=('rܰWux 7.fv3][;gDD;^I +,qoT59hɎ6D7/b/gy7rońJ3>ǃ\@kX^YҊ iX~} xΉ |r_y%#S+L|:ֱ\R\]OOܽ|<)䪠 {=C5hYti/7ft&vfi$xi״l9Tb%'a){¨)ԉZgںN3-qhG9]+ ˦N_gSɥ7)]<</2 ;kir(;,в%QPQ6i_㿊cF9법*8҂_P{M㲖!+Q2dQDAIJ=9 ]08Zּڱ&b(l>A ׫Sx;ubhRQH'9P2ʨ<ЌŗH*L@h;rIhh_\ct,ڌ -SzpVe&n*SU&>E(Xg^yT9J;>F9!J M <3GXN,4oPT;^0X|fmh_z8jqM?Br0*"KLbo5-r#W%O>t:HJtɵ͚0W_>CQE%Rn˧e& O[ɒέW_ɺ#1]"8IQ2ۤX6}r{#kcWZk[΃v-*e~(KdTsDG!Fz08yj3S f9 -21【euaIe奺+r^ic:!idi_Pm3Yr LknHq"VUZ:(I\Mei0m>F [z"=)YZ9N\8͔(ǐݠrE[Hvoy5J ]/_>CA(mZb6ASU)>>rOI"ఛM>,׉Èxpz2bW[t3;H`V1N*-U}h2SH**Ļ}Q~BTHu!0 Z(DZEd?}Ѭw6rL!n݊ICOH,c^wO9Vw+"&ƭ8ɽ'<[_hTH^.lơ(*AVvfr䮊 70{D=WTpHe412(8~%ct9g,';@:3Ro|6LVVjlf`Vwo+?-KFΗ<~YN$vGF.DJңT~VsipH %rR-|\/_!阑\J(tvf[d{d7܌.Glz_bk.׉TlwPFɞbyR.u["r7 NFh~}t9oQrEItߓxOʫؗ6zZ{L>4RG2H5"VM.C*u\Ѩ+j 3iR15X]"ٗAi" F&bw2%.[n](? $|!?]Niur -3=ձ&5ԲRv'<\KG"~78OiF:Aq(o-rVJ"Yip97fan*h+K";_Z{sO3N:ku>uT >EQE=ѱ_Sǒ_"!qcʟtJnH';r:U2D~>);`vW<e׌8"XGdY)&oYm=lh\5J*.&/ ̼MabZ}[y@RFS<>VZTehXv\:">YT0 >7Y5IǬ -Idk춙~M_%(^fҊ&zJ(V @,enLv/Hn,GʓZ! Im --]=YlۍAvGMt^ecArsaA'S'4PVޝBƱ6rnFDflfoR,@~ёꞼb-@w%|RmO.(x+L1(%TdHN/)ZCUv]1#EJwWP$`EYT sDyx9 szp;Ԙ̡FfBP/42HZ ."! szs/sl̤m7rfޥp_g?5%BsYXu* ()7ݫ.sȯZ2q'<sZ{Kf9Yɬ:=7sY7˻|BZi@7#jh% l.1[K!a~/ fN7 wg;=psP!ݴC!7-hQTe !hS(JKp_Z%d]+@%Tu!3kQNOv9T)]2J_/활2Ga>uwv7 -eA%@sT՛n;^bui`]ݎCIhk^D_69sS==' 8k}m8 Ӓײ+v]8 =jBЙ8nm4(r3lQrݓ!4f0B85+9u7ZP{X?ytY횬%ZdEmuU4E9okJDQz9dNM-*ͲX/sYQ%|bkwS{eGDrmh~w@0IիNKɓ9γ;ZI*wFH} H09fqYh+1Ԯc?QFc0Ox#e!s4![/L9TW݊[$E(g^*5 ϭoCveotrSNq6W('ů, -B9unѤ~C}'Ю &NKuEoy)FeSQ+@L*UEZ 8kM+ssFNeQ15l]]r{e"9;yωɢE&YJ".h'<r|fո,e'G]e{>nX`5U⛺ėE>Pde=+nĦR'neIIfKVG%k0Sk: cbyNXպ{iRhMP,t(vE5 j8YJGӚZeyX`N:j] -}?e.شuMj]߬u8|ye^z3f5Es^d1W>MV@U*ƏYe@6um)QȗƽU(ʣ#gc KH'i[NJZX21b ;"`Uh XKEA4|lyX}Y3U`ţQ*AvD*PCZjd[}c8T3;Hn9}5=4 UsDjmU0cP})S~1oH Oԙ6zVFvEQegp)D` -RJCaG>݃egj w2 <+u_-@&&Ɏ8SDmFE(;z>TS:`v|.̎BQ~;H^WnNE -)mo٭8"*ttĨR$9Ҭq\Ae̵ -UYm. rxN+BU5q*eL,֖B[4Pg6æ-vfG@b21VOIn]f94쓿mT+ Fqó3صI'͎4OJg?o(t1驆޹>dW)LH$=xh9m2l u@!.Is;m-lo[ԷQ)^sJgXbZwrY^Nȗj~ f -6a_z' %ryD}ZRWkŀ=uGFiӱ (KNOX_8tmN#ɰc=f*& `i2zчJ|n춀-κKsC3!iN[G ; <=v\J /N*uJA劵 Mk48؎{ zA2>jƱCb0-;=#|Ҹ_7X;Dg؇nCyCPI<( C(E 裸(!V> 5+UN(㭣N'D!dTB5])vʢ=MdrG RUsTq=\zwM%r"z =Guβ,PX-c8vV]'jPu;%? A2a6@ёy챆<^11&}\e,㲎x>TL+ -PcxQTDMU=ޣ$#阷pi:h.^Oo?BJ1zHeWp[aBA%(\Z[xp(dMUw6$3լI/v4:&xM1YvQ18Xvmf&qioe7x,-<-T&-DLh2,DUPeܰN -՛!9E0z):͎J.˝j%a&e<Ɏa솀/bak"M6i%NzginU7u 2Wv!(}Bܯ]/ch~(-:{z'۽f]%u{U"Dktn'&nWUv(ngd{[v2 t;!3NL IA2*1w]=nWI_vt;nn'Fۡ& -۱0bNWCݮ\vHDN3qDcDǒvSYvS ]cvv}t;|n7n7U5WOLvut"[vR3%nWFMttDݎi8@tLJL@%>LIv(n/t;D -t;)O-"n7Djy{t;yݮAIt#t;9*t;mf&] W]v -d|X݃n(nFVvZe֧nt;jF>tt:2rͨt;*Fݎnfڨ\vot;Kt;)O]S}H+tt;^'܎uRndzLp;) nK+vd]KOp;Zv2o3ڮ2Ph;%X_m')v$%CNh;Ԅ[nk1ʶS"JfNq{{MvdmWzlzɶ JV~Ķ`UjV]`ɑ`Hl;)mζv( vζy%nWbx*?+ʶǾ̶l;9kl;2ێWbe)dUESN̶Gm7,̶ -S?v:̶v:mۮvhmgwkeUv:̶SVuCTl -/l*^bi'5j`I!&v.l;Ķ|][vʶɶsێĶS%m'WΓm'5*WŸT9l;)"$ҕm'Ǐ'09NSVf)``i4l;f2vd͙mWY影4%]Kf1X=vfX+ێʶSÅv -e݌RNO]ÅPu?|'ILd; N>v&>DIv@ONʓl'5lNka{lf鏉lWiqȋx*l_f]lJ}#۩1T$5H+Nd&J;ٮ)vLSl׶lgJK?d;DvRd6iٮmloI#58Dkvzd;*NUFLӰvʣ{X$]AkBcId;}lG!Ƀl$$َjD#v(d;Ud23َplg~lGyT"5Zd;p&d;d;̰DvO~'hy%f%5[d;َ2Dld; d;CFd;~ E&(QHdDgv$]#e%Dkx -]#~NӉd]r[vvr[elgTwYld;9d;($l}h!Q YiJ5v,zd;jlG8}%Ym%QNe'DSAAӎ2Ng$ۙNo%=d;d;2{`;4`;{5/`;jm{-d ۑʚv`;e=e`F - -SP8l'[8`;u>vH`;yv2؎:N WvO/3p>v$1$׻`FuX۩ v( lgۼ_I`;)O]ѿ04?v\lq!?v2oZ42$.ku=vkvkҧ̵evS}٬glj\vSY9j+x2b^.\;k\;s%qp:=v8bN̵#\;J/\EXvS :eb 6况jāXEYPkgl:v@ݸ $vX+< -6ctC0ځ`X;ZYvzoX;=njX;GX;,CMX;kmb($֮GZvVwbuX;q kv򁵓vxQ֎cU k'NC2֎:2CMX;#䁵S'a(LX;B=]=#X_b]%b.avMX;2W XEuvVX;ԄCIX;)OĄkǙvy}`OvMeYTk kG'ٶbbYdVX֣3]i}5ZX;N'pڱKX;"X;k'!c}ޱvoWŠ-ޱvr['\k(缭k2߰voX;կ=vR3֮2ܬX;)Oꊵ k߱v `vt;NK쌵S?cpX;o%a,Ckv( k1߱vJJX;=ʊ3u)Kh)+kGV҂Z)򁵣oDڑvʜybfӆ]=߰vaX;iNKOhX;Xk7k7کcrUw]b*ٛ+֎5aPV'NXJk'創õbh旰vccZioX;-X9Bʊj`kkYb~bGX; k7kgꊵ#4a9X;k'%aX; kvӓLX;Ōʂb`']b\vSXvIS''֎.a4Dd|ĄCHX;~ڡ&+n -+kGj{`vNX;ޱvtMX;kkxb]ZYVujGA-BjPHIT;OT;:$ʃjRUڍdD"QȆJTEYvS ],A#,Q%T;ՎrjvSYvS rNJڑT;-22ΔwTjGODIFSQQ+vT>vT;92NJO|j:DJbPTv*`}RZvUusjtYO1TSD4v'E)*=+>OV;-~93Tt aGx쮙`G;p_'s撚:־93$:@NtkYu t;=In^Wl­ jк!'Nĺ>YtJ -1:uRJX'BqX'kmdZ2<ٚ8Z U*vT'(TXNL]B: AS8c V§&n7|(Ϳ i_#Gk_@t -QVBNyΩiXtrCǂNd# -]4k/)>Ͽ.Մ\gϝA9N89sؾ=Ș,e.Wes;Wd2ܹBGsK.;bX;WH[wX>&vNkn;'J;Wv3+uX{͘i;W* ={:W*tMCΡuN:'HIR{?&uNT3u.\:WtL9~w} :'o=slNJ1sR*^ە:'&uNʶeR^<{z v\Q)qLG&XQuܡ!h:vquN0 s9:sZ95sQ;Ti99\L9uf,iwl}+in(ÆfDp$){0Na2f9]oE < קD-zE ͷN?WshVƘS -@ˡtdd9R9};Ma 1rZKv\N-(/8D i8Rn+Qn);PL~V9\#uEjWnG0hRт0`r(κۚzM &'i|+l7`rR-0_RRBMNyC\Z4Mi!-KR!2D!J0@6-0JrNrzj+ݗ-Ў+*5arRLK091~Y}bVk%䴐}=i|'qb;OsR#_}?v OeY&<,? 49m2Lh=2prqs\t,NN'ze8)NN+ *0qE~A-+NP'MEsLf/K49Ar}b-49 U7ÖkAJ1;%Xܒir^[ӠMeM5hrEOsNp/K}J<9ɱ w;lT=:-WVMtΓCٜ;Gؠ}<''yrRON֫YMeؽUDvO(^#8pȢj{+T]m7xrSYyrC8k=&'͆R!0?Cp:]Ԝ$',m$VnL%n9ݒ .!Չ;b} Xi}dbJ 8 -S9@diF=1q-Lɍ$Z`㦰P8%Pf\ٺ+2No+*%592(_lB6qR\KW(]"^꾟e $h bpWb\ ыU= -u2N -@Vpݭ8T\㗧1UWd.;qdTdVdW®s|xVf\T n37@iv2pE I{zvëLrܢ,丩9X -n8PúPZ&9N -Aҹc+9N*C ǡ\1q(9N* d/cWH|F]s;5"丩丩9Ύp.8 _J+LmNOs?/2ߐq+1i8E[:n*+:ni2LR(8rioOr&8.|i4<1+GqlLj{[25NʤơΑU3,[8'5N!#lP㤜wS_:5(LרsjP5nA+w(ADʲ -o/,U9W8yU,3>Sw̻G{4Kw`|ϴ8lWEx:+n+*nNu} 3lPmH+#N"7)qCQv]Ym+^Il -757/bwm><|a)׉weEѓLS[ViT9.bˉR w\|BuL0$Ta3 N.V1 Nq7 NΦVdɫ23kfɃfcskoeɿҪgөP|_+]DҌ؎^I$8 n*+ nN,@roY%M"bA{Qip{nƠ,wMkW>rsֶN䗅d88)0 \ 2Ɉ88)v_!@p3NoA+T 8ipr՚{ vWՋό N'>V 6BS5+] P6<8\' 0ωGBY2Yjղ< Thz\99&Zg=WS~UG<8R<8mXipE^{h~n=pi=`p(& Ew-QνȎy(`p[Yp`-NYpb +Tg>Xp/ȑ+'7k R4HK('p(PpRB(8}E'#"2 Ă#?Pp:  SN \ɂӐH+gd$8R*c~$8)lG&i ;OF+wvW.(8 -rЦ4GTP{"Z3ŽY 6jӻNnI~#q4eg5Hp/ǧAcJ}$8 )% ʝ=E(u3J} /nh| fյ8e|4_HpD{[D/h)w:8  8Yx<|c4n=amuJ{zD=o"n-74Yv'M՟2Mg?'e\Qox> Է`@Xzjp\|2o%&Q[oZ7`jm07y3`x7y :+ } }sm@PTLԷbפܵL}әl}btLj _zɗoȁ}]xjط -P[[N~G*@P<,/o+ޓBk@i_o$]k7MTg펡eŽimG7uޏtUܽ|׉zͨ7Nrpp:MʛW̛VL4q{ @FQqwE@&o$ JXG9 gtA) >82Qb׮&߶EuN :Gu=޼,-vnSR`!`,=_NJ,c,85*/Y1Qm2]t;̩l#in0>607 wu!< -xgkMv< -sv-0nmik`ܔNj\׺cr0*8nr^dǭ:o 7 .,/V$In?$i$7Dz 8M]*FY<%HnHH/mr;D7H`ܔI㰕Jvo%3n1 ]z7ƭ |7 PUQI;4/`eP`]<+Xf̱BosKm'S$M!Z^jSlnam/on-2֦vDVXYm:Xm'yE3ԦQ~ &I8J6KFiҶәOH8mZϓf`[li{:Uz;'8[s`)3s -=zf2>&MLyM}e,kBxRL6lUdSkk}rOSo< Mn06KZQlzZ6rzkxٛ*sRD> l^=3 C-q5E&o -`#nχ"' A`+YlKZo6H{6^ lYL j"eU)J6TF 86a3VȔ `bT+Mh6^IM6T&Ixݧ=$V 6}sZ_+oIqߒd\'V4\tq?N9Ma*F}q퓿ػڃVh$G_ShGތ ~]Vh_䯡;Vv%I-3lR ?VWOz )`+䂷_lRIB+OH%"7D&qqy E+6ӮJ -^V qN=V[^闖 B]2[黅BME~xG]lk&M?lE0=,B*~tcH3cMB`HY '-nP1\&ekb؊q׮ `+N[in >R -`#eoq;`+(F#M1lܚwK -jMy4W+Vf؊5F˖D|JnF;+} IO8(и6ip `+F82Mi'3Rؔ#U=lDy+5 lY*')pF0hI2lr1e%)GU g،L`3 gJR2Ts QL6cg&U{$h6~iQ)lnV#F(A2v"N`SdRKVA`+xP5>.6*A`XnW6b˼+MѸJVV Ta@ TqxQF=rޗ6A`SU=Vx -W `4ݎ `;ZlR- l5l(6`h~ ب`"\l>l", lB .MRCش+`l Xlf"M t[R>rWBf0vַ)l+a< a 8lzBJ6} >Mæ1z7Ct{#J-6n`` -bѺa%BZ)"[s -}\9l28lZt38lQb4:CԀ;3(fuwdձjFoy 9~ ZjٝҲ+bD ,I MP?k&#'_bNI!8T@&GrVf4!Qt1~MmR~M)'_ǿGy$F.jRK5TrۂҎ>k_{}y -s*QXkSY_5ׯ5ἕeѧ  _Cٝ1V -BIU9wLI Ԋ}MLA_[6ՠ;MOgڢb_ |M_k& -_!& _U5=Dk²QGN&q(UdiPw'ѺS-vB'p˹䤧Ơǔb(R?2}:} eڤK9}M*ˠA=*uǿ8^ ՜:e y}My'gA_d{ L_C5)ml<! 54zMgF)SzY8zMì@=(|jU" zMe7^c;=^Rd%ݮ^{^kxI׊ -LyDz( -\}6҂NF5Ti{M -/`U]* reQN~XvM~'`UݓuaZe(^S^w7),!xgƐdU%2Jv 3vmN]ʤi8ꗕJV{PPpuMJ]c]X91bWu6QlU[E[+65cQCЂmA+wDv&ӹkSXkx Zf)AxM$>kxkcZZY -^g2+\xM_^+l9W^c]:4kCk5X52o8kR=K5<8$kَ _Ǻr&kϱ{=3W ^۽ *1kUgصkguMb ˲ÇrCx{\#_΁\#蓸FY pޚEZ5| mMqr]&tnrhJ˨5zim59k:ko40kCX)kg5[ igx?'b[i3:k)^k/붕mPӮA6Zxl^hÛ.`BwAUbټ.ɃdrTTj0+J*՚,D5%`O)鬙v<`jwh05RQ%ARSHxd[zn}`.4^ V6&Q@Ma& 1jr{\4YƜ\i۲jf}ҧ{!ܴZ 3G]9P 5 4m*+4TEO K@ZiI_(Ĵ#-<4{_SZΫ|Kc ^IKS[k`4maJ;%`׊GHi7fj IŠI"[x HܠTk4%;#mfsYi0WBuO@qex4:RqtޭYހ aeMh8tVa˭չ$m2M+ -t0&LXxŢ;:UexcѦ~S ,ZLCcW.ĹhjHl۩h`f'(lFZfr(=SLmӷۤrrET4xTEC!!cρE߄3MV3MI-(Y6NhtgIErPPb=DE#!7;hIQT49ST c١h[Ȅib,hRlPEYhׄZ(!htw vM&Z9w081Ѥz%3 vfkͱiѭV9Mi 60hBH!єzcwpl7mQ(T&Ӊ:h%+ :/9t/22AV04R!]hڻ}FӉ hAhZ'cc`4%3/Tm+VhB F+뜩`4S= 0iTh$J&՛F8Muqv0&'М9h@3MhݾDpцX4b;P3ǝ`brkX4_z}mQ,TVgdqgr=gŌ OsW.X4Tr"V,g]IƀsцbцTآ,]Yt șVP4Se7C (SxԀͳj:U[<$H4١"hԁP.@șcRF>7j' m+ mABk/@h݉ ZmReٵO -u=} _h//O7;k~_˟~:ʾKvۧ%S>o_'ej D:o/e54~,J{ï8TߴӮvɀCVB=TOP.JEűVv:U '{5! ƒHmr?ٳ6 gdaX^h;UgD=*;b1\[dŪϬ]3^y L8'LvDdɬDz!WiL$B=[1GCԧTədp~]fؖ<2w)3?s @쀆\k+~0)zH)ƈ~&SPeb=l|?{ڃ;v3&G&n"NIDҖާ4t/񊰒ڳ_>4Yn RR:v(NGs/w{} -BtRClM&^m=q;ʋOڋQ@{vwe|W4U^o&LIuODs]S3t]2]B\vpM-FB=oZgK;O"cDžͫm/g+B\Z ~^uNjևya|M+J)\+n? %]Ƿ1BzqvVq»~ٗ$gW^Qd:_B>e`YlWl|w>j~y?pju|-]³][TA:n2 vbqMxldx Oju8|;Nm>ߡk>|>5˨x[RG> OG??/2⺶DJXC+w\,\v|1GݲZ3Seu~j͸&_f7V>s3eÞCKLo'5_cҒݲxl!Q⸮VI5qqwϿ$$eWv sRфeb]VƄ|Զ_?`K&wX~z|ӣt͂j`[̰۰UoꞜ|kOP61v 9Ph_zZ"1lXiDXIa s45Ƹ_n`5cvU_mBb˰ )t"naLPqmg`X1gyXfY)|Lb/qVnW[<~_OHrٶ`PSn:}vusc-P$u踖;P[9ny[ pbj+>rן?9O~:k77]>x"3=ˎs*sMch>ܯ,%k+fhru0W|->ha|jxxF(O}GA -n1#nwb?rJχ'gLGpDC`?gW7@cMm;nd~V?WON^߮`^E5xݔdzyG a/~]#*sqQ"*%QlcB}@=0 o1sW)Dx<€|"zt,qG⹻.DUJ{G]Í-:,'7m_"4r;uj\l -Npކk1R&rn\z) FӇMW#!_CJJ0vU࢙-hU ZxĶf}t~jeø_]gxOu1i.nvWg6X A`3AyxS{T<~]_yX8X<&8mY[︈f :k7C=^QVUbVkhWDT`.يA]zEyֱER*J-2PB?u, x Q7hs1vH{ -L4CvC잛}CuWG~acbs[㍗C/wW tp3z:qbuE>vzsy "z QQ2GC!:g\Z>۲1c42 Ի͢ezFڼÝAbz=j\sǚDZ5r۟W{ڶ̏~wX$|.yalYP,q *O5l% G0!qo?x2}}Ә6s؏/5[_B>ëxzfaݓⵍKn0,3Wٛ"cM]i5FW i?ab yML{N8{;ݿZ"a-vм枷{=\bm}|+=#R֤/ՊS1ȆR_-Z~cfXF"Er>W<QO5o 1IXuXT'I/Rrӹ_l5w,Nk kI4aޞ٣t,6U:G8m&>vˑGOwIk (ʌ#@dk4 XѤ8O}Yݨ!F6l߇'qX(N&4@F_B`B븚G9a덩)օjkoUUm#Z#Iћkb&g W3JMFs(W:Ϥ vlQ\hS^QmIUݍq\or~RŴI5\wk28a$6@[4#FfσxE?Նe0,udNXnn딇]`A7%Й Ne1u6@0L8og`2ST `5vXU@SRGTl JD&4L|S]ͣ v1&f!Ay -lGYR S]T -oblKjPrE?ԛ Xb?ؓfKPmNG0DdJGih;Sp-weTARI'HIߛYKه ɚ7PGW76f Y/Wki2Cͧ2l&ݲ+sM^`]\羞΢|8װ0"SV,1:gɾb~׬Q_5nZH.r˽8 <0>oՄ{z%Uo&&1SyxL`8)MjvͪQjdtyDh[ΜvkXyF!y<=>тXB) >snɚ2Μ cv$=Eq*$0IzT,` \'Z_`pk [ 7So2>gRLxTwlB^#h3H"B)I"ՅΪX^jPf &*Zs5Gw<t9y,+ R#%~3vNJ! ͔S,*WhU(_]IKc ޙ>:C) ; (i4W,ww5/=eL՟kQN -5bU]L#.Z_t`6JP'3J?QK5124 W'mfRYMVm3Doo€پf%mȲ udk$[ 0K5PS]M)wxs e̷d^ -"1cP049j`3iٚ ->ShI6s,!c_5a UTe[-$,!>'>blayH(6@,w f%6-Z^1gLgcW9oY4ȖVOfUN4&k'֮Dg7TPW5STb-hàRfƉR /%uu"+j4s5°h 9Ԕ%ڻ4T@>KE%o:LCMb9o&e8%\bIi) -6@rIh$ә07TJ$ՊuVUzQC/Zh6YGkz?Mj &Guߏq)'t_ -I r_MZfedCdDaۚjO`JF:@e_Fҧ_j! 5*E)mAL!Cb\>}ɽ$ -p?aF'Ρ(]xl5zQ< {uVyR0 h\qM@'Z6Zzi>!6v\St9i8g;-]sH M\!՘ᴦ3Tݙ킨OT⳹fиiXy@署T{hU'c{gٮVD3`nQ4\ -|WIUSV=.eTR3w`ΨLF؟qc`VW2,&f/%jϪILQt2&iPSYALVS9Sp&AĖ5C/h7SuFJjɹk4ՕrSiuJm)eSj#G9gO Cf$"z]F3TYk`N}˖'a_ͤo˩qv͢)XS#걫 v)rLCgE'Ѵ='+A^i]#}XcFQ]7 kI-aNxtcUtj}Xsc2PLE7BgK k"F d 8 `/XRG*Ц *;Nmh6d+-Px=WAhr -d ت3t'Ԃ:U5 kc?}LȦe2f3Lyy -L<lp tLK\KTHCrŌ<9k9 ON؂hzrXu RA&PÆ$a#NJTg'kQj^ IYvEŴ.&3ߞJ;=l#FӊW^\V^ JP5|Z2P5Hc'*HQyvH!YNz?Y_}" -P7ȧ鮖 j& Z԰HwBf3%SL P3K -s6[.T"Ĉld[&L*ڳ ifHcQ*g -NT2)πfXCGp/[E<:X1Pt2\zXh* L} $aMl#508 I95WaLXzlD%;LnZΈH0'h/ߓz}Vu5O]YF쒂Zgvu5clerƨ]:gO :ּ! [h -,m;+B5*d +g,~QN!fkt}D:Z'VYed;jkwrMq ^'1Jg5m|L5{ MB¼: ,^MY64ֈ-DȪ=kJedoc#cy0x;(1Wa.($-XetJWo&eߑkt3Yܖ.(lc*1Ѣi߱33 cFvNәA9XZ#tX3Dre0"Tv}AZɘXU& 4](K3[R'ͤWj\ Uhh,F(90UMzdze)y^IpU>ATٹMLǪ45ICvgA/R֋ 9`Ә$Sl L~O̝ianNi7lNrdk4=w+T_=wfKXHOl[f".{7I9IuVHGsYzk;RsB:V$8 P=Jr ]J<G ->lM|a_IsUSDIt*㹯e/զ$kh)̦?y_YXc-ASE~ VPa`Z"a|w*{~/(6iVZA -Y\~9[&[W܀_ eߝskBl/^JA~wԚghoCooEZE$%cmCJ5Wcˢr΂;0fC؛;Z> VTmM[kOKJj7v Pᮙ8&`) -18\e ,L $*ZCo1"q$ք6Vo5_Ѷ>պ~V堯k-zYtZPloДlfD\~~+z&d5cmUrAΦP[\ dU$*ռLM dL0#Nb9K~ ^Mu>ۄ3`kٲԿ# k\;ve +T'ų2;xȞo_ 1vXUQj8gM#d͚ki{Ef|nQkD;6ND?_Sdō]-c:ftU&â[oe,l禝m$d;  BmnZ-Ԣ*&zMEQjZN3xUy8Z+Ps04 gfzLxQ٫BiJHScZ^VbPLg*Ly1/_ZeTݩL#bux UDG*\Ô/bX'EgZ갞r *zYWqOO-§"cGui5뛾e{+r֒`X$Kcn0$""tU=ENAf 6t&ԓj01lXKzɺQ.I l,7*-j{Ml Z/6'ݬ;׻n~([2òxw!8g囟Ul1c)ߋ?D1e^ Oڻ2؂ώ(/ k0),ſu=L)ʓYo;{Gj#4m1MZ9ahhP6͠Nֵ؃MxmӖIo6`E hbNiƛ|ݢ>_!wQ'-tYj$ٯ{oZzQ.P!^;4ꃀ#\y,!ή3 -W3Z~(Gyh0"v +BQ0!o m`4c?"twvwjYͧ>hiL5mJ{߽8j;2BCek fXaMCǁ]'")E'Hֶ%ՠkGtH_?)@n|,effԐVKBK/|I`(XR %@%l`-j@ZwnNw}ɉɠ?[u/^]a~]<_g{}?x=}-:)Ӻ__|7Wׯ/ow}<%˻çwoo_z_?n.3_}woůÛao{~꾿zҧ?_#ڬ{^{a\^c5߾ߜ]#3} |x{ն뿿|z?}ppOr{?{磯o۷7x8n||yڥm_ۓ[}po/];/pk}~*~}^6wWo:A/:K]|iщ).+sh,{Fѧ]^^2 +`k.:DŽvЍڗ>⾺~T'~w͛O]> -[y`^/d{)x.we߉_|xfuwvY6]WV9Wy ww7j0,}p7o>|U^:ZpQ٢SvCsϧ˱hx"QOwWg3~[ϔ1=?hG:d%Ϛ;e_h?9xB O?1 {Gή]{2F; 9|zc& nIޙ'n#z.OqnKӈw~sw}-/hӴӹ}Ӂ}ĿR֎gswK:yWp~KŞ-y}~Y`۶3?TmQ9sWߜ^^qy}y~"/~E>0R.*g(6zϿ}~<;~t=:`k32;lnX9/CmT$WHG>c9Hڤl(+ D}}W[G,wG6/||?<"̐~'״p=gr|/ǶK:/G/KɳO..޼}<أ=敏TѬ>.beN1+!O?`pޯw~2f W/}h9g;hE՝mv3Sy]4]˖Pe󺞪;vإ''/-1(d/ )qC.˚~ |"{N>ӏm&w7޽)>B~2DᕭхN)n y$]Hx -mh>stream -~lmb}L h}v9|>CP식ۮ<\K\>W_嫻ۢ.nO,V}|Yik2뢏톤$9?VTyi\key0yvvÉ//o?)']/>|c^郁`?n><GDz~5]^_v25o<+jg`O;)gʍW|{yQƌO EzUN/>wyD ~]إ>Gz˾ۃ1`y.9?>8sƜBƜt#Цs09cγ1<iqI{dBk rߕ]2s'!ϸ<5< 9س}/"e渾zcn ,}g -WB_L]׾sRt8衲ՋlZ}Wt+^| -1rl/H>X.!'4^@G0`8?%|x]t5{%[ϥWZOz;6uۛ?^<W>~l%:sb{h_?v&>aF^rU -RwuGo~nG_ u()=ea$^PM'\Wo =CSk/vDN;afcڀ^Zױh;`3@/]ef:PYnRK@ -ZA A C5045ĽEp*=#Uݽ%/ֺġ*~h;Ux&]wC-Pa( -O—F~z!v]d=/_]_c}{~qÿ`|f9}\\oJv/OKoX1K$y?7_\ ,7;0'[f>-skuPZ¾}pXV7\їu\˛__\Za-;v~.kf?>fyuv\}ouN捏.JZ] |&tLE,YCܝO*^~*A @'47 ==3 /~o_o_VV%@,s"O/~ur(⇛a*>S-Kͷ?u]{u41w}Ѥq4((?uǿ?_;~!??rCp>ք˝8Mؑ+N:veb+uƘeػ ($*<[n 0l)/S7/i9NS#&>%taKz g s#vcYnBcS},/<&Zλ -&\V;O~ /B1~||O\SXLA(τq( -_OTV,ϰ  /\ e rCrU -u+(X݋9es )k؊!'>/x/Q= . FƲ >z9>G}(u9e92TvgW0$QMqcy(r_7,ok~( g\,e'\#1D,'tcT"AGwHCa8%BֱAt'^V`'U ` YgZYb{{\nJtJ<}a>PaG.+l]r"srP!bcj&!a`:c6xޡ̑B]A!ONc=g`!\$ɑy.0́<]/U(#fRr9"}j}߷1'd#ѰCrf L+ aWn( E6)(P 1^ r{el`a: tIR"{^ zF!6Fk$p -0͸q6j' vOf[hQ^ -)$ʬ貒s -(1ׅ5p[d)/@$ [<Ɵ.ppi`(7=][HE7Ŷп"/ /p){[ p KYxҰ8 T$bGJ!g3;P ]e$?Rd/?ZT2My/eL׹ށ0Rv<2[A9VA@r0;b&#,-3A5?f_TrGYbt ]`wav_bFB̏>ȱ7 N=wslƀά:S[*] Fxt9ZJ-/46pIFR½& @kZgrǕ(0hxϥ&r:W,^V vƳ 4栎9DpW(ف -t,׋Pq(wBNjp?y?ݼ3rEQW9Hz$kʙG`縪'(H{ᡑToy#%( uec]aG5t$aǩ-`he!(FrƇ[uP@7SeG)`ė X@ @ aYK+Zj?V;Ջ &|fH82$#%MZm"Zά-̨+++>Oc/w\)ODQ*?(ׂb -Ka pj 0+Zaϫm -;ZۣWU$PAIE{l35DLqmj]QTSaG -}ф9,suVD0Bx16WFq;0eݫ@KhpO™O@  K"d!)̍1g| oVZmȻe[] @#OG"752bg~wBYa,JC.ԝXLxF U|mau YزЃw{^:JoܳaBqG_ԨmD \x@<%HlF Yn ) diMbNr /))DnT QHw؇@heʑVꨇIؔ_'-88~LJ i!;NmNYyW%Yz`.Ն:{_՗t,+6eUb(AhdQ$҂C(Q§N:`r*aK;ۈhlGZ9;6 0q@݄d@Fܗ&C ΫMw=B6z֞BYBah -`ih@Ó΃ 4{bvqdx{^\.<{^ra.Knk[xs^mBQs*D]PFCFGٻˮ,k&vVQ|@<$@B#L?@fHV F44`Vw@×`=?2†04yj᭦ "pP{b';77}qZpeʧ.ax_|!E$2?3y.alCj jQVvPd8Fư=uyd~o(ń82RDg":.ְ\\hd2EܦS -( - -؂*E*0hc >BK%/yS"|X`΀dcܔi7v)㨣TϏe 1D0U 2Xb2oGqsk ELu'=KELFJ'*lvE^B9&X #WD&>9a|!bŲp֣]mr]$:!c.7R93F:x* -z,⸾;ZyAF~2/'J@,joDSy-[貤"|-caQ F԰MAce2, * -_..6-C`Wp^~> #wMD^ݴ}^"3:,C|*6h n] $: %@$5\ADMM/oƘy2msnCpĿyz\G$ܮBi)mM|z8%T`P -pU*&\5q鏓 H%PuZ8*p/B U53~ mډWP#k'ibCbK- Ƒ:h!Po![U"ĄԴ ,Bq*\gгa<g,Vع8Sg, &ZEy*eȘ@u0"LhC0:bX+@IտXEbLJqORb\U=+/DvQ<ήSߕ(+&Z?>҅L\ &/C@vGm$ԆB#h>9{`BX;Vވbnqڛ8G6Zy啥-xi,ۓNYx<.,liy-Lsk_bݤҀW6ja@!/l,0soHcߠ. - OkuXf*R^h0zY?{}Q/^+ Tu `>BkK tl]0s\h-NAe5,zAa.L:8~DzqY2\0ˢXfYlXfj,39f qPBb@6Tc+-˒.sl?XocrcAr m)qG:g3~t'!#cV%0B1hYO9ʸX\T3h\ZE]tFXf"1:Iݣjg-2`ACBP % .%ώjVԜXUJSYH:"Y7UF@D,p%.͟Jba#JwHT1$Fw+0HJ)iϽF\X;)8۴x2T 0GWj3TtA&b24p{au(%#_h|%J2z}k/tg" -fR8Xo*WP)BM2Eh}Q*@C&p:+0̧l6bE˚%G 0@P΢ -8 ->N(0mABdr4'Ʉ*f\Z[@*H3f*i 1FX$ ԫּXm&8Тe@QvVZ#rENLjz˞5H~-1d21$H1/[n 5/؟mسynN{) aBe$gl!h 4ڗW6~svXV3j%Ď9؊$B* H }lW$9iGMIh(d%y̫#,k3XѢqn}N?qN%0'28 rFPG_B"eё1E{ONCʹQ!COSNNV@pfU(Og/rhQF2 < -ɥ'0@4C6c$&@<λ#'3RMO6J܏KXGƙ7c7@L)U?bL; ;9ˎQD=V?qg,B ƃw7g"[ؔPo[}/e&v'Ӵ1yx@ɨXmHIV^+yooon._bm9ޭ4s]uH VD*_HuX~W(dz| >`Rf VjM[G~}W3b\<#+B0j$ rCqd<{_|rscO0ȋۘz*޾U˗V5%_Ld9hOߓ$N P1 ԯg ÑQ ~Oolj"'6+yu[9Wܿ9Zߖ 7j}#^ͮg hv^(.CڱEx R'QKtGKqA^~cn`6Q#4$<G>D6^_"\觟w(ꗟ6O|^_޾.Lw>2]_lc?w^~}w\dwJRxh4VlY_,1"sJSh4IKm&I({tp -M Z6 ( rp  -E$KŔ= Ґ/ѧR,3آ^5$("Fƺp6Lz ].cǀaFh _~lZ'D9VG*:Q^r!3;]vtjG "D -bB^r,q- -AGH(wB1θ3:68H'ԤoLޢ!iEe{Q$爇K@J*3(k3di(jbR` eTZs1HރܢVaGd,Ka';lu3lMnY=II 7q!dH,f\C&Id!Q&rɳӖo \ 8vba.!P>lmDRl,/ 9uHΐ\NBU" -2fۏ 605f}:ABirWƀ5$lKé ^VߐVKDPT㰬#u YAQ⸄gxڍN%JY - hO/ǚ+.~ +cav|q̸Ar.NZxPJh0![Hs6nbi=QF+xdNvzB d9hqEzK`E*et͒N8zb!vUw(,2)+N,LvRF"_r#F,w/Y6gqA !rg= 'Np2bp'9@ }bɠNTnsYCrmZN' C?6Fۋ?A֖e+]rA -v:rj0u 4T%3pw@FE -Ae o tb-];J ),"dӥ9,DzE)%DXݟ蝆3'UI)hZ&RUV3֞!O.02(; f'Ů dw&gdnf20Ux<Ңs%HGJG^!Ҕ9"c9ln롥cHd!&TDbF^üH"T#,"j .WkDFG$!J%l!ZRQ(u>#/'Tl,K(*sO)F8HWGC~"AĦz8(:"k^^!!ұ|ӁѵbcOn5$cOՈUHY,yBBJ=J(4Mb"3f0:I - [MZo O}g~Tk$ f#BJ}!5@/ -D'*ˡmZfR5,P/$itH.ɋcəIYZ 8-0\TD/(%uz&(=U$sMQ{EeA_il-)d$H/$Dqx/iMZ6 $L5sz^7k &ʊtD|KȀE5^S+,ЩZT($"rA3΢qwH 8$Qӊ--<(@Iz/r0 0xզeE~ia2;٨5/\|ېiQ;$*\bё EQ?*>Je3y֒%gD+.8q˽Ăw]!6JJ /xdAj}IIC2x˂;u Efb:R -Uţ9,hG\PD>N%9b GШg "Wz&PVEV+{Ϻ_u iQ&e1}1,&E|/=31CU"T42v^jZE=IFa1^yQ@UFv.ҽE2ȄeJ3R/1V]xوPVV{P#k:s0rbF#li.Z'}GM%b" pkc~4{At"2^c9vp"]P\?Z` wQ9AZT,Vq^Ys-.AR{`# j(lV -sr/uaTK+1^qPIA P5,y)]ƪE,N4)ڱE@Č!U7QI$B TRʅ׃Y0p+ -f ;\Յ Hy!^/"JN ^ASѰaK80z,+ⴡ試¬kh z?N!-vZN[B`Ѝž|e˷mE8 倇jűDDo0K Z:RdE4/AɊ]׏Ɯ6/͜.,Uu^1 ͒[[!gP@dB/ f7ظYt4A M&"6Ҋ<۹Aaj1m"e92U;є2@|`/BX;jfJ̿}Cn n\)%12dyv#1soDc51k9^YNTK凂i b7|ʆjYJ,r6V,jگ Vnh~||`ρ!{@L9Z8:7-8/L׌ Vqtv`G0tnӱՁRf 4qa0G놺:i$?~1錷K5DKqck}q{Y8±x#/@^7-*6"qD@lFPU1'@ZM} }198e^!l&74~{Ԇ!tlqdvNQ@\48m&"zH7&=yNʂȖ,ϱ?!.}/}dU.W?2 P ʲ,~(Ao*+礶Bl˩PQ?s |x1$ǧ0$5Q(7 -W:`mD(JZ}OHO5"T !s~A$n }UM5ϡڒO[L RwKvd>p4+U?'!BXDg7Q*$BD^A [h1w.G -9vh-7K7.XzOC]d&U6`ɏͨ'D\I*5ʫ4)&E4lyi0@I3+OYtTa#*%=s$gRaW$2: ǠΒD DӚJh;JByqx=9ԡCLP2GJUG.qF~+&uL0Yg]ʿpNMV3/iwh ~@>X9k$7@"@~h IW,Ѐ ԩDZg/J1q*NeF h纆qIc"捏IO=: A! -~0CP9h`߀1L@[;ic90v دA0LXJ9HbZ }nd U2f1ANl,@5 )Tr)&bCvv -:A֔2'*TW0(pyW -vOƱuhOz=X -K gЮ^7Hh o4Rƙk@6R_&[DZ)VqWE9cyYmwPҟvGl\4 I,VT/WװTQ@XRn|#Ou 9Q8l ݚ%f~X)NX;\I4Ś׼&|0r2A + &C]Qrdq)J_ٳ͜z7ґ1Ì|" -!+'[>TR T-GGcʍԆ-njݰUl`<9Jleц/As~&EDQ [Y# js̄4LH*CT~!mjA7Q~0Md* -H|]%J҉R@ s'N  WFz.gS~l0=S:9iO&zi M ?97>) aNRL~<8P=tѶ|.01_M8N9I-8¨ 8 ̸qꜩ8g9g8!jPO47AoFc% -]AOǤw)o 1 .F3|Pu͘suhu|534I/e Uu۪g&1ꙁeCBXAgg&ƺ|"swsCF}3qi;Qzff\=3Q N>+d“g'qz_:{l9ZGgkMBwI@Y@i@kGs$uBűfKcX1@UMj[H}. uh}3y.*f0n2JЀL7ح6Z0iP7Sx.^Qhj<1 ѐڤI5B&vGS Z2@|)z?{X=t&vHNvNN4cb&T,"O pJͪ呀-5}yU oi@[:Q,u_jFa VeCB+BI7@si)yUדP^\-}4J{&w>ݍI3Lw\jH~e^ -j C@5ddrFe'i@ܮ -}cjIP,rMJnJBFukiJ$Ln w9gaF4@B1FhUbI-U&t"E|+`>ꁨ|[؀E7U- -0O ?^1:}x\o8g7*"0RQr}ڗcsUgURox.llTv%Ԑ&|QX+2P47Gg1_kiFaxÌ`%RFa)uƳ1Z~V34y6g,Ѳ֩F=oWgE0}Y˸ٿ$/ĄBL3c67s1l?i]1TӅ)\OW4??mĪ]L - C#!x`Uxs4s%-U!] TUqf.:{G,nz8eaVCOFLzs$ ^ [˪Csl fXl#g9 &PM@* N`FFy!ԝtBZj@֢dBzkKХ*{@ dE;I9˙1.OHJXRكh -+T:# A%>hnʴ͎Fo\{~L[ SIg/F0b.HCga(;M^CU$_6(i_y SQS +i:UK H_e&⹬8<&~5L鷳#Āak5]AWܿt*@F74'ؑL-VS\?N"ւ|c>3!_<EՐٹ0Cyċiv1VtPQwzy-h/8;Z[F}P]VC;/YJgVIfv[z㗜9NRn{ `*R'nSOU%7qN%&4aI#tfޞC' *,F%aKI#TF1jft,s67K9ߜMkEjP!hs0P_ ) QjИ AM 5Ggf v5V 5JC\x9Ø=DCT4{rЯfa hYZ^'qҜe[N}YUm`)lT%fN&%@ Hs:DMӻF䯪pjQ@*^M4ŢLl1XZQ},.Ͷ>mJJաԤyus냲٭RA;k!nJ %\[(#3Jsajp(bfTSȸهEMJղI|O&PwYpF FCcԤ<;ٺĤ?Cjadf@+2Z){Ndvl0KoO-I  n9C37;/Xt›ҢS%- Qp.--q1 Sk^ݔ>$v|X O@V>9|2çU O9u6y O9|Zr -iC O@~)0B9ck>9|*çe &H>9|Zr!c\ `$AZr -iӆ@V>9|*çU O9fI O@6r -i@>.9|*U 22@WM@W>9|Q-NHĭ -q*U *yrTKdq*e 9|\r -S qq qC @W>nq*Ç *cV q* >-9|Zr!çU O@6r -iӆ@V>9|A O&x1)>4f5Ҙ\[j>nИ\hǹll<{Y4'Dc^LEfʦ 7 k@kyڧf4,'TmvKW-/QsFIlp'GmrN* Дe2jGm㫮N!7$TQAt%*ھjqd=̤ٚR+k-5zroW}-8ɽfD%dӓ{Y hғ+0ܫIwOD QߌQoɽGoC&=l sABJ* PW^LI.T=9Y!P%+Q*i0 dCSKFȻt2ލ(ͥ*LdK8i/y 'f/E][IQy 'MmK8U3eN&r*NK[SYJ2Nzl [_[ʼnpl# P\-+U꾋 a7-K5FGI jg2Su2S_[ɼ(.s5XE;(:g{FIVkHrkkTPE7-N$(:wv~ENQtD(0gQhv^6Ny-'%M-'?j 2A[I{}kk4nl@b{<71NI?7Tivrm9'BjK8X9(9#(AIN?~uUJ>sΜ9s}WursLˉ:_# ,âNќps2kǩb2(.rUhi:Ԕ.FVdY\cxbdkYPkMYGd+ti_u --vM#q*r^ Mĵ -϶O2ʫZRp -'\tU$q]RI_Dz -Uٗx0Jս]ȘʹXh"%2кD˜{ÓveeѹmXƵcID9*C,MzNׅ{% -jR8U5ueuNdD@`Ǖ^XǀmD89p1#.qX՘}"`uj39X$ZɁk9gg1G'dDfq Y,9]h*VcC)%SS֥pN|H/Vy&@PwxƺBщ.3УXoqp.\.}vÇkj?ɥJfMe]qN17Kf9zV7?Bal'.*Xi:Wr;V=ٚ^\ŵ ŧL_ݸ)^\M7sF2S:+tnV5P&~^+T7rYl`.Eمd09"X$EAY1s'?X*} (tJ2exv4h_܉~H $LhvMm6(MMR7"+2uid,\JȁLBah L9<*2m"1QLYE[m 6(͇'ؚow]q~LaEY#)v4-f^ "{^- -YL{DQ4׸Ev$m@=tQHHfXs9j>5F]r3lJgS\&_-.S'OSg]vnh:\&ŎA7B{%2[Ӧ27sH2/1IaA>zPPu)Y|ˆbŁ3IC~PIԹY25k-0MeHC,;-el8rμA4eF8i%Ye.vhn>\yk;h-V{o38@]wo"ۼ:=Qn$+7"Z ca6e3q^ʼnYr "gE+JŎB#+4L9-ӽQL ܏xPZj]C%Δh`s/G&udp^,5kS<-Qԉ,[[} ȺgENXJcqէKW[}o\dfY%і*摊&A8I a;6E)>yOA\&lC@ "sߩN% s֣r~,š)[W}C8f_&|]?l_q@+DO#uv]6{;Dg#|F@ZoKf.$ 7[YcC73tp1(q͍l݌ 椘BYؾg!,Y@p^WoJ W۵~9E)j6tWnF ;p9ےb>$/.i /kܺcX Vˉ1 At` \mHn|X41Q!Z݈E9Zr{[\db{-}ſQkk|bLŎ.bLFňq^?j9fW[-[f81_h5sL8O89vz5N[2!=>zKp̤Kf eJ|Wӹ16^ _V)[ɗɏ"Ssy7'n:jsfٛ| қ j6k`0&ؕ\%%"[jGT W4 -'RQuLnzwX<(AnEdD*eJ0]DLZMt&D֛';x%UaS[DП$+3؉$$z!( -$XF@ D`G$F,<͞R2fKp8~óUG^UթLm Q ~f8bSџ@_VCnnjQ}3'ȧgW=:%n"j-4xic78p!^ALH户\I KyWUFzǂg) h\ZHP(tA}C}{Ϫp=[ZY8eZYDAdovhhy߱201oJ) $$d ps 5z `` 6T0&A >Dvܬ)$d^( Ӕ- Tb+h2`8^@& U { ) -Iؕ"WcL1>N'B̢Cm2Eu"Հu8E'˃g?ˀ4nCyԐ5kY6c;Y -#MQA& ˚2kUzn Ia8'$$ }( 4Joi2K4R: r"$AbT嗐7/Ftd"O_:YSRvA2 ~?\ -; 1ӊ}GC}9#XҔJ -OCh/cjc#āl`b^eRu K08JVp+TpD;2ObhMO$TЀ pso1@0 -׌i;4$RraLKJTzk*&Z&jv4BiB<~`Pp`.)tA>v#q s;Ɍ+`e5zI,<|Be'kTe4أ@'-.:BC|f0]TD E "^ 'bB@ YZ?y""]M`]"C͈XArѭGE6̫uYAbHg&[leK -dbfdkU!.SfP!3tht:,Y֨[A: XŠg#k&$gڤa )F'IPähB -ɐ):B'$"QfE\ {48HD}?: %ĈH4FR%.n|YؿMXu>G9 ǂcn3I56,! -?a*D&&V{He@ڔ'JTYR -&G -{Pkv{2r#҇װsIcHw 11u@2~Ad9d.س1(V@?DSPޅ(SP ҒB!P - -Z"-skO+KeyAxj^H4$V*!AA -Ɯ1* ޛT Z\{ghH3/ "UQPv2nN*h}U1F(r\`SѦD ~@[Wp*JLA/xxPg*#WqhDj4<(x\o*dX5 `:c  -} Z;j΀ K 7>G!M,$`zWA= 8H:>y84E -f -g#:ƶ VkWjLN$Y B(~x_mn7vt/oM/dK m 7K;TU @[z. \~, `̳xGS37$i[#.QTe|6%uPYD1(mcplj"&0/%3 -Кhd0҄`[|""H)4̪GϞ "tĜ25*5 v9p[OllHm) F Ƀ.F !${x>WYuJiUMnቜW>!&Cl$~%tM%T( -oiɣXYM@ǡ(Q%LHd̋l#` -4ZF(4$]'asJ]NtR@sUgI̥EuE&a%6]WA2qT)fZ_΂8gmE CZ-]/,&U-3M x@e"Ko_ -03"Ӡ|u`e@=DA!, Fymx,a${䣳CdZL*Ϣ!/kLC)&]* |]5r}/\ ,3M``S0%?>!>T\Q$pTcAWjC ufZ -*]0H-y9ۙjqԦi()ĂFBXEB.Hc@d3` -&ʥi =!&Lu@X0)*VwL-5ZT!F+f;FJT.i,kTD<7xqW6Y( -mD'e:L"jFZoֈ-p:8 -@Twta$ZmoptnlhYiZ%<8B)PX7<}-c:S @`ki6)Ǟ^Td9Qi*Bafp"/C -H Fۚ%81cr\"@dFJCA@!l mp{b ؄UOg9~.x1A`OP,:WdL1iXNuc{wP4C8t mz-n`}ӡӤ< F:BǷH"[yf9GE}p& ~$KD3,KiKw8R 5NQ3CJh)V PFU(y)LB68+<~<>Qisj^1 Ƹ྆=C7Kfx&3K7BWDCypp &ʷ $BSuB0^q!'>s]Y3s &$4j. 5~sj;0" ;U砗L*AɊAVa"hD8kQ5PQ܁ 4$Q`ٰT8"V΃й Oݽ=صFcZsPa.-YdGթ~ 8#wQHJ!+Hd8*CC6cXDF3稗h dG8:^8,ew+K4[SGbeHpe}tx*,ZJt4xQ`yU8\V*"'H Q? -eFF$KҐqۉ4P$ZB2Í -+'wpp~;Հ!?H@x> (tIol ;SqG"= C5Oa*Oo1o*A yLڪprgd)j!HW .5Q U5 |&**C9holéY'e.4μ4uҮ:-ӪFW%[ -0izIS&LBX\ Δwgv=7WxF!;P*n),ej d j( "K竰<41AA!W /!PPSWbA`]kw'pYDµ -$Ѱ'h;*,8%pZ HP#%Ds VH/ -=7RX<]"%d?UǪHpڈ2ő5(I@ESH"ZO.BVBbG˘*̝-Pe ?E4ؕ<{G3 AV&eRYBB̩iR4 e-Lp{Nh$&y|t&zIUU3+"81Ų܀9#WpƧ"{ri:Dߡ ):ӹ -pGO[=U%~+Ջ(=ntBD=f"Q7wG *^ȆUj́HY -z"#|" b Ѝ7 "L >OcFK"6"!: qUoSC,4qz:en5TtO -TP(0_|&-8Uư;RQf[o:uݡM -JNe (buͣ> " ^&qH5LJ8J<6&R"*Hb"0eqOF/*3 -. )M㑏YҋYST 8^਷ :2,^&M}fH%"3 DzTyEGXd[5<{Xc8 -8dꞆK(1!hw?m^w~s 7aBKx:(6>;j-Mxš &ygyA J/, lK`aVKO&F QBpOfw% AK<ଔ=]݈=ãxfrNa,fN &mMS3cL?A3#6u-Z܊ulH&?[[b,u/_ԩ5W -18ٿԥ۴|L>HRqމR(xžɤ56%1 -{PVFO֌hqaݤjS&@'ЍW,`pQᵘZӟO iır:Istn ɑAn#bc5Q#朦=?O!0 4\_IE.l U?c#$ln#FCiP%o&$[cy')PSI7o"VV8YHUA]TW?P׋^yVwϝ7?R4RPktvVL:G񻳘wh -h5wF^Nbte}ºY05v[O,@h1Kg!bEZP7'۬EDeMʘ/pmwIhS??WIpwJhyx]N0CjjSci?7x TZ~;;ХI v3'cd7C7?{MMff1-Os/n?'c݌oe8 ~nA -x ctÄc!]Sj`_uS01Ө?KOc8MǷ!^ğ`,? Eri,*(XDϹ=^ 3; [}<'vd%?p{ta=.(Ȑx"ipYye_@O/|xAU?OS/&)LM_/kD -Ŏ?^M}??Ovc0JOj:GwI!YZ?x=x߇ sA>?À+$=)mFǯ[lvPt_9Sh8Z{R={gG bktqLw=. G!"%b>%_r[\] Y~kF_)Gs|I2?ʰw~ĺjo /J ۘyJOsɬ!@HQ)fCAacn(ٚ :aD]aCE"P0|k&@hL섑?Q]@!%xe8(N-HQ:B?wټA{%' 9 -Բxs'̳8Fpd{cp6Wi怑aDlC[e'=d7ktR -.JA@JNH+Đ*f߲ͦ!¢l-!sP6: - - cP.+1`p% ¨3DRk 91^;]N<(E'e*+80Z#P)(}C%ǔ46֤OʙP5p,^'}O/pE/ j؟&e˟ׄ6*,V!Me/7oFFyr4a~It=S ` -S`2}08e =?>?>=&}ܩl+9KbZ) -99{c+o) -QD?AZRIMGԲݏ?ߝ=ӮkwZ5d9f?|1 2ΒȾD2h1x8i-CMc_߯1҃1lD!yۘ-Gg@|:ig5&rlA)9~ hEkԑ?jX)v,3.נZ!K)%relefΔ6#ʓX-ւƝtyNjϧFb:"jdc]gւb1Fh+Ydٰt+ּ!cA x3k͍Iw2afNA$A-m0zG{sO!{c_:%5^5т41՚Z-<.˜Y0~[z2K&w_1՘DB{×ag5ؒucaADbӟŏmר3”pvw+y"S|M{H ۘήZ.`r|FvktaVset7L-ꈥ‰9a> c&m,u6:<p1v)ꛍCu;iΰ`< U]pt}a -6] aNU0G} -o4S"o*32qH6M Z w@uQwnJSr_៥\з?Y4iGp'/6bl$ ׯ(v&Ӊ Č k̘cy=ߘa".:z~N?&&;%UI o/u9Y-+:><^ ľˎC/Eo^ 0T%A l Ma~IbࠨI!U翜oڿ}:&|5߿3?3!FW`~g6&;%lB`hFS{_`GW# >ܿ}'=luC7DZk:>]`(5]3P3拙^|m &nDAUO t~aZS[OM'y:pR̡~*v_:Pr8)rj?S% ^wONWpbxx\i뛷kՍQLO;kc^H/!Nkv ze~Mt*pŲ8ך,Dе4~[Wtqe5"'>5?etf[#'3nZs\BE-+Svv~r5nm> GFa}j86W~]\8$NSq9*}{54~%.=\,[k[uޣI],f^NK䳍OE F|9jdM]d2mfA/ mFYLս/ |3dg:Y+}޼32bv%] cA_; ؐ.P6.mԙuhAͺnOY5>l6g`0wr.brx3,}r9ewjd] 9WOGIa@]OwOzNf"@+ }Qg k9[*;(Y`tŰ?q\6-6s(njz\k.ǭٷg=Ɩ3B$a.i mzq9Nz M\΁{do5SE7.סf&^^`~y.Ca /~}А_| tl/^Nom~cOpi=o[cd6< -3Mf^~d?C*.B!zA&FeXXl7mzcFQ X c "̇ԏooAk:GuO.c8zr4 2e\v'YgTA#@wф yIj_[M:0/6ӚL۪̇i;%e\mb_Z{{~0Ds|tuƿo0SbIUW{vvh_-g  ØvTdyBm1sHZʙ!'}=<9=+{}aZ,͋702?G ]Kg|&;ɬ~__p*c¤C[&%| I+5ø|*J@ݡ|H@n8~c ~Ik8wp\6ԅDwNc('Sh?ے 왅 IRjzs!4#j}];|҇sgWT\ӳ7VYMMKqkcKcQMe{ dWUcۛ[('*[4[ţֲݘ!M"7OrmQ(N(7_5ݼ&~w٬!h}.;F+3֍x|ʍeN~/Nj9̴MM6QO -6Q:ױH(W<7' 5l{e>/s'pPW5*][_#n/y -ƣGE|Q[x=7d?^G%N:Prc.L<&Qb<-/r8QvWٴw|\oy==UWF*tyNx5?^Ɓw庽-/"+LCx&Gq/9XB~×Ӄk"҅na;^]my_@jF H=⩃lX\wN - ^y@{pKOnr==D#ŁU"WĤs0*:~ U5艉y^yN"hS ZTEWb1mOי#]^55} -DB{=xɄN] ɽrOO'Wdy-sn%nEہ9'lA\{ ߁lΔ(x(Lna.pr9ҧk:t_ΞրI{դz!@ɢ5G{/v@ev2DTuTRN~ {[:K*h>&!mDiOr'(.WQFIM̷A[hXB7?5P.2m.z6#Ψ"@(:,dsfGnRKtEmѵO ƥD)YɦzEKn6ߢH]m+r.oư%0ܫ ]GAˆ\z~p27iz "a$RXL{b n!o*bJ{U]@Hzˇe;Nԟ0zy%ѨLFh7[h{gi*KTp=E_?[Wjp7>G{{M픋Zv| խ7q~Vʦ]}N}]k\Ԟ6A{%tI 'f`|j_k<-OW!mqw<g;A,{]m.Y{yk0_p67#<0 6\:$uLm^H'ds)gR/sX6+){oZmMv[^ܱGJv ;}!Yꄲ[vLH{jTnt/&^#fUB'3ȿ.1dJ.gWF9P|Uv~<>i=BCBzCXpL((fd^T8y"oZ%WGc`7kv MX+ ,;ztЅ@S 9voAiN;Ȧ 5HH8m?` |"ֹ'&]I\4oycw*qRN\,uuji -_s.t.jIZX#6jȖϐVMd UsrL&>?89jXYL$Vk |kLs =@/3b~duħI+D&ym,뿭-[4V:릻cyfAF#Rڷ/XKGЫlb4AwQY*.a `6|ŎIk&Nw& 7 KCRa'E{EVl[6 'OLK ddjfCjC}2Ϯ^CB$+l7UYL"dEl j}7 ǣ^h?߯ׄK^f|#~Y)@n^5>l?(vd.%rڴRMo#[{<Z V=5/+}$ԏ*g'+J:TD\{M#A6F sŎsNĩ;sn۳n/+t'Wv(QozZ~r84x~fJ{^hKWkRxta<\m+9&#)W\G/*6u -M;4i=vc6y̡}Jk9ݻ†k"߈]83wd/jf$UX:v2iD2K-.tϗϗc=7JZcT2¶sqEk# .QIvΘwjsѵBN쩽>? c1:LsRH:?s/zO6_?Ue,®^OG}BšzyP`."@j%_ -XµZ7f']*>ӎM0%EfD|\>>SpP c55ǃwiLN)])F bˋG}-gǕjv *_;kpQ1cdzD:Y,M /$b 1VSp6J98$Q!gß|DLAYkO\}74d$e6LX8wHK˰pw7d'c0,> NqAVI>wۜ='1"]e~?%)ѥ$ -%STud^eGvs΀xꭗ-!-km[DzwI7} C5I Í*4{JM}pvj^lQ1m]jmvSAN5אfJ.1}[vG58uVغwDdrl~lE@ ]h鴏pZ8e} |#OUR ;l% #k"x2N - >_fcD^Ժd d.U4ϕgu~(a_iov0L=='cC4$n8켥wy;u`Cv<^^'֣9"x>bIcWv>{obPUݐ}g4~1*r8 wM 'Sy mߞ~\|ҫWr&wķ!Kyu 9}x+ly/cD]vy'ycKƍe;Y}_s ??_h>rЀk~d$u{ P%m VER;‘ ?ߎlN[^EԐؿȞ4]+f4t*ʇ™7Zx~% - Cqp!t~׎^RDE{dh~g7-,kz,$gwt\lwU8;D'qRvRw.k8 -TkWC1Z'b'Фb[bu[g%2h>zZs+9~8e*)v"kTB?v:$B&rWzO^".t7THGJ_^K\# =>em.xb4?/Bk;.&fi,q-ݞ,p'rߖ/r|񊧰s~6g;[^"3*Vѡ6{;]Z_#(|<4bz(F1#^5 -4/?SrNCݸhRNFNdn=EWUjYm]GU mYoWeu_vߒg'FUk;E8V늱a>\=x8˽D"L&hȔ]TM; -qho7{ɞM\(=͵|2Z -/Ż/ʾCqR>o 7ȝV^t,$CջToVjM>^P˟q?ԕt^IKo-'W-\OץBo뿻R-ェ'Z =8_Jv34d\[^etCO|u cOn!wdc9eƽX퇕K?mnynVp蛜אxi^ -܎wZx𷎸arvsƕԎwh߮K@ -=_CᓝMx? iyy.ݳյ?qT~+*GuȕR'+Ti%jVvGڍuOFkAD( -GN:-xXSNnwKttUC$y t~@;'{|X*Nr`|$?ߎY䉘o> -k-jJ'}mrE9v4c#vwNFdmNũ+k+7YKc1|;F5uH>I/;fryvڟi8͉ۯ\9Jo -Up^ \a)i5i~)g*ɫvr\Yh~={Ju^r_L jV_w;2.ūUBVVыucVIHKVޖG#޵[tpɉcj[<Stv+rV[hK}={#-g^ïn~ ;~V'Ab> zfyx>;$vZWyJ[bܚ5'~Z9ڹ%ٛJt7u_yx4y2d߸(<*bh} _)\Iq[  o1<)- -חco ۶r8Jw zNJ7ˋ $3B1#Oz󪿞(bxT[1骠NJ%g/ɓVMWX5Qh>^SHgQGظ;ݻOq3ylt^Yy)w*VGV^>(?wP;KvۃF:{;˹o柎c50PWRk~YUNql. -ڝfN-q6[=3 ?{ |#u2:_d>_ՅFwŽ&HX<קAIyٽ<;w|&J_<+S'X2`O\e`5c?{m>pZ΢z6|sWDs϶0Kc~vyb/B+xubYb`%'>LqΣo}vw?.2;ŃR[ivޠ3yR:WJHJ>mp3~G祊^)6+1+=φ۱z^?VsR-z{ugP7YcEp@6}4߮^gl/"gwv_;MM\Җ+\njYLtj[ToaNW̗'/۽@,r4 -b2ϔ/ -1&-WOJkO튷uޞbQ JmWP/wZJ{șX_Ůq=\wK7qvu7~!JTҳ.wUy:U[?zA0`39DŜz s1&_Z]|QO")єn6*k{%OՈj*X'nʼn.MsE!tYZfЖ%+Y~V4h4,,aJG# -XZq [NhNԶ_w:ZG#eYKѻ1혨+bIwI+>W~ZWm"TȑhZ];bvzSxZ#xuoFCbux2tWkb|1XDz*<ȇ%܊'~&{L~vEMd.p!ishJmmhLֵ-AEF2oO=4~W+?i^jutoC,ߪQ{4vUu5y["®:UJVxy5EWjn5^tVV7֝͟4cͺA$w/'TG3Ǹ|"HLˁn[{:cn -^ D{Xf鳤wʡdx_PVmj}ѣԘfN!$x;+/q&2M M|Pҹaz)l !H;̵4ūuf<`0=Bu}ϕkǸUrg]˹r,0/̑EhK.փگQɴg [k Yw7ʭ5ٯ_֪Mm8<8a,j`vGQm7\U(ue^o?1bulyMD&ۣ: gjQUNl-Xxi@-)mAjnN_8?4VhS.Q{2]I$w$mQq f]o=.r?3pR%5 (EQze?ӶP]&͑S6;w6+Q'k -Ι;z[Y@kKּMکy^&N'e^X *PkZ$}(?.53~ 77>M p2:tKƯ] .w&xu>v+l[{pk2tߣɴa#dfu';}69q>h q4C *9Y1o)Gn~ZxiӭYU>bΪ݌ABOP6*uu 4ek!2XuWO9=佐p/SWNgY.T?1SF:6t*z{]¬OvW0f1ߙjvqguڸv9AZhZQ nn1/c0%"C_Vh;lEEcImlVW{+ Ϊa'/{,(2zp -eG̊g5jF%(yѽj?>2^Lq<c#P[Su-W3TSw潀ZjpuY{Q\#^O{)j[V*@FB]ld"6kdwku23pq]Ahj!vPG+Ըշ`\ P&'QVm Ǟ+ޯa =Z'mҚ_J<[,Ħ,i-U η ݞʗ-Imnt2IDeK՚^ kd`ckT㞒|I,\&Y>Gu<:6,_Ě)JQߓZg|Ao9-C֗kslw5 Q7bls)ceIhI<1OG |8ċ"&xV΍)\g9Ml&R%39TE("FoϰUXSGYj [qr%iCuAEz1p0 Ba~IX'V)PvL}f'7#p8D:B|>А>YM)ֈڵMVR<<Ƭm Z {-P]^N3/U̷F[/GzN|a+N'W"m7r.NJ|S^~A3] N/i8U$W8<ئ;CQ=T@VQuv>W2SX4E\*0~O,Kp7'n{uVPREbSfLeUY> +t׵t9\R H-O#[.Q~UN'0)KDDJib0\)¦[Ld?#=J&f:19I`i[la騽2XE_iB[b>hG1,@$Ζy?ɢpVb?Bgs0E=4VR[Mt{! ,qv\nI Y1I!"_V{cgDKY׻pU|)VBe"A?S£p4$A}(A;}/@FnO^:/O(,o2J)YGcYit%,zLC7w]b2Z*yx٢k,w"j]e> x2QXbՏ .Pn^zM9|cu}Oe㿗^{1U5P6(rj{׵5+?`*j-eOĸ]mU?ڎQm0{9aQ_vp 'l',$e;齵 w)eÛ_ G+v;X $R[La?k_ +\J$QvrMJ9^9Fo!g f,.ȽT?(?DOքUSIh/e -?&w tn P,VR. k(x{-/5lG$V1 hDb3KaK=D'{LTw]í)$/t ЌJ^p) ﵤ@fI!x W%jTLIef|#uʣLV-Gne{qA -l':MUD:C3CNW,T}EAj1wM -{f0 ub9%AXK`+k"jx}z |q^!cALK=,Zcq$ nѕ{WLiFش`~R֗bxR*"^ݷ8vͫ.0 K¤=Jy[owX;A¦,J//_BmS1jb[: Jx;oS/NWVIni1;5|pY0bBY v)bC\ݎ|{d :KPMuc+7,:w͔p/V3]d5uȟïP -u{m4](~PrnMyQbe:XdcA}Kݤ}u>*c$TĂ:Oa-WMU/ 5gJM*U8Qè""TyQ~ 4]uVkܚJ8 j(V%sa,pqٙjE-puPó0|5>:`%_f/,bB~0#1]þL,i3cB|O"X2H/,]p )zwA[+KIV#[>;t liVM6EvѨF!RG6dԕV~[-{R/d!9'b_yBB.jM'i#dϻf4'Z#2KPF06R#0:A>=NweRPSwυ7іp=.6a7CXRqdfPQI->v-"PѬ^1j`k7}~o[,_ҬPN-=6mϗX /7+F-^8`J -U,6jʹ*j=jVM.8pKj3#ɬ(RURl5y7VvT>{ؔ/f+![ѯd0LER zeOPT;"kT)/d>z="`SHj%7@?~&I8[9@K_%PG+̿9u~ÏTysVWLbtqU;jr -\,1WW ]o۷|.xش=ڶN_O5[`H4˾2# -&xyّԒ99+:Sb*I-I}2*-IE}߫Zvi;if:FC~'@N-}9ﲹW=+نo7뒂qK;>ڸk@͒A)&J{i,Y]*]FyRHOexMJڝݓų;ZѷA}oqN;Wb؄ -iAzq.+X7 - }1"^)Ҽ־s:^NZj4+kk-h%२9i-wJAp mڵwNț,roU7llu/{ -ц1ȅ1?ϯGaD\hi[b{!U7gLlb -xTY9Yt&66J޵o7z+@;ňzXt˝w Ni:k -JFU0Rzo]!Zx&|Eo -=67*oTzf\ʕzzf]+o5[/xQ$5c[﯂PA[͍ Y+͵=VW&^6&~&P|'5.[Π ь%RGw]so[JAղ?fׁ4ܰ6JtjDKaS*Wfs˼ۋR5Lgje1VZ_ir۠+ -Z pjƴ;r87_)bR;o7+LgNj'1` $2G9v܌-=w– `G㭨'R3u"At -;M4᩾֬@-tzg: df]#y<{8XK:Rz.tzpAښ 'jT덨u(g-*MԃsQOr @ʤ^"pUvrD:G BצfjƬ"VlwtU d/+~0?ls#V|lB;nEUu=4ҴGJשּ&) jBFFxH-sŃ`Oys2Iix_s[WK8yܿ7%,2'hwУ_'oYg.7C?w/#ފk/_%W3^Fmm7'j\VBukźfJ5emb,Y -Oxj~?l<:t ^ŧhxm/,kn6=$`n-6Bu ZY6;P;P,e^O#R^e*Y̾}V2 -aխ3aE޶Ì0M -#\t~4xq:adl4fرGJ5^<Ó֪U#)$e R - -4͎Zqj!_C;c}{ -_0;]U9"靮2zAz <^Bd7. V8p~\a~H_׿ Pox0簸q]Ŋ8/x_|jWRTXtVm\#Av"쮏5bcuy?_b -eЩpY1Cc+d,3t9u.[`)')ۣnjIy'`' wU50*v@N/zSi^t[xS.Dž/d e)6 ^Z2ޗ">~ZGv⤼]_&e+hvRlne6q霒 $v29<^t͋q|,j :ݥՙy*jU^nM| '-τW,8 ]I?nT͚o# 炟2Q? Ftpev mmrH%DtLFvhn$z Y䗕 ,R3}>,t'֗r( JVR@F XdME~_;J!ѢF2~LIL{5wWD*Lc <֛;~fӦ?^?B}M/.ٻ~RC޿|/Ot\>7( :0ūcg73´J>D^?HmLFdK@N8W[I}#am-+&T+Y$ XF9(fH`j7ISc1 xNF'v᭵ʖq>j!X~LIY-DSlc2BmꜲ|Q PӽNRP"lo74g5:T= -֐>2v3pJ|b}ʶV|g-AJ#Ӥ>[(MTAz 8X6=px5 ;׮4{0ȌbfCoBɧ~ -f!bŪF0F.lvZW֖@q惉'o|4Gf,rЧ/θ 4FXqrׯI-K]yc/GtQW;xmr*$Ict]H#^xKe`;:O$+Cr)(d >)M?E&ы^m(KpH1T5=yX/iR>0@Z;`;Ʈ( vfWOQॱ|tϗIY]UWjN*^t`eVg /W1_v7YkQ=sGXaJ!5p[pمBZZ1FUk -HcbO^j==QP~ rۨ-o8MY Uo!R 7gGJ}(-c$J69p%EE -x5t>Nm(ၺ,Nb6Pq*YFz[H 'G^ VOxti+ؕj.^Шsw5Niͨ"{]%y + lqd('XZgl2ZU'83~<)G0 - g+q翷=s֬] ; ?y·3n}nK,D{W$_7Cf˺VT[ޓh\ubj"H6;'WZ/,lr*L,m`k=|Ͻ"o2ɦ~TOyNjJ@}te8f)2rP&;ᦁ eUQ kcݠ iYfٯD{s/! :ivv)gxU="蜯d[Unkn5ټk4+,hvx3 -f"2/lQw,]}50c;P[+N厼[j5,@abgҔ0[[71ef2-E+gCF~λIZ&eRSGrbn`ʓKmsӵpM7HԤt{M)#PLzv !مtf?]_l)$vUO b>y0o׷Q،N~:A*|ʹP؛"zvo"xО6β3ޅ6X6=˱ 3jeZ\9e"#fp־nxx*K+?>/.*_J_$ \άƢ&P*XsZ^o -+8$XB=>rT@@ZpWaUj-j9X{@潵D ˡ鼈$.Ͽ`eLޔTn-.),i.K(mڷ})ĩ䱩텔ë́AY%Ǹu&e/Iv~ uAyչ5H0mgxVQlt[#_= Ӏl˂?m fm^w[;9j81_qs|A1fe6P×JuQ?+K|ܦ+MTvʟՙ!Pt jI_r%EKk b&"z=e^RMʼЪמR\d2g屷w bf\VF۶Q1_AtPZf-k0u7m3ZEW.I3T( pF׎?9 -}sGYGbz\~ldm٢_Z]2 TfyM"Hn=άeCGRbInOզkP0ܨw!Fƭȥ6T9atTI}Neuqp͟"ҳo'8h'V븹QM2{OEv. - '慦=A)akc+ e?CpJ-gΣY| 7@?~e΍[ٳE[DfM/R+GE~uKE/5 ,f h; F5Vx,=@ъ(SV:_fa.*m@Wl# 6A,Ž&V3ƹdSOGl -IM[4wWQK^$Ȟ#hZ%T8౯,ٱZpX2>ߍ-}[[,vs[ק?i`40iI-Q;#\ mw}ºfYIAdtΰ_FKg0!Z˷iRc֘5f; _3%J{cFto~㼸4M׫R6mY. b+v*Nx+ή??sKU -E0b@ 9 9b{~ͤX֜VU (X,z0@@'(\7y8O⬪O庻T.1}yr;drczW<4|s36en;,tImTĊecߐpfPȹ뵬( 3~.+]|ӂ>8(^rA>g z]n=B1z\Sn`T5$ՋA x ty[鯺н~-;N?*O֙2 {-jZ,Սr[3,Ѻ^A{WI+v3NAd֠ 9pUu6|T{|M:j]tC+FV;eAϳgOg0ڬ΢$N(r"mAu};k-X !rTލ)"j0j $jݞt^M[Ie/]wlkݏ:XHUkhI9ð6VWi wyHTAl)OZFi.XҬ|-ijn]f;Y8Y%C%.3 -cQ˃ɽ!SC9>C.:F,)Nokf45 9RK/Zh'e $o;ua]4H+ }B9%H*&4N_#ຢYI|&Q?Nvc=.nNl.'3ZB֖߳86]YVKu(S*%J;5 Rd,r9zCe %uQ*nƤ3Kb<[H|h95 ~׻wn:uD.}2:̘kPw\!NRL۟,`30K^[w0#6CyMG -lO'UT^E7_ S 9bh]Yâa];ucLaߟ(]V[K<8K"q`n[PqF`KM^oIZQ D*E^z4+։/H#gJ"̹(ŬjyE5 H*n}q$"5z9B780]YW,S/s`I-|$hUSWyT\fvԆ~!_ޯeFdoYpy'{7iV&X9YmQoQ-  8Q"LI>2Uel^"krsfִĝ|J`~{KBؒӚ\oi8sq`7VSj7K݆ܗdvdZiZ9P5{^}&_JIaR/ 4\1\#jcoݒrqu{x?Z#8v_Hw_zIu#-pb(˽q(mh%5a -)=hf:-; \_t$Mވ\lNWp:2kfKOq.MhG_٩rd*@~*%]~p0F 2F\΄݄t{N?"pplN4Ăam^.yy%3N&s: ɾb_QJX=eë> F)4g߬_S`B#l1VJB/}]/:|֬Cױ/T -21*X/ #hMqEOIaMߐE6m:_vQdpz=)K:a"BoNa de.D|]/ |mrbj{": -g̎VQ:8̉E|”3v5Sj1+FezK]YrҪjvA -T"Gz9A k(\/%+pJ~dhJpe͡Z)T _ƿ@&v>@?_(afϏrTW󮋊s_R+Z\=O7aBf7a#0z&,e"yʮ!SَEsд|&Q .EFFI~ ǹV4+t1\TQ5Ԥ)uxgkB*Cu<Ǝ׻W|oX.ƽX.d7SR9>2tD Dpc:Cq:kwG${3ϥѯ:~>vc?--\"d=s,U\FOAX7دUncKv36fK]t- |5ciD0fҘ9ȯJȜ{hƨGy<%.ߩ$YvT$V%2,0suط&Y5ϾA@TK"53v/O=io5i1!u3:8ҹzi23v)H`c&^))uf-ZIO1L'=Ј#[EkH>ZOE\zR^Ӓו@&W_Ez$C6(qkq:8gW\|dr,~r""/,T5D7}:w2"PM ap#UݼQQG`:־KR!Wjjv &pD<\2m|̑֊&ۃz\࿌K?T6R0zQ7%n6m5k qo$#`  ,MuI?tJ*Ū6B1YԤ.,X4zw-+d/~Z3>sjTX VgQU޲]"OXϭbE]?wSxY[ߺ(TV PLq -z]QSDJ{d`3TtL[[W9p&޼?Vv8ijܐ59pk9l7=r>|zV͛:I^^c RJ+mu^2讼r"ϐEΉsZ,]? ՜]I:Es~p -clu}`entbmz>n)YrJӷ"Գg(Ѓ..* &g:B-OFnRBGm9l3۩̗ɔ|gD>ز<-;Wc#8rvƯ9爮ΖxK|8dL-Zzlσ%d3yD5Zx9\OݘOL8H,٤M7ˎS%.6) jX_ -Tz+ͻ*(u`Y3;jn:Ҫq^;R.m/a| n׿TJYx =c -nM׃Iwd˝y=1&DHFE+W.ӎ6k@VU2}I- mٲ12Fe?ʬ,WVWN oQgl^ \e<rpկt4M=ΕϺU] Epd,A5bN&ztz<+s-jD̎s {__]w*Цj ٸ^wn.0@+m L(28ʼU0OnӬv)tvhĺxB)UYX ɳ,M-Xǜ8!0nRNCzʺu'S۷zGnsҮk%b@/v1ZN[I۳S;F~7A]'l׍OJ Eiׁo`cUvmnWeh_j>am 2ِ m`r#o/չm|~m[r$=B -2TXi[X<~ā+JVp0ru[^>b^+s*jqHY߾D<;9?' y> h~j#K$vPc-Z™N7"=uz4|g q2]֧*!clp2i? biw`m[gzd '6H?6s;f;ltq`ϔ,"9zɗF}ꎾ0pk lQE5m.\Cr +G?͘϶,Ncy bS%OqL8²4-X.g:Iܶk`A蝍t -][N1FJ1=rG&%0f7 -wY0·KD(ت\X+jso^p'h0;/g~X0Hm mD2zmcG–.}( l/c-L&r1xTK1Z!"g~N?Ewx^ʝ)=1/ʧ3m%bXogzo@(p[T-G!H 2cJ i߃Rz4fZoGh< yè@KBM'z,j`p옌\L7"iYyzͪմ)W~ c\v?gSBm^/3="$ρa98H NeTuQ(f|m{z"0+'o \_9ˡ'»uCĬv*-2ƝvȼxsGyq^ -UDtJd WjX.YۏO4ubnIe].CIQ7gT!.ykլ>Q)/6C:᡽fk$^T+eK'ٺ7VښsӼrXKnLl>"6*,@ϋz򊬻,da*^Zd1֤ Vw2mVG8ڞwuWx/g|ͧ +.~ NsG^dV;?&Yn`ɋʹAA _-#ΆLtNS^ԭ~{UNNEڻC&`bK83 a:gd79topBqk،9m:ckN -&ou) ^eq@KJ!lZz5]裋(ݧwwG: -,{;q+JMF܀tu:#^ Dye],Y7n~O*>`J>q0c(L1ka6O]QmV EawҾOBRmC笀];)؊;^f]8$f0@e^:ݟ3c$cR"*Rrs¬5ٔ+w;v*`ة_F\ܫ/|g &1,)mm1t@J3NYX!_jX} i3;sN+y-ޜ}xqb g@D?@|&F{xʆzDemeaKxd1i_kc5/*%רpP]w tWT0ͼLʗJ)zS˹.bV8;֥zsIa /O22Y3*}]D-&VE?/rµ7u`sNae.`pl3SאpW3eT-ªNySt.OڭN#=2>ϞOpn?Bg[9ǝ&CnW v@i3G;{wr;Wj34Ea3ۑnX<"l47"^Au_%sH|wnKn3XʧḥU0RJ&%IzUiNqKDuL\Wos,~ha}avɢ>1_u92ASښzߚPeUNZx80@@~nJA?~|rଡ6_Y*H &ɏSecU"(Xf+K%(藙x -A+pSzR@<{yvН9|.ԍ/ٍž_ jLH3HnU. Rk ^W[wc27 endstream endobj 292 0 obj <>stream -XY/xX yUEDpVOÈiVu!ϱ 5}6 |o5RυTXm?w؁˾@`nScӐo"7bAd\yjyrhB)]sp%y &jwuqjk ֮R75߀Utђpvֱn.%G> 2>:*é"N$p?oGϝD@H=@ڦ^ -t.M A*n!s_'M6 q~dVjK}]c53Q$BL&^ħ=̩t۪TCE6t ?U,37(-O?Tke!%c.*4\LV7Ӯ3DTٞյ*?Ԯ[@7JP[J lm/2Y6sHJO%\ԑҿ TmIA1YхΕYŊ;^=xRV# uz{}]ϣ}C76lť|LT!首a[WmgMAqքpy$uLQb&*F 0|o0v9#zc5޵=-= G5 CGWҕVnycM^];,V@o""V<়s*VvfUg`jcxuM 68y{բETz~q%&u8|Ci/ -$"sUZH|0Ui!h×1%f^i+p Af&}R.e =gk\,>dC 'T@*BKR޿6_qz(IܮY[k̟c%V*jl̛hc{+6SM]q}.?ϖ m& M -e} 0>o]m@xQzɼ^J_%XYƄgRHWQo6̑v]z6\-xߍ^joR>o|V|U fMD|pZX 2+˧;Y@3;pOú_-|<˓0ƚ*nLVSyI=kWG T=m+dܥI Ut1ԇjnYQ|p)wciQ#6.3fMzr @t))wC8u_7=b[Aq|汃2`#RtCr5hM5ya2&ԤmEi(7U'vTO+P.as@*wjr+IEzxuP,r^ 8 -%Ң-:|ki3Qiϓ^?kH[ PmoxBD1\<ڱ`sK|e22RD2ZJZ~:A6}vy\Á:DтϩOi٣+:Ë,`ui֤C G̻ e,Դcy|%N0$]%O;:cd47EXYctwPDrh(}d~[j3^ݸĄpXԁZH󔖂EDz'K&ӣ.g)6R?~ ɣ[^οNg_ڕ:CuL!ʵZyAK&9TV~p%ee A6-vS~ЭE.ø#Vhug'LO&ɧU`ps6a>+!s5:6w\`;?8Bhu -Ws 7e?nq3С7ü.VC Mi<;[4C'3wݍ͉*¨gjY lcH|ϒW fxY[_ޠbF/s)9̹f|ȼW,5yzs -zk| 2qCN 4c07@a)O`aͼr%.Npk-~=X 8A+a/<2W"2+XoRܳy?/^H%MCx1+[!GM=c\&˓Ɂbc٪EPjI'7q+cn3fZmɔ  [I#GOf_OUK=ԑl#xᣚk+힥RK:$' /фd| QH.L΄`;O{{ *RܐԷ{BUnjnrq֘YJteI -67mWBu$`L~U)7g~+_lhd'^-~6w2)cu"\-'AbXJڠMٙ3;j%w'ĝ2ʿ;,.w"c֎Q! *޽c%WBȋŵ^IǞxʪb4̵\·ꆏO/pMղ[O)0# >=_ ?|TNYWKW;Cg /<`;A -؊]P7+yNVg}pEj%C͍^ڻWdso%j& kOӑ6KW\{1bUQQ1whlKROnDva`u5nC7Oun 'Dc0W*s/uj~8?CO1iu\~.&=Z|w9)2Iy{y y+rm)@}{]~)dC'7W?4[\7]ͧ>k]F!~3~4K:vI9V0 ܷvRia{Mƌr8:kggm9]l`H.H:NR4L^aƭnAXk6m_h7vLHb.8&wDHHBՐ;+,YtdcWc'Czq"v]^Rj©r2- -܊uc$޻\_׏?@GӒOm?8cu]T_3iEB[+n -uW}󅖺Q8&lYXOS3?Tlf|w blNf Ns4 ֜p;'9 Y]Y1ʦ3دd]0r&|:hc\+,+ t^7mf`i P1 :ى9'eODR 󊬓KtI)1\N aY2"67S4l7f"W֕pz{dO. Xcӷ\ Yo@8^pOni̹^j"EU(;^Y \Z |hwKҷҭhDqH%e7G= h  V]6ޘ+W,qZKtA 9b˞vrG=N V,oZ~`͘*h‹|%яUQvfs = \pi%{gB~Z-{vڔ̢qh*J`!ג&O9Wyf |,}U>7?uү qՅ$Ո,H(IW.lK;uꕱc~e5p$WMLb9G݂Y)ק. \Zy)|@>tZRoD㝎 [6$b[YssUOLxT/-]QTW?V> 'V Ҟ]5b)j86Փ~˲#dZxo҉^;0Ŋ -_A잶IEpBySv3+t,͠zM{M/ +>d횣DDIkWޑ`sX tY*!U`_y7\'[0WFB%=B. A&,@~j"+u#뻶Tn%@s9,Olֹ0讞5guu]VrziFߦ˟b 5B/O3I+ss2  Ԛ*k!U {)8)eRZkJ?g9Ipב&|i?%eMg|l?G*_S>o6 L;N"nW(gk{ b,S ny3zmU`E=s946jڈXw}cϱe Swn#Q->nlUT'V6Am$n;X h ]0hY:1='w͌[ `/_ҏU>l+0ea[bpqVT\ߤߥ0=TSspSi֊{Agۼ=f?gee_(2Gi)˕`]fډ |_7Rwuz%C.^P]G5[/]t'a/%+dU$]ߝ[3ǐF0H5s*!?_sg<2E J~K]~(t)F7;H۶͝M6NT[/@n7C07֒4|@>6>%/Aʙ U!bp^$ u=B_ m^}z9CG!WY28+(Εmӻ%8[ق9sR;N4alS SʖwvmX -|&3_<ǐ2K.:;4fz׃[.q=c/8 |' Wٵ1G%-efYOtBzxC+ö6o9=,הOe'zܶb0W20]m7370U$$>87Kj'^O4Mڒq\C X\[Mp?GKFr됻Ghp%EY3C#,*6:@RY~Zf89~C 0V% Gut5^ *쎈d2L{ԟ݇$?t{zAͭCō ?[-5wtQ>Zjgݝ4|M\ - fN[ѾTB4Iq[n?smJtFyMd.5Qtup -+ދAHF%C̓ww#,qc -Jm<|:}θ͗aȸ wA.P>B_&PAO>`\ӯ엇NjLo4cKԫzm<_LU-vOٽzE"$y "On>@q/b彶;^<J3~]>Ce٣;SC${k]@Zr~2tg֔n< >=v4" ;$aAϳ֥.dF -eCL=+t pĕӪ^] M{gk?^1I>_Cw"E- f-y@5P&czm:RG'#ÓUpڗXt!3pFܯHbQNJ,׻E#_"doFߜXV$@>Ί{kH0Wρ4.,y -7*o4" ߾`Ew&˝ J^G9a#IM/$tsWxZTJ3΀M~׌V`4QbM7J’&4uYњTu<3܉ 33|gFɽJ:T` wDt JǦu>,Qƴ(q±8p Į!rxt8||Obc~ꢁa}O  :O*Wio]']iU^o'!qKVۊ`l/ӫt_:q}9yr$g$E n0o}>Uo|R{>ew^<{gnZvdҽ0y8a;?@#l:smJ y:!(KF>a694pő^G7]qpX)̤2/j4^23:+9(][Nc1Xq[,Vz@,=Lǭa%WA]+TsM'ʭ (Ti\/%7ǛXO)d96+[i" 4@t]ہ{T_p幥o%N˚NC7)b[R-PnfL2NpaC=,쵰 x|xbWkgi]/xw'$Kov&,.=\y:.4k -眇E9T"<9_eaD+Y[L -gqo^̏P^EQcFU#tFK?Q6Kmb,Dv&)zXT"E -_A+V?4p98*?'C~tcQ jPQ5x^6 ^MR-a)]eTEysjߣd?0*4xM/ :SrzS}? --.: 䌆Tuȫs*4YJ9 o9ImQ7vdsI'R{d랖?|͆Z(rt;i6}Ό|)hVt;A}g]s=Ϝ6! ikavN>6xsI܆pl`f$ -P|@9v~T[I դ\qd) -rnXkv?'$ȮКM\4-;+V+wztBe;~(s"%VAo|8#GssqQKp. -;*_ -]{q!d P}zqCɉU67(ٷT/uIgWC̉nEa85 I}kճ]s9RB앆/h;Ζe3Ć[*)Q7Q+:Qz -~j}r;2rIu52Toj 8/yol$J`$\`JXc &HSQP0\Zr͖ȡsߌ}?9X(-NCN,mԋNcXCT_eNw~14}Se7*v'ܾnr՟==f\u\{s12"E?ɏ!V{#2)KeH틑eR{/x4)v<@bsGBD]4 vx#=t͏\o/ -r'G:fn]"M-- q>DѦϭTO7|\k f.oSEwR>y,I2MT߄{0mܷٽ}ȧQE&X{.CS:v]}_{q.u\I3{YD#F¢r]lpo?GΔuKRv^!>)SW ܵg K<$]"洽\cdQk7YN51z㈡ǐs#[u4t#SΛ[),j.k?Ӌ-o\U$a~2F5&֮Dtn)FJ.@jmy۸,\?&gCYFbo"5\c[Y$RSdAp:ݿ, -00tXt2C,7PK+z[yk\;wF2-}#E?LY&}iXLY5KlxAb)a(z _pT'QK]r쌯@wȓIDEv;…xBax,rS8Uc&7Tv|0=zᣟBxx¤zCfh/#v/0@aA඗6ج"sL [1IJd#Fb].mƮ@.Mly#O㺭j{3.U1:_MjzpX ό-DVwx*} =r6k8v%gS{m$W$Egw.'AЈYx#9v^;mz=n/X!߬B1F~2K9NC^lJS a3GrWf[ _Pԥ Wd(1b{m6q͹VB% c m?0;bs5G< Fd ž)1K.*ibdJ13LuXR`YP\{ѭ|ጫ.}?9b7-TYXJrOz@)oiIQ{yǹ=\krRO)SMV^*؅5-?Izk|iqvm5/}jX x/68/͞f62Qc9_W'g m ~ڲR90l-/YZct;]E}OsSḛ6.gUof鼈koMiU N|45QІh`ׄ /O#DG_0ݮ @.ļ uhuuQ*:1?Wsehmx׼<>8oaSn~J sJJ|e8fswd5`Ɣx")$?  nr&*۞wYeuhQ}3^4ja霚,,4rZە/XnuZhQo @NjրVZivbSj&փɈ+,pb|4dK%\^[5ҧ_FYgmhiգW9R,aW *NPiGFvsHH5'l/FD=\8^Q#`ipuK˽@ -%E GUfLV' -.ĻO(x agZI5Un\`C<:hTmUyL8Esxּⷤ.fL/Mxiِ+aK3cwܞ c,R%?x--<ّ;{Z=i_ajjћP&~K̝&p`nf-*6znZ팯y zßH^B>HkQ/XeϚ!쏴LwT+WNA?jk -r [%3jɓt la%Ab* fD+,K!G :\ :ܹb\KXo՚R0 -\SZ}홒(A ֨=s6m00 ,:H.0&n3h^b-!k+'rĐR>%kNx ES7WRL*g@)`nIj[L =/,%V?{w7,Ai1ǩTQfXo2يe@ae>s󌶹lUJCmS[w~{ @t-03G1țBҒZ#e<-\µ*3w\ cLޯPkռ\>HKc} S|w4s}{+|8\!??N&O/X-o뷜Bw Xj ֧cWu\a\c⿫Fĝ~t8*1khw-FqA`Gy 4@)n~q%]X64N'8zԣGS2A4=UW[ G 9&-٥ֻukR+1uFKJ՛咀 P|{85Hj=3ZdOrzq\v}i@`yPn0,5沨M,\iv+h"jݤ+ k,F':ͭ-oF((2`%4C,sEBC1ntrZ(5fT1TmwTmf2D -:%3:aW:-t1ega fsXq.'tըxvD>svX΂h(;K V5\ĜnlCoxj+L\O+ئCOqre&Y&M@وM,[}jo*߷g(tK'x44]A|rdƐ7gOɡHlE\jYSrW'U}\\H-'pֹ5SB>n r^vxOmnN-ov/9q /9JLJ`Y=)|$nI*c)V! )ʝöAt[~ TRuZ G~|% V3K@ ef'( Zr!xK -έ~ -Cl^hRN0m^GL%"?WAߛa^Rr -ȝ~sԁ4TKkb$zWF.+kYEks4&fg(.?ɶY=U.]7U6 x)f97x}DazxR ٯ-o!pE1ҢyC -'oON=u+< &x ӕo1:e?j]Jε^l@֢da_ܽ~cR< XURsn혔&c; O3Eu.F{OLEN.W!\~B/TT~S'c -UtAKꪈ(@rI /͚s.kщsDaOv)AIJ *v;*pAݩo˓`#ݻhvzz?W Bxʫ#%Pf>ʵFA7r@ Y~L >eKfζ澶d{p{,̗]_ްG(9UL$2z.78. 6{~SR.^nBQ[$+sCo:E^#╱]&fnV+V/Z&ɿ Q}:Ԗݷn,ʨt‡W)j2!?o0ʚMky!M|O[Œ=8{Q\C-:~~X)UbvW<{_p;wsx[ Ǜ *hlJFfHo28 8Z% gleL eHqg??@鑓ŕOJ0HYŁQ;dB1մz(+k~G{UFOgL)խ^]ozqB0m:3^y_{cgJTe$ -]Np,]L( -SUiB"uJ_UvU{e}R]5R5ccNRؾ$W֌NfTj}Bф]pMGjeGԷ%*y-k,(,{ gC5৛r~S0;z,z4.WoimZ)}K7pDTy|ǐ#Ece77RYʺ))1s2X$~QdOrB"h/>톐Ts89f#c}N|H*}?~ D&Lj-~Jp|WJIVy[2G.=,E|17Z3c=1 -.nb7,s#c۟{?&6G -=TLcV`:笣11웭'Di&`QL塛fӠďӆy+4~R^㟕}Ip#)N^R5,Md?Թռu i-6*)4οrJui561i} -3-fGͺq_şj!0[/a' -tH$bcã^ƍJ= HՒ3-ּKIudmu-̧#ʹr#s_*z%~/+ReFDL|O>8x^$O~ϘV&ImS!SJ1'4 tꭌV?A(qGʲNNN3wsPe!lz-ej:i~GAGf>T/^WW` (Zb ۵c 8Magtܻ+{6 f[p``Vna'G5xl+,vwN P+Sɳ`r$z'et DK-c`];^)3 FrhVBݩBjzhݨ݈?afޟ\+Ef_v;zW~ Ԣzާ+vD v&+o1镸~%U~g3n ӓYv%VZҾl>pKΓs_'թb+^nkE$dllE0M[帺eV9/ ߊ\yj퓶0~nM#Ꝼ9&sڏ [i[9OEҳ5^zq[Bާh޷Kޠpqḕi9Zw_79OZO?5zstGK}':ӶYvaj[ztR%e`Ù[ ۉ{nԆvuL ~~R'J;m^xW|6Eym@WOBkuqxmࣩlW <  +b~yluP h=c#v8cy;< H) -*S~s|cEOL@7hŴYƶ2-Un#MfΰU-"e'o7lVHln --eoDiM?Š-9-zۨDe@ub 3:d Av*xwftO%cӌ"clenlV5S¯ͦ`@8EkRKEh w Q:!} -Σ2A*VSʃ^,ZD.zb5ݴքpwy-'?jnYq6r2 !CY&CJ"uc&y: -LnT",2;D( 7(> XFELtI~Lo)) 6ytj>pKjD5FP2Xbno=dGAީERպ!B/~>pn=Đ5mUlwMڌ2K΍z/<שYgo] kz { -[zTdzàZ6!~< >9~rFyS;*Lnq[bӝ>* ~<.Bɥ 񜱊*%Nǜ:.OyX*jqlރv\ ٨S^ڸCYH\ -t~d?qv+RT1SPY/v MHQ" -X&B5WŻ-έA9ήF#L<-IDABw^li.+X_0 -nXjԬFʰqSXr jxqU+ݟްi@_^p|hN('uQ'SqCωTޓ f\8!ީVW)}5GGu8j6rF6y ig2-|jZ3ms]%-G8,Έ)fmԚ;[<5s_%pQ<5;s&].DzϧefX@NFR[+e;?|\x pnxG+^V~t Ui%1SGiďZ#c׵"fe"}CQ&߃ -kS<}}br'{YC (6LX ˞m9y"{ݙ@no6޳b^=>ȳ}*o>v`sZK[3d UP.4 * b`i88E?en=K#Ocgj )jߑ: -x<~ߏmM[rI7Z,4X"Mӟʱo0"ZR7plIjooAHjm:"W/p_oQΪ70i#9oXx,tx(nŤӐĆV\[4YVL]m<&kaO﹑BA -X ]m3'T",ۤ՚,έh[οج(dRn^`}7O{eIVDt01 -? 蘲noLSDm e:RORc$Mk7, -:cz іQnh'/2&yotǛ/)vi'C)TBuB#ȈT鴑E.v:iɖAfwl[ޭU)<#faI~TV8dŶ+{'UN~%RZyy;5ŝ]_w`P#ϰ.KyO:इ/4^tNݵ4Jvە Bh$gһ({q[e2 - a#-Ʊ*I`I%nR+a,nmY]`Lr-jxgsrbgG@ػF൉f~t{7_`gm&;Z܎zyn\<>TUwg8':y4`Wݕ#~#.5nU:}fU~sBV+`G]a6n񀹣:cu8ƫ>[$tmfANCbx *95V}>tmm#{;#t#|@؛F=f>FgZ͙`~iSuk9vTo+e[F_\o8[(VQވУnCb('h{~׊xp;-7#3?n~zwp"4ǰP/ѭ AaG 4X^3wzܦy .l-Wbu-_XjWgQu28^CH ξ~E|q!ABR/{Ul|ޫޢ=A[az~uӳeo be2r7 3\s[]uܮ(W4bO19f:!9qQZaL=W_%'-?q9NV`ed\JTSUНg*sR'C0DT@TTb39g2t*&Yߨ⎢I9ubVߖc)} {+3hZ*z t3QPQ0[xgUf,ɺ̘DVozJ;+rzqSl czyЋ"ZE7Y2[@񍓀HY^-6B2K7y:'Wu34sHU=mг=ywT©5&>%_uYH斳⎖X͵1/t(w{u$Ɨf [߬Q!iiЎd cUw1Vzἴt -;{Ęlrh.܇;XjL#m <3^ꛏIݵTo Mļ.mDU혭j6CC8"_ձg]DKg)B_UX#yۏ17Kf0>{yҠ5Z"+(uzv>p?^ wqXAµ7Xj]j,`] -HJ1$rfQ @J/z6,TFar&+(% {dἕWbٮH!o?L/{h}sQݤIRwr"B/a0y[|bVqw3/b-oР|U=ʸi# 挣±p.$W[lNċX_Q. -dc77_i̥gvc׵f ~ܶwO'y$:T{+<C͕QI6t lmX_p.2SVQ:#J'^vFR6h>R{\ʯ)׀ZE)4]m8>sh-h=jЃMɠی5hrU?sf~w]+Ζn2ۃ`v `e+0٣~^=HUYˡ(񇮔BiE{RkxQ P$?>]+r KwŔï.tôQzzRc?MDoו+y_0ʂo%xXW۝:93^e#}HfQ)raYo|L:jun>)ຯaF˞m9933y(7_j&Om\{&Zxa-/Wj5uJz'a,vNpάb)=IbeW_'i1ҜAYtA8]!RLznϯ%5ĢaGmUN(hQ;Ctq o]li=R)D5=zw~;t%+٨>8hmJ*6ٌS`!>jQtyᮣzJEpoo+[0=RSv[#bJ\8w)e-ɜ$"QlGpr*bc7aX)G5/z".Ӈl]בųq79n+G] x|} 4sWNP7_։θf=G̢磘˘n@9?xDŽ_Te7I֭);X]ΕgjW\R -Muu۹&=SMȍbزXQέ7>tPP3,%ދـ hxa]&ߎ_9~ƏI~bJpy OU}t9oV|PI[ ږ9פJ䭆#=֑뻦dkjlx,[ۉI0k֛Y]iɛk -0Qy(Y;R<Aϲhi\9YtG8ԍ/rΖXZ3'NcϦۏNtY/̥l<&S;0JrcΆl؋cqA -!;G ؿ<"X/#T?Y`J&KCix>5?EcA꧒kz]umr‰kJ=&t錥{+w%IE -_JN6>KgA>{[Ӿaپd#<-ڙGu̺olU2*lwLW KY'`vijbc;jgr_`uqPTSr|m\zfSt9{%5K3e/VRJDU?PpGu>v󮜫K~OU 㛢>#qrI"ܔ/1;N'EUBhis҂RŚUu5%?:`bKY&iŹi'xn魶/,RBO؇p仹aVAz-ga+ǧx핝rx[\MM% 9}hPAMSF -v>@H6V - -U/˃Kǩ'/-I, e㾺lݙ})W+R~P.\9.'+sB?wܫ^\pxu ̕Gj4lzXټ#ك 67i^_[GC[&C'To -Aip,;_wE\Aph+lN83xJ}eͩ%{PF~ANvs)\)8FӉR=[5<䠎?k w] Bd4[;]k<בxZ,]Ev۫?6nvG'oWTZXbX,H.*6O݈qu -;|[@-ԺSt0U)}] 4O;J%w/ʫ0PQ݋f@2XG5ZBV -i+(0ޔOo3{'OU{="r}`ν .@m۞:~fN$gaCx@a҄((5a㸝GKKP~;Ė6'F\yYIatS*}oDگB2*Kt6nQAʤfkUDs=W#FD/kŏ,h!sGV|;+u[ 6D]{iurNї'{l[,nA?&7noA´gʙĵq Q{P^'=½*ϖ6#z˜# zU_eZ (e{Bsa~ՂbH<5i{7k - -R'{VkZtI\œ Ů.l: ]E][Dw 2A޽ -`{̀[8ܚO[uj^2&wzJtվ Qݨy9[qE4:󁼲W6ccN{ӣ)TxԍgZfo%Y8HZqvfYBZӵf5ӂWF{Լ'əK!8R:_Las}`5Ө#REjWYeBp/ڬ_?b]x* c[4+쭑lkP)̥^nwk %R~C -uCvPŠip£"6:ZkC)##[fB0/KlRk ۋ׈Ol;43ʡŃ-N ;D+e<`Kݴ;7b~8\yrs^H9k9NzHD;fz(ycY6GWUd\ Gߐ՟ M.=m("ٕw90m./Sb T|klg%c*^0 >+Fchy5Mz |i#`.׷mМ k;66.mP)a*X!Z{W4vkV'?MFUfkhnO&tY'$Q6Rm#j1,ZZ1Vz?T8ڠ:XjuἹ1MZz|Xb ;0I -j GB0ߍ Ke],܅lD`njGH /[f0=iВ@ǚ։^n/|8bUg  Ch=NVP#9N!?OwGVP3d$wKt%'MoթnmoP7OlޮOsa,qJi5My(odN:}Y0avv2sOƨGGE.?QZIM6fk%AG/gF7Xno߄WƋmμ~7Kdw8CeiL4ݫ' (xFשCʬ ? wñݛol"mw-,BQZ,?$Gɣv{IsH__ {Z>GrtWnSë7GLZٜbB)ť -Aя%qgܟcXٳ?n$'/rB6l#mo>dxǬ-Y7XO={J.IzZ؊0Џ2'6\fA'+;[S -O *7T4QkͪEK&e԰B!}Ʌ@xz7fnw|$n% hk+W0~@{ՆD7 w`Z/* \}:zcrwW0OWݑ-m4G8dޖ F2;-~jwR>fX=#LݏįQ'BsQ%:΢Z811O tz] QŭuطD͐#w~էf7.ƅ|Ϩe>f< unK\}4vK*Dq,q&#y/,%/by䛝2ΗJ-s=ݮ f?hʈZn3M -$FC{Ff簰irWh ?Gt&-VgO<}R 2jY51(^ Jrä$}CqW7h<%Z<8y -֝Z4vW2R+jj Hd3E1r9 O@,]=GE'BQ|Ǩ6JرyQjgwzL& Cdq$VSA ^D_}ͱ3..jr'_%UX} -Cbք6+B_3!,SSnBN䮑f? /S! K}ER<^7"6mj9_R9~ZneM&匛zZ8T fMB./ԡt-*Kvyzq>? Q-|>X) 8Fth\jSՏk~Jk^.!YLѝ9By㏔x%'ؑoEٹԶCӅ'?J ͯPW먩L?)juȶKZ -~t4ۅ-)A^bBVֹ7=*-]]1k't ONX؎,4}O>=!y:+WjxzЍk^6yϚZQc4Gc7u=}i96XOBc%UA[z6X24l)GM~K(CסBʋ꾃~|3i|z*&^m;#TkoPPPa=~2)ޘʸ'Tjܴ=bVa]0ˍr}ӡDDD\oMeǟށq5 -&JOh7OԈu^ƪğ\E_kӷEz U"_rMhx$g uV]M#i }sH=S,Wybf qux1d9bPTɈ[~kJS%hbQǎzy7a#m^jϸuj -Eܐ\B~x!87=׺Uv=^6oQk@S:Y~JV8Eaubaz(ϊB쒰ZL[YZrmfmlz`L}^bj2}61^>v:&췱|oA4,A$R -%t@}bts$J~МUv5xA u夨hXR6Htn>WiUR[^oSS~ ׈֤i}0=V_νo&F_wtu5s%-5\ozQ#ylSApM qmG5\MM- WDpz6dY|rw&X+s0fnu!˼6 mٞ7o6WCec;pxF[gI v[3?szfJbq' UndV @޴] 9'v段 ]d9+~ltdǽVwǯ&vkwEqJH. JXh(mX5O띍x;\ź>K⠣`KǶ.Z -%ȯ̲wg?iugH ':buwRBUTy:u* v yK [W!c܌*]jy)jUfP,t˺R7gڒcv8rI-_[޼+xid3LYZeo($?.n2{Km۬ Pv("7XzjW>A9ggg1>lT:,Fz޸^bh{vin_YdˣZmS)htZOM0g,܋j pZ6tVZL5 5 լ (W\Vc,kFY - ,m߁|Þx, 7A'5\<%Vz{'^:o%AOcY!ҤKg -Uz2m/=I1;YMnU`. iTD YAŹO\@lQoP^FWwJ*@EUVh ,{֥v(Ԧߛ*@$LJṶkWot sF Vu -;9OL/aDpB=nW%k[4Ss'.@}W?Ai'@(In_ؒmWcMz;fh3-kAH!^fe4. nF 8eǬ4Yӏ7t,Zb7WU|xt A?^HKRCN{hslc. 7AߗtUQ_&ҖSm҂ Պ&C,XAb(^T»4xF+SW4{4{6A ]/M9}D_$$c(Qg٭+࢙Ɉ#ISY꺂/*3e5L^[\5I+& -HDkO9*ovb[TB\]%p +G1mzVxŽDqd3@c2AM.> -o]n`HAe|;iRPe ),7CU&]1o-7v+xԊ)LDj_}jʆBGuCPg >h}zjsuh}a*Rt[oiZÇ]Ȱ?}7k+~K|9Z`iNQ,r1pko٤VG47C4:0ƙ=L[F=DՖ˪ds&dZ.&c׷xFS5dNMT<jsQg 93Ǘ;3E -gAqv{[λgo Q [yx't^2p\u]6fz,5_ݷEރE&>i]%[?͂2C2nLx'2l?k{zJ|*Ә!x+t?k߂ -)4qF^GY}s\?\+ -᪭F _m%$535h 9My`pƼڦT1)7*cvr}AL&uH *1 }׃͚@{o3%ƒ%Uo~q6"[.ffUixj̹70*5~Ç鵥 ;_֫iyүJ+,B. Vk٘Yslߍ95A*ZY-%)x;3rl ~ FmDYsX­γx%yLpD(mO{LaOd\P)*5㈓c,M/69QZθ-7C!C:h'x)̮i,07%W_LiW:UlinDb&p7[!@;U5B} cKl:vx7GSy-rÐn5CDOSj=cA=}U^}5<$1֝v=o-/eI[)89;~6 %7_3D]ܧ+>&eQPE/:6>Z#YI|=k*!~ -&s[ڑ%qZ𶝿-4 OjhgS(}6[9,6^"7UȜ[Jzcʗć>;yi:?-MKQf(%صVFVgW.8.~@Fܙ(b'g(-w&,lY*p*MHJ$*($Nnt%_C\ie&/ݲ㺂x+2r̵z$S- &Ce+_Hm}ƂODXrFm=EĄ>(丝4"<|SyX@< .lj~0)z)͢;כ>s+}5Co -/woKTvp -Yar/%Tq5r5ʛR|ӺJ!YQRE |F+g寋쮬S0x]t!X]GS6ɣka,6}5LiLex͵`9I~ژchH+Ũ/-a:ÜGBҁEAX܉CbŶ::jv<}F54xnSWf*(6RT ax -ӭFDkձ?wo:7)du%:OccRP-ىZv)1f?. '`fvFU)lV4]ϩ_<ęRgص4&TWi̦PBm"đ"^, -9psBW}k\u?]U;4yɉES>C1n@>|™@Ƴhb-s-ZD_AJ5/~{zbyܡ`2fg,>u G^ON*8#H7{LQ](?m()כ%$1lKZXϤ"Z#ο haՔԻ(Ejeg/J6RբVZvv aaOH +D{^Ȫ/6ў<"3}ށ1x73)hU?b/юH t<{K wUy#a4ni` 6{̄P"Ί߁rs@+ rMjowlheGgW}2g8O;mp4aӅҖd֊{)T[@J5;gnCDkJk lΤѶbB3K#FKA&j`FcrV;,w5#w;8ݵ5`w/1n,q߷pPxkN[C)ё3@*z-Ym K8/4V< %X%ns}=C'%^-x2e՛5o]U{5̲FR2& ]RٔxԪ+떒Qo_"7r$}5.&}g[UO -{ʞQt:+x 3*O`:a9 XB2$캅\("kL¦!5]7Ƈ>yXz!W2E>73I*ӺÚElDB*#E -E -]f?:Sx_5Q;s~ʏ!)A{œ$1FO(yO71PIE07zTWvQeI5k5#dM-fv4>R9-yLg i|6ĝ,{݃Xt7j{+pu#⇧ 6/lsut=,2oLeōU{nמa26g^z/;E]\Ə=|kBF,L֛xo>zK0|2ke8k1|zI0gwtlKfvp#`#_eՕYqR. މMTvXJ>qrp\}ێ0c)1iUF'q/7Jh4;^y'4wCkp(G ӸOT7СhGkO_x#"YYou<QT<=;t@o߸6'7R>sIm,ތ5OW.4?z=Obsrߣ|YX41&Tek(bóHxrw;)]^ώ f5qġN?ci{5rJgMs,5Ӎ܌tҾoN_.%RA &}QtmXZikѻS)JtyreAﷷ+mkOWi(&X/w9-t?dxfcrF1g~)IHc>{0xat  sΔwA8 v-@R#E׳UooFey6Vw$R8rБSpڗGR/{#R^.'}]zU_-*3?t{ F2BRà_g JU31Ug4h[KeWJ9`@~uh2P? kSίٚȿIePY[ z?$iͼfja$-3耆ߖ3p"t)`8ZS{]GX0OpzHܗ<&j$[j\WyYZJ]Ѕwi<Ġ LG'Z:7{#Y8sevy#ƌoF)f[tӡvjco j>SOgU[ȑI~1/X?*gR&:@Q6sV;~& ngaV^F[U^z!n`YzҎÖ6ڃl<̙)F&nȟO o]՚w[rxHKgU"oRhr\94Ini] Ev',Q_W ೮c/mMKsKB'o}=4^7OU7f#m hdN⫽u_h4V+Fov. BcX^-[ À^yUz1 -/pv5m,X$5@{uX)S ~}~27ʜ.Ej=\1[v28hUj;v-dMI\ -W-D -=w,y**yD.g+ ʠĢA\` lw6L~rRgpRoq*Ootos"_mܖM=n GD;(9Y|xW[v -GpAj ;.)ٷ3Us#F|t˭ېKwG|؋ɞ!R)fm"rG2zInВ-<5VpqF(RY=v# vGc^U]o{tlم߉vAo;LΌePx*q{Dw+΄se>hW.˲YW}ULh8n;1m)8EWFܧZkּ#q?nwŏobO]7kط=|>BRk<׽e G҈UwL|]xlOvubty獯X%i(UMܳ+CZqgFqGL(] W NTǣ}pOޏ#[s6?XNJ:{vuᇵԉ)姯 -)ﲳxuZdgh%Ze\2D#"h Az`lOdt7*&DJ^qF55pY|;Ƴ*fWfݔ&c5ے}~|R\éU.=ޘU= Vō<7BK8M]Ch8I94G ڞ3J9) $mT:Q&/M޸}:=%ةn*W֫!L߭7İ ?;lxDZYSPj[l2yds k .inƻ`>r5jλ5(}V#8;,}R3_Hϴ-Ƙ42b, :XphVJ'rrW5BE@{ꀚ}xɥv⪿L(^ EPQ4#̟ë6R'qGTD[pe?Ȏ3b=;Y{3ǚie 3w5؀pnHv;p7G+ v\yݪǗc^${/poMIn\WG};cs؝B^8u fTsq30wܘCSka܂ZG%yqƛ <5ꛥlnvB䆋֭Lά!AQ/GLYŞFlhDmĠYhk폃1|n -+Z(-6"ǡ|~ -Kzz|C={̭Ȉ}ZXZÒ:lK -%x -t\cY]dgI%grfv -:%SQ-њ}HI6v% -h<ZJrc}CU/'j))ODh=p2?e&/b2 tgnol z+O\AÆ֘5 ->8"S'P\{ `Plm!̞ՅB^ֻ4-_¬sY'OX̍-XZn| MUtuţ9mf=-HPd>?B @v7a`fU0C7%qw!wYr%vhnAUKr0$Z8qo.R•tq+ttƭ˟1- -*tGkl~  qgzw߬=Ƨp(1_\SyƫNz֋D$M<R@e;XG.`߮E;~G]6z/xcoqXRF'IIVn гT%B Qgӳ88];*[Sl[^H;]vu3ܽ/^Eu::kt/]KYr4ɱIiZZ+"OUT*9lSBx3EWlTqHU4o9=fL&h/m! Ud&%5ʉfOysS6:nIùaRep656[e) -mf~?;ǾIkiͶR'<4Oj4Kww SЖoS`<>ƒՅ@ -ԅf5`p}-ug`<::xJV)fv"gdbw6'.ևG)kpAqϜnƫPWTsL[fT,-ZHwïS\lJG㒘S;5 ]*Ρz#"\ժkO}˾؎3 w0x_Wm/ƲW. bŏ*<0<&stl[MmePS}o TOXg%ctZU yq};$ Zk%M6M$63.Sc0SX4PggWʹM#Xl3p mv*1%´\7/q$`K' H; C\z:ai``ճ2;owhm0͗Ƚ1 sXI9y]W4=al=1{ E)iW*"O#+/ _fnOf|uHYZdߎ{8s|$kJ<[mSȃ{7[An-߲C&d_2QMAe#&8uvpCU)8B{]KC_#+%̏O)@}"{gNA9Wf9P -d;=%h~(gS>(0q"ҕfY1?`4S?F3 _B:LPD%@*itV aZ{벾 -҅>‘#灧XSIOဪ G@;*nhY|2 f6&luM>3]1e?;BP=P0hWeDý_kGx1 vQqvNvIIs 3S_n s_7|>vz1tOWt.x[/][j%m_q/HɪHV".|r;y]mdFkʲ4@2O(SWض1Tm -lFz$:qlm -{΍D< ^D_o%H7Ք[Hi¾]w@q̏=Ҹ -QV%G0bm٪s4ג^QR<Y P|UJ;5rMō:s0Eľ%UoIpHE酈䃳=n]}  /)X} ׵y0Oe&sR;h-/!Dždx;f +?e])oᓽgoY މ<!g:ߗFPnH֜z|͏Qdݞd:lOPW;RY -uJ]:Ip,:W#z!{ox9gMUVx(xƋ#~;2PqKZ!حwҟSS4C[I>im0w[<:'Cض!!^=rULdȔ -%+'?>kWFUGm_^>ږ;_\&qC~HsMr6KUL+0n5N,f|-j׊藭ho͢hAC&Wögױ&Owa `?w`Q *svpR5[ ܯLu -1oI]ʟ>ptzLKH#vݫvnu.R&#h [(b}Оyɢ, Y,0Q~2JU;P䥝߂nn?!tx'"/Dc|1L~D5s>')B?;.4) ܼ#?F_xҔC3& .54ힵo&VmwtP?p&U3S?M^ } pי.= ֙NiogGCqg87ymqe">rWlVOmF]( 4ǃ9԰zNlN&ځ_~lGNsUk, z\ШKOҞv*|t<ڪ-۝z!jPcM5/Mb!XMhd՜jEЦe~EG9'kz]aS_ |p s;WMU  DVwɼѭiOrŇO病TEڵO~G$8 gkZSfSc'+xTG|]t;gӆ^v80XwzCT sN :;fOw3S_[PnN -;il$ْEú \j\j$=\L7vϮs+R{6شjw@JzyXAvzլqfB̶5gS}Pۥ]t~@@"ӷ49/t틸p2wA'B*l7̜|l"Hw|vZgac%@J:WvޮΌyKإT9.N+"@ ^yЋ95蔼{|js9=Bbv͖k.|<:%b~r[AQm{;D|(]\ OW}^W~- w i+E WUmf'mr娮"ղ^hDPR-/oaD#صџj>X;/+HI}Gxwrei?[{熖?vY;<[c NrWd J>(ul~#Gigl_r]аfRwo3xtk5),m/ T3pܙ $:{˛.v֗K;67Z&wvS>"na+z7[QX׭ l;`Z&q"?W`׻-Uܭާk +m: F+{H]&[+jmI0Ƭ+֘ -˧u[ \n]nba?6h=4|+)Jֹ=}@wyqrPyvw#ޥu"=cgZ>XbNkC/iKʣ -/)$qRP-Uט1V>/N'#9T5g2 U~Nܳ 5mx]Ms8SnHd{i o,-fj6_7 i<31u9j}Q.o8{ wx.8؄BƷt%M9݊^繙Z]5(Om Ʌu˜21> H"V>Jn1oY#8wjUdw Lm^mJ@?" x;j7j@}bAor>鳈 2착eܖNKs?ڷcW=r'-'+g.rz߮B]˲}V}"zo8?,x3r Lc;WG{bK]@[pl=B՗~L5ߐf,E{;q/*ZS+;,1A $UW$H9mӋ ,@]s*)d,JX~X9'S@GC!84)=㭙YZ ,k$p|tN -q ]g;@`0kZvY \*Ӭ0 YKbr@zJNk(%3d -0|*߅5]uBzdԍxyu~:;]i-@t6ys6H7Hw5MzG"5>vGwȩuJ@2Y |RnU{=.{ٶ~)=m$n^*w-yDC{w?>4"Y$ -}n:6]6gɽct&E+;,>v `![g %`k?C]ħ; :k,FݙF& -mGH29iwzUVi(G5}~SOtX l=6wnȄuBǣ&kD+"S2>Uҋc[Qף;M>PэאJkcL\x/6kXXovǼG.[h'hCW%"qKSފ  ]Ǽȗj} {2-_ӷA2 ܟ6@m(кNޠb8-aCtՊFpUKHo&_tsP2f ߝN7J߭wE PnC(DCZȷk5TW -78P7$XҫsEyض@BԑrwHj~$z$L]n+ |FF_(=KgieP|r~)^zG[}:#FG ޟV2^>DJC -Sz;ƹ̽Kpcn'"aM>V[RY -3Eo-+W9JO`d5M4meME=L - -NZ2cK0zW!9洋?ycIq%zK/:|ا F~JRw=ٰ*9lt;'fˆ Q=xhgVxPݠBiՂ7:>e qŘTgs|,N~6p`"Ç'ɞ[rph!Z(c+,.KƉp+vrTHlG|Tɯ{X0ۉ)ZST˖`UOTۏ,>.Q m]7Jc ?f7^zԵ'Kn7*n~LU_j"}CXߋ6|^DwIٗbȦW*}1:(c'խTPf3z72W_ ˭Ǭ'2*&L% L ܺ/ag%CT?ᤪx {JEb 6 !ksġkpYPF~*InSS"7 y}:lkj3{E ܧYƌ;foZ_]ǹ27kYG w" yw0N^kej/_kMc 0Bkp-ai<ژUO}| -ԑ|'qj7Ao;/_oRسAҍM|i6XNv>JT=S54|yj^?[޶G[ְU!-5҆gm(r5o9^VLW^JBINCUf :綂ږ-! @@@@rQ9g1?iu[ս_թ]gg`ۢcNӏඅNB 8ظzV\{|ĴWĪn7;PwGӍmr]B+ZSUVN.!y ѤlHIwy9Z.Ay|iNFN̊}6ߗꟊ'L&YWܿ={OoGo#-ݪ X;}JH+l󈡐}vZ5F^"aO븂(9r׃A-C}=nYv;i7a'iO|$Eyo:yiU1|/_g5K_-mMXq9]J=`^P1,Q !UdԳq2zמB`]t&6oJ1{Zma]}IXu،\E/ycª4sjnρjog-:K5yv }:8cnP֡-ÁO> %kܹEpe>z}basJ*501[@-A'g_?]ϦvKoތ@Vɣ /wEg%8zςCyM?o5]+%OK뙀!WXe)hf欣Q7Df;BSz3jqkg1#sG[窭Awfk|2w_5E " n*^\ٵI(?4ykpwE-ٳRN188ym] -s=dݬ| rSFH?V3ږA 2 s=I(~QNH 6W -!=-TSS:jL! fE/}_rMȡ==JsZz~T6x*xw>Td~X Ay ~-rX`棼:tnv9k]674pgnn'g:X|714P:fh468 ;o`5g*C;Bb'yN̲w&`1T -bck[< /-{[diuƺgv2>i8 -zjFTw 5fN*̠ۆ=oG o %&,̉$onN)HzVJj~bwwB]]|#H͌n,Α΄[2>[6䴓d_ Z}240ɕ Fc4 -ɛ2Y[1v0 -B*gLO -t ;Gw6On-nlfG ϭй98O:v8T%5x^J^xoۈ`lt 3O=K'CM,*4BՒ+>d(\O,d-x;H;kɗ̬N8"Id2o#2ϸxn^F޷~cxn3- -3ǁ+_.,ykA~PM=:8#\wyuJ6-v5qwmo g(ʭVhBNZ_ɾ^nIp}Ӎ* -ˆP=gt~{P|HU;'lR]L7O7O,SS^P StmWi|7(`cnɷwKGBSQ<ޜ ']H?rnPgZV@\F0k4 k\/[啬RyQ\_'tqs݈3õ{1f琻s7<E5j֍/%%VJ BcLގhⲬFYҾxCIp+VYծǹB~$SGdם>gDz~ߣn}~'}Ox *b#۫"8Ge{MыzWOYk&B0 -*>qu *|TxϛcQ3F\{ɀ84ޞcIlVۈ{0 yhs#5F5$aгgzR!R -zMi˭g' -,?Ek׳=4\+MCȨ}ʺiKE5bMqog՗rq:Tc-S.R;[3P ?kQu22S!M88FA&i%nT PV@j|bU{FGX&v֚1YmypqY|I_ڪ.-u[zYG,=ݴC8+_'dW18ʧ8o\]_H-ܜ#uM-/kCRh_3󏏿ճ$tz%G/6u%wwhtV{JKu1 XrEP[5~ cpeCuIki5(bkǮ[n -!v+)QkqǬ|YT׷rzڈ#^-;Al;MgV+[Z#~yٮV3&f 5<[ϺВ&u2Uv$ۛk~\? -?ƅib5fqXMkª2t B󒟳C!Z7#pW'}|ctTopr|EK_:pS):F3j5Uh-LZTMB9Q6k6TBw}%^9vFR7khrv[*ՙ믢Q%J/i}% @o|y#xhnӭS*?ʷ-#⇯N9(^A'P$9Fk -mS}"ktn1Gg>_y~ؼU3y*bgMᷛUZ2eb4a *-Z2i-~*4Şu@}AMuO=(GW1iSwŪ^J__*B# e,u6ֵe,8f%7iBJukIrct_?.ba51.6Cr%eZ^,@+h i?>V jSP -i$$3̎gj0kfS۵c um"Ӟw-ܰO/hlNyj:/IFْҦlU`нiFw*Mg5}6~etREmudZʷ͋Y,uahoRG~g^Mzv>b}1h!\v״{ ۉ(vjCA˞7O^&1ª\N jir*̶1\SM56Ya9VG'}9iPCw,Hmr`lk/߰Wuݬ[n\]R!>,ݢs6޿;Ճd /Mzj8KNi@ZpS"Ls@tvb"^^*/VR/y޲xmv/*{vf6 H-^gqŁ+a^8^Xx\Dur(v&&3PcpoaVUCgM.=X U(wCQo (sr*v~rmiVӖ.Z˓KSzISu9攊t٭W>W !vie'E_[|五8J}4 ,q?ohkEM.4kHܴZغITv: }\ ^UB~}YmIakc`ģjGp'8%׃fvǓNޏܰϫl|[\r}N={OCf>NjiYͩ #= ]w[yi4݋6v]vǹgx5F³zq``*8_P&oź6V^c=}ˮF7nOuE[ ۊ.E68iT_2B})H IK!:]*{0n6YmHb87ubdEQ`^I:XcTPS?y= -Z (IvҨ˙^ξ?b~6Ou4H~/NkL'1cyp+Z2ֻ+dHn7BMoh8H۸?kn?Sh05D]F6YE:]b%=\ wގjjqG"4ƙR'.L1 ;#8Xvuw1Cnw]k -WZbcf׵MKh+k+aoS_ޯNip]L~ͩ`O8}y7YN,G9靐pt$ΤdUrPItg >$|% ^ѭMy"V+{c U澒zCSC,X^M- Z;Z8^48D9F .@5Ɏ7'M|UI`"F2)#j}|SMꍃ5wT`q'ͥF>q~s0&nӢD׷x&Aekw*#NbŲm ĸٶiC`Q>O\ -HQ*YN4`k/5@zlAI@5j%Ls- z~A줚jL$+6=7^{Sa@ٖ C;cIzzG7ET8B` 2;A 3KFq%uVq1Qf:m۽XG 9+t/ teDB -; J^R;&PaA =|$玺Ae&ۢk6*chc0_ɗꞚLZϓ6,ZK8j^Jޥ[tD[1:xIR͡mPJӅ?ע\ڎyEWeWRCÕr3fV4^}=xqp4'=>Pscyk,A8~3 }URZwNfdZxAÅ'+\k Zft|R YS)K0/Kgkr68%zhv/7o|Vמ2__OmQ{;b2LSE;a`k8H(hy;;5ZׅqS\%_tbC>CrnV:.8g0{JbBȉX`'AWU)BpcKg֒WӀk`++ݢP ud Gpc)It ^aIPʻ5CmD; fNP驔ъ{ ގd -;CZj]¢y"MYiاo#/<eK,-u͍EU60Z u|h$o^Öwm}){Wਵn1ʜQTs;MK ^^V,y5VHqs6l0UNB&EGQHf΂hW'~Lp[2%\,q+`:, ~YZ~TQ̎whq`}3kj*Ij.k7AnvX1/G7ܻ.!D]6*8sFr;"wb9еΧZk> yŜEL"lMenMj<*SAj=mOe jwjBi};Wn|Ӕ,x1 -ZT,Q^Ϳ gR?7q.Jtm]2]1K"&\|t H)8l8:zm{?C|OO1-MkZO GJ}vpFږ&Zs&_*4іfgT։ -*o8zBfr[{42:f3`v]Ѣhl9OuJr,3/~jx u@,sxEբ'h{3 7gAC_9ɕFмWTPZa~JCim(F[ѠRZn3y(O5ʡw瘼m#[N,R[ڑ Z~5v/饊wgF| EP*OR;ގeg7d|XG*'/ <ת봪P2y^=)y -`po(!aS;mxe -eZq&#`50xs^Hew=j"ON' -P[qjt߷.S:[VNHZweiw)fj֓e+c{Wl&X;# c''r&" H]2E4RMO3_ .Dv94FT #-Wu5L?zWvRz|h*?#kb.{ђ Hԓ\8w+j% qpC]}Gi` };-(Y-"kﱏ( -V({Y&UЌO_7J@VCN-("Pftmimj=-SfǎcM\ڍ%c&A*1i^h3j8[%,y~ɀ~Ʊc|&6͎J> ٳ·5mrU+k'XpM4U^mިO)mE~% ƩI^ -'۾&MU6.5O*ucL3˻>Wfu7``n{R>O7wMQR뺱.A_GĄ3+5gb orb]F!Y`(&aQ{D.Wo[F9;gN`R['nn?A /EoccyӖ͡)ں-^V5!E^[DZ¾KI^KZw]I8ү;B8ջv`)3>ǭ:v"6t[l#Z~& wU&mbD%w}h?(o_T3yU=66 &,ыAL EX;/:=BN}/N7?ȣULA7e``ILF+5݈'!ICpJ{W/t- N!BQTWj;M"tt)#{ ipv -btMzg!\>IXUݦD0H@pu :8u@PZqlo! }d7Uw-zydf\[BAwKHzdw S |&#4Ǥot]Ͳ./P|1~@#>+ۍ.~P;D{0Vq8C}5>ްC[(X{d1ӷn- /ߌ% ߽;Htn{mN)iCе Ɣ7${[*ڶ7kݮ .`ew ksr*4lQ5~w55̨]۞#<%>}0U1NY4M;r8ɱHj@;qxlYI1Xp .8ʡ8$}+j,KCmTK,M vP^_(/kJX '> ٞ&ρz:ͯWQ>-bo.͛P A`u6Bp3]yWW?܏nA.mzWdʏFJgV'* Uu.mFOqe{R;E;BȽn:#1X/[XSXxF_WwTk6_)iK!!.\7h E.>Mӊ\)Ոus=Nq~MuH12Vtѻvͼ6f֬[rfy禎+֫zZ+j-n B%;3k{)qwcG,oA:3 yZ$|vf_J(tʝ8eh-z0`_vZ\'s3:#h[!S6vШ:*uYa~Ǫ9PrM 6ouv|kK>^JsB_푴jnu|̡S Sf\*g:txyMmsAvi3n" Y]ơeE#>r5Ѝ^?޻!6F}[oj+kh1y68B=O 3&sM52Ø(6*6 gը΀>2u2;f59/'z?.@輯~_@wby]sNGyeJyۑ(4~NhG s܅a^B~}=&?ǿ:L__f1C=O{:/+J#mr}QHU7˶撚> ΜayJ# !`i?`3d,!/gϼcs*?L21?Lo, =-o&9?ϟ<cf},3+y{~iخUbuAߦit^&ZFU-Sv=???`*~WԎ=*>8pu;_ -QL:r¯^ɸ6DtxC'<S$%< 9Ð69wtLmr,#hXWf@@ԑώyޗr=Į^3p7012<˦;_˸QZNCm'FWw3i<3[v"Jb"^jӨ:/X^<2N IE%"[٢AWzE: p\xQhơ6A0$>"#rX72ʁ:p:=ϕ$1M_Jx˵j/-尥찅n€H=&;"?~? -ְUçMnν2kl6xp0_ A{ :`Ĉ_J:ڳ1hß<˫ =2a7uשguեnA{9?:gNjQKfr/4naqȧg -wZ+D#3vIV,aL]{v󌝸߸Lf:{??:sG@@Cc4?4?Cck|K4Ff?*?L?_Afe3P}3-eI# ?i}讼pE9lx.ݧQNfe컏q- -S-w`yE3{ɬx|")39cl^3 =蒎눝^śzi5?䊛:~T3 -i ||lg7/[t͖H,;}ge{W;j"j/9=!wrQ5ωׁh|}C#9hvwwmfFl -`.fq+O^Sw۝Wτ?^giP?@u@Ղ)-;ɪmuokNLTs^CR8 λ,+'/uk9m_+4l}($flo6`YR<+Qq zd<.цz-R_ -Vo rctkp; i=0 vuŻ"|΋sgoX򠭃ͽ=!/:NM -OyFW`jng -O;mj&6: t7#~b_xMJ~mԏlಠ:t>nq!_|gpT.VۺG6ϣ޾>KN'Zm6Bz@Fq}Is?LoQJA c?,#h{uU<FZADQ@P=;y';7WΟW5uWAUy3M%o OtT+J%M1Xm5Σ5#c~OxN >#Zq -q?yՠ.sq}<[z"J_ -T 9UVU o^D_|A}*}֦]\'Yɨݗj8=&z;[, }gV:EI;T?;>ᬘAoym|ǵD+dȹ[xkl|Fg2 +\[bTZ  ];ems~'YY#ĵ%5mF~@; p"샯Xe!%VuU(.yDžj8gE6ks92FrYz*o!V.I%,: d!7jNl^~ 팽iyjUp Z[# :T.BCqmuɁlZu^˼}njz{zE\ż}U2#z4Z£ދ昆\n2F~0&-87&xBv~L5ղuյ,*cE~?2꒿.fD]!mfY%֠J8pFԤj~}zƢ9ך{] u> -n޵k|U /47(Q5z*/SxW5n>>frg*@'@sQnsh -"' YB-{/NQ.qȾ)ja{H?bhN7op:Nە(}*ك{St, eXjAMM NC푸uxZIqsϐ_G\y øb5OF*&^AOcq9f[r n]4uv=l;*`_cw-&*m|~ ?. ӢL@?- &:%_ _fL@r.^4_w n/shVWVEY-we<&T(8Ve-fl8F+S:ۯVZ\VhN4q%<q޻_qz? /0Krt9c=]X1YߵF z؞]r7-?=E5mNH@WQ D(kʋ 5/ >O"aHQ+Ph@ﶉϽnE ~D`Wdίk:lغG>owaxu<\dhw=im{WYҞӶn -47Uѩ\^WXA.!v3 gd6Sv,{aW͛t7zl$zzvն'@CG4pN7ؔZ<u:Pe.lHǜg]퇆ӟR$r^Du'\WۓwWOo*_@k:X>,Dž8}F̭bm!q3B{+.?׎|){b֐]VLޮ/$.w~|8W-gUؽ%~<ܞ:86}{3kesujXRFX<ē&Wݍ"YEkm< q}F*:6O= Zl+Y4;Ahr2⪲s}Ilm>Q&Q<1Jn6s-7Y6D3-y`&crwCC7DqP.Ƶzr}yf>NXv~٫nҗ5ѨsHg:\_.CM(-du;|񙆳Cߋ) Jǧw=>,wSJ/$gW}gX}g]]:{9yiо>kJmuEe9T!͖f8: A=|慸@|xT!2{Vow޼ك^2F$YަS7©r--1@QYyk% JП%l?}(JL@Y*NGaO95݄~/[WqiWZ.fqRt͑9P?׽~ݏ -Vq}kpCwx-cʻ8Y:.Pa9v -;˘9ZW*\*bcş/5k!HN6]ѮSӬTJYywˢ=ֺBـ`yqm^G@.ݎX&9Ig"I.I.%@ա? Aҍq{vVm^PB.QuF?6 3l ]BV%TiJPhkݧ>8$qsĘdۭi(Vi­;Ef5YYХ - KDKәAч hшj3kZexK7yzLFLkF"ֶ-Pr12Sy±E\^^4=2ʼ Lgk$?icw5L:kB -^En)nɅkD4u.7 h꿟;gdzI~1J*DvOs4cS(F_¾xʕeT%\2oy)r_~`{twЇaF D<2s1ԯ?wVCkw%+ozj{ʍ^Π\-j."n!6#ˑa25WvZv=5,#uAg 18'CvQhnF'ar&m4'.U#Bk6~`RFWqq E(-\,Icdǔ6?0 {V+{tw(sA>ܨϛ-ڇf^?b42.`ͳѨez?{|t}_=!D ?+ 9~C374?WWci&9s.ifq>п??Z(9@oZ,o AТS}ύfo 0~kk1cYZ&<˂8̹|4B\)z{MQ> -ɸqy:B5ӏޥ]`Sf9ҎemlJ !Q+;1*׻ޥcv?Pgصrk54X) fp<v{w91Dȉwbx;amzuPrc;]%APH2aH#y.̐&2ϐoham7qOy#RVrKTS͹٢a4:}awFim;ow_-?zoȨ5YO#ДVU&H -;hC\nˎr-n=!y-mQJm%Qȹ@by<2rd1zH@UϠqҵOF 4=/R&^1=F ܸN(F}x]ʻE;X)Q endstream endobj 293 0 obj <>stream -&XtXbps]'RezuZݬ5:6 v~K q=Kݕ\o] ɜc+ {%Sة,Rfn☡ߋGMMF"g4Vl[ -=?ė/Ms"k?y+T>}.l8=FvGV\V#AܝݛE=F-L!JR `huyD^ݼ+( -sʓ|<[aXxP[‚ $2&``QIkxrNEnˋMni~Bz<Svew(*2܆"`YIT"fK54q3*dj,QbeT]p8@ 3 -bu^' -vuL1+ -Ȫ wY&++4z_ŸF\ShVE^7YҸjLڵ܅KjAjm"ƒ -´2b;=+sXl3ܤY3mX>Y %ɢnkE.iF]n}6jG|e;tݩ1[^{2х[ S#|wH@({<}:)f5a겞\VLeeJ[3"!-QO%aq9K>稨nv(в}VBIYfGFl0tBm<}f3;VhpCstf:2 Cuway&ӵ@U(fd2p0xuVdu%kaSݩj,!zʆ} -6&ɦ7{,WGpLN3D&y@'?lb<|k;'F/G|90H@Vg+0!Ǖq\!"(?O&nw^m]ymv?+X\OlvƆ4 ]VGӗtB+}9RdڴCH@_fioh+ϊ~Coh&9˿/Oi&9ߊD+Wѫh%! -4{5"<_ ҉cN2s> z@T9|q|i~q;!ĕe?]-D\ǍpB2!~92}1Z`x/jZTVR\b8vMJcd?i`:-%R gckWK{* YM 4N!Mo\_-U[a:1vH@VD@}Z=r54WK hњIT\1ڛ-4YS2sCL.鎺~ 9tf?_4w C+[lB4FWrkq6tGE:~$.ݴtTU562|ޤmR&}m~q2_DCa'Rkut{^pp}%g Oy7$Vz\W1kRㆤ7b'q5QDU7P{ѷ4Ҡ*Q *ᓛ^%4"$.GMcʙ*CfvxaJbk1ܗk] ׫4Y[U<dҟ>kSn-zxԳ}!ٸj& K6bhm?Q*JQR\+h29B>FkV2@,}! ĕ |qRqq={ϖ enɇP Kf ʩB-( -wQ$ .fNyNy-z+zao+! -X[Zzxog \Vf&~)~ ld(D<5GE!t`-h={ۮu ??2RT% `[>^"M栊f$Nj\/0lKD=& 7eͻE0Qo*&?KvKG?CC_7t?wYo1(2]U(AhRk637tmIY ٞ[ǝ 7OV eiHF>Т#T*8@qA}"7u]`B>jXWd}o6婆ÛG55 њ3j->rfZ!RrW0s˼ /"/D2uZs'pDJBDCN钽# ugkmbZU(qcK#.5vnj wp'!ܽLt7q&[i`3ö *p^cl.16|ZpH8&)ط7 #J8Y Ҥ]+u,F1Sz2yu\ɳ b1iyR̄gJ@ؼPN]!?9\C+JFF2Qj9X{$?+=ﲶm8]A,36-=D85 fH{:F<;;G^qAv[.Fik@!V&ì3,'Ek>v=?^b\00| |(./Ϊvr^t}K&{{O6{0 E~{eɜ~DqQ>`:A@@-uLi>qUyӫypZI1T췝iq*oOAl8< w60ػKYWyߣO+IWn#{OK䨱ughrW7$Yv]&y2~qyafǕLhE@sYzkk;_`fWXee[+greeK`}㮷lmi{8:WoH@(3^[+T|\Ǹ݆2Y O!3U=4pG~6J,t/9=4kaVKVozN.uXN^-iM@CK ǥRiD{Ixkxds:๼z)i=z $j$B -)J:=, A4q-۠㚴[2U'?pIcY=[}߻%-,ongtPmKux_m b͎ZM8yu}b#@_ƢW[<{F^|1q=t3l"qm%5#{86̸j])-Ã{1f2m3tGWY Z~-gztAQ"nv4W4d[ևЩ3peþrUY!DkҪ5G+s5KF-k6E\dXר3u*rG(lW[#:{9[BhVu|6<1dZ%_kd*r:99o Wdq=GǴx?6226˞v qf Y9=j? .v] =P --nSyJCU"W;;ax!\\-t*nh3ݹ9}0m^RL -k0܈E(>51my:=937ް{} U~>a G\eJUmY\t 7L*l~)Y0J`)(f -mlk -ռtv(a/-`R<!,œv\͌j]$ ϵy/q팻F 5^2#fg-L5R4/߃Cm3DN? -ğ"<<S^e/g.\TR] {Iy=V6w FJ?+ M0Yoh&fiohK1qPz][=lIn -3 ȾC؟gvgI+w,WKψZTKwsŚ'wFz#JǥۍKW230!(|߃:ϯ{ˁ1(f=< 5y호ЇR%y&e-%nc3ra֧8f9 j'qiv*ǥ9K~wnd͙kh[D -1't!䥶̀Ѹr69\Oû 4EX<|q+q#4g)~Y-V\AJcЭ+VlCh" Ex..KE^?frJWhrzw 5<^6t[en]"X4aT`8}+qE>E{jhQxhӢ\pRoHν~00{>AhjckXK$?%%UtIG@Ԗи{q5ٻ?|A%z|3.CèW:1ps}'+̻ة88XN5$:  UQM\.O.m\2e..XZ!"qu |q{2t[cr(z0=jͧlDG{:Un ޘ$f/+uC"%0U@.~6@ԑ '*'?I̩޳ίkjRZWYj;ФiXK + u!I_S#t8[QڬH@L?};Pt.x帪\ǟ_=&v8?O\/o--gCW587 7')L9^L^,++uVcE/p}-}>2~z}M=r/7+Ռml9<=ϜT2m_-owϦ(U '[$Dٰ.^B~8Lh9k P) J3gܒUqqyZl[>ydsuB+4jq?ʀ`o5S$T( ]z#.׼ϳd'߲+ptǔ|E”PtY -Sn5\{FE#׆U.>JަK[7ыEeifޑ8$C V-U#Bp2ll;[y{|tݻ&K̡$_)!k7 -LK՗SOoz~Rb_Q3f]|~Mu*uDmļݍmwqS 0tlO >;kuOs௲p#imGѯ^PRHm38ڢc j̈c&;$?:5 ^תL\O-^G2}NqVmj?lYs{n3k4RJ:TW n}*[nDՈ9 >[17&6wo#.O^YeЋ&^\^鸾Xo )ߒqoU͜3vNF+^2.=p$M/w{SNߦ {~1ϽU!0ΆדCںrސmUoDhfPx\y ֫Fݒ>P5d@dp.Rq%0q bΠw%zFٮ)MPZ#J -I^s`Ì5|^ϤeޝN-:)`zvtDJ]WOvzRcA4.*-eq)*B&"$6D#f|Qݚd&;|*?>'sƑKpE\I׋Rm9wlcg5pmnd0L@1(.9c*(ܽivJun0'W6=;z`gH@VWQ\C'ܥOb(fӷi$7Uӗf6"u0& ppމETqāc)$qArs9 3 rXeF-FI1'&*DX TOUwXzH%R!b <4=Ou1=#z%R?\Xxխ3^Fv+8 w4"U黈k$]P7cDK,Xf)o|_i,It@??) 0Zv08ɵ+1E -WG@%aZ0 % -r0Yg輫?ke%N2uqO.I/24Ozi1W;pGy&}y_F0L·{!: EJcy#۾9 4)ofU}}hir $W;sa&~e};9GffA6_VFikbe=0`^G} }491ݫc>jd]^n"ʯa=T/p œl:;ۍ"+XCvrSp 5kna>}VB~9Z'?Po -]OYH㞷ꄻc#"#l=YN mײʄX6gݰ=->dܚ/XikuO#׽W׺\;dvDdwiiߖ1?j=.₳ -½׌K%.H>qdJqsW&գ4FMai8T4N*E@@kv gf!WF.` s7L@?- _gD F?+M w../.I''Onx.7 .f(݄Dy)N7|P p8Anx@clR;Zg[|וim[>߀=bZboU(q೼\˃4.7jb\z\d;^M:sipFr7܎08hݽE26D:R6RMg:vͣbtE~-˘]L3#F\vg5k?ܣu˗r\-tCpH{eEua -Eؠt-*=( -"*h:{~{ƬU j<͑$so1Wް~/'/AWe7xuttP;Ԥ5X5Yoܿ^&rI}y$*JF/%_i%0^F=rPrvOvOz3ɛMp rBm?F]/ +ڝUJ!,Y -#kbLD͡$vZfۋ#oKSɈKw<[.]nhV?jVwײpQaHm EM(*N =/j9$PDɇ Bf#a(?t[u(J@'`}о0z=<]7-uM/4'M@g!U{jPm*7KX;VGsYZZsgc87 -^nY͖ Xmbp~= 1i t^y馝(}Ko^7cQ!7E=aa ݪGrjُؕ2/L٭OݵG-JY9YS^'K^5@0E~{mC w$us/RfO>oWimyzi"/ y/.tw{jTh?@GrAMM@Yپu ۋ3 YJ+L{UM}G1mz2F})k!SEmw) -zHx -ta]!)/w:ŬhDiwTszE|*it9yDZrg,eG-uֺ-*;ϟ<|<1>5v02mz,Oīˁz QQ|ӂ}4<Ӄž#gKcu{1MZX.)݅=y -mbPԉp#OFouQ8wr6IXSӺua(q7Ւ瓺M!W[^.j=v|  ʷU>P4OUlHŢ? -l/ W9"uFݜzݍvNBcqHY~;SL+4۾10};l_ZݡjaS"}SctSUWbҭid\FBFf:"HaY?E'R`q,}ݦvg,Yۙ@zy,em) *i9t}Kn_kZ0A3SPb L+~>! -ǁt݅V0ݜo!՘э*4#@:~s5cXP\9J).*O # ??=0ö*:ohR# `]{QY]rd]?HR؍.a\EUlV[ ыG^"ižh(LeP M7 "AK,@Mv j}^k_KF'E%%٨ab:t*uE:E+n| ^.s;s½uS@m a ]"uA( -LmUW p{ H <'FM+u)5W%Ganэ5VCh" i|؛}Kԍ`PO `zC0_vp -4e|q#\;wZc5?e;G4N$(aV=<;' ?@_O( ߰j\/5Lx" "p* z?ȋ,ˆI3eyYBKhF -%t„B-BmwVx lvJ͑ou|P00gJPC@6DEx#{iv%/RaApl 2H[aiwCXR97d귋>*,m᏿jvYl{@Ihb9w0 7l92PTX@+S@ >D&Q\זYk!nu;]c{Ì&Qqqr6A=pyZާ{`%ewy,Ogb̆p ;FR%wQʽ7aP.ɽ60eEw:GSm_ۿ f5JqOu`03[P|C__MS;=̟PQ殻 akvt<츏|o_['Xq: n~1.nl@>a#̹`5Rvnkb_*I%桤#mhm͹w;軧#kGi .]ʖJv&:ndE E7 {h(=ǡ0XS {8h|qwpy۽)3SxFۑXmamhr˞U;?wؑ, nAQf&).DiMn'|bZ>Bki>6['=}Mm3.; mE-j ovBr+Siba".^6p|1\wMڂ3Nz{;n 5xBY*߾ktJ5lVRIIecn-ˁbά ?_ҁq' -n\n ܼAxDl$*G}PMVkTڑs1YF,#]tS*x![ҹtm`!(4o>rʬq(c:/m4Y˓TGJSX1I˗3rNϽG5 -bRC'տ_mxDEO~?E;Y?o_!>{ :z1gnٚeph$-&Xt -࿚k%6.mqwVaY:vIZ5; m{Kf"=WÞқKI%-+d>ݬu9] 1g9'<d,<&?}5kӀvbmz]3/rKGj/ O9<CTx?_ 62_jeZaD }| |h*!-|3='{jy j#XMc!Lk~Kr;o -Ov@xrF~Z 'eO2`D P$< EpR㠈 $6ݥOo㊑zY ]2<{iE̬uƔl FcGLgd+^| \N>G?; ëSs=hoo/q{>/W\4~eKuq.Gj3g+آ{}.^:ru -zs^-gZ' {pǻa#KR&#/]ʴy-;YR",ӮEa-6|.Q8 8EaNqXѸ#YevQ`gYs-jRrL:Ǽ 8,=e}#OIaԬxq- _]dOK>箬9-ѩu*||{hMDf>(2$JxVu?Աֱc?cmrpׅ|,?|"1@FRoҝGr1b #Goü+vJL/ {+TAn5swvwdܡ]=ޕgRmS6lЉ]q#^2aݧ|VxS^1id޺5`N+&r -`kވn~~Mb(vx$3k:bz }{ - -p^Y67K5#\qz(*ҝ~4BO D{x,L+u /} j@u8SS ->xFt=}{y/Zw a$MF^l1="] !p ^X# 6oIwh{f_VI>L˱( LEd=YuSYTw&f?иqSekZlO*5mej-V_쬺j-HnEq]rr>Wo aw:ΪQmΜfSגb5jP%bWݾwZ+{T7c;D7Z^QaWK߰|s51Ż^F.VYW~rB@jy7itM=+_eqR?럥Rg-3W -X?T6cKy}8m;$c?.sS,{wd⸨OIWh`#Kesu}07KlZpM -(}=,hwPT?`P jIC:ҍkd7ꯑ>^c Oa*?HryܹXi'\|nHuYSW&<o5kʫWWEAuǷI#$, u{Plσ9~$!ri]U"Z<嚽 Ɇ&[)L6"Pˑs]h(Y["7U*2?K2R؆,`=%^gp|nk`[fk8D֡hno (5?&6:v`i%PsyNK@mN]8ȶWhF@{a'DVBV=b4|N]o1[7Sed&v3k\1V<%|uR}cQ0cqe~'z@w=V=txot~*hO}wE3ɻC --|nECku[Zrsl&~ -潼Ư:>`W4{hs3fܬ/tCtѤ;nG@'(ΛiWoku9I|t?YZ[5u@Lm-+ջOu5s ꑑ&_.tNZڴCC*UcYd]J&q@@ы <niaM/+j\]ֱŦ㠻$l^n;>6ݻ&M.ޤjD &3[^4䑕s"ĤpB~=Wc2;ͭ՛oP]}YV=`fw:lDK-SVt+rL-@vj3N1oJs\ٶeLY/fGfq]1qT cu65AbYb('89U&Wfv4JIߙFrwT.:[v={NxfrU$rAu^Z=(N(?HM Z<IYcqboe e\jodvvPnaö߻M~'PcebӶ9df@Z sm OtS}WV\ӆLrx%jŜJ+K5j^Oj߲LqmOI-`CJuӘc@ z {LuhWQNgZ+͸SΪd 'Al%&]DwlTe,s5뛇w=93*\bݛ-3˦;3g~(ō -?u:Fjnx6U1_GoL"u9r3vBS,s3{PkZﰭԬt 0ۧqI]JX)m..ҹwA$W+6i5ף7 qOAl 8h==hf@̀J Y "e+ =0#20UTC` byf$5e"{\ܡ][v N|ɁĜ my{df-WzjIyفi<˷ w,*  :PRn@}nPcnA׭`+O {RkPA|& z1m=n͡~:ɌU^_Uܑ]5G . gkP1uotN0,@i``mCKPU *<@Q8%5;snoBW]F-}νzthVO 깋b8imgM yeP -,/cJ>P@ o׺Ж=al(*w$-FC}r)ԙfrvbޕȷ<#hO;OWwjKp6LyӺE)'S -.'kЕ@._'t 󍱞$h\۸%x.NFVz ^{EݦO>3:soc^em^p -MWhcʵa7gI9qu܇gz [l$ho53ZrF]xu%n'ǣ{vѳK~Ye^7zJ_- %5\ nc |g,SڈT~)\Ǖ^~{vmeyqy\l˷7}WH(.ͻRG&mS ssSj?={9s˳-G@tm/hua2~V -8J< KwpV$z'L7U_[hѕT[WN緵;N ';,'.f{(xў7ﻞ<+dpk6v %qF [LXIߏm_k䎃'>sǣ+HPtT~<a*:kj,yFra=kU}{eաZh_ȋ @r?N&!+U2_A, Ț{`KvelWyYEF/~Ev˒| J]!WFr¸p %SX(*8Xo^u;ۃ$236#,ٲ"MXKU]eDmHYŕdȥen@ hmaePOO[7ة}:QaB}wiv2\Zr=۽JzjmeC+32cv_eN[atwQI$Zyru`c؆bS)e.BQ'!a/0޴&RޞJp8麏ώXnlfru/OH(`hG|cKb[]갘MT3! !CoPl_.6u&uxƦL܊,RN̴dp7o.җK}firK[ y3F*ݛWt2 BGIWB(:*3 Bz_nEF:G?KY8-w=؏հb%rDl3ҵZFs;*ku6M%7Wu<ᨧ>IS8Ik Wn!/0`$@BVydZPscZk>jVcuZ{UkCV`9n"r7+(;S;K|x$=Z"G\ v$%q[>i rA>?AA~U~$Ql0t7.6YE&7iev{!\e7SJH .5uzb*' %`ح>&n8FJp5u { \9^o_ ugL T^#h?ȺMȇ:2ŷya)Ѥqo 2c'x.UFgd#kp?D~* ~a9P,sQ7sWDtr AR'6HJ۴Kk%7YTx{ۤḁa 3 3tHl,gO ԶWpAA k~ q,+(|? ?=3jXz^Fz'B3,PX1}\~< ?F5X]bJG]tYC;WRM^7) Q(dSq/n<y?썠7R_Gƺ{0YUmɜ17hK(#_M/C}d+Jڪunz%g4wQzC8O0`L?ȯ =43N~hE-/ FҲ?޺ .ۥ-_kC*; !?jyҋCVimoNe<g^ԣ|jVΕb}0߽r,^'|?(\|ơkgqB 7[OXW5ׅz&A.];@ Xѝ>KnBϏ2df\o8fZRq.i %92Y_}{/SlEvzfsˡLԮ:he;eigasMR:)\ʅ)T"uaFqZu"Z -9+{r}a}@Lݸ:2vA{_v|ab^w1k̓obnpvtA< -}]]iƃ={Xrƕ!u+TKu3%X_MBi1]ѨW.ם )]$>I;IX7 -F.`VDͮ{ѧ5{Ÿ[Q_~˸ m‚M'ǵϬPtpkwzg  ?H cƢ -ց-hM7QD?ĬKaS99ZZZ}&Cޤ oakHAL\ K -ըgʘP{}逸&"QN+ߊ62liUo -1T HzA,GsHW2ޘ,SM2eiW/7 u:Tj\DW7n]_ݟs{Uu^3JlE~mG˯?at'Q"isGvs(h {.zIeYՏ"˦[3f%R<*Y}+t7bXt _ϝj)a֑(޶JnB5 WF҄a8ʡ 8|g}J$ Je6:1t<.tCW8񨼟|(Kb fsJlrqƲJݵBijԂ".]V\zcǺS$D-2y9@Q9&>ę? mk 'e&[eJ` GuM#XQ_{ؓ·BY]J؎;>bW,̎O58f{BR!4[;&0 0 ku|_X>ZgYSGv]/[B wc:a!t]=+ -uK8dWd6>e -2j $yz*$薟53y4'sG%au:igN+@X/JУV۳#FF&S% dzd Ez:K\ DgK}ܸ ==8|Ǯ]J9?O cȡ ZeIn6 -?jǧڻEx eJ#4)'gYK)ܧ}M`Ts6N0Ytڬ -{=׻fl% !6!TZ?ӂxg:bT.1cD9\äxhSM䔭?}0/O $+\sjs^gPx=?IۣRn.4`7e+%ya{sV8`XȮV$|>ܼHT2f.Ni auL=eO 6_|K-ܪo;m|wVapw@,ӛJ^l-T݆Ry1+W|I+\|=/~.=?zB2v}&,b\69dLe1R"0|#T`zi1ݟ-{3m/h温b;9~~CV,/GwH{>v>kLfaڱ[ELf#F -@4= \܃\{}ˡWQTƄY_k0::Ųꓠeo'x4qtJ VWy.):S%&k|bYr|ٜ`R`slgֶEJDW|LPhb}/@N&rhÀ2tf`"ό/Үd 3wԜffnY;/U0 -ݧ8'Lz.j|ڳ<1fu8k+Zt=ˍz.*) SZAʼzOFT55亱쉰1]q?=p,QݝW6ձwIO[nӃ.g먥`4fRI5Z<&O(sY1/+%P(C0H%&wweV\o}+e}Ͷx-G5-|7umz,lbUYɩeCkqbNgA0/4u|uV 6-ŎӁ˕1Op <{mu|-9W؜'7pWNȝHnۓ;tzH)1O;I' $ '. Fع!᨜K] BrՆ[YUᵀ[\x4k*jE0nJ:KoR[b@] #^Z&ꈹZ(}$M(]7@OԘlm -H[bv~5vuBlW/Hk&"W'M>;z; `bg.cIUNVTvΛc݁M%^lŇ!^q/t/ G!2r3 fILZfJ޽xᒦ{XV&rI<6NI\23lҰE B4|q,{Lj+~nLVVJ_ܣWT_i&l.-&M:[+=czzlovA2v-Id{b91eFWXf7#YaS kC5L"G=_E=֢Lbm,+@Wc͌\`Y-y쭅e];Oި~Whj*61s׋l+1OE4:>JzJIb+:4IW'u' #^RЭ=KwϪ^mWWySF1 qCcj0sy拽iCUhκaRzA}k㷊Kk@p&5_hO퍍u[ξ:4+6M?}/e!ߏV 9s'ĥz/!Soau`Ms6OQʹ9֍gwomx7\m2+RRM4lLg"SGNW4[_#RZ܄}N*&&3/Qʑ g܌Ԯ[Vf—=S>a4;à_( V -Ǜ mGxTRlW:7꡺BX²5I" ؄~&t:YbcOO9^Tާ{>9|ڣ ka҈TZZQbӞ9Udw;UW$SYVyar$}6$^V55G*ϐ-nǮؐyBiIad.`:m37Fz%;>Y2>=ӫ`LKϫ]TʦXFA!߅6Ni]n ݑ5Gl^2`܏tE/Kq}#b5y\[Zu^&yE9%KT,3Qg@68Ggk4IPfSvW9.h?bf|g&͝N-+>( ,$h|vڂJU&߬TrYʿb3G70g&Bmle钞9xra@ 2D6oݒc` mllU_v`γV1t*l_~pfaf@SV wGZȩ50ω#^ 1!.%l-\nMjT *.󜌛rʴ4(e[WY}~O 9P^Nqvhm@W9r -45X^y0ڡo^0ۍ?n5d7@< -ճS=p4ZY(ӵPZ_AN~eaQPB/ bEh_B}61I8V} V,.ݸ C -x^@w,B7}D1BWYO:09sU{5 u<@ A]Ndb ?+,bq+=Aj|~7+T4۠SP8:8N U_ pjćBo&z~`k9lKz#!zK4R|x^gq1c]4hVC;?4.E`IT.8?Ai 5d]  o6f\%z1|;>}2.?pwpn,#>|sm]O`[JJW.8^׳~Df~4)rFF. EțdHvup)?[֫pܮ|xDq~J(QP".SpumCBG"VQnS#!Y:ts|i -v4;8Gh%3hn=!;LO%?a3ǣ۷T繎Rk|d{Aï+AX=mshuCw^}S Jgm7M? 9׮10R, HveFŵrzhQW&Yw&]#oG}30 ܞ3ݎ]f?Rڛnsm }.C - -%%72޿dO[!{07\|[GD(0a͉hvmV-Ff'˞h[XpFodѧ^^7TǵgIޱ Tax]#YrYdgvK -O X6Ȝ率8KfٲLZp-`G }5&;r^n*sY? -эߓνءAb%b)5Kb:.<j3 hV>>v5KVf@;oB2dm+r,6%\scO|8bvATڊLR -0'u벏y&ZD5+D Y_ZG4*|+fϯjF޴u ʫmpJ6Զz-e=]u،^G>vyF}T\K7=TG'OM⼨gQvP3$?y -ap48oUw@n^; ":/b*ac(ם,_ -pRť5GXT_ WLI:wZY9Ė`*_όEΣ9_!ʧà ;Cg[bO˻9*{ֳcMj= -IHivVtƺ\dc5V)wy=cZƋpHxHha8oif{#ƾB-^A8^ty7@cGDhCi&7/8/i)ă@}MV_x~u\}fi+~(`KMؒۃ;IYMj}kg혝˩,S`|.9kB~u\8gsO6Nws`߬ +aZQrk_3mgvbx!8cuΒSaqwIƣD?/_2dÞ} V=?VoG#}1G+;0gjL~j^&nfYB2wjsxyᔠ{Idlg:`Č^]5~ckmw,60Z?mHH>LWjUʣ3Վ̲<٬j,t wS z)4L'lG&X7d9]7NZHn+34( -ΒԁH]lf^f4N:]heaߕVtȂ6ejKoVa*,4^S/WWƌ.]_E:3{QBA -OWskMS-,5ZZ|nɱO_qJ:$pY;]30 vIe@yx6R1]Hozkb1ij۹T©6jL["_`ͣ0?7LY =6S+)x[^&>/$BjjdpDA5]RFl v0RT3cJlvۋ2J[˳io3VSKmamuZ|5Y,ˆNbG"_GΤzړpgGyT켓i,&)[oyn$RjWyPlaVSznPnelڵLuR6ˁ^ihU7[[oZ*ʡ{lØOVS~u. /n27~U<4Vp f,t{hzSk:ڹ越`oVskCGݚ޵$5"lT]YGWVAPk!}_/-EXhaQ.osCcT2:6;]iJ{20(Jj4Q`Yl7o2+x{t5Us?8!Fn Si Ml],@-W;@(ŴZȸ3@!!R,!k@ 8oC}|'H$xľ_5Є ^5!-3htD Q|( =V2͖I@8=X"]*Xc<>? ~@S e\xG`O.RhyZTjp[ee93bXfjɍbu *)GnL7tz@n E(gP!}NQh̓ouQ@ -wl?ee5R0%##ѣ.'A%.# {aV0 -`ظ_j}vM7uقBay@# iɪczcr,-5 - H^}Rz2~Z6哞kx;7n=}x _{> Pic0r0|ߋjnfj0P|g}]O::Z:9.r9~fѹ/xVt}A6NM)=o0|ο`eN $G -G3@޾U2J,D"Z)m:6Ǹջ'4cb'y>_x{.mvresK2^=Xu1sۆw[}doͅBO2IzO=#rts˸©Cou| H~:0 ֜uu3ϟ]NS^VNZzX]⧋$8?,y!?Eq;_{i}@K -ȴC<=w^n]nU}\}g7 -m]vʳksLNe{eܬ\fItbhl~P J3Q }vM,#͸ޚ3$s X _N)`6 }pBo_[o+I[`f}TGb1+ߌ];)',99qcAF]#׷.@G p/JQduQ{$kus-wc~C&p*.w8^[GLfV9DeeƆI t.;g&e,t -SqYOsB⪧L4 -36O`RX[NZ)}sot$s[S-*Zyr~vlJua(3ɺ~MFStlӲ4Rϭ9rm\DE\aRLp9(:- -. '2+qlm)ƾ̭za -v'g]>Zu+tVkȼN鸄 >V'`5W|4S [**9Fn8A? @0M(" "6M.FfgN4uRS}mQ\W^:c-*pí:7'K?͟<x%6sP5Iꎻ"CJoW] wo6@IUF0_tg@hnAY/ցfq.wk^iMiĊ_P+'S7*t$OcCĄ?""fš=N^CPn((Qڄ¥Z0 职<^ȣ~DrNV2zx3/Lg&\]pD6b}BI]mRG`8˒P ׆]ƙ2Lsɀx|y[ dUN]Q@<+rUWk]*@G9(dsf8RP?FL7~aз;uPt(tRuiFUoq f<}CWn3o'^)AW.hiw}R{|ӗ{STC~$֋:omje% ź9"Ϧ/[?XSb3'z1)_<,Q[ nFtæ2sRM+nۡtF̶|ď2jo\'AI7cuk@k֐׬چ܋R}noX/l^6&sz2a\k#[<2XJ/vբtѴ%ySQGFFYMKl?UA3ߪ3Yau╪ ,*h;+VUο'v"wHkzG-KuOW=Pn?")mƋvY`ۨyn~ZŴg7_uW֍ѭyOY les$O*<(SFv0ECN^$qW,~fsj ˗NI9hפ?Z}yv` r*;<)gY'yQ _!E9g?\$8- ~+LT38)[Oִuf}Zq[};(D" V}t0\<狅*J5Our&:˔a=Ɋē-/b؛|O^+0?loy,`/ĥ6 Yb3mQ[pY]y -58Vo0Ɇp^tq8: "@!egjQĥ)\@ce2/kvD,@I ͊6ed?Fd HyHNKRi/i{8i1 +3[) 6y:`3A &׶/~{<}q }B¼ $(!@n0AVώc~H_p{ -zy`[ -=bH})%U8w0V, 9,Fn}6@9z Ўs(pMV@F; 21#*~CvB{<ju=ec|x\cPgˣJ/0ο ] P,2\[=t}/9>eK Vv@މ -Ci1Y]6m׮rHyeL9>48?GXąN~>0K(.a7_\8 -Ԙ,kLwT07':o,>O7.\n0j5QsaMkf;G^uJ Ͷw7tr`{ж(pֿCgWUlE5"F\TgW>%tr7.FVa5 X6a -q77,*n_ =I:ݸ{u6嗒O#gY0m:c_sMUv8ϒ8b!R|OfֱomY^qjvX\SA -Н{6X0ѸYBpΗU86 {QU%؅1Vv'/z2۫.r15zd3~+> Ӓ铆Fx=o*mL=Eu馧3V(3\6Mp{8 -AF9PzO_'q\򍽨{Ԕ֝x;MÁUEh=|ɴ|\_7VmKȵ\{īŚL&jܒ4)E(?wo>qQ '͋VNm.mCyy,8OM?+Q޵#^;iMO}TOLirURԗ|4[5=bK& { !}Uj 22\Mw%̊Eq:\ZNtu׮ZY LQ"'? FmzKAAJc:Z/?G/u7bNʯD@GGE|N?+cdIѭ9섢y<gլͶTRpt`c~T#ZC~FgljYJbQ85'Cpy ^_pC|!=ou_EOT@|-#;y#gPZeVdgun?IGj+wwug~47H,18}JK_P?~*Ti*tAD%KtZf?1]S<6;}c -q` E&g̏rۤ0.K[<+łLq.df<Ž|ڄ&q2c3QmdgᙝeDB؇;aІjү6Dn 3Rm}M#_?HT1S4@5/c%49$*8QP7}}stn` v&}{k^k60=i/B(@{o+땞ԍf9'fTM\\1سoF2zO$K]$cޅ!4KA^D jzEj!4oک ,m?8OW]iMȧ[B dN6cU -F2HShCy,u4楙1kw*fF~{+پs47iʗ2+' Jn['ܢ7N"tԗ?8#as?jTlA-=ESePTh>?ʝ(7 n=VW 鮌.$˥HނY؃5Fp E6Z^}#Ys -6UFAeYk.)NOv,v2[qo 9-X9{OD D}yo6' MlDMl.q=P8)qv>g W|on{ŋ}),ֵ:_u rӆXAxխmz= NGbulJTqzTm`sSv+7ޅk7VFD_~u/:q֍E|9}6Ϙj,%\[pѢ>wSqF*Ne+6]OpZXX+IہFnŗQ_2(b#N։-@Cg_,v949;NQکԛYr0G5e^JovcFT{ֳym3ҝjx{}/F T1wu|+@4yo+%_i 40?rm`=PWcʴB1$S7 `>Z $(B -өהLTU]3A٪D%O_߫Vũb8~eȟ@}(jʯ]kX~;g8]FWmP6+Vauqu^eKnKɑȗ:QDx0E5 -#5G/Ӧ8'*5KZZ3/ӎ_)7RH -J -F -"M7q -N -C -lg -,;l~I).̏2 =c)0 [CuR`$^ML|܆*sGƗ/^ZC@?t5!FƊNsOC{(= M)Mf -KӞe͌M@8e,\ -z #^@΅gZ3^4b>j|T)',. IsXIsV4Ҝ4nKiD/)xSpuz^Vg3'=["UXI_+{BwQ_j<i -twboo?hwx?"faWx^]2΃SU?>Yk+>Mb" ӻTR3Shz^NRH"%˓YMziΔk'Y$oq-b/raIKkշεv7*KuʍzZcFSS+KhZ_yH6HcBẝ TL1^]"X۫? #OCo@]vJR:T?й'mti?y.[>} -ym{iHq}>PKqI*E߽}4v4}=vv,-6_e0rŠ.+^®oOZ`fBv{v_k67@O^^ZMZ.0_+*ΪE;Of/641]Zwt!"Kh(W@o')'g!^ep‘*.{F^lzGъ6/|mիYO7H{ =,q)"{1<[KđF(=[4k>E -Ib -jZ K%n[ͩQ`\5b:Xn7k>k]˭{.,*K6W6a]u´dw@fe0!j0f{Vw)/RhWFRطiIc* c! *75eK3N};u^:~~ -K» h0n$v1hꫲ=5d+/PRBzOJHZЬ+Yr礿E=`CM/,:nTl/-v6ۚ.yMb1dZ*DZb-VnfcuK*aSհcS"Q* 8ة\:Zc9-L^Zf]딍B[+?'LgrNP]3>L ]󩍘 8>FY VSţ-HX،:OėNѪglTFނBm9`^.ے{m.eJ΋& ٘BhNEq'`)s?MT`+֮ َIAKk!C -rIl8f}ZeWݳ5:܏S<=GćSU1ҹixL Wo245YCKXobhYVCdUBFg?2Rk -Deh bfXr:}*V94*g}[ys^GT6{;蚷V:JazXrYz$uOFJ@5yupRJs 'rwQ|,}{AzF~ϏJ:Cם qD,q7IX7Z69bBk( -_KDiaLD~չFhޥZX}flL -AJxl֣#m6<4KXM?yW2Z>nɧ݃+/% -ejzOZ8xԧ%BCKmI6Og",#˝s^վw<Wsg,?Ye4m]{ TFHF^{]7 m}򜨼9;+xMNh]a)ȵU]SpRTוf=V]ăE@mѰƽ孝eԲiYBe/WyfU𰘼A%{:y3 O0~JωDA*B ϝBy/#sD#lLT/;T Z/oѝ`SśSR)o,P\ٌi,gmtNsIY٩E%qS wl8b%ןZJoDp! -=sSGs4ChLZ [}[P!%"@nNeDÌDpNlL~N'Z/]KNnv2vpȆܭQlEjRl*t~V3ޫҭs",!T?m9zS'QU,CX*ׄ:wE8lu9͆7*wȗᄫ}JnGK٘+]͠$;ƜiAEmTBD_F(l75~ǣHy 3G+QbTne+9.RpȲlzc?wJU˳ޝ^; !˓Zzx AI&UhL5'߱' H|`>@P~|S@Sg;)WY٣6IMA!Xd@1<Wͨ14lG$1N7yl?0c =EbaT 36XZEZEǸ* -1!e? vۧh+ZSUs=b<~6ذZ̴KK;|]G-` -JV.yiWQ+,wzULpiR+68 z!鬞le= [Z@R o.ǝ0[pdm8QITzPzYZ8וH}Y,,-Oy+u2tqQ"<ګnD}LÃtƒ7d_LWrx\)7.ONH>DuQa0dD^kV&[%dQbUo" -Rq- o9 |ްV/?$X9C#j&/JeiE؟/*;eX=.}L9􀪭  : fpz%.Wߤ gfaA֟z!1z[e^4Wj)x)V)ox@fswOY[s2r?FQ޵|ɛX{xSQb -;czQvuB;wYLJd1nieh0_i4w`9~m^s0헋@qMbܨ(D/6$|ytu貙s`'oUlv@oǎNLh ͏TƷljRg.Ix-`$ĤtKH -waⲅt tک,Zy$\U_z[p"pvDkw| -j -a[O8^sgjpVe! OmsrLRt:vwB -"SزW젷. @Gم+ۭЛNZRW3o G53NNn &d[ye~|tIy낓c%{StgY4Fk6D~B4mz_z\/tViү㬐㽷%G,QXOS:B},*a3vdFDej7e,w[tT܋SAOS ȎiY0Z?O1wa}#U?{=lZOWЛ/ [݋ֲ$ͻjwLKiZ?dcȞ oR(%V|@:VvH嬯X=hv~c#qYMewnp%CLV= =0>{>ZrBQoԆK-hu TI& \埤pK:8ӷ-ųd9[M*yV#(^y8j{g}YgJ(L2-OG\mkXeGI=4|>z'nz̽fe_qؙ-nm$?\|d|奺QB3\w& FVeR0}8iE݋Y/2^4Ao$^-wiLf23w=Ěڥ]4zg`5Iu|ƓV6Z%ǰ1t9.#o x*BXn5=ngǘ͂@M -I7)N-" , Dk.5~y YwV*t13z_o67T%dnd7!n)2-U+oND gRh]Rs/0;C{;%NqF?@ܖ"!tEb>;bf=7mh99 -vuͳJcd{ehbx;G7+Da/]0.@6|\BM@;ۤ,w!Po\ݿ<WvsڃjٌߟF&&7/f.|ș#!RyRBĆ 4WsK␇ -Ȥ~fcez9G>[;*[f=yDҴme=fܢ7QABxESMUd0[z+[!^]ߊ+`]Nh^`E)F 0z*$0ZC*vFXa]c n]Bh=B:aрm(>ub*\N\ޒ\Czҿ/|Z;D`y@hLOOV-ק{ |kWY9`jŜXmdKM^7gPЉ6H0@"|@ͣju5^jiѸu ~ hu{֦jLP 'Xld L?Ř*7Y#01 -Bx2<ޔ#lv\-/<4(mbrI@C+j/B \˭fZN.x|g,Kg՘bb)pU#Ev@I'ʃXu_6'ɛ'fo0-$Fݗk:|?j[\mǥQm?kbk~eۘeӣvk:ؿQ.W{|@Y'5B*6GMΚN7 >B=mb]l;qk⻶|qW+37zZjjRJc2Q#蕧]ɾl#/6qZRVK=c-]0W'@gk#b}SJzX\Y>_loXɩQ6*S&àd>R$r dVWfER< -(v*-3m'<02jzd w%}"NQW>K1KƏf3w`z*Dȗv(ۚr'#z<(z۹m=+w_U8+,_./t$OT{e ^Z_l1<B"z׋!CnzKl6Ke⎁sEA)-Lu -Ȥ-C#Ang_V~¬mrdtK6ϸͿWNvGQ*dJ[E`5dQS"ǝ -ƼV/s5a`Oi@*׵݂A+Gf'B1`Aq4K&ɘֳ0KFs%ۖ"${ -[| vH>|>yl-y<ݣɻq(cdlXHfv3c} ɛ,I:+,~u,#C~oRda -]͟H>)&_H>e#tNP}:\;dwNޗF%ȘQNbLP5p^5"s=|V*/B`DPsYp>|Nm99"L7DǹgX\}3\H˕4/a&^~g"طG-9q}=n5]֮&.;r6_` 3$G -r| -yNOKKHxyѳDt_CՖV楋Jڛ=>YEAnl/lޏC:}wu~u|?tsyON -|vޡrСbޛ8/~s$]d}:Cp= vm#Sܷuuj iAfv깭0ݔ6mȬ*fȻ5ɏGo|_d.0ϛk\j[R|tKx>;v̗߿vZki? =E6-gnJ%]?m"bk-3~#µt699ZڟOlײo$Bb{?xw~VAkRɝ8.?-\KZ S3HD,DMF=K&M՜l7Ar612x弘ڢV1f|rQn?@܁..{5t-c\]$kLUZp׃ka~;trF6!eMjNs=dWs'O6Bbvhg^=Da2Oe<9"T}vvpݎ @ܲ%ml<<1i}xJEkГ>zNpA-,{07k봿c[E6fеіjɬsv)?7l66P2Wy폛N>T/W~#f|__D8\}`tl}Y>4/AЁ##A- 9EOSw7ZEmA7 Up,X?j^8nٍOl| %'?0 T_E%NӲ>un%mHuغN1r<ԶToVru?b6,}7FTT)`%h_ꭞVzBWv0^=9G0IN ڵ~u̠Vto)c[)ŧҫE@ڸZw:P=}{3}l_.Ta?DG^?={+-f[鲤p9ube;;J 2`eAV_.2Gwy/GТKW/=L!v6Cq›KOr6&f]h6IuUȯm+NyZ5DkmQL%DrТȮբ/o㬯=mo,E|b<4ȏu娸8@S͈(7 [2Yp[L;qǝX|A+`=w,2W,OUvoS -9QmZhW~ ~PY=˘ wryӊ]ekݐC N{:/3'+Q9`ʚ=!;б2<ۤ-+l)wKT^ןmnOH!$d hL 2)7]bVVKSG0ђ^4}G:uy] BԾO88> ],oawc -$ :d255v_dEW>V >.c/>iN,75^]u؆ё[\h$^8}"[YvV:h- 9͝r+G=m$bbp-NV+8 p~;Mnգa&&0Cyȶm٠k/;0KnMS!ΊD -)Qa'C4b1@)B;*%ր,m yYbIR1gZ 4u e'6W^:FݫeY-(lS)/?H =IKBF 9SI9RW<]Xn72R`I2`&wm˷nyKTIqyE;ȗo.~toTYanYA3A>rBBHZpۄ`X/CQ2.MwX*d4R`illJI>,hO &o'jJLͽJRi˸T&:#8&e4$8 C>mF :c,$v&{?>v =Jƣ\+¿|,e/ tnPX'~H޳=yw]/Ԓ7,fa!daw[)I=f#zTMGxys|uMv_/z |r@rk׭)I_5ddHsY|ҽf|}%rNGM:x>0S8nPxyA+~n -`,ʹlPH++B#]:M޽aBzKFs~͟W?pOIڥ0Y@ zj3JO8,~gs g! )12#ˋ8ߵwEy'zU(2rDx*({垷tlUЌ&0}K -YG7 teRS0n.[%äVQ$.Qv&G#"Q`ߪŻ!RWw:<\qlז0+@EPHΒL(s7Zkc<Ljքl_,a[U^[`M'Jտ"r#[CW֓]ʉ蕋C-.'wnJ\A㌷8X8t}倨znNS|uPx yOY=ŢW|"W^ᜲz^zd ROq:_u^YCvHRߵ+7*wiuϊ^VX/Ҧ_~Bɥ:gho;RTJ;imʷW~߻mռfeOv^4Qkao}Oxm|ۍ (w$]ϳ=t,}γ3 b ˖h\écO'5߾?zsEhE׫ӝ9T\9%lu!,C_'7[>^NaΜK<Й,S"GNÍO(orZz"x^_myhzcTM)-!;ܨ,:=ݨ Q՘hEdSJև~KZĝը.]0Y̞`{g|څ1{zֲgCܩZ{4;F_VF GQlFL`qQgj*xVf-gð ]y/g6TxoazѸG6o6Ѿt-+6L zQu~uеZZ{N U:MDeƳ/?^9ޜsR4^ K|][szTMb]62\Y2q0,y1 ׷iWuF_FmJ][J&EZ,]Hh(hKfmfl3㱱zq=NtQ -~w. -P5]?1Ky ٞ_ *YQb}zj]IۂTZ2QiY9)/>G"kBRv d]dez6x8H.1? ;ĨLN<<P7bNR:V`\*AUzB8&(>32/lv+04fpsv]/6ebeN=UqL.vKcjJU8VGL^(x dum&G(/6.Y4JQ`0,dkطQ^X_wy{0q.Y>ʵ(x5s3F5rHs!$ʖ;bB2PHY7@İr>lqI}ZWK'KH/7Q -7g<Gڽ`g2jC T]AZ71;ֺF#[,P 1?=k?W/ +LL?gRe](ڶBԤk/GH3BK -t8鷬U05;RV`EyiVR!1&kcndeBka:SRU2ޑ^+ kbn@E{^[f]qD -3:kɺ|ӄ2N(TS- - -\Oimu.=.pZ~a^\>">4xdʄ:D MjE og-^4oDWEv {(?|%'Ĵ*l<Ѐ3)ڟL;pyxBˎIYb։!afӻ2f]vA|̬}Kug6ZӜ#EaZ;]-&8|ݽ/ 1%y1ȀTI삟wz_:Y;,L"ĭ$lhpӑ|P2,Y{I06ڟo*g,)̌-􇫩LQ, /&9rNPǭn=nN7;r(~E]"9}餐e#2(ѕkU4<#yR&rVULO6&![װoJ.urVgc(eUὴ>&dkΑ*{}恀5{P(pmj;bpMp\Hpk\>k#ա1k4r_T6fn_.Tuu'[['oE߼:r_&/?RO].1o{ -;gq;|%mYj=#iͤ|Y'.Όm.t?ǂ' '@\UgƼ%cuB}5նag`nut.ܰo,؀^E2Ѷ f -օÓ1 VPNCkXpf㙺$mR\ܘ6!+÷MQk@ǦMz8767E6ʄףO 8mmC1:}nTN@Ub׬1V%~cg4}YVZ]\o 9 ק}Mm]ƀ)y նɔum{2jg,o+V*y"P&nBoRN -qG -aaWެsؠ(&f'sw[;e{ ' j'o[9a/qʥU -C[z^;ն[^;܃ Mn1D2#gN>%?J 5ʲ2Y;F.n -Vw[{_oۛ:7N_/=M7=)uMt828MJK3>KSgPqlDz$~~:iNtEּ8}-}5w ;[u)?=$1Q8~ĽGdu^ۛN}r&x/@',IGל<t4wKgwh#:K?z6};?up7-ԟ`߹GW{ᭁm9w5/0so%=;Q%-O\!muKrhQp (Ǝ 0<7r}pYu޶υ[%~OzvCj59[ n]|/N_Z_>eiNbˋrt^9=w.jM1I7xK,,}.Ơ("qpH_uxmrƮ`kxFvrYwdYxۖ$WFy:?OXСn٘o㇭W0yE@d!]s+uRXР}yV|~+.i\{&#Gk.T[TmV [l\j⽍/QKHcqTio/W|^0 -QK,Y) -V'RzZv\Ϝrq.L7=6Cuǂ;Zn2[`A`zwu]rTq6.ItxWOf b#/O!%9Q2sd4=>sqyڨԳީp*,Te<굤Eǥ:ExsD7š+_s_'/ٻH3/ / p j4y_oXc7>J:gF˱V%iɳJ(R+o*ı^k epyͩơ1:UgW2mBhy"W[,L6^IةV8*7kШcJ }TSXDzb'ȟS{5+q^|v\ҊA&r/d{2arP1my3LOV k|} iƣVVUIq(#--|Id.mI`z8_nT`)A.NO؉Lcr0lazE .?nیۄO)Tֽy^@֋ s;zyv=,(7. ȁP>CIײZcָ=LW0)Rñ?NVX>/6bʲ ZQup{\@ݩ;qQI`w o.- 4nWqԇE?ǜƫz2ivʈ WA)&d$d$R&3ԗf~wx;Gf 'V9)l)x9J.rWABWB(k3Ed6 -c8)=[d@JbB6Ѡ=@5BHxx@la{jsPcYLڙc(.}AAɇ;#s{y}:͹$M0;HSVSxbRߌ49&~C<˺E,N lXގ$x~db%6YSs-5|(I$!=AJߜVE>4i2tâQ>QdgZ*)}r.~kOuw?{'PHB$E2E$G(Jj(ņqq\Z~؂[ҍ -~ r m3ЯJ0="ATrh-ixX_}tȫdrW~/!(Bf{a7BX7*{vxW.I<:wkWlүq{6 -<嘵Xt*q.$ PaMcNgQ^s>={`/a_b}فŷ@L\0)7=uC{x4: -`W',u9TO8,n ѩoSUlXw4EQ=P"eGJaVo=(׈ZvUa\6'13bKng?Q{wR曜mt!9%nqY -2"}<{;fFIxq@>g f)F%nU' N+ wFWsn[w]ܶ+՞߻[ccOFޏX %Oyn*fѨj)(*cfyGAGgEnKiqի(;. s ?RW}3PuLGv`ZU[Ohpyjܮ9w63 ׃VԢ>RD̕^?`A@|ǐ] dĨ[y:0ily#nvKJ_Ź6[oIli0oިIqRGUS&MU|J8A©~&ΑTş=6:g6+^w;nޚ[-Q"7ڦ-kV¡@\D{xt*cCN7 $\񩌗`YJ 4]Ҡp*C["CgSƼ6,&쬆B7?]vx^dYǸ8ԞVxr;$)&9c*2xXd8 )@yu@ -O o0I^}n_B2/h),AEw+sl.]:5ZoBzº[ocvv<{͢?XJs5k׼oч8w*9=LB@&%u>]jq>`\p&\.=/gkZ| q@]:|TBk(8@8*Dugܜ `-Cl,vRoKlx=ە.||~(4 $x5XB$(l+@|FXNSǦ@R2n4qbƴӔss %g^_Ef=t;-K7\wD˾6Hɷ:ZxƗNp!}i+}׫ZRl 4vu{΂+2zI:xR}0t[{uK&^[mRZ]Wa}m8 ϗΊ}xEiRՄ=T+.gq$ҷMYe[OoDsFjAJBW?ZsKulksv^Fw,.ܴsoNw<9IuqLed=;,=]O܋mfgn>0HNϢ-w`wE̬3*ѿ[} r\(vN!"@I(z5{.Rm$VSɩq~%;=Vrv\wtV~I?QM8 2P[ ;{\_89;PsyKӊwLk;P= ->]s)}=€=kx]a2cV?fcc"N|l~|V,ș΍ v'#a&z2Om` -Z+?Fn,(eN~˓Z'k1WCteWmoMhZg> ;=p}='e-M._3>p=XWڠ2(:$j zʋփ^5o_~vgID1n%j/d`˙f2O&;@,I,//z V` a.7+9 0]Yv1$855 dhC2tc23"I9(:?6iB;NDڞmaə7/bUrD ݹ/mpcfE~tfM"fPd3ъ ߃=Y7o5BDl'BBIiKiߐ`d!L{E{P򮣍,E}@FbG&Fl,8mGI"GQRq? CRyjcG0E-|HᠴZpXWxwMǿO;–>>*c iґ)d]j6Xr\q1sBbϲd W}g΢}:{ȸ1ms -:$nrg}>siμIG;&x)Cbá8 Pg{}W`ާ]l%B %ݖ}ېZGC$mZ[Vk9rrB!`[3#D_+dAXUջ]% גҊ~xP-5L5 y'PWkW ߕuIswWۥ?`]cTV#Ѷu7'y5 l,^A-,A-iRE{?]" U;XXg # -2UPņj&'t 9nͪ辒4׿4_ 6ݢoWmƣ(B=@ټ_/?A-Ze+U7Uwժn:,[l?'ޮ/ޥ&Ԇ9v;NZwEF*Xbԟ:wɍejPIjR=ժY|Ujq1{Vϒ -g YPyB` GX/R/V:"ʸ0?P{=7>z'k7|ZS݄{d-FzBm %@oW2dusz =Jƪ6/i_2.8ЇrsxLi,7ϭ!G) t\զIָ^:lE:RAؑ~"|'K5b 4@߽|1@t7ZEԲ^(!^ +_5>^RoW[.#ܜ̎~f*F#]8)*ȩ: ӏ ώ j(2(}T#]ݺw˗ 3&WuU]`U" ,8X{f/Bg9Qpbh2Ѿj-Ӽ~\;ڠ&߽map;M0Vp= 7o_9f@6 hGMeCoҕ,A_O*!͇_ǜE]aXIrxÎClP]BQ9_8br c#}YJ endstream endobj 294 0 obj <>stream -g^,}hcua~+wJva!n ڟ8 -^:ݺtaOyG?|˴0M_;e?T59"'!NM>W/^D^:Ku |4)w'4F㼆 -GbǨe1yc&[p+F+BM3Q83QyIgs|9\YU2}M(<~`JR~ݗϽU;aŹe# g.h6涶p-~ud]"DՍՇ"ÓSH[:k54-Q$C3,5ur阮YSg⎻M|zE(9nmN؞ЯhpBCy3p}ݬ6z٫+%tyJ^?xKfJXeJ1m,rv)rv#ZTrBДMy]C5q,]Q_vjs:Wy{_K#~ }m!w9ݙrS>zrI>ѿX/*74]]~#< [ab//UIq;|yղNhgwqXH!a)^V99c<]?yw -ǤH[ZmyKCFy7%,l[5c<Ϗk5^?/z;*zki& ;L~| yX촜_Tʹ&='^k[sM1.k_K[ɚhOtKIFI!vC8|%zM<#Ni{=. nܚdZ9{{)dm|i gՃ}zCt-hrf8nI#e[dE]JiErSnz -~x/!9ϸ}V0>Ųs}56֬ޡͷ92 Ll卸,R>Ҷ -iVSGSySz-q --'rP^ˉݹԾ+i:ͦx4?ӓ4cZ:< -s66P AoG0T$һ㧖R"Ks3s,~,RjvggQJxu;MnbL.c5g9{E@^sL_˚Ɵ1vnᔍ͝< (/nMYaoIX^FyAnj|dps]_ b[A,wUb<6ܞ"Cmt?~0(2]^בH^&ĂB6KBIu ^8noݣN^@mEK9IV̜Fʘu4'lϽ>ȞSc+(R^8z -\/k1GtJ!'$CM(/>pN!s, -a9̀@;JC#>:7|j4Z?2>ou 冏we{ja:zx+b:ymdb'UI!?{"[TP6|61ټ͜R13kF1|ˋ!p;m 264S|ʍ[FP9uc -hf%/Su@{-dGo,FmJpe keh櫟۞k<6yq1HٴFe3IM?TUFa JEDA0 sńzk={=78=/J]55Lm-wYyT?Ux@[TŖͩb+5jd-Mk[۵E U߭UOfZ}]Fe--fL26FwںB}F0}1M;\ 1pMUS=Pc tz$ђ$q.цQCf y7 | 1;pς(txU]~F̏4D5M]HeZ~.|Յ1 "{XhLv~&b[ -WAPlKYliq ]YHhw){:v4!>u\5d(iFrlz; j^DZl-=E{S)Q -Q@U$`!G؎pЩ[~N| {U3x vL{Z$D -W~ѽrl!zö^ˆ Dz;b W+},^*st8IJ~!/""v*.҉ }p's('S!TXjsʻ܄wXLk+ s1_C@wFJMڇubmYڨj [JrcTȘ̥J׋)Ls}]/RD:uw,$RfqƊ.Yb>c̤xbG}452+{g#5j,UWPQ*Q]SCk.vYGdD4+A #?^ւ.N37v>S,{JmV)[74g?uX*rjBBWbY1C>z9jYqd{`ۣ{A=|NSdE -C͸eAšd0D`Hh~d[܉d2.=0g-Ļ\eҼyl~]_5OCl76dx%Z{*l12N\{ `-~rNSB5q𦈘>١%,7:P ػ`cW Eؤ4gsui4x_<^;?48~+ߍ" -M_,C5wTv9 i@2sO5'|5}`S\d)UЊ+;QLg-2Z'h)PQђظ1#_>ՅgҊPTL}TyLb*Kv G*GpV"T֯›nu*3SXm()g̙5mͦ VVWLp_2Vǭks+x zzrd}sy"Ru!o~ZpQ`Y<)g#Ȉ[Ia]A^>bbͽ<Ӝ\@\EWjWAڍ>;~EN YnU03񙷇O B1j[~T -y鍆Y0}); 1VepQ耉٩=2;&п;xX>^-π^[07UГozFrW_I*e/2Eph.p\ozܾC://m3O0/>xwճ|G-i}_uZ -ƕ]ڗ_]imJdzvN NϲqiGdzjg=;oSΚ9^02")ijwޞ<쳿I|Ç-vz%,pr<{Y=dY^qp5g9_6|۫(oBmHߡti]Z#.ݽkI,kV.,X@gޜpDN}>vOwzڲyl֖Y9{wr/cUkx[8P^ =q;{C@?bҷ3⬵i]['hG\y5]cϐZᘆ1N^,ZZ.D4^prx@܃_QiҞ.=M\+?yFI8/OmkO{o{4dk Fd.Ueۛ urҜWKwv|>!='Q{WXFWM{':rC5 ?cf1zHGhTH#a CpsCPo> -e4'|* "Rr-o/{Q}stH#F|4W9k2\TXi'?Uhvo,F0.uXr~(aŷA#=1 zl 't[܍ -8z}[pϛчsYʆ4D.c "# aJvBaAi^5Z?P}JF^OWN+#tݦ^⮵WD?돇{{e/S/htvYv&~~9\)8snt^zCwIm3DvBLݵt|\?Wu$~TĶj\?5OULk~Fp%CgYkN2wκݽsWLGg ֡YlmV10M&5ϛGE'~߬OVeܝL}~T<^G4wxO\i܈)hꓛd#diһuBL7V?h^NFf^w;h2nӦe.fz[%-5(F5$xB@Sw3k?ӨGzna -j( lۺl%MDhQIY6R+;KGJfJr^5?V~+֍?5XUy)l\ٱEZK:\pѵfAεԷvPsn< 0>&>_wؔ7_uf&+ߪIzxޕO]{'F@M=Ǭ_|l֮G-)8D3ZOMzrRzIuwϫp/j\?K~Ou}O۝oM;xP)m :ElgHm݇=ZHSxiKW4zʑt.kM5q IҔ@phyr2xW.vR@4}0J7J1e{a+]eדꅦW7ZZ{ݶlV32&'~\u>k9I0]krO>qTG:j!rIKmR^bT CFtMxEVS^6m[r+ w#Krv%$ #I2o0cnT{1jÙ>wT;j9jVg R!qJIvty5I{8IIe$5}s>ie?Y4Vev -wslv!CnIxLjFȩ}[_SO:Bz`I S)-9-MJreW˪xn&%'>u6Tދ0J$KBr;|j{_C^j^ck#iO7ܳᩆ 0Td*o6Q:\7r g -H7IN W`ސT=?8 l /?gîL,&oa4;j.Y M - /!<{gUʩe tBNlWW! @* :ƇDG΍EݖNF~g|;eίk2"o/~®N!,+nnêW.E({~TUK=f*J%~ybS4 nNo'<9W -bY+ WFL1fb̖`?f^5 }]/V$yF"²7a>X`9qhҔ(̊Sudgz#a,s4]N- j>޳,Ȧ1e8IY[S7+a{:E]ѻW__;A%!O%(/qGd%VjĬ -9cJ;d_tTt&(E*d3$qW*J Z" -j4r՚s<5QS^بI sBMZ^+tI+qㅷ#gZf5BJ2`%(&rU^ձ[-Nvh7B-9]%@+T,]nF@=tofTt)%}ҖɖW;ww|g_(;ěN^8M7΢.n(#~a>&]Vv tH .J@۴XXasPjM:zQ>f@Ƌsب9gx@΋D29\ٚdϵAFoH'\O]Mb>}b2ՖY*+g O3^͢wVB"rS?G\Vu2. UԫbfX>}hXeW@˅1 @342I 2sEPd˰O %}3eZn8W|(]- - vWmlE!vfrw{ 3y^;@IK\#n:`TLݜsK3ݕ|=fE^̢&L `FKsbKZ /7w8kRדŵFIZ޿Vh -u_Xm6$\.&`ෞW0)t_R2f-57#f7f2\{xʸ=!_r:^sB:#tf#?‡S6Up{= [O֪l p'nC1yp.!l@X- C -)d|4 '= |^> zD mHօ=tRZڰqqۚk`[J^ͿYVmVpsb}vdAS\4] [S ]HOHd$g؏;MWQUB4ՠ(q̸a\cdѯ[Ʊ\{pvy8zV -BxT Ɍ6_%4a:3iÎݽۑ$jBE(yMjՇ%qjWvO}0?Sh }P?ߐ^rW+gWkOc{ٸh7&jr:v6Y;G贠&ܛsX>fuԚ_4]ؑI}o݄N;b-ߓְU$FW'ϣ_t\1ë6@O$,ɾ3^?GUy2d>YچmbW[v7nNzLkz~gV_G)č[5] A{Ů?;,@g(^p7+4]+-,+&1x^:wD^iGM,<\BZbmU~ܥ`V@g`Ӌ&3|GvDK=_cep^+t|NNϙF5"qN8ΕEv_ w5kИO@ ~suno{bR#fGm[Tzn͕PR#3vkt1m* ||g86wS>m);K}2:3#<)LԴ?XyvǹzBW*hdG"L`|憁͠#7;j/me}fqVk+e>\]%ęuS9K۰-kմ6تG½y.9Nߕq,N69<@+{dNZE&4BSK849{/_~S,o~C剪?DUz6xnw"垨~kh~V׵^v`CmQ9 mY.fc00,Փ~Ӭ뚐Zڣoژ3?w9DȺj~WՔE(&_ fGH^O.Y wX|.% b&h4TifRO`BkğWQyP8UH~hZ3Y Rd~1Y\dlqm{#COTm$XȚRNX^G0c?ƈ_~ Z}nI+{ƃI&?^sW.}Nltݘ%lSmX I R ZkNE69AwE! lh¤Ҟ†r =0ƣh&LMR.9^X'f bŕU+0{xUnHb#ě`n~:|5T5LtN_~oQ(~lT_,YpڪדS,Ʒ^OxOk^N7/p_!;[goy$ 䅍9dT^nyuj5Nlt4QcX Q2RṂ駼:X=2ȱ" #^/.hG9樾=b-ڄVNQؕ*h._ v8;W 錚*snR.^eoU!ZGyiRj_ʻ .{@.rAODFY4 NAc -?ڛАʅޯGTMo 0 : -t8)P~)ui ?Pf+EeS -0VaiVYAS@zCz/sc/{A~j-F^lj[W_n7Mٶ؝7D)'j[}=rum 7Q,,V0N[_s't܎#">;pno8gx?N p 2Vc+}ftDMlNG$< - "69Ԯqc\Jp -/ T*āA)cqhLY Ͻ.$ Ҟ >θ^? FltbV zE#}wlC -. IIdkrG5+"R%_ n|ZgϏo@ׅ*Xz}[ʩ]2n@\(C?c1e6 &w`-g[ `56hqJ4_w r_@W g(k#ޙt#'/M|@ -!M&")PRƵht*ߑ菻؞KR8?[]G3`]ZJ.SJ뉄Lz|@zap1*C]WM XB\O;d]n߀]U?5`Pm~U<5F'zţ?fqt.M Ur{! ?V Iyl'a/[=@[ nnzK; /<R2rA@PdR=c2[%5ӻLcjIStDV+]L\k}qiߺ:`+no?]]6 +3NH$- )5H]x@)D{&???~+*χvsOxEO+?_Yg?}G{;:7?-7|L66 [ 5/Z\BdxST9^mwU*Eпr_%oEܴm\ۇ}ޞho>cpM1tecfd{xwnڄh]u-_*b*?- !.qr\8q9jnvt8d*jc:MHk޶c3|h -F?~wVqj:;m{}#ߵcŕv#-]$e6 JnΉhş&A5<:d2rQl>M+ZeKz;jZ>kgh~^?^5+D}Y<9~9vܰHM(QnTe$w]J:CO:R^}'iEК}3sj.il6T*>&S p+y5㯨bTط͑\wG !~/ϿZgxAOvq9C[Z6Wemٴ.b)F7 ^>Eq rk<&qMwMUn2͗ +[?fm: BI.Dh z&JV9NRhMQ$0X3\bw\Oǽ.k%G8`m<`Zvh9ko!AE5 - oVb==? I.4uMk\OoNu:%qĬQWKۉfρS{..l!zO,=ݫezƩ\ֳ wltz{nTuAN:[Y·[yQڐ'd4q}NUMڇSK>K]aUGx*٨=ԴFF2 m֙llί|/B: ^M[`B-UO#LP<#K ISVmv_tWNBLJM$)nt{g{XRmnj:h1d1a4PFKl,:f]*IwV+ ߣ+TzH0jRVtyaSޱګZeFјtZlXVwUIB -:s\ -S -f%Kd%4Fbzږ7U{*W! iH1d&ry]; Kue;ut_B]8+왢YS!4o֤ɮ:{Y B6\)Gyˍs+ôlE|Vl7ާWjaDIږ.} {n{/V*v^%W k鞯C.HAqqe@5j 斘Qn!x[b"ޕI y{ydKEv"X̋pH -&,\-(Иΐ|ekWUօWsyHMH-?IY﹠vADE#&LńYι޵gZs0]mǾ@dN8i`+~We 5D3FV>@B} -]c'6N}!%&4Wir^~fU83zf~- WxmH-N)̢7"29%lkf¼4G`Y Wf׉zV ;" -k,-!dfAzpX_g֖ >r1>Zj3u"qu5)+@jYPm P wxԈ )J*4 -=xł{q徊W'ݟ.d_:b#η?%lV hIOV 9@] ЏO b`)~ )!`0 RD^=@Jv3-PWvTD?OVU) H}l7j\bqBlg0 -x,RpO -nI؎;)`)QNMYl+z8*q\HG 0D1׺}Xȃw_HlqejjB^t~8gI܀7i") -xy.o'w;a8OGGZŅZNml)OXf2H+-' ;Z1Ee-'307_$K`Nj}zR{ocsnhonZWeTZ٪r^g@P -?~՘Q_6xNZt1DkԐR{1a9Zن[]o~[ī>;-9Xo`sTlSʇ3bOcOæu@G𺷏kW}0-= 7'խ:ֽ0/<92QsjF̼}0Km'ܞ?x<{6|x+3OZ=>b4 G. Z~0ܾQ6&bAɱn'xDQGr a(?Dw8h~ *62/n~m.lmJFXz:q9 -yIڏ]G^[?si+?-#C͉"R3vc)=~~/]lY&5_+)1pt-Gx$8$IZ ߾uyC niJCt֚MY]Bh}/tMn?+N9ꢱ_iu_[AqY^W,Uۨ.i$9sZk)pו'CUan>><쌒?p(BiqR_6M/9Uϳc|شݢkjbR|[A}L5wkwZ**+9+y/(] )벓%/ΦW8ijF@XtrZX)&(͛]xjtZ) -zgL|7j֮>-WwPύ[G_LPk莦ĩt`&5y״j<RyΜ-=7[|ǼbP(<-\0Z6ﰪϫ^">C=w7WZE56ij-x{Ln_r*bST)'t?¨w(ʭY*M9j3(+1LB ]O.ҡP0ݻ1t7,gK'I*騻㫵ULisf;,GdgYd>qmwtNTj{ -qgT5w)@\5(s1÷sO[t>Á#4)t;ԖE:KV%!> G[Xԛ#BU#E"@GN\iryQGD9^Ci3kc矵FBkX9qGl 9zRoAR.h:0>%§ 泎 Ph4lxdZ>*Z)HN\ǵ,.D%nVRcY, -LUTWkp4T|+Y.?,i1W3~§IbV. -оQc]Zgr[>bpoKmhyչb Z7-vu{+}zWx\_ -F,@9ht[3^D68 -E}Dx!apXH>6%3OK7jÜ7+KvFӽPnyz1#3i$bVpT4ŗX D8*O9\ns+zva#bckϱn2{0 Un2k0Ok@ ȥK]L t/K %m}ѕVgF՘ȒwKZ.)luLFJ{iG.X9ɗϭzD5W߰V=23n V~3t{Yi[Uԩ0jK>TMs'֎CjzDjSC#~yF?9VFKr)jabF#,g=`mf9Nc\CWp b6IT+?)f$ɡN}81n{ɗVDryYgip[;ٰYm_Vhu1[j3zl3o'*Yѯ$hQlУRkH;5ob|Go97yZX{k 瀩!# \]`U+11 ?> ˢ^ PR |:ȝ8|/ -rAMCI/,\C_ UXIK-Giu5$Is[t.IVP9=;ĴR Z."C1Y:S0ʚގ3e2~2`)\j̢s)m͞j+;Ka -9`Ä/!7]<)QyoDQF+;=(jXa+̲S⊃mm`3/@)$E) @4J{KJFFo@,T"EwYn.S:MD'[Cs᛾iqfb7'{fv̪TyF)*-WI1gɀBz+@7!Mq) w^b8?i'j;ʖ(%R e8'!<1_=Y?2sm|b4SOЮJhB7RmM@˟$ fkwuÜvۼN1U+a r]p WuDsx8Og -kk (n#X0WOZ`v707fit3. -g1}sZ/q6%'žei[0zWW%P!c:WKP~00twf'xr X7z;BO]7c! p47]-F=-UW] t=dt\WNEj494OCb(2@~dy\<\!{v*@j6{0~E4~ Y7HM -z?I[-BtD&&,=u0_ F< -_8U#3F_9_A)I5|1.}wէl)nIY?!s v2Ydz~~Ѳ\"tFf"uih/')U0Yn,^{15sMysW6Fo9:eϫ>{.C.K7gv1⌈W}jMwyx@#j-PO8 D \_VeYE/ߠxɁZ\ńh$Ǔcp[0e` pesCChi$RSަRt~j؏]x6vb:ZokXYcR"44l߅<\[=6hўIZ/aݗ'sZg4?nNIQ#* }GDwZn^M&cXT஝*q(L:?|ϻq.׏IpBjN -o Ey(r 8Z*jjxn-ZrwXMI5Wmr:>ʹ:ʟ-(O..gs(ZNM)Lb#8kCx[+<4Sipzmz[ߓ߯vxd=^Bj0'TRJS6ݗ,F߯7,(g+QɹW\:;,`gkbŰۥn_R#D"7T/ /MמF9}_ɯj:Ys5mePW곍vp(ܝ=p)$ዉ>Cɭ3y͊\TZXَCVm{m;I ^V7oH^̿ -OF -Ó/6eL2m0gSE'PёLkA{J<6-%#^^)>9%1TKy!4V.{]{{uxS–ǩՁZ$*re.LϲJKJl@nGKG^sLs T7[Wup+ Vȭ)]l.bJܢ'uCr2ŀhbI>_SI9/67?'3,Wnӯyݙ*{jXTWD({I~({90fN>̯wt +YUIήz⠉-^LZW 0,E Fq#m8.2#;IԚQvF;_/36mP(PwU\Rjl5L{1e?jS4^BnK.Sߠ8s9UVx3 M%0BFTos<<,*€ܢ?8߇^ckB{=E:2fT(]}|mVrӔ'6Z[ o|H",dZ7 ([u˿]0[rK:KP#[;])SصJ~Jhue͍ҫXVfJ͉|nol[VGDMalE=!B∇ۚ[tW; RG]e%Ef Gu+ͷ͏GCIh /:\| ER/rҒ_;$)vuqVPn+Ozc:/XL>pPn~֖ -Kb%o{nKI&*]{}٭\`Ikn m-'%&)eIj-˘n*Kį:.C>ݪ['I#ȘST:dj_/y"'KF/(Y;ċ#/Z|y&CiPܹ^C89`kiUwx"n W68sn>ͷ/m*MȻAݓ%^KF O$@ĵp+?DijɃݮ{w-(躣~Nx݋jz}o5~%na y|Βlv^LA T.TIM4Q8 - DtmqW8L_ca[@יcD 7zX~ f&x͡Q7>4hG>+| SS*QbE j W\#k3/6kZX;A -r_twJ6[+*O#;,[^YF9sL ):ilC9a\S1څߴK:&/Sv ֝6?گ3%}Z]*&ѰP@7k);7~N(\^yw$mh#f+÷}y9Ӛ7NqKݔN+⒅CE(u|WVeLzr}MxRM"2C54HUj]3?XhS%^NƠC'RUfۯ'\T3kDoe\Ioߠm[E3݄±;,M-Mħ=Вz;iʁbB\fp߇a03?fRfpUR|k}O.n#*78l`1=Ql ;䈊Is$}ܙM]NXv;ЬݬdO  )=@) xtI! -tyL\BAQkvO~aN L'J;c #|/o֖S/סdQ8de)fOW!N3,$ j}3VeFy *L@XKRTi,9##|3݄␀.vsY5g'o׎ ̡%Zc@9IYOMJcPP|Hj>(jBNjC *nNoR}N8JiyƍѸ sH#We3dԙm:_ZkRLGnk@/Ї  -L8FRlѻ4`Ҏ0:Uz0ZLV(zXJ=%yol#&nC{<ShƀLdIߥk3uE\~= X!6Jvn[C`߾ -Zp+)Ò_/7=[(\tN&4j;l-)z:%ؗzxO?g ۂom3$ (!\+nׁ R9p¹r|Vf3;@n+ Ol:&:~SQ9@37HYecDk.Tln+m\YN |AS tF٢nECC+l@~S%qs|O\i~>%@<{" - -\*3bĻ_OljfMvJ%@,FUD!QU2rv=mbΟM u@Kf |u@!H^7]«xwq|hMvUmB~gjB݆[uխF=WA!OPe}#Z#(raXW_1V-i>Iη_|qKDncm*nUR]>Ycb"d_}h\̈Ev2rrx8i x>Q#Mp C'f@C9Uo׺/;\| -ܾÏil_?Sz'6΍*!G}ȍ&ࣅc?C<4?tm6eizFzwiح苴c<`-.jrɱ-2wPN,qO?/mp׵qϞnbdɠYB' jz'mpi9jEw2lY|͉ El<௽vonPs8ǹKH{}鞗n\:Acĵ: ڷ7lezb - }LmsbYFT՗ލB7j'uPVW|~RkՓ%nNiw YPK ,"TȪ]/+R Ɵ}^kqkޭ}X/Rg6*}WTİ~`7t'-mhj|Nvop -8G6P'"b:=rqō.zIj2&m̩3Rl7tkzyR""*98vr\8*ڛٞ\mOK~uV(ylq|V%]8IVŧ7`>5ɥ<)O"%<%de39.G&`bɊoK~V_f3XfnR?;+Pb'+RXe۽Yj3`bo(πִh jav /VQC+:*> RL_ù72DTYl?l|'~,#ЎۖՂYΜEatMya{!緌w{old>~ƒoZZ~j51=BSh͆ȜvZJq: .VQ{$ c>,A5^8Z|u2Zm|J3`@PRґܦ`SCEVH%T.Rv/sQ>͋܍_2׻!R!$qK2Eh -Ϩ sOmOB.D}?W v[1p7[P`r:59`Ff=J"]sWU73QS%s+%hK% lt=*/ބMKi ɑ+V|щsbrǐ5;g9LJ?Ssbs -BϛU[QNg@OfHnJRC&^@ Pi6gГs9UqJc2P35cajPcjyJgi4˵ןlyװV J1\%U4Wi'ރ$!QQi͝y+].wΎUY3S8Կ2A dtcSӬRg9O/2aR4?4胖%l -ar:Y8̠k_ox)uwYԊ ^(dcAPd+mUcj=33&I;^1 } |Tu ‐yP1\.+mX{'!qZi9~ a} b"Bi!m!IgŨ~"9dgOZ>TyKZrO\!kP,Eɿwtqv^I] DY&t>þt`c L{X Eo}찝OP@뎆}لLu*c;cK}!3΂̬'nt.+(qhJ\eZtz-a?0UW[bt8Za'β}/eCSCfhCnSD28eEo\tΧX(i,Qv"J9-ebOmH/@|=jv!v42ImkdtׅQưKBߛ?19g=t<+"Vw=MףHҴBw4}@q#{ #v ȸm{Tc &* P s Ęrk@)@oI9Jvc' 䤃!(M34N_gV.*3JX{\}@u&rPZL+@DnAcS<Ënh]xt3ovg1_l>oWh> jWZ oO_-n _F>0LfsE]# ؎UXCz=`k#W`fU}rmG՗8 GMV1|:Ng#?~>;B5hpwV@~V@Q4P{(rYy[f_ Zn7fcDх@=wgqv4i>Y-6}cXc]Bwȇv1Dn]6-(xU-,1d#%ڌg -zmM5\׿ -7 0=ky a1S`P$5Q ڥ(?@ʹl[kqR#ď̼ 46]b7ag$|v{ߎD݃:}n.+6pƾWm?h"浓!hFG|SWZWOJDO7\]@mOkX=Zߛpf wAXݸt- {I:}Ge[?k+/zedl _u9Q%71/ױl`BeG{ -l]GQs9g1g1kgoKfPFq 8GCNkạn٩RO[:A-꽽=niUN 5f"g4̵sMj[w^;a +8d'b'A˞tK^+AKw=3s^5Q ˲=U⮝DLdumYTZ/`CAN]BkF:â428ѩKkR.uYnII]n`θԣD2͞eFuaP7i1v74hZ]l7"Lz+U?lE#3+')yGq Ƙ3b> -NҘp$.qY57#Z#^e_9Ӕ.y4>R^)- ֔3Q_T`d#auB-߿7YUv^`X:`Wm jUdbSM>Ul8S[ -khA -{;B5B* ^N*QΜJG̒$lzˋK^i 5B9XJ7|EyJww8ٰW5l1scJT| i8y>7\״MYT>(՘'3AI8b, 樦{V*y>d]2Μ-Ƴu<)֬b:ZlVL102R`ހaj1!|h`,/ck±Qbך1SbO@*/ ->ᄲR1*#aZ (y -I:Il@#JM`ʯ!^yW8?RxCCR6m4ya9Ŧu&A?#{]00]h+M(2>)6)Ƴown;Sk+m=PQu4>Uq C `F;<X& [v T^:fO+@8D0R|jp @o'Ndd|c]OM̪ ^+)demk r+0odh/HHaBEֈ3L|(]$$ԴR@l5EH$[HH@r%$6) > I؅ylڮgo -ejg>Zx#*&]8vmZaKK3Krd\E@zwrG\o o6 <}v\&\f$o,2ZT -e_O:ӐθL@T ]^'BYϜy@U2zoP}uS$@3NJbz=@7'@m鿚f. PP}8k#"-%+?·RgOŤ5,aqw#a[@CsQV=VtYnW_=y2}A0X#cy O$Y7 1=.ApK^q{[53p{5dLFtJm!$sCQ=[פ[7VWӋjg7Z@y3,"bx8Y E 3E^+y'&\o3C]Rؽ u>Akg[pHx$2@z4 b.Ŵ[b8@z/u M ŹT|'tx9PLƸvQ׆ӽs8 oW>6K+OWʦ$?˩]84tiYO_j4P]TT(| -)l:ߝ+t\2hfi]cB.юw5u~>:1З!z:8}OO8ЧOldLq၅ڭtZW_b0:}gz6do1sD6HRvݻfI1Vcrr(ݬEEMy̑Ǖ>,r|#ߴNVwJZ蹇t1) 30om+H^f阼2^n9"iE&W!7EKG4BO;ur -D:\:"6ѽS]+/.5g/uozmÏN_9'mc6Y ؎K8#-=0OOCM4 6({GC~С4b[Knڊݐg]>MN߾gE?U\ H;OkqDZos?\+c@ -}GfΧ&!ywݩOQݐh>NguM6j8+A¬?_{\K{;eȨGwC<:Tnq7aKk͞7+ݬ}45O/}- Kujm`Mm)TvvRix<4DZ͂S2ĵ[W}Z r[ͧ5Tkz5s!.{uZV Z8W'b{|içj׊ȓ]7+sى&|fȼ p}?z5ru״6\5J"jPLFٶVyњZr_}&3S֞6F)`#\V[-,4YI!9y#iʊ\3DZm5j3ITmh%mHMC|V{3&;-ʣ6G1JפeW.h>@wGoYʤsOԤm2cQ7M; [oz Pq<͞oN'W(BN89%e[.j(.l(ݣH|s_$V!`X<182 -3"t #Z =w0ؿP8(xyW+LŊ;3Ylϒ^M0hڐ~ފgtd'v$t"Ob.I$6v LI&|%O,F?q pNRnjaftbL%YêasVM^)eg2Pfz?~:DMcQZyZ»z31xT. -:NJ{d|H,U0O_7HoT[Ĵx7Rm ,Fմ; Lx$Rdh Qjg%Ya N^w7j^ȣyãe  8";S8@DjRDK@{ |ʞ>B2  _ٝ)8bW3KjEABb+HecE%iAJcACx[19PkWhjPu@h:|U]6z11 =,-~^;-Ki.}9 vUgT+{ -aӤ$%!pohiq -#"3gmzB[٘fl'y4 -`6`N)`. BZلuL `f$?|\O]hv|d')i dw$xփ i!WDWڂ+VJ뀽] JshuXpa8.@/3/Qp_q Dȹ$+1)2xhh?2,W^lӓRWgn~ @z; Q7;c:jyIcMp*ʟ A{G-[7Z"C&~? -W== {H5|fi!Sl@' XH͗z $xαRXy$s:C_Z\Oe.~ "l?Spnrf?uS@tĆ-ZJJwgYd&dU 0&$o]?.?i ;xqX:u^O}RM9:K^17Zʡ}#<|m}P=/Cɜ3u8:(]xV YTJ(IEbnS7k -;JTp=?nM|w.Ghn5N~*Vy^`PIQ%dUvL7 :l/"0Sj _R?\칉Z4a,">Spp>'+;{û0Ulנt靛~h%O38I_/'v-2zxja>F2ިQpU7̯|`ydyxr+9`>e䥆Z~Pw7W{k{1dXkdh8hU테U{u/I{VX P6TxMD/c+*'CY|}'SJmdװSOJLi !\i,ha56oV`0ZYߏ;uvt5i2lxjԁ*()+,~MtS\nJY:v+GXJkn1hN6WG5ibƶTN0@&^uaX N3!h2Qx7T;}[*rܢ*đ/G~APaJbyԠ(3]b=LE\wO'7_^Vw4W۾N -:{1mLL7m[cDS¡R -2Х2~m>rE'.MJ5V%DǷyU$I(5{~7|6JMh sȝ - c =d-Oek6>a|i 2+죛pM%ռ;ՆrKbxK+."­Wȭ!z8ma뱾Am M’ -|vHTw2]z:= g-ʥgwƊɵz^w;oT/#ڒ[;^`upLk,^63Y!X?.]>S`y ,|+搤?3U`U!}>8yu{sK8jGv_7QJ`B##AG vq\?KTV졉6ރ(W?R:3XphRr)FM<p&dA`QկB&PoAʊ6 0OkG/eV7;LjZ[Tds܃?8<7;v|/ .($):EA'Eu :JƦ^T|ޣMsK9Y8{Wә9_ o:/8N=oCCSc uLWSt2)e@DA?EUz 1]XHQjgCP#[Of^Lp!Ebrxcxԭ] T[ .{t>0 ]dQd9*K\m-@\j#}IrUu@VҾD G -ݯ[c1AO!J:WSGvw;X4W@_<= 4 -(73WO#A6$릨,uŀ:Up@3ŵҋP*r(Q>튡֋QwWbd#\@;[?QwH@3s78T@OBq S(R&qm 0MoP`j0h -3T:)צ(-ǟQgރH1Kp*K"aCA-[eɱ;ɸwߪ{lYcFk pH =C23`GUdoz6yg'MO42z xj|OQ_)\b)=+u~?߼ >w~mEW -A`@_7-RI̫;'?Eqw@ӓRU|X/ʦbp?Y?MN(Rݭ)Uz%mJ@] ԏErXvYdu 4`o]߽-髎s"~'?˨J (Ú 3(hN>xC]O[;O]ildsVYFX/ms]z'nMO__OLt ߨ5/{;% ->׀vo6Pgf^}>,q Kfӫv+]y|ϖs!閎]>`[u1Ƶީ76HLwnJPdD% '~E䬀BlLT.~ʡMes/%uzQwCĽv||:6빭|`ƛrs"?8RQ3cf̘U4]uʯAq\c(> r<^z${ª+ЛnO5^8ߵN%VFpsGKa/ jNM zF#,C5wdιfeyK n -9lluݐFN+n_K-)t=iCCUm8$Z]֙ve7kd}Lӯ7WJ iܿe&R^sGm/1ATŊmU8X4N5HW)=[עyrz){WV[WjI}si_qe]=,+\Pŀ<PF~ͳUCYgNk8ś'+OPFCǸ{_9$?Y:u;9!3{h_mOM~_6vS},_)[^ZLS_`qg_o>.%OzqEhȞfE'G $ZXTR,s.ĝ M7B̧_y[f]34g7Z#jn'?.=Uc[5W/^Ç^_Pz-o/X,|Pؕ5 ,֜Afa>qW[ U^1[V㥯BV5) ʋ:ˎ,ΥZ>J#yI(hјً$#TL1 Aߴ\ ;ٛ38&]~Ur_JI뀽Sh<9%MZ+yj!I𽪉Qo舁 DTXLe&Po6ć̳diͳ VJ:^{Sl()^xʓrڀe7`?ISB)8>̮DE_YZBN?(olb[6_,b)-}3dP+!1^̭إP +ȃ@ i/oÎgю; #WcNmYL'Xy3+LٌvxGl};h 1F5U3ŭF9ڒr>Mrb$QY-o> nz&(`sڒ=ϳKˮX2{dt|΋WgݫeH!jΚ[(HCQ~|!扃HL"7Wp(A}9Xz}F~M9]Rw2>lc_-O=K8a8b"1fg-4gN[ے-5z')7 -rr02qĂjD1uzN{] 3dT1nsY`bs>n2zK\"L,0nc%j7gLƍ9mz=~w@akBʔDD]bq ׮ V2c! 7Zo4TRxQ]:0jFXd·Iݧ1_yt)=#*} -J]w^>'dc!dvX%\J{NzB}/6Z?%TjzH"[ Dt09Qp7Q^]p^k8m,0կ[*6,aS`V3sYIr֔J9jO6A-]1u'5\ $FyĵuEv@䘃ShNk?AƖ@wALZZRG@bA Ol@m/hL8$WG|Z}nϩZgq'Hϐv ^!ǿq+RLAo!g `k`XSM1@e IDyڵm繨+"^@" -5?^ 0ew V5qs.x̄9ǜ;.RS#,SjTmDZy"zpx}3wXt!y8H?޳԰7ښa)nCj^5Sl -DVa49Uɔ9łZH$-Mx|?%"x`18tq94H9VEUubLeBq2ͶI֧*@;D]h x,R.(LzUqbkdFuU5ɮ(4ǣ9,DR.>+s1n* -@9n[L(z -e 7z8=rPd^Nd:\cpT"eXgaEe6#BhfAwbR򶋵S+ٱ^N- rQBFޑFou`qX+ظut& nl2/~1G4f|</V{Y˽/ -Uh -ޱɮ -7ۻk8r&xXNTnVVi h] 2z 0&G^# \2KBV X#o'%#K`~`tbռzEә=~ى@P6xJBM,&Z,o37J^-j%2>RO@(Z +t e=D$ U/ ~޹ͣxTl76QbsJG䎸ihl  K>SO> eA]´@ܶ *4w{Teh xUHE7T%3{IGHf'Hxy|:T~Tŷd1 1W a; u' 5iSKw\Q1u l YhEA2)aS7`шb!'baՌ|)@ -d7}?90om $w$+ܿ0o,H׎k[݃Cw@@b - -% = ݢR3hlW?V&sj!q"QH]5ur:hzOZrX~~m`Q(_:@BA.{\ς [c ;w+/jűܾt]bD'Y#Km{C`~~ㆠl~umfVW^JKPXo-PXv=PhcyP(f oeމȞ0ҥ -$!Zۿ5M^T n? -m7(aʂir%'#Ai'Cht|Pᄎɉ\j6 zQʀB,کu0[0hbK+6gF8 IoCᆜ=I&(RɨT)$.s%o&hx't\'|qׯ\Cͼ#]lᵾ]DÆ%ԛjw}?I$RwYCsJsd%: AGBDQ+v$IC({ 6}CL&纛C/d`ѽJZBjڐʂX5d{d&qJ|wZOv-!Jv0Zsm&>NmfK{IEGi,2X4"\ydC>9)Td$y34 }Wnmd5{Mu~lz_J2Y/d͗cU J#QzQ8ƐClBg[fJYI΋LlK4;rq$h:'V~o -ޑVc`U5(at[tM(ɞ%ǔ^ߓF&9猏mމ9 WO]hk^'eT "1ۇ]ް0G{Q'^ -ồz&b&x~}6={x,Lӗ CFj0P)ʊrQ$rE/.۝WYM᝴WbQ&?j"n<Jy V  -[;n_+a:RNfSn/j| Ղe+EiV M_U5dz}.u߃@=rDkUaЩZ:j W8l5z $O&ZMG*D+S󷒊ǠSP9(J=rR^Nj0W-f7Ku]WcR%.eؕ3s+Kҥ|j]eYd^b)[ uXdzTy:c˖.QHlǭ譲NJ⹹}8%iJ+Q΄Y -Rc\h[ZXL -(Tq!<7XʽtNn]\6G'n[v>K#UyOZZLm؛bgs8 } dƒR EF49e9E1qzVl,*2KazĐHo{>=PdXғHOqz&bÛo2~9E:罥̓^)D͵`o7#:sJU2,,3xf;#$UhzQ$z,haitbG<%exKv隰or2_j.wh%U*r!$9w]ғv\J'FL&!L(}/DF \-5|=#(M9`;ZBݸTv-] -8,(C)QGB>Ns,SbA\/cM+(ȁ!k+P|-U|zZhR9vG%6U,5SBR{E=ŚBnźr cAǬi Xe$}{i3&hfɢb(|]f8G4 MuF¦=es7z14+hV){%rCd"8pZ"r+Fxo9=R><^uQOh4hg#rF6@VVv91H$x""ӿMaHR|DGsI8_gA 09i XjTh{uKC۳"8Iް)Qm71E.hQ;I5O:Qߕ.rA13GJz -{4a@dr$d[g Cecu(@O5_\&@PS+Gr= k&^hovX~ŽhE/5A)Gx:y9P b H`^ -O``rׯdSq(r`j|EUq`XߔV7ށ\h\Nll{wƐq 獌'w3ѺUQ{N)i\b]|w<]NM1w&4ql~g;s-9椰;fH=e;~8rr1`P^/eR<>k7@$ yD9AtpX{m[+]:vOH -Hyը96K&c 6߶(ݏ2?NP"T>-|uѩնf҂E2 5H4VHlTAl>Q#ґ/RV_->()ic4MҘ֊\-9bV7:Ji-e/ ik2H4\4.Y;bv_TKRw6 j[i}eAs, |a8ٛš@a P P@Z-7 k,Z}@w}큿WGWkφ䫁Q#Ж*awt©^Ʀg7yyKJ%z{_yݫIC{7B9~%j!{_ZޣWBx_H]i\~#>zajs1!z~j$I8Ȟgllf&0#͊7K[lqn ΉG8i\Jx&q9<ͥ/Ms |.6K?0ʢ6[?oô[>PAZV87]τ^7U'B(RZȃW D x(Ҍ,&g&K?!B+l^+x;¤T+G'LY̌ -Q ]7{$~߁+feO~&M%f1CN/+l?'we;0CNw'M|BpC7!'ڗx"p gkx?ؗ}#ńW?}Q;WR{V\!>T`1e (\JHqWLe\(AwWO%cھ, iѱahΘkoϨ790ic)A@§YSQ6J_(f[g.pxx,Bܨ蝦jo㜘a(W*~5xBa8+V-</@У.yԇ*o6 -]i{Vkײ/{<~jqWq}pKVb-B1n ^'(.jwV= .ЯYHx8*?6i}.g<@$U{ͻ "̹{V%cUޕf\m.\<.G,s^ ˽5~^R VymTn>m~JS澮\ʝXL엛fu%ެV? 9 WU؝⺴:۬\9a('G 'GiB<}yh.NUB?t7F_B3'!0#ZX[H$y v* ½Ֆ3`r :euzf{6w8!fԶ8ݙ2*tP#W?x+|휸2^116n4zYg-n -FNekiTKt&[U<g^.shIl+23c3Vs-͗ XQ?$ۉ}/nɸzx51#网8$xGfnœ3t[)vd5_|fԟ7ǒ\daLNEUNp/*|x/|qٱzXnJL\,Rjzp+3I2䓼,Zi^ 4JB޾?TR8ZLxUå ?g"K9&34)sPn̂lcv?)p_m!-ȲK]W0^'+e?ЧּJt<\e4nܺ - %7'Fnb֖M}2=읲GiuھfNFٍۺ@oMF`UUpjY8V!_A32wȷ@;0&p+6&%L2pg$>l0}sij0f5?A:ڲUn6V6-C?r8҄"94s܌wW[sI\ҤS%QZ f_7G黴ti,fR"_{$u@P>Wu\SQAR^b@krF<$:sXsJ -=O[L|ʯ@B?)vfff%sc'3Pu"³[EsB <_Үy{KI-SB{:e(}ϭ=)6L9BP! 뚀V9NR~#XJ pỶ`W5#Q::A=JM5S4<) LDAM@ݫk|9imoJǂ'/Yh>ɍV&>BL3 1K+)4ն21y1),";hz2 ?$_u4ʑ>= #{of:7z*OW]DTDMH,YV|?R~s9rT.m@&Nkބ[lAMbg&0T4!(U>xLOL<-ka`!lO/Nc{w=#':N>ۣ{uOs2|/8{e`(Wxv^j韝O ƭ6?.?^{)ljD[={oCɤjE\Ca(_~6|=E3f/]hP:eVuӨ{OMr^ƽ%nRYҸn&ktI׆ в.;GeXҡe`tZӞEz'bɾ&Q\U%?/U"*ެ˾Yh\f Lٷ -鋨ꞹ Bc\wgKaD3 eq:uDž^,8/lޒ͈͎ #kvu0,llSy1XZ0֗S^\ a^ly1}ǑO\MrPy/+I/׃46>.}Jl,őf9<؉k5c4m9 -MʯvQNg -\2*0b׻An/l㡬bI-"e5z)OKř=C9͋v$[%Yܗ,ސQd[$Hnb(y y0XN2we<#y):a(~Re*?EvբUFXl621 xs}tYSީ)2hA]NDg~<9# %Umd,ft?w9clCuezXVxhT3#1f܍r&d"%XxMfOrs -MUrAz!M6V L".u~,v[hSj7f?\h {9,Xfޢ@syR=%%F$9!q8t!IΦF LChbAkWo Mtm]m3SkK*{~fy[]3W˦39;PG-',0Q6ۇo:x>#9twyrtֿKcaa7be\/w7͡[ (BSA!|ԟOLr,n A_!>Ov|ēcē&{%c fble nIslKݞ~Ezx8<'3>"gDYQӨ$ OVS"oG -H; b,Dnc)2t{azr]yҢDf'3CP@Lsue›%- -ɣ -.f+{߲|FfL0F!-e/sgxk>/*/i\KAIňτ2hTq9~4pr~:y?z ѻy1Xr7ZY4nT#.vhD04\Lq>ӻLQIrC'ߢB{} l׭nTAkͧ\>QyOm}!A?"•sbU5N& e3.NvetyAm3j¢,}qBw2UV -)4W:)ڜ>;_-m83T[gfӱYίDor;FPp#gLgcYPoN@OW}$dn8r>#%<:@Gí՗cuznqu[C+'+g4l~^Or)l|'t5/NT,7n֚5|܈ p^ޭr]=Lim|<%j\'}B<5TRp"&d>Ws{0?P˙2_V1Dr <' - -Z)ۮlƝ+[s*mK~hIo.әpd=.΋K̒|Mֽ=S=k_cnFmSC*Ew]bVEP*UXgĩyTa{BG_nDRWX,7绌,C6M> M6j"lT*un|{A]ujF8N2:u-<|<c -}Rs[KҷH^ T&!̿WG-Yu n7hl -FB*m%x^i9a١)R&#Qt-ZXyT^+&¯T"#"Im'WӺK .UVN^㹻Yjt+I= *zFkd+4g]dјaslM6E=$>{lˮUB?|뇳7ͦo:tjIyCtYnfnƶ6]LgZyl|hĐa bGe<*~RPViƹ1ŕYF\/PΆ781c@%}rso]nܻ} -g|]"q;#َ J+e)K߉f7*zb*MͼA# gxuJ]?ier$VIV"Wۀ -Op;\- }I_x?˟K| g`9Mg g/32 -snj}C -d_;3fos19i( 'V;&OΪ\T>j3~tBvՇ܏H8lN^&L@Yb -blI_o{3Jk}=M o⹙*W\/j^pp32~ޤ^0+052W3wmzUkٚ(L&Y _gE+HWMm3c2+x -r~IөF4NT!hֺ{9u yfP^&l^1mU /j\MZ_Tڲ;oq`VuIY`< )O`& bRfDgz}W5pU**LXMOS^mU+Gl[B迮LYW?Ak/:隳O{َo BW$mTպHixW2en\vq5*8+۟H8y9@@wu -1v( .mѷzj'g?sev6uĢӝ(*u;VYTc -0>17CYs1GrH^նqI -3 !={U}fcsrbX?@'~̱o2沞"VM.pD2t<8#l9L/V}['R_0G*~^rT[Z -#:/F]bXm\1%LG߁VpxfU}ˡ\vx':''-ˑ]vh}kAX&]uИp)u#BAyxJ-E'm8ڇid6+! JT {xLڡ,:7{$D};4ۡO^H69 -Bmc:F3{9M~R ! 1Ϟ-ë}/@E<%|meʴobx<,<;"CXΧuu_/Խ߻P&s*! [TAk=!;n3jf$.kj2uPϱ׷"vb`L]薩;oHCeWMRKgRN?$;;ddG^̺PњanP&q'Jplqޣ+`-ӈ-殢?}"Vs./>dXί+uY2f-9@b^s1փ77;}49Ttz!ۭ.Wr5xLИTw]%ڳ#LCB跖~K,&A A&F Sw'QS2WU^zr͋1C喜)tzg[~yAG,=kTO)&/dz z^ru;FtrE8.Cʕv^T٧(r]>0lPoI> Dw=grGO]*:U'BVŭi)vlN9us[.%4Qt楺hw E#r>Ckz뮾)0bꫜ<8SAt)YDk:-uNMWDcǚSYf]/E]«^YOx/?.E1.g7 io>ǟxn2;Ơnt< A]6Hy5u\k\\emą_t9 "S{o'dg*:xj,1X?6Iw{;e%cDzc[\*;iڋV5)TRvH^vaCj:Ddjd&e)7@vނh..Q_ům2{r׌EF/>Dwb^{%~R6 ^UED|LbՓ[Z[mתd%Ɍf)Q5=o KOS샦&-HSaЬL5dѰb{`p_oC2'mMN:,qEOU+?NE C߁}0&>:g}P3AgؑQ,rWL) y C̋ 1-9>xYN&U/۶^2&ֆO/0b7G6pl|IM"le&\7g F2^ O{C1Rջ"wYЗ@B!dG`O/Q뺥AL]۬AvjdetcHֆWK3;QQ{LzGY\Z/l4FWivw/Tt# *Z٬c>u/20|1JEI{؋&'U&H]Z;4J'1~\9=ܣ@!:J,1~e^e`񓭻Ϛ%OZɟTɻfsm{(5rQi!oJǂO Pνg[u R*mF[Tě%ldW/߻nBUBj+ߕNW}INS|\]I > c ({A'X (mbТj'μ7=˶&OL]iĢp$_eut<{nGi|jiƳօK6k`QxyqO#>Z||T/ py,2!)++کrb唢CK!x󔀠(g͏,`GģENK#tNG?i}qXeir!ܫTf_a[h2ڀ~\-T'?Aã^nW:%_t׌;SSC=XazdU\.=>tli{=Uva sĄ,""A2J+{f{^\k򮢨)JBL~o ?:Фz>⭾x~!2,B1.FQvRG[ZE'o+N -oP~rOމU[㯾cPM&"}k]/1XLqd*BK_s#dsO&k4"Ņ[P֝% Ω<\ '֓K_4M>O~aDEᾭ `D8w'Tɲ.:Y{]Q=VBsJiEvUjyTym,nYyV%ÞUu@ -gA4QLbA+re!,1]ŊX'dƢNμA'6W?/tzۯ6>ӂRpiaN`<"5_oYԦU>3jl8+s)t":~Z˥`AP#)i{6~аkUoe2J;zC-ڐI23E]dWqpϧ_tlBQLm -Vxc^֏wPȂ/Dqp%s酸kzU][~/{aD23Ȱg,οQбE:m& uk-1=^n@UAQӁbT!uKՏ4gͩ#쳿%}Y<[t-ޒlrYeY}d0N z!~^!EṬ& !h{FjRy{prvqAk7Er4ncJGg?ZCEY̭OyyɪiJg!uygkg3ǬfvSSi>0{~'e6nI(sFaj'#,rd#r7Lspbљ}&Axst [X_~!cq#ƵM1όi^%j;j iض2v_LJTO/fo^GNup:#+"tneJiQ-Nۣnv8}~:P6`Z,Io'X*zTv*U ׮}j zлXw2N;ɓfsǠkǺkЌgTP?ng\^s!u p ./?>P_,/qۊԾPtCQ˺G^#}ME94'bs,c04?)O?"_?ϣoH?7RO@籷_ ߢPAY%@%2ɋTJXͤ_+/:_M{yF(\A#ot.oꍵ}>mW">7Ty˫V+oK;sһbt7O<ͩ_(Y\:؞x/ڵ-d/ -~_ַF~PVNDz>Y -Εwϕ2Չ`RnV9`oԗ_u_o^j00a͕˗BT|A|D-LgNjgcRJ2%ԣ%|˰K(z0+/Iwo'1/7MEؽ Y}6] UjI]b(1RK&-]yߙ@DGYdZ(;t֒8~(p*MLTP3(fK2UwF85 1coETxUguoʬйDwiK;ÌBRJm(J+<#eBQ:=il_bݗ.p.B59ply[ԔPⴁ# -7]xulUKC&?_z^a k:*f-!aθk'=.7#MQ~fȯ~2D,{^dY|O^?Š ^=WDBV\eYVX 1 M='WmC^DXzpzۯKRh$(lGfH0>lcL=B<hh&f*@]02~.t]_w|Q_„7oyQB=NԮU^#LX{lsvs+|Vzf=W_ta! fTG%xH\T \KUݩꜦ t(.ӷ@{ِkRKReR.￴KPǤI$T?PiK8xvP3@nM}62MxGawR7pʼnQZn,^=) -}k'xr$4.q46dO9\Hr~^wxvT9|3ᅱ la뽽*|vkMk{ Fr'WZD WU'&p%|%Xpk__3P-g)XqF@@bjܪmڙ"Y==f#K8%.ǭMY3a&s(~ /PSBMA[d'6ZX!!~RM.Xbƚ 9{t8Zt}̆i?S,,[n1J3YسrieI=N/ѫ4agF~>VgTWBO'жDZtdaώ21nr>^sJ%_)ku=+W=uKA|yu33Z]P]RJ+0b<:VMhtLcJNQ|}R7Axj-to|; g{8(ï@uQ*}6mOk, @&lҴ]t\˜S%iOÉK[U@&S{AE ɻI;7\N5Xfp۷eP}~Upbv.>t%>.}SGp]S츌ʁ*5Tl]ؑaƢin܎'Kpkع\zÀGA ڡ:F}\;pw(yJ}{),?D9V޹h,Ui.;Lf15I{{ܺ(_NaiU˲ŷlMvYן4a@^Sh~!gRߚXG)92P.5Pҧw+RAWL];/3̹*8Cd"jQ|4,7L+sY'suOx>M7>ӠXo Jd ʫ7ۭ:( 1x%,ebf~Hɴ&/_%Vwbov:ei֩P\}eMA-VO@tJw8vb !pw솨Zxϸjz$AA`RBžL8uq6VFYάF1zx?l(Q6 92Y$cC. E~m_,(dO+b͢tȓYOAAAO~>{uS~ v26# endstream endobj 295 0 obj <>stream -Ⱥރ։#eXcgdp/dn=dVS۠%Ϡ3ШȨbCOÀ@/OrF9)o(/cP,4{>-tRYSycAsǓwj݄8:M?Pv\^O_5?4yjڱeqF󅭝TxZycv46;H\޻l~E)؟:CG&IsG M:BR2'@5?ss(zPXy}{,[A5o3դڹϳ0{[wun}?M$>t/s97Eٕ* -ˮS~dsT^JJ#i=.iUs<~_:ilB8Ժl4H!vPS/[ٽ_iu#*-ߢR,f^x -Tӳ&A/$jXۓ=O͙r{+'PoMQ*P`__t&+TW%Ζ@/J'6hi](*'ӨB.*aMq]td6]<ݑbݟf6.u)ziCf30|:?ͯՍͼ܃YtUh|ߢP 05@3 pw7=8껔s/gsljc^"Al)VY{u6u=rYZa\ZfWZȊ{n! - Egx -ݾ -PWD7_Q5*d\Y"u2*~)ڻ|Oi0cHGIaI_f/1u6y2L| -P2Ԥ5;wovjӏBJ߆v5|N[\#gvHڧ}肎L2Mr{)UꙂLDݞ3'6y3&gAnH2nR=/$1I֮[GnZv|tbȯlֆ hzrؐI$-TvwQEwgT^[#MnLcD;+!'ggk[YTbWU/tZYA[B!rG! a&kʩ!qwGs/TT3dl\- -UZ_i-1gkd9M k+.vwWͥ7j>ۯs Y동S -~ˁCQc|ޢ>:.=ʵNV#'z$?Ƙ4oNc"Ͷ 7S3_Lz.;G `ׄ$*'9P<P4iP -6(jCGӑWXH'޹S0bXQZUEVG_ȲFpE9qK>?ΤLtS:/ZA`|L<,) >k;+4SI$}`@f^wQBj`ҝ=p[O٠pEq%RB? e ]ʙ&s쭐.pR6p,*!SNb@')mJ XQ/c`:KWxlr#ȤcU׷f{\/~ - -2Tch.p%nycfԌI%kwgo~g*5)wؕzѸrGL^p$5@.;l,nBA ijOͻCg{x K4Xp@ -:O;Ӡ(KP\.(& EP\G~vhYU&E3Sۓ/fai^Jh0~ g -gɯ׃_ۦ F}-R#8jPLS~]vXoH?w;L۹q3}2-OCـ|\903(e(]jιP}!EfuqTWmow*n۝=8!N7zg=Dژ汫Q K f%@ 5)P (Q $I/Cuo }燍 E]\Lyo\ t.WN; |vƽ̣oe0N\? %Ct6l7Y[/23^3G<^XIscWCVM^.Ym9(U!t,CQ$AiG N܅8'*z1ŸRرDvbyUNQRM|0{CuUhj *î*Ă@'(͂ɍG *|ܯ3z9v G7>S ig#p:ew橐d0_U$;SA⪻(4Gg?H@Cxn{%P2ʹE *ORCM:DF}.-8kpJpWug6/T3&xɑ;-.q" -n{wҶ͋x/JWڀrd2TB"~l:%6HhdtΙ+2ף=IwYgǐ3]4z+[i /- ùu[H5kC|y|gG=@Y_ls^]V4dC}UPZV-QUriY%ftm{"?9Eacf//%B]:@ٹHp9?C1=5g*M}qCYey<_oRMۤLj=ki3OMN 5mUB4~Oo)hL -qV(UE(z$P-fW< -[AgVzGeK[7z̢Ax<6ǢD,ZJ|\W`mA|q$SPM~zWB_sy\ Oy`)v X];6K1~A̽H$Эy|FgL<peyw%&J۶o^=,oo0>#re9@ٖL );GG=K nJ؟{e(VAy4 T_^k>sS}{ȲT:54%$ۉ|gT'K*/y]E]ldcǐ&Ȑ$'kx+fIPUN=:@hؒ}hV|.o]ܐưD rQ:/I<9~YUq\dVC^Ov PNM}hBQEa>O잛ˠb]_w=*]_%G)~!b|/벎Zrq#Wg*oN/fT_ԲB'Iؚʅ7WraIED`0 -+șKm2:rxrh+`}#g>Xuz.AԬY?r1k~8マ݊11o<yz7{u#NfËwi:a(`MM';Q:=*&<4`XWeqfI|x?W,FRq ckO2L拜dw|!W -Kʯ4Ϯ83l=$s'~o)٘KbxD)%5iveE0bMgkR1*VG~YGuۑ0H0#س]}ؒɌT}:x&՛Ҫ5i:<$v,XaM[@jNވƕM9Q;Jr3dK]8l2XPѷPgi$G+bK,u2o -{k*NaҊųvbdy(a֨iUa~;5p0qzBTp-Puah^Ax4kq~GMXC(]3wmx8HΧVvT*7b\}Q__ȰmaϫG5U(ot3Bzޛ=m_EIo '5c(b^Ԉ _H(6 5u*-O6mcFm4i=6Q$ɩ'd[Ͷu^/dDX8g~]v0A]ty^^^b (›9tD9>B&[r}k[qҸ3q?u7#!Aٱfj׉B' iERyӥnSF^hYPD2 -aΕ5/d^pFzmOHYvj&4E|k(6l8wh?&à<wU:袝/$X6'-Eγ9`y+,\Ћ+x`'[u-G[:nIPMOJ -~> 3 pVFQ}Cvgt|ܜ6"]otAtyv]97R5=\/db'GeZV5oxEsLAxR!M"e%(ZOn2 GԥrņVSK}}vZ&p}zkВ\Cg1:blly†tz^pmrJJh J:s%zw~L/ŕkbɴ/wqy-W,3AeA/?{z>=vwPܬLw'N jtS<"IOmrY2 -KN[ ?94RM璝 objZn|pK7k5rχ].OxQw籬h#tKz(X`K5PEorCaV,! P;POEgY(B%6*f =$iSP~޴Ay&ȢY5//iCqy3aD*N9PM -Tί̓9Or@`N^Wdo۽Uyl -F4B&7%ɂٜ|v% 7('P4-wA>b?-Ey.۷!E2UNvk'シm(ʍycʅ٤;9u2*.[-_p"զݜzLj`8@IX8]A:O?#J>:|5vڞ4,`?#C񤟤 ,lX=VtgޙYMѝ/S/^jMl/jML*9^^qq$']Lߘ22 pm- sqŠC|o`(ӇhsJة`ŧv)F#V FXZ{N%gR^wF41y䙫0t.aU%&xg74 $޿sDz.(UOqJPG> CgNiژlWBwږJy(nj -/jUO˼Ce<N_p[o1>4x΃y̨/ؽTUOPvX{${:߶^@ĉn-+ĵ TJvjq\jY3ʒ6VQ}AǦ&>m{„AI{t!OwOrLdo(1ᑥ/[EiL>ܽiw&i9Œn'xZ^qȭVocrZ ;5|3˹]eF(C\mЩlv5GqB< ǪhJJ1=oX@9,Lh7Rl6Ӓk Ło ea~kW{s-QvwVˬ&Z-٬7o{pEk d^R2[_Lr5HS&6u-nYg9AC "i:ij$)kAG'Zxotg:A7r[}т0.%R9E=psz:dFq&.Zh޹t]"_(<& -˶z&qtuuAL(?͛66{$(Ǩ?kx㒯ebV5C b9__ -8CKV?d4tl]IXsxU7cqr.Zl/#:dwWhS[dBEUadZUj]BSrG䔉d0 -IOjynƣ*щgv :ζeO_΀t&.Tgg ??m@2LE B$rxl-Ps^v`ArGh|:~).{{?u)T:D~X)5)Nqf{:` ar7厀j;izTy;Pm<drE7RD'D<.lqag9Wa5lF5]Œː*Lvנq<G)x#V'sYzzKyeԳkrTU5ٌ`!vM [@1Я Cw[[lũ`u~s᰿*z#NSoЋƄyi>ECnLֈs1`(s\~7 %лV~ԅ츽 f3ǃ.{ݢͫٯ4~Oe~."3fyc hCKiN-NU<UBPk SlxVȣo46E9ٶ/pVxw]sq]j(ڳ)vU/q#6Gf%Ò>%IJ:]2l;8عd;^|q#d\/%1DAMf,7ϼ>kc1޺S5jkUIZR3, vU}?A?'g) ˊ j~x=]EMo]HkM{yaНs)=`&U -l, .ߕѦ퓷w4˃ͮXwWSp}^<m#g|8_9 }{lLM+_v́oh5T kO[uR񀘧MenNBLd5SF˦KJ}rm=A-ީ]-q?"30";9݊)/NgD'P5G2PJcUI>k,սqno2VV$YP -^`6W·ʨ>LԻbpuV/;]Ђ)m~=1mCێ.ڌ%Dk,DR? x&/~MJ_KL+vkiW&nViφ0^{ˉҖ#n5PH=-űݑf84~zl^)Ӝs06l)ҖJܿPDZ}n1z?='EO}:^!-a|12% vw_= -uiLDq@ڢrjpA;4ԜBN#Z+h OP0.{}sVlC~~51w5|%cEʍ=/\UZ(LmRɧ.|9L9zmKajZsR\eZݭVz-gxAi]xIXczϷڲ_GNiIyIŒ`?J)N={|]vs͒# eN(NH}ٞ/x(龞5i3+N+DK/ΐs?]b_(bBQƪ_((0d0 i3\+L5a>ʺ[ߝ -_9ΏleEqgy5NYk,[zWryݶo9wngI|q#s,8wDu]=j m*UTtIpP i_Хb--t eWW=tz|HI+ ŮgmC|>m|9ߡuEeh֐\lzɜz%hy%4"Jk});VWrv kW󃚉k8?[ce_=w@άs4Mu7>keUC{4 C۵қo*^te]Z^qE;_PP _Q][eS#WծTqN'ᑣz,5\^6B 3.P\ΞVw幑3e[)᥵dKk\ ykgH:F*w٬.[˰_WØ{]lcv`>\hdv6\+7J:/nǙU<2z;ۯSR(c(T~8Oiz]1 -e+LJzm!*S pJ'V5:e"Juo$`"+ϵŔD3_ʜ傫ǵ72w^8ledeG?!1 e&RʿY6}s;- *J l6uщ'=_tW`v|hQ-tYPClqnZ^F0r ]Rz+FX X!Wݭ/tTAa`t`Lq -kv|jT{{t" IJFaՎWwmc\Giq_mY`~~ (V?/ 6nM>P& -&,3C5ky%9 bLzyj 'ufhv=~9әhC;/yI@Gբ Lyj"2jxi1t.j/1@)/jW֛zA\XVK`!mh؁vϹ]T6akO,}PF3(V w g"/-a A;b Uřޞ3h/"Xm\{w"`0Hmӏ}غ+s['k@0V]N+{wY ]JPn2A@^ e]bv̡w;yNS$f^$y0,nWg@ΆuҶ|_p/P>u & *a/[@Pȅ}̡P]P-@/EDsU}x/{zg@ <:܍}e3m0כߡYZZC@0~dU@0!d,L rL-YޔdaͰuK[YvSC-(ܴu6- ~ -^C; )}#0u 7҃>^(2բg^>.x Dt@'UOKA/ NstGiA{д{afUz zbP}TVm:`F}0VLUJJN]<|24:4s88ʇr ?t՚cfv jDXD}^šU̒= Aҷ)=Y(|fZ IIrȴN;>IֽyĚhn/0 +FI* -]:  -RʙϔVrҬ1E MrTe&+voH5y]'4]|mh窩xGƢbih~ ~h}/z7'gg6Z\JO;;dWH: 7 #K3J7鰷Z#)Rs29Ֆ[N:=fκ|6<|Ru>W.M\K/Lnӽ%@4eu {>= 0Qˡו'&ϋLZ_wAcQN²FW-B7lh5:N{G uJ`Y+h:F>h6L _e=PLʇAi DuVA39av7dms0̤ȳԛNqf*sq*o0NqzBC;ylw$w®C{S ԃB (^]xNv`+$/˓jR1<R&tSqFQhGF7B z̐{uI"#~48P9 RiѺ"Á1l^pruyn>R^k|3iveD1?|{\j:~З{>O&A;$jg!EW@1 [;p dzGgH0ŞzN/1ǽ<X3T2eV6ƠS:A9)Rc$Qe&}9~ IЗ)8[\eX:oOd8G.r3ʼgBZgp/ |*=Ӓ˗2q'fe{? 9PVpW⿎{Wﳤ' --z. ;|z4b\!s]C)ڕ~rRs<=oZofKpFW&<>--eXI!ֽ4D.Hlj˴;|$Q_xuR1el[˕.zߦqB}bw#@IsXXր>τe-f.1mQWG% ˈJoiNQ/0gޑxј}lFöWjg|Ii=>(}S[SyHY{{URs2L.5UQ(C u1q46r7=wp^/upwv~ֹ]\$͸mv;6-?{Tezu_S֯)ȤfuU4۩E!Aƺ[xLeB2.aJ -qRw(E>HkԞa<!Azny6,3blϒrx60x=ԁk=CZ$͸qo?`TKg1~nWk]1Su~Y]eJ92XSiwmrznnPcAtqŮJG]1rCDSʞYEDNٖni=XN'7:DVEP,%ejVլ~x^ !9H5nr>4oE(Hɳ&V-v^[b dTfm]J ?V=zzbke?zY]^* 9k+OŻ5wa]Xb?h?Z0&LJ:)vw|Sd˙p9Z({ʒkZ$3juw- '?r Ekt$n qf@o@ 0ȓ2Zmf^"@OP"z}$ ) v]kDҌtTL eEy5x*d0H&ʛ?]1S+fW4kPxtKKPIC3TbyjPTZJ2H÷vT$@C lj_W碏35*TOU7(w2*@5+LiFi6@fz6U n{cIXJ9Єj -8ӊӢJs6A6oh% -1T;hJ - Gs;WK+@#& Ʒa緜 Cׅ +" }c@u c5ݙEe92:Խ s[W|-VP@yqzp\ k`B^Az]w1Tr aP|vx@S,usok%eGb]R\"[vܯRPfFtt]etD 2i 1 6TF_Ӱ##%+z }EdUV"ޓ+Ccyuz-溥wWS ! 3G|ؑg~2K8#o@w9}󹤟YqnyE6[q:ϡ8=]x_yA(|,SKygxt ns@6R^Jf:baܰD_; e^F߽roQLŀ.`kI{ˏ7ms dozWslåz]]a[Km3V_IJur9+,_i2QH BgДP^9Vm+߭$(VKlpN˭Mk+NFLd+cG{󾓐̝u}oN:П#q,.KmZr7nmPm{3QF=ȌuSfpBһpBbFYmK73`u<*Cxl]9I83>jbWs{GleK/ Ɩ.>DyBTFFAF5cƵYjg7Z,?&T2C"RT&3plWnl#Jy-JStX)TT@ԻVSa%c6[mDw1dɀpTs.L=rC]ku™z Awش58^lۗl7Sz^/q#EGbԴTYûw_}~ymSIgO-kEkz]Tϟ[dz:^&fM # _¤Nu\="?=^[ SI?r!\E|uܡd{ǒnuN~UcDzƎ_s1Zv8a,53 @+-cw7t c?+Wvu 3Y, Uq1b]Hl.^w^%W~<ɗ|V.ꥴ4d \ l̯8TvxF7QG'ڝ;2(^XNeXK?•`ٖnHv4;M -58 ԫL]pUo2-vYp6U AJ{+hAMAA^-9 VdP=\; wwO՛ -^|:M8wAd_5V,IM\>ɔ.^΍Z &[&sc)SY.+#R@Lg8ć`WͺI`, -VVjh)t=OFZ]$+ewz\3ϼ\!eoet}f 9iKE -U-i"{צDlBWXMh1vfHHRʻ`φ,G)68Z(͢S9WwUs-dH9:f>ɵ(vpF8ؠXQٝUQOL9w%&BP^կS 0UJ-ޯ &m}^" DJ³| }s) bQorwngD,Y/BY>d Pcf4ZrH*Qi؂ M1UYZ bFA5M#҈neωEt\-{45(t=2V|~7J^`)LӘ=_GS]"T@ L q_x]NwM(.Z-*%ר1|"O C1`תϲ*\W@@}"@]+۷U>@nE8wTn . pϋyD*iFk\U9>$?ldZ֡)PW3gI>y8<: [ FkK#c;9wNbk& `vgl2ٜ63./<@{i[^4?5 .nUɯ>]/45>3_^ :K -{rYNog4~M sNmu^r3v -DŃOq  DRO|f=I]Ni_np9zɷ.Nd%tիXZ̲7޶T?f} -H<||c~D`=I z4li)8RUY`~ͬgOzM6<ŏ|d3v[۽7}w7ljyZ_qj]|$3`^pNЃӀ#'LM@nG'].)3>;7wSa{Am7q)?wS%-;ySĆiutRز腊WPi󱟽M{F%3m\(f޹z'ɞ+{; ^& -7>5y䦎>? -Sznyvֆ\n -.zvέjE*B~FmVNO77G&^S$P в6T;^|I',nmayú5M-EǗQɚe,)7=`R )zؿ&2=ӏCo~BhϠ>,.M:_ѫB=EcN'U=kdieI{|콷/WĦ99g6Zԁn`ްӄL/?lĚ0ob 7{|Wd?T>:+:rt㼛 Wߞ`e fkZi֤;7#c^7zKP팴%-5wcsǥ9A d;;Xhk>ʕ?詭cC2&κW W3Ԭ&_uWF;]OqqC+0rjt?YC0[9~w箾Nf}C7]V&ϗwgsd-=[28b#O܄,Er_T]y^;Ì@8'qΩk6g| g]= A¥.$RH8ԳP/FEs2 ڎ{=m2[d;OT4lg`10ldz4aWTC*L(ڣsG R;wh@פg0J[5K'58IlA;2FaWn2dhC.&y4:Kd>KmTsڲW: -.׭ܭ|mZۗ,_Iɡ_s. -p Ucevc\8=1֬lۤz"[s -:kiRFܥ7>&᤯B9ɭ\玅OɦbgttEty[x;O:}[J|{,rޮn*rskpK+LFM{~Om**}l"Y[I`hym2"qpW:T{%v۟.K.I9qQڊJO{74gOWt}oVf5eL ctz2=^f#^e3r~hJ6޵sԻ6,7VA$E'SIsy}(+qt&ѭ`1zM,\Rb?; -קGUQɯsM]K7?"ltۡ/dIPkfĐ(ϪuO+YA_+B!kT~h5SZi>u*޵{ :d϶w 'WoV횏=}* 5 T\FmC>{_? εD#Zٵ[IQ֊hx[bJ^q ^z\f"jMu.ʼP1RY!5~`K5˟Ңc| Ò`AVGʥҧ'y{}Gzӭ~s4IvpbrFZOVv}z4]R%i<œN4g-~t]Q]k̋lEPDQATlPPX{]ߙOㅚ  0MWݩyгJ:>XUK嚝E+[*ݛUiPO:hdкUzvQ+{heA΢<>\Qi8>z Lxze{ɰz*kctLXQvVn%+oKrN})nBy|WM?ow'+)إ:ˈ!mUD [Dܥ$炼q~Cٸ傑^y66)hzVzS}(>@LS_ Fjw<]UX狚y .W3T_Q\W(w7o6</^jSl] @ 隸_q{l4{0?U u?T.}ݬ1[ą8/1 j,V1Gջkwl?p^uwy8HY0L<|~lxhu|<3c IE~NB~=fWΫTa?f,O{ GƩƞ=R["ߊ;"6irSj1~.adз -A2}9(Dؼ㋯WmPKAaS<L0=s#黢j"Y>aRjY!HjdTh'ՋHox)5(7}#D04R6(v^-RS8QcfgyRZc֡AZTAߒzCt`#D/HU"lғ*k8",VCĊj b@fBtN)cWV6>@m -PHrB@wuSd >2a0I92ؐr GP4}h$D? 7vK0F $H6Xi:z*%Ms0<߃Xs.@) -w+lI|<+$|h87 ឦ )ůn ceia #lpo -ܟ[Ci&-0h0t{]tNH|yEXʘF_!r b;vgy -k3wVe!ߔ>kp8̓+7]".q[ -`<.Z+0" =nФ Mn@ozL6wfMN<$| -yp߼e2 2G \~}F4wxH;H[ ;`kuޗY{M/VГo>a/mSLE׊/fLY_- ӃU<;ma=Q)wVwW'U^b JLW$UL_c= wJ~thy&ܣ>XAרg.|''JRH Xmۜ9 5\qFG|=ބ!Sn[xWnY\wzy|xh Ԁ(xk)- -.Qs1:_UN;TSޮޝdLէf,-" nSTP]7:?cZ~GW -_MM?E?C7ca@xOv=sג1،pl,rIT<8. X}" kx^Фm3@}KO{r)m^}hOG\9[nwgZKre&Mm|2۳a䑬;tD_W>>*:R!^ 3ћ}\mwۃ7Uk׈LW)/,4&ϯKƖ0ʹ5ůcbp̶Iܮ1{xR1{w0Ae@] @L r? -O0_ITs-[֍S2 }r괭xv<,gYy=,#ݚY`t_5{a_aB)\{g+aݯJ՗/~?@ -s# -&Nm㾻o+ז8Vacw[;>Z/zڊp'?ad5Ʃz=ϔ14ʧwNu?c/xq~O1?Vz;|YyC2H - ZlGHNusG/-&E@}sN$S[M[<\(偙ihz)S}w>)*h{V1U|]h $:ڝ9Ň.o[RFX`/R<<p߲RmE'Ay=uSMK9YΠ:b;͵66mUkֿ~^Q$;{ĘO!ϟ  UXgS0|&N-kA?1<ԩhh1KvʫEV߄R %@]97Uj=oqP#1epq }4;:_^)K([boKV>@y3|tO]j@}}]yQ~CDo'TsX.jta>gCbc70Μ54->̚(KC-5ۨf4!4vPq"WVyweNaJzӋqf|Vƴh/F!G({OX_w7 c$Dk61nӣT™1iw QTUӯ轮q#g|.OvvRzLjQ5|BUy|4>e_l~,.9uf2hļ5Rs,7)[\Z !jD&2J\نRŧRLϊZuSH)F|JE9mg=-v˧B.<|s2 7\F?Q h II`ˆ|K.(4Vb%(YDպXW|>|. 䧻Uu%҂RVaEv3Ow΀) `9U}R#x~ $ֈ<2DD "V -:Gj %QȪ/*)<4PZ{wȫUȠeJ>~|&O)@n3Cf|<%\3gPBVJ80{}6ǭLLOܞٿ(}u8~ +0ڱc]ٽ'ֶ/o)8@Z@P\&d\]` @ @/.pi%bԊ;6Oru|ח}ӄ o^X2%@Z,?s|H2m `dl"!Ϝ9K+]`oFT ffh5n2R?]OX<8Șn) ;eѨ0GB|g! U0q+ϳ)FGD^=zxS*3K]+78)=X -tTR[p4w4Yi__0F - %M/cB-?0Ye^ kֺ7 xo{{zՕJ5MkǍs 9Iϧ(և&i;N_g\9qM>0D 54) ?*\} &iK>8sG.ܖW:NI)g9Y80r u#6΃nYhJ/)Skiyg2Y:e掸Tg xϿkMSe'/ 뒻b\Zshn`cvKGVR%fW;ȱ||GN3?4 -w&Lh:ʤݐhU -m~h3KGsK,g@ -19X_>t>_>z.~lG)9wpMLtg=nZK 9l)?fDyO>MonҨ> -UF?D/xfj=u0zdEE S,Hql|ڍUi}(~Iogse-#S5бVMAKL)254,;(aPAO`K걻A!~5u^m5K l0!EZ'Y%Km=nO,{諗V&M1Ydp`aLl?x<*Dg,RթETW~QBC=;YЀIGn/6 A%W/wcV}ƬIMkl:(l>S|ݔW#Z "nڣMbmQi|mwت/L9>!G|2ݓ|Yٮv`/ݴ=ZYf۰`lbxy/}y -{.]6{eU&}7w-+o`٪γUKBkukWUɭ#k<y= V}S(4"yZA[J5_D}K/] -KSD̔|+֛jjM{Yˤ"oXZl7-\Rl߀N諃^ (q#jEIS&F$?㱨^S~ WqoqdS^JUT^7X+@3tyjIwչyۮs LGSˈPt㈾9Ŵ7iGA\b}4vU ?knbFY*>O{p[ {`t՛t[d0p#lj]?C[ ;\8S~nI'&it ŒQ~g߅ZTfZ s; -g[4j}!"\Mlؽhp2yp?rk^^瞽T\Ѷv`䨩Lǣm#'qT?\@B_u9bUUZޗJ[vۨ.Glѝ*Ajrou/`5@m5ZvV=Щ ieygEp,k+1eP_ԧvȗ@id*mxtt4r3q;rViө8 Ù(yYo:;=*E3SVwQ0ɾH%DHhϋ!cYh5i,-K+S~|wf\q(h^-Oɦ<3}&8*#nʳX*_XL:r?-]VضY&U|K>l)%F[6tw9OO6[# +]Raf7e#`:kOcSyȷNKn.wX+S[LuUS?yVwQCd37ɨ\q"ɅOmf1*WBm']/#WٍÈNf~>!R{#u)`*DOHwQĴ+XxUmlbvސ /`c :~?/6EKYaS1bjǬt܋Dr3d'}'cu&jZ̩=Z.paJȌ0Z @!@D|sEJ U؏4" - -"EX_[m8; ۧ2ZM/YsDQȚc?oTȨ“ CDD툨JXf[V2!%"roXk!X#GE.m~< "F8@fP`dOF/&VL'o3C!y -!d@]mx-pT ^K:n֪/64<۩ء/`U;{ywv:ܖO$lHgԃhO Oޗ iryBt;y'!*O I:y[Z?_:xS_D}@+ l܆ @Bk&~&rgА^r'M}1c'$ylq.MKd%CV?{KUg@WWͲ:$ ЉT58_id@lXbplE9ڛP잤$\28Zly6s8pgǦ:vX͸*UHrh͌ǫw۬Bl0cΜ#i/lV~^)z  HɹJ[`.kc鱓+~#(=<^LM*YV%ctfּoGkYqpp\9=$)I}1*(0PJؑ}!qoj֞NT0{Ҩ;TLgknCElTB5dʹuVUg\8PVn9$C|3gt,by5 HSQNjiD0c.3`N3} 4;ON޲mgS޳n :{ 6 em#Jo|.?C2aNy sQ#7țq+O =O|LUJ_qq֗__&ɲ[p0tm}E45vZF|72F4& {t d%}?q?mi~lp?wSBof_btEidǜ \/Ǻx^z{vsdvU}-[{Ӥ8~nMjڎ̰19G\WQWS}}]I1yWp:ߋ_:;1gA x8sŊn3G]i"k{ίĒŏ4]ئ6΅oDQjolS'{GՋ[!tt ]bWvw4` ud5j>RYz$w?&4wwޛkiH?|'}ušZt[&6Cl d<zɮX~ţ%GiՋ-p(+zwXXpN+~roUN(fH~Oc7[<\J]rE`דyF97!:ZDs8hͺң:؜ -g=Ѳ]6 "Fx l&վNE%4eeRS{`#׼2iEeRJaIp\?D0;~:<z7GMњMq6E{4_h&`Id[ -~'ʳ^ ۊY/|#rY=H|Uw**Dd~m^R7uZYgy8`yP*e|OE''Aj7*ԖPjBVM+˟I(dhk>vCSٯW o.zX&qm(bBg>T˺Rx64_Ut2;횒оDH$ڡ,<OmO5!vrq8_<^z&>'!?Ķ2NkqX[C6 j{X|cn^#.aT;,!P[ 37ɊPq$\96B$*Q/^6)ڤ j j,Bt>R/†A+3/Rg7绋_ߦp693GI=}_]V/҂JQ')՘ZMԥCVYVP/#̽UT>B3juقM}e*T T*#$?\Dpr !7wfx<~zA]WgsЙ`GzЖCf˹d7NOM!ġYdzV-e6BaUxWZaBw=j8\oR ];WqqFX5qqEz4%!l |_YekOM?崾4+f>5Śgڂ8* r+ʰ󪮽8}Isz,gDޔ-t.pv_xVsi&=oο?ۉbNd6Ђ)`}emW}`r{;uGe\x嬀r1 -5-t]r̤-^˰d#TvB1MŨ+.Uҩ¼[5vom3T&[w;N\J9s]GJD`}{ilNJkGGH*偐/su_>?җňɥ9?aΘ^썤ѾS,]SR4^d]w#j9CFI'y Ŵyzk<|׭}5խϱS -YY,[ΚK&]߾dZ.uj;2S4H[_[FK=䉗 Z#AD?B3B 3")_F%ՙ٤_Kby>lԺi1.YStH]Dh㑄(Uc Cr+ "Y` _H,TnMjy?f>ү$K3d뮘CHV bI2b!"!Y|K<@}7vh+ [ȟi#:䳿F|&3y&I)|ZDKK@B:[wND  -ѐ0pe+3c#ɇ昙v& -h&*CFcs` :ɖ>ExEskGmwSy\2~x/t@>4@yWHX^^F9Dio/R >\7_=kw}gh;Hc]רY#`\^v(l!7@ZY4 uhgǻO{:ڧ~<nzyFhT+w^;sK{S[Q>]rQThۅurӀ?t V!'Z7,Aה(*j+;|=AƧۇE7ngx\:k쭮9%On>ͯJ~K}g{QuEXw^c@` 7 {^ !!oFۭjIw<՛ޛXg]7P)ޏ<ú[%vfȽAw~=Ο_^H8̮' -,Z%7708<~zb~3Q -{^n._[s(/Z~2Gf]}ouwRsa⦗sGYt{m~7R)M7zӻp%^"r.sK|ekLVnWY/;Gh#Ey nT*+2)L`HߞDp$~،W=u+S^tsduTN^|T]5<\ozcn}fAL[֓ Fi_ӣ>( Bm?^ b_;ϩiN#7⽚eS;#7ag__^SJRJe^-Y_5w3G93̺t*Ykl;tPYO+, Rj꤉D#0v'Jr qW\YEwD@DQwA0GLD48l{7 E)[ -Vs -&2Xo݂ 4yj -W U0řt9"fbCUS@#7֣78[%l=.N>U䛻83YgàŐZׄjQi!hdޛ -c|ۧp6c[kQs.[~#V̶ZL8HٷKnftIńvݘ\b1je2P )'kW+t|]޲n_­y^(0\6sm=cZtsvܕӫ[]0ުiW}w-'gdI }=(??+PKz<*}ߖОPa-O}'"?fbyǜj }Q Y{a2Jv3#۳/V3ۘ Us*LO|Wg&-1&ek`qW,d)T*b`Yb${(放zMǏ{5Jv3L`*T~)I(*xRLcG'(ͦVƧ=xU9]}[^76&MV=RW$p1GoI3êbceDr;q~vV!1;# +:ȓ#u 4V|r +H\9>#N͙{lT~@c>0MEc'>49k4~vxAwr񈕙˼Ԥmcw'@U%V*ń䬞:/Vq8 ?,Q׿1~GN<^?Sԭ=Y}dJA|B bgB:}N},]Xͻ65>e,edE$I!667̗Q)ioWqO&qwÉOӁnךڟL)XbU1[n9vAgn'`/`3Nu7!wbkŻrI#69ϴ'Y n8 @) ('uXqdm0ѹ~R">s;4'&Ԇeh)pFnv{z!BPȩwRJwg&60sjc4h:z#>üdzWv̢WiM'Uh_ܹNǢNT0C Bү9*LmwduuFdx_ubzGC>f<<(NDԄ^]ǝZzwhW)ھdRle8_Du| Ȼ]\nښN* H&` p:iUj1'tޓQ ;H̖~Wq'uծ$k۷a0V}aPwZZ;I"7ˮ>{Sd[K뮏46?pl.6Okrq vl)ך|ToҡD7!zMH5fƍ[Ku+USq٪mՐvPՠ+Zsvוin+;" 5B N Y3U^MP^(SV?nJZԚI;v1P~]NPR&˳-(q>oy3Kô+XPbT%Tc1FN|R]ŭ)ޮ@eA`t~4X;/ - R^i>e\e]\^aE1悒ąy/+TT}9dKW~ JvVN`-OE6 4OI~nwhupzŠƦk窗;- APV(/  m_f^eK4pF9Xg?Hf7O꫌S -/Rl- -}ߡpDO6L^j}da)j vz/'An^\]O%t8!ѭ2X1ccDUZbA(@eFUY wg2/%Z|0"S=Uo{kznN)!_w=p}<%,S/b[Jߜ_ %gt6*wNRuK;%& 5f$\kd|$83&nj=Ne|DglzIT OOpӡ09n|b¤ѷ{8IA$mIruΟHX(1j}$(creʯ$Iv!d,ID*eU 3[+6Iܿ_) -*>,Hl*QAݠIz|E.<d_T&r!cQxeh1H$WЎO5?/_3I>KtabEKesy6p$Eh;y#.!yC/2޻]2wƦ˹zB`;[\F^#@l>6`q6M_ J]k8w%hvpWK%{t6Q6kɇO]}'ɥū[mxzCsGﲍTMD4om_{2c{gx_ϱhC'>R`wݦu_^j3O3ѳIxn5;+ogq5g4Ojy OR=Q}>^ܯ[>V~mA:uJ}n'w#87)nҜܥ|M|Ťڣӭj .@uʝ}A;.:PmB^+jAUmx7ckNV68G[s3@&ޤRyUm[w^gbv-GiW+ 4gn{C#ofB_rz8=n"p?q*{p]a -n~R.??GgSo"٦ye Wi9Aǩ9SClnžA;XUwL/5CqɟO|qOO>>S9uV-.NO8N8>|!pG/0-gA>-.8xx3Jm{UjUQp+- -`0w%{DhZOe{ygwEg 8UOϬٝmhYd>eo:lPW2\y:줣+ !2Fo{HxdRxj%ͅrv0=BGm -ǩm,^uKs;k@YȐ9tBeA_lu/?d^W;֪q&?Rs0Kk&"imf=1eő:D4'!X |x6l֪QUW3uWV[Ev@N \er^LYǤk=V'-zi?IUhikw`b_wEg6NE솓8/ZRIRmq}W=KcH~|YE|r1,'&Ut GN՟ seX[`z9 @0ys 0P3-t*L@$U$Ps%Pն'KֻNV_H šy'e5DsAW.ѴK5˹sԇ[cy,_H4 ]Td}KhJlUFHLqR>i -9r8gr6rmqY}Y~ @th}|v0⑽v3[$1/?kdY8֌,f.* p]U?:G|(}֩ IζU' -7CUvoZx#eZK~YUfsQW'1c1 ]B='?Zϣ8B3>|fdl2b{8Gٿ.x\ECP?ki:%=vwѡE:^~ԴIU,Dlz)LBPšZTn,Oϐ#s(q9FpLX[f3O 6r y{a? $ -!upl36~oG 2*yo~=-bwuU=ԕG4/R0%!|`hNg<=Főujf>BJ'!~ᩈWg9Q{=Dxb#o;Ѳ9is_B妃0t(c]Iʵ_aV)~t8,,ގ_yW|[*<I~Jxk:*9*7aâ7J|`1=8zf.k1m5R!y#Z[F-c#(1l\ -g]`zŠ>*^mX:dBADcOpxM`XwAs 2-dVI6ЁpgLcTq6<Z6uw{6'iT/Ukz1S8ٍh -2Z5f윌M|M䄟&'vU }*ȕGx0*F?l\WIKEcFCk/I?;dh{YNBȉxnC4ꎓu,(LUkq +τ!럼JXqY|:GփE -.?q/En";eGCk`wϘٯyxδL"aǩWDd2¬QƔ⓮ûs4U]C|u) --񧻳Z8k =prM`;'y#gMxM3W&V5Rt,'* 0훥ߘ}\|\?Һl?*ڋ'Ju?gVZvtSܷOc"Rv]P[y,M -i|$9ӵa7?`@{d\&%-fX{kSQ')} - ܻܷ-~w; cUn-L-y :D$ 漭7QN]ÐuMٚZcq`U+8cV5mne:U: $]W5A\9蟲7Mk?z v'9 ~}ھjIQkJzƭ^/caVʨl5ҡret(RKiu+w”\Kae yҺ+X|\;IѲv㧁'k< @K#]Պe4DhmؿMLY)NT#pSͫ  ȝjC`uݬ?-DVhVQA®%N8f}c3o)=IqYJԀG:KYW8=L3akaRZʦмb3Y o`mp0$X${vn, <3I uEhBIw]3Hyo??n -ʭB5s|q}-F{ ϙ@Sc u -廔X|Pd|Qd[jOF(k*eO?[)~f}#nh^+Op DYO6Mٚtۇ2zwն]ڮ=O.Wף0KC򦶋OuM%$& y%ɐdIBao ZdTe(r)丶)}.52$aL3oY:0w)d߲@,Pљ%3MRag,Fx\ Ne/ ʐߥ$ }fNrߨk^;/^Cʫ/~SS~fa^׿`)JC̢Ų \2I/Y; e3Z2o#q%pW>ǧZuO{ylyx'F?䣷/i?_UY랤ZH'Wh"I+;@ P/vx~Bi_^O#W[a5??s3~r3K9u'nV.YO7U=Rɻq(&b N[y^- }:]Q*(צP?.ί|rv¬HrѦT{nvi=j_dmRYRXzrmc|)U,Jc70:ao)RbGDZC9`פf|Y څe4AU"l.cA8d]t3E^N(<@ˊ a=֪F;%4W4%&iΘ0-]q *ny~[>u\hD`/Q wy>[k7\ftq {V왗3X3ˎ _9+ͥYS㊌~1{&Wyvv7 X*ͣr e^rbp-VkAv~Fl ާlP\/_ݱVVWGSs]ejU4gmYs}:`;9J br~7 Oe~|0x{3,WE!ޙq;'zΖxaڧ:~LT'a6m#;130ڱs4ۢY0;DIxz={lm6={ں)m ̺u̎տh:9=Iս2!.kzO}ښZ؝[j}1U|1яhu.%ukCh=./eer`9=NNL+}D]|0134ɡ7R[^vm*PU/]efKf~1fR,䍿UMeI2iΓs!Zr9ȮH׆"[UAY"bOպ˹.ՊpInK9$*_fX~$EL|9VN^xoeS6En“]]c&bO"џ'q 8+kvD$Z1 Wpu.5rީ -(zv Ԣ EUBE'^g)/{ŏ/iʱʢeƗ9cs}Q(azV ȻSvsVtj=ILޤ@/i}]]*xlUZsÎ"ٜteͰϣ s]"eXlm ܙf L]W~lj_/ -`q?{ɆF\xbqǾ}MuK ֳ$LIc5d?PեXPOy"EV\'}k -al/㾼2el [fK94w=N`& a8{7Tmzַki酽ݻBp=~yE|ijE pfTV)?Lӏ;Tg0<(_d*.c_?\c≺v&p<鱠?pnE0Jc,,H6,6uÚ-Y3Ҏq_m/f4}O5Pa: #084/CKÑd"B^U{+h3~d?Z:)=xs#/~,y#hr®rԴcL =Y~tCpz$[lS%;CTDDX 68_Val -GZ*F-HFijlL*>MI@p[@|xRxSkv WX۞20-|K_D _?k?fύw)SIh*Z|=J9q vNNJ)ǁuȞۈQabޤT{[/ ?cLxVG޳37:0,eU3%HezeVZZ< =HȀ~?kqb?@f!TA{ -ųޠ~ 4u(5zs{8~P4n[jVZ*%L -#dF[*asOE%2S j Tޚnά+GWh|wәdTdX[~t`̤"hR]̟05b @ήSKi㥒([,u0_z >=nz}vcwiAި}t.|.m}D̵۳!nkHﷵF,t,57l}+=tLljvUd9i0T`/ݬwѫȬ!%]–ZE05)=fk\#tӫ3 -W35wk6'cBj v,3SKxz!rcesN{ڗ$mOVr5}[qdpZ4k~,j(rX*Ou ^Y^z#tm3)j!_睉CtRz\9sC6B4ug׫U}z?`FS ?ZsYLHm>5fUbnWmw<˵+O.6kݣ9?*Q^|w,q 揂hבPz&ȵ0#rشK<P?vDZd~+K/gf*͘󹄗+)Ju*C(r/.Nsql4Kű(9`b@ROk11T"!\.r"}G =^L7q/ÝVllxƮ{k.W蟸 i` }O_ԿCnƿG>%AX߁Jm,uƋVឣ*[KO匝$*cyK -l.ÿd\^IBshYE&}Q_ƺS3x;yFo%IE3=}l2NY !տ#W%tи8ÂC*[+M\\H5R}}xW/W^agFry'z$yF(YmX{,Lfq~3N\gS5]O>k3} Osz֭9zᵹI:ַ<'U{PH΢]ٶݩIb\|x} k Ӆ}̧@h)y{#eĸsE~ /r3NfYU:y,+)gqK,d}rM7ͱogg8y<^=0kﶁNmUvkĆ7W1 pd~O@]}nfRaX1J_T7m:g]q6oY|pGszQy㢈A=4/t7dԺl:DoECG\3\eҲLV/*ɧۢ*Լ$?%"G@g"FO--ײhbsx8~ywqMTVD! -4%gPaš,Jlsou՛߰79KHGypz+UAqs:8-'Ov)<ҳp,U5m[_B({˵Vz[Ypta1(B;gIz"ʹb Ӝ$7Igd̩t{- ;zз;5mdĘd@O^z4kiWcy"" -?^nfDQ@B"C}cufWp6pԨ8d]뭦5YR()#B̞E;1a=_h.Zۣ/nXi&Om۹.(r ^sas܂nN3 QiT\|+ /Dup- -nV)l55I)YwN?;>x'j|RZd?~*sgo3n|;en'#IJh1^'F13CiHYUbJuUޗzu,TF,8ħyD 0!]Cc9?S/Z_]>0 nI$'I^^2_^*].rV -ܷq:Z.J$bFKBܝ`py18fg}(~+*afNi2\63kxr={:ID"_\c^u {UvL/;#l -fnJ>6%t#"#9f]SQc|q)JPTFC@(w_LgtT0 {VBl0o8L9dt=I"S?[~Q8}Q9`}iCt16ϝxR*yнpCJU2L1^:,_BiAm6= -;qkdzV9wԩ@FVfы_)ĭBsا$vSelɩ5z ltM9˓r9"$P$#{T^O/}{=bݳ趨EEL] 'XzW@knSGSsQ z͊@AFt8Z!lĦp~UTƥ93YC+=15 -K!ȗv8e*yPW(KۂFoʤl:|ɗLv7 B渾ˣ=213l"1C*_a$ee9[J1x;w߁;hm0M=Q b>}n3|jbW'-g;x&3j2_#˥6IO]zzmNP3lj}$cwƣrGZ|[&COڇi&ܩg/_c\xbߔIE"%'5WzUG./v#E*?Y# Aۣ/^TD^rg}*/“# =2h7UmٻѲteteܲ[&eiՒEN(+55J/CI/^V:wZb'>׹j[?q֓-t)ϛ{uhT hEQ`bzxozЮ 50Sak4$e٣ݼ>ʆn9#v *Z0=`w47 zJܸsm,h$:szik4ԪKZkfqȱ:TP+r -pߚpY_VzlȎG qD6[[^om#9Gj,7[M| zDgF?U6\/`c३e==(ϐkEe@RXl$6o{_ V̰tto$` `y@תWC?\PUYE*b€b?Ih83. -Mv_Lf ꈇrƼ" gY{IPfWuTլoAн3z`pK'ЀFcgpQ:':;_h7HXį:Yq΋PV[N/)&O.h=Ȱk UjHf4Y<}ih X4ɱ#{ؕx+'x5{k,`Y;AZ5ȱ+[V J/g1?Y<0=;?D_d\Qi|-qNO߀u &?ۀ_3o -] | 䀃|tKV/*i+ ~Dx^` p-&{iyCxe:|u=r~x~(Ͼ:g/㤒rq 5tL/qpx7@|r9 XHY~=|pkJd8+e6K'k -u - -:`O˾Zԣ?}IzbH_opżaH9'7!lȘLCȶ] qHU~83ʊ%5y;Xɇ 8dR_.n+`U@%L.g,6,̫BGQDP)6b +DD8ğ\4.7ɱx71ԌsiId4nsJ޴dsv늛[ȴۥ?qQN9O9H>=ۭ_\X^sw<]{@fںwGwNmWfmX=\gv) مtgfhl;[&BbRF"5~4)mYҊ{ t[_<( vW7M;2?ո-ۥ.?#Lo=̣sWpw~\NP{{jzu[;lmndy_~F_tTIUKNI:7m .[[/hs!t쥡![^9)wh@o 6چP/4WĒ>O7'{_p^a\L==KѸW;N-}"U6~rҽ]59 /jW̫'zAVʽ١hctmj~y>TK?K^QnD> U,kj;]47%%, 7q8?I֜x!~y5~">~-G\uG.1 ?gҶAw*' X#5dm9cU"B2T6ϩ{#&aa 3I6叩Q3|tZzt:={ GѓT5~)/[E>}׻5q_~';ht+#np; c)5 ibQxP5@ys9+N6.^\~DtVq5 YE~mE ky'"7IA882:lftrW0M`Zl\:9/`o -ZO&d?Z:cslyKfK6hߗ#RV ݉w( _1wuydtzΖ|7-4ĵ|twPƺ @K}Ƚ:ײ9qlCB_gםM{PFd&:V"Aki1Jq͒m/߄s*mI.v;=3E+yi;Pn&ۯt=pVvLXuot$ |W*M_[g\3mmu#jf\Il̥ nhⶾAqʑӓKq=aߘI%m=Y>vM#W/OA m͑$c,5ITOw[VJJ*UInX7Y8̦cKGT{svA2n^[ɾ+S,8LRGnC񓊶Z:q:ύJڕlO2PVELO1e"?8¹[fJqyDpN9VqbYJg`bi(EWyИcTV[TIH}S_hG!T2ͬ>zۉ9,F.0:~j}3U^eeRGB˫@/ⴴĠQJl1Q'eP8ր묻 Q~Ps̋̋E ; @S`@ -; 3Q<p~k?6ӮR}2횢\amr晝K˅v|!ZV 8+۝-] -otJ0"F! v H#zL#^L#DW?]=#|μݘ#R5 ԮjJ8ddYKB sqCA-Ԋ?gnF;_@)=Lk{4C[rU?$X[{ wN 4abzx:Y}?h ^ClXPê/lRzE}V;)+z;fR^)9ҵ;^RQB6"v[@KqW;Gᗖ/y/9Py *d~Kr]nZ[n7miX`T/WOκM{B-SMaOKDn܎l>kw8CD+5N鴈_u^4(˒p T[(kWQ/~8`A>+0Zݨ* BO-&?U&(%-i[oLzT{Id/cGZU5Peb~JYywy {/lX.fG凞l}%#LI7QRc^.WUmx,,zfn5Yo -9粞Yf.w~j6%l3f 2L8ygna,kyi)19Obj},V rM7NaZXP[&i>= JH̴!:eUBXBFAԮ!j/FP~Z[輜#(Al"Y[>KNAMM:{[ϤGEm"ul\:(v4XE 2TPw. R#~1z8Gˀu@2A -Hi +X _EuOA9R_/uzdˣ`1AȖwqqnrHȑ6l !1څ^ -PE$΀l@g*p|hOJ@Q%g]߁" ߲-sV˽a!4ө.ZG2ڿ`Л. 0 SV7 `.M&EϓW`^âl|*+dTex U:ͷ,$:d5,u` l6jDCO xVY^-A!8H*>=*2\FY|m1>t_r& Om!EOX pvp^n -W~1C@_@|"a 2['W@X &} }ƳM[C{`8]femjjKa_6_~>z_myN _e· vw 1CHkd~8^(Kː'h;qF ߛJ7RBw˿'6Ah;kA_jz APv]/Vq8Eg-Jv|JvTW ַozF\>ѻxrU|bt? (z(kt}ZTwuC91nڥ$1+k؀|էJDy_|Z۩_8wrqFQeVns޲^\WTǺbݾwrޥ,Ft9hzz !|/<紥OKp߳oɿ|A5;o+bsl|':ڍ٩g 6\vjZ="][E-"\ޝ)x6xNv\MS$A"~a?P)~|L*8Ki;rVal5z;DiPuocI/΢y;#z~ꡛsM) + OJ,M4:25 {߈_A[۝d?t:ٮ >UGA/Φ:=GMi#d/ ^_wGǤGKߍY:; xg`X)0?Hf6ܴ?[=~%=Fzy dE.=k||M#xo:=&e Aۨ0VdgV]ꝃi9?H-ىF/"m\>$(x S+M3?ON~cdw%!x,oV$w7-0z}u! wF}T?ͫ:D9n5Z3[us=!n*E,oYe|nz#դi^n/VϖxL B4ʶV,E;Ȉ=ݝs;T{Kr^RɲǭwVT['?!UBxk"AMͮȽM=/*W_ru.?ZNinM h.݇DWKWڏFdunݶVrR9pR}jMH*>#1x_+DWMcO kszh~{R_kx8sc~řlƦ2ȵ3޶v^tOddbmgء*Ϊy..x|E |aTxQdu8_5K~ZB)wnr!Y]d-<%8ݪgx8&|f.z#j{e4#sgN,%۶E]XS3cvO/'t83n'##B^ըrG}Vcy P>2R3ʳd?/E( y\īڼTƧKDŽfhܨkR['-Ϧ Ջ"9c`V& βUXV1RFK܋\m@;!У\mN_ -Pgқ„Hӿ|ZKne MxcYkLfi9-XՋѾ*GW޼Uv@]3z! /'Z1mYz\_EaOti৙o]3brGT%_N&NY d7hEml{\b}b"J耓jP%W5I-HQAB]>2I9Rϊ~~+K=E)P~]j$cyooK'un3tjfTF"gƍlj8~bTK2zx8s[Jk[2[4X`$seZ֭|zN:8cYK n\H5V o$yiZV _|<6zGFT~c%[L c҃Ey/B -*2XT;VX@KW icl: [t^~La-#}Ȝ\4̩5XeQ`ɖ[JF=g,r1Љ=ܭT)TFeI셸si)W 4ot0 YWiY  SҷS0M!WW48S9g7TF3Y K=3xK%um幱FyLWː_AToe-s0X3K;x"˩/Az-Cxgdi-S3a8II]j.Q8ˀ=.~oSMۥ/:r['d̪=WNahPؑw%Ł\)k}#;AP򔁰RD 1KsCcqˀ8oO1 V; C-i | _|h=lo_7d!>6VU"|42= -6Q.&sTLBw*h*RST%eei%P+/@P P%XA9Hf y gJ%cR]'ũ$7v]때oIՓh R4 "T0k ޕ+`\& d2J -#'<`tV)_ٗy*Tkm<5ݐd4;fe PJuR'3t:ͫ -.sy]DZ+yƖ{q;8. ~=ri8Ã~Qe=B vOfԓ#?oGg~x aHʗ-@̡ <b;F .:) !.BG)|h<{o{M/ ?n;,/=h`?n߇}JS w% $a%XwX:ϏVVh _:m_J;XX$h8Ht,.ce ꠧs=_E+_|EFXv? Tyigv]1$t5=9b7󡊬aWU.~W(ſR;|:xs74eu7ո˖݋R8Wt{ǛV Y^9ݔ%d>/snzYЌӟ\&wǿcjiun"1nv)31NMwv Iב_n= ۝ f cl>WrP/Ygfn:t*Õ.O"Z~8͎2d[AJ#%bܐ p@|(=܁Jkcӛkk/{Ю;v`~r?zS ng9>̾g輪rOL/w n׺q 1nmڗgtmwF= wGM` -?Pݮ <{rjLp_^^r8q%O&,]LڙcAyE\ּ*mqR%hDkdg6gmեUV7?H?(W_ܖm(쪣oTZ;ب5~QB~]lH趻g=[ogvv.nMSiWƙ;}]^\ /MwT[5Ie0_0mxcJ?lf+yf)}W;G+UnfIUs+vjiR[`/CUcWΚyƉ5brS^ei5&aܨZ6;t-C.z[M̿8lE"{򯛡*#Ɲ bkfhG> -vVMb+]lG,詨oB4%jiZfAkլjtUm5VCCi}K*ira"Ża]L:аq4W2op=bY!܆7sʼp -PJh8)>*ҽ8@l؏~?=@Fu/h ,-m#TտXeRdKH\z3WB(>ZOvrʱe$UqZ -Z8K8UR8SxS[P S cw1L-ă_`XBE9r~婢99NSf^~P}V_p΀b`?HQ*KcPaKASѪrϙ>ݬ,.wm^V=O`(7si>JOGj%%9тp%4C})ElqVF^|>usEtY/:E)[Fx W3;K2>w -cWt ڗ>z*^7ReI*cZՁYdg(m/(:B鮿,-` RFF|2v>)ƅ#}FeplBY S~(K5Hk( - -_t?:ZUx&t)GN -=P=ݓRg \[.^rv2 -q3 &|5>C 3x>$ob:pjaelJJ4 -D#W2G)FR-3y,{YwJC,8SA+mŠҠ|ʖ,(*(6 Gv &ym(?. P>l|ɇ/* ̶Nzk2(T 86jL/If6Z%ntId^P!izxLMYUIeCף] ?""ii,`f XWrE'w\` 8H(a4HIoEs*BÐa|dP̨Rl&HE8pU endstream endobj 296 0 obj <>stream -t6)s@6B)o 01>a!4D L^~Xۣl47yRS1= { ;6W_'}wQ -/</[HT$}`={3VD_98'a'8VK:7x\l'7%'M` -QBeگW[4&?ad6?3񮯥\WqnQnrw˶uEK5_/=͟>amoWd~PYeF[~Я6&,ʢVr˺ոf+[o8+4sgtc[]̰o+p7NcAo)}u"֧ƢG(կ0qݲݪMUMeZkݓܜ5+{|Svnyy.d墯JKzg%cW7eX4s AnVK/5f#y;jT'zlqIM9E++>% nHlʍÙӹtM%43LzRZK[쉣:#|FՂ=NqZ?/qou]SՍ:^B.Zz֋Sn-o\sJBlR;cb#Gd'{] hAxALze7V L?p/؍ίV1ngIG9/I0sVMAۆyX o8N=o`4|fS%]4ћH]0rw.]{۷ASRz<$_<"rkjVTُOsO7:uau -vMV-lT ]3:[wN쓙%M0yz KUoNRNz8Fc;ru+7d :8IO"5wᓷԖw?>"O^kw8T:smMԫ9ؙ][di/dn57U*vwQyfyTMjr y 5*s>~kNWz&x rGs\h1s%)F I;CCvA/,KSvV)k-l6C޸e]iU=f"Gauq6 -VC{} = pӋ>Ӧ S ;ό'nU e//8ìex?sKU&>>IsAQY9hZ߳=Km V]sLfqZAd+߶󤬱EzKļ}'tP?7Ĕ ~zi qw`!vR㲽l/j萭xaѵלt)tyo~Zɤ07FAtnf`̢P{g7 X`䤈>udFwo~e`fr[k8˙ymNȹ"չ^Giݽ-vw;'nk[igl_ ;lةw͠i;'FiЇZ.by.Rw^3x8tkr{j?K^ 0G;W뽊ְ$l^椿~`ӵ -_zյUm@^`?bUOuʷ=*P -T?Qs -ezsˍ͟\KܰR)Mvv9XܭfTn=Z&RBx `gK#n?p7p9m*A\Ȓ}29\gUӭl>TʹUQ~N%\C%(ԇtf2hoM43;S=k,<3hYWάF(1Ǎ)" )+1=c5:qu~ qhcVVzf&/"w҃gK]QQyW.%țx/Dj:fZ_(rӘ744ڡݦ>z y}Hp+ p3ŽGk 징4`{=nQF)G?^QN=:mm7 5?ث"ܕ˾) -n[d]YwAJqeKɒ܆dF] i`i?d貍tnNdǼkA;ǹ[m>]7&S@DNNjӹqx6FSjOi[E.r\e}eՅ4gb\jp] 3b, 3 Ra0dzxʐaz6ro$N9]}vFil3FV/T*XZ.k! -u'Gr Y_"Wus;܎[;RdVص-R[61YQcF1@+xӓ>=t_dv1)ɤ}}z1JZ?7=W='܉~+>c-xbO?PBw7;(7 5DW*EAIچ+):G y|*=\S7 s\:̴Σ"HQ+3l%!UJ'=^uWtONɸ$f֎('篟 -0X< `z09)V`b̉[ؽs̓ũf08`bb|Qam v=56bɶO QvL0u둫Z zvdnLp/m{y^{8$HHZ9V?q | +&pܒ\./i5>mq; &_ B啁 +"8p.aW{WP{{6|8À1n:tꯞxFh ~6`^o -{g2=v /{:8NsbbGNfZoZ"=Zפ>Y&iWJ~WMopk2m富@< C^Ҩ PXE@qb(JڜŻ3@)D6tIGK1^7O|}|L} -~ݵ ٬*j+_'*P+ɯwo&@k5IdhOh tX:>/kR+-[=ɾ!O1Uks/gJmԷ)C@?mGvO 0umƕ,t0&S}S7v$0uSBߗ?i mS__%W#|ݶQ-Ūg;>BN\Z=F9=Gٻ{@;X~:km}o 3+WOʡ>wa_GeE*+mx,וXdoVua`YO'i 1(-?P4ٷ_?I!|w w6\=zzIJQ]ġOSm{iDNr YY'W@}X蟛fr1rwwy$c0vEۍ=T\⺛+3X:^״[j< u~<}"w&zU"e)p*ޓ2r6(ѣ #q~^ -c -{{^ \Wߗ̪5gu->>c{>^R ;nig,ѡ|ueÈf(*@uK}FNYWIx9:f׍`G3M$&Afy3sįc0:(7P#ߗGB)2{pvt)ي}L͜NvԐ݈ߗ_QCɮmig?w֋x?b|v]nk#`x-cu ?S*y߇/N f3 ao.fҭ4G|kq8r:ןL t2$؂Xł^MnpB9Ot!Wdpik'ߺ4~3'f[-WZ7]ac/xEa8XV<ґwskƵ_S)_gCX !u8}}3W+.~8mO6x3[Y̺LWzʬ99w3g3׎eюI?|/LGDCFmd#""TYcj,={1>pz]O|IUR4k8,asS3N`) ':V]˫W,PXPy fn{_߇KD~fJ4+Ԗ^ uqJJ"B^<7$x诘|S2alE>+vj.Lz֠I,%vxn=L8ÌP L+7KC - fh,:!ºtnߔ~~RX=<`ÇB)q^qKsQ*r>|{` D2mld̈́{FǘՑfk}Yo:jDI׊?ZϏ*$oGGrZ=4غʩ9ϫ|@u6B B9QrY< "ߢݓ&,fN,f)Zd8PIҶY~1{I#RrWɕ;-c*SIx jz{sqk2_6nmJiy)ۏ7Ђ8me"y0_R'$itCԆ6oyp*O[b؛|d~爟;$:&DGp4}.]iMbϕW.랏.=e﨑 }z;m;`Kz41UPnjr~$%Z"|'UHzdKt&[R)xM]< j* 8B;G@vt+.2t=fU՝8̘.C=6{ZoOzR.IYY՞j@%0ϖű/7|.Jt ѹUhTYsԻrhspbskn_Og~jio.ͷ5DkL:ӡz=p>eAԽJsR11_$h-IkP˃_ 4EsjӬF?կ۫~ `hhe.+,.tÄow|դi%S2"Ü:(dN\ kil]Uj{G#t*]iri\Z -ˢwZ IU -ǝXuEZ W5;^̅\63ROEvQ$Wl[gqhmG̀G:BYqtx!}5k׵D!oOa=VCa`B9y0!љz/g'z2Fa>eEϘ~ gPPGʢcl\EӖ)GvYĔqwVȉM2}@v5 {2 D+xfA W:C߽b0i^8ʭUg=_ jK*'pnři2Zpy,T e0K1j>RGP{IPHR\@-@ ګtScJ/*]-ZVE֎3$[.mJkj\|Ϗ#4 م-g=J1> ?%EL.K`b0dfb kM@?e '3h iV.-,{d4ҡҿlVl̑k53Mv` XW[3M)ZH -ؾy6=泃_/rq{l+]CF#uA3֪1u7٤E(mԥ0_nkt:~w\!{C$1W~roX SK2 xS}M3xVJ/(20Xh){N2Pb%+ -|"慾g -;v[ 8. z Fk"(qpt~]䀨x½7K}PQwO,7:Q+Vy YZLŢ0Zz;6wB{Zag$Wqqn`jU2 -?W5_?7+OBۮF׀qH50vDzAH `x6&?sL/-?%>()B|X۸4fq^(-:< 솷qZ~f]~i_@W]1V/d_kZWyG;R]aI/'U֥x "X9px͡O>O}mGj& |]3k_oWOϷW4Oaϡ]^Gzgy2?.6ݲmnBe@\KiƋ]V|O5VӺ.+J63s{NhCI>ˇKeaS~53f?C¥41lϟ77l$~f3(WGO$@xo1QKl\ss}5گa79ho|h3ꦻ^[.nY?g;;Mrg}lCw]UbH.9^?fthoqץz7?\;8E:? @X5x0x:xKѡk ?]d>b|>:Anʷ2 T:iKz"flƹUxU6=[}:Fj\ͦfЃ[KG{PuQ+ؤa':A'Vz-4cuo7φuh;5dj~ݡR7Ta>kCr;ai/@cHϾwP#sE5oKh+ S}E:KS^m5gV2S,0r.gB/O@xeoo'*L|.[d$DnC3H<غը;sHQoqַg!,Z}l96G2&- ;@2xݧ7ڪ?FB?X XI[5sl*98 -"3ߠ_P?/;]w;\fy9Zط%u5I[[%c^:.Yɍr }6"=WJFښwW?j:3*;,散 &aKkKE- EX Iſ$/5PS"&WMMndiߵB֚eNjšf.IVeU=%@*Wk\]4"ZKnObJz%u@҃Q'=n؀ _Om(.*.,[Wa˻jfX(P_\ P*{mo]\|=FڅTnlJ .芘#ZqiHPX~aò!rܰ}w05?Tq@䯞l&:+UokL LVg,E}OEGnD? I< -(_*s|j.pFpPuL#C%:Z6 t4):,}XF J;{1;d+wϹ?vtHw&d4>XH._ Ƃ:W.5eh2s6Uzli+rP(ȁ+}/\>,_8Y*K(r⍻7?Ӄx6p[ZF(:yI.a/qȭG}=v7%,GC+LnшK|V9=f 7iV[e"}!`7hG҇ ` -8"v4Ml%g#b, ءpQ!_ hSo;xZ#錱Գ墟.  ǾG6t;(gs4f[ ۝z -ѹSa:^ouFyD_%" :Gc]Dk(TBn.a3<䱐.;^7ff:3\~ŜbPLiV|Q9k_PQ({87.9xݹO \kˢ u"e Pa%ũ 4M瀖.{@;3t>'=@L;i hoA8J -$9@UЙkXƤ`YN4n'k1OI𐌻lQmx@_"h:j6UO鵢 [Oc`0 -=C -``N`lӀk ˿uAk@"΅{2?Vx &u G166N6o{9G0\iEza/Jn=7Dxpp \N-1P%y-?)_}GTyCK_)yfആ#Ɠ'w K@`&b0e?2] o0j@hs 绩@ϒވں<[<ϕc<\Ⱦ>ַ0 g:)6$= -_p">zz27+t H| AH;dbxңRS c dtV@\Q޵i^؂0Jg!=R`qE3G6+kL?_?73~mk}Ȝg{>~V}p{wwm7:^W2.[=`/H :~CZW''0 -W*eO#P)V0f̠w1?~1:g6>i1tP۹GRXoX\SO]ʂ134̾2E ބ&VCG. #HnfbE2~j^16;?ϴnߟ٧tޮ&ds3{įG>"W|AJ7o_\z9 3^W_Jenlf2fc}s-+ާӎzP.2cn;bs!W};jP"T{έԒny\S}Zo+'i6#,~Ԓ 2j7k^j?=Bdyϊ_v@߹~_@}1h{[26 Dz盷v7GF3N6֡i2yX2v;Q 89[ٶJ#8t ha&r/) &kW|v!smo}G5ciwl>Z.ӏ]WBaW \m:]+{JT>V;e;_<|(?pѡs"?$qF * V\xp_\g=AKcx֬[p^,%%mM]}-GZn.iM$拟y\b-$O R/(K> 4o<)ԜC⟜4Skb2RևGmv7U;-_auv)6Asg^<Ь..k >8GN+9wܲ/al)`k|E93LK]0Эh yزx#F̴,Wja1;4 2 -sȭhE~VoiJRn/*݌ Ko^lô1v}ιXvI[:탶+h - Iyo|A 7p^Ly[ɯy*.e.g|혩; ܱ.=G оepcXв>k\3j2+'K*Sx;V IqEӗ{t ?pg{zi}gξBmJp:VHu: N+):?J9궰IdY> ߛǩ,};k\B7݌zWK2erSu$m(6Ԟ{gY@lD?0?U)?UIBlXIʭS櫵Z20ha;qWlY]3N@#$ەUw6PΡ=i˗嫻E˷#7X4qJDCƝ-SOʐLj[lE#صƮO1>/_P2lx~3\[Χ8N;[O3?kS.iWw7-_~QVFUz$ʶ/Tȵh퓘1!?2\b Jj(.[EJ;f_!۔d6 k=n:}&3Ɣ!*ֹWO6>ԪQR<+b1qW%}zfKbgօI1 -.Y0Ey=͕e7eGg{gxӡ[̊ R-!(fnTf)벑p[+3 ]z^/_閚gs/_7q^9C*LGb񊭞''SSYza}SvD>ki'<1R1bH뤝!ح/܍qWzR}sp+bpdؐX渫34lvDyNGen#4 fz{L-r r}KvGZ >_s?H92|&S#/mus#L?HwPVg_LE銏 KaYVm:Z*](?/8!$͍|$A5xΡ Ɲ2/ܸPfK+Fmy2F[?h$ /gh #|98RdJ/O9e7u)*-_NWyEb&D>o lVv(_ӷ9Km率GyC8WdRN>11rظ1c!gMr.!Ҡ^o$i ml8iu}53 .3H}\>hJLR[I AR]/7PQ1~]T0ھ-=JXbNťzV"&V_-9O?Fy:Y ~`KM(k{)2h~<9x W u *־sFP,朳?s}gk5.颟X ua%~Dȓ8 ZҮRc(- Dƣ`uxm){ING<ޜ.5ȑD8?[Vhq4!XF>S7h*ZꀶXs@ӧXVЎƲqM@g(h-4 *zG$8scGU^z,r k=z% -QVk*6kЇgӧ Z,v<"Oim3}3ˡ%`P70 f#L0:&SMp.`t->lJ\J[)? {߄uVjtx/mlWB+- --6s}S/+p8c雀Keɫ{S%p5ğfk`/2.^Lv mgHދ. ? ^W렴Jլ\K >Gg3u Xjli҇?[)eY"?3Ŭ6LMЧX3ۧ Ej9vG0 ÓYxKY -/ D|K}=], ~@b % qv$n H$x@$^Ju*]4x3##Aw}[)*'«D'6qH̷I?/@>@A( *J~s\Nq< (n3ESRK2^+Πb "$jB@~@''%r߫y$' ކD h ë+^H<.N9 1Эt;e -􀧁^B}m(tDJ=B$F;}py/NJҀ_t7x_ F_mo j fW  Gh`dXLĿ*ljb mb]MJzd,dKa6o5Lj{v UWcب:a[gee Nb~$ٰ M֝Ǚ&sjx7!Ɉ=t}J[\~)$:T$9歹}*2#Og[h 8Tk]'k**I@30YBCk*rw7써kd.\+9ШFL)gfgGtޖn|a -zy ?_Aͦ&'LcO> uBKLBgmVn=gIg+v mvuV!6ƗA??j8]X2%F1 `rHf̭w9Qm t¼ާܔTzs+8X[ğkcaD{gs)NEyEsD17̇!X :t6_4~^jwcC,fl; R޼VcC5CshIOJZ,΃K{u5:juldm̈́aT8gFwvcw|ksrkWlc -S qk Y\֟ڶn6ʴo5h>K_:3ur eZeZW%+'&]|i̝Sh$ zF-nDͨfPz5{A}3GխwKPCzXɪ, -%S|y]n7vnTڌqZ>s*}:U0P~ o5.]$o3ZOem xڰ΂udVy{Z!E9`jҮڋJy #T:k] "`x\?'O{h:YyhksWj2rkUƬ߻klf7sĿuaVƕFzcBR Iy -֊ʓ  j'<ʰaVKh5b^Q[KUh}fz!,Lj` -DVyqy {P4أu{ q-k0 E nUSnB7+?ϛ@SM0hK4ܪg'zEXBqߟa$mg}ᆭ+&,陭_g$V31\ݚd,ftR[ʪ9h$8`ݝJ./zjY݆,{BzMrǬxUq cO6 U ۓTzl=5W|VPy>|FʩQsy;UErz$$}eE<ۦ^ҥ)qL[j< sm+_smi]Nm^t-MQVREfmB`|ֺ%$xAװc"uDb<ӷcAUfy=R7%aU^|YrH!p|6c1=r Fw.d&?TinQ5QzIAnDfg RV_%cEƵ<Ƶ|[9oγ(8{ -*I۪=ucpp|]3J鹴q7M0i uE(p)tX֣)<85Lx6 wLÙW| z#]_PiYK*!-{ -66ܥ2[n:#-bR$[yy3H:_"rS>t[!wQ9+֑#\p[@oBÁRr#Le*` fBOB,=ڡWƘݾQX $[?dܠ,S?E'묋w~]s[(70jѡrmCIjǧ>Q>e3w~vƛql,fe'>^>̡."4Y;Yltr-f$ni~r4 m_xkR[]n;!VLd_&׺zVY\Wӟt3ڄ⽌ =Pٝ*[ksQYg:|m'ձ Q:y6C4n]Dio3S;j3}k.^|sWNZ6n[,jtX^7wQ^OBw)A:yui=n -65T.l/ȭ4kЬҩzxЯ,Iŧ2=S(U O "SNgQE2ֿ\*2:BtsownMhm{]BqY՟s^uuEvUמ,uLvUuˏ֭SEbУZplvQy­_ P_ϼKSiGss!sp/#"fv]=3f#'0'?p,$߷TxLnݴS+,_?f&+yhsEQ|oe dmٵסgv>upu%x9arTdo36Ȕf?7fֶVJAdAWWvW!w|٦T Ğ:ʹY*J)|F>WYLnVCq?[ԇ=|Ls"%c'zzi&uE8:KG4qUnJ Өoٕ{e,J*IJu"f^\ﲀOZ9;@8WU9m 2Y j} ܹUM3BȗF+6;m{jyHҖ %B'>WϰK+R'm!f0_&Botm ϖq+&^h4#Qx4׃)+OF?%JQFL%$:.E5 XZx+\~6p>:HN $91;d-,!?@Ԇ>U>PCV8u -%0鎍թ8\7;EX1Os1t]$Iۀt^l5!2Z%7>y%h~xh"|q|e^o{R ۀ2s"iaQϢOߛ*mm5]MAQ` ƉY5عT *}6(wm؎V6p2Iǭs(y;W՚)#){Z w)n_ͿӐ{2$U1~2H;xLwTZ}j}t.$3␘&k^/ -sP*T/Gh\yE -c+2_m@.9j&s%Pr46ʷ;}^Ի!Tz T3d)$wub.'|U:"vq_`e{xF􃠵lMFE*"`(zE8v0 .=G1;㖹AsѤ̙פxmG-R΍D1 B `;0.ѣuڅbvB@%7I{c -@MX5'}Nf}p<~Z6,ہ<)A+;měݓX /~'Va2)͡h,TDkE."*6kzF'dN -\Ci 'vFQR%̬g6ʄz*ulw-O:(ywxRU:`h8܅2 lL2f4.d%5Vn -t{" },Wb#Xxh=VYVէ$,Γ&eZL䏭:Vo:{&K3>&=aȏ/k) ,HW̮pcɥcna, &2nemBpgN,u"|;])T;ZWU -M''7 `|T2j!MR$K\&X -ڗf. K֗`7@<~m/{*(ގpJ$ñ^M?yށS9IZ?9; * B C;F -k 7R%lb9< , S%{b3qX>q7~x@\"L&LWJTƥ9*t(L88r^ܻ/Q`@<5ICBʘd$r뀼.QP,R -: (lP۟yq\@n@Nsh"ltGj7 - ,:lRE01[gdаaT -+vx PЀPj]M3&>meBjKb -U+k@k; p^hDy "eN]<ɲ6V:&tS\Kи IFX\ǐmUT@[fSrы`:`` XްE<0O%-ղ?Ti:8M2QhkQ^$m!I皅ńQS_E̵'VoFDBp?\gΆ  x&bcppp \N.(QNI2u| j]Mrr)%ULudQ-fa%\cj7D6ⷤ@/EWzK-oZn|m4fI, {Ի?uXu]{fBT|&x,-!bnٿܶ3rk-`0f|0-xk`2pLjd $d 2|msXQ,o@5,L>\ӫhz(3[n>|;>K'0zXWL~q&2bi:7ٍӻ5qt٩,:9L-֧~>Jtj}{6ehSXb]daRkŅu|aiVdd&WILD=:j)Cge4O,]QݮHprmgloa|$ǣUfhlN}&OƻF%66߷Զ;~W񺮹1I-/5TsΓdJ V.ۻ~>JV@ W Ty|׃T\C,~;VLc#{5n.F@L!$d/s85TWOľukOF:U袣sC6 -=|7i*զѷmFYA Gz0SYF8vIߘ8Ɗh|ϑ9Y>> -+< \A?u?4C4#towԟ ^ 6rJR VU_*-x+Jz\HFpl:Ync:ov!*RcZFn({FUUQVTέy? *</*Q"wV~@E TO6Z#"]禥~:鹨=qzuҏ3SlO{V.$HAs$!bō`]\EK[TK8 6ucy%k߽[OMX #}[rjϭ=n|[c}#Ƕ%$2&!&sRalAбrټ ͸Ͽ(Jv];J]3}mu3D#ᨰNf m~ _,omnQw\~, ڮYK3}="z =:XV_YO*79-oD[0 Nf/WʩXs1?fX2.^2t9c%`5cbBԞA5AV|9m j(f_ -}?y2?;!jqI`Gp5j03[ -eVe_xEmDzXj=@<_OwQ+/!/[N;]00pRUپ'eSo|)J9'6}aPR\uBk7Je - q:[˓7bdQT˱Lm, 2YY9~ 7`Do<֢hѬY?NN\T7r|ojԩ2EB>?$~J_w0. -{H\+M~ KUd7-ꀬŇMD0 -,~9dH1lv;y66'W"KbOA{R*5︤b'.Y1_K(6FSЀRrXꚾ koٻm@ -B| -P컎,)akXK3Uk3R9L!r/u?)t2h\MÓCj+wꤏYL43Lg|L7^RLƧ `$ щxؙZk(U<2amc Z+=U_0(( W_f_p>&ׁ6ng/- p6u9p -};zNTEk۳4Z\D%M<|lTN5 O%%%m9'UbEՒ48I_mě]lF# ,CDVցH gOG@w UP_P -|j3̫㠈x*CﷲImbHN -IjH_:/t~ӳib,mrat\v@vrHa -c Ҡ_Rz7nz>\ -L<_?<9ihMoHHqwմe6|v&6q?F[+Cj8붥pS՝ TJ@yEmhq$ePa?,q' II3m˭_o+/!MRmknK/`70>0.90&Y\750'FFH2bXmX6$Y>RwoCyx\ylcyt(UޮY-#t%~CT2==xu$x7.ք= *cJ7hs[֝$3;XOz[zP=eVjgm"GMtkȸ M@1nڌP[~{:'s& ѱMGkyEq{}t1j,7R΄uăKUec2)1d'++x2:KaTilgfz.5Ν(ؤdթ&ф&1ņo@< -ΡΛeo2%$H1`ܪxΡT=\^ʾwY!9+UF(F|3qu pmV6&6%e&ę&xm$ojϹS]tG; gA}it;Č0Z3Qw~SJ֟u޷gt\8NsU]}uCy!** ?W˗Zi-4ueX KpIi~Jٔƈi"5jN4<w%ʌol10b*xk -ZCը٤ꤣԌ)kHǑg^b2 ⚴ݚRh.%<Cz_bh'U+lfs]tR,U,]̸$[~q ;X޵PtVR\]xTJz^ԋZ8 CBr/Ñv^>7YodgDZ] }ݪGQ y -d(<(:*vpscsxZ8*R\BPMfk3+ U#3,BS-F|qڹ=`n?Jq)/D'8Ka4*ynjnV||5R]ݖ:9y1|>NL\aWT-;dӸ̉n>{p ӽ%7H}o)pJh7 4p)@9(Hf䏞Rt@(8<ڌm^68:{64eq_rbB4'÷o5 N-v+Z{ CM"ɹt΀xퟀx"a$# zdc+@"' [@[k{*˙M$\(|wM ɹ3s?To'u)!:5vkK,08rnTd{s}CI{'nglsDgf-arjٷ¢o(2yQ>p~i/6w&ޛ>5 b_kxY{j6uG8(+(&:ԲԪJ>z-}՛ZH4I^DpfBAq6lQZ)ި%Fv!ylnK'l/Vt0PCROY0obaxM rߦvnDF -Ei|sϞ~%ј|b%Cjt 0=;ջ菉ʆy/HRSk(`y5 ؆Ypm~4fzal16q*K[۷ÚY\ 8:LQNI?IhjoYNPCD!dM[ fKiM2$/ XSaܵ.<'|V\* _ԥ],K$gutLx -cg)i _zrCO -YHi(O֑onsDb%"$ 2nw} 7u(B'f|)toв9+7 -e3L%_"8] ѓN58|݆bǟOmuڭQm;ϫ_F -y;}@n@ FHg}QRYT8(ɳI64c!Pra X˸_u_njۏmT? R偤$A|WTUzĆ[-a-6 ~= 9؟险=m|}vh%W sPԬ6IY"V䏗D~J/D̡)\l/?ؐ^T7~ٙx}dګ2گC14sQ柚[}t@/މSjj"R2wcO;לosSq9Su"q`U-Ϙ֭ҟ}|>΃iTGdFVZ -_r4TkÛân&:eSyOatkyml0vb79\ ^v7F4{ߐ-xO.e띷stMk;k%$*5o-Um4*UW/Pw8}?57DUL@31Hu[GυS:W%hjv?U7$0ֹ4[Ѽ8 ur1$SoחL橯V bk/6C`<KWlP鶉9>W^C:A] ffKNTbWOj_;3Uvb8zRUoP%Ssg})HZկcz4045k5rb -NY+8D 0.UnaQlDۂ;V}Ο&{Ȍu6Es‘z˗5l 2quOݪkO'k?T)U~kdvBH/[-GSɡSLsjB),e=ǩgg&5H~9/v=yTIw|6Id1k'~K4sܝtq P a xDL%P6k[b DpG-N:ŪQzm}ݘ= -LdgARIkIi'ŔZF2grP3Pּ -ϱ!Ƴ# -1V?i{.U45V;u2Vw^PWPe2R54XĮ۹#"-꯬ WIjj-#Zw[-= pE=:G5[@&RLvvgG. xjBxj\$"8)*e^A?mYh2u^Y-~͗XsPeMsc1`X9)7+jBX0*.RYvr岕YKwG-6͹7 ->j A\^R.oS'^wߚb\,Y%h9dAN@Gڶi:_X|"i]6:E8e)}S/"ԓUeˈM#3-C$ ba&taU~V5Mes'MIBN&4w{o) v;(#}avB&xiֲiyHrBӆ:Rݚ -y-ߞ>EYL.QŌأѣ*1GQHnF1YOSbo7-w[ W]9zz8C,@͑D r( ӎV5~>!VlX]ޢ~o5XsQvƦc.ZEYmKqGػZx;΃XH9`T @F Y"˸>NV!ڭ 8E ˾; -C[8%;3f/{&bDȰBdqq#aWǙ`S#jvԈ321'I0`[0K7S3apKh4@ޗYR@b1Ũe.Dlż7K&&!X=m ת1&$ȶ,Bs+?. `]`џXX?>؀ $Liߡ'1*TigxQ7- wq~dم7h9c6`g&S% p 40'T:8^ɼ `:l1ÎJ&auz4c[8G7J.iVL.RqoQZ|Rۇ~=s5"<ΎNIC6A|ٳAc v>$ƆI[h'48֤fc4WvX-& gEKj\?4| vUhek]'_FR5R)9|*diW4){3d?l)$}zlyx(nG ʕDanUؽ,XRsͱ[|#3q&"/\y\e+qi1rš*Omn7~.Y ZNŸ2mXtnCP95OSc2%9YY.an}cDw9rֻv˞v_n0?:䉄Xuk{6>@z|ֆB=+UD4, ¢P -kjm7-Nnwap(ѱsvJ&֔Ҫou0IRrHK ]{b;<^?> -[;ʢhܵt\B|4/1E몒N+N1j6hRtI5V3j|oMPA_c_vfr Bw\ XSa(Zm$!Bi1^EzcMr%s}^jFƀb0ԓx1\JVjjvU[舍EYeIOquDwPw~0i [|x eZ5@K 6 #/2lZFs* YTM?NMl䃇[p2.*YVŸo4AW|%7*>r*=H~rOǘEt$31ֻV*8Rٞ+;ܥ'δ+J 9Oׂ7ȚW9j]][)/s1fdEbb|Ye&mdR=~Km~쒶 -aU]~EvKvRpj3ń6>e,Ѣņ -e=މlR'fd^2xeG m7>Oq rf4U*M$v'W\m6P6{Y\r)sq$GEi0KQ l{G\뱣}`^f a0Y302 v2iCxϩMV;Pdr'ՃǒLE;z\!;aDőmwϱ^ܽEWrE>XRYga|WǂS7C65/vhӳxiQǤM-UN>RdDrΔdQwAߒBͲ&j-ۍ^jV 4E@7 7 N/K *oCnf׏%0"zZ`=p`& b0d[?Cl֌]lD GT}Ty \ل'iѕX?I6Px4lQslygLI BÁ\<NSN}r_8)،qduB>ϰޛ ŚkMވwbp۫!6ryj5X5P-Z=~\c -v!O! 4 -Ok^3o+˱ݔTC>63#k`5Vl4!.nll n&dn 95' @L- 6#M=yLbbv17DY"G},kGT s~|y|doz…SN֓]`q!/J0g$DkqZ8 G3e@Y6 y)dϋ2!a|O%H; Q~r)&sbhY2-9 [ͭ9T\~I'G@ w@o@OQY4یCiAC-4&)jX -M&(|R\Ћ a7ދOX"]!j} V(*U*Hߊ`.@B7t)`*3`29!o9wŽ(y!8r be`|esҿɡNEn%Wyg$tU#-p, ]x;V<<,:%Kh-qovJ\xǩPpZm1QO$+D&d WE o޶-eCWhof ~oAUvAlmmfZ ~eNEpfo|0T=9mC'PJ64iuw$ ڞg.@*ށC:4>նGI[)}RLtJX6iBMg3ǐ{\У4)쩥Vnq=A"S&- p4˧$WyZ/v<>& R甙M'.37a#"4|o>*E`KO$FzzoE8ZD/UܝZҙ*xJ3)jSc\pwp|tk,?!<]zӍɣ"̮Ҧ >Su.WuGF7xzW'<لVp>Te4D{nȘ(k/xJ9 q(|뇠 w6=ig: ;H맛VSlnVvŸ>UDZNs2n>9c8es\0@sȲ] >-]cg{ON{.&`E4 V{{Qzmp=Dsە{M{g=JkuhzotW_wqQ_wq@x"@8f@>@~:9uS_n8nvt6cu 58CXi ;]҄%4#Oć4#oN|Hf& gC7-0!͟^~407sy<#oN߷W'算Oߛ-c<#oN$g?d&gsܖߗ_N3x[ =p{R@,P5-6?+E}Ӭ ezNOҌ+%$oPA!)>~53gxT y|^w/Ϊᯏ mFFgK\TD&Qem.cw#3MifX}c _嘆3rX&.(Zrd:ǝ;09D>LFt(IBiV?jצGviu'ox>]a#xoBU~譱%~547gϼUgelm^.;KǴ.ޝW*ѱt&80N~%-?ʨvxϿY6rOOo7EN_7 P̦bOR/5BN҅#Mft{O5Vi߂D,;۫cCw* /٨Y7t.nco^,^uvUe,)4g\[ }*zվ -L+Y3)ai7FWm6z-]k㥅بPku?BGf&`i}C\?w!ˬއY+mU=˟'0${dlF~--PkFׅKU{ ݫ8(i[S"\L{@ mۺǗ`S-N36]9;[rH-^a|VS&YJ {WC xj'8Cn:lκp^v8kqS2da1Fr)5+R;3Ϡ>$`AfpLn+62{gnG'OsL`ucmtGt bz.Ǩ_O/Ae,UؖB s(o[qZft}&N$v&]Y޺wC 3Gڐֵvck\Zʤ6r+ \B$ _`2mQ*m9[=֋kz/Ok񳽭ꦒrۗѡDQ@OH R>eVѵgo) ZŊPl^JpDɤ\[viff%ϋ#,r5q4o^Nr6Iw1w7W7~m;du,ɐ* W6Υ"wXW -n{(]+yCuC4BJ"o1I?ꨴ9靗6Ӹ-tj&mw\,dfntR b ׳ X3ݧdxC!G?@34o?'5?ޖg͉֖ߜ_s-&7'>oM/o /d&sK[L4el29m(ֺu2%g?mV YZoa״O6iFpo^I5>l_h{#*G!@uQrg=X˸QavRwf n:#DےkiJǸ{};P`?3gzL510qo%W'wS{#Sq '78qdye0}<5Wrm;xRf?f Z40z,z0ɽ]d.?oD^ 3H49UX>vc^Y|Xz됡W#S_|ޤǩ˝'q q~ ]f!rۃk1_[zjB^һ-QgS^:~vܶt.uzufnگtJVViMr+u_W@a_$$ dum[3cgCYg&mܹq"7҂ ɱWQ<*үLqD^E>mDoy~ygg5XZ.D?IW4֎u j؜(5,ME -!?B bjf ׇ[J.vMWѮR7%mKMbFJ_xBg1-l!;RA} *IwoVQmCx9oݠ+_inur9$[3E2{mMdOֻ~EWpA9m_Y../x˕Xi%g-s<}c,+EBLw2!{P|=ژ{4=^72{M;6A+QQ*깠\qP{u|hϯ$.u8tM}hq{P:clr^J|)5^d?H[ZB #GJPnrN\j&/N+mWD) (U\%hlaW}A׬/Wrۦop%;XʚxwrD_o:INrt/VU^wdQpۏ~%?̂xyLv!<PW6"u[#=Vg좯$nj3#Vx;dYH*+Ox4xrm%Ӧ>.w&M%-kԙX,dPo.L|!CR -].`d [\-{@'3d־V9erp- p\sla gNAnfp;2Z-ଛǫ1~BLf3 !HSsHWPy5L8;jlņiZ`;|pKg9I8?y9Npy4/Y +ISm5/Mlh;mUem_a-}"4bC# s}>5V7W^ɘLjfԍyKOj{'x?&xp JZtʫ6_K /З/ h#އ -5IGnO'}!s~:3kyo} v}e"_@K`DToT4!+ єL|{p;Mnuǣ,I< o-kS!|=K\åChʤi=f_WtL+GxCe/L wW!^>/iۼN-JގPoPR/ A8&aZܳ})_MUkf N*:6Kw /sf Wۊ;8Y50Jf}ТJͅD8\ңC¶}_֮~Y.qk0MEVV<~I y[oP:~Uv=]>'g[gј&yk1y:g:ssNOٻUbo)ѽ-液G|BEm!K]!(t;pJL;KD$/tRn>sUmwL9vd*O[rb Y5#qٓyDiNL s<6?\z.INX?$]ӨKV!,Mx?:f$9>YN͞1ƃZ - M/  Zʌn͟C0 ZM)j<Ҡ"0k)J{uUQZcѭ1!yg`=6gzؘFЦiO539Z/oJi7tP6@ Or]øi z k}('KhSȸj= -]@)ӤJS6w$J.Dž?Pېu?17A ܛќ~^36loD"1P;i0r;d'"3~6r9R(ϥ - lC~5JcJ̝Sy~|-ȷ%_\ >#g;B:ReF.]ӳ>L(ˁq:r\GoK ~R5ghg"Bw|qTă$!N/}PWwɎ]Z*n4yTQJ'' M[[j+RrenitO_jTBc8]"߈Œ񹊻1dtVOuM NY9gOr| -Mtzۜy*1 -њY5KE@K%2';QU oCt\b__kt Y8ۆ;J#s-K>&uiʴ -fmLQ5RCOφ|1lj b;74Ɲ&kċī{l\n*ZybȩXz\s~ܧO*\7c6+85ǟg0bBy|1boʼnXN{ -GzN'yM1o*0ʓB]îL?%a_ń!AW+"(^{>YYYW>r> js%U0M5kp_$LD{{iٻߒ?Ag3X-k;MI2K;R+aOԣst݁qΒ3wwwVoY[ytq_h%en3PH.۰Pޔ>wH6I%`~9p9qy MSssw_gi`\a l:2]SYiX9 :Ӷ=jp2q2ĐP2w,  V_hd%HxoYyxM[IImw\% o&:-@Xۿ)8UKpFО鷼9\w*R9UdQsR .jC[Q|8PRn' -(`4Wy9> ^<2#vuA8Lf}pcٻƲ/e"n?4KPt8?>\[&!۬G|/*\a,6_pc԰ZQ&/ -/kyPY+ &X{jsBg4el֫3WĐtJvTgW-͊nVag\Λ8{-"pP;JjFif>+Q2ibPղȣ|EtA5C]zV8^ݒt 7pBHw1ٗHoա@rwgК 9WSM㎜&H0]1do -(TeY>Nk/m`w^齵bR,'Fb=ZYeN"]M #}%RI`_\E'*UA7'T2(HNBq764 |+ ^zHU%;R[7f–(Cz|'{)Ba4ͯVG]악Wm8ˍӻͭNF~\yLdD2<3sÞ%gLWJL68NW }ԩڅ".Gh'cd^1:s/%bs] К0JwyZSfn@u䙷.&R㨤ގ:'sǦB̞~_yd'h Nސw~=̳s15Os=7v^p:$nT˜}lQ{M(C -w3m +#8抓CQ5W{Y6QYtGoʹƩoLLcfx(Y $j(dμuyFlVK YKeЉ_} w}ړ|ρ- -{&ՊWtoumOKL?3J37^޺lvIt=:LWJ-$@`0 *TaIB#,]fպd΋gPwiq-QW_1o+&ߪvE+\|YMX/m<=b @I*4@ُ% -J$1{;@@[Đ?%%Ie(,n%hyJQ0̂%sh3@";M=rg}1_Y,핎pLBޝ ;ڢxLP|b -@%m+P1c*`-*b%p; nOo%[y!{3Y(FR5iX( Z{4~_HA{b5hřE1w'Ipc^5v@ 9!x #a,^=U[R狆BFi+uHYE^$эCvS>֟ `[ RQ|t} ))ejG3!'SLטEvy6OjxH>Dp,IBYtO}0?$ o]޿;Zg G<./dxr +BY ;NpK@ Y6kݣ4}WAƶۍcכ'-0(twߠhRuNJ;5ՇW*lj&1uy}yKύYp:Ju^Fc_Fn5vb=Ck|[b}TA}['89tVJ%Pd -Rh 3(5-Co ʯ <Όr~2=dJvMJaO9{ bǖiDR2lߗS3uDDZ'yMKjyIU2v[b? 6xΒlf3Kc,.8%17~' + PiPg{V|y\&?\r`b(Em90|  j9bZL,d[Bg Jw%^2הS9'jW`Nw,;׻H{$1Ox6ӐtqRZOab>e 1.G\ =3ZtH j ;f?[+3oQތ&W̚L7l-RաVo8ϒ8qA_|mC!s3ȃYYcي^dMLJ37p&fy ЄSQ"^^s:qok 0~M%Hw5)RgNwAB'7av5VGtw (0N=Xax.v,򧗾y4Zf2TOP ddtLU}wڌ Tw3oN[ C~G%sNYet6hՑqa2i"k$bםGpש*c^31lNJdoS=G6FA ;tӏ0}E_7YdG"iuU0H+[FENrE8f#-A( Rb? ;KDa+Lw7Q%Đ?S2N -%P{Qۯm"|"q$uYb떶=ЏwO|_QoK{s:U\KB7}ðδI}Qm|)m>&Ϥ%"GW,uMyjGGЦkFc뺹jej@-,J:1iKizsi - -r -L|0t3?~CbsPX(T7i(aVV2(M*#P3(ŏOLu/F't&֐V\m|Rv[hY?QTqP!6߄O/)ղ3az('懾`'KgVo5|[Qo~zg#;ZX?$?>H?AZ ͂W ی~AGQe,5gkr{OsuW9'IS3fd#UYaoY^Ew%|@A[BPA~ Jl$i\.;B_Ӱ{j-=o wc7ɥ90t1 -mثM{ɔWHt&M lC7hJs?Yq h0ҟ޴ -Ry({NO"Q(x({%x}nW>7vW9O!}ddڦ!(s`^dӸ̚aȿÚ/{o] o /Tԥ"1d>7EVBsQ]mt{[_~.pY75(i 6t%s)Ԭ\I]x!?&OKaz@sZ U]%>=nr?PxJT(.i8_ϛU ˛v{e=$?m:~ý^F쓻ILMoGo*'c\ -=Đ_*@{,8C/z`%Qes xsQ:OQ[si[a"C&ޑz/a=|3,Mk"G.yHoKXa~.ońׇQ{2dU)~Bk"9@B㈬\Jl⣩6jUq(Xl>9ڧ!Y0 -s[|@gjQ}\{y\KFC`zMnCG+g#Ve au} NrY32%,Ѽ22-i+!z= 3 ANΦ}^=W $p&y 'qL}UV*h!d8^+8Rn,Eh~,f|DgQo@_U?( U%K],ajTm=kͶc^䧯ﱼ~?*q<ϙ sd[i8h vfC( vm]L5P{g_gv'*lzQb̤j%mN>8Y= xvJ&V0^x:|WL@lؚrsHػExOTJ bs)OƓ?O@_1T:EE$͒Gۗ/v`TFQ~ACӟOchv`wvL]*ӜHg嵝!lT=0;/-7~te6eOW|a<2D:Qx 6R?o (мҥ3]zL/cɲM xoCZEfKڴ}0`'\9&{fc.8Ї.ÆpڊgKr3LfȣxT(*|âNeN3ԡ㴶Ix9LbmH5tU?RƛD0r3j0a7Q9rN>aNfb9/h6Ef>Yk_RtG[e{*gC*=kuMvDGgL3ߒzD~7ڷqy;6JpGn85|sU<}5Glm=t戮(fdkRLsz̡6]mol-dEtӖ|ρ_-Q&Qr]ޮlS~Ӫ+{d?2I)U!h5m5/cִfYN6sK^ X!- ȯ(LX:U +_h -W%*M3x.stx4pց+KA(1:?bFv;I OAC170c?&_~g7yJdA { 8HH\`mڀ@@^0['&pu,/ؠ޶?мW#2ܖm^C~5% ?;]OPadJ <@o<PpHCb {ш M!~=2~{8;%x/rJ6Ly$wy" іm6("(61D~J]e]ZJAƒM<5;~lv;-g|^\8tv>gf/I/4mO855ڢj[ VxkCZ - 6Ii7*KW9GG[G]z}VYQ1lM;h%U%1W?@Gq(&࠘\H?s2(+4(>'Ps>wԛ%mqrϧܯ Iݝ*nx-}z{/'+Rw%]yqy:kzwNBcneP(Q*((ehx6KQlcw Kڴ{y(uvKGʣK4:0= 'AhO:B*(܃Ry^,}\E 7zE愂wʁsLsJRqrםig87r[Ӯ9O0<)s<7vO8Nӥ4 ?wChuZtJ0|(/Vǯ&!l7Fk"% ൛wLt&ck&3QAv(i+і}Zwq "~\VtȸiEl;sɥtgT)&fb̭U. [G`c5ܓ%OR:{uIdCFXo6VpvX=_X/SPUhW?pH.详;m7i&6h4&ǂf_WEu{g0sǻWMN֎A}`>QUٞmd}Q%<q@\{}.I@i7>_0V>< ,oVZ qTLv J$r~d՗Z\7qqmƏf1g:])W? x"rv1>u!ksvOPw)țyfVl̒mFJ/U5J`gί [$0_o(TО^1icDdӿj -i͚fٶk@7}aa|h$+渗ؼ5&ER\yeznOq.N]OzKb?ZAX0 9@}jxtN!"[9i${|޼oÊ-𶷪_zDs3cN-W2`Z.9%|'j(h$(N#OB~WIɔ0]:xI- l7o^U[Z4hRGpYio&p쓔tpqbIM`dF}y_XZgm႘.6>sX99~N-a=%f̧&9z Qn_^װD߯5:s3MDVWIZ3qc[8,GԀJ7pm߳$jKZ|PD((ǻx>h<֚+M[/1 b̤5E8 +o7I2 f|z3>L[7E& -@7n= V⎴Wr 2m>)la]7Ke6&ḩBQΐHQ /|YwG̴ 9"lgBwnfO^+ ajk:u Ox{ J;E\E yhcjHޑi0ڽ'QQEyFjcEDCqdee gA-;vJ?۽࿒QPR#w}CҹKVz]og %Rg̗9ם|ITz֌q&~e63a0n~Z_"k߼(䥔ArTxYwCd˫ZEsOzDO@WzM4lD@/y 6re,e.yNΛ^+0 -.ȳeYAWoP]Z: ~J.q)}i4{qO%͡%QM_vG_nNپgNO麍Q]m-;v  i˽ɟPFHZ=f譆̗Y46lD16B;'Ů:U:jL>2DkLZس\n - 0:4#Zo4SK=8ܺ0>#]sg{j\C ⩙1f :t -A]e{p sW,o*ﴮTd;7{L\u0N^IR50&¬-ZV`]NBYpY9)|AH -`gA~{|;@T?wzs2Eo29\]7 jbs7g'Z-QwO%<埂~s~?-=d1hR -s²Y!/<ȗ&9O?L \݅Br$ -@o;z8tSrx&lݼvZ`n9@P}F/B_@>@AKM|mA^. ٽe%zm\E͢2KMU1u ZQYv /UvaE4ƶ3mFmgW&yBPohz>gP*|b+[rAx]~|>싔Ku ='l赨vRW[K/k^w C`dgڝkC@a4m85 O[p}?w$K~ 'e˻ubJ Cm ڭfO:_TY#b:!o23֚}֘?)1?cNSyWtσ5R<|&HS[sҾ6Orı='$Esw]hs)6yrF:.G3uVFUmoka)uQC[40-|Z}zO(?(S6Y4+om`7I)*Od/+۝?{ew<;w4皛CqL_ݷ7㲉#Me#xI@QEAT'e nn2Ӥ+/\UД#(tlrivoYB/QDxPzX_з2,Nr}sYZBHXM{ 5CX|ԝaUC_+A+[𝏜VoQC&3w2:SSfoX\Iy^Ric{jiߕc'g?7ƾNO&U5eoժ[#ˮOS[ypq8GIv5y!Q$JBPO]9MϡЎ̃|pkB -_KD$vЯmZ .Hsr8Qx/&ڽsQ>JlSI2T;R-~An] -p@JCF,vxH16Ycr.q*ܙWqoݓYDOhet7#UZf듊kJL @n c@"|?YytNu"RgɣWAkdmzd4mOgQGR/Mzk#>JEb*,Hw(gj"N18>o&c!'/@nJyx~#溣 ɪ|[Rk4`C:RUb|}#Zo+e  ##dۇ_;W+3vֵO:H:,NǓ^-\jk=@`\%am`Zv*$[mVJ1"31Aprs91zz KVTc~Cb_zn>i0_c/׺:K ^#Ddo{Oxi>`\~[A}+Ա/S3<(͐K+ - -i+ʘz-4-F=i8U&l~OA*wT,YZevǭA_` 2׬еkiNo' ZpTAbۄH+]M+g ^?byV}O!2?w}=vP趗p 9(4^>H@|)s^V0`q=%M$D/ՈIL;i59QK^y(1 f1g@B' Kr(MbJP1l|dZ慦ę 0Q%csEOU狛o/< \͠Оp-}rBtN 9ZA'V= 'Pg r%j -PCIjlGqmO+~Y.e#: ?ȿ.Cn!wyq\\ 4Yoـ2@hi~jJPHRAR cjfOnM-g|s>Ξ_errt[@gȭV`c9*$*da_z.Уr4yV-TxW}O}7/VAjm_6e4ДD@n1:0w -1K>AAx|3;,Z@~ćs!\V}vnެӿeWx:۠7 Y-~} - -(>"F -P'Ӭ'Lnj8u~Gt<{O|ڱgü¸4~Inrney!`oro0M$PKvGti'}+Zd<>v{kא%|5_K[f?kqDN^QmT[l}zbޯTqa$@<xB/1|Aޱhj| N뱨O ݷRzrTxpJ)\.uw.n&CXC8[Z=tӋG}svS|Zn4g=qz[ J`7y@>*]@,Yk=6eݿ7.5֛8ׅz[|W7o}-Z<_Zۥi%]#տ rf!.dn9~X,ɱTb~?BsЛE@8޷<:} mpnGzPCh{nY8&;,Oik0HxLd+zkl?x(ZŝۋU"g/~}6? -9wn®s.ok:>W-]|mHK_w$~1V&ZpXfT\7~Vf/}(#Ck%)yN?PNoY(sO -@vyx~Żgvl͉ƹ1 vVp1952âi]½5l]V.w;o4 OC/8~װYFn/jL/_?W2ΠمrʳO8ޙ8űTŭkECWLVO߹ǗNdՂWԂ~L,ᘔ,I=y8d5G(uʏo 0\F#bmqXjV3/rFK^sU&ɚZ*NX? >J,>v,'4]Mp.liVHC{AܿXnrP^նĝnpLC3.I[GtQ7ړNBSc;S12;"$Thqd9W[ѳE> ? -G -r#@ ʭNekvru6q+p.nnku -=t9U: 5kj!jf] tw4*7'u_v(<|K*{S^V6fr;ǻGK|vET(j(vJY)͡)nyjY4t:Aq5]o"?$LN]7Ω2N:jC5p=^9gnD{gt#K&m-PsdF^ Exm y ?> endobj 41 0 obj <> endobj 76 0 obj <> endobj 111 0 obj <> endobj 146 0 obj <> endobj 181 0 obj <> endobj 182 0 obj <> endobj 220 0 obj <> endobj 221 0 obj <> endobj 243 0 obj [/View/Design] endobj 244 0 obj <>>> endobj 241 0 obj [/View/Design] endobj 242 0 obj <>>> endobj 204 0 obj [/View/Design] endobj 205 0 obj <>>> endobj 202 0 obj [/View/Design] endobj 203 0 obj <>>> endobj 165 0 obj [/View/Design] endobj 166 0 obj <>>> endobj 130 0 obj [/View/Design] endobj 131 0 obj <>>> endobj 95 0 obj [/View/Design] endobj 96 0 obj <>>> endobj 60 0 obj [/View/Design] endobj 61 0 obj <>>> endobj 25 0 obj [/View/Design] endobj 26 0 obj <>>> endobj 261 0 obj [260 0 R 259 0 R] endobj 297 0 obj <> endobj xref 0 298 0000000004 65535 f -0000000016 00000 n -0000000307 00000 n -0000042669 00000 n -0000000006 00000 f -0001091216 00000 n -0000000008 00000 f -0000042720 00000 n -0000000009 00000 f -0000000010 00000 f -0000000011 00000 f -0000000012 00000 f -0000000013 00000 f -0000000014 00000 f -0000000015 00000 f -0000000016 00000 f -0000000017 00000 f -0000000018 00000 f -0000000019 00000 f -0000000020 00000 f -0000000021 00000 f -0000000022 00000 f -0000000023 00000 f -0000000024 00000 f -0000000027 00000 f -0001092812 00000 n -0001092843 00000 n -0000000028 00000 f -0000000029 00000 f -0000000030 00000 f -0000000031 00000 f -0000000032 00000 f -0000000033 00000 f -0000000034 00000 f -0000000035 00000 f -0000000036 00000 f -0000000037 00000 f -0000000038 00000 f -0000000039 00000 f -0000000040 00000 f -0000000042 00000 f -0001091286 00000 n -0000000043 00000 f -0000000044 00000 f -0000000045 00000 f -0000000046 00000 f -0000000047 00000 f -0000000048 00000 f -0000000049 00000 f -0000000050 00000 f -0000000051 00000 f -0000000052 00000 f -0000000053 00000 f -0000000054 00000 f -0000000055 00000 f -0000000056 00000 f -0000000057 00000 f -0000000058 00000 f -0000000059 00000 f -0000000062 00000 f -0001092696 00000 n -0001092727 00000 n -0000000063 00000 f -0000000064 00000 f -0000000065 00000 f -0000000066 00000 f -0000000067 00000 f -0000000068 00000 f -0000000069 00000 f -0000000070 00000 f -0000000071 00000 f -0000000072 00000 f -0000000073 00000 f -0000000074 00000 f -0000000075 00000 f -0000000077 00000 f -0001091357 00000 n -0000000078 00000 f -0000000079 00000 f -0000000080 00000 f -0000000081 00000 f -0000000082 00000 f -0000000083 00000 f -0000000084 00000 f -0000000085 00000 f -0000000086 00000 f -0000000087 00000 f -0000000088 00000 f -0000000089 00000 f -0000000090 00000 f -0000000091 00000 f -0000000092 00000 f -0000000093 00000 f -0000000094 00000 f -0000000097 00000 f -0001092580 00000 n -0001092611 00000 n -0000000098 00000 f -0000000099 00000 f -0000000100 00000 f -0000000101 00000 f -0000000102 00000 f -0000000103 00000 f -0000000104 00000 f -0000000105 00000 f -0000000106 00000 f -0000000107 00000 f -0000000108 00000 f -0000000109 00000 f -0000000110 00000 f -0000000112 00000 f -0001091428 00000 n -0000000113 00000 f -0000000114 00000 f -0000000115 00000 f -0000000116 00000 f -0000000117 00000 f -0000000118 00000 f -0000000119 00000 f -0000000120 00000 f -0000000121 00000 f -0000000122 00000 f -0000000123 00000 f -0000000124 00000 f -0000000125 00000 f -0000000126 00000 f -0000000127 00000 f -0000000128 00000 f -0000000129 00000 f -0000000132 00000 f -0001092462 00000 n -0001092494 00000 n -0000000133 00000 f -0000000134 00000 f -0000000135 00000 f -0000000136 00000 f -0000000137 00000 f -0000000138 00000 f -0000000139 00000 f -0000000140 00000 f -0000000141 00000 f -0000000142 00000 f -0000000143 00000 f -0000000144 00000 f -0000000145 00000 f -0000000147 00000 f -0001091502 00000 n -0000000148 00000 f -0000000149 00000 f -0000000150 00000 f -0000000151 00000 f -0000000152 00000 f -0000000153 00000 f -0000000154 00000 f -0000000155 00000 f -0000000156 00000 f -0000000157 00000 f -0000000158 00000 f -0000000159 00000 f -0000000160 00000 f -0000000161 00000 f -0000000162 00000 f -0000000163 00000 f -0000000164 00000 f -0000000167 00000 f -0001092344 00000 n -0001092376 00000 n -0000000168 00000 f -0000000169 00000 f -0000000170 00000 f -0000000171 00000 f -0000000172 00000 f -0000000173 00000 f -0000000174 00000 f -0000000175 00000 f -0000000176 00000 f -0000000177 00000 f -0000000178 00000 f -0000000179 00000 f -0000000180 00000 f -0000000183 00000 f -0001091576 00000 n -0001091650 00000 n -0000000184 00000 f -0000000185 00000 f -0000000186 00000 f -0000000187 00000 f -0000000188 00000 f -0000000189 00000 f -0000000190 00000 f -0000000191 00000 f -0000000192 00000 f -0000000193 00000 f -0000000194 00000 f -0000000195 00000 f -0000000196 00000 f -0000000197 00000 f -0000000198 00000 f -0000000199 00000 f -0000000200 00000 f -0000000201 00000 f -0000000206 00000 f -0001092226 00000 n -0001092258 00000 n -0001092108 00000 n -0001092140 00000 n -0000000207 00000 f -0000000208 00000 f -0000000209 00000 f -0000000210 00000 f -0000000211 00000 f -0000000212 00000 f -0000000213 00000 f -0000000214 00000 f -0000000215 00000 f -0000000216 00000 f -0000000217 00000 f -0000000218 00000 f -0000000219 00000 f -0000000000 00000 f -0001091724 00000 n -0001091798 00000 n -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0001091990 00000 n -0001092022 00000 n -0001091872 00000 n -0001091904 00000 n -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000438601 00000 n -0000438675 00000 n -0001092928 00000 n -0000043138 00000 n -0000439085 00000 n -0000048730 00000 n -0000048616 00000 n -0000438985 00000 n -0000044388 00000 n -0000044819 00000 n -0000043391 00000 n -0000043824 00000 n -0000043874 00000 n -0000045077 00000 n -0000045140 00000 n -0000045523 00000 n -0000045586 00000 n -0000045839 00000 n -0000045902 00000 n -0000048552 00000 n -0000048767 00000 n -0000438867 00000 n -0000438899 00000 n -0000438749 00000 n -0000438781 00000 n -0000439161 00000 n -0000439549 00000 n -0000440565 00000 n -0000443748 00000 n -0000509337 00000 n -0000566504 00000 n -0000632093 00000 n -0000697682 00000 n -0000763271 00000 n -0000828860 00000 n -0000894449 00000 n -0000960038 00000 n -0001025627 00000 n -0001092963 00000 n -trailer <]>> startxref 1093160 %%EOF \ No newline at end of file diff --git a/node_modules/materialize-css/res/MaterializeLogo-3.svg b/node_modules/materialize-css/res/MaterializeLogo-3.svg deleted file mode 100644 index bddcff4..0000000 --- a/node_modules/materialize-css/res/MaterializeLogo-3.svg +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/materialize-css/res/materialize.svg b/node_modules/materialize-css/res/materialize.svg deleted file mode 100644 index 903fed5..0000000 --- a/node_modules/materialize-css/res/materialize.svg +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/materialize-css/robots.txt b/node_modules/materialize-css/robots.txt deleted file mode 100644 index 2b08a70..0000000 --- a/node_modules/materialize-css/robots.txt +++ /dev/null @@ -1,4 +0,0 @@ -# Allow crawling of all content -User-agent: * -Disallow: -Sitemap: http://materializecss.com/sitemap.xml \ No newline at end of file diff --git a/node_modules/materialize-css/sass.html b/node_modules/materialize-css/sass.html deleted file mode 100644 index 6dbfd64..0000000 --- a/node_modules/materialize-css/sass.html +++ /dev/null @@ -1,340 +0,0 @@ - - - - - - - - - Sass - Materialize - - - - - - - - - - - - - - - - -

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

                Variables

                -

                - When using Sass, you can change the color scheme of your site extremely quickly. Below is a very small sample of what you can change through sass in _variables.scss. -

                -
                
                -  $primary-color: color("materialize-red", "lighten-2") !default;
                -  $primary-color-light: false !default;
                -  $primary-color-dark: false !default;
                -  @if not $primary-color-light {
                -    $primary-color-light: lighten($primary-color, 15%);
                -  }
                -  @if not $primary-color-dark {
                -    $primary-color-dark: darken($primary-color, 15%);
                -  }
                -  $secondary-color: color("teal", "lighten-1") !default;
                -  $success-color: color("green", "base") !default;
                -  $error-color: color("red", "base") !default;
                -
                -  $link-color: color("light-blue", "darken-1") !default;
                -
                -  /*** More variables not shown here.. ***/
                -        
                -
                - - -
                -

                Media Queries

                -

                - We have 3 media queries for the 3 standard screen sizes you can use in your custom Sass files. This also includes media query variables that will define the range. -

                -

                - Small screens are defined as having a max-width of 600px -
                - Medium screens are defined as having a max-width of 992px -
                - Large screen are defined as having a min-width of 993px -

                - -

                CSS

                -
                
                -  /* These classes can be added to HTML Elements
                -   * to affect visibility on certain displays.
                -   */
                -  .hide-on-small-only
                -  .hide-on-small-and-down
                -  .hide-on-med-and-down
                -  .hide-on-med-and-up
                -  .hide-on-med-only
                -  .hide-on-large-only
                -  .show-on-large
                -  .show-on-medium
                -  .show-on-small
                -  .show-on-medium-and-up
                -  .show-on-medium-and-down
                -            
                - -

                Sass

                -
                
                -  @media #{$small-and-down} {
                -    // styles for small screens and down
                -  }
                -  @media #{$medium-and-up} {
                -    // styles for medium screens and larger
                -  }
                -  @media #{$medium-and-down} {
                -    // styles for medium screens and down
                -  }
                -  @media #{$large-and-up} {
                -    // styles for large screens and up
                -  }
                -            
                -
                - - -
                -

                Prefixer

                -

                - One major goal of this framework is to be as adaptable as possible which includes cross browser compatibility. We have adapted a prefixer script to Sass which will automatically add all browser prefixes for certain CSS properties. -

                - - - For Example: Using this Sass mixin -
                
                -  @include transition(.3s);
                -        
                - Will Output This -
                
                -  -webkit-transition: 0.3s;
                -  -moz-transition: 0.3s;
                -  -o-transition: 0.3s;
                -  -ms-transition: 0.3s;
                -  transition: 0.3s;
                -        
                - Here is the full list of mixins -
                
                -  animation($args)
                -  animation-delay($delay)
                -  animation-direction($direction)
                -  animation-duration($duration)
                -  animation-fill-mode($mode)
                -  animation-iteration-count($count)
                -  animation-name($name)
                -  animation-play-state($state)
                -  animation-timing-function($function)
                -  background-size($args)
                -  box-sizing($args)
                -      border-box()
                -      content-box()
                -  columns($args)
                -      column-count($count)
                -      column-gap($gap)
                -      column-rule($args)
                -      column-width($width)
                -  gradient($default,$start,$stop)
                -      linear-gradient-top($default,$color1,$stop1,$color2,$stop2,[$color3,$stop3,$color4,$stop4])
                -      linear-gradient-left($default,$color1,$stop1,$color2,$stop2,[$color3,$stop3,$color4,$stop4])
                -  transform($args)
                -      transform-origin($args)
                -      transform-style($style)
                -      rotate($deg)
                -      scale($factor)
                -      translate($x,$y)
                -      translate3d($x,$y,$z)
                -      translateHardware($x,$y)
                -  text-shadow($args)
                -  transition($args)
                -      transition-delay($delay)
                -      transition-duration($duration)
                -      transition-property($property)
                -      transition-timing-function($function)
                -        
                -
                -
                -
                -
                -
                - - -
                - -
                -
                - -
                - -
                - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/sass/_style.scss b/node_modules/materialize-css/sass/_style.scss deleted file mode 100644 index fa8ad7e..0000000 --- a/node_modules/materialize-css/sass/_style.scss +++ /dev/null @@ -1,979 +0,0 @@ -/*************** - HTML Styles -***************/ -body { - background-color: #fcfcfc; -} - -p.box { - padding: 20px; -} -p { - color: rgba(0, 0, 0, 0.71); - padding: 0; - -webkit-font-smoothing: antialiased; -} - -h1,h2,h3,h4,h5,h6 { - -webkit-font-smoothing: antialiased; -} - -h5 > span { - font-size: 14px; - margin-left: 15px; - color: #777; -} - -nav { - // background-color: color("materialize-red", "lighten-2"); - - a { - -webkit-font-smoothing: antialiased; - } - ul li a:hover, ul li.active { - background-color: color("materialize-red", "lighten-1"); - } -} - -.header { - color: color("materialize-red", "lighten-2"); - font-weight: 300; -} - -.caption { - font-size: 1.25rem; - font-weight: 300; - margin-bottom: 30px; -} - -.preview { - background-color: #FFF; - border: 1px solid #eee; - padding: 20px 20px; -} - -header, main, footer { - padding-left: 300px; -} -.parallax-demo header, -.parallax-demo main, -.parallax-demo footer { - padding-left: 0; -} -footer.example { - padding-left: 0; -} - -@media #{$medium-and-down} { - header, main, footer { - padding-left: 0; - } - h5 > span { - display: block; - margin: 0 0 15px 0; - } - -} - -/******************** - Index Page Styles -********************/ - -// custom styled sidebar -ul.side-nav.fixed li.logo { - text-align: center; - margin-top: 32px; - margin-bottom: 80px; - - &:hover, - #logo-container:hover { - background-color: transparent; - } -} -ul.side-nav.fixed { - overflow: hidden; - - li { - line-height: 44px; - - &.active { - background-color: rgba(0,0,0,.05); - } - - a { - font-size: 13px; - line-height: 44px; - height: 44px; - padding: 0 30px; - } - } - - ul.collapsible-accordion { - background-color: #FFF; - - a.collapsible-header { - padding: 0 30px; - } - - .collapsible-body li a { - font-weight: 400; - padding: 0 37.5px 0 45px; - } - } - - // Only show scrollbar on hover - &:hover { - overflow-y: auto; - } -} - -.bold > a { - font-weight: bold; -} - -#logo-container { - height: 57px; - margin-bottom: 32px; -} - -nav.top-nav { - height: 122px; - box-shadow: none; - - a.page-title { - line-height: 122px; - font-size: 48px; - } -} -a.button-collapse.top-nav { - position: absolute; - text-align: center; - height: 48px; - width: 48px; - left: 7.5%; - top: 0; - float: none; - margin-left: 1.5rem; - color: #fff; - font-size: 36px; - z-index: 2; - - &.full { - line-height: 122px; - } - - i { - font-size: 32px; - } -} - -@media #{$small-and-down} { - a.button-collapse.top-nav { - left: 5%; - } -} - -@media #{$medium-and-down} { - nav .nav-wrapper { - text-align: center; - - a.page-title { - font-size: 36px; - } - } -} - -@media #{$large-and-up} { - .container { - width: 85%; - } -} - - -#front-page-logo { - display: inline-block; - height: 100%; - pointer-events: none; -} - -@media only screen and (max-width: 992px) { - #front-page-nav ul.side-nav { - li { - float: none; - padding: 0 15px; - - &:hover { background-color: #ddd; } - .active { background-color: transparent; } - } - a { - color: #444; - } - } -} - - -#responsive-img { - width: 80%; - display:block; - margin: 0 auto; -} - -#index-banner { - background-color: color("materialize-red", "lighten-2"); - .container { - position: relative; - } - .header { - color: #FFF; - } - h4 { - margin-bottom: 40px; - } - h1 { - margin-top: 16px; - } -} -@media #{$medium-and-down} { - #index-banner { - h1 { - margin-top: 60px; - } - h4 { - margin-bottom: 15px; - } - } -} -@media #{$small-and-down} { - #index-banner { - h4 { - margin-bottom: 0; - } - } -} - -// Latest commit widget -.github-commit { - padding: 14px 0; - height: 64px; - line-height: 36px; - background-color: #5c5757; - color: hsl(0, 0%, 90%); - font-size: .9rem; -} -@media #{$medium-and-down} { - .github-commit { - text-align: center; - } -} - -#github-button { - background-color: #6f6d6d; - transition: .25s ease; - &:hover { - background-color: #797777; - } -} - -.sha { - color: hsl(0, 0%, 94%) ; - margin: 0 6px 0 6px; -} - -#download-button { - background-color: color("materialize-red", "lighten-3"); - width: 260px; - height: 70px; - line-height: 70px; - font-size: 18px; - font-weight: 400; - - &:hover { - background-color: lighten(color("materialize-red", "base"), 30%); - } -} - -.promo{ - width: 100%; - - i { - margin: 40px 0; - color: color("materialize-red", "lighten-2"); - font-size: 7rem; - display: block; - } -} - -.promo-caption { - font-size: 1.7rem; - font-weight: 500; - margin-top: 5px; - margin-bottom: 0; - -} - -#front-page-nav { - background-color: #FFF; - position: relative; - a { - color: color("materialize-red", "lighten-2"); - } - li { - &:hover { - background-color: color("materialize-red", "lighten-5"); - } - &.active { - background-color: color("materialize-red", "lighten-5"); - } - } - .container { - height: inherit; - } -} - -// Grid doc styles - -.col.grid-example { - border: 1px solid #eee; - margin: 7px 0; - text-align: center; - line-height: 50px; - font-size: 28px; - background-color: tomato; - color: white; - padding: 0; - - span { - font-weight: 200; - line-height: 50px; - } -} - -.promo-example { - overflow: hidden; -} - - -/******************* - Flat Site Mockup -*******************/ - -#site-layout-example-left { - background-color: color("blue-grey", "lighten-2"); - height: 300px; -} -#site-layout-example-right { - background-color: color("teal", "lighten-1"); - height: 300px; -} -#site-layout-example-top { - background-color: color("red", "lighten-2"); - height: 42px; -} - -.flat-text-header { - height: 35px; - width: 80%; - background-color: rgba(255,255,255,.15); - display: block; - margin: 27px auto; -} -.flat-text { - height: 25px; - width: 80%; - background-color: rgba(0,0,0,.15); - display: block; - margin: 27px auto; - &.small { - width: 25%; - height: 25px; - background-color: rgba(0,0,0,.15); - } - &.full-width { - width: 100%; - } -} - -/********************** -**********************/ - -/***************** - Chrome Browser -*****************/ -$bottomColor: #E2E2E1; -$topColor: lighten($bottomColor, 2%); - -$border: $bottomColor; - -$width: 100%; -$height: auto; - -.browser-window { - text-align: left; - width: $width; - height: $height; - display: inline-block; - border-radius: 5px 5px 2px 2px; - background-color: #fff; - margin: 20px 0px; - overflow: hidden; - - .top-bar { - height: 30px; - border-radius: 5px 5px 0 0; - border-top: thin solid lighten($topColor, 1%); - border-bottom: thin solid darken($bottomColor, 1%); - background: linear-gradient($topColor, $bottomColor); - } -} - -.browser-window .circle { - height: 10px; - width: 10px; - display: inline-block; - border-radius: 50%; - background-color: lighten($topColor, 10%); - margin-right: 1px; -} -#close-circle { - background-color: #FF5C5A; -} -#minimize-circle { - background-color: #FFBB50; -} -#maximize-circle { - background-color: #1BC656; -} -.browser-window .circles { margin: 5px 12px; } -.browser-window .content { - margin: 0; - width: 100%; - // min-height: 100%; - display: inline-block; - border-radius: 0 0 5px 5px; - background-color: #fafafa; -} -.browser-window .row { - margin: 0; -} - -.clear { clear: both; } - -/********************** -**********************/ - - -// Color Wheel -.dynamic-color { - - .red, .pink, .purple, .deep-purple, .indigo, .blue, .light-blue, .cyan, .teal, .green, .light-green, .lime, .yellow, .amber, .orange, .deep-orange, .brown , .grey, .blue-grey, .black, .white, .transparent { - height: 55px; - width: 100%; - padding: 0 15px; - line-height: 55px; - font-weight: 500; - font-size: 12px; - display: block; - box-sizing: border-box; - } - .col { - margin-bottom: 55px; - } -} - -.center { - text-align: center; - vertical-align: middle; -} - -// Icons -.material-icons.icon-demo { - line-height: 50px; -} -.icon-container i { - font-size: 3em; - margin-bottom: 10px; -} -.icon-container .icon-preview { - height: 120px; - text-align: center; -} -.icon-container span { - display: block; -} - -.icon-holder { - display: block; - text-align: center; - width: 150px; - height: 115px; - - float: left; - margin: 0 0px 15px 0px; - p { - margin: 0 0; - } -} - -// tabs -.tabs-wrapper { - position: relative; - height: 48px; - @extend .hide-on-small-only; - - .row.pinned { - position: fixed; - width: 100%; - top: 0; - z-index: 10; - } -} - - -// Shadow demo styling -.shadow-demo { - background-color: color("teal", "lighten-1"); - width: 100px; - height: 100px; - margin: 20px auto; - - @media only screen and (max-width: $small-screen) { - width: 150px; - height: 150px; - } -} - -// parallax demo -.parallax-container { - - .text-center { - position: absolute; - top: 50%; - left: 0; - right: 0; - margin-top: -27px; - } - -} - -// Table of contents -ul.table-of-contents { - margin-top: 0; - padding-top: 48px; -} - -// Prism Styling -code, pre { - position: relative; - font-size: 1.1rem; -} - -.directory-markup { - font-size: 1rem; - line-height: 1.1rem !important; -} -pre[class*="language-"] { - &:before { - position: absolute; - padding: 1px 5px; - background: hsl(30, 10%, 90%); - top: 0; - left: 0; - font-family: "Roboto", sans-serif; - -webkit-font-smoothing: antialiased; - color: #555; - content:attr(class); - font-size: .9rem; - border: solid 1px rgba(51, 51, 51, 0.12); - border-top: none; - border-left: none; - } - padding: 25px 12px 7px 12px; - border: solid 1px rgba(51, 51, 51, 0.12); -} - - -// Carbon Ads styling -.toc-wrapper { - &.pin-bottom { - margin-top: 84px; - } - - position: relative; - margin-top: 42px; -} - -#carbonads { - max-width: 150px; - display: inline-block; - position: relative; - text-align: left; - -webkit-font-smoothing: antialiased; - - & > span, - span.carbon-wrap { - height: 100px; - display: block; - } - a.carbon-img { - height: 100px; - display: inline-block; - margin-right: 10px; - } - a.carbon-text, - input[type="submit"] { - position: relative; - top: 0; - width: 150px; - vertical-align: top; - display: inline-block; - font-size: 13px; - color: color("red", "lighten-2"); - } - a.carbon-poweredby { - position: relative; - left: 28px; - font-size: 11px; - color: color("red", "lighten-3"); - } -} -.buysellads #carbonads { - - & > span, - span.carbon-wrap { height: auto; } - - a.carbon-text { - top: 5px; - left: 0; - width: 130px; - display: block; - font-size: 13px; - -webkit-font-smoothing: antialiased; - color: #E57373; - } - a.carbon-poweredby { - top: 5px; - } -} -.buysellads-header #carbonads { - & > span, - span.carbon-wrap { height: auto; } - a.carbon-text { color: #fff; } - a.carbon-poweredby { color: rgba(255,255,255,.8); } -} - - -.buysellads-homepage #carbonads { - display: block; - overflow: hidden; - margin: 4em auto 0; - padding: 1em; - max-width: 360px; - border-radius: 2px; - background-color: hsla(0, 0%, 100%, .13); - - - span { - position: relative; - display: block; - overflow: hidden; - } - - .carbon-img { - float: left; - margin-right: 1em; - } - - .carbon-text { - max-width: calc(100% - 135px - 1em); - width: auto; - } - - .carbon-poweredby { - position: absolute; - left: auto; - right: 0; - bottom: -4px; - } -} - - -// BuySellAds Styling -.buysellads { - &.buysellads-demo { - bottom: 20px; - right: 20px; - position: fixed; - padding: 10px; - background-color: rgba(255,255,255,.9); - z-index: 1000; - - #carbonads a.carbon-img { - margin-right: 0; - } - - #carbonads a.carbon-text { - top: 0; - } - - a.close { - &:hover { - background-color: #ddd; - } - .material-icons { - font-size: 18px; - line-height: 24px; - } - text-align: center; - background-color: #fff; - border-radius: 50%; - box-shadow: 0 2px 4px 0 rgba(0,0,0,.1); - height: 24px; - width: 24px; - position: absolute; - top: -6px; - right: -6px; - z-index: 1; - transition: background-color .2s; - } - } - - -webkit-font-smoothing: antialiased; - position: relative; - - .bsa_it.one { - width: 130px; - position: absolute; - left: 0; - top: 50px; - - .bsa_it_p { - left: 0; - bottom: -15px; - } - .bsa_it_ad .bsa_it_t { color: color("red", "lighten-2"); } - .bsa_it_ad .bsa_it_d { color: color("red", "lighten-3"); } - } - - .bsa_it_ad a { - display: block; - width: 130px; - } -} - -.buysellads-header { - margin-top: 30px; - - .bsa_it.one .bsa_it_p { bottom: -20px; } -} - -.bsa_it.one { - min-width: 230px; - max-width: 270px; - display: inline-block; - text-align: left; - - .bsa_it_ad { - border: 0; - padding: 0; - background-color: transparent; - - .bsa_it_t { color: #fff; } - .bsa_it_d { color: color("red", "lighten-4"); } - } - - .bsa_it_p { - right: auto; - left: 40px; - bottom: -5px; - - a { color: color("red", "lighten-4"); } - } -} - - - -// Footer styling -footer{ - font-size: .9rem; -} -body.parallax-demo footer { - margin-top: 0; -} - -//About page styling -.image-container { - width: 100%; - img { - max-width: 100%; - } -} - - -// Mobile page styling - -.mobile-image { - @media #{$small-and-down} { - max-width: 100%; - } -} - -// Waves page styling -.waves-color-demo { - .collection-item { - height: 37px; - line-height: 37px; - box-sizing: content-box; - - code { - line-height: 37px; - } - } - .btn { - &:not(.waves-light) { - background-color: color("shades", "white"); - color: #212121; - } - } -} - -// Card Page styling -.card-panel span, .card-content p{ - -webkit-font-smoothing: antialiased; -} - -#images .card-panel .row { - margin-bottom: 0; -} - -// Pushpin Demo styles -.pushpin-demo { - position: relative; - height: 100px; -} -#pushpin-demo-1 { - display: block; - height: inherit; - background-color: #ddd; -} - -// Valign Demo -.valign-demo { - height: 400px; - background-color: #ddd; -} -.talign-demo { - height: 100px; - background-color: #ddd; -} - -// Transitions demos -#staggered-test li, -#image-test { - opacity: 0; - -} - -// Transifex Styling - -#tx-live-lang-container { - background-color: #fcfcfc; - z-index: 999; - - #tx-live-lang-picker { - background-color: #fcfcfc; - - li { - color: $off-black; - &:hover{ - color: inherit; - background-color: color("materialize-red", "lighten-5"); - } - } - - } - - .txlive-langselector-toggle { - border-bottom: 2px solid color("materialize-red", "lighten-2"); - } - - .txlive-langselector-current { - color: $off-black; - } - - .txlive-langselector-marker { - border-bottom: 4px solid rgba(0,0,0,.61); - } - - -} - - -// Thanks for Downloading - -#download-thanks { - display: none; -} - - -// Twitter widget -#twitter-widget-0 { - width: 300px !important; -} - -// Search -#nav-mobile li.search { - &:hover { background-color: #fff; } - - position: absolute; - left: 0; - right: 0; - top: 120px; - margin-top: 1px; - padding: 1px 0 0 0; - z-index: 2; - - .search-wrapper { - &.focused { margin: 0; } - - margin: 0 12px; - transition: margin .25s ease; - - input#search { - &:focus { outline: none; } - - display: block; - font-size: 16px; - font-weight: 300; - width: 100%; - height: 45px; - margin: 0; - padding: 0 45px 0 15px; - border: 0; - } - - i.material-icons { - position: absolute; - top: 10px; - right: 10px; - cursor: pointer; - } - } - - - .search-results { - margin: 0; - border-top: 1px solid #e9e9e9; - background-color: #fff; - - a { - &:hover, - &.focused { - background-color: #eee; - outline: none; - } - - font-size: 12px; - white-space: nowrap; - } - } -} diff --git a/node_modules/materialize-css/sass/components/_badges.scss b/node_modules/materialize-css/sass/components/_badges.scss deleted file mode 100644 index 1c9f951..0000000 --- a/node_modules/materialize-css/sass/components/_badges.scss +++ /dev/null @@ -1,46 +0,0 @@ -// Badges -span.badge { - min-width: 3rem; - padding: 0 6px; - margin-left: 14px; - text-align: center; - font-size: 1rem; - line-height: $badge-height; - height: $badge-height; - color: color('grey', 'darken-1'); - float: right; - box-sizing: border-box; - - &.new { - font-weight: 300; - font-size: 0.8rem; - color: #fff; - background-color: $badge-bg-color; - border-radius: 2px; - } - &.new:after { - content: " new"; - } - - &[data-badge-caption]::after { - content: " " attr(data-badge-caption); - } -} -nav ul a span.badge { - display: inline-block; - float: none; - margin-left: 4px; - line-height: $badge-height; - height: $badge-height; -} - -// Line height centering -.collection-item span.badge { - margin-top: calc(#{$collection-line-height / 2} - #{$badge-height / 2}); -} -.collapsible span.badge { - margin-top: calc(#{$collapsible-line-height / 2} - #{$badge-height / 2}); -} -.side-nav span.badge { - margin-top: calc(#{$sidenav-line-height / 2} - #{$badge-height / 2}); -} diff --git a/node_modules/materialize-css/sass/components/_buttons.scss b/node_modules/materialize-css/sass/components/_buttons.scss deleted file mode 100644 index 800fab0..0000000 --- a/node_modules/materialize-css/sass/components/_buttons.scss +++ /dev/null @@ -1,293 +0,0 @@ -// shared styles -.btn, -.btn-flat { - border: $button-border; - border-radius: $button-radius; - display: inline-block; - height: $button-height; - line-height: $button-height; - padding: $button-padding; - text-transform: uppercase; - vertical-align: middle; - // Gets rid of tap active state - -webkit-tap-highlight-color: transparent; -} - -// Disabled shared style -.btn.disabled, -.btn-floating.disabled, -.btn-large.disabled, -.btn-flat.disabled, -.btn:disabled, -.btn-floating:disabled, -.btn-large:disabled, -.btn-flat:disabled, -.btn[disabled], -.btn-floating[disabled], -.btn-large[disabled], -.btn-flat[disabled] { - pointer-events: none; - background-color: $button-disabled-background !important; - box-shadow: none; - color: $button-disabled-color !important; - cursor: default; - - &:hover { - background-color: $button-disabled-background !important; - color: $button-disabled-color !important; - } -} - -// Shared icon styles -.btn, -.btn-floating, -.btn-large, -.btn-flat { - - outline: 0; - - i { - font-size: $button-font-size; - line-height: inherit; - } -} - -// Shared focus button style -.btn, -.btn-floating { - &:focus { - background-color: darken($button-raised-background, 10%); - } -} - -// Raised Button -.btn { - text-decoration: none; - color: $button-raised-color; - background-color: $button-raised-background; - text-align: center; - letter-spacing: .5px; - @extend .z-depth-1; - transition: .2s ease-out; - cursor: pointer; - - &:hover { - background-color: $button-raised-background-hover; - @extend .z-depth-1-half; - } -} - -// Floating button -.btn-floating { - &:hover { - background-color: $button-floating-background-hover; - @extend .z-depth-1-half; - } - - &:before { - border-radius: 0; - } - - &.btn-large { - width: $button-floating-large-size; - height: $button-floating-large-size; - i { - line-height: $button-floating-large-size; - } - } - - &.halfway-fab { - &.left { - right: auto; - left: 24px; - } - - position: absolute; - right: 24px; - bottom: 0; - transform: translateY(50%); - } - - display: inline-block; - color: $button-floating-color; - position: relative; - overflow: hidden; - z-index: 1; - width: $button-floating-size; - height: $button-floating-size; - line-height: $button-floating-size; - padding: 0; - background-color: $button-floating-background; - border-radius: $button-floating-radius; - @extend .z-depth-1; - transition: .3s; - cursor: pointer; - vertical-align: middle; - - i { - width: inherit; - display: inline-block; - text-align: center; - color: $button-floating-color; - font-size: $button-large-icon-font-size; - line-height: $button-floating-size; - } -} - -// button fix -button.btn-floating { - border: $button-border; -} - -// Fixed Action Button -.fixed-action-btn { - &.active { - ul { - visibility: visible; - } - } - - &.horizontal { - padding: 0 0 0 15px; - - ul { - text-align: right; - right: 64px; - top: 50%; - transform: translateY(-50%); - height: 100%; - left: auto; - width: 500px; /*width 100% only goes to width of button container */ - - li { - display: inline-block; - margin: 15px 15px 0 0; - } - } - } - - &.toolbar { - &.active { - & > a i { - opacity: 0; - } - } - - padding: 0; - height: $button-floating-large-size; - - ul { - display: flex; - top: 0; - bottom: 0; - - li { - flex: 1; - display: inline-block; - margin: 0; - height: 100%; - transition: none; - - a { - display: block; - overflow: hidden; - position: relative; - width: 100%; - height: 100%; - background-color: transparent; - box-shadow: none; - color: #fff; - line-height: $button-floating-large-size; - z-index: 1; - - i { - line-height: inherit; - } - } - } - } - } - - position: fixed; - right: 23px; - bottom: 23px; - padding-top: 15px; - margin-bottom: 0; - z-index: 998; - - ul { - left: 0; - right: 0; - text-align: center; - position: absolute; - bottom: 64px; - margin: 0; - visibility: hidden; - - li { - margin-bottom: 15px; - } - - a.btn-floating { - opacity: 0; - } - } - - .fab-backdrop { - position: absolute; - top: 0; - left: 0; - z-index: -1; - width: $button-floating-size; - height: $button-floating-size; - background-color: $button-floating-background; - border-radius: $button-floating-radius; - transform: scale(0); - } -} - -// Flat button -.btn-flat { - box-shadow: none; - background-color: transparent; - color: $button-flat-color; - cursor: pointer; - transition: background-color .2s; - - &:focus, - &:active { - background-color: transparent; - } - - &:focus, - &:hover { - background-color: rgba(0,0,0,.1); - box-shadow: none; - } - - &:active { - background-color: rgba(0,0,0,.2); - } - - &.disabled { - background-color: transparent !important; - color: $button-flat-disabled-color !important; - cursor: default; - } -} - -// Large button -.btn-large { - @extend .btn; - height: $button-large-height; - line-height: $button-large-height; - - i { - font-size: $button-large-icon-font-size; - } -} - -// Block button -.btn-block { - display: block; -} diff --git a/node_modules/materialize-css/sass/components/_cards.scss b/node_modules/materialize-css/sass/components/_cards.scss deleted file mode 100644 index ad72783..0000000 --- a/node_modules/materialize-css/sass/components/_cards.scss +++ /dev/null @@ -1,193 +0,0 @@ - - -.card-panel { - transition: box-shadow .25s; - padding: $card-padding; - margin: $element-top-margin 0 $element-bottom-margin 0; - border-radius: 2px; - @extend .z-depth-1; - background-color: $card-bg-color; -} - -.card { - position: relative; - margin: $element-top-margin 0 $element-bottom-margin 0; - background-color: $card-bg-color; - transition: box-shadow .25s; - border-radius: 2px; - @extend .z-depth-1; - - - .card-title { - font-size: 24px; - font-weight: 300; - &.activator { - cursor: pointer; - } - } - - // Card Sizes - &.small, &.medium, &.large { - position: relative; - - .card-image { - max-height: 60%; - overflow: hidden; - } - .card-image + .card-content { - max-height: 40%; - } - .card-content { - max-height: 100%; - overflow: hidden; - } - .card-action { - position: absolute; - bottom: 0; - left: 0; - right: 0; - } - } - - &.small { - height: 300px; - } - - &.medium { - height: 400px; - } - - &.large { - height: 500px; - } - - // Horizontal Cards - &.horizontal { - &.small, &.medium, &.large { - .card-image { - height: 100%; - max-height: none; - overflow: visible; - - img { - height: 100%; - } - } - } - - display: flex; - - .card-image { - max-width: 50%; - img { - border-radius: 2px 0 0 2px; - max-width: 100%; - width: auto; - } - } - - .card-stacked { - display: flex; - flex-direction: column; - flex: 1; - position: relative; - - .card-content { - flex-grow: 1; - } - } - } - - // Sticky Action Section - &.sticky-action { - .card-action { - z-index: 2; - } - - .card-reveal { - z-index: 1; - padding-bottom: 64px; - } - } - - - - - .card-image { - position: relative; - - // Image background for content - img { - display: block; - border-radius: 2px 2px 0 0; - position: relative; - left: 0; - right: 0; - top: 0; - bottom: 0; - width: 100%; - } - - .card-title { - color: $card-bg-color; - position: absolute; - bottom: 0; - left: 0; - max-width: 100%; - padding: $card-padding; - } - } - - .card-content { - padding: $card-padding; - border-radius: 0 0 2px 2px; - - p { - margin: 0; - color: inherit; - } - .card-title { - display: block; - line-height: 32px; - margin-bottom: 8px; - - i { - line-height: 32px; - } - } - } - - .card-action { - position: relative; - background-color: inherit; - border-top: 1px solid rgba(160,160,160,.2); - padding: 16px $card-padding; - - a:not(.btn):not(.btn-large):not(.btn-floating) { - color: $card-link-color; - margin-right: $card-padding; - transition: color .3s ease; - text-transform: uppercase; - - &:hover { color: $card-link-color-light; } - } - } - - .card-reveal { - padding: $card-padding; - position: absolute; - background-color: $card-bg-color; - width: 100%; - overflow-y: auto; - left: 0; - top: 100%; - height: 100%; - z-index: 3; - display: none; - - .card-title { - cursor: pointer; - display: block; - } - } -} diff --git a/node_modules/materialize-css/sass/components/_carousel.scss b/node_modules/materialize-css/sass/components/_carousel.scss deleted file mode 100644 index 11e49cc..0000000 --- a/node_modules/materialize-css/sass/components/_carousel.scss +++ /dev/null @@ -1,85 +0,0 @@ -.carousel { - &.carousel-slider { - top: 0; - left: 0; - height: 0; - - .carousel-fixed-item { - &.with-indicators { - bottom: 68px; - } - - position: absolute; - left: 0; - right: 0; - bottom: 20px; - z-index: 1; - } - - .carousel-item { - width: 100%; - height: 100%; - min-height: 400px; - position: absolute; - top: 0; - left: 0; - - h2 { - font-size: 24px; - font-weight: 500; - line-height: 32px; - } - - p { - font-size: 15px; - } - } - } - - overflow: hidden; - position: relative; - width: 100%; - height: 400px; - perspective: 500px; - transform-style: preserve-3d; - transform-origin: 0% 50%; - - .carousel-item { - display: none; - width: 200px; - height: 200px; - position: absolute; - top: 0; - left: 0; - - img { - width: 100%; - } - } - - .indicators { - position: absolute; - text-align: center; - left: 0; - right: 0; - bottom: 0; - margin: 0; - - .indicator-item { - &.active { - background-color: #fff; - } - - display: inline-block; - position: relative; - cursor: pointer; - height: 8px; - width: 8px; - margin: 24px 4px; - background-color: rgba(255,255,255,.5); - - transition: background-color .3s; - border-radius: 50%; - } - } -} diff --git a/node_modules/materialize-css/sass/components/_chips.scss b/node_modules/materialize-css/sass/components/_chips.scss deleted file mode 100644 index f774a41..0000000 --- a/node_modules/materialize-css/sass/components/_chips.scss +++ /dev/null @@ -1,83 +0,0 @@ -.chip { - display: inline-block; - height: 32px; - font-size: 13px; - font-weight: 500; - color: rgba(0,0,0,.6); - line-height: 32px; - padding: 0 12px; - border-radius: 16px; - background-color: $chip-bg-color; - margin-bottom: $chip-margin; - margin-right: $chip-margin; - - img { - float: left; - margin: 0 8px 0 -12px; - height: 32px; - width: 32px; - border-radius: 50%; - } - - .close { - cursor: pointer; - float: right; - font-size: 16px; - line-height: 32px; - padding-left: 8px; - } -} - -.chips { - border: none; - border-bottom: 1px solid $chip-border-color; - box-shadow: none; - margin: $input-margin; - min-height: 45px; - outline: none; - transition: all .3s; - - &.focus { - border-bottom: 1px solid $chip-selected-color; - box-shadow: 0 1px 0 0 $chip-selected-color; - } - - &:hover { - cursor: text; - } - - .chip.selected { - background-color: $chip-selected-color; - color: #fff; - } - - .input { - background: none; - border: 0; - color: rgba(0,0,0,.6); - display: inline-block; - font-size: $input-font-size; - height: $input-height; - line-height: 32px; - outline: 0; - margin: 0; - padding: 0 !important; - width: 120px !important; - } - - .input:focus { - border: 0 !important; - box-shadow: none !important; - } -} - -// Form prefix -.prefix ~ .chips { - margin-left: 3rem; - width: 92%; - width: calc(100% - 3rem); -} -.chips:empty ~ label { - font-size: 0.8rem; - transform: translateY(-140%); -} diff --git a/node_modules/materialize-css/sass/components/_collapsible.scss b/node_modules/materialize-css/sass/components/_collapsible.scss deleted file mode 100644 index 31d9d6f..0000000 --- a/node_modules/materialize-css/sass/components/_collapsible.scss +++ /dev/null @@ -1,86 +0,0 @@ -.collapsible { - border-top: 1px solid $collapsible-border-color; - border-right: 1px solid $collapsible-border-color; - border-left: 1px solid $collapsible-border-color; - margin: $element-top-margin 0 $element-bottom-margin 0; - @extend .z-depth-1; -} - -.collapsible-header { - display: block; - cursor: pointer; - min-height: $collapsible-height; - line-height: $collapsible-line-height; - padding: 0 1rem; - background-color: $collapsible-header-color; - border-bottom: 1px solid $collapsible-border-color; - - i { - width: 2rem; - font-size: 1.6rem; - line-height: $collapsible-line-height; - display: block; - float: left; - text-align: center; - margin-right: 1rem; - } -} - -.collapsible-body { - display: none; - border-bottom: 1px solid $collapsible-border-color; - box-sizing: border-box; - padding: 2rem; -} - -// sideNav collapsible styling -.side-nav, -.side-nav.fixed { - - .collapsible { - border: none; - box-shadow: none; - - li { padding: 0; } - } - - .collapsible-header { - background-color: transparent; - border: none; - line-height: inherit; - height: inherit; - padding: 0 $sidenav-padding; - - &:hover { background-color: rgba(0,0,0,.05); } - i { line-height: inherit; } - } - - .collapsible-body { - border: 0; - background-color: $collapsible-header-color; - - li a { - padding: 0 (7.5px + $sidenav-padding) - 0 (15px + $sidenav-padding); - } - } - -} - -// Popout Collapsible - -.collapsible.popout { - border: none; - box-shadow: none; - > li { - box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); - // transform: scaleX(.92); - margin: 0 24px; - transition: margin .35s cubic-bezier(0.250, 0.460, 0.450, 0.940); - } - > li.active { - box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); - margin: 16px 0; - // transform: scaleX(1); - } -} diff --git a/node_modules/materialize-css/sass/components/_color.scss b/node_modules/materialize-css/sass/components/_color.scss deleted file mode 100644 index ef9d600..0000000 --- a/node_modules/materialize-css/sass/components/_color.scss +++ /dev/null @@ -1,412 +0,0 @@ -// Utility Color Classes - -//.success { -// -//} - -// Google Color Palette defined: http://www.google.com/design/spec/style/color.html - - -$materialize-red: ( - "base": #e51c23, - "lighten-5": #fdeaeb, - "lighten-4": #f8c1c3, - "lighten-3": #f3989b, - "lighten-2": #ee6e73, - "lighten-1": #ea454b, - "darken-1": #d0181e, - "darken-2": #b9151b, - "darken-3": #a21318, - "darken-4": #8b1014, -); - -$red: ( - "base": #F44336, - "lighten-5": #FFEBEE, - "lighten-4": #FFCDD2, - "lighten-3": #EF9A9A, - "lighten-2": #E57373, - "lighten-1": #EF5350, - "darken-1": #E53935, - "darken-2": #D32F2F, - "darken-3": #C62828, - "darken-4": #B71C1C, - "accent-1": #FF8A80, - "accent-2": #FF5252, - "accent-3": #FF1744, - "accent-4": #D50000 -); - -$pink: ( - "base": #e91e63, - "lighten-5": #fce4ec, - "lighten-4": #f8bbd0, - "lighten-3": #f48fb1, - "lighten-2": #f06292, - "lighten-1": #ec407a, - "darken-1": #d81b60, - "darken-2": #c2185b, - "darken-3": #ad1457, - "darken-4": #880e4f, - "accent-1": #ff80ab, - "accent-2": #ff4081, - "accent-3": #f50057, - "accent-4": #c51162 -); - -$purple: ( - "base": #9c27b0, - "lighten-5": #f3e5f5, - "lighten-4": #e1bee7, - "lighten-3": #ce93d8, - "lighten-2": #ba68c8, - "lighten-1": #ab47bc, - "darken-1": #8e24aa, - "darken-2": #7b1fa2, - "darken-3": #6a1b9a, - "darken-4": #4a148c, - "accent-1": #ea80fc, - "accent-2": #e040fb, - "accent-3": #d500f9, - "accent-4": #aa00ff -); - -$deep-purple: ( - "base": #673ab7, - "lighten-5": #ede7f6, - "lighten-4": #d1c4e9, - "lighten-3": #b39ddb, - "lighten-2": #9575cd, - "lighten-1": #7e57c2, - "darken-1": #5e35b1, - "darken-2": #512da8, - "darken-3": #4527a0, - "darken-4": #311b92, - "accent-1": #b388ff, - "accent-2": #7c4dff, - "accent-3": #651fff, - "accent-4": #6200ea -); - -$indigo: ( - "base": #3f51b5, - "lighten-5": #e8eaf6, - "lighten-4": #c5cae9, - "lighten-3": #9fa8da, - "lighten-2": #7986cb, - "lighten-1": #5c6bc0, - "darken-1": #3949ab, - "darken-2": #303f9f, - "darken-3": #283593, - "darken-4": #1a237e, - "accent-1": #8c9eff, - "accent-2": #536dfe, - "accent-3": #3d5afe, - "accent-4": #304ffe -); - -$blue: ( - "base": #2196F3, - "lighten-5": #E3F2FD, - "lighten-4": #BBDEFB, - "lighten-3": #90CAF9, - "lighten-2": #64B5F6, - "lighten-1": #42A5F5, - "darken-1": #1E88E5, - "darken-2": #1976D2, - "darken-3": #1565C0, - "darken-4": #0D47A1, - "accent-1": #82B1FF, - "accent-2": #448AFF, - "accent-3": #2979FF, - "accent-4": #2962FF -); - -$light-blue: ( - "base": #03a9f4, - "lighten-5": #e1f5fe, - "lighten-4": #b3e5fc, - "lighten-3": #81d4fa, - "lighten-2": #4fc3f7, - "lighten-1": #29b6f6, - "darken-1": #039be5, - "darken-2": #0288d1, - "darken-3": #0277bd, - "darken-4": #01579b, - "accent-1": #80d8ff, - "accent-2": #40c4ff, - "accent-3": #00b0ff, - "accent-4": #0091ea -); - -$cyan: ( - "base": #00bcd4, - "lighten-5": #e0f7fa, - "lighten-4": #b2ebf2, - "lighten-3": #80deea, - "lighten-2": #4dd0e1, - "lighten-1": #26c6da, - "darken-1": #00acc1, - "darken-2": #0097a7, - "darken-3": #00838f, - "darken-4": #006064, - "accent-1": #84ffff, - "accent-2": #18ffff, - "accent-3": #00e5ff, - "accent-4": #00b8d4 -); - -$teal: ( - "base": #009688, - "lighten-5": #e0f2f1, - "lighten-4": #b2dfdb, - "lighten-3": #80cbc4, - "lighten-2": #4db6ac, - "lighten-1": #26a69a, - "darken-1": #00897b, - "darken-2": #00796b, - "darken-3": #00695c, - "darken-4": #004d40, - "accent-1": #a7ffeb, - "accent-2": #64ffda, - "accent-3": #1de9b6, - "accent-4": #00bfa5 -); - -$green: ( - "base": #4CAF50, - "lighten-5": #E8F5E9, - "lighten-4": #C8E6C9, - "lighten-3": #A5D6A7, - "lighten-2": #81C784, - "lighten-1": #66BB6A, - "darken-1": #43A047, - "darken-2": #388E3C, - "darken-3": #2E7D32, - "darken-4": #1B5E20, - "accent-1": #B9F6CA, - "accent-2": #69F0AE, - "accent-3": #00E676, - "accent-4": #00C853 -); - -$light-green: ( - "base": #8bc34a, - "lighten-5": #f1f8e9, - "lighten-4": #dcedc8, - "lighten-3": #c5e1a5, - "lighten-2": #aed581, - "lighten-1": #9ccc65, - "darken-1": #7cb342, - "darken-2": #689f38, - "darken-3": #558b2f, - "darken-4": #33691e, - "accent-1": #ccff90, - "accent-2": #b2ff59, - "accent-3": #76ff03, - "accent-4": #64dd17 -); - -$lime: ( - "base": #cddc39, - "lighten-5": #f9fbe7, - "lighten-4": #f0f4c3, - "lighten-3": #e6ee9c, - "lighten-2": #dce775, - "lighten-1": #d4e157, - "darken-1": #c0ca33, - "darken-2": #afb42b, - "darken-3": #9e9d24, - "darken-4": #827717, - "accent-1": #f4ff81, - "accent-2": #eeff41, - "accent-3": #c6ff00, - "accent-4": #aeea00 -); - -$yellow: ( - "base": #ffeb3b, - "lighten-5": #fffde7, - "lighten-4": #fff9c4, - "lighten-3": #fff59d, - "lighten-2": #fff176, - "lighten-1": #ffee58, - "darken-1": #fdd835, - "darken-2": #fbc02d, - "darken-3": #f9a825, - "darken-4": #f57f17, - "accent-1": #ffff8d, - "accent-2": #ffff00, - "accent-3": #ffea00, - "accent-4": #ffd600 -); - -$amber: ( - "base": #ffc107, - "lighten-5": #fff8e1, - "lighten-4": #ffecb3, - "lighten-3": #ffe082, - "lighten-2": #ffd54f, - "lighten-1": #ffca28, - "darken-1": #ffb300, - "darken-2": #ffa000, - "darken-3": #ff8f00, - "darken-4": #ff6f00, - "accent-1": #ffe57f, - "accent-2": #ffd740, - "accent-3": #ffc400, - "accent-4": #ffab00 -); - -$orange: ( - "base": #ff9800, - "lighten-5": #fff3e0, - "lighten-4": #ffe0b2, - "lighten-3": #ffcc80, - "lighten-2": #ffb74d, - "lighten-1": #ffa726, - "darken-1": #fb8c00, - "darken-2": #f57c00, - "darken-3": #ef6c00, - "darken-4": #e65100, - "accent-1": #ffd180, - "accent-2": #ffab40, - "accent-3": #ff9100, - "accent-4": #ff6d00 -); - -$deep-orange: ( - "base": #ff5722, - "lighten-5": #fbe9e7, - "lighten-4": #ffccbc, - "lighten-3": #ffab91, - "lighten-2": #ff8a65, - "lighten-1": #ff7043, - "darken-1": #f4511e, - "darken-2": #e64a19, - "darken-3": #d84315, - "darken-4": #bf360c, - "accent-1": #ff9e80, - "accent-2": #ff6e40, - "accent-3": #ff3d00, - "accent-4": #dd2c00 -); - -$brown: ( - "base": #795548, - "lighten-5": #efebe9, - "lighten-4": #d7ccc8, - "lighten-3": #bcaaa4, - "lighten-2": #a1887f, - "lighten-1": #8d6e63, - "darken-1": #6d4c41, - "darken-2": #5d4037, - "darken-3": #4e342e, - "darken-4": #3e2723 -); - -$blue-grey: ( - "base": #607d8b, - "lighten-5": #eceff1, - "lighten-4": #cfd8dc, - "lighten-3": #b0bec5, - "lighten-2": #90a4ae, - "lighten-1": #78909c, - "darken-1": #546e7a, - "darken-2": #455a64, - "darken-3": #37474f, - "darken-4": #263238 -); - -$grey: ( - "base": #9e9e9e, - "lighten-5": #fafafa, - "lighten-4": #f5f5f5, - "lighten-3": #eeeeee, - "lighten-2": #e0e0e0, - "lighten-1": #bdbdbd, - "darken-1": #757575, - "darken-2": #616161, - "darken-3": #424242, - "darken-4": #212121 -); - -$shades: ( - "black": #000000, - "white": #FFFFFF, - "transparent": transparent -); - -$colors: ( - "materialize-red": $materialize-red, - "red": $red, - "pink": $pink, - "purple": $purple, - "deep-purple": $deep-purple, - "indigo": $indigo, - "blue": $blue, - "light-blue": $light-blue, - "cyan": $cyan, - "teal": $teal, - "green": $green, - "light-green": $light-green, - "lime": $lime, - "yellow": $yellow, - "amber": $amber, - "orange": $orange, - "deep-orange": $deep-orange, - "brown": $brown, - "blue-grey": $blue-grey, - "grey": $grey, - "shades": $shades -); - - -// Color Classes - -@each $color_name, $color in $colors { - @each $color_type, $color_value in $color { - @if $color_type == "base" { - .#{$color_name} { - background-color: $color_value !important; - } - .#{$color_name}-text { - color: $color_value !important; - } - } - @else if $color_name != "shades" { - .#{$color_name}.#{$color_type} { - background-color: $color_value !important; - } - .#{$color_name}-text.text-#{$color_type} { - color: $color_value !important; - } - } - } -} - -// Shade classes -@each $color, $color_value in $shades { - .#{$color} { - background-color: $color_value !important; - } - .#{$color}-text { - color: $color_value !important; - } -} - - -// usage: color("name_of_color", "type_of_color") -// to avoid to repeating map-get($colors, ...) - -@function color($color, $type) { - @if map-has-key($colors, $color) { - $curr_color: map-get($colors, $color); - @if map-has-key($curr_color, $type) { - @return map-get($curr_color, $type); - } - } - @warn "Unknown `#{name}` in $colors."; - @return null; -} - diff --git a/node_modules/materialize-css/sass/components/_dropdown.scss b/node_modules/materialize-css/sass/components/_dropdown.scss deleted file mode 100644 index a958112..0000000 --- a/node_modules/materialize-css/sass/components/_dropdown.scss +++ /dev/null @@ -1,65 +0,0 @@ -.dropdown-content { - @extend .z-depth-1; - background-color: $dropdown-bg-color; - margin: 0; - display: none; - min-width: 100px; - max-height: 650px; - overflow-y: auto; - opacity: 0; - position: absolute; - z-index: 999; - will-change: width, height; - - li { - clear: both; - color: $off-black; - cursor: pointer; - min-height: $dropdown-item-height; - line-height: 1.5rem; - width: 100%; - text-align: left; - text-transform: none; - - &:hover, &.active, &.selected { - background-color: $dropdown-hover-bg-color; - } - - &.active.selected { - background-color: darken($dropdown-hover-bg-color, 5%); - } - - &.divider { - min-height: 0; - height: 1px; - } - - & > a, & > span { - font-size: 16px; - color: $dropdown-color; - display: block; - line-height: 22px; - padding: (($dropdown-item-height - 22) / 2) 16px; - } - - & > span > label { - top: 1px; - left: 0; - height: 18px; - } - - // Icon alignment override - & > a > i { - height: inherit; - line-height: inherit; - } - } -} - -// Input field specificity bugfix -.input-field.col .dropdown-content [type="checkbox"] + label { - top: 1px; - left: 0; - height: 18px; -} - diff --git a/node_modules/materialize-css/sass/components/_global.scss b/node_modules/materialize-css/sass/components/_global.scss deleted file mode 100644 index eadb8c2..0000000 --- a/node_modules/materialize-css/sass/components/_global.scss +++ /dev/null @@ -1,744 +0,0 @@ -//Default styles - -html { - box-sizing: border-box; -} -*, *:before, *:after { - box-sizing: inherit; -} - -body { - // display: flex; - // min-height: 100vh; - // flex-direction: column; -} - -main { - // flex: 1 0 auto; -} - -ul { - &:not(.browser-default) { - padding-left: 0; - list-style-type: none; - - li { - list-style-type: none; - } - } -} - -a { - color: $link-color; - text-decoration: none; - - // Gets rid of tap active state - -webkit-tap-highlight-color: transparent; -} - - -// Positioning -.valign-wrapper { - display: flex; - align-items: center; - - .valign { - display: block; - } -} - - -// classic clearfix -.clearfix { - clear: both; -} - - -// Z-levels -.z-depth-0 { - box-shadow: none !important; -} -.z-depth-1 { - box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); -} -.z-depth-1-half { - box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2); -} -.z-depth-2 { - box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3); -} -.z-depth-3 { - box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.3); -} -.z-depth-4 { - box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.3); -} -.z-depth-5 { - box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.3); -} - -.hoverable { - transition: box-shadow .25s; - box-shadow: 0; -} - -.hoverable:hover { - transition: box-shadow .25s; - box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); -} - -// Dividers - -.divider { - height: 1px; - overflow: hidden; - background-color: color("grey", "lighten-2"); -} - - -// Blockquote - -blockquote { - margin: 20px 0; - padding-left: 1.5rem; - border-left: 5px solid $primary-color; -} - -// Icon Styles - -i { - line-height: inherit; - - &.left { - float: left; - margin-right: 15px; - } - &.right { - float: right; - margin-left: 15px; - } - &.tiny { - font-size: 1rem; - } - &.small { - font-size: 2rem; - } - &.medium { - font-size: 4rem; - } - &.large { - font-size: 6rem; - } -} - -// Images -img.responsive-img, -video.responsive-video { - max-width: 100%; - height: auto; -} - - -// Pagination - -.pagination { - - li { - display: inline-block; - border-radius: 2px; - text-align: center; - vertical-align: top; - height: 30px; - - a { - color: #444; - display: inline-block; - font-size: 1.2rem; - padding: 0 10px; - line-height: 30px; - } - - &.active a { color: #fff; } - - &.active { background-color: $primary-color; } - - &.disabled a { - cursor: default; - color: #999; - } - - i { - font-size: 2rem; - } - } - - - li.pages ul li { - display: inline-block; - float: none; - } -} -@media #{$medium-and-down} { - .pagination { - width: 100%; - - li.prev, - li.next { - width: 10%; - } - - li.pages { - width: 80%; - overflow: hidden; - white-space: nowrap; - } - } -} - -// Breadcrumbs -.breadcrumb { - font-size: 18px; - color: rgba(255,255,255, .7); - - i, - [class^="mdi-"], [class*="mdi-"], - i.material-icons { - display: inline-block; - float: left; - font-size: 24px; - } - - &:before { - content: '\E5CC'; - color: rgba(255,255,255, .7); - vertical-align: top; - display: inline-block; - font-family: 'Material Icons'; - font-weight: normal; - font-style: normal; - font-size: 25px; - margin: 0 10px 0 8px; - -webkit-font-smoothing: antialiased; - } - - &:first-child:before { - display: none; - } - - &:last-child { - color: #fff; - } -} - - -// Parallax -.parallax-container { - position: relative; - overflow: hidden; - height: 500px; -} - -.parallax { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: -1; - - img { - display: none; - position: absolute; - left: 50%; - bottom: 0; - min-width: 100%; - min-height: 100%; - -webkit-transform: translate3d(0,0,0); - transform: translate3d(0,0,0); - transform: translateX(-50%); - } -} - -// Pushpin -.pin-top, .pin-bottom { - position: relative; -} -.pinned { - position: fixed !important; -} - -/********************* - Transition Classes -**********************/ - -ul.staggered-list li { - opacity: 0; -} - -.fade-in { - opacity: 0; - transform-origin: 0 50%; -} - - -/********************* - Media Query Classes -**********************/ -.hide-on-small-only, .hide-on-small-and-down { - @media #{$small-and-down} { - display: none !important; - } -} -.hide-on-med-and-down { - @media #{$medium-and-down} { - display: none !important; - } -} -.hide-on-med-and-up { - @media #{$medium-and-up} { - display: none !important; - } -} -.hide-on-med-only { - @media only screen and (min-width: $small-screen) and (max-width: $medium-screen) { - display: none !important; - } -} -.hide-on-large-only { - @media #{$large-and-up} { - display: none !important; - } -} -.show-on-large { - @media #{$large-and-up} { - display: block !important; - } -} -.show-on-medium { - @media only screen and (min-width: $small-screen) and (max-width: $medium-screen) { - display: block !important; - } -} -.show-on-small { - @media #{$small-and-down} { - display: block !important; - } -} -.show-on-medium-and-up { - @media #{$medium-and-up} { - display: block !important; - } -} -.show-on-medium-and-down { - @media #{$medium-and-down} { - display: block !important; - } -} - - -// Center text on mobile -.center-on-small-only { - @media #{$small-and-down} { - text-align: center; - } -} - -// Footer -footer.page-footer { - padding-top: 20px; - background-color: $footer-bg-color; - - .footer-copyright { - overflow: hidden; - min-height: 50px; - display: flex; - align-items: center; - padding: 10px 0px; - color: rgba(255,255,255,.8); - background-color: rgba(51,51,51,.08); - @extend .light; - } -} - -// Tables -table, th, td { - border: none; -} - -table { - width:100%; - display: table; - - &.bordered > thead > tr, - &.bordered > tbody > tr { - border-bottom: 1px solid $table-border-color; - } - - &.striped > tbody { - > tr:nth-child(odd) { - background-color: $table-striped-color; - } - - > tr > td { - border-radius: 0; - } - } - - &.highlight > tbody > tr { - transition: background-color .25s ease; - &:hover { - background-color: $table-striped-color; - } - } - - &.centered { - thead tr th, tbody tr td { - text-align: center; - } - } - -} - -thead { - border-bottom: 1px solid $table-border-color; -} - -td, th{ - padding: 15px 5px; - display: table-cell; - text-align: left; - vertical-align: middle; - border-radius: 2px; -} - -// Responsive Table -@media #{$medium-and-down} { - - table.responsive-table { - width: 100%; - border-collapse: collapse; - border-spacing: 0; - display: block; - position: relative; - - td:empty:before { - content: '\00a0'; - } - - th, - td { - margin: 0; - vertical-align: top; - } - - th { text-align: left; } - thead { - display: block; - float: left; - - tr { - display: block; - padding: 0 10px 0 0; - - th::before { - content: "\00a0"; - } - } - } - tbody { - display: block; - width: auto; - position: relative; - overflow-x: auto; - white-space: nowrap; - - tr { - display: inline-block; - vertical-align: top; - } - } - th { - display: block; - text-align: right; - } - td { - display: block; - min-height: 1.25em; - text-align: left; - } - tr { padding: 0 10px; } - - /* sort out borders */ - thead { - border: 0; - border-right: 1px solid $table-border-color; - } - - &.bordered { - th { border-bottom: 0; border-left: 0; } - td { border-left: 0; border-right: 0; border-bottom: 0; } - tr { border: 0; } - tbody tr { border-right: 1px solid $table-border-color; } - } - - } - -} - - -// Collections -.collection { - margin: $element-top-margin 0 $element-bottom-margin 0; - border: 1px solid $collection-border-color; - border-radius: 2px; - overflow: hidden; - position: relative; - - .collection-item { - background-color: $collection-bg-color; - line-height: $collection-line-height; - padding: 10px 20px; - margin: 0; - border-bottom: 1px solid $collection-border-color; - - // Avatar Collection - &.avatar { - min-height: 84px; - padding-left: 72px; - position: relative; - - .circle { - position: absolute; - width: 42px; - height: 42px; - overflow: hidden; - left: 15px; - display: inline-block; - vertical-align: middle; - } - i.circle { - font-size: 18px; - line-height: 42px; - color: #fff; - background-color: #999; - text-align: center; - } - - - .title { - font-size: 16px; - } - - p { - margin: 0; - } - - .secondary-content { - position: absolute; - top: 16px; - right: 16px; - } - - } - - - &:last-child { - border-bottom: none; - } - - &.active { - background-color: $collection-active-bg-color; - color: $collection-active-color; - - .secondary-content { - color: #fff; - } - } - } - a.collection-item{ - display: block; - transition: .25s; - color: $collection-link-color; - &:not(.active) { - &:hover { - background-color: $collection-hover-bg-color; - } - } - } - - &.with-header { - .collection-header { - background-color: $collection-bg-color; - border-bottom: 1px solid $collection-border-color; - padding: 10px 20px; - } - .collection-item { - padding-left: 30px; - } - .collection-item.avatar { - padding-left: 72px; - } - } - -} -// Made less specific to allow easier overriding -.secondary-content { - float: right; - color: $secondary-color; -} -.collapsible .collection { - margin: 0; - border: none; -} - - - -// Responsive Videos -.video-container { - position: relative; - padding-bottom: 56.25%; - height: 0; - overflow: hidden; - - iframe, object, embed { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - } -} - -// Progress Bar -.progress { - position: relative; - height: 4px; - display: block; - width: 100%; - background-color: lighten($progress-bar-color, 40%); - border-radius: 2px; - margin: $element-top-margin 0 $element-bottom-margin 0; - overflow: hidden; - .determinate { - position: absolute; - top: 0; - left: 0; - bottom: 0; - background-color: $progress-bar-color; - transition: width .3s linear; - } - .indeterminate { - background-color: $progress-bar-color; - &:before { - content: ''; - position: absolute; - background-color: inherit; - top: 0; - left:0; - bottom: 0; - will-change: left, right; - // Custom bezier - animation: indeterminate 2.1s cubic-bezier(0.650, 0.815, 0.735, 0.395) infinite; - - } - &:after { - content: ''; - position: absolute; - background-color: inherit; - top: 0; - left:0; - bottom: 0; - will-change: left, right; - // Custom bezier - animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.840, 0.440, 1.000) infinite; - animation-delay: 1.15s; - } - } -} -@keyframes indeterminate { - 0% { - left: -35%; - right:100%; - } - 60% { - left: 100%; - right: -90%; - } - 100% { - left: 100%; - right: -90%; - } -} - -@keyframes indeterminate-short { - 0% { - left: -200%; - right: 100%; - } - 60% { - left: 107%; - right: -8%; - } - 100% { - left: 107%; - right: -8%; - } -} - - -/******************* - Utility Classes -*******************/ - -.hide { - display: none !important; -} - -// Text Align -.left-align { - text-align: left; -} -.right-align { - text-align: right -} -.center, .center-align { - text-align: center; -} - -.left { - float: left !important; -} -.right { - float: right !important; -} - -// No Text Select -.no-select { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.circle { - border-radius: 50%; -} - -.center-block { - display: block; - margin-left: auto; - margin-right: auto; -} - -.truncate { - display: block; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.no-padding { - padding: 0 !important; -} diff --git a/node_modules/materialize-css/sass/components/_grid.scss b/node_modules/materialize-css/sass/components/_grid.scss deleted file mode 100644 index 4ffc3ed..0000000 --- a/node_modules/materialize-css/sass/components/_grid.scss +++ /dev/null @@ -1,147 +0,0 @@ -.container { - margin: 0 auto; - max-width: 1280px; - width: 90%; -} -@media #{$medium-and-up} { - .container { - width: 85%; - } -} -@media #{$large-and-up} { - .container { - width: 70%; - } -} -.container .row { - margin-left: (-1 * $gutter-width / 2); - margin-right: (-1 * $gutter-width / 2); -} - -.section { - padding-top: 1rem; - padding-bottom: 1rem; - - &.no-pad { - padding: 0; - } - &.no-pad-bot { - padding-bottom: 0; - } - &.no-pad-top { - padding-top: 0; - } -} - - -.row { - margin-left: auto; - margin-right: auto; - margin-bottom: 20px; - - // Clear floating children - &:after { - content: ""; - display: table; - clear: both; - } - - .col { - float: left; - box-sizing: border-box; - padding: 0 $gutter-width / 2; - min-height: 1px; - - &[class*="push-"], - &[class*="pull-"] { - position: relative; - } - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - &.s#{$i} { - width: $perc; - margin-left: auto; - left: auto; - right: auto; - } - $i: $i + 1; - } - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - &.offset-s#{$i} { - margin-left: $perc; - } - &.pull-s#{$i} { - right: $perc; - } - &.push-s#{$i} { - left: $perc; - } - $i: $i + 1; - } - - @media #{$medium-and-up} { - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - &.m#{$i} { - width: $perc; - margin-left: auto; - left: auto; - right: auto; - } - $i: $i + 1 - } - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - &.offset-m#{$i} { - margin-left: $perc; - } - &.pull-m#{$i} { - right: $perc; - } - &.push-m#{$i} { - left: $perc; - } - $i: $i + 1; - } - } - - @media #{$large-and-up} { - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - &.l#{$i} { - width: $perc; - margin-left: auto; - left: auto; - right: auto; - } - $i: $i + 1; - } - - $i: 1; - @while $i <= $num-cols { - $perc: unquote((100 / ($num-cols / $i)) + "%"); - &.offset-l#{$i} { - margin-left: $perc; - } - &.pull-l#{$i} { - right: $perc; - } - &.push-l#{$i} { - left: $perc; - } - $i: $i + 1; - } - } - } -} diff --git a/node_modules/materialize-css/sass/components/_icons-material-design.scss b/node_modules/materialize-css/sass/components/_icons-material-design.scss deleted file mode 100644 index d8d91c1..0000000 --- a/node_modules/materialize-css/sass/components/_icons-material-design.scss +++ /dev/null @@ -1,5 +0,0 @@ -/* This is needed for some mobile phones to display the Google Icon font properly */ -.material-icons { - text-rendering: optimizeLegibility; - font-feature-settings: 'liga'; -} diff --git a/node_modules/materialize-css/sass/components/_materialbox.scss b/node_modules/materialize-css/sass/components/_materialbox.scss deleted file mode 100644 index 0ebd63f..0000000 --- a/node_modules/materialize-css/sass/components/_materialbox.scss +++ /dev/null @@ -1,43 +0,0 @@ -.materialboxed { - &:hover { - &:not(.active) { - opacity: .8; - } - } - - display: block; - cursor: zoom-in; - position: relative; - transition: opacity .4s; - -webkit-backface-visibility: hidden; - - &.active { - cursor: zoom-out; - } -} - -#materialbox-overlay { - position:fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: #292929; - z-index: 1000; - will-change: opacity; -} - -.materialbox-caption { - position: fixed; - display: none; - color: #fff; - line-height: 50px; - bottom: 0; - left: 0; - width: 100%; - text-align: center; - padding: 0% 15%; - height: 50px; - z-index: 1000; - -webkit-font-smoothing: antialiased; -} \ No newline at end of file diff --git a/node_modules/materialize-css/sass/components/_mixins.scss b/node_modules/materialize-css/sass/components/_mixins.scss deleted file mode 100644 index 054f8f6..0000000 --- a/node_modules/materialize-css/sass/components/_mixins.scss +++ /dev/null @@ -1,5 +0,0 @@ -// @mixin box-shadow-2($args1, $args2) { -// -webkit-box-shadow: $args1, $args2; -// -moz-box-shadow: $args1, $args2; -// box-shadow: $args1, $args2; -// } \ No newline at end of file diff --git a/node_modules/materialize-css/sass/components/_modal.scss b/node_modules/materialize-css/sass/components/_modal.scss deleted file mode 100644 index 0c540fe..0000000 --- a/node_modules/materialize-css/sass/components/_modal.scss +++ /dev/null @@ -1,90 +0,0 @@ -.modal { - @extend .z-depth-4; - - display: none; - position: fixed; - left: 0; - right: 0; - background-color: #fafafa; - padding: 0; - max-height: 70%; - width: 55%; - margin: auto; - overflow-y: auto; - - border-radius: 2px; - will-change: top, opacity; - - @media #{$medium-and-down} { - width: 80%; - } - - h1,h2,h3,h4 { - margin-top: 0; - } - - .modal-content { - padding: 24px; - } - .modal-close { - cursor: pointer; - } - - .modal-footer { - border-radius: 0 0 2px 2px; - background-color: #fafafa; - padding: 4px 6px; - height: 56px; - width: 100%; - - .btn, .btn-flat { - float: right; - margin: 6px 0; - } - } -} -.modal-overlay { - position: fixed; - z-index: 999; - top: -100px; - left: 0; - bottom: 0; - right: 0; - height: 125%; - width: 100%; - background: #000; - display: none; - - will-change: opacity; -} - -// Modal with fixed action footer -.modal.modal-fixed-footer { - padding: 0; - height: 70%; - - .modal-content { - position: absolute; - height: calc(100% - 56px); - max-height: 100%; - width: 100%; - overflow-y: auto; - } - - .modal-footer { - border-top: 1px solid rgba(0,0,0,.1); - position: absolute; - bottom: 0; - } -} - -// Modal Bottom Sheet Style -.modal.bottom-sheet { - top: auto; - bottom: -100%; - margin: 0; - width: 100%; - max-height: 45%; - border-radius: 0; - will-change: bottom, opacity; -} diff --git a/node_modules/materialize-css/sass/components/_navbar.scss b/node_modules/materialize-css/sass/components/_navbar.scss deleted file mode 100644 index ba6a256..0000000 --- a/node_modules/materialize-css/sass/components/_navbar.scss +++ /dev/null @@ -1,209 +0,0 @@ -nav { - &.nav-extended { - height: auto; - - .nav-wrapper { - min-height: $navbar-height-mobile; - height: auto; - } - - .nav-content { - position: relative; - line-height: normal; - } - } - - color: $navbar-font-color; - @extend .z-depth-1; - background-color: $primary-color; - width: 100%; - height: $navbar-height-mobile; - line-height: $navbar-line-height-mobile; - - a { color: $navbar-font-color; } - - i, - [class^="mdi-"], [class*="mdi-"], - i.material-icons { - display: block; - font-size: 24px; - height: $navbar-height-mobile; - line-height: $navbar-line-height-mobile; - } - - .nav-wrapper { - position: relative; - height: 100%; - } - - @media #{$large-and-up} { - a.button-collapse { display: none; } - } - - - // Collapse button - .button-collapse { - float: left; - position: relative; - z-index: 1; - height: $navbar-height-mobile; - margin: 0 18px; - - i { - height: $navbar-height-mobile; - line-height: $navbar-line-height-mobile; - } - } - - - // Logo - .brand-logo { - position: absolute; - color: $navbar-font-color; - display: inline-block; - font-size: $navbar-brand-font-size; - padding: 0; - white-space: nowrap; - - &.center { - left: 50%; - transform: translateX(-50%); - } - - @media #{$medium-and-down} { - left: 50%; - transform: translateX(-50%); - - &.left, &.right { - padding: 0; - transform: none; - } - - &.left { left: 0.5rem; } - &.right { - right: 0.5rem; - left: auto; - } - } - - &.right { - right: 0.5rem; - padding: 0; - } - - i, - [class^="mdi-"], [class*="mdi-"], - i.material-icons { - float: left; - margin-right: 15px; - } - } - - - // Title - .nav-title { - display: inline-block; - font-size: 32px; - padding: 28px 0; - } - - - // Navbar Links - ul { - margin: 0; - - li { - transition: background-color .3s; - float: left; - padding: 0; - - &.active { - background-color: rgba(0,0,0,.1); - } - } - a { - transition: background-color .3s; - font-size: $navbar-font-size; - color: $navbar-font-color; - display: block; - padding: 0 15px; - cursor: pointer; - - &.btn, &.btn-large, &.btn-flat, &.btn-floating { - margin-top: -2px; - margin-left: 15px; - margin-right: 15px; - - & > .material-icons { - height: inherit; - line-height: inherit; - } - } - - &:hover { - background-color: rgba(0,0,0,.1); - } - } - - &.left { - float: left; - } - } - - // Navbar Search Form - form { - height: 100%; - } - - .input-field { - margin: 0; - height: 100%; - - input { - height: 100%; - font-size: 1.2rem; - border: none; - padding-left: 2rem; - - &:focus, &[type=text]:valid, &[type=password]:valid, - &[type=email]:valid, &[type=url]:valid, &[type=date]:valid { - border: none; - box-shadow: none; - } - } - - label { - top: 0; - left: 0; - - i { - color: rgba(255,255,255,.7); - transition: color .3s; - } - &.active i { color: $navbar-font-color; } - } - } -} - -// Fixed Navbar -.navbar-fixed { - position: relative; - height: $navbar-height-mobile; - z-index: 997; - - nav { - position: fixed; - } -} -@media #{$medium-and-up} { - nav.nav-extended .nav-wrapper { - min-height: $navbar-height; - } - nav, nav .nav-wrapper i, nav a.button-collapse, nav a.button-collapse i { - height: $navbar-height; - line-height: $navbar-line-height; - } - .navbar-fixed { - height: $navbar-height; - } -} diff --git a/node_modules/materialize-css/sass/components/_normalize.scss b/node_modules/materialize-css/sass/components/_normalize.scss deleted file mode 100644 index 5e5e3c8..0000000 --- a/node_modules/materialize-css/sass/components/_normalize.scss +++ /dev/null @@ -1,424 +0,0 @@ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ - -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS and IE text size adjust after device orientation change, - * without disabling user zoom. - */ - -html { - font-family: sans-serif; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/** - * Remove default margin. - */ - -body { - margin: 0; -} - -/* HTML5 display definitions - ========================================================================== */ - -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ - -audio, -canvas, -progress, -video { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ -} - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. - */ - -[hidden], -template { - display: none; -} - -/* Links - ========================================================================== */ - -/** - * Remove the gray background color from active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * Improve readability of focused elements when they are also in an - * active/hover state. - */ - -a:active, -a:hover { - outline: 0; -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ - -abbr[title] { - border-bottom: 1px dotted; -} - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ - -b, -strong { - font-weight: bold; -} - -/** - * Address styling not present in Safari and Chrome. - */ - -dfn { - font-style: italic; -} - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/** - * Address styling not present in IE 8/9. - */ - -mark { - background: #ff0; - color: #000; -} - -/** - * Address inconsistent and variable font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove border when inside `a` element in IE 8/9/10. - */ - -img { - border: 0; -} - -/** - * Correct overflow not hidden in IE 9/10/11. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* Grouping content - ========================================================================== */ - -/** - * Address margin not present in IE 8/9 and Safari. - */ - -figure { - margin: 1em 40px; -} - -/** - * Address differences between Firefox and other browsers. - */ - -hr { - box-sizing: content-box; - height: 0; -} - -/** - * Contain overflow in all browsers. - */ - -pre { - overflow: auto; -} - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -/* Forms - ========================================================================== */ - -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ - -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ - -button, -input, -optgroup, -select, -textarea { - color: inherit; /* 1 */ - font: inherit; /* 2 */ - margin: 0; /* 3 */ -} - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ - -button { - overflow: visible; -} - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ - -button, -select { - text-transform: none; -} - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ - -button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ -} - -/** - * Re-set default cursor for disabled elements. - */ - -button[disabled], -html input[disabled] { - cursor: default; -} - -/** - * Remove inner padding and border in Firefox 4+. - */ - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ - -input { - line-height: normal; -} - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome. - */ - -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - box-sizing: content-box; /* 2 */ -} - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * Define consistent border, margin, and padding. - */ - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ - -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ - -textarea { - overflow: auto; -} - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ - -optgroup { - font-weight: bold; -} - -/* Tables - ========================================================================== */ - -/** - * Remove most spacing between table cells. - */ - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} diff --git a/node_modules/materialize-css/sass/components/_prefixer.scss b/node_modules/materialize-css/sass/components/_prefixer.scss deleted file mode 100644 index 13376de..0000000 --- a/node_modules/materialize-css/sass/components/_prefixer.scss +++ /dev/null @@ -1,384 +0,0 @@ -//--------------------------------------------------- -// Sass Prefixer -// ------------------------------------------------- -// TABLE OF CONTENTS -// (*) denotes a syntax-sugar helper -// ------------------------------------------------- -// -// animation($args) -// animation-delay($delay) -// animation-direction($direction) -// animation-duration($duration) -// animation-fill-mode($mode) -// animation-iteration-count($count) -// animation-name($name) -// animation-play-state($state) -// animation-timing-function($function) -// background-size($args) -// inner-shadow($args) * -// box-sizing($args) -// border-box() * -// content-box() * -// columns($args) -// column-count($count) -// column-gap($gap) -// column-rule($args) -// column-width($width) -// flexbox() -// flex($args) -// order($args) -// align($args) -// justify-content($args) -// gradient($default,$start,$stop) * -// linear-gradient-top($default,$color1,$stop1,$color2,$stop2,[$color3,$stop3,$color4,$stop4])* -// linear-gradient-left($default,$color1,$stop1,$color2,$stop2,[$color3,$stop3,$color4,$stop4])* -// perspective($pixels) -// transform($args) -// transform-origin($args) -// transform-style($style) -// rotate($deg) -// scale($factor) -// translate($x,$y) -// translate3d($x,$y,$z) -// translateHardware($x,$y) * -// text-shadow($args) -// transition($args) -// transition-delay($delay) -// transition-duration($duration) -// transition-property($property) -// transition-timing-function($function) - - -// Animation - -// @mixin animation($args) { -// -webkit-animation: $args; -// -moz-animation: $args; -// -ms-animation: $args; -// -o-animation: $args; -// animation: $args; -// } -// @mixin animation-delay($delay) { -// -webkit-animation-delay: $delay; -// -moz-animation-delay: $delay; -// -ms-animation-delay: $delay; -// -o-animation-delay: $delay; -// animation-delay: $delay; -// } -// @mixin animation-direction($direction) { -// -webkit-animation-direction: $direction; -// -moz-animation-direction: $direction; -// -ms-animation-direction: $direction; -// -o-animation-direction: $direction; -// } -// @mixin animation-duration($duration) { -// -webkit-animation-duration: $duration; -// -moz-animation-duration: $duration; -// -ms-animation-duration: $duration; -// -o-animation-duration: $duration; -// } -// @mixin animation-fill-mode($mode) { -// -webkit-animation-fill-mode: $mode; -// -moz-animation-fill-mode: $mode; -// -ms-animation-fill-mode: $mode; -// -o-animation-fill-mode: $mode; -// animation-fill-mode: $mode; -// } -// @mixin animation-iteration-count($count) { -// -webkit-animation-iteration-count: $count; -// -moz-animation-iteration-count: $count; -// -ms-animation-iteration-count: $count; -// -o-animation-iteration-count: $count; -// animation-iteration-count: $count; -// } -// @mixin animation-name($name) { -// -webkit-animation-name: $name; -// -moz-animation-name: $name; -// -ms-animation-name: $name; -// -o-animation-name: $name; -// animation-name: $name; -// } -// @mixin animation-play-state($state) { -// -webkit-animation-play-state: $state; -// -moz-animation-play-state: $state; -// -ms-animation-play-state: $state; -// -o-animation-play-state: $state; -// animation-play-state: $state; -// } -// @mixin animation-timing-function($function) { -// -webkit-animation-timing-function: $function; -// -moz-animation-timing-function: $function; -// -ms-animation-timing-function: $function; -// -o-animation-timing-function: $function; -// animation-timing-function: $function; -// } - -// Keyframes -// @mixin keyframes($animation-name) { -// @-webkit-keyframes #{$animation-name} { -// @content; -// } -// @-moz-keyframes #{$animation-name} { -// @content; -// } -// @keyframes #{$animation-name} { -// @content; -// } -// } - -// Backface-visibility - -// @mixin backface-visibility($args) { -// -webkit-backface-visibility: $args; -// -moz-backface-visibility: $args; -// -ms-backface-visibility: $args; -// backface-visibility: $args; -// } - - -// Background Size - -// @mixin background-size($args) { -// -webkit-background-size: $args; -// background-size: $args; -// } - -// Box Sizing - -// @mixin box-sizing($args) { -// -webkit-box-sizing: $args; -// -moz-box-sizing: $args; -// box-sizing: $args; -// } -// @mixin border-box(){ -// @include box-sizing(border-box); -// } -// @mixin content-box(){ -// @include box-sizing(content-box); -// } - - -// Columns - -// @mixin columns($args) { -// -webkit-columns: $args; -// -moz-columns: $args; -// columns: $args; -// } -// @mixin column-count($count) { -// -webkit-column-count: $count; -// -moz-column-count: $count; -// column-count: $count; -// } -// @mixin column-gap($gap) { -// -webkit-column-gap: $gap; -// -moz-column-gap: $gap; -// column-gap: $gap; -// } -// @mixin column-width($width) { -// -webkit-column-width: $width; -// -moz-column-width: $width; -// column-width: $width; -// } -// @mixin column-rule($args) { -// -webkit-column-rule: $args; -// -moz-column-rule: $args; -// column-rule: $args; -// } - -// Filter -// @mixin filter($args) { -// -webkit-filter: $args; -// -moz-filter: $args; -// -o-filter: $args; -// -ms-filter: $args; -// } - -// Flexbox -// @mixin flexbox() { -// display: -webkit-box; -// display: -moz-box; -// display: -ms-flexbox; -// display: -webkit-flex; -// display: flex; -// } - // @mixin flex($values) { - // -webkit-box-flex: $values; - // -moz-box-flex: $values; - // -webkit-flex: $values; - // -ms-flex: $values; - // flex: $values; - // } - // @mixin order($val) { - // -webkit-box-ordinal-group: $val; - // -moz-box-ordinal-group: $val; - // -ms-flex-order: $val; - // -webkit-order: $val; - // order: $val; - // } - // @mixin align($align) { - // -webkit-flex-align: $align; - // -ms-flex-align: $align; - // -webkit-align-items: $align; - // align-items: $align; - // } - // @mixin justify-content($val) { - // -webkit-justify-content: $val; - // justify-content: $val; - // } -// Gradients - -// @mixin gradient($default: #F5F5F5, $start: #EEE, $stop: #FFF) { -// @include linear-gradient-top($default,$start,0%,$stop,100%); -// } -// @mixin linear-gradient-top($default,$color1,$stop1,$color2,$stop2) { -// background-color: $default; -// background-image: -webkit-gradient(linear, left top, left bottom, color-stop($stop1, $color1), color-stop($stop2 $color2)); -// background-image: -webkit-linear-gradient(top, $color1 $stop1, $color2 $stop2); -// background-image: -moz-linear-gradient(top, $color1 $stop1, $color2 $stop2); -// background-image: -ms-linear-gradient(top, $color1 $stop1, $color2 $stop2); -// background-image: -o-linear-gradient(top, $color1 $stop1, $color2 $stop2); -// background-image: linear-gradient(top, $color1 $stop1, $color2 $stop2); -// } -// @mixin linear-gradient-top2($default,$color1,$stop1,$color2,$stop2,$color3,$stop3) { -// background-color: $default; -// background-image: -webkit-gradient(linear, left top, left bottom, color-stop($stop1, $color1), color-stop($stop2 $color2), color-stop($stop3 $color3)); -// background-image: -webkit-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// background-image: -moz-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// background-image: -ms-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// background-image: -o-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// background-image: linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// } -// @mixin linear-gradient-top3($default,$color1,$stop1,$color2,$stop2,$color3,$stop3,$color4,$stop4) { -// background-color: $default; -// background-image: -webkit-gradient(linear, left top, left bottom, color-stop($stop1, $color1), color-stop($stop2 $color2), color-stop($stop3 $color3), color-stop($stop4 $color4)); -// background-image: -webkit-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// background-image: -moz-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// background-image: -ms-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// background-image: -o-linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// background-image: linear-gradient(top, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// } -// @mixin linear-gradient-left($default,$color1,$stop1,$color2,$stop2) { -// background-color: $default; -// background-image: -webkit-gradient(linear, left top, left top, color-stop($stop1, $color1), color-stop($stop2 $color2)); -// background-image: -webkit-linear-gradient(left, $color1 $stop1, $color2 $stop2); -// background-image: -moz-linear-gradient(left, $color1 $stop1, $color2 $stop2); -// background-image: -ms-linear-gradient(left, $color1 $stop1, $color2 $stop2); -// background-image: -o-linear-gradient(left, $color1 $stop1, $color2 $stop2); -// background-image: linear-gradient(left, $color1 $stop1, $color2 $stop2); -// } -// @mixin linear-gradient-left2($default,$color1,$stop1,$color2,$stop2,$color3,$stop3) { -// background-color: $default; -// background-image: -webkit-gradient(linear, left top, left top, color-stop($stop1, $color1), color-stop($stop2 $color2), color-stop($stop3 $color3)); -// background-image: -webkit-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// background-image: -moz-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// background-image: -ms-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// background-image: -o-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// background-image: linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3); -// } -// @mixin linear-gradient-left3($default,$color1,$stop1,$color2,$stop2,$color3,$stop3,$color4,$stop4) { -// background-color: $default; -// background-image: -webkit-gradient(linear, left top, left top, color-stop($stop1, $color1), color-stop($stop2 $color2), color-stop($stop3 $color3), color-stop($stop4 $color4)); -// background-image: -webkit-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// background-image: -moz-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// background-image: -ms-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// background-image: -o-linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// background-image: linear-gradient(left, $color1 $stop1, $color2 $stop2, $color3 $stop3, $color4 $stop4); -// } - -// Perspective -@mixin perspective($pixels) { - perspective: $pixels; - -webkit-perspective: $pixels; -} - - -// Text Shadow - -// @mixin text-shadow($args) { -// text-shadow: $args; -// } - - -// Transforms - -// @mixin transform($args) { -// -webkit-transform: $args; -// -moz-transform: $args; -// -ms-transform: $args; -// -o-transform: $args; -// transform: $args; -// } -// @mixin transform-origin($args) { -// -webkit-transform-origin: $args; -// -moz-transform-origin: $args; -// -ms-transform-origin: $args; -// -o-transform-origin: $args; -// transform-origin: $args; -// } -// @mixin transform-style($style) { -// -webkit-transform-style: $style; -// -moz-transform-style: $style; -// -ms-transform-style: $style; -// -o-transform-style: $style; -// transform-style: $style; -// } -// @mixin rotate($deg:45deg){ -// @include transform(rotate($deg)); -// } -// @mixin scale($factor:.5){ -// @include transform(scale($factor)); -// } -// @mixin translate($x,$y){ -// @include transform(translate($x,$y)); -// } -// @mixin translate3d($x,$y,$z) { -// @include transform(translate3d($x,$y,$z)); -// } -// @mixin translateHardware($x,$y) { -// @include translate($x,$y); -// -webkit-transform: translate3d($x,$y,0); -// -moz-transform: translate3d($x,$y,0); -// -o-transform: translate3d($x,$y,0); -// -ms-transform: translate3d($x,$y,0); -// transform: translate3d($x,$y,0); -// } - - -// Transitions - -// @mixin transition($args:200ms) { -// -webkit-transition: $args; -// -moz-transition: $args; -// -o-transition: $args; -// -ms-transition: $args; -// transition: $args; -// } -// @mixin transition-delay($delay:0) { -// -webkit-transition-delay: $delay; -// -moz-transition-delay: $delay; -// -o-transition-delay: $delay; -// -ms-transition-delay: $delay; -// transition-delay: $delay; -// } -// @mixin transition-duration($duration:200ms) { -// -webkit-transition-duration: $duration; -// -moz-transition-duration: $duration; -// -o-transition-duration: $duration; -// -ms-transition-duration: $duration; -// transition-duration: $duration; -// } -// @mixin transition-property($property:all) { -// -webkit-transition-property: $property; -// -moz-transition-property: $property; -// -o-transition-property: $property; -// -ms-transition-property: $property; -// transition-property: $property; -// } -// @mixin transition-timing-function($function:ease) { -// -webkit-transition-timing-function: $function; -// -moz-transition-timing-function: $function; -// -o-transition-timing-function: $function; -// -ms-transition-timing-function: $function; -// transition-timing-function: $function; -// } diff --git a/node_modules/materialize-css/sass/components/_preloader.scss b/node_modules/materialize-css/sass/components/_preloader.scss deleted file mode 100644 index 31e1600..0000000 --- a/node_modules/materialize-css/sass/components/_preloader.scss +++ /dev/null @@ -1,334 +0,0 @@ -/* - @license - Copyright (c) 2014 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 - */ - -/**************************/ -/* STYLES FOR THE SPINNER */ -/**************************/ - -/* - * Constants: - * STROKEWIDTH = 3px - * ARCSIZE = 270 degrees (amount of circle the arc takes up) - * ARCTIME = 1333ms (time it takes to expand and contract arc) - * ARCSTARTROT = 216 degrees (how much the start location of the arc - * should rotate each time, 216 gives us a - * 5 pointed star shape (it's 360/5 * 3). - * For a 7 pointed star, we might do - * 360/7 * 3 = 154.286) - * CONTAINERWIDTH = 28px - * SHRINK_TIME = 400ms - */ - - -.preloader-wrapper { - display: inline-block; - position: relative; - width: 48px; - height: 48px; - - &.small { - width: 36px; - height: 36px; - } - - &.big { - width: 64px; - height: 64px; - } - - &.active { - /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */ - -webkit-animation: container-rotate 1568ms linear infinite; - animation: container-rotate 1568ms linear infinite; - } -} - -@-webkit-keyframes container-rotate { - to { -webkit-transform: rotate(360deg) } -} - -@keyframes container-rotate { - to { transform: rotate(360deg) } -} - -.spinner-layer { - position: absolute; - width: 100%; - height: 100%; - opacity: 0; - border-color: $spinner-default-color; -} - -.spinner-blue, -.spinner-blue-only { - border-color: #4285f4; -} - -.spinner-red, -.spinner-red-only { - border-color: #db4437; -} - -.spinner-yellow, -.spinner-yellow-only { - border-color: #f4b400; -} - -.spinner-green, -.spinner-green-only { - border-color: #0f9d58; -} - -/** - * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee): - * - * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't - * guarantee that the animation will start _exactly_ after that value. So we avoid using - * animation-delay and instead set custom keyframes for each color (as redundant as it - * seems). - * - * We write out each animation in full (instead of separating animation-name, - * animation-duration, etc.) because under the polyfill, Safari does not recognize those - * specific properties properly, treats them as -webkit-animation, and overrides the - * other animation rules. See https://github.com/Polymer/platform/issues/53. - */ -.active .spinner-layer.spinner-blue { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; -} - -.active .spinner-layer.spinner-red { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; -} - -.active .spinner-layer.spinner-yellow { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; -} - -.active .spinner-layer.spinner-green { - /* durations: 4 * ARCTIME */ - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; -} - -.active .spinner-layer, -.active .spinner-layer.spinner-blue-only, -.active .spinner-layer.spinner-red-only, -.active .spinner-layer.spinner-yellow-only, -.active .spinner-layer.spinner-green-only { - /* durations: 4 * ARCTIME */ - opacity: 1; - -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; - animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; -} - -@-webkit-keyframes fill-unfill-rotate { - 12.5% { -webkit-transform: rotate(135deg); } /* 0.5 * ARCSIZE */ - 25% { -webkit-transform: rotate(270deg); } /* 1 * ARCSIZE */ - 37.5% { -webkit-transform: rotate(405deg); } /* 1.5 * ARCSIZE */ - 50% { -webkit-transform: rotate(540deg); } /* 2 * ARCSIZE */ - 62.5% { -webkit-transform: rotate(675deg); } /* 2.5 * ARCSIZE */ - 75% { -webkit-transform: rotate(810deg); } /* 3 * ARCSIZE */ - 87.5% { -webkit-transform: rotate(945deg); } /* 3.5 * ARCSIZE */ - to { -webkit-transform: rotate(1080deg); } /* 4 * ARCSIZE */ -} - -@keyframes fill-unfill-rotate { - 12.5% { transform: rotate(135deg); } /* 0.5 * ARCSIZE */ - 25% { transform: rotate(270deg); } /* 1 * ARCSIZE */ - 37.5% { transform: rotate(405deg); } /* 1.5 * ARCSIZE */ - 50% { transform: rotate(540deg); } /* 2 * ARCSIZE */ - 62.5% { transform: rotate(675deg); } /* 2.5 * ARCSIZE */ - 75% { transform: rotate(810deg); } /* 3 * ARCSIZE */ - 87.5% { transform: rotate(945deg); } /* 3.5 * ARCSIZE */ - to { transform: rotate(1080deg); } /* 4 * ARCSIZE */ -} - -@-webkit-keyframes blue-fade-in-out { - from { opacity: 1; } - 25% { opacity: 1; } - 26% { opacity: 0; } - 89% { opacity: 0; } - 90% { opacity: 1; } - 100% { opacity: 1; } -} - -@keyframes blue-fade-in-out { - from { opacity: 1; } - 25% { opacity: 1; } - 26% { opacity: 0; } - 89% { opacity: 0; } - 90% { opacity: 1; } - 100% { opacity: 1; } -} - -@-webkit-keyframes red-fade-in-out { - from { opacity: 0; } - 15% { opacity: 0; } - 25% { opacity: 1; } - 50% { opacity: 1; } - 51% { opacity: 0; } -} - -@keyframes red-fade-in-out { - from { opacity: 0; } - 15% { opacity: 0; } - 25% { opacity: 1; } - 50% { opacity: 1; } - 51% { opacity: 0; } -} - -@-webkit-keyframes yellow-fade-in-out { - from { opacity: 0; } - 40% { opacity: 0; } - 50% { opacity: 1; } - 75% { opacity: 1; } - 76% { opacity: 0; } -} - -@keyframes yellow-fade-in-out { - from { opacity: 0; } - 40% { opacity: 0; } - 50% { opacity: 1; } - 75% { opacity: 1; } - 76% { opacity: 0; } -} - -@-webkit-keyframes green-fade-in-out { - from { opacity: 0; } - 65% { opacity: 0; } - 75% { opacity: 1; } - 90% { opacity: 1; } - 100% { opacity: 0; } -} - -@keyframes green-fade-in-out { - from { opacity: 0; } - 65% { opacity: 0; } - 75% { opacity: 1; } - 90% { opacity: 1; } - 100% { opacity: 0; } -} - -/** - * Patch the gap that appear between the two adjacent div.circle-clipper while the - * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11). - */ -.gap-patch { - position: absolute; - top: 0; - left: 45%; - width: 10%; - height: 100%; - overflow: hidden; - border-color: inherit; -} - -.gap-patch .circle { - width: 1000%; - left: -450%; -} - -.circle-clipper { - display: inline-block; - position: relative; - width: 50%; - height: 100%; - overflow: hidden; - border-color: inherit; - - .circle { - width: 200%; - height: 100%; - border-width: 3px; /* STROKEWIDTH */ - border-style: solid; - border-color: inherit; - border-bottom-color: transparent !important; - border-radius: 50%; - -webkit-animation: none; - animation: none; - position: absolute; - top: 0; - right: 0; - bottom: 0; - } - - &.left .circle { - left: 0; - border-right-color: transparent !important; - -webkit-transform: rotate(129deg); - transform: rotate(129deg); - } - &.right .circle { - left: -100%; - border-left-color: transparent !important; - -webkit-transform: rotate(-129deg); - transform: rotate(-129deg); - } -} - - - -.active .circle-clipper.left .circle { - /* duration: ARCTIME */ - -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; - animation: left-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; -} - -.active .circle-clipper.right .circle { - /* duration: ARCTIME */ - -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; - animation: right-spin 1333ms cubic-bezier(0.4, 0.0, 0.2, 1) infinite both; -} - -@-webkit-keyframes left-spin { - from { -webkit-transform: rotate(130deg); } - 50% { -webkit-transform: rotate(-5deg); } - to { -webkit-transform: rotate(130deg); } -} - -@keyframes left-spin { - from { transform: rotate(130deg); } - 50% { transform: rotate(-5deg); } - to { transform: rotate(130deg); } -} - -@-webkit-keyframes right-spin { - from { -webkit-transform: rotate(-130deg); } - 50% { -webkit-transform: rotate(5deg); } - to { -webkit-transform: rotate(-130deg); } -} - -@keyframes right-spin { - from { transform: rotate(-130deg); } - 50% { transform: rotate(5deg); } - to { transform: rotate(-130deg); } -} - -#spinnerContainer.cooldown { - /* duration: SHRINK_TIME */ - -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0.0, 0.2, 1); - animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0.0, 0.2, 1); -} - -@-webkit-keyframes fade-out { - from { opacity: 1; } - to { opacity: 0; } -} - -@keyframes fade-out { - from { opacity: 1; } - to { opacity: 0; } -} \ No newline at end of file diff --git a/node_modules/materialize-css/sass/components/_roboto.scss b/node_modules/materialize-css/sass/components/_roboto.scss deleted file mode 100644 index 741ab5b..0000000 --- a/node_modules/materialize-css/sass/components/_roboto.scss +++ /dev/null @@ -1,49 +0,0 @@ -@font-face { - font-family: "Roboto"; - src: local(Roboto Thin), url('#{$roboto-font-path}Roboto-Thin.eot'); - src: url("#{$roboto-font-path}Roboto-Thin.eot?#iefix") format('embedded-opentype'), - url("#{$roboto-font-path}Roboto-Thin.woff2") format("woff2"), - url("#{$roboto-font-path}Roboto-Thin.woff") format("woff"), - url("#{$roboto-font-path}Roboto-Thin.ttf") format("truetype"); - - font-weight: 200; -} -@font-face { - font-family: "Roboto"; - src: local(Roboto Light), url('#{$roboto-font-path}Roboto-Light.eot'); - src: url("#{$roboto-font-path}Roboto-Light.eot?#iefix") format('embedded-opentype'), - url("#{$roboto-font-path}Roboto-Light.woff2") format("woff2"), - url("#{$roboto-font-path}Roboto-Light.woff") format("woff"), - url("#{$roboto-font-path}Roboto-Light.ttf") format("truetype"); - font-weight: 300; -} - -@font-face { - font-family: "Roboto"; - src: local(Roboto Regular), url('#{$roboto-font-path}Roboto-Regular.eot'); - src: url("#{$roboto-font-path}Roboto-Regular.eot?#iefix") format('embedded-opentype'), - url("#{$roboto-font-path}Roboto-Regular.woff2") format("woff2"), - url("#{$roboto-font-path}Roboto-Regular.woff") format("woff"), - url("#{$roboto-font-path}Roboto-Regular.ttf") format("truetype"); - font-weight: 400; -} - -@font-face { - font-family: "Roboto"; - src: url('#{$roboto-font-path}Roboto-Medium.eot'); - src: url("#{$roboto-font-path}Roboto-Medium.eot?#iefix") format('embedded-opentype'), - url("#{$roboto-font-path}Roboto-Medium.woff2") format("woff2"), - url("#{$roboto-font-path}Roboto-Medium.woff") format("woff"), - url("#{$roboto-font-path}Roboto-Medium.ttf") format("truetype"); - font-weight: 500; -} - -@font-face { - font-family: "Roboto"; - src: url('#{$roboto-font-path}Roboto-Bold.eot'); - src: url("#{$roboto-font-path}Roboto-Bold.eot?#iefix") format('embedded-opentype'), - url("#{$roboto-font-path}Roboto-Bold.woff2") format("woff2"), - url("#{$roboto-font-path}Roboto-Bold.woff") format("woff"), - url("#{$roboto-font-path}Roboto-Bold.ttf") format("truetype"); - font-weight: 700; -} diff --git a/node_modules/materialize-css/sass/components/_sideNav.scss b/node_modules/materialize-css/sass/components/_sideNav.scss deleted file mode 100644 index 9a38ed4..0000000 --- a/node_modules/materialize-css/sass/components/_sideNav.scss +++ /dev/null @@ -1,208 +0,0 @@ -.side-nav { - position: fixed; - width: 300px; - left: 0; - top: 0; - margin: 0; - transform: translateX(-100%); - height: 100%; - height: calc(100% + 60px); - height: -moz-calc(100%); //Temporary Firefox Fix - padding-bottom: 60px; - background-color: $sidenav-bg-color; - z-index: 999; - overflow-y: auto; - will-change: transform; - backface-visibility: hidden; - transform: translateX(-105%); - - @extend .z-depth-1; - - // Right Align - &.right-aligned { - right: 0; - transform: translateX(105%); - left: auto; - transform: translateX(100%); - } - - .collapsible { - margin: 0; - } - - - li { - float: none; - line-height: $sidenav-line-height; - - &.active { background-color: rgba(0,0,0,.05); } - } - - a { - color: $sidenav-font-color; - display: block; - font-size: $sidenav-font-size; - font-weight: 500; - height: $sidenav-item-height; - line-height: $sidenav-line-height; - padding: 0 ($sidenav-padding * 2); - - &:hover { background-color: rgba(0,0,0,.05);} - - &.btn, &.btn-large, &.btn-flat, &.btn-floating { - margin: 10px 15px; - } - - &.btn, - &.btn-large, - &.btn-floating { color: $button-raised-color; } - &.btn-flat { color: $button-flat-color; } - - &.btn:hover, - &.btn-large:hover { background-color: lighten($button-raised-background, 5%); } - &.btn-floating:hover { background-color: $button-raised-background; } - } - - li > a > i, - li > a > [class^="mdi-"], li > a > [class*="mdi-"], - li > a > i.material-icons { - float: left; - height: $sidenav-item-height; - line-height: $sidenav-line-height; - margin: 0 ($sidenav-padding * 2) 0 0; - width: $sidenav-item-height / 2; - color: rgba(0,0,0,.54); - } - - .divider { - margin: ($sidenav-padding / 2) 0 0 0; - } - - .subheader { - &:hover { - background-color: transparent; - } - - cursor: initial; - pointer-events: none; - color: rgba(0,0,0,.54); - font-size: $sidenav-font-size; - font-weight: 500; - line-height: $sidenav-line-height; - } - - .userView { - position: relative; - padding: ($sidenav-padding * 2) ($sidenav-padding * 2) 0; - margin-bottom: $sidenav-padding / 2; - - & > a { - &:hover { background-color: transparent; } - height: auto; - padding: 0; - } - - .background { - overflow: hidden; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: -1; - } - - .circle, .name, .email { - display: block; - } - - .circle { - height: 64px; - width: 64px; - } - - .name, - .email { - font-size: $sidenav-font-size; - line-height: $sidenav-line-height / 2; - } - - .name { - margin-top: 16px; - font-weight: 500; - } - - .email { - padding-bottom: 16px; - font-weight: 400; - } - } -} - - -// Touch interaction -.drag-target { - height: 100%; - width: 10px; - position: fixed; - top: 0; - z-index: 998; -} - - -// Fixed side-nav shown -.side-nav.fixed { - left: 0; - transform: translateX(0); - position: fixed; - - // Right Align - &.right-aligned { - right: 0; - left: auto; - } -} - -// Fixed sideNav hide on smaller -@media #{$medium-and-down} { - .side-nav { - &.fixed { - transform: translateX(-105%); - - &.right-aligned { - transform: translateX(105%); - } - } - - a { - padding: 0 $sidenav-padding; - } - - .userView { - padding: $sidenav-padding $sidenav-padding 0; - } - } -} - - -.side-nav .collapsible-body > ul:not(.collapsible) > li.active, -.side-nav.fixed .collapsible-body > ul:not(.collapsible) > li.active { - background-color: $primary-color; - a { - color: $sidenav-bg-color; - } -} - - -#sidenav-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - - height: 120vh; - background-color: rgba(0,0,0,.5); - z-index: 997; - - will-change: opacity; -} diff --git a/node_modules/materialize-css/sass/components/_slider.scss b/node_modules/materialize-css/sass/components/_slider.scss deleted file mode 100644 index 2265cdb..0000000 --- a/node_modules/materialize-css/sass/components/_slider.scss +++ /dev/null @@ -1,92 +0,0 @@ -.slider { - position: relative; - height: 400px; - width: 100%; - - // Fullscreen slider - &.fullscreen { - height: 100%; - width: 100%; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - - ul.slides { - height: 100%; - } - - ul.indicators { - z-index: 2; - bottom: 30px; - } - } - - .slides { - background-color: $slider-bg-color; - margin: 0; - height: 400px; - - li { - opacity: 0; - position: absolute; - top: 0; - left: 0; - z-index: 1; - width: 100%; - height: inherit; - overflow: hidden; - - img { - height: 100%; - width: 100%; - background-size: cover; - background-position: center; - } - - .caption { - color: #fff; - position: absolute; - top: 15%; - left: 15%; - width: 70%; - opacity: 0; - - p { color: $slider-bg-color-light; } - } - - &.active { - z-index: 2; - } - } - } - - - .indicators { - position: absolute; - text-align: center; - left: 0; - right: 0; - bottom: 0; - margin: 0; - - .indicator-item { - display: inline-block; - position: relative; - cursor: pointer; - height: 16px; - width: 16px; - margin: 0 12px; - background-color: $slider-bg-color-light; - - transition: background-color .3s; - border-radius: 50%; - - &.active { - background-color: $slider-indicator-color; - } - } - } - -} \ No newline at end of file diff --git a/node_modules/materialize-css/sass/components/_table_of_contents.scss b/node_modules/materialize-css/sass/components/_table_of_contents.scss deleted file mode 100644 index 4c67ee6..0000000 --- a/node_modules/materialize-css/sass/components/_table_of_contents.scss +++ /dev/null @@ -1,33 +0,0 @@ -/*************** - Nav List -***************/ -.table-of-contents { - &.fixed { - position: fixed; - } - - li { - padding: 2px 0; - } - a { - display: inline-block; - font-weight: 300; - color: #757575; - padding-left: 20px; - height: 1.5rem; - line-height: 1.5rem; - letter-spacing: .4; - display: inline-block; - - &:hover { - color: lighten(#757575, 20%); - padding-left: 19px; - border-left: 1px solid $primary-color; - } - &.active { - font-weight: 500; - padding-left: 18px; - border-left: 2px solid $primary-color; - } - } -} diff --git a/node_modules/materialize-css/sass/components/_tabs.scss b/node_modules/materialize-css/sass/components/_tabs.scss deleted file mode 100644 index 6d79538..0000000 --- a/node_modules/materialize-css/sass/components/_tabs.scss +++ /dev/null @@ -1,99 +0,0 @@ -.tabs { - &.tabs-transparent { - background-color: transparent; - - .tab a, - .tab.disabled a, - .tab.disabled a:hover { - color: rgba(255,255,255,0.7); - } - - .tab a:hover, - .tab a.active { - color: #fff; - } - - .indicator { - background-color: #fff; - } - } - - &.tabs-fixed-width { - display: flex; - - .tab { - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - } - } - - position: relative; - overflow-x: auto; - overflow-y: hidden; - height: 48px; - width: 100%; - background-color: $tabs-bg-color; - margin: 0 auto; - white-space: nowrap; - - .tab { - display: inline-block; - text-align: center; - line-height: 48px; - height: 48px; - padding: 0; - margin: 0; - text-transform: uppercase; - - a { - &:hover, - &.active { - background-color: transparent; - color: $tabs-text-color; - } - - color: rgba($tabs-text-color, .7); - display: block; - width: 100%; - height: 100%; - padding: 0 24px; - font-size: 14px; - text-overflow: ellipsis; - overflow: hidden; - transition: color .28s ease; - } - - &.disabled a, - &.disabled a:hover { - color: rgba($tabs-text-color, .7); - cursor: default; - } - } - .indicator { - position: absolute; - bottom: 0; - height: 2px; - background-color: $tabs-underline-color; - will-change: left, right; - } -} - -// Fixed sideNav hide on smaller -@media #{$medium-and-down} { - .tabs { - display: flex; - - .tab { - -webkit-box-flex: 1; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - - a { - padding: 0 12px; - } - } - } -} diff --git a/node_modules/materialize-css/sass/components/_toast.scss b/node_modules/materialize-css/sass/components/_toast.scss deleted file mode 100644 index 7670cfa..0000000 --- a/node_modules/materialize-css/sass/components/_toast.scss +++ /dev/null @@ -1,65 +0,0 @@ -#toast-container { - display:block; - position: fixed; - z-index: 10000; - - @media #{$small-and-down} { - min-width: 100%; - bottom: 0%; - } - @media #{$medium-only} { - left: 5%; - bottom: 7%; - max-width: 90%; - } - @media #{$large-and-up} { - top: 10%; - right: 7%; - max-width: 86%; - } -} - -.toast { - @extend .z-depth-1; - border-radius: 2px; - top: 35px; - width: auto; - clear: both; - margin-top: 10px; - position: relative; - max-width:100%; - height: auto; - min-height: $toast-height; - line-height: 1.5em; - word-break: break-all; - background-color: $toast-color; - padding: 10px 25px; - font-size: 1.1rem; - font-weight: 300; - color: $toast-text-color; - - display: flex; - align-items: center; - justify-content: space-between; - - .btn, .btn-flat { - margin: 0; - margin-left: 3rem; - } - - &.rounded{ - border-radius: 24px; - } - - @media #{$small-and-down} { - width:100%; - border-radius: 0; - } - @media #{$medium-only} { - float: left; - } - @media #{$large-and-up} { - float: right; - } - -} diff --git a/node_modules/materialize-css/sass/components/_tooltip.scss b/node_modules/materialize-css/sass/components/_tooltip.scss deleted file mode 100644 index 8224a8e..0000000 --- a/node_modules/materialize-css/sass/components/_tooltip.scss +++ /dev/null @@ -1,31 +0,0 @@ -.material-tooltip { - padding: 10px 8px; - font-size: 1rem; - z-index: 2000; - background-color: transparent; - border-radius: 2px; - color: #fff; - min-height: 36px; - line-height: 120%; - opacity: 0; - position: absolute; - text-align: center; - max-width: calc(100% - 4px); - overflow: hidden; - left: 0; - top: 0; - pointer-events: none; - visibility: hidden; -} - -.backdrop { - position: absolute; - opacity: 0; - height: 7px; - width: 14px; - border-radius: 0 0 50% 50%; - background-color: #323232; - z-index: -1; - transform-origin: 50% 0%; - visibility: hidden; -} diff --git a/node_modules/materialize-css/sass/components/_transitions.scss b/node_modules/materialize-css/sass/components/_transitions.scss deleted file mode 100644 index 9c3660a..0000000 --- a/node_modules/materialize-css/sass/components/_transitions.scss +++ /dev/null @@ -1,13 +0,0 @@ -// Scale transition -.scale-transition { - &.scale-out { - transform: scale(0); - transition: transform .2s !important; - } - - &.scale-in { - transform: scale(1); - } - - transition: transform .3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important; -} \ No newline at end of file diff --git a/node_modules/materialize-css/sass/components/_typography.scss b/node_modules/materialize-css/sass/components/_typography.scss deleted file mode 100644 index 5301c80..0000000 --- a/node_modules/materialize-css/sass/components/_typography.scss +++ /dev/null @@ -1,61 +0,0 @@ - -a { - text-decoration: none; -} - -html{ - line-height: 1.5; - - @media only screen and (min-width: 0) { - font-size: 14px; - } - - @media only screen and (min-width: $medium-screen) { - font-size: 14.5px; - } - - @media only screen and (min-width: $large-screen) { - font-size: 15px; - } - - font-family: "Roboto", sans-serif; - font-weight: normal; - color: $off-black; -} -h1, h2, h3, h4, h5, h6 { - font-weight: 400; - line-height: 1.1; -} - -// Header Styles -h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { font-weight: inherit; } -h1 { font-size: $h1-fontsize; line-height: 110%; margin: ($h1-fontsize / 2) 0 ($h1-fontsize / 2.5) 0;} -h2 { font-size: $h2-fontsize; line-height: 110%; margin: ($h2-fontsize / 2) 0 ($h2-fontsize / 2.5) 0;} -h3 { font-size: $h3-fontsize; line-height: 110%; margin: ($h3-fontsize / 2) 0 ($h3-fontsize / 2.5) 0;} -h4 { font-size: $h4-fontsize; line-height: 110%; margin: ($h4-fontsize / 2) 0 ($h4-fontsize / 2.5) 0;} -h5 { font-size: $h5-fontsize; line-height: 110%; margin: ($h5-fontsize / 2) 0 ($h5-fontsize / 2.5) 0;} -h6 { font-size: $h6-fontsize; line-height: 110%; margin: ($h6-fontsize / 2) 0 ($h6-fontsize / 2.5) 0;} - -// Text Styles -em { font-style: italic; } -strong { font-weight: 500; } -small { font-size: 75%; } -.light { font-weight: 300; } -.thin { font-weight: 200; } - - -.flow-text{ - font-weight: 300; - $i: 0; - @while $i <= $intervals { - @media only screen and (min-width : 360 + ($i * $interval-size)) { - font-size: 1.2rem * (1 + (.02 * $i)); - } - $i: $i + 1; - } - - // Handle below 360px screen - @media only screen and (max-width: 360px) { - font-size: 1.2rem; - } -} \ No newline at end of file diff --git a/node_modules/materialize-css/sass/components/_variables.scss b/node_modules/materialize-css/sass/components/_variables.scss deleted file mode 100644 index 0a706d3..0000000 --- a/node_modules/materialize-css/sass/components/_variables.scss +++ /dev/null @@ -1,319 +0,0 @@ -// ========================================================================== -// Materialize variables -// ========================================================================== -// -// Table of Contents: -// -// 1. Colors -// 2. Badges -// 3. Buttons -// 4. Cards -// 5. Collapsible -// 6. Chips -// 7. Date Picker -// 8. Dropdown -// 10. Forms -// 11. Global -// 12. Grid -// 13. Navigation Bar -// 14. Side Navigation -// 15. Photo Slider -// 16. Spinners | Loaders -// 17. Tabs -// 18. Tables -// 19. Toasts -// 20. Typography -// 21. Footer -// 22. Flow Text -// 23. Collections -// 24. Progress Bar - - - -// 1. Colors -// ========================================================================== - -$primary-color: color("materialize-red", "lighten-2") !default; -$primary-color-light: lighten($primary-color, 15%) !default; -$primary-color-dark: darken($primary-color, 15%) !default; - -$secondary-color: color("teal", "lighten-1") !default; -$success-color: color("green", "base") !default; -$error-color: color("red", "base") !default; -$link-color: color("light-blue", "darken-1") !default; - - -// 2. Badges -// ========================================================================== - -$badge-bg-color: $secondary-color !default; -$badge-height: 22px !default; - - -// 3. Buttons -// ========================================================================== - -// Shared styles -$button-border: none !default; -$button-background-focus: lighten($secondary-color, 4%) !default; -$button-font-size: 1.3rem !default; -$button-height: 36px !default; -$button-padding: 0 2rem !default; -$button-radius: 2px !default; - -// Disabled styles -$button-disabled-background: #DFDFDF !default; -$button-disabled-color: #9F9F9F !default; - -// Raised buttons -$button-raised-background: $secondary-color !default; -$button-raised-background-hover: lighten($button-raised-background, 5%) !default; -$button-raised-color: #fff !default; - -// Large buttons -$button-large-icon-font-size: 1.6rem !default; -$button-large-height: $button-height * 1.5 !default; - -// Flat buttons -$button-flat-color: #343434 !default; -$button-flat-disabled-color: lighten(#999, 10%) !default; - -// Floating buttons -$button-floating-background: $secondary-color !default; -$button-floating-background-hover: $button-floating-background !default; -$button-floating-color: #fff !default; -$button-floating-size: 40px !default; -$button-floating-large-size: 56px !default; -$button-floating-radius: 50% !default; - - -// 4. Cards -// ========================================================================== - -$card-padding: 24px !default; -$card-bg-color: #fff !default; -$card-link-color: color("orange", "accent-2") !default; -$card-link-color-light: lighten($card-link-color, 20%) !default; - - -// 5. Collapsible -// ========================================================================== - -$collapsible-height: 3rem !default; -$collapsible-line-height: $collapsible-height !default; -$collapsible-header-color: #fff !default; -$collapsible-border-color: #ddd !default; - - -// 6. Chips -// ========================================================================== - -$chip-bg-color: #e4e4e4 !default; -$chip-border-color: #9e9e9e !default; -$chip-selected-color: #26a69a !default; -$chip-margin: 5px !default; - - -// 7. Date Picker -// ========================================================================== - -$datepicker-weekday-bg: darken($secondary-color, 7%) !default; -$datepicker-date-bg: $secondary-color !default; -$datepicker-year: rgba(255, 255, 255, .4) !default; -$datepicker-focus: rgba(0,0,0, .05) !default; -$datepicker-selected: $secondary-color !default; -$datepicker-selected-outfocus: desaturate(lighten($secondary-color, 35%), 15%) !default; - - -// 8. Dropdown -// ========================================================================== - -$dropdown-bg-color: #fff !default; -$dropdown-hover-bg-color: #eee !default; -$dropdown-color: $secondary-color !default; -$dropdown-item-height: 50px !default; - - -// 9. Fonts -// ========================================================================== - -$roboto-font-path: "../fonts/roboto/" !default; - - -// 10. Forms -// ========================================================================== - -// Text Inputs + Textarea -$input-height: 3rem !default; -$input-border-color: color("grey", "base") !default; -$input-border: 1px solid $input-border-color !default; -$input-background: #fff !default; -$input-error-color: $error-color !default; -$input-success-color: $success-color !default; -$input-focus-color: $secondary-color !default; -$input-font-size: 1rem !default; -$input-margin: 0 0 20px 0 !default; -$input-padding: 0 !default; -$input-transition: all .3s !default; -$label-font-size: .8rem !default; -$input-disabled-color: rgba(0,0,0, .26) !default; -$input-disabled-solid-color: #BDBDBD !default; -$input-disabled-border: 1px dotted $input-disabled-color !default; -$input-invalid-border: 1px solid $input-error-color !default; -$placeholder-text-color: lighten($input-border-color, 20%) !default; - -// Radio Buttons -$radio-fill-color: $secondary-color !default; -$radio-empty-color: #5a5a5a !default; -$radio-border: 2px solid $radio-fill-color !default; - -// Range -$range-height: 14px !default; -$range-width: 14px !default; -$track-height: 3px !default; - -// Select -$select-border: 1px solid #f2f2f2 !default; -$select-background: rgba(255, 255, 255, 0.90) !default; -$select-focus: 1px solid lighten($secondary-color, 47%) !default; -$select-padding: 5px !default; -$select-radius: 2px !default; -$select-disabled-color: rgba(0,0,0,.3) !default; - -// Switches -$switch-bg-color: $secondary-color !default; -$switch-checked-lever-bg: desaturate(lighten($secondary-color, 25%), 25%) !default; -$switch-unchecked-bg: #F1F1F1 !default; -$switch-unchecked-lever-bg: #818181 !default; -$switch-radius: 15px !default; - - -// 11. Global -// ========================================================================== - -// Media Query Ranges -$small-screen-up: 601px !default; -$medium-screen-up: 993px !default; -$large-screen-up: 1201px !default; -$small-screen: 600px !default; -$medium-screen: 992px !default; -$large-screen: 1200px !default; - -$medium-and-up: "only screen and (min-width : #{$small-screen-up})" !default; -$large-and-up: "only screen and (min-width : #{$medium-screen-up})" !default; -$small-and-down: "only screen and (max-width : #{$small-screen})" !default; -$medium-and-down: "only screen and (max-width : #{$medium-screen})" !default; -$medium-only: "only screen and (min-width : #{$small-screen-up}) and (max-width : #{$medium-screen})" !default; - - -// 12. Grid -// ========================================================================== - -$num-cols: 12 !default; -$gutter-width: 1.5rem !default; -$element-top-margin: $gutter-width/3 !default; -$element-bottom-margin: ($gutter-width*2)/3 !default; - - -// 13. Navigation Bar -// ========================================================================== - -$navbar-height: 64px !default; -$navbar-line-height: $navbar-height !default; -$navbar-height-mobile: 56px !default; -$navbar-line-height-mobile: $navbar-height-mobile !default; -$navbar-font-size: 1rem !default; -$navbar-font-color: #fff !default; -$navbar-brand-font-size: 2.1rem !default; - -// 14. Side Navigation -// ========================================================================== - -$sidenav-font-size: 14px !default; -$sidenav-font-color: rgba(0,0,0,.87) !default; -$sidenav-bg-color: #fff !default; -$sidenav-padding: 16px !default; -$sidenav-item-height: 48px !default; -$sidenav-line-height: $sidenav-item-height !default; - - -// 15. Photo Slider -// ========================================================================== - -$slider-bg-color: color('grey', 'base') !default; -$slider-bg-color-light: color('grey', 'lighten-2') !default; -$slider-indicator-color: color('green', 'base') !default; - - -// 16. Spinners | Loaders -// ========================================================================== - -$spinner-default-color: $secondary-color !default; - - -// 17. Tabs -// ========================================================================== - -$tabs-underline-color: $primary-color-light !default; -$tabs-text-color: $primary-color !default; -$tabs-bg-color: #fff !default; - - -// 18. Tables -// ========================================================================== - -$table-border-color: #d0d0d0 !default; -$table-striped-color: #f2f2f2 !default; - - -// 19. Toasts -// ========================================================================== - -$toast-height: 48px !default; -$toast-color: #323232 !default; -$toast-text-color: #fff !default; - - -// 20. Typography -// ========================================================================== - -$off-black: rgba(0, 0, 0, 0.87) !default; -// Header Styles -$h1-fontsize: 4.2rem !default; -$h2-fontsize: 3.56rem !default; -$h3-fontsize: 2.92rem !default; -$h4-fontsize: 2.28rem !default; -$h5-fontsize: 1.64rem !default; -$h6-fontsize: 1rem !default; - - -// 21. Footer -// ========================================================================== - -$footer-bg-color: $primary-color !default; - - -// 22. Flow Text -// ========================================================================== - -$range : $large-screen - $small-screen !default; -$intervals: 20 !default; -$interval-size: $range / $intervals !default; - - -// 23. Collections -// ========================================================================== - -$collection-border-color: #e0e0e0 !default; -$collection-bg-color: #fff !default; -$collection-active-bg-color: $secondary-color !default; -$collection-active-color: lighten($secondary-color, 55%) !default; -$collection-hover-bg-color: #ddd !default; -$collection-link-color: $secondary-color !default; -$collection-line-height: 1.5rem !default; - - -// 24. Progress Bar -// ========================================================================== - -$progress-bar-color: $secondary-color !default; diff --git a/node_modules/materialize-css/sass/components/_waves.scss b/node_modules/materialize-css/sass/components/_waves.scss deleted file mode 100644 index 5a3229b..0000000 --- a/node_modules/materialize-css/sass/components/_waves.scss +++ /dev/null @@ -1,114 +0,0 @@ - -/*! - * Waves v0.6.0 - * http://fian.my.id/Waves - * - * Copyright 2014 Alfiana E. Sibuea and other contributors - * Released under the MIT license - * https://github.com/fians/Waves/blob/master/LICENSE - */ - - -.waves-effect { - position: relative; - cursor: pointer; - display: inline-block; - overflow: hidden; - user-select: none; - -webkit-tap-highlight-color: transparent; - vertical-align: middle; - z-index: 1; - transition: .3s ease-out; - - .waves-ripple { - position: absolute; - border-radius: 50%; - width: 20px; - height: 20px; - margin-top:-10px; - margin-left:-10px; - opacity: 0; - - background: rgba(0,0,0,0.2); - transition: all 0.7s ease-out; - transition-property: transform, opacity; - transform: scale(0); - pointer-events: none; - } - - // Waves Colors - &.waves-light .waves-ripple { - background-color: rgba(255, 255, 255, 0.45); - } - &.waves-red .waves-ripple { - background-color: rgba(244, 67, 54, .70); - } - &.waves-yellow .waves-ripple { - background-color: rgba(255, 235, 59, .70); - } - &.waves-orange .waves-ripple { - background-color: rgba(255, 152, 0, .70); - } - &.waves-purple .waves-ripple { - background-color: rgba(156, 39, 176, 0.70); - } - &.waves-green .waves-ripple { - background-color: rgba(76, 175, 80, 0.70); - } - &.waves-teal .waves-ripple { - background-color: rgba(0, 150, 136, 0.70); - } - - // Style input button bug. - input[type="button"], input[type="reset"], input[type="submit"] { - border: 0; - font-style: normal; - font-size: inherit; - text-transform: inherit; - background: none; - } - - img { - position: relative; - z-index: -1; - } -} - -.waves-notransition { - transition: none #{"!important"}; -} - -.waves-circle { - transform: translateZ(0); - -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%); -} - -.waves-input-wrapper { - border-radius: 0.2em; - vertical-align: bottom; - - .waves-button-input { - position: relative; - top: 0; - left: 0; - z-index: 1; - } -} - -.waves-circle { - text-align: center; - width: 2.5em; - height: 2.5em; - line-height: 2.5em; - border-radius: 50%; - -webkit-mask-image: none; -} - -.waves-block { - display: block; -} - -/* Firefox Bug: link not triggered */ -.waves-effect .waves-ripple { - z-index: -1; -} \ No newline at end of file diff --git a/node_modules/materialize-css/sass/components/date_picker/_default.date.scss b/node_modules/materialize-css/sass/components/date_picker/_default.date.scss deleted file mode 100644 index 84e96b5..0000000 --- a/node_modules/materialize-css/sass/components/date_picker/_default.date.scss +++ /dev/null @@ -1,435 +0,0 @@ -/* ========================================================================== - $BASE-DATE-PICKER - ========================================================================== */ -/** - * The picker box. - */ -.picker__box { - padding: 0 1em; -} -/** - * The header containing the month and year stuff. - */ -.picker__header { - text-align: center; - position: relative; - margin-top: .75em; -} -/** - * The month and year labels. - */ -.picker__month, -.picker__year { -// font-weight: 500; - display: inline-block; - margin-left: .25em; - margin-right: .25em; -} -/** - * The month and year selectors. - */ -.picker__select--month, -.picker__select--year { - - height: 2em; - padding: 0; - margin-left: .25em; - margin-right: .25em; -} - -// Modified -.picker__select--month.browser-default { - display: inline; - background-color: #FFFFFF; - width: 40%; -} -.picker__select--year.browser-default { - display: inline; - background-color: #FFFFFF; - width: 26%; -} -.picker__select--month:focus, -.picker__select--year:focus { - border-color: $datepicker-focus; -} -/** - * The month navigation buttons. - */ -.picker__nav--prev, -.picker__nav--next { - position: absolute; - padding: .5em 1.25em; - width: 1em; - height: 1em; - box-sizing: content-box; - top: -0.25em; -} -//@media (min-width: 24.5em) { -// .picker__nav--prev, -// .picker__nav--next { -// top: -0.33em; -// } -//} -.picker__nav--prev { - left: -1em; - padding-right: 1.25em; -} -//@media (min-width: 24.5em) { -// .picker__nav--prev { -// padding-right: 1.5em; -// } -//} -.picker__nav--next { - right: -1em; - padding-left: 1.25em; -} -//@media (min-width: 24.5em) { -// .picker__nav--next { -// padding-left: 1.5em; -// } -//} - -.picker__nav--disabled, -.picker__nav--disabled:hover, -.picker__nav--disabled:before, -.picker__nav--disabled:before:hover { - cursor: default; - background: none; - border-right-color: #f5f5f5; - border-left-color: #f5f5f5; -} -/** - * The calendar table of dates - */ -.picker__table { - text-align: center; - border-collapse: collapse; - border-spacing: 0; - table-layout: fixed; - font-size: 1rem; - width: 100%; - margin-top: .75em; - margin-bottom: .5em; -} - - - -.picker__table th, .picker__table td { - text-align: center; -} - - - - - - -.picker__table td { - margin: 0; - padding: 0; -} -/** - * The weekday labels - */ -.picker__weekday { - width: 14.285714286%; - font-size: .75em; - padding-bottom: .25em; - color: #999999; - font-weight: 500; - /* Increase the spacing a tad */ -} -@media (min-height: 33.875em) { - .picker__weekday { - padding-bottom: .5em; - } -} -/** - * The days on the calendar - */ - -.picker__day--today { - position: relative; - color: #595959; - letter-spacing: -.3; - padding: .75rem 0; - font-weight: 400; - border: 1px solid transparent; - -} - -//.picker__day--today:before { -// content: " "; -// position: absolute; -// top: 2px; -// right: 2px; -// width: 0; -// height: 0; -// border-top: 0.5em solid #0059bc; -// border-left: .5em solid transparent; -//} -.picker__day--disabled:before { - border-top-color: #aaaaaa; -} - - -.picker__day--infocus:hover{ - cursor: pointer; - color: #000; - font-weight: 500; -} - -.picker__day--outfocus { - display: none; - padding: .75rem 0; - color: #fff; - -} -.picker__day--outfocus:hover { - cursor: pointer; - color: #dddddd; -// background: #b1dcfb; - font-weight: 500; -} - - -.picker__day--highlighted { -// border-color: #0089ec; -} -.picker__day--highlighted:hover, -.picker--focused .picker__day--highlighted { - cursor: pointer; -// color: #000000; -// background: #b1dcfb; -// font-weight: 500; -} -.picker__day--selected, -.picker__day--selected:hover, -.picker--focused .picker__day--selected { - - -// Circle background - border-radius: 50%; - transform: scale(.75); - background: #0089ec; - color: #ffffff; -} -.picker__day--disabled, -.picker__day--disabled:hover, -.picker--focused .picker__day--disabled { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; -} -.picker__day--highlighted.picker__day--disabled, -.picker__day--highlighted.picker__day--disabled:hover { - background: #bbbbbb; -} -/** - * The footer containing the "today", "clear", and "close" buttons. - */ -.picker__footer { - text-align: center; - display: flex; - align-items: center; - justify-content: space-between; -} -.picker__button--today, -.picker__button--clear, -.picker__button--close { - border: 1px solid #ffffff; - background: #ffffff; - font-size: .8em; - padding: .66em 0; - font-weight: bold; - width: 33%; - display: inline-block; - vertical-align: bottom; -} -.picker__button--today:hover, -.picker__button--clear:hover, -.picker__button--close:hover { - cursor: pointer; - color: #000000; - background: #b1dcfb; - border-bottom-color: #b1dcfb; -} -.picker__button--today:focus, -.picker__button--clear:focus, -.picker__button--close:focus { - background: #b1dcfb; - border-color: $datepicker-focus; - outline: none; -} -.picker__button--today:before, -.picker__button--clear:before, -.picker__button--close:before { - position: relative; - display: inline-block; - height: 0; -} -.picker__button--today:before, -.picker__button--clear:before { - content: " "; - margin-right: .45em; -} -.picker__button--today:before { - top: -0.05em; - width: 0; - border-top: 0.66em solid #0059bc; - border-left: .66em solid transparent; -} -.picker__button--clear:before { - top: -0.25em; - width: .66em; - border-top: 3px solid #ee2200; -} -.picker__button--close:before { - content: "\D7"; - top: -0.1em; - vertical-align: top; - font-size: 1.1em; - margin-right: .35em; - color: #777777; -} -.picker__button--today[disabled], -.picker__button--today[disabled]:hover { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; -} -.picker__button--today[disabled]:before { - border-top-color: #aaaaaa; -} - -/* ========================================================================== - CUSTOM MATERIALIZE STYLES - ========================================================================== */ -.picker__box { - border-radius: 2px; - overflow: hidden; -} - -.picker__date-display { - text-align: center; - background-color: $datepicker-date-bg; - color: #fff; - padding-bottom: 15px; - font-weight: 300; -} - -.picker__nav--prev:hover, -.picker__nav--next:hover { - cursor: pointer; - color: #000000; - background: $datepicker-selected-outfocus; -} - -.picker__weekday-display { - background-color: $datepicker-weekday-bg; - padding: 10px; - font-weight: 200; - letter-spacing: .5; - font-size: 1rem; - margin-bottom: 15px; -} - -.picker__month-display { - text-transform: uppercase; - font-size: 2rem; -} -.picker__day-display { - - font-size: 4.5rem; - font-weight: 400; -} -.picker__year-display { - font-size: 1.8rem; - color: $datepicker-year; -} - -.picker__box { - padding: 0; -} -.picker__calendar-container { - padding: 0 1rem; - - thead { - border: none; - } -} - -// Calendar -.picker__table { - margin-top: 0; - margin-bottom: .5em; -} - -.picker__day--infocus { - color: #595959; - letter-spacing: -.3; - padding: .75rem 0; - font-weight: 400; - border: 1px solid transparent; -} - -//Today style -.picker__day.picker__day--today { - color: $datepicker-selected; -} - -.picker__day.picker__day--today.picker__day--selected { - color: #fff; -} - -// Table Header -.picker__weekday { - font-size: .9rem; -} - - -.picker__day--selected, -.picker__day--selected:hover, -.picker--focused .picker__day--selected { - // Circle background - border-radius: 50%; - transform: scale(.9); - background-color: $datepicker-selected; - &.picker__day--outfocus { - background-color: $datepicker-selected-outfocus; - } - color: #ffffff; -} - -.picker__footer { - text-align: right; - padding: 5px 10px; -} - -// Materialize modified -.picker__close, .picker__today { - font-size: 1.1rem; - padding: 0 1rem; - color: $datepicker-selected; -} - -//month nav buttons -.picker__nav--prev:before, -.picker__nav--next:before { - content: " "; - border-top: .5em solid transparent; - border-bottom: .5em solid transparent; - border-right: 0.75em solid #676767; - width: 0; - height: 0; - display: block; - margin: 0 auto; -} -.picker__nav--next:before { - border-right: 0; - border-left: 0.75em solid #676767; -} -button.picker__today:focus, button.picker__clear:focus, button.picker__close:focus { - background-color: $datepicker-selected-outfocus; -} diff --git a/node_modules/materialize-css/sass/components/date_picker/_default.scss b/node_modules/materialize-css/sass/components/date_picker/_default.scss deleted file mode 100644 index 971fbc7..0000000 --- a/node_modules/materialize-css/sass/components/date_picker/_default.scss +++ /dev/null @@ -1,201 +0,0 @@ -/* ========================================================================== - $BASE-PICKER - ========================================================================== */ -/** - * Note: the root picker element should *NOT* be styled more than what's here. - */ -.picker { - font-size: 16px; - text-align: left; - line-height: 1.2; - color: #000000; - position: absolute; - z-index: 10000; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -/** - * The picker input element. - */ -.picker__input { - cursor: default; -} -/** - * When the picker is opened, the input element is "activated". - */ -.picker__input.picker__input--active { - border-color: #0089ec; -} -/** - * The holder is the only "scrollable" top-level container element. - */ -.picker__holder { - width: 100%; - overflow-y: auto; - -webkit-overflow-scrolling: touch; -} - -/*! - * Default mobile-first, responsive styling for pickadate.js - * Demo: http://amsul.github.io/pickadate.js - */ -/** - * Note: the root picker element should *NOT* be styled more than what's here. - */ -/** - * Make the holder and frame fullscreen. - */ -.picker__holder, -.picker__frame { - bottom: 0; - left: 0; - right: 0; - top: 100%; -} -/** - * The holder should overlay the entire screen. - */ -.picker__holder { - position: fixed; - -webkit-transition: background 0.15s ease-out, top 0s 0.15s; - -moz-transition: background 0.15s ease-out, top 0s 0.15s; - transition: background 0.15s ease-out, top 0s 0.15s; - -webkit-backface-visibility: hidden; -} -/** - * The frame that bounds the box contents of the picker. - */ -.picker__frame { - position: absolute; - margin: 0 auto; - min-width: 256px; - -// picker width - width: 300px; - max-height: 350px; - - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -moz-opacity: 0; - opacity: 0; - -webkit-transition: all 0.15s ease-out; - -moz-transition: all 0.15s ease-out; - transition: all 0.15s ease-out; -} -@media (min-height: 28.875em) { - .picker__frame { - overflow: visible; - top: auto; - bottom: -100%; - max-height: 80%; - } -} -@media (min-height: 40.125em) { - .picker__frame { - margin-bottom: 7.5%; - } -} -/** - * The wrapper sets the stage to vertically align the box contents. - */ -.picker__wrap { - display: table; - width: 100%; - height: 100%; -} -@media (min-height: 28.875em) { - .picker__wrap { - display: block; - } -} -/** - * The box contains all the picker contents. - */ -.picker__box { - background: #ffffff; - display: table-cell; - vertical-align: middle; -} -//@media (min-height: 26.5em) { -// .picker__box { -//// font-size: 1.25em; -// } -//} -@media (min-height: 28.875em) { - .picker__box { - display: block; - -// picker header font-size -// font-size: 1rem; - - border: 1px solid #777777; - border-top-color: #898989; - border-bottom-width: 0; - -webkit-border-radius: 5px 5px 0 0; - -moz-border-radius: 5px 5px 0 0; - border-radius: 5px 5px 0 0; - -webkit-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); - -moz-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); - box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); - } -} -//@media (min-height: 40.125em) { -// .picker__box { -// font-size: 1.1rem; -// border-bottom-width: 1px; -// -webkit-border-radius: 5px; -// -moz-border-radius: 5px; -// border-radius: 5px; -// } -//} -/** - * When the picker opens... - */ -.picker--opened .picker__holder { - top: 0; - background: transparent; - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)"; - zoom: 1; - background: rgba(0, 0, 0, 0.32); - -webkit-transition: background 0.15s ease-out; - -moz-transition: background 0.15s ease-out; - transition: background 0.15s ease-out; -} -.picker--opened .picker__frame { - top: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; - filter: alpha(opacity=100); - -moz-opacity: 1; - opacity: 1; -} -@media (min-height: 35.875em) { - .picker--opened .picker__frame { - top: 10%; - bottom: auto; - } -} -/** - * For `large` screens, transform into an inline picker. - */ - -/* ========================================================================== - CUSTOM MATERIALIZE STYLES - ========================================================================== */ - -.picker__input.picker__input--active { - border-color: color("blue", "lighten-5"); -} - -.picker__frame { - margin: 0 auto; - max-width: 325px; -} - -@media (min-height: 38.875em) { - .picker--opened .picker__frame { - top: 10%; - bottom: auto; - } -} diff --git a/node_modules/materialize-css/sass/components/date_picker/_default.time.scss b/node_modules/materialize-css/sass/components/date_picker/_default.time.scss deleted file mode 100644 index 0b159c8..0000000 --- a/node_modules/materialize-css/sass/components/date_picker/_default.time.scss +++ /dev/null @@ -1,125 +0,0 @@ -/* ========================================================================== - $BASE-TIME-PICKER - ========================================================================== */ -/** - * The list of times. - */ -.picker__list { - list-style: none; - padding: 0.75em 0 4.2em; - margin: 0; -} -/** - * The times on the clock. - */ -.picker__list-item { - border-bottom: 1px solid #dddddd; - border-top: 1px solid #dddddd; - margin-bottom: -1px; - position: relative; - background: #ffffff; - padding: .75em 1.25em; -} -@media (min-height: 46.75em) { - .picker__list-item { - padding: .5em 1em; - } -} -/* Hovered time */ -.picker__list-item:hover { - cursor: pointer; - color: #000000; - background: #b1dcfb; - border-color: #0089ec; - z-index: 10; -} -/* Highlighted and hovered/focused time */ -.picker__list-item--highlighted { - border-color: #0089ec; - z-index: 10; -} -.picker__list-item--highlighted:hover, -.picker--focused .picker__list-item--highlighted { - cursor: pointer; - color: #000000; - background: #b1dcfb; -} -/* Selected and hovered/focused time */ -.picker__list-item--selected, -.picker__list-item--selected:hover, -.picker--focused .picker__list-item--selected { - background: #0089ec; - color: #ffffff; - z-index: 10; -} -/* Disabled time */ -.picker__list-item--disabled, -.picker__list-item--disabled:hover, -.picker--focused .picker__list-item--disabled { - background: #f5f5f5; - border-color: #f5f5f5; - color: #dddddd; - cursor: default; - border-color: #dddddd; - z-index: auto; -} -/** - * The clear button - */ -.picker--time .picker__button--clear { - display: block; - width: 80%; - margin: 1em auto 0; - padding: 1em 1.25em; - background: none; - border: 0; - font-weight: 500; - font-size: .67em; - text-align: center; - text-transform: uppercase; - color: #666; -} -.picker--time .picker__button--clear:hover, -.picker--time .picker__button--clear:focus { - color: #000000; - background: #b1dcfb; - background: #ee2200; - border-color: #ee2200; - cursor: pointer; - color: #ffffff; - outline: none; -} -.picker--time .picker__button--clear:before { - top: -0.25em; - color: #666; - font-size: 1.25em; - font-weight: bold; -} -.picker--time .picker__button--clear:hover:before, -.picker--time .picker__button--clear:focus:before { - color: #ffffff; -} - -/* ========================================================================== - $DEFAULT-TIME-PICKER - ========================================================================== */ -/** - * The frame the bounds the time picker. - */ -.picker--time .picker__frame { - min-width: 256px; - max-width: 320px; -} -/** - * The picker box. - */ -.picker--time .picker__box { - font-size: 1em; - background: #f2f2f2; - padding: 0; -} -@media (min-height: 40.125em) { - .picker--time .picker__box { - margin-bottom: 5em; - } -} diff --git a/node_modules/materialize-css/sass/components/forms/_checkboxes.scss b/node_modules/materialize-css/sass/components/forms/_checkboxes.scss deleted file mode 100644 index a8743c1..0000000 --- a/node_modules/materialize-css/sass/components/forms/_checkboxes.scss +++ /dev/null @@ -1,220 +0,0 @@ -/* Checkboxes - ========================================================================== */ - -/* CUSTOM CSS CHECKBOXES */ -form p { - margin-bottom: 10px; - text-align: left; -} - -form p:last-child { - margin-bottom: 0; -} - -/* Remove default checkbox */ -[type="checkbox"]:not(:checked), -[type="checkbox"]:checked { - position: absolute; - left: -9999px; - opacity: 0; -} - -// Checkbox Styles -[type="checkbox"] { - // Text Label Style - + label { - position: relative; - padding-left: 35px; - cursor: pointer; - display: inline-block; - height: 25px; - line-height: 25px; - font-size: 1rem; - - -webkit-user-select: none; /* webkit (safari, chrome) browsers */ - -moz-user-select: none; /* mozilla browsers */ - -khtml-user-select: none; /* webkit (konqueror) browsers */ - -ms-user-select: none; /* IE10+ */ - } - - /* checkbox aspect */ - + label:before, - &:not(.filled-in) + label:after { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 18px; - height: 18px; - z-index: 0; - border: 2px solid $radio-empty-color; - border-radius: 1px; - margin-top: 2px; - transition: .2s; - } - - &:not(.filled-in) + label:after { - border: 0; - transform: scale(0); - } - - &:not(:checked):disabled + label:before { - border: none; - background-color: $input-disabled-color; - } - - // Focused styles - &.tabbed:focus + label:after { - transform: scale(1); - border: 0; - border-radius: 50%; - box-shadow: 0 0 0 10px rgba(0,0,0,.1); - background-color: rgba(0,0,0,.1); - } -} - -[type="checkbox"]:checked { - + label:before { - top: -4px; - left: -5px; - width: 12px; - height: 22px; - border-top: 2px solid transparent; - border-left: 2px solid transparent; - border-right: $radio-border; - border-bottom: $radio-border; - transform: rotate(40deg); - backface-visibility: hidden; - transform-origin: 100% 100%; - } - - &:disabled + label:before { - border-right: 2px solid $input-disabled-color; - border-bottom: 2px solid $input-disabled-color; - } -} - -/* Indeterminate checkbox */ -[type="checkbox"]:indeterminate { - +label:before { - top: -11px; - left: -12px; - width: 10px; - height: 22px; - border-top: none; - border-left: none; - border-right: $radio-border; - border-bottom: none; - transform: rotate(90deg); - backface-visibility: hidden; - transform-origin: 100% 100%; - } - - // Disabled indeterminate - &:disabled + label:before { - border-right: 2px solid $input-disabled-color; - background-color: transparent; - } -} - -// Filled in Style -[type="checkbox"].filled-in { - // General - + label:after { - border-radius: 2px; - } - - + label:before, - + label:after { - content: ''; - left: 0; - position: absolute; - /* .1s delay is for check animation */ - transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s; - z-index: 1; - } - - // Unchecked style - &:not(:checked) + label:before { - width: 0; - height: 0; - border: 3px solid transparent; - left: 6px; - top: 10px; - - -webkit-transform: rotateZ(37deg); - transform: rotateZ(37deg); - -webkit-transform-origin: 20% 40%; - transform-origin: 100% 100%; - } - - &:not(:checked) + label:after { - height: 20px; - width: 20px; - background-color: transparent; - border: 2px solid $radio-empty-color; - top: 0px; - z-index: 0; - } - - // Checked style - &:checked { - + label:before { - top: 0; - left: 1px; - width: 8px; - height: 13px; - border-top: 2px solid transparent; - border-left: 2px solid transparent; - border-right: 2px solid $input-background; - border-bottom: 2px solid $input-background; - -webkit-transform: rotateZ(37deg); - transform: rotateZ(37deg); - - -webkit-transform-origin: 100% 100%; - transform-origin: 100% 100%; - } - - + label:after { - top: 0; - width: 20px; - height: 20px; - border: 2px solid $secondary-color; - background-color: $secondary-color; - z-index: 0; - } - } - - // Focused styles - &.tabbed:focus + label:after { - border-radius: 2px; - border-color: $radio-empty-color; - background-color: rgba(0,0,0,.1); - } - - &.tabbed:checked:focus + label:after { - border-radius: 2px; - background-color: $secondary-color; - border-color: $secondary-color; - } - - // Disabled style - &:disabled:not(:checked) + label:before { - background-color: transparent; - border: 2px solid transparent; - } - - &:disabled:not(:checked) + label:after { - border-color: transparent; - background-color: $input-disabled-solid-color; - } - - &:disabled:checked + label:before { - background-color: transparent; - } - - &:disabled:checked + label:after { - background-color: $input-disabled-solid-color; - border-color: $input-disabled-solid-color; - } -} diff --git a/node_modules/materialize-css/sass/components/forms/_file-input.scss b/node_modules/materialize-css/sass/components/forms/_file-input.scss deleted file mode 100644 index 3b3fe55..0000000 --- a/node_modules/materialize-css/sass/components/forms/_file-input.scss +++ /dev/null @@ -1,38 +0,0 @@ -/* File Input - ========================================================================== */ - -.file-field { - position: relative; - - .file-path-wrapper { - overflow: hidden; - padding-left: 10px; - } - - input.file-path { width: 100%; } - - .btn { - float: left; - height: $input-height; - line-height: $input-height; - } - - span { - cursor: pointer; - } - - input[type=file] { - position: absolute; - top: 0; - right: 0; - left: 0; - bottom: 0; - width: 100%; - margin: 0; - padding: 0; - font-size: 20px; - cursor: pointer; - opacity: 0; - filter: alpha(opacity=0); - } -} diff --git a/node_modules/materialize-css/sass/components/forms/_forms.scss b/node_modules/materialize-css/sass/components/forms/_forms.scss deleted file mode 100644 index e9b65b4..0000000 --- a/node_modules/materialize-css/sass/components/forms/_forms.scss +++ /dev/null @@ -1,22 +0,0 @@ -// Remove Focus Boxes -select:focus { - outline: $select-focus; -} - -button:focus { - outline: none; - background-color: $button-background-focus; -} - -label { - font-size: $label-font-size; - color: $input-border-color; -} - -@import 'input-fields'; -@import 'radio-buttons'; -@import 'checkboxes'; -@import 'switches'; -@import 'select'; -@import 'file-input'; -@import 'range'; diff --git a/node_modules/materialize-css/sass/components/forms/_input-fields.scss b/node_modules/materialize-css/sass/components/forms/_input-fields.scss deleted file mode 100644 index 94e62c4..0000000 --- a/node_modules/materialize-css/sass/components/forms/_input-fields.scss +++ /dev/null @@ -1,286 +0,0 @@ -/* Text Inputs + Textarea - ========================================================================== */ - -/* Style Placeholders */ - -::-webkit-input-placeholder { - color: $placeholder-text-color; -} - -:-moz-placeholder { /* Firefox 18- */ - color: $placeholder-text-color; -} - -::-moz-placeholder { /* Firefox 19+ */ - color: $placeholder-text-color; -} - -:-ms-input-placeholder { - color: $placeholder-text-color; -} - -/* Text inputs */ - -input:not([type]), -input[type=text], -input[type=password], -input[type=email], -input[type=url], -input[type=time], -input[type=date], -input[type=datetime], -input[type=datetime-local], -input[type=tel], -input[type=number], -input[type=search], -textarea.materialize-textarea { - - // General Styles - background-color: transparent; - border: none; - border-bottom: $input-border; - border-radius: 0; - outline: none; - height: $input-height; - width: 100%; - font-size: $input-font-size; - margin: $input-margin; - padding: $input-padding; - box-shadow: none; - box-sizing: content-box; - transition: $input-transition; - - // Disabled input style - &:disabled, - &[readonly="readonly"] { - color: $input-disabled-color; - border-bottom: $input-disabled-border; - } - - // Disabled label style - &:disabled+label, - &[readonly="readonly"]+label { - color: $input-disabled-color; - } - - // Focused input style - &:focus:not([readonly]) { - border-bottom: 1px solid $input-focus-color; - box-shadow: 0 1px 0 0 $input-focus-color; - } - - // Focused label style - &:focus:not([readonly])+label { - color: $input-focus-color; - } - - // Valid Input Style - &.valid, - &:focus.valid { - border-bottom: 1px solid $input-success-color; - box-shadow: 0 1px 0 0 $input-success-color; - } - - // Custom Success Message - &.valid + label:after, - &:focus.valid + label:after { - content: attr(data-success); - color: $input-success-color; - opacity: 1; - } - - // Invalid Input Style - &.invalid, - &:focus.invalid { - border-bottom: $input-invalid-border; - box-shadow: 0 1px 0 0 $input-error-color; - } - - // Custom Error message - &.invalid + label:after, - &:focus.invalid + label:after { - content: attr(data-error); - color: $input-error-color; - opacity: 1; - } - - // Full width label when using validate for error messages - &.validate + label { - width: 100%; - pointer-events: none; - } - - // Form Message Shared Styles - & + label:after { - display: block; - content: ""; - position: absolute; - top: 60px; - opacity: 0; - transition: .2s opacity ease-out, .2s color ease-out; - } -} - -// Styling for input field wrapper -.input-field { - // Inline styles - &.inline { - display: inline-block; - vertical-align: middle; - margin-left: 5px; - - input, - .select-dropdown { - margin-bottom: 1rem; - } - } - - // Gutter spacing - &.col { - label { - left: $gutter-width / 2; - } - - .prefix ~ label, - .prefix ~ .validate ~ label { - width: calc(100% - 3rem - #{$gutter-width}); - } - } - - position: relative; - margin-top: 1rem; - - label { - color: $input-border-color; - position: absolute; - top: 0.8rem; - left: 0; - font-size: 1rem; - cursor: text; - transition: .2s ease-out; - - &:not(.label-icon).active { - font-size: $label-font-size; - transform: translateY(-140%); - } - } - - // Prefix Icons - .prefix { - position: absolute; - width: $input-height; - font-size: 2rem; - transition: color .2s; - - &.active { color: $input-focus-color; } - } - - .prefix ~ input, - .prefix ~ textarea, - .prefix ~ label, - .prefix ~ .validate ~ label, - .prefix ~ .autocomplete-content { - margin-left: 3rem; - width: 92%; - width: calc(100% - 3rem); - } - - .prefix ~ label { margin-left: 3rem; } - - @media #{$medium-and-down} { - .prefix ~ input { - width: 86%; - width: calc(100% - 3rem); - } - } - - @media #{$small-and-down} { - .prefix ~ input { - width: 80%; - width: calc(100% - 3rem); - } - } -} - - -/* Search Field */ - -.input-field input[type=search] { - display: block; - line-height: inherit; - padding-left: 4rem; - width: calc(100% - 4rem); - - &:focus { - background-color: $input-background; - border: 0; - box-shadow: none; - color: #444; - - & + label i, - & ~ .mdi-navigation-close, - & ~ .material-icons { - color: #444; - } - } - - & + label { - left: 1rem; - } - - & ~ .mdi-navigation-close, - & ~ .material-icons { - position: absolute; - top: 0; - right: 1rem; - color: transparent; - cursor: pointer; - font-size: 2rem; - transition: .3s color; - } -} - - -/* Textarea */ - -// Default textarea -textarea { - width: 100%; - height: $input-height; - background-color: transparent; - - &.materialize-textarea { - overflow-y: hidden; /* prevents scroll bar flash */ - padding: .8rem 0 1.6rem 0; /* prevents text jump on Enter keypress */ - resize: none; - min-height: $input-height; - } -} - -// For textarea autoresize -.hiddendiv { - display: none; - white-space: pre-wrap; - word-wrap: break-word; - overflow-wrap: break-word; /* future version of deprecated 'word-wrap' */ - padding-top: 1.2rem; /* prevents text jump on Enter keypress */ -} - - -/* Autocomplete */ -.autocomplete-content { - margin-top: -15px; - display: block; - opacity: 1; - position: static; - - li { - .highlight { color: #444; } - - img { - height: $dropdown-item-height - 10; - width: $dropdown-item-height - 10; - margin: 5px 15px; - } - } -} diff --git a/node_modules/materialize-css/sass/components/forms/_radio-buttons.scss b/node_modules/materialize-css/sass/components/forms/_radio-buttons.scss deleted file mode 100644 index b59dbfb..0000000 --- a/node_modules/materialize-css/sass/components/forms/_radio-buttons.scss +++ /dev/null @@ -1,117 +0,0 @@ -/* Radio Buttons - ========================================================================== */ - -// Remove default Radio Buttons -[type="radio"]:not(:checked), -[type="radio"]:checked { - position: absolute; - left: -9999px; - opacity: 0; -} - -[type="radio"]:not(:checked) + label, -[type="radio"]:checked + label { - position: relative; - padding-left: 35px; - cursor: pointer; - display: inline-block; - height: 25px; - line-height: 25px; - font-size: 1rem; - transition: .28s ease; - - -khtml-user-select: none; /* webkit (konqueror) browsers */ - user-select: none; -} - -[type="radio"] + label:before, -[type="radio"] + label:after { - content: ''; - position: absolute; - left: 0; - top: 0; - margin: 4px; - width: 16px; - height: 16px; - z-index: 0; - transition: .28s ease; -} - -/* Unchecked styles */ -[type="radio"]:not(:checked) + label:before, -[type="radio"]:not(:checked) + label:after, -[type="radio"]:checked + label:before, -[type="radio"]:checked + label:after, -[type="radio"].with-gap:checked + label:before, -[type="radio"].with-gap:checked + label:after { - border-radius: 50%; -} - -[type="radio"]:not(:checked) + label:before, -[type="radio"]:not(:checked) + label:after { - border: 2px solid $radio-empty-color; -} - -[type="radio"]:not(:checked) + label:after { - transform: scale(0); -} - -/* Checked styles */ -[type="radio"]:checked + label:before { - border: 2px solid transparent; -} - -[type="radio"]:checked + label:after, -[type="radio"].with-gap:checked + label:before, -[type="radio"].with-gap:checked + label:after { - border: $radio-border; -} - -[type="radio"]:checked + label:after, -[type="radio"].with-gap:checked + label:after { - background-color: $radio-fill-color; -} - -[type="radio"]:checked + label:after { - transform: scale(1.02); -} - -/* Radio With gap */ -[type="radio"].with-gap:checked + label:after { - transform: scale(.5); -} - -/* Focused styles */ -[type="radio"].tabbed:focus + label:before { - box-shadow: 0 0 0 10px rgba(0,0,0,.1); -} - -/* Disabled Radio With gap */ -[type="radio"].with-gap:disabled:checked + label:before { - border: 2px solid $input-disabled-color; -} - -[type="radio"].with-gap:disabled:checked + label:after { - border: none; - background-color: $input-disabled-color; -} - -/* Disabled style */ -[type="radio"]:disabled:not(:checked) + label:before, -[type="radio"]:disabled:checked + label:before { - background-color: transparent; - border-color: $input-disabled-color; -} - -[type="radio"]:disabled + label { - color: $input-disabled-color; -} - -[type="radio"]:disabled:not(:checked) + label:before { - border-color: $input-disabled-color; -} - -[type="radio"]:disabled:checked + label:after { - background-color: $input-disabled-color; - border-color: $input-disabled-solid-color; -} diff --git a/node_modules/materialize-css/sass/components/forms/_range.scss b/node_modules/materialize-css/sass/components/forms/_range.scss deleted file mode 100644 index 7947375..0000000 --- a/node_modules/materialize-css/sass/components/forms/_range.scss +++ /dev/null @@ -1,159 +0,0 @@ -/* Range - ========================================================================== */ - -.range-field { - position: relative; -} - -input[type=range], -input[type=range] + .thumb { - @extend .no-select; - cursor: pointer; -} - -input[type=range] { - position: relative; - background-color: transparent; - border: none; - outline: none; - width: 100%; - margin: 15px 0; - padding: 0; - - &:focus { - outline: none; - } -} - -input[type=range] + .thumb { - position: absolute; - border: none; - height: 0; - width: 0; - border-radius: 50%; - background-color: $radio-fill-color; - top: 10px; - margin-left: -6px; - - transform-origin: 50% 50%; - transform: rotate(-45deg); - - .value { - display: block; - width: 30px; - text-align: center; - color: $radio-fill-color; - font-size: 0; - transform: rotate(45deg); - } - - &.active { - border-radius: 50% 50% 50% 0; - - .value { - color: $input-background; - margin-left: -1px; - margin-top: 8px; - font-size: 10px; - } - } -} - -// WebKit -input[type=range] { - -webkit-appearance: none; -} - -input[type=range]::-webkit-slider-runnable-track { - height: $track-height; - background: #c2c0c2; - border: none; -} - -input[type=range]::-webkit-slider-thumb { - -webkit-appearance: none; - border: none; - height: $range-height; - width: $range-width; - border-radius: 50%; - background-color: $radio-fill-color; - transform-origin: 50% 50%; - margin: -5px 0 0 0; - transition: .3s; -} - -input[type=range]:focus::-webkit-slider-runnable-track { - background: #ccc; -} - -// FireFox -input[type=range] { - /* fix for FF unable to apply focus style bug */ - border: 1px solid white; - - /*required for proper track sizing in FF*/ -} - -input[type=range]::-moz-range-track { - height: $track-height; - background: #ddd; - border: none; -} - -input[type=range]::-moz-range-thumb { - border: none; - height: $range-height; - width: $range-width; - border-radius: 50%; - background: $radio-fill-color; - margin-top: -5px; -} - -// hide the outline behind the border -input[type=range]:-moz-focusring { - outline: 1px solid #fff; - outline-offset: -1px; -} - -input[type=range]:focus::-moz-range-track { - background: #ccc; -} - -// IE 10+ -input[type=range]::-ms-track { - height: $track-height; - - // remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead - background: transparent; - - // leave room for the larger thumb to overflow with a transparent border */ - border-color: transparent; - border-width: 6px 0; - - /*remove default tick marks*/ - color: transparent; -} - -input[type=range]::-ms-fill-lower { - background: #777; -} - -input[type=range]::-ms-fill-upper { - background: #ddd; -} - -input[type=range]::-ms-thumb { - border: none; - height: $range-height; - width: $range-width; - border-radius: 50%; - background: $radio-fill-color; -} - -input[type=range]:focus::-ms-fill-lower { - background: #888; -} - -input[type=range]:focus::-ms-fill-upper { - background: #ccc; -} diff --git a/node_modules/materialize-css/sass/components/forms/_select.scss b/node_modules/materialize-css/sass/components/forms/_select.scss deleted file mode 100644 index 687d497..0000000 --- a/node_modules/materialize-css/sass/components/forms/_select.scss +++ /dev/null @@ -1,121 +0,0 @@ -/* Select Field - ========================================================================== */ - -select { display: none; } -select.browser-default { display: block; } - -select { - background-color: $select-background; - width: 100%; - padding: $select-padding; - border: $select-border; - border-radius: $select-radius; - height: $input-height; -} - -.select-label { - position: absolute; -} - -.select-wrapper { - position: relative; - - input.select-dropdown { - position: relative; - cursor: pointer; - background-color: transparent; - border: none; - border-bottom: $input-border; - outline: none; - height: $input-height; - line-height: $input-height; - width: 100%; - font-size: $input-font-size; - margin: $input-margin; - padding: 0; - display: block; - } - - span.caret { - color: initial; - position: absolute; - right: 0; - top: 0; - bottom: 0; - height: 10px; - margin: auto 0; - font-size: 10px; - line-height: 10px; - - &.disabled { - color: $input-disabled-color; - } - } - - & + label { - position: absolute; - top: -14px; - font-size: $label-font-size; - } -} - -// Disabled styles -select:disabled { - color: rgba(0,0,0,.3); -} - -.select-wrapper input.select-dropdown:disabled { - color: rgba(0,0,0,.3); - cursor: default; - -webkit-user-select: none; /* webkit (safari, chrome) browsers */ - -moz-user-select: none; /* mozilla browsers */ - -ms-user-select: none; /* IE10+ */ - border-bottom: 1px solid rgba(0,0,0,.3); -} - -.select-wrapper i { - color: $select-disabled-color; -} - -.select-dropdown li.disabled, -.select-dropdown li.disabled > span, -.select-dropdown li.optgroup { - color: $select-disabled-color; - background-color: transparent; -} - -// Prefix Icons -.prefix ~ .select-wrapper { - margin-left: 3rem; - width: 92%; - width: calc(100% - 3rem); -} - -.prefix ~ label { margin-left: 3rem; } - -// Icons -.select-dropdown li { - img { - height: $dropdown-item-height - 10; - width: $dropdown-item-height - 10; - margin: 5px 15px; - float: right; - } -} - -// Optgroup styles -.select-dropdown li.optgroup { - border-top: 1px solid $dropdown-hover-bg-color; - - &.selected > span { - color: rgba(0, 0, 0, .7); - } - - & > span { - color: rgba(0, 0, 0, .4); - } - - & ~ li.optgroup-option { - padding-left: 1rem; - } -} diff --git a/node_modules/materialize-css/sass/components/forms/_switches.scss b/node_modules/materialize-css/sass/components/forms/_switches.scss deleted file mode 100644 index 2c6655a..0000000 --- a/node_modules/materialize-css/sass/components/forms/_switches.scss +++ /dev/null @@ -1,78 +0,0 @@ -/* Switch - ========================================================================== */ - -.switch, -.switch * { - -webkit-user-select: none; - -moz-user-select: none; - -khtml-user-select: none; - -ms-user-select: none; -} - -.switch label { - cursor: pointer; -} - -.switch label input[type=checkbox] { - opacity: 0; - width: 0; - height: 0; - - &:checked + .lever { - background-color: $switch-checked-lever-bg; - - &:after { - background-color: $switch-bg-color; - left: 24px; - } - } -} - -.switch label .lever { - content: ""; - display: inline-block; - position: relative; - width: 40px; - height: 15px; - background-color: $switch-unchecked-lever-bg; - border-radius: $switch-radius; - margin-right: 10px; - transition: background 0.3s ease; - vertical-align: middle; - margin: 0 16px; - - &:after { - content: ""; - position: absolute; - display: inline-block; - width: 21px; - height: 21px; - background-color: $switch-unchecked-bg; - border-radius: 21px; - box-shadow: 0 1px 3px 1px rgba(0,0,0,.4); - left: -5px; - top: -3px; - transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease; - } -} - -// Switch active style -input[type=checkbox]:checked:not(:disabled) ~ .lever:active::after, -input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after { - box-shadow: 0 1px 3px 1px rgba(0,0,0,.4), 0 0 0 15px transparentize($switch-bg-color, .9); -} - -input[type=checkbox]:not(:disabled) ~ .lever:active:after, -input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after { - box-shadow: 0 1px 3px 1px rgba(0,0,0,.4), 0 0 0 15px rgba(0, 0, 0, .08); -} - -// Disabled Styles -.switch input[type=checkbox][disabled] + .lever { - cursor: default; -} - -.switch label input[type=checkbox][disabled] + .lever:after, -.switch label input[type=checkbox][disabled]:checked + .lever:after { - background-color: $input-disabled-solid-color; -} diff --git a/node_modules/materialize-css/sass/ghpages-materialize.scss b/node_modules/materialize-css/sass/ghpages-materialize.scss deleted file mode 100644 index b7ac59f..0000000 --- a/node_modules/materialize-css/sass/ghpages-materialize.scss +++ /dev/null @@ -1,7 +0,0 @@ -@charset "UTF-8"; - -// import materialize -@import "materialize"; - -// Custom style -@import "style"; diff --git a/node_modules/materialize-css/sass/materialize.scss b/node_modules/materialize-css/sass/materialize.scss deleted file mode 100644 index 9f5ce84..0000000 --- a/node_modules/materialize-css/sass/materialize.scss +++ /dev/null @@ -1,42 +0,0 @@ -@charset "UTF-8"; - -// Mixins -// @import "components/prefixer"; -@import "components/mixins"; -@import "components/color"; - -// Variables; -@import "components/variables"; - -// Reset -@import "components/normalize"; - -// components -@import "components/global"; -@import "components/badges"; -@import "components/icons-material-design"; -@import "components/grid"; -@import "components/navbar"; -@import "components/roboto"; -@import "components/typography"; -@import "components/transitions"; -@import "components/cards"; -@import "components/toast"; -@import "components/tabs"; -@import "components/tooltip"; -@import "components/buttons"; -@import "components/dropdown"; -@import "components/waves"; -@import "components/modal"; -@import "components/collapsible"; -@import "components/chips"; -@import "components/materialbox"; -@import "components/forms/forms"; -@import "components/table_of_contents"; -@import "components/sideNav"; -@import "components/preloader"; -@import "components/slider"; -@import "components/carousel"; -@import "components/date_picker/default"; -@import "components/date_picker/default.date"; -@import "components/date_picker/default.time"; diff --git a/node_modules/materialize-css/scrollfire.html b/node_modules/materialize-css/scrollfire.html deleted file mode 100644 index fa313ee..0000000 --- a/node_modules/materialize-css/scrollfire.html +++ /dev/null @@ -1,326 +0,0 @@ - - - - - - - - - ScrollFire - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                - -
                - -
                -

                Introduction

                -

                ScrollFire is a jQuery Plugin that executes callback functions depending on how far into the page you've scrolled. We'll show you how you can use this plugin with many demos and examples.

                -
                - - -
                -

                jQuery Plugin Initialization

                -
                
                -  var options = [
                -    {selector: '.class', offset: 200, callback: customCallbackFunc } },
                -    {selector: '.other-class', offset: 200, callback: function() {
                -      customCallbackFunc();
                -    } },
                -  ];
                -  Materialize.scrollFire(options);
                -        
                -
                - -
                -

                jQuery Plugin Options

                - - - - - - - - - - - - - - - - - - - - - - -
                Option NameDescription
                selectorThe selector for the element that is being tracked.
                offsetIf this is 0, the callback will be fired when the selector element is at the very bottom of the user's window.
                callbackExecute a callback function when the user scrolls to the threshold. It will only be called once.
                The callback provides a parameter which refers to the current element selected.
                - - -

                ScrollFire Demo

                -

                Scroll through slowly to get sense of what ScrollFire can do for you. This is the ScrollFire code that we have used on this page.

                -
                -    
                -    var options = [
                -      {selector: '#staggered-test', offset: 50, callback: function(el) {
                -        Materialize.toast("This is our ScrollFire Demo!", 1500 );
                -      } },
                -      {selector: '#staggered-test', offset: 205, callback: function(el) {
                -        Materialize.toast("Please continue scrolling!", 1500 );
                -      } },
                -      {selector: '#staggered-test', offset: 400, callback: function(el) {
                -        Materialize.showStaggeredList($(el));
                -      } },
                -      {selector: '#image-test', offset: 500, callback: function(el) {
                -        Materialize.fadeInImage($(el));
                -      } }
                -    ];
                -    Materialize.scrollFire(options);
                -        
                - - - -
                - - - -
                - -
                -
                -
                - - -
                - -
                -
                - -
                -
                - - - - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/scrollspy.html b/node_modules/materialize-css/scrollspy.html deleted file mode 100644 index fd03a95..0000000 --- a/node_modules/materialize-css/scrollspy.html +++ /dev/null @@ -1,273 +0,0 @@ - - - - - - - - - Scrollspy - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                - -
                - -
                -

                Introduction

                -

                Scrollspy is a jQuery plugin that tracks certain elements and which element the user's screen is currently centered on. Our main demo of this is our table of contents on every documentation page to the right. Clicking on these links will also scroll the page to that element.

                -
                - - -
                -

                Table of Contents Structure

                -
                
                -  <div class="row">
                -    <div class="col s12 m9 l10">
                -      <div id="introduction" class="section scrollspy">
                -        <p>Content </p>
                -      </div>
                -
                -      <div id="structure" class="section scrollspy">
                -        <p>Content </p>
                -      </div>
                -
                -      <div id="initialization" class="section scrollspy">
                -        <p>Content </p>
                -      </div>
                -    </div>
                -    <div class="col hide-on-small-only m3 l2">
                -      <ul class="section table-of-contents">
                -        <li><a href="#introduction">Introduction</a></li>
                -        <li><a href="#structure">Structure</a></li>
                -        <li><a href="#initialization">Intialization</a></li>
                -      </ul>
                -    </div>
                -  </div>
                -        
                -
                - - -
                -

                jQuery Plugin Initialization

                -
                
                -  $(document).ready(function(){
                -    $('.scrollspy').scrollSpy();
                -  });
                -        
                -
                - - -
                -

                jQuery Plugin Options

                - - - - - - - - - - - - - - -
                Option NameDescription
                scrollOffsetOffset for centering element when scrolled to. Default: 200
                -
                - -
                - - -
                -
                -
                - - -
                - -
                -
                - -
                -
                - - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/shadow.html b/node_modules/materialize-css/shadow.html deleted file mode 100644 index 2307d8f..0000000 --- a/node_modules/materialize-css/shadow.html +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - - - - Shadow - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                - -
                - -
                -

                In material design, everything should have a certain z-depth that determines how far raised or close to the page the element is.

                -

                You can easily apply this shadow effect by adding a class="z-depth-2" to an HTML tag. Alternatively you can extend any of these shadows with Sass using @extend .z-depth-2. A z-depth-0 can be used to remove shadows from elements that have z-depths by default.

                -
                -
                -

                -
                -
                -

                -
                -
                -

                -
                -
                -

                -
                -
                -

                -
                -
                -

                -
                -
                -
                
                -    <div class="col s12 m2">
                -      <p class="z-depth-1">z-depth-1</p>
                -    </div>
                -    <div class="col s12 m2">
                -      <p class="z-depth-2">z-depth-2</p>
                -    </div>
                -    <div class="col s12 m2">
                -      <p class="z-depth-3">z-depth-3</p>
                -    </div>
                -    <div class="col s12 m2">
                -      <p class="z-depth-4">z-depth-4</p>
                -    </div>
                -    <div class="col s12 m2">
                -      <p class="z-depth-5">z-depth-5</p>
                -    </div>
                -        
                -
                -
                - -
                -
                -
                - - -
                -
                - -
                -
                -
                - -
                -
                -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/showcase.html b/node_modules/materialize-css/showcase.html deleted file mode 100644 index b0ee4df..0000000 --- a/node_modules/materialize-css/showcase.html +++ /dev/null @@ -1,299 +0,0 @@ - - - - - - - - - Showcase - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                -
                -

                - Submit your site -

                - - -
                -
                - -
                - - -
                - -
                - -
                Emerald
                -
                -
                - -
                Caliber
                -
                -
                - -
                -
                - -
                Close Heat
                -
                -
                - -
                Stamplay
                -
                -
                - -
                RDX Sports
                -
                -
                - -
                - -
                - -
                Mako
                -
                -
                - -
                Straphq
                -
                -
                - -
                - - -
                - -
                Adbeus
                -
                -
                - -
                -
                - -
                Roboterwelt
                -
                -
                - -
                Joel Cox
                -
                - -
                - -
                -
                - -
                eadBox
                -
                -
                - -
                Webonise
                -
                -
                - -
                Kenya Apps
                -
                - -
                - -
                - -
                - - -
                - - - - - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/side-nav.html b/node_modules/materialize-css/side-nav.html deleted file mode 100644 index b3d6de4..0000000 --- a/node_modules/materialize-css/side-nav.html +++ /dev/null @@ -1,365 +0,0 @@ - - - - - - - - - SideNav - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                - -
                - -
                -

                Introduction

                -

                This is a slide out menu. You can add a dropdown to your sidebar by using our collapsible component. If you want to see a demo, our sidebar will use this on smaller screens. To use this in conjunction with a fullscreen navigation, you have to use two copies of the same UL.

                - - Side nav demo - - - -

                HTML Structure

                -
                
                -  <ul id="slide-out" class="side-nav">
                -    <li><div class="userView">
                -      <div class="background">
                -        <img src="images/office.jpg">
                -      </div>
                -      <a href="#!user"><img class="circle" src="images/yuna.jpg"></a>
                -      <a href="#!name"><span class="white-text name">John Doe</span></a>
                -      <a href="#!email"><span class="white-text email">jdandturk@gmail.com</span></a>
                -    </div></li>
                -    <li><a href="#!"><i class="material-icons">cloud</i>First Link With Icon</a></li>
                -    <li><a href="#!">Second Link</a></li>
                -    <li><div class="divider"></div></li>
                -    <li><a class="subheader">Subheader</a></li>
                -    <li><a class="waves-effect" href="#!">Third Link With Waves</a></li>
                -  </ul>
                -  <a href="#" data-activates="slide-out" class="button-collapse"><i class="material-icons">menu</i></a>
                -        
                -
                - -
                -

                jQuery Plugin Initialization

                -
                
                -  // Initialize collapse button
                -  $(".button-collapse").sideNav();
                -  // Initialize collapsible (uncomment the line below if you use the dropdown variation)
                -  //$('.collapsible').collapsible();
                -        
                -
                - - -
                -

                Options

                -

                You can customize the sideNav by setting your own width and the alignment of the menu.

                -
                
                -  $('.button-collapse').sideNav({
                -      menuWidth: 300, // Default is 300
                -      edge: 'right', // Choose the horizontal origin
                -      closeOnClick: true, // Closes side-nav on <a> clicks, useful for Angular/Meteor
                -      draggable: true // Choose whether you can drag to open on touch screens
                -    }
                -  );
                -        
                -
                - -
                -

                jQuery Plugin Methods

                -

                We have methods to show and hide your sidebar you can use to programmatically control your sidebar.

                -
                
                -  // Show sideNav
                -  $('.button-collapse').sideNav('show');
                -  // Hide sideNav
                -  $('.button-collapse').sideNav('hide');
                -  // Destroy sideNav
                -  $('.button-collapse').sideNav('destroy');
                -        
                -
                - -
                -

                Variations

                -

                - Here are some useful variations and additional elements you can add to your sidebar. -

                - -

                Dropdown HTML Structure

                -

                Add collapsible menus to your sidebar.

                -
                
                -    <ul id="slide-out" class="side-nav">
                -      <li><a href="#!">First Sidebar Link</a></li>
                -      <li><a href="#!">Second Sidebar Link</a></li>
                -      <li class="no-padding">
                -        <ul class="collapsible collapsible-accordion">
                -          <li>
                -            <a class="collapsible-header">Dropdown<i class="material-icons">arrow_drop_down</i></a>
                -            <div class="collapsible-body">
                -              <ul>
                -                <li><a href="#!">First</a></li>
                -                <li><a href="#!">Second</a></li>
                -                <li><a href="#!">Third</a></li>
                -                <li><a href="#!">Fourth</a></li>
                -              </ul>
                -            </div>
                -          </li>
                -        </ul>
                -      </li>
                -    </ul>
                -    <ul class="right hide-on-med-and-down">
                -      <li><a href="#!">First Sidebar Link</a></li>
                -      <li><a href="#!">Second Sidebar Link</a></li>
                -      <li><a class="dropdown-button" href="#!" data-activates="dropdown1">Dropdown<i class="material-icons right">arrow_drop_down</i></a></li>
                -      <ul id='dropdown1' class='dropdown-content'>
                -        <li><a href="#!">First</a></li>
                -        <li><a href="#!">Second</a></li>
                -        <li><a href="#!">Third</a></li>
                -        <li><a href="#!">Fourth</a></li>
                -      </ul>
                -    </ul>
                -    <a href="#" data-activates="slide-out" class="button-collapse"><i class="material-icons">menu</i></a>
                -          

                - -

                Fullscreen HTML Structure

                -

                If you want the menu to be accessible on all screensizes you just have to add a simple helper class show-on-large to the .button-collapse.

                - -
                
                -    <ul id="slide-out" class="side-nav">
                -      <li><a href="#!">First Sidebar Link</a></li>
                -      <li><a href="#!">Second Sidebar Link</a></li>
                -    </ul>
                -    <a href="#" data-activates="slide-out" class="button-collapse show-on-large"><i class="material-icons">menu</i></a>
                -          

                - -

                Fixed HTML Structure

                -

                Add the class fixed to have the sideNav be fixed and open on large screens and hides to the regular functionality on smaller screens. Our sideNav on the left is an example of this.

                -
                
                -    <ul id="slide-out" class="side-nav fixed">
                -      <li><a href="#!">First Sidebar Link</a></li>
                -      <li><a href="#!">Second Sidebar Link</a></li>
                -    </ul>
                -    <a href="#" data-activates="slide-out" class="button-collapse"><i class="material-icons">menu</i></a>
                -          
                -

                If you are planning on using this you will have to offset your content by the width of the side menu. Place the padding on where the offset content will be, which in our case is in header, main and footer.

                -
                
                -    header, main, footer {
                -      padding-left: 300px;
                -    }
                -
                -    @media only screen and (max-width : 992px) {
                -      header, main, footer {
                -        padding-left: 0;
                -      }
                -    }
                -          
                -
                -
                - - -
                - -
                - -
                -
                - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/sitemap.xml b/node_modules/materialize-css/sitemap.xml deleted file mode 100644 index 4371dc7..0000000 --- a/node_modules/materialize-css/sitemap.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - http://materializecss.com/about.html - 2014-11-27 - - - http://materializecss.com/badges.html - 2014-11-27 - - - http://materializecss.com/index.html - 2014-11-27 - - - http://materializecss.com/ - 2014-11-27 - - - http://materializecss.com/getting-started.html - 2014-11-27 - - - http://materializecss.com/collapsible.html - 2014-11-27 - - - http://materializecss.com/bin/materialize-sass_v0.82.zip - 2014-11-27 - - - http://materializecss.com/bin/materialize_v0.82.zip - 2014-11-27 - - - http://materializecss.com/parallax.html - 2014-11-27 - - - http://materializecss.com/sass.html - 2014-11-27 - - diff --git a/node_modules/materialize-css/table.html b/node_modules/materialize-css/table.html deleted file mode 100644 index c066f1b..0000000 --- a/node_modules/materialize-css/table.html +++ /dev/null @@ -1,488 +0,0 @@ - - - - - - - - - Table - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                - -
                - - -
                -

                Tables are a nice way to organize a lot of data. We provide a few utility classes to help you style your table as easily as possible. In addition, to improve mobile experience, all tables on mobile-screen widths are centered automatically.

                -

                Borderless Table

                -
                -
                -

                Tables are borderless by default.

                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameItem NameItem Price
                AlvinEclair$0.87
                AlanJellybean$3.76
                JonathanLollipop$7.00
                ShannonKitKat$9.99
                -
                -
                -
                
                -      <table>
                -        <thead>
                -          <tr>
                -              <th data-field="id">Name</th>
                -              <th data-field="name">Item Name</th>
                -              <th data-field="price">Item Price</th>
                -          </tr>
                -        </thead>
                -
                -        <tbody>
                -          <tr>
                -            <td>Alvin</td>
                -            <td>Eclair</td>
                -            <td>$0.87</td>
                -          </tr>
                -          <tr>
                -            <td>Alan</td>
                -            <td>Jellybean</td>
                -            <td>$3.76</td>
                -          </tr>
                -          <tr>
                -            <td>Jonathan</td>
                -            <td>Lollipop</td>
                -            <td>$7.00</td>
                -          </tr>
                -        </tbody>
                -      </table>
                -            
                -
                -
                -
                - -
                -

                Bordered Table

                -
                -
                -

                Add class="bordered" to the table tag for a bordered table

                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameItem NameItem Price
                AlvinEclair$0.87
                AlanJellybean$3.76
                JonathanLollipop$7.00
                ShannonKitKat$9.99
                -
                -
                -
                - -
                -

                Striped Table

                -
                -
                -

                Add class="striped" to the table tag for a striped table

                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameItem NameItem Price
                AlvinEclair$0.87
                AlanJellybean$3.76
                JonathanLollipop$7.00
                ShannonKitKat$9.99
                -
                -
                -
                - -
                -

                Highlight Table

                -
                -
                -

                Add class="highlight" to the table tag for a highlight table

                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameItem NameItem Price
                AlvinEclair$0.87
                AlanJellybean$3.76
                JonathanLollipop$7.00
                ShannonKitKat$9.99
                -
                -
                -
                - -
                -

                Centered Table

                -
                -
                -

                Add class="centered" to the table tag to center align all the text in the table

                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameItem NameItem Price
                AlvinEclair$0.87
                AlanJellybean$3.76
                JonathanLollipop$7.00
                ShannonKitKat$9.99
                -
                -
                - -
                - -
                -

                Responsive Table

                -
                -
                -

                Add class="responsive-table" to the table tag to make the table horizontally scrollable on smaller screen widths.

                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                NameItem NameItem Price
                AlvinEclair$0.87
                AlanJellybean$3.76
                JonathanLollipop$7.00
                ShannonKitKat$9.99
                -
                -
                - -
                - - -
                - -
                -
                -
                - - -
                - -
                -
                - -
                -
                - - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/tabs.html b/node_modules/materialize-css/tabs.html deleted file mode 100644 index f3b1631..0000000 --- a/node_modules/materialize-css/tabs.html +++ /dev/null @@ -1,391 +0,0 @@ - - - - - - - - - Tabs - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                - -
                - -
                -

                Introduction

                -

                The tabs structure consists of an unordered list of tabs that have hashes corresponding to tab ids. Then when you click on each tab, only the container with the corresponding tab id will become visible. You can add the class .disabled to make a tab inaccessible.

                - -
                -
                Variable Width TabsDefault
                - -

                Test 1

                -

                Test 2

                -

                Test 3

                -

                Test 4

                - -
                -
                Fixed Width TabsAdd the .tabs-fixed-width class
                - -

                Test 1

                -

                Test 2

                -

                Test 3

                -

                Test 4

                -

                Test 5

                - -
                -
                Scrollable Tabs Tabs automatically become scrollable
                - -

                Test 5

                -

                Test 6

                -

                Test 7

                -

                Test 8

                -

                Test 9

                -

                Test 10

                -

                Test 11

                -

                Test 12

                -

                Test 13

                -

                Test 14

                -

                Test 15

                -
                - - -
                -

                Tabs HTML Structure

                -
                
                -  <div class="row">
                -    <div class="col s12">
                -      <ul class="tabs">
                -        <li class="tab col s3"><a href="#test1">Test 1</a></li>
                -        <li class="tab col s3"><a class="active" href="#test2">Test 2</a></li>
                -        <li class="tab col s3 disabled"><a href="#test3">Disabled Tab</a></li>
                -        <li class="tab col s3"><a href="#test4">Test 4</a></li>
                -      </ul>
                -    </div>
                -    <div id="test1" class="col s12">Test 1</div>
                -    <div id="test2" class="col s12">Test 2</div>
                -    <div id="test3" class="col s12">Test 3</div>
                -    <div id="test4" class="col s12">Test 4</div>
                -  </div>
                -        
                -
                - -
                -

                jQuery Plugin Initialization

                -

                Tabs are initialized automatically, but if you add tabs dynamically you will have to initialize them like this.

                -
                
                -  $(document).ready(function(){
                -    $('ul.tabs').tabs();
                -  });
                -        
                -
                - -
                -

                jQuery Plugin Methods

                -

                You can programmatically trigger a tab change with our select_tab method. You have to input the id of the tab you want to switch to. In the case of our demo it would be either test1, test2, test3, or test4.

                -
                
                -  $(document).ready(function(){
                -    $('ul.tabs').tabs('select_tab', 'tab_id');
                -  });
                -        
                -
                - - -
                -

                jQuery Plugin Options

                - - - - - - - - - - - - - - - - - - - - - - -
                Option NameDescription
                onShowExecute a callback function when the tab is changed.
                The callback provides a parameter which refers to the current tab being shown.
                swipeableSet to true to enable swipeable tabs. This also uses the responsiveThreshold option. Default: false
                responsiveThresholdThe maximum width of the screen, in pixels, where the swipeable functionality initializes. Default: Infinity
                -
                - - -
                -

                Preselecting a tab

                -

                By default, the first tab is selected. But if this is not what you want, you can preselect a tab by either passing in the hash in the url ex:#test2. Or you can add the class active to the a tag.

                -
                
                -  <li class="tab col s2"><a class="active" href="#test3">Test 3</a></li>
                -        
                -
                - - -
                -

                Linking to an External Page

                -

                By default, Materialize tabs will ignore their default anchor behaviour. To force a tab to behave as a regular hyperlink, just specify the target property of that link! A list of target values may be found here.

                -
                
                -  <li class="tab col s2">
                -    <a target="_blank" href="https://github.com/Dogfalo/materialize">External link in new window</a>
                -  </li>
                -  <li class="tab col s2">
                -    <a target="_self" href="https://github.com/Dogfalo/materialize">External link in same window</a>
                -  </li>
                -        
                -
                - - -
                -

                Swipeable Tabs

                -

                By setting the swipeable option to true, you can enable tabs where you can swipe on touch enabled devices to switch tabs. Make sure you keep the tab content divs in the same wrapping container. You can also set the responsiveThreshold option to a screen width in pixels where the swipeable functionality will activate.

                -

                Note: This is also touch compatible! Try swiping with your finger to scroll through the carousel.

                - -
                Test 1
                -
                Test 2
                -
                Test 3
                - -
                
                -  <ul id="tabs-swipe-demo" class="tabs">
                -    <li class="tab col s3"><a href="#test-swipe-1">Test 1</a></li>
                -    <li class="tab col s3"><a class="active" href="#test-swipe-2">Test 2</a></li>
                -    <li class="tab col s3"><a href="#test-swipe-3">Test 3</a></li>
                -  </ul>
                -  <div id="test-swipe-1" class="col s12 blue">Test 1</div>
                -  <div id="test-swipe-2" class="col s12 red">Test 2</div>
                -  <div id="test-swipe-3" class="col s12 green">Test 3</div>
                -        
                -
                - -
                - - - - -
                -
                - - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/templates/masonry-template/LICENSE b/node_modules/materialize-css/templates/masonry-template/LICENSE deleted file mode 100644 index c795dcc..0000000 --- a/node_modules/materialize-css/templates/masonry-template/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Materialize - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/node_modules/materialize-css/templates/masonry-template/background1.jpg b/node_modules/materialize-css/templates/masonry-template/background1.jpg deleted file mode 100644 index e8b388e..0000000 Binary files a/node_modules/materialize-css/templates/masonry-template/background1.jpg and /dev/null differ diff --git a/node_modules/materialize-css/templates/masonry-template/background2.jpg b/node_modules/materialize-css/templates/masonry-template/background2.jpg deleted file mode 100644 index cc0a11c..0000000 Binary files a/node_modules/materialize-css/templates/masonry-template/background2.jpg and /dev/null differ diff --git a/node_modules/materialize-css/templates/masonry-template/background3.jpg b/node_modules/materialize-css/templates/masonry-template/background3.jpg deleted file mode 100644 index 0bc540d..0000000 Binary files a/node_modules/materialize-css/templates/masonry-template/background3.jpg and /dev/null differ diff --git a/node_modules/materialize-css/templates/masonry-template/css/style.css b/node_modules/materialize-css/templates/masonry-template/css/style.css deleted file mode 100644 index d894cbd..0000000 --- a/node_modules/materialize-css/templates/masonry-template/css/style.css +++ /dev/null @@ -1,55 +0,0 @@ -/* Custom Stylesheet */ -/** - * Use this file to override Materialize files so you can update - * the core Materialize files in the future - * - * Made By MaterializeCSS.com - */ - -nav ul a, -nav .brand-logo { - color: #444; -} - -p { - line-height: 2rem; -} - -.button-collapse { - color: #26a69a; -} - -.parallax-container { - min-height: 380px; - line-height: 0; - height: auto; - color: rgba(255,255,255,.9); -} - .parallax-container .section { - width: 100%; - } - -@media only screen and (max-width : 992px) { - .parallax-container .section { - position: absolute; - top: 40%; - } - #index-banner .section { - top: 10%; - } -} - -@media only screen and (max-width : 600px) { - #index-banner .section { - top: 0; - } -} - - -.icon-block { - padding: 0 15px; -} - -footer.page-footer { - margin: 0; -} \ No newline at end of file diff --git a/node_modules/materialize-css/templates/masonry-template/index.html b/node_modules/materialize-css/templates/masonry-template/index.html deleted file mode 100644 index 8ae4e49..0000000 --- a/node_modules/materialize-css/templates/masonry-template/index.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - Parallax Template - Materialize - - - - - - - - -
                -
                -
                -

                -

                Parallax Template

                -
                -
                A modern responsive front-end framework based on Material Design
                -
                - -

                - -
                -
                -
                Unsplashed background img 2
                -
                - - -
                -
                - - -
                -
                -
                -

                -
                Speeds up development
                - -

                We did most of the heavy lifting for you to provide a default stylings that incorporate our custom components. Additionally, we refined animations and transitions to provide a smoother experience for developers.

                -
                -
                - -
                -
                -

                -
                User Experience Focused
                - -

                By utilizing elements and principles of Material Design, we were able to create a framework that incorporates components and animations that provide more feedback to users. Additionally, a single underlying responsive system across all platforms allow for a more unified user experience.

                -
                -
                - -
                -
                -

                -
                Easy to work with
                - -

                We have provided detailed documentation as well as specific code examples to help new users get started. We are also always open to feedback and can answer any questions a user may have about Materialize.

                -
                -
                -
                - -
                -
                - - -
                -
                -
                -
                -
                A modern responsive front-end framework based on Material Design
                -
                -
                -
                -
                Unsplashed background img 2
                -
                - -
                -
                - -
                -
                -

                -

                Contact Us

                -

                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam scelerisque id nunc nec volutpat. Etiam pellentesque tristique arcu, non consequat magna fermentum ac. Cras ut ultricies eros. Maecenas eros justo, ullamcorper a sapien id, viverra ultrices eros. Morbi sem neque, posuere et pretium eget, bibendum sollicitudin lacus. Aliquam eleifend sollicitudin diam, eu mattis nisl maximus sed. Nulla imperdiet semper molestie. Morbi massa odio, condimentum sed ipsum ac, gravida ultrices erat. Nullam eget dignissim mauris, non tristique erat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;

                -
                -
                - -
                -
                - - -
                -
                -
                -
                -
                A modern responsive front-end framework based on Material Design
                -
                -
                -
                -
                Unsplashed background img 3
                -
                - -
                -
                -
                -
                -
                Company Bio
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                - - -
                -
                -
                Settings
                - -
                -
                -
                Connect
                - -
                -
                -
                - -
                - - - - - - - - - diff --git a/node_modules/materialize-css/templates/masonry-template/js/init.js b/node_modules/materialize-css/templates/masonry-template/js/init.js deleted file mode 100644 index dbc6473..0000000 --- a/node_modules/materialize-css/templates/masonry-template/js/init.js +++ /dev/null @@ -1,16 +0,0 @@ -(function($){ - $(function(){ - - $('.button-collapse').sideNav(); - - - var $container = $('#masonry-grid'); - // initialize - $container.masonry({ - columnWidth: '.col', - itemSelector: '.col', - }); - - - }); // end of document ready -})(jQuery); // end of jQuery name space \ No newline at end of file diff --git a/node_modules/materialize-css/templates/masonry-template/js/masonry.pkgd.min.js b/node_modules/materialize-css/templates/masonry-template/js/masonry.pkgd.min.js deleted file mode 100644 index 628bb12..0000000 --- a/node_modules/materialize-css/templates/masonry-template/js/masonry.pkgd.min.js +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Masonry PACKAGED v3.2.2 - * Cascading grid layout library - * http://masonry.desandro.com - * MIT License - * by David DeSandro - */ - -!function(a){function b(){}function c(a){function c(b){b.prototype.option||(b.prototype.option=function(b){a.isPlainObject(b)&&(this.options=a.extend(!0,this.options,b))})}function e(b,c){a.fn[b]=function(e){if("string"==typeof e){for(var g=d.call(arguments,1),h=0,i=this.length;i>h;h++){var j=this[h],k=a.data(j,b);if(k)if(a.isFunction(k[e])&&"_"!==e.charAt(0)){var l=k[e].apply(k,g);if(void 0!==l)return l}else f("no such method '"+e+"' for "+b+" instance");else f("cannot call methods on "+b+" prior to initialization; attempted to call '"+e+"'")}return this}return this.each(function(){var d=a.data(this,b);d?(d.option(e),d._init()):(d=new c(this,e),a.data(this,b,d))})}}if(a){var f="undefined"==typeof console?b:function(a){console.error(a)};return a.bridget=function(a,b){c(b),e(a,b)},a.bridget}}var d=Array.prototype.slice;"function"==typeof define&&define.amd?define("jquery-bridget/jquery.bridget",["jquery"],c):c("object"==typeof exports?require("jquery"):a.jQuery)}(window),function(a){function b(b){var c=a.event;return c.target=c.target||c.srcElement||b,c}var c=document.documentElement,d=function(){};c.addEventListener?d=function(a,b,c){a.addEventListener(b,c,!1)}:c.attachEvent&&(d=function(a,c,d){a[c+d]=d.handleEvent?function(){var c=b(a);d.handleEvent.call(d,c)}:function(){var c=b(a);d.call(a,c)},a.attachEvent("on"+c,a[c+d])});var e=function(){};c.removeEventListener?e=function(a,b,c){a.removeEventListener(b,c,!1)}:c.detachEvent&&(e=function(a,b,c){a.detachEvent("on"+b,a[b+c]);try{delete a[b+c]}catch(d){a[b+c]=void 0}});var f={bind:d,unbind:e};"function"==typeof define&&define.amd?define("eventie/eventie",f):"object"==typeof exports?module.exports=f:a.eventie=f}(this),function(a){function b(a){"function"==typeof a&&(b.isReady?a():g.push(a))}function c(a){var c="readystatechange"===a.type&&"complete"!==f.readyState;b.isReady||c||d()}function d(){b.isReady=!0;for(var a=0,c=g.length;c>a;a++){var d=g[a];d()}}function e(e){return"complete"===f.readyState?d():(e.bind(f,"DOMContentLoaded",c),e.bind(f,"readystatechange",c),e.bind(a,"load",c)),b}var f=a.document,g=[];b.isReady=!1,"function"==typeof define&&define.amd?define("doc-ready/doc-ready",["eventie/eventie"],e):"object"==typeof exports?module.exports=e(require("eventie")):a.docReady=e(a.eventie)}(window),function(){function a(){}function b(a,b){for(var c=a.length;c--;)if(a[c].listener===b)return c;return-1}function c(a){return function(){return this[a].apply(this,arguments)}}var d=a.prototype,e=this,f=e.EventEmitter;d.getListeners=function(a){var b,c,d=this._getEvents();if(a instanceof RegExp){b={};for(c in d)d.hasOwnProperty(c)&&a.test(c)&&(b[c]=d[c])}else b=d[a]||(d[a]=[]);return b},d.flattenListeners=function(a){var b,c=[];for(b=0;be;e++)if(b=c[e]+a,"string"==typeof d[b])return b}}var c="Webkit Moz ms Ms O".split(" "),d=document.documentElement.style;"function"==typeof define&&define.amd?define("get-style-property/get-style-property",[],function(){return b}):"object"==typeof exports?module.exports=b:a.getStyleProperty=b}(window),function(a){function b(a){var b=parseFloat(a),c=-1===a.indexOf("%")&&!isNaN(b);return c&&b}function c(){}function d(){for(var a={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},b=0,c=g.length;c>b;b++){var d=g[b];a[d]=0}return a}function e(c){function e(){if(!m){m=!0;var d=a.getComputedStyle;if(j=function(){var a=d?function(a){return d(a,null)}:function(a){return a.currentStyle};return function(b){var c=a(b);return c||f("Style returned "+c+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),c}}(),k=c("boxSizing")){var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style[k]="border-box";var g=document.body||document.documentElement;g.appendChild(e);var h=j(e);l=200===b(h.width),g.removeChild(e)}}}function h(a){if(e(),"string"==typeof a&&(a=document.querySelector(a)),a&&"object"==typeof a&&a.nodeType){var c=j(a);if("none"===c.display)return d();var f={};f.width=a.offsetWidth,f.height=a.offsetHeight;for(var h=f.isBorderBox=!(!k||!c[k]||"border-box"!==c[k]),m=0,n=g.length;n>m;m++){var o=g[m],p=c[o];p=i(a,p);var q=parseFloat(p);f[o]=isNaN(q)?0:q}var r=f.paddingLeft+f.paddingRight,s=f.paddingTop+f.paddingBottom,t=f.marginLeft+f.marginRight,u=f.marginTop+f.marginBottom,v=f.borderLeftWidth+f.borderRightWidth,w=f.borderTopWidth+f.borderBottomWidth,x=h&&l,y=b(c.width);y!==!1&&(f.width=y+(x?0:r+v));var z=b(c.height);return z!==!1&&(f.height=z+(x?0:s+w)),f.innerWidth=f.width-(r+v),f.innerHeight=f.height-(s+w),f.outerWidth=f.width+t,f.outerHeight=f.height+u,f}}function i(b,c){if(a.getComputedStyle||-1===c.indexOf("%"))return c;var d=b.style,e=d.left,f=b.runtimeStyle,g=f&&f.left;return g&&(f.left=b.currentStyle.left),d.left=c,c=d.pixelLeft,d.left=e,g&&(f.left=g),c}var j,k,l,m=!1;return h}var f="undefined"==typeof console?c:function(a){console.error(a)},g=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"];"function"==typeof define&&define.amd?define("get-size/get-size",["get-style-property/get-style-property"],e):"object"==typeof exports?module.exports=e(require("desandro-get-style-property")):a.getSize=e(a.getStyleProperty)}(window),function(a){function b(a,b){return a[g](b)}function c(a){if(!a.parentNode){var b=document.createDocumentFragment();b.appendChild(a)}}function d(a,b){c(a);for(var d=a.parentNode.querySelectorAll(b),e=0,f=d.length;f>e;e++)if(d[e]===a)return!0;return!1}function e(a,d){return c(a),b(a,d)}var f,g=function(){if(a.matchesSelector)return"matchesSelector";for(var b=["webkit","moz","ms","o"],c=0,d=b.length;d>c;c++){var e=b[c],f=e+"MatchesSelector";if(a[f])return f}}();if(g){var h=document.createElement("div"),i=b(h,"div");f=i?b:e}else f=d;"function"==typeof define&&define.amd?define("matches-selector/matches-selector",[],function(){return f}):"object"==typeof exports?module.exports=f:window.matchesSelector=f}(Element.prototype),function(a){function b(a,b){for(var c in b)a[c]=b[c];return a}function c(a){for(var b in a)return!1;return b=null,!0}function d(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})}function e(a,e,f){function h(a,b){a&&(this.element=a,this.layout=b,this.position={x:0,y:0},this._create())}var i=f("transition"),j=f("transform"),k=i&&j,l=!!f("perspective"),m={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend",transition:"transitionend"}[i],n=["transform","transition","transitionDuration","transitionProperty"],o=function(){for(var a={},b=0,c=n.length;c>b;b++){var d=n[b],e=f(d);e&&e!==d&&(a[d]=e)}return a}();b(h.prototype,a.prototype),h.prototype._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},h.prototype.handleEvent=function(a){var b="on"+a.type;this[b]&&this[b](a)},h.prototype.getSize=function(){this.size=e(this.element)},h.prototype.css=function(a){var b=this.element.style;for(var c in a){var d=o[c]||c;b[d]=a[c]}},h.prototype.getPosition=function(){var a=g(this.element),b=this.layout.options,c=b.isOriginLeft,d=b.isOriginTop,e=parseInt(a[c?"left":"right"],10),f=parseInt(a[d?"top":"bottom"],10);e=isNaN(e)?0:e,f=isNaN(f)?0:f;var h=this.layout.size;e-=c?h.paddingLeft:h.paddingRight,f-=d?h.paddingTop:h.paddingBottom,this.position.x=e,this.position.y=f},h.prototype.layoutPosition=function(){var a=this.layout.size,b=this.layout.options,c={};b.isOriginLeft?(c.left=this.position.x+a.paddingLeft+"px",c.right=""):(c.right=this.position.x+a.paddingRight+"px",c.left=""),b.isOriginTop?(c.top=this.position.y+a.paddingTop+"px",c.bottom=""):(c.bottom=this.position.y+a.paddingBottom+"px",c.top=""),this.css(c),this.emitEvent("layout",[this])};var p=l?function(a,b){return"translate3d("+a+"px, "+b+"px, 0)"}:function(a,b){return"translate("+a+"px, "+b+"px)"};h.prototype._transitionTo=function(a,b){this.getPosition();var c=this.position.x,d=this.position.y,e=parseInt(a,10),f=parseInt(b,10),g=e===this.position.x&&f===this.position.y;if(this.setPosition(a,b),g&&!this.isTransitioning)return void this.layoutPosition();var h=a-c,i=b-d,j={},k=this.layout.options;h=k.isOriginLeft?h:-h,i=k.isOriginTop?i:-i,j.transform=p(h,i),this.transition({to:j,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},h.prototype.goTo=function(a,b){this.setPosition(a,b),this.layoutPosition()},h.prototype.moveTo=k?h.prototype._transitionTo:h.prototype.goTo,h.prototype.setPosition=function(a,b){this.position.x=parseInt(a,10),this.position.y=parseInt(b,10)},h.prototype._nonTransition=function(a){this.css(a.to),a.isCleaning&&this._removeStyles(a.to);for(var b in a.onTransitionEnd)a.onTransitionEnd[b].call(this)},h.prototype._transition=function(a){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(a);var b=this._transn;for(var c in a.onTransitionEnd)b.onEnd[c]=a.onTransitionEnd[c];for(c in a.to)b.ingProperties[c]=!0,a.isCleaning&&(b.clean[c]=!0);if(a.from){this.css(a.from);var d=this.element.offsetHeight;d=null}this.enableTransition(a.to),this.css(a.to),this.isTransitioning=!0};var q=j&&d(j)+",opacity";h.prototype.enableTransition=function(){this.isTransitioning||(this.css({transitionProperty:q,transitionDuration:this.layout.options.transitionDuration}),this.element.addEventListener(m,this,!1))},h.prototype.transition=h.prototype[i?"_transition":"_nonTransition"],h.prototype.onwebkitTransitionEnd=function(a){this.ontransitionend(a)},h.prototype.onotransitionend=function(a){this.ontransitionend(a)};var r={"-webkit-transform":"transform","-moz-transform":"transform","-o-transform":"transform"};h.prototype.ontransitionend=function(a){if(a.target===this.element){var b=this._transn,d=r[a.propertyName]||a.propertyName;if(delete b.ingProperties[d],c(b.ingProperties)&&this.disableTransition(),d in b.clean&&(this.element.style[a.propertyName]="",delete b.clean[d]),d in b.onEnd){var e=b.onEnd[d];e.call(this),delete b.onEnd[d]}this.emitEvent("transitionEnd",[this])}},h.prototype.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(m,this,!1),this.isTransitioning=!1},h.prototype._removeStyles=function(a){var b={};for(var c in a)b[c]="";this.css(b)};var s={transitionProperty:"",transitionDuration:""};return h.prototype.removeTransitionStyles=function(){this.css(s)},h.prototype.removeElem=function(){this.element.parentNode.removeChild(this.element),this.emitEvent("remove",[this])},h.prototype.remove=function(){if(!i||!parseFloat(this.layout.options.transitionDuration))return void this.removeElem();var a=this;this.on("transitionEnd",function(){return a.removeElem(),!0}),this.hide()},h.prototype.reveal=function(){delete this.isHidden,this.css({display:""});var a=this.layout.options;this.transition({from:a.hiddenStyle,to:a.visibleStyle,isCleaning:!0})},h.prototype.hide=function(){this.isHidden=!0,this.css({display:""});var a=this.layout.options;this.transition({from:a.visibleStyle,to:a.hiddenStyle,isCleaning:!0,onTransitionEnd:{opacity:function(){this.isHidden&&this.css({display:"none"})}}})},h.prototype.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},h}var f=a.getComputedStyle,g=f?function(a){return f(a,null)}:function(a){return a.currentStyle};"function"==typeof define&&define.amd?define("outlayer/item",["eventEmitter/EventEmitter","get-size/get-size","get-style-property/get-style-property"],e):"object"==typeof exports?module.exports=e(require("wolfy87-eventemitter"),require("get-size"),require("desandro-get-style-property")):(a.Outlayer={},a.Outlayer.Item=e(a.EventEmitter,a.getSize,a.getStyleProperty))}(window),function(a){function b(a,b){for(var c in b)a[c]=b[c];return a}function c(a){return"[object Array]"===l.call(a)}function d(a){var b=[];if(c(a))b=a;else if(a&&"number"==typeof a.length)for(var d=0,e=a.length;e>d;d++)b.push(a[d]);else b.push(a);return b}function e(a,b){var c=n(b,a);-1!==c&&b.splice(c,1)}function f(a){return a.replace(/(.)([A-Z])/g,function(a,b,c){return b+"-"+c}).toLowerCase()}function g(c,g,l,n,o,p){function q(a,c){if("string"==typeof a&&(a=h.querySelector(a)),!a||!m(a))return void(i&&i.error("Bad "+this.constructor.namespace+" element: "+a));this.element=a,this.options=b({},this.constructor.defaults),this.option(c);var d=++r;this.element.outlayerGUID=d,s[d]=this,this._create(),this.options.isInitLayout&&this.layout()}var r=0,s={};return q.namespace="outlayer",q.Item=p,q.defaults={containerStyle:{position:"relative"},isInitLayout:!0,isOriginLeft:!0,isOriginTop:!0,isResizeBound:!0,isResizingContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}},b(q.prototype,l.prototype),q.prototype.option=function(a){b(this.options,a)},q.prototype._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),b(this.element.style,this.options.containerStyle),this.options.isResizeBound&&this.bindResize()},q.prototype.reloadItems=function(){this.items=this._itemize(this.element.children)},q.prototype._itemize=function(a){for(var b=this._filterFindItemElements(a),c=this.constructor.Item,d=[],e=0,f=b.length;f>e;e++){var g=b[e],h=new c(g,this);d.push(h)}return d},q.prototype._filterFindItemElements=function(a){a=d(a);for(var b=this.options.itemSelector,c=[],e=0,f=a.length;f>e;e++){var g=a[e];if(m(g))if(b){o(g,b)&&c.push(g);for(var h=g.querySelectorAll(b),i=0,j=h.length;j>i;i++)c.push(h[i])}else c.push(g)}return c},q.prototype.getItemElements=function(){for(var a=[],b=0,c=this.items.length;c>b;b++)a.push(this.items[b].element);return a},q.prototype.layout=function(){this._resetLayout(),this._manageStamps();var a=void 0!==this.options.isLayoutInstant?this.options.isLayoutInstant:!this._isLayoutInited;this.layoutItems(this.items,a),this._isLayoutInited=!0},q.prototype._init=q.prototype.layout,q.prototype._resetLayout=function(){this.getSize()},q.prototype.getSize=function(){this.size=n(this.element)},q.prototype._getMeasurement=function(a,b){var c,d=this.options[a];d?("string"==typeof d?c=this.element.querySelector(d):m(d)&&(c=d),this[a]=c?n(c)[b]:d):this[a]=0},q.prototype.layoutItems=function(a,b){a=this._getItemsForLayout(a),this._layoutItems(a,b),this._postLayout()},q.prototype._getItemsForLayout=function(a){for(var b=[],c=0,d=a.length;d>c;c++){var e=a[c];e.isIgnored||b.push(e)}return b},q.prototype._layoutItems=function(a,b){function c(){d.emitEvent("layoutComplete",[d,a])}var d=this;if(!a||!a.length)return void c();this._itemsOn(a,"layout",c);for(var e=[],f=0,g=a.length;g>f;f++){var h=a[f],i=this._getItemLayoutPosition(h);i.item=h,i.isInstant=b||h.isLayoutInstant,e.push(i)}this._processLayoutQueue(e)},q.prototype._getItemLayoutPosition=function(){return{x:0,y:0}},q.prototype._processLayoutQueue=function(a){for(var b=0,c=a.length;c>b;b++){var d=a[b];this._positionItem(d.item,d.x,d.y,d.isInstant)}},q.prototype._positionItem=function(a,b,c,d){d?a.goTo(b,c):a.moveTo(b,c)},q.prototype._postLayout=function(){this.resizeContainer()},q.prototype.resizeContainer=function(){if(this.options.isResizingContainer){var a=this._getContainerSize();a&&(this._setContainerMeasure(a.width,!0),this._setContainerMeasure(a.height,!1))}},q.prototype._getContainerSize=k,q.prototype._setContainerMeasure=function(a,b){if(void 0!==a){var c=this.size;c.isBorderBox&&(a+=b?c.paddingLeft+c.paddingRight+c.borderLeftWidth+c.borderRightWidth:c.paddingBottom+c.paddingTop+c.borderTopWidth+c.borderBottomWidth),a=Math.max(a,0),this.element.style[b?"width":"height"]=a+"px"}},q.prototype._itemsOn=function(a,b,c){function d(){return e++,e===f&&c.call(g),!0}for(var e=0,f=a.length,g=this,h=0,i=a.length;i>h;h++){var j=a[h];j.on(b,d)}},q.prototype.ignore=function(a){var b=this.getItem(a);b&&(b.isIgnored=!0)},q.prototype.unignore=function(a){var b=this.getItem(a);b&&delete b.isIgnored},q.prototype.stamp=function(a){if(a=this._find(a)){this.stamps=this.stamps.concat(a);for(var b=0,c=a.length;c>b;b++){var d=a[b];this.ignore(d)}}},q.prototype.unstamp=function(a){if(a=this._find(a))for(var b=0,c=a.length;c>b;b++){var d=a[b];e(d,this.stamps),this.unignore(d)}},q.prototype._find=function(a){return a?("string"==typeof a&&(a=this.element.querySelectorAll(a)),a=d(a)):void 0},q.prototype._manageStamps=function(){if(this.stamps&&this.stamps.length){this._getBoundingRect();for(var a=0,b=this.stamps.length;b>a;a++){var c=this.stamps[a];this._manageStamp(c)}}},q.prototype._getBoundingRect=function(){var a=this.element.getBoundingClientRect(),b=this.size;this._boundingRect={left:a.left+b.paddingLeft+b.borderLeftWidth,top:a.top+b.paddingTop+b.borderTopWidth,right:a.right-(b.paddingRight+b.borderRightWidth),bottom:a.bottom-(b.paddingBottom+b.borderBottomWidth)}},q.prototype._manageStamp=k,q.prototype._getElementOffset=function(a){var b=a.getBoundingClientRect(),c=this._boundingRect,d=n(a),e={left:b.left-c.left-d.marginLeft,top:b.top-c.top-d.marginTop,right:c.right-b.right-d.marginRight,bottom:c.bottom-b.bottom-d.marginBottom};return e},q.prototype.handleEvent=function(a){var b="on"+a.type;this[b]&&this[b](a)},q.prototype.bindResize=function(){this.isResizeBound||(c.bind(a,"resize",this),this.isResizeBound=!0)},q.prototype.unbindResize=function(){this.isResizeBound&&c.unbind(a,"resize",this),this.isResizeBound=!1},q.prototype.onresize=function(){function a(){b.resize(),delete b.resizeTimeout}this.resizeTimeout&&clearTimeout(this.resizeTimeout);var b=this;this.resizeTimeout=setTimeout(a,100)},q.prototype.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},q.prototype.needsResizeLayout=function(){var a=n(this.element),b=this.size&&a;return b&&a.innerWidth!==this.size.innerWidth},q.prototype.addItems=function(a){var b=this._itemize(a);return b.length&&(this.items=this.items.concat(b)),b},q.prototype.appended=function(a){var b=this.addItems(a);b.length&&(this.layoutItems(b,!0),this.reveal(b))},q.prototype.prepended=function(a){var b=this._itemize(a);if(b.length){var c=this.items.slice(0);this.items=b.concat(c),this._resetLayout(),this._manageStamps(),this.layoutItems(b,!0),this.reveal(b),this.layoutItems(c)}},q.prototype.reveal=function(a){var b=a&&a.length;if(b)for(var c=0;b>c;c++){var d=a[c];d.reveal()}},q.prototype.hide=function(a){var b=a&&a.length;if(b)for(var c=0;b>c;c++){var d=a[c];d.hide()}},q.prototype.getItem=function(a){for(var b=0,c=this.items.length;c>b;b++){var d=this.items[b];if(d.element===a)return d}},q.prototype.getItems=function(a){if(a&&a.length){for(var b=[],c=0,d=a.length;d>c;c++){var e=a[c],f=this.getItem(e);f&&b.push(f)}return b}},q.prototype.remove=function(a){a=d(a);var b=this.getItems(a);if(b&&b.length){this._itemsOn(b,"remove",function(){this.emitEvent("removeComplete",[this,b])});for(var c=0,f=b.length;f>c;c++){var g=b[c];g.remove(),e(g,this.items)}}},q.prototype.destroy=function(){var a=this.element.style;a.height="",a.position="",a.width="";for(var b=0,c=this.items.length;c>b;b++){var d=this.items[b];d.destroy()}this.unbindResize();var e=this.element.outlayerGUID;delete s[e],delete this.element.outlayerGUID,j&&j.removeData(this.element,this.constructor.namespace)},q.data=function(a){var b=a&&a.outlayerGUID;return b&&s[b]},q.create=function(a,c){function d(){q.apply(this,arguments)}return Object.create?d.prototype=Object.create(q.prototype):b(d.prototype,q.prototype),d.prototype.constructor=d,d.defaults=b({},q.defaults),b(d.defaults,c),d.prototype.settings={},d.namespace=a,d.data=q.data,d.Item=function(){p.apply(this,arguments)},d.Item.prototype=new p,g(function(){for(var b=f(a),c=h.querySelectorAll(".js-"+b),e="data-"+b+"-options",g=0,k=c.length;k>g;g++){var l,m=c[g],n=m.getAttribute(e);try{l=n&&JSON.parse(n)}catch(o){i&&i.error("Error parsing "+e+" on "+m.nodeName.toLowerCase()+(m.id?"#"+m.id:"")+": "+o);continue}var p=new d(m,l);j&&j.data(m,a,p)}}),j&&j.bridget&&j.bridget(a,d),d},q.Item=p,q}var h=a.document,i=a.console,j=a.jQuery,k=function(){},l=Object.prototype.toString,m="function"==typeof HTMLElement||"object"==typeof HTMLElement?function(a){return a instanceof HTMLElement}:function(a){return a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName},n=Array.prototype.indexOf?function(a,b){return a.indexOf(b)}:function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1};"function"==typeof define&&define.amd?define("outlayer/outlayer",["eventie/eventie","doc-ready/doc-ready","eventEmitter/EventEmitter","get-size/get-size","matches-selector/matches-selector","./item"],g):"object"==typeof exports?module.exports=g(require("eventie"),require("doc-ready"),require("wolfy87-eventemitter"),require("get-size"),require("desandro-matches-selector"),require("./item")):a.Outlayer=g(a.eventie,a.docReady,a.EventEmitter,a.getSize,a.matchesSelector,a.Outlayer.Item)}(window),function(a){function b(a,b){var d=a.create("masonry");return d.prototype._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns();var a=this.cols;for(this.colYs=[];a--;)this.colYs.push(0);this.maxY=0},d.prototype.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var a=this.items[0],c=a&&a.element;this.columnWidth=c&&b(c).outerWidth||this.containerWidth}this.columnWidth+=this.gutter,this.cols=Math.floor((this.containerWidth+this.gutter)/this.columnWidth),this.cols=Math.max(this.cols,1)},d.prototype.getContainerWidth=function(){var a=this.options.isFitWidth?this.element.parentNode:this.element,c=b(a);this.containerWidth=c&&c.innerWidth},d.prototype._getItemLayoutPosition=function(a){a.getSize();var b=a.size.outerWidth%this.columnWidth,d=b&&1>b?"round":"ceil",e=Math[d](a.size.outerWidth/this.columnWidth);e=Math.min(e,this.cols);for(var f=this._getColGroup(e),g=Math.min.apply(Math,f),h=c(f,g),i={x:this.columnWidth*h,y:g},j=g+a.size.outerHeight,k=this.cols+1-f.length,l=0;k>l;l++)this.colYs[h+l]=j;return i},d.prototype._getColGroup=function(a){if(2>a)return this.colYs;for(var b=[],c=this.cols+1-a,d=0;c>d;d++){var e=this.colYs.slice(d,d+a);b[d]=Math.max.apply(Math,e)}return b},d.prototype._manageStamp=function(a){var c=b(a),d=this._getElementOffset(a),e=this.options.isOriginLeft?d.left:d.right,f=e+c.outerWidth,g=Math.floor(e/this.columnWidth);g=Math.max(0,g);var h=Math.floor(f/this.columnWidth);h-=f%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var i=(this.options.isOriginTop?d.top:d.bottom)+c.outerHeight,j=g;h>=j;j++)this.colYs[j]=Math.max(i,this.colYs[j])},d.prototype._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var a={height:this.maxY};return this.options.isFitWidth&&(a.width=this._getContainerFitWidth()),a},d.prototype._getContainerFitWidth=function(){for(var a=0,b=this.cols;--b&&0===this.colYs[b];)a++;return(this.cols-a)*this.columnWidth-this.gutter},d.prototype.needsResizeLayout=function(){var a=this.containerWidth;return this.getContainerWidth(),a!==this.containerWidth},d}var c=Array.prototype.indexOf?function(a,b){return a.indexOf(b)}:function(a,b){for(var c=0,d=a.length;d>c;c++){var e=a[c];if(e===b)return c}return-1};"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size"],b):"object"==typeof exports?module.exports=b(require("outlayer"),require("get-size")):a.Masonry=b(a.Outlayer,a.getSize)}(window); \ No newline at end of file diff --git a/node_modules/materialize-css/templates/masonry-template/preview.html b/node_modules/materialize-css/templates/masonry-template/preview.html deleted file mode 100644 index 127c87e..0000000 --- a/node_modules/materialize-css/templates/masonry-template/preview.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - Parallax Template - Materialize - - - - - - - - -
                -
                -

                -

                Parallax Template

                -
                -
                A modern responsive front-end framework based on Material Design
                -
                - -

                - - -
                -
                -
                -
                - - Card Title -
                -
                -

                I am a very simple card. I am good at containing small bits of information. - I am convenient because I require little markup to use effectively.

                -
                - -
                -
                -
                -
                -
                - - Card Title -
                -
                -

                I am a very simple card. I am good at containing small bits of information. - I am convenient because I require little markup to use effectively.

                -
                - -
                -
                -
                -
                -
                -

                I am a very simple card. I am good at containing small bits of information. - I am convenient because I require little markup to use effectively.

                -
                - -
                -
                -
                -
                -
                - - Card Title -
                -
                -

                - I am convenient because I require little markup to use effectively.

                -
                - -
                -
                -
                -
                -
                - - Card Title -
                -
                -

                I am a very simple card. I am good at containing small bits of information.

                -
                - -
                -
                -
                -
                -
                - - Card Title -
                -
                -

                I am a very simple card. I am good at containing small bits of information. - I am convenient because I require little markup to use effectively.

                -
                - -
                -
                -
                -
                -
                - - - -
                -
                -
                -
                -
                Company Bio
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                - - -
                -
                -
                Settings
                - -
                -
                -
                Connect
                - -
                -
                -
                - -
                - - - - - - - - - - diff --git a/node_modules/materialize-css/templates/parallax-template.zip b/node_modules/materialize-css/templates/parallax-template.zip deleted file mode 100644 index c33fab2..0000000 Binary files a/node_modules/materialize-css/templates/parallax-template.zip and /dev/null differ diff --git a/node_modules/materialize-css/templates/parallax-template/LICENSE b/node_modules/materialize-css/templates/parallax-template/LICENSE deleted file mode 100644 index c795dcc..0000000 --- a/node_modules/materialize-css/templates/parallax-template/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Materialize - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/node_modules/materialize-css/templates/parallax-template/background1.jpg b/node_modules/materialize-css/templates/parallax-template/background1.jpg deleted file mode 100644 index e8b388e..0000000 Binary files a/node_modules/materialize-css/templates/parallax-template/background1.jpg and /dev/null differ diff --git a/node_modules/materialize-css/templates/parallax-template/background2.jpg b/node_modules/materialize-css/templates/parallax-template/background2.jpg deleted file mode 100644 index 0bc540d..0000000 Binary files a/node_modules/materialize-css/templates/parallax-template/background2.jpg and /dev/null differ diff --git a/node_modules/materialize-css/templates/parallax-template/background3.jpg b/node_modules/materialize-css/templates/parallax-template/background3.jpg deleted file mode 100644 index cc0a11c..0000000 Binary files a/node_modules/materialize-css/templates/parallax-template/background3.jpg and /dev/null differ diff --git a/node_modules/materialize-css/templates/parallax-template/css/style.css b/node_modules/materialize-css/templates/parallax-template/css/style.css deleted file mode 100644 index 4fa3c90..0000000 --- a/node_modules/materialize-css/templates/parallax-template/css/style.css +++ /dev/null @@ -1,57 +0,0 @@ -/* Custom Stylesheet */ -/** - * Use this file to override Materialize files so you can update - * the core Materialize files in the future - * - * Made By MaterializeCSS.com - */ - -nav ul a, -nav .brand-logo { - color: #444; -} - -p { - line-height: 2rem; -} - -.button-collapse { - color: #26a69a; -} - -.parallax-container { - min-height: 380px; - line-height: 0; - height: auto; - color: rgba(255,255,255,.9); -} - .parallax-container .section { - width: 100%; - } - -@media only screen and (max-width : 992px) { - .parallax-container .section { - position: absolute; - top: 40%; - } - #index-banner .section { - top: 10%; - } -} - -@media only screen and (max-width : 600px) { - #index-banner .section { - top: 0; - } -} - -.icon-block { - padding: 0 15px; -} -.icon-block .material-icons { - font-size: inherit; -} - -footer.page-footer { - margin: 0; -} \ No newline at end of file diff --git a/node_modules/materialize-css/templates/parallax-template/index.html b/node_modules/materialize-css/templates/parallax-template/index.html deleted file mode 100644 index 97ee74d..0000000 --- a/node_modules/materialize-css/templates/parallax-template/index.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - Parallax Template - Materialize - - - - - - - - - -
                -
                -
                -

                -

                Parallax Template

                -
                -
                A modern responsive front-end framework based on Material Design
                -
                - -

                - -
                -
                -
                Unsplashed background img 1
                -
                - - -
                -
                - - -
                -
                -
                -

                flash_on

                -
                Speeds up development
                - -

                We did most of the heavy lifting for you to provide a default stylings that incorporate our custom components. Additionally, we refined animations and transitions to provide a smoother experience for developers.

                -
                -
                - -
                -
                -

                group

                -
                User Experience Focused
                - -

                By utilizing elements and principles of Material Design, we were able to create a framework that incorporates components and animations that provide more feedback to users. Additionally, a single underlying responsive system across all platforms allow for a more unified user experience.

                -
                -
                - -
                -
                -

                settings

                -
                Easy to work with
                - -

                We have provided detailed documentation as well as specific code examples to help new users get started. We are also always open to feedback and can answer any questions a user may have about Materialize.

                -
                -
                -
                - -
                -
                - - -
                -
                -
                -
                -
                A modern responsive front-end framework based on Material Design
                -
                -
                -
                -
                Unsplashed background img 2
                -
                - -
                -
                - -
                -
                -

                -

                Contact Us

                -

                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam scelerisque id nunc nec volutpat. Etiam pellentesque tristique arcu, non consequat magna fermentum ac. Cras ut ultricies eros. Maecenas eros justo, ullamcorper a sapien id, viverra ultrices eros. Morbi sem neque, posuere et pretium eget, bibendum sollicitudin lacus. Aliquam eleifend sollicitudin diam, eu mattis nisl maximus sed. Nulla imperdiet semper molestie. Morbi massa odio, condimentum sed ipsum ac, gravida ultrices erat. Nullam eget dignissim mauris, non tristique erat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;

                -
                -
                - -
                -
                - - -
                -
                -
                -
                -
                A modern responsive front-end framework based on Material Design
                -
                -
                -
                -
                Unsplashed background img 3
                -
                - -
                -
                -
                -
                -
                Company Bio
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                - - -
                -
                -
                Settings
                - -
                -
                -
                Connect
                - -
                -
                -
                - -
                - - - - - - - - - diff --git a/node_modules/materialize-css/templates/parallax-template/js/init.js b/node_modules/materialize-css/templates/parallax-template/js/init.js deleted file mode 100644 index d9e58b7..0000000 --- a/node_modules/materialize-css/templates/parallax-template/js/init.js +++ /dev/null @@ -1,8 +0,0 @@ -(function($){ - $(function(){ - - $('.button-collapse').sideNav(); - $('.parallax').parallax(); - - }); // end of document ready -})(jQuery); // end of jQuery name space \ No newline at end of file diff --git a/node_modules/materialize-css/templates/parallax-template/preview.html b/node_modules/materialize-css/templates/parallax-template/preview.html deleted file mode 100644 index 1d64209..0000000 --- a/node_modules/materialize-css/templates/parallax-template/preview.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - Parallax Template - Materialize - - - - - - - - - -
                -
                -
                -

                -

                Parallax Template

                -
                -
                A modern responsive front-end framework based on Material Design
                -
                - -

                - -
                -
                -
                Unsplashed background img 1
                -
                - - -
                -
                - - -
                -
                -
                -

                flash_on

                -
                Speeds up development
                - -

                We did most of the heavy lifting for you to provide a default stylings that incorporate our custom components. Additionally, we refined animations and transitions to provide a smoother experience for developers.

                -
                -
                - -
                -
                -

                group

                -
                User Experience Focused
                - -

                By utilizing elements and principles of Material Design, we were able to create a framework that incorporates components and animations that provide more feedback to users. Additionally, a single underlying responsive system across all platforms allow for a more unified user experience.

                -
                -
                - -
                -
                -

                settings

                -
                Easy to work with
                - -

                We have provided detailed documentation as well as specific code examples to help new users get started. We are also always open to feedback and can answer any questions a user may have about Materialize.

                -
                -
                -
                - -
                -
                - - -
                -
                -
                -
                -
                A modern responsive front-end framework based on Material Design
                -
                -
                -
                -
                Unsplashed background img 2
                -
                - -
                -
                - -
                -
                -

                -

                Contact Us

                -

                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam scelerisque id nunc nec volutpat. Etiam pellentesque tristique arcu, non consequat magna fermentum ac. Cras ut ultricies eros. Maecenas eros justo, ullamcorper a sapien id, viverra ultrices eros. Morbi sem neque, posuere et pretium eget, bibendum sollicitudin lacus. Aliquam eleifend sollicitudin diam, eu mattis nisl maximus sed. Nulla imperdiet semper molestie. Morbi massa odio, condimentum sed ipsum ac, gravida ultrices erat. Nullam eget dignissim mauris, non tristique erat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;

                -
                -
                - -
                -
                - - -
                -
                -
                -
                -
                A modern responsive front-end framework based on Material Design
                -
                -
                -
                -
                Unsplashed background img 3
                -
                - -
                -
                -
                -
                -
                Company Bio
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                - - -
                -
                -
                Settings
                - -
                -
                -
                Connect
                - -
                -
                -
                - -
                - - - - - - - - - diff --git a/node_modules/materialize-css/templates/starter-template.zip b/node_modules/materialize-css/templates/starter-template.zip deleted file mode 100644 index b04490e..0000000 Binary files a/node_modules/materialize-css/templates/starter-template.zip and /dev/null differ diff --git a/node_modules/materialize-css/templates/starter-template/LICENSE b/node_modules/materialize-css/templates/starter-template/LICENSE deleted file mode 100644 index c795dcc..0000000 --- a/node_modules/materialize-css/templates/starter-template/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Materialize - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/node_modules/materialize-css/templates/starter-template/css/style.css b/node_modules/materialize-css/templates/starter-template/css/style.css deleted file mode 100644 index 2e8db1f..0000000 --- a/node_modules/materialize-css/templates/starter-template/css/style.css +++ /dev/null @@ -1,14 +0,0 @@ -/* Custom Stylesheet */ -/** - * Use this file to override Materialize files so you can update - * the core Materialize files in the future - * - * Made By MaterializeCSS.com - */ - -.icon-block { - padding: 0 15px; -} -.icon-block .material-icons { - font-size: inherit; -} \ No newline at end of file diff --git a/node_modules/materialize-css/templates/starter-template/index.html b/node_modules/materialize-css/templates/starter-template/index.html deleted file mode 100644 index d71383b..0000000 --- a/node_modules/materialize-css/templates/starter-template/index.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - Starter Template - Materialize - - - - - - - - -
                -
                -

                -

                Starter Template

                -
                -
                A modern responsive front-end framework based on Material Design
                -
                - -

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

                flash_on

                -
                Speeds up development
                - -

                We did most of the heavy lifting for you to provide a default stylings that incorporate our custom components. Additionally, we refined animations and transitions to provide a smoother experience for developers.

                -
                -
                - -
                -
                -

                group

                -
                User Experience Focused
                - -

                By utilizing elements and principles of Material Design, we were able to create a framework that incorporates components and animations that provide more feedback to users. Additionally, a single underlying responsive system across all platforms allow for a more unified user experience.

                -
                -
                - -
                -
                -

                settings

                -
                Easy to work with
                - -

                We have provided detailed documentation as well as specific code examples to help new users get started. We are also always open to feedback and can answer any questions a user may have about Materialize.

                -
                -
                -
                - -
                -

                - -
                - -
                -
                - -
                -
                -
                -
                -
                Company Bio
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                - - -
                -
                -
                Settings
                - -
                -
                -
                Connect
                - -
                -
                -
                - -
                - - - - - - - - - diff --git a/node_modules/materialize-css/templates/starter-template/js/init.js b/node_modules/materialize-css/templates/starter-template/js/init.js deleted file mode 100644 index 01938d5..0000000 --- a/node_modules/materialize-css/templates/starter-template/js/init.js +++ /dev/null @@ -1,7 +0,0 @@ -(function($){ - $(function(){ - - $('.button-collapse').sideNav(); - - }); // end of document ready -})(jQuery); // end of jQuery name space \ No newline at end of file diff --git a/node_modules/materialize-css/templates/starter-template/preview.html b/node_modules/materialize-css/templates/starter-template/preview.html deleted file mode 100644 index d4852c5..0000000 --- a/node_modules/materialize-css/templates/starter-template/preview.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - Starter Template - Materialize - - - - - - - - -
                -
                -

                -

                Starter Template

                -
                -
                A modern responsive front-end framework based on Material Design
                -
                - -

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

                flash_on

                -
                Speeds up development
                - -

                We did most of the heavy lifting for you to provide a default stylings that incorporate our custom components. Additionally, we refined animations and transitions to provide a smoother experience for developers.

                -
                -
                - -
                -
                -

                group

                -
                User Experience Focused
                - -

                By utilizing elements and principles of Material Design, we were able to create a framework that incorporates components and animations that provide more feedback to users. Additionally, a single underlying responsive system across all platforms allow for a more unified user experience.

                -
                -
                - -
                -
                -

                settings

                -
                Easy to work with
                - -

                We have provided detailed documentation as well as specific code examples to help new users get started. We are also always open to feedback and can answer any questions a user may have about Materialize.

                -
                -
                -
                - -
                -

                - -
                - -
                -
                - -
                -
                -
                -
                -
                Company Bio
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                - - -
                -
                -
                Settings
                - -
                -
                -
                Connect
                - -
                -
                -
                - -
                - - - - - - - - - diff --git a/node_modules/materialize-css/test.html b/node_modules/materialize-css/test.html deleted file mode 100644 index 12fe9ec..0000000 --- a/node_modules/materialize-css/test.html +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - Documentation - Materialize - - - - - - - - - - - - - - - -

                One common flaw we've seen in many frameworks is a lack of support for truly responsive text. While elements on the page resize fluidly, text still resizes on a fixed basis. To ameliorate this problem, for text heavy pages, we've created a class that fluidly scales text size and line-height to optimize readability for the user. Line length stays between 45-80 characters and line height scales to be larger on smaller screens. - -

                - - - -
                  -
                • -
                • -
                • -
                • -
                -
                - -

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                - - Modal - - - - - - - - - - - - - - - - - -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                -

                yo

                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/test/html/badges.html b/node_modules/materialize-css/test/html/badges.html deleted file mode 100644 index 3fea59e..0000000 --- a/node_modules/materialize-css/test/html/badges.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - Materialize - Documentation - - - - - - - - - - - - - - - - - - - -
                -

                Badges

                - -

                Collection

                - - -

                Dropdown

                - - -

                Nav

                - -
                - - - -

                Collapsible

                -
                -
                -
                  -
                • -
                  4filter_dramaVery long title Very long title Very long title Very long title Very long title
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  4filter_dramaVery long title Very long title Very long title Very long title Very long title
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  4filter_dramaVery long title Very long title Very long title Very long title Very long title
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  1placeVery long title Very long title Very long title Very long title Very long title
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  whatshotThird
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                -
                -
                - - - - - - - - - - - - - diff --git a/node_modules/materialize-css/test/html/buttons.html b/node_modules/materialize-css/test/html/buttons.html deleted file mode 100644 index 87fa995..0000000 --- a/node_modules/materialize-css/test/html/buttons.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Documentation - Materialize - - - - - -
                -
                -

                - Anchors -

                - - btn-flat waves-red - - - btn-flat btn-large waves-red - -

                - Buttons -

                - - -
                -
                - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/test/html/cards.html b/node_modules/materialize-css/test/html/cards.html deleted file mode 100644 index 3e1a6f8..0000000 --- a/node_modules/materialize-css/test/html/cards.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - - Documentation - Materialize - - - - - - -
                -
                -
                -
                - -
                -
                - Card Titlemore_vert -
                - - - -
                - Card Titlemore_vert -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                This is the last content

                -
                -
                -
                - -
                -
                -
                - -
                -
                - Card Titlemore_vert -
                - -
                - Card Titlemore_vert -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                There's content here

                -

                This is the last content

                -
                - - -
                -
                - -
                - -
                -

                Card Sizes

                -
                -
                -
                - Card Title -

                I am a very simple card. I am good at containing small bits of information. - I am convenient because I require little markup to use effectively. - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor - incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis - nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. -

                -
                - -
                -
                -
                -
                -
                - Card Title -

                I am a very simple card. I am good at containing small bits of information. - I am convenient because I require little markup to use effectively. - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor - incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis - nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. - Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu - fugiat nulla pariatur. Ut enim ad minim veniam, quis - nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. - Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu - fugiat nulla pariatur. -

                -
                -
                -
                -
                - -
                -

                Horizontal Card

                -
                -
                -
                - -
                -
                -
                - Card Title -

                I am a very simple card. I am good at containing small bits of information. - I am convenient because I require little markup to use effectively.

                -
                - -
                -
                -
                - -
                -
                -
                -
                - Card Title -

                I am a very simple card. I am good at containing small bits of information. - I am convenient because I require little markup to use effectively.

                -
                - -
                -
                - -
                -
                -
                - -
                -
                -
                - -
                -
                -
                - Card Title -

                I am a very simple card. I am good at containing small bits of information. - I am convenient because I require little markup to use effectively.

                -
                -
                -
                -
                - -
                -
                -
                -
                - Card Title -

                I am a very simple card. I am good at containing small bits of information. - I am convenient because I require little markup to use effectively.

                -
                -
                -
                - -
                -
                -
                - -
                -
                -
                - -
                -
                -
                - Card Title -

                I am a very simple card. I am good at containing small bits of information. - I am convenient because I require little markup to use effectively.

                -
                - -
                -
                -
                - -
                -
                -
                -
                - Card Title -

                I am a very simple card. I am good at containing small bits of information. - I am convenient because I require little markup to use effectively.

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

                Halfway FABs

                -
                -
                -
                - - Card Title - add -
                -
                -

                I am a very simple card. I am good at containing small bits of information. - I am convenient because I require little markup to use effectively.

                -
                - -
                -
                - -
                -
                -
                - - add -
                -
                - Card Title -

                I am a very simple card. I am good at containing small bits of information. - I am convenient because I require little markup to use effectively.

                -
                - -
                -
                -
                - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/test/html/carousel.html b/node_modules/materialize-css/test/html/carousel.html deleted file mode 100644 index 10b4b72..0000000 --- a/node_modules/materialize-css/test/html/carousel.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Documentation - Materialize - - - - - - -

                Carousel within collapsible

                -
                  -
                • -
                  filter_dramaFirst
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  placeSecond
                  -
                  - -
                  -
                • -
                • -
                  whatshotThird
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/test/html/chips.html b/node_modules/materialize-css/test/html/chips.html deleted file mode 100644 index 3cba819..0000000 --- a/node_modules/materialize-css/test/html/chips.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - Materialize - Documentation - - - - - - - - - - - - - - - - - - - - - -
                -
                - -
                -
                -
                Default:
                -
                -
                -
                - - -
                -
                -
                - -
                -
                -
                -
                -
                -
                Modified proposal:
                -
                -
                -
                - phone - - -
                -
                - bookmark -
                - -
                -
                - bookmark -
                - -
                -
                -
                -
                - - - - - - - - - - - diff --git a/node_modules/materialize-css/test/html/collapsible.html b/node_modules/materialize-css/test/html/collapsible.html deleted file mode 100644 index cfd458c..0000000 --- a/node_modules/materialize-css/test/html/collapsible.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - Documentation - Materialize - - - - -
                -
                -

                Collapsible Header Text Wrap

                -
                  -
                • -
                  Second really long title that should overlap on most screens that aren't incredibly big and wide. Second really long title that should overlap on most screens that aren't incredibly big and wide. Second really long title that should overlap on most screens that aren't incredibly big and wide.
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  Second
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                - -
                -
                - -

                Add dynamically to both expandable and collapsible

                -
                  -
                • -
                  First
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  Second
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                - -
                -
                - -
                -

                Active classes for initial open for both.

                -
                -
                  -
                • -
                  First
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  Second ACTIVE
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  Third
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                -
                -
                -
                  -
                • -
                  First ACTIVE
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  Second
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  Third ACTIVE
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                -
                -
                - - -

                Nested Collapsible

                - -
                  -
                • -
                  First
                  -
                  -
                    -
                  • -
                    First
                    -

                    Lorem ipsum dolor sit amet.

                    -
                  • -
                  • -
                    Second
                    -

                    Lorem ipsum dolor sit amet.

                    -
                  • -
                  • -
                    Third
                    -

                    Lorem ipsum dolor sit amet.

                    -
                  • -
                  -
                  -
                • -
                • -
                  Second
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  Third
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                - - - -
                  -
                • -
                  First
                  -
                  -
                    -
                  • -
                    First
                    -

                    Lorem ipsum dolor sit amet.

                    -
                  • -
                  • -
                    Second
                    -

                    Lorem ipsum dolor sit amet.

                    -
                  • -
                  • -
                    Third
                    -

                    Lorem ipsum dolor sit amet.

                    -
                  • -
                  -
                  -
                • -
                • -
                  Second
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  Third
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                -
                -

                Collapsible Callbacks

                -
                  -
                • -
                  onOpen
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  onClose
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/test/html/dropdown.html b/node_modules/materialize-css/test/html/dropdown.html deleted file mode 100644 index 5881715..0000000 --- a/node_modules/materialize-css/test/html/dropdown.html +++ /dev/null @@ -1,601 +0,0 @@ - - - - - - Materialize - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                - -Align left: -+ - - -

                - -Align right: -------------------------------- -+ - - - - -
                -
                - - - - - -
                - -
                -

                Scrolling in absolute container

                - + -
                s -
                s -
                s -
                s -
                s -
                s -
                s -
                s -
                s -
                s -
                s -
                s -
                s -
                s -
                - - - - - - - - - - - - -

                asdf

                -

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                asdf

                - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/node_modules/materialize-css/test/html/fixed_navbar.html b/node_modules/materialize-css/test/html/fixed_navbar.html deleted file mode 100644 index 0eb16a4..0000000 --- a/node_modules/materialize-css/test/html/fixed_navbar.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - Documentation - Materialize - - - - - - - - -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                -

                Testing

                -
                - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/test/html/forms.html b/node_modules/materialize-css/test/html/forms.html deleted file mode 100644 index bcd5ee8..0000000 --- a/node_modules/materialize-css/test/html/forms.html +++ /dev/null @@ -1,295 +0,0 @@ - - - - - - Materialize - Documentation - - - - - - - - - - - - - - - - - - - - - - -
                -
                -
                -
                - account_circle - - -
                -
                - - -
                -
                - - -
                -
                -
                -
                - - -
                -
                -
                -
                - - -
                -
                -
                -
                - email - - -
                -
                -
                -

                Make sure these textareas are aligned correctly.

                -
                - mode_edit - - -
                -
                - - -
                -
                -
                -

                Make sure error message and label don't overlap.

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

                Select

                - -
                -
                - - -
                - - - -
                - - -
                - - - -
                - - -
                -
                - - - -
                -
                - - -
                - - -
                - - -
                -
                - - -
                -
                - - -
                - -
                - - -
                -
                - -
                -
                - This is an inline select: -
                - - -
                -
                -
                - -
                -

                Select Icons

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

                - -

                -
                - - - - - - - - - - - - diff --git a/node_modules/materialize-css/test/html/materialbox.html b/node_modules/materialize-css/test/html/materialbox.html deleted file mode 100644 index 1e94872..0000000 --- a/node_modules/materialize-css/test/html/materialbox.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - Documentation - Materialize - - - - - -
                - -
                -
                -
                - -
                -
                - Materialbox inside card image -
                -
                -
                -
                - -
                -
                -
                -
                - -
                -
                - Card Titlemore_vert - -

                This is a link

                -
                - - - -
                - Card Titleclose -

                Here is some more information about this product that is only revealed once clicked on.

                -
                -
                -
                -
                - -
                - -
                -
                -

                Materialbox inside transformed parent

                - -
                -
                -
                - - -
                  -
                  -
                  Materialbox inside fixed navbar -
                - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/test/html/multiple_modals.html b/node_modules/materialize-css/test/html/multiple_modals.html deleted file mode 100644 index f45ce4f..0000000 --- a/node_modules/materialize-css/test/html/multiple_modals.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - Materialize - Documentation - - - - - - - - - - - - - - - - - - - - - Regular Modals - - - - - - - - - Fixed Footer Modals - - - - - - - - - - Bottom Sheet Modals - - - - - - - - - - - - - - - - - - diff --git a/node_modules/materialize-css/test/html/multiple_sidenav.html b/node_modules/materialize-css/test/html/multiple_sidenav.html deleted file mode 100644 index 079e3dc..0000000 --- a/node_modules/materialize-css/test/html/multiple_sidenav.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - Materialize - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/test/html/overlayZindex.html b/node_modules/materialize-css/test/html/overlayZindex.html deleted file mode 100644 index f88c362..0000000 --- a/node_modules/materialize-css/test/html/overlayZindex.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - Documentation - Materialize - - - - - - - - - - - menu - - - Modal - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/test/html/pushpin.html b/node_modules/materialize-css/test/html/pushpin.html deleted file mode 100644 index 784cfe7..0000000 --- a/node_modules/materialize-css/test/html/pushpin.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - Documentation - Materialize - - - - -



                - - - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - scroll
                - -
                - scrollTop: 0 -
                - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/test/html/scrollfire.html b/node_modules/materialize-css/test/html/scrollfire.html deleted file mode 100644 index 0a8d36f..0000000 --- a/node_modules/materialize-css/test/html/scrollfire.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - Documentation - Materialize - - - - - - -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                - - -
                - scrollTop: 0 -
                - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/test/html/scrollspy.html b/node_modules/materialize-css/test/html/scrollspy.html deleted file mode 100644 index 16a466a..0000000 --- a/node_modules/materialize-css/test/html/scrollspy.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - Documentation - Materialize - - - - - - -
                -
                -
                -
                - - -
                - scrollTop: 0 -
                - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/test/html/tabs.html b/node_modules/materialize-css/test/html/tabs.html deleted file mode 100644 index 7c1b4a6..0000000 --- a/node_modules/materialize-css/test/html/tabs.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - Materialize - Documentation - - - - - - - - - - - - - - - - - - - - -

                Variable Width

                - -
                Test 1
                -
                Test 2
                -
                Test 3
                -
                Test 4
                - - -

                Fixed Width

                - -
                Test 1
                -
                Test 2
                -
                Test 3
                -
                Test 4
                - -

                Navbar in nav-extended

                - - -
                Test 1
                -
                Test 2
                -
                Test 3
                -
                Test 4
                - - - - - - - - - - diff --git a/node_modules/materialize-css/test/html/waves.html b/node_modules/materialize-css/test/html/waves.html deleted file mode 100644 index e7db2f4..0000000 --- a/node_modules/materialize-css/test/html/waves.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - Documentation - Materialize - - - - - -
                - -
                -

                Image waves

                -
                - -
                -
                -
                -

                Card image waves

                -
                -
                - -
                -
                - Card Titlemore_vert - -

                This is a link

                -
                -
                -
                -
                -

                Card reveal image waves

                -
                -
                - -
                -
                - Card Titlemore_vert -

                This is a link

                -
                -
                - Card Titleclose -

                Here is some more information about this product that is only revealed once clicked on.

                -
                -
                -
                -
                - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/test2.html b/node_modules/materialize-css/test2.html deleted file mode 100644 index 5ccb800..0000000 --- a/node_modules/materialize-css/test2.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - Documentation - Materialize - - - - - - - - -
                  -
                • -
                  First
                  -
                  -
                    -
                  • -
                    First
                    -

                    Lorem ipsum dolor sit amet.

                    -
                  • -
                  • -
                    Second
                    -

                    Lorem ipsum dolor sit amet.

                    -
                  • -
                  • -
                    Third
                    -

                    Lorem ipsum dolor sit amet.

                    -
                  • -
                  -
                  -
                • -
                • -
                  Second
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  Third
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                - - - -
                  -
                • -
                  First
                  -
                  -
                    -
                  • -
                    First
                    -

                    Lorem ipsum dolor sit amet.

                    -
                  • -
                  • -
                    Second
                    -

                    Lorem ipsum dolor sit amet.

                    -
                  • -
                  • -
                    Third
                    -

                    Lorem ipsum dolor sit amet.

                    -
                  • -
                  -
                  -
                • -
                • -
                  Second
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  Third
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/tests/spec/autocomplete/autocompleteFixture.html b/node_modules/materialize-css/tests/spec/autocomplete/autocompleteFixture.html deleted file mode 100644 index 7b9ec83..0000000 --- a/node_modules/materialize-css/tests/spec/autocomplete/autocompleteFixture.html +++ /dev/null @@ -1,18 +0,0 @@ -
                -
                -
                -
                - - -
                -
                -
                -
                -
                -
                - - -
                -
                -
                -
                \ No newline at end of file diff --git a/node_modules/materialize-css/tests/spec/autocomplete/autocompleteSpec.js b/node_modules/materialize-css/tests/spec/autocomplete/autocompleteSpec.js deleted file mode 100644 index d49ac5a..0000000 --- a/node_modules/materialize-css/tests/spec/autocomplete/autocompleteSpec.js +++ /dev/null @@ -1,70 +0,0 @@ -describe("Autocomplete Plugin", function () { - beforeEach(function() { - loadFixtures('autocomplete/autocompleteFixture.html'); - $('input.autocomplete').autocomplete({ - data: { - "Apple": null, - "Microsoft": null, - "Google": 'http://placehold.it/250x250' - } - }); - }); - - describe("Autocomplete", function () { - // var browserSelect, normalInput, normalDropdown; - - // beforeEach(function() { - // browserSelect = $('select.normal'); - // }); - - it("should work with multiple initializations", function () { - var $normal = $('#normal-autocomplete'); - var $parent = $normal.parent(); - $normal.autocomplete({ data: {"hi": null} }); - $normal.autocomplete({ data: {"hi": null} }); - $normal.autocomplete({ data: {"hi": null} }); - $normal.autocomplete({ - data: { - "Apple": null, - "Microsoft": null, - "Google": 'http://placehold.it/250x250' - } - }); - - var $autocompleteEl = $parent.find('.autocomplete-content'); - var autocompleteEvents = $._data($normal[0], 'events'); - - expect($autocompleteEl.length).toEqual(1, 'Should dynamically generate autocomplete structure.'); - expect(autocompleteEvents.keyup.length).toEqual(1, 'Should only bind 1 keyup handler on input'); - // setTimeout(function() { - // done(); - // }, 400); - }); - - it("should limit results if option is set", function (done) { - var $limited = $('#limited-autocomplete'); - var data = {}; - for (var i = 100; i >= 0; i--) { - var randString = 'a' + Math.random().toString(36).substring(20); - data[randString] = null; - } - - $limited.autocomplete({ - data: data, - limit: 20 - }); - - $limited.focus(); - $limited.val('a'); - $limited.trigger('keyup'); - - var $autocompleteEl = $limited.parent().find('.autocomplete-content'); - setTimeout(function() { - expect($autocompleteEl.children().length).toBeLessThan(21, 'Results should be at max the set limit'); - done(); - }, 200); - - }); - }); - -}); diff --git a/node_modules/materialize-css/tests/spec/cards/cardsFixture.html b/node_modules/materialize-css/tests/spec/cards/cardsFixture.html deleted file mode 100644 index dac4f78..0000000 --- a/node_modules/materialize-css/tests/spec/cards/cardsFixture.html +++ /dev/null @@ -1,80 +0,0 @@ -
                -
                -
                -
                - -
                -
                - Card Titlemore_vert -

                This is a link

                -
                -
                - Card Titleclose -

                Here is some more information about this product that is only revealed once clicked on.

                -
                -
                - -
                -
                -
                - - Card Title -
                -
                -

                I am a very simple card. I am good at containing small bits of information. - I am convenient because I require little markup to use effectively.

                -
                - -
                -
                -
                - -
                -
                -
                -
                - - Card Title -
                -
                -

                I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

                -
                - -
                -
                -
                -
                -
                - - Card Title -
                -
                -

                I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

                -
                - -
                -
                -
                -
                -
                - - Card Title -
                -
                -

                I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.

                -
                - -
                -
                -
                \ No newline at end of file diff --git a/node_modules/materialize-css/tests/spec/cards/cardsSpec.js b/node_modules/materialize-css/tests/spec/cards/cardsSpec.js deleted file mode 100644 index ffd2da3..0000000 --- a/node_modules/materialize-css/tests/spec/cards/cardsSpec.js +++ /dev/null @@ -1,100 +0,0 @@ -describe( "Cards", function () { - var reveal; - - beforeEach(function() { - loadFixtures('cards/cardsFixture.html'); - }); - - describe("reveal cards", function () { - var revealCard; - - beforeEach(function() { - revealCard = $('.card.reveal'); - }); - - it("should have a hidden card-reveal", function (done) { - var revealDiv = revealCard.find('.card-reveal'); - var activator = revealCard.find('.activator'); - - expect(revealDiv).toBeHidden('reveal div should be hidden initially'); - - activator.click(); - - setTimeout(function() { - expect(revealDiv).toBeVisible('reveal did not appear after activator was clicked.'); - - // Check revealDiv covers reveal card. - expect(revealDiv.outerWidth()).toEqual(revealCard.outerWidth(), 'activator was not as wide as reveal card.'); - expect(revealDiv.outerHeight()).toEqual(revealCard.outerHeight(), 'activator was not as high as reveal card.'); - expect(revealDiv.offset().top).toEqual(revealCard.offset().top, 'activator was not as in the same y as reveal card.'); - expect(revealDiv.offset().left).toEqual(revealCard.offset().left, 'activator was not as in the same x as reveal card.'); - - done(); - }, 400); - - }); - }); - - describe("image cards", function () { - var imageCard; - - beforeEach(function() { - imageCard = $('.card.image'); - }); - - it("should have an image that fills to full width of card", function () { - var image = imageCard.find('.card-image > img'); - - expect(image.outerWidth()).toEqual(imageCard.outerWidth(), 'image does not fill width of card'); - expect(image.offset().top).toEqual(imageCard.offset().top, 'image was not as in the same y as card.'); - }); - }); - - - describe("sized cards", function () { - var small, medium, large; - - beforeEach(function() { - small = $('.card.small'); - medium = $('.card.medium'); - large = $('.card.large'); - }); - - it("should have small card dimensions", function () { - var cardImage = small.find('.card-image'); - var cardContent = small.find('.card-content'); - var cardAction = small.find('.card-action'); - - expect(small.outerHeight()).toEqual(300, 'small card should be 300px high'); - expect(cardImage.outerHeight()).toBeLessThan(181, 'small image should be <= 180px or 60% high'); - expect(cardContent.outerHeight()).toBeLessThan(121, 'small content should be <= 120px or 40% high'); - expect(cardAction.offset().top + cardAction.outerHeight()) - .toEqual(small.offset().top + small.outerHeight(), 'small action should be at bottom of card'); - }); - - it("should have medium card dimensions", function () { - var cardImage = medium.find('.card-image'); - var cardContent = medium.find('.card-content'); - var cardAction = medium.find('.card-action'); - - expect(medium.outerHeight()).toEqual(400, 'medium card should be 400px high'); - expect(cardImage.outerHeight()).toBeLessThan(241, 'medium image should be <= 240 or 60% high'); - expect(cardContent.outerHeight()).toBeLessThan(161, 'medium content should be <= 160px or 40% high'); - expect(cardAction.offset().top + cardAction.outerHeight()) - .toEqual(medium.offset().top + medium.outerHeight(), 'medium action should be at bottom of card'); - }); - - it("should have large card dimensions", function () { - var cardImage = large.find('.card-image'); - var cardContent = large.find('.card-content'); - var cardAction = large.find('.card-action'); - - expect(large.outerHeight()).toEqual(500, 'large card should be 500px high'); - expect(cardImage.outerHeight()).toBeLessThan(301, 'large image should be <= 300 or 60% high'); - expect(cardContent.outerHeight()).toBeLessThan(201, 'large content should be <= 200 or 40% high'); - expect(cardAction.offset().top + cardAction.outerHeight()) - .toEqual(large.offset().top + large.outerHeight(), 'large action should be at bottom of card'); - }); - }); - -}); diff --git a/node_modules/materialize-css/tests/spec/chips/chipsFixture.html b/node_modules/materialize-css/tests/spec/chips/chipsFixture.html deleted file mode 100644 index 61d00f3..0000000 --- a/node_modules/materialize-css/tests/spec/chips/chipsFixture.html +++ /dev/null @@ -1,4 +0,0 @@ -
                -
                -
                -
                \ No newline at end of file diff --git a/node_modules/materialize-css/tests/spec/chips/chipsSpec.js b/node_modules/materialize-css/tests/spec/chips/chipsSpec.js deleted file mode 100644 index f72162b..0000000 --- a/node_modules/materialize-css/tests/spec/chips/chipsSpec.js +++ /dev/null @@ -1,88 +0,0 @@ -describe("Chips Plugin", function () { - - beforeEach(function() { - loadFixtures('chips/chipsFixture.html'); - $('.chips').material_chip(); - $('.chips-initial').material_chip({ - data: [{ tag: 'Apple' }, { tag: 'Microsoft' }, { tag: 'Google' }], - }); - $('.chips-placeholder').material_chip({ - placeholder: 'Enter a tag', - secondaryPlaceholder: '+Tag', - }); - $('.chips-autocomplete').material_chip({ - autocompleteData: { - 'Apple': null, - 'Microsoft': null, - 'Google': null - } - }); - }); - - describe("Chips", function () { - var $chips, $input; - - // beforeEach(function() { - // }); - - it("should work with multiple initializations", function () { - $chips = $('.chips').first(); - $chips.material_chip(); - $chips.material_chip(); - $chips.material_chip(); - $chips.material_chip(); - - $input = $chips.find('input'); - - expect($input.length).toEqual(1, 'Should dynamically generate chips structure.'); - }); - - it("should be able to add chip", function (done) { - $chips = $('.chips').first(); - $input = $chips.find('input'); - - $input.val('one'); - - var e = $.Event('keydown'); - e.which = 13; - $input.trigger(e); - - setTimeout(function() { - var numChips = $chips.find('.chip').length; - var $oneChip = $chips.find('.chip').first(); - - expect(numChips).toEqual(1, 'one chip should have been added'); - - $oneChip.children().remove() - expect($oneChip.text()).toEqual('one', 'the chip should have value "one"'); - - done(); - }, 400); - - }); - - it("should be able to delete chip", function (done) { - $chips = $('.chips.chips-initial').first(); - $input = $chips.find('input'); - var numChips = $chips.find('.chip').length - - expect(numChips).toEqual(3, '3 initial chips should have been added'); - - $chips.find('.chip .close').first().click(); - - setTimeout(function() { - numChips = $chips.find('.chip').length - - expect(numChips).toEqual(2, 'one chip should have been deleted'); - - done(); - }, 400); - - }); - }); - - // describe("Chips autocomplete", function () { - - // }); - -}); diff --git a/node_modules/materialize-css/tests/spec/collapsible/collapsible.html b/node_modules/materialize-css/tests/spec/collapsible/collapsible.html deleted file mode 100644 index 69c47c2..0000000 --- a/node_modules/materialize-css/tests/spec/collapsible/collapsible.html +++ /dev/null @@ -1,44 +0,0 @@ - - -
                  -
                • -
                  filter_dramaFirst
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  placeSecond
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  whatshotThird
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                - -
                  -
                • -
                  filter_dramaFirst
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  placeSecond
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                • -
                  whatshotThird
                  -

                  Lorem ipsum dolor sit amet.

                  -
                • -
                \ No newline at end of file diff --git a/node_modules/materialize-css/tests/spec/collapsible/collapsibleSpec.js b/node_modules/materialize-css/tests/spec/collapsible/collapsibleSpec.js deleted file mode 100644 index bdfd265..0000000 --- a/node_modules/materialize-css/tests/spec/collapsible/collapsibleSpec.js +++ /dev/null @@ -1,92 +0,0 @@ -describe( "Collapsible Plugin", function () { - var collapsible, accordion; - - beforeEach(function() { - loadFixtures('collapsible/collapsible.html'); - collapsible = $('.collapsible'); - accordion = $('.accordion'); - popout = $('.popout'); - collapsible.collapsible(); - }); - - describe( "collapsible", function () { - - it("should open all items, keeping all open", function () { - // Collapsible body height should be 0 on start when hidden. - var headers = collapsible.find('.collapsible-header'); - var bodies = collapsible.find('.collapsible-body'); - - bodies.each(function() { - expect($(this)).toBeHidden('because collapsible bodies should be hidden initially.'); - }); - - // Collapsible body height should be > 0 after being opened. - headers.each(function() { - $(this).click(); - }); - bodies.each(function() { - expect($(this)).toBeVisible('because collapsible bodies not visible after being opened.'); - }); - }); - }); - - describe( "accordion", function () { - - it("should open first and second items, keeping only second open", function (done) { - // Collapsible body height should be 0 on start when hidden. - var firstHeader = accordion.find('.collapsible-header').first(); - var firstBody = accordion.find('.collapsible-body').first(); - var secondHeader = accordion.find('.collapsible-header').eq(1); - var secondBody = accordion.find('.collapsible-body').eq(1); - expect(firstBody).toBeHidden('because accordion bodies should be hidden initially.'); - expect(secondBody).toBeHidden('because accordion bodies should be hidden initially.'); - - // Collapsible body height should be > 0 after being opened. - firstHeader.click(); - - setTimeout(function() { - expect(firstBody).toBeVisible('because accordion bodies not visible after being opened.'); - secondHeader.click(); - - setTimeout(function() { - expect(firstBody).toBeHidden('because accordion bodies should be hidden when another item is opened.'); - expect(secondBody).toBeVisible('because accordion bodies not visible after being opened.'); - done(); - }, 400); - }, 200); - - }); - }); - - describe( "popout", function () { - - it("should open first and popout", function (done) { - // Collapsible body height should be 0 on start when hidden. - var firstLi = popout.find('li').first(); - var firstHeader = popout.find('.collapsible-header').first(); - var firstBody = popout.find('.collapsible-body').first(); - expect(firstBody).toBeHidden('because accordion bodies should be hidden initially.'); - - // Expect margin to be > 0 because not popped out. - popout.find('li').each(function () { - var marginLeft = parseInt($(this).css('margin-left')); - var marginRight = parseInt($(this).css('margin-right')); - expect(marginLeft).toBeGreaterThan(0, 'because closed popout items should have horizontal margins.'); - expect(marginRight).toBeGreaterThan(0, 'because closed popout items should have horizontal margins.'); - }); - - // expect margin to be 0 because popped out. - firstHeader.click(); - setTimeout(function() { - var firstMarginLeft = parseInt(firstLi.css('margin-left')); - var firstMarginRight = parseInt(firstLi.css('margin-right')); - expect(firstMarginLeft).toEqual(0, 'because opened popout items should have no horizontal margins.'); - expect(firstMarginRight).toEqual(0, 'because opened popout items should have no horizontal margins.'); - expect(firstBody).toBeVisible('because accordion bodies not visible after being opened.'); - - done(); - }, 400); - - }); - }); -}); diff --git a/node_modules/materialize-css/tests/spec/dropdown/dropdownFixture.html b/node_modules/materialize-css/tests/spec/dropdown/dropdownFixture.html deleted file mode 100644 index a72edc3..0000000 --- a/node_modules/materialize-css/tests/spec/dropdown/dropdownFixture.html +++ /dev/null @@ -1,14 +0,0 @@ -
                -
                - - Drop Me! - - - -
                -
                \ No newline at end of file diff --git a/node_modules/materialize-css/tests/spec/dropdown/dropdownSpec.js b/node_modules/materialize-css/tests/spec/dropdown/dropdownSpec.js deleted file mode 100644 index 568a610..0000000 --- a/node_modules/materialize-css/tests/spec/dropdown/dropdownSpec.js +++ /dev/null @@ -1,51 +0,0 @@ -describe("Dropdown Plugin", function () { - beforeEach(function() { - loadFixtures('dropdown/dropdownFixture.html'); - $('.dropdown-button').dropdown(); - }); - - describe("Dropdown", function () { - var normalDropdown; - - beforeEach(function() { - // browserSelect = $('select.normal'); - }); - - it("should open and close programmatically", function (done) { - var dropdown1 = $('#dropdown1'); - normalDropdown = $('#dropdownActivator'); - - expect(dropdown1).toBeHidden('Should be hidden before dropdown is opened.'); - - normalDropdown.dropdown('open'); - - setTimeout(function() { - expect(dropdown1).toBeVisible('Should be shown after dropdown is opened.'); - normalDropdown.dropdown('close'); - - setTimeout(function() { - expect(dropdown1).toBeHidden('Should be hidden after dropdown is closed.'); - done(); - }, 400); - }, 400); - }); - - it("should close dropdown on document click if programmatically opened", function (done) { - normalDropdown = $('#dropdownActivator'); - - expect(dropdown1).toBeHidden('Should be hidden before dropdown is opened.'); - - normalDropdown.dropdown('open'); - - setTimeout(function() { - expect(dropdown1).toBeVisible('Should be shown after dropdown is opened.'); - $(document).click(); - - setTimeout(function() { - expect(dropdown1).toBeHidden('Should be hidden after dropdown is closed.'); - done(); - }, 400); - }, 400); - }); - }); -}); diff --git a/node_modules/materialize-css/tests/spec/helper.js b/node_modules/materialize-css/tests/spec/helper.js deleted file mode 100644 index 08cc019..0000000 --- a/node_modules/materialize-css/tests/spec/helper.js +++ /dev/null @@ -1 +0,0 @@ -jasmine.getFixtures().fixturesPath = 'tests/spec'; \ No newline at end of file diff --git a/node_modules/materialize-css/tests/spec/materialbox/materialboxFixture.html b/node_modules/materialize-css/tests/spec/materialbox/materialboxFixture.html deleted file mode 100644 index ab4d933..0000000 --- a/node_modules/materialize-css/tests/spec/materialbox/materialboxFixture.html +++ /dev/null @@ -1,3 +0,0 @@ -
                - -
                \ No newline at end of file diff --git a/node_modules/materialize-css/tests/spec/materialbox/materialboxSpec.js b/node_modules/materialize-css/tests/spec/materialbox/materialboxSpec.js deleted file mode 100644 index 0c6c1cf..0000000 --- a/node_modules/materialize-css/tests/spec/materialbox/materialboxSpec.js +++ /dev/null @@ -1,33 +0,0 @@ -describe( 'Materialbox:', function() { - var transformMaterialbox; - - beforeEach(function() { - loadFixtures('materialbox/materialboxFixture.html'); - }); - - describe('Materialbox opens correctly with transformed ancestor', function() { - it('Opens a correctly placed overlay when clicked', function(done) { - transformMaterialbox = $('#transformTest'); - $('.materialboxed').materialbox(); - - // Mouse click - transformMaterialbox.find('.materialboxed').trigger('click'); - setTimeout(function() { - // Check overlay is attached - var overlay = transformMaterialbox.find('#materialbox-overlay'); - var overlayRect = overlay[0].getBoundingClientRect(); - var windowWidth = window.innerWidth; - var windowHeight = window.innerHeight; - expect(overlay).toExist('because it is generated on init'); - expect(overlay).toBeVisible('because materialbox was clicked'); - expect(overlayRect.top).toEqual(0); - expect(overlayRect.left).toEqual(0); - expect(overlayRect.width).toEqual(windowWidth); - expect(overlayRect.height).toEqual(windowHeight); - - done(); - }, 1000); - }); - }); - -}); diff --git a/node_modules/materialize-css/tests/spec/scrollFire/scrollFireFixture.html b/node_modules/materialize-css/tests/spec/scrollFire/scrollFireFixture.html deleted file mode 100644 index 900d4f2..0000000 --- a/node_modules/materialize-css/tests/spec/scrollFire/scrollFireFixture.html +++ /dev/null @@ -1,109 +0,0 @@ -

                - Filling up some content to enable scrolling -

                -

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

                -

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

                - - diff --git a/node_modules/materialize-css/tests/spec/scrollFire/scrollFireSpec.js b/node_modules/materialize-css/tests/spec/scrollFire/scrollFireSpec.js deleted file mode 100644 index 6b42d12..0000000 --- a/node_modules/materialize-css/tests/spec/scrollFire/scrollFireSpec.js +++ /dev/null @@ -1,31 +0,0 @@ -describe('ScrollFire Plugin', function() { - var options, testElement; - - beforeEach(function() { - options = [{ - selector: '#test', - offset: 50, - callback: 'Materialize.callbackFunc()' - }]; - Materialize.callbackFunc = function() { - return 'I have been called'; - }; - - loadFixtures('scrollFire/scrollFireFixture.html'); - spyOn(Materialize, 'callbackFunc').and.callThrough(); - testElement = $('#test'); - Materialize.scrollFire(options); - }); - - describe('ScrollFire', function() { - it('should fire the callback function', function(done) { - // Scroll to the test component - window.scrollTo(0, testElement.offset().top); - // The callback function should be fired after scrolling - setTimeout(function() { - expect(Materialize.callbackFunc).toHaveBeenCalled(); - done(); - }, 400); - }); - }); -}); diff --git a/node_modules/materialize-css/tests/spec/select/selectFixture.html b/node_modules/materialize-css/tests/spec/select/selectFixture.html deleted file mode 100644 index 7a974fb..0000000 --- a/node_modules/materialize-css/tests/spec/select/selectFixture.html +++ /dev/null @@ -1,40 +0,0 @@ -
                -
                - - -
                -
                - -
                -
                - - -
                -
                - -
                -
                - - -
                -
                diff --git a/node_modules/materialize-css/tests/spec/select/selectSpec.js b/node_modules/materialize-css/tests/spec/select/selectSpec.js deleted file mode 100644 index c76555c..0000000 --- a/node_modules/materialize-css/tests/spec/select/selectSpec.js +++ /dev/null @@ -1,199 +0,0 @@ -describe("Select Plugin", function () { - beforeEach(function() { - loadFixtures('select/selectFixture.html'); - $('select').not('.disabled').material_select(); - }); - - describe("Select", function () { - var browserSelect, normalInput, normalDropdown; - - beforeEach(function() { - browserSelect = $('select.normal'); - }); - - it("should open dropdown and select option", function (done) { - normalInput = browserSelect.parent().find('input.select-dropdown'); - normalDropdown = browserSelect.parent().find('ul.select-dropdown'); - - expect(normalInput).toExist('Should dynamically generate select dropdown structure.'); - expect(normalDropdown).toExist('Should dynamically generate select dropdown structure.'); - expect(normalInput).toBeVisible('Should be hidden before dropdown is opened.'); - expect(normalDropdown).toBeHidden('Should be hidden before dropdown is opened.'); - - normalInput.click(); - - setTimeout(function() { - expect(normalDropdown).toBeVisible('Should be visible after opening.'); - var firstOption = normalDropdown.find('li:not(.disabled)').first(); - firstOption.click(); - normalInput.blur(); - - setTimeout(function() { - expect(normalDropdown).toBeHidden('Should be hidden after choosing item.'); - expect(normalInput.val()).toEqual(firstOption[0].innerText, 'Value should equal chosen option.'); - done(); - }, 400); - }, 400); - }); - - it("should have pre-selected value", function () { - normalInput = browserSelect.parent().find('input.select-dropdown'); - normalDropdown = browserSelect.parent().find('ul.select-dropdown'); - - var firstOption = browserSelect.find('option[selected]'); - expect(normalInput.val()).toEqual(firstOption.text(), 'Value should be equal to preselected option.'); - }); - }); - - describe("Multiple Select", function () { - var browserSelect, multipleInput, multipleDropdown; - - beforeEach(function() { - browserSelect = $('select.multiple'); - }); - - it("should open dropdown and select multiple options", function(done) { - multipleInput = browserSelect.parent().find('input.select-dropdown'); - multipleDropdown = browserSelect.parent().find('ul.select-dropdown'); - - expect(multipleInput).toExist('Should dynamically generate select dropdown structure.'); - expect(multipleDropdown).toExist('Should dynamically generate select dropdown structure.'); - expect(multipleInput).toBeVisible('Should be hidden before dropdown is opened.'); - expect(multipleDropdown).toBeHidden('Should be hidden before dropdown is opened.'); - - multipleInput.click(); - - setTimeout(function() { - expect(multipleDropdown).toBeVisible('Should be visible after opening.'); - var firstOption = multipleDropdown.find('li:not(.disabled)').first(); - var secondOption = multipleDropdown.find('li:not(.disabled)').eq(1); - var thirdOption = multipleDropdown.find('li:not(.disabled)').eq(2); - firstOption.click(); - $('body').click(); - - setTimeout(function() { - expect(multipleDropdown).toBeHidden('Should be hidden after choosing item.'); - expect(browserSelect.val()).toEqual(['1', '2', '3'], 'Actual select should have correct selected values.'); - expect(multipleInput.val()).toEqual(secondOption[0].innerText + ', ' + thirdOption[0].innerText + ', ' + firstOption[0].innerText, 'Value should equal chosen multiple options.'); - done(); - }, 400); - }, 400); - }); - - it("should open dropdown and deselect multiple options", function(done) { - multipleInput = browserSelect.parent().find('input.select-dropdown'); - multipleDropdown = browserSelect.parent().find('ul.select-dropdown'); - - expect(multipleInput).toExist('Should dynamically generate select dropdown structure.'); - expect(multipleDropdown).toExist('Should dynamically generate select dropdown structure.'); - expect(multipleInput).toBeVisible('Should be hidden before dropdown is opened.'); - expect(multipleDropdown).toBeHidden('Should be hidden before dropdown is opened.'); - - multipleInput.click(); - - setTimeout(function() { - expect(multipleDropdown).toBeVisible('Should be visible after opening.'); - var disabledOption = multipleDropdown.find('li.disabled'); - var secondOption = multipleDropdown.find('li:not(.disabled)').eq(1); - var thirdOption = multipleDropdown.find('li:not(.disabled)').eq(2); - secondOption.click(); - thirdOption.click(); - $('body').click(); - - setTimeout(function() { - expect(multipleDropdown).toBeHidden('Should be hidden after choosing item.'); - expect(browserSelect.val()).toEqual(null, 'Actual select element should be empty because none chosen.'); - expect(multipleInput.val()).toEqual(disabledOption[0].innerText, 'Value should equal default because none chosen.'); - done(); - }, 400); - }, 400); - }); - - it("should have multiple pre-selected values", function () { - multipleInput = browserSelect.parent().find('input.select-dropdown'); - multipleDropdown = browserSelect.parent().find('ul.select-dropdown'); - - var secondOption = browserSelect.find('option[selected]').eq(0); - var thirdOption = browserSelect.find('option[selected]').eq(1); - expect(multipleInput.val()).toEqual(secondOption.text() + ', ' + thirdOption.text(), 'Value should be equal to preselected option.'); - }); - }); - - describe("Optgroup Select", function () { - var browserSelect, optInput, optDropdown, optionInOptgroup, optionAfterOptGroup; - - beforeEach(function() { - browserSelect = $('select.optgroup'); - }); - - it("should open dropdown and select options", function(done) { - optInput = browserSelect.parent().find('input.select-dropdown'); - optDropdown = browserSelect.parent().find('ul.select-dropdown'); - - var optgroups = optDropdown.find('li.optgroup'); - browserSelect.find('optgroup').each(function(i) { - expect($(this).attr('label')).toEqual(optgroups.eq(i)[0].innerText, 'should generate optgroup structure.'); - }); - - expect(optInput).toExist('Should dynamically generate select dropdown structure.'); - expect(optDropdown).toExist('Should dynamically generate select dropdown structure.'); - expect(optInput).toBeVisible('Should be hidden before dropdown is opened.'); - expect(optDropdown).toBeHidden('Should be hidden before dropdown is opened.'); - - optInput.click(); - - setTimeout(function() { - expect(optDropdown).toBeVisible('Should be visible after opening.'); - var secondOption = optDropdown.find('li:not(.disabled):not(.optgroup)').eq(1); - secondOption.click(); - optInput.blur(); - - setTimeout(function() { - expect(optDropdown).toBeHidden('Should be hidden after choosing item.'); - expect(optInput.val()).toEqual(secondOption[0].innerText, 'Value should be equal to selected option.'); - done(); - }, 400); - }, 400); - }); - - it("should have options inside optgroup indented", function() { - optionInOptgroup = browserSelect.parent().find('li.optgroup + li'); - optionAfterOptGroup = browserSelect.parent().find('ul li:last-child'); - - expect(optionInOptgroup).toHaveClass('optgroup-option', 'Should have optgroup-option class'); - expect(optionAfterOptGroup).not.toHaveClass('optgroup-option', 'Should not have optgroup-option class'); - }); - - it("should not do anything when optgroup li clicked", function(done) { - optInput = browserSelect.parent().find('input.select-dropdown'); - optDropdown = browserSelect.parent().find('ul.select-dropdown'); - var originalVal = optInput.val(); - - var optgroups = optDropdown.find('li.optgroup'); - browserSelect.find('optgroup').each(function(i) { - expect($(this).attr('label')).toEqual(optgroups.eq(i)[0].innerText, 'should generate optgroup structure.'); - }); - - expect(optInput).toExist('Should dynamically generate select dropdown structure.'); - expect(optDropdown).toExist('Should dynamically generate select dropdown structure.'); - expect(optInput).toBeVisible('Should be hidden before dropdown is opened.'); - expect(optDropdown).toBeHidden('Should be hidden before dropdown is opened.'); - - optInput.click(); - - setTimeout(function() { - expect(optDropdown).toBeVisible('Should be visible after opening.'); - var optgroup = optDropdown.find('li.optgroup').first(); - optgroup.click(); - optInput.blur(); - - setTimeout(function() { - expect(optDropdown).toBeHidden('Should be hidden after choosing invalid item.'); - expect(optInput.val()).toEqual(originalVal, 'Value should be equal to original option.'); - done(); - }, 400); - }, 400); - }); - - }); -}); diff --git a/node_modules/materialize-css/tests/spec/sideNav/sideNavFixture.html b/node_modules/materialize-css/tests/spec/sideNav/sideNavFixture.html deleted file mode 100644 index 2db6560..0000000 --- a/node_modules/materialize-css/tests/spec/sideNav/sideNavFixture.html +++ /dev/null @@ -1,16 +0,0 @@ - -menu \ No newline at end of file diff --git a/node_modules/materialize-css/tests/spec/sideNav/sideNavSpec.js b/node_modules/materialize-css/tests/spec/sideNav/sideNavSpec.js deleted file mode 100644 index b90ce89..0000000 --- a/node_modules/materialize-css/tests/spec/sideNav/sideNavSpec.js +++ /dev/null @@ -1,59 +0,0 @@ -describe("SideNav Plugin", function () { - beforeEach(function() { - loadFixtures('sideNav/sideNavFixture.html'); - $(".button-collapse").sideNav(); - }); - - describe("SideNav", function () { - var normalActivator, normalSideNav; - - beforeEach(function() { - normalActivator = $('.button-collapse'); - normalSideNav = $('.side-nav'); - }); - - it("should not break from multiple initializations", function() { - $(".button-collapse").sideNav(); - $(".button-collapse").sideNav(); - $(".button-collapse").sideNav(); - - var dragTarget = $('.drag-target[data-sidenav="' + normalActivator.attr('data-activates') + '"]'); - var dragTargetEvents = $._data(dragTarget[0], 'events'); - expect(dragTarget.length).toEqual(1, 'Should generate only one dragTarget.'); - expect(dragTargetEvents.click.length).toEqual(1, 'Should only bind 1 click handler on activator'); - expect(dragTargetEvents.pan.length).toEqual(1, 'Should only bind 1 pan handler on activator'); - expect(dragTargetEvents.panend.length).toEqual(1, 'Should only bind 1 panend handler on activator'); - - var normalActivatorEvents = $._data(normalActivator[0], 'events'); - expect(normalActivatorEvents.click.length).toEqual(1, 'Should only bind 1 click handler on activator'); - }); - - it("should open sideNav from left", function (done) { - var sideNavRect = normalSideNav[0].getBoundingClientRect(); - var overlay = $('[id="sidenav-overlay"]'); - var dragTarget = $('.drag-target[data-sidenav="' + normalActivator.attr('data-activates') + '"]'); - - expect(dragTarget.length).toEqual(1, 'Should generate only one dragTarget.'); - expect(overlay.length).toEqual(0, 'Overlay should not be generated before sideNav is opened.'); - expect(sideNavRect.left).toEqual(-sideNavRect.width, 'Should be hidden before sideNav is opened.'); - - normalActivator.click(); - - setTimeout(function() { - sideNavRect = normalSideNav[0].getBoundingClientRect(); - overlay = $('[id="sidenav-overlay"]'); - expect(overlay.length).toEqual(1, 'Should generate only one overlay.'); - expect(sideNavRect.left).toEqual(0, 'Should be shown after sideNav is closed.'); - - overlay.click(); - - setTimeout(function() { - overlay = $('[id="sidenav-overlay"]'); - expect(overlay.length).toEqual(0, 'Overlay should be removed after sideNav is closed.'); - - done(); - }, 500); - }, 500); - }); - }); -}); diff --git a/node_modules/materialize-css/tests/spec/tabs/tabsFixture.html b/node_modules/materialize-css/tests/spec/tabs/tabsFixture.html deleted file mode 100644 index 49dae37..0000000 --- a/node_modules/materialize-css/tests/spec/tabs/tabsFixture.html +++ /dev/null @@ -1,22 +0,0 @@ -
                - -
                Test 1
                -
                Test 2
                -
                Test 3
                -
                Test 4
                -
                Test 1
                -
                Test 2
                -
                Test 3
                -
                Test 4
                -
                \ No newline at end of file diff --git a/node_modules/materialize-css/tests/spec/tabs/tabsSpec.js b/node_modules/materialize-css/tests/spec/tabs/tabsSpec.js deleted file mode 100644 index ed330d8..0000000 --- a/node_modules/materialize-css/tests/spec/tabs/tabsSpec.js +++ /dev/null @@ -1,87 +0,0 @@ -describe("Tabs Plugin", function () { - beforeEach(function() { - loadFixtures('tabs/tabsFixture.html'); - $('ul.tabs').tabs(); - }); - - describe("Tabs", function () { - var normalTabs; - - beforeEach(function() { - normalTabs = $('.tabs.normal'); - }); - - it("should open to active tab", function () { - var activeTab = normalTabs.find('.active'); - var activeTabHash = activeTab.attr('href'); - normalTabs.find('.tab a').each(function() { - var tabHash = $(this).attr('href'); - if (tabHash === activeTabHash) { - expect($(tabHash)).toBeVisible('active tab content should be visible by default'); - } else { - expect($(tabHash)).toBeHidden('Tab content should be hidden by default'); - } - }); - - var indicator = normalTabs.find('.indicator'); - expect(indicator).toExist('Indicator should be generated'); - // expect(Math.abs(indicator.offset().left - activeTab.offset().left)).toBeLessThan(1, 'Indicator should be at active tab by default.'); - }); - - it("should switch to clicked tab", function (done) { - var activeTab = normalTabs.find('.active'); - var activeTabHash = activeTab.attr('href'); - var disabledTab = normalTabs.find('.disabled a'); - var disabledTabHash = disabledTab.attr('href'); - var firstTab = normalTabs.find('.tab a').first(); - var firstTabHash = firstTab.attr('href'); - var indicator = normalTabs.find('.indicator'); - - expect(indicator).toExist('Indicator should be generated'); - // expect(Math.abs(indicator.offset().left - activeTab.offset().left)).toBeLessThan(1, 'Indicator should be at active tab by default.'); - - disabledTab.click(); - - setTimeout(function() { - expect($(activeTabHash)).toBeVisible('Clicking disabled should not change tabs.'); - expect($(disabledTabHash)).toBeHidden('Clicking disabled should not change tabs.'); - - firstTab.click(); - - setTimeout(function() { - expect($(activeTabHash)).toBeHidden('Clicking tab should switch to that tab.'); - expect($(firstTabHash)).toBeVisible('Clicking tab should switch to that tab.'); - expect(indicator.offset().left).toEqual(firstTab.offset().left, 'Indicator should move to clicked tab.'); - done(); - }, 400); - }, 400); - }); - - it("shouldn't hide active tab if clicked while active", function (done) { - var activeTab = normalTabs.find('.active'); - var activeTabHash = activeTab.attr('href'); - var indicator = normalTabs.find('.indicator'); - - expect(indicator).toExist('Indicator should be generated'); - - activeTab.click(); - - setTimeout(function() { - expect($(activeTabHash)).toBeVisible('Clicking active tab while active should not hide it.'); - done(); - }, 400); - }); - - - it("should horizontally scroll when too many tabs", function () { - var tabsScrollWidth = 0; - normalTabs.parent().css('width', '400px'); - normalTabs.find('.tab').each(function() { - tabsScrollWidth += $(this).width(); - }); - - expect(tabsScrollWidth).toBeGreaterThan(normalTabs.width(), 'Scroll width should exceed tabs width'); - }); - - }); -}); \ No newline at end of file diff --git a/node_modules/materialize-css/tests/spec/toast/toastSpec.js b/node_modules/materialize-css/tests/spec/toast/toastSpec.js deleted file mode 100644 index be9e0d8..0000000 --- a/node_modules/materialize-css/tests/spec/toast/toastSpec.js +++ /dev/null @@ -1,61 +0,0 @@ -describe( 'Toasts:', function() { - var toastOutDuration = 375; - var toastInDuration = 300; - var toast; - - describe('Toast javascript functions', function() { - // Toast out animation duration does not count as part of its timer. - it('should display and remove a toast', function(done) { - Materialize.toast('Test toast', toastInDuration); - - setTimeout(function() { - toast = $('.toast'); - expect(toast.length).toBe(1); - expect(toast).toBeVisible(); - expect(toast.text()).toBe('Test toast'); - setTimeout(function() { - toast = $('.toast'); - expect(toast).toBeVisible(); - expect(toast.length).toBe(1, 'because toast duration still on going'); - setTimeout(function() { - toast = $('.toast'); - expect(toast.length).toBe(0, 'because toast should be removed by now'); - done(); - }, toastOutDuration + 90); // .1s leeway is given - }, 10); - }, toastInDuration); - }); - - it('Opens a toast with HTML content', function() { - var $toastContent = $('I am toast content'); - Materialize.toast($toastContent, 400); - toast = $('.toast'); - expect(toast.first('span').text()).toBe('I am toast content'); - expect(toast.first('span').text()).not.toBe('I am toast') - }); - - it('Toasts should call the callback function when dismissed', - function(done) { - var boolObj = {wasCalled: false}; - var callback = function() { - boolObj.wasCalled = true; - }; - Materialize.toast('I am a toast', 100, '', callback); - setTimeout(function() { - expect(boolObj.wasCalled).toBe(true, - 'because the callback set it to true'); - done(); - }, 500); - }); - - it('Apply two custom class to a toast', function() { - Materialize.toast('Hi', 400, 'round flat'); - toast = $('.toast'); - expect(toast.closest('.round.flat').length).toBe(1, - 'because the class parameter was passed with two classes'); - }); - - }); - - -}); diff --git a/node_modules/materialize-css/tests/spec/tooltip/tooltipFixture.html b/node_modules/materialize-css/tests/spec/tooltip/tooltipFixture.html deleted file mode 100644 index 87bc871..0000000 --- a/node_modules/materialize-css/tests/spec/tooltip/tooltipFixture.html +++ /dev/null @@ -1,17 +0,0 @@ - - Hover me! - - - - Hover me! - diff --git a/node_modules/materialize-css/tests/spec/tooltip/tooltipSpec.js b/node_modules/materialize-css/tests/spec/tooltip/tooltipSpec.js deleted file mode 100644 index ff7f31d..0000000 --- a/node_modules/materialize-css/tests/spec/tooltip/tooltipSpec.js +++ /dev/null @@ -1,107 +0,0 @@ -describe( 'Tooltip:', function() { - var tooltippedBtn, tooltip; - - beforeEach(function() { - loadFixtures('tooltip/tooltipFixture.html'); - $('.tooltipped').tooltip(); - }); - - describe('Tooltip opens and closes properly', function() { - - - it('Opens a tooltip on mouse enter', function(done) { - tooltippedBtn = $('#test'); - tooltip = $('#' + tooltippedBtn.attr('data-tooltip-id')); - - // Mouse enter - tooltippedBtn.trigger('mouseenter'); - setTimeout(function() { - expect(tooltip).toBeVisible('because mouse entered tooltipped btn'); - expect(tooltip.children('span').text()).toBe('I am tooltip', - 'because that is the defined text in the html attribute'); - - // Mouse leave - tooltippedBtn.trigger('mouseleave'); - setTimeout(function() { - expect(tooltip).toBeVisible('because mouse left tooltipped btn'); - done(); - }, 300); - }, 200); - }); - - - it('Positions tooltips smartly on the bottom within the screen bounds', function(done) { - tooltippedBtn = $('#test1'); - tooltip = $('#' + tooltippedBtn.attr('data-tooltip-id')); - // Mouse enter - tooltippedBtn.trigger('mouseenter'); - setTimeout(function() { - var offset = tooltip.offset(); - // Check window bounds - expect(offset.top >= 0).toBeTruthy(); - expect(offset.top < 0).toBeFalsy(); - expect(offset.top + tooltip.height() <= - window.innerHeight).toBeTruthy(); - expect(offset.left >= 0).toBeTruthy(); - expect(offset.left < 0).toBeFalsy(); - expect(offset.left + tooltip.width() <= window.innerWidth).toBeTruthy(); - - // check if tooltip is under btn - expect(offset.top > tooltippedBtn.offset().top + tooltippedBtn.height()) - .toBeTruthy(); - expect(offset.top < tooltippedBtn.offset().top + tooltippedBtn.height()) - .toBeFalsy(); - done(); - }, 300); - }); - - - it('Removes tooltip event handlers and tooltip dom object', function() { - tooltippedBtn = $('#test1'); - tooltippedBtn.tooltip('remove'); - - // Check that event handlers are removed - var enterHandler = $._data(tooltippedBtn[0], 'events'); - expect(!!enterHandler).toBeFalsy('because all events should be removed'); - - // Check DOM element is removed - tooltip = $('#' + tooltippedBtn.attr('data-tooltip-id')); - expect(tooltip.length).toBe(0); - }); - - - it('Changes position attribute dynamically and positions tooltips on the right correctly', - function(done) { - tooltippedBtn = $('#test'); - tooltippedBtn.attr('data-position', 'right'); - tooltip = $('#' + tooltippedBtn.attr('data-tooltip-id')); - // Mouse enter - tooltippedBtn.trigger('mouseenter'); - setTimeout(function() { - var offset = tooltip.offset(); - expect(offset.left > tooltippedBtn.offset().left + tooltippedBtn.width()) - .toBeTruthy(); - done(); - }, 300); - }); - - - it('Accepts delay option from javascript initialization', function(done) { - tooltippedBtn = $('#test'); - tooltippedBtn.removeAttr('data-delay'); - tooltippedBtn.tooltip({delay: 200}); - tooltip = $('#' + tooltippedBtn.attr('data-tooltip-id')); - tooltippedBtn.trigger('mouseenter'); - setTimeout(function() { - expect(tooltip.css('visibility')).toBe('hidden', 'because the delay is 200 seconds'); - }, 150); - - setTimeout(function() { - expect(tooltip).toBeVisible('because 200 seconds has passed'); - done(); - }, 250); - - }); - }); - -}); diff --git a/node_modules/materialize-css/transitions.html b/node_modules/materialize-css/transitions.html deleted file mode 100644 index f6e2acd..0000000 --- a/node_modules/materialize-css/transitions.html +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - - - - Transitions - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                - -
                - -
                -

                We've made some custom animation functions that will transition your content. It's recommended to use this with our ScrollFire Plugin to make your content transition in as you scroll.

                - -

                showStaggeredList

                -

                Use this to create a staggered reveal effect for any UL Tag with list items. Just make sure the list items in the UL are opacity: 0; to ensure the animation works correctly.

                - - - - - - - - - - - - - - - -
                Option NameDescription
                selectorOrElThe selector or element that the transition targets.
                -
                - - Click Me -
                
                -  <a href="#!" class="btn" onclick="Materialize.showStaggeredList('#staggered-test')">Click Me</a>
                -        
                - -
                - -
                -

                fadeInImage

                -

                Use this to fade in images. It also animates grayscale and brightness to give it a unique effect.

                - - - - - - - - - - - - - - - -
                Option NameDescription
                selectorOrElThe selector or element that the transition targets.
                -
                - - Click Me -
                
                -  <a href="#!" class="btn" onclick="Materialize.fadeInImage('#image-test')">Click Me</a>
                -        
                - -
                -
                - -
                - -
                - -
                -
                - - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/typography.html b/node_modules/materialize-css/typography.html deleted file mode 100644 index 81a40a7..0000000 --- a/node_modules/materialize-css/typography.html +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - - - - Typography - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                - -
                - -
                -
                -

                Roboto 2.0

                -

                - The standard font Material Design uses is Roboto. We have included the font files with our framework. -

                -
                -

                We bundle our framework with the latest iteration of Roboto Google has released. It comes with 5 different font weights you can use: 200, 300, 400, 500, 600.

                Here is an image from Google's Roboto Specimen document displaying the different font weights.

                - -
                - -

                Removing Roboto

                -

                In case you don't want to use Roboto on your webpage, fear not. Simply change the font stack by modifying the code below to your liking and add it to your custom css.

                -
                
                -  html {
                -    font-family: GillSans, Calibri, Trebuchet, sans-serif;
                -  }
                -        
                -
                - - -
                -

                Headers

                -

                We provide some basic styling on header tags. In the example, you can see the the 6 header tags' different sizes.

                -
                -

                Heading h1

                -

                Heading h2

                -

                Heading h3

                -

                Heading h4

                -
                Heading h5
                -
                Heading h6
                -
                -
                - -
                -

                Blockquotes

                -

                - Blockquotes are mainly used to give emphasis to a quote or citation. You can also use these for some extra text hierarchy and emphasis. -

                -
                - This is an example quotation that uses the blockquote tag. -
                Here is another line to make it look bigger. -
                -
                
                -    <blockquote>
                -      This is an example quotation that uses the blockquote tag.
                -    </blockquote>
                -          
                -
                - -
                -

                Flow Text

                - Toggle flow-text -
                -

                - One common flaw we've seen in many frameworks is a lack of support for truly responsive text. While elements on the page resize fluidly, text still resizes on a fixed basis. To ameliorate this problem, for text heavy pages, we've created a class that fluidly scales text size and line-height to optimize readability for the user. Line length stays between 45-80 characters and line height scales to be larger on smaller screens.

                -

                To see Flow Text in action, slowly resize your browser and watch the size of this text body change! Use the button above to toggle off/on flow-text to see the difference!

                -
                - -
                - -

                To use flow-text on a body of text, simply just add the class flow-text to a tag, see the code blow.

                -
                -
                
                -    <p class="flow-text">I am Flow Text</p>
                -          
                -
                -
                - -
                - -
                -
                -
                -
                - - -
                - -
                -
                -
                -
                -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/materialize-css/waves.html b/node_modules/materialize-css/waves.html deleted file mode 100644 index bd0db0e..0000000 --- a/node_modules/materialize-css/waves.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - - - - - Waves - Materialize - - - - - - - - - - - - - - - - -
                - - - -
                -
                -
                - -
                - -
                - -

                Introduction

                -

                Waves is an external library that we've included in Materialize to allow us to create the ink effect outlined in Material Design

                - Wave -
                - - - -
                -

                Applying Waves

                -

                To put the waves effect on buttons, you just have to put the class waves-effect on to the buttons. If you want the waves effect to be white instead, add both waves-effect waves-light as classes.

                -
                
                -  <a class="waves-effect waves-light btn-large" href="#">Wave</a>
                -      
                -
                - - - -
                - -

                Customization

                -

                There are several ways to customize waves, you can either use pre-created classes, or you can define your own color by creating a new class

                -
                -
                -
                Available Colors
                -

                To use these, just add the corresponding class to your button. Play around with changing the background color of butons and the waves effect to create something cool!

                -
                
                -    <a href="#!" class="btn waves-effect waves-teal">Send</a>
                -          
                -
                -
                DefaultSend
                -
                waves-lightSend
                -
                waves-redSend
                -
                waves-yellowSend
                -
                waves-orangeSend
                -
                waves-purpleSend
                -
                waves-greenSend
                -
                waves-tealSend
                -
                -
                - -
                -
                Custom Colors
                -

                If the color you want is not already available, you can easily make your own waves color by creating a custom CSS class. Take a look at the example below where we add a waves-brown effect

                - -
                
                -    /*
                -    When creating your CSS selector,
                -    change "brown" to something of your choosing
                -    */
                -    .waves-effect.waves-brown .waves-ripple {
                -     /* The alpha value allows the text and background color
                -     of the button to still show through. */
                -      background-color: rgba(121, 85, 72, 0.65);
                -    }
                -          
                -
                -
                -
                - -
                - -

                Circle

                -

                If you want waves to form to a non rectangular shape, there is an option for circular waves. Just add the waves-circle in addition to waves-effect

                -
                -
                -
                HTML Markup
                -
                
                -  <a href="#!" class="waves-effect waves-circle waves-light btn-floating secondary-content">
                -    <i class="material-icons">add</i>
                -  </a>
                -          
                -
                -
                Defaultadd
                -
                waves-lightadd
                -
                -
                -
                -
                - -
                - - - -
                - -
                - -
                -
                - - -
                -
                -
                -
                -
                Help Materialize Grow
                -

                We are a team of college students working on this project like it's our full time job. Any amount would help support and continue development on this project and is greatly appreciated.

                -
                - - - -
                - -
                -
                -
                Join the Discussion
                -

                We have a Gitter chat room set up where you can talk directly with us. Come in and discuss new features, future goals, general problems or questions, or anything else you can think of.

                - Chat -
                -
                -
                Connect
                - -
                - -
                -
                -
                -
                -
                - -
                - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/node_modules/prismjs/.editorconfig b/node_modules/prismjs/.editorconfig deleted file mode 100644 index bf094ab..0000000 --- a/node_modules/prismjs/.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -root = true - -[*] -insert_final_newline = false -charset = utf-8 -indent_style = tab - -[tests/languages/**.test] -end_of_line = crlf - -[{package.json,.travis.yml}] -indent_style = space -indent_size = 2 \ No newline at end of file diff --git a/node_modules/prismjs/.gitattributes b/node_modules/prismjs/.gitattributes deleted file mode 100644 index 1d598bd..0000000 --- a/node_modules/prismjs/.gitattributes +++ /dev/null @@ -1,4 +0,0 @@ -* text=auto - -# Test files should not have their line endings modified by git -/tests/languages/**/*.test binary \ No newline at end of file diff --git a/node_modules/prismjs/.npmignore b/node_modules/prismjs/.npmignore deleted file mode 100644 index 670081f..0000000 --- a/node_modules/prismjs/.npmignore +++ /dev/null @@ -1,17 +0,0 @@ -.idea -*.iml - -hide-*.js - -CNAME -img -templates -*.html -style.css -favicon.png -logo.svg -download.js -prefixfree.min.js -utopia.js -code.js -components.js \ No newline at end of file diff --git a/node_modules/prismjs/.travis.yml b/node_modules/prismjs/.travis.yml deleted file mode 100644 index 5b217e4..0000000 --- a/node_modules/prismjs/.travis.yml +++ /dev/null @@ -1,16 +0,0 @@ -language: node_js -node_js: -- '0.10' -- '0.12' -before_script: -- npm install -g gulp -- gulp -script: npm test -deploy: - provider: npm - email: lea@verou.me - api_key: - secure: TjRcXEr7Y/9KRJ4EOEQbd2Ij8hxKj8c/yOpEROy2lTYv6QH9x46nFDgZEE3VHfp/nnBUYpC47dRaSxiUj8H5rtkMNCZrREZu1n1zahmzP6dI6kCj+H3GiY7yw/Jhdx3uvQZHwknW2TJ/YRsLeQsmMSG2HnJobY9Zn4REX5ccP2E= - on: - tags: true - repo: PrismJS/prism diff --git a/node_modules/prismjs/CHANGELOG.md b/node_modules/prismjs/CHANGELOG.md deleted file mode 100644 index b47aa0d..0000000 --- a/node_modules/prismjs/CHANGELOG.md +++ /dev/null @@ -1,672 +0,0 @@ -# Prism Changelog - -## 1.6 (2016-12-03) - -### New components - -* __.properties__ ([#980](https://github.com/PrismJS/prism/issues/980)) [[`be6219a`](https://github.com/PrismJS/prism/commit/be6219a)] -* __Ada__ ([#949](https://github.com/PrismJS/prism/issues/949)) [[`65619f7`](https://github.com/PrismJS/prism/commit/65619f7)] -* __GraphQL__ ([#971](https://github.com/PrismJS/prism/issues/971)) [[`e018087`](https://github.com/PrismJS/prism/commit/e018087)] -* __Jolie__ ([#1014](https://github.com/PrismJS/prism/issues/1014)) [[`dfc1941`](https://github.com/PrismJS/prism/commit/dfc1941)] -* __LiveScript__ ([#982](https://github.com/PrismJS/prism/issues/982)) [[`62e258c`](https://github.com/PrismJS/prism/commit/62e258c)] -* __Reason__ (Fixes [#1046](https://github.com/PrismJS/prism/issues/1046)) [[`3cae6ce`](https://github.com/PrismJS/prism/commit/3cae6ce)] -* __Xojo__ ([#994](https://github.com/PrismJS/prism/issues/994)) [[`0224b7c`](https://github.com/PrismJS/prism/commit/0224b7c)] - -### Updated components - -* __APL__: - * Add iota underbar ([#1024](https://github.com/PrismJS/prism/issues/1024)) [[`3c5c89a`](https://github.com/PrismJS/prism/commit/3c5c89a), [`ac21d33`](https://github.com/PrismJS/prism/commit/ac21d33)] -* __AsciiDoc__: - * Optimized block regexps to prevent struggling on large files. Fixes [#1001](https://github.com/PrismJS/prism/issues/1001). [[`1a86d34`](https://github.com/PrismJS/prism/commit/1a86d34)] -* __Bash__: - * Add `npm` to function list ([#969](https://github.com/PrismJS/prism/issues/969)) [[`912bdfe`](https://github.com/PrismJS/prism/commit/912bdfe)] -* __CSS__: - * Make CSS strings greedy. Fix [#1013](https://github.com/PrismJS/prism/issues/1013). [[`e57e26d`](https://github.com/PrismJS/prism/commit/e57e26d)] -* __CSS Extras__: - * Match attribute inside selectors [[`13fed76`](https://github.com/PrismJS/prism/commit/13fed76)] -* _Groovy__: - * Fix order of decoding entities in groovy. Fixes [#1049](https://github.com/PrismJS/prism/issues/1049) ([#1050](https://github.com/PrismJS/prism/issues/1050)) [[`d75da8e`](https://github.com/PrismJS/prism/commit/d75da8e)] -* __Ini__: - * Remove important token in ini definition ([#1047](https://github.com/PrismJS/prism/issues/1047)) [[`fe8ad8b`](https://github.com/PrismJS/prism/commit/fe8ad8b)] -* __JavaScript__: - * Add exponentiation & spread/rest operator ([#991](https://github.com/PrismJS/prism/issues/991)) [[`b2de65a`](https://github.com/PrismJS/prism/commit/b2de65a), [`268d01e`](https://github.com/PrismJS/prism/commit/268d01e)] -* __JSON_: - * JSON: Fixed issues with properties and strings + added tests. Fix [#1025](https://github.com/PrismJS/prism/issues/1025) [[`25a541d`](https://github.com/PrismJS/prism/commit/25a541d)] -* __Markup__: - * Allow for dots in Markup tag names, but not in HTML tags included in Textile. Fixes [#888](https://github.com/PrismJS/prism/issues/888). [[`31ea66b`](https://github.com/PrismJS/prism/commit/31ea66b)] - * Make doctype case-insensitive ([#1009](https://github.com/PrismJS/prism/issues/1009)) [[`3dd7219`](https://github.com/PrismJS/prism/commit/3dd7219)] -* __NSIS__: - * Updated patterns ([#1032](https://github.com/PrismJS/prism/issues/1032)) [[`76ba1b8`](https://github.com/PrismJS/prism/commit/76ba1b8)] -* __PHP__: - * Make comments greedy. Fix [#197](https://github.com/PrismJS/prism/issues/197) [[`318aab3`](https://github.com/PrismJS/prism/commit/318aab3)] -* __PowerShell__: - * Fix highlighting of empty comments ([#977](https://github.com/PrismJS/prism/issues/977)) [[`4fda477`](https://github.com/PrismJS/prism/commit/4fda477)] -* __Puppet__: - * Fix over-greedy regexp detection ([#978](https://github.com/PrismJS/prism/issues/978)) [[`105be25`](https://github.com/PrismJS/prism/commit/105be25)] -* __Ruby__: - * Fix typo `Fload` to `Float` in prism-ruby.js ([#1023](https://github.com/PrismJS/prism/issues/1023)) [[`22cb018`](https://github.com/PrismJS/prism/commit/22cb018)] - * Make strings greedy. Fixes [#1048](https://github.com/PrismJS/prism/issues/1048) [[`8b0520a`](https://github.com/PrismJS/prism/commit/8b0520a)] -* __SCSS__: - * Alias statement as keyword. Fix [#246](https://github.com/PrismJS/prism/issues/246) [[`fd09391`](https://github.com/PrismJS/prism/commit/fd09391)] - * Highlight variables inside selectors and properties. [[`d6b5c2f`](https://github.com/PrismJS/prism/commit/d6b5c2f)] - * Highlight parent selector [[`8f5f1fa`](https://github.com/PrismJS/prism/commit/8f5f1fa)] -* __TypeScript__: - * Add missing `from` keyword to typescript & set `ts` as alias. ([#1042](https://github.com/PrismJS/prism/issues/1042)) [[`cba78f3`](https://github.com/PrismJS/prism/commit/cba78f3)] - -### New plugins - -* __Copy to Clipboard__ ([#891](https://github.com/PrismJS/prism/issues/891)) [[`07b81ac`](https://github.com/PrismJS/prism/commit/07b81ac)] -* __Custom Class__ ([#950](https://github.com/PrismJS/prism/issues/950)) [[`a0bd686`](https://github.com/PrismJS/prism/commit/a0bd686)] -* __Data-URI Highlight__ ([#996](https://github.com/PrismJS/prism/issues/996)) [[`bdca61b`](https://github.com/PrismJS/prism/commit/bdca61b)] -* __Toolbar__ ([#891](https://github.com/PrismJS/prism/issues/891)) [[`07b81ac`](https://github.com/PrismJS/prism/commit/07b81ac)] - -### Updated plugins - -* __Autoloader__: - * Updated documentation for Autoloader plugin [[`b4f3423`](https://github.com/PrismJS/prism/commit/b4f3423)] - * Download all grammars as a zip from Autoloader plugin page ([#981](https://github.com/PrismJS/prism/issues/981)) [[`0d0a007`](https://github.com/PrismJS/prism/commit/0d0a007), [`5c815d3`](https://github.com/PrismJS/prism/commit/5c815d3)] - * Removed duplicated script on Autoloader plugin page [[`9671996`](https://github.com/PrismJS/prism/commit/9671996)] - * Don't try to load "none" component. Fix [#1000](https://github.com/PrismJS/prism/issues/1000) [[`f89b0b9`](https://github.com/PrismJS/prism/commit/f89b0b9)] -* __WPD__: - * Fix at-rule detection + don't process if language is not handled [[`2626728`](https://github.com/PrismJS/prism/commit/2626728)] - -### Other changes - -* Improvement to greedy-flag ([#967](https://github.com/PrismJS/prism/issues/967)) [[`500121b`](https://github.com/PrismJS/prism/commit/500121b), [`9893489`](https://github.com/PrismJS/prism/commit/9893489)] -* Add setTimeout fallback for requestAnimationFrame. Fixes [#987](https://github.com/PrismJS/prism/issues/987). ([#988](https://github.com/PrismJS/prism/issues/988)) [[`c9bdcd3`](https://github.com/PrismJS/prism/commit/c9bdcd3)] -* Added aria-hidden attributes on elements created by the Line Highlight and Line Numbers plugins. Fixes [#574](https://github.com/PrismJS/prism/issues/574). [[`e5587a7`](https://github.com/PrismJS/prism/commit/e5587a7)] -* Don't insert space before ">" when there is no attributes [[`3dc8c9e`](https://github.com/PrismJS/prism/commit/3dc8c9e)] -* Added missing hooks-related tests for AsciiDoc, Groovy, Handlebars, Markup, PHP and Smarty [[`c1a0c1b`](https://github.com/PrismJS/prism/commit/c1a0c1b)] -* Fix issue when using Line numbers plugin and Normalise whitespace plugin together with Handlebars, PHP or Smarty. Fix [#1018](https://github.com/PrismJS/prism/issues/1018), [#997](https://github.com/PrismJS/prism/issues/997), [#935](https://github.com/PrismJS/prism/issues/935). Revert [#998](https://github.com/PrismJS/prism/issues/998). [[`86aa3d2`](https://github.com/PrismJS/prism/commit/86aa3d2)] -* Optimized logo ([#990](https://github.com/PrismJS/prism/issues/990)) ([#1002](https://github.com/PrismJS/prism/issues/1002)) [[`f69e570`](https://github.com/PrismJS/prism/commit/f69e570), [`218fd25`](https://github.com/PrismJS/prism/commit/218fd25)] -* Remove unneeded prefixed CSS ([#989](https://github.com/PrismJS/prism/issues/989)) [[`5e56833`](https://github.com/PrismJS/prism/commit/5e56833)] -* Optimize images ([#1007](https://github.com/PrismJS/prism/issues/1007)) [[`b2fa6d5`](https://github.com/PrismJS/prism/commit/b2fa6d5)] -* Add yarn.lock to .gitignore ([#1035](https://github.com/PrismJS/prism/issues/1035)) [[`03ecf74`](https://github.com/PrismJS/prism/commit/03ecf74)] -* Fix greedy flag bug. Fixes [#1039](https://github.com/PrismJS/prism/issues/1039) [[`32cd99f`](https://github.com/PrismJS/prism/commit/32cd99f)] -* Ruby: Fix test after [#1023](https://github.com/PrismJS/prism/issues/1023) [[`b15d43b`](https://github.com/PrismJS/prism/commit/b15d43b)] -* Ini: Fix test after [#1047](https://github.com/PrismJS/prism/issues/1047) [[`25cdd3f`](https://github.com/PrismJS/prism/commit/25cdd3f)] -* Reduce risk of XSS ([#1051](https://github.com/PrismJS/prism/issues/1051)) [[`17e33bc`](https://github.com/PrismJS/prism/commit/17e33bc)] -* env.code can be modified by before-sanity-check hook even when using language-none. Fix [#1066](https://github.com/PrismJS/prism/issues/1066) [[`83bafbd`](https://github.com/PrismJS/prism/commit/83bafbd)] - - -## 1.5.1 (2016-06-05) - -### Updated components - -* __Normalize Whitespace__: - * Add class that disables the normalize whitespace plugin [[`9385c54`](https://github.com/PrismJS/prism/commit/9385c54)] -* __JavaScript Language__: - * Rearrange the `string` and `template-string` token in JavaScript [[`1158e46`](https://github.com/PrismJS/prism/commit/1158e46)] -* __SQL Language__: - * add delimeter and delimeters keywords to sql ([#958](https://github.com/PrismJS/prism/pull/958)) [[`a9ef24e`](https://github.com/PrismJS/prism/commit/a9ef24e)] - * add AUTO_INCREMENT and DATE keywords to sql ([#954](https://github.com/PrismJS/prism/pull/954)) [[`caea2af`](https://github.com/PrismJS/prism/commit/caea2af)] -* __Diff Language__: - * Highlight diff lines with only + or - ([#952](https://github.com/PrismJS/prism/pull/952)) [[`4d0526f`](https://github.com/PrismJS/prism/commit/4d0526f)] - -### Other changes - -* Allow for asynchronous loading of prism.js ([#959](https://github.com/PrismJS/prism/pull/959)) -* Use toLowerCase on language names ([#957](https://github.com/PrismJS/prism/pull/957)) [[`acd9508`](https://github.com/PrismJS/prism/commit/acd9508)] -* link to index for basic usage - fixes [#945](https://github.com/PrismJS/prism/issues/945) ([#946](https://github.com/PrismJS/prism/pull/946)) [[`6c772d8`](https://github.com/PrismJS/prism/commit/6c772d8)] -* Fixed monospace typo ([#953](https://github.com/PrismJS/prism/pull/953)) [[`e6c3498`](https://github.com/PrismJS/prism/commit/e6c3498)] - -## 1.5.0 (2016-05-01) - -### New components - -* __Bro Language__ ([#925](https://github.com/PrismJS/prism/pull/925)) -* __Protocol Buffers Language__ ([#938](https://github.com/PrismJS/prism/pull/938)) [[`ae4a4f2`](https://github.com/PrismJS/prism/commit/ae4a4f2)] - -### Updated components - -* __Keep Markup__: - * Fix Keep Markup plugin incorrect highlighting ([#880](https://github.com/PrismJS/prism/pull/880)) [[`24841ef`](https://github.com/PrismJS/prism/commit/24841ef)] -* __Groovy Language__: - * Fix double HTML-encoding bug in Groovy language [[`24a0936`](https://github.com/PrismJS/prism/commit/24a0936)] -* __Java Language__: - * Adding annotation token for Java ([#905](https://github.com/PrismJS/prism/pull/905)) [[`367ace6`](https://github.com/PrismJS/prism/commit/367ace6)] -* __SAS Language__: - * Add missing keywords for SAS ([#922](https://github.com/PrismJS/prism/pull/922)) -* __YAML Language__: - * fix hilighting of YAML keys on first line of code block ([#943](https://github.com/PrismJS/prism/pull/943)) [[`f19db81`](https://github.com/PrismJS/prism/commit/f19db81)] -* __C# Language__: - * Support for generic methods in csharp [[`6f75735`](https://github.com/PrismJS/prism/commit/6f75735)] - -### New plugins - -* __Unescaped Markup__ [[`07d77e5`](https://github.com/PrismJS/prism/commit/07d77e5)] -* __Normalize Whitespace__ ([#847](https://github.com/PrismJS/prism/pull/847)) [[`e86ec01`](https://github.com/PrismJS/prism/commit/e86ec01)] - -### Other changes - -* Add JSPM support [[`ad048ab`](https://github.com/PrismJS/prism/commit/ad048ab)] -* update linear-gradient syntax from `left` to `to right` [[`cd234dc`](https://github.com/PrismJS/prism/commit/cd234dc)] -* Add after-property to allow ordering of plugins [[`224b7a1`](https://github.com/PrismJS/prism/commit/224b7a1)] -* Partial solution for the "Comment-like substrings"-problem [[`2705c50`](https://github.com/PrismJS/prism/commit/2705c50)] -* Add property 'aliasTitles' to components.js [[`54400fb`](https://github.com/PrismJS/prism/commit/54400fb)] -* Add before-highlightall hook [[`70a8602`](https://github.com/PrismJS/prism/commit/70a8602)] -* Fix catastrophic backtracking regex issues in JavaScript [[`ab65be2`](https://github.com/PrismJS/prism/commit/ab65be2)] - -## 1.4.1 (2016-02-03) - -### Other changes - -* Fix DFS bug in Prism core [[`b86c727`](https://github.com/PrismJS/prism/commit/b86c727)] - -## 1.4.0 (2016-02-03) - -### New components - -* __Solarized Light__ ([#855](https://github.com/PrismJS/prism/pull/855)) [[`70846ba`](https://github.com/PrismJS/prism/commit/70846ba)] -* __JSON__ ([#370](https://github.com/PrismJS/prism/pull/370)) [[`ad2fcd0`](https://github.com/PrismJS/prism/commit/ad2fcd0)] - -### Updated components - -* __Show Language__: - * Remove data-language attribute ([#840](https://github.com/PrismJS/prism/pull/840)) [[`eb9a83c`](https://github.com/PrismJS/prism/commit/eb9a83c)] - * Allow custom label without a language mapping ([#837](https://github.com/PrismJS/prism/pull/837)) [[`7e74aef`](https://github.com/PrismJS/prism/commit/7e74aef)] -* __JSX__: - * Better Nesting in JSX attributes ([#842](https://github.com/PrismJS/prism/pull/842)) [[`971dda7`](https://github.com/PrismJS/prism/commit/971dda7)] -* __File Highlight__: - * Defer File Highlight until the full DOM has loaded. ([#844](https://github.com/PrismJS/prism/pull/844)) [[`6f995ef`](https://github.com/PrismJS/prism/commit/6f995ef)] -* __Coy Theme__: - * Fix coy theme shadows ([#865](https://github.com/PrismJS/prism/pull/865)) [[`58d2337`](https://github.com/PrismJS/prism/commit/58d2337)] -* __Show Invisibles__: - * Ensure show-invisibles compat with autoloader ([#874](https://github.com/PrismJS/prism/pull/874)) [[`c3cfb1f`](https://github.com/PrismJS/prism/commit/c3cfb1f)] - * Add support for the space character for the show-invisibles plugin ([#876](https://github.com/PrismJS/prism/pull/876)) [[`05442d3`](https://github.com/PrismJS/prism/commit/05442d3)] - -### New plugins - -* __Command Line__ ([#831](https://github.com/PrismJS/prism/pull/831)) [[`8378906`](https://github.com/PrismJS/prism/commit/8378906)] - -### Other changes - -* Use document.currentScript instead of document.getElementsByTagName() [[`fa98743`](https://github.com/PrismJS/prism/commit/fa98743)] -* Add prefix for Firefox selection and move prefixed rule first [[`6d54717`](https://github.com/PrismJS/prism/commit/6d54717)] -* No background for `` in `
                ` [[`8c310bc`](https://github.com/PrismJS/prism/commit/8c310bc)]
                -* Fixing to initial copyright year [[`69cbf7a`](https://github.com/PrismJS/prism/commit/69cbf7a)]
                -* Simplify the “lang” regex [[`417f54a`](https://github.com/PrismJS/prism/commit/417f54a)]
                -* Fix broken heading links [[`a7f9e62`](https://github.com/PrismJS/prism/commit/a7f9e62)]
                -* Prevent infinite recursion in DFS [[`02894e1`](https://github.com/PrismJS/prism/commit/02894e1)]
                -* Fix incorrect page title [[`544b56f`](https://github.com/PrismJS/prism/commit/544b56f)]
                -* Link scss to webplatform wiki [[`08d979a`](https://github.com/PrismJS/prism/commit/08d979a)]
                -* Revert white-space to normal when code is inline instead of in a pre [[`1a971b5`](https://github.com/PrismJS/prism/commit/1a971b5)]
                -
                -## 1.3.0 (2015-10-26)
                -
                -### New components
                -
                -* __AsciiDoc__ ([#800](https://github.com/PrismJS/prism/issues/800)) [[`6803ca0`](https://github.com/PrismJS/prism/commit/6803ca0)]
                -* __Haxe__ ([#811](https://github.com/PrismJS/prism/issues/811)) [[`bd44341`](https://github.com/PrismJS/prism/commit/bd44341)]
                -* __Icon__ ([#803](https://github.com/PrismJS/prism/issues/803)) [[`b43c5f3`](https://github.com/PrismJS/prism/commit/b43c5f3)]
                -* __Kotlin ([#814](https://github.com/PrismJS/prism/issues/814)) [[`e8a31a5`](https://github.com/PrismJS/prism/commit/e8a31a5)]
                -* __Lua__ ([#804](https://github.com/PrismJS/prism/issues/804)) [[`a36bc4a`](https://github.com/PrismJS/prism/commit/a36bc4a)]
                -* __Nix__ ([#795](https://github.com/PrismJS/prism/issues/795)) [[`9b275c8`](https://github.com/PrismJS/prism/commit/9b275c8)]
                -* __Oz__ ([#805](https://github.com/PrismJS/prism/issues/805)) [[`388c53f`](https://github.com/PrismJS/prism/commit/388c53f)]
                -* __PARI/GP__ ([#802](https://github.com/PrismJS/prism/issues/802)) [[`253c035`](https://github.com/PrismJS/prism/commit/253c035)]
                -* __Parser__ ([#808](https://github.com/PrismJS/prism/issues/808)) [[`a953b3a`](https://github.com/PrismJS/prism/commit/a953b3a)]
                -* __Puppet__ ([#813](https://github.com/PrismJS/prism/issues/813)) [[`81933ee`](https://github.com/PrismJS/prism/commit/81933ee)]
                -* __Roboconf__ ([#812](https://github.com/PrismJS/prism/issues/812)) [[`f5db346`](https://github.com/PrismJS/prism/commit/f5db346)]
                -
                -### Updated components
                -
                -* __C__:
                -	* Highlight directives in preprocessor lines ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
                -* __C#__:
                -	* Highlight directives in preprocessor lines ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
                -	* Fix detection of float numbers ([#806](https://github.com/PrismJS/prism/issues/806)) [[`1dae72b`](https://github.com/PrismJS/prism/commit/1dae72b)]
                -* __F#__:
                -	* Highlight directives in preprocessor lines ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
                -* __JavaScript__:
                -	* Highlight true and false as booleans ([#801](https://github.com/PrismJS/prism/issues/801)) [[`ad316a3`](https://github.com/PrismJS/prism/commit/ad316a3)]
                -* __Python__:
                -	* Highlight triple-quoted strings before comments. Fix [#815](https://github.com/PrismJS/prism/issues/815) [[`90fbf0b`](https://github.com/PrismJS/prism/commit/90fbf0b)]
                -
                -### New plugins
                -
                -* __Previewer: Time__ ([#790](https://github.com/PrismJS/prism/issues/790)) [[`88173de`](https://github.com/PrismJS/prism/commit/88173de)]
                -* __Previewer: Angle__ ([#791](https://github.com/PrismJS/prism/issues/791)) [[`a434c86`](https://github.com/PrismJS/prism/commit/a434c86)]
                -
                -### Other changes
                -
                -* Increase mocha's timeout [[`f1c41db`](https://github.com/PrismJS/prism/commit/f1c41db)]
                -* Prevent most errors in IE8. Fix [#9](https://github.com/PrismJS/prism/issues/9) [[`9652d75`](https://github.com/PrismJS/prism/commit/9652d75)]
                -* Add U.S. Web Design Standards on homepage. Fix [#785](https://github.com/PrismJS/prism/issues/785) [[`e10d48b`](https://github.com/PrismJS/prism/commit/e10d48b), [`79ebbf8`](https://github.com/PrismJS/prism/commit/79ebbf8), [`2f7088d`](https://github.com/PrismJS/prism/commit/2f7088d)]
                -* Added gulp task to autolink PRs and commits in changelog [[`5ec4e4d`](https://github.com/PrismJS/prism/commit/5ec4e4d)]
                -* Use child processes to run each set of tests, in order to deal with the memory leak in vm.runInNewContext() [[`9a4b6fa`](https://github.com/PrismJS/prism/commit/9a4b6fa)]
                -
                -## 1.2.0 (2015-10-07)
                -
                -### New components
                -
                -* __Batch__ ([#781](https://github.com/PrismJS/prism/issues/781)) [[`eab5b06`](https://github.com/PrismJS/prism/commit/eab5b06)]
                -
                -### Updated components
                -
                -* __ASP.NET__:
                -	* Simplified pattern for `"),t.textContent=e.code,n.appendChild(t),e.element.parentNode.replaceChild(n,e.element),e.element=t,void 0}var n=e.element.parentNode;!e.code&&n&&"pre"==n.nodeName.toLowerCase()&&e.element.childNodes.length&&"#comment"==e.element.childNodes[0].nodeName&&(e.element.textContent=e.code=e.element.childNodes[0].textContent)}}))}();
                \ No newline at end of file
                diff --git a/node_modules/prismjs/plugins/wpd/prism-wpd.css b/node_modules/prismjs/plugins/wpd/prism-wpd.css
                deleted file mode 100644
                index 43b7165..0000000
                --- a/node_modules/prismjs/plugins/wpd/prism-wpd.css
                +++ /dev/null
                @@ -1,11 +0,0 @@
                -code[class*="language-"] a[href],
                -pre[class*="language-"] a[href] {
                -	cursor: help;
                -	text-decoration: none;
                -}
                -
                -code[class*="language-"] a[href]:hover,
                -pre[class*="language-"] a[href]:hover {
                -	cursor: help;
                -	text-decoration: underline;
                -}
                \ No newline at end of file
                diff --git a/node_modules/prismjs/plugins/wpd/prism-wpd.js b/node_modules/prismjs/plugins/wpd/prism-wpd.js
                deleted file mode 100644
                index 595f34c..0000000
                --- a/node_modules/prismjs/plugins/wpd/prism-wpd.js
                +++ /dev/null
                @@ -1,169 +0,0 @@
                -(function(){
                -
                -if (
                -	typeof self !== 'undefined' && !self.Prism ||
                -	typeof global !== 'undefined' && !global.Prism
                -) {
                -	return;
                -}
                -
                -if (Prism.languages.css) {
                -	// check whether the selector is an advanced pattern before extending it
                -	if (Prism.languages.css.selector.pattern)
                -	{
                -		Prism.languages.css.selector.inside['pseudo-class'] = /:[\w-]+/;
                -		Prism.languages.css.selector.inside['pseudo-element'] = /::[\w-]+/;
                -	}
                -	else
                -	{
                -		Prism.languages.css.selector = {
                -			pattern: Prism.languages.css.selector,
                -			inside: {
                -				'pseudo-class': /:[\w-]+/,
                -				'pseudo-element': /::[\w-]+/
                -			}
                -		};
                -	}
                -}
                -
                -if (Prism.languages.markup) {
                -	Prism.languages.markup.tag.inside.tag.inside['tag-id'] = /[\w-]+/;
                -	
                -	var Tags = {
                -		HTML: {
                -			'a': 1, 'abbr': 1, 'acronym': 1, 'b': 1, 'basefont': 1, 'bdo': 1, 'big': 1, 'blink': 1, 'cite': 1, 'code': 1, 'dfn': 1, 'em': 1, 'kbd': 1,  'i': 1, 
                -			'rp': 1, 'rt': 1, 'ruby': 1, 's': 1, 'samp': 1, 'small': 1, 'spacer': 1, 'strike': 1, 'strong': 1, 'sub': 1, 'sup': 1, 'time': 1, 'tt': 1,  'u': 1, 
                -			'var': 1, 'wbr': 1, 'noframes': 1, 'summary': 1, 'command': 1, 'dt': 1, 'dd': 1, 'figure': 1, 'figcaption': 1, 'center': 1, 'section': 1, 'nav': 1,
                -			'article': 1, 'aside': 1, 'hgroup': 1, 'header': 1, 'footer': 1, 'address': 1, 'noscript': 1, 'isIndex': 1, 'main': 1, 'mark': 1, 'marquee': 1,
                -			'meter': 1, 'menu': 1
                -		},
                -		SVG: {
                -			'animateColor': 1, 'animateMotion': 1, 'animateTransform': 1, 'glyph': 1, 'feBlend': 1, 'feColorMatrix': 1, 'feComponentTransfer': 1, 
                -			'feFuncR': 1, 'feFuncG': 1, 'feFuncB': 1, 'feFuncA': 1, 'feComposite': 1, 'feConvolveMatrix': 1, 'feDiffuseLighting': 1, 'feDisplacementMap': 1, 
                -			'feFlood': 1, 'feGaussianBlur': 1, 'feImage': 1, 'feMerge': 1, 'feMergeNode': 1, 'feMorphology': 1, 'feOffset': 1, 'feSpecularLighting': 1, 
                -			'feTile': 1, 'feTurbulence': 1, 'feDistantLight': 1, 'fePointLight': 1, 'feSpotLight': 1, 'linearGradient': 1, 'radialGradient': 1, 'altGlyph': 1, 
                -			'textPath': 1, 'tref': 1, 'altglyph': 1, 'textpath': 1, 'altglyphdef': 1, 'altglyphitem': 1, 'clipPath': 1, 'color-profile': 1, 'cursor': 1,
                -			'font-face': 1, 'font-face-format': 1, 'font-face-name': 1, 'font-face-src': 1, 'font-face-uri': 1, 'foreignObject': 1, 'glyphRef': 1,
                -			'hkern': 1, 'vkern': 1
                -		},
                -		MathML: {}
                -	}
                -}
                -
                -var language;
                -
                -Prism.hooks.add('wrap', function(env) {
                -	if ((env.type == 'tag-id'
                -		|| (env.type == 'property' && env.content.indexOf('-') != 0)
                -		|| (env.type == 'rule'&& env.content.indexOf('@-') != 0)
                -		|| (env.type == 'pseudo-class'&& env.content.indexOf(':-') != 0) 
                -		|| (env.type == 'pseudo-element'&& env.content.indexOf('::-') != 0) 
                -        || (env.type == 'attr-name' && env.content.indexOf('data-') != 0)
                -		) && env.content.indexOf('<') === -1
                -	) {
                -		if (env.language == 'css'
                -			|| env.language == 'scss'
                -			|| env.language == 'markup'
                -		) {
                -			var searchURL = 'w/index.php?fulltext&search=';
                -
                -			env.tag = 'a';
                -
                -			var href = 'http://docs.webplatform.org/';
                -
                -			if (env.language == 'css' || env.language == 'scss') {
                -				href += 'wiki/css/';
                -
                -				if (env.type == 'property') {
                -					href += 'properties/';
                -				}
                -				else if (env.type == 'rule') {
                -					href += 'atrules/';
                -				}
                -				else if (env.type == 'pseudo-class') {
                -					href += 'selectors/pseudo-classes/';
                -				}
                -				else if (env.type == 'pseudo-element') {
                -					href += 'selectors/pseudo-elements/';
                -				}
                -			}
                -			else if (env.language == 'markup') {
                -				if (env.type == 'tag-id') {
                -					// Check language
                -					language = getLanguage(env.content) || language;
                -
                -					if (language) {
                -						href += 'wiki/' + language + '/elements/';
                -					}
                -					else {
                -						href += searchURL;
                -					}
                -				}
                -				else if (env.type == 'attr-name') {
                -					if (language) {
                -						href += 'wiki/' + language + '/attributes/';
                -					}
                -					else {
                -						href += searchURL;
                -					}
                -				}
                -			}
                -
                -			href += env.content;
                -
                -			env.attributes.href = href;
                -			env.attributes.target = '_blank';
                -		}
                -	}
                -});
                -
                -function getLanguage(tag) {
                -	var tagL = tag.toLowerCase();
                -	
                -	if (Tags.HTML[tagL]) {
                -		return 'html';
                -	}
                -	else if (Tags.SVG[tag]) {
                -		return 'svg';
                -	}
                -	else if (Tags.MathML[tag]) {
                -		return 'mathml';
                -	}
                -	
                -	// Not in dictionary, perform check
                -	if (Tags.HTML[tagL] !== 0 && typeof document !== 'undefined') {
                -		var htmlInterface = (document.createElement(tag).toString().match(/\[object HTML(.+)Element\]/) || [])[1];
                -		
                -		if (htmlInterface && htmlInterface != 'Unknown') {
                -			Tags.HTML[tagL] = 1;
                -			return 'html';
                -		}
                -	}
                -	
                -	Tags.HTML[tagL] = 0;
                -	
                -	if (Tags.SVG[tag] !== 0 && typeof document !== 'undefined') {
                -		var svgInterface = (document.createElementNS('http://www.w3.org/2000/svg', tag).toString().match(/\[object SVG(.+)Element\]/) || [])[1];
                -		
                -		if (svgInterface && svgInterface != 'Unknown') {
                -			Tags.SVG[tag] = 1;
                -			return 'svg';
                -		}
                -	}
                -	
                -	Tags.SVG[tag] = 0;
                -	
                -	// Lame way to detect MathML, but browsers don’t expose interface names there :(
                -	if (Tags.MathML[tag] !== 0) {
                -		if (tag.indexOf('m') === 0) {
                -			Tags.MathML[tag] = 1;
                -			return 'mathml';
                -		}
                -	}
                -	
                -	Tags.MathML[tag] = 0;
                -	
                -	return null;
                -}
                -
                -})();
                \ No newline at end of file
                diff --git a/node_modules/prismjs/plugins/wpd/prism-wpd.min.js b/node_modules/prismjs/plugins/wpd/prism-wpd.min.js
                deleted file mode 100644
                index d7b2a61..0000000
                --- a/node_modules/prismjs/plugins/wpd/prism-wpd.min.js
                +++ /dev/null
                @@ -1 +0,0 @@
                -!function(){function e(e){var a=e.toLowerCase();if(t.HTML[a])return"html";if(t.SVG[e])return"svg";if(t.MathML[e])return"mathml";if(0!==t.HTML[a]&&"undefined"!=typeof document){var n=(document.createElement(e).toString().match(/\[object HTML(.+)Element\]/)||[])[1];if(n&&"Unknown"!=n)return t.HTML[a]=1,"html"}if(t.HTML[a]=0,0!==t.SVG[e]&&"undefined"!=typeof document){var s=(document.createElementNS("http://www.w3.org/2000/svg",e).toString().match(/\[object SVG(.+)Element\]/)||[])[1];if(s&&"Unknown"!=s)return t.SVG[e]=1,"svg"}return t.SVG[e]=0,0!==t.MathML[e]&&0===e.indexOf("m")?(t.MathML[e]=1,"mathml"):(t.MathML[e]=0,null)}if(("undefined"==typeof self||self.Prism)&&("undefined"==typeof global||global.Prism)){if(Prism.languages.css&&(Prism.languages.css.selector.pattern?(Prism.languages.css.selector.inside["pseudo-class"]=/:[\w-]+/,Prism.languages.css.selector.inside["pseudo-element"]=/::[\w-]+/):Prism.languages.css.selector={pattern:Prism.languages.css.selector,inside:{"pseudo-class":/:[\w-]+/,"pseudo-element":/::[\w-]+/}}),Prism.languages.markup){Prism.languages.markup.tag.inside.tag.inside["tag-id"]=/[\w-]+/;var t={HTML:{a:1,abbr:1,acronym:1,b:1,basefont:1,bdo:1,big:1,blink:1,cite:1,code:1,dfn:1,em:1,kbd:1,i:1,rp:1,rt:1,ruby:1,s:1,samp:1,small:1,spacer:1,strike:1,strong:1,sub:1,sup:1,time:1,tt:1,u:1,"var":1,wbr:1,noframes:1,summary:1,command:1,dt:1,dd:1,figure:1,figcaption:1,center:1,section:1,nav:1,article:1,aside:1,hgroup:1,header:1,footer:1,address:1,noscript:1,isIndex:1,main:1,mark:1,marquee:1,meter:1,menu:1},SVG:{animateColor:1,animateMotion:1,animateTransform:1,glyph:1,feBlend:1,feColorMatrix:1,feComponentTransfer:1,feFuncR:1,feFuncG:1,feFuncB:1,feFuncA:1,feComposite:1,feConvolveMatrix:1,feDiffuseLighting:1,feDisplacementMap:1,feFlood:1,feGaussianBlur:1,feImage:1,feMerge:1,feMergeNode:1,feMorphology:1,feOffset:1,feSpecularLighting:1,feTile:1,feTurbulence:1,feDistantLight:1,fePointLight:1,feSpotLight:1,linearGradient:1,radialGradient:1,altGlyph:1,textPath:1,tref:1,altglyph:1,textpath:1,altglyphdef:1,altglyphitem:1,clipPath:1,"color-profile":1,cursor:1,"font-face":1,"font-face-format":1,"font-face-name":1,"font-face-src":1,"font-face-uri":1,foreignObject:1,glyphRef:1,hkern:1,vkern:1},MathML:{}}}var a;Prism.hooks.add("wrap",function(t){if(("tag-id"==t.type||"property"==t.type&&0!=t.content.indexOf("-")||"rule"==t.type&&0!=t.content.indexOf("@-")||"pseudo-class"==t.type&&0!=t.content.indexOf(":-")||"pseudo-element"==t.type&&0!=t.content.indexOf("::-")||"attr-name"==t.type&&0!=t.content.indexOf("data-"))&&-1===t.content.indexOf("<")&&("css"==t.language||"scss"==t.language||"markup"==t.language)){var n="w/index.php?fulltext&search=";t.tag="a";var s="http://docs.webplatform.org/";"css"==t.language||"scss"==t.language?(s+="wiki/css/","property"==t.type?s+="properties/":"rule"==t.type?s+="atrules/":"pseudo-class"==t.type?s+="selectors/pseudo-classes/":"pseudo-element"==t.type&&(s+="selectors/pseudo-elements/")):"markup"==t.language&&("tag-id"==t.type?(a=e(t.content)||a,s+=a?"wiki/"+a+"/elements/":n):"attr-name"==t.type&&(s+=a?"wiki/"+a+"/attributes/":n)),s+=t.content,t.attributes.href=s,t.attributes.target="_blank"}})}}();
                \ No newline at end of file
                diff --git a/node_modules/prismjs/prism.esproj/Project.espressostorage b/node_modules/prismjs/prism.esproj/Project.espressostorage
                deleted file mode 100644
                index 6183247..0000000
                Binary files a/node_modules/prismjs/prism.esproj/Project.espressostorage and /dev/null differ
                diff --git a/node_modules/prismjs/prism.esproj/user.leaverou.espressostorage b/node_modules/prismjs/prism.esproj/user.leaverou.espressostorage
                deleted file mode 100644
                index f5278e4..0000000
                Binary files a/node_modules/prismjs/prism.esproj/user.leaverou.espressostorage and /dev/null differ
                diff --git a/node_modules/prismjs/prism.js b/node_modules/prismjs/prism.js
                deleted file mode 100644
                index f36644c..0000000
                --- a/node_modules/prismjs/prism.js
                +++ /dev/null
                @@ -1,795 +0,0 @@
                -
                -/* **********************************************
                -     Begin prism-core.js
                -********************************************** */
                -
                -var _self = (typeof window !== 'undefined')
                -	? window   // if in browser
                -	: (
                -		(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)
                -		? self // if in worker
                -		: {}   // if in node js
                -	);
                -
                -/**
                - * Prism: Lightweight, robust, elegant syntax highlighting
                - * MIT license http://www.opensource.org/licenses/mit-license.php/
                - * @author Lea Verou http://lea.verou.me
                - */
                -
                -var Prism = (function(){
                -
                -// Private helper vars
                -var lang = /\blang(?:uage)?-(\w+)\b/i;
                -var uniqueId = 0;
                -
                -var _ = _self.Prism = {
                -	util: {
                -		encode: function (tokens) {
                -			if (tokens instanceof Token) {
                -				return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias);
                -			} else if (_.util.type(tokens) === 'Array') {
                -				return tokens.map(_.util.encode);
                -			} else {
                -				return tokens.replace(/&/g, '&').replace(/ text.length) {
                -						// Something went terribly wrong, ABORT, ABORT!
                -						break tokenloop;
                -					}
                -
                -					if (str instanceof Token) {
                -						continue;
                -					}
                -
                -					pattern.lastIndex = 0;
                -
                -					var match = pattern.exec(str),
                -					    delNum = 1;
                -
                -					// Greedy patterns can override/remove up to two previously matched tokens
                -					if (!match && greedy && i != strarr.length - 1) {
                -						pattern.lastIndex = pos;
                -						match = pattern.exec(text);
                -						if (!match) {
                -							break;
                -						}
                -
                -						var from = match.index + (lookbehind ? match[1].length : 0),
                -						    to = match.index + match[0].length,
                -						    k = i,
                -						    p = pos;
                -
                -						for (var len = strarr.length; k < len && p < to; ++k) {
                -							p += strarr[k].length;
                -							// Move the index i to the element in strarr that is closest to from
                -							if (from >= p) {
                -								++i;
                -								pos = p;
                -							}
                -						}
                -
                -						/*
                -						 * If strarr[i] is a Token, then the match starts inside another Token, which is invalid
                -						 * If strarr[k - 1] is greedy we are in conflict with another greedy pattern
                -						 */
                -						if (strarr[i] instanceof Token || strarr[k - 1].greedy) {
                -							continue;
                -						}
                -
                -						// Number of tokens to delete and replace with the new match
                -						delNum = k - i;
                -						str = text.slice(pos, p);
                -						match.index -= pos;
                -					}
                -
                -					if (!match) {
                -						continue;
                -					}
                -
                -					if(lookbehind) {
                -						lookbehindLength = match[1].length;
                -					}
                -
                -					var from = match.index + lookbehindLength,
                -					    match = match[0].slice(lookbehindLength),
                -					    to = from + match.length,
                -					    before = str.slice(0, from),
                -					    after = str.slice(to);
                -
                -					var args = [i, delNum];
                -
                -					if (before) {
                -						args.push(before);
                -					}
                -
                -					var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy);
                -
                -					args.push(wrapped);
                -
                -					if (after) {
                -						args.push(after);
                -					}
                -
                -					Array.prototype.splice.apply(strarr, args);
                -				}
                -			}
                -		}
                -
                -		return strarr;
                -	},
                -
                -	hooks: {
                -		all: {},
                -
                -		add: function (name, callback) {
                -			var hooks = _.hooks.all;
                -
                -			hooks[name] = hooks[name] || [];
                -
                -			hooks[name].push(callback);
                -		},
                -
                -		run: function (name, env) {
                -			var callbacks = _.hooks.all[name];
                -
                -			if (!callbacks || !callbacks.length) {
                -				return;
                -			}
                -
                -			for (var i=0, callback; callback = callbacks[i++];) {
                -				callback(env);
                -			}
                -		}
                -	}
                -};
                -
                -var Token = _.Token = function(type, content, alias, matchedStr, greedy) {
                -	this.type = type;
                -	this.content = content;
                -	this.alias = alias;
                -	// Copy of the full string this token was created from
                -	this.length = (matchedStr || "").length|0;
                -	this.greedy = !!greedy;
                -};
                -
                -Token.stringify = function(o, language, parent) {
                -	if (typeof o == 'string') {
                -		return o;
                -	}
                -
                -	if (_.util.type(o) === 'Array') {
                -		return o.map(function(element) {
                -			return Token.stringify(element, language, o);
                -		}).join('');
                -	}
                -
                -	var env = {
                -		type: o.type,
                -		content: Token.stringify(o.content, language, parent),
                -		tag: 'span',
                -		classes: ['token', o.type],
                -		attributes: {},
                -		language: language,
                -		parent: parent
                -	};
                -
                -	if (env.type == 'comment') {
                -		env.attributes['spellcheck'] = 'true';
                -	}
                -
                -	if (o.alias) {
                -		var aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias];
                -		Array.prototype.push.apply(env.classes, aliases);
                -	}
                -
                -	_.hooks.run('wrap', env);
                -
                -	var attributes = Object.keys(env.attributes).map(function(name) {
                -		return name + '="' + (env.attributes[name] || '').replace(/"/g, '"') + '"';
                -	}).join(' ');
                -
                -	return '<' + env.tag + ' class="' + env.classes.join(' ') + '"' + (attributes ? ' ' + attributes : '') + '>' + env.content + '';
                -
                -};
                -
                -if (!_self.document) {
                -	if (!_self.addEventListener) {
                -		// in Node.js
                -		return _self.Prism;
                -	}
                - 	// In worker
                -	_self.addEventListener('message', function(evt) {
                -		var message = JSON.parse(evt.data),
                -		    lang = message.language,
                -		    code = message.code,
                -		    immediateClose = message.immediateClose;
                -
                -		_self.postMessage(_.highlight(code, _.languages[lang], lang));
                -		if (immediateClose) {
                -			_self.close();
                -		}
                -	}, false);
                -
                -	return _self.Prism;
                -}
                -
                -//Get current script and highlight
                -var script = document.currentScript || [].slice.call(document.getElementsByTagName("script")).pop();
                -
                -if (script) {
                -	_.filename = script.src;
                -
                -	if (document.addEventListener && !script.hasAttribute('data-manual')) {
                -		if(document.readyState !== "loading") {
                -			if (window.requestAnimationFrame) {
                -				window.requestAnimationFrame(_.highlightAll);
                -			} else {
                -				window.setTimeout(_.highlightAll, 16);
                -			}
                -		}
                -		else {
                -			document.addEventListener('DOMContentLoaded', _.highlightAll);
                -		}
                -	}
                -}
                -
                -return _self.Prism;
                -
                -})();
                -
                -if (typeof module !== 'undefined' && module.exports) {
                -	module.exports = Prism;
                -}
                -
                -// hack for components to work correctly in node.js
                -if (typeof global !== 'undefined') {
                -	global.Prism = Prism;
                -}
                -
                -
                -/* **********************************************
                -     Begin prism-markup.js
                -********************************************** */
                -
                -Prism.languages.markup = {
                -	'comment': //,
                -	'prolog': /<\?[\w\W]+?\?>/,
                -	'doctype': //i,
                -	'cdata': //i,
                -	'tag': {
                -		pattern: /<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,
                -		inside: {
                -			'tag': {
                -				pattern: /^<\/?[^\s>\/]+/i,
                -				inside: {
                -					'punctuation': /^<\/?/,
                -					'namespace': /^[^\s>\/:]+:/
                -				}
                -			},
                -			'attr-value': {
                -				pattern: /=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,
                -				inside: {
                -					'punctuation': /[=>"']/
                -				}
                -			},
                -			'punctuation': /\/?>/,
                -			'attr-name': {
                -				pattern: /[^\s>\/]+/,
                -				inside: {
                -					'namespace': /^[^\s>\/:]+:/
                -				}
                -			}
                -
                -		}
                -	},
                -	'entity': /&#?[\da-z]{1,8};/i
                -};
                -
                -// Plugin to make entity title show the real entity, idea by Roman Komarov
                -Prism.hooks.add('wrap', function(env) {
                -
                -	if (env.type === 'entity') {
                -		env.attributes['title'] = env.content.replace(/&/, '&');
                -	}
                -});
                -
                -Prism.languages.xml = Prism.languages.markup;
                -Prism.languages.html = Prism.languages.markup;
                -Prism.languages.mathml = Prism.languages.markup;
                -Prism.languages.svg = Prism.languages.markup;
                -
                -
                -/* **********************************************
                -     Begin prism-css.js
                -********************************************** */
                -
                -Prism.languages.css = {
                -	'comment': /\/\*[\w\W]*?\*\//,
                -	'atrule': {
                -		pattern: /@[\w-]+?.*?(;|(?=\s*\{))/i,
                -		inside: {
                -			'rule': /@[\w-]+/
                -			// See rest below
                -		}
                -	},
                -	'url': /url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,
                -	'selector': /[^\{\}\s][^\{\};]*?(?=\s*\{)/,
                -	'string': {
                -		pattern: /("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/,
                -		greedy: true
                -	},
                -	'property': /(\b|\B)[\w-]+(?=\s*:)/i,
                -	'important': /\B!important\b/i,
                -	'function': /[-a-z0-9]+(?=\()/i,
                -	'punctuation': /[(){};:]/
                -};
                -
                -Prism.languages.css['atrule'].inside.rest = Prism.util.clone(Prism.languages.css);
                -
                -if (Prism.languages.markup) {
                -	Prism.languages.insertBefore('markup', 'tag', {
                -		'style': {
                -			pattern: /()[\w\W]*?(?=<\/style>)/i,
                -			lookbehind: true,
                -			inside: Prism.languages.css,
                -			alias: 'language-css'
                -		}
                -	});
                -	
                -	Prism.languages.insertBefore('inside', 'attr-value', {
                -		'style-attr': {
                -			pattern: /\s*style=("|').*?\1/i,
                -			inside: {
                -				'attr-name': {
                -					pattern: /^\s*style/i,
                -					inside: Prism.languages.markup.tag.inside
                -				},
                -				'punctuation': /^\s*=\s*['"]|['"]\s*$/,
                -				'attr-value': {
                -					pattern: /.+/i,
                -					inside: Prism.languages.css
                -				}
                -			},
                -			alias: 'language-css'
                -		}
                -	}, Prism.languages.markup.tag);
                -}
                -
                -/* **********************************************
                -     Begin prism-clike.js
                -********************************************** */
                -
                -Prism.languages.clike = {
                -	'comment': [
                -		{
                -			pattern: /(^|[^\\])\/\*[\w\W]*?\*\//,
                -			lookbehind: true
                -		},
                -		{
                -			pattern: /(^|[^\\:])\/\/.*/,
                -			lookbehind: true
                -		}
                -	],
                -	'string': {
                -		pattern: /(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
                -		greedy: true
                -	},
                -	'class-name': {
                -		pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,
                -		lookbehind: true,
                -		inside: {
                -			punctuation: /(\.|\\)/
                -		}
                -	},
                -	'keyword': /\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,
                -	'boolean': /\b(true|false)\b/,
                -	'function': /[a-z0-9_]+(?=\()/i,
                -	'number': /\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,
                -	'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,
                -	'punctuation': /[{}[\];(),.:]/
                -};
                -
                -
                -/* **********************************************
                -     Begin prism-javascript.js
                -********************************************** */
                -
                -Prism.languages.javascript = Prism.languages.extend('clike', {
                -	'keyword': /\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,
                -	'number': /\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/,
                -	// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)
                -	'function': /[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i,
                -	'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*\*?|\/|~|\^|%|\.{3}/
                -});
                -
                -Prism.languages.insertBefore('javascript', 'keyword', {
                -	'regex': {
                -		pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\\\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,
                -		lookbehind: true,
                -		greedy: true
                -	}
                -});
                -
                -Prism.languages.insertBefore('javascript', 'string', {
                -	'template-string': {
                -		pattern: /`(?:\\\\|\\?[^\\])*?`/,
                -		greedy: true,
                -		inside: {
                -			'interpolation': {
                -				pattern: /\$\{[^}]+\}/,
                -				inside: {
                -					'interpolation-punctuation': {
                -						pattern: /^\$\{|\}$/,
                -						alias: 'punctuation'
                -					},
                -					rest: Prism.languages.javascript
                -				}
                -			},
                -			'string': /[\s\S]+/
                -		}
                -	}
                -});
                -
                -if (Prism.languages.markup) {
                -	Prism.languages.insertBefore('markup', 'tag', {
                -		'script': {
                -			pattern: /()[\w\W]*?(?=<\/script>)/i,
                -			lookbehind: true,
                -			inside: Prism.languages.javascript,
                -			alias: 'language-javascript'
                -		}
                -	});
                -}
                -
                -Prism.languages.js = Prism.languages.javascript;
                -
                -/* **********************************************
                -     Begin prism-file-highlight.js
                -********************************************** */
                -
                -(function () {
                -	if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) {
                -		return;
                -	}
                -
                -	self.Prism.fileHighlight = function() {
                -
                -		var Extensions = {
                -			'js': 'javascript',
                -			'py': 'python',
                -			'rb': 'ruby',
                -			'ps1': 'powershell',
                -			'psm1': 'powershell',
                -			'sh': 'bash',
                -			'bat': 'batch',
                -			'h': 'c',
                -			'tex': 'latex'
                -		};
                -
                -		if(Array.prototype.forEach) { // Check to prevent error in IE8
                -			Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
                -				var src = pre.getAttribute('data-src');
                -
                -				var language, parent = pre;
                -				var lang = /\blang(?:uage)?-(?!\*)(\w+)\b/i;
                -				while (parent && !lang.test(parent.className)) {
                -					parent = parent.parentNode;
                -				}
                -
                -				if (parent) {
                -					language = (pre.className.match(lang) || [, ''])[1];
                -				}
                -
                -				if (!language) {
                -					var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
                -					language = Extensions[extension] || extension;
                -				}
                -
                -				var code = document.createElement('code');
                -				code.className = 'language-' + language;
                -
                -				pre.textContent = '';
                -
                -				code.textContent = 'Loading…';
                -
                -				pre.appendChild(code);
                -
                -				var xhr = new XMLHttpRequest();
                -
                -				xhr.open('GET', src, true);
                -
                -				xhr.onreadystatechange = function () {
                -					if (xhr.readyState == 4) {
                -
                -						if (xhr.status < 400 && xhr.responseText) {
                -							code.textContent = xhr.responseText;
                -
                -							Prism.highlightElement(code);
                -						}
                -						else if (xhr.status >= 400) {
                -							code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
                -						}
                -						else {
                -							code.textContent = '✖ Error: File does not exist or is empty';
                -						}
                -					}
                -				};
                -
                -				xhr.send(null);
                -			});
                -		}
                -
                -	};
                -
                -	document.addEventListener('DOMContentLoaded', self.Prism.fileHighlight);
                -
                -})();
                diff --git a/node_modules/prismjs/tests/helper/prism-loader.js b/node_modules/prismjs/tests/helper/prism-loader.js
                deleted file mode 100644
                index 2885ad3..0000000
                --- a/node_modules/prismjs/tests/helper/prism-loader.js
                +++ /dev/null
                @@ -1,131 +0,0 @@
                -"use strict";
                -
                -var fs = require("fs");
                -var vm = require("vm");
                -var components = require("./components");
                -var languagesCatalog = components.languages;
                -
                -
                -module.exports = {
                -
                -	/**
                -	 * Creates a new Prism instance with the given language loaded
                -	 *
                -	 * @param {string|string[]} languages
                -	 * @returns {Prism}
                -	 */
                -	createInstance: function (languages) {
                -		var context = {
                -			loadedLanguages: [],
                -			Prism: this.createEmptyPrism()
                -		};
                -
                -		context = this.loadLanguages(languages, context);
                -
                -		return context.Prism;
                -	},
                -
                -	/**
                -	 * Loads the given languages and appends the config to the given Prism object
                -	 *
                -	 * @private
                -	 * @param {string|string[]} languages
                -	 * @param {{loadedLanguages: string[], Prism: Prism}} context
                -	 * @returns {{loadedLanguages: string[], Prism: Prism}}
                -	 */
                -	loadLanguages: function (languages, context) {
                -		if (typeof languages === 'string') {
                -			languages = [languages];
                -		}
                -
                -		var self = this;
                -
                -		languages.forEach(function (language) {
                -			context = self.loadLanguage(language, context);
                -		});
                -
                -		return context;
                -	},
                -
                -	/**
                -	 * Loads the given language (including recursively loading the dependencies) and
                -	 * appends the config to the given Prism object
                -	 *
                -	 * @private
                -	 * @param {string} language
                -	 * @param {{loadedLanguages: string[], Prism: Prism}} context
                -	 * @returns {{loadedLanguages: string[], Prism: Prism}}
                -	 */
                -	loadLanguage: function (language, context) {
                -		if (!languagesCatalog[language]) {
                -			throw new Error("Language '" + language + "' not found.");
                -		}
                -
                -		// the given language was already loaded
                -		if (-1 < context.loadedLanguages.indexOf(language)) {
                -			return context;
                -		}
                -
                -		// if the language has a dependency -> load it first
                -		if (languagesCatalog[language].require) {
                -			context = this.loadLanguages(languagesCatalog[language].require, context);
                -		}
                -
                -		// load the language itself
                -		var languageSource = this.loadFileSource(language);
                -		context.Prism = this.runFileWithContext(languageSource, {Prism: context.Prism}).Prism;
                -		context.loadedLanguages.push(language);
                -
                -		return context;
                -	},
                -
                -
                -	/**
                -	 * Creates a new empty prism instance
                -	 *
                -	 * @private
                -	 * @returns {Prism}
                -	 */
                -	createEmptyPrism: function () {
                -		var coreSource = this.loadFileSource("core");
                -		var context = this.runFileWithContext(coreSource);
                -		return context.Prism;
                -	},
                -
                -
                -	/**
                -	 * Cached file sources, to prevent massive HDD work
                -	 *
                -	 * @private
                -	 * @type {Object.}
                -	 */
                -	fileSourceCache: {},
                -
                -
                -	/**
                -	 * Loads the given file source as string
                -	 *
                -	 * @private
                -	 * @param {string} name
                -	 * @returns {string}
                -	 */
                -	loadFileSource: function (name) {
                -		return this.fileSourceCache[name] = this.fileSourceCache[name] || fs.readFileSync(__dirname + "/../../components/prism-" + name + ".js", "utf8");
                -	},
                -
                -
                -	/**
                -	 * Runs a VM for a given file source with the given context
                -	 *
                -	 * @private
                -	 * @param {string} fileSource
                -	 * @param {*} [context]
                -	 *
                -	 * @returns {*}
                -	 */
                -	runFileWithContext: function (fileSource, context) {
                -		context = context || {};
                -		vm.runInNewContext(fileSource, context);
                -		return context;
                -	}
                -};
                diff --git a/node_modules/prismjs/tests/helper/test-case.js b/node_modules/prismjs/tests/helper/test-case.js
                deleted file mode 100644
                index 27cb5b9..0000000
                --- a/node_modules/prismjs/tests/helper/test-case.js
                +++ /dev/null
                @@ -1,187 +0,0 @@
                -"use strict";
                -
                -var fs = require("fs");
                -var assert = require("chai").assert;
                -var PrismLoader = require("./prism-loader");
                -var TokenStreamTransformer = require("./token-stream-transformer");
                -
                -/**
                - * Handles parsing of a test case file.
                - *
                - *
                - * A test case file consists of at least two parts, separated by a line of dashes.
                - * This separation line must start at the beginning of the line and consist of at least three dashes.
                - *
                - * The test case file can either consist of two parts:
                - *
                - *     {source code}
                - *     ----
                - *     {expected token stream}
                - *
                - *
                - * or of three parts:
                - *
                - *     {source code}
                - *     ----
                - *     {expected token stream}
                - *     ----
                - *     {text comment explaining the test case}
                - *
                - * If the file contains more than three parts, the remaining parts are just ignored.
                - * If the file however does not contain at least two parts (so no expected token stream),
                - * the test case will later be marked as failed.
                - *
                - *
                - * @type {{runTestCase: Function, transformCompiledTokenStream: Function, parseTestCaseFile: Function}}
                - */
                -module.exports = {
                -
                -	/**
                -	 * Runs the given test case file and asserts the result
                -	 *
                -	 * The passed language identifier can either be a language like "css" or a composed language
                -	 * identifier like "css+markup". Composed identifiers can be used for testing language inclusion.
                -	 *
                -	 * When testing language inclusion, the first given language is the main language which will be passed
                -	 * to Prism for highlighting ("css+markup" will result in a call to Prism to highlight with the "css" grammar).
                -	 * But it will be ensured, that the additional passed languages will be loaded too.
                -	 *
                -	 * The languages will be loaded in the order they were provided.
                -	 *
                -	 * @param {string} languageIdentifier
                -	 * @param {string} filePath
                -	 */
                -	runTestCase: function (languageIdentifier, filePath) {
                -		var testCase = this.parseTestCaseFile(filePath);
                -		var usedLanguages = this.parseLanguageNames(languageIdentifier);
                -
                -		if (null === testCase) {
                -			throw new Error("Test case file has invalid format (or the provided token stream is invalid JSON), please read the docs.");
                -		}
                -
                -		var Prism = PrismLoader.createInstance(usedLanguages.languages);
                -		// the first language is the main language to highlight
                -		var mainLanguageGrammar = Prism.languages[usedLanguages.mainLanguage];
                -		var compiledTokenStream = Prism.tokenize(testCase.testSource, mainLanguageGrammar);
                -		var simplifiedTokenStream = TokenStreamTransformer.simplify(compiledTokenStream);
                -
                -		var tzd = JSON.stringify( simplifiedTokenStream ); var exp = JSON.stringify( testCase.expectedTokenStream );
                -	  var i = 0;var j = 0;var diff = "";
                -    while ( j < tzd.length ){ if (exp[i] != tzd[j] || i == exp.length) diff += tzd[j]; else i++; j++; }
                -
                -		// var message = "\nToken Stream: \n" + JSON.stringify( simplifiedTokenStream, null, " " ) + 
                -		var message = "\nToken Stream: \n" + tzd + 
                -									"\n-----------------------------------------\n" +
                -									"Expected Token Stream: \n" + exp + 
                -									"\n-----------------------------------------\n" + diff;
                -
                -		var result = assert.deepEqual(simplifiedTokenStream, testCase.expectedTokenStream, testCase.comment + message);
                -	},
                -
                -
                -	/**
                -	 * Parses the language names and finds the main language.
                -	 *
                -	 * It is either the last language or the language followed by a exclamation mark “!”.
                -	 * There should only be one language with an exclamation mark.
                -	 *
                -	 * @param {string} languageIdentifier
                -	 *
                -	 * @returns {{languages: string[], mainLanguage: string}}
                -	 */
                -	parseLanguageNames: function (languageIdentifier) {
                -		var languages = languageIdentifier.split("+");
                -		var mainLanguage = null;
                -
                -		languages = languages.map(
                -			function (language) {
                -				var pos = language.indexOf("!");
                -
                -				if (-1 < pos) {
                -					if (mainLanguage) {
                -						throw "There are multiple main languages defined.";
                -					}
                -
                -					mainLanguage = language.replace("!", "");
                -					return mainLanguage;
                -				}
                -
                -				return language;
                -			}
                -		);
                -
                -		if (!mainLanguage) {
                -			mainLanguage = languages[languages.length-1];
                -		}
                -
                -		return {
                -			languages: languages,
                -			mainLanguage: mainLanguage
                -		};
                -	},
                -
                -
                -	/**
                -	 * Parses the test case from the given test case file
                -	 *
                -	 * @private
                -	 * @param {string} filePath
                -	 * @returns {{testSource: string, expectedTokenStream: Array.>, comment:string?}|null}
                -	 */
                -	parseTestCaseFile: function (filePath) {
                -		var testCaseSource = fs.readFileSync(filePath, "utf8");
                -		var testCaseParts = testCaseSource.split(/^-{10,}\w*$/m);
                -
                -		try {
                -			var testCase = {
                -				testSource: testCaseParts[0].trim(),
                -				expectedTokenStream: JSON.parse(testCaseParts[1]),
                -				comment: null
                -			};
                -
                -			// if there are three parts, the third one is the comment
                -			// explaining the test case
                -			if (testCaseParts[2]) {
                -				testCase.comment = testCaseParts[2].trim();
                -			}
                -
                -			return testCase;
                -		}
                -		catch (e) {
                -			// the JSON can't be parsed (e.g. it could be empty)
                -			return null;
                -		}
                -	},
                -
                -	/**
                -	 * Runs the given pieces of codes and asserts their result.
                -	 *
                -	 * Code is provided as the key and expected result as the value.
                -	 *
                -	 * @param {string} languageIdentifier
                -	 * @param {object} codes
                -	 */
                -	runTestsWithHooks: function (languageIdentifier, codes) {
                -		var usedLanguages = this.parseLanguageNames(languageIdentifier);
                -		var Prism = PrismLoader.createInstance(usedLanguages.languages);
                -		// the first language is the main language to highlight
                -
                -		for (var code in codes) {
                -			if (codes.hasOwnProperty(code)) {
                -				var env = {
                -					element: {},
                -					language: usedLanguages.mainLanguage,
                -					grammar: Prism.languages[usedLanguages.mainLanguage],
                -					code: code
                -				};
                -				Prism.hooks.run('before-highlight', env);
                -				env.highlightedCode = Prism.highlight(env.code, Prism.languages[usedLanguages.mainLanguage], usedLanguages.mainLanguage);
                -				Prism.hooks.run('before-insert', env);
                -				env.element.innerHTML = env.highlightedCode;
                -				Prism.hooks.run('after-highlight', env);
                -				Prism.hooks.run('complete', env);
                -				assert.equal(env.highlightedCode, codes[code]);
                -			}
                -		}
                -	}
                -};
                diff --git a/node_modules/prismjs/tests/helper/test-discovery.js b/node_modules/prismjs/tests/helper/test-discovery.js
                deleted file mode 100644
                index b2aade1..0000000
                --- a/node_modules/prismjs/tests/helper/test-discovery.js
                +++ /dev/null
                @@ -1,115 +0,0 @@
                -"use strict";
                -
                -var fs = require("fs");
                -var path = require("path");
                -
                -
                -module.exports = {
                -
                -	/**
                -	 * Loads the list of all available tests
                -	 *
                -	 * @param {string} rootDir
                -	 * @returns {Object.}
                -	 */
                -	loadAllTests: function (rootDir) {
                -		var testSuite = {};
                -		var self = this;
                -
                -		this.getAllDirectories(rootDir).forEach(
                -			function (language) {
                -				testSuite[language] = self.getAllFiles(path.join(rootDir, language));
                -			}
                -		);
                -
                -		return testSuite;
                -	},
                -
                -	/**
                -	 * Loads the list of available tests that match the given languages
                -	 *
                -	 * @param {string} rootDir
                -	 * @param {string|string[]} languages
                -	 * @returns {Object.}
                -	 */
                -	loadSomeTests: function (rootDir, languages) {
                -		var testSuite = {};
                -		var self = this;
                -
                -		this.getSomeDirectories(rootDir, languages).forEach(
                -			function (language) {
                -				testSuite[language] = self.getAllFiles(path.join(rootDir, language));
                -			}
                -		);
                -
                -		return testSuite;
                -	},
                -
                -
                -	/**
                -	 * Returns a list of all (sub)directories (just the directory names, not full paths)
                -	 * in the given src directory
                -	 *
                -	 * @param {string} src
                -	 * @returns {Array.}
                -	 */
                -	getAllDirectories: function (src) {
                -		return fs.readdirSync(src).filter(
                -			function (file) {
                -				return fs.statSync(path.join(src, file)).isDirectory();
                -			}
                -		);
                -	},
                -
                -	/**
                -	 * Returns a list of all (sub)directories (just the directory names, not full paths)
                -	 * in the given src directory, matching the given languages
                -	 *
                -	 * @param {string} src
                -	 * @param {string|string[]} languages
                -	 * @returns {Array.}
                -	 */
                -	getSomeDirectories: function (src, languages) {
                -		var self = this;
                -		return fs.readdirSync(src).filter(
                -			function (file) {
                -				return fs.statSync(path.join(src, file)).isDirectory() && self.directoryMatches(file, languages);
                -			}
                -		);
                -	},
                -
                -	/**
                -	 * Returns whether a directory matches one of the given languages.
                -	 * @param {string} directory
                -	 * @param {string|string[]} languages
                -	 */
                -	directoryMatches: function (directory, languages) {
                -		if (!Array.isArray(languages)) {
                -			languages = [languages];
                -		}
                -		var dirLanguages = directory.split(/!?\+!?/);
                -		return dirLanguages.some(function (lang) {
                -			return languages.indexOf(lang) >= 0;
                -		});
                -	},
                -
                -
                -	/**
                -	 * Returns a list of all full file paths to all files in the given src directory
                -	 *
                -	 * @private
                -	 * @param {string} src
                -	 * @returns {Array.}
                -	 */
                -	getAllFiles: function (src) {
                -		return fs.readdirSync(src).filter(
                -			function (fileName) {
                -				return fs.statSync(path.join(src, fileName)).isFile();
                -			}
                -		).map(
                -			function (fileName) {
                -				return path.join(src, fileName);
                -			}
                -		);
                -	}
                -};
                diff --git a/node_modules/prismjs/tests/helper/token-stream-transformer.js b/node_modules/prismjs/tests/helper/token-stream-transformer.js
                deleted file mode 100644
                index deb831c..0000000
                --- a/node_modules/prismjs/tests/helper/token-stream-transformer.js
                +++ /dev/null
                @@ -1,32 +0,0 @@
                -"use strict";
                -
                -
                -module.exports = {
                -	/**
                -	 * Simplifies the token stream to ease the matching with the expected token stream.
                -	 *
                -	 * * Strings are kept as-is
                -	 * * In arrays each value is transformed individually
                -	 * * Values that are empty (empty arrays or strings only containing whitespace)
                -	 *
                -	 *
                -	 * @param {Array} tokenStream
                -	 * @returns {Array.}
                -	 */
                -	simplify: function (tokenStream) {
                -		if (Array.isArray(tokenStream)) {
                -			return tokenStream
                -				.map(this.simplify.bind(this))
                -				.filter(function (value) {
                -					return !(Array.isArray(value) && !value.length) && !(typeof value === "string" && !value.trim().length);
                -				}
                -			);
                -		}
                -		else if (typeof tokenStream === "object") {
                -			return [tokenStream.type, this.simplify(tokenStream.content)];
                -		}
                -		else {
                -			return tokenStream;
                -		}
                -	}
                -};
                diff --git a/node_modules/prismjs/tests/languages/abap/comment_feature.test b/node_modules/prismjs/tests/languages/abap/comment_feature.test
                deleted file mode 100644
                index e0f28fe..0000000
                --- a/node_modules/prismjs/tests/languages/abap/comment_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -*
                -* Foobar
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "*"],
                -	["comment", "* Foobar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/abap/eol-comment_feature.test b/node_modules/prismjs/tests/languages/abap/eol-comment_feature.test
                deleted file mode 100644
                index f29fc84..0000000
                --- a/node_modules/prismjs/tests/languages/abap/eol-comment_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -"
                -" foobar
                -
                -----------------------------------------------------
                -
                -[
                -	["eol-comment", "\""],
                -	["eol-comment", "\" foobar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for EOL comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/abap/keyword_feature.test b/node_modules/prismjs/tests/languages/abap/keyword_feature.test
                deleted file mode 100644
                index 0a5a94d..0000000
                --- a/node_modules/prismjs/tests/languages/abap/keyword_feature.test
                +++ /dev/null
                @@ -1,1801 +0,0 @@
                -SCIENTIFIC_WITH_LEADING_ZERO
                -SCALE_PRESERVING_SCIENTIFIC
                -RMC_COMMUNICATION_FAILURE
                -END-ENHANCEMENT-SECTION
                -MULTIPLY-CORRESPONDING
                -SUBTRACT-CORRESPONDING
                -VERIFICATION-MESSAGE
                -DIVIDE-CORRESPONDING
                -ENHANCEMENT-SECTION
                -CURRENCY_CONVERSION
                -RMC_SYSTEM_FAILURE
                -START-OF-SELECTION
                -MOVE-CORRESPONDING
                -RMC_INVALID_STATUS
                -CUSTOMER-FUNCTION
                -END-OF-DEFINITION
                -ENHANCEMENT-POINT
                -SYSTEM-EXCEPTIONS
                -ADD-CORRESPONDING
                -SCALE_PRESERVING
                -SELECTION-SCREEN
                -CURSOR-SELECTION
                -END-OF-SELECTION
                -LOAD-OF-PROGRAM
                -SCROLL-BOUNDARY
                -SELECTION-TABLE
                -EXCEPTION-TABLE
                -IMPLEMENTATIONS
                -PARAMETER-TABLE
                -RIGHT-JUSTIFIED
                -UNIT_CONVERSION
                -AUTHORITY-CHECK
                -LIST-PROCESSING
                -SIGN_AS_POSTFIX
                -COL_BACKGROUND
                -IMPLEMENTATION
                -INTERFACE-POOL
                -TRANSFORMATION
                -IDENTIFICATION
                -ENDENHANCEMENT
                -LINE-SELECTION
                -INITIALIZATION
                -LEFT-JUSTIFIED
                -SELECT-OPTIONS
                -SELECTION-SETS
                -COMMUNICATION
                -CORRESPONDING
                -DECIMAL_SHIFT
                -PRINT-CONTROL
                -VALUE-REQUEST
                -CHAIN-REQUEST
                -FUNCTION-POOL
                -FIELD-SYMBOLS
                -FUNCTIONALITY
                -INVERTED-DATE
                -SELECTION-SET
                -CLASS-METHODS
                -OUTPUT-LENGTH
                -CLASS-CODING
                -COL_NEGATIVE
                -ERRORMESSAGE
                -FIELD-GROUPS
                -HELP-REQUEST
                -NO-EXTENSION
                -NO-TOPOFPAGE
                -REDEFINITION
                -DISPLAY-MODE
                -ENDINTERFACE
                -EXIT-COMMAND
                -FIELD-SYMBOL
                -NO-SCROLLING
                -SHORTDUMP-ID
                -ACCESSPOLICY
                -CLASS-EVENTS
                -COL_POSITIVE
                -DECLARATIONS
                -ENHANCEMENTS
                -FILTER-TABLE
                -SWITCHSTATES
                -SYNTAX-CHECK
                -TRANSPORTING
                -ASYNCHRONOUS
                -SYNTAX-TRACE
                -TOKENIZATION
                -USER-COMMAND
                -WITH-HEADING
                -ABAP-SOURCE
                -BREAK-POINT
                -CHAIN-INPUT
                -COMPRESSION
                -FIXED-POINT
                -NEW-SECTION
                -NON-UNICODE
                -OCCURRENCES
                -RESPONSIBLE
                -SYSTEM-CALL
                -TRACE-TABLE
                -ABBREVIATED
                -CHAR-TO-HEX
                -END-OF-FILE
                -ENDFUNCTION
                -ENVIRONMENT
                -ASSOCIATION
                -COL_HEADING
                -EDITOR-CALL
                -END-OF-PAGE
                -ENGINEERING
                -IMPLEMENTED
                -INTENSIFIED
                -RADIOBUTTON
                -SYSTEM-EXIT
                -TOP-OF-PAGE
                -TRANSACTION
                -APPLICATION
                -CONCATENATE
                -DESTINATION
                -ENHANCEMENT
                -IMMEDIATELY
                -NO-GROUPING
                -PRECOMPILED
                -REPLACEMENT
                -TITLE-LINES
                -ACTIVATION
                -BYTE-ORDER
                -CLASS-POOL
                -CONNECTION
                -CONVERSION
                -DEFINITION
                -DEPARTMENT
                -EXPIRATION
                -INHERITING
                -MESSAGE-ID
                -NO-HEADING
                -PERFORMING
                -QUEUE-ONLY
                -RIGHTSPACE
                -SCIENTIFIC
                -STATUSINFO
                -STRUCTURES
                -SYNCPOINTS
                -WITH-TITLE
                -ATTRIBUTES
                -BOUNDARIES
                -CLASS-DATA
                -COL_NORMAL
                -DD/MM/YYYY
                -DESCENDING
                -INTERFACES
                -LINE-COUNT
                -MM/DD/YYYY
                -NON-UNIQUE
                -PRESERVING
                -SELECTIONS
                -STATEMENTS
                -SUBROUTINE
                -TRUNCATION
                -TYPE-POOLS
                -ARITHMETIC
                -BACKGROUND
                -ENDPROVIDE
                -EXCEPTIONS
                -IDENTIFIER
                -INDEX-LINE
                -OBLIGATORY
                -PARAMETERS
                -PERCENTAGE
                -PUSHBUTTON
                -RESOLUTION
                -COMPONENTS
                -DEALLOCATE
                -DISCONNECT
                -DUPLICATES
                -FIRST-LINE
                -HEAD-LINES
                -NO-DISPLAY
                -OCCURRENCE
                -RESPECTING
                -RETURNCODE
                -SUBMATCHES
                -TRACE-FILE
                -ASCENDING
                -BYPASSING
                -ENDMODULE
                -EXCEPTION
                -EXCLUDING
                -EXPORTING
                -INCREMENT
                -MATCHCODE
                -PARAMETER
                -PARTIALLY
                -PREFERRED
                -REFERENCE
                -REPLACING
                -RETURNING
                -SELECTION
                -SEPARATED
                -SPECIFIED
                -STATEMENT
                -TIMESTAMP
                -TYPE-POOL
                -ACCEPTING
                -APPENDAGE
                -ASSIGNING
                -COL_GROUP
                -COMPARING
                -CONSTANTS
                -DANGEROUS
                -IMPORTING
                -INSTANCES
                -LEFTSPACE
                -LOG-POINT
                -QUICKINFO
                -READ-ONLY
                -SCROLLING
                -SQLSCRIPT
                -STEP-LOOP
                -TOP-LINES
                -TRANSLATE
                -APPENDING
                -AUTHORITY
                -CHARACTER
                -COMPONENT
                -CONDITION
                -DIRECTORY
                -DUPLICATE
                -MESSAGING
                -RECEIVING
                -SUBSCREEN
                -ACCORDING
                -COL_TOTAL
                -END-LINES
                -ENDMETHOD
                -ENDSELECT
                -EXPANDING
                -EXTENSION
                -INCLUDING
                -INFOTYPES
                -INTERFACE
                -INTERVALS
                -LINE-SIZE
                -PF-STATUS
                -PROCEDURE
                -PROTECTED
                -REQUESTED
                -RESUMABLE
                -RIGHTPLUS
                -SAP-SPOOL
                -SECONDARY
                -STRUCTURE
                -SUBSTRING
                -TABLEVIEW
                -NUMOFCHAR
                -ADJACENT
                -ANALYSIS
                -ASSIGNED
                -BACKWARD
                -CHANNELS
                -CHECKBOX
                -CONTINUE
                -CRITICAL
                -DATAINFO
                -DD/MM/YY
                -DURATION
                -ENCODING
                -ENDCLASS
                -FUNCTION
                -LEFTPLUS
                -LINEFEED
                -MM/DD/YY
                -OVERFLOW
                -RECEIVED
                -SKIPPING
                -SORTABLE
                -STANDARD
                -SUBTRACT
                -SUPPRESS
                -TABSTRIP
                -TITLEBAR
                -TRUNCATE
                -UNASSIGN
                -WHENEVER
                -ANALYZER
                -COALESCE
                -COMMENTS
                -CONDENSE
                -DECIMALS
                -DEFERRED
                -ENDWHILE
                -EXPLICIT
                -KEYWORDS
                -MESSAGES
                -POSITION
                -PRIORITY
                -RECEIVER
                -RENAMING
                -TIMEZONE
                -TRAILING
                -ALLOCATE
                -CENTERED
                -CIRCULAR
                -CONTROLS
                -CURRENCY
                -DELETING
                -DESCRIBE
                -DISTANCE
                -ENDCATCH
                -EXPONENT
                -EXTENDED
                -GENERATE
                -IGNORING
                -INCLUDES
                -INTERNAL
                -MAJOR-ID
                -MODIFIER
                -NEW-LINE
                -OPTIONAL
                -PROPERTY
                -ROLLBACK
                -STARTING
                -SUPPLIED
                -ABSTRACT
                -CHANGING
                -CONTEXTS
                -CREATING
                -CUSTOMER
                -DATABASE
                -DAYLIGHT
                -DEFINING
                -DISTINCT
                -DIVISION
                -ENABLING
                -ENDCHAIN
                -ESCAPING
                -HARMLESS
                -IMPLICIT
                -INACTIVE
                -LANGUAGE
                -MINOR-ID
                -MULTIPLY
                -NEW-PAGE
                -NO-TITLE
                -POS_HIGH
                -SEPARATE
                -TEXTPOOL
                -TRANSFER
                -SELECTOR
                -DBMAXLEN
                -ITERATOR
                -SELECTOR
                -ARCHIVE
                -BIT-XOR
                -BYTE-CO
                -COLLECT
                -COMMENT
                -CURRENT
                -DEFAULT
                -DISPLAY
                -ENDFORM
                -EXTRACT
                -LEADING
                -LISTBOX
                -LOCATOR
                -MEMBERS
                -METHODS
                -NESTING
                -POS_LOW
                -PROCESS
                -PROVIDE
                -RAISING
                -RESERVE
                -SECONDS
                -SUMMARY
                -VISIBLE
                -BETWEEN
                -BIT-AND
                -BYTE-CS
                -CLEANUP
                -COMPUTE
                -CONTROL
                -CONVERT
                -DATASET
                -ENDCASE
                -FORWARD
                -HEADERS
                -HOTSPOT
                -INCLUDE
                -INVERSE
                -KEEPING
                -NO-ZERO
                -OBJECTS
                -OVERLAY
                -PADDING
                -PATTERN
                -PROGRAM
                -REFRESH
                -SECTION
                -SUMMING
                -TESTING
                -VERSION
                -WINDOWS
                -WITHOUT
                -BIT-NOT
                -BYTE-CA
                -BYTE-NA
                -CASTING
                -CONTEXT
                -COUNTRY
                -DYNAMIC
                -ENABLED
                -ENDLOOP
                -EXECUTE
                -FRIENDS
                -HANDLER
                -HEADING
                -INITIAL
                - *-INPUT
                -LOGFILE
                -MAXIMUM
                -MINIMUM
                -NO-GAPS
                -NO-SIGN
                -PRAGMAS
                -PRIMARY
                -PRIVATE
                -REDUCED
                -REPLACE
                -REQUEST
                -RESULTS
                -UNICODE
                -WARNING
                -ALIASES
                -BYTE-CN
                -BYTE-NS
                -CALLING
                -COL_KEY
                -COLUMNS
                -CONNECT
                -ENDEXEC
                -ENTRIES
                -EXCLUDE
                -FILTERS
                -FURTHER
                -HELP-ID
                -LOGICAL
                -MAPPING
                -MESSAGE
                -NAMETAB
                -OPTIONS
                -PACKAGE
                -PERFORM
                -RECEIVE
                -STATICS
                -VARYING
                -BINDING
                -CHARLEN
                -GREATER
                -XSTRLEN
                -ACCEPT
                -APPEND
                -DETAIL
                -ELSEIF
                -ENDING
                -ENDTRY
                -FORMAT
                -FRAMES
                -GIVING
                -HASHED
                -HEADER
                -IMPORT
                -INSERT
                -MARGIN
                -MODULE
                -NATIVE
                -OBJECT
                -OFFSET
                -REMOTE
                -RESUME
                -SAVING
                -SIMPLE
                -SUBMIT
                -TABBED
                -TOKENS
                -UNIQUE
                -UNPACK
                -UPDATE
                -WINDOW
                -YELLOW
                -ACTUAL
                -ASPECT
                -CENTER
                -CURSOR
                -DELETE
                -DIALOG
                -DIVIDE
                -DURING
                -ERRORS
                -EVENTS
                -EXTEND
                -FILTER
                -HANDLE
                -HAVING
                -IGNORE
                -LITTLE
                -MEMORY
                -NO-GAP
                -OCCURS
                -OPTION
                -PERSON
                -PLACES
                -PUBLIC
                -REDUCE
                -REPORT
                -RESULT
                -SINGLE
                -SORTED
                -SWITCH
                -SYNTAX
                -TARGET
                -VALUES
                -WRITER
                -ASSERT
                -BLOCKS
                -BOUNDS
                -BUFFER
                -CHANGE
                -COLUMN
                -COMMIT
                -CONCAT
                -COPIES
                -CREATE
                -DDMMYY
                -DEFINE
                -ENDIAN
                -ESCAPE
                -EXPAND
                -KERNEL
                -LAYOUT
                -LEGACY
                -LEVELS
                -MMDDYY
                -NUMBER
                -OUTPUT
                -RANGES
                -READER
                -RETURN
                -SCREEN
                -SEARCH
                -SELECT
                -SHARED
                -SOURCE
                -STABLE
                -STATIC
                -SUBKEY
                -SUFFIX
                -TABLES
                -UNWIND
                -YYMMDD
                -ASSIGN
                -BACKUP
                -BEFORE
                -BINARY
                -BIT-OR
                -BLANKS
                -CLIENT
                -CODING
                -COMMON
                -DEMAND
                -DYNPRO
                -EXCEPT
                -EXISTS
                -EXPORT
                -FIELDS
                -GLOBAL
                -GROUPS
                -LENGTH
                -LOCALE
                -MEDIUM
                -METHOD
                -MODIFY
                -NESTED
                -OTHERS
                -REJECT
                -SCROLL
                -SUPPLY
                -SYMBOL
                -ENDFOR
                -STRLEN
                -ALIGN
                -BEGIN
                -BOUND
                -ENDAT
                -ENTRY
                -EVENT
                -FINAL
                -FLUSH
                -GRANT
                -INNER
                -SHORT
                -USING
                -WRITE
                -AFTER
                -BLACK
                -BLOCK
                -CLOCK
                -COLOR
                -COUNT
                -DUMMY
                -EMPTY
                -ENDDO
                -ENDON
                -GREEN
                -INDEX
                -INOUT
                -LEAVE
                -LEVEL
                -LINES
                -MODIF
                -ORDER
                -OUTER
                -RANGE
                -RESET
                -RETRY
                -RIGHT
                -SMART
                -SPLIT
                -STYLE
                -TABLE
                -THROW
                -UNDER
                -UNTIL
                -UPPER
                -UTF-8
                -WHERE
                -ALIAS
                -BLANK
                -CLEAR
                -CLOSE
                -EXACT
                -FETCH
                -FIRST
                -FOUND
                -GROUP
                -LLANG
                -LOCAL
                -OTHER
                -REGEX
                -SPOOL
                -TITLE
                -TYPES
                -VALID
                -WHILE
                -ALPHA
                -BOXED
                -CATCH
                -CHAIN
                -CHECK
                -CLASS
                -COVER
                -ENDIF
                -EQUIV
                -FIELD
                -FLOOR
                -FRAME
                -INPUT
                -LOWER
                -MATCH
                -NODES
                -PAGES
                -PRINT
                -RAISE
                -ROUND
                -SHIFT
                -SPACE
                -SPOTS
                -STAMP
                -STATE
                -TASKS
                -TIMES
                -TRMAC
                -ULINE
                -UNION
                -VALUE
                -WIDTH
                -EQUAL
                -LOG10
                -TRUNC
                -BLOB
                -CASE
                -CEIL
                -CLOB
                -COND
                -EXIT
                -FILE
                -GAPS
                -HOLD
                -INCL
                -INTO
                -KEEP
                -KEYS
                -LAST
                -LINE
                -LONG
                -LPAD
                -MAIL
                -MODE
                -OPEN
                -PINK
                -READ
                -ROWS
                -TEST
                -THEN
                -ZERO
                -AREA
                -BACK
                -BADI
                -BYTE
                -CAST
                -EDIT
                -EXEC
                -FAIL
                -FIND
                -FKEQ
                -FONT
                -FREE
                -GKEQ
                -HIDE
                -INIT
                -ITNO
                -LATE
                -LOOP
                -MAIN
                -MARK
                -MOVE
                -NEXT
                -NULL
                -RISK
                -ROLE
                -UNIT
                -WAIT
                -ZONE
                -BASE
                -CALL
                -CODE
                -DATA
                -DATE
                -FKGE
                -GKGE
                -HIGH
                -KIND
                -LEFT
                -LIST
                -MASK
                -MESH
                -NAME
                -NODE
                -PACK
                -PAGE
                -POOL
                -SEND
                -SIGN
                -SIZE
                -SOME
                -STOP
                -TASK
                -TEXT
                -TIME
                -USER
                -VARY
                -WITH
                -WORD
                -BLUE
                -CONV
                -COPY
                -DEEP
                -ELSE
                -FORM
                -FROM
                -HINT
                -ICON
                -JOIN
                -LIKE
                -LOAD
                -ONLY
                -PART
                -SCAN
                -SKIP
                -SORT
                -TYPE
                -UNIX
                -VIEW
                -WHEN
                -WORK
                -ACOS
                -ASIN
                -ATAN
                -COSH
                -EACH
                -FRAC
                -LESS
                -RTTI
                -SINH
                -SQRT
                -TANH
                -AVG
                -BIT
                -DIV
                -ISO
                -LET
                -OUT
                -PAD
                -SQL
                -ALL
                -CI_
                -CPI
                -END
                -LOB
                -LPI
                -MAX
                -MIN
                -NEW
                -OLE
                -RUN
                -SET
                -?TO
                -YES
                -ABS
                -ADD
                -AND
                -BIG
                -FOR
                -HDB
                -JOB
                -LOW
                -NOT
                -SAP
                -TRY
                -VIA
                -XML
                -ANY
                -GET
                -IDS
                -KEY
                -MOD
                -OFF
                -PUT
                -RAW
                -RED
                -REF
                -SUM
                -TAB
                -XSD
                -CNT
                -COS
                -EXP
                -LOG
                -SIN
                -TAN
                -XOR
                -AT
                -CO
                -CP
                -DO
                -GT
                -ID
                -IF
                -NS
                -OR
                -BT
                -CA
                -CS
                -GE
                -NA
                -NB
                -EQ
                -IN
                -LT
                -NE
                -NO
                -OF
                -ON
                -PF
                -TO
                -AS
                -BY
                -CN
                -IS
                -LE
                -NP
                -UP
                -E
                -I
                -M
                -O
                -Z
                -C
                -X
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "SCIENTIFIC_WITH_LEADING_ZERO"],
                -	["keyword", "SCALE_PRESERVING_SCIENTIFIC"],
                -	["keyword", "RMC_COMMUNICATION_FAILURE"],
                -	["keyword", "END-ENHANCEMENT-SECTION"],
                -	["keyword", "MULTIPLY-CORRESPONDING"],
                -	["keyword", "SUBTRACT-CORRESPONDING"],
                -	["keyword", "VERIFICATION-MESSAGE"],
                -	["keyword", "DIVIDE-CORRESPONDING"],
                -	["keyword", "ENHANCEMENT-SECTION"],
                -	["keyword", "CURRENCY_CONVERSION"],
                -	["keyword", "RMC_SYSTEM_FAILURE"],
                -	["keyword", "START-OF-SELECTION"],
                -	["keyword", "MOVE-CORRESPONDING"],
                -	["keyword", "RMC_INVALID_STATUS"],
                -	["keyword", "CUSTOMER-FUNCTION"],
                -	["keyword", "END-OF-DEFINITION"],
                -	["keyword", "ENHANCEMENT-POINT"],
                -	["keyword", "SYSTEM-EXCEPTIONS"],
                -	["keyword", "ADD-CORRESPONDING"],
                -	["keyword", "SCALE_PRESERVING"],
                -	["keyword", "SELECTION-SCREEN"],
                -	["keyword", "CURSOR-SELECTION"],
                -	["keyword", "END-OF-SELECTION"],
                -	["keyword", "LOAD-OF-PROGRAM"],
                -	["keyword", "SCROLL-BOUNDARY"],
                -	["keyword", "SELECTION-TABLE"],
                -	["keyword", "EXCEPTION-TABLE"],
                -	["keyword", "IMPLEMENTATIONS"],
                -	["keyword", "PARAMETER-TABLE"],
                -	["keyword", "RIGHT-JUSTIFIED"],
                -	["keyword", "UNIT_CONVERSION"],
                -	["keyword", "AUTHORITY-CHECK"],
                -	["keyword", "LIST-PROCESSING"],
                -	["keyword", "SIGN_AS_POSTFIX"],
                -	["keyword", "COL_BACKGROUND"],
                -	["keyword", "IMPLEMENTATION"],
                -	["keyword", "INTERFACE-POOL"],
                -	["keyword", "TRANSFORMATION"],
                -	["keyword", "IDENTIFICATION"],
                -	["keyword", "ENDENHANCEMENT"],
                -	["keyword", "LINE-SELECTION"],
                -	["keyword", "INITIALIZATION"],
                -	["keyword", "LEFT-JUSTIFIED"],
                -	["keyword", "SELECT-OPTIONS"],
                -	["keyword", "SELECTION-SETS"],
                -	["keyword", "COMMUNICATION"],
                -	["keyword", "CORRESPONDING"],
                -	["keyword", "DECIMAL_SHIFT"],
                -	["keyword", "PRINT-CONTROL"],
                -	["keyword", "VALUE-REQUEST"],
                -	["keyword", "CHAIN-REQUEST"],
                -	["keyword", "FUNCTION-POOL"],
                -	["keyword", "FIELD-SYMBOLS"],
                -	["keyword", "FUNCTIONALITY"],
                -	["keyword", "INVERTED-DATE"],
                -	["keyword", "SELECTION-SET"],
                -	["keyword", "CLASS-METHODS"],
                -	["keyword", "OUTPUT-LENGTH"],
                -	["keyword", "CLASS-CODING"],
                -	["keyword", "COL_NEGATIVE"],
                -	["keyword", "ERRORMESSAGE"],
                -	["keyword", "FIELD-GROUPS"],
                -	["keyword", "HELP-REQUEST"],
                -	["keyword", "NO-EXTENSION"],
                -	["keyword", "NO-TOPOFPAGE"],
                -	["keyword", "REDEFINITION"],
                -	["keyword", "DISPLAY-MODE"],
                -	["keyword", "ENDINTERFACE"],
                -	["keyword", "EXIT-COMMAND"],
                -	["keyword", "FIELD-SYMBOL"],
                -	["keyword", "NO-SCROLLING"],
                -	["keyword", "SHORTDUMP-ID"],
                -	["keyword", "ACCESSPOLICY"],
                -	["keyword", "CLASS-EVENTS"],
                -	["keyword", "COL_POSITIVE"],
                -	["keyword", "DECLARATIONS"],
                -	["keyword", "ENHANCEMENTS"],
                -	["keyword", "FILTER-TABLE"],
                -	["keyword", "SWITCHSTATES"],
                -	["keyword", "SYNTAX-CHECK"],
                -	["keyword", "TRANSPORTING"],
                -	["keyword", "ASYNCHRONOUS"],
                -	["keyword", "SYNTAX-TRACE"],
                -	["keyword", "TOKENIZATION"],
                -	["keyword", "USER-COMMAND"],
                -	["keyword", "WITH-HEADING"],
                -	["keyword", "ABAP-SOURCE"],
                -	["keyword", "BREAK-POINT"],
                -	["keyword", "CHAIN-INPUT"],
                -	["keyword", "COMPRESSION"],
                -	["keyword", "FIXED-POINT"],
                -	["keyword", "NEW-SECTION"],
                -	["keyword", "NON-UNICODE"],
                -	["keyword", "OCCURRENCES"],
                -	["keyword", "RESPONSIBLE"],
                -	["keyword", "SYSTEM-CALL"],
                -	["keyword", "TRACE-TABLE"],
                -	["keyword", "ABBREVIATED"],
                -	["keyword", "CHAR-TO-HEX"],
                -	["keyword", "END-OF-FILE"],
                -	["keyword", "ENDFUNCTION"],
                -	["keyword", "ENVIRONMENT"],
                -	["keyword", "ASSOCIATION"],
                -	["keyword", "COL_HEADING"],
                -	["keyword", "EDITOR-CALL"],
                -	["keyword", "END-OF-PAGE"],
                -	["keyword", "ENGINEERING"],
                -	["keyword", "IMPLEMENTED"],
                -	["keyword", "INTENSIFIED"],
                -	["keyword", "RADIOBUTTON"],
                -	["keyword", "SYSTEM-EXIT"],
                -	["keyword", "TOP-OF-PAGE"],
                -	["keyword", "TRANSACTION"],
                -	["keyword", "APPLICATION"],
                -	["keyword", "CONCATENATE"],
                -	["keyword", "DESTINATION"],
                -	["keyword", "ENHANCEMENT"],
                -	["keyword", "IMMEDIATELY"],
                -	["keyword", "NO-GROUPING"],
                -	["keyword", "PRECOMPILED"],
                -	["keyword", "REPLACEMENT"],
                -	["keyword", "TITLE-LINES"],
                -	["keyword", "ACTIVATION"],
                -	["keyword", "BYTE-ORDER"],
                -	["keyword", "CLASS-POOL"],
                -	["keyword", "CONNECTION"],
                -	["keyword", "CONVERSION"],
                -	["keyword", "DEFINITION"],
                -	["keyword", "DEPARTMENT"],
                -	["keyword", "EXPIRATION"],
                -	["keyword", "INHERITING"],
                -	["keyword", "MESSAGE-ID"],
                -	["keyword", "NO-HEADING"],
                -	["keyword", "PERFORMING"],
                -	["keyword", "QUEUE-ONLY"],
                -	["keyword", "RIGHTSPACE"],
                -	["keyword", "SCIENTIFIC"],
                -	["keyword", "STATUSINFO"],
                -	["keyword", "STRUCTURES"],
                -	["keyword", "SYNCPOINTS"],
                -	["keyword", "WITH-TITLE"],
                -	["keyword", "ATTRIBUTES"],
                -	["keyword", "BOUNDARIES"],
                -	["keyword", "CLASS-DATA"],
                -	["keyword", "COL_NORMAL"],
                -	["keyword", "DD/MM/YYYY"],
                -	["keyword", "DESCENDING"],
                -	["keyword", "INTERFACES"],
                -	["keyword", "LINE-COUNT"],
                -	["keyword", "MM/DD/YYYY"],
                -	["keyword", "NON-UNIQUE"],
                -	["keyword", "PRESERVING"],
                -	["keyword", "SELECTIONS"],
                -	["keyword", "STATEMENTS"],
                -	["keyword", "SUBROUTINE"],
                -	["keyword", "TRUNCATION"],
                -	["keyword", "TYPE-POOLS"],
                -	["keyword", "ARITHMETIC"],
                -	["keyword", "BACKGROUND"],
                -	["keyword", "ENDPROVIDE"],
                -	["keyword", "EXCEPTIONS"],
                -	["keyword", "IDENTIFIER"],
                -	["keyword", "INDEX-LINE"],
                -	["keyword", "OBLIGATORY"],
                -	["keyword", "PARAMETERS"],
                -	["keyword", "PERCENTAGE"],
                -	["keyword", "PUSHBUTTON"],
                -	["keyword", "RESOLUTION"],
                -	["keyword", "COMPONENTS"],
                -	["keyword", "DEALLOCATE"],
                -	["keyword", "DISCONNECT"],
                -	["keyword", "DUPLICATES"],
                -	["keyword", "FIRST-LINE"],
                -	["keyword", "HEAD-LINES"],
                -	["keyword", "NO-DISPLAY"],
                -	["keyword", "OCCURRENCE"],
                -	["keyword", "RESPECTING"],
                -	["keyword", "RETURNCODE"],
                -	["keyword", "SUBMATCHES"],
                -	["keyword", "TRACE-FILE"],
                -	["keyword", "ASCENDING"],
                -	["keyword", "BYPASSING"],
                -	["keyword", "ENDMODULE"],
                -	["keyword", "EXCEPTION"],
                -	["keyword", "EXCLUDING"],
                -	["keyword", "EXPORTING"],
                -	["keyword", "INCREMENT"],
                -	["keyword", "MATCHCODE"],
                -	["keyword", "PARAMETER"],
                -	["keyword", "PARTIALLY"],
                -	["keyword", "PREFERRED"],
                -	["keyword", "REFERENCE"],
                -	["keyword", "REPLACING"],
                -	["keyword", "RETURNING"],
                -	["keyword", "SELECTION"],
                -	["keyword", "SEPARATED"],
                -	["keyword", "SPECIFIED"],
                -	["keyword", "STATEMENT"],
                -	["keyword", "TIMESTAMP"],
                -	["keyword", "TYPE-POOL"],
                -	["keyword", "ACCEPTING"],
                -	["keyword", "APPENDAGE"],
                -	["keyword", "ASSIGNING"],
                -	["keyword", "COL_GROUP"],
                -	["keyword", "COMPARING"],
                -	["keyword", "CONSTANTS"],
                -	["keyword", "DANGEROUS"],
                -	["keyword", "IMPORTING"],
                -	["keyword", "INSTANCES"],
                -	["keyword", "LEFTSPACE"],
                -	["keyword", "LOG-POINT"],
                -	["keyword", "QUICKINFO"],
                -	["keyword", "READ-ONLY"],
                -	["keyword", "SCROLLING"],
                -	["keyword", "SQLSCRIPT"],
                -	["keyword", "STEP-LOOP"],
                -	["keyword", "TOP-LINES"],
                -	["keyword", "TRANSLATE"],
                -	["keyword", "APPENDING"],
                -	["keyword", "AUTHORITY"],
                -	["keyword", "CHARACTER"],
                -	["keyword", "COMPONENT"],
                -	["keyword", "CONDITION"],
                -	["keyword", "DIRECTORY"],
                -	["keyword", "DUPLICATE"],
                -	["keyword", "MESSAGING"],
                -	["keyword", "RECEIVING"],
                -	["keyword", "SUBSCREEN"],
                -	["keyword", "ACCORDING"],
                -	["keyword", "COL_TOTAL"],
                -	["keyword", "END-LINES"],
                -	["keyword", "ENDMETHOD"],
                -	["keyword", "ENDSELECT"],
                -	["keyword", "EXPANDING"],
                -	["keyword", "EXTENSION"],
                -	["keyword", "INCLUDING"],
                -	["keyword", "INFOTYPES"],
                -	["keyword", "INTERFACE"],
                -	["keyword", "INTERVALS"],
                -	["keyword", "LINE-SIZE"],
                -	["keyword", "PF-STATUS"],
                -	["keyword", "PROCEDURE"],
                -	["keyword", "PROTECTED"],
                -	["keyword", "REQUESTED"],
                -	["keyword", "RESUMABLE"],
                -	["keyword", "RIGHTPLUS"],
                -	["keyword", "SAP-SPOOL"],
                -	["keyword", "SECONDARY"],
                -	["keyword", "STRUCTURE"],
                -	["keyword", "SUBSTRING"],
                -	["keyword", "TABLEVIEW"],
                -	["keyword", "NUMOFCHAR"],
                -	["keyword", "ADJACENT"],
                -	["keyword", "ANALYSIS"],
                -	["keyword", "ASSIGNED"],
                -	["keyword", "BACKWARD"],
                -	["keyword", "CHANNELS"],
                -	["keyword", "CHECKBOX"],
                -	["keyword", "CONTINUE"],
                -	["keyword", "CRITICAL"],
                -	["keyword", "DATAINFO"],
                -	["keyword", "DD/MM/YY"],
                -	["keyword", "DURATION"],
                -	["keyword", "ENCODING"],
                -	["keyword", "ENDCLASS"],
                -	["keyword", "FUNCTION"],
                -	["keyword", "LEFTPLUS"],
                -	["keyword", "LINEFEED"],
                -	["keyword", "MM/DD/YY"],
                -	["keyword", "OVERFLOW"],
                -	["keyword", "RECEIVED"],
                -	["keyword", "SKIPPING"],
                -	["keyword", "SORTABLE"],
                -	["keyword", "STANDARD"],
                -	["keyword", "SUBTRACT"],
                -	["keyword", "SUPPRESS"],
                -	["keyword", "TABSTRIP"],
                -	["keyword", "TITLEBAR"],
                -	["keyword", "TRUNCATE"],
                -	["keyword", "UNASSIGN"],
                -	["keyword", "WHENEVER"],
                -	["keyword", "ANALYZER"],
                -	["keyword", "COALESCE"],
                -	["keyword", "COMMENTS"],
                -	["keyword", "CONDENSE"],
                -	["keyword", "DECIMALS"],
                -	["keyword", "DEFERRED"],
                -	["keyword", "ENDWHILE"],
                -	["keyword", "EXPLICIT"],
                -	["keyword", "KEYWORDS"],
                -	["keyword", "MESSAGES"],
                -	["keyword", "POSITION"],
                -	["keyword", "PRIORITY"],
                -	["keyword", "RECEIVER"],
                -	["keyword", "RENAMING"],
                -	["keyword", "TIMEZONE"],
                -	["keyword", "TRAILING"],
                -	["keyword", "ALLOCATE"],
                -	["keyword", "CENTERED"],
                -	["keyword", "CIRCULAR"],
                -	["keyword", "CONTROLS"],
                -	["keyword", "CURRENCY"],
                -	["keyword", "DELETING"],
                -	["keyword", "DESCRIBE"],
                -	["keyword", "DISTANCE"],
                -	["keyword", "ENDCATCH"],
                -	["keyword", "EXPONENT"],
                -	["keyword", "EXTENDED"],
                -	["keyword", "GENERATE"],
                -	["keyword", "IGNORING"],
                -	["keyword", "INCLUDES"],
                -	["keyword", "INTERNAL"],
                -	["keyword", "MAJOR-ID"],
                -	["keyword", "MODIFIER"],
                -	["keyword", "NEW-LINE"],
                -	["keyword", "OPTIONAL"],
                -	["keyword", "PROPERTY"],
                -	["keyword", "ROLLBACK"],
                -	["keyword", "STARTING"],
                -	["keyword", "SUPPLIED"],
                -	["keyword", "ABSTRACT"],
                -	["keyword", "CHANGING"],
                -	["keyword", "CONTEXTS"],
                -	["keyword", "CREATING"],
                -	["keyword", "CUSTOMER"],
                -	["keyword", "DATABASE"],
                -	["keyword", "DAYLIGHT"],
                -	["keyword", "DEFINING"],
                -	["keyword", "DISTINCT"],
                -	["keyword", "DIVISION"],
                -	["keyword", "ENABLING"],
                -	["keyword", "ENDCHAIN"],
                -	["keyword", "ESCAPING"],
                -	["keyword", "HARMLESS"],
                -	["keyword", "IMPLICIT"],
                -	["keyword", "INACTIVE"],
                -	["keyword", "LANGUAGE"],
                -	["keyword", "MINOR-ID"],
                -	["keyword", "MULTIPLY"],
                -	["keyword", "NEW-PAGE"],
                -	["keyword", "NO-TITLE"],
                -	["keyword", "POS_HIGH"],
                -	["keyword", "SEPARATE"],
                -	["keyword", "TEXTPOOL"],
                -	["keyword", "TRANSFER"],
                -	["keyword", "SELECTOR"],
                -	["keyword", "DBMAXLEN"],
                -	["keyword", "ITERATOR"],
                -	["keyword", "SELECTOR"],
                -	["keyword", "ARCHIVE"],
                -	["keyword", "BIT-XOR"],
                -	["keyword", "BYTE-CO"],
                -	["keyword", "COLLECT"],
                -	["keyword", "COMMENT"],
                -	["keyword", "CURRENT"],
                -	["keyword", "DEFAULT"],
                -	["keyword", "DISPLAY"],
                -	["keyword", "ENDFORM"],
                -	["keyword", "EXTRACT"],
                -	["keyword", "LEADING"],
                -	["keyword", "LISTBOX"],
                -	["keyword", "LOCATOR"],
                -	["keyword", "MEMBERS"],
                -	["keyword", "METHODS"],
                -	["keyword", "NESTING"],
                -	["keyword", "POS_LOW"],
                -	["keyword", "PROCESS"],
                -	["keyword", "PROVIDE"],
                -	["keyword", "RAISING"],
                -	["keyword", "RESERVE"],
                -	["keyword", "SECONDS"],
                -	["keyword", "SUMMARY"],
                -	["keyword", "VISIBLE"],
                -	["keyword", "BETWEEN"],
                -	["keyword", "BIT-AND"],
                -	["keyword", "BYTE-CS"],
                -	["keyword", "CLEANUP"],
                -	["keyword", "COMPUTE"],
                -	["keyword", "CONTROL"],
                -	["keyword", "CONVERT"],
                -	["keyword", "DATASET"],
                -	["keyword", "ENDCASE"],
                -	["keyword", "FORWARD"],
                -	["keyword", "HEADERS"],
                -	["keyword", "HOTSPOT"],
                -	["keyword", "INCLUDE"],
                -	["keyword", "INVERSE"],
                -	["keyword", "KEEPING"],
                -	["keyword", "NO-ZERO"],
                -	["keyword", "OBJECTS"],
                -	["keyword", "OVERLAY"],
                -	["keyword", "PADDING"],
                -	["keyword", "PATTERN"],
                -	["keyword", "PROGRAM"],
                -	["keyword", "REFRESH"],
                -	["keyword", "SECTION"],
                -	["keyword", "SUMMING"],
                -	["keyword", "TESTING"],
                -	["keyword", "VERSION"],
                -	["keyword", "WINDOWS"],
                -	["keyword", "WITHOUT"],
                -	["keyword", "BIT-NOT"],
                -	["keyword", "BYTE-CA"],
                -	["keyword", "BYTE-NA"],
                -	["keyword", "CASTING"],
                -	["keyword", "CONTEXT"],
                -	["keyword", "COUNTRY"],
                -	["keyword", "DYNAMIC"],
                -	["keyword", "ENABLED"],
                -	["keyword", "ENDLOOP"],
                -	["keyword", "EXECUTE"],
                -	["keyword", "FRIENDS"],
                -	["keyword", "HANDLER"],
                -	["keyword", "HEADING"],
                -	["keyword", "INITIAL"],
                -	["keyword", "*-INPUT"],
                -	["keyword", "LOGFILE"],
                -	["keyword", "MAXIMUM"],
                -	["keyword", "MINIMUM"],
                -	["keyword", "NO-GAPS"],
                -	["keyword", "NO-SIGN"],
                -	["keyword", "PRAGMAS"],
                -	["keyword", "PRIMARY"],
                -	["keyword", "PRIVATE"],
                -	["keyword", "REDUCED"],
                -	["keyword", "REPLACE"],
                -	["keyword", "REQUEST"],
                -	["keyword", "RESULTS"],
                -	["keyword", "UNICODE"],
                -	["keyword", "WARNING"],
                -	["keyword", "ALIASES"],
                -	["keyword", "BYTE-CN"],
                -	["keyword", "BYTE-NS"],
                -	["keyword", "CALLING"],
                -	["keyword", "COL_KEY"],
                -	["keyword", "COLUMNS"],
                -	["keyword", "CONNECT"],
                -	["keyword", "ENDEXEC"],
                -	["keyword", "ENTRIES"],
                -	["keyword", "EXCLUDE"],
                -	["keyword", "FILTERS"],
                -	["keyword", "FURTHER"],
                -	["keyword", "HELP-ID"],
                -	["keyword", "LOGICAL"],
                -	["keyword", "MAPPING"],
                -	["keyword", "MESSAGE"],
                -	["keyword", "NAMETAB"],
                -	["keyword", "OPTIONS"],
                -	["keyword", "PACKAGE"],
                -	["keyword", "PERFORM"],
                -	["keyword", "RECEIVE"],
                -	["keyword", "STATICS"],
                -	["keyword", "VARYING"],
                -	["keyword", "BINDING"],
                -	["keyword", "CHARLEN"],
                -	["keyword", "GREATER"],
                -	["keyword", "XSTRLEN"],
                -	["keyword", "ACCEPT"],
                -	["keyword", "APPEND"],
                -	["keyword", "DETAIL"],
                -	["keyword", "ELSEIF"],
                -	["keyword", "ENDING"],
                -	["keyword", "ENDTRY"],
                -	["keyword", "FORMAT"],
                -	["keyword", "FRAMES"],
                -	["keyword", "GIVING"],
                -	["keyword", "HASHED"],
                -	["keyword", "HEADER"],
                -	["keyword", "IMPORT"],
                -	["keyword", "INSERT"],
                -	["keyword", "MARGIN"],
                -	["keyword", "MODULE"],
                -	["keyword", "NATIVE"],
                -	["keyword", "OBJECT"],
                -	["keyword", "OFFSET"],
                -	["keyword", "REMOTE"],
                -	["keyword", "RESUME"],
                -	["keyword", "SAVING"],
                -	["keyword", "SIMPLE"],
                -	["keyword", "SUBMIT"],
                -	["keyword", "TABBED"],
                -	["keyword", "TOKENS"],
                -	["keyword", "UNIQUE"],
                -	["keyword", "UNPACK"],
                -	["keyword", "UPDATE"],
                -	["keyword", "WINDOW"],
                -	["keyword", "YELLOW"],
                -	["keyword", "ACTUAL"],
                -	["keyword", "ASPECT"],
                -	["keyword", "CENTER"],
                -	["keyword", "CURSOR"],
                -	["keyword", "DELETE"],
                -	["keyword", "DIALOG"],
                -	["keyword", "DIVIDE"],
                -	["keyword", "DURING"],
                -	["keyword", "ERRORS"],
                -	["keyword", "EVENTS"],
                -	["keyword", "EXTEND"],
                -	["keyword", "FILTER"],
                -	["keyword", "HANDLE"],
                -	["keyword", "HAVING"],
                -	["keyword", "IGNORE"],
                -	["keyword", "LITTLE"],
                -	["keyword", "MEMORY"],
                -	["keyword", "NO-GAP"],
                -	["keyword", "OCCURS"],
                -	["keyword", "OPTION"],
                -	["keyword", "PERSON"],
                -	["keyword", "PLACES"],
                -	["keyword", "PUBLIC"],
                -	["keyword", "REDUCE"],
                -	["keyword", "REPORT"],
                -	["keyword", "RESULT"],
                -	["keyword", "SINGLE"],
                -	["keyword", "SORTED"],
                -	["keyword", "SWITCH"],
                -	["keyword", "SYNTAX"],
                -	["keyword", "TARGET"],
                -	["keyword", "VALUES"],
                -	["keyword", "WRITER"],
                -	["keyword", "ASSERT"],
                -	["keyword", "BLOCKS"],
                -	["keyword", "BOUNDS"],
                -	["keyword", "BUFFER"],
                -	["keyword", "CHANGE"],
                -	["keyword", "COLUMN"],
                -	["keyword", "COMMIT"],
                -	["keyword", "CONCAT"],
                -	["keyword", "COPIES"],
                -	["keyword", "CREATE"],
                -	["keyword", "DDMMYY"],
                -	["keyword", "DEFINE"],
                -	["keyword", "ENDIAN"],
                -	["keyword", "ESCAPE"],
                -	["keyword", "EXPAND"],
                -	["keyword", "KERNEL"],
                -	["keyword", "LAYOUT"],
                -	["keyword", "LEGACY"],
                -	["keyword", "LEVELS"],
                -	["keyword", "MMDDYY"],
                -	["keyword", "NUMBER"],
                -	["keyword", "OUTPUT"],
                -	["keyword", "RANGES"],
                -	["keyword", "READER"],
                -	["keyword", "RETURN"],
                -	["keyword", "SCREEN"],
                -	["keyword", "SEARCH"],
                -	["keyword", "SELECT"],
                -	["keyword", "SHARED"],
                -	["keyword", "SOURCE"],
                -	["keyword", "STABLE"],
                -	["keyword", "STATIC"],
                -	["keyword", "SUBKEY"],
                -	["keyword", "SUFFIX"],
                -	["keyword", "TABLES"],
                -	["keyword", "UNWIND"],
                -	["keyword", "YYMMDD"],
                -	["keyword", "ASSIGN"],
                -	["keyword", "BACKUP"],
                -	["keyword", "BEFORE"],
                -	["keyword", "BINARY"],
                -	["keyword", "BIT-OR"],
                -	["keyword", "BLANKS"],
                -	["keyword", "CLIENT"],
                -	["keyword", "CODING"],
                -	["keyword", "COMMON"],
                -	["keyword", "DEMAND"],
                -	["keyword", "DYNPRO"],
                -	["keyword", "EXCEPT"],
                -	["keyword", "EXISTS"],
                -	["keyword", "EXPORT"],
                -	["keyword", "FIELDS"],
                -	["keyword", "GLOBAL"],
                -	["keyword", "GROUPS"],
                -	["keyword", "LENGTH"],
                -	["keyword", "LOCALE"],
                -	["keyword", "MEDIUM"],
                -	["keyword", "METHOD"],
                -	["keyword", "MODIFY"],
                -	["keyword", "NESTED"],
                -	["keyword", "OTHERS"],
                -	["keyword", "REJECT"],
                -	["keyword", "SCROLL"],
                -	["keyword", "SUPPLY"],
                -	["keyword", "SYMBOL"],
                -	["keyword", "ENDFOR"],
                -	["keyword", "STRLEN"],
                -	["keyword", "ALIGN"],
                -	["keyword", "BEGIN"],
                -	["keyword", "BOUND"],
                -	["keyword", "ENDAT"],
                -	["keyword", "ENTRY"],
                -	["keyword", "EVENT"],
                -	["keyword", "FINAL"],
                -	["keyword", "FLUSH"],
                -	["keyword", "GRANT"],
                -	["keyword", "INNER"],
                -	["keyword", "SHORT"],
                -	["keyword", "USING"],
                -	["keyword", "WRITE"],
                -	["keyword", "AFTER"],
                -	["keyword", "BLACK"],
                -	["keyword", "BLOCK"],
                -	["keyword", "CLOCK"],
                -	["keyword", "COLOR"],
                -	["keyword", "COUNT"],
                -	["keyword", "DUMMY"],
                -	["keyword", "EMPTY"],
                -	["keyword", "ENDDO"],
                -	["keyword", "ENDON"],
                -	["keyword", "GREEN"],
                -	["keyword", "INDEX"],
                -	["keyword", "INOUT"],
                -	["keyword", "LEAVE"],
                -	["keyword", "LEVEL"],
                -	["keyword", "LINES"],
                -	["keyword", "MODIF"],
                -	["keyword", "ORDER"],
                -	["keyword", "OUTER"],
                -	["keyword", "RANGE"],
                -	["keyword", "RESET"],
                -	["keyword", "RETRY"],
                -	["keyword", "RIGHT"],
                -	["keyword", "SMART"],
                -	["keyword", "SPLIT"],
                -	["keyword", "STYLE"],
                -	["keyword", "TABLE"],
                -	["keyword", "THROW"],
                -	["keyword", "UNDER"],
                -	["keyword", "UNTIL"],
                -	["keyword", "UPPER"],
                -	["keyword", "UTF-8"],
                -	["keyword", "WHERE"],
                -	["keyword", "ALIAS"],
                -	["keyword", "BLANK"],
                -	["keyword", "CLEAR"],
                -	["keyword", "CLOSE"],
                -	["keyword", "EXACT"],
                -	["keyword", "FETCH"],
                -	["keyword", "FIRST"],
                -	["keyword", "FOUND"],
                -	["keyword", "GROUP"],
                -	["keyword", "LLANG"],
                -	["keyword", "LOCAL"],
                -	["keyword", "OTHER"],
                -	["keyword", "REGEX"],
                -	["keyword", "SPOOL"],
                -	["keyword", "TITLE"],
                -	["keyword", "TYPES"],
                -	["keyword", "VALID"],
                -	["keyword", "WHILE"],
                -	["keyword", "ALPHA"],
                -	["keyword", "BOXED"],
                -	["keyword", "CATCH"],
                -	["keyword", "CHAIN"],
                -	["keyword", "CHECK"],
                -	["keyword", "CLASS"],
                -	["keyword", "COVER"],
                -	["keyword", "ENDIF"],
                -	["keyword", "EQUIV"],
                -	["keyword", "FIELD"],
                -	["keyword", "FLOOR"],
                -	["keyword", "FRAME"],
                -	["keyword", "INPUT"],
                -	["keyword", "LOWER"],
                -	["keyword", "MATCH"],
                -	["keyword", "NODES"],
                -	["keyword", "PAGES"],
                -	["keyword", "PRINT"],
                -	["keyword", "RAISE"],
                -	["keyword", "ROUND"],
                -	["keyword", "SHIFT"],
                -	["keyword", "SPACE"],
                -	["keyword", "SPOTS"],
                -	["keyword", "STAMP"],
                -	["keyword", "STATE"],
                -	["keyword", "TASKS"],
                -	["keyword", "TIMES"],
                -	["keyword", "TRMAC"],
                -	["keyword", "ULINE"],
                -	["keyword", "UNION"],
                -	["keyword", "VALUE"],
                -	["keyword", "WIDTH"],
                -	["keyword", "EQUAL"],
                -	["keyword", "LOG10"],
                -	["keyword", "TRUNC"],
                -	["keyword", "BLOB"],
                -	["keyword", "CASE"],
                -	["keyword", "CEIL"],
                -	["keyword", "CLOB"],
                -	["keyword", "COND"],
                -	["keyword", "EXIT"],
                -	["keyword", "FILE"],
                -	["keyword", "GAPS"],
                -	["keyword", "HOLD"],
                -	["keyword", "INCL"],
                -	["keyword", "INTO"],
                -	["keyword", "KEEP"],
                -	["keyword", "KEYS"],
                -	["keyword", "LAST"],
                -	["keyword", "LINE"],
                -	["keyword", "LONG"],
                -	["keyword", "LPAD"],
                -	["keyword", "MAIL"],
                -	["keyword", "MODE"],
                -	["keyword", "OPEN"],
                -	["keyword", "PINK"],
                -	["keyword", "READ"],
                -	["keyword", "ROWS"],
                -	["keyword", "TEST"],
                -	["keyword", "THEN"],
                -	["keyword", "ZERO"],
                -	["keyword", "AREA"],
                -	["keyword", "BACK"],
                -	["keyword", "BADI"],
                -	["keyword", "BYTE"],
                -	["keyword", "CAST"],
                -	["keyword", "EDIT"],
                -	["keyword", "EXEC"],
                -	["keyword", "FAIL"],
                -	["keyword", "FIND"],
                -	["keyword", "FKEQ"],
                -	["keyword", "FONT"],
                -	["keyword", "FREE"],
                -	["keyword", "GKEQ"],
                -	["keyword", "HIDE"],
                -	["keyword", "INIT"],
                -	["keyword", "ITNO"],
                -	["keyword", "LATE"],
                -	["keyword", "LOOP"],
                -	["keyword", "MAIN"],
                -	["keyword", "MARK"],
                -	["keyword", "MOVE"],
                -	["keyword", "NEXT"],
                -	["keyword", "NULL"],
                -	["keyword", "RISK"],
                -	["keyword", "ROLE"],
                -	["keyword", "UNIT"],
                -	["keyword", "WAIT"],
                -	["keyword", "ZONE"],
                -	["keyword", "BASE"],
                -	["keyword", "CALL"],
                -	["keyword", "CODE"],
                -	["keyword", "DATA"],
                -	["keyword", "DATE"],
                -	["keyword", "FKGE"],
                -	["keyword", "GKGE"],
                -	["keyword", "HIGH"],
                -	["keyword", "KIND"],
                -	["keyword", "LEFT"],
                -	["keyword", "LIST"],
                -	["keyword", "MASK"],
                -	["keyword", "MESH"],
                -	["keyword", "NAME"],
                -	["keyword", "NODE"],
                -	["keyword", "PACK"],
                -	["keyword", "PAGE"],
                -	["keyword", "POOL"],
                -	["keyword", "SEND"],
                -	["keyword", "SIGN"],
                -	["keyword", "SIZE"],
                -	["keyword", "SOME"],
                -	["keyword", "STOP"],
                -	["keyword", "TASK"],
                -	["keyword", "TEXT"],
                -	["keyword", "TIME"],
                -	["keyword", "USER"],
                -	["keyword", "VARY"],
                -	["keyword", "WITH"],
                -	["keyword", "WORD"],
                -	["keyword", "BLUE"],
                -	["keyword", "CONV"],
                -	["keyword", "COPY"],
                -	["keyword", "DEEP"],
                -	["keyword", "ELSE"],
                -	["keyword", "FORM"],
                -	["keyword", "FROM"],
                -	["keyword", "HINT"],
                -	["keyword", "ICON"],
                -	["keyword", "JOIN"],
                -	["keyword", "LIKE"],
                -	["keyword", "LOAD"],
                -	["keyword", "ONLY"],
                -	["keyword", "PART"],
                -	["keyword", "SCAN"],
                -	["keyword", "SKIP"],
                -	["keyword", "SORT"],
                -	["keyword", "TYPE"],
                -	["keyword", "UNIX"],
                -	["keyword", "VIEW"],
                -	["keyword", "WHEN"],
                -	["keyword", "WORK"],
                -	["keyword", "ACOS"],
                -	["keyword", "ASIN"],
                -	["keyword", "ATAN"],
                -	["keyword", "COSH"],
                -	["keyword", "EACH"],
                -	["keyword", "FRAC"],
                -	["keyword", "LESS"],
                -	["keyword", "RTTI"],
                -	["keyword", "SINH"],
                -	["keyword", "SQRT"],
                -	["keyword", "TANH"],
                -	["keyword", "AVG"],
                -	["keyword", "BIT"],
                -	["keyword", "DIV"],
                -	["keyword", "ISO"],
                -	["keyword", "LET"],
                -	["keyword", "OUT"],
                -	["keyword", "PAD"],
                -	["keyword", "SQL"],
                -	["keyword", "ALL"],
                -	["keyword", "CI_"],
                -	["keyword", "CPI"],
                -	["keyword", "END"],
                -	["keyword", "LOB"],
                -	["keyword", "LPI"],
                -	["keyword", "MAX"],
                -	["keyword", "MIN"],
                -	["keyword", "NEW"],
                -	["keyword", "OLE"],
                -	["keyword", "RUN"],
                -	["keyword", "SET"],
                -	["keyword", "?TO"],
                -	["keyword", "YES"],
                -	["keyword", "ABS"],
                -	["keyword", "ADD"],
                -	["keyword", "AND"],
                -	["keyword", "BIG"],
                -	["keyword", "FOR"],
                -	["keyword", "HDB"],
                -	["keyword", "JOB"],
                -	["keyword", "LOW"],
                -	["keyword", "NOT"],
                -	["keyword", "SAP"],
                -	["keyword", "TRY"],
                -	["keyword", "VIA"],
                -	["keyword", "XML"],
                -	["keyword", "ANY"],
                -	["keyword", "GET"],
                -	["keyword", "IDS"],
                -	["keyword", "KEY"],
                -	["keyword", "MOD"],
                -	["keyword", "OFF"],
                -	["keyword", "PUT"],
                -	["keyword", "RAW"],
                -	["keyword", "RED"],
                -	["keyword", "REF"],
                -	["keyword", "SUM"],
                -	["keyword", "TAB"],
                -	["keyword", "XSD"],
                -	["keyword", "CNT"],
                -	["keyword", "COS"],
                -	["keyword", "EXP"],
                -	["keyword", "LOG"],
                -	["keyword", "SIN"],
                -	["keyword", "TAN"],
                -	["keyword", "XOR"],
                -	["keyword", "AT"],
                -	["keyword", "CO"],
                -	["keyword", "CP"],
                -	["keyword", "DO"],
                -	["keyword", "GT"],
                -	["keyword", "ID"],
                -	["keyword", "IF"],
                -	["keyword", "NS"],
                -	["keyword", "OR"],
                -	["keyword", "BT"],
                -	["keyword", "CA"],
                -	["keyword", "CS"],
                -	["keyword", "GE"],
                -	["keyword", "NA"],
                -	["keyword", "NB"],
                -	["keyword", "EQ"],
                -	["keyword", "IN"],
                -	["keyword", "LT"],
                -	["keyword", "NE"],
                -	["keyword", "NO"],
                -	["keyword", "OF"],
                -	["keyword", "ON"],
                -	["keyword", "PF"],
                -	["keyword", "TO"],
                -	["keyword", "AS"],
                -	["keyword", "BY"],
                -	["keyword", "CN"],
                -	["keyword", "IS"],
                -	["keyword", "LE"],
                -	["keyword", "NP"],
                -	["keyword", "UP"],
                -	["keyword", "E"],
                -	["keyword", "I"],
                -	["keyword", "M"],
                -	["keyword", "O"],
                -	["keyword", "Z"],
                -	["keyword", "C"],
                -	["keyword", "X"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/abap/number_feature.test b/node_modules/prismjs/tests/languages/abap/number_feature.test
                deleted file mode 100644
                index 0c9556e..0000000
                --- a/node_modules/prismjs/tests/languages/abap/number_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -0
                -42
                -123456789
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "0"],
                -	["number", "42"],
                -	["number", "123456789"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/abap/operator_feature.test b/node_modules/prismjs/tests/languages/abap/operator_feature.test
                deleted file mode 100644
                index 23cb4a0..0000000
                --- a/node_modules/prismjs/tests/languages/abap/operator_feature.test
                +++ /dev/null
                @@ -1,38 +0,0 @@
                -.
                -+ -
                -/ * **
                -< > <= >=
                -= ?= <>
                -
                -& &&
                -
                -a-b
                -a~b
                -a->b
                -a=>b
                -a|b
                -a{b}c
                -
                -----------------------------------------------------
                -
                -[
                -	["punctuation", "."],
                -	["operator", "+"], ["operator", "-"],
                -	["operator", "/"], ["operator", "*"], ["operator", "**"],
                -	["operator", "<"], ["operator", ">"], ["operator", "<="], ["operator", ">="],
                -	["operator", "="], ["operator", "?="], ["operator", "<>"],
                -
                -	["string-operator", "&"], ["string-operator", "&&"],
                -
                -	"\r\n\r\na", ["token-operator", "-"],
                -	"b\r\na", ["token-operator", "~"],
                -	"b\r\na", ["token-operator", "->"],
                -	"b\r\na", ["token-operator", "=>"],
                -	"b\r\na", ["token-operator", "|"],
                -	"b\r\na", ["token-operator", "{"], "b", ["token-operator", "}"], "c"
                -]
                -
                -----------------------------------------------------
                -
                -Checks for operators, string-operators and token-operators.
                -The leading dot serves only because tests are trimmed.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/abap/string-template_feature.test b/node_modules/prismjs/tests/languages/abap/string-template_feature.test
                deleted file mode 100644
                index 7979fbe..0000000
                --- a/node_modules/prismjs/tests/languages/abap/string-template_feature.test
                +++ /dev/null
                @@ -1,17 +0,0 @@
                -|foobar|
                -|foo\|b\{a}r|
                -|foo { bar } baz|
                -
                -----------------------------------------------------
                -
                -[
                -	["token-operator", "|"], ["string-template", "foobar"], ["token-operator", "|"],
                -	["token-operator", "|"], ["string-template", "foo\\|b\\{a}r"], ["token-operator", "|"],
                -	["token-operator", "|"], ["string-template", "foo "], ["token-operator", "{"],
                -	" bar ",
                -	["token-operator", "}"], ["string-template", " baz"], ["token-operator", "|"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for string templates.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/abap/string_feature.test b/node_modules/prismjs/tests/languages/abap/string_feature.test
                deleted file mode 100644
                index 808b027..0000000
                --- a/node_modules/prismjs/tests/languages/abap/string_feature.test
                +++ /dev/null
                @@ -1,21 +0,0 @@
                -''
                -'foo'
                -'foo\'bar'
                -``
                -`foo`
                -`foo\`bar`
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "''"],
                -	["string", "'foo'"],
                -	["string", "'foo\\'bar'"],
                -	["string", "``"],
                -	["string", "`foo`"],
                -	["string", "`foo\\`bar`"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/actionscript/keyword_feature.test b/node_modules/prismjs/tests/languages/actionscript/keyword_feature.test
                deleted file mode 100644
                index c41a852..0000000
                --- a/node_modules/prismjs/tests/languages/actionscript/keyword_feature.test
                +++ /dev/null
                @@ -1,71 +0,0 @@
                -as; break; case; catch; class;
                -const; default; delete; do; else;
                -extends; finally; for; function; if;
                -implements; import; in; instanceof; interface;
                -internal; is; native; new; null;
                -package; private; protected; public; return;
                -super; switch; this; throw; try;
                -typeof; use; var; void; while;
                -with; dynamic; each; final; get;
                -include; namespace; native; override; set;
                -static;
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "as"], ["punctuation", ";"],
                -	["keyword", "break"], ["punctuation", ";"],
                -	["keyword", "case"], ["punctuation", ";"],
                -	["keyword", "catch"], ["punctuation", ";"],
                -	["keyword", "class"], ["punctuation", ";"],
                -	["keyword", "const"], ["punctuation", ";"],
                -	["keyword", "default"], ["punctuation", ";"],
                -	["keyword", "delete"], ["punctuation", ";"],
                -	["keyword", "do"], ["punctuation", ";"],
                -	["keyword", "else"], ["punctuation", ";"],
                -	["keyword", "extends"], ["punctuation", ";"],
                -	["keyword", "finally"], ["punctuation", ";"],
                -	["keyword", "for"], ["punctuation", ";"],
                -	["keyword", "function"], ["punctuation", ";"],
                -	["keyword", "if"], ["punctuation", ";"],
                -	["keyword", "implements"], ["punctuation", ";"],
                -	["keyword", "import"], ["punctuation", ";"],
                -	["keyword", "in"], ["punctuation", ";"],
                -	["keyword", "instanceof"], ["punctuation", ";"],
                -	["keyword", "interface"], ["punctuation", ";"],
                -	["keyword", "internal"], ["punctuation", ";"],
                -	["keyword", "is"], ["punctuation", ";"],
                -	["keyword", "native"], ["punctuation", ";"],
                -	["keyword", "new"], ["punctuation", ";"],
                -	["keyword", "null"], ["punctuation", ";"],
                -	["keyword", "package"], ["punctuation", ";"],
                -	["keyword", "private"], ["punctuation", ";"],
                -	["keyword", "protected"], ["punctuation", ";"],
                -	["keyword", "public"], ["punctuation", ";"],
                -	["keyword", "return"], ["punctuation", ";"],
                -	["keyword", "super"], ["punctuation", ";"],
                -	["keyword", "switch"], ["punctuation", ";"],
                -	["keyword", "this"], ["punctuation", ";"],
                -	["keyword", "throw"], ["punctuation", ";"],
                -	["keyword", "try"], ["punctuation", ";"],
                -	["keyword", "typeof"], ["punctuation", ";"],
                -	["keyword", "use"], ["punctuation", ";"],
                -	["keyword", "var"], ["punctuation", ";"],
                -	["keyword", "void"], ["punctuation", ";"],
                -	["keyword", "while"], ["punctuation", ";"],
                -	["keyword", "with"], ["punctuation", ";"],
                -	["keyword", "dynamic"], ["punctuation", ";"],
                -	["keyword", "each"], ["punctuation", ";"],
                -	["keyword", "final"], ["punctuation", ";"],
                -	["keyword", "get"], ["punctuation", ";"],
                -	["keyword", "include"], ["punctuation", ";"],
                -	["keyword", "namespace"], ["punctuation", ";"],
                -	["keyword", "native"], ["punctuation", ";"],
                -	["keyword", "override"], ["punctuation", ";"],
                -	["keyword", "set"], ["punctuation", ";"],
                -	["keyword", "static"], ["punctuation", ";"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/actionscript/operator_feature.test b/node_modules/prismjs/tests/languages/actionscript/operator_feature.test
                deleted file mode 100644
                index 14c007c..0000000
                --- a/node_modules/prismjs/tests/languages/actionscript/operator_feature.test
                +++ /dev/null
                @@ -1,29 +0,0 @@
                -+ - * / % ^
                -+= -= *= /= %= ^=
                -& && | ||
                -&= &&= |= ||=
                -< << > >> >>>
                -<= <<= >= >>= >>>=
                -! != = ==
                -!== ===
                -~ ? @
                -++ --
                -
                -----------------------------------------------------
                -
                -[
                -	["operator", "+"], ["operator", "-"], ["operator", "*"], ["operator", "/"], ["operator", "%"], ["operator", "^"],
                -	["operator", "+="], ["operator", "-="], ["operator", "*="], ["operator", "/="], ["operator", "%="], ["operator", "^="],
                -	["operator", "&"], ["operator", "&&"], ["operator", "|"], ["operator", "||"],
                -	["operator", "&="], ["operator", "&&="], ["operator", "|="], ["operator", "||="],
                -	["operator", "<"], ["operator", "<<"], ["operator", ">"], ["operator", ">>"], ["operator", ">>>"],
                -	["operator", "<="], ["operator", "<<="], ["operator", ">="], ["operator", ">>="], ["operator", ">>>="],
                -	["operator", "!"], ["operator", "!="], ["operator", "="], ["operator", "=="],
                -	["operator", "!=="], ["operator", "==="],
                -	["operator", "~"], ["operator", "?"], ["operator", "@"],
                -	["operator", "++"], ["operator", "--"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all operators.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/ada/attr-name_feature.test b/node_modules/prismjs/tests/languages/ada/attr-name_feature.test
                deleted file mode 100644
                index c30a2f5..0000000
                --- a/node_modules/prismjs/tests/languages/ada/attr-name_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -Integer'Size
                -Character'Val
                -
                -----------------------------------------------------
                -
                -[
                -	["variable", "Integer"], ["attr-name", "'Size"],
                -	["variable", "Character"], ["attr-name", "'Val"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for attributes.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/ada/boolean_feature.test b/node_modules/prismjs/tests/languages/ada/boolean_feature.test
                deleted file mode 100644
                index 4019c44..0000000
                --- a/node_modules/prismjs/tests/languages/ada/boolean_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -true
                -false
                -
                -----------------------------------------------------
                -
                -[
                -	["boolean", "true"],
                -	["boolean", "false"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for booleans.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/ada/char_feature.test b/node_modules/prismjs/tests/languages/ada/char_feature.test
                deleted file mode 100644
                index 145f2ce..0000000
                --- a/node_modules/prismjs/tests/languages/ada/char_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -'f'
                -'A'
                -
                -----------------------------------------------------
                -
                -[
                -	["char", "'f'"],
                -	["char", "'A'"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for chars.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/ada/comment_feature.test b/node_modules/prismjs/tests/languages/ada/comment_feature.test
                deleted file mode 100644
                index adf3e0c..0000000
                --- a/node_modules/prismjs/tests/languages/ada/comment_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                ---
                --- Foo bar
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "--"],
                -	["comment", "-- Foo bar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/ada/keyword_feature.test b/node_modules/prismjs/tests/languages/ada/keyword_feature.test
                deleted file mode 100644
                index e5c815f..0000000
                --- a/node_modules/prismjs/tests/languages/ada/keyword_feature.test
                +++ /dev/null
                @@ -1,153 +0,0 @@
                -abort
                -abs
                -abstract
                -accept
                -access
                -aliased
                -all
                -and
                -array
                -at
                -begin
                -body
                -case
                -constant
                -declare
                -delay
                -delta
                -digits
                -do
                -else
                -new
                -return
                -elsif
                -end
                -entry
                -exception
                -exit
                -for
                -function
                -generic
                -goto
                -if
                -in
                -interface
                -is
                -limited
                -loop
                -mod
                -not
                -null
                -of
                -others
                -out
                -overriding
                -package
                -pragma
                -private
                -procedure
                -protected
                -raise
                -range
                -record
                -rem
                -renames
                -requeue
                -reverse
                -select
                -separate
                -some
                -subtype
                -synchronized
                -tagged
                -task
                -terminate
                -then
                -type
                -until
                -use
                -when
                -while
                -with
                -xor
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "abort"],
                -	["keyword", "abs"],
                -	["keyword", "abstract"],
                -	["keyword", "accept"],
                -	["keyword", "access"],
                -	["keyword", "aliased"],
                -	["keyword", "all"],
                -	["keyword", "and"],
                -	["keyword", "array"],
                -	["keyword", "at"],
                -	["keyword", "begin"],
                -	["keyword", "body"],
                -	["keyword", "case"],
                -	["keyword", "constant"],
                -	["keyword", "declare"],
                -	["keyword", "delay"],
                -	["keyword", "delta"],
                -	["keyword", "digits"],
                -	["keyword", "do"],
                -	["keyword", "else"],
                -	["keyword", "new"],
                -	["keyword", "return"],
                -	["keyword", "elsif"],
                -	["keyword", "end"],
                -	["keyword", "entry"],
                -	["keyword", "exception"],
                -	["keyword", "exit"],
                -	["keyword", "for"],
                -	["keyword", "function"],
                -	["keyword", "generic"],
                -	["keyword", "goto"],
                -	["keyword", "if"],
                -	["keyword", "in"],
                -	["keyword", "interface"],
                -	["keyword", "is"],
                -	["keyword", "limited"],
                -	["keyword", "loop"],
                -	["keyword", "mod"],
                -	["keyword", "not"],
                -	["keyword", "null"],
                -	["keyword", "of"],
                -	["keyword", "others"],
                -	["keyword", "out"],
                -	["keyword", "overriding"],
                -	["keyword", "package"],
                -	["keyword", "pragma"],
                -	["keyword", "private"],
                -	["keyword", "procedure"],
                -	["keyword", "protected"],
                -	["keyword", "raise"],
                -	["keyword", "range"],
                -	["keyword", "record"],
                -	["keyword", "rem"],
                -	["keyword", "renames"],
                -	["keyword", "requeue"],
                -	["keyword", "reverse"],
                -	["keyword", "select"],
                -	["keyword", "separate"],
                -	["keyword", "some"],
                -	["keyword", "subtype"],
                -	["keyword", "synchronized"],
                -	["keyword", "tagged"],
                -	["keyword", "task"],
                -	["keyword", "terminate"],
                -	["keyword", "then"],
                -	["keyword", "type"],
                -	["keyword", "until"],
                -	["keyword", "use"],
                -	["keyword", "when"],
                -	["keyword", "while"],
                -	["keyword", "with"],
                -	["keyword", "xor"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/ada/number_feature.test b/node_modules/prismjs/tests/languages/ada/number_feature.test
                deleted file mode 100644
                index a27f1af..0000000
                --- a/node_modules/prismjs/tests/languages/ada/number_feature.test
                +++ /dev/null
                @@ -1,21 +0,0 @@
                -42
                -42_000
                -3.14_15_9
                -0.4E+123_456
                -3.7e-7
                -1_6#Bad_Face#E-32_1
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "42"],
                -	["number", "42_000"],
                -	["number", "3.14_15_9"],
                -	["number", "0.4E+123_456"],
                -	["number", "3.7e-7"],
                -	["number", "1_6#Bad_Face#E-32_1"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/ada/operator_feature.test b/node_modules/prismjs/tests/languages/ada/operator_feature.test
                deleted file mode 100644
                index 21a3137..0000000
                --- a/node_modules/prismjs/tests/languages/ada/operator_feature.test
                +++ /dev/null
                @@ -1,23 +0,0 @@
                -<>
                -=> :=
                -< <=
                -> >=
                -= /=
                -& + -
                -* ** /
                -
                -----------------------------------------------------
                -
                -[
                -	["operator", "<>"],
                -	["operator", "=>"], ["operator", ":="],
                -	["operator", "<"], ["operator", "<="],
                -	["operator", ">"], ["operator", ">="],
                -	["operator", "="], ["operator", "/="],
                -	["operator", "&"], ["operator", "+"], ["operator", "-"],
                -	["operator", "*"], ["operator", "**"], ["operator", "/"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for operators.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/ada/string_feature.test b/node_modules/prismjs/tests/languages/ada/string_feature.test
                deleted file mode 100644
                index c44e9cd..0000000
                --- a/node_modules/prismjs/tests/languages/ada/string_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -""
                -"Foo""bar"""
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "\"\""],
                -	["string", "\"Foo\"\"bar\"\"\""]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/ada/variable_feature.test b/node_modules/prismjs/tests/languages/ada/variable_feature.test
                deleted file mode 100644
                index f47a4fc..0000000
                --- a/node_modules/prismjs/tests/languages/ada/variable_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -Byte
                -foo_bar42
                -
                -----------------------------------------------------
                -
                -[
                -	["variable", "Byte"],
                -	["variable", "foo_bar42"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for variables.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apacheconf/comment_feature.test b/node_modules/prismjs/tests/languages/apacheconf/comment_feature.test
                deleted file mode 100644
                index bde2288..0000000
                --- a/node_modules/prismjs/tests/languages/apacheconf/comment_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -#foo
                -# bar
                -# Redirect 301 /2006/oldfile.html http://subdomain.domain.tld/newfile.html
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "#foo"],
                -	["comment", "# bar"],
                -	["comment", "# Redirect 301 /2006/oldfile.html http://subdomain.domain.tld/newfile.html"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apacheconf/directive-block_feature.test b/node_modules/prismjs/tests/languages/apacheconf/directive-block_feature.test
                deleted file mode 100644
                index 1af6add..0000000
                --- a/node_modules/prismjs/tests/languages/apacheconf/directive-block_feature.test
                +++ /dev/null
                @@ -1,469 +0,0 @@
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -----------------------------------------------------
                -
                -[
                -	["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"AuthnProviderAlias"
                -		]],
                -		["directive-block-parameter", [
                -			" file file2"
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -		["directive-block", [
                -			["punctuation", ""]
                -	]],
                -
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", "<"],
                -            "AuthzProviderAlias"
                -        ]],
                -        ["directive-block-parameter", [
                -            " ldap-group ldap-group-alias1 ",
                -            ["string", [
                -                "\"cn=my-group,o=ctx\""
                -            ]]
                -        ]],
                -        ["punctuation", ">"]
                -    ]],
                -    ["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"Directory"
                -		]],
                -		["directive-block-parameter", [
                -			["string", [
                -				"\"/webpages/secure\""
                -			]]
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"DirectoryMatch"
                -		]],
                -		["directive-block-parameter", [
                -			["string", [
                -				"\"^/www/(.+/)?[0-9]{3}\""
                -			]]
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"Else"
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"ElseIf"
                -		]],
                -		["directive-block-parameter", [
                -			["string", [
                -				"\"-R '10.0.0.0/8'\""
                -			]]
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"Files"
                -		]],
                -		["directive-block-parameter", [
                -			" ~ ",
                -			["string", [
                -				"\"\\.(gif|jpe?g|png)$\""
                -			]]
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"FilesMatch"
                -		]],
                -		["directive-block-parameter", [
                -			["string", [
                -				"\".+\\.(gif|jpe?g|png)$\""
                -			]]
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"If"
                -		]],
                -		["directive-block-parameter", [
                -			["string", [
                -				"\"-z req('Host')\""
                -			]]
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"IfDefine"
                -		]],
                -		["directive-block-parameter", [
                -			" !MemCache"
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"IfModule"
                -		]],
                -		["directive-block-parameter", [
                -			" mod_rewrite.c"
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"IfVersion"
                -		]],
                -		["directive-block-parameter", [
                -			" 2.1.0"
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"Limit"
                -		]],
                -		["directive-block-parameter", [
                -			" POST PUT DELETE"
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"LimitExcept"
                -		]],
                -		["directive-block-parameter", [
                -			" POST GET"
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"Location"
                -		]],
                -		["directive-block-parameter", [
                -			" /private1"
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"LocationMatch"
                -		]],
                -		["directive-block-parameter", [
                -			["string", [
                -				"\"/(extra|special)/data\""
                -			]]
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"Macro"
                -		]],
                -		["directive-block-parameter", [
                -			" LocalAccessPolicy"
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"Proxy"
                -		]],
                -		["directive-block-parameter", [
                -			["string", [
                -				"\"*\""
                -			]]
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"RequireAll"
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"RequireAny"
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"RequireNone"
                -		]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]],
                -
                -    ["directive-block", [
                -		["directive-block", [
                -			["punctuation", "<"],
                -			"VirtualHost"
                -		]],
                -		["directive-block-parameter", [
                -			" [2001",
                -            ["punctuation", ":"],
                -            "db8",
                -            ["punctuation", ":"],
                -            ["punctuation", ":"],
                -            "a00",
                -            ["punctuation", ":"],
                -            "20ff",
                -            ["punctuation", ":"],
                -            "fea7",
                -            ["punctuation", ":"],
                -            "ccea]",
                -            ["punctuation", ":"],
                -            "80"
                -        ]],
                -		["punctuation", ">"]
                -	]],
                -	["directive-block", [
                -        ["directive-block", [
                -            ["punctuation", ""]
                -    ]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for directive blocks.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apacheconf/directive-flags_feature.test b/node_modules/prismjs/tests/languages/apacheconf/directive-flags_feature.test
                deleted file mode 100644
                index 0bb206e..0000000
                --- a/node_modules/prismjs/tests/languages/apacheconf/directive-flags_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -[OR]
                -[L,QSA]
                -
                -----------------------------------------------------
                -
                -[
                -	["directive-flags", "[OR]"],
                -	["directive-flags", "[L,QSA]"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for directive flags.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apacheconf/directive-inline_feature.test b/node_modules/prismjs/tests/languages/apacheconf/directive-inline_feature.test
                deleted file mode 100644
                index 6b4df43..0000000
                --- a/node_modules/prismjs/tests/languages/apacheconf/directive-inline_feature.test
                +++ /dev/null
                @@ -1,1163 +0,0 @@
                -AcceptFilter
                -AcceptPathInfo
                -AccessFileName
                -Action
                -AddAlt
                -AddAltByEncoding
                -AddAltByType
                -AddCharset
                -AddDefaultCharset
                -AddDescription
                -AddEncoding
                -AddHandler
                -AddIcon
                -AddIconByEncoding
                -AddIconByType
                -AddInputFilter
                -AddLanguage
                -AddModuleInfo
                -AddOutputFilter
                -AddOutputFilterByType
                -AddType
                -Alias
                -AliasMatch
                -Allow
                -AllowCONNECT
                -AllowEncodedSlashes
                -AllowMethods
                -AllowOverride
                -AllowOverrideList
                -Anonymous
                -Anonymous_LogEmail
                -Anonymous_MustGiveEmail
                -Anonymous_NoUserID
                -Anonymous_VerifyEmail
                -AsyncRequestWorkerFactor
                -AuthBasicAuthoritative
                -AuthBasicFake
                -AuthBasicProvider
                -AuthBasicUseDigestAlgorithm
                -AuthDBDUserPWQuery
                -AuthDBDUserRealmQuery
                -AuthDBMGroupFile
                -AuthDBMType
                -AuthDBMUserFile
                -AuthDigestAlgorithm
                -AuthDigestDomain
                -AuthDigestNonceLifetime
                -AuthDigestProvider
                -AuthDigestQop
                -AuthDigestShmemSize
                -AuthFormAuthoritative
                -AuthFormBody
                -AuthFormDisableNoStore
                -AuthFormFakeBasicAuth
                -AuthFormLocation
                -AuthFormLoginRequiredLocation
                -AuthFormLoginSuccessLocation
                -AuthFormLogoutLocation
                -AuthFormMethod
                -AuthFormMimetype
                -AuthFormPassword
                -AuthFormProvider
                -AuthFormSitePassphrase
                -AuthFormSize
                -AuthFormUsername
                -AuthGroupFile
                -AuthLDAPAuthorizePrefix
                -AuthLDAPBindAuthoritative
                -AuthLDAPBindDN
                -AuthLDAPBindPassword
                -AuthLDAPCharsetConfig
                -AuthLDAPCompareAsUser
                -AuthLDAPCompareDNOnServer
                -AuthLDAPDereferenceAliases
                -AuthLDAPGroupAttribute
                -AuthLDAPGroupAttributeIsDN
                -AuthLDAPInitialBindAsUser
                -AuthLDAPInitialBindPattern
                -AuthLDAPMaxSubGroupDepth
                -AuthLDAPRemoteUserAttribute
                -AuthLDAPRemoteUserIsDN
                -AuthLDAPSearchAsUser
                -AuthLDAPSubGroupAttribute
                -AuthLDAPSubGroupClass
                -AuthLDAPUrl
                -AuthMerging
                -AuthName
                -AuthnCacheContext
                -AuthnCacheEnable
                -AuthnCacheProvideFor
                -AuthnCacheSOCache
                -AuthnCacheTimeout
                -AuthnzFcgiCheckAuthnProvider
                -AuthnzFcgiDefineProvider
                -AuthType
                -AuthUserFile
                -AuthzDBDLoginToReferer
                -AuthzDBDQuery
                -AuthzDBDRedirectQuery
                -AuthzDBMType
                -AuthzSendForbiddenOnFailure
                -BalancerGrowth
                -BalancerInherit
                -BalancerMember
                -BalancerPersist
                -BrowserMatch
                -BrowserMatchNoCase
                -BufferedLogs
                -BufferSize
                -CacheDefaultExpire
                -CacheDetailHeader
                -CacheDirLength
                -CacheDirLevels
                -CacheDisable
                -CacheEnable
                -CacheFile
                -CacheHeader
                -CacheIgnoreCacheControl
                -CacheIgnoreHeaders
                -CacheIgnoreNoLastMod
                -CacheIgnoreQueryString
                -CacheIgnoreURLSessionIdentifiers
                -CacheKeyBaseURL
                -CacheLastModifiedFactor
                -CacheLock
                -CacheLockMaxAge
                -CacheLockPath
                -CacheMaxExpire
                -CacheMaxFileSize
                -CacheMinExpire
                -CacheMinFileSize
                -CacheNegotiatedDocs
                -CacheQuickHandler
                -CacheReadSize
                -CacheReadTime
                -CacheRoot
                -CacheSocache
                -CacheSocacheMaxSize
                -CacheSocacheMaxTime
                -CacheSocacheMinTime
                -CacheSocacheReadSize
                -CacheSocacheReadTime
                -CacheStaleOnError
                -CacheStoreExpired
                -CacheStoreNoStore
                -CacheStorePrivate
                -CGIDScriptTimeout
                -CGIMapExtension
                -CharsetDefault
                -CharsetOptions
                -CharsetSourceEnc
                -CheckCaseOnly
                -CheckSpelling
                -ChrootDir
                -ContentDigest
                -CookieDomain
                -CookieExpires
                -CookieName
                -CookieStyle
                -CookieTracking
                -CoreDumpDirectory
                -CustomLog
                -Dav
                -DavDepthInfinity
                -DavGenericLockDB
                -DavLockDB
                -DavMinTimeout
                -DBDExptime
                -DBDInitSQL
                -DBDKeep
                -DBDMax
                -DBDMin
                -DBDParams
                -DBDPersist
                -DBDPrepareSQL
                -DBDriver
                -DefaultIcon
                -DefaultLanguage
                -DefaultRuntimeDir
                -DefaultType
                -Define
                -DeflateBufferSize
                -DeflateCompressionLevel
                -DeflateFilterNote
                -DeflateInflateLimitRequestBody
                -DeflateInflateRatioBurst
                -DeflateInflateRatioLimit
                -DeflateMemLevel
                -DeflateWindowSize
                -Deny
                -DirectoryCheckHandler
                -DirectoryIndex
                -DirectoryIndexRedirect
                -DirectorySlash
                -DocumentRoot
                -DTracePrivileges
                -DumpIOInput
                -DumpIOOutput
                -EnableExceptionHook
                -EnableMMAP
                -EnableSendfile
                -Error
                -ErrorDocument
                -ErrorLog
                -ErrorLogFormat
                -Example
                -ExpiresActive
                -ExpiresByType
                -ExpiresDefault
                -ExtendedStatus
                -ExtFilterDefine
                -ExtFilterOptions
                -FallbackResource
                -FileETag
                -FilterChain
                -FilterDeclare
                -FilterProtocol
                -FilterProvider
                -FilterTrace
                -ForceLanguagePriority
                -ForceType
                -ForensicLog
                -GprofDir
                -GracefulShutdownTimeout
                -Group
                -Header
                -HeaderName
                -HeartbeatAddress
                -HeartbeatListen
                -HeartbeatMaxServers
                -HeartbeatStorage
                -HeartbeatStorage
                -HostnameLookups
                -IdentityCheck
                -IdentityCheckTimeout
                -ImapBase
                -ImapDefault
                -ImapMenu
                -Include
                -IncludeOptional
                -IndexHeadInsert
                -IndexIgnore
                -IndexIgnoreReset
                -IndexOptions
                -IndexOrderDefault
                -IndexStyleSheet
                -InputSed
                -ISAPIAppendLogToErrors
                -ISAPIAppendLogToQuery
                -ISAPICacheFile
                -ISAPIFakeAsync
                -ISAPILogNotSupported
                -ISAPIReadAheadBuffer
                -KeepAlive
                -KeepAliveTimeout
                -KeptBodySize
                -LanguagePriority
                -LDAPCacheEntries
                -LDAPCacheTTL
                -LDAPConnectionPoolTTL
                -LDAPConnectionTimeout
                -LDAPLibraryDebug
                -LDAPOpCacheEntries
                -LDAPOpCacheTTL
                -LDAPReferralHopLimit
                -LDAPReferrals
                -LDAPRetries
                -LDAPRetryDelay
                -LDAPSharedCacheFile
                -LDAPSharedCacheSize
                -LDAPTimeout
                -LDAPTrustedClientCert
                -LDAPTrustedGlobalCert
                -LDAPTrustedMode
                -LDAPVerifyServerCert
                -LimitInternalRecursion
                -LimitRequestBody
                -LimitRequestFields
                -LimitRequestFieldSize
                -LimitRequestLine
                -LimitXMLRequestBody
                -Listen
                -ListenBackLog
                -LoadFile
                -LoadModule
                -LogFormat
                -LogLevel
                -LogMessage
                -LuaAuthzProvider
                -LuaCodeCache
                -LuaHookAccessChecker
                -LuaHookAuthChecker
                -LuaHookCheckUserID
                -LuaHookFixups
                -LuaHookInsertFilter
                -LuaHookLog
                -LuaHookMapToStorage
                -LuaHookTranslateName
                -LuaHookTypeChecker
                -LuaInherit
                -LuaInputFilter
                -LuaMapHandler
                -LuaOutputFilter
                -LuaPackageCPath
                -LuaPackagePath
                -LuaQuickHandler
                -LuaRoot
                -LuaScope
                -MaxConnectionsPerChild
                -MaxKeepAliveRequests
                -MaxMemFree
                -MaxRangeOverlaps
                -MaxRangeReversals
                -MaxRanges
                -MaxRequestWorkers
                -MaxSpareServers
                -MaxSpareThreads
                -MaxThreads
                -MergeTrailers
                -MetaDir
                -MetaFiles
                -MetaSuffix
                -MimeMagicFile
                -MinSpareServers
                -MinSpareThreads
                -MMapFile
                -ModemStandard
                -ModMimeUsePathInfo
                -MultiviewsMatch
                -Mutex
                -NameVirtualHost
                -NoProxy
                -NWSSLTrustedCerts
                -NWSSLUpgradeable
                -Options
                -Order
                -OutputSed
                -PassEnv
                -PidFile
                -PrivilegesMode
                -Protocol
                -ProtocolEcho
                -ProxyAddHeaders
                -ProxyBadHeader
                -ProxyBlock
                -ProxyDomain
                -ProxyErrorOverride
                -ProxyExpressDBMFile
                -ProxyExpressDBMType
                -ProxyExpressEnable
                -ProxyFtpDirCharset
                -ProxyFtpEscapeWildcards
                -ProxyFtpListOnWildcard
                -ProxyHTMLBufSize
                -ProxyHTMLCharsetOut
                -ProxyHTMLDocType
                -ProxyHTMLEnable
                -ProxyHTMLEvents
                -ProxyHTMLExtended
                -ProxyHTMLFixups
                -ProxyHTMLInterp
                -ProxyHTMLLinks
                -ProxyHTMLMeta
                -ProxyHTMLStripComments
                -ProxyHTMLURLMap
                -ProxyIOBufferSize
                -ProxyMaxForwards
                -ProxyPass
                -ProxyPassInherit
                -ProxyPassInterpolateEnv
                -ProxyPassMatch
                -ProxyPassReverse
                -ProxyPassReverseCookieDomain
                -ProxyPassReverseCookiePath
                -ProxyPreserveHost
                -ProxyReceiveBufferSize
                -ProxyRemote
                -ProxyRemoteMatch
                -ProxyRequests
                -ProxySCGIInternalRedirect
                -ProxySCGISendfile
                -ProxySet
                -ProxySourceAddress
                -ProxyStatus
                -ProxyTimeout
                -ProxyVia
                -ReadmeName
                -ReceiveBufferSize
                -Redirect
                -RedirectMatch
                -RedirectPermanent
                -RedirectTemp
                -ReflectorHeader
                -RemoteIPHeader
                -RemoteIPInternalProxy
                -RemoteIPInternalProxyList
                -RemoteIPProxiesHeader
                -RemoteIPTrustedProxy
                -RemoteIPTrustedProxyList
                -RemoveCharset
                -RemoveEncoding
                -RemoveHandler
                -RemoveInputFilter
                -RemoveLanguage
                -RemoveOutputFilter
                -RemoveType
                -RequestHeader
                -RequestReadTimeout
                -Require
                -RewriteBase
                -RewriteCond
                -RewriteEngine
                -RewriteMap
                -RewriteOptions
                -RewriteRule
                -RLimitCPU
                -RLimitMEM
                -RLimitNPROC
                -Satisfy
                -ScoreBoardFile
                -Script
                -ScriptAlias
                -ScriptAliasMatch
                -ScriptInterpreterSource
                -ScriptLog
                -ScriptLogBuffer
                -ScriptLogLength
                -ScriptSock
                -SecureListen
                -SeeRequestTail
                -SendBufferSize
                -ServerAdmin
                -ServerAlias
                -ServerLimit
                -ServerName
                -ServerPath
                -ServerRoot
                -ServerSignature
                -ServerTokens
                -Session
                -SessionCookieName
                -SessionCookieName2
                -SessionCookieRemove
                -SessionCryptoCipher
                -SessionCryptoDriver
                -SessionCryptoPassphrase
                -SessionCryptoPassphraseFile
                -SessionDBDCookieName
                -SessionDBDCookieName2
                -SessionDBDCookieRemove
                -SessionDBDDeleteLabel
                -SessionDBDInsertLabel
                -SessionDBDPerUser
                -SessionDBDSelectLabel
                -SessionDBDUpdateLabel
                -SessionEnv
                -SessionExclude
                -SessionHeader
                -SessionInclude
                -SessionMaxAge
                -SetEnv
                -SetEnvIf
                -SetEnvIfExpr
                -SetEnvIfNoCase
                -SetHandler
                -SetInputFilter
                -SetOutputFilter
                -SSIEndTag
                -SSIErrorMsg
                -SSIETag
                -SSILastModified
                -SSILegacyExprParser
                -SSIStartTag
                -SSITimeFormat
                -SSIUndefinedEcho
                -SSLCACertificateFile
                -SSLCACertificatePath
                -SSLCADNRequestFile
                -SSLCADNRequestPath
                -SSLCARevocationCheck
                -SSLCARevocationFile
                -SSLCARevocationPath
                -SSLCertificateChainFile
                -SSLCertificateFile
                -SSLCertificateKeyFile
                -SSLCipherSuite
                -SSLCompression
                -SSLCryptoDevice
                -SSLEngine
                -SSLFIPS
                -SSLHonorCipherOrder
                -SSLInsecureRenegotiation
                -SSLOCSPDefaultResponder
                -SSLOCSPEnable
                -SSLOCSPOverrideResponder
                -SSLOCSPResponderTimeout
                -SSLOCSPResponseMaxAge
                -SSLOCSPResponseTimeSkew
                -SSLOCSPUseRequestNonce
                -SSLOpenSSLConfCmd
                -SSLOptions
                -SSLPassPhraseDialog
                -SSLProtocol
                -SSLProxyCACertificateFile
                -SSLProxyCACertificatePath
                -SSLProxyCARevocationCheck
                -SSLProxyCARevocationFile
                -SSLProxyCARevocationPath
                -SSLProxyCheckPeerCN
                -SSLProxyCheckPeerExpire
                -SSLProxyCheckPeerName
                -SSLProxyCipherSuite
                -SSLProxyEngine
                -SSLProxyMachineCertificateChainFile
                -SSLProxyMachineCertificateFile
                -SSLProxyMachineCertificatePath
                -SSLProxyProtocol
                -SSLProxyVerify
                -SSLProxyVerifyDepth
                -SSLRandomSeed
                -SSLRenegBufferSize
                -SSLRequire
                -SSLRequireSSL
                -SSLSessionCache
                -SSLSessionCacheTimeout
                -SSLSessionTicketKeyFile
                -SSLSRPUnknownUserSeed
                -SSLSRPVerifierFile
                -SSLStaplingCache
                -SSLStaplingErrorCacheTimeout
                -SSLStaplingFakeTryLater
                -SSLStaplingForceURL
                -SSLStaplingResponderTimeout
                -SSLStaplingResponseMaxAge
                -SSLStaplingResponseTimeSkew
                -SSLStaplingReturnResponderErrors
                -SSLStaplingStandardCacheTimeout
                -SSLStrictSNIVHostCheck
                -SSLUserName
                -SSLUseStapling
                -SSLVerifyClient
                -SSLVerifyDepth
                -StartServers
                -StartThreads
                -Substitute
                -Suexec
                -SuexecUserGroup
                -ThreadLimit
                -ThreadsPerChild
                -ThreadStackSize
                -TimeOut
                -TraceEnable
                -TransferLog
                -TypesConfig
                -UnDefine
                -UndefMacro
                -UnsetEnv
                -Use
                -UseCanonicalName
                -UseCanonicalPhysicalPort
                -User
                -UserDir
                -VHostCGIMode
                -VHostCGIPrivs
                -VHostGroup
                -VHostPrivs
                -VHostSecure
                -VHostUser
                -VirtualDocumentRoot
                -VirtualDocumentRootIP
                -VirtualScriptAlias
                -VirtualScriptAliasIP
                -WatchdogInterval
                -XBitHack
                -xml2EncAlias
                -xml2EncDefault
                -xml2StartParse
                -
                -----------------------------------------------------
                -
                -[
                -	["directive-inline", "AcceptFilter"],
                -	["directive-inline", "AcceptPathInfo"],
                -	["directive-inline", "AccessFileName"],
                -	["directive-inline", "Action"],
                -	["directive-inline", "AddAlt"],
                -	["directive-inline", "AddAltByEncoding"],
                -	["directive-inline", "AddAltByType"],
                -	["directive-inline", "AddCharset"],
                -	["directive-inline", "AddDefaultCharset"],
                -	["directive-inline", "AddDescription"],
                -	["directive-inline", "AddEncoding"],
                -	["directive-inline", "AddHandler"],
                -	["directive-inline", "AddIcon"],
                -	["directive-inline", "AddIconByEncoding"],
                -	["directive-inline", "AddIconByType"],
                -	["directive-inline", "AddInputFilter"],
                -	["directive-inline", "AddLanguage"],
                -	["directive-inline", "AddModuleInfo"],
                -	["directive-inline", "AddOutputFilter"],
                -	["directive-inline", "AddOutputFilterByType"],
                -	["directive-inline", "AddType"],
                -	["directive-inline", "Alias"],
                -	["directive-inline", "AliasMatch"],
                -	["directive-inline", "Allow"],
                -	["directive-inline", "AllowCONNECT"],
                -	["directive-inline", "AllowEncodedSlashes"],
                -	["directive-inline", "AllowMethods"],
                -	["directive-inline", "AllowOverride"],
                -	["directive-inline", "AllowOverrideList"],
                -	["directive-inline", "Anonymous"],
                -	["directive-inline", "Anonymous_LogEmail"],
                -	["directive-inline", "Anonymous_MustGiveEmail"],
                -	["directive-inline", "Anonymous_NoUserID"],
                -	["directive-inline", "Anonymous_VerifyEmail"],
                -	["directive-inline", "AsyncRequestWorkerFactor"],
                -	["directive-inline", "AuthBasicAuthoritative"],
                -	["directive-inline", "AuthBasicFake"],
                -	["directive-inline", "AuthBasicProvider"],
                -	["directive-inline", "AuthBasicUseDigestAlgorithm"],
                -	["directive-inline", "AuthDBDUserPWQuery"],
                -	["directive-inline", "AuthDBDUserRealmQuery"],
                -	["directive-inline", "AuthDBMGroupFile"],
                -	["directive-inline", "AuthDBMType"],
                -	["directive-inline", "AuthDBMUserFile"],
                -	["directive-inline", "AuthDigestAlgorithm"],
                -	["directive-inline", "AuthDigestDomain"],
                -	["directive-inline", "AuthDigestNonceLifetime"],
                -	["directive-inline", "AuthDigestProvider"],
                -	["directive-inline", "AuthDigestQop"],
                -	["directive-inline", "AuthDigestShmemSize"],
                -	["directive-inline", "AuthFormAuthoritative"],
                -	["directive-inline", "AuthFormBody"],
                -	["directive-inline", "AuthFormDisableNoStore"],
                -	["directive-inline", "AuthFormFakeBasicAuth"],
                -	["directive-inline", "AuthFormLocation"],
                -	["directive-inline", "AuthFormLoginRequiredLocation"],
                -	["directive-inline", "AuthFormLoginSuccessLocation"],
                -	["directive-inline", "AuthFormLogoutLocation"],
                -	["directive-inline", "AuthFormMethod"],
                -	["directive-inline", "AuthFormMimetype"],
                -	["directive-inline", "AuthFormPassword"],
                -	["directive-inline", "AuthFormProvider"],
                -	["directive-inline", "AuthFormSitePassphrase"],
                -	["directive-inline", "AuthFormSize"],
                -	["directive-inline", "AuthFormUsername"],
                -	["directive-inline", "AuthGroupFile"],
                -	["directive-inline", "AuthLDAPAuthorizePrefix"],
                -	["directive-inline", "AuthLDAPBindAuthoritative"],
                -	["directive-inline", "AuthLDAPBindDN"],
                -	["directive-inline", "AuthLDAPBindPassword"],
                -	["directive-inline", "AuthLDAPCharsetConfig"],
                -	["directive-inline", "AuthLDAPCompareAsUser"],
                -	["directive-inline", "AuthLDAPCompareDNOnServer"],
                -	["directive-inline", "AuthLDAPDereferenceAliases"],
                -	["directive-inline", "AuthLDAPGroupAttribute"],
                -	["directive-inline", "AuthLDAPGroupAttributeIsDN"],
                -	["directive-inline", "AuthLDAPInitialBindAsUser"],
                -	["directive-inline", "AuthLDAPInitialBindPattern"],
                -	["directive-inline", "AuthLDAPMaxSubGroupDepth"],
                -	["directive-inline", "AuthLDAPRemoteUserAttribute"],
                -	["directive-inline", "AuthLDAPRemoteUserIsDN"],
                -	["directive-inline", "AuthLDAPSearchAsUser"],
                -	["directive-inline", "AuthLDAPSubGroupAttribute"],
                -	["directive-inline", "AuthLDAPSubGroupClass"],
                -	["directive-inline", "AuthLDAPUrl"],
                -	["directive-inline", "AuthMerging"],
                -	["directive-inline", "AuthName"],
                -	["directive-inline", "AuthnCacheContext"],
                -	["directive-inline", "AuthnCacheEnable"],
                -	["directive-inline", "AuthnCacheProvideFor"],
                -	["directive-inline", "AuthnCacheSOCache"],
                -	["directive-inline", "AuthnCacheTimeout"],
                -	["directive-inline", "AuthnzFcgiCheckAuthnProvider"],
                -	["directive-inline", "AuthnzFcgiDefineProvider"],
                -	["directive-inline", "AuthType"],
                -	["directive-inline", "AuthUserFile"],
                -	["directive-inline", "AuthzDBDLoginToReferer"],
                -	["directive-inline", "AuthzDBDQuery"],
                -	["directive-inline", "AuthzDBDRedirectQuery"],
                -	["directive-inline", "AuthzDBMType"],
                -	["directive-inline", "AuthzSendForbiddenOnFailure"],
                -	["directive-inline", "BalancerGrowth"],
                -	["directive-inline", "BalancerInherit"],
                -	["directive-inline", "BalancerMember"],
                -	["directive-inline", "BalancerPersist"],
                -	["directive-inline", "BrowserMatch"],
                -	["directive-inline", "BrowserMatchNoCase"],
                -	["directive-inline", "BufferedLogs"],
                -	["directive-inline", "BufferSize"],
                -	["directive-inline", "CacheDefaultExpire"],
                -	["directive-inline", "CacheDetailHeader"],
                -	["directive-inline", "CacheDirLength"],
                -	["directive-inline", "CacheDirLevels"],
                -	["directive-inline", "CacheDisable"],
                -	["directive-inline", "CacheEnable"],
                -	["directive-inline", "CacheFile"],
                -	["directive-inline", "CacheHeader"],
                -	["directive-inline", "CacheIgnoreCacheControl"],
                -	["directive-inline", "CacheIgnoreHeaders"],
                -	["directive-inline", "CacheIgnoreNoLastMod"],
                -	["directive-inline", "CacheIgnoreQueryString"],
                -	["directive-inline", "CacheIgnoreURLSessionIdentifiers"],
                -	["directive-inline", "CacheKeyBaseURL"],
                -	["directive-inline", "CacheLastModifiedFactor"],
                -	["directive-inline", "CacheLock"],
                -	["directive-inline", "CacheLockMaxAge"],
                -	["directive-inline", "CacheLockPath"],
                -	["directive-inline", "CacheMaxExpire"],
                -	["directive-inline", "CacheMaxFileSize"],
                -	["directive-inline", "CacheMinExpire"],
                -	["directive-inline", "CacheMinFileSize"],
                -	["directive-inline", "CacheNegotiatedDocs"],
                -	["directive-inline", "CacheQuickHandler"],
                -	["directive-inline", "CacheReadSize"],
                -	["directive-inline", "CacheReadTime"],
                -	["directive-inline", "CacheRoot"],
                -	["directive-inline", "CacheSocache"],
                -	["directive-inline", "CacheSocacheMaxSize"],
                -	["directive-inline", "CacheSocacheMaxTime"],
                -	["directive-inline", "CacheSocacheMinTime"],
                -	["directive-inline", "CacheSocacheReadSize"],
                -	["directive-inline", "CacheSocacheReadTime"],
                -	["directive-inline", "CacheStaleOnError"],
                -	["directive-inline", "CacheStoreExpired"],
                -	["directive-inline", "CacheStoreNoStore"],
                -	["directive-inline", "CacheStorePrivate"],
                -	["directive-inline", "CGIDScriptTimeout"],
                -	["directive-inline", "CGIMapExtension"],
                -	["directive-inline", "CharsetDefault"],
                -	["directive-inline", "CharsetOptions"],
                -	["directive-inline", "CharsetSourceEnc"],
                -	["directive-inline", "CheckCaseOnly"],
                -	["directive-inline", "CheckSpelling"],
                -	["directive-inline", "ChrootDir"],
                -	["directive-inline", "ContentDigest"],
                -	["directive-inline", "CookieDomain"],
                -	["directive-inline", "CookieExpires"],
                -	["directive-inline", "CookieName"],
                -	["directive-inline", "CookieStyle"],
                -	["directive-inline", "CookieTracking"],
                -	["directive-inline", "CoreDumpDirectory"],
                -	["directive-inline", "CustomLog"],
                -	["directive-inline", "Dav"],
                -	["directive-inline", "DavDepthInfinity"],
                -	["directive-inline", "DavGenericLockDB"],
                -	["directive-inline", "DavLockDB"],
                -	["directive-inline", "DavMinTimeout"],
                -	["directive-inline", "DBDExptime"],
                -	["directive-inline", "DBDInitSQL"],
                -	["directive-inline", "DBDKeep"],
                -	["directive-inline", "DBDMax"],
                -	["directive-inline", "DBDMin"],
                -	["directive-inline", "DBDParams"],
                -	["directive-inline", "DBDPersist"],
                -	["directive-inline", "DBDPrepareSQL"],
                -	["directive-inline", "DBDriver"],
                -	["directive-inline", "DefaultIcon"],
                -	["directive-inline", "DefaultLanguage"],
                -	["directive-inline", "DefaultRuntimeDir"],
                -	["directive-inline", "DefaultType"],
                -	["directive-inline", "Define"],
                -	["directive-inline", "DeflateBufferSize"],
                -	["directive-inline", "DeflateCompressionLevel"],
                -	["directive-inline", "DeflateFilterNote"],
                -	["directive-inline", "DeflateInflateLimitRequestBody"],
                -	["directive-inline", "DeflateInflateRatioBurst"],
                -	["directive-inline", "DeflateInflateRatioLimit"],
                -	["directive-inline", "DeflateMemLevel"],
                -	["directive-inline", "DeflateWindowSize"],
                -	["directive-inline", "Deny"],
                -	["directive-inline", "DirectoryCheckHandler"],
                -	["directive-inline", "DirectoryIndex"],
                -	["directive-inline", "DirectoryIndexRedirect"],
                -	["directive-inline", "DirectorySlash"],
                -	["directive-inline", "DocumentRoot"],
                -	["directive-inline", "DTracePrivileges"],
                -	["directive-inline", "DumpIOInput"],
                -	["directive-inline", "DumpIOOutput"],
                -	["directive-inline", "EnableExceptionHook"],
                -	["directive-inline", "EnableMMAP"],
                -	["directive-inline", "EnableSendfile"],
                -	["directive-inline", "Error"],
                -	["directive-inline", "ErrorDocument"],
                -	["directive-inline", "ErrorLog"],
                -	["directive-inline", "ErrorLogFormat"],
                -	["directive-inline", "Example"],
                -	["directive-inline", "ExpiresActive"],
                -	["directive-inline", "ExpiresByType"],
                -	["directive-inline", "ExpiresDefault"],
                -	["directive-inline", "ExtendedStatus"],
                -	["directive-inline", "ExtFilterDefine"],
                -	["directive-inline", "ExtFilterOptions"],
                -	["directive-inline", "FallbackResource"],
                -	["directive-inline", "FileETag"],
                -	["directive-inline", "FilterChain"],
                -	["directive-inline", "FilterDeclare"],
                -	["directive-inline", "FilterProtocol"],
                -	["directive-inline", "FilterProvider"],
                -	["directive-inline", "FilterTrace"],
                -	["directive-inline", "ForceLanguagePriority"],
                -	["directive-inline", "ForceType"],
                -	["directive-inline", "ForensicLog"],
                -	["directive-inline", "GprofDir"],
                -	["directive-inline", "GracefulShutdownTimeout"],
                -	["directive-inline", "Group"],
                -	["directive-inline", "Header"],
                -	["directive-inline", "HeaderName"],
                -	["directive-inline", "HeartbeatAddress"],
                -	["directive-inline", "HeartbeatListen"],
                -	["directive-inline", "HeartbeatMaxServers"],
                -	["directive-inline", "HeartbeatStorage"],
                -	["directive-inline", "HeartbeatStorage"],
                -	["directive-inline", "HostnameLookups"],
                -	["directive-inline", "IdentityCheck"],
                -	["directive-inline", "IdentityCheckTimeout"],
                -	["directive-inline", "ImapBase"],
                -	["directive-inline", "ImapDefault"],
                -	["directive-inline", "ImapMenu"],
                -	["directive-inline", "Include"],
                -	["directive-inline", "IncludeOptional"],
                -	["directive-inline", "IndexHeadInsert"],
                -	["directive-inline", "IndexIgnore"],
                -	["directive-inline", "IndexIgnoreReset"],
                -	["directive-inline", "IndexOptions"],
                -	["directive-inline", "IndexOrderDefault"],
                -	["directive-inline", "IndexStyleSheet"],
                -	["directive-inline", "InputSed"],
                -	["directive-inline", "ISAPIAppendLogToErrors"],
                -	["directive-inline", "ISAPIAppendLogToQuery"],
                -	["directive-inline", "ISAPICacheFile"],
                -	["directive-inline", "ISAPIFakeAsync"],
                -	["directive-inline", "ISAPILogNotSupported"],
                -	["directive-inline", "ISAPIReadAheadBuffer"],
                -	["directive-inline", "KeepAlive"],
                -	["directive-inline", "KeepAliveTimeout"],
                -	["directive-inline", "KeptBodySize"],
                -	["directive-inline", "LanguagePriority"],
                -	["directive-inline", "LDAPCacheEntries"],
                -	["directive-inline", "LDAPCacheTTL"],
                -	["directive-inline", "LDAPConnectionPoolTTL"],
                -	["directive-inline", "LDAPConnectionTimeout"],
                -	["directive-inline", "LDAPLibraryDebug"],
                -	["directive-inline", "LDAPOpCacheEntries"],
                -	["directive-inline", "LDAPOpCacheTTL"],
                -	["directive-inline", "LDAPReferralHopLimit"],
                -	["directive-inline", "LDAPReferrals"],
                -	["directive-inline", "LDAPRetries"],
                -	["directive-inline", "LDAPRetryDelay"],
                -	["directive-inline", "LDAPSharedCacheFile"],
                -	["directive-inline", "LDAPSharedCacheSize"],
                -	["directive-inline", "LDAPTimeout"],
                -	["directive-inline", "LDAPTrustedClientCert"],
                -	["directive-inline", "LDAPTrustedGlobalCert"],
                -	["directive-inline", "LDAPTrustedMode"],
                -	["directive-inline", "LDAPVerifyServerCert"],
                -	["directive-inline", "LimitInternalRecursion"],
                -	["directive-inline", "LimitRequestBody"],
                -	["directive-inline", "LimitRequestFields"],
                -	["directive-inline", "LimitRequestFieldSize"],
                -	["directive-inline", "LimitRequestLine"],
                -	["directive-inline", "LimitXMLRequestBody"],
                -	["directive-inline", "Listen"],
                -	["directive-inline", "ListenBackLog"],
                -	["directive-inline", "LoadFile"],
                -	["directive-inline", "LoadModule"],
                -	["directive-inline", "LogFormat"],
                -	["directive-inline", "LogLevel"],
                -	["directive-inline", "LogMessage"],
                -	["directive-inline", "LuaAuthzProvider"],
                -	["directive-inline", "LuaCodeCache"],
                -	["directive-inline", "LuaHookAccessChecker"],
                -	["directive-inline", "LuaHookAuthChecker"],
                -	["directive-inline", "LuaHookCheckUserID"],
                -	["directive-inline", "LuaHookFixups"],
                -	["directive-inline", "LuaHookInsertFilter"],
                -	["directive-inline", "LuaHookLog"],
                -	["directive-inline", "LuaHookMapToStorage"],
                -	["directive-inline", "LuaHookTranslateName"],
                -	["directive-inline", "LuaHookTypeChecker"],
                -	["directive-inline", "LuaInherit"],
                -	["directive-inline", "LuaInputFilter"],
                -	["directive-inline", "LuaMapHandler"],
                -	["directive-inline", "LuaOutputFilter"],
                -	["directive-inline", "LuaPackageCPath"],
                -	["directive-inline", "LuaPackagePath"],
                -	["directive-inline", "LuaQuickHandler"],
                -	["directive-inline", "LuaRoot"],
                -	["directive-inline", "LuaScope"],
                -	["directive-inline", "MaxConnectionsPerChild"],
                -	["directive-inline", "MaxKeepAliveRequests"],
                -	["directive-inline", "MaxMemFree"],
                -	["directive-inline", "MaxRangeOverlaps"],
                -	["directive-inline", "MaxRangeReversals"],
                -	["directive-inline", "MaxRanges"],
                -	["directive-inline", "MaxRequestWorkers"],
                -	["directive-inline", "MaxSpareServers"],
                -	["directive-inline", "MaxSpareThreads"],
                -	["directive-inline", "MaxThreads"],
                -	["directive-inline", "MergeTrailers"],
                -	["directive-inline", "MetaDir"],
                -	["directive-inline", "MetaFiles"],
                -	["directive-inline", "MetaSuffix"],
                -	["directive-inline", "MimeMagicFile"],
                -	["directive-inline", "MinSpareServers"],
                -	["directive-inline", "MinSpareThreads"],
                -	["directive-inline", "MMapFile"],
                -	["directive-inline", "ModemStandard"],
                -	["directive-inline", "ModMimeUsePathInfo"],
                -	["directive-inline", "MultiviewsMatch"],
                -	["directive-inline", "Mutex"],
                -	["directive-inline", "NameVirtualHost"],
                -	["directive-inline", "NoProxy"],
                -	["directive-inline", "NWSSLTrustedCerts"],
                -	["directive-inline", "NWSSLUpgradeable"],
                -	["directive-inline", "Options"],
                -	["directive-inline", "Order"],
                -	["directive-inline", "OutputSed"],
                -	["directive-inline", "PassEnv"],
                -	["directive-inline", "PidFile"],
                -	["directive-inline", "PrivilegesMode"],
                -	["directive-inline", "Protocol"],
                -	["directive-inline", "ProtocolEcho"],
                -	["directive-inline", "ProxyAddHeaders"],
                -	["directive-inline", "ProxyBadHeader"],
                -	["directive-inline", "ProxyBlock"],
                -	["directive-inline", "ProxyDomain"],
                -	["directive-inline", "ProxyErrorOverride"],
                -	["directive-inline", "ProxyExpressDBMFile"],
                -	["directive-inline", "ProxyExpressDBMType"],
                -	["directive-inline", "ProxyExpressEnable"],
                -	["directive-inline", "ProxyFtpDirCharset"],
                -	["directive-inline", "ProxyFtpEscapeWildcards"],
                -	["directive-inline", "ProxyFtpListOnWildcard"],
                -	["directive-inline", "ProxyHTMLBufSize"],
                -	["directive-inline", "ProxyHTMLCharsetOut"],
                -	["directive-inline", "ProxyHTMLDocType"],
                -	["directive-inline", "ProxyHTMLEnable"],
                -	["directive-inline", "ProxyHTMLEvents"],
                -	["directive-inline", "ProxyHTMLExtended"],
                -	["directive-inline", "ProxyHTMLFixups"],
                -	["directive-inline", "ProxyHTMLInterp"],
                -	["directive-inline", "ProxyHTMLLinks"],
                -	["directive-inline", "ProxyHTMLMeta"],
                -	["directive-inline", "ProxyHTMLStripComments"],
                -	["directive-inline", "ProxyHTMLURLMap"],
                -	["directive-inline", "ProxyIOBufferSize"],
                -	["directive-inline", "ProxyMaxForwards"],
                -	["directive-inline", "ProxyPass"],
                -	["directive-inline", "ProxyPassInherit"],
                -	["directive-inline", "ProxyPassInterpolateEnv"],
                -	["directive-inline", "ProxyPassMatch"],
                -	["directive-inline", "ProxyPassReverse"],
                -	["directive-inline", "ProxyPassReverseCookieDomain"],
                -	["directive-inline", "ProxyPassReverseCookiePath"],
                -	["directive-inline", "ProxyPreserveHost"],
                -	["directive-inline", "ProxyReceiveBufferSize"],
                -	["directive-inline", "ProxyRemote"],
                -	["directive-inline", "ProxyRemoteMatch"],
                -	["directive-inline", "ProxyRequests"],
                -	["directive-inline", "ProxySCGIInternalRedirect"],
                -	["directive-inline", "ProxySCGISendfile"],
                -	["directive-inline", "ProxySet"],
                -	["directive-inline", "ProxySourceAddress"],
                -	["directive-inline", "ProxyStatus"],
                -	["directive-inline", "ProxyTimeout"],
                -	["directive-inline", "ProxyVia"],
                -	["directive-inline", "ReadmeName"],
                -	["directive-inline", "ReceiveBufferSize"],
                -	["directive-inline", "Redirect"],
                -	["directive-inline", "RedirectMatch"],
                -	["directive-inline", "RedirectPermanent"],
                -	["directive-inline", "RedirectTemp"],
                -	["directive-inline", "ReflectorHeader"],
                -	["directive-inline", "RemoteIPHeader"],
                -	["directive-inline", "RemoteIPInternalProxy"],
                -	["directive-inline", "RemoteIPInternalProxyList"],
                -	["directive-inline", "RemoteIPProxiesHeader"],
                -	["directive-inline", "RemoteIPTrustedProxy"],
                -	["directive-inline", "RemoteIPTrustedProxyList"],
                -	["directive-inline", "RemoveCharset"],
                -	["directive-inline", "RemoveEncoding"],
                -	["directive-inline", "RemoveHandler"],
                -	["directive-inline", "RemoveInputFilter"],
                -	["directive-inline", "RemoveLanguage"],
                -	["directive-inline", "RemoveOutputFilter"],
                -	["directive-inline", "RemoveType"],
                -	["directive-inline", "RequestHeader"],
                -	["directive-inline", "RequestReadTimeout"],
                -	["directive-inline", "Require"],
                -	["directive-inline", "RewriteBase"],
                -	["directive-inline", "RewriteCond"],
                -	["directive-inline", "RewriteEngine"],
                -	["directive-inline", "RewriteMap"],
                -	["directive-inline", "RewriteOptions"],
                -	["directive-inline", "RewriteRule"],
                -	["directive-inline", "RLimitCPU"],
                -	["directive-inline", "RLimitMEM"],
                -	["directive-inline", "RLimitNPROC"],
                -	["directive-inline", "Satisfy"],
                -	["directive-inline", "ScoreBoardFile"],
                -	["directive-inline", "Script"],
                -	["directive-inline", "ScriptAlias"],
                -	["directive-inline", "ScriptAliasMatch"],
                -	["directive-inline", "ScriptInterpreterSource"],
                -	["directive-inline", "ScriptLog"],
                -	["directive-inline", "ScriptLogBuffer"],
                -	["directive-inline", "ScriptLogLength"],
                -	["directive-inline", "ScriptSock"],
                -	["directive-inline", "SecureListen"],
                -	["directive-inline", "SeeRequestTail"],
                -	["directive-inline", "SendBufferSize"],
                -	["directive-inline", "ServerAdmin"],
                -	["directive-inline", "ServerAlias"],
                -	["directive-inline", "ServerLimit"],
                -	["directive-inline", "ServerName"],
                -	["directive-inline", "ServerPath"],
                -	["directive-inline", "ServerRoot"],
                -	["directive-inline", "ServerSignature"],
                -	["directive-inline", "ServerTokens"],
                -	["directive-inline", "Session"],
                -	["directive-inline", "SessionCookieName"],
                -	["directive-inline", "SessionCookieName2"],
                -	["directive-inline", "SessionCookieRemove"],
                -	["directive-inline", "SessionCryptoCipher"],
                -	["directive-inline", "SessionCryptoDriver"],
                -	["directive-inline", "SessionCryptoPassphrase"],
                -	["directive-inline", "SessionCryptoPassphraseFile"],
                -	["directive-inline", "SessionDBDCookieName"],
                -	["directive-inline", "SessionDBDCookieName2"],
                -	["directive-inline", "SessionDBDCookieRemove"],
                -	["directive-inline", "SessionDBDDeleteLabel"],
                -	["directive-inline", "SessionDBDInsertLabel"],
                -	["directive-inline", "SessionDBDPerUser"],
                -	["directive-inline", "SessionDBDSelectLabel"],
                -	["directive-inline", "SessionDBDUpdateLabel"],
                -	["directive-inline", "SessionEnv"],
                -	["directive-inline", "SessionExclude"],
                -	["directive-inline", "SessionHeader"],
                -	["directive-inline", "SessionInclude"],
                -	["directive-inline", "SessionMaxAge"],
                -	["directive-inline", "SetEnv"],
                -	["directive-inline", "SetEnvIf"],
                -	["directive-inline", "SetEnvIfExpr"],
                -	["directive-inline", "SetEnvIfNoCase"],
                -	["directive-inline", "SetHandler"],
                -	["directive-inline", "SetInputFilter"],
                -	["directive-inline", "SetOutputFilter"],
                -	["directive-inline", "SSIEndTag"],
                -	["directive-inline", "SSIErrorMsg"],
                -	["directive-inline", "SSIETag"],
                -	["directive-inline", "SSILastModified"],
                -	["directive-inline", "SSILegacyExprParser"],
                -	["directive-inline", "SSIStartTag"],
                -	["directive-inline", "SSITimeFormat"],
                -	["directive-inline", "SSIUndefinedEcho"],
                -	["directive-inline", "SSLCACertificateFile"],
                -	["directive-inline", "SSLCACertificatePath"],
                -	["directive-inline", "SSLCADNRequestFile"],
                -	["directive-inline", "SSLCADNRequestPath"],
                -	["directive-inline", "SSLCARevocationCheck"],
                -	["directive-inline", "SSLCARevocationFile"],
                -	["directive-inline", "SSLCARevocationPath"],
                -	["directive-inline", "SSLCertificateChainFile"],
                -	["directive-inline", "SSLCertificateFile"],
                -	["directive-inline", "SSLCertificateKeyFile"],
                -	["directive-inline", "SSLCipherSuite"],
                -	["directive-inline", "SSLCompression"],
                -	["directive-inline", "SSLCryptoDevice"],
                -	["directive-inline", "SSLEngine"],
                -	["directive-inline", "SSLFIPS"],
                -	["directive-inline", "SSLHonorCipherOrder"],
                -	["directive-inline", "SSLInsecureRenegotiation"],
                -	["directive-inline", "SSLOCSPDefaultResponder"],
                -	["directive-inline", "SSLOCSPEnable"],
                -	["directive-inline", "SSLOCSPOverrideResponder"],
                -	["directive-inline", "SSLOCSPResponderTimeout"],
                -	["directive-inline", "SSLOCSPResponseMaxAge"],
                -	["directive-inline", "SSLOCSPResponseTimeSkew"],
                -	["directive-inline", "SSLOCSPUseRequestNonce"],
                -	["directive-inline", "SSLOpenSSLConfCmd"],
                -	["directive-inline", "SSLOptions"],
                -	["directive-inline", "SSLPassPhraseDialog"],
                -	["directive-inline", "SSLProtocol"],
                -	["directive-inline", "SSLProxyCACertificateFile"],
                -	["directive-inline", "SSLProxyCACertificatePath"],
                -	["directive-inline", "SSLProxyCARevocationCheck"],
                -	["directive-inline", "SSLProxyCARevocationFile"],
                -	["directive-inline", "SSLProxyCARevocationPath"],
                -	["directive-inline", "SSLProxyCheckPeerCN"],
                -	["directive-inline", "SSLProxyCheckPeerExpire"],
                -	["directive-inline", "SSLProxyCheckPeerName"],
                -	["directive-inline", "SSLProxyCipherSuite"],
                -	["directive-inline", "SSLProxyEngine"],
                -	["directive-inline", "SSLProxyMachineCertificateChainFile"],
                -	["directive-inline", "SSLProxyMachineCertificateFile"],
                -	["directive-inline", "SSLProxyMachineCertificatePath"],
                -	["directive-inline", "SSLProxyProtocol"],
                -	["directive-inline", "SSLProxyVerify"],
                -	["directive-inline", "SSLProxyVerifyDepth"],
                -	["directive-inline", "SSLRandomSeed"],
                -	["directive-inline", "SSLRenegBufferSize"],
                -	["directive-inline", "SSLRequire"],
                -	["directive-inline", "SSLRequireSSL"],
                -	["directive-inline", "SSLSessionCache"],
                -	["directive-inline", "SSLSessionCacheTimeout"],
                -	["directive-inline", "SSLSessionTicketKeyFile"],
                -	["directive-inline", "SSLSRPUnknownUserSeed"],
                -	["directive-inline", "SSLSRPVerifierFile"],
                -	["directive-inline", "SSLStaplingCache"],
                -	["directive-inline", "SSLStaplingErrorCacheTimeout"],
                -	["directive-inline", "SSLStaplingFakeTryLater"],
                -	["directive-inline", "SSLStaplingForceURL"],
                -	["directive-inline", "SSLStaplingResponderTimeout"],
                -	["directive-inline", "SSLStaplingResponseMaxAge"],
                -	["directive-inline", "SSLStaplingResponseTimeSkew"],
                -	["directive-inline", "SSLStaplingReturnResponderErrors"],
                -	["directive-inline", "SSLStaplingStandardCacheTimeout"],
                -	["directive-inline", "SSLStrictSNIVHostCheck"],
                -	["directive-inline", "SSLUserName"],
                -	["directive-inline", "SSLUseStapling"],
                -	["directive-inline", "SSLVerifyClient"],
                -	["directive-inline", "SSLVerifyDepth"],
                -	["directive-inline", "StartServers"],
                -	["directive-inline", "StartThreads"],
                -	["directive-inline", "Substitute"],
                -	["directive-inline", "Suexec"],
                -	["directive-inline", "SuexecUserGroup"],
                -	["directive-inline", "ThreadLimit"],
                -	["directive-inline", "ThreadsPerChild"],
                -	["directive-inline", "ThreadStackSize"],
                -	["directive-inline", "TimeOut"],
                -	["directive-inline", "TraceEnable"],
                -	["directive-inline", "TransferLog"],
                -	["directive-inline", "TypesConfig"],
                -	["directive-inline", "UnDefine"],
                -	["directive-inline", "UndefMacro"],
                -	["directive-inline", "UnsetEnv"],
                -	["directive-inline", "Use"],
                -	["directive-inline", "UseCanonicalName"],
                -	["directive-inline", "UseCanonicalPhysicalPort"],
                -	["directive-inline", "User"],
                -	["directive-inline", "UserDir"],
                -	["directive-inline", "VHostCGIMode"],
                -	["directive-inline", "VHostCGIPrivs"],
                -	["directive-inline", "VHostGroup"],
                -	["directive-inline", "VHostPrivs"],
                -	["directive-inline", "VHostSecure"],
                -	["directive-inline", "VHostUser"],
                -	["directive-inline", "VirtualDocumentRoot"],
                -	["directive-inline", "VirtualDocumentRootIP"],
                -	["directive-inline", "VirtualScriptAlias"],
                -	["directive-inline", "VirtualScriptAliasIP"],
                -	["directive-inline", "WatchdogInterval"],
                -	["directive-inline", "XBitHack"],
                -	["directive-inline", "xml2EncAlias"],
                -	["directive-inline", "xml2EncDefault"],
                -	["directive-inline", "xml2StartParse"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all inline directives.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apacheconf/regex_feature.test b/node_modules/prismjs/tests/languages/apacheconf/regex_feature.test
                deleted file mode 100644
                index 322e59f..0000000
                --- a/node_modules/prismjs/tests/languages/apacheconf/regex_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -^(.*)$
                -^foo
                -bar$
                -
                -----------------------------------------------------
                -
                -[
                -	["regex", "^(.*)$"],
                -	["regex", "^foo"],
                -	["regex", "bar$"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for regex.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apacheconf/string_feature.test b/node_modules/prismjs/tests/languages/apacheconf/string_feature.test
                deleted file mode 100644
                index d2849ca..0000000
                --- a/node_modules/prismjs/tests/languages/apacheconf/string_feature.test
                +++ /dev/null
                @@ -1,24 +0,0 @@
                -"foo bar"
                -'foo bar'
                -"%{REMOTE_HOST}"
                -
                -----------------------------------------------------
                -
                -[
                -	["string", [
                -		"\"foo bar\""
                -	]],
                -	["string", [
                -		"'foo bar'"
                -	]],
                -	["string", [
                -		"\"",
                -		["variable", "%{REMOTE_HOST}"],
                -		"\""
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for strings.
                -Also checks for variables inside strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apacheconf/variable_feature.test b/node_modules/prismjs/tests/languages/apacheconf/variable_feature.test
                deleted file mode 100644
                index 025fe75..0000000
                --- a/node_modules/prismjs/tests/languages/apacheconf/variable_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -$port
                -${docroot}
                -%{REMOTE_HOST}
                -
                -----------------------------------------------------
                -
                -[
                -	["variable", "$port"],
                -	["variable", "${docroot}"],
                -	["variable", "%{REMOTE_HOST}"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for variables.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apl/assignment_feature.test b/node_modules/prismjs/tests/languages/apl/assignment_feature.test
                deleted file mode 100644
                index b06cb39..0000000
                --- a/node_modules/prismjs/tests/languages/apl/assignment_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -a←1 2 3
                -
                -----------------------------------------------------
                -
                -[
                -	"a",
                -	["assignment", "←"],
                -	["number", "1"], ["number", "2"], ["number", "3"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for assignment.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apl/comment_feature.test b/node_modules/prismjs/tests/languages/apl/comment_feature.test
                deleted file mode 100644
                index a308451..0000000
                --- a/node_modules/prismjs/tests/languages/apl/comment_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -⍝
                -⍝ Foobar
                -#!/usr/bin/env runapl
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "⍝"],
                -	["comment", "⍝ Foobar"],
                -	["comment", "#!/usr/bin/env runapl"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apl/constant_feature.test b/node_modules/prismjs/tests/languages/apl/constant_feature.test
                deleted file mode 100644
                index 9f63162..0000000
                --- a/node_modules/prismjs/tests/languages/apl/constant_feature.test
                +++ /dev/null
                @@ -1,19 +0,0 @@
                -⍬
                -⌾
                -#
                -⎕
                -⍞
                -
                -----------------------------------------------------
                -
                -[
                -	["constant", "⍬"],
                -	["constant", "⌾"],
                -	["constant", "#"],
                -	["constant", "⎕"],
                -	["constant", "⍞"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for constants.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apl/dfn_feature.test b/node_modules/prismjs/tests/languages/apl/dfn_feature.test
                deleted file mode 100644
                index ef4be35..0000000
                --- a/node_modules/prismjs/tests/languages/apl/dfn_feature.test
                +++ /dev/null
                @@ -1,23 +0,0 @@
                -{0=⍴⍴⍺:'hello' ⋄ ∇¨⍵}
                -
                -----------------------------------------------------
                -
                -[
                -	["dfn", "{"],
                -	["number", "0"],
                -	["function", "="],
                -	["function", "⍴"],
                -	["function", "⍴"],
                -	["dfn", "⍺"],
                -	["dfn", ":"],
                -	["string", "'hello'"],
                -	["punctuation", "⋄"],
                -	["dfn", "∇"],
                -	["monadic-operator", "¨"],
                -	["dfn", "⍵"],
                -	["dfn", "}"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for Dfns.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apl/dyadic-operator_feature.test b/node_modules/prismjs/tests/languages/apl/dyadic-operator_feature.test
                deleted file mode 100644
                index 8d7424c..0000000
                --- a/node_modules/prismjs/tests/languages/apl/dyadic-operator_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -. ⍣ ⍠
                -⍤ ∘ ⌸
                -
                -----------------------------------------------------
                -
                -[
                -	["dyadic-operator", "."], ["dyadic-operator", "⍣"], ["dyadic-operator", "⍠"],
                -	["dyadic-operator", "⍤"], ["dyadic-operator", "∘"], ["dyadic-operator", "⌸"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for dyadic operators.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apl/function_feature.test b/node_modules/prismjs/tests/languages/apl/function_feature.test
                deleted file mode 100644
                index 93be749..0000000
                --- a/node_modules/prismjs/tests/languages/apl/function_feature.test
                +++ /dev/null
                @@ -1,41 +0,0 @@
                -- + × ÷
                -⌈ ⌊ ∣ |
                -⍳ ⍸ ? *
                -⍟ ○ ! ⌹
                -< ≤ = >
                -≥ ≠ ≡ ≢
                -∊ ⍷ ∪ ∩
                -~ ∨ ∧ ⍱
                -⍲ ⍴ , ⍪
                -⌽ ⊖ ⍉
                -↑ ↓ ⊂ ⊃
                -⌷ ⍋ ⍒
                -⊤ ⊥ ⍕ ⍎
                -⊣ ⊢ ⍁ ⍂
                -≈ ⍯
                -↗ ¤ →
                -
                -----------------------------------------------------
                -
                -[
                -	["function", "-"], ["function", "+"], ["function", "×"], ["function", "÷"],
                -	["function", "⌈"], ["function", "⌊"], ["function", "∣"], ["function", "|"],
                -	["function", "⍳"], ["function", "⍸"], ["function", "?"], ["function", "*"],
                -	["function", "⍟"], ["function", "○"], ["function", "!"], ["function", "⌹"],
                -	["function", "<"], ["function", "≤"], ["function", "="], ["function", ">"],
                -	["function", "≥"], ["function", "≠"], ["function", "≡"], ["function", "≢"],
                -	["function", "∊"], ["function", "⍷"], ["function", "∪"], ["function", "∩"],
                -	["function", "~"], ["function", "∨"], ["function", "∧"], ["function", "⍱"],
                -	["function", "⍲"], ["function", "⍴"], ["function", ","], ["function", "⍪"],
                -	["function", "⌽"], ["function", "⊖"], ["function", "⍉"],
                -	["function", "↑"], ["function", "↓"], ["function", "⊂"], ["function", "⊃"],
                -	["function", "⌷"], ["function", "⍋"], ["function", "⍒"],
                -	["function", "⊤"], ["function", "⊥"], ["function", "⍕"], ["function", "⍎"],
                -	["function", "⊣"], ["function", "⊢"], ["function", "⍁"], ["function", "⍂"],
                -	["function", "≈"], ["function", "⍯"],
                -	["function", "↗"], ["function", "¤"], ["function", "→"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for functions.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apl/monadic-operator_feature.test b/node_modules/prismjs/tests/languages/apl/monadic-operator_feature.test
                deleted file mode 100644
                index 0dcc9b0..0000000
                --- a/node_modules/prismjs/tests/languages/apl/monadic-operator_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -\ / ⌿ ⍀
                -¨ ⍨ ⌶
                -& ∥
                -
                -----------------------------------------------------
                -
                -[
                -	["monadic-operator", "\\"], ["monadic-operator", "/"], ["monadic-operator", "⌿"], ["monadic-operator", "⍀"],
                -	["monadic-operator", "¨"], ["monadic-operator", "⍨"], ["monadic-operator", "⌶"],
                -	["monadic-operator", "&"], ["monadic-operator", "∥"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for monadic operators.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apl/number_feature.test b/node_modules/prismjs/tests/languages/apl/number_feature.test
                deleted file mode 100644
                index 815d1ca..0000000
                --- a/node_modules/prismjs/tests/languages/apl/number_feature.test
                +++ /dev/null
                @@ -1,27 +0,0 @@
                -42
                -3.14159
                -¯2
                -∞
                -3E12
                -2.8e¯4
                -0.1e+7
                -2j3
                -¯4.3e2J1.9e¯4
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "42"],
                -	["number", "3.14159"],
                -	["number", "¯2"],
                -	["number", "∞"],
                -	["number", "3E12"],
                -	["number", "2.8e¯4"],
                -	["number", "0.1e+7"],
                -	["number", "2j3"],
                -	["number", "¯4.3e2J1.9e¯4"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apl/statement_feature.test b/node_modules/prismjs/tests/languages/apl/statement_feature.test
                deleted file mode 100644
                index 24c6874..0000000
                --- a/node_modules/prismjs/tests/languages/apl/statement_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -:Ab
                -:FooBar
                -
                -----------------------------------------------------
                -
                -[
                -	["statement", ":Ab"],
                -	["statement", ":FooBar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for statements.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apl/string_feature.test b/node_modules/prismjs/tests/languages/apl/string_feature.test
                deleted file mode 100644
                index 8bc8dd1..0000000
                --- a/node_modules/prismjs/tests/languages/apl/string_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -''
                -'foobar'
                -'fo''obar'
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "''"],
                -	["string", "'foobar'"],
                -	["string", "'fo''obar'"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/apl/system-function_feature.test b/node_modules/prismjs/tests/languages/apl/system-function_feature.test
                deleted file mode 100644
                index 81cbcaa..0000000
                --- a/node_modules/prismjs/tests/languages/apl/system-function_feature.test
                +++ /dev/null
                @@ -1,17 +0,0 @@
                -⎕IO
                -⎕WA
                -⎕CR
                -⎕TCNL
                -
                -----------------------------------------------------
                -
                -[
                -	["system-function", "⎕IO"],
                -	["system-function", "⎕WA"],
                -	["system-function", "⎕CR"],
                -	["system-function", "⎕TCNL"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for system functions.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/applescript/class_feature.test b/node_modules/prismjs/tests/languages/applescript/class_feature.test
                deleted file mode 100644
                index 547906d..0000000
                --- a/node_modules/prismjs/tests/languages/applescript/class_feature.test
                +++ /dev/null
                @@ -1,39 +0,0 @@
                -alias application boolean class constant
                -date file integer list number
                -POSIX file
                -real record reference
                -RGB color
                -script text centimetres centimeters feet
                -inches kilometres kilometers metres meters
                -miles yards
                -square feet square kilometres square kilometers square metres
                -square meters square miles square yards
                -cubic centimetres cubic centimeters cubic feet cubic inches
                -cubic metres cubic meters cubic yards
                -gallons litres liters quarts grams
                -kilograms ounces pounds
                -degrees Celsius degrees Fahrenheit degrees Kelvin
                -
                -----------------------------------------------------
                -
                -[
                -	["class", "alias"], ["class", "application"], ["class", "boolean"], ["class", "class"], ["class", "constant"],
                -	["class", "date"], ["class", "file"], ["class", "integer"], ["class", "list"], ["class", "number"],
                -	["class", "POSIX file"],
                -	["class", "real"], ["class", "record"], ["class", "reference"],
                -	["class", "RGB color"],
                -	["class", "script"], ["class", "text"], ["class", "centimetres"], ["class", "centimeters"], ["class", "feet"],
                -	["class", "inches"], ["class", "kilometres"], ["class", "kilometers"], ["class", "metres"], ["class", "meters"],
                -	["class", "miles"], ["class", "yards"],
                -	["class", "square feet"], ["class", "square kilometres"], ["class", "square kilometers"], ["class", "square metres"],
                -	["class", "square meters"], ["class", "square miles"], ["class", "square yards"],
                -	["class", "cubic centimetres"], ["class", "cubic centimeters"], ["class", "cubic feet"], ["class", "cubic inches"],
                -	["class", "cubic metres"], ["class", "cubic meters"], ["class", "cubic yards"],
                -	["class", "gallons"], ["class", "litres"], ["class", "liters"], ["class", "quarts"], ["class", "grams"],
                -	["class", "kilograms"], ["class", "ounces"], ["class", "pounds"],
                -	["class", "degrees Celsius"], ["class", "degrees Fahrenheit"], ["class", "degrees Kelvin"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all classes.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/applescript/comment_feature.test b/node_modules/prismjs/tests/languages/applescript/comment_feature.test
                deleted file mode 100644
                index d823ba4..0000000
                --- a/node_modules/prismjs/tests/languages/applescript/comment_feature.test
                +++ /dev/null
                @@ -1,21 +0,0 @@
                --- foo bar
                -# foo bar
                -(* foo
                -bar *)
                -(* foo
                -(* bar *)
                -*)
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "-- foo bar"],
                -	["comment", "# foo bar"],
                -	["comment", "(* foo\r\nbar *)"],
                -	["comment", "(* foo\r\n(* bar *)\r\n*)"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for single-line and multi-line comments.
                -Also checks for one level of nesting.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/applescript/keyword_feature.test b/node_modules/prismjs/tests/languages/applescript/keyword_feature.test
                deleted file mode 100644
                index bde63a1..0000000
                --- a/node_modules/prismjs/tests/languages/applescript/keyword_feature.test
                +++ /dev/null
                @@ -1,59 +0,0 @@
                -about above after against
                -apart from
                -around
                -aside from
                -at back before beginning behind below
                -beneath beside between but by
                -considering continue copy
                -does eighth else end
                -equal error every exit
                -false fifth first for fourth
                -from front get given global
                -if ignoring in
                -instead of
                -into is it its last
                -local me middle my
                -ninth of on onto
                -out of
                -over prop property put
                -repeat return returning
                -second set seventh since sixth
                -some tell tenth that the
                -then third through thru timeout
                -times to transaction true try
                -until where while whose with
                -without
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "about"], ["keyword", "above"], ["keyword", "after"], ["keyword", "against"],
                -	["keyword", "apart from"],
                -	["keyword", "around"],
                -	["keyword", "aside from"],
                -	["keyword", "at"], ["keyword", "back"], ["keyword", "before"], ["keyword", "beginning"], ["keyword", "behind"], ["keyword", "below"],
                -	["keyword", "beneath"], ["keyword", "beside"], ["keyword", "between"], ["keyword", "but"], ["keyword", "by"],
                -	["keyword", "considering"], ["keyword", "continue"], ["keyword", "copy"],
                -	["keyword", "does"], ["keyword", "eighth"], ["keyword", "else"], ["keyword", "end"],
                -	["keyword", "equal"], ["keyword", "error"], ["keyword", "every"], ["keyword", "exit"],
                -	["keyword", "false"], ["keyword", "fifth"], ["keyword", "first"], ["keyword", "for"], ["keyword", "fourth"],
                -	["keyword", "from"], ["keyword", "front"], ["keyword", "get"], ["keyword", "given"], ["keyword", "global"],
                -	["keyword", "if"], ["keyword", "ignoring"], ["keyword", "in"],
                -	["keyword", "instead of"],
                -	["keyword", "into"], ["keyword", "is"], ["keyword", "it"], ["keyword", "its"], ["keyword", "last"],
                -	["keyword", "local"], ["keyword", "me"], ["keyword", "middle"], ["keyword", "my"],
                -	["keyword", "ninth"], ["keyword", "of"], ["keyword", "on"], ["keyword", "onto"],
                -	["keyword", "out of"],
                -	["keyword", "over"], ["keyword", "prop"], ["keyword", "property"], ["keyword", "put"],
                -	["keyword", "repeat"], ["keyword", "return"], ["keyword", "returning"],
                -	["keyword", "second"], ["keyword", "set"], ["keyword", "seventh"], ["keyword", "since"], ["keyword", "sixth"],
                -	["keyword", "some"], ["keyword", "tell"], ["keyword", "tenth"], ["keyword", "that"], ["keyword", "the"],
                -	["keyword", "then"], ["keyword", "third"], ["keyword", "through"], ["keyword", "thru"], ["keyword", "timeout"],
                -	["keyword", "times"], ["keyword", "to"], ["keyword", "transaction"], ["keyword", "true"], ["keyword", "try"],
                -	["keyword", "until"], ["keyword", "where"], ["keyword", "while"], ["keyword", "whose"], ["keyword", "with"],
                -	["keyword", "without"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/applescript/number_feature.test b/node_modules/prismjs/tests/languages/applescript/number_feature.test
                deleted file mode 100644
                index 96eb6f2..0000000
                --- a/node_modules/prismjs/tests/languages/applescript/number_feature.test
                +++ /dev/null
                @@ -1,17 +0,0 @@
                -42
                -3.14159
                -3e10
                -4.2E-5
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "42"],
                -	["number", "3.14159"],
                -	["number", "3e10"],
                -	["number", "4.2E-5"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/applescript/operator_feature.test b/node_modules/prismjs/tests/languages/applescript/operator_feature.test
                deleted file mode 100644
                index fb4acf4..0000000
                --- a/node_modules/prismjs/tests/languages/applescript/operator_feature.test
                +++ /dev/null
                @@ -1,48 +0,0 @@
                -& = ≠ ≤ ≥
                -* + - / ÷ ^
                -< <= > >=
                -
                -start with begin with end with
                -starts with begins with ends with
                -does not contain doesn't contain
                -contain contains
                -is in isn't in is not in
                -is contained by isn't contained by is not contained by
                -greater than greater than or equal greater than or equal to
                -less than less than or equal less than or equal to
                -does not come before doesn't come before comes before
                -does not come after doesn't come after comes after
                -is equal isn't equal is not equal
                -is equal to isn't equal to is not equal to
                -does not equal doesn't equal equals
                -isn't is not
                -ref a ref to a reference to
                -and or div mod as not
                -
                -----------------------------------------------------
                -
                -[
                -	["operator", "&"], ["operator", "="], ["operator", "≠"], ["operator", "≤"], ["operator", "≥"],
                -	["operator", "*"], ["operator", "+"], ["operator", "-"], ["operator", "/"], ["operator", "÷"], ["operator", "^"],
                -	["operator", "<"], ["operator", "<="], ["operator", ">"], ["operator", ">="],
                -	["operator", "start with"], ["operator", "begin with"], ["operator", "end with"],
                -	["operator", "starts with"], ["operator", "begins with"], ["operator", "ends with"],
                -	["operator", "does not contain"], ["operator", "doesn't contain"],
                -	["operator", "contain"], ["operator", "contains"],
                -	["operator", "is in"], ["operator", "isn't in"], ["operator", "is not in"],
                -	["operator", "is contained by"], ["operator", "isn't contained by"], ["operator", "is not contained by"],
                -	["operator", "greater than"], ["operator", "greater than or equal"], ["operator", "greater than or equal to"],
                -	["operator", "less than"], ["operator", "less than or equal"], ["operator", "less than or equal to"],
                -	["operator", "does not come before"], ["operator", "doesn't come before"], ["operator", "comes before"],
                -	["operator", "does not come after"], ["operator", "doesn't come after"], ["operator", "comes after"],
                -	["operator", "is equal"], ["operator", "isn't equal"], ["operator", "is not equal"],
                -	["operator", "is equal to"], ["operator", "isn't equal to"], ["operator", "is not equal to"],
                -	["operator", "does not equal"], ["operator", "doesn't equal"], ["operator", "equals"],
                -	["operator", "isn't"], ["operator", "is not"],
                -	["operator", "ref"], ["operator", "a ref to"], ["operator", "a reference to"],
                -	["operator", "and"], ["operator", "or"], ["operator", "div"], ["operator", "mod"], ["operator", "as"], ["operator", "not"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for most of the operators.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/applescript/string_feature.test b/node_modules/prismjs/tests/languages/applescript/string_feature.test
                deleted file mode 100644
                index 42770f6..0000000
                --- a/node_modules/prismjs/tests/languages/applescript/string_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -""
                -"foo bar"
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "\"\""],
                -	["string", "\"foo bar\""]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/admonition_feature.test b/node_modules/prismjs/tests/languages/asciidoc/admonition_feature.test
                deleted file mode 100644
                index 6b1688f..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/admonition_feature.test
                +++ /dev/null
                @@ -1,19 +0,0 @@
                -TIP: Foobar
                -NOTE: Foo bar baz
                -IMPORTANT: Foobar
                -WARNING: Foo bar baz
                -CAUTION: Foobar
                -
                -----------------------------------------------------
                -
                -[
                -	["admonition", "TIP:"], " Foobar\r\n",
                -	["admonition", "NOTE:"], " Foo bar baz\r\n",
                -	["admonition", "IMPORTANT:"], " Foobar\r\n",
                -	["admonition", "WARNING:"], " Foo bar baz\r\n",
                -	["admonition", "CAUTION:"], " Foobar"
                -]
                -
                -----------------------------------------------------
                -
                -Checks for admonitions.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/attribute-entry_feature.test b/node_modules/prismjs/tests/languages/asciidoc/attribute-entry_feature.test
                deleted file mode 100644
                index a12299a..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/attribute-entry_feature.test
                +++ /dev/null
                @@ -1,58 +0,0 @@
                -:Foo bar: baz
                -
                -:Foobar: Foo +
                -bar +
                -baz
                -
                -:Foo bar!:
                -:Foobar!:
                -
                -=====
                -:Foo bar: baz
                -
                -:Foobar: Foo +
                -bar +
                -baz
                -
                -:Foo bar!:
                -:Foobar!:
                -=====
                -
                -|=====
                -|
                -:Foo bar: baz
                -
                -:Foobar: Foo +
                -bar +
                -baz
                -|=====
                -
                -----------------------------------------------------
                -
                -[
                -	["attribute-entry", ":Foo bar: baz"],
                -	["attribute-entry", ":Foobar: Foo +\r\nbar +\r\nbaz"],
                -	["attribute-entry", ":Foo bar!:"],
                -	["attribute-entry", ":Foobar!:"],
                -
                -	["other-block", [
                -		["punctuation", "====="],
                -		["attribute-entry", ":Foo bar: baz"],
                -		["attribute-entry", ":Foobar: Foo +\r\nbar +\r\nbaz"],
                -		["attribute-entry", ":Foo bar!:"],
                -		["attribute-entry", ":Foobar!:"],
                -		["punctuation", "====="]
                -	]],
                -
                -	["table", [
                -		["punctuation", "|====="],
                -		["punctuation", "|"],
                -		["attribute-entry", ":Foo bar: baz"],
                -		["attribute-entry", ":Foobar: Foo +\r\nbar +\r\nbaz"],
                -		["punctuation", "|====="]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for attribute entries.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/attributes_feature.test b/node_modules/prismjs/tests/languages/asciidoc/attributes_feature.test
                deleted file mode 100644
                index a4eb9e2..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/attributes_feature.test
                +++ /dev/null
                @@ -1,403 +0,0 @@
                -Foo [big red yellow-background]#obvious#
                -
                -[float]
                -[quote,'http://en.wikipedia.org/wiki/Samuel_Johnson[Samuel Johnson]']
                -[quote,'"with *an* image" image:foo.png[] (TM)']
                -
                -[NOTE]
                -[icon="./images/icons/wink.png"]
                -[icons=None, caption="My Special Note"]
                -[start=7]
                -
                -[cols="e,m,^,>s",width="25%"]
                -
                -=====
                -Foo [big red yellow-background]#obvious#
                -
                -[float]
                -[quote,'http://en.wikipedia.org/wiki/Samuel_Johnson[Samuel Johnson]']
                -[quote,'"with *an* image" image:foo.png[] (TM)']
                -
                -[NOTE]
                -[icon="./images/icons/wink.png"]
                -[icons=None, caption="My Special Note"]
                -[start=7]
                -
                -[cols="e,m,^,>s",width="25%"]
                -=====
                -
                -|=====
                -|
                -Foo [big red yellow-background]#obvious#
                -
                -[float]
                -[quote,'http://en.wikipedia.org/wiki/Samuel_Johnson[Samuel Johnson]']
                -[quote,'"with *an* image" image:foo.png[] (TM)']
                -
                -[NOTE]
                -[icon="./images/icons/wink.png"]
                -[icons=None, caption="My Special Note"]
                -[start=7]
                -
                -[cols="e,m,^,>s",width="25%"]
                -|=====
                -
                -
                -latexmath:[$C = \alpha + \beta Y^{\gamma} + \epsilon$]
                -asciimath:[`x/x={(1,if x!=0),(text{undefined},if x=0):}`]
                -latexmath:[$\sum_{n=1}^\infty \frac{1}{2^n}$]
                -
                -----------------------------------------------------
                -
                -[
                -	"Foo ",
                -	["inline", [
                -		["attributes", [
                -			["punctuation", "["],
                -			["attr-value", "big red yellow-background"],
                -			["punctuation", "]"]
                -		]],
                -		["punctuation", "#"], "obvious", ["punctuation", "#"]
                -	]],
                -
                -	["attributes", [
                -		["punctuation", "["], ["attr-value", "float"], ["punctuation", "]"]
                -	]],
                -	["attributes", [
                -		["punctuation", "["],
                -		["attr-value", "quote"], ["punctuation", ","],
                -		["interpreted", [
                -			["punctuation", "'"],
                -			["macro", [
                -				["function", "http"], ["punctuation", ":"],
                -				"//en.wikipedia.org/wiki/Samuel_Johnson",
                -				["attributes", [
                -					["punctuation", "["],
                -					["attr-value", "Samuel Johnson"],
                -					["punctuation", "]"]
                -				]]
                -			]],
                -			["punctuation", "'"]
                -		]],
                -		["punctuation", "]"]
                -	]],
                -	["attributes", [
                -		["punctuation", "["],
                -		["attr-value", "quote"], ["punctuation", ","],
                -		["interpreted", [
                -			["punctuation", "'"],
                -			["entity", """],
                -			"with ",
                -			["inline", [
                -				["bold", [
                -					["punctuation", "*"], "an", ["punctuation", "*"]
                -				]]
                -			]],
                -			" image",
                -			["entity", """],
                -			["macro", [
                -				["function", "image"], ["punctuation", ":"],
                -				"foo.png",
                -				["attributes", [
                -					["punctuation", "["], ["punctuation", "]"]
                -				]]
                -			]],
                -			["replacement", "(TM)"],
                -			["punctuation", "'"]
                -		]],
                -		["punctuation", "]"]
                -	]],
                -
                -	["attributes", [
                -		["punctuation", "["], ["attr-value", "NOTE"], ["punctuation", "]"]
                -	]],
                -	["attributes", [
                -		["punctuation", "["],
                -		["variable", "icon"],
                -		["operator", "="],
                -		["string", "\"./images/icons/wink.png\""],
                -		["punctuation", "]"]
                -	]],
                -	["attributes", [
                -		["punctuation", "["],
                -		["variable", "icons"],
                -		["operator", "="],
                -		["attr-value", "None"],
                -		["punctuation", ","],
                -		["variable", "caption"],
                -		["operator", "="],
                -		["string", "\"My Special Note\""],
                -		["punctuation", "]"]
                -	]],
                -	["attributes", [
                -		["punctuation", "["],
                -		["variable", "start"],
                -		["operator", "="],
                -		["attr-value", "7"],
                -		["punctuation", "]"]
                -	]],
                -
                -	["attributes", [
                -		["punctuation", "["],
                -		["variable", "cols"],
                -		["operator", "="],
                -		["string", "\"e,m,^,>s\""],
                -		["punctuation", ","],
                -		["variable", "width"],
                -		["operator", "="],
                -		["string", "\"25%\""],
                -		["punctuation", "]"]
                -	]],
                -
                -	["other-block", [
                -		["punctuation", "====="],
                -
                -		"\r\nFoo ",
                -		["inline", [
                -			["attributes", [
                -				["punctuation", "["],
                -				["attr-value", "big red yellow-background"],
                -				["punctuation", "]"]
                -			]],
                -			["punctuation", "#"], "obvious", ["punctuation", "#"]
                -		]],
                -
                -		["attributes", [
                -			["punctuation", "["], ["attr-value", "float"], ["punctuation", "]"]
                -		]],
                -		["attributes", [
                -			["punctuation", "["],
                -			["attr-value", "quote"], ["punctuation", ","],
                -			["interpreted", [
                -				["punctuation", "'"],
                -				["macro", [
                -					["function", "http"], ["punctuation", ":"],
                -					"//en.wikipedia.org/wiki/Samuel_Johnson",
                -					["attributes", [
                -						["punctuation", "["],
                -						["attr-value", "Samuel Johnson"],
                -						["punctuation", "]"]
                -					]]
                -				]],
                -				["punctuation", "'"]
                -			]],
                -			["punctuation", "]"]
                -		]],
                -		["attributes", [
                -			["punctuation", "["],
                -			["attr-value", "quote"], ["punctuation", ","],
                -			["interpreted", [
                -				["punctuation", "'"],
                -				["entity", """],
                -				"with ",
                -				["inline", [
                -					["bold", [
                -						["punctuation", "*"], "an", ["punctuation", "*"]
                -					]]
                -				]],
                -				" image",
                -				["entity", """],
                -				["macro", [
                -					["function", "image"], ["punctuation", ":"],
                -					"foo.png",
                -					["attributes", [
                -						["punctuation", "["], ["punctuation", "]"]
                -					]]
                -				]],
                -				["replacement", "(TM)"],
                -				["punctuation", "'"]
                -			]],
                -			["punctuation", "]"]
                -		]],
                -
                -		["attributes", [
                -			["punctuation", "["], ["attr-value", "NOTE"], ["punctuation", "]"]
                -		]],
                -		["attributes", [
                -			["punctuation", "["],
                -			["variable", "icon"],
                -			["operator", "="],
                -			["string", "\"./images/icons/wink.png\""],
                -			["punctuation", "]"]
                -		]],
                -		["attributes", [
                -			["punctuation", "["],
                -			["variable", "icons"],
                -			["operator", "="],
                -			["attr-value", "None"],
                -			["punctuation", ","],
                -			["variable", "caption"],
                -			["operator", "="],
                -			["string", "\"My Special Note\""],
                -			["punctuation", "]"]
                -		]],
                -		["attributes", [
                -			["punctuation", "["],
                -			["variable", "start"],
                -			["operator", "="],
                -			["attr-value", "7"],
                -			["punctuation", "]"]
                -		]],
                -
                -		["attributes", [
                -			["punctuation", "["],
                -			["variable", "cols"],
                -			["operator", "="],
                -			["string", "\"e,m,^,>s\""],
                -			["punctuation", ","],
                -			["variable", "width"],
                -			["operator", "="],
                -			["string", "\"25%\""],
                -			["punctuation", "]"]
                -		]],
                -
                -		["punctuation", "====="]
                -	]],
                -
                -	["table", [
                -		["punctuation", "|====="],
                -		["punctuation", "|"],
                -
                -		"\r\nFoo ",
                -		["inline", [
                -			["attributes", [
                -				["punctuation", "["],
                -				["attr-value", "big red yellow-background"],
                -				["punctuation", "]"]
                -			]],
                -			["punctuation", "#"], "obvious", ["punctuation", "#"]
                -		]],
                -
                -		["attributes", [
                -			["punctuation", "["], ["attr-value", "float"], ["punctuation", "]"]
                -		]],
                -		["attributes", [
                -			["punctuation", "["],
                -			["attr-value", "quote"], ["punctuation", ","],
                -			["interpreted", [
                -				["punctuation", "'"],
                -				["macro", [
                -					["function", "http"], ["punctuation", ":"],
                -					"//en.wikipedia.org/wiki/Samuel_Johnson",
                -					["attributes", [
                -						["punctuation", "["],
                -						["attr-value", "Samuel Johnson"],
                -						["punctuation", "]"]
                -					]]
                -				]],
                -				["punctuation", "'"]
                -			]],
                -			["punctuation", "]"]
                -		]],
                -		["attributes", [
                -			["punctuation", "["],
                -			["attr-value", "quote"], ["punctuation", ","],
                -			["interpreted", [
                -				["punctuation", "'"],
                -				["entity", """],
                -				"with ",
                -				["inline", [
                -					["bold", [
                -						["punctuation", "*"], "an", ["punctuation", "*"]
                -					]]
                -				]],
                -				" image",
                -				["entity", """],
                -				["macro", [
                -					["function", "image"], ["punctuation", ":"],
                -					"foo.png",
                -					["attributes", [
                -						["punctuation", "["], ["punctuation", "]"]
                -					]]
                -				]],
                -				["replacement", "(TM)"],
                -				["punctuation", "'"]
                -			]],
                -			["punctuation", "]"]
                -		]],
                -
                -		["attributes", [
                -			["punctuation", "["], ["attr-value", "NOTE"], ["punctuation", "]"]
                -		]],
                -		["attributes", [
                -			["punctuation", "["],
                -			["variable", "icon"],
                -			["operator", "="],
                -			["string", "\"./images/icons/wink.png\""],
                -			["punctuation", "]"]
                -		]],
                -		["attributes", [
                -			["punctuation", "["],
                -			["variable", "icons"],
                -			["operator", "="],
                -			["attr-value", "None"],
                -			["punctuation", ","],
                -			["variable", "caption"],
                -			["operator", "="],
                -			["string", "\"My Special Note\""],
                -			["punctuation", "]"]
                -		]],
                -		["attributes", [
                -			["punctuation", "["],
                -			["variable", "start"],
                -			["operator", "="],
                -			["attr-value", "7"],
                -			["punctuation", "]"]
                -		]],
                -
                -		["attributes", [
                -			["punctuation", "["],
                -			["variable", "cols"],
                -			["operator", "="],
                -			["string", "\"e,m,^,>s\""],
                -			["punctuation", ","],
                -			["variable", "width"],
                -			["operator", "="],
                -			["string", "\"25%\""],
                -			["punctuation", "]"]
                -		]],
                -
                -		["punctuation", "|====="]
                -	]],
                -
                -	["macro", [
                -		["function", "latexmath"], ["punctuation", ":"],
                -		["attributes", [
                -			["punctuation", "["],
                -			["quoted", [
                -				["punctuation", "$"],
                -				"C = \\alpha + \\beta Y^{\\gamma} + \\epsilon",
                -				["punctuation", "$"]
                -			]],
                -			["punctuation", "]"]
                -		]]
                -	]],
                -	["macro", [
                -		["function", "asciimath"], ["punctuation", ":"],
                -		["attributes", [
                -			["punctuation", "["],
                -			["quoted", [
                -				["punctuation", "`"],
                -				"x/x={(1,if x!=0),(text{undefined},if x=0):}",
                -				["punctuation", "`"]
                -			]],
                -			["punctuation", "]"]
                -		]]
                -	]],
                -	["macro", [
                -		["function", "latexmath"], ["punctuation", ":"],
                -		["attributes", [
                -			["punctuation", "["],
                -			["quoted", [
                -				["punctuation", "$"],
                -				"\\sum_{n=1}^\\infty \\frac{1}{2^n}",
                -				["punctuation", "$"]
                -			]],
                -			["punctuation", "]"]
                -		]]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for attributes.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/callout_feature.test b/node_modules/prismjs/tests/languages/asciidoc/callout_feature.test
                deleted file mode 100644
                index b7de9b1..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/callout_feature.test
                +++ /dev/null
                @@ -1,34 +0,0 @@
                -Foobar <1>
                -<1> Foo
                -1> Bar
                -> Baz
                -
                -|====
                -| Foobar <1>
                -<1> Foo
                -1> Bar
                -> Baz
                -|====
                -
                -----------------------------------------------------
                -
                -[
                -	"Foobar ", ["callout", "<1>"],
                -	["callout", "<1>"], " Foo\r\n",
                -	["callout", "1>"], " Bar\r\n",
                -	["callout", ">"], " Baz\r\n\r\n",
                -
                -	["table", [
                -		["punctuation", "|===="],
                -		["punctuation", "|"],
                -		" Foobar ", ["callout", "<1>"],
                -		["callout", "<1>"], " Foo\r\n",
                -		["callout", "1>"], " Bar\r\n",
                -		["callout", ">"], " Baz\r\n",
                -		["punctuation", "|===="]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for callouts.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/comment-block_feature.test b/node_modules/prismjs/tests/languages/asciidoc/comment-block_feature.test
                deleted file mode 100644
                index 4c4248e..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/comment-block_feature.test
                +++ /dev/null
                @@ -1,19 +0,0 @@
                -////
                -////
                -
                -////
                -Foobar
                -
                -Baz
                -////
                -
                -----------------------------------------------------
                -
                -[
                -	["comment-block", "////\r\n////"],
                -	["comment-block", "////\r\nFoobar\r\n\r\nBaz\r\n////"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comment blocks.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/comment_feature.test b/node_modules/prismjs/tests/languages/asciidoc/comment_feature.test
                deleted file mode 100644
                index c2ccc51..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/comment_feature.test
                +++ /dev/null
                @@ -1,41 +0,0 @@
                -//
                -// Foobar
                -
                -******
                -//
                -// Foobar
                -******
                -
                -|======
                -|
                -//
                -|
                -// Foobar
                -|======
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "//"],
                -	["comment", "// Foobar"],
                -
                -	["other-block", [
                -		["punctuation", "******"],
                -		["comment", "//"],
                -		["comment", "// Foobar"],
                -		["punctuation", "******"]
                -	]],
                -
                -	["table", [
                -		["punctuation", "|======"],
                -		["punctuation", "|"],
                -		["comment", "//"],
                -		["punctuation", "|"],
                -		["comment", "// Foobar"],
                -		["punctuation", "|======"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/entity_feature.js b/node_modules/prismjs/tests/languages/asciidoc/entity_feature.js
                deleted file mode 100644
                index 2e99cd1..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/entity_feature.js
                +++ /dev/null
                @@ -1,4 +0,0 @@
                -module.exports = {
                -	'➊': '&#x278a;',
                -	'¶': '&#182;'
                -};
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/entity_feature.test b/node_modules/prismjs/tests/languages/asciidoc/entity_feature.test
                deleted file mode 100644
                index a3d5ce8..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/entity_feature.test
                +++ /dev/null
                @@ -1,48 +0,0 @@
                -➊ ¶
                -
                -➊ ¶
                -============
                -
                -['➊ ¶']
                -
                ---
                -➊ ¶
                ---
                -
                -|======
                -| ➊ ¶
                -|======
                -
                -----------------------------------------------------
                -
                -[
                -	["entity", "➊"], ["entity", "¶"],
                -	["title", [
                -		["entity", "➊"], ["entity", "¶"],
                -		["punctuation", "============"]
                -	]],
                -	["attributes", [
                -		["punctuation", "["],
                -		["interpreted", [
                -			["punctuation", "'"],
                -			["entity", "➊"], ["entity", "¶"],
                -			["punctuation", "'"]
                -		]],
                -		["punctuation", "]"]
                -	]],
                -	["other-block", [
                -		["punctuation", "--"],
                -		["entity", "➊"], ["entity", "¶"],
                -		["punctuation", "--"]
                -	]],
                -	["table", [
                -		["punctuation", "|======"],
                -		["punctuation", "|"],
                -		["entity", "➊"], ["entity", "¶"],
                -		["punctuation", "|======"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for entities.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/hr_feature.test b/node_modules/prismjs/tests/languages/asciidoc/hr_feature.test
                deleted file mode 100644
                index 822a7db..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/hr_feature.test
                +++ /dev/null
                @@ -1,14 +0,0 @@
                -'''
                -
                -''''''''''
                -
                -----------------------------------------------------
                -
                -[
                -	["hr", "'''"],
                -	["hr", "''''''''''"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for hr.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/indented-block_feature.test b/node_modules/prismjs/tests/languages/asciidoc/indented-block_feature.test
                deleted file mode 100644
                index c6d6657..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/indented-block_feature.test
                +++ /dev/null
                @@ -1,28 +0,0 @@
                -.
                -
                -	(TM) __foobar__
                -	:bar: baz
                -
                - Foo *bar* baz
                - // Foobar
                - == Foobar ==
                -
                -    Title
                -    ~~~~~
                -    .....
                -    .....
                -
                -----------------------------------------------------
                -
                -[
                -	".\r\n\r\n",
                -	["indented-block", "\t(TM) __foobar__\r\n\t:bar: baz"],
                -	["indented-block", " Foo *bar* baz\r\n // Foobar\r\n == Foobar =="],
                -	["indented-block", "    Title\r\n    ~~~~~\r\n    .....\r\n    ....."]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for indented blocks.
                -Also checks that nothing gets highlighted inside.
                -The initial dot is required because tests are trimmed.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/inline_feature.test b/node_modules/prismjs/tests/languages/asciidoc/inline_feature.test
                deleted file mode 100644
                index d88a570..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/inline_feature.test
                +++ /dev/null
                @@ -1,521 +0,0 @@
                -_emphasis_
                -``double quotes''
                -`single quotes'
                -`monospace`
                -'emphasis'
                -*strong*
                -+monospace+
                -#unquoted#
                -
                -_foo _ bar baz_
                -`foo ' bar baz'
                -`foo ` bar baz`
                -'foo ' bar baz'
                -*foo * bar baz*
                -+foo + bar baz+
                -#foo # bar baz#
                -
                -_foo
                -bar_
                -``foo
                -bar''
                -`foo
                -bar'
                -`foo
                -bar`
                -'foo
                -bar'
                -*foo
                -bar*
                -+foo
                -bar+
                -#foo
                -bar#
                -
                -foo__emphasis__bar
                -foo**strong**bar
                -foo++monospace++bar
                -foo+++passthrough+++bar
                -foo##unquoted##bar
                -foo$$passthrough$$bar
                -foo~subscript~bar
                -foo^superscript^bar
                -foo{attribute-reference}bar
                -foo[[anchor]]bar
                -foo[[[bibliography anchor]]]bar
                -foo<>bar
                -foo(((indexes)))bar
                -foo((indexes))bar
                -
                -====
                -_emphasis_
                -``double quotes''
                -`single quotes'
                -`monospace`
                -'emphasis'
                -*strong*
                -+monospace+
                -#unquoted#
                -__emphasis__
                -**strong**
                -++monospace++
                -+++passthrough+++
                -##unquoted##
                -$$passthrough$$
                -~subscript~
                -^superscript^
                -{attribute-reference}
                -[[anchor]]
                -[[[bibliography anchor]]]
                -<>
                -(((indexes)))
                -((indexes))
                -====
                -
                -|====
                -|
                -_emphasis_
                -``double quotes''
                -`single quotes'
                -`monospace`
                -'emphasis'
                -*strong*
                -+monospace+
                -#unquoted#
                -__emphasis__
                -**strong**
                -++monospace++
                -+++passthrough+++
                -##unquoted##
                -$$passthrough$$
                -~subscript~
                -^superscript^
                -{attribute-reference}
                -[[anchor]]
                -[[[bibliography anchor]]]
                -<>
                -(((indexes)))
                -((indexes))
                -|====
                -
                -['foo *bar* baz']
                -
                -== foo *bar* baz ==
                -
                -{names=value}
                -{names?value}
                -{names!value}
                -{names#value}
                -{names%value}
                -{names@regexp:value1:value2}
                -{names$regexp:value1:value2}
                -{names$regexp::value}
                -{foo,bar=foobar}
                -{foo+bar=foobar}
                -{counter:attrname}
                -
                -----------------------------------------------------
                -
                -[
                -	["inline", [
                -		["italic", [["punctuation", "_"], "emphasis", ["punctuation", "_"]]]
                -	]],
                -	["inline", [
                -		["punctuation", "``"], "double quotes", ["punctuation", "''"]
                -	]],
                -	["inline", [
                -		["punctuation", "`"], "single quotes", ["punctuation", "'"]
                -	]],
                -	["inline", [
                -		["punctuation", "`"], "monospace", ["punctuation", "`"]
                -	]],
                -	["inline", [
                -		["italic", [["punctuation", "'"], "emphasis", ["punctuation", "'"]]]
                -	]],
                -	["inline", [
                -		["bold", [["punctuation", "*"], "strong", ["punctuation", "*"]]]
                -	]],
                -	["inline", [
                -		["punctuation", "+"], "monospace", ["punctuation", "+"]
                -	]],
                -	["inline", [
                -		["punctuation", "#"], "unquoted", ["punctuation", "#"]
                -	]],
                -
                -	["inline", [
                -		["italic", [["punctuation", "_"], "foo _ bar baz", ["punctuation", "_"]]]
                -	]],
                -	["inline", [
                -		["punctuation", "`"], "foo ' bar baz", ["punctuation", "'"]
                -	]],
                -	["inline", [
                -		["punctuation", "`"], "foo ` bar baz", ["punctuation", "`"]
                -	]],
                -	["inline", [
                -		["italic", [["punctuation", "'"], "foo ' bar baz", ["punctuation", "'"]]]
                -	]],
                -	["inline", [
                -		["bold", [["punctuation", "*"], "foo * bar baz", ["punctuation", "*"]]]
                -	]],
                -	["inline", [
                -		["punctuation", "+"], "foo + bar baz", ["punctuation", "+"]
                -	]],
                -	["inline", [
                -		["punctuation", "#"], "foo # bar baz", ["punctuation", "#"]
                -	]],
                -
                -	["inline", [
                -		["italic", [["punctuation", "_"], "foo\r\nbar", ["punctuation", "_"]]]
                -	]],
                -	["inline", [
                -		["punctuation", "``"], "foo\r\nbar", ["punctuation", "''"]
                -	]],
                -	["inline", [
                -		["punctuation", "`"], "foo\r\nbar", ["punctuation", "'"]
                -	]],
                -	["inline", [
                -		["punctuation", "`"], "foo\r\nbar", ["punctuation", "`"]
                -	]],
                -	["inline", [
                -		["italic", [["punctuation", "'"], "foo\r\nbar", ["punctuation", "'"]]]
                -	]],
                -	["inline", [
                -		["bold", [["punctuation", "*"], "foo\r\nbar", ["punctuation", "*"]]]
                -	]],
                -	["inline", [
                -		["punctuation", "+"], "foo\r\nbar", ["punctuation", "+"]
                -	]],
                -	["inline", [
                -		["punctuation", "#"], "foo\r\nbar", ["punctuation", "#"]
                -	]],
                -
                -	"\r\n\r\nfoo",
                -	["inline", [
                -		["italic", [["punctuation", "__"], "emphasis", ["punctuation", "__"]]]
                -	]],
                -	"bar\r\nfoo",
                -	["inline", [
                -		["bold", [["punctuation", "**"], "strong", ["punctuation", "**"]]]
                -	]],
                -	"bar\r\nfoo",
                -	["inline", [
                -		["punctuation", "++"], "monospace", ["punctuation", "++"]
                -	]],
                -	"bar\r\nfoo",
                -	["inline", [
                -		["punctuation", "+++"], "passthrough", ["punctuation", "+++"]
                -	]],
                -	"bar\r\nfoo",
                -	["inline", [
                -		["punctuation", "##"], "unquoted", ["punctuation", "##"]
                -	]],
                -	"bar\r\nfoo",
                -	["inline", [
                -		["punctuation", "$$"], "passthrough", ["punctuation", "$$"]
                -	]],
                -	"bar\r\nfoo",
                -	["inline", [
                -		["punctuation", "~"], "subscript", ["punctuation", "~"]
                -	]],
                -	"bar\r\nfoo",
                -	["inline", [
                -		["punctuation", "^"], "superscript", ["punctuation", "^"]
                -	]],
                -	"bar\r\nfoo",
                -	["inline", [
                -		["attribute-ref", [["punctuation", "{"], ["variable", "attribute-reference"], ["punctuation", "}"]]]
                -	]],
                -	"bar\r\nfoo",
                -	["inline", [
                -		["url", [["punctuation", "[["], "anchor", ["punctuation", "]]"]]]
                -	]],
                -	"bar\r\nfoo",
                -	["inline", [
                -		["url", [["punctuation", "[[["], "bibliography anchor", ["punctuation", "]]]"]]]
                -	]],
                -	"bar\r\nfoo",
                -	["inline", [
                -		["url", [["punctuation", "<<"], "xref", ["punctuation", ">>"]]]
                -	]],
                -	"bar\r\nfoo",
                -	["inline", [
                -		["punctuation", "((("], "indexes", ["punctuation", ")))"]
                -	]],
                -	"bar\r\nfoo",
                -	["inline", [
                -		["punctuation", "(("], "indexes", ["punctuation", "))"]
                -	]],
                -	"bar\r\n\r\n",
                -
                -	["other-block", [
                -		["punctuation", "===="],
                -
                -		["inline", [
                -			["italic", [["punctuation", "_"], "emphasis", ["punctuation", "_"]]]
                -		]],
                -		["inline", [
                -			["punctuation", "``"], "double quotes", ["punctuation", "''"]
                -		]],
                -		["inline", [
                -			["punctuation", "`"], "single quotes", ["punctuation", "'"]
                -		]],
                -		["inline", [
                -			["punctuation", "`"], "monospace", ["punctuation", "`"]
                -		]],
                -		["inline", [
                -			["italic", [["punctuation", "'"], "emphasis", ["punctuation", "'"]]]
                -		]],
                -		["inline", [
                -			["bold", [["punctuation", "*"], "strong", ["punctuation", "*"]]]
                -		]],
                -		["inline", [
                -			["punctuation", "+"], "monospace", ["punctuation", "+"]
                -		]],
                -		["inline", [
                -			["punctuation", "#"], "unquoted", ["punctuation", "#"]
                -		]],
                -		["inline", [
                -			["italic", [["punctuation", "__"], "emphasis", ["punctuation", "__"]]]
                -		]],
                -		["inline", [
                -			["bold", [["punctuation", "**"], "strong", ["punctuation", "**"]]]
                -		]],
                -		["inline", [
                -			["punctuation", "++"], "monospace", ["punctuation", "++"]
                -		]],
                -		["inline", [
                -			["punctuation", "+++"], "passthrough", ["punctuation", "+++"]
                -		]],
                -		["inline", [
                -			["punctuation", "##"], "unquoted", ["punctuation", "##"]
                -		]],
                -		["inline", [
                -			["punctuation", "$$"], "passthrough", ["punctuation", "$$"]
                -		]],
                -		["inline", [
                -			["punctuation", "~"], "subscript", ["punctuation", "~"]
                -		]],
                -		["inline", [
                -			["punctuation", "^"], "superscript", ["punctuation", "^"]
                -		]],
                -		["inline", [
                -			["attribute-ref", [["punctuation", "{"], ["variable", "attribute-reference"], ["punctuation", "}"]]]
                -		]],
                -		["inline", [
                -			["url", [["punctuation", "[["], "anchor", ["punctuation", "]]"]]]
                -		]],
                -		["inline", [
                -			["url", [["punctuation", "[[["], "bibliography anchor", ["punctuation", "]]]"]]]
                -		]],
                -		["inline", [
                -			["url", [["punctuation", "<<"], "xref", ["punctuation", ">>"]]]
                -		]],
                -		["inline", [
                -			["punctuation", "((("], "indexes", ["punctuation", ")))"]
                -		]],
                -		["inline", [
                -			["punctuation", "(("], "indexes", ["punctuation", "))"]
                -		]],
                -
                -		["punctuation", "===="]
                -	]],
                -
                -	["table", [
                -		["punctuation", "|===="],
                -		["punctuation", "|"],
                -
                -		["inline", [
                -			["italic", [["punctuation", "_"], "emphasis", ["punctuation", "_"]]]
                -		]],
                -		["inline", [
                -			["punctuation", "``"], "double quotes", ["punctuation", "''"]
                -		]],
                -		["inline", [
                -			["punctuation", "`"], "single quotes", ["punctuation", "'"]
                -		]],
                -		["inline", [
                -			["punctuation", "`"], "monospace", ["punctuation", "`"]
                -		]],
                -		["inline", [
                -			["italic", [["punctuation", "'"], "emphasis", ["punctuation", "'"]]]
                -		]],
                -		["inline", [
                -			["bold", [["punctuation", "*"], "strong", ["punctuation", "*"]]]
                -		]],
                -		["inline", [
                -			["punctuation", "+"], "monospace", ["punctuation", "+"]
                -		]],
                -		["inline", [
                -			["punctuation", "#"], "unquoted", ["punctuation", "#"]
                -		]],
                -		["inline", [
                -			["italic", [["punctuation", "__"], "emphasis", ["punctuation", "__"]]]
                -		]],
                -		["inline", [
                -			["bold", [["punctuation", "**"], "strong", ["punctuation", "**"]]]
                -		]],
                -		["inline", [
                -			["punctuation", "++"], "monospace", ["punctuation", "++"]
                -		]],
                -		["inline", [
                -			["punctuation", "+++"], "passthrough", ["punctuation", "+++"]
                -		]],
                -		["inline", [
                -			["punctuation", "##"], "unquoted", ["punctuation", "##"]
                -		]],
                -		["inline", [
                -			["punctuation", "$$"], "passthrough", ["punctuation", "$$"]
                -		]],
                -		["inline", [
                -			["punctuation", "~"], "subscript", ["punctuation", "~"]
                -		]],
                -		["inline", [
                -			["punctuation", "^"], "superscript", ["punctuation", "^"]
                -		]],
                -		["inline", [
                -			["attribute-ref", [["punctuation", "{"], ["variable", "attribute-reference"], ["punctuation", "}"]]]
                -		]],
                -		["inline", [
                -			["url", [["punctuation", "[["], "anchor", ["punctuation", "]]"]]]
                -		]],
                -		["inline", [
                -			["url", [["punctuation", "[[["], "bibliography anchor", ["punctuation", "]]]"]]]
                -		]],
                -		["inline", [
                -			["url", [["punctuation", "<<"], "xref", ["punctuation", ">>"]]]
                -		]],
                -		["inline", [
                -			["punctuation", "((("], "indexes", ["punctuation", ")))"]
                -		]],
                -		["inline", [
                -			["punctuation", "(("], "indexes", ["punctuation", "))"]
                -		]],
                -
                -		["punctuation", "|===="]
                -	]],
                -
                -	["attributes", [
                -		["punctuation", "["],
                -		["interpreted", [
                -			["punctuation", "'"],
                -			"foo ", ["inline", [["bold", [["punctuation", "*"], "bar", ["punctuation", "*"]]]]], " baz",
                -			["punctuation", "'"]
                -		]],
                -		["punctuation", "]"]
                -	]],
                -
                -	["title", [
                -		["punctuation", "=="],
                -		" foo ", ["inline", [["bold", [["punctuation", "*"], "bar", ["punctuation", "*"]]]]], " baz ",
                -		["punctuation", "=="]
                -	]],
                -
                -	["inline", [
                -		["attribute-ref", [
                -			["punctuation", "{"],
                -			["variable", "names"],
                -			["operator", "="],
                -			"value",
                -			["punctuation", "}"]
                -		]]
                -	]],
                -	["inline", [
                -		["attribute-ref", [
                -			["punctuation", "{"],
                -			["variable", "names"],
                -			["operator", "?"],
                -			"value",
                -			["punctuation", "}"]
                -		]]
                -	]],
                -	["inline", [
                -		["attribute-ref", [
                -			["punctuation", "{"],
                -			["variable", "names"],
                -			["operator", "!"],
                -			"value",
                -			["punctuation", "}"]
                -		]]
                -	]],
                -	["inline", [
                -		["attribute-ref", [
                -			["punctuation", "{"],
                -			["variable", "names"],
                -			["operator", "#"],
                -			"value",
                -			["punctuation", "}"]
                -		]]
                -	]],
                -	["inline", [
                -		["attribute-ref", [
                -			["punctuation", "{"],
                -			["variable", "names"],
                -			["operator", "%"],
                -			"value",
                -			["punctuation", "}"]
                -		]]
                -	]],
                -	["inline", [
                -		["attribute-ref", [
                -			["punctuation", "{"],
                -			["variable", "names"],
                -			["operator", "@"],
                -			"regexp", ["punctuation", ":"],
                -			"value1", ["punctuation", ":"],
                -			"value2",
                -			["punctuation", "}"]
                -		]]
                -	]],
                -	["inline", [
                -		["attribute-ref", [
                -			["punctuation", "{"],
                -			["variable", "names"],
                -			["operator", "$"],
                -			"regexp", ["punctuation", ":"],
                -			"value1", ["punctuation", ":"],
                -			"value2",
                -			["punctuation", "}"]
                -		]]
                -	]],
                -	["inline", [
                -		["attribute-ref", [
                -			["punctuation", "{"],
                -			["variable", "names"],
                -			["operator", "$"],
                -			"regexp", ["punctuation", "::"],
                -			"value",
                -			["punctuation", "}"]
                -		]]
                -	]],
                -    ["inline", [
                -		["attribute-ref", [
                -			["punctuation", "{"],
                -			["variable", "foo,bar"],
                -			["operator", "="],
                -			"foobar",
                -			["punctuation", "}"]
                -		]]
                -	]],
                -	["inline", [
                -		["attribute-ref", [
                -			["punctuation", "{"],
                -			["variable", "foo+bar"],
                -			["operator", "="],
                -			"foobar",
                -			["punctuation", "}"]
                -		]]
                -	]],
                -	["inline", [
                -		["attribute-ref", [
                -			["punctuation", "{"],
                -			["variable", "counter"],
                -			["punctuation", ":"],
                -			"attrname",
                -			["punctuation", "}"]
                -		]]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all kinds of inline quoted text.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/line-continuation_feature.test b/node_modules/prismjs/tests/languages/asciidoc/line-continuation_feature.test
                deleted file mode 100644
                index 651fa81..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/line-continuation_feature.test
                +++ /dev/null
                @@ -1,18 +0,0 @@
                -Foo +
                -bar
                -
                -* Foo
                -+
                -bar
                -
                -----------------------------------------------------
                -
                -[
                -	"Foo ", ["line-continuation", "+"], "\r\nbar\r\n\r\n",
                -	["list-punctuation", "*"], " Foo\r\n",
                -	["line-continuation", "+"], "\r\nbar"
                -]
                -
                -----------------------------------------------------
                -
                -Checks for line continuations.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/list-label_feature.test b/node_modules/prismjs/tests/languages/asciidoc/list-label_feature.test
                deleted file mode 100644
                index 3e95bb6..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/list-label_feature.test
                +++ /dev/null
                @@ -1,73 +0,0 @@
                -In::
                -Lorem::
                -  Foo bar baz
                -Dolor:::
                -  Ipsum::::
                -    Donec;;
                -      Foobar
                -
                -____
                -In::
                -Lorem::
                -  Foo bar baz
                -Dolor:::
                -  Ipsum::::
                -    Donec;;
                -      Foobar
                -____
                -
                -|========
                -|
                -In::
                -Lorem::
                -  Foo bar baz
                -Dolor:::
                -  Ipsum::::
                -    Donec;;
                -      Foobar
                -|========
                -
                -----------------------------------------------------
                -
                -[
                -	["list-label", "In::"],
                -	["list-label", "Lorem::"],
                -	"\r\n  Foo bar baz\r\n",
                -	["list-label", "Dolor:::"],
                -	["list-label", "Ipsum::::"],
                -	["list-label", "Donec;;"],
                -	"\r\n      Foobar\r\n\r\n",
                -
                -	["other-block", [
                -		["punctuation", "____"],
                -
                -		["list-label", "In::"],
                -		["list-label", "Lorem::"],
                -		"\r\n  Foo bar baz\r\n",
                -		["list-label", "Dolor:::"],
                -		["list-label", "Ipsum::::"],
                -		["list-label", "Donec;;"],
                -		"\r\n      Foobar\r\n",
                -
                -		["punctuation", "____"]
                -	]],
                -
                -	["table", [
                -		["punctuation", "|========"],
                -		["punctuation", "|"],
                -
                -		["list-label", "In::"],
                -		["list-label", "Lorem::"],
                -		"\r\n  Foo bar baz\r\n",
                -		["list-label", "Dolor:::"],
                -		["list-label", "Ipsum::::"],
                -		["list-label", "Donec;;"],
                -		"\r\n      Foobar\r\n",
                -
                -		["punctuation", "|========"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for list labels.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/list-punctuation_feature.test b/node_modules/prismjs/tests/languages/asciidoc/list-punctuation_feature.test
                deleted file mode 100644
                index 60dbf13..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/list-punctuation_feature.test
                +++ /dev/null
                @@ -1,77 +0,0 @@
                -- Foo
                -* Foo
                -** Foo bar
                -*** Foo
                -	1. Foo
                -	2. Foo bar
                -	42. Foo
                -**** Foo
                -***** Foo bar
                -
                -. Foo
                -.. Foo
                -    a. Foo
                -    b. Foo
                -    z. Foo
                -... Foo bar
                -.... Foo
                -	i) Foo
                -	vi) Bar
                -	xxvii) Baz
                -..... Foo
                -
                -____
                -. 1
                -.. 2
                -____
                -
                -|===
                -|
                -xi) a
                -xii) b
                -|===
                -
                -----------------------------------------------------
                -
                -[
                -	["list-punctuation", "-"], " Foo\r\n",
                -	["list-punctuation", "*"], " Foo\r\n",
                -	["list-punctuation", "**"], " Foo bar\r\n",
                -	["list-punctuation", "***"], " Foo\r\n\t",
                -	["list-punctuation", "1."], " Foo\r\n\t",
                -	["list-punctuation", "2."], " Foo bar\r\n\t",
                -	["list-punctuation", "42."], " Foo\r\n",
                -	["list-punctuation", "****"], " Foo\r\n",
                -	["list-punctuation", "*****"], " Foo bar\r\n\r\n",
                -
                -	["list-punctuation", "."], " Foo\r\n",
                -	["list-punctuation", ".."], " Foo\r\n    ",
                -	["list-punctuation", "a."], " Foo\r\n    ",
                -	["list-punctuation", "b."], " Foo\r\n    ",
                -	["list-punctuation", "z."], " Foo\r\n",
                -	["list-punctuation", "..."], " Foo bar\r\n",
                -	["list-punctuation", "...."], " Foo\r\n\t",
                -	["list-punctuation", "i)"], " Foo\r\n\t",
                -	["list-punctuation", "vi)"], " Bar\r\n\t",
                -	["list-punctuation", "xxvii)"], " Baz\r\n",
                -	["list-punctuation", "....."], " Foo\r\n\r\n",
                -
                -	["other-block", [
                -		["punctuation", "____"],
                -		["list-punctuation", "."], " 1\r\n",
                -		["list-punctuation", ".."], " 2\r\n",
                -		["punctuation", "____"]
                -	]],
                -
                -	["table", [
                -		["punctuation", "|==="],
                -		["punctuation", "|"],
                -		["list-punctuation", "xi)"], " a\r\n",
                -		["list-punctuation", "xii)"], " b\r\n",
                -		["punctuation", "|==="]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for list punctuation.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/literal-block_feature.test b/node_modules/prismjs/tests/languages/asciidoc/literal-block_feature.test
                deleted file mode 100644
                index 9449ca0..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/literal-block_feature.test
                +++ /dev/null
                @@ -1,46 +0,0 @@
                -----
                -== Foobar ==
                -Bar _baz_ (TM) <1>
                -* Foo <2>
                -<1> Foobar
                -2> Baz
                -----
                -
                -.......
                -.Foo
                -. Foobar <1>
                -include::addendum.txt <2>
                -> Foo
                -> Bar
                -__Foo__**bar**{baz}
                -.......
                -
                -----------------------------------------------------
                -
                -[
                -	["literal-block", [
                -		["punctuation", "----"],
                -		"\r\n== Foobar ==\r\nBar _baz_ (TM) ",
                -		["callout", "<1>"],
                -		"\r\n* Foo ",
                -		["callout", "<2>"],
                -		["callout", "<1>"], " Foobar\r\n",
                -		["callout", "2>"], " Baz\r\n",
                -		["punctuation", "----"]
                -	]],
                -	["literal-block", [
                -		["punctuation", "......."],
                -		"\r\n.Foo\r\n. Foobar ",
                -		["callout", "<1>"],
                -		"\r\ninclude::addendum.txt ",
                -		["callout", "<2>"],
                -		["callout", ">"], " Foo\r\n",
                -		["callout", ">"], " Bar\r\n__Foo__**bar**{baz}\r\n",
                -		["punctuation", "......."]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for literal blocks and listing blocks.
                -Also checks that nothing gets highlighted inside expect callouts.
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/macro_feature.test b/node_modules/prismjs/tests/languages/asciidoc/macro_feature.test
                deleted file mode 100644
                index 50ee161..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/macro_feature.test
                +++ /dev/null
                @@ -1,250 +0,0 @@
                -footnote:[An example footnote.]
                -indexterm:[Tigers,Big cats]
                -
                -http://www.docbook.org/[DocBook.org]
                -include::chapt1.txt[tabsize=2]
                -mailto:srackham@gmail.com[]
                -
                -image:screen-thumbnail.png[height=32,link="screen.png"]
                -
                -== Foo image:foo.jpg[] ==
                -
                ---
                -footnote:[An example footnote.]
                -indexterm:[Tigers,Big cats]
                -
                -http://www.docbook.org/[DocBook.org]
                -include::chapt1.txt[tabsize=2]
                -mailto:srackham@gmail.com[]
                -
                -image:screen-thumbnail.png[height=32,link="screen.png"]
                ---
                -
                -|====
                -|
                -footnote:[An example footnote.]
                -indexterm:[Tigers,Big cats]
                -
                -http://www.docbook.org/[DocBook.org]
                -include::chapt1.txt[tabsize=2]
                -mailto:srackham@gmail.com[]
                -
                -image:screen-thumbnail.png[height=32,link="screen.png"]
                -|====
                -
                -----------------------------------------------------
                -
                -[
                -	["macro", [
                -		["function", "footnote"], ["punctuation", ":"],
                -		["attributes", [
                -			["punctuation", "["],
                -			["attr-value", "An example footnote."],
                -			["punctuation", "]"]
                -		]]
                -	]],
                -	["macro", [
                -		["function", "indexterm"], ["punctuation", ":"],
                -		["attributes", [
                -			["punctuation", "["],
                -			["attr-value", "Tigers"],
                -			["punctuation", ","],
                -			["attr-value", "Big cats"],
                -			["punctuation", "]"]
                -		]]
                -	]],
                -	["macro", [
                -		["function", "http"], ["punctuation", ":"],
                -		"//www.docbook.org/",
                -		["attributes", [
                -			["punctuation", "["],
                -			["attr-value", "DocBook.org"],
                -			["punctuation", "]"]
                -		]]
                -	]],
                -	["macro", [
                -		["function", "include"], ["punctuation", "::"],
                -		"chapt1.txt",
                -		["attributes", [
                -			["punctuation", "["],
                -			["variable", "tabsize"],
                -			["operator", "="],
                -			["attr-value", "2"],
                -			["punctuation", "]"]
                -		]]
                -	]],
                -	["macro", [
                -		["function", "mailto"], ["punctuation", ":"],
                -		"srackham@gmail.com",
                -		["attributes", [
                -			["punctuation", "["], ["punctuation", "]"]
                -		]]
                -	]],
                -	["macro", [
                -		["function", "image"], ["punctuation", ":"],
                -		"screen-thumbnail.png",
                -		["attributes", [
                -			["punctuation", "["],
                -			["variable", "height"],
                -			["operator", "="],
                -			["attr-value", "32"],
                -			["punctuation", ","],
                -			["variable", "link"],
                -			["operator", "="],
                -			["string", "\"screen.png\""],
                -			["punctuation", "]"]
                -		]]
                -	]],
                -
                -	["title", [
                -		["punctuation", "=="],
                -		" Foo ",
                -		["macro", [
                -			["function", "image"], ["punctuation", ":"],
                -			"foo.jpg",
                -			["attributes", [
                -				["punctuation", "["], ["punctuation", "]"]
                -			]]
                -		]],
                -		["punctuation", "=="]
                -	]],
                -
                -	["other-block", [
                -		["punctuation", "--"],
                -
                -		["macro", [
                -			["function", "footnote"], ["punctuation", ":"],
                -			["attributes", [
                -				["punctuation", "["],
                -				["attr-value", "An example footnote."],
                -				["punctuation", "]"]
                -			]]
                -		]],
                -		["macro", [
                -			["function", "indexterm"], ["punctuation", ":"],
                -			["attributes", [
                -				["punctuation", "["],
                -				["attr-value", "Tigers"],
                -				["punctuation", ","],
                -				["attr-value", "Big cats"],
                -				["punctuation", "]"]
                -			]]
                -		]],
                -		["macro", [
                -			["function", "http"], ["punctuation", ":"],
                -			"//www.docbook.org/",
                -			["attributes", [
                -				["punctuation", "["],
                -				["attr-value", "DocBook.org"],
                -				["punctuation", "]"]
                -			]]
                -		]],
                -		["macro", [
                -			["function", "include"], ["punctuation", "::"],
                -			"chapt1.txt",
                -			["attributes", [
                -				["punctuation", "["],
                -				["variable", "tabsize"],
                -				["operator", "="],
                -				["attr-value", "2"],
                -				["punctuation", "]"]
                -			]]
                -		]],
                -		["macro", [
                -			["function", "mailto"], ["punctuation", ":"],
                -			"srackham@gmail.com",
                -			["attributes", [
                -				["punctuation", "["], ["punctuation", "]"]
                -			]]
                -		]],
                -		["macro", [
                -			["function", "image"], ["punctuation", ":"],
                -			"screen-thumbnail.png",
                -			["attributes", [
                -				["punctuation", "["],
                -				["variable", "height"],
                -				["operator", "="],
                -				["attr-value", "32"],
                -				["punctuation", ","],
                -				["variable", "link"],
                -				["operator", "="],
                -				["string", "\"screen.png\""],
                -				["punctuation", "]"]
                -			]]
                -		]],
                -
                -		["punctuation", "--"]
                -	]],
                -
                -	["table", [
                -		["punctuation", "|===="],
                -		["punctuation", "|"],
                -
                -		["macro", [
                -			["function", "footnote"], ["punctuation", ":"],
                -			["attributes", [
                -				["punctuation", "["],
                -				["attr-value", "An example footnote."],
                -				["punctuation", "]"]
                -			]]
                -		]],
                -		["macro", [
                -			["function", "indexterm"], ["punctuation", ":"],
                -			["attributes", [
                -				["punctuation", "["],
                -				["attr-value", "Tigers"],
                -				["punctuation", ","],
                -				["attr-value", "Big cats"],
                -				["punctuation", "]"]
                -			]]
                -		]],
                -		["macro", [
                -			["function", "http"], ["punctuation", ":"],
                -			"//www.docbook.org/",
                -			["attributes", [
                -				["punctuation", "["],
                -				["attr-value", "DocBook.org"],
                -				["punctuation", "]"]
                -			]]
                -		]],
                -		["macro", [
                -			["function", "include"], ["punctuation", "::"],
                -			"chapt1.txt",
                -			["attributes", [
                -				["punctuation", "["],
                -				["variable", "tabsize"],
                -				["operator", "="],
                -				["attr-value", "2"],
                -				["punctuation", "]"]
                -			]]
                -		]],
                -		["macro", [
                -			["function", "mailto"], ["punctuation", ":"],
                -			"srackham@gmail.com",
                -			["attributes", [
                -				["punctuation", "["], ["punctuation", "]"]
                -			]]
                -		]],
                -		["macro", [
                -			["function", "image"], ["punctuation", ":"],
                -			"screen-thumbnail.png",
                -			["attributes", [
                -				["punctuation", "["],
                -				["variable", "height"],
                -				["operator", "="],
                -				["attr-value", "32"],
                -				["punctuation", ","],
                -				["variable", "link"],
                -				["operator", "="],
                -				["string", "\"screen.png\""],
                -				["punctuation", "]"]
                -			]]
                -		]],
                -
                -		["punctuation", "|===="]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for macros.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/other-block_feature.test b/node_modules/prismjs/tests/languages/asciidoc/other-block_feature.test
                deleted file mode 100644
                index fb33c20..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/other-block_feature.test
                +++ /dev/null
                @@ -1,45 +0,0 @@
                -****
                -Sidebar block <1>
                -****
                -
                -______
                -Quote block <2>
                -______
                -
                -========
                -Example block <3>
                -========
                -
                ---
                -Open block <4>
                ---
                -
                -----------------------------------------------------
                -
                -[
                -	["other-block", [
                -		["punctuation", "****"],
                -		"\r\nSidebar block <1>\r\n",
                -		["punctuation", "****"]
                -	]],
                -	["other-block", [
                -		["punctuation", "______"],
                -		"\r\nQuote block <2>\r\n",
                -		["punctuation", "______"]
                -	]],
                -	["other-block", [
                -		["punctuation", "========"],
                -		"\r\nExample block <3>\r\n",
                -		["punctuation", "========"]
                -	]],
                -	["other-block", [
                -		["punctuation", "--"],
                -		"\r\nOpen block <4>\r\n",
                -		["punctuation", "--"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for sidebar blocks, quote blocks, example blocks and open blocks.
                -Also checks that callouts are not highlighted.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/page-break_feature.test b/node_modules/prismjs/tests/languages/asciidoc/page-break_feature.test
                deleted file mode 100644
                index 010a590..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/page-break_feature.test
                +++ /dev/null
                @@ -1,14 +0,0 @@
                -<<<
                -
                -<<<<<<<<<<<<<
                -
                -----------------------------------------------------
                -
                -[
                -	["page-break", "<<<"],
                -	["page-break", "<<<<<<<<<<<<<"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for page breaks.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/passthrough-block_feature.test b/node_modules/prismjs/tests/languages/asciidoc/passthrough-block_feature.test
                deleted file mode 100644
                index a5bb08b..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/passthrough-block_feature.test
                +++ /dev/null
                @@ -1,29 +0,0 @@
                -++++
                -.Fo__o__bar *baz*
                -Fo(((o)))bar baz
                -* Foobar baz
                -include::addendum.txt[]
                -++++
                -
                -----------------------------------------------------
                -
                -[
                -	["passthrough-block", [
                -		["punctuation", "++++"],
                -		"\r\n.Fo__o__bar *baz*\r\nFo(((o)))bar baz\r\n* Foobar baz\r\n",
                -		["macro", [
                -			["function", "include"],
                -			["punctuation", "::"],
                -			"addendum.txt",
                -			["attributes", [
                -				["punctuation", "["], ["punctuation", "]"]
                -			]]
                -		]],
                -		["punctuation", "++++"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for passthrough blocks.
                -Also checks that nothing gets highlighted inside expect macros.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/replacement_feature.test b/node_modules/prismjs/tests/languages/asciidoc/replacement_feature.test
                deleted file mode 100644
                index ca27610..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/replacement_feature.test
                +++ /dev/null
                @@ -1,48 +0,0 @@
                -(C) (TM) (R)
                -
                -(C) (TM) (R)
                -============
                -
                -['(C) (TM) (R)']
                -
                ---
                -(C) (TM) (R)
                ---
                -
                -|======
                -| (C) (TM) (R)
                -|======
                -
                -----------------------------------------------------
                -
                -[
                -	["replacement", "(C)"], ["replacement", "(TM)"], ["replacement", "(R)"],
                -	["title", [
                -		["replacement", "(C)"], ["replacement", "(TM)"], ["replacement", "(R)"],
                -		["punctuation", "============"]
                -	]],
                -	["attributes", [
                -		["punctuation", "["],
                -		["interpreted", [
                -			["punctuation", "'"],
                -			["replacement", "(C)"], ["replacement", "(TM)"], ["replacement", "(R)"],
                -			["punctuation", "'"]
                -		]],
                -		["punctuation", "]"]
                -	]],
                -	["other-block", [
                -		["punctuation", "--"],
                -		["replacement", "(C)"], ["replacement", "(TM)"], ["replacement", "(R)"],
                -		["punctuation", "--"]
                -	]],
                -	["table", [
                -		["punctuation", "|======"],
                -		["punctuation", "|"],
                -		["replacement", "(C)"], ["replacement", "(TM)"], ["replacement", "(R)"],
                -		["punctuation", "|======"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for replacements.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/table_feature.test b/node_modules/prismjs/tests/languages/asciidoc/table_feature.test
                deleted file mode 100644
                index 0b4bd3c..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/table_feature.test
                +++ /dev/null
                @@ -1,61 +0,0 @@
                -|===
                -|1
                -|===
                -
                -|============================
                -|1 >s|2 |3 |4
                -^|5 2.2+^.^|6 .3+<.>m|7
                -2*^|8
                -|9 2+>|10
                -|============================
                -
                -|==============================================
                -|Normal cell
                -
                -|Cell with nested table
                -
                -!==============================================
                -!Nested table cell 1 !Nested table cell 2
                -!==============================================
                -
                -|==============================================
                -
                -----------------------------------------------------
                -
                -[
                -	["table", [
                -		["punctuation", "|==="],
                -		["punctuation", "|"], "1\r\n",
                -		["punctuation", "|==="]
                -	]],
                -
                -	["table", [
                -		["punctuation", "|============================"],
                -		["punctuation", "|"], "1 ",
                -		["specifiers", ">s"], ["punctuation", "|"], "2 ",
                -		["punctuation", "|"], "3 ",
                -		["punctuation", "|"], "4\r\n",
                -		["specifiers", "^"], ["punctuation", "|"], "5 ",
                -		["specifiers", "2.2+^.^"], ["punctuation", "|"], "6 ",
                -		["specifiers", ".3+<.>m"], ["punctuation", "|"], "7\r\n",
                -		["specifiers", "2*^"], ["punctuation", "|"], "8\r\n",
                -		["punctuation", "|"], "9 ",
                -		["specifiers", "2+>"], ["punctuation", "|"], "10\r\n",
                -		["punctuation", "|============================"]
                -	]],
                -
                -	["table", [
                -		["punctuation", "|=============================================="],
                -		["punctuation", "|"], "Normal cell\r\n\r\n",
                -		["punctuation", "|"], "Cell with nested table\r\n\r\n",
                -		["punctuation", "!=============================================="],
                -		["punctuation", "!"], "Nested table cell 1 ",
                -		["punctuation", "!"], "Nested table cell 2\r\n",
                -		["punctuation", "!=============================================="],
                -		["punctuation", "|=============================================="]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for tables.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/asciidoc/title_feature.test b/node_modules/prismjs/tests/languages/asciidoc/title_feature.test
                deleted file mode 100644
                index a9d4047..0000000
                --- a/node_modules/prismjs/tests/languages/asciidoc/title_feature.test
                +++ /dev/null
                @@ -1,80 +0,0 @@
                -Foobar
                -======
                -
                -Foobar
                -------
                -
                -Foobar
                -~~~~~~
                -
                -Foobar
                -^^^^^^
                -
                -Foo
                -+++
                -
                -= Foo bar baz =
                -== Foo bar baz
                -=== Foo bar baz ===
                -==== Foo bar baz
                -===== Foo bar baz =====
                -
                -.Foo bar baz
                -
                -----------------------------------------------------
                -
                -[
                -	["title", [
                -		"Foobar\r\n",
                -		["punctuation", "======"]
                -	]],
                -	["title", [
                -		"Foobar\r\n",
                -		["punctuation", "------"]
                -	]],
                -	["title", [
                -		"Foobar\r\n",
                -		["punctuation", "~~~~~~"]
                -	]],
                -	["title", [
                -		"Foobar\r\n",
                -		["punctuation", "^^^^^^"]
                -	]],
                -	["title", [
                -		"Foo\r\n",
                -		["punctuation", "+++"]
                -	]],
                -
                -	["title", [
                -		["punctuation", "="],
                -		" Foo bar baz ",
                -		["punctuation", "="]
                -	]],
                -	["title", [
                -		["punctuation", "=="],
                -		" Foo bar baz"
                -	]],
                -	["title", [
                -		["punctuation", "==="],
                -		" Foo bar baz ",
                -		["punctuation", "==="]
                -	]],
                -	["title", [
                -		["punctuation", "===="],
                -		" Foo bar baz"
                -	]],
                -	["title", [
                -		["punctuation", "====="],
                -		" Foo bar baz ",
                -		["punctuation", "====="]
                -	]],
                -
                -	["title", [
                -		["punctuation", "."],
                -		"Foo bar baz"
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for titles.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/aspnet/comment_feature.test b/node_modules/prismjs/tests/languages/aspnet/comment_feature.test
                deleted file mode 100644
                index da388e5..0000000
                --- a/node_modules/prismjs/tests/languages/aspnet/comment_feature.test
                +++ /dev/null
                @@ -1,16 +0,0 @@
                -<%----%>
                -<%--foo--%>
                -<%-- foo
                -bar --%>
                -
                -----------------------------------------------------
                -
                -[
                -	["asp comment", "<%----%>"],
                -	["asp comment", "<%--foo--%>"],
                -	["asp comment", "<%-- foo\r\nbar --%>"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/aspnet/page-directive_feature.test b/node_modules/prismjs/tests/languages/aspnet/page-directive_feature.test
                deleted file mode 100644
                index 3d79dae..0000000
                --- a/node_modules/prismjs/tests/languages/aspnet/page-directive_feature.test
                +++ /dev/null
                @@ -1,92 +0,0 @@
                -<%@Assembly foo="bar"%>
                -<% @Control foo="bar" %>
                -<%@ Implements%>
                -<%@Import%>
                -<%@Master%>
                -<%@MasterType%>
                -<%@OutputCache%>
                -<%@Page%>
                -<%@PreviousPageType%>
                -<%@Reference%>
                -<%@Register%>
                -
                -----------------------------------------------------
                -
                -[
                -	["page-directive tag", [
                -		["page-directive tag", "<%@Assembly"],
                -		["attr-name", [
                -			"foo"
                -		]],
                -		["attr-value", [
                -			["punctuation", "="],
                -			["punctuation", "\""],
                -			"bar",
                -			["punctuation", "\""]
                -		]],
                -		["page-directive tag", "%>"]
                -	]],
                -
                -	["page-directive tag", [
                -        ["page-directive tag", "<% @Control"],
                -        ["attr-name", [
                -            "foo"
                -        ]],
                -        ["attr-value", [
                -            ["punctuation", "="],
                -            ["punctuation", "\""],
                -            "bar",
                -            ["punctuation", "\""]
                -        ]],
                -        ["page-directive tag", "%>"]
                -    ]],
                -
                -    ["page-directive tag", [
                -        ["page-directive tag", "<%@ Implements"],
                -        ["page-directive tag", "%>"]
                -    ]],
                -
                -    ["page-directive tag", [
                -        ["page-directive tag", "<%@Import"],
                -        ["page-directive tag", "%>"]
                -    ]],
                -
                -    ["page-directive tag", [
                -        ["page-directive tag", "<%@Master"],
                -        ["page-directive tag", "%>"]
                -    ]],
                -
                -    ["page-directive tag", [
                -        ["page-directive tag", "<%@MasterType"],
                -        ["page-directive tag", "%>"]
                -    ]],
                -
                -    ["page-directive tag", [
                -        ["page-directive tag", "<%@OutputCache"],
                -        ["page-directive tag", "%>"]
                -    ]],
                -
                -    ["page-directive tag", [
                -        ["page-directive tag", "<%@Page"],
                -        ["page-directive tag", "%>"]
                -    ]],
                -
                -    ["page-directive tag", [
                -        ["page-directive tag", "<%@PreviousPageType"],
                -        ["page-directive tag", "%>"]
                -    ]],
                -
                -    ["page-directive tag", [
                -        ["page-directive tag", "<%@Reference"],
                -        ["page-directive tag", "%>"]
                -    ]],
                -
                -    ["page-directive tag", [
                -        ["page-directive tag", "<%@Register"],
                -        ["page-directive tag", "%>"]
                -    ]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all page directives.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autohotkey/boolean_feature.test b/node_modules/prismjs/tests/languages/autohotkey/boolean_feature.test
                deleted file mode 100644
                index 6d97d4b..0000000
                --- a/node_modules/prismjs/tests/languages/autohotkey/boolean_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -true
                -false
                -
                -----------------------------------------------------
                -
                -[
                -	["boolean", "true"],
                -	["boolean", "false"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for booleans
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autohotkey/builtin_feature.test b/node_modules/prismjs/tests/languages/autohotkey/builtin_feature.test
                deleted file mode 100644
                index afbe8d3..0000000
                --- a/node_modules/prismjs/tests/languages/autohotkey/builtin_feature.test
                +++ /dev/null
                @@ -1,147 +0,0 @@
                -abs
                -acos
                -asc
                -asin
                -atan
                -ceil
                -chr
                -class
                -cos
                -dllcall
                -exp
                -fileexist
                -Fileopen
                -floor
                -il_add
                -il_create
                -il_destroy
                -instr
                -substr
                -isfunc
                -islabel
                -IsObject
                -ln
                -log
                -lv_add
                -lv_delete
                -lv_deletecol
                -lv_getcount
                -lv_getnext
                -lv_gettext
                -lv_insert
                -lv_insertcol
                -lv_modify
                -lv_modifycol
                -lv_setimagelist
                -mod
                -onmessage
                -numget
                -numput
                -registercallback
                -regexmatch
                -regexreplace
                -round
                -sin
                -tan
                -sqrt
                -strlen
                -sb_seticon
                -sb_setparts
                -sb_settext
                -strsplit
                -tv_add
                -tv_delete
                -tv_getchild
                -tv_getcount
                -tv_getnext
                -tv_get
                -tv_getparent
                -tv_getprev
                -tv_getselection
                -tv_gettext
                -tv_modify
                -varsetcapacity
                -winactive
                -winexist
                -__New
                -__Call
                -__Get
                -__Set
                -
                -----------------------------------------------------
                -
                -[
                -	["builtin", "abs"],
                -	["builtin", "acos"],
                -	["builtin", "asc"],
                -	["builtin", "asin"],
                -	["builtin", "atan"],
                -	["builtin", "ceil"],
                -	["builtin", "chr"],
                -	["builtin", "class"],
                -	["builtin", "cos"],
                -	["builtin", "dllcall"],
                -	["builtin", "exp"],
                -	["builtin", "fileexist"],
                -	["builtin", "Fileopen"],
                -	["builtin", "floor"],
                -	["builtin", "il_add"],
                -	["builtin", "il_create"],
                -	["builtin", "il_destroy"],
                -	["builtin", "instr"],
                -	["builtin", "substr"],
                -	["builtin", "isfunc"],
                -	["builtin", "islabel"],
                -	["builtin", "IsObject"],
                -	["builtin", "ln"],
                -	["builtin", "log"],
                -	["builtin", "lv_add"],
                -	["builtin", "lv_delete"],
                -	["builtin", "lv_deletecol"],
                -	["builtin", "lv_getcount"],
                -	["builtin", "lv_getnext"],
                -	["builtin", "lv_gettext"],
                -	["builtin", "lv_insert"],
                -	["builtin", "lv_insertcol"],
                -	["builtin", "lv_modify"],
                -	["builtin", "lv_modifycol"],
                -	["builtin", "lv_setimagelist"],
                -	["builtin", "mod"],
                -	["builtin", "onmessage"],
                -	["builtin", "numget"],
                -	["builtin", "numput"],
                -	["builtin", "registercallback"],
                -	["builtin", "regexmatch"],
                -	["builtin", "regexreplace"],
                -	["builtin", "round"],
                -	["builtin", "sin"],
                -	["builtin", "tan"],
                -	["builtin", "sqrt"],
                -	["builtin", "strlen"],
                -	["builtin", "sb_seticon"],
                -	["builtin", "sb_setparts"],
                -	["builtin", "sb_settext"],
                -	["builtin", "strsplit"],
                -	["builtin", "tv_add"],
                -	["builtin", "tv_delete"],
                -	["builtin", "tv_getchild"],
                -	["builtin", "tv_getcount"],
                -	["builtin", "tv_getnext"],
                -	["builtin", "tv_get"],
                -	["builtin", "tv_getparent"],
                -	["builtin", "tv_getprev"],
                -	["builtin", "tv_getselection"],
                -	["builtin", "tv_gettext"],
                -	["builtin", "tv_modify"],
                -	["builtin", "varsetcapacity"],
                -	["builtin", "winactive"],
                -	["builtin", "winexist"],
                -	["builtin", "__New"],
                -	["builtin", "__Call"],
                -	["builtin", "__Get"],
                -	["builtin", "__Set"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all builtins.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autohotkey/comment_feature.test b/node_modules/prismjs/tests/languages/autohotkey/comment_feature.test
                deleted file mode 100644
                index 5b00ce2..0000000
                --- a/node_modules/prismjs/tests/languages/autohotkey/comment_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -;foo
                -; bar
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", ";foo"],
                -	["comment", "; bar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autohotkey/constant_feature.test b/node_modules/prismjs/tests/languages/autohotkey/constant_feature.test
                deleted file mode 100644
                index ab11673..0000000
                --- a/node_modules/prismjs/tests/languages/autohotkey/constant_feature.test
                +++ /dev/null
                @@ -1,275 +0,0 @@
                -a_ahkpath
                -a_ahkversion
                -a_appdata
                -a_appdatacommon
                -a_autotrim
                -a_batchlines
                -a_caretx
                -a_carety
                -a_computername
                -a_controldelay
                -a_cursor
                -a_dd
                -a_ddd
                -a_dddd
                -a_defaultmousespeed
                -a_desktop
                -a_desktopcommon
                -a_detecthiddentext
                -a_detecthiddenwindows
                -a_endchar
                -a_eventinfo
                -a_exitreason
                -a_formatfloat
                -a_formatinteger
                -a_gui
                -a_guievent
                -a_guicontrol
                -a_guicontrolevent
                -a_guiheight
                -a_guiwidth
                -a_guix
                -a_guiy
                -a_hour
                -a_iconfile
                -a_iconhidden
                -a_iconnumber
                -a_icontip
                -a_index
                -a_ipaddress1
                -a_ipaddress2
                -a_ipaddress3
                -a_ipaddress4
                -a_isadmin
                -a_iscompiled
                -a_iscritical
                -a_ispaused
                -a_issuspended
                -a_isunicode
                -a_keydelay
                -a_language
                -a_lasterror
                -a_linefile
                -a_linenumber
                -a_loopfield
                -a_loopfileattrib
                -a_loopfiledir
                -a_loopfileext
                -a_loopfilefullpath
                -a_loopfilelongpath
                -a_loopfilename
                -a_loopfileshortname
                -a_loopfileshortpath
                -a_loopfilesize
                -a_loopfilesizekb
                -a_loopfilesizemb
                -a_loopfiletimeaccessed
                -a_loopfiletimecreated
                -a_loopfiletimemodified
                -a_loopreadline
                -a_loopregkey
                -a_loopregname
                -a_loopregsubkey
                -a_loopregtimemodified
                -a_loopregtype
                -a_mday
                -a_min
                -a_mm
                -a_mmm
                -a_mmmm
                -a_mon
                -a_mousedelay
                -a_msec
                -a_mydocuments
                -a_now
                -a_nowutc
                -a_numbatchlines
                -a_ostype
                -a_osversion
                -a_priorhotkey
                -programfiles
                -a_programfiles
                -a_programs
                -a_programscommon
                -a_screenheight
                -a_screenwidth
                -a_scriptdir
                -a_scriptfullpath
                -a_scriptname
                -a_sec
                -a_space
                -a_startmenu
                -a_startmenucommon
                -a_startup
                -a_startupcommon
                -a_stringcasesense
                -a_tab
                -a_temp
                -a_thisfunc
                -a_thishotkey
                -a_thislabel
                -a_thismenu
                -a_thismenuitem
                -a_thismenuitempos
                -a_tickcount
                -a_timeidle
                -a_timeidlephysical
                -a_timesincepriorhotkey
                -a_timesincethishotkey
                -a_titlematchmode
                -a_titlematchmodespeed
                -a_username
                -a_wday
                -a_windelay
                -a_windir
                -a_workingdir
                -a_yday
                -a_year
                -a_yweek
                -a_yyyy
                -clipboard
                -clipboardall
                -comspec
                -errorlevel
                -
                -----------------------------------------------------
                -
                -[
                -	["constant", "a_ahkpath"],
                -	["constant", "a_ahkversion"],
                -	["constant", "a_appdata"],
                -	["constant", "a_appdatacommon"],
                -	["constant", "a_autotrim"],
                -	["constant", "a_batchlines"],
                -	["constant", "a_caretx"],
                -	["constant", "a_carety"],
                -	["constant", "a_computername"],
                -	["constant", "a_controldelay"],
                -	["constant", "a_cursor"],
                -	["constant", "a_dd"],
                -	["constant", "a_ddd"],
                -	["constant", "a_dddd"],
                -	["constant", "a_defaultmousespeed"],
                -	["constant", "a_desktop"],
                -	["constant", "a_desktopcommon"],
                -	["constant", "a_detecthiddentext"],
                -	["constant", "a_detecthiddenwindows"],
                -	["constant", "a_endchar"],
                -	["constant", "a_eventinfo"],
                -	["constant", "a_exitreason"],
                -	["constant", "a_formatfloat"],
                -	["constant", "a_formatinteger"],
                -	["constant", "a_gui"],
                -	["constant", "a_guievent"],
                -	["constant", "a_guicontrol"],
                -	["constant", "a_guicontrolevent"],
                -	["constant", "a_guiheight"],
                -	["constant", "a_guiwidth"],
                -	["constant", "a_guix"],
                -	["constant", "a_guiy"],
                -	["constant", "a_hour"],
                -	["constant", "a_iconfile"],
                -	["constant", "a_iconhidden"],
                -	["constant", "a_iconnumber"],
                -	["constant", "a_icontip"],
                -	["constant", "a_index"],
                -	["constant", "a_ipaddress1"],
                -	["constant", "a_ipaddress2"],
                -	["constant", "a_ipaddress3"],
                -	["constant", "a_ipaddress4"],
                -	["constant", "a_isadmin"],
                -	["constant", "a_iscompiled"],
                -	["constant", "a_iscritical"],
                -	["constant", "a_ispaused"],
                -	["constant", "a_issuspended"],
                -	["constant", "a_isunicode"],
                -	["constant", "a_keydelay"],
                -	["constant", "a_language"],
                -	["constant", "a_lasterror"],
                -	["constant", "a_linefile"],
                -	["constant", "a_linenumber"],
                -	["constant", "a_loopfield"],
                -	["constant", "a_loopfileattrib"],
                -	["constant", "a_loopfiledir"],
                -	["constant", "a_loopfileext"],
                -	["constant", "a_loopfilefullpath"],
                -	["constant", "a_loopfilelongpath"],
                -	["constant", "a_loopfilename"],
                -	["constant", "a_loopfileshortname"],
                -	["constant", "a_loopfileshortpath"],
                -	["constant", "a_loopfilesize"],
                -	["constant", "a_loopfilesizekb"],
                -	["constant", "a_loopfilesizemb"],
                -	["constant", "a_loopfiletimeaccessed"],
                -	["constant", "a_loopfiletimecreated"],
                -	["constant", "a_loopfiletimemodified"],
                -	["constant", "a_loopreadline"],
                -	["constant", "a_loopregkey"],
                -	["constant", "a_loopregname"],
                -	["constant", "a_loopregsubkey"],
                -	["constant", "a_loopregtimemodified"],
                -	["constant", "a_loopregtype"],
                -	["constant", "a_mday"],
                -	["constant", "a_min"],
                -	["constant", "a_mm"],
                -	["constant", "a_mmm"],
                -	["constant", "a_mmmm"],
                -	["constant", "a_mon"],
                -	["constant", "a_mousedelay"],
                -	["constant", "a_msec"],
                -	["constant", "a_mydocuments"],
                -	["constant", "a_now"],
                -	["constant", "a_nowutc"],
                -	["constant", "a_numbatchlines"],
                -	["constant", "a_ostype"],
                -	["constant", "a_osversion"],
                -	["constant", "a_priorhotkey"],
                -	["constant", "programfiles"],
                -	["constant", "a_programfiles"],
                -	["constant", "a_programs"],
                -	["constant", "a_programscommon"],
                -	["constant", "a_screenheight"],
                -	["constant", "a_screenwidth"],
                -	["constant", "a_scriptdir"],
                -	["constant", "a_scriptfullpath"],
                -	["constant", "a_scriptname"],
                -	["constant", "a_sec"],
                -	["constant", "a_space"],
                -	["constant", "a_startmenu"],
                -	["constant", "a_startmenucommon"],
                -	["constant", "a_startup"],
                -	["constant", "a_startupcommon"],
                -	["constant", "a_stringcasesense"],
                -	["constant", "a_tab"],
                -	["constant", "a_temp"],
                -	["constant", "a_thisfunc"],
                -	["constant", "a_thishotkey"],
                -	["constant", "a_thislabel"],
                -	["constant", "a_thismenu"],
                -	["constant", "a_thismenuitem"],
                -	["constant", "a_thismenuitempos"],
                -	["constant", "a_tickcount"],
                -	["constant", "a_timeidle"],
                -	["constant", "a_timeidlephysical"],
                -	["constant", "a_timesincepriorhotkey"],
                -	["constant", "a_timesincethishotkey"],
                -	["constant", "a_titlematchmode"],
                -	["constant", "a_titlematchmodespeed"],
                -	["constant", "a_username"],
                -	["constant", "a_wday"],
                -	["constant", "a_windelay"],
                -	["constant", "a_windir"],
                -	["constant", "a_workingdir"],
                -	["constant", "a_yday"],
                -	["constant", "a_year"],
                -	["constant", "a_yweek"],
                -	["constant", "a_yyyy"],
                -	["constant", "clipboard"],
                -	["constant", "clipboardall"],
                -	["constant", "comspec"],
                -	["constant", "errorlevel"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all constants.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autohotkey/function_feature.test b/node_modules/prismjs/tests/languages/autohotkey/function_feature.test
                deleted file mode 100644
                index f38a186..0000000
                --- a/node_modules/prismjs/tests/languages/autohotkey/function_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -foo(
                -foo_bar(
                -
                -----------------------------------------------------
                -
                -[
                -	["function", "foo"],
                -	["punctuation", "("],
                -	["function", "foo_bar"],
                -	["punctuation", "("]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for functions.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autohotkey/important_feature.test b/node_modules/prismjs/tests/languages/autohotkey/important_feature.test
                deleted file mode 100644
                index aa9cbeb..0000000
                --- a/node_modules/prismjs/tests/languages/autohotkey/important_feature.test
                +++ /dev/null
                @@ -1,67 +0,0 @@
                -#AllowSameLineComments
                -#ClipboardTimeout
                -#CommentFlag
                -#ErrorStdOut
                -#EscapeChar
                -#HotkeyInterval
                -#HotkeyModifierTimeout
                -#Hotstring
                -#IfWinActive
                -#IfWinExist
                -#IfWinNotActive
                -#IfWinNotExist
                -#Include
                -#IncludeAgain
                -#InstallKeybdHook
                -#InstallMouseHook
                -#KeyHistory
                -#LTrim
                -#MaxHotkeysPerInterval
                -#MaxMem
                -#MaxThreads
                -#MaxThreadsBuffer
                -#MaxThreadsPerHotkey
                -#NoEnv
                -#NoTrayIcon
                -#Persistent
                -#SingleInstance
                -#UseHook
                -#WinActivateForce
                -
                -----------------------------------------------------
                -
                -[
                -	["important", "#AllowSameLineComments"],
                -	["important", "#ClipboardTimeout"],
                -	["important", "#CommentFlag"],
                -	["important", "#ErrorStdOut"],
                -	["important", "#EscapeChar"],
                -	["important", "#HotkeyInterval"],
                -	["important", "#HotkeyModifierTimeout"],
                -	["important", "#Hotstring"],
                -	["important", "#IfWinActive"],
                -	["important", "#IfWinExist"],
                -	["important", "#IfWinNotActive"],
                -	["important", "#IfWinNotExist"],
                -	["important", "#Include"],
                -	["important", "#IncludeAgain"],
                -	["important", "#InstallKeybdHook"],
                -	["important", "#InstallMouseHook"],
                -	["important", "#KeyHistory"],
                -	["important", "#LTrim"],
                -	["important", "#MaxHotkeysPerInterval"],
                -	["important", "#MaxMem"],
                -	["important", "#MaxThreads"],
                -	["important", "#MaxThreadsBuffer"],
                -	["important", "#MaxThreadsPerHotkey"],
                -	["important", "#NoEnv"],
                -	["important", "#NoTrayIcon"],
                -	["important", "#Persistent"],
                -	["important", "#SingleInstance"],
                -	["important", "#UseHook"],
                -	["important", "#WinActivateForce"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all important keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autohotkey/keyword_feature.test b/node_modules/prismjs/tests/languages/autohotkey/keyword_feature.test
                deleted file mode 100644
                index 9167135..0000000
                --- a/node_modules/prismjs/tests/languages/autohotkey/keyword_feature.test
                +++ /dev/null
                @@ -1,537 +0,0 @@
                -Abort
                -AboveNormal
                -Add
                -ahk_class
                -ahk_group
                -ahk_id
                -ahk_pid
                -All
                -Alnum
                -Alpha
                -AltSubmit
                -AltTab
                -AltTabAndMenu
                -AltTabMenu
                -AltTabMenuDismiss
                -AlwaysOnTop
                -AutoSize
                -Background
                -BackgroundTrans
                -BelowNormal
                -between
                -BitAnd
                -BitNot
                -BitOr
                -BitShiftLeft
                -BitShiftRight
                -BitXOr
                -Bold
                -Border
                -Button
                -ByRef
                -Checkbox
                -Checked
                -CheckedGray
                -Choose
                -ChooseString
                -Close
                -Color
                -ComboBox
                -Contains
                -ControlList
                -Count
                -Date
                -DateTime
                -Days
                -DDL
                -Default
                -DeleteAll
                -Delimiter
                -Deref
                -Destroy
                -Digit
                -Disable
                -Disabled
                -DropDownList
                -Edit
                -Eject
                -Else
                -Enable
                -Enabled
                -Error
                -Exist
                -Expand
                -ExStyle
                -FileSystem
                -First
                -Flash
                -Float
                -FloatFast
                -Focus
                -Font
                -for
                -global
                -Grid
                -Group
                -GroupBox
                -GuiClose
                -GuiContextMenu
                -GuiDropFiles
                -GuiEscape
                -GuiSize
                -Hdr
                -Hidden
                -Hide
                -High
                -HKCC
                -HKCR
                -HKCU
                -HKEY_CLASSES_ROOT
                -HKEY_CURRENT_CONFIG
                -HKEY_CURRENT_USER
                -HKEY_LOCAL_MACHINE
                -HKEY_USERS
                -HKLM
                -HKU
                -Hours
                -HScroll
                -Icon
                -IconSmall
                -ID
                -IDLast
                -If
                -IfEqual
                -IfExist
                -IfGreater
                -IfGreaterOrEqual
                -IfInString
                -IfLess
                -IfLessOrEqual
                -IfMsgBox
                -IfNotEqual
                -IfNotExist
                -IfNotInString
                -IfWinActive
                -IfWinExist
                -IfWinNotActive
                -IfWinNotExist
                -Ignore
                -ImageList
                -in
                -Integer
                -IntegerFast
                -Interrupt
                -is
                -italic
                -Join
                -Label
                -LastFound
                -LastFoundExist
                -Limit
                -Lines
                -List
                -ListBox
                -ListView
                -local
                -Lock
                -Logoff
                -Low
                -Lower
                -Lowercase
                -MainWindow
                -Margin
                -Maximize
                -MaximizeBox
                -MaxSize
                -Minimize
                -MinimizeBox
                -MinMax
                -MinSize
                -Minutes
                -MonthCal
                -Mouse
                -Move
                -Multi
                -NA
                -No
                -NoActivate
                -NoDefault
                -NoHide
                -NoIcon
                -NoMainWindow
                -norm
                -Normal
                -NoSort
                -NoSortHdr
                -NoStandard
                -Not
                -NoTab
                -NoTimers
                -Number
                -Off
                -Ok
                -On
                -OwnDialogs
                -Owner
                -Parse
                -Password
                -Picture
                -Pixel
                -Pos
                -Pow
                -Priority
                -ProcessName
                -Radio
                -Range
                -Read
                -ReadOnly
                -Realtime
                -Redraw
                -REG_BINARY
                -REG_DWORD
                -REG_EXPAND_SZ
                -REG_MULTI_SZ
                -REG_SZ
                -Region
                -Relative
                -Rename
                -Report
                -Resize
                -Restore
                -Retry
                -RGB
                -Screen
                -Seconds
                -Section
                -Serial
                -SetLabel
                -ShiftAltTab
                -Show
                -Single
                -Slider
                -SortDesc
                -Standard
                -static
                -Status
                -StatusBar
                -StatusCD
                -strike
                -Style
                -Submit
                -SysMenu
                -Tab2
                -TabStop
                -Text
                -Theme
                -Tile
                -ToggleCheck
                -ToggleEnable
                -ToolWindow
                -Top
                -Topmost
                -TransColor
                -Transparent
                -Tray
                -TreeView
                -TryAgain
                -Type
                -UnCheck
                -underline
                -Unicode
                -Unlock
                -UpDown
                -Upper
                -Uppercase
                -UseErrorLevel
                -Vis
                -VisFirst
                -Visible
                -VScroll
                -Wait
                -WaitClose
                -WantCtrlA
                -WantF2
                -WantReturn
                -While
                -Wrap
                -Xdigit
                -xm
                -xp
                -xs
                -Yes
                -ym
                -yp
                -ys
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "Abort"],
                -	["keyword", "AboveNormal"],
                -	["keyword", "Add"],
                -	["keyword", "ahk_class"],
                -	["keyword", "ahk_group"],
                -	["keyword", "ahk_id"],
                -	["keyword", "ahk_pid"],
                -	["keyword", "All"],
                -	["keyword", "Alnum"],
                -	["keyword", "Alpha"],
                -	["keyword", "AltSubmit"],
                -	["keyword", "AltTab"],
                -	["keyword", "AltTabAndMenu"],
                -	["keyword", "AltTabMenu"],
                -	["keyword", "AltTabMenuDismiss"],
                -	["keyword", "AlwaysOnTop"],
                -	["keyword", "AutoSize"],
                -	["keyword", "Background"],
                -	["keyword", "BackgroundTrans"],
                -	["keyword", "BelowNormal"],
                -	["keyword", "between"],
                -	["keyword", "BitAnd"],
                -	["keyword", "BitNot"],
                -	["keyword", "BitOr"],
                -	["keyword", "BitShiftLeft"],
                -	["keyword", "BitShiftRight"],
                -	["keyword", "BitXOr"],
                -	["keyword", "Bold"],
                -	["keyword", "Border"],
                -	["keyword", "Button"],
                -	["keyword", "ByRef"],
                -	["keyword", "Checkbox"],
                -	["keyword", "Checked"],
                -	["keyword", "CheckedGray"],
                -	["keyword", "Choose"],
                -	["keyword", "ChooseString"],
                -	["keyword", "Close"],
                -	["keyword", "Color"],
                -	["keyword", "ComboBox"],
                -	["keyword", "Contains"],
                -	["keyword", "ControlList"],
                -	["keyword", "Count"],
                -	["keyword", "Date"],
                -	["keyword", "DateTime"],
                -	["keyword", "Days"],
                -	["keyword", "DDL"],
                -	["keyword", "Default"],
                -	["keyword", "DeleteAll"],
                -	["keyword", "Delimiter"],
                -	["keyword", "Deref"],
                -	["keyword", "Destroy"],
                -	["keyword", "Digit"],
                -	["keyword", "Disable"],
                -	["keyword", "Disabled"],
                -	["keyword", "DropDownList"],
                -	["keyword", "Edit"],
                -	["keyword", "Eject"],
                -	["keyword", "Else"],
                -	["keyword", "Enable"],
                -	["keyword", "Enabled"],
                -	["keyword", "Error"],
                -	["keyword", "Exist"],
                -	["keyword", "Expand"],
                -	["keyword", "ExStyle"],
                -	["keyword", "FileSystem"],
                -	["keyword", "First"],
                -	["keyword", "Flash"],
                -	["keyword", "Float"],
                -	["keyword", "FloatFast"],
                -	["keyword", "Focus"],
                -	["keyword", "Font"],
                -	["keyword", "for"],
                -	["keyword", "global"],
                -	["keyword", "Grid"],
                -	["keyword", "Group"],
                -	["keyword", "GroupBox"],
                -	["keyword", "GuiClose"],
                -	["keyword", "GuiContextMenu"],
                -	["keyword", "GuiDropFiles"],
                -	["keyword", "GuiEscape"],
                -	["keyword", "GuiSize"],
                -	["keyword", "Hdr"],
                -	["keyword", "Hidden"],
                -	["keyword", "Hide"],
                -	["keyword", "High"],
                -	["keyword", "HKCC"],
                -	["keyword", "HKCR"],
                -	["keyword", "HKCU"],
                -	["keyword", "HKEY_CLASSES_ROOT"],
                -	["keyword", "HKEY_CURRENT_CONFIG"],
                -	["keyword", "HKEY_CURRENT_USER"],
                -	["keyword", "HKEY_LOCAL_MACHINE"],
                -	["keyword", "HKEY_USERS"],
                -	["keyword", "HKLM"],
                -	["keyword", "HKU"],
                -	["keyword", "Hours"],
                -	["keyword", "HScroll"],
                -	["keyword", "Icon"],
                -	["keyword", "IconSmall"],
                -	["keyword", "ID"],
                -	["keyword", "IDLast"],
                -	["keyword", "If"],
                -	["keyword", "IfEqual"],
                -	["keyword", "IfExist"],
                -	["keyword", "IfGreater"],
                -	["keyword", "IfGreaterOrEqual"],
                -	["keyword", "IfInString"],
                -	["keyword", "IfLess"],
                -	["keyword", "IfLessOrEqual"],
                -	["keyword", "IfMsgBox"],
                -	["keyword", "IfNotEqual"],
                -	["keyword", "IfNotExist"],
                -	["keyword", "IfNotInString"],
                -	["keyword", "IfWinActive"],
                -	["keyword", "IfWinExist"],
                -	["keyword", "IfWinNotActive"],
                -	["keyword", "IfWinNotExist"],
                -	["keyword", "Ignore"],
                -	["keyword", "ImageList"],
                -	["keyword", "in"],
                -	["keyword", "Integer"],
                -	["keyword", "IntegerFast"],
                -	["keyword", "Interrupt"],
                -	["keyword", "is"],
                -	["keyword", "italic"],
                -	["keyword", "Join"],
                -	["keyword", "Label"],
                -	["keyword", "LastFound"],
                -	["keyword", "LastFoundExist"],
                -	["keyword", "Limit"],
                -	["keyword", "Lines"],
                -	["keyword", "List"],
                -	["keyword", "ListBox"],
                -	["keyword", "ListView"],
                -	["keyword", "local"],
                -	["keyword", "Lock"],
                -	["keyword", "Logoff"],
                -	["keyword", "Low"],
                -	["keyword", "Lower"],
                -	["keyword", "Lowercase"],
                -	["keyword", "MainWindow"],
                -	["keyword", "Margin"],
                -	["keyword", "Maximize"],
                -	["keyword", "MaximizeBox"],
                -	["keyword", "MaxSize"],
                -	["keyword", "Minimize"],
                -	["keyword", "MinimizeBox"],
                -	["keyword", "MinMax"],
                -	["keyword", "MinSize"],
                -	["keyword", "Minutes"],
                -	["keyword", "MonthCal"],
                -	["keyword", "Mouse"],
                -	["keyword", "Move"],
                -	["keyword", "Multi"],
                -	["keyword", "NA"],
                -	["keyword", "No"],
                -	["keyword", "NoActivate"],
                -	["keyword", "NoDefault"],
                -	["keyword", "NoHide"],
                -	["keyword", "NoIcon"],
                -	["keyword", "NoMainWindow"],
                -	["keyword", "norm"],
                -	["keyword", "Normal"],
                -	["keyword", "NoSort"],
                -	["keyword", "NoSortHdr"],
                -	["keyword", "NoStandard"],
                -	["keyword", "Not"],
                -	["keyword", "NoTab"],
                -	["keyword", "NoTimers"],
                -	["keyword", "Number"],
                -	["keyword", "Off"],
                -	["keyword", "Ok"],
                -	["keyword", "On"],
                -	["keyword", "OwnDialogs"],
                -	["keyword", "Owner"],
                -	["keyword", "Parse"],
                -	["keyword", "Password"],
                -	["keyword", "Picture"],
                -	["keyword", "Pixel"],
                -	["keyword", "Pos"],
                -	["keyword", "Pow"],
                -	["keyword", "Priority"],
                -	["keyword", "ProcessName"],
                -	["keyword", "Radio"],
                -	["keyword", "Range"],
                -	["keyword", "Read"],
                -	["keyword", "ReadOnly"],
                -	["keyword", "Realtime"],
                -	["keyword", "Redraw"],
                -	["keyword", "REG_BINARY"],
                -	["keyword", "REG_DWORD"],
                -	["keyword", "REG_EXPAND_SZ"],
                -	["keyword", "REG_MULTI_SZ"],
                -	["keyword", "REG_SZ"],
                -	["keyword", "Region"],
                -	["keyword", "Relative"],
                -	["keyword", "Rename"],
                -	["keyword", "Report"],
                -	["keyword", "Resize"],
                -	["keyword", "Restore"],
                -	["keyword", "Retry"],
                -	["keyword", "RGB"],
                -	["keyword", "Screen"],
                -	["keyword", "Seconds"],
                -	["keyword", "Section"],
                -	["keyword", "Serial"],
                -	["keyword", "SetLabel"],
                -	["keyword", "ShiftAltTab"],
                -	["keyword", "Show"],
                -	["keyword", "Single"],
                -	["keyword", "Slider"],
                -	["keyword", "SortDesc"],
                -	["keyword", "Standard"],
                -	["keyword", "static"],
                -	["keyword", "Status"],
                -	["keyword", "StatusBar"],
                -	["keyword", "StatusCD"],
                -	["keyword", "strike"],
                -	["keyword", "Style"],
                -	["keyword", "Submit"],
                -	["keyword", "SysMenu"],
                -	["keyword", "Tab2"],
                -	["keyword", "TabStop"],
                -	["keyword", "Text"],
                -	["keyword", "Theme"],
                -	["keyword", "Tile"],
                -	["keyword", "ToggleCheck"],
                -	["keyword", "ToggleEnable"],
                -	["keyword", "ToolWindow"],
                -	["keyword", "Top"],
                -	["keyword", "Topmost"],
                -	["keyword", "TransColor"],
                -	["keyword", "Transparent"],
                -	["keyword", "Tray"],
                -	["keyword", "TreeView"],
                -	["keyword", "TryAgain"],
                -	["keyword", "Type"],
                -	["keyword", "UnCheck"],
                -	["keyword", "underline"],
                -	["keyword", "Unicode"],
                -	["keyword", "Unlock"],
                -	["keyword", "UpDown"],
                -	["keyword", "Upper"],
                -	["keyword", "Uppercase"],
                -	["keyword", "UseErrorLevel"],
                -	["keyword", "Vis"],
                -	["keyword", "VisFirst"],
                -	["keyword", "Visible"],
                -	["keyword", "VScroll"],
                -	["keyword", "Wait"],
                -	["keyword", "WaitClose"],
                -	["keyword", "WantCtrlA"],
                -	["keyword", "WantF2"],
                -	["keyword", "WantReturn"],
                -	["keyword", "While"],
                -	["keyword", "Wrap"],
                -	["keyword", "Xdigit"],
                -	["keyword", "xm"],
                -	["keyword", "xp"],
                -	["keyword", "xs"],
                -	["keyword", "Yes"],
                -	["keyword", "ym"],
                -	["keyword", "yp"],
                -	["keyword", "ys"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autohotkey/number_feature.test b/node_modules/prismjs/tests/languages/autohotkey/number_feature.test
                deleted file mode 100644
                index 35a493a..0000000
                --- a/node_modules/prismjs/tests/languages/autohotkey/number_feature.test
                +++ /dev/null
                @@ -1,21 +0,0 @@
                -42
                -3.14159
                -3.2e10
                -2.9E-7
                -0xbabe
                -0xBABE
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "42"],
                -	["number", "3.14159"],
                -	["number", "3.2e10"],
                -	["number", "2.9E-7"],
                -	["number", "0xbabe"],
                -	["number", "0xBABE"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autohotkey/operator_feature.test b/node_modules/prismjs/tests/languages/autohotkey/operator_feature.test
                deleted file mode 100644
                index ec9e23e..0000000
                --- a/node_modules/prismjs/tests/languages/autohotkey/operator_feature.test
                +++ /dev/null
                @@ -1,33 +0,0 @@
                -+ - * /
                -= ? & |
                -< >
                -++ -- ** //
                -! ~ ^ .
                -<< >> <= >=
                -~= == <> !=
                -NOT AND && OR ||
                -:= += -= *=
                -/= //= .=
                -|= &= ^=
                ->>= <<=
                -
                -----------------------------------------------------
                -
                -[
                -	["operator", "+"], ["operator", "-"], ["operator", "*"], ["operator", "/"],
                -	["operator", "="], ["operator", "?"], ["operator", "&"], ["operator", "|"],
                -	["operator", "<"], ["operator", ">"],
                -	["operator", "++"], ["operator", "--"], ["operator", "**"], ["operator", "//"],
                -	["operator", "!"], ["operator", "~"], ["operator", "^"], ["operator", "."],
                -	["operator", "<<"], ["operator", ">>"], ["operator", "<="], ["operator", ">="],
                -	["operator", "~="], ["operator", "=="], ["operator", "<>"], ["operator", "!="],
                -	["operator", "NOT"], ["operator", "AND"], ["operator", "&&"], ["operator", "OR"], ["operator", "||"],
                -	["operator", ":="], ["operator", "+="], ["operator", "-="], ["operator", "*="],
                -	["operator", "/="], ["operator", "//="], ["operator", ".="],
                -	["operator", "|="], ["operator", "&="], ["operator", "^="],
                -	["operator", ">>="], ["operator", "<<="]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all operators.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autohotkey/selector_feature.test b/node_modules/prismjs/tests/languages/autohotkey/selector_feature.test
                deleted file mode 100644
                index 29210c2..0000000
                --- a/node_modules/prismjs/tests/languages/autohotkey/selector_feature.test
                +++ /dev/null
                @@ -1,381 +0,0 @@
                -AutoTrim
                -BlockInput
                -Break
                -Click
                -ClipWait
                -Continue
                -Control
                -ControlClick
                -ControlFocus
                -ControlGet
                -ControlGetFocus
                -ControlGetPos
                -ControlGetText
                -ControlMove
                -ControlSend
                -ControlSendRaw
                -ControlSetText
                -CoordMode
                -Critical
                -DetectHiddenText
                -DetectHiddenWindows
                -Drive
                -DriveGet
                -DriveSpaceFree
                -EnvAdd
                -EnvDiv
                -EnvGet
                -EnvMult
                -EnvSet
                -EnvSub
                -EnvUpdate
                -Exit
                -ExitApp
                -FileAppend
                -FileCopy
                -FileCopyDir
                -FileCreateDir
                -FileCreateShortcut
                -FileDelete
                -FileEncoding
                -FileGetAttrib
                -FileGetShortcut
                -FileGetSize
                -FileGetTime
                -FileGetVersion
                -FileInstall
                -FileMove
                -FileMoveDir
                -FileRead
                -FileReadLine
                -FileRecycle
                -FileRecycleEmpty
                -FileRemoveDir
                -FileSelectFile
                -FileSelectFolder
                -FileSetAttrib
                -FileSetTime
                -FormatTime
                -GetKeyState
                -Gosub
                -Goto
                -GroupActivate
                -GroupAdd
                -GroupClose
                -GroupDeactivate
                -Gui
                -GuiControl
                -GuiControlGet
                -Hotkey
                -ImageSearch
                -IniDelete
                -IniRead
                -IniWrite
                -Input
                -InputBox
                -KeyWait
                -ListHotkeys
                -ListLines
                -ListVars
                -Loop
                -Menu
                -MouseClick
                -MouseClickDrag
                -MouseGetPos
                -MouseMove
                -MsgBox
                -OnExit
                -OutputDebug
                -Pause
                -PixelGetColor
                -PixelSearch
                -PostMessage
                -Process
                -Progress
                -Random
                -RegDelete
                -RegRead
                -RegWrite
                -Reload
                -Repeat
                -Return
                -Run
                -RunAs
                -RunWait
                -Send
                -SendEvent
                -SendInput
                -SendMessage
                -SendMode
                -SendPlay
                -SendRaw
                -SetBatchLines
                -SetCapslockState
                -SetControlDelay
                -SetDefaultMouseSpeed
                -SetEnv
                -SetFormat
                -SetKeyDelay
                -SetMouseDelay
                -SetNumlockState
                -SetScrollLockState
                -SetStoreCapslockMode
                -SetTimer
                -SetTitleMatchMode
                -SetWinDelay
                -SetWorkingDir
                -Shutdown
                -Sleep
                -Sort
                -SoundBeep
                -SoundGet
                -SoundGetWaveVolume
                -SoundPlay
                -SoundSet
                -SoundSetWaveVolume
                -SplashImage
                -SplashTextOff
                -SplashTextOn
                -SplitPath
                -StatusBarGetText
                -StatusBarWait
                -StringCaseSense
                -StringGetPos
                -StringLeft
                -StringLen
                -StringLower
                -StringMid
                -StringReplace
                -StringRight
                -StringSplit
                -StringTrimLeft
                -StringTrimRight
                -StringUpper
                -Suspend
                -SysGet
                -Thread
                -ToolTip
                -Transform
                -TrayTip
                -URLDownloadToFile
                -WinActivate
                -WinActivateBottom
                -WinClose
                -WinGet
                -WinGetActiveStats
                -WinGetActiveTitle
                -WinGetClass
                -WinGetPos
                -WinGetText
                -WinGetTitle
                -WinHide
                -WinKill
                -WinMaximize
                -WinMenuSelectItem
                -WinMinimize
                -WinMinimizeAll
                -WinMinimizeAllUndo
                -WinMove
                -WinRestore
                -WinSet
                -WinSetTitle
                -WinShow
                -WinWait
                -WinWaitActive
                -WinWaitClose
                -WinWaitNotActive
                -
                -----------------------------------------------------
                -
                -[
                -	["selector", "AutoTrim"],
                -	["selector", "BlockInput"],
                -	["selector", "Break"],
                -	["selector", "Click"],
                -	["selector", "ClipWait"],
                -	["selector", "Continue"],
                -	["selector", "Control"],
                -	["selector", "ControlClick"],
                -	["selector", "ControlFocus"],
                -	["selector", "ControlGet"],
                -	["selector", "ControlGetFocus"],
                -	["selector", "ControlGetPos"],
                -	["selector", "ControlGetText"],
                -	["selector", "ControlMove"],
                -	["selector", "ControlSend"],
                -	["selector", "ControlSendRaw"],
                -	["selector", "ControlSetText"],
                -	["selector", "CoordMode"],
                -	["selector", "Critical"],
                -	["selector", "DetectHiddenText"],
                -	["selector", "DetectHiddenWindows"],
                -	["selector", "Drive"],
                -	["selector", "DriveGet"],
                -	["selector", "DriveSpaceFree"],
                -	["selector", "EnvAdd"],
                -	["selector", "EnvDiv"],
                -	["selector", "EnvGet"],
                -	["selector", "EnvMult"],
                -	["selector", "EnvSet"],
                -	["selector", "EnvSub"],
                -	["selector", "EnvUpdate"],
                -	["selector", "Exit"],
                -	["selector", "ExitApp"],
                -	["selector", "FileAppend"],
                -	["selector", "FileCopy"],
                -	["selector", "FileCopyDir"],
                -	["selector", "FileCreateDir"],
                -	["selector", "FileCreateShortcut"],
                -	["selector", "FileDelete"],
                -	["selector", "FileEncoding"],
                -	["selector", "FileGetAttrib"],
                -	["selector", "FileGetShortcut"],
                -	["selector", "FileGetSize"],
                -	["selector", "FileGetTime"],
                -	["selector", "FileGetVersion"],
                -	["selector", "FileInstall"],
                -	["selector", "FileMove"],
                -	["selector", "FileMoveDir"],
                -	["selector", "FileRead"],
                -	["selector", "FileReadLine"],
                -	["selector", "FileRecycle"],
                -	["selector", "FileRecycleEmpty"],
                -	["selector", "FileRemoveDir"],
                -	["selector", "FileSelectFile"],
                -	["selector", "FileSelectFolder"],
                -	["selector", "FileSetAttrib"],
                -	["selector", "FileSetTime"],
                -	["selector", "FormatTime"],
                -	["selector", "GetKeyState"],
                -	["selector", "Gosub"],
                -	["selector", "Goto"],
                -	["selector", "GroupActivate"],
                -	["selector", "GroupAdd"],
                -	["selector", "GroupClose"],
                -	["selector", "GroupDeactivate"],
                -	["selector", "Gui"],
                -	["selector", "GuiControl"],
                -	["selector", "GuiControlGet"],
                -	["selector", "Hotkey"],
                -	["selector", "ImageSearch"],
                -	["selector", "IniDelete"],
                -	["selector", "IniRead"],
                -	["selector", "IniWrite"],
                -	["selector", "Input"],
                -	["selector", "InputBox"],
                -	["selector", "KeyWait"],
                -	["selector", "ListHotkeys"],
                -	["selector", "ListLines"],
                -	["selector", "ListVars"],
                -	["selector", "Loop"],
                -	["selector", "Menu"],
                -	["selector", "MouseClick"],
                -	["selector", "MouseClickDrag"],
                -	["selector", "MouseGetPos"],
                -	["selector", "MouseMove"],
                -	["selector", "MsgBox"],
                -	["selector", "OnExit"],
                -	["selector", "OutputDebug"],
                -	["selector", "Pause"],
                -	["selector", "PixelGetColor"],
                -	["selector", "PixelSearch"],
                -	["selector", "PostMessage"],
                -	["selector", "Process"],
                -	["selector", "Progress"],
                -	["selector", "Random"],
                -	["selector", "RegDelete"],
                -	["selector", "RegRead"],
                -	["selector", "RegWrite"],
                -	["selector", "Reload"],
                -	["selector", "Repeat"],
                -	["selector", "Return"],
                -	["selector", "Run"],
                -	["selector", "RunAs"],
                -	["selector", "RunWait"],
                -	["selector", "Send"],
                -	["selector", "SendEvent"],
                -	["selector", "SendInput"],
                -	["selector", "SendMessage"],
                -	["selector", "SendMode"],
                -	["selector", "SendPlay"],
                -	["selector", "SendRaw"],
                -	["selector", "SetBatchLines"],
                -	["selector", "SetCapslockState"],
                -	["selector", "SetControlDelay"],
                -	["selector", "SetDefaultMouseSpeed"],
                -	["selector", "SetEnv"],
                -	["selector", "SetFormat"],
                -	["selector", "SetKeyDelay"],
                -	["selector", "SetMouseDelay"],
                -	["selector", "SetNumlockState"],
                -	["selector", "SetScrollLockState"],
                -	["selector", "SetStoreCapslockMode"],
                -	["selector", "SetTimer"],
                -	["selector", "SetTitleMatchMode"],
                -	["selector", "SetWinDelay"],
                -	["selector", "SetWorkingDir"],
                -	["selector", "Shutdown"],
                -	["selector", "Sleep"],
                -	["selector", "Sort"],
                -	["selector", "SoundBeep"],
                -	["selector", "SoundGet"],
                -	["selector", "SoundGetWaveVolume"],
                -	["selector", "SoundPlay"],
                -	["selector", "SoundSet"],
                -	["selector", "SoundSetWaveVolume"],
                -	["selector", "SplashImage"],
                -	["selector", "SplashTextOff"],
                -	["selector", "SplashTextOn"],
                -	["selector", "SplitPath"],
                -	["selector", "StatusBarGetText"],
                -	["selector", "StatusBarWait"],
                -	["selector", "StringCaseSense"],
                -	["selector", "StringGetPos"],
                -	["selector", "StringLeft"],
                -	["selector", "StringLen"],
                -	["selector", "StringLower"],
                -	["selector", "StringMid"],
                -	["selector", "StringReplace"],
                -	["selector", "StringRight"],
                -	["selector", "StringSplit"],
                -	["selector", "StringTrimLeft"],
                -	["selector", "StringTrimRight"],
                -	["selector", "StringUpper"],
                -	["selector", "Suspend"],
                -	["selector", "SysGet"],
                -	["selector", "Thread"],
                -	["selector", "ToolTip"],
                -	["selector", "Transform"],
                -	["selector", "TrayTip"],
                -	["selector", "URLDownloadToFile"],
                -	["selector", "WinActivate"],
                -	["selector", "WinActivateBottom"],
                -	["selector", "WinClose"],
                -	["selector", "WinGet"],
                -	["selector", "WinGetActiveStats"],
                -	["selector", "WinGetActiveTitle"],
                -	["selector", "WinGetClass"],
                -	["selector", "WinGetPos"],
                -	["selector", "WinGetText"],
                -	["selector", "WinGetTitle"],
                -	["selector", "WinHide"],
                -	["selector", "WinKill"],
                -	["selector", "WinMaximize"],
                -	["selector", "WinMenuSelectItem"],
                -	["selector", "WinMinimize"],
                -	["selector", "WinMinimizeAll"],
                -	["selector", "WinMinimizeAllUndo"],
                -	["selector", "WinMove"],
                -	["selector", "WinRestore"],
                -	["selector", "WinSet"],
                -	["selector", "WinSetTitle"],
                -	["selector", "WinShow"],
                -	["selector", "WinWait"],
                -	["selector", "WinWaitActive"],
                -	["selector", "WinWaitClose"],
                -	["selector", "WinWaitNotActive"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all selectors.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autohotkey/string_feature.test b/node_modules/prismjs/tests/languages/autohotkey/string_feature.test
                deleted file mode 100644
                index 76168fd..0000000
                --- a/node_modules/prismjs/tests/languages/autohotkey/string_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -""
                -"foo"
                -"foo""bar"
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "\"\""],
                -	["string", "\"foo\""],
                -	["string", "\"foo\"\"bar\""]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autohotkey/symbol_feature.test b/node_modules/prismjs/tests/languages/autohotkey/symbol_feature.test
                deleted file mode 100644
                index 2c47777..0000000
                --- a/node_modules/prismjs/tests/languages/autohotkey/symbol_feature.test
                +++ /dev/null
                @@ -1,347 +0,0 @@
                -alt
                -altdown
                -altup
                -appskey
                -backspace
                -browser_back
                -browser_favorites
                -browser_forward
                -browser_home
                -browser_refresh
                -browser_search
                -browser_stop
                -bs
                -capslock
                -ctrl
                -ctrlbreak
                -ctrldown
                -ctrlup
                -del
                -delete
                -down
                -end
                -enter
                -esc
                -escape
                -f1
                -f10
                -f11
                -f12
                -f13
                -f14
                -f15
                -f16
                -f17
                -f18
                -f19
                -f2
                -f20
                -f21
                -f22
                -f23
                -f24
                -f3
                -f4
                -f5
                -f6
                -f7
                -f8
                -f9
                -home
                -ins
                -insert
                -joy1
                -joy10
                -joy11
                -joy12
                -joy13
                -joy14
                -joy15
                -joy16
                -joy17
                -joy18
                -joy19
                -joy2
                -joy20
                -joy21
                -joy22
                -joy23
                -joy24
                -joy25
                -joy26
                -joy27
                -joy28
                -joy29
                -joy3
                -joy30
                -joy31
                -joy32
                -joy4
                -joy5
                -joy6
                -joy7
                -joy8
                -joy9
                -joyaxes
                -joybuttons
                -joyinfo
                -joyname
                -joypov
                -joyr
                -joyu
                -joyv
                -joyx
                -joyy
                -joyz
                -lalt
                -launch_app1
                -launch_app2
                -launch_mail
                -launch_media
                -lbutton
                -lcontrol
                -lctrl
                -left
                -lshift
                -lwin
                -lwindown
                -lwinup
                -mbutton
                -media_next
                -media_play_pause
                -media_prev
                -media_stop
                -numlock
                -numpad0
                -numpad1
                -numpad2
                -numpad3
                -numpad4
                -numpad5
                -numpad6
                -numpad7
                -numpad8
                -numpad9
                -numpadadd
                -numpadclear
                -numpaddel
                -numpaddiv
                -numpaddot
                -numpaddown
                -numpadend
                -numpadenter
                -numpadhome
                -numpadins
                -numpadleft
                -numpadmult
                -numpadpgdn
                -numpadpgup
                -numpadright
                -numpadsub
                -numpadup
                -pgdn
                -pgup
                -printscreen
                -ralt
                -rbutton
                -rcontrol
                -rctrl
                -right
                -rshift
                -rwin
                -rwindown
                -rwinup
                -scrolllock
                -shift
                -shiftdown
                -shiftup
                -space
                -tab
                -up
                -volume_down
                -volume_mute
                -volume_up
                -wheeldown
                -wheelleft
                -wheelright
                -wheelup
                -xbutton1
                -xbutton2
                -
                -----------------------------------------------------
                -
                -[
                -	["symbol", "alt"],
                -	["symbol", "altdown"],
                -	["symbol", "altup"],
                -	["symbol", "appskey"],
                -	["symbol", "backspace"],
                -	["symbol", "browser_back"],
                -	["symbol", "browser_favorites"],
                -	["symbol", "browser_forward"],
                -	["symbol", "browser_home"],
                -	["symbol", "browser_refresh"],
                -	["symbol", "browser_search"],
                -	["symbol", "browser_stop"],
                -	["symbol", "bs"],
                -	["symbol", "capslock"],
                -	["symbol", "ctrl"],
                -	["symbol", "ctrlbreak"],
                -	["symbol", "ctrldown"],
                -	["symbol", "ctrlup"],
                -	["symbol", "del"],
                -	["symbol", "delete"],
                -	["symbol", "down"],
                -	["symbol", "end"],
                -	["symbol", "enter"],
                -	["symbol", "esc"],
                -	["symbol", "escape"],
                -	["symbol", "f1"],
                -	["symbol", "f10"],
                -	["symbol", "f11"],
                -	["symbol", "f12"],
                -	["symbol", "f13"],
                -	["symbol", "f14"],
                -	["symbol", "f15"],
                -	["symbol", "f16"],
                -	["symbol", "f17"],
                -	["symbol", "f18"],
                -	["symbol", "f19"],
                -	["symbol", "f2"],
                -	["symbol", "f20"],
                -	["symbol", "f21"],
                -	["symbol", "f22"],
                -	["symbol", "f23"],
                -	["symbol", "f24"],
                -	["symbol", "f3"],
                -	["symbol", "f4"],
                -	["symbol", "f5"],
                -	["symbol", "f6"],
                -	["symbol", "f7"],
                -	["symbol", "f8"],
                -	["symbol", "f9"],
                -	["symbol", "home"],
                -	["symbol", "ins"],
                -	["symbol", "insert"],
                -	["symbol", "joy1"],
                -	["symbol", "joy10"],
                -	["symbol", "joy11"],
                -	["symbol", "joy12"],
                -	["symbol", "joy13"],
                -	["symbol", "joy14"],
                -	["symbol", "joy15"],
                -	["symbol", "joy16"],
                -	["symbol", "joy17"],
                -	["symbol", "joy18"],
                -	["symbol", "joy19"],
                -	["symbol", "joy2"],
                -	["symbol", "joy20"],
                -	["symbol", "joy21"],
                -	["symbol", "joy22"],
                -	["symbol", "joy23"],
                -	["symbol", "joy24"],
                -	["symbol", "joy25"],
                -	["symbol", "joy26"],
                -	["symbol", "joy27"],
                -	["symbol", "joy28"],
                -	["symbol", "joy29"],
                -	["symbol", "joy3"],
                -	["symbol", "joy30"],
                -	["symbol", "joy31"],
                -	["symbol", "joy32"],
                -	["symbol", "joy4"],
                -	["symbol", "joy5"],
                -	["symbol", "joy6"],
                -	["symbol", "joy7"],
                -	["symbol", "joy8"],
                -	["symbol", "joy9"],
                -	["symbol", "joyaxes"],
                -	["symbol", "joybuttons"],
                -	["symbol", "joyinfo"],
                -	["symbol", "joyname"],
                -	["symbol", "joypov"],
                -	["symbol", "joyr"],
                -	["symbol", "joyu"],
                -	["symbol", "joyv"],
                -	["symbol", "joyx"],
                -	["symbol", "joyy"],
                -	["symbol", "joyz"],
                -	["symbol", "lalt"],
                -	["symbol", "launch_app1"],
                -	["symbol", "launch_app2"],
                -	["symbol", "launch_mail"],
                -	["symbol", "launch_media"],
                -	["symbol", "lbutton"],
                -	["symbol", "lcontrol"],
                -	["symbol", "lctrl"],
                -	["symbol", "left"],
                -	["symbol", "lshift"],
                -	["symbol", "lwin"],
                -	["symbol", "lwindown"],
                -	["symbol", "lwinup"],
                -	["symbol", "mbutton"],
                -	["symbol", "media_next"],
                -	["symbol", "media_play_pause"],
                -	["symbol", "media_prev"],
                -	["symbol", "media_stop"],
                -	["symbol", "numlock"],
                -	["symbol", "numpad0"],
                -	["symbol", "numpad1"],
                -	["symbol", "numpad2"],
                -	["symbol", "numpad3"],
                -	["symbol", "numpad4"],
                -	["symbol", "numpad5"],
                -	["symbol", "numpad6"],
                -	["symbol", "numpad7"],
                -	["symbol", "numpad8"],
                -	["symbol", "numpad9"],
                -	["symbol", "numpadadd"],
                -	["symbol", "numpadclear"],
                -	["symbol", "numpaddel"],
                -	["symbol", "numpaddiv"],
                -	["symbol", "numpaddot"],
                -	["symbol", "numpaddown"],
                -	["symbol", "numpadend"],
                -	["symbol", "numpadenter"],
                -	["symbol", "numpadhome"],
                -	["symbol", "numpadins"],
                -	["symbol", "numpadleft"],
                -	["symbol", "numpadmult"],
                -	["symbol", "numpadpgdn"],
                -	["symbol", "numpadpgup"],
                -	["symbol", "numpadright"],
                -	["symbol", "numpadsub"],
                -	["symbol", "numpadup"],
                -	["symbol", "pgdn"],
                -	["symbol", "pgup"],
                -	["symbol", "printscreen"],
                -	["symbol", "ralt"],
                -	["symbol", "rbutton"],
                -	["symbol", "rcontrol"],
                -	["symbol", "rctrl"],
                -	["symbol", "right"],
                -	["symbol", "rshift"],
                -	["symbol", "rwin"],
                -	["symbol", "rwindown"],
                -	["symbol", "rwinup"],
                -	["symbol", "scrolllock"],
                -	["symbol", "shift"],
                -	["symbol", "shiftdown"],
                -	["symbol", "shiftup"],
                -	["symbol", "space"],
                -	["symbol", "tab"],
                -	["symbol", "up"],
                -	["symbol", "volume_down"],
                -	["symbol", "volume_mute"],
                -	["symbol", "volume_up"],
                -	["symbol", "wheeldown"],
                -	["symbol", "wheelleft"],
                -	["symbol", "wheelright"],
                -	["symbol", "wheelup"],
                -	["symbol", "xbutton1"],
                -	["symbol", "xbutton2"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all symbols.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autohotkey/tag_feature.test b/node_modules/prismjs/tests/languages/autohotkey/tag_feature.test
                deleted file mode 100644
                index 0ca9258..0000000
                --- a/node_modules/prismjs/tests/languages/autohotkey/tag_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -foo:
                -foo_bar:
                -
                -----------------------------------------------------
                -
                -[
                -	["tag", "foo"],
                -	["punctuation", ":"],
                -	["tag", "foo_bar"],
                -	["punctuation", ":"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for tags (labels).
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autohotkey/variable_feature.test b/node_modules/prismjs/tests/languages/autohotkey/variable_feature.test
                deleted file mode 100644
                index 5ed8a4c..0000000
                --- a/node_modules/prismjs/tests/languages/autohotkey/variable_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -%foo%
                -%foo_bar%
                -
                -----------------------------------------------------
                -
                -[
                -	["variable", "%foo%"],
                -	["variable", "%foo_bar%"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for variables.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autoit/boolean_feature.test b/node_modules/prismjs/tests/languages/autoit/boolean_feature.test
                deleted file mode 100644
                index 5750be0..0000000
                --- a/node_modules/prismjs/tests/languages/autoit/boolean_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -True
                -False
                -
                -----------------------------------------------------
                -
                -[
                -	["boolean", "True"],
                -	["boolean", "False"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for booleans.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autoit/comment_feature.test b/node_modules/prismjs/tests/languages/autoit/comment_feature.test
                deleted file mode 100644
                index d88708f..0000000
                --- a/node_modules/prismjs/tests/languages/autoit/comment_feature.test
                +++ /dev/null
                @@ -1,33 +0,0 @@
                -;
                -; foo
                -#comments-start
                -	foobar()
                -#comments-end
                -#cs
                -	foobar()
                -#ce
                -;#comments-start
                -	foobar()
                -;#comments-end
                -;#cs
                -	foobar()
                -;#ce
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", ";"],
                -	["comment", "; foo"],
                -	["comment", "#comments-start\r\n\tfoobar()\r\n#comments-end"],
                -	["comment", "#cs\r\n\tfoobar()\r\n#ce"],
                -	["comment", ";#comments-start"],
                -	["function", "foobar"], ["punctuation", "("], ["punctuation", ")"],
                -	["comment", ";#comments-end"],
                -	["comment", ";#cs"],
                -	["function", "foobar"], ["punctuation", "("], ["punctuation", ")"],
                -	["comment", ";#ce"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autoit/directive_feature.test b/node_modules/prismjs/tests/languages/autoit/directive_feature.test
                deleted file mode 100644
                index 9219f70..0000000
                --- a/node_modules/prismjs/tests/languages/autoit/directive_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -#NoTrayIcon
                -#OnAutoItStartRegister "Example"
                -
                -----------------------------------------------------
                -
                -[
                -	["directive", "#NoTrayIcon"],
                -	["directive", "#OnAutoItStartRegister"], ["string", ["\"Example\""]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for directives.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autoit/function_feature.test b/node_modules/prismjs/tests/languages/autoit/function_feature.test
                deleted file mode 100644
                index 13c82dd..0000000
                --- a/node_modules/prismjs/tests/languages/autoit/function_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -foo()
                -foo_bar()
                -foo_bar_42()
                -
                -----------------------------------------------------
                -
                -[
                -	["function", "foo"], ["punctuation", "("], ["punctuation", ")"],
                -	["function", "foo_bar"], ["punctuation", "("], ["punctuation", ")"],
                -	["function", "foo_bar_42"], ["punctuation", "("], ["punctuation", ")"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for functions.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autoit/keyword_feature.test b/node_modules/prismjs/tests/languages/autoit/keyword_feature.test
                deleted file mode 100644
                index 2db276c..0000000
                --- a/node_modules/prismjs/tests/languages/autoit/keyword_feature.test
                +++ /dev/null
                @@ -1,83 +0,0 @@
                -Case
                -Const
                -ContinueCase
                -ContinueLoop
                -Default
                -Dim
                -Do
                -Else
                -ElseIf
                -EndFunc
                -EndIf
                -EndSelect
                -EndSwitch
                -EndWith
                -Enum
                -Exit
                -ExitLoop
                -For
                -Func
                -Global
                -If
                -In
                -Local
                -Next
                -Null
                -ReDim
                -Select
                -Static
                -Step
                -Switch
                -Then
                -To
                -Until
                -Volatile
                -WEnd
                -While
                -With
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "Case"],
                -	["keyword", "Const"],
                -	["keyword", "ContinueCase"],
                -	["keyword", "ContinueLoop"],
                -	["keyword", "Default"],
                -	["keyword", "Dim"],
                -	["keyword", "Do"],
                -	["keyword", "Else"],
                -	["keyword", "ElseIf"],
                -	["keyword", "EndFunc"],
                -	["keyword", "EndIf"],
                -	["keyword", "EndSelect"],
                -	["keyword", "EndSwitch"],
                -	["keyword", "EndWith"],
                -	["keyword", "Enum"],
                -	["keyword", "Exit"],
                -	["keyword", "ExitLoop"],
                -	["keyword", "For"],
                -	["keyword", "Func"],
                -	["keyword", "Global"],
                -	["keyword", "If"],
                -	["keyword", "In"],
                -	["keyword", "Local"],
                -	["keyword", "Next"],
                -	["keyword", "Null"],
                -	["keyword", "ReDim"],
                -	["keyword", "Select"],
                -	["keyword", "Static"],
                -	["keyword", "Step"],
                -	["keyword", "Switch"],
                -	["keyword", "Then"],
                -	["keyword", "To"],
                -	["keyword", "Until"],
                -	["keyword", "Volatile"],
                -	["keyword", "WEnd"],
                -	["keyword", "While"],
                -	["keyword", "With"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autoit/number_feature.test b/node_modules/prismjs/tests/languages/autoit/number_feature.test
                deleted file mode 100644
                index 5c6ac5b..0000000
                --- a/node_modules/prismjs/tests/languages/autoit/number_feature.test
                +++ /dev/null
                @@ -1,21 +0,0 @@
                -42
                -3.14159
                -4e8
                -3.5E-9
                -0.7e+12
                -0xBadFace
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "42"],
                -	["number", "3.14159"],
                -	["number", "4e8"],
                -	["number", "3.5E-9"],
                -	["number", "0.7e+12"],
                -	["number", "0xBadFace"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autoit/operator_feature.test b/node_modules/prismjs/tests/languages/autoit/operator_feature.test
                deleted file mode 100644
                index 65f4ce4..0000000
                --- a/node_modules/prismjs/tests/languages/autoit/operator_feature.test
                +++ /dev/null
                @@ -1,23 +0,0 @@
                -< <= <>
                -> >=
                -+ += - -=
                -* *= / /=
                -& &=
                -? ^
                -And Or Not
                -
                -----------------------------------------------------
                -
                -[
                -	["operator", "<"], ["operator", "<="], ["operator", "<>"],
                -	["operator", ">"], ["operator", ">="],
                -	["operator", "+"], ["operator", "+="], ["operator", "-"], ["operator", "-="],
                -	["operator", "*"], ["operator", "*="], ["operator", "/"], ["operator", "/="],
                -	["operator", "&"], ["operator", "&="],
                -	["operator", "?"], ["operator", "^"],
                -	["operator", "And"], ["operator", "Or"], ["operator", "Not"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for operators.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autoit/string_feature.test b/node_modules/prismjs/tests/languages/autoit/string_feature.test
                deleted file mode 100644
                index 5ae4bb7..0000000
                --- a/node_modules/prismjs/tests/languages/autoit/string_feature.test
                +++ /dev/null
                @@ -1,37 +0,0 @@
                -""
                -"foo""bar"
                -"foo %foo% bar $bar$ baz @baz@"
                -''
                -'foo''bar'
                -'foo %foo% bar $bar$ baz @baz@'
                -
                -----------------------------------------------------
                -
                -[
                -	["string", ["\"\""]],
                -	["string", ["\"foo\"\"bar\""]],
                -	["string", [
                -		"\"foo ",
                -		["variable", "%foo%"],
                -		" bar ",
                -		["variable", "$bar$"],
                -		" baz ",
                -		["variable", "@baz@"],
                -		"\""
                -	]],
                -	["string", ["''"]],
                -	["string", ["'foo''bar'"]],
                -	["string", [
                -		"'foo ",
                -		["variable", "%foo%"],
                -		" bar ",
                -		["variable", "$bar$"],
                -		" baz ",
                -		["variable", "@baz@"],
                -		"'"
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for strings and interpolation.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autoit/url_feature.test b/node_modules/prismjs/tests/languages/autoit/url_feature.test
                deleted file mode 100644
                index 1f6d3cd..0000000
                --- a/node_modules/prismjs/tests/languages/autoit/url_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -#include 
                -#include "foo.au3"
                -
                -----------------------------------------------------
                -
                -[
                -	["directive", "#include"],
                -	["url", ""],
                -	["directive", "#include"],
                -	["url", "\"foo.au3\""]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for files in includes.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/autoit/variable_feature.test b/node_modules/prismjs/tests/languages/autoit/variable_feature.test
                deleted file mode 100644
                index e36ffe3..0000000
                --- a/node_modules/prismjs/tests/languages/autoit/variable_feature.test
                +++ /dev/null
                @@ -1,19 +0,0 @@
                -$foo
                -$foo_bar_42
                -@ComputerName
                -@CPUArch
                -@TAB
                -
                -----------------------------------------------------
                -
                -[
                -	["variable", "$foo"],
                -	["variable", "$foo_bar_42"],
                -	["variable", "@ComputerName"],
                -	["variable", "@CPUArch"],
                -	["variable", "@TAB"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for variables and macros.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bash/arithmetic_environment_feature.test b/node_modules/prismjs/tests/languages/bash/arithmetic_environment_feature.test
                deleted file mode 100644
                index a9c5663..0000000
                --- a/node_modules/prismjs/tests/languages/bash/arithmetic_environment_feature.test
                +++ /dev/null
                @@ -1,53 +0,0 @@
                -(( 4 + 5 ))
                -$((5 * 7))
                -"foo $((5 * 7)) bar"
                -for (( NUM=1 ; NUM<=1000 ; NUM++ ))
                -
                -----------------------------------------------------
                -
                -[
                -	["variable", [
                -		["punctuation", "(("],
                -		["number", "4"],
                -		["operator", "+"],
                -		["number", "5"],
                -		["punctuation", "))"]
                -	]],
                -	["variable", [
                -		["variable", "$(("],
                -		["number", "5"],
                -		["operator", "*"],
                -		["number", "7"],
                -		["variable", "))"]
                -	]],
                -	["string", [
                -		"\"foo ",
                -		["variable", [
                -			["variable", "$(("],
                -			["number", "5"],
                -			["operator", "*"],
                -			["number", "7"],
                -			["variable", "))"]
                -		]],
                -		" bar\""
                -	]],
                -	["keyword", "for"],
                -	["variable", [
                -		["punctuation", "(("],
                -		" NUM",
                -		["operator", "="],
                -		["number", "1"],
                -		["punctuation", ";"],
                -		" NUM",
                -		["operator", "<="],
                -		["number", "1000"],
                -		["punctuation", ";"],
                -		" NUM",
                -		["operator", "++"],
                -		["punctuation", "))"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks arithmetic environments
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bash/command_substitution_feature.test b/node_modules/prismjs/tests/languages/bash/command_substitution_feature.test
                deleted file mode 100644
                index f849829..0000000
                --- a/node_modules/prismjs/tests/languages/bash/command_substitution_feature.test
                +++ /dev/null
                @@ -1,34 +0,0 @@
                -$(echo foo)
                -`echo foo`
                -"$(echo foo) bar"
                -
                -----------------------------------------------------
                -
                -[
                -	["variable", [
                -		["variable", "$("],
                -		["keyword", "echo"], 
                -		" foo",
                -		["variable", ")"]
                -	]],
                -	["variable", [
                -		["variable", "`"],
                -		["keyword", "echo"], 
                -		" foo",
                -		["variable", "`"]
                -	]],
                -	["string", [
                -		"\"",
                -		["variable", [
                -			["variable", "$("],
                -			["keyword", "echo"], 
                -			" foo",
                -			["variable", ")"]
                -		]],
                -		" bar\""
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for command substitution.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bash/comment_feature.test b/node_modules/prismjs/tests/languages/bash/comment_feature.test
                deleted file mode 100644
                index 5824909..0000000
                --- a/node_modules/prismjs/tests/languages/bash/comment_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -#foo
                -# bar
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "#foo"],
                -	["comment", "# bar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bash/function_feature.test b/node_modules/prismjs/tests/languages/bash/function_feature.test
                deleted file mode 100644
                index cb0def2..0000000
                --- a/node_modules/prismjs/tests/languages/bash/function_feature.test
                +++ /dev/null
                @@ -1,101 +0,0 @@
                -alias apropos apt-get aptitude aspell
                -awk basename bash bc bg
                -builtin bzip2 cal cat cd
                -cfdisk chgrp chmod chown chroot
                -chkconfig cksum clear cmp comm
                -command cp cron crontab csplit
                -cut date dc dd ddrescue
                -df diff diff3 dig dir dircolors
                -dirname dirs dmesg du
                -egrep eject enable env ethtool
                -eval exec expand expect
                -export expr fdformat fdisk
                -fg fgrep file find fmt
                -fold format free fsck ftp
                -fuser gawk getopts git grep
                -groupadd groupdel groupmod groups
                -gzip hash head help hg history
                -hostname htop iconv id ifconfig
                -ifdown ifup import install jobs
                -join kill killall less link ln
                -locate logname logout look lpc lpr
                -lprint lprintd lprintq lprm ls
                -lsof make man mkdir mkfifo
                -mkisofs mknod more most mount
                -mtools mtr mv mmv nano netstat
                -nice nl nohup notify-send nslookup
                -open op passwd paste pathchk ping
                -pkill popd pr printcap printenv
                -printf ps pushd pv pwd quota
                -quotacheck quotactl ram rar rcp
                -read readarray readonly reboot
                -rename renice remsync rev rm
                -rmdir rsync screen scp sdiff sed
                -seq service sftp shift
                -shopt shutdown sleep slocate
                -sort source split ssh stat strace
                -su sudo sum suspend sync tail tar
                -tee test time timeout times
                -touch top traceroute trap tr
                -tsort tty type ulimit umask
                -umount unalias uname unexpand uniq
                -units unrar unshar uptime
                -useradd userdel usermod users uuencode
                -uudecode v vdir vi vmstat wait watch
                -wc wget whereis which who whoami write
                -xargs xdg-open yes zip
                -
                -----------------------------------------------------
                -
                -[
                -	["function", "alias"], ["function", "apropos"], ["function", "apt-get"], ["function", "aptitude"], ["function", "aspell"],
                -	["function", "awk"], ["function", "basename"], ["function", "bash"], ["function", "bc"], ["function", "bg"],
                -	["function", "builtin"], ["function", "bzip2"], ["function", "cal"], ["function", "cat"], ["function", "cd"],
                -	["function", "cfdisk"], ["function", "chgrp"], ["function", "chmod"], ["function", "chown"], ["function", "chroot"],
                -	["function", "chkconfig"], ["function", "cksum"], ["function", "clear"], ["function", "cmp"], ["function", "comm"],
                -	["function", "command"], ["function", "cp"], ["function", "cron"], ["function", "crontab"], ["function", "csplit"],
                -	["function", "cut"], ["function", "date"], ["function", "dc"], ["function", "dd"], ["function", "ddrescue"],
                -	["function", "df"], ["function", "diff"], ["function", "diff3"], ["function", "dig"], ["function", "dir"], ["function", "dircolors"],
                -	["function", "dirname"], ["function", "dirs"], ["function", "dmesg"], ["function", "du"],
                -	["function", "egrep"], ["function", "eject"], ["function", "enable"], ["function", "env"], ["function", "ethtool"],
                -	["function", "eval"], ["function", "exec"], ["function", "expand"], ["function", "expect"],
                -	["function", "export"], ["function", "expr"], ["function", "fdformat"], ["function", "fdisk"],
                -	["function", "fg"], ["function", "fgrep"], ["function", "file"], ["function", "find"], ["function", "fmt"],
                -	["function", "fold"], ["function", "format"], ["function", "free"], ["function", "fsck"], ["function", "ftp"],
                -	["function", "fuser"], ["function", "gawk"], ["function", "getopts"], ["function", "git"], ["function", "grep"],
                -	["function", "groupadd"], ["function", "groupdel"], ["function", "groupmod"], ["function", "groups"],
                -	["function", "gzip"], ["function", "hash"], ["function", "head"], ["function", "help"], ["function", "hg"], ["function", "history"],
                -	["function", "hostname"], ["function", "htop"], ["function", "iconv"], ["function", "id"], ["function", "ifconfig"],
                -	["function", "ifdown"], ["function", "ifup"], ["function", "import"], ["function", "install"], ["function", "jobs"],
                -	["function", "join"], ["function", "kill"], ["function", "killall"], ["function", "less"], ["function", "link"], ["function", "ln"],
                -	["function", "locate"], ["function", "logname"], ["function", "logout"], ["function", "look"], ["function", "lpc"], ["function", "lpr"],
                -	["function", "lprint"], ["function", "lprintd"], ["function", "lprintq"], ["function", "lprm"], ["function", "ls"],
                -	["function", "lsof"], ["function", "make"], ["function", "man"], ["function", "mkdir"], ["function", "mkfifo"],
                -	["function", "mkisofs"], ["function", "mknod"], ["function", "more"], ["function", "most"], ["function", "mount"],
                -	["function", "mtools"], ["function", "mtr"], ["function", "mv"], ["function", "mmv"], ["function", "nano"], ["function", "netstat"],
                -	["function", "nice"], ["function", "nl"], ["function", "nohup"], ["function", "notify-send"], ["function", "nslookup"],
                -	["function", "open"], ["function", "op"], ["function", "passwd"], ["function", "paste"], ["function", "pathchk"], ["function", "ping"],
                -	["function", "pkill"], ["function", "popd"], ["function", "pr"], ["function", "printcap"], ["function", "printenv"],
                -	["function", "printf"], ["function", "ps"], ["function", "pushd"], ["function", "pv"], ["function", "pwd"], ["function", "quota"],
                -	["function", "quotacheck"], ["function", "quotactl"], ["function", "ram"], ["function", "rar"], ["function", "rcp"],
                -	["function", "read"], ["function", "readarray"], ["function", "readonly"], ["function", "reboot"],
                -	["function", "rename"], ["function", "renice"], ["function", "remsync"], ["function", "rev"], ["function", "rm"],
                -	["function", "rmdir"], ["function", "rsync"], ["function", "screen"], ["function", "scp"], ["function", "sdiff"], ["function", "sed"],
                -	["function", "seq"], ["function", "service"], ["function", "sftp"], ["function", "shift"],
                -	["function", "shopt"], ["function", "shutdown"], ["function", "sleep"], ["function", "slocate"],
                -	["function", "sort"], ["function", "source"], ["function", "split"], ["function", "ssh"], ["function", "stat"], ["function", "strace"],
                -	["function", "su"], ["function", "sudo"], ["function", "sum"], ["function", "suspend"], ["function", "sync"], ["function", "tail"], ["function", "tar"],
                -	["function", "tee"], ["function", "test"], ["function", "time"], ["function", "timeout"], ["function", "times"],
                -	["function", "touch"], ["function", "top"], ["function", "traceroute"], ["function", "trap"], ["function", "tr"],
                -	["function", "tsort"], ["function", "tty"], ["function", "type"], ["function", "ulimit"], ["function", "umask"],
                -	["function", "umount"], ["function", "unalias"], ["function", "uname"], ["function", "unexpand"], ["function", "uniq"],
                -	["function", "units"], ["function", "unrar"], ["function", "unshar"], ["function", "uptime"],
                -	["function", "useradd"], ["function", "userdel"], ["function", "usermod"], ["function", "users"], ["function", "uuencode"],
                -	["function", "uudecode"], ["function", "v"], ["function", "vdir"], ["function", "vi"], ["function", "vmstat"], ["function", "wait"], ["function", "watch"],
                -	["function", "wc"], ["function", "wget"], ["function", "whereis"], ["function", "which"], ["function", "who"], ["function", "whoami"], ["function", "write"],
                -	["function", "xargs"], ["function", "xdg-open"], ["function", "yes"], ["function", "zip"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all functions.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bash/keyword_feature.test b/node_modules/prismjs/tests/languages/bash/keyword_feature.test
                deleted file mode 100644
                index b3bacf5..0000000
                --- a/node_modules/prismjs/tests/languages/bash/keyword_feature.test
                +++ /dev/null
                @@ -1,20 +0,0 @@
                -if then else elif fi
                -for break continue while
                -in case function select
                -do done until echo exit
                -return set declare
                -. :
                -----------------------------------------------------
                -
                -[
                -	["keyword", "if"], ["keyword", "then"], ["keyword", "else"], ["keyword", "elif"], ["keyword", "fi"],
                -	["keyword", "for"], ["keyword", "break"], ["keyword", "continue"], ["keyword", "while"],
                -	["keyword", "in"], ["keyword", "case"], ["keyword", "function"], ["keyword", "select"],
                -	["keyword", "do"], ["keyword", "done"], ["keyword", "until"], ["keyword", "echo"], ["keyword", "exit"],
                -	["keyword", "return"], ["keyword", "set"], ["keyword", "declare"],
                -	["keyword", "."], ["keyword", ":"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bash/shebang_feature.test b/node_modules/prismjs/tests/languages/bash/shebang_feature.test
                deleted file mode 100644
                index c41860d..0000000
                --- a/node_modules/prismjs/tests/languages/bash/shebang_feature.test
                +++ /dev/null
                @@ -1,11 +0,0 @@
                -#!/bin/bash
                -
                -----------------------------------------------------
                -
                -[
                -	["shebang", "#!/bin/bash"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for shebang.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bash/string_feature.test b/node_modules/prismjs/tests/languages/bash/string_feature.test
                deleted file mode 100644
                index fd2a303..0000000
                --- a/node_modules/prismjs/tests/languages/bash/string_feature.test
                +++ /dev/null
                @@ -1,67 +0,0 @@
                -""
                -''
                -"foo"
                -'foo'
                -"foo
                -bar"
                -'foo
                -bar'
                -"'foo'"
                -'"bar"'
                -"$@"
                -"${foo}"
                -<< STRING_END
                -foo
                -bar
                -STRING_END
                -<<   EOF
                -foo $@
                -bar
                -EOF
                -<< 'EOF'
                -'single quoted string'
                -"double quoted string"
                -EOF
                -<< "EOF"
                -foo
                -bar
                -EOF
                -<< STRING_END
                -# comment
                -STRING_END
                -"  # comment  "
                -
                -----------------------------------------------------
                -
                -[
                -	["string", ["\"\""]],
                -	["string", ["''"]],
                -	["string", ["\"foo\""]],
                -	["string", ["'foo'"]],
                -	["string", ["\"foo\r\nbar\""]],
                -	["string", ["'foo\r\nbar'"]],
                -	["string", ["\"'foo'\""]],
                -	["string", ["'\"bar\"'"]],
                -	["string", [
                -		"\"", ["variable", "$@"], "\""
                -	]],
                -	["string", [
                -		"\"", ["variable", "${foo}"], "\""
                -	]],
                -	["operator", "<<"],
                -	["string", ["STRING_END\r\nfoo\r\nbar\r\nSTRING_END"]],
                -	["operator", "<<"],
                -	["string", ["EOF\r\nfoo ", ["variable", "$@"], "\r\nbar\r\nEOF"]],
                -	["operator", "<<"],
                -	["string", ["'EOF'\r\n'single quoted string'\r\n\"double quoted string\"\r\nEOF"]],
                -	["operator", "<<"],
                -	["string", ["\"EOF\"\r\nfoo\r\nbar\r\nEOF"]],
                -	["operator", "<<"],
                -	["string", ["STRING_END\r\n# comment\r\nSTRING_END"]],
                -	["string", ["\"  # comment  \""]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for single-quoted and double-quoted strings.
                -Also checks for variables in strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bash/variable_feature.test b/node_modules/prismjs/tests/languages/bash/variable_feature.test
                deleted file mode 100644
                index 16b7448..0000000
                --- a/node_modules/prismjs/tests/languages/bash/variable_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -$foo
                -$@
                -${foo bar}
                -
                -----------------------------------------------------
                -
                -[
                -	["variable", "$foo"],
                -	["variable", "$@"],
                -	["variable", "${foo bar}"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for variables.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/basic/comment_feature.test b/node_modules/prismjs/tests/languages/basic/comment_feature.test
                deleted file mode 100644
                index d306176..0000000
                --- a/node_modules/prismjs/tests/languages/basic/comment_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -! Foobar
                -REM Foobar
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", ["! Foobar"]],
                -	["comment", [["keyword", "REM"], " Foobar"]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/basic/function_feature.test b/node_modules/prismjs/tests/languages/basic/function_feature.test
                deleted file mode 100644
                index 5fe8d76..0000000
                --- a/node_modules/prismjs/tests/languages/basic/function_feature.test
                +++ /dev/null
                @@ -1,309 +0,0 @@
                -ABS
                -ACCESS
                -ACOS
                -ANGLE
                -AREA
                -ARITHMETIC
                -ARRAY
                -ASIN
                -ASK
                -AT
                -ATN
                -BASE
                -BEGIN
                -BREAK
                -CAUSE
                -CEIL
                -CHR
                -CLIP
                -COLLATE
                -COLOR
                -CON
                -COS
                -COSH
                -COT
                -CSC
                -DATE
                -DATUM
                -DEBUG
                -DECIMAL
                -DEF
                -DEG
                -DEGREES
                -DELETE
                -DET
                -DEVICE
                -DISPLAY
                -DOT
                -ELAPSED
                -EPS
                -ERASABLE
                -EXLINE
                -EXP
                -EXTERNAL
                -EXTYPE
                -FILETYPE
                -FIXED
                -FP
                -GO
                -GRAPH
                -HANDLER
                -IDN
                -IMAGE
                -IN
                -INT
                -INTERNAL
                -IP
                -IS
                -KEYED
                -LBOUND
                -LCASE
                -LEFT
                -LEN
                -LENGTH
                -LET
                -LINE
                -LINES
                -LOG
                -LOG10
                -LOG2
                -LTRIM
                -MARGIN
                -MAT
                -MAX
                -MAXNUM
                -MID
                -MIN
                -MISSING
                -MOD
                -NATIVE
                -NUL
                -NUMERIC
                -OF
                -OPTION
                -ORD
                -ORGANIZATION
                -OUTIN
                -OUTPUT
                -PI
                -POINT
                -POINTER
                -POINTS
                -POS
                -PRINT
                -PROGRAM
                -PROMPT
                -RAD
                -RADIANS
                -RANDOMIZE
                -RECORD
                -RECSIZE
                -RECTYPE
                -RELATIVE
                -REMAINDER
                -REPEAT
                -REST
                -RETRY
                -REWRITE
                -RIGHT
                -RND
                -ROUND
                -RTRIM
                -SAME
                -SEC
                -SELECT
                -SEQUENTIAL
                -SET
                -SETTER
                -SGN
                -SIN
                -SINH
                -SIZE
                -SKIP
                -SQR
                -STANDARD
                -STATUS
                -STR
                -STREAM
                -STYLE
                -TAB
                -TAN
                -TANH
                -TEMPLATE
                -TEXT
                -THERE
                -TIME
                -TIMEOUT
                -TRACE
                -TRANSFORM
                -TRUNCATE
                -UBOUND
                -UCASE
                -USE
                -VAL
                -VARIABLE
                -VIEWPORT
                -WHEN
                -WINDOW
                -WITH
                -ZER
                -ZONEWIDTH
                -
                -----------------------------------------------------
                -
                -[
                -	["function", "ABS"],
                -	["function", "ACCESS"],
                -	["function", "ACOS"],
                -	["function", "ANGLE"],
                -	["function", "AREA"],
                -	["function", "ARITHMETIC"],
                -	["function", "ARRAY"],
                -	["function", "ASIN"],
                -	["function", "ASK"],
                -	["function", "AT"],
                -	["function", "ATN"],
                -	["function", "BASE"],
                -	["function", "BEGIN"],
                -	["function", "BREAK"],
                -	["function", "CAUSE"],
                -	["function", "CEIL"],
                -	["function", "CHR"],
                -	["function", "CLIP"],
                -	["function", "COLLATE"],
                -	["function", "COLOR"],
                -	["function", "CON"],
                -	["function", "COS"],
                -	["function", "COSH"],
                -	["function", "COT"],
                -	["function", "CSC"],
                -	["function", "DATE"],
                -	["function", "DATUM"],
                -	["function", "DEBUG"],
                -	["function", "DECIMAL"],
                -	["function", "DEF"],
                -	["function", "DEG"],
                -	["function", "DEGREES"],
                -	["function", "DELETE"],
                -	["function", "DET"],
                -	["function", "DEVICE"],
                -	["function", "DISPLAY"],
                -	["function", "DOT"],
                -	["function", "ELAPSED"],
                -	["function", "EPS"],
                -	["function", "ERASABLE"],
                -	["function", "EXLINE"],
                -	["function", "EXP"],
                -	["function", "EXTERNAL"],
                -	["function", "EXTYPE"],
                -	["function", "FILETYPE"],
                -	["function", "FIXED"],
                -	["function", "FP"],
                -	["function", "GO"],
                -	["function", "GRAPH"],
                -	["function", "HANDLER"],
                -	["function", "IDN"],
                -	["function", "IMAGE"],
                -	["function", "IN"],
                -	["function", "INT"],
                -	["function", "INTERNAL"],
                -	["function", "IP"],
                -	["function", "IS"],
                -	["function", "KEYED"],
                -	["function", "LBOUND"],
                -	["function", "LCASE"],
                -	["function", "LEFT"],
                -	["function", "LEN"],
                -	["function", "LENGTH"],
                -	["function", "LET"],
                -	["function", "LINE"],
                -	["function", "LINES"],
                -	["function", "LOG"],
                -	["function", "LOG10"],
                -	["function", "LOG2"],
                -	["function", "LTRIM"],
                -	["function", "MARGIN"],
                -	["function", "MAT"],
                -	["function", "MAX"],
                -	["function", "MAXNUM"],
                -	["function", "MID"],
                -	["function", "MIN"],
                -	["function", "MISSING"],
                -	["function", "MOD"],
                -	["function", "NATIVE"],
                -	["function", "NUL"],
                -	["function", "NUMERIC"],
                -	["function", "OF"],
                -	["function", "OPTION"],
                -	["function", "ORD"],
                -	["function", "ORGANIZATION"],
                -	["function", "OUTIN"],
                -	["function", "OUTPUT"],
                -	["function", "PI"],
                -	["function", "POINT"],
                -	["function", "POINTER"],
                -	["function", "POINTS"],
                -	["function", "POS"],
                -	["function", "PRINT"],
                -	["function", "PROGRAM"],
                -	["function", "PROMPT"],
                -	["function", "RAD"],
                -	["function", "RADIANS"],
                -	["function", "RANDOMIZE"],
                -	["function", "RECORD"],
                -	["function", "RECSIZE"],
                -	["function", "RECTYPE"],
                -	["function", "RELATIVE"],
                -	["function", "REMAINDER"],
                -	["function", "REPEAT"],
                -	["function", "REST"],
                -	["function", "RETRY"],
                -	["function", "REWRITE"],
                -	["function", "RIGHT"],
                -	["function", "RND"],
                -	["function", "ROUND"],
                -	["function", "RTRIM"],
                -	["function", "SAME"],
                -	["function", "SEC"],
                -	["function", "SELECT"],
                -	["function", "SEQUENTIAL"],
                -	["function", "SET"],
                -	["function", "SETTER"],
                -	["function", "SGN"],
                -	["function", "SIN"],
                -	["function", "SINH"],
                -	["function", "SIZE"],
                -	["function", "SKIP"],
                -	["function", "SQR"],
                -	["function", "STANDARD"],
                -	["function", "STATUS"],
                -	["function", "STR"],
                -	["function", "STREAM"],
                -	["function", "STYLE"],
                -	["function", "TAB"],
                -	["function", "TAN"],
                -	["function", "TANH"],
                -	["function", "TEMPLATE"],
                -	["function", "TEXT"],
                -	["function", "THERE"],
                -	["function", "TIME"],
                -	["function", "TIMEOUT"],
                -	["function", "TRACE"],
                -	["function", "TRANSFORM"],
                -	["function", "TRUNCATE"],
                -	["function", "UBOUND"],
                -	["function", "UCASE"],
                -	["function", "USE"],
                -	["function", "VAL"],
                -	["function", "VARIABLE"],
                -	["function", "VIEWPORT"],
                -	["function", "WHEN"],
                -	["function", "WINDOW"],
                -	["function", "WITH"],
                -	["function", "ZER"],
                -	["function", "ZONEWIDTH"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for functions.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/basic/keyword_feature.test b/node_modules/prismjs/tests/languages/basic/keyword_feature.test
                deleted file mode 100644
                index ecac685..0000000
                --- a/node_modules/prismjs/tests/languages/basic/keyword_feature.test
                +++ /dev/null
                @@ -1,213 +0,0 @@
                -AS
                -BEEP
                -BLOAD
                -BSAVE
                -CALL
                -CALL ABSOLUTE
                -CASE
                -CHAIN
                -CHDIR
                -CLEAR
                -CLOSE
                -CLS
                -COM
                -COMMON
                -CONST
                -DATA
                -DECLARE
                -DEF FN
                -DEF SEG
                -DEFDBL
                -DEFINT
                -DEFLNG
                -DEFSNG
                -DEFSTR
                -DIM
                -DO
                -DOUBLE
                -ELSE
                -ELSEIF
                -END
                -ENVIRON
                -ERASE
                -ERROR
                -EXIT
                -FIELD
                -FILES
                -FOR
                -FUNCTION
                -GET
                -GOSUB
                -GOTO
                -IF
                -INPUT
                -INTEGER
                -IOCTL
                -KEY
                -KILL
                -LINE INPUT
                -LOCATE
                -LOCK
                -LONG
                -LOOP
                -LSET
                -MKDIR
                -NAME
                -NEXT
                -OFF
                -ON
                -ON COM
                -ON ERROR
                -ON KEY
                -ON TIMER
                -OPEN
                -OPTION BASE
                -OUT
                -POKE
                -PUT
                -READ
                -REDIM
                -REM
                -RESTORE
                -RESUME
                -RETURN
                -RMDIR
                -RSET
                -RUN
                -SHARED
                -SINGLE
                -SELECT CASE
                -SHELL
                -SLEEP
                -STATIC
                -STEP
                -STOP
                -STRING
                -SUB
                -SWAP
                -SYSTEM
                -THEN
                -TIMER
                -TO
                -TROFF
                -TRON
                -TYPE
                -UNLOCK
                -UNTIL
                -USING
                -VIEW PRINT
                -WAIT
                -WEND
                -WHILE
                -WRITE
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "AS"],
                -	["keyword", "BEEP"],
                -	["keyword", "BLOAD"],
                -	["keyword", "BSAVE"],
                -	["keyword", "CALL"],
                -	["keyword", "CALL ABSOLUTE"],
                -	["keyword", "CASE"],
                -	["keyword", "CHAIN"],
                -	["keyword", "CHDIR"],
                -	["keyword", "CLEAR"],
                -	["keyword", "CLOSE"],
                -	["keyword", "CLS"],
                -	["keyword", "COM"],
                -	["keyword", "COMMON"],
                -	["keyword", "CONST"],
                -	["keyword", "DATA"],
                -	["keyword", "DECLARE"],
                -	["keyword", "DEF FN"],
                -	["keyword", "DEF SEG"],
                -	["keyword", "DEFDBL"],
                -	["keyword", "DEFINT"],
                -	["keyword", "DEFLNG"],
                -	["keyword", "DEFSNG"],
                -	["keyword", "DEFSTR"],
                -	["keyword", "DIM"],
                -	["keyword", "DO"],
                -	["keyword", "DOUBLE"],
                -	["keyword", "ELSE"],
                -	["keyword", "ELSEIF"],
                -	["keyword", "END"],
                -	["keyword", "ENVIRON"],
                -	["keyword", "ERASE"],
                -	["keyword", "ERROR"],
                -	["keyword", "EXIT"],
                -	["keyword", "FIELD"],
                -	["keyword", "FILES"],
                -	["keyword", "FOR"],
                -	["keyword", "FUNCTION"],
                -	["keyword", "GET"],
                -	["keyword", "GOSUB"],
                -	["keyword", "GOTO"],
                -	["keyword", "IF"],
                -	["keyword", "INPUT"],
                -	["keyword", "INTEGER"],
                -	["keyword", "IOCTL"],
                -	["keyword", "KEY"],
                -	["keyword", "KILL"],
                -	["keyword", "LINE INPUT"],
                -	["keyword", "LOCATE"],
                -	["keyword", "LOCK"],
                -	["keyword", "LONG"],
                -	["keyword", "LOOP"],
                -	["keyword", "LSET"],
                -	["keyword", "MKDIR"],
                -	["keyword", "NAME"],
                -	["keyword", "NEXT"],
                -	["keyword", "OFF"],
                -	["keyword", "ON"],
                -	["keyword", "ON COM"],
                -	["keyword", "ON ERROR"],
                -	["keyword", "ON KEY"],
                -	["keyword", "ON TIMER"],
                -	["keyword", "OPEN"],
                -	["keyword", "OPTION BASE"],
                -	["keyword", "OUT"],
                -	["keyword", "POKE"],
                -	["keyword", "PUT"],
                -	["keyword", "READ"],
                -	["keyword", "REDIM"],
                -	["keyword", "REM"],
                -	["keyword", "RESTORE"],
                -	["keyword", "RESUME"],
                -	["keyword", "RETURN"],
                -	["keyword", "RMDIR"],
                -	["keyword", "RSET"],
                -	["keyword", "RUN"],
                -	["keyword", "SHARED"],
                -	["keyword", "SINGLE"],
                -	["keyword", "SELECT CASE"],
                -	["keyword", "SHELL"],
                -	["keyword", "SLEEP"],
                -	["keyword", "STATIC"],
                -	["keyword", "STEP"],
                -	["keyword", "STOP"],
                -	["keyword", "STRING"],
                -	["keyword", "SUB"],
                -	["keyword", "SWAP"],
                -	["keyword", "SYSTEM"],
                -	["keyword", "THEN"],
                -	["keyword", "TIMER"],
                -	["keyword", "TO"],
                -	["keyword", "TROFF"],
                -	["keyword", "TRON"],
                -	["keyword", "TYPE"],
                -	["keyword", "UNLOCK"],
                -	["keyword", "UNTIL"],
                -	["keyword", "USING"],
                -	["keyword", "VIEW PRINT"],
                -	["keyword", "WAIT"],
                -	["keyword", "WEND"],
                -	["keyword", "WHILE"],
                -	["keyword", "WRITE"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/basic/number_feature.test b/node_modules/prismjs/tests/languages/basic/number_feature.test
                deleted file mode 100644
                index 5adeb7a..0000000
                --- a/node_modules/prismjs/tests/languages/basic/number_feature.test
                +++ /dev/null
                @@ -1,19 +0,0 @@
                -42
                -3.14159
                -2e8
                -3.4E-9
                -0.7E+12
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "42"],
                -	["number", "3.14159"],
                -	["number", "2e8"],
                -	["number", "3.4E-9"],
                -	["number", "0.7E+12"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/basic/operator_feature.test b/node_modules/prismjs/tests/languages/basic/operator_feature.test
                deleted file mode 100644
                index b2d93f6..0000000
                --- a/node_modules/prismjs/tests/languages/basic/operator_feature.test
                +++ /dev/null
                @@ -1,21 +0,0 @@
                -< <= <>
                -> >=
                -+ - * /
                -^ = &
                -AND EQV IMP
                -NOT OR XOR
                -
                -----------------------------------------------------
                -
                -[
                -	["operator", "<"], ["operator", "<="], ["operator", "<>"],
                -	["operator", ">"], ["operator", ">="],
                -	["operator", "+"], ["operator", "-"], ["operator", "*"], ["operator", "/"],
                -	["operator", "^"], ["operator", "="], ["operator", "&"],
                -	["operator", "AND"], ["operator", "EQV"], ["operator", "IMP"],
                -	["operator", "NOT"], ["operator", "OR"], ["operator", "XOR"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for operators.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/basic/string_feature.test b/node_modules/prismjs/tests/languages/basic/string_feature.test
                deleted file mode 100644
                index 83fea35..0000000
                --- a/node_modules/prismjs/tests/languages/basic/string_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -""
                -"fo""obar"
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "\"\""],
                -	["string", "\"fo\"\"obar\""]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/batch/command_feature.test b/node_modules/prismjs/tests/languages/batch/command_feature.test
                deleted file mode 100644
                index 350788a..0000000
                --- a/node_modules/prismjs/tests/languages/batch/command_feature.test
                +++ /dev/null
                @@ -1,103 +0,0 @@
                -FOR /l %%a in (5,-1,1) do (TITLE %title% -- closing in %%as)
                -SET title=%~n0
                -echo.Hello World
                -@ECHO OFF
                -if not defined ProgressFormat set "ProgressFormat=[PPPP]"
                -EXIT /b
                -set /a ProgressCnt+=1
                -IF "%~1" NEQ "" (SET %~1=%new%) ELSE (echo.%new%)
                -
                -----------------------------------------------------
                -
                -[
                -	["command", [
                -		["keyword", "FOR"],
                -		["parameter", ["/l"]],
                -		["variable", "%%a"],
                -		["keyword", "in"],
                -		["punctuation", "("],
                -		["number", "5"], ["punctuation", ","],
                -		["number", "-1"], ["punctuation", ","],
                -		["number", "1"], ["punctuation", ")"],
                -		["keyword", "do"]
                -	]],
                -	["punctuation", "("],
                -	["command", [
                -		["keyword", "TITLE"],
                -		["variable", "%title%"],
                -		" -- closing in ",
                -		["variable", "%%as"]
                -	]],
                -	["punctuation", ")"],
                -
                -	["command", [
                -		["keyword", "SET"],
                -		["variable", "title"],
                -		["operator", "="],
                -		["variable", "%~n0"]
                -	]],
                -
                -	["command", [
                -		["keyword", "echo"],
                -		".Hello World"
                -	]],
                -
                -	["operator", "@"],
                -	["command", [
                -		["keyword", "ECHO"],
                -		" OFF"
                -	]],
                -
                -	["command", [
                -		["keyword", "if"],
                -		["keyword", "not"],
                -		["keyword", "defined"],
                -		" ProgressFormat"
                -	]],
                -	["command", [
                -		["keyword", "set"],
                -		["string", "\"ProgressFormat=[PPPP]\""]
                -	]],
                -
                -	["command", [
                -		["keyword", "EXIT"],
                -		["parameter", ["/b"]]
                -	]],
                -
                -	["command", [
                -		["keyword", "set"],
                -		["parameter", ["/a"]],
                -		["variable", "ProgressCnt"],
                -		["operator", "+="],
                -		["number", "1"]
                -	]],
                -
                -	["command", [
                -		["keyword", "IF"],
                -		["string", "\"%~1\""],
                -		["operator", "NEQ"],
                -		["string", "\"\""]
                -	]],
                -	["punctuation", "("],
                -	["command", [
                -		["keyword", "SET"],
                -		["variable", "%~1"],
                -		["operator", "="],
                -		["variable", "%new%"]
                -	]],
                -	["punctuation", ")"],
                -	["command", [
                -		["keyword", "ELSE"]
                -	]],
                -	["punctuation", "("],
                -	["command", [
                -		["keyword", "echo"],
                -		".",
                -		["variable", "%new%"]
                -	]],
                -	["punctuation", ")"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for commands.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/batch/comment_feature.test b/node_modules/prismjs/tests/languages/batch/comment_feature.test
                deleted file mode 100644
                index 83759d8..0000000
                --- a/node_modules/prismjs/tests/languages/batch/comment_feature.test
                +++ /dev/null
                @@ -1,18 +0,0 @@
                -::
                -:: Foobar
                -REM Foobar
                -rem foo^
                -bar
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "::"],
                -	["comment", ":: Foobar"],
                -	["comment", "REM Foobar"],
                -	["comment", "rem foo^\r\nbar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/batch/label_feature.test b/node_modules/prismjs/tests/languages/batch/label_feature.test
                deleted file mode 100644
                index a672ba0..0000000
                --- a/node_modules/prismjs/tests/languages/batch/label_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -:foo
                -:Foo_Bar
                -
                -----------------------------------------------------
                -
                -[
                -	["label", ":foo"],
                -	["label", ":Foo_Bar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for labels.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bison/c_feature.test b/node_modules/prismjs/tests/languages/bison/c_feature.test
                deleted file mode 100644
                index 4d8be83..0000000
                --- a/node_modules/prismjs/tests/languages/bison/c_feature.test
                +++ /dev/null
                @@ -1,56 +0,0 @@
                -%{
                -	#include 
                -%}
                -%code {
                -	if(foo) {
                -
                -	}
                -}
                -%%
                -exp:
                -	NUM {
                -		$$ = f($3, $4);
                -		@$.first_column = @1.first_column;
                -		$result = $left + $1;
                -	}
                -%%
                -
                -----------------------------------------------------
                -
                -[
                -	["bison", [
                -		["c", [
                -			["delimiter", "%{"],
                -			["macro", ["#", ["directive", "include"], ["string", ""]]],
                -			["delimiter", "%}"]
                -		]],
                -		["keyword", "%code"],
                -		["c", [
                -			["delimiter", "{"],
                -			["keyword", "if"], ["punctuation", "("], "foo", ["punctuation", ")"],
                -			["punctuation", "{"], ["punctuation", "}"],
                -			["delimiter", "}"]
                -		]],
                -		["punctuation", "%%"],
                -		["property", "exp"], ["punctuation", ":"],
                -		"\r\n\tNUM ",
                -		["c", [
                -			["delimiter", "{"],
                -			["bison-variable", ["$$"]], ["operator", "="],
                -			["function", "f"], ["punctuation", "("],
                -			["bison-variable", ["$3"]], ["punctuation", ","],
                -			["bison-variable", ["$4"]], ["punctuation", ")"], ["punctuation", ";"],
                -			["bison-variable", ["@$"]], ["punctuation", "."], "first_column ", ["operator", "="],
                -			["bison-variable", ["@1"]], ["punctuation", "."], "first_column", ["punctuation", ";"],
                -			["bison-variable", ["$result"]], ["operator", "="],
                -			["bison-variable", ["$left"]], ["operator", "+"],
                -			["bison-variable", ["$", ["punctuation", "<"], "itype", ["punctuation", ">"], "1"]], ["punctuation", ";"],
                -			["delimiter", "}"]
                -		]],
                -		["punctuation", "%%"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for C inside Bison, along with special Bison variables.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bison/comment_feature.test b/node_modules/prismjs/tests/languages/bison/comment_feature.test
                deleted file mode 100644
                index 15ed152..0000000
                --- a/node_modules/prismjs/tests/languages/bison/comment_feature.test
                +++ /dev/null
                @@ -1,25 +0,0 @@
                -// Foobar
                -/* Foo
                -bar */
                -%%
                -// Foobar
                -/* Foo
                -bar */
                -%%
                -
                -----------------------------------------------------
                -
                -[
                -	["bison", [
                -		["comment", "// Foobar"],
                -		["comment", "/* Foo\r\nbar */"],
                -		["punctuation", "%%"],
                -		["comment", "// Foobar"],
                -		["comment", "/* Foo\r\nbar */"],
                -		["punctuation", "%%"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bison/keyword_feature.test b/node_modules/prismjs/tests/languages/bison/keyword_feature.test
                deleted file mode 100644
                index 49fb373..0000000
                --- a/node_modules/prismjs/tests/languages/bison/keyword_feature.test
                +++ /dev/null
                @@ -1,22 +0,0 @@
                -%union
                -%token
                -%%
                -exp: %empty
                -%%
                -
                -----------------------------------------------------
                -
                -[
                -	["bison", [
                -		["keyword", "%union"],
                -		["keyword", "%token"],
                -		["punctuation", "%%"],
                -		["property", "exp"], ["punctuation", ":"],
                -		["keyword", "%empty"],
                -		["punctuation", "%%"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bison/number_feature.test b/node_modules/prismjs/tests/languages/bison/number_feature.test
                deleted file mode 100644
                index ddbacff..0000000
                --- a/node_modules/prismjs/tests/languages/bison/number_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -42
                -0
                -0xBadFace
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "42"],
                -	["number", "0"],
                -	["number", "0xBadFace"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bison/property_feature.test b/node_modules/prismjs/tests/languages/bison/property_feature.test
                deleted file mode 100644
                index c1b6cb2..0000000
                --- a/node_modules/prismjs/tests/languages/bison/property_feature.test
                +++ /dev/null
                @@ -1,21 +0,0 @@
                -%%
                -foo:
                -bar_42:
                -$@1:
                -%%
                -
                -----------------------------------------------------
                -
                -[
                -	["bison", [
                -		["punctuation", "%%"],
                -		["property", "foo"], ["punctuation", ":"],
                -		["property", "bar_42"], ["punctuation", ":"],
                -		["property", "$@1"], ["punctuation", ":"],
                -		["punctuation", "%%"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for properties.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bison/string_feature.test b/node_modules/prismjs/tests/languages/bison/string_feature.test
                deleted file mode 100644
                index 3f3f6c0..0000000
                --- a/node_modules/prismjs/tests/languages/bison/string_feature.test
                +++ /dev/null
                @@ -1,21 +0,0 @@
                -%%
                -foo: 'foo' "foo";
                -bar: '\'' "\"";
                -%%
                -
                -----------------------------------------------------
                -
                -[
                -	["bison", [
                -		["punctuation", "%%"],
                -		["property", "foo"], ["punctuation", ":"],
                -		["string", "'foo'"], ["string", "\"foo\""], ["punctuation", ";"],
                -		["property", "bar"], ["punctuation", ":"],
                -		["string", "'\\''"], ["string", "\"\\\"\""], ["punctuation", ";"],
                -		["punctuation", "%%"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/brainfuck/all_feature.test b/node_modules/prismjs/tests/languages/brainfuck/all_feature.test
                deleted file mode 100644
                index 284f758..0000000
                --- a/node_modules/prismjs/tests/languages/brainfuck/all_feature.test
                +++ /dev/null
                @@ -1,19 +0,0 @@
                -++ foobar
                -[
                -	>.
                -	<-,
                -]
                -
                -----------------------------------------------------
                -
                -[
                -	["increment", "+"], ["increment", "+"], ["comment", "foobar"],
                -	["branching", "["],
                -	["pointer", ">"], ["operator", "."],
                -	["pointer", "<"], ["decrement", "-"], ["operator", ","],
                -	["branching", "]"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all patterns.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bro/builtin_feature.test b/node_modules/prismjs/tests/languages/bro/builtin_feature.test
                deleted file mode 100644
                index cd5a121..0000000
                --- a/node_modules/prismjs/tests/languages/bro/builtin_feature.test
                +++ /dev/null
                @@ -1,29 +0,0 @@
                -@load-sigs
                -@load-plugin
                -@unload
                -@prefixes
                -@ifndef
                -@ifdef
                -@else
                -&redef
                -&priority
                -redef
                -
                -----------------------------------------------------
                -
                -[
                -	["builtin", "@load-sigs"],
                -	["builtin", "@load-plugin"],
                -	["builtin", "@unload"],
                -	["builtin", "@prefixes"],
                -	["builtin", "@ifndef"],
                -	["builtin", "@ifdef"],
                -	["builtin", "@else"],
                -	["builtin", "&redef"],
                -	["builtin", "&priority"],
                -	["builtin", "redef"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for the builtins
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bro/comment_feature.test b/node_modules/prismjs/tests/languages/bro/comment_feature.test
                deleted file mode 100644
                index e1eff30..0000000
                --- a/node_modules/prismjs/tests/languages/bro/comment_feature.test
                +++ /dev/null
                @@ -1,17 +0,0 @@
                -## comment
                -#TODO
                -## FIXME
                -# XXX
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", [ "## comment"]],
                -	["comment", [ "#", ["italic", "TODO"]]],
                -	["comment", [ "## ", ["italic", "FIXME"]]],
                -	["comment", [ "# ", ["italic", "XXX"]]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for the highlighting of comments
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bro/function_feature.test b/node_modules/prismjs/tests/languages/bro/function_feature.test
                deleted file mode 100644
                index a10d792..0000000
                --- a/node_modules/prismjs/tests/languages/bro/function_feature.test
                +++ /dev/null
                @@ -1,21 +0,0 @@
                -function foo
                -hook foo
                -event foo
                -function foo::bar
                -hook foo::bar
                -event foo::bar
                -
                -----------------------------------------------------
                -
                -[
                -	["function", [["keyword", "function"], " foo"]],
                -	["function", [["keyword", "hook"], " foo"]],
                -	["function", [["keyword", "event"], " foo"]],
                -	["function", [["keyword", "function"], " foo::bar"]],
                -	["function", [["keyword", "hook"], " foo::bar"]],
                -	["function", [["keyword", "event"], " foo::bar"]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for the function feature
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bro/keyword_feature.test b/node_modules/prismjs/tests/languages/bro/keyword_feature.test
                deleted file mode 100644
                index aa025cd..0000000
                --- a/node_modules/prismjs/tests/languages/bro/keyword_feature.test
                +++ /dev/null
                @@ -1,87 +0,0 @@
                -break
                -next
                -continue
                -alarm
                -using
                -of
                -add
                -delete
                -export
                -print
                -return
                -schedule
                -when
                -timeout
                -addr
                -any
                -bool
                -count
                -double
                -enum
                -file
                -int
                -interval
                -pattern
                -opaque
                -port
                -record
                -set
                -string
                -subnet
                -table
                -time
                -vector
                -for
                -if
                -else
                -in
                -module
                -function
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "break"],
                -	["keyword", "next"],
                -	["keyword", "continue"],
                -	["keyword", "alarm"],
                -	["keyword", "using"],
                -	["keyword", "of"],
                -	["keyword", "add"],
                -	["keyword", "delete"],
                -	["keyword", "export"],
                -	["keyword", "print"],
                -	["keyword", "return"],
                -	["keyword", "schedule"],
                -	["keyword", "when"],
                -	["keyword", "timeout"],
                -	["keyword", "addr"],
                -	["keyword", "any"],
                -	["keyword", "bool"],
                -	["keyword", "count"],
                -	["keyword", "double"],
                -	["keyword", "enum"],
                -	["keyword", "file"],
                -	["keyword", "int"],
                -	["keyword", "interval"],
                -	["keyword", "pattern"],
                -	["keyword", "opaque"],
                -	["keyword", "port"],
                -	["keyword", "record"],
                -	["keyword", "set"],
                -	["keyword", "string"],
                -	["keyword", "subnet"],
                -	["keyword", "table"],
                -	["keyword", "time"],
                -	["keyword", "vector"],
                -	["keyword", "for"],
                -	["keyword", "if"],
                -	["keyword", "else"],
                -	["keyword", "in"],
                -	["keyword", "module"],
                -	["keyword", "function"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for the builtins
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bro/string_feature.test b/node_modules/prismjs/tests/languages/bro/string_feature.test
                deleted file mode 100644
                index 68277b5..0000000
                --- a/node_modules/prismjs/tests/languages/bro/string_feature.test
                +++ /dev/null
                @@ -1,23 +0,0 @@
                -""
                -''
                -"foo"
                -'foo'
                -"'foo'"
                -'"bar"'
                -"  # comment  "
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "\"\""],
                -	["string", "''"],
                -	["string", "\"foo\""],
                -	["string", "'foo'"],
                -	["string", "\"'foo'\""],
                -	["string", "'\"bar\"'"],
                -	["string", "\"  # comment  \""]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for single-quoted and double-quoted strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/bro/variable_feature.test b/node_modules/prismjs/tests/languages/bro/variable_feature.test
                deleted file mode 100644
                index daf5120..0000000
                --- a/node_modules/prismjs/tests/languages/bro/variable_feature.test
                +++ /dev/null
                @@ -1,25 +0,0 @@
                -local foo
                -global foo
                -local bool = T;
                -const bar
                -local baz = 66;
                -
                -----------------------------------------------------
                -
                -[
                -	["variable", [["keyword", "local"], " foo"]],
                -	["variable", [["keyword", "global"], " foo"]],
                -	["variable", [["keyword", "local"], " bool"]],
                -	["operator", "="],
                -	["boolean", "T"],
                -	["punctuation", ";"],
                -	["constant", [["keyword", "const"], " bar"]],
                -	["variable", [["keyword", "local"], " baz"]],
                -	["operator", "="],
                -	["number", "66"],
                -	["punctuation", ";"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for the highlighting of variables
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/c+pure/c_inclusion.test b/node_modules/prismjs/tests/languages/c+pure/c_inclusion.test
                deleted file mode 100644
                index 312fde2..0000000
                --- a/node_modules/prismjs/tests/languages/c+pure/c_inclusion.test
                +++ /dev/null
                @@ -1,28 +0,0 @@
                -%<
                -asm ();
                -%>
                -
                -%< -*- C -*-
                -asm ();
                -%>
                -
                -----------------------------------------------------
                -
                -[
                -	["inline-lang", [
                -		["delimiter", "%<"],
                -		["keyword", "asm"], ["punctuation", "("], ["punctuation", ")"], ["punctuation", ";"],
                -		["delimiter", "%>"]
                -	]],
                -
                -	["inline-lang-c", [
                -		["delimiter", "%< "],
                -		["lang", "-*- C -*-"],
                -		["keyword", "asm"], ["punctuation", "("], ["punctuation", ")"], ["punctuation", ";"],
                -		["delimiter", "%>"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for C in Pure.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/c/keyword_feature.test b/node_modules/prismjs/tests/languages/c/keyword_feature.test
                deleted file mode 100644
                index 3c9f6e0..0000000
                --- a/node_modules/prismjs/tests/languages/c/keyword_feature.test
                +++ /dev/null
                @@ -1,23 +0,0 @@
                -asm typeof inline auto break
                -case char const continue default
                -do double else enum extern
                -float for goto if int
                -long register return short signed
                -sizeof static struct switch typedef
                -union unsigned void volatile while
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "asm"], ["keyword", "typeof"], ["keyword", "inline"], ["keyword", "auto"], ["keyword", "break"],
                -	["keyword", "case"], ["keyword", "char"], ["keyword", "const"], ["keyword", "continue"], ["keyword", "default"],
                -	["keyword", "do"], ["keyword", "double"], ["keyword", "else"], ["keyword", "enum"], ["keyword", "extern"],
                -	["keyword", "float"], ["keyword", "for"], ["keyword", "goto"], ["keyword", "if"], ["keyword", "int"],
                -	["keyword", "long"], ["keyword", "register"], ["keyword", "return"], ["keyword", "short"], ["keyword", "signed"],
                -	["keyword", "sizeof"], ["keyword", "static"], ["keyword", "struct"], ["keyword", "switch"], ["keyword", "typedef"],
                -	["keyword", "union"], ["keyword", "unsigned"], ["keyword", "void"], ["keyword", "volatile"], ["keyword", "while"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/c/macro_feature.test b/node_modules/prismjs/tests/languages/c/macro_feature.test
                deleted file mode 100644
                index 2860f54..0000000
                --- a/node_modules/prismjs/tests/languages/c/macro_feature.test
                +++ /dev/null
                @@ -1,43 +0,0 @@
                -# include 
                -  #define PG_locked 0
                -
                -#elif
                -#else
                -#endif
                -#error
                -#ifdef
                -#ifndef
                -#if
                -#import
                -#include
                -#line
                -#pragma
                -#undef
                -#using
                -
                -----------------------------------------------------
                -
                -[
                -	["macro", [
                -		"# ", ["directive", "include"],
                -		["string", ""]
                -	]],
                -	["macro", ["#", ["directive", "define"], " PG_locked 0"]],
                -	["macro", ["#", ["directive", "elif"]]],
                -	["macro", ["#", ["directive", "else"]]],
                -    ["macro", ["#", ["directive", "endif"]]],
                -    ["macro", ["#", ["directive", "error"]]],
                -    ["macro", ["#", ["directive", "ifdef"]]],
                -    ["macro", ["#", ["directive", "ifndef"]]],
                -    ["macro", ["#", ["directive", "if"]]],
                -    ["macro", ["#", ["directive", "import"]]],
                -    ["macro", ["#", ["directive", "include"]]],
                -    ["macro", ["#", ["directive", "line"]]],
                -    ["macro", ["#", ["directive", "pragma"]]],
                -    ["macro", ["#", ["directive", "undef"]]],
                -    ["macro", ["#", ["directive", "using"]]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for macros, multi-line macros and paths inside include statements.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/c/number_feature.test b/node_modules/prismjs/tests/languages/c/number_feature.test
                deleted file mode 100644
                index 0542683..0000000
                --- a/node_modules/prismjs/tests/languages/c/number_feature.test
                +++ /dev/null
                @@ -1,35 +0,0 @@
                -42
                -3.14159
                -4e10
                -2.1e-10
                -0.4e+2
                -0xbabe
                -0xBABE
                -42f
                -42F
                -42u
                -42U
                -42l
                -42L
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "42"],
                -	["number", "3.14159"],
                -	["number", "4e10"],
                -	["number", "2.1e-10"],
                -	["number", "0.4e+2"],
                -	["number", "0xbabe"],
                -	["number", "0xBABE"],
                -	["number", "42f"],
                -	["number", "42F"],
                -	["number", "42u"],
                -	["number", "42U"],
                -	["number", "42l"],
                -	["number", "42L"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for decimal numbers and hexadecimal numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/c/operator_feature.test b/node_modules/prismjs/tests/languages/c/operator_feature.test
                deleted file mode 100644
                index fdcfb19..0000000
                --- a/node_modules/prismjs/tests/languages/c/operator_feature.test
                +++ /dev/null
                @@ -1,19 +0,0 @@
                -+ - ++ -- ! !=
                -< << <= <<=
                -> >> >= >>=
                --> == ^ ~ %
                -& && | || ? * /
                -
                -----------------------------------------------------
                -
                -[
                -	["operator", "+"], ["operator", "-"], ["operator", "++"], ["operator", "--"], ["operator", "!"], ["operator", "!="],
                -	["operator", "<"], ["operator", "<<"], ["operator", "<="], ["operator", "<<="],
                -	["operator", ">"], ["operator", ">>"], ["operator", ">="], ["operator", ">>="],
                -	["operator", "->"], ["operator", "=="], ["operator", "^"], ["operator", "~"], ["operator", "%"],
                -	["operator", "&"], ["operator", "&&"], ["operator", "|"], ["operator", "||"], ["operator", "?"], ["operator", "*"], ["operator", "/"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all operators
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/clike/boolean_feature.test b/node_modules/prismjs/tests/languages/clike/boolean_feature.test
                deleted file mode 100644
                index 6a1ad0c..0000000
                --- a/node_modules/prismjs/tests/languages/clike/boolean_feature.test
                +++ /dev/null
                @@ -1,12 +0,0 @@
                -true; false;
                -
                -----------------------------------------------------
                -
                -[
                -	["boolean", "true"], ["punctuation", ";"],
                -	["boolean", "false"], ["punctuation", ";"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for booleans.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/clike/class-name_feature.test b/node_modules/prismjs/tests/languages/clike/class-name_feature.test
                deleted file mode 100644
                index 04c2112..0000000
                --- a/node_modules/prismjs/tests/languages/clike/class-name_feature.test
                +++ /dev/null
                @@ -1,53 +0,0 @@
                -class Foo
                -interface bar
                -extends Foo
                -implements bar
                -trait Foo
                -instanceof \bar
                -new \Foo
                -catch (bar)
                -
                -----------------------------------------------------
                -
                -[
                -	"class ",
                -	["class-name", [
                -		"Foo"
                -	]],
                -	"\r\ninterface ",
                -	["class-name", [
                -		"bar"
                -	]],
                -	"\r\nextends ",
                -	["class-name", [
                -		"Foo"
                -	]],
                -	"\r\nimplements ",
                -	["class-name", [
                -		"bar"
                -	]],
                -	"\r\ntrait ",
                -	["class-name", [
                -		"Foo"
                -	]],
                -	["keyword", "instanceof"],
                -	["class-name", [
                -		["punctuation", "\\"],
                -		"bar"
                -	]],
                -	["keyword", "new"],
                -	["class-name", [
                -		["punctuation", "\\"],
                -		"Foo"
                -	]],
                -	["keyword", "catch"],
                -	["punctuation", "("],
                -	["class-name", [
                -		"bar"
                -	]],
                -	["punctuation", ")"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for class names.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/clike/comment_feature.test b/node_modules/prismjs/tests/languages/clike/comment_feature.test
                deleted file mode 100644
                index 00bb289..0000000
                --- a/node_modules/prismjs/tests/languages/clike/comment_feature.test
                +++ /dev/null
                @@ -1,16 +0,0 @@
                -// foobar
                -/**/
                -/* foo
                -bar */
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "// foobar"],
                -	["comment", "/**/"],
                -	["comment", "/* foo\r\nbar */"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for single-line and multi-line comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/clike/function_feature.test b/node_modules/prismjs/tests/languages/clike/function_feature.test
                deleted file mode 100644
                index 031ed1c..0000000
                --- a/node_modules/prismjs/tests/languages/clike/function_feature.test
                +++ /dev/null
                @@ -1,23 +0,0 @@
                -foo()
                -foo_bar()
                -f42()
                -
                -----------------------------------------------------
                -
                -[
                -	["function", "foo"],
                -	["punctuation", "("],
                -	["punctuation", ")"],
                -
                -	["function", "foo_bar"],
                -	["punctuation", "("],
                -	["punctuation", ")"],
                -
                -	["function", "f42"],
                -	["punctuation", "("],
                -	["punctuation", ")"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for functions.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/clike/keyword_feature.test b/node_modules/prismjs/tests/languages/clike/keyword_feature.test
                deleted file mode 100644
                index 4313f7c..0000000
                --- a/node_modules/prismjs/tests/languages/clike/keyword_feature.test
                +++ /dev/null
                @@ -1,30 +0,0 @@
                -if; else; while; do; for;
                -return; in; instanceof; function; new;
                -try; throw; catch; finally; null;
                -break; continue;
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "if"], ["punctuation", ";"],
                -	["keyword", "else"], ["punctuation", ";"],
                -	["keyword", "while"], ["punctuation", ";"],
                -	["keyword", "do"], ["punctuation", ";"],
                -	["keyword", "for"], ["punctuation", ";"],
                -	["keyword", "return"], ["punctuation", ";"],
                -	["keyword", "in"], ["punctuation", ";"],
                -	["keyword", "instanceof"], ["punctuation", ";"],
                -	["keyword", "function"], ["punctuation", ";"],
                -	["keyword", "new"], ["punctuation", ";"],
                -	["keyword", "try"], ["punctuation", ";"],
                -	["keyword", "throw"], ["punctuation", ";"],
                -	["keyword", "catch"], ["punctuation", ";"],
                -	["keyword", "finally"], ["punctuation", ";"],
                -	["keyword", "null"], ["punctuation", ";"],
                -	["keyword", "break"], ["punctuation", ";"],
                -	["keyword", "continue"], ["punctuation", ";"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/clike/number_feature.test b/node_modules/prismjs/tests/languages/clike/number_feature.test
                deleted file mode 100644
                index f6bcc0b..0000000
                --- a/node_modules/prismjs/tests/languages/clike/number_feature.test
                +++ /dev/null
                @@ -1,23 +0,0 @@
                -42
                -3.14159
                -4e10
                -2.1e-10
                -0.4e+2
                -0xbabe
                -0xBABE
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "42"],
                -	["number", "3.14159"],
                -	["number", "4e10"],
                -	["number", "2.1e-10"],
                -	["number", "0.4e+2"],
                -	["number", "0xbabe"],
                -	["number", "0xBABE"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for decimal numbers and hexadecimal numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/clike/operator_feature.test b/node_modules/prismjs/tests/languages/clike/operator_feature.test
                deleted file mode 100644
                index 1a4c649..0000000
                --- a/node_modules/prismjs/tests/languages/clike/operator_feature.test
                +++ /dev/null
                @@ -1,21 +0,0 @@
                -- + -- ++
                -< <= > >=
                -= == ===
                -! != !==
                -& && | ||
                -? * / ~ ^ %
                -
                -----------------------------------------------------
                -
                -[
                -	["operator", "-"], ["operator", "+"], ["operator", "--"], ["operator", "++"],
                -	["operator", "<"], ["operator", "<="], ["operator", ">"], ["operator", ">="],
                -	["operator", "="], ["operator", "=="], ["operator", "==="],
                -	["operator", "!"], ["operator", "!="], ["operator", "!=="],
                -	["operator", "&"], ["operator", "&&"], ["operator", "|"], ["operator", "||"],
                -	["operator", "?"], ["operator", "*"], ["operator", "/"], ["operator", "~"], ["operator", "^"], ["operator", "%"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all operators.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/clike/string_feature.test b/node_modules/prismjs/tests/languages/clike/string_feature.test
                deleted file mode 100644
                index 983ca42..0000000
                --- a/node_modules/prismjs/tests/languages/clike/string_feature.test
                +++ /dev/null
                @@ -1,28 +0,0 @@
                -""
                -''
                -"f\"oo"
                -'b\'ar'
                -"foo\
                -bar"
                -'foo\
                -bar'
                -"foo /* comment */ bar"
                -'foo // bar'
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "\"\""],
                -	["string", "''"],
                -	["string", "\"f\\\"oo\""],
                -	["string", "'b\\'ar'"],
                -	["string", "\"foo\\\r\nbar\""],
                -	["string", "'foo\\\r\nbar'"],
                -	["string", "\"foo /* comment */ bar\""],
                -	["string", "'foo // bar'"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for empty strings, single-line strings and
                -multi-line strings, both single-quoted and double-quoted.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/coffeescript+haml/coffeescript_inclusion.test b/node_modules/prismjs/tests/languages/coffeescript+haml/coffeescript_inclusion.test
                deleted file mode 100644
                index 7a77516..0000000
                --- a/node_modules/prismjs/tests/languages/coffeescript+haml/coffeescript_inclusion.test
                +++ /dev/null
                @@ -1,24 +0,0 @@
                -:coffee
                -	'This is coffee script'
                -
                -~
                -	:coffee
                -	  'This is coffee script'
                -
                -----------------------------------------------------
                -
                -[
                -	["filter-coffee", [
                -		["filter-name", ":coffee"],
                -		["string", "'This is coffee script'"]
                -	]],
                -	["punctuation", "~"],
                -	["filter-coffee", [
                -        ["filter-name", ":coffee"],
                -        ["string", "'This is coffee script'"]
                -    ]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for CoffeeScript filter in Haml. The tilde serves only as a separator.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/coffeescript+jade/coffeescript_inclusion.test b/node_modules/prismjs/tests/languages/coffeescript+jade/coffeescript_inclusion.test
                deleted file mode 100644
                index ccf8963..0000000
                --- a/node_modules/prismjs/tests/languages/coffeescript+jade/coffeescript_inclusion.test
                +++ /dev/null
                @@ -1,19 +0,0 @@
                -:coffee
                -	"#{foo}"
                -
                -----------------------------------------------------
                -
                -[
                -	["filter-coffee", [
                -		["filter-name", ":coffee"],
                -		["string", [
                -			"\"",
                -			["interpolation", "#{foo}"],
                -			"\""
                -		]]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for coffee filter (CoffeeScript) in Jade.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/coffeescript/block-regex_feature.test b/node_modules/prismjs/tests/languages/coffeescript/block-regex_feature.test
                deleted file mode 100644
                index b01a9a4..0000000
                --- a/node_modules/prismjs/tests/languages/coffeescript/block-regex_feature.test
                +++ /dev/null
                @@ -1,33 +0,0 @@
                -///foo[bar]///
                -///foo
                -[bar]///
                -///foo
                -b#{ar}baz///
                -///foo #bar
                -baz///
                -
                -----------------------------------------------------
                -
                -[
                -	["block-regex", [
                -        "///foo[bar]///"
                -    ]],
                -    ["block-regex", [
                -        "///foo\r\n[bar]///"
                -    ]],
                -    ["block-regex", [
                -        "///foo\r\nb",
                -        ["interpolation", "#{ar}"],
                -        "baz///"
                -    ]],
                -    ["block-regex", [
                -        "///foo ",
                -        ["comment", "#bar"],
                -        "\r\nbaz///"
                -    ]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for block regex.
                -Also checks for comments and interpolations inside block regex.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/coffeescript/class-member_feature.test b/node_modules/prismjs/tests/languages/coffeescript/class-member_feature.test
                deleted file mode 100644
                index 6fdbcf3..0000000
                --- a/node_modules/prismjs/tests/languages/coffeescript/class-member_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -@name
                -@foo_bar
                -
                -----------------------------------------------------
                -
                -[
                -	["class-member", "@name"],
                -	["class-member", "@foo_bar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for class members.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/coffeescript/comment_feature.test b/node_modules/prismjs/tests/languages/coffeescript/comment_feature.test
                deleted file mode 100644
                index 5d034ff..0000000
                --- a/node_modules/prismjs/tests/languages/coffeescript/comment_feature.test
                +++ /dev/null
                @@ -1,16 +0,0 @@
                -#foo
                -# foo bar
                -### foo bar
                -baz ###
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "#foo"],
                -	["comment", "# foo bar"],
                -	["multiline-comment", "### foo bar\r\nbaz ###"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for single-line and multi-line comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/coffeescript/inline-javascript_feature.test b/node_modules/prismjs/tests/languages/coffeescript/inline-javascript_feature.test
                deleted file mode 100644
                index cf15e26..0000000
                --- a/node_modules/prismjs/tests/languages/coffeescript/inline-javascript_feature.test
                +++ /dev/null
                @@ -1,22 +0,0 @@
                -`/* JS here */`
                -`/*
                -JS here */`
                -
                -----------------------------------------------------
                -
                -[
                -	["inline-javascript", [
                -		["delimiter", "`"],
                -		["comment", "/* JS here */"],
                -		["delimiter", "`"]
                -	]],
                -	["inline-javascript", [
                -        ["delimiter", "`"],
                -        ["comment", "/*\r\nJS here */"],
                -        ["delimiter", "`"]
                -    ]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for inline JavaScript.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/coffeescript/keyword_feature.test b/node_modules/prismjs/tests/languages/coffeescript/keyword_feature.test
                deleted file mode 100644
                index 3207e39..0000000
                --- a/node_modules/prismjs/tests/languages/coffeescript/keyword_feature.test
                +++ /dev/null
                @@ -1,41 +0,0 @@
                -and break by catch
                -class;
                -continue debugger delete
                -do each else extend
                -extends;
                -false finally for if in
                -instanceof;
                -is isnt let
                -loop namespace
                -new;
                -no not null of off on
                -or own return super
                -switch then this throw
                -true try typeof undefined
                -unless until when while
                -window with yes yield
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "and"], ["keyword", "break"], ["keyword", "by"], ["keyword", "catch"],
                -	["keyword", "class"], ["punctuation", ";"],
                -	["keyword", "continue"], ["keyword", "debugger"], ["keyword", "delete"],
                -	["keyword", "do"], ["keyword", "each"], ["keyword", "else"], ["keyword", "extend"],
                -	["keyword", "extends"], ["punctuation", ";"],
                -	["keyword", "false"], ["keyword", "finally"], ["keyword", "for"], ["keyword", "if"], ["keyword", "in"],
                -	["keyword", "instanceof"], ["punctuation", ";"],
                -	["keyword", "is"], ["keyword", "isnt"], ["keyword", "let"],
                -	["keyword", "loop"], ["keyword", "namespace"],
                -	["keyword", "new"], ["punctuation", ";"],
                -	["keyword", "no"], ["keyword", "not"], ["keyword", "null"], ["keyword", "of"], ["keyword", "off"], ["keyword", "on"],
                -	["keyword", "or"], ["keyword", "own"], ["keyword", "return"], ["keyword", "super"],
                -	["keyword", "switch"], ["keyword", "then"], ["keyword", "this"], ["keyword", "throw"],
                -	["keyword", "true"], ["keyword", "try"], ["keyword", "typeof"], ["keyword", "undefined"],
                -	["keyword", "unless"], ["keyword", "until"], ["keyword", "when"], ["keyword", "while"],
                -	["keyword", "window"], ["keyword", "with"], ["keyword", "yes"], ["keyword", "yield"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/coffeescript/property_feature.test b/node_modules/prismjs/tests/languages/coffeescript/property_feature.test
                deleted file mode 100644
                index 0f25679..0000000
                --- a/node_modules/prismjs/tests/languages/coffeescript/property_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -foo:
                -foo_bar :
                -
                -----------------------------------------------------
                -
                -[
                -	["property", "foo"],
                -	["punctuation", ":"],
                -	["property", "foo_bar"],
                -	["punctuation", ":"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for object properties.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/coffeescript/string_feature.test b/node_modules/prismjs/tests/languages/coffeescript/string_feature.test
                deleted file mode 100644
                index f5a6868..0000000
                --- a/node_modules/prismjs/tests/languages/coffeescript/string_feature.test
                +++ /dev/null
                @@ -1,64 +0,0 @@
                -''
                -'foo'
                -'foo\
                -bar'
                -""
                -"foo"
                -"foo\
                -bar"
                -"foo #{interpolation} bar"
                -''''''
                -'''foo'''
                -'''foo
                -bar'''
                -
                -""""""
                -"""foo"""
                -"""foo
                -bar"""
                -"""foo #{interpolation} bar"""
                -"foo # comment bar"
                -'foo # bar'
                -"""foo
                -#comment
                -bar"""
                -'''foo
                -#comment
                -bar'''
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "''"],
                -	["string", "'foo'"],
                -	["string", "'foo\\\r\nbar'"],
                -	["string", ["\"\""]],
                -	["string", ["\"foo\""]],
                -	["string", ["\"foo\\\r\nbar\""]],
                -	["string", [
                -		"\"foo ",
                -		["interpolation", "#{interpolation}"],
                -		" bar\""
                -	]],
                -
                -	["multiline-string", "''''''"],
                -	["multiline-string", "'''foo'''"],
                -	["multiline-string", "'''foo\r\nbar'''"],
                -	["multiline-string", ["\"\"\"\"\"\""]],
                -	["multiline-string", ["\"\"\"foo\"\"\""]],
                -	["multiline-string", ["\"\"\"foo\r\nbar\"\"\""]],
                -	["multiline-string", [
                -		"\"\"\"foo ",
                -		["interpolation", "#{interpolation}"],
                -		" bar\"\"\""
                -	]],
                -	["string", ["\"foo # comment bar\""]],
                -	["string", "'foo # bar'"],
                -	["multiline-string", ["\"\"\"foo\r\n#comment\r\nbar\"\"\""]],
                -	["multiline-string", "'''foo\r\n#comment\r\nbar'''"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for single-line and multi-line strings and block strings.
                -Also checks for string interpolation inside double-quoted strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/cpp+pure/cpp_inclusion.test b/node_modules/prismjs/tests/languages/cpp+pure/cpp_inclusion.test
                deleted file mode 100644
                index 150080e..0000000
                --- a/node_modules/prismjs/tests/languages/cpp+pure/cpp_inclusion.test
                +++ /dev/null
                @@ -1,18 +0,0 @@
                -%< -*- C++ -*-
                -alignas
                -%>
                -
                -----------------------------------------------------
                -
                -[
                -	["inline-lang-cpp", [
                -		["delimiter", "%< "],
                -		["lang", "-*- C++ -*-"],
                -		["keyword", "alignas"],
                -		["delimiter", "%>"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for C++ in Pure.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/cpp/boolean_feature.test b/node_modules/prismjs/tests/languages/cpp/boolean_feature.test
                deleted file mode 100644
                index 4019c44..0000000
                --- a/node_modules/prismjs/tests/languages/cpp/boolean_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -true
                -false
                -
                -----------------------------------------------------
                -
                -[
                -	["boolean", "true"],
                -	["boolean", "false"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for booleans.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/cpp/class-name_feature.test b/node_modules/prismjs/tests/languages/cpp/class-name_feature.test
                deleted file mode 100644
                index f3d5df5..0000000
                --- a/node_modules/prismjs/tests/languages/cpp/class-name_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -class Foo
                -class Foo_bar
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "class"], ["class-name", "Foo"],
                -	["keyword", "class"], ["class-name", "Foo_bar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for class names.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/cpp/keyword_feature.test b/node_modules/prismjs/tests/languages/cpp/keyword_feature.test
                deleted file mode 100644
                index e3ca630..0000000
                --- a/node_modules/prismjs/tests/languages/cpp/keyword_feature.test
                +++ /dev/null
                @@ -1,45 +0,0 @@
                -alignas alignof asm auto bool
                -break case catch char char16_t char32_t
                -class;
                -compl const constexpr
                -const_cast continue decltype default
                -delete do double dynamic_cast
                -else enum explicit export extern
                -float for friend goto if
                -inline int long mutable namespace
                -new noexcept nullptr operator
                -private protected public register
                -reinterpret_cast return short
                -signed sizeof static static_assert
                -static_cast struct switch template
                -this thread_local throw try
                -typedef typeid typename union
                -unsigned using virtual void
                -volatile wchar_t while
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "alignas"], ["keyword", "alignof"], ["keyword", "asm"], ["keyword", "auto"], ["keyword", "bool"],
                -	["keyword", "break"], ["keyword", "case"], ["keyword", "catch"], ["keyword", "char"], ["keyword", "char16_t"], ["keyword", "char32_t"],
                -	["keyword", "class"], ["punctuation", ";"],
                -	["keyword", "compl"], ["keyword", "const"], ["keyword", "constexpr"],
                -	["keyword", "const_cast"], ["keyword", "continue"], ["keyword", "decltype"], ["keyword", "default"],
                -	["keyword", "delete"], ["keyword", "do"], ["keyword", "double"], ["keyword", "dynamic_cast"],
                -	["keyword", "else"], ["keyword", "enum"], ["keyword", "explicit"], ["keyword", "export"], ["keyword", "extern"],
                -	["keyword", "float"], ["keyword", "for"], ["keyword", "friend"], ["keyword", "goto"], ["keyword", "if"],
                -	["keyword", "inline"], ["keyword", "int"], ["keyword", "long"], ["keyword", "mutable"], ["keyword", "namespace"],
                -	["keyword", "new"], ["keyword", "noexcept"], ["keyword", "nullptr"], ["keyword", "operator"],
                -	["keyword", "private"], ["keyword", "protected"], ["keyword", "public"], ["keyword", "register"],
                -	["keyword", "reinterpret_cast"], ["keyword", "return"], ["keyword", "short"],
                -	["keyword", "signed"], ["keyword", "sizeof"], ["keyword", "static"], ["keyword", "static_assert"],
                -	["keyword", "static_cast"], ["keyword", "struct"], ["keyword", "switch"], ["keyword", "template"],
                -	["keyword", "this"], ["keyword", "thread_local"], ["keyword", "throw"], ["keyword", "try"],
                -	["keyword", "typedef"], ["keyword", "typeid"], ["keyword", "typename"], ["keyword", "union"],
                -	["keyword", "unsigned"], ["keyword", "using"], ["keyword", "virtual"], ["keyword", "void"],
                -	["keyword", "volatile"], ["keyword", "wchar_t"], ["keyword", "while"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all keywords
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/crystal/attribute_feature.test b/node_modules/prismjs/tests/languages/crystal/attribute_feature.test
                deleted file mode 100644
                index 02d07af..0000000
                --- a/node_modules/prismjs/tests/languages/crystal/attribute_feature.test
                +++ /dev/null
                @@ -1,21 +0,0 @@
                -@[AlwaysInline]
                -@[CallConvention("X86_StdCall")]
                -
                -----------------------------------------------------
                -
                -[
                -	["attribute", [
                -		["delimiter", "@["],
                -		["constant", "AlwaysInline"],
                -		["delimiter", "]"]
                -	]],
                -	["attribute", [
                -		["delimiter", "@["],
                -		["function", "CallConvention"], ["punctuation", "("], ["string", [ "\"X86_StdCall\"" ]], ["punctuation", ")"],
                -		["delimiter", "]"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for attributes.
                diff --git a/node_modules/prismjs/tests/languages/crystal/expansion_feature.test b/node_modules/prismjs/tests/languages/crystal/expansion_feature.test
                deleted file mode 100644
                index b40bd1f..0000000
                --- a/node_modules/prismjs/tests/languages/crystal/expansion_feature.test
                +++ /dev/null
                @@ -1,37 +0,0 @@
                -{{ 1_u32 }}
                -{% 2_u32 %}
                -{{ { 3_u32 } }}
                -{% % 4_u32 % %}
                -
                -----------------------------------------------------
                -
                -[
                -	["expansion", [
                -		["delimiter", "{{"],
                -		["number", "1_u32"],
                -		["delimiter", "}}"]
                -	]],
                -	["expansion", [
                -		["delimiter", "{%"],
                -		["number", "2_u32"],
                -		["delimiter", "%}"]
                -	]],
                -	["expansion", [
                -		["delimiter", "{{"],
                -		["punctuation", "{"],
                -		["number", "3_u32"],
                -		["punctuation", "}"],
                -		["delimiter", "}}"]
                -	]],
                -	["expansion", [
                -		["delimiter", "{%"],
                -		["operator", "%"],
                -		["number", "4_u32"],
                -		["operator", "%"],
                -		["delimiter", "%}"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for macro expansions.
                diff --git a/node_modules/prismjs/tests/languages/crystal/keyword_feature.test b/node_modules/prismjs/tests/languages/crystal/keyword_feature.test
                deleted file mode 100644
                index ca575ef..0000000
                --- a/node_modules/prismjs/tests/languages/crystal/keyword_feature.test
                +++ /dev/null
                @@ -1,33 +0,0 @@
                -abstract alias as asm begin break case
                -class;
                -def do else elsif
                -end ensure enum extend for fun
                -if ifdef include instance_sizeof
                -.is_a?
                -lib macro module next of out pointerof
                -private protected rescue
                -.responds_to?
                -return require self sizeof struct super
                -then type typeof union unless until when
                -while with yield __DIR__ __FILE__ __LINE__
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "abstract"], ["keyword", "alias"], ["keyword", "as"], ["keyword", "asm"], ["keyword", "begin"], ["keyword", "break"], ["keyword", "case"],
                -	["keyword", "class"], ["punctuation", ";"],
                -	["keyword", "def"], ["keyword", "do"], ["keyword", "else"], ["keyword", "elsif"],
                -	["keyword", "end"], ["keyword", "ensure"], ["keyword", "enum"], ["keyword", "extend"], ["keyword", "for"], ["keyword", "fun"],
                -	["keyword", "if"], ["keyword", "ifdef"], ["keyword", "include"], ["keyword", "instance_sizeof"],
                -	["punctuation", "."], ["keyword", "is_a?"],
                -	["keyword", "lib"], ["keyword", "macro"], ["keyword", "module"], ["keyword", "next"], ["keyword", "of"], ["keyword", "out"], ["keyword", "pointerof"],
                -	["keyword", "private"], ["keyword", "protected"], ["keyword", "rescue"],
                -	["punctuation", "."], ["keyword", "responds_to?"],
                -	["keyword", "return"], ["keyword", "require"], ["keyword", "self"], ["keyword", "sizeof"], ["keyword", "struct"], ["keyword", "super"],
                -	["keyword", "then"], ["keyword", "type"], ["keyword", "typeof"], ["keyword", "union"], ["keyword", "unless"], ["keyword", "until"], ["keyword", "when"],
                -	["keyword", "while"], ["keyword", "with"], ["keyword", "yield"], ["keyword", "__DIR__"], ["keyword", "__FILE__"], ["keyword", "__LINE__"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all keywords.
                diff --git a/node_modules/prismjs/tests/languages/crystal/number_feature.test b/node_modules/prismjs/tests/languages/crystal/number_feature.test
                deleted file mode 100644
                index cefdc5e..0000000
                --- a/node_modules/prismjs/tests/languages/crystal/number_feature.test
                +++ /dev/null
                @@ -1,23 +0,0 @@
                -1
                -1_1
                -1_1_1
                -0b10_01
                -0o1_2_3
                -0x123456789abcdef
                -012_345.678_9e+10_f64
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "1"],
                -	["number", "1_1"],
                -	["number", "1_1_1"],
                -	["number", "0b10_01"],
                -	["number", "0o1_2_3"],
                -	["number", "0x123456789abcdef"],
                -	["number", "012_345.678_9e+10_f64"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for number literals.
                diff --git a/node_modules/prismjs/tests/languages/csharp+aspnet/directive_feature.test b/node_modules/prismjs/tests/languages/csharp+aspnet/directive_feature.test
                deleted file mode 100644
                index 9eaa005..0000000
                --- a/node_modules/prismjs/tests/languages/csharp+aspnet/directive_feature.test
                +++ /dev/null
                @@ -1,71 +0,0 @@
                -<%: Page.Title %>
                -<%#:Item.ProductID%>
                -
                -<% if(foo) { %>
                -	foobar
                -<% } %>
                -
                -----------------------------------------------------
                -
                -[
                -	["directive tag", [
                -		["directive tag", "<%:"],
                -		" Page",
                -		["punctuation", "."],
                -		"Title ",
                -		["directive tag", "%>"]
                -	]],
                -
                -	["directive tag", [
                -        ["directive tag", "<%#:"],
                -        "Item",
                -        ["punctuation", "."],
                -        "ProductID",
                -        ["directive tag", "%>"]
                -    ]],
                -
                -    ["tag", [
                -        ["tag", [
                -            ["punctuation", "<"],
                -            "a"
                -        ]],
                -        ["attr-name", [
                -            "href"
                -        ]],
                -        ["attr-value", [
                -            ["punctuation", "="],
                -            ["punctuation", "\""],
                -            "ProductDetails.aspx?productID",
                -            ["punctuation", "="],
                -            ["directive tag", [
                -                ["directive tag", "<%#:"],
                -                "Item",
                -		        ["punctuation", "."],
                -		        "ProductID",
                -		        ["directive tag", "%>"]
                -            ]],
                -            ["punctuation", "\""]
                -        ]],
                -        ["punctuation", ">"]
                -    ]],
                -
                -    ["directive tag", [
                -        ["directive tag", "<%"],
                -        ["keyword", "if"],
                -        ["punctuation", "("],
                -        "foo",
                -        ["punctuation", ")"],
                -        ["punctuation", "{"],
                -        ["directive tag", "%>"]
                -    ]],
                -    "\r\n\tfoobar\r\n",
                -    ["directive tag", [
                -        ["directive tag", "<%"],
                -        ["punctuation", "}"],
                -        ["directive tag", "%>"]
                -    ]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for directives.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/csharp/generic_feature.test b/node_modules/prismjs/tests/languages/csharp/generic_feature.test
                deleted file mode 100644
                index 01115cf..0000000
                --- a/node_modules/prismjs/tests/languages/csharp/generic_feature.test
                +++ /dev/null
                @@ -1,32 +0,0 @@
                -void method();
                -method();
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "void"],
                -	["generic-method", [ "method",
                -		["punctuation", "<"],
                -		"T",
                -		["punctuation", ","],
                -		" U",
                -		["punctuation", ">"]
                -	]],
                -	["punctuation", "("],
                -	["punctuation", ")"],
                -	["punctuation", ";"],
                -	["generic-method", [ "method",
                -		["punctuation", "<"],
                -		["keyword", "int"],
                -		["punctuation", ","],
                -		["keyword", "char"],
                -		["punctuation", ">"]
                -	]],
                -	["punctuation", "("],
                -	["punctuation", ")"],
                -	["punctuation", ";"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for generic methods
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/csharp/issue806.test b/node_modules/prismjs/tests/languages/csharp/issue806.test
                deleted file mode 100644
                index f7a4096..0000000
                --- a/node_modules/prismjs/tests/languages/csharp/issue806.test
                +++ /dev/null
                @@ -1,12 +0,0 @@
                -0.3f
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "0.3f"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks that "f" prefix is properly highlighted as part of the number.
                -See #806.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/csharp/keyword_feature.test b/node_modules/prismjs/tests/languages/csharp/keyword_feature.test
                deleted file mode 100644
                index 1a729bc..0000000
                --- a/node_modules/prismjs/tests/languages/csharp/keyword_feature.test
                +++ /dev/null
                @@ -1,63 +0,0 @@
                -abstract as async await base
                -bool break byte case catch
                -char checked
                -class;
                -const continue
                -decimal default delegate do
                -double else enum event explicit
                -extern false finally fixed float
                -for foreach goto if implicit in
                -int
                -interface;
                -internal is lock
                -long namespace
                -new;
                -null object
                -operator out override params
                -private protected public readonly
                -ref return sbyte sealed short
                -sizeof stackalloc static string
                -struct switch this throw true
                -try typeof uint ulong unchecked
                -unsafe ushort using virtual void
                -volatile while add alias ascending
                -async await descending dynamic
                -from get global group into
                -join let orderby partial remove
                -select set value var where yield
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "abstract"], ["keyword", "as"], ["keyword", "async"], ["keyword", "await"], ["keyword", "base"],
                -	["keyword", "bool"], ["keyword", "break"], ["keyword", "byte"], ["keyword", "case"], ["keyword", "catch"],
                -	["keyword", "char"], ["keyword", "checked"],
                -	["keyword", "class"], ["punctuation", ";"],
                -	["keyword", "const"], ["keyword", "continue"],
                -	["keyword", "decimal"], ["keyword", "default"], ["keyword", "delegate"], ["keyword", "do"],
                -	["keyword", "double"], ["keyword", "else"], ["keyword", "enum"], ["keyword", "event"], ["keyword", "explicit"],
                -	["keyword", "extern"], ["keyword", "false"], ["keyword", "finally"], ["keyword", "fixed"], ["keyword", "float"],
                -	["keyword", "for"], ["keyword", "foreach"], ["keyword", "goto"], ["keyword", "if"], ["keyword", "implicit"], ["keyword", "in"],
                -	["keyword", "int"],
                -	["keyword", "interface"], ["punctuation", ";"],
                -	["keyword", "internal"], ["keyword", "is"], ["keyword", "lock"],
                -	["keyword", "long"], ["keyword", "namespace"],
                -	["keyword", "new"], ["punctuation", ";"],
                -	["keyword", "null"], ["keyword", "object"],
                -	["keyword", "operator"], ["keyword", "out"], ["keyword", "override"], ["keyword", "params"],
                -	["keyword", "private"], ["keyword", "protected"], ["keyword", "public"], ["keyword", "readonly"],
                -	["keyword", "ref"], ["keyword", "return"], ["keyword", "sbyte"], ["keyword", "sealed"], ["keyword", "short"],
                -	["keyword", "sizeof"], ["keyword", "stackalloc"], ["keyword", "static"], ["keyword", "string"],
                -	["keyword", "struct"], ["keyword", "switch"], ["keyword", "this"], ["keyword", "throw"], ["keyword", "true"],
                -	["keyword", "try"], ["keyword", "typeof"], ["keyword", "uint"], ["keyword", "ulong"], ["keyword", "unchecked"],
                -	["keyword", "unsafe"], ["keyword", "ushort"], ["keyword", "using"], ["keyword", "virtual"], ["keyword", "void"],
                -	["keyword", "volatile"], ["keyword", "while"], ["keyword", "add"], ["keyword", "alias"], ["keyword", "ascending"],
                -	["keyword", "async"], ["keyword", "await"], ["keyword", "descending"], ["keyword", "dynamic"],
                -	["keyword", "from"], ["keyword", "get"], ["keyword", "global"], ["keyword", "group"], ["keyword", "into"],
                -	["keyword", "join"], ["keyword", "let"], ["keyword", "orderby"], ["keyword", "partial"], ["keyword", "remove"],
                -	["keyword", "select"], ["keyword", "set"], ["keyword", "value"], ["keyword", "var"], ["keyword", "where"], ["keyword", "yield"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/csharp/number_feature.test b/node_modules/prismjs/tests/languages/csharp/number_feature.test
                deleted file mode 100644
                index 1268080..0000000
                --- a/node_modules/prismjs/tests/languages/csharp/number_feature.test
                +++ /dev/null
                @@ -1,17 +0,0 @@
                -42
                -3.14159
                -0xbabe
                -0XBABE
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "42"],
                -	["number", "3.14159"],
                -	["number", "0xbabe"],
                -	["number", "0XBABE"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for decimal and hexadecimal numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/csharp/preprocessor_feature.test b/node_modules/prismjs/tests/languages/csharp/preprocessor_feature.test
                deleted file mode 100644
                index 93ad490..0000000
                --- a/node_modules/prismjs/tests/languages/csharp/preprocessor_feature.test
                +++ /dev/null
                @@ -1,35 +0,0 @@
                -#define DEBUG
                -#if DEBUG
                -#endif
                -
                -#elif
                -#else
                -#endregion
                -#error
                -#line
                -#pragma
                -#region
                -#undef
                -#warning
                -
                -----------------------------------------------------
                -
                -[
                -	["preprocessor", ["#", ["directive", "define"], " DEBUG"]],
                -	["preprocessor", ["#", ["directive", "if"], " DEBUG"]],
                -	["preprocessor", ["#", ["directive", "endif"]]],
                -	
                -	["preprocessor", ["#", ["directive", "elif"]]],
                -    ["preprocessor", ["#", ["directive", "else"]]],
                -    ["preprocessor", ["#", ["directive", "endregion"]]],
                -    ["preprocessor", ["#", ["directive", "error"]]],
                -    ["preprocessor", ["#", ["directive", "line"]]],
                -    ["preprocessor", ["#", ["directive", "pragma"]]],
                -    ["preprocessor", ["#", ["directive", "region"]]],
                -    ["preprocessor", ["#", ["directive", "undef"]]],
                -    ["preprocessor", ["#", ["directive", "warning"]]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for preprocessor directives.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/csharp/string_feature.test b/node_modules/prismjs/tests/languages/csharp/string_feature.test
                deleted file mode 100644
                index 2814cb5..0000000
                --- a/node_modules/prismjs/tests/languages/csharp/string_feature.test
                +++ /dev/null
                @@ -1,32 +0,0 @@
                -""
                -"fo\"o"
                -
                -@""
                -@"foo"
                -@"fo""o"
                -@"foo
                -bar"
                -
                -'a'
                -'\''
                -'\\'
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "\"\""],
                -	["string", "\"fo\\\"o\""],
                -
                -	["string", "@\"\""],
                -	["string", "@\"foo\""],
                -	["string", "@\"fo\"\"o\""],
                -	["string", "@\"foo\r\nbar\""],
                -	["string", "'a'"],
                -	["string", "'\\''"],
                -	["string", "'\\\\'"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for normal and verbatim strings.
                -Also checks for single quoted characters.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/css!+css-extras/entity_feature.test b/node_modules/prismjs/tests/languages/css!+css-extras/entity_feature.test
                deleted file mode 100644
                index c1c91a2..0000000
                --- a/node_modules/prismjs/tests/languages/css!+css-extras/entity_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -\0022
                -\20B9
                -
                -----------------------------------------------------
                -
                -[
                -	["entity", "\\0022"],
                -	["entity", "\\20B9"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for entities.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/css!+css-extras/hexcode_feature.test b/node_modules/prismjs/tests/languages/css!+css-extras/hexcode_feature.test
                deleted file mode 100644
                index cac0b44..0000000
                --- a/node_modules/prismjs/tests/languages/css!+css-extras/hexcode_feature.test
                +++ /dev/null
                @@ -1,17 +0,0 @@
                -#ff0000
                -#BADA55
                -#4dd
                -#D0C
                -
                -----------------------------------------------------
                -
                -[
                -	["hexcode", "#ff0000"],
                -	["hexcode", "#BADA55"],
                -	["hexcode", "#4dd"],
                -	["hexcode", "#D0C"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for hexadecimal colors.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/css!+css-extras/number_feature.test b/node_modules/prismjs/tests/languages/css!+css-extras/number_feature.test
                deleted file mode 100644
                index 24ed530..0000000
                --- a/node_modules/prismjs/tests/languages/css!+css-extras/number_feature.test
                +++ /dev/null
                @@ -1,17 +0,0 @@
                -42
                -3.14159
                -42%
                -3.14%
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "42"],
                -	["number", "3.14159"],
                -	["number", "42%"],
                -	["number", "3.14%"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for numbers.
                diff --git a/node_modules/prismjs/tests/languages/css!+css-extras/selector_feature.test b/node_modules/prismjs/tests/languages/css!+css-extras/selector_feature.test
                deleted file mode 100644
                index 3931a66..0000000
                --- a/node_modules/prismjs/tests/languages/css!+css-extras/selector_feature.test
                +++ /dev/null
                @@ -1,58 +0,0 @@
                -foo:after {
                -foo::first-letter {
                -
                -foo:nth-child(2n+1) {
                -
                -foo.bar {
                -
                -foo#bar {
                -
                -#foo > .bar:not(baz):after {
                -
                -div[foo="bar"] {
                -
                -----------------------------------------------------
                -
                -[
                -	["selector", [
                -		"foo",
                -		["pseudo-element", ":after"]
                -	]], ["punctuation", "{"],
                -
                -	["selector", [
                -		"foo",
                -		["pseudo-element", "::first-letter"]
                -	]], ["punctuation", "{"],
                -
                -	["selector", [
                -		"foo",
                -		["pseudo-class", ":nth-child(2n+1)"]
                -	]], ["punctuation", "{"],
                -
                -	["selector", [
                -		"foo",
                -		["class", ".bar"]
                -	]], ["punctuation", "{"],
                -
                -	["selector", [
                -		"foo",
                -		["id", "#bar"]
                -	]], ["punctuation", "{"],
                -
                -	["selector", [
                -		["id", "#foo"],
                -		" > ",
                -		["class", ".bar"],
                -		["pseudo-class", ":not(baz)"],
                -		["pseudo-element", ":after"]
                -	]], ["punctuation", "{"],
                -
                -	["selector", [
                -		"div",
                -		["attribute", "[foo=\"bar\"]"]
                -	]], ["punctuation", "{"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for pseudo-elements, pseudo-classes, classes and ids inside selectors.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/css+haml/css+haml_usage.test b/node_modules/prismjs/tests/languages/css+haml/css+haml_usage.test
                deleted file mode 100644
                index c90047f..0000000
                --- a/node_modules/prismjs/tests/languages/css+haml/css+haml_usage.test
                +++ /dev/null
                @@ -1,28 +0,0 @@
                -:css
                -	.test {}
                -
                -~
                -	:css
                -	  .test {}
                -
                -----------------------------------------------------
                -
                -[
                -	["filter-css", [
                -		["filter-name", ":css"],
                -		["selector", ".test"],
                -		["punctuation", "{"],
                -		["punctuation", "}"]
                -	]],
                -	["punctuation", "~"],
                -	["filter-css", [
                -        ["filter-name", ":css"],
                -        ["selector", ".test"],
                -        ["punctuation", "{"],
                -        ["punctuation", "}"]
                -    ]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for CSS filter in Haml. The tilde serves only as a separator.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/css+textile/css_inclusion.test b/node_modules/prismjs/tests/languages/css+textile/css_inclusion.test
                deleted file mode 100644
                index 8b6f605..0000000
                --- a/node_modules/prismjs/tests/languages/css+textile/css_inclusion.test
                +++ /dev/null
                @@ -1,117 +0,0 @@
                -h3{color: red}. Baz
                -
                -h4[fr]{text-decoration:underline;}(#bar). Foobar
                -
                -*{color:red}bold*
                -"(foo)[en]{color:blue;}Foo":bar
                -
                -#[fr](#foo){background:pink} Foobar
                -
                -!(foo)[en]{border:1px solid #ccc}foo.png!
                -
                -{color: blue}.|{font-weight:bold}.Baz|
                -(foo#bar){font-style:italic}[fr].|{background:red;}(bar#baz)[en].Baz|
                -
                -----------------------------------------------------
                -
                -[
                -	["phrase", [
                -		["block-tag", [
                -			["tag", "h3"],
                -			["modifier", [
                -				["css", [["punctuation", "{"], ["property", "color"], ["punctuation", ":"], " red", ["punctuation", "}"]]]
                -			]],
                -			["punctuation", "."]
                -		]],
                -		" Baz"
                -	]],
                -	["phrase", [
                -		["block-tag", [
                -			["tag", "h4"],
                -			["modifier", [
                -				["punctuation", "["], ["lang", "fr"], ["punctuation", "]"],
                -				["css", [["punctuation", "{"], ["property", "text-decoration"], ["punctuation", ":"], "underline", ["punctuation", ";"], ["punctuation", "}"]]],
                -				["punctuation", "("], ["class-id", "#bar"], ["punctuation", ")"]
                -			]],
                -			["punctuation", "."]
                -		]],
                -		" Foobar"
                -	]],
                -
                -	["phrase", [
                -		["inline", [
                -			["punctuation", "*"],
                -			["modifier", [
                -				["css", [["punctuation", "{"], ["property", "color"], ["punctuation", ":"], "red", ["punctuation", "}"]]]
                -			]],
                -			["bold", ["bold"]],
                -			["punctuation", "*"]
                -		]],
                -		["link", [
                -			["punctuation", "\""],
                -			["modifier", [
                -				["punctuation", "("], ["class-id", "foo"], ["punctuation", ")"],
                -				["punctuation", "["], ["lang", "en"], ["punctuation", "]"],
                -				["css", [["punctuation", "{"], ["property", "color"], ["punctuation", ":"], "blue", ["punctuation", ";"], ["punctuation", "}"]]]
                -			]],
                -			["text", "Foo"],
                -			["punctuation", "\""], ["punctuation", ":"],
                -			["url", "bar"]
                -		]]
                -	]],
                -
                -	["phrase", [
                -		["list", [
                -			["punctuation", "#"],
                -			["modifier", [
                -				["punctuation", "["], ["lang", "fr"], ["punctuation", "]"],
                -				["punctuation", "("], ["class-id", "#foo"], ["punctuation", ")"],
                -				["css", [["punctuation", "{"], ["property", "background"], ["punctuation", ":"], "pink", ["punctuation", "}"]]]
                -			]],
                -			" Foobar"
                -		]]
                -	]],
                -
                -	["phrase", [
                -		["image", [
                -			["punctuation", "!"],
                -			["modifier", [
                -				["punctuation", "("], ["class-id", "foo"], ["punctuation", ")"],
                -				["punctuation", "["], ["lang", "en"], ["punctuation", "]"],
                -				["css", [["punctuation", "{"], ["property", "border"], ["punctuation", ":"], "1px solid #ccc", ["punctuation", "}"]]]
                -			]],
                -			["source", "foo.png"],
                -			["punctuation", "!"]
                -		]]
                -	]],
                -
                -	["phrase", [
                -		["table", [
                -			["modifier", [
                -				["css", [["punctuation", "{"], ["property", "color"], ["punctuation", ":"], " blue", ["punctuation", "}"]]]
                -			]],
                -			["punctuation", "."], ["punctuation", "|"],
                -			["modifier", [
                -				["css", [["punctuation", "{"], ["property", "font-weight"], ["punctuation", ":"], "bold", ["punctuation", "}"]]]
                -			]],
                -			["punctuation", "."], "Baz", ["punctuation", "|"],
                -
                -			["modifier", [
                -				["punctuation", "("], ["class-id", "foo#bar"], ["punctuation", ")"],
                -				["css", [["punctuation", "{"], ["property", "font-style"], ["punctuation", ":"], "italic", ["punctuation", "}"]]],
                -				["punctuation", "["], ["lang", "fr"], ["punctuation", "]"]
                -			]],
                -			["punctuation", "."], ["punctuation", "|"],
                -			["modifier", [
                -				["css", [["punctuation", "{"], ["property", "background"], ["punctuation", ":"], "red", ["punctuation", ";"], ["punctuation", "}"]]],
                -				["punctuation", "("], ["class-id", "bar#baz"], ["punctuation", ")"],
                -				["punctuation", "["], ["lang", "en"], ["punctuation", "]"]
                -			]],
                -			["punctuation", "."], "Baz", ["punctuation", "|"]
                -		]]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for CSS modifier.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/css/atrule_feature.test b/node_modules/prismjs/tests/languages/css/atrule_feature.test
                deleted file mode 100644
                index abc75de..0000000
                --- a/node_modules/prismjs/tests/languages/css/atrule_feature.test
                +++ /dev/null
                @@ -1,47 +0,0 @@
                -@import url(foo.css);
                -@media print {}
                -@media (min-width: 640px) and (min-height: 1000px) {}
                -@main-color: red;
                -
                -----------------------------------------------------
                -
                -[
                -	["atrule", [
                -		["rule", "@import"],
                -		["url", "url(foo.css)"],
                -		["punctuation", ";"]
                -	]],
                -	["atrule", [
                -		["rule", "@media"],
                -		" print"
                -	]],
                -	["punctuation", "{"],
                -	["punctuation", "}"],
                -	["atrule", [
                -		["rule", "@media"],
                -		["punctuation", "("],
                -		["property", "min-width"],
                -		["punctuation", ":"],
                -		" 640px",
                -		["punctuation", ")"],
                -		" and ",
                -		["punctuation", "("],
                -        ["property", "min-height"],
                -        ["punctuation", ":"],
                -        " 1000px",
                -        ["punctuation", ")"]
                -	]],
                -	["punctuation", "{"],
                -    ["punctuation", "}"],
                -	["atrule", [
                -		["rule", "@main-color"],
                -		["punctuation", ":"],
                -		" red",
                -		["punctuation", ";"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for at-rules.
                -Also checks for LESS variables.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/css/comment_feature.test b/node_modules/prismjs/tests/languages/css/comment_feature.test
                deleted file mode 100644
                index a3899ed..0000000
                --- a/node_modules/prismjs/tests/languages/css/comment_feature.test
                +++ /dev/null
                @@ -1,16 +0,0 @@
                -/**/
                -/* foo */
                -/* foo
                -bar */
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "/**/"],
                -	["comment", "/* foo */"],
                -	["comment", "/* foo\r\nbar */"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for empty comment, single-line comment and multi-line comment.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/css/function_feature.test b/node_modules/prismjs/tests/languages/css/function_feature.test
                deleted file mode 100644
                index 0ed4f12..0000000
                --- a/node_modules/prismjs/tests/languages/css/function_feature.test
                +++ /dev/null
                @@ -1,35 +0,0 @@
                -transform: translate(-50%);
                -background: rgba(0, 0, 0, 0.2);
                -filter: opacity(alpha=0);
                -
                -----------------------------------------------------
                -
                -[
                -	["property", "transform"],
                -	["punctuation", ":"],
                -	["function", "translate"],
                -	["punctuation", "("],
                -	"-50%",
                -	["punctuation", ")"],
                -	["punctuation", ";"],
                -
                -	["property", "background"],
                -	["punctuation", ":"],
                -	["function", "rgba"],
                -	["punctuation", "("],
                -	"0, 0, 0, 0.2",
                -	["punctuation", ")"],
                -	["punctuation", ";"],
                -
                -	["property", "filter"],
                -	["punctuation", ":"],
                -	["function", "opacity"],
                -	["punctuation", "("],
                -	"alpha=0",
                -	["punctuation", ")"],
                -	["punctuation", ";"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for functions.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/css/important_feature.test b/node_modules/prismjs/tests/languages/css/important_feature.test
                deleted file mode 100644
                index ad69c39..0000000
                --- a/node_modules/prismjs/tests/languages/css/important_feature.test
                +++ /dev/null
                @@ -1,21 +0,0 @@
                -color: red !important;
                -padding: 10px 20px 30px !important;
                -
                -----------------------------------------------------
                -
                -[
                -	["property", "color"],
                -	["punctuation", ":"],
                -	" red ",
                -	["important", "!important"],
                -	["punctuation", ";"],
                -	["property", "padding"],
                -    ["punctuation", ":"],
                -    " 10px 20px 30px ",
                -    ["important", "!important"],
                -    ["punctuation", ";"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for !important rule.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/css/property_feature.test b/node_modules/prismjs/tests/languages/css/property_feature.test
                deleted file mode 100644
                index 30ff466..0000000
                --- a/node_modules/prismjs/tests/languages/css/property_feature.test
                +++ /dev/null
                @@ -1,24 +0,0 @@
                -color: red;
                -background-color: blue;
                --webkit-transform: none;
                -
                -----------------------------------------------------
                -
                -[
                -	["property", "color"],
                -	["punctuation", ":"],
                -	" red",
                -	["punctuation", ";"],
                -	["property", "background-color"],
                -	["punctuation", ":"],
                -	" blue",
                -    ["punctuation", ";"],
                -	["property", "-webkit-transform"],
                -	["punctuation", ":"],
                -	" none",
                -    ["punctuation", ";"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for properties.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/css/selector_feature.test b/node_modules/prismjs/tests/languages/css/selector_feature.test
                deleted file mode 100644
                index 5a59720..0000000
                --- a/node_modules/prismjs/tests/languages/css/selector_feature.test
                +++ /dev/null
                @@ -1,25 +0,0 @@
                -foo{
                -foo + bar {
                -foo:first-child:hover {
                -* {
                -foo,
                -bar{
                -
                -----------------------------------------------------
                -
                -[
                -	["selector", "foo"],
                -	["punctuation", "{"],
                -	["selector", "foo + bar"],
                -	["punctuation", "{"],
                -	["selector", "foo:first-child:hover"],
                -	["punctuation", "{"],
                -	["selector", "*"],
                -	["punctuation", "{"],
                -	["selector", "foo,\r\nbar"],
                -	["punctuation", "{"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for single-line and multi-line selectors.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/css/string_feature.test b/node_modules/prismjs/tests/languages/css/string_feature.test
                deleted file mode 100644
                index c7dee29..0000000
                --- a/node_modules/prismjs/tests/languages/css/string_feature.test
                +++ /dev/null
                @@ -1,19 +0,0 @@
                -"f\"oo"
                -'f\'oo'
                -"foo\
                -bar"
                -'foo\
                -bar'
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "\"f\\\"oo\""],
                -	["string", "'f\\'oo'"],
                -	["string", "\"foo\\\r\nbar\""],
                -    ["string", "'foo\\\r\nbar'"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for single-quoted and double-quoted strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/css/url_feature.test b/node_modules/prismjs/tests/languages/css/url_feature.test
                deleted file mode 100644
                index 05ce8f9..0000000
                --- a/node_modules/prismjs/tests/languages/css/url_feature.test
                +++ /dev/null
                @@ -1,21 +0,0 @@
                -url(foo.png)
                -url('foo.png')
                -url("foo.png")
                -url('foo\
                -bar.png')
                -url("foo\
                -bar.png")
                -
                -----------------------------------------------------
                -
                -[
                -	["url", "url(foo.png)"],
                -	["url", "url('foo.png')"],
                -	["url", "url(\"foo.png\")"],
                -	["url", "url('foo\\\r\nbar.png')"],
                -	["url", "url(\"foo\\\r\nbar.png\")"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for url(), unquoted, single-quoted and double-quoted.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/d/comment_feature.test b/node_modules/prismjs/tests/languages/d/comment_feature.test
                deleted file mode 100644
                index fbc2389..0000000
                --- a/node_modules/prismjs/tests/languages/d/comment_feature.test
                +++ /dev/null
                @@ -1,23 +0,0 @@
                -#!/usr/bin/env rdmd
                -
                -/++/
                -/+ foo
                -bar +/
                -/+ foo
                -	/+
                -	bar +/
                -baz +/
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "#!/usr/bin/env rdmd"],
                -	["comment", "/++/"],
                -	["comment", "/+ foo\r\nbar +/"],
                -	["comment", "/+ foo\r\n\t/+\r\n\tbar +/\r\nbaz +/"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for shebang and nestable multi-line comments.
                -Other comments are tested in clike.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/d/keyword_feature.test b/node_modules/prismjs/tests/languages/d/keyword_feature.test
                deleted file mode 100644
                index a5a0368..0000000
                --- a/node_modules/prismjs/tests/languages/d/keyword_feature.test
                +++ /dev/null
                @@ -1,251 +0,0 @@
                -$
                -abstract
                -alias
                -align
                -asm
                -assert
                -auto
                -body
                -bool
                -break
                -byte
                -case
                -cast
                -catch
                -cdouble
                -cent
                -cfloat
                -char
                -class;
                -const
                -continue
                -creal
                -dchar
                -debug
                -default
                -delegate
                -delete
                -deprecated
                -do
                -double
                -else
                -enum
                -export
                -extern
                -false
                -final
                -finally
                -float
                -for
                -foreach
                -foreach_reverse
                -function
                -goto
                -idouble
                -if
                -ifloat
                -immutable
                -import
                -inout
                -int
                -interface;
                -invariant
                -ireal
                -lazy
                -long
                -macro
                -mixin
                -module
                -new;
                -nothrow
                -null
                -out
                -override
                -package
                -pragma
                -private
                -protected
                -public
                -pure
                -real
                -ref
                -return
                -scope
                -shared
                -short
                -static
                -struct
                -super
                -switch
                -synchronized
                -template
                -this
                -throw
                -true
                -try
                -typedef
                -typeid
                -typeof
                -ubyte
                -ucent
                -uint
                -ulong
                -union
                -unittest
                -ushort
                -version
                -void
                -volatile
                -wchar
                -while
                -with
                -__FILE__
                -__MODULE__
                -__LINE__
                -__FUNCTION__
                -__PRETTY_FUNCTION__
                -__DATE__
                -__EOF__
                -__TIME__
                -__TIMESTAMP__
                -__VENDOR__
                -__VERSION__
                -__gshared
                -__traits
                -__vector
                -__parameters
                -string
                -wstring
                -dstring
                -size_t
                -ptrdiff_t
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "$"],
                -	["keyword", "abstract"],
                -	["keyword", "alias"],
                -	["keyword", "align"],
                -	["keyword", "asm"],
                -	["keyword", "assert"],
                -	["keyword", "auto"],
                -	["keyword", "body"],
                -	["keyword", "bool"],
                -	["keyword", "break"],
                -	["keyword", "byte"],
                -	["keyword", "case"],
                -	["keyword", "cast"],
                -	["keyword", "catch"],
                -	["keyword", "cdouble"],
                -	["keyword", "cent"],
                -	["keyword", "cfloat"],
                -	["keyword", "char"],
                -	["keyword", "class"], ["punctuation", ";"],
                -	["keyword", "const"],
                -	["keyword", "continue"],
                -	["keyword", "creal"],
                -	["keyword", "dchar"],
                -	["keyword", "debug"],
                -	["keyword", "default"],
                -	["keyword", "delegate"],
                -	["keyword", "delete"],
                -	["keyword", "deprecated"],
                -	["keyword", "do"],
                -	["keyword", "double"],
                -	["keyword", "else"],
                -	["keyword", "enum"],
                -	["keyword", "export"],
                -	["keyword", "extern"],
                -	["keyword", "false"],
                -	["keyword", "final"],
                -	["keyword", "finally"],
                -	["keyword", "float"],
                -	["keyword", "for"],
                -	["keyword", "foreach"],
                -	["keyword", "foreach_reverse"],
                -	["keyword", "function"],
                -	["keyword", "goto"],
                -	["keyword", "idouble"],
                -	["keyword", "if"],
                -	["keyword", "ifloat"],
                -	["keyword", "immutable"],
                -	["keyword", "import"],
                -	["keyword", "inout"],
                -	["keyword", "int"],
                -	["keyword", "interface"], ["punctuation", ";"],
                -	["keyword", "invariant"],
                -	["keyword", "ireal"],
                -	["keyword", "lazy"],
                -	["keyword", "long"],
                -	["keyword", "macro"],
                -	["keyword", "mixin"],
                -	["keyword", "module"],
                -	["keyword", "new"], ["punctuation", ";"],
                -	["keyword", "nothrow"],
                -	["keyword", "null"],
                -	["keyword", "out"],
                -	["keyword", "override"],
                -	["keyword", "package"],
                -	["keyword", "pragma"],
                -	["keyword", "private"],
                -	["keyword", "protected"],
                -	["keyword", "public"],
                -	["keyword", "pure"],
                -	["keyword", "real"],
                -	["keyword", "ref"],
                -	["keyword", "return"],
                -	["keyword", "scope"],
                -	["keyword", "shared"],
                -	["keyword", "short"],
                -	["keyword", "static"],
                -	["keyword", "struct"],
                -	["keyword", "super"],
                -	["keyword", "switch"],
                -	["keyword", "synchronized"],
                -	["keyword", "template"],
                -	["keyword", "this"],
                -	["keyword", "throw"],
                -	["keyword", "true"],
                -	["keyword", "try"],
                -	["keyword", "typedef"],
                -	["keyword", "typeid"],
                -	["keyword", "typeof"],
                -	["keyword", "ubyte"],
                -	["keyword", "ucent"],
                -	["keyword", "uint"],
                -	["keyword", "ulong"],
                -	["keyword", "union"],
                -	["keyword", "unittest"],
                -	["keyword", "ushort"],
                -	["keyword", "version"],
                -	["keyword", "void"],
                -	["keyword", "volatile"],
                -	["keyword", "wchar"],
                -	["keyword", "while"],
                -	["keyword", "with"],
                -	["keyword", "__FILE__"],
                -	["keyword", "__MODULE__"],
                -	["keyword", "__LINE__"],
                -	["keyword", "__FUNCTION__"],
                -	["keyword", "__PRETTY_FUNCTION__"],
                -	["keyword", "__DATE__"],
                -	["keyword", "__EOF__"],
                -	["keyword", "__TIME__"],
                -	["keyword", "__TIMESTAMP__"],
                -	["keyword", "__VENDOR__"],
                -	["keyword", "__VERSION__"],
                -	["keyword", "__gshared"],
                -	["keyword", "__traits"],
                -	["keyword", "__vector"],
                -	["keyword", "__parameters"],
                -	["keyword", "string"],
                -	["keyword", "wstring"],
                -	["keyword", "dstring"],
                -	["keyword", "size_t"],
                -	["keyword", "ptrdiff_t"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for $, keywords, special tokens and globally defined symbols.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/d/number_feature.test b/node_modules/prismjs/tests/languages/d/number_feature.test
                deleted file mode 100644
                index 817bd7e..0000000
                --- a/node_modules/prismjs/tests/languages/d/number_feature.test
                +++ /dev/null
                @@ -1,55 +0,0 @@
                -42
                -42_000
                -42L
                -42U
                -42UL
                -3.14_15_9
                -3.2e8
                -0.4e-7
                -62.14e+4
                -
                -0xBAD_FACE
                -0xFFU
                -0xfaL
                -0x42UL
                -0x2.AFp4
                -0xFp-3
                -0xFBp+9
                -
                -0b0000_1111
                -
                -6.3i
                -6.3fi
                -6.3Li
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "42"],
                -	["number", "42_000"],
                -	["number", "42L"],
                -	["number", "42U"],
                -	["number", "42UL"],
                -	["number", "3.14_15_9"],
                -	["number", "3.2e8"],
                -	["number", "0.4e-7"],
                -	["number", "62.14e+4"],
                -
                -	["number", "0xBAD_FACE"],
                -	["number", "0xFFU"],
                -	["number", "0xfaL"],
                -	["number", "0x42UL"],
                -	["number", "0x2.AFp4"],
                -	["number", "0xFp-3"],
                -	["number", "0xFBp+9"],
                -
                -	["number", "0b0000_1111"],
                -
                -	["number", "6.3i"],
                -	["number", "6.3fi"],
                -	["number", "6.3Li"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/d/operator_feature.test b/node_modules/prismjs/tests/languages/d/operator_feature.test
                deleted file mode 100644
                index d7e291d..0000000
                --- a/node_modules/prismjs/tests/languages/d/operator_feature.test
                +++ /dev/null
                @@ -1,63 +0,0 @@
                -||
                -&&
                -++
                ---
                -.. ...
                -=>
                -in is
                -!in !is
                -<< <<=
                ->> >>> >>= >>>=
                -^^ ^^=
                -<> !<> <>= !<>=
                -!< !<=
                -!> !>=
                -+ +=
                -- -=
                -* *=
                -/ /=
                -% %=
                -& &=
                -| |=
                -^ ^=
                -~ ~=
                -= ==
                -! !=
                -< <=
                -> >=
                -
                -----------------------------------------------------
                -
                -[
                -	["operator", "||"],
                -	["operator", "&&"],
                -	["operator", "++"],
                -	["operator", "--"],
                -	["operator", ".."], ["operator", "..."],
                -	["operator", "=>"],
                -	["operator", "in"], ["operator", "is"],
                -	["operator", "!in"], ["operator", "!is"],
                -	["operator", "<<"], ["operator", "<<="],
                -	["operator", ">>"], ["operator", ">>>"], ["operator", ">>="], ["operator", ">>>="],
                -	["operator", "^^"], ["operator", "^^="],
                -	["operator", "<>"], ["operator", "!<>"], ["operator", "<>="], ["operator", "!<>="],
                -	["operator", "!<"], ["operator", "!<="],
                -	["operator", "!>"], ["operator", "!>="],
                -	["operator", "+"], ["operator", "+="],
                -	["operator", "-"], ["operator", "-="],
                -	["operator", "*"], ["operator", "*="],
                -	["operator", "/"], ["operator", "/="],
                -	["operator", "%"], ["operator", "%="],
                -	["operator", "&"], ["operator", "&="],
                -	["operator", "|"], ["operator", "|="],
                -	["operator", "^"], ["operator", "^="],
                -	["operator", "~"], ["operator", "~="],
                -	["operator", "="], ["operator", "=="],
                -	["operator", "!"], ["operator", "!="],
                -	["operator", "<"], ["operator", "<="],
                -	["operator", ">"], ["operator", ">="]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for operators.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/d/property_feature.test b/node_modules/prismjs/tests/languages/d/property_feature.test
                deleted file mode 100644
                index 9e61b06..0000000
                --- a/node_modules/prismjs/tests/languages/d/property_feature.test
                +++ /dev/null
                @@ -1,17 +0,0 @@
                -@property int data()
                -@disable this();
                -
                -----------------------------------------------------
                -
                -[
                -	["property", "@property"],
                -	["keyword", "int"],
                -	["function", "data"], ["punctuation", "("], ["punctuation", ")"],
                -	["property", "@disable"],
                -	["keyword", "this"], ["punctuation", "("], ["punctuation", ")"],
                -	["punctuation", ";"]
                -]
                -
                -----------------------------------------------------
                -
                -Check for properties.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/d/register_feature.test b/node_modules/prismjs/tests/languages/d/register_feature.test
                deleted file mode 100644
                index 3eb57c6..0000000
                --- a/node_modules/prismjs/tests/languages/d/register_feature.test
                +++ /dev/null
                @@ -1,75 +0,0 @@
                -AL AH AX EAX
                -BL BH BX EBX
                -CL CH CX ECX
                -DL DH DX EDX
                -BP EBP
                -SP ESP
                -DI EDI
                -SI ESI
                -ES CS SS DS GS FS
                -CR0 CR2 CR3 CR4
                -DR0 DR1 DR2 DR3 DR6 DR7
                -TR3 TR4 TR5 TR6 TR7
                -ST
                -ST(0) ST(1) ST(2) ST(3) ST(4) ST(5) ST(6) ST(7)
                -MM0  MM1  MM2  MM3  MM4  MM5  MM6  MM7
                -XMM0 XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7
                -
                -RAX  RBX  RCX  RDX
                -BPL  RBP
                -SPL  RSP
                -DIL  RDI
                -SIL  RSI
                -R8B  R8W  R8D  R8
                -R9B  R9W  R9D  R9
                -R10B R10W R10D R10
                -R11B R11W R11D R11
                -R12B R12W R12D R12
                -R13B R13W R13D R13
                -R14B R14W R14D R14
                -R15B R15W R15D R15
                -XMM8 XMM9 XMM10 XMM11 XMM12 XMM13 XMM14 XMM15
                -YMM0 YMM1 YMM2  YMM3  YMM4  YMM5  YMM6  YMM7
                -YMM8 YMM9 YMM10 YMM11 YMM12 YMM13 YMM14 YMM15
                -
                -----------------------------------------------------
                -
                -[
                -	["register", "AL"], ["register", "AH"], ["register", "AX"], ["register", "EAX"],
                -	["register", "BL"], ["register", "BH"], ["register", "BX"], ["register", "EBX"],
                -	["register", "CL"], ["register", "CH"], ["register", "CX"], ["register", "ECX"],
                -	["register", "DL"], ["register", "DH"], ["register", "DX"], ["register", "EDX"],
                -	["register", "BP"], ["register", "EBP"],
                -	["register", "SP"], ["register", "ESP"],
                -	["register", "DI"], ["register", "EDI"],
                -	["register", "SI"], ["register", "ESI"],
                -	["register", "ES"], ["register", "CS"], ["register", "SS"], ["register", "DS"], ["register", "GS"], ["register", "FS"],
                -	["register", "CR0"], ["register", "CR2"], ["register", "CR3"], ["register", "CR4"],
                -	["register", "DR0"], ["register", "DR1"], ["register", "DR2"], ["register", "DR3"], ["register", "DR6"], ["register", "DR7"],
                -	["register", "TR3"], ["register", "TR4"], ["register", "TR5"], ["register", "TR6"], ["register", "TR7"],
                -	["register", "ST"],
                -	["register", "ST(0)"], ["register", "ST(1)"], ["register", "ST(2)"], ["register", "ST(3)"], ["register", "ST(4)"], ["register", "ST(5)"], ["register", "ST(6)"], ["register", "ST(7)"],
                -	["register", "MM0"],  ["register", "MM1"],  ["register", "MM2"],  ["register", "MM3"],  ["register", "MM4"],  ["register", "MM5"],  ["register", "MM6"],  ["register", "MM7"],
                -	["register", "XMM0"], ["register", "XMM1"], ["register", "XMM2"], ["register", "XMM3"], ["register", "XMM4"], ["register", "XMM5"], ["register", "XMM6"], ["register", "XMM7"],
                -
                -	["register", "RAX"],  ["register", "RBX"],  ["register", "RCX"],  ["register", "RDX"],
                -	["register", "BPL"],  ["register", "RBP"],
                -	["register", "SPL"],  ["register", "RSP"],
                -	["register", "DIL"],  ["register", "RDI"],
                -	["register", "SIL"],  ["register", "RSI"],
                -	["register", "R8B"],  ["register", "R8W"],  ["register", "R8D"],  ["register", "R8"],
                -	["register", "R9B"],  ["register", "R9W"],  ["register", "R9D"],  ["register", "R9"],
                -	["register", "R10B"], ["register", "R10W"], ["register", "R10D"], ["register", "R10"],
                -	["register", "R11B"], ["register", "R11W"], ["register", "R11D"], ["register", "R11"],
                -	["register", "R12B"], ["register", "R12W"], ["register", "R12D"], ["register", "R12"],
                -	["register", "R13B"], ["register", "R13W"], ["register", "R13D"], ["register", "R13"],
                -	["register", "R14B"], ["register", "R14W"], ["register", "R14D"], ["register", "R14"],
                -	["register", "R15B"], ["register", "R15W"], ["register", "R15D"], ["register", "R15"],
                -	["register", "XMM8"], ["register", "XMM9"], ["register", "XMM10"], ["register", "XMM11"], ["register", "XMM12"], ["register", "XMM13"], ["register", "XMM14"], ["register", "XMM15"],
                -	["register", "YMM0"], ["register", "YMM1"], ["register", "YMM2"],  ["register", "YMM3"],  ["register", "YMM4"],  ["register", "YMM5"],  ["register", "YMM6"],  ["register", "YMM7"],
                -	["register", "YMM8"], ["register", "YMM9"], ["register", "YMM10"], ["register", "YMM11"], ["register", "YMM12"], ["register", "YMM13"], ["register", "YMM14"], ["register", "YMM15"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for Iasm registers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/d/string_feature.test b/node_modules/prismjs/tests/languages/d/string_feature.test
                deleted file mode 100644
                index fc501b1..0000000
                --- a/node_modules/prismjs/tests/languages/d/string_feature.test
                +++ /dev/null
                @@ -1,56 +0,0 @@
                -r"" x""
                -r"fo\"o"c x"00 FBCD"w r"baz"d
                -
                -q"[fo"o
                -bar]"
                -q"(fo"o
                -bar)"
                -q""
                -q"{fo"o
                -bar}"
                -
                -q"FOO
                -Bar "baz"
                -FOO"
                -
                -q"/fo"o
                -bar/"
                -q"|fo"o
                -bar|"
                -
                -'a' '\'' '\u000A'
                -
                -""
                -"foo"c "bar"w "baz"d
                -"fo\"o
                -bar"
                -`foo`
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "r\"\""], ["string", "x\"\""],
                -	["string", "r\"fo\\\"o\"c"], ["string", "x\"00 FBCD\"w"], ["string", "r\"baz\"d"],
                -
                -	["string", "q\"[fo\"o\r\nbar]\""],
                -	["string", "q\"(fo\"o\r\nbar)\""],
                -	["string", "q\"\""],
                -	["string", "q\"{fo\"o\r\nbar}\""],
                -
                -	["string", "q\"FOO\r\nBar \"baz\"\r\nFOO\""],
                -
                -	["string", "q\"/fo\"o\r\nbar/\""],
                -	["string", "q\"|fo\"o\r\nbar|\""],
                -
                -	["string", "'a'"], ["string", "'\\''"], ["string", "'\\u000A'"],
                -
                -	["string", "\"\""],
                -	["string", "\"foo\"c"], ["string", "\"bar\"w"], ["string", "\"baz\"d"],
                -	["string", "\"fo\\\"o\r\nbar\""],
                -	["string", "`foo`"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/d/token-string_feature.test b/node_modules/prismjs/tests/languages/d/token-string_feature.test
                deleted file mode 100644
                index 01627c4..0000000
                --- a/node_modules/prismjs/tests/languages/d/token-string_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -q{foo}
                -q{ q{bar} }
                -
                -----------------------------------------------------
                -
                -[
                -	["token-string", "q{foo}"],
                -	["token-string", "q{ q{bar} }"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for token strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/dart/keyword_feature.test b/node_modules/prismjs/tests/languages/dart/keyword_feature.test
                deleted file mode 100644
                index a5e3c6c..0000000
                --- a/node_modules/prismjs/tests/languages/dart/keyword_feature.test
                +++ /dev/null
                @@ -1,49 +0,0 @@
                -async* sync* yield*
                -abstract assert async await
                -break case catch
                -class;
                -const
                -continue default deferred
                -do dynamic else enum
                -export external
                -extends;
                -factory final finally for
                -get if
                -implements;
                -import
                -in library
                -new;
                -null
                -operator part rethrow return
                -set static super switch this
                -throw try typedef var
                -void while with yield
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "async*"], ["keyword", "sync*"], ["keyword", "yield*"],
                -	["keyword", "abstract"], ["keyword", "assert"], ["keyword", "async"], ["keyword", "await"],
                -	["keyword", "break"], ["keyword", "case"], ["keyword", "catch"],
                -	["keyword", "class"], ["punctuation", ";"],
                -	["keyword", "const"],
                -	["keyword", "continue"], ["keyword", "default"], ["keyword", "deferred"],
                -	["keyword", "do"], ["keyword", "dynamic"], ["keyword", "else"], ["keyword", "enum"],
                -	["keyword", "export"], ["keyword", "external"],
                -	["keyword", "extends"], ["punctuation", ";"],
                -	["keyword", "factory"], ["keyword", "final"], ["keyword", "finally"], ["keyword", "for"],
                -	["keyword", "get"], ["keyword", "if"],
                -	["keyword", "implements"], ["punctuation", ";"],
                -	["keyword", "import"],
                -	["keyword", "in"], ["keyword", "library"],
                -	["keyword", "new"], ["punctuation", ";"],
                -	["keyword", "null"],
                -	["keyword", "operator"], ["keyword", "part"], ["keyword", "rethrow"], ["keyword", "return"],
                -	["keyword", "set"], ["keyword", "static"], ["keyword", "super"], ["keyword", "switch"], ["keyword", "this"],
                -	["keyword", "throw"], ["keyword", "try"], ["keyword", "typedef"], ["keyword", "var"],
                -	["keyword", "void"], ["keyword", "while"], ["keyword", "with"], ["keyword", "yield"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/dart/metadata_feature.test b/node_modules/prismjs/tests/languages/dart/metadata_feature.test
                deleted file mode 100644
                index e88e7ba..0000000
                --- a/node_modules/prismjs/tests/languages/dart/metadata_feature.test
                +++ /dev/null
                @@ -1,20 +0,0 @@
                -@deprecated
                -@override
                -@todo('seth', 'make this do something')
                -
                -----------------------------------------------------
                -
                -[
                -	["metadata", "@deprecated"],
                -	["metadata", "@override"],
                -	["metadata", "@todo"],
                -	["punctuation", "("],
                -	["string", "'seth'"],
                -	["punctuation", ","],
                -	["string", "'make this do something'"],
                -	["punctuation", ")"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for metadata.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/dart/operator_feature.test b/node_modules/prismjs/tests/languages/dart/operator_feature.test
                deleted file mode 100644
                index 5d631fd..0000000
                --- a/node_modules/prismjs/tests/languages/dart/operator_feature.test
                +++ /dev/null
                @@ -1,33 +0,0 @@
                -++ --
                -* / % ~/
                -+ - ! ~
                -<< >> ?
                -& ^ |
                ->= > <= <
                -as is is!
                -== != && ||
                -= *= /= ~/=
                -%= += -=
                -<<= >>=
                -&= ^= |=
                -
                -----------------------------------------------------
                -
                -[
                -	["operator", "++"], ["operator", "--"],
                -	["operator", "*"], ["operator", "/"], ["operator", "%"], ["operator", "~/"],
                -	["operator", "+"], ["operator", "-"], ["operator", "!"], ["operator", "~"],
                -	["operator", "<<"], ["operator", ">>"], ["operator", "?"],
                -	["operator", "&"], ["operator", "^"], ["operator", "|"],
                -	["operator", ">="], ["operator", ">"], ["operator", "<="], ["operator", "<"],
                -	["operator", "as"], ["operator", "is"], ["operator", "is!"],
                -	["operator", "=="], ["operator", "!="], ["operator", "&&"], ["operator", "||"],
                -	["operator", "="], ["operator", "*="], ["operator", "/="], ["operator", "~/="],
                -	["operator", "%="], ["operator", "+="], ["operator", "-="],
                -	["operator", "<<="], ["operator", ">>="],
                -	["operator", "&="], ["operator", "^="], ["operator", "|="]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all operators.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/dart/string_feature.test b/node_modules/prismjs/tests/languages/dart/string_feature.test
                deleted file mode 100644
                index feffdbc..0000000
                --- a/node_modules/prismjs/tests/languages/dart/string_feature.test
                +++ /dev/null
                @@ -1,25 +0,0 @@
                -"" ''
                -r"" r''
                -"""""" ''''''
                -r"""""" r''''''
                -"fo\"o" 'fo\'o'
                -"""foo
                -bar"""
                -'''foo
                -bar'''
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "\"\""], ["string", "''"],
                -	["string", "r\"\""], ["string", "r''"],
                -	["string", "\"\"\"\"\"\""], ["string", "''''''"],
                -	["string", "r\"\"\"\"\"\""], ["string", "r''''''"],
                -	["string", "\"fo\\\"o\""], ["string", "'fo\\'o'"],
                -	["string", "\"\"\"foo\r\nbar\"\"\""], ["string", "'''foo\r\nbar'''"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for single quoted and double quoted strings,
                -multi-line strings and "raw" strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/diff/coord_feature.test b/node_modules/prismjs/tests/languages/diff/coord_feature.test
                deleted file mode 100644
                index c082693..0000000
                --- a/node_modules/prismjs/tests/languages/diff/coord_feature.test
                +++ /dev/null
                @@ -1,21 +0,0 @@
                -7c7
                -
                -*** 4,8 ****
                ---- 4,8 ----
                -
                -@@ -4,5 +4,5 @@
                -
                -----------------------------------------------------
                -
                -[
                -	["coord", "7c7"],
                -
                -	["coord", "*** 4,8 ****"],
                -	["coord", "--- 4,8 ----"],
                -
                -	["coord", "@@ -4,5 +4,5 @@"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for coords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/diff/diff_feature.test b/node_modules/prismjs/tests/languages/diff/diff_feature.test
                deleted file mode 100644
                index 0e53490..0000000
                --- a/node_modules/prismjs/tests/languages/diff/diff_feature.test
                +++ /dev/null
                @@ -1,21 +0,0 @@
                -!     qt: core
                -
                --    qt: core
                -+    qt: core gui
                -
                -< qt: core
                -> qt: core quick
                -
                -----------------------------------------------------
                -
                -[
                -	["diff", "!     qt: core"],
                -	["deleted", "-    qt: core"],
                -	["inserted", "+    qt: core gui"],
                -	["deleted", "< qt: core"],
                -	["inserted", "> qt: core quick"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for deleted, inserted and different lines.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/docker/comment_feature.test b/node_modules/prismjs/tests/languages/docker/comment_feature.test
                deleted file mode 100644
                index 054d602..0000000
                --- a/node_modules/prismjs/tests/languages/docker/comment_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -#
                -# foobar
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "#"],
                -	["comment", "# foobar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/docker/keyword_feature.test b/node_modules/prismjs/tests/languages/docker/keyword_feature.test
                deleted file mode 100644
                index 8b39af9..0000000
                --- a/node_modules/prismjs/tests/languages/docker/keyword_feature.test
                +++ /dev/null
                @@ -1,37 +0,0 @@
                -ONBUILD ADD . /app/src
                -FROM ubuntu
                -MAINTAINER SvenDowideit@home.org.au
                -RUN cd /tmp
                -EXPOSE 5900
                -ENV myName John Doe
                -COPY hom* /mydir/
                -VOLUME /myvol
                -USER daemon
                -WORKDIR /a
                -CMD echo "foo"
                -LABEL version="1.0"
                -ENTRYPOINT ["top", "-b"]
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "ONBUILD"], ["keyword", "ADD"], " . /app/src\r\n",
                -	["keyword", "FROM"], " ubuntu\r\n",
                -	["keyword", "MAINTAINER"], " SvenDowideit@home.org.au\r\n",
                -	["keyword", "RUN"], " cd /tmp\r\n",
                -	["keyword", "EXPOSE"], " 5900\r\n",
                -	["keyword", "ENV"], " myName John Doe\r\n",
                -	["keyword", "COPY"], " hom* /mydir/\r\n",
                -	["keyword", "VOLUME"], " /myvol\r\n",
                -	["keyword", "USER"], " daemon\r\n",
                -	["keyword", "WORKDIR"], " /a\r\n",
                -	["keyword", "CMD"], " echo ", ["string", "\"foo\""],
                -	["keyword", "LABEL"], " version=", ["string", "\"1.0\""],
                -	["keyword", "ENTRYPOINT"],
                -	["punctuation", "["], ["string", "\"top\""], ["punctuation", ","],
                -	["string", "\"-b\""], ["punctuation", "]"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/docker/string_feature.test b/node_modules/prismjs/tests/languages/docker/string_feature.test
                deleted file mode 100644
                index e131f02..0000000
                --- a/node_modules/prismjs/tests/languages/docker/string_feature.test
                +++ /dev/null
                @@ -1,23 +0,0 @@
                -""
                -"fo\"obar"
                -"foo\
                -bar"
                -''
                -'fo\'obar'
                -'foo\
                -bar'
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "\"\""],
                -	["string", "\"fo\\\"obar\""],
                -	["string", "\"foo\\\r\nbar\""],
                -	["string", "''"],
                -	["string", "'fo\\'obar'"],
                -	["string", "'foo\\\r\nbar'"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/eiffel/boolean_feature.test b/node_modules/prismjs/tests/languages/eiffel/boolean_feature.test
                deleted file mode 100644
                index 5750be0..0000000
                --- a/node_modules/prismjs/tests/languages/eiffel/boolean_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -True
                -False
                -
                -----------------------------------------------------
                -
                -[
                -	["boolean", "True"],
                -	["boolean", "False"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for booleans.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/eiffel/char_feature.test b/node_modules/prismjs/tests/languages/eiffel/char_feature.test
                deleted file mode 100644
                index 6a9b124..0000000
                --- a/node_modules/prismjs/tests/languages/eiffel/char_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -'a'
                -'%''
                -'%/123/'
                -
                -----------------------------------------------------
                -
                -[
                -	["char", "'a'"],
                -	["char", "'%''"],
                -	["char", "'%/123/'"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for chars.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/eiffel/comment_feature.test b/node_modules/prismjs/tests/languages/eiffel/comment_feature.test
                deleted file mode 100644
                index d911aa7..0000000
                --- a/node_modules/prismjs/tests/languages/eiffel/comment_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                ---
                --- foo bar
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "--"],
                -	["comment", "-- foo bar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/eiffel/keyword_feature.test b/node_modules/prismjs/tests/languages/eiffel/keyword_feature.test
                deleted file mode 100644
                index cb6ae29..0000000
                --- a/node_modules/prismjs/tests/languages/eiffel/keyword_feature.test
                +++ /dev/null
                @@ -1,39 +0,0 @@
                -across agent alias all and
                -attached as assign attribute
                -check class convert create
                -Current debug deferred detachable
                -do else elseif end ensure
                -expanded export external
                -feature from frozen if
                -implies inherit inspect
                -invariant like local loop
                -not note obsolete old
                -once or Precursor redefine
                -rename require rescue Result
                -retry select separate some
                -then undefine until variant
                -Void when xor
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "across"], ["keyword", "agent"], ["keyword", "alias"], ["keyword", "all"], ["keyword", "and"],
                -	["keyword", "attached"], ["keyword", "as"], ["keyword", "assign"], ["keyword", "attribute"],
                -	["keyword", "check"], ["keyword", "class"], ["keyword", "convert"], ["keyword", "create"],
                -	["keyword", "Current"], ["keyword", "debug"], ["keyword", "deferred"], ["keyword", "detachable"],
                -	["keyword", "do"], ["keyword", "else"], ["keyword", "elseif"], ["keyword", "end"], ["keyword", "ensure"],
                -	["keyword", "expanded"], ["keyword", "export"], ["keyword", "external"],
                -	["keyword", "feature"], ["keyword", "from"], ["keyword", "frozen"], ["keyword", "if"],
                -	["keyword", "implies"], ["keyword", "inherit"], ["keyword", "inspect"],
                -	["keyword", "invariant"], ["keyword", "like"], ["keyword", "local"], ["keyword", "loop"],
                -	["keyword", "not"], ["keyword", "note"], ["keyword", "obsolete"], ["keyword", "old"],
                -	["keyword", "once"], ["keyword", "or"], ["keyword", "Precursor"], ["keyword", "redefine"],
                -	["keyword", "rename"], ["keyword", "require"], ["keyword", "rescue"], ["keyword", "Result"],
                -	["keyword", "retry"], ["keyword", "select"], ["keyword", "separate"], ["keyword", "some"],
                -	["keyword", "then"], ["keyword", "undefine"], ["keyword", "until"], ["keyword", "variant"],
                -	["keyword", "Void"], ["keyword", "when"], ["keyword", "xor"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all keywords
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/eiffel/number_feature.test b/node_modules/prismjs/tests/languages/eiffel/number_feature.test
                deleted file mode 100644
                index beb3cc7..0000000
                --- a/node_modules/prismjs/tests/languages/eiffel/number_feature.test
                +++ /dev/null
                @@ -1,29 +0,0 @@
                -0xbabe
                -0xBAD_A55
                -0c7654_1234
                -0b1111_0000_0101
                -42
                -42.
                -.42
                -1_845.123_456
                -3.14e+4
                -4_2.5_7e-1_0
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "0xbabe"],
                -	["number", "0xBAD_A55"],
                -	["number", "0c7654_1234"],
                -	["number", "0b1111_0000_0101"],
                -	["number", "42"],
                -	["number", "42."],
                -	["number", ".42"],
                -	["number", "1_845.123_456"],
                -	["number", "3.14e+4"],
                -	["number", "4_2.5_7e-1_0"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for hexadecimal, octal, binary and decimal numbers.
                diff --git a/node_modules/prismjs/tests/languages/eiffel/operator_feature.test b/node_modules/prismjs/tests/languages/eiffel/operator_feature.test
                deleted file mode 100644
                index fcba4b3..0000000
                --- a/node_modules/prismjs/tests/languages/eiffel/operator_feature.test
                +++ /dev/null
                @@ -1,19 +0,0 @@
                -\\ |..| .. //
                -/~ / /=
                -< <= > >=
                -+ - *
                -^ = ~
                -
                -----------------------------------------------------
                -
                -[
                -	["operator", "\\\\"], ["operator", "|..|"], ["operator", ".."], ["operator", "//"],
                -	["operator", "/~"], ["operator", "/"], ["operator", "/="],
                -	["operator", "<"], ["operator", "<="], ["operator", ">"], ["operator", ">="],
                -	["operator", "+"], ["operator", "-"], ["operator", "*"],
                -	["operator", "^"], ["operator", "="], ["operator", "~"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all operators
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/eiffel/string_feature.test b/node_modules/prismjs/tests/languages/eiffel/string_feature.test
                deleted file mode 100644
                index 183bf99..0000000
                --- a/node_modules/prismjs/tests/languages/eiffel/string_feature.test
                +++ /dev/null
                @@ -1,30 +0,0 @@
                -""
                -"fo%"o"
                -"foo%
                -%bar"
                -
                -"[fo"o
                -bar]"
                -"!-[fo"o[]
                -bar]!-"
                -"{fo"o
                -bar}"
                -"*?{fo"o{}
                -bar}*?"
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "\"\""],
                -	["string", "\"fo%\"o\""],
                -	["string", "\"foo%\r\n%bar\""],
                -
                -	["string", "\"[fo\"o\r\nbar]\""],
                -	["string", "\"!-[fo\"o[]\r\nbar]!-\""],
                -	["string", "\"{fo\"o\r\nbar}\""],
                -	["string", "\"*?{fo\"o{}\r\nbar}*?\""]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for strings, multi-line strings, and aligned and non aligned verbatim strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/elixir/atom_feature.test b/node_modules/prismjs/tests/languages/elixir/atom_feature.test
                deleted file mode 100644
                index 5b1c47d..0000000
                --- a/node_modules/prismjs/tests/languages/elixir/atom_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -:true
                -:false
                -:FooBar42
                -
                -----------------------------------------------------
                -
                -[
                -	["atom", ":true"],
                -	["atom", ":false"],
                -	["atom", ":FooBar42"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for atoms.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/elixir/attr-name_feature.test b/node_modules/prismjs/tests/languages/elixir/attr-name_feature.test
                deleted file mode 100644
                index de7cadc..0000000
                --- a/node_modules/prismjs/tests/languages/elixir/attr-name_feature.test
                +++ /dev/null
                @@ -1,24 +0,0 @@
                -[a: 1, b: 2]
                -do: :this, else: :that
                -where: foo,
                -select: bar
                -
                -----------------------------------------------------
                -
                -[
                -	["punctuation", "["],
                -	["attr-name", "a:"],
                -	["number", "1"], ["punctuation", ","],
                -	["attr-name", "b:"],
                -	["number", "2"], ["punctuation", "]"],
                -
                -	["attr-name", "do:"], ["atom", ":this"],
                -	["punctuation", ","],
                -	["attr-name", "else:"], ["atom", ":that"],
                -	["attr-name", "where:"], " foo", ["punctuation", ","],
                -	["attr-name", "select:"], " bar"
                -]
                -
                -----------------------------------------------------
                -
                -Checks for keyword list keys.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/elixir/attribute_feature.test b/node_modules/prismjs/tests/languages/elixir/attribute_feature.test
                deleted file mode 100644
                index 273c2a4..0000000
                --- a/node_modules/prismjs/tests/languages/elixir/attribute_feature.test
                +++ /dev/null
                @@ -1,19 +0,0 @@
                -@vsn 2
                -@moduledoc """
                -foobar
                -"""
                -@tag :external
                -
                -----------------------------------------------------
                -
                -[
                -	["attribute", "@vsn"], ["number", "2"],
                -	["attribute", "@moduledoc"], ["string", [
                -		"\"\"\"\r\nfoobar\r\n\"\"\""
                -	]],
                -	["attribute", "@tag"], ["atom", ":external"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for module attributes.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/elixir/boolean_feature.test b/node_modules/prismjs/tests/languages/elixir/boolean_feature.test
                deleted file mode 100644
                index aa94979..0000000
                --- a/node_modules/prismjs/tests/languages/elixir/boolean_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -true
                -false
                -nil
                -
                -----------------------------------------------------
                -
                -[
                -	["boolean", "true"],
                -	["boolean", "false"],
                -	["boolean", "nil"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for booleans and nil.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/elixir/capture_feature.test b/node_modules/prismjs/tests/languages/elixir/capture_feature.test
                deleted file mode 100644
                index 8a64b66..0000000
                --- a/node_modules/prismjs/tests/languages/elixir/capture_feature.test
                +++ /dev/null
                @@ -1,28 +0,0 @@
                -fun = &Math.zero?/1
                -(&is_function/1).(fun)
                -fun = &(&1 + 1)
                -&List.flatten(&1, &2)
                -
                -----------------------------------------------------
                -
                -[
                -	"fun ", ["operator", "="],
                -	["capture", "&Math.zero?/1"],
                -	["punctuation", "("],
                -	["capture", "&is_function/1"],
                -	["punctuation", ")"],
                -	["punctuation", "."],
                -	["punctuation", "("], "fun", ["punctuation", ")"],
                -	"\r\nfun ", ["operator", "="],
                -	["capture", "&"],
                -	["punctuation", "("], ["argument", "&1"],
                -	["operator", "+"], ["number", "1"], ["punctuation", ")"],
                -	["capture", "&List.flatten"],
                -	["punctuation", "("], ["argument", "&1"],
                -	["punctuation", ","], ["argument", "&2"],
                -	["punctuation", ")"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for function capturing and arguments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/elixir/comment_feature.test b/node_modules/prismjs/tests/languages/elixir/comment_feature.test
                deleted file mode 100644
                index 09493ab..0000000
                --- a/node_modules/prismjs/tests/languages/elixir/comment_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -#
                -# Foobar
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "#"],
                -	["comment", "# Foobar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/elixir/issue775.test b/node_modules/prismjs/tests/languages/elixir/issue775.test
                deleted file mode 100644
                index d3243f8..0000000
                --- a/node_modules/prismjs/tests/languages/elixir/issue775.test
                +++ /dev/null
                @@ -1,17 +0,0 @@
                -@doc """
                -## Parameters
                -"""
                -
                -----------------------------------------------------
                -
                -[
                -	["attribute", "@doc"],
                -	["string", [
                -		"\"\"\"\r\n## Parameters\r\n\"\"\""
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Ensures that markdown headers are not highlighted as comments inside strings.
                -See #775 for details.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/elixir/keyword_feature.test b/node_modules/prismjs/tests/languages/elixir/keyword_feature.test
                deleted file mode 100644
                index e1b02a1..0000000
                --- a/node_modules/prismjs/tests/languages/elixir/keyword_feature.test
                +++ /dev/null
                @@ -1,31 +0,0 @@
                -after alias and case
                -catch cond def
                -defcallback
                -defexception
                -defimpl defmodule
                -defp defprotocol
                -defstruct do else
                -end fn for if
                -import not or
                -require rescue try
                -unless use when
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "after"], ["keyword", "alias"], ["keyword", "and"], ["keyword", "case"],
                -	["keyword", "catch"], ["keyword", "cond"], ["keyword", "def"],
                -	["keyword", "defcallback"],
                -	["keyword", "defexception"],
                -	["keyword", "defimpl"], ["keyword", "defmodule"],
                -	["keyword", "defp"], ["keyword", "defprotocol"],
                -	["keyword", "defstruct"], ["keyword", "do"], ["keyword", "else"],
                -	["keyword", "end"], ["keyword", "fn"], ["keyword", "for"], ["keyword", "if"],
                -	["keyword", "import"], ["keyword", "not"], ["keyword", "or"],
                -	["keyword", "require"], ["keyword", "rescue"], ["keyword", "try"],
                -	["keyword", "unless"], ["keyword", "use"], ["keyword", "when"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/elixir/number_feature.test b/node_modules/prismjs/tests/languages/elixir/number_feature.test
                deleted file mode 100644
                index ae06684..0000000
                --- a/node_modules/prismjs/tests/languages/elixir/number_feature.test
                +++ /dev/null
                @@ -1,27 +0,0 @@
                -0b1111_0000
                -0o754_123
                -0xBadFace
                -42
                -42_000
                -3.14159
                -2e6
                -3.241_753E-7
                -0.7e+15
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "0b1111_0000"],
                -	["number", "0o754_123"],
                -	["number", "0xBadFace"],
                -	["number", "42"],
                -	["number", "42_000"],
                -	["number", "3.14159"],
                -	["number", "2e6"],
                -	["number", "3.241_753E-7"],
                -	["number", "0.7e+15"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for binary, octal, hexadecimal and decimal numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/elixir/operator_feature.test b/node_modules/prismjs/tests/languages/elixir/operator_feature.test
                deleted file mode 100644
                index c97dcce..0000000
                --- a/node_modules/prismjs/tests/languages/elixir/operator_feature.test
                +++ /dev/null
                @@ -1,41 +0,0 @@
                -in
                -\\
                -::
                -..
                -...
                -+ ++
                -- -- ->
                -*
                -/
                -^
                -& &&
                -| || |>
                -< <= <> <-
                -> >=
                -! != !==
                -= =~ == === =>
                -
                -----------------------------------------------------
                -
                -[
                -	["operator", "in"],
                -	["operator", "\\\\"],
                -	["operator", "::"],
                -	["operator", ".."],
                -	["operator", "..."],
                -	["operator", "+"], ["operator", "++"],
                -	["operator", "-"], ["operator", "--"], ["operator", "->"],
                -	["operator", "*"],
                -	["operator", "/"],
                -	["operator", "^"],
                -	["operator", "&"], ["operator", "&&"],
                -	["operator", "|"], ["operator", "||"], ["operator", "|>"],
                -	["operator", "<"], ["operator", "<="], ["operator", "<>"], ["operator", "<-"],
                -	["operator", ">"], ["operator", ">="],
                -	["operator", "!"], ["operator", "!="], ["operator", "!=="],
                -	["operator", "="], ["operator", "=~"], ["operator", "=="], ["operator", "==="], ["operator", "=>"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all operators.
                diff --git a/node_modules/prismjs/tests/languages/elixir/regex_feature.test b/node_modules/prismjs/tests/languages/elixir/regex_feature.test
                deleted file mode 100644
                index 81eb31a..0000000
                --- a/node_modules/prismjs/tests/languages/elixir/regex_feature.test
                +++ /dev/null
                @@ -1,29 +0,0 @@
                -~r"""foobar"""im
                -~R'''foobar'''ux
                -~r/fo\/obar/smfr
                -~R|fo\|obar|uismxfr
                -~r"fo\"obar"x
                -~R'fo\'obar's
                -~r(fo\)obar)
                -~R[fo\]obar]
                -~r{fo\}obar}
                -~Robar>
                -
                -----------------------------------------------------
                -
                -[
                -	["regex", "~r\"\"\"foobar\"\"\"im"],
                -	["regex", "~R'''foobar'''ux"],
                -	["regex", "~r/fo\\/obar/smfr"],
                -	["regex", "~R|fo\\|obar|uismxfr"],
                -	["regex", "~r\"fo\\\"obar\"x"],
                -	["regex", "~R'fo\\'obar's"],
                -	["regex", "~r(fo\\)obar)"],
                -	["regex", "~R[fo\\]obar]"],
                -	["regex", "~r{fo\\}obar}"],
                -	["regex", "~Robar>"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for regexes.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/elixir/string_feature.test b/node_modules/prismjs/tests/languages/elixir/string_feature.test
                deleted file mode 100644
                index ca54f4b..0000000
                --- a/node_modules/prismjs/tests/languages/elixir/string_feature.test
                +++ /dev/null
                @@ -1,115 +0,0 @@
                -~s/foobar/
                -~s/foo#{42}bar/
                -~S|foobar|
                -~c"foobar"
                -~c"foo#{42}bar"
                -~C'foobar'
                -~w(foobar)c
                -~w(foo#{42}bar)s
                -~W[foobar]a
                -~s{foobar}
                -~s{foo#{42}bar}
                -~S
                -
                -"""
                -Foo bar
                -"""
                -
                -'''
                -Foo bar
                -'''
                -
                -~S"""
                -Foo bar
                -"""
                -
                -~c"""
                -Foo bar
                -"""
                -
                -~w"""
                -Foo bar
                -"""
                -
                -""
                -"foo"
                -"fo\"o\
                -#{42}bar"
                -''
                -'foo'
                -'fo\'o\
                -bar'
                -
                -----------------------------------------------------
                -
                -[
                -	["string", ["~s/foobar/"]],
                -	["string", [
                -		"~s/foo",
                -		["interpolation", [
                -			["delimiter", "#{"],
                -			["number", "42"],
                -			["delimiter", "}"]
                -		]],
                -		"bar/"
                -	]],
                -	["string", ["~S|foobar|"]],
                -	["string", ["~c\"foobar\""]],
                -	["string", [
                -		"~c\"foo",
                -		["interpolation", [
                -			["delimiter", "#{"],
                -			["number", "42"],
                -			["delimiter", "}"]
                -		]],
                -		"bar\""
                -	]],
                -	["string", ["~C'foobar'"]],
                -	["string", ["~w(foobar)c"]],
                -	["string", [
                -		"~w(foo",
                -		["interpolation", [
                -			["delimiter", "#{"],
                -			["number", "42"],
                -			["delimiter", "}"]
                -		]],
                -		"bar)s"
                -	]],
                -	["string", ["~W[foobar]a"]],
                -	["string", ["~s{foobar}"]],
                -	["string", [
                -		"~s{foo",
                -		["interpolation", [
                -			["delimiter", "#{"],
                -			["number", "42"],
                -			["delimiter", "}"]
                -		]],
                -		"bar}"
                -	]],
                -	["string", ["~S"]],
                -
                -	["string", ["\"\"\"\r\nFoo bar\r\n\"\"\""]],
                -	["string", ["'''\r\nFoo bar\r\n'''"]],
                -	["string", ["~S\"\"\"\r\nFoo bar\r\n\"\"\""]],
                -	["string", ["~c\"\"\"\r\nFoo bar\r\n\"\"\""]],
                -	["string", ["~w\"\"\"\r\nFoo bar\r\n\"\"\""]],
                -
                -	["string", ["\"\""]],
                -	["string", ["\"foo\""]],
                -	["string", [
                -		"\"fo\\\"o\\\r\n",
                -		["interpolation", [
                -			["delimiter", "#{"],
                -			["number", "42"],
                -			["delimiter", "}"]
                -		]],
                -		"bar\""
                -	]],
                -	["string", ["''"]],
                -	["string", ["'foo'"]],
                -	["string", ["'fo\\'o\\\r\nbar'"]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/erlang/atom_feature.test b/node_modules/prismjs/tests/languages/erlang/atom_feature.test
                deleted file mode 100644
                index 1761a8b..0000000
                --- a/node_modules/prismjs/tests/languages/erlang/atom_feature.test
                +++ /dev/null
                @@ -1,17 +0,0 @@
                -foo
                -foo@_bar
                -'foo bar'
                -'\'\\'
                -
                -----------------------------------------------------
                -
                -[
                -	["atom", "foo"],
                -	["atom", "foo@_bar"],
                -	["quoted-atom", "'foo bar'"],
                -    ["quoted-atom", "'\\'\\\\'"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for atoms and quoted atoms.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/erlang/boolean_feature.test b/node_modules/prismjs/tests/languages/erlang/boolean_feature.test
                deleted file mode 100644
                index 4019c44..0000000
                --- a/node_modules/prismjs/tests/languages/erlang/boolean_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -true
                -false
                -
                -----------------------------------------------------
                -
                -[
                -	["boolean", "true"],
                -	["boolean", "false"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for booleans.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/erlang/comment_feature.test b/node_modules/prismjs/tests/languages/erlang/comment_feature.test
                deleted file mode 100644
                index b879c5e..0000000
                --- a/node_modules/prismjs/tests/languages/erlang/comment_feature.test
                +++ /dev/null
                @@ -1,11 +0,0 @@
                -% foo bar
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "% foo bar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/erlang/function_feature.test b/node_modules/prismjs/tests/languages/erlang/function_feature.test
                deleted file mode 100644
                index 72d8857..0000000
                --- a/node_modules/prismjs/tests/languages/erlang/function_feature.test
                +++ /dev/null
                @@ -1,17 +0,0 @@
                -spawn(
                -foo@_bar(
                -'foo bar'(
                -'\'\\'(
                -
                -----------------------------------------------------
                -
                -[
                -	["function", "spawn"], ["punctuation", "("],
                -	["function", "foo@_bar"], ["punctuation", "("],
                -	["quoted-function", "'foo bar'"], ["punctuation", "("],
                -	["quoted-function", "'\\'\\\\'"], ["punctuation", "("]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for functions and quoted functions.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/erlang/keyword_feature.test b/node_modules/prismjs/tests/languages/erlang/keyword_feature.test
                deleted file mode 100644
                index 3af1da3..0000000
                --- a/node_modules/prismjs/tests/languages/erlang/keyword_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -fun when case of
                -end if receive
                -after try catch
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "fun"], ["keyword", "when"], ["keyword", "case"], ["keyword", "of"],
                -	["keyword", "end"], ["keyword", "if"], ["keyword", "receive"],
                -	["keyword", "after"], ["keyword", "try"], ["keyword", "catch"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/erlang/number_feature.test b/node_modules/prismjs/tests/languages/erlang/number_feature.test
                deleted file mode 100644
                index 0e5890f..0000000
                --- a/node_modules/prismjs/tests/languages/erlang/number_feature.test
                +++ /dev/null
                @@ -1,25 +0,0 @@
                -42
                -2#101
                -16#1f
                -2.3
                -2.3e3
                -2.3e-3
                -$A
                -$\n
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "42"],
                -	["number", "2#101"],
                -	["number", "16#1f"],
                -	["number", "2.3"],
                -	["number", "2.3e3"],
                -	["number", "2.3e-3"],
                -	["number", "$A"],
                -	["number", "$\\n"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for numbers and character codes.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/erlang/operator_feature.test b/node_modules/prismjs/tests/languages/erlang/operator_feature.test
                deleted file mode 100644
                index addd5d3..0000000
                --- a/node_modules/prismjs/tests/languages/erlang/operator_feature.test
                +++ /dev/null
                @@ -1,27 +0,0 @@
                -== /= >= :=
                -=:= =/=
                -+ ++ - --
                -= * / !
                -<= < >
                -bnot div rem band
                -bor bxor bsl bsr
                -not and or xor
                -orelse andalso
                -
                -----------------------------------------------------
                -
                -[
                -	["operator", "=="], ["operator", "/="], ["operator", ">="], ["operator", ":="],
                -	["operator", "=:="], ["operator", "=/="],
                -	["operator", "+"], ["operator", "++"], ["operator", "-"], ["operator", "--"],
                -	["operator", "="], ["operator", "*"], ["operator", "/"], ["operator", "!"],
                -	["operator", "<="], ["operator", "<"], ["operator", ">"],
                -	["operator", "bnot"], ["operator", "div"], ["operator", "rem"], ["operator", "band"],
                -	["operator", "bor"], ["operator", "bxor"], ["operator", "bsl"], ["operator", "bsr"],
                -	["operator", "not"], ["operator", "and"], ["operator", "or"], ["operator", "xor"],
                -	["operator", "orelse"], ["operator", "andalso"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all operators.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/erlang/string_feature.test b/node_modules/prismjs/tests/languages/erlang/string_feature.test
                deleted file mode 100644
                index 42770f6..0000000
                --- a/node_modules/prismjs/tests/languages/erlang/string_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -""
                -"foo bar"
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "\"\""],
                -	["string", "\"foo bar\""]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/erlang/variable_feature.test b/node_modules/prismjs/tests/languages/erlang/variable_feature.test
                deleted file mode 100644
                index f7492e4..0000000
                --- a/node_modules/prismjs/tests/languages/erlang/variable_feature.test
                +++ /dev/null
                @@ -1,17 +0,0 @@
                -Foo
                -?Bar
                -_
                -Foo@_bar
                -
                -----------------------------------------------------
                -
                -[
                -	["variable", "Foo"],
                -	["variable", "?Bar"],
                -	["variable", "_"],
                -	["variable", "Foo@_bar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for variables.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/fortran+pure/fortran_inclusion.test b/node_modules/prismjs/tests/languages/fortran+pure/fortran_inclusion.test
                deleted file mode 100644
                index 176cad9..0000000
                --- a/node_modules/prismjs/tests/languages/fortran+pure/fortran_inclusion.test
                +++ /dev/null
                @@ -1,18 +0,0 @@
                -%< -*- Fortran90 -*-
                -21_SHORT
                -%>
                -
                -----------------------------------------------------
                -
                -[
                -	["inline-lang-fortran", [
                -		["delimiter", "%< "],
                -		["lang", "-*- Fortran90 -*-"],
                -		["number", "21_SHORT"],
                -		["delimiter", "%>"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for Fortran in Pure.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/fortran/boolean_feature.test b/node_modules/prismjs/tests/languages/fortran/boolean_feature.test
                deleted file mode 100644
                index 88bdb6b..0000000
                --- a/node_modules/prismjs/tests/languages/fortran/boolean_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -.TRUE.
                -.false.
                -
                -----------------------------------------------------
                -
                -[
                -	["boolean", ".TRUE."],
                -	["boolean", ".false."]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for boolean.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/fortran/comment_feature.test b/node_modules/prismjs/tests/languages/fortran/comment_feature.test
                deleted file mode 100644
                index c1fe029..0000000
                --- a/node_modules/prismjs/tests/languages/fortran/comment_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -!
                -! foobar
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "!"],
                -	["comment", "! foobar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/fortran/keyword_feature.test b/node_modules/prismjs/tests/languages/fortran/keyword_feature.test
                deleted file mode 100644
                index e3bb493..0000000
                --- a/node_modules/prismjs/tests/languages/fortran/keyword_feature.test
                +++ /dev/null
                @@ -1,199 +0,0 @@
                -INTEGER
                -REAL
                -DOUBLE PRECISION
                -DOUBLEPRECISION
                -COMPLEX
                -CHARACTER
                -LOGICAL
                -
                -ALLOCATABLE
                -ALLOCATE
                -BACKSPACE
                -CALL
                -CASE
                -CLOSE
                -COMMON
                -CONTAINS
                -CONTINUE
                -CYCLE
                -DATA
                -DEALLOCATE
                -DIMENSION
                -DO
                -END
                -EQUIVALENCE
                -EXIT
                -EXTERNAL
                -FORMAT
                -GO TO
                -GOTO
                -IMPLICIT
                -IMPLICIT NONE
                -INQUIRE
                -INTENT
                -INTRINSIC
                -MODULE PROCEDURE
                -NAMELIST
                -NULLIFY
                -OPEN
                -OPTIONAL
                -PARAMETER
                -POINTER
                -PRINT
                -PRIVATE
                -PUBLIC
                -READ
                -RETURN
                -REWIND
                -SAVE
                -SELECT
                -STOP
                -TARGET
                -WHILE
                -WRITE
                -
                -BLOCK DATA
                -BLOCKDATA
                -END BLOCK DATA
                -ENDBLOCKDATA
                -DO
                -ENDDO
                -FILE
                -FORALL
                -FUNCTION
                -IF
                -END IF
                -INTERFACE
                -MODULE
                -PROGRAM
                -SELECT
                -SUBROUTINE
                -TYPE
                -WHERE
                -
                -ASSIGNMENT
                -DEFAULT
                -ELEMENTAL
                -ELSE
                -ELSEWHERE
                -ELSEIF
                -ENTRY
                -IN
                -INCLUDE
                -INOUT
                -KIND
                -NULL
                -ONLY
                -OPERATOR
                -OUT
                -PURE
                -RECURSIVE
                -RESULT
                -SEQUENCE
                -STAT
                -THEN
                -USE
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "INTEGER"],
                -	["keyword", "REAL"],
                -	["keyword", "DOUBLE PRECISION"],
                -	["keyword", "DOUBLEPRECISION"],
                -	["keyword", "COMPLEX"],
                -	["keyword", "CHARACTER"],
                -	["keyword", "LOGICAL"],
                -
                -	["keyword", "ALLOCATABLE"],
                -	["keyword", "ALLOCATE"],
                -	["keyword", "BACKSPACE"],
                -	["keyword", "CALL"],
                -	["keyword", "CASE"],
                -	["keyword", "CLOSE"],
                -	["keyword", "COMMON"],
                -	["keyword", "CONTAINS"],
                -	["keyword", "CONTINUE"],
                -	["keyword", "CYCLE"],
                -	["keyword", "DATA"],
                -	["keyword", "DEALLOCATE"],
                -	["keyword", "DIMENSION"],
                -	["keyword", "DO"],
                -	["keyword", "END"],
                -	["keyword", "EQUIVALENCE"],
                -	["keyword", "EXIT"],
                -	["keyword", "EXTERNAL"],
                -	["keyword", "FORMAT"],
                -	["keyword", "GO TO"],
                -	["keyword", "GOTO"],
                -	["keyword", "IMPLICIT"],
                -	["keyword", "IMPLICIT NONE"],
                -	["keyword", "INQUIRE"],
                -	["keyword", "INTENT"],
                -	["keyword", "INTRINSIC"],
                -	["keyword", "MODULE PROCEDURE"],
                -	["keyword", "NAMELIST"],
                -	["keyword", "NULLIFY"],
                -	["keyword", "OPEN"],
                -	["keyword", "OPTIONAL"],
                -	["keyword", "PARAMETER"],
                -	["keyword", "POINTER"],
                -	["keyword", "PRINT"],
                -	["keyword", "PRIVATE"],
                -	["keyword", "PUBLIC"],
                -	["keyword", "READ"],
                -	["keyword", "RETURN"],
                -	["keyword", "REWIND"],
                -	["keyword", "SAVE"],
                -	["keyword", "SELECT"],
                -	["keyword", "STOP"],
                -	["keyword", "TARGET"],
                -	["keyword", "WHILE"],
                -	["keyword", "WRITE"],
                -
                -	["keyword", "BLOCK DATA"],
                -	["keyword", "BLOCKDATA"],
                -	["keyword", "END BLOCK DATA"],
                -	["keyword", "ENDBLOCKDATA"],
                -	["keyword", "DO"],
                -	["keyword", "ENDDO"],
                -	["keyword", "FILE"],
                -	["keyword", "FORALL"],
                -	["keyword", "FUNCTION"],
                -	["keyword", "IF"],
                -	["keyword", "END IF"],
                -	["keyword", "INTERFACE"],
                -	["keyword", "MODULE"],
                -	["keyword", "PROGRAM"],
                -	["keyword", "SELECT"],
                -	["keyword", "SUBROUTINE"],
                -	["keyword", "TYPE"],
                -	["keyword", "WHERE"],
                -
                -	["keyword", "ASSIGNMENT"],
                -	["keyword", "DEFAULT"],
                -	["keyword", "ELEMENTAL"],
                -	["keyword", "ELSE"],
                -	["keyword", "ELSEWHERE"],
                -	["keyword", "ELSEIF"],
                -	["keyword", "ENTRY"],
                -	["keyword", "IN"],
                -	["keyword", "INCLUDE"],
                -	["keyword", "INOUT"],
                -	["keyword", "KIND"],
                -	["keyword", "NULL"],
                -	["keyword", "ONLY"],
                -	["keyword", "OPERATOR"],
                -	["keyword", "OUT"],
                -	["keyword", "PURE"],
                -	["keyword", "RECURSIVE"],
                -	["keyword", "RESULT"],
                -	["keyword", "SEQUENCE"],
                -	["keyword", "STAT"],
                -	["keyword", "THEN"],
                -	["keyword", "USE"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/fortran/number_feature.test b/node_modules/prismjs/tests/languages/fortran/number_feature.test
                deleted file mode 100644
                index c7b4a4c..0000000
                --- a/node_modules/prismjs/tests/languages/fortran/number_feature.test
                +++ /dev/null
                @@ -1,37 +0,0 @@
                -473
                -21_2
                -21_SHORT
                -1976354279568241_8
                -1.6E3
                -0.45E-4
                -10.93E7_QUAD
                -3E4
                -B'01110'
                -B"010"
                -O'047'
                -O"642"
                -Z'F41A'
                -Z"00BC"
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "473"],
                -	["number", "21_2"],
                -	["number", "21_SHORT"],
                -	["number", "1976354279568241_8"],
                -	["number", "1.6E3"],
                -	["number", "0.45E-4"],
                -	["number", "10.93E7_QUAD"],
                -	["number", "3E4"],
                -	["quoted-number", "B'01110'"],
                -    ["quoted-number", "B\"010\""],
                -    ["quoted-number", "O'047'"],
                -    ["quoted-number", "O\"642\""],
                -    ["quoted-number", "Z'F41A'"],
                -    ["quoted-number", "Z\"00BC\""]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for numbers and quoted numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/fortran/operator_feature.test b/node_modules/prismjs/tests/languages/fortran/operator_feature.test
                deleted file mode 100644
                index d2d3003..0000000
                --- a/node_modules/prismjs/tests/languages/fortran/operator_feature.test
                +++ /dev/null
                @@ -1,25 +0,0 @@
                -** // =>
                -== /= ::
                -< <= > >=
                -+ - * / = %
                -.EQ. .NE. .LT. .LE.
                -.GT. .GE. .NOT. .AND.
                -.OR. .EQV. .NEQV.
                -.foobar.
                -
                -----------------------------------------------------
                -
                -[
                -	["operator", "**"], ["operator", "//"], ["operator", "=>"],
                -	["operator", "=="], ["operator", "/="], ["operator", "::"],
                -	["operator", "<"], ["operator", "<="], ["operator", ">"], ["operator", ">="],
                -	["operator", "+"], ["operator", "-"], ["operator", "*"], ["operator", "/"], ["operator", "="], ["operator", "%"],
                -	["operator", ".EQ."], ["operator", ".NE."], ["operator", ".LT."], ["operator", ".LE."],
                -	["operator", ".GT."], ["operator", ".GE."], ["operator", ".NOT."], ["operator", ".AND."],
                -	["operator", ".OR."], ["operator", ".EQV."], ["operator", ".NEQV."],
                -	["operator", ".foobar."]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all operators.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/fortran/string_feature.test b/node_modules/prismjs/tests/languages/fortran/string_feature.test
                deleted file mode 100644
                index 3fa6f74..0000000
                --- a/node_modules/prismjs/tests/languages/fortran/string_feature.test
                +++ /dev/null
                @@ -1,31 +0,0 @@
                -""
                -''
                -"foo ""bar"" baz"
                -'foo ''bar'' baz'
                -ITALICS_'foobar'
                -"foo &
                -	&bar"
                -"foo &
                -	! Comment
                -	&bar"
                -
                -----------------------------------------------------
                -
                -[
                -	["string", ["\"\""]],
                -	["string", ["''"]],
                -	["string", ["\"foo \"\"bar\"\" baz\""]],
                -	["string", ["'foo ''bar'' baz'"]],
                -	["string", ["ITALICS_'foobar'"]],
                -	["string", ["\"foo &\r\n\t&bar\""]],
                -	["string", [
                -		"\"foo &\r\n\t",
                -		["comment", "! Comment"],
                -		"\r\n\t&bar\""
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for strings and line continuation.
                -Also checks for comments inside strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/fsharp/comment_feature.test b/node_modules/prismjs/tests/languages/fsharp/comment_feature.test
                deleted file mode 100644
                index ff9170b..0000000
                --- a/node_modules/prismjs/tests/languages/fsharp/comment_feature.test
                +++ /dev/null
                @@ -1,16 +0,0 @@
                -// foobar
                -(**)
                -(* foo
                -bar *)
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "// foobar"],
                -	["comment", "(**)"],
                -	["comment", "(* foo\r\nbar *)"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for single-line and multi-line comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/fsharp/keyword_feature.test b/node_modules/prismjs/tests/languages/fsharp/keyword_feature.test
                deleted file mode 100644
                index d2ef996..0000000
                --- a/node_modules/prismjs/tests/languages/fsharp/keyword_feature.test
                +++ /dev/null
                @@ -1,71 +0,0 @@
                -abstract and as assert
                -base begin
                -class;
                -default
                -delegate do done downcast
                -downto elif else end
                -exception extern false finally
                -for fun function global
                -if in inherit inline
                -interface;
                -internal lazy let
                -let! match member module
                -mutable namespace
                -new;
                -not
                -null of open or override
                -private public rec return
                -return! select static struct
                -then to true try type
                -upcast use use! val void
                -when while with yield
                -yield! asr land lor lsl
                -lsr lxor mod sig atomic
                -break checked component
                -const constraint constructor
                -continue eager event external
                -fixed functor include method
                -mixin object parallel process
                -protected pure sealed tailcall
                -trait;
                -virtual volatile
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "abstract"], ["keyword", "and"], ["keyword", "as"], ["keyword", "assert"],
                -	["keyword", "base"], ["keyword", "begin"],
                -	["keyword", "class"], ["punctuation", ";"],
                -	["keyword", "default"],
                -	["keyword", "delegate"], ["keyword", "do"], ["keyword", "done"], ["keyword", "downcast"],
                -	["keyword", "downto"], ["keyword", "elif"], ["keyword", "else"], ["keyword", "end"],
                -	["keyword", "exception"], ["keyword", "extern"], ["keyword", "false"], ["keyword", "finally"],
                -	["keyword", "for"], ["keyword", "fun"], ["keyword", "function"], ["keyword", "global"],
                -	["keyword", "if"], ["keyword", "in"], ["keyword", "inherit"], ["keyword", "inline"],
                -	["keyword", "interface"], ["punctuation", ";"],
                -	["keyword", "internal"], ["keyword", "lazy"], ["keyword", "let"],
                -	["keyword", "let!"], ["keyword", "match"], ["keyword", "member"], ["keyword", "module"],
                -	["keyword", "mutable"], ["keyword", "namespace"],
                -	["keyword", "new"], ["punctuation", ";"],
                -	["keyword", "not"],
                -	["keyword", "null"], ["keyword", "of"], ["keyword", "open"], ["keyword", "or"], ["keyword", "override"],
                -	["keyword", "private"], ["keyword", "public"], ["keyword", "rec"], ["keyword", "return"],
                -	["keyword", "return!"], ["keyword", "select"], ["keyword", "static"], ["keyword", "struct"],
                -	["keyword", "then"], ["keyword", "to"], ["keyword", "true"], ["keyword", "try"], ["keyword", "type"],
                -	["keyword", "upcast"], ["keyword", "use"], ["keyword", "use!"], ["keyword", "val"], ["keyword", "void"],
                -	["keyword", "when"], ["keyword", "while"], ["keyword", "with"], ["keyword", "yield"],
                -	["keyword", "yield!"], ["keyword", "asr"], ["keyword", "land"], ["keyword", "lor"], ["keyword", "lsl"],
                -	["keyword", "lsr"], ["keyword", "lxor"], ["keyword", "mod"], ["keyword", "sig"], ["keyword", "atomic"],
                -	["keyword", "break"], ["keyword", "checked"], ["keyword", "component"],
                -	["keyword", "const"], ["keyword", "constraint"], ["keyword", "constructor"],
                -	["keyword", "continue"], ["keyword", "eager"], ["keyword", "event"], ["keyword", "external"],
                -	["keyword", "fixed"], ["keyword", "functor"], ["keyword", "include"], ["keyword", "method"],
                -	["keyword", "mixin"], ["keyword", "object"], ["keyword", "parallel"], ["keyword", "process"],
                -	["keyword", "protected"], ["keyword", "pure"], ["keyword", "sealed"], ["keyword", "tailcall"],
                -	["keyword", "trait"], ["punctuation", ";"],
                -	["keyword", "virtual"], ["keyword", "volatile"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/fsharp/number_feature.test b/node_modules/prismjs/tests/languages/fsharp/number_feature.test
                deleted file mode 100644
                index f2f86ed..0000000
                --- a/node_modules/prismjs/tests/languages/fsharp/number_feature.test
                +++ /dev/null
                @@ -1,65 +0,0 @@
                -0xbabe
                -0xBABEun
                -0xflf
                -0xfLF
                -
                -0b1001
                -0b1001y
                -0b1001uy
                -
                -42
                -1.5
                -2.3E+32
                -2.3e-32
                -4.14F
                -4.14f
                -0.7833M
                -0.7833m
                -
                -86y
                -86uy
                -86s
                -86us
                -86l
                -86u
                -86ul
                -86L
                -86UL
                -9999999999999999999999999999I
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "0xbabe"],
                -	["number", "0xBABEun"],
                -	["number", "0xflf"],
                -	["number", "0xfLF"],
                -
                -	["number", "0b1001"],
                -	["number", "0b1001y"],
                -	["number", "0b1001uy"],
                -
                -	["number", "42"],
                -	["number", "1.5"],
                -	["number", "2.3E+32"],
                -	["number", "2.3e-32"],
                -	["number", "4.14F"],
                -	["number", "4.14f"],
                -	["number", "0.7833M"],
                -	["number", "0.7833m"],
                -
                -	["number", "86y"],
                -	["number", "86uy"],
                -	["number", "86s"],
                -	["number", "86us"],
                -	["number", "86l"],
                -	["number", "86u"],
                -	["number", "86ul"],
                -	["number", "86L"],
                -	["number", "86UL"],
                -	["number", "9999999999999999999999999999I"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for decimal, hexadecimal and binary numbers, with all possible suffixes.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/fsharp/preprocessor_feature.test b/node_modules/prismjs/tests/languages/fsharp/preprocessor_feature.test
                deleted file mode 100644
                index 4ee0639..0000000
                --- a/node_modules/prismjs/tests/languages/fsharp/preprocessor_feature.test
                +++ /dev/null
                @@ -1,22 +0,0 @@
                -#if foo
                -#else
                -#endif
                -
                -#light
                -#line
                -#nowarn
                -
                -----------------------------------------------------
                -
                -[
                -	["preprocessor", ["#", ["directive", "if"], " foo"]],
                -	["preprocessor", ["#", ["directive", "else"]]],
                -	["preprocessor", ["#", ["directive", "endif"]]],
                -	["preprocessor", ["#", ["directive", "light"]]],
                -	["preprocessor", ["#", ["directive", "line"]]],
                -	["preprocessor", ["#", ["directive", "nowarn"]]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for preprocessor directives.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/fsharp/string_feature.test b/node_modules/prismjs/tests/languages/fsharp/string_feature.test
                deleted file mode 100644
                index 89412ac..0000000
                --- a/node_modules/prismjs/tests/languages/fsharp/string_feature.test
                +++ /dev/null
                @@ -1,45 +0,0 @@
                -""
                -"fo\"o"
                -"foo\
                -bar"
                -"foo"B
                -
                -@""
                -@"foo"
                -@"fo""o"
                -@"foo"B
                -
                -""""""
                -"""fo""o"
                -bar"""
                -"""foo"""B
                -
                -'a'
                -'\''
                -'\\'
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "\"\""],
                -	["string", "\"fo\\\"o\""],
                -	["string", "\"foo\\\r\nbar\""],
                -	["string", "\"foo\"B"],
                -
                -	["string", "@\"\""],
                -	["string", "@\"foo\""],
                -	["string", "@\"fo\"\"o\""],
                -	["string", "@\"foo\"B"],
                -
                -	["string", "\"\"\"\"\"\""],
                -	["string", "\"\"\"fo\"\"o\"\r\nbar\"\"\""],
                -	["string", "\"\"\"foo\"\"\"B"],
                -
                -	["string", "'a'"],
                -	["string", "'\\''"],
                -	["string", "'\\\\'"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for normal strings, verbatim strings, triple-quoted strings and character literals.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/gherkin/atrule_feature.test b/node_modules/prismjs/tests/languages/gherkin/atrule_feature.test
                deleted file mode 100644
                index 23bc540..0000000
                --- a/node_modules/prismjs/tests/languages/gherkin/atrule_feature.test
                +++ /dev/null
                @@ -1,1211 +0,0 @@
                -Scenario: foo
                -	'ach foobar
                -	'a foobar
                -	'ej foobar
                -	7 foobar
                -	a foobar
                -	A také foobar
                -	A taktiež foobar
                -	A tiež foobar
                -	A zároveň foobar
                -	Aber foobar
                -	Ac foobar
                -	Adott foobar
                -	Akkor foobar
                -	Ak foobar
                -	Aleshores foobar
                -	Ale foobar
                -	Ali foobar
                -	Allora foobar
                -	Alors foobar
                -	Als foobar
                -	Ama foobar
                -	Amennyiben foobar
                -	Amikor foobar
                -	Ampak foobar
                -	an foobar
                -	AN foobar
                -	Ananging foobar
                -	And y'all foobar
                -	And foobar
                -	Angenommen foobar
                -	Anrhegedig a foobar
                -	An foobar
                -	Apabila foobar
                -	Atès foobar
                -	Atesa foobar
                -	Atunci foobar
                -	Avast! foobar
                -	Aye foobar
                -	A foobar
                -	awer foobar
                -	Bagi foobar
                -	Banjur foobar
                -	Bet foobar
                -	Biết foobar
                -	Blimey! foobar
                -	Buh foobar
                -	But at the end of the day I reckon foobar
                -	But y'all foobar
                -	But foobar
                -	BUT foobar
                -	Cal foobar
                -	Când foobar
                -	Cando foobar
                -	Cand foobar
                -	Ce foobar
                -	Cuando foobar
                -	Če foobar
                -	Ða ðe foobar
                -	Ða foobar
                -	Dadas foobar
                -	Dada foobar
                -	Dados foobar
                -	Dado foobar
                -	DaH ghu' bejlu' foobar
                -	dann foobar
                -	Dann foobar
                -	Dano foobar
                -	Dan foobar
                -	Dar foobar
                -	Dat fiind foobar
                -	Data foobar
                -	Date fiind foobar
                -	Date foobar
                -	Dati fiind foobar
                -	Dati foobar
                -	Daţi fiind foobar
                -	Dați fiind foobar
                -	Dato foobar
                -	DEN foobar
                -	Den youse gotta foobar
                -	Dengan foobar
                -	De foobar
                -	Diberi foobar
                -	Diyelim ki foobar
                -	Donada foobar
                -	Donat foobar
                -	Donitaĵo foobar
                -	Do foobar
                -	Dun foobar
                -	Duota foobar
                -	Ðurh foobar
                -	Eeldades foobar
                -	Ef foobar
                -	Eğer ki foobar
                -	Entao foobar
                -	Então foobar
                -	Entón foobar
                -	Entonces foobar
                -	En foobar
                -	Epi foobar
                -	E foobar
                -	És foobar
                -	Etant donnée foobar
                -	Etant donné foobar
                -	Et foobar
                -	Étant données foobar
                -	Étant donnée foobar
                -	Étant donné foobar
                -	Etant données foobar
                -	Etant donnés foobar
                -	Étant donnés foobar
                -	Fakat foobar
                -	Gangway! foobar
                -	Gdy foobar
                -	Gegeben seien foobar
                -	Gegeben sei foobar
                -	Gegeven foobar
                -	Gegewe foobar
                -	ghu' noblu' foobar
                -	Gitt foobar
                -	Given y'all foobar
                -	Given foobar
                -	Givet foobar
                -	Givun foobar
                -	Ha foobar
                -	Cho foobar
                -	I CAN HAZ foobar
                -	In foobar
                -	Ir foobar
                -	It's just unbelievable foobar
                -	I foobar
                -	Ja foobar
                -	Jeśli foobar
                -	Jeżeli foobar
                -	Kadar foobar
                -	Kada foobar
                -	Kad foobar
                -	Kai foobar
                -	Kaj foobar
                -	Když foobar
                -	Keď foobar
                -	Kemudian foobar
                -	Ketika foobar
                -	Khi foobar
                -	Kiedy foobar
                -	Ko foobar
                -	Kuid foobar
                -	Kui foobar
                -	Kun foobar
                -	Lan foobar
                -	latlh foobar
                -	Le sa a foobar
                -	Let go and haul foobar
                -	Le foobar
                -	Lè sa a foobar
                -	Lè foobar
                -	Logo foobar
                -	Lorsqu'< foobar
                -	Lorsque foobar
                -	mä foobar
                -	Maar foobar
                -	Mais foobar
                -	Mając foobar
                -	Majd foobar
                -	Maka foobar
                -	Manawa foobar
                -	Mas foobar
                -	Ma foobar
                -	Menawa foobar
                -	Men foobar
                -	Mutta foobar
                -	Nalikaning foobar
                -	Nalika foobar
                -	Nanging foobar
                -	Når foobar
                -	När foobar
                -	Nato foobar
                -	Nhưng foobar
                -	Niin foobar
                -	Njuk foobar
                -	O zaman foobar
                -	Og foobar
                -	Och foobar
                -	Oletetaan foobar
                -	Onda foobar
                -	Ond foobar
                -	Oraz foobar
                -	Pak foobar
                -	Pero foobar
                -	Però foobar
                -	Podano foobar
                -	Pokiaľ foobar
                -	Pokud foobar
                -	Potem foobar
                -	Potom foobar
                -	Privzeto foobar
                -	Pryd foobar
                -	qaSDI' foobar
                -	Quando foobar
                -	Quand foobar
                -	Quan foobar
                -	Så foobar
                -	Sed foobar
                -	Se foobar
                -	Siis foobar
                -	Sipoze ke foobar
                -	Sipoze Ke foobar
                -	Sipoze foobar
                -	Si foobar
                -	Şi foobar
                -	Și foobar
                -	Soit foobar
                -	Stel foobar
                -	Tada foobar
                -	Tad foobar
                -	Takrat foobar
                -	Tak foobar
                -	Tapi foobar
                -	Ter foobar
                -	Tetapi foobar
                -	Tha the foobar
                -	Tha foobar
                -	Then y'all foobar
                -	Then foobar
                -	Thì foobar
                -	Thurh foobar
                -	Toda foobar
                -	Too right foobar
                -	ugeholl foobar
                -	Und foobar
                -	Un foobar
                -	Và foobar
                -	vaj foobar
                -	Vendar foobar
                -	Ve foobar
                -	wann foobar
                -	Wanneer foobar
                -	WEN foobar
                -	Wenn foobar
                -	When y'all foobar
                -	When foobar
                -	Wtedy foobar
                -	Wun foobar
                -	Y'know foobar
                -	Yeah nah foobar
                -	Yna foobar
                -	Youse know like when foobar
                -	Youse know when youse got foobar
                -	Y foobar
                -	Za predpokladu foobar
                -	Za předpokladu foobar
                -	Zadani foobar
                -	Zadano foobar
                -	Zadan foobar
                -	Zadate foobar
                -	Zadato foobar
                -	Zakładając foobar
                -	Zaradi foobar
                -	Zatati foobar
                -	Þa foobar
                -	Þá foobar
                -	Þa þe foobar
                -	Þegar foobar
                -	Þurh foobar
                -	Αλλά foobar
                -	Δεδομένου foobar
                -	Και foobar
                -	Όταν foobar
                -	Τότε foobar
                -	А також foobar
                -	Агар foobar
                -	Але foobar
                -	Али foobar
                -	Аммо foobar
                -	А foobar
                -	Әгәр foobar
                -	Әйтик foobar
                -	Әмма foobar
                -	Бирок foobar
                -	Ва foobar
                -	Вә foobar
                -	Дадено foobar
                -	Дано foobar
                -	Допустим foobar
                -	Если foobar
                -	Задате foobar
                -	Задати foobar
                -	Задато foobar
                -	И foobar
                -	І foobar
                -	К тому же foobar
                -	Када foobar
                -	Кад foobar
                -	Когато foobar
                -	Когда foobar
                -	Коли foobar
                -	Ләкин foobar
                -	Лекин foobar
                -	Нәтиҗәдә foobar
                -	Нехай foobar
                -	Но foobar
                -	Онда foobar
                -	Припустимо, що foobar
                -	Припустимо foobar
                -	Пусть foobar
                -	Также foobar
                -	Та foobar
                -	Тогда foobar
                -	Тоді foobar
                -	То foobar
                -	Унда foobar
                -	Һәм foobar
                -	Якщо foobar
                -	אבל foobar
                -	אזי foobar
                -	אז foobar
                -	בהינתן foobar
                -	וגם foobar
                -	כאשר foobar
                -	آنگاه foobar
                -	اذاً foobar
                -	اگر foobar
                -	اما foobar
                -	اور foobar
                -	با فرض foobar
                -	بالفرض foobar
                -	بفرض foobar
                -	پھر foobar
                -	تب foobar
                -	ثم foobar
                -	جب foobar
                -	عندما foobar
                -	فرض کیا foobar
                -	لكن foobar
                -	لیکن foobar
                -	متى foobar
                -	هنگامی foobar
                -	و foobar
                -	अगर foobar
                -	और foobar
                -	कदा foobar
                -	किन्तु foobar
                -	चूंकि foobar
                -	जब foobar
                -	तथा foobar
                -	तदा foobar
                -	तब foobar
                -	परन्तु foobar
                -	पर foobar
                -	यदि foobar
                -	ਅਤੇ foobar
                -	ਜਦੋਂ foobar
                -	ਜਿਵੇਂ ਕਿ foobar
                -	ਜੇਕਰ foobar
                -	ਤਦ foobar
                -	ਪਰ foobar
                -	అప్పుడు foobar
                -	ఈ పరిస్థితిలో foobar
                -	కాని foobar
                -	చెప్పబడినది foobar
                -	మరియు foobar
                -	ಆದರೆ foobar
                -	ನಂತರ foobar
                -	ನೀಡಿದ foobar
                -	ಮತ್ತು foobar
                -	ಸ್ಥಿತಿಯನ್ನು foobar
                -	กำหนดให้ foobar
                -	ดังนั้น foobar
                -	แต่ foobar
                -	เมื่อ foobar
                -	และ foobar
                -	그러면< foobar
                -	그리고< foobar
                -	단< foobar
                -	만약< foobar
                -	만일< foobar
                -	먼저< foobar
                -	조건< foobar
                -	하지만< foobar
                -	かつ< foobar
                -	しかし< foobar
                -	ただし< foobar
                -	ならば< foobar
                -	もし< foobar
                -	並且< foobar
                -	但し< foobar
                -	但是< foobar
                -	假如< foobar
                -	假定< foobar
                -	假設< foobar
                -	假设< foobar
                -	前提< foobar
                -	同时< foobar
                -	同時< foobar
                -	并且< foobar
                -	当< foobar
                -	當< foobar
                -	而且< foobar
                -	那么< foobar
                -	那麼< foobar
                -
                -----------------------------------------------------
                -
                -[
                -	["scenario", [["keyword", "Scenario:"], ["important", " foo"]]],
                -	["atrule", "'ach"],
                -	" foobar\r\n\t",
                -	["atrule", "'a"],
                -	" foobar\r\n\t",
                -	["atrule", "'ej"],
                -	" foobar\r\n\t",
                -	["atrule", "7"],
                -	" foobar\r\n\t",
                -	["atrule", "a"],
                -	" foobar\r\n\t",
                -	["atrule", "A také"],
                -	" foobar\r\n\t",
                -	["atrule", "A taktiež"],
                -	" foobar\r\n\t",
                -	["atrule", "A tiež"],
                -	" foobar\r\n\t",
                -	["atrule", "A zároveň"],
                -	" foobar\r\n\t",
                -	["atrule", "Aber"],
                -	" foobar\r\n\t",
                -	["atrule", "Ac"],
                -	" foobar\r\n\t",
                -	["atrule", "Adott"],
                -	" foobar\r\n\t",
                -	["atrule", "Akkor"],
                -	" foobar\r\n\t",
                -	["atrule", "Ak"],
                -	" foobar\r\n\t",
                -	["atrule", "Aleshores"],
                -	" foobar\r\n\t",
                -	["atrule", "Ale"],
                -	" foobar\r\n\t",
                -	["atrule", "Ali"],
                -	" foobar\r\n\t",
                -	["atrule", "Allora"],
                -	" foobar\r\n\t",
                -	["atrule", "Alors"],
                -	" foobar\r\n\t",
                -	["atrule", "Als"],
                -	" foobar\r\n\t",
                -	["atrule", "Ama"],
                -	" foobar\r\n\t",
                -	["atrule", "Amennyiben"],
                -	" foobar\r\n\t",
                -	["atrule", "Amikor"],
                -	" foobar\r\n\t",
                -	["atrule", "Ampak"],
                -	" foobar\r\n\t",
                -	["atrule", "an"],
                -	" foobar\r\n\t",
                -	["atrule", "AN"],
                -	" foobar\r\n\t",
                -	["atrule", "Ananging"],
                -	" foobar\r\n\t",
                -	["atrule", "And y'all"],
                -	" foobar\r\n\t",
                -	["atrule", "And"],
                -	" foobar\r\n\t",
                -	["atrule", "Angenommen"],
                -	" foobar\r\n\t",
                -	["atrule", "Anrhegedig a"],
                -	" foobar\r\n\t",
                -	["atrule", "An"],
                -	" foobar\r\n\t",
                -	["atrule", "Apabila"],
                -	" foobar\r\n\t",
                -	["atrule", "Atès"],
                -	" foobar\r\n\t",
                -	["atrule", "Atesa"],
                -	" foobar\r\n\t",
                -	["atrule", "Atunci"],
                -	" foobar\r\n\t",
                -	["atrule", "Avast!"],
                -	" foobar\r\n\t",
                -	["atrule", "Aye"],
                -	" foobar\r\n\t",
                -	["atrule", "A"],
                -	" foobar\r\n\t",
                -	["atrule", "awer"],
                -	" foobar\r\n\t",
                -	["atrule", "Bagi"],
                -	" foobar\r\n\t",
                -	["atrule", "Banjur"],
                -	" foobar\r\n\t",
                -	["atrule", "Bet"],
                -	" foobar\r\n\t",
                -	["atrule", "Biết"],
                -	" foobar\r\n\t",
                -	["atrule", "Blimey!"],
                -	" foobar\r\n\t",
                -	["atrule", "Buh"],
                -	" foobar\r\n\t",
                -	["atrule", "But at the end of the day I reckon"],
                -	" foobar\r\n\t",
                -	["atrule", "But y'all"],
                -	" foobar\r\n\t",
                -	["atrule", "But"],
                -	" foobar\r\n\t",
                -	["atrule", "BUT"],
                -	" foobar\r\n\t",
                -	["atrule", "Cal"],
                -	" foobar\r\n\t",
                -	["atrule", "Când"],
                -	" foobar\r\n\t",
                -	["atrule", "Cando"],
                -	" foobar\r\n\t",
                -	["atrule", "Cand"],
                -	" foobar\r\n\t",
                -	["atrule", "Ce"],
                -	" foobar\r\n\t",
                -	["atrule", "Cuando"],
                -	" foobar\r\n\t",
                -	["atrule", "Če"],
                -	" foobar\r\n\t",
                -	["atrule", "Ða ðe"],
                -	" foobar\r\n\t",
                -	["atrule", "Ða"],
                -	" foobar\r\n\t",
                -	["atrule", "Dadas"],
                -	" foobar\r\n\t",
                -	["atrule", "Dada"],
                -	" foobar\r\n\t",
                -	["atrule", "Dados"],
                -	" foobar\r\n\t",
                -	["atrule", "Dado"],
                -	" foobar\r\n\t",
                -	["atrule", "DaH ghu' bejlu'"],
                -	" foobar\r\n\t",
                -	["atrule", "dann"],
                -	" foobar\r\n\t",
                -	["atrule", "Dann"],
                -	" foobar\r\n\t",
                -	["atrule", "Dano"],
                -	" foobar\r\n\t",
                -	["atrule", "Dan"],
                -	" foobar\r\n\t",
                -	["atrule", "Dar"],
                -	" foobar\r\n\t",
                -	["atrule", "Dat fiind"],
                -	" foobar\r\n\t",
                -	["atrule", "Data"],
                -	" foobar\r\n\t",
                -	["atrule", "Date fiind"],
                -	" foobar\r\n\t",
                -	["atrule", "Date"],
                -	" foobar\r\n\t",
                -	["atrule", "Dati fiind"],
                -	" foobar\r\n\t",
                -	["atrule", "Dati"],
                -	" foobar\r\n\t",
                -	["atrule", "Daţi fiind"],
                -	" foobar\r\n\t",
                -	["atrule", "Dați fiind"],
                -	" foobar\r\n\t",
                -	["atrule", "Dato"],
                -	" foobar\r\n\t",
                -	["atrule", "DEN"],
                -	" foobar\r\n\t",
                -	["atrule", "Den youse gotta"],
                -	" foobar\r\n\t",
                -	["atrule", "Dengan"],
                -	" foobar\r\n\t",
                -	["atrule", "De"],
                -	" foobar\r\n\t",
                -	["atrule", "Diberi"],
                -	" foobar\r\n\t",
                -	["atrule", "Diyelim ki"],
                -	" foobar\r\n\t",
                -	["atrule", "Donada"],
                -	" foobar\r\n\t",
                -	["atrule", "Donat"],
                -	" foobar\r\n\t",
                -	["atrule", "Donitaĵo"],
                -	" foobar\r\n\t",
                -	["atrule", "Do"],
                -	" foobar\r\n\t",
                -	["atrule", "Dun"],
                -	" foobar\r\n\t",
                -	["atrule", "Duota"],
                -	" foobar\r\n\t",
                -	["atrule", "Ðurh"],
                -	" foobar\r\n\t",
                -	["atrule", "Eeldades"],
                -	" foobar\r\n\t",
                -	["atrule", "Ef"],
                -	" foobar\r\n\t",
                -	["atrule", "Eğer ki"],
                -	" foobar\r\n\t",
                -	["atrule", "Entao"],
                -	" foobar\r\n\t",
                -	["atrule", "Então"],
                -	" foobar\r\n\t",
                -	["atrule", "Entón"],
                -	" foobar\r\n\t",
                -	["atrule", "Entonces"],
                -	" foobar\r\n\t",
                -	["atrule", "En"],
                -	" foobar\r\n\t",
                -	["atrule", "Epi"],
                -	" foobar\r\n\t",
                -	["atrule", "E"],
                -	" foobar\r\n\t",
                -	["atrule", "És"],
                -	" foobar\r\n\t",
                -	["atrule", "Etant donnée"],
                -	" foobar\r\n\t",
                -	["atrule", "Etant donné"],
                -	" foobar\r\n\t",
                -	["atrule", "Et"],
                -	" foobar\r\n\t",
                -	["atrule", "Étant données"],
                -	" foobar\r\n\t",
                -	["atrule", "Étant donnée"],
                -	" foobar\r\n\t",
                -	["atrule", "Étant donné"],
                -	" foobar\r\n\t",
                -	["atrule", "Etant données"],
                -	" foobar\r\n\t",
                -	["atrule", "Etant donnés"],
                -	" foobar\r\n\t",
                -	["atrule", "Étant donnés"],
                -	" foobar\r\n\t",
                -	["atrule", "Fakat"],
                -	" foobar\r\n\t",
                -	["atrule", "Gangway!"],
                -	" foobar\r\n\t",
                -	["atrule", "Gdy"],
                -	" foobar\r\n\t",
                -	["atrule", "Gegeben seien"],
                -	" foobar\r\n\t",
                -	["atrule", "Gegeben sei"],
                -	" foobar\r\n\t",
                -	["atrule", "Gegeven"],
                -	" foobar\r\n\t",
                -	["atrule", "Gegewe"],
                -	" foobar\r\n\t",
                -	["atrule", "ghu' noblu'"],
                -	" foobar\r\n\t",
                -	["atrule", "Gitt"],
                -	" foobar\r\n\t",
                -	["atrule", "Given y'all"],
                -	" foobar\r\n\t",
                -	["atrule", "Given"],
                -	" foobar\r\n\t",
                -	["atrule", "Givet"],
                -	" foobar\r\n\t",
                -	["atrule", "Givun"],
                -	" foobar\r\n\t",
                -	["atrule", "Ha"],
                -	" foobar\r\n\t",
                -	["atrule", "Cho"],
                -	" foobar\r\n\t",
                -	["atrule", "I CAN HAZ"],
                -	" foobar\r\n\t",
                -	["atrule", "In"],
                -	" foobar\r\n\t",
                -	["atrule", "Ir"],
                -	" foobar\r\n\t",
                -	["atrule", "It's just unbelievable"],
                -	" foobar\r\n\t",
                -	["atrule", "I"],
                -	" foobar\r\n\t",
                -	["atrule", "Ja"],
                -	" foobar\r\n\t",
                -	["atrule", "Jeśli"],
                -	" foobar\r\n\t",
                -	["atrule", "Jeżeli"],
                -	" foobar\r\n\t",
                -	["atrule", "Kadar"],
                -	" foobar\r\n\t",
                -	["atrule", "Kada"],
                -	" foobar\r\n\t",
                -	["atrule", "Kad"],
                -	" foobar\r\n\t",
                -	["atrule", "Kai"],
                -	" foobar\r\n\t",
                -	["atrule", "Kaj"],
                -	" foobar\r\n\t",
                -	["atrule", "Když"],
                -	" foobar\r\n\t",
                -	["atrule", "Keď"],
                -	" foobar\r\n\t",
                -	["atrule", "Kemudian"],
                -	" foobar\r\n\t",
                -	["atrule", "Ketika"],
                -	" foobar\r\n\t",
                -	["atrule", "Khi"],
                -	" foobar\r\n\t",
                -	["atrule", "Kiedy"],
                -	" foobar\r\n\t",
                -	["atrule", "Ko"],
                -	" foobar\r\n\t",
                -	["atrule", "Kuid"],
                -	" foobar\r\n\t",
                -	["atrule", "Kui"],
                -	" foobar\r\n\t",
                -	["atrule", "Kun"],
                -	" foobar\r\n\t",
                -	["atrule", "Lan"],
                -	" foobar\r\n\t",
                -	["atrule", "latlh"],
                -	" foobar\r\n\t",
                -	["atrule", "Le sa a"],
                -	" foobar\r\n\t",
                -	["atrule", "Let go and haul"],
                -	" foobar\r\n\t",
                -	["atrule", "Le"],
                -	" foobar\r\n\t",
                -	["atrule", "Lè sa a"],
                -	" foobar\r\n\t",
                -	["atrule", "Lè"],
                -	" foobar\r\n\t",
                -	["atrule", "Logo"],
                -	" foobar\r\n\t",
                -	["atrule", "Lorsqu'<"],
                -	" foobar\r\n\t",
                -	["atrule", "Lorsque"],
                -	" foobar\r\n\t",
                -	["atrule", "mä"],
                -	" foobar\r\n\t",
                -	["atrule", "Maar"],
                -	" foobar\r\n\t",
                -	["atrule", "Mais"],
                -	" foobar\r\n\t",
                -	["atrule", "Mając"],
                -	" foobar\r\n\t",
                -	["atrule", "Majd"],
                -	" foobar\r\n\t",
                -	["atrule", "Maka"],
                -	" foobar\r\n\t",
                -	["atrule", "Manawa"],
                -	" foobar\r\n\t",
                -	["atrule", "Mas"],
                -	" foobar\r\n\t",
                -	["atrule", "Ma"],
                -	" foobar\r\n\t",
                -	["atrule", "Menawa"],
                -	" foobar\r\n\t",
                -	["atrule", "Men"],
                -	" foobar\r\n\t",
                -	["atrule", "Mutta"],
                -	" foobar\r\n\t",
                -	["atrule", "Nalikaning"],
                -	" foobar\r\n\t",
                -	["atrule", "Nalika"],
                -	" foobar\r\n\t",
                -	["atrule", "Nanging"],
                -	" foobar\r\n\t",
                -	["atrule", "Når"],
                -	" foobar\r\n\t",
                -	["atrule", "När"],
                -	" foobar\r\n\t",
                -	["atrule", "Nato"],
                -	" foobar\r\n\t",
                -	["atrule", "Nhưng"],
                -	" foobar\r\n\t",
                -	["atrule", "Niin"],
                -	" foobar\r\n\t",
                -	["atrule", "Njuk"],
                -	" foobar\r\n\t",
                -	["atrule", "O zaman"],
                -	" foobar\r\n\t",
                -	["atrule", "Og"],
                -	" foobar\r\n\t",
                -	["atrule", "Och"],
                -	" foobar\r\n\t",
                -	["atrule", "Oletetaan"],
                -	" foobar\r\n\t",
                -	["atrule", "Onda"],
                -	" foobar\r\n\t",
                -	["atrule", "Ond"],
                -	" foobar\r\n\t",
                -	["atrule", "Oraz"],
                -	" foobar\r\n\t",
                -	["atrule", "Pak"],
                -	" foobar\r\n\t",
                -	["atrule", "Pero"],
                -	" foobar\r\n\t",
                -	["atrule", "Però"],
                -	" foobar\r\n\t",
                -	["atrule", "Podano"],
                -	" foobar\r\n\t",
                -	["atrule", "Pokiaľ"],
                -	" foobar\r\n\t",
                -	["atrule", "Pokud"],
                -	" foobar\r\n\t",
                -	["atrule", "Potem"],
                -	" foobar\r\n\t",
                -	["atrule", "Potom"],
                -	" foobar\r\n\t",
                -	["atrule", "Privzeto"],
                -	" foobar\r\n\t",
                -	["atrule", "Pryd"],
                -	" foobar\r\n\t",
                -	["atrule", "qaSDI'"],
                -	" foobar\r\n\t",
                -	["atrule", "Quando"],
                -	" foobar\r\n\t",
                -	["atrule", "Quand"],
                -	" foobar\r\n\t",
                -	["atrule", "Quan"],
                -	" foobar\r\n\t",
                -	["atrule", "Så"],
                -	" foobar\r\n\t",
                -	["atrule", "Sed"],
                -	" foobar\r\n\t",
                -	["atrule", "Se"],
                -	" foobar\r\n\t",
                -	["atrule", "Siis"],
                -	" foobar\r\n\t",
                -	["atrule", "Sipoze ke"],
                -	" foobar\r\n\t",
                -	["atrule", "Sipoze Ke"],
                -	" foobar\r\n\t",
                -	["atrule", "Sipoze"],
                -	" foobar\r\n\t",
                -	["atrule", "Si"],
                -	" foobar\r\n\t",
                -	["atrule", "Şi"],
                -	" foobar\r\n\t",
                -	["atrule", "Și"],
                -	" foobar\r\n\t",
                -	["atrule", "Soit"],
                -	" foobar\r\n\t",
                -	["atrule", "Stel"],
                -	" foobar\r\n\t",
                -	["atrule", "Tada"],
                -	" foobar\r\n\t",
                -	["atrule", "Tad"],
                -	" foobar\r\n\t",
                -	["atrule", "Takrat"],
                -	" foobar\r\n\t",
                -	["atrule", "Tak"],
                -	" foobar\r\n\t",
                -	["atrule", "Tapi"],
                -	" foobar\r\n\t",
                -	["atrule", "Ter"],
                -	" foobar\r\n\t",
                -	["atrule", "Tetapi"],
                -	" foobar\r\n\t",
                -	["atrule", "Tha the"],
                -	" foobar\r\n\t",
                -	["atrule", "Tha"],
                -	" foobar\r\n\t",
                -	["atrule", "Then y'all"],
                -	" foobar\r\n\t",
                -	["atrule", "Then"],
                -	" foobar\r\n\t",
                -	["atrule", "Thì"],
                -	" foobar\r\n\t",
                -	["atrule", "Thurh"],
                -	" foobar\r\n\t",
                -	["atrule", "Toda"],
                -	" foobar\r\n\t",
                -	["atrule", "Too right"],
                -	" foobar\r\n\t",
                -	["atrule", "ugeholl"],
                -	" foobar\r\n\t",
                -	["atrule", "Und"],
                -	" foobar\r\n\t",
                -	["atrule", "Un"],
                -	" foobar\r\n\t",
                -	["atrule", "Và"],
                -	" foobar\r\n\t",
                -	["atrule", "vaj"],
                -	" foobar\r\n\t",
                -	["atrule", "Vendar"],
                -	" foobar\r\n\t",
                -	["atrule", "Ve"],
                -	" foobar\r\n\t",
                -	["atrule", "wann"],
                -	" foobar\r\n\t",
                -	["atrule", "Wanneer"],
                -	" foobar\r\n\t",
                -	["atrule", "WEN"],
                -	" foobar\r\n\t",
                -	["atrule", "Wenn"],
                -	" foobar\r\n\t",
                -	["atrule", "When y'all"],
                -	" foobar\r\n\t",
                -	["atrule", "When"],
                -	" foobar\r\n\t",
                -	["atrule", "Wtedy"],
                -	" foobar\r\n\t",
                -	["atrule", "Wun"],
                -	" foobar\r\n\t",
                -	["atrule", "Y'know"],
                -	" foobar\r\n\t",
                -	["atrule", "Yeah nah"],
                -	" foobar\r\n\t",
                -	["atrule", "Yna"],
                -	" foobar\r\n\t",
                -	["atrule", "Youse know like when"],
                -	" foobar\r\n\t",
                -	["atrule", "Youse know when youse got"],
                -	" foobar\r\n\t",
                -	["atrule", "Y"],
                -	" foobar\r\n\t",
                -	["atrule", "Za predpokladu"],
                -	" foobar\r\n\t",
                -	["atrule", "Za předpokladu"],
                -	" foobar\r\n\t",
                -	["atrule", "Zadani"],
                -	" foobar\r\n\t",
                -	["atrule", "Zadano"],
                -	" foobar\r\n\t",
                -	["atrule", "Zadan"],
                -	" foobar\r\n\t",
                -	["atrule", "Zadate"],
                -	" foobar\r\n\t",
                -	["atrule", "Zadato"],
                -	" foobar\r\n\t",
                -	["atrule", "Zakładając"],
                -	" foobar\r\n\t",
                -	["atrule", "Zaradi"],
                -	" foobar\r\n\t",
                -	["atrule", "Zatati"],
                -	" foobar\r\n\t",
                -	["atrule", "Þa"],
                -	" foobar\r\n\t",
                -	["atrule", "Þá"],
                -	" foobar\r\n\t",
                -	["atrule", "Þa þe"],
                -	" foobar\r\n\t",
                -	["atrule", "Þegar"],
                -	" foobar\r\n\t",
                -	["atrule", "Þurh"],
                -	" foobar\r\n\t",
                -	["atrule", "Αλλά"],
                -	" foobar\r\n\t",
                -	["atrule", "Δεδομένου"],
                -	" foobar\r\n\t",
                -	["atrule", "Και"],
                -	" foobar\r\n\t",
                -	["atrule", "Όταν"],
                -	" foobar\r\n\t",
                -	["atrule", "Τότε"],
                -	" foobar\r\n\t",
                -	["atrule", "А також"],
                -	" foobar\r\n\t",
                -	["atrule", "Агар"],
                -	" foobar\r\n\t",
                -	["atrule", "Але"],
                -	" foobar\r\n\t",
                -	["atrule", "Али"],
                -	" foobar\r\n\t",
                -	["atrule", "Аммо"],
                -	" foobar\r\n\t",
                -	["atrule", "А"],
                -	" foobar\r\n\t",
                -	["atrule", "Әгәр"],
                -	" foobar\r\n\t",
                -	["atrule", "Әйтик"],
                -	" foobar\r\n\t",
                -	["atrule", "Әмма"],
                -	" foobar\r\n\t",
                -	["atrule", "Бирок"],
                -	" foobar\r\n\t",
                -	["atrule", "Ва"],
                -	" foobar\r\n\t",
                -	["atrule", "Вә"],
                -	" foobar\r\n\t",
                -	["atrule", "Дадено"],
                -	" foobar\r\n\t",
                -	["atrule", "Дано"],
                -	" foobar\r\n\t",
                -	["atrule", "Допустим"],
                -	" foobar\r\n\t",
                -	["atrule", "Если"],
                -	" foobar\r\n\t",
                -	["atrule", "Задате"],
                -	" foobar\r\n\t",
                -	["atrule", "Задати"],
                -	" foobar\r\n\t",
                -	["atrule", "Задато"],
                -	" foobar\r\n\t",
                -	["atrule", "И"],
                -	" foobar\r\n\t",
                -	["atrule", "І"],
                -	" foobar\r\n\t",
                -	["atrule", "К тому же"],
                -	" foobar\r\n\t",
                -	["atrule", "Када"],
                -	" foobar\r\n\t",
                -	["atrule", "Кад"],
                -	" foobar\r\n\t",
                -	["atrule", "Когато"],
                -	" foobar\r\n\t",
                -	["atrule", "Когда"],
                -	" foobar\r\n\t",
                -	["atrule", "Коли"],
                -	" foobar\r\n\t",
                -	["atrule", "Ләкин"],
                -	" foobar\r\n\t",
                -	["atrule", "Лекин"],
                -	" foobar\r\n\t",
                -	["atrule", "Нәтиҗәдә"],
                -	" foobar\r\n\t",
                -	["atrule", "Нехай"],
                -	" foobar\r\n\t",
                -	["atrule", "Но"],
                -	" foobar\r\n\t",
                -	["atrule", "Онда"],
                -	" foobar\r\n\t",
                -	["atrule", "Припустимо, що"],
                -	" foobar\r\n\t",
                -	["atrule", "Припустимо"],
                -	" foobar\r\n\t",
                -	["atrule", "Пусть"],
                -	" foobar\r\n\t",
                -	["atrule", "Также"],
                -	" foobar\r\n\t",
                -	["atrule", "Та"],
                -	" foobar\r\n\t",
                -	["atrule", "Тогда"],
                -	" foobar\r\n\t",
                -	["atrule", "Тоді"],
                -	" foobar\r\n\t",
                -	["atrule", "То"],
                -	" foobar\r\n\t",
                -	["atrule", "Унда"],
                -	" foobar\r\n\t",
                -	["atrule", "Һәм"],
                -	" foobar\r\n\t",
                -	["atrule", "Якщо"],
                -	" foobar\r\n\t",
                -	["atrule", "אבל"],
                -	" foobar\r\n\t",
                -	["atrule", "אזי"],
                -	" foobar\r\n\t",
                -	["atrule", "אז"],
                -	" foobar\r\n\t",
                -	["atrule", "בהינתן"],
                -	" foobar\r\n\t",
                -	["atrule", "וגם"],
                -	" foobar\r\n\t",
                -	["atrule", "כאשר"],
                -	" foobar\r\n\t",
                -	["atrule", "آنگاه"],
                -	" foobar\r\n\t",
                -	["atrule", "اذاً"],
                -	" foobar\r\n\t",
                -	["atrule", "اگر"],
                -	" foobar\r\n\t",
                -	["atrule", "اما"],
                -	" foobar\r\n\t",
                -	["atrule", "اور"],
                -	" foobar\r\n\t",
                -	["atrule", "با فرض"],
                -	" foobar\r\n\t",
                -	["atrule", "بالفرض"],
                -	" foobar\r\n\t",
                -	["atrule", "بفرض"],
                -	" foobar\r\n\t",
                -	["atrule", "پھر"],
                -	" foobar\r\n\t",
                -	["atrule", "تب"],
                -	" foobar\r\n\t",
                -	["atrule", "ثم"],
                -	" foobar\r\n\t",
                -	["atrule", "جب"],
                -	" foobar\r\n\t",
                -	["atrule", "عندما"],
                -	" foobar\r\n\t",
                -	["atrule", "فرض کیا"],
                -	" foobar\r\n\t",
                -	["atrule", "لكن"],
                -	" foobar\r\n\t",
                -	["atrule", "لیکن"],
                -	" foobar\r\n\t",
                -	["atrule", "متى"],
                -	" foobar\r\n\t",
                -	["atrule", "هنگامی"],
                -	" foobar\r\n\t",
                -	["atrule", "و"],
                -	" foobar\r\n\t",
                -	["atrule", "अगर"],
                -	" foobar\r\n\t",
                -	["atrule", "और"],
                -	" foobar\r\n\t",
                -	["atrule", "कदा"],
                -	" foobar\r\n\t",
                -	["atrule", "किन्तु"],
                -	" foobar\r\n\t",
                -	["atrule", "चूंकि"],
                -	" foobar\r\n\t",
                -	["atrule", "जब"],
                -	" foobar\r\n\t",
                -	["atrule", "तथा"],
                -	" foobar\r\n\t",
                -	["atrule", "तदा"],
                -	" foobar\r\n\t",
                -	["atrule", "तब"],
                -	" foobar\r\n\t",
                -	["atrule", "परन्तु"],
                -	" foobar\r\n\t",
                -	["atrule", "पर"],
                -	" foobar\r\n\t",
                -	["atrule", "यदि"],
                -	" foobar\r\n\t",
                -	["atrule", "ਅਤੇ"],
                -	" foobar\r\n\t",
                -	["atrule", "ਜਦੋਂ"],
                -	" foobar\r\n\t",
                -	["atrule", "ਜਿਵੇਂ ਕਿ"],
                -	" foobar\r\n\t",
                -	["atrule", "ਜੇਕਰ"],
                -	" foobar\r\n\t",
                -	["atrule", "ਤਦ"],
                -	" foobar\r\n\t",
                -	["atrule", "ਪਰ"],
                -	" foobar\r\n\t",
                -	["atrule", "అప్పుడు"],
                -	" foobar\r\n\t",
                -	["atrule", "ఈ పరిస్థితిలో"],
                -	" foobar\r\n\t",
                -	["atrule", "కాని"],
                -	" foobar\r\n\t",
                -	["atrule", "చెప్పబడినది"],
                -	" foobar\r\n\t",
                -	["atrule", "మరియు"],
                -	" foobar\r\n\t",
                -	["atrule", "ಆದರೆ"],
                -	" foobar\r\n\t",
                -	["atrule", "ನಂತರ"],
                -	" foobar\r\n\t",
                -	["atrule", "ನೀಡಿದ"],
                -	" foobar\r\n\t",
                -	["atrule", "ಮತ್ತು"],
                -	" foobar\r\n\t",
                -	["atrule", "ಸ್ಥಿತಿಯನ್ನು"],
                -	" foobar\r\n\t",
                -	["atrule", "กำหนดให้"],
                -	" foobar\r\n\t",
                -	["atrule", "ดังนั้น"],
                -	" foobar\r\n\t",
                -	["atrule", "แต่"],
                -	" foobar\r\n\t",
                -	["atrule", "เมื่อ"],
                -	" foobar\r\n\t",
                -	["atrule", "และ"],
                -	" foobar\r\n\t",
                -	["atrule", "그러면<"],
                -	" foobar\r\n\t",
                -	["atrule", "그리고<"],
                -	" foobar\r\n\t",
                -	["atrule", "단<"],
                -	" foobar\r\n\t",
                -	["atrule", "만약<"],
                -	" foobar\r\n\t",
                -	["atrule", "만일<"],
                -	" foobar\r\n\t",
                -	["atrule", "먼저<"],
                -	" foobar\r\n\t",
                -	["atrule", "조건<"],
                -	" foobar\r\n\t",
                -	["atrule", "하지만<"],
                -	" foobar\r\n\t",
                -	["atrule", "かつ<"],
                -	" foobar\r\n\t",
                -	["atrule", "しかし<"],
                -	" foobar\r\n\t",
                -	["atrule", "ただし<"],
                -	" foobar\r\n\t",
                -	["atrule", "ならば<"],
                -	" foobar\r\n\t",
                -	["atrule", "もし<"],
                -	" foobar\r\n\t",
                -	["atrule", "並且<"],
                -	" foobar\r\n\t",
                -	["atrule", "但し<"],
                -	" foobar\r\n\t",
                -	["atrule", "但是<"],
                -	" foobar\r\n\t",
                -	["atrule", "假如<"],
                -	" foobar\r\n\t",
                -	["atrule", "假定<"],
                -	" foobar\r\n\t",
                -	["atrule", "假設<"],
                -	" foobar\r\n\t",
                -	["atrule", "假设<"],
                -	" foobar\r\n\t",
                -	["atrule", "前提<"],
                -	" foobar\r\n\t",
                -	["atrule", "同时<"],
                -	" foobar\r\n\t",
                -	["atrule", "同時<"],
                -	" foobar\r\n\t",
                -	["atrule", "并且<"],
                -	" foobar\r\n\t",
                -	["atrule", "当<"],
                -	" foobar\r\n\t",
                -	["atrule", "當<"],
                -	" foobar\r\n\t",
                -	["atrule", "而且<"],
                -	" foobar\r\n\t",
                -	["atrule", "那么<"],
                -	" foobar\r\n\t",
                -	["atrule", "那麼<"],
                -	" foobar"
                -]
                -
                -----------------------------------------------------
                -
                -Checks for at-rules in all languages.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/gherkin/comment_feature.test b/node_modules/prismjs/tests/languages/gherkin/comment_feature.test
                deleted file mode 100644
                index ce88cc9..0000000
                --- a/node_modules/prismjs/tests/languages/gherkin/comment_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -#
                -# foo bar
                -	# foobar
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "#"],
                -	["comment", "# foo bar"],
                -	["comment", "# foobar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/gherkin/feature_feature.test b/node_modules/prismjs/tests/languages/gherkin/feature_feature.test
                deleted file mode 100644
                index 774dd36..0000000
                --- a/node_modules/prismjs/tests/languages/gherkin/feature_feature.test
                +++ /dev/null
                @@ -1,196 +0,0 @@
                -Ability: foobar
                -baz
                -Ahoy matey!:
                -Arwedd: foobar
                -Aspekt: foobar
                -Besigheid Behoefte: foobar
                -Business Need: foobar
                -Caracteristica: foobar
                -Característica: foobar
                -Egenskab: foobar
                -Egenskap: foobar
                -Eiginleiki: foobar
                -Feature: foobar
                -Fīča: foobar
                -Fitur: foobar
                -Fonctionnalité: foobar
                -Fonksyonalite: foobar
                -Funcionalidade: foobar
                -Funcionalitat: foobar
                -Functionalitate: foobar
                -Funcţionalitate: foobar
                -Funcționalitate: foobar
                -Functionaliteit: foobar
                -Fungsi: foobar
                -Funkcia: foobar
                -Funkcija: foobar
                -Funkcionalitāte: foobar
                -Funkcionalnost: foobar
                -Funkcja: foobar
                -Funksie: foobar
                -Funktionalität: foobar
                -Funktionalitéit: foobar
                -Funzionalità: foobar
                -Hwaet: foobar
                -Hwæt: foobar
                -Jellemző: foobar
                -Karakteristik: foobar
                -laH: foobar
                -Lastnost: foobar
                -Mak: foobar
                -Mogucnost: foobar
                -Mogućnost: foobar
                -Moznosti: foobar
                -Možnosti: foobar
                -OH HAI: foobar
                -Omadus: foobar
                -Ominaisuus: foobar
                -Osobina: foobar
                -Özellik: foobar
                -perbogh: foobar
                -poQbogh malja': foobar
                -Potrzeba biznesowa: foobar
                -Požadavek: foobar
                -Požiadavka: foobar
                -Pretty much: foobar
                -Qap: foobar
                -Qu'meH 'ut: foobar
                -Savybė: foobar
                -Tính năng: foobar
                -Trajto: foobar
                -Vermoë: foobar
                -Vlastnosť: foobar
                -Właściwość: foobar
                -Značilnost: foobar
                -Δυνατότητα: foobar
                -Λειτουργία: foobar
                -Могућност: foobar
                -Мөмкинлек: foobar
                -Особина: foobar
                -Свойство: foobar
                -Үзенчәлеклелек: foobar
                -Функционал: foobar
                -Функционалност: foobar
                -Функция: foobar
                -Функціонал: foobar
                -תכונה: foobar
                -خاصية: foobar
                -خصوصیت: foobar
                -صلاحیت: foobar
                -کاروبار کی ضرورت: foobar
                -وِیژگی: foobar
                -रूप लेख: foobar
                -ਖਾਸੀਅਤ: foobar
                -ਨਕਸ਼ ਨੁਹਾਰ: foobar
                -ਮੁਹਾਂਦਰਾ: foobar
                -గుణము: foobar
                -ಹೆಚ್ಚಳ: foobar
                -ความต้องการทางธุรกิจ: foobar
                -ความสามารถ: foobar
                -โครงหลัก: foobar
                -기능: foobar
                -フィーチャ: foobar
                -功能: foobar
                -機能: foobar
                -
                -----------------------------------------------------
                -
                -[
                -	["feature", [["keyword", "Ability:"], ["important", " foobar"], "\r\nbaz\r\n"]],
                -	["feature", [["keyword", "Ahoy matey!:"]]],
                -	["feature", [["keyword", "Arwedd:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Aspekt:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Besigheid Behoefte:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Business Need:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Caracteristica:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Característica:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Egenskab:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Egenskap:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Eiginleiki:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Feature:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Fīča:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Fitur:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Fonctionnalité:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Fonksyonalite:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Funcionalidade:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Funcionalitat:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Functionalitate:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Funcţionalitate:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Funcționalitate:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Functionaliteit:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Fungsi:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Funkcia:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Funkcija:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Funkcionalitāte:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Funkcionalnost:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Funkcja:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Funksie:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Funktionalität:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Funktionalitéit:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Funzionalità:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Hwaet:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Hwæt:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Jellemző:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Karakteristik:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "laH:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Lastnost:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Mak:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Mogucnost:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Mogućnost:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Moznosti:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Možnosti:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "OH HAI:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Omadus:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Ominaisuus:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Osobina:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Özellik:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "perbogh:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "poQbogh malja':"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Potrzeba biznesowa:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Požadavek:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Požiadavka:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Pretty much:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Qap:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Qu'meH 'ut:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Savybė:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Tính năng:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Trajto:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Vermoë:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Vlastnosť:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Właściwość:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Značilnost:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Δυνατότητα:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Λειτουργία:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Могућност:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Мөмкинлек:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Особина:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Свойство:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Үзенчәлеклелек:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Функционал:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Функционалност:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Функция:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "Функціонал:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "תכונה:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "خاصية:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "خصوصیت:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "صلاحیت:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "کاروبار کی ضرورت:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "وِیژگی:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "रूप लेख:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "ਖਾਸੀਅਤ:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "ਨਕਸ਼ ਨੁਹਾਰ:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "ਮੁਹਾਂਦਰਾ:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "గుణము:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "ಹೆಚ್ಚಳ:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "ความต้องการทางธุรกิจ:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "ความสามารถ:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "โครงหลัก:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "기능:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "フィーチャ:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "功能:"], ["important", " foobar"]]],
                -	["feature", [["keyword", "機能:"], ["important", " foobar"]]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for features in all languages.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/gherkin/outline_feature.test b/node_modules/prismjs/tests/languages/gherkin/outline_feature.test
                deleted file mode 100644
                index 19fc54f..0000000
                --- a/node_modules/prismjs/tests/languages/gherkin/outline_feature.test
                +++ /dev/null
                @@ -1,11 +0,0 @@
                -
                -
                -----------------------------------------------------
                -
                -[
                -	["outline", ""]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for single outlines.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/gherkin/pystring_feature.test b/node_modules/prismjs/tests/languages/gherkin/pystring_feature.test
                deleted file mode 100644
                index 17fd2b4..0000000
                --- a/node_modules/prismjs/tests/languages/gherkin/pystring_feature.test
                +++ /dev/null
                @@ -1,20 +0,0 @@
                -"""
                -foo
                -bar
                -"""
                -
                -'''
                -foo
                -bar
                -'''
                -
                -----------------------------------------------------
                -
                -[
                -	["pystring", "\"\"\"\r\nfoo\r\nbar\r\n\"\"\""],
                -	["pystring", "'''\r\nfoo\r\nbar\r\n'''"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for pystrings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/gherkin/scenario_feature.test b/node_modules/prismjs/tests/languages/gherkin/scenario_feature.test
                deleted file mode 100644
                index 0979c69..0000000
                --- a/node_modules/prismjs/tests/languages/gherkin/scenario_feature.test
                +++ /dev/null
                @@ -1,581 +0,0 @@
                -Abstract Scenario: foobar
                -Abstrakt Scenario: foobar
                -Achtergrond: foobar
                -Aer: foobar
                -Ær: foobar
                -Agtergrond: foobar
                -All y'all: foobar
                -Antecedentes: foobar
                -Antecedents: foobar
                -Atburðarás: foobar
                -Atburðarásir: foobar
                -Awww, look mate: foobar
                -B4: foobar
                -Background: foobar
                -Baggrund: foobar
                -Bakgrund: foobar
                -Bakgrunn: foobar
                -Bakgrunnur: foobar
                -Beispiele: foobar
                -Beispiller: foobar
                -Bối cảnh: foobar
                -Cefndir: foobar
                -Cenario: foobar
                -Cenário: foobar
                -Cenario de Fundo: foobar
                -Cenário de Fundo: foobar
                -Cenarios: foobar
                -Cenários: foobar
                -Contesto: foobar
                -Context: foobar
                -Contexte: foobar
                -Contexto: foobar
                -Conto: foobar
                -Contoh: foobar
                -Contone: foobar
                -Dæmi: foobar
                -Dasar: foobar
                -Dead men tell no tales: foobar
                -Delineacao do Cenario: foobar
                -Delineação do Cenário: foobar
                -Dis is what went down: foobar
                -Dữ liệu: foobar
                -Dyagram senaryo: foobar
                -Dyagram Senaryo: foobar
                -Egzanp: foobar
                -Ejemplos: foobar
                -Eksempler: foobar
                -Ekzemploj: foobar
                -Enghreifftiau: foobar
                -Esbozo do escenario: foobar
                -Escenari: foobar
                -Escenario: foobar
                -Esempi: foobar
                -Esquema de l'escenari: foobar
                -Esquema del escenario: foobar
                -Esquema do Cenario: foobar
                -Esquema do Cenário: foobar
                -Examples: foobar
                -EXAMPLZ: foobar
                -Exempel: foobar
                -Exemple: foobar
                -Exemples: foobar
                -Exemplos: foobar
                -First off: foobar
                -Fono: foobar
                -Forgatókönyv: foobar
                -Forgatókönyv vázlat: foobar
                -Fundo: foobar
                -Geçmiş: foobar
                -ghantoH: foobar
                -Grundlage: foobar
                -Hannergrond: foobar
                -Háttér: foobar
                -Heave to: foobar
                -Istorik: foobar
                -Juhtumid: foobar
                -Keadaan: foobar
                -Khung kịch bản: foobar
                -Khung tình huống: foobar
                -Kịch bản: foobar
                -Koncept: foobar
                -Konsep skenario: foobar
                -Kontèks: foobar
                -Kontekst: foobar
                -Kontekstas: foobar
                -Konteksts: foobar
                -Kontext: foobar
                -Konturo de la scenaro: foobar
                -Latar Belakang: foobar
                -lut: foobar
                -lut chovnatlh: foobar
                -lutmey: foobar
                -Lýsing Atburðarásar: foobar
                -Lýsing Dæma: foobar
                -Menggariskan Senario: foobar
                -MISHUN: foobar
                -MISHUN SRSLY: foobar
                -mo': foobar
                -Náčrt Scenára: foobar
                -Náčrt Scénáře: foobar
                -Náčrt Scenáru: foobar
                -Oris scenarija: foobar
                -Örnekler: foobar
                -Osnova: foobar
                -Osnova Scenára: foobar
                -Osnova scénáře: foobar
                -Osnutek: foobar
                -Ozadje: foobar
                -Paraugs: foobar
                -Pavyzdžiai: foobar
                -Példák: foobar
                -Piemēri: foobar
                -Plan du scénario: foobar
                -Plan du Scénario: foobar
                -Plan senaryo: foobar
                -Plan Senaryo: foobar
                -Plang vum Szenario: foobar
                -Pozadí: foobar
                -Pozadie: foobar
                -Pozadina: foobar
                -Príklady: foobar
                -Příklady: foobar
                -Primer: foobar
                -Primeri: foobar
                -Primjeri: foobar
                -Przykłady: foobar
                -Raamstsenaarium: foobar
                -Reckon it's like: foobar
                -Rerefons: foobar
                -Scenár: foobar
                -Scénář: foobar
                -Scenarie: foobar
                -Scenarij: foobar
                -Scenarijai: foobar
                -Scenarijaus šablonas: foobar
                -Scenariji: foobar
                -Scenārijs: foobar
                -Scenārijs pēc parauga: foobar
                -Scenarijus: foobar
                -Scenario: foobar
                -Scénario: foobar
                -Scenario Amlinellol: foobar
                -Scenario Outline: foobar
                -Scenario Template: foobar
                -Scenariomal: foobar
                -Scenariomall: foobar
                -Scenarios: foobar
                -Scenariu: foobar
                -Scenariusz: foobar
                -Scenaro: foobar
                -Schema dello scenario: foobar
                -Se ðe: foobar
                -Se the: foobar
                -Se þe: foobar
                -Senario: foobar
                -Senaryo: foobar
                -Senaryo deskripsyon: foobar
                -Senaryo Deskripsyon: foobar
                -Senaryo taslağı: foobar
                -Shiver me timbers: foobar
                -Situācija: foobar
                -Situai: foobar
                -Situasie: foobar
                -Situasie Uiteensetting: foobar
                -Skenario: foobar
                -Skenario konsep: foobar
                -Skica: foobar
                -Structura scenariu: foobar
                -Structură scenariu: foobar
                -Struktura scenarija: foobar
                -Stsenaarium: foobar
                -Swa: foobar
                -Swa hwaer swa: foobar
                -Swa hwær swa: foobar
                -Szablon scenariusza: foobar
                -Szenario: foobar
                -Szenariogrundriss: foobar
                -Tapaukset: foobar
                -Tapaus: foobar
                -Tapausaihio: foobar
                -Taust: foobar
                -Tausta: foobar
                -Template Keadaan: foobar
                -Template Senario: foobar
                -Template Situai: foobar
                -The thing of it is: foobar
                -Tình huống: foobar
                -Variantai: foobar
                -Voorbeelde: foobar
                -Voorbeelden: foobar
                -Wharrimean is: foobar
                -Yo-ho-ho: foobar
                -You'll wanna: foobar
                -Założenia: foobar
                -Παραδείγματα: foobar
                -Περιγραφή Σεναρίου: foobar
                -Σενάρια: foobar
                -Σενάριο: foobar
                -Υπόβαθρο: foobar
                -Кереш: foobar
                -Контекст: foobar
                -Концепт: foobar
                -Мисаллар: foobar
                -Мисоллар: foobar
                -Основа: foobar
                -Передумова: foobar
                -Позадина: foobar
                -Предистория: foobar
                -Предыстория: foobar
                -Приклади: foobar
                -Пример: foobar
                -Примери: foobar
                -Примеры: foobar
                -Рамка на сценарий: foobar
                -Скица: foobar
                -Структура сценарија: foobar
                -Структура сценария: foobar
                -Структура сценарію: foobar
                -Сценарий: foobar
                -Сценарий структураси: foobar
                -Сценарийның төзелеше: foobar
                -Сценарији: foobar
                -Сценарио: foobar
                -Сценарій: foobar
                -Тарих: foobar
                -Үрнәкләр: foobar
                -דוגמאות: foobar
                -רקע: foobar
                -תבנית תרחיש: foobar
                -תרחיש: foobar
                -الخلفية: foobar
                -الگوی سناریو: foobar
                -امثلة: foobar
                -پس منظر: foobar
                -زمینه: foobar
                -سناریو: foobar
                -سيناريو: foobar
                -سيناريو مخطط: foobar
                -مثالیں: foobar
                -منظر نامے کا خاکہ: foobar
                -منظرنامہ: foobar
                -نمونه ها: foobar
                -उदाहरण: foobar
                -परिदृश्य: foobar
                -परिदृश्य रूपरेखा: foobar
                -पृष्ठभूमि: foobar
                -ਉਦਾਹਰਨਾਂ: foobar
                -ਪਟਕਥਾ: foobar
                -ਪਟਕਥਾ ਢਾਂਚਾ: foobar
                -ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ: foobar
                -ਪਿਛੋਕੜ: foobar
                -ఉదాహరణలు: foobar
                -కథనం: foobar
                -నేపథ్యం: foobar
                -సన్నివేశం: foobar
                -ಉದಾಹರಣೆಗಳು: foobar
                -ಕಥಾಸಾರಾಂಶ: foobar
                -ವಿವರಣೆ: foobar
                -ಹಿನ್ನೆಲೆ: foobar
                -โครงสร้างของเหตุการณ์: foobar
                -ชุดของตัวอย่าง: foobar
                -ชุดของเหตุการณ์: foobar
                -แนวคิด: foobar
                -สรุปเหตุการณ์: foobar
                -เหตุการณ์: foobar
                -배경: foobar
                -시나리오: foobar
                -시나리오 개요: foobar
                -예: foobar
                -サンプル: foobar
                -シナリオ: foobar
                -シナリオアウトライン: foobar
                -シナリオテンプレ: foobar
                -シナリオテンプレート: foobar
                -テンプレ: foobar
                -例: foobar
                -例子: foobar
                -剧本: foobar
                -剧本大纲: foobar
                -劇本: foobar
                -劇本大綱: foobar
                -场景: foobar
                -场景大纲: foobar
                -場景: foobar
                -場景大綱: foobar
                -背景: foobar
                -
                -----------------------------------------------------
                -
                -[
                -	["scenario", [["keyword", "Abstract Scenario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Abstrakt Scenario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Achtergrond:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Aer:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Ær:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Agtergrond:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "All y'all:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Antecedentes:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Antecedents:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Atburðarás:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Atburðarásir:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Awww, look mate:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "B4:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Background:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Baggrund:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Bakgrund:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Bakgrunn:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Bakgrunnur:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Beispiele:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Beispiller:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Bối cảnh:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Cefndir:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Cenario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Cenário:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Cenario de Fundo:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Cenário de Fundo:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Cenarios:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Cenários:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Contesto:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Context:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Contexte:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Contexto:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Conto:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Contoh:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Contone:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Dæmi:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Dasar:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Dead men tell no tales:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Delineacao do Cenario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Delineação do Cenário:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Dis is what went down:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Dữ liệu:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Dyagram senaryo:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Dyagram Senaryo:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Egzanp:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Ejemplos:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Eksempler:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Ekzemploj:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Enghreifftiau:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Esbozo do escenario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Escenari:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Escenario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Esempi:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Esquema de l'escenari:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Esquema del escenario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Esquema do Cenario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Esquema do Cenário:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Examples:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "EXAMPLZ:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Exempel:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Exemple:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Exemples:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Exemplos:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "First off:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Fono:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Forgatókönyv:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Forgatókönyv vázlat:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Fundo:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Geçmiş:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "ghantoH:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Grundlage:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Hannergrond:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Háttér:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Heave to:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Istorik:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Juhtumid:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Keadaan:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Khung kịch bản:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Khung tình huống:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Kịch bản:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Koncept:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Konsep skenario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Kontèks:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Kontekst:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Kontekstas:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Konteksts:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Kontext:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Konturo de la scenaro:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Latar Belakang:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "lut:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "lut chovnatlh:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "lutmey:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Lýsing Atburðarásar:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Lýsing Dæma:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Menggariskan Senario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "MISHUN:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "MISHUN SRSLY:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "mo':"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Náčrt Scenára:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Náčrt Scénáře:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Náčrt Scenáru:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Oris scenarija:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Örnekler:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Osnova:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Osnova Scenára:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Osnova scénáře:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Osnutek:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Ozadje:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Paraugs:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Pavyzdžiai:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Példák:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Piemēri:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Plan du scénario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Plan du Scénario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Plan senaryo:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Plan Senaryo:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Plang vum Szenario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Pozadí:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Pozadie:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Pozadina:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Príklady:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Příklady:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Primer:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Primeri:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Primjeri:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Przykłady:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Raamstsenaarium:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Reckon it's like:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Rerefons:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenár:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scénář:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenarie:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenarij:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenarijai:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenarijaus šablonas:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenariji:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenārijs:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenārijs pēc parauga:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenarijus:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scénario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenario Amlinellol:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenario Outline:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenario Template:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenariomal:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenariomall:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenarios:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenariu:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenariusz:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Scenaro:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Schema dello scenario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Se ðe:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Se the:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Se þe:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Senario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Senaryo:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Senaryo deskripsyon:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Senaryo Deskripsyon:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Senaryo taslağı:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Shiver me timbers:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Situācija:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Situai:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Situasie:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Situasie Uiteensetting:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Skenario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Skenario konsep:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Skica:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Structura scenariu:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Structură scenariu:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Struktura scenarija:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Stsenaarium:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Swa:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Swa hwaer swa:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Swa hwær swa:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Szablon scenariusza:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Szenario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Szenariogrundriss:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Tapaukset:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Tapaus:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Tapausaihio:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Taust:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Tausta:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Template Keadaan:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Template Senario:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Template Situai:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "The thing of it is:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Tình huống:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Variantai:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Voorbeelde:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Voorbeelden:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Wharrimean is:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Yo-ho-ho:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "You'll wanna:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Założenia:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Παραδείγματα:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Περιγραφή Σεναρίου:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Σενάρια:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Σενάριο:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Υπόβαθρο:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Кереш:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Контекст:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Концепт:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Мисаллар:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Мисоллар:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Основа:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Передумова:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Позадина:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Предистория:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Предыстория:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Приклади:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Пример:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Примери:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Примеры:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Рамка на сценарий:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Скица:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Структура сценарија:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Структура сценария:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Структура сценарію:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Сценарий:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Сценарий структураси:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Сценарийның төзелеше:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Сценарији:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Сценарио:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Сценарій:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Тарих:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "Үрнәкләр:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "דוגמאות:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "רקע:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "תבנית תרחיש:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "תרחיש:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "الخلفية:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "الگوی سناریو:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "امثلة:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "پس منظر:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "زمینه:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "سناریو:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "سيناريو:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "سيناريو مخطط:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "مثالیں:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "منظر نامے کا خاکہ:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "منظرنامہ:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "نمونه ها:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "उदाहरण:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "परिदृश्य:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "परिदृश्य रूपरेखा:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "पृष्ठभूमि:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "ਉਦਾਹਰਨਾਂ:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "ਪਟਕਥਾ:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "ਪਟਕਥਾ ਢਾਂਚਾ:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "ਪਿਛੋਕੜ:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "ఉదాహరణలు:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "కథనం:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "నేపథ్యం:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "సన్నివేశం:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "ಉದಾಹರಣೆಗಳು:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "ಕಥಾಸಾರಾಂಶ:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "ವಿವರಣೆ:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "ಹಿನ್ನೆಲೆ:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "โครงสร้างของเหตุการณ์:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "ชุดของตัวอย่าง:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "ชุดของเหตุการณ์:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "แนวคิด:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "สรุปเหตุการณ์:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "เหตุการณ์:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "배경:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "시나리오:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "시나리오 개요:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "예:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "サンプル:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "シナリオ:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "シナリオアウトライン:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "シナリオテンプレ:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "シナリオテンプレート:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "テンプレ:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "例:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "例子:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "剧本:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "剧本大纲:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "劇本:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "劇本大綱:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "场景:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "场景大纲:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "場景:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "場景大綱:"], ["important", " foobar"]]],
                -	["scenario", [["keyword", "背景:"], ["important", " foobar"]]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for scenarios in all languages.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/gherkin/string_feature.test b/node_modules/prismjs/tests/languages/gherkin/string_feature.test
                deleted file mode 100644
                index bcb152f..0000000
                --- a/node_modules/prismjs/tests/languages/gherkin/string_feature.test
                +++ /dev/null
                @@ -1,29 +0,0 @@
                -""
                -"foobar"
                -"foobaz"
                -''
                -'foobar'
                -'foobaz'
                -
                -----------------------------------------------------
                -
                -[
                -	["string", ["\"\""]],
                -	["string", ["\"foobar\""]],
                -	["string", [
                -		"\"foo",
                -		["outline", ""],
                -		"baz\""
                -	]],
                -	["string", ["''"]],
                -	["string", ["'foobar'"]],
                -	["string", [
                -        "'foo",
                -        ["outline", ""],
                -        "baz'"
                -    ]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for double-quoted and single-quoted strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/gherkin/table_feature.test b/node_modules/prismjs/tests/languages/gherkin/table_feature.test
                deleted file mode 100644
                index 00eaef8..0000000
                --- a/node_modules/prismjs/tests/languages/gherkin/table_feature.test
                +++ /dev/null
                @@ -1,40 +0,0 @@
                -Examples: foo
                -| start  | eat | left |
                -|   |  5  |  7   |
                -	|  20    |  5  |  15  |
                -
                -----------------------------------------------------
                -
                -[
                -	["scenario", [["keyword", "Examples:"], ["important", " foo"]]],
                -	["table-head", [
                -		["punctuation", "|"],
                -		["th", " start  "],
                -		["punctuation", "|"],
                -        ["th", " eat "],
                -        ["punctuation", "|"],
                -        ["th", " left "],
                -        ["punctuation", "|"]
                -    ]],
                -    ["table-body", [
                -		["punctuation", "|"],
                -		["outline", ""],
                -		["punctuation", "|"],
                -		["td", "  5  "],
                -		["punctuation", "|"],
                -        ["td", "  7   "],
                -        ["punctuation", "|"],
                -
                -        ["punctuation", "|"],
                -        ["td", "  20    "],
                -        ["punctuation", "|"],
                -        ["td", "  5  "],
                -        ["punctuation", "|"],
                -        ["td", "  15  "],
                -        ["punctuation", "|"]
                -    ]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for table heads and table bodies.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/gherkin/tag_feature.test b/node_modules/prismjs/tests/languages/gherkin/tag_feature.test
                deleted file mode 100644
                index 51026ea..0000000
                --- a/node_modules/prismjs/tests/languages/gherkin/tag_feature.test
                +++ /dev/null
                @@ -1,17 +0,0 @@
                -@important
                -@billing @bicker @annoy
                -	@foo
                -
                -----------------------------------------------------
                -
                -[
                -	["tag", "@important"],
                -	["tag", "@billing"],
                -	["tag", "@bicker"],
                -	["tag", "@annoy"],
                -	["tag", "@foo"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for tags.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/git/command_feature.test b/node_modules/prismjs/tests/languages/git/command_feature.test
                deleted file mode 100644
                index 488f0be..0000000
                --- a/node_modules/prismjs/tests/languages/git/command_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -$ git add file.txt
                -foo@foobar ~ $ git diff --cached
                -$ git log -p -i
                -
                -----------------------------------------------------
                -
                -[
                -	["command", ["$ git add file.txt"]],
                -	["command", ["foo@foobar ~ $ git diff", ["parameter", " --cached"]]],
                -	["command", ["$ git log", ["parameter", " -p"], ["parameter", " -i"]]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for git commands, with and without parameters.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/git/comment_feature.test b/node_modules/prismjs/tests/languages/git/comment_feature.test
                deleted file mode 100644
                index c3d0358..0000000
                --- a/node_modules/prismjs/tests/languages/git/comment_feature.test
                +++ /dev/null
                @@ -1,17 +0,0 @@
                -# On branch gh-pages
                -# Changes to be committed:
                -#   (use "git reset HEAD ..." to unstage)
                -#
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "# On branch gh-pages"],
                -	["comment", "# Changes to be committed:"],
                -	["comment", "#   (use \"git reset HEAD ...\" to unstage)"],
                -	["comment", "#"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/git/commit_sha1_feature.test b/node_modules/prismjs/tests/languages/git/commit_sha1_feature.test
                deleted file mode 100644
                index fbc58ed..0000000
                --- a/node_modules/prismjs/tests/languages/git/commit_sha1_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -commit a11a14ef7e26f2ca62d4b35eac455ce636d0dc09
                -commit 87edc4ad8c71b95f6e46f736eb98b742859abd95
                -commit 3102416a90c431400d2e2a14e707fb7fd6d9e06d
                -
                -----------------------------------------------------
                -
                -[
                -	["commit_sha1", "commit a11a14ef7e26f2ca62d4b35eac455ce636d0dc09"],
                -	["commit_sha1", "commit 87edc4ad8c71b95f6e46f736eb98b742859abd95"],
                -	["commit_sha1", "commit 3102416a90c431400d2e2a14e707fb7fd6d9e06d"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for commit SHA1.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/git/coord_feature.test b/node_modules/prismjs/tests/languages/git/coord_feature.test
                deleted file mode 100644
                index 8d8c5e2..0000000
                --- a/node_modules/prismjs/tests/languages/git/coord_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -@@ -1 +1,2 @@
                -@@@ -98,20 -98,12 +98,20 @@@
                -
                -----------------------------------------------------
                -
                -[
                -	["coord", "@@ -1 +1,2 @@"],
                -	["coord", "@@@ -98,20 -98,12 +98,20 @@@"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for coords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/git/diff_feature.test b/node_modules/prismjs/tests/languages/git/diff_feature.test
                deleted file mode 100644
                index b93fb18..0000000
                --- a/node_modules/prismjs/tests/languages/git/diff_feature.test
                +++ /dev/null
                @@ -1,31 +0,0 @@
                --Here's my tetx file
                -+Here's my text file
                -+And this is the second line
                -
                -––– a/web/js/lazy.js
                -+++ b/web/js/lazy.js
                -
                --      if (url !== null && url !== '' && typeof url !== 'undefined') {
                -+      if (url === null || url === '' || typeof url === 'undefined') {
                -+        return;
                -+      }
                -+
                -
                -----------------------------------------------------
                -
                -[
                -	["deleted", "-Here's my tetx file"],
                -	["inserted", "+Here's my text file"],
                -	["inserted", "+And this is the second line"],
                -	["deleted", "––– a/web/js/lazy.js"],
                -	["inserted", "+++ b/web/js/lazy.js"],
                -	["deleted", "-      if (url !== null && url !== '' && typeof url !== 'undefined') {"],
                -	["inserted", "+      if (url === null || url === '' || typeof url === 'undefined') {"],
                -	["inserted", "+        return;"],
                -	["inserted", "+      }"],
                -	["inserted", "+"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for inserted and deleted lines in git diff output.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/git/string_feature.test b/node_modules/prismjs/tests/languages/git/string_feature.test
                deleted file mode 100644
                index ebff3bf..0000000
                --- a/node_modules/prismjs/tests/languages/git/string_feature.test
                +++ /dev/null
                @@ -1,17 +0,0 @@
                -""
                -"foo"
                -''
                -'bar'
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "\"\""],
                -	["string", "\"foo\""],
                -	["string", "''"],
                -	["string", "'bar'"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for double-quoted and single-quoted strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/glsl/comment_feature.test b/node_modules/prismjs/tests/languages/glsl/comment_feature.test
                deleted file mode 100644
                index b45a6bd..0000000
                --- a/node_modules/prismjs/tests/languages/glsl/comment_feature.test
                +++ /dev/null
                @@ -1,21 +0,0 @@
                -/**/
                -/* foo
                -bar */
                -//
                -// foo
                -// foo\
                -bar
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "/**/"],
                -	["comment", "/* foo\r\nbar */"],
                -	["comment", "//"],
                -	["comment", "// foo"],
                -	["comment", "// foo\\\r\nbar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/glsl/keyword_feature.test b/node_modules/prismjs/tests/languages/glsl/keyword_feature.test
                deleted file mode 100644
                index e07768c..0000000
                --- a/node_modules/prismjs/tests/languages/glsl/keyword_feature.test
                +++ /dev/null
                @@ -1,263 +0,0 @@
                -attribute
                -const
                -uniform
                -varying
                -buffer
                -shared
                -coherent
                -volatile
                -restrict
                -readonly
                -writeonly
                -atomic_uint
                -layout
                -centroid
                -flat
                -smooth
                -noperspective
                -patch
                -sample
                -break
                -continue
                -do
                -for
                -while
                -switch
                -case
                -default
                -if
                -else
                -subroutine
                -in
                -out
                -inout
                -float
                -double
                -int
                -void
                -bool
                -true
                -false
                -invariant
                -precise
                -discard
                -return
                -mat2 mat3 mat4
                -mat2x2 mat2x3 mat2x4
                -mat3x2 mat3x3 mat3x4
                -mat4x2 mat4x3 mat4x4
                -dmat2 dmat3 dmat4
                -dmat2x2 dmat2x3 dmat2x4
                -dmat3x2 dmat3x3 dmat3x4
                -dmat4x2 dmat4x3 dmat4x4
                -vec2 vec3 vec4
                -ivec2 ivec3 ivec4
                -bvec2 bvec3 bvec4
                -dvec2 dvec3 dvec4
                -uvec2 uvec3 uvec4
                -uint
                -lowp
                -mediump
                -highp
                -precision
                -sampler1D sampler2D sampler3D
                -isampler1D isampler2D isampler3D
                -usampler1D usampler2D usampler3D
                -samplerCube isamplerCube usamplerCube
                -sampler1DShadow sampler2DShadow
                -samplerCubeShadow
                -sampler1DArray sampler2DArray
                -isampler1DArray isampler2DArray
                -usampler1DArray usampler2DArray
                -sampler1DArrayShadow sampler2DArrayShadow
                -sampler2DRect isampler2DRect usampler2DRect
                -sampler2DRectShadow
                -samplerBuffer isamplerBuffer usamplerBuffer
                -sampler2DMS isampler2DMS usampler2DMS
                -sampler2DMSArray isampler2DMSArray usampler2DMSArray
                -samplerCubeArray isamplerCubeArray usamplerCubeArray
                -samplerCubeArrayShadow
                -image1D image2D image3D
                -iimage1D iimage2D iimage3D
                -uimage1D uimage2D uimage3D
                -image2DRect iimage2DRect uimage2DRect
                -imageCube iimageCube uimageCube
                -imageBuffer iimageBuffer uimageBuffer
                -image1DArray image2DArray
                -iimage1DArray iimage2DArray
                -uimage1DArray uimage2DArray
                -imageCubeArray iimageCubeArray uimageCubeArray
                -image2DMS iimage2DMS uimage2DMS
                -image2DMSArray iimage2DMSArray uimage2DMSArray
                -struct
                -common
                -partition
                -active
                -asm
                -class;
                -union
                -enum
                -typedef
                -template
                -this
                -resource
                -goto
                -inline
                -noinline
                -public
                -static
                -extern
                -external
                -interface;
                -long
                -short
                -half
                -fixed
                -unsigned
                -superp
                -input
                -output
                -hvec2 hvec3 hvec4
                -fvec2 fvec3 fvec4
                -sampler3DRect
                -filter
                -sizeof
                -cast
                -namespace
                -using
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "attribute"],
                -	["keyword", "const"],
                -	["keyword", "uniform"],
                -	["keyword", "varying"],
                -	["keyword", "buffer"],
                -	["keyword", "shared"],
                -	["keyword", "coherent"],
                -	["keyword", "volatile"],
                -	["keyword", "restrict"],
                -	["keyword", "readonly"],
                -	["keyword", "writeonly"],
                -	["keyword", "atomic_uint"],
                -	["keyword", "layout"],
                -	["keyword", "centroid"],
                -	["keyword", "flat"],
                -	["keyword", "smooth"],
                -	["keyword", "noperspective"],
                -	["keyword", "patch"],
                -	["keyword", "sample"],
                -	["keyword", "break"],
                -	["keyword", "continue"],
                -	["keyword", "do"],
                -	["keyword", "for"],
                -	["keyword", "while"],
                -	["keyword", "switch"],
                -	["keyword", "case"],
                -	["keyword", "default"],
                -	["keyword", "if"],
                -	["keyword", "else"],
                -	["keyword", "subroutine"],
                -	["keyword", "in"],
                -	["keyword", "out"],
                -	["keyword", "inout"],
                -	["keyword", "float"],
                -	["keyword", "double"],
                -	["keyword", "int"],
                -	["keyword", "void"],
                -	["keyword", "bool"],
                -	["keyword", "true"],
                -	["keyword", "false"],
                -	["keyword", "invariant"],
                -	["keyword", "precise"],
                -	["keyword", "discard"],
                -	["keyword", "return"],
                -	["keyword", "mat2"], ["keyword", "mat3"], ["keyword", "mat4"],
                -	["keyword", "mat2x2"], ["keyword", "mat2x3"], ["keyword", "mat2x4"],
                -	["keyword", "mat3x2"], ["keyword", "mat3x3"], ["keyword", "mat3x4"],
                -	["keyword", "mat4x2"], ["keyword", "mat4x3"], ["keyword", "mat4x4"],
                -	["keyword", "dmat2"], ["keyword", "dmat3"], ["keyword", "dmat4"],
                -	["keyword", "dmat2x2"], ["keyword", "dmat2x3"], ["keyword", "dmat2x4"],
                -	["keyword", "dmat3x2"], ["keyword", "dmat3x3"], ["keyword", "dmat3x4"],
                -	["keyword", "dmat4x2"], ["keyword", "dmat4x3"], ["keyword", "dmat4x4"],
                -	["keyword", "vec2"], ["keyword", "vec3"], ["keyword", "vec4"],
                -	["keyword", "ivec2"], ["keyword", "ivec3"], ["keyword", "ivec4"],
                -	["keyword", "bvec2"], ["keyword", "bvec3"], ["keyword", "bvec4"],
                -	["keyword", "dvec2"], ["keyword", "dvec3"], ["keyword", "dvec4"],
                -	["keyword", "uvec2"], ["keyword", "uvec3"], ["keyword", "uvec4"],
                -	["keyword", "uint"],
                -	["keyword", "lowp"],
                -	["keyword", "mediump"],
                -	["keyword", "highp"],
                -	["keyword", "precision"],
                -	["keyword", "sampler1D"], ["keyword", "sampler2D"], ["keyword", "sampler3D"],
                -	["keyword", "isampler1D"], ["keyword", "isampler2D"], ["keyword", "isampler3D"],
                -	["keyword", "usampler1D"], ["keyword", "usampler2D"], ["keyword", "usampler3D"],
                -	["keyword", "samplerCube"], ["keyword", "isamplerCube"], ["keyword", "usamplerCube"],
                -	["keyword", "sampler1DShadow"], ["keyword", "sampler2DShadow"],
                -	["keyword", "samplerCubeShadow"],
                -	["keyword", "sampler1DArray"], ["keyword", "sampler2DArray"],
                -	["keyword", "isampler1DArray"], ["keyword", "isampler2DArray"],
                -	["keyword", "usampler1DArray"], ["keyword", "usampler2DArray"],
                -	["keyword", "sampler1DArrayShadow"], ["keyword", "sampler2DArrayShadow"],
                -	["keyword", "sampler2DRect"], ["keyword", "isampler2DRect"], ["keyword", "usampler2DRect"],
                -	["keyword", "sampler2DRectShadow"],
                -	["keyword", "samplerBuffer"], ["keyword", "isamplerBuffer"], ["keyword", "usamplerBuffer"],
                -	["keyword", "sampler2DMS"], ["keyword", "isampler2DMS"], ["keyword", "usampler2DMS"],
                -	["keyword", "sampler2DMSArray"], ["keyword", "isampler2DMSArray"], ["keyword", "usampler2DMSArray"],
                -	["keyword", "samplerCubeArray"], ["keyword", "isamplerCubeArray"], ["keyword", "usamplerCubeArray"],
                -	["keyword", "samplerCubeArrayShadow"],
                -	["keyword", "image1D"], ["keyword", "image2D"], ["keyword", "image3D"],
                -	["keyword", "iimage1D"], ["keyword", "iimage2D"], ["keyword", "iimage3D"],
                -	["keyword", "uimage1D"], ["keyword", "uimage2D"], ["keyword", "uimage3D"],
                -	["keyword", "image2DRect"], ["keyword", "iimage2DRect"], ["keyword", "uimage2DRect"],
                -	["keyword", "imageCube"], ["keyword", "iimageCube"], ["keyword", "uimageCube"],
                -	["keyword", "imageBuffer"], ["keyword", "iimageBuffer"], ["keyword", "uimageBuffer"],
                -	["keyword", "image1DArray"], ["keyword", "image2DArray"],
                -	["keyword", "iimage1DArray"], ["keyword", "iimage2DArray"],
                -	["keyword", "uimage1DArray"], ["keyword", "uimage2DArray"],
                -	["keyword", "imageCubeArray"], ["keyword", "iimageCubeArray"], ["keyword", "uimageCubeArray"],
                -	["keyword", "image2DMS"], ["keyword", "iimage2DMS"], ["keyword", "uimage2DMS"],
                -	["keyword", "image2DMSArray"], ["keyword", "iimage2DMSArray"], ["keyword", "uimage2DMSArray"],
                -	["keyword", "struct"],
                -	["keyword", "common"],
                -	["keyword", "partition"],
                -	["keyword", "active"],
                -	["keyword", "asm"],
                -	["keyword", "class"], ["punctuation", ";"],
                -	["keyword", "union"],
                -	["keyword", "enum"],
                -	["keyword", "typedef"],
                -	["keyword", "template"],
                -	["keyword", "this"],
                -	["keyword", "resource"],
                -	["keyword", "goto"],
                -	["keyword", "inline"],
                -	["keyword", "noinline"],
                -	["keyword", "public"],
                -	["keyword", "static"],
                -	["keyword", "extern"],
                -	["keyword", "external"],
                -	["keyword", "interface"], ["punctuation", ";"],
                -	["keyword", "long"],
                -	["keyword", "short"],
                -	["keyword", "half"],
                -	["keyword", "fixed"],
                -	["keyword", "unsigned"],
                -	["keyword", "superp"],
                -	["keyword", "input"],
                -	["keyword", "output"],
                -	["keyword", "hvec2"], ["keyword", "hvec3"], ["keyword", "hvec4"],
                -	["keyword", "fvec2"], ["keyword", "fvec3"], ["keyword", "fvec4"],
                -	["keyword", "sampler3DRect"],
                -	["keyword", "filter"],
                -	["keyword", "sizeof"],
                -	["keyword", "cast"],
                -	["keyword", "namespace"],
                -	["keyword", "using"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/glsl/number_feature.test b/node_modules/prismjs/tests/languages/glsl/number_feature.test
                deleted file mode 100644
                index 20ac4d1..0000000
                --- a/node_modules/prismjs/tests/languages/glsl/number_feature.test
                +++ /dev/null
                @@ -1,31 +0,0 @@
                -0xBadFace
                -42
                -3.14159
                -3e8
                -3.6e-7
                -4.7E+12
                -4u
                -42U
                -3.1l
                -42f
                -2.0LF
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "0xBadFace"],
                -	["number", "42"],
                -	["number", "3.14159"],
                -	["number", "3e8"],
                -	["number", "3.6e-7"],
                -	["number", "4.7E+12"],
                -	["number", "4u"],
                -	["number", "42U"],
                -	["number", "3.1l"],
                -	["number", "42f"],
                -	["number", "2.0LF"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/glsl/preprocessor_feature.test b/node_modules/prismjs/tests/languages/glsl/preprocessor_feature.test
                deleted file mode 100644
                index a720d35..0000000
                --- a/node_modules/prismjs/tests/languages/glsl/preprocessor_feature.test
                +++ /dev/null
                @@ -1,35 +0,0 @@
                -#define
                -#undef
                -#if
                -#ifdef
                -#ifndef
                -#else
                -#elif
                -#endif
                -#error
                -#pragma
                -#extension
                -#version
                -#line
                -
                -----------------------------------------------------
                -
                -[
                -	["preprocessor", "#define"],
                -	["preprocessor", "#undef"],
                -	["preprocessor", "#if"],
                -	["preprocessor", "#ifdef"],
                -	["preprocessor", "#ifndef"],
                -	["preprocessor", "#else"],
                -	["preprocessor", "#elif"],
                -	["preprocessor", "#endif"],
                -	["preprocessor", "#error"],
                -	["preprocessor", "#pragma"],
                -	["preprocessor", "#extension"],
                -	["preprocessor", "#version"],
                -	["preprocessor", "#line"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for preprocessor instructions.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/go/boolean_feature.test b/node_modules/prismjs/tests/languages/go/boolean_feature.test
                deleted file mode 100644
                index 1ee1192..0000000
                --- a/node_modules/prismjs/tests/languages/go/boolean_feature.test
                +++ /dev/null
                @@ -1,19 +0,0 @@
                -_
                -iota
                -nil
                -true
                -false
                -
                -----------------------------------------------------
                -
                -[
                -	["boolean", "_"],
                -	["boolean", "iota"],
                -	["boolean", "nil"],
                -	["boolean", "true"],
                -	["boolean", "false"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all boolean values.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/go/builtin_feature.test b/node_modules/prismjs/tests/languages/go/builtin_feature.test
                deleted file mode 100644
                index 414018f..0000000
                --- a/node_modules/prismjs/tests/languages/go/builtin_feature.test
                +++ /dev/null
                @@ -1,79 +0,0 @@
                -bool
                -byte
                -complex64
                -complex128
                -error
                -float32
                -float64
                -rune
                -string
                -int
                -int8
                -int16
                -int32
                -int64
                -uint
                -uint8
                -uint16
                -uint32
                -uint64
                -uintptr
                -append
                -cap
                -close
                -complex
                -copy
                -delete
                -imag
                -len
                -make
                -new
                -panic
                -print
                -println
                -real
                -recover
                -
                -----------------------------------------------------
                -
                -[
                -	["builtin", "bool"],
                -	["builtin", "byte"],
                -	["builtin", "complex64"],
                -	["builtin", "complex128"],
                -	["builtin", "error"],
                -	["builtin", "float32"],
                -	["builtin", "float64"],
                -	["builtin", "rune"],
                -	["builtin", "string"],
                -	["builtin", "int"],
                -	["builtin", "int8"],
                -	["builtin", "int16"],
                -	["builtin", "int32"],
                -	["builtin", "int64"],
                -	["builtin", "uint"],
                -	["builtin", "uint8"],
                -	["builtin", "uint16"],
                -	["builtin", "uint32"],
                -	["builtin", "uint64"],
                -	["builtin", "uintptr"],
                -	["builtin", "append"],
                -	["builtin", "cap"],
                -	["builtin", "close"],
                -	["builtin", "complex"],
                -	["builtin", "copy"],
                -	["builtin", "delete"],
                -	["builtin", "imag"],
                -	["builtin", "len"],
                -	["builtin", "make"],
                -	["builtin", "new"],
                -	["builtin", "panic"],
                -	["builtin", "print"],
                -	["builtin", "println"],
                -	["builtin", "real"],
                -	["builtin", "recover"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all builtins.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/go/keyword_feature.test b/node_modules/prismjs/tests/languages/go/keyword_feature.test
                deleted file mode 100644
                index a2799f7..0000000
                --- a/node_modules/prismjs/tests/languages/go/keyword_feature.test
                +++ /dev/null
                @@ -1,59 +0,0 @@
                -break
                -case
                -chan
                -const
                -continue
                -default
                -defer
                -else
                -fallthrough
                -for
                -func
                -go
                -goto
                -if
                -import
                -interface
                -map
                -package
                -range
                -return
                -select
                -struct
                -switch
                -type
                -var
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "break"],
                -	["keyword", "case"],
                -	["keyword", "chan"],
                -	["keyword", "const"],
                -	["keyword", "continue"],
                -	["keyword", "default"],
                -	["keyword", "defer"],
                -	["keyword", "else"],
                -	["keyword", "fallthrough"],
                -	["keyword", "for"],
                -	["keyword", "func"],
                -	["keyword", "go"],
                -	["keyword", "goto"],
                -	["keyword", "if"],
                -	["keyword", "import"],
                -	["keyword", "interface"],
                -	["keyword", "map"],
                -	["keyword", "package"],
                -	["keyword", "range"],
                -	["keyword", "return"],
                -	["keyword", "select"],
                -	["keyword", "struct"],
                -	["keyword", "switch"],
                -	["keyword", "type"],
                -	["keyword", "var"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all keywords
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/go/number_feature.test b/node_modules/prismjs/tests/languages/go/number_feature.test
                deleted file mode 100644
                index f21b3e8..0000000
                --- a/node_modules/prismjs/tests/languages/go/number_feature.test
                +++ /dev/null
                @@ -1,43 +0,0 @@
                -42
                -0600
                -0xBadFace
                -170141183460469231731687303715884105727
                -72.40
                -072.40
                -2.71828
                -1.e+0
                -6.67428e-11
                -1E6
                -0i
                -011i
                -0.i
                -2.71828i
                -1.e+0i
                -6.67428e-11i
                -1E6i
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "42"],
                -	["number", "0600"],
                -	["number", "0xBadFace"],
                -	["number", "170141183460469231731687303715884105727"],
                -	["number", "72.40"],
                -	["number", "072.40"],
                -	["number", "2.71828"],
                -	["number", "1.e+0"],
                -	["number", "6.67428e-11"],
                -	["number", "1E6"],
                -	["number", "0i"],
                -	["number", "011i"],
                -	["number", "0.i"],
                -	["number", "2.71828i"],
                -	["number", "1.e+0i"],
                -	["number", "6.67428e-11i"],
                -	["number", "1E6i"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for integers, floats and imaginary numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/go/operator_feature.test b/node_modules/prismjs/tests/languages/go/operator_feature.test
                deleted file mode 100644
                index cda5386..0000000
                --- a/node_modules/prismjs/tests/languages/go/operator_feature.test
                +++ /dev/null
                @@ -1,27 +0,0 @@
                -* / % ^ ! =
                -*= /= %= ^= != ==
                -+ += ++
                -- -= --
                -| |= ||
                -& &= && &^ &^=
                -> >> >>= >=
                -< << <<= <= <-
                -:= ...
                -
                -----------------------------------------------------
                -
                -[
                -	["operator", "*"], ["operator", "/"], ["operator", "%"], ["operator", "^"], ["operator", "!"], ["operator", "="],
                -	["operator", "*="], ["operator", "/="], ["operator", "%="], ["operator", "^="], ["operator", "!="], ["operator", "=="],
                -	["operator", "+"], ["operator", "+="], ["operator", "++"],
                -	["operator", "-"], ["operator", "-="], ["operator", "--"],
                -	["operator", "|"], ["operator", "|="], ["operator", "||"],
                -	["operator", "&"], ["operator", "&="], ["operator", "&&"], ["operator", "&^"], ["operator", "&^="],
                -	["operator", ">"], ["operator", ">>"], ["operator", ">>="], ["operator", ">="],
                -	["operator", "<"], ["operator", "<<"], ["operator", "<<="], ["operator", "<="], ["operator", "<-"],
                -	["operator", ":="], ["operator", "..."]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all operators.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/go/string_feature.test b/node_modules/prismjs/tests/languages/go/string_feature.test
                deleted file mode 100644
                index 97e3960..0000000
                --- a/node_modules/prismjs/tests/languages/go/string_feature.test
                +++ /dev/null
                @@ -1,37 +0,0 @@
                -'a'
                -'ä'
                -'本'
                -'\t'
                -'\xff'
                -'\u12e4'
                -
                -`abc`
                -`\n
                -\n`
                -"\n"
                -"\""
                -"Hello, world!\n"
                -"日本語"
                -"\xff\u00FF"
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "'a'"],
                -	["string", "'ä'"],
                -	["string", "'本'"],
                -	["string", "'\\t'"],
                -	["string", "'\\xff'"],
                -	["string", "'\\u12e4'"],
                -	["string", "`abc`"],
                -	["string", "`\\n\r\n\\n`"],
                -	["string", "\"\\n\""],
                -	["string", "\"\\\"\""],
                -	["string", "\"Hello, world!\\n\""],
                -	["string", "\"日本語\""],
                -	["string", "\"\\xff\\u00FF\""]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for runes and strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/graphql/attr-name_feature.test b/node_modules/prismjs/tests/languages/graphql/attr-name_feature.test
                deleted file mode 100644
                index 7f976e6..0000000
                --- a/node_modules/prismjs/tests/languages/graphql/attr-name_feature.test
                +++ /dev/null
                @@ -1,27 +0,0 @@
                -{
                -	zuck: user(id: 4) {
                -		name
                -	}
                -}
                -
                -----------------------------------------------------
                -
                -[
                -	["punctuation", "{"],
                -	["attr-name", "zuck"],
                -	["punctuation", ":"],
                -	" user",
                -	["punctuation", "("],
                -	["attr-name", "id"],
                -	["punctuation", ":"],
                -	["number", "4"],
                -	["punctuation", ")"],
                -	["punctuation", "{"],
                -	"\r\n\t\tname\r\n\t",
                -	["punctuation", "}"],
                -	["punctuation", "}"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for aliases, parameter names, etc.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/graphql/boolean_feature.test b/node_modules/prismjs/tests/languages/graphql/boolean_feature.test
                deleted file mode 100644
                index 4019c44..0000000
                --- a/node_modules/prismjs/tests/languages/graphql/boolean_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -true
                -false
                -
                -----------------------------------------------------
                -
                -[
                -	["boolean", "true"],
                -	["boolean", "false"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for booleans.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/graphql/comment_feature.test b/node_modules/prismjs/tests/languages/graphql/comment_feature.test
                deleted file mode 100644
                index 054d602..0000000
                --- a/node_modules/prismjs/tests/languages/graphql/comment_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -#
                -# foobar
                -
                -----------------------------------------------------
                -
                -[
                -	["comment", "#"],
                -	["comment", "# foobar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/graphql/directive_feature.test b/node_modules/prismjs/tests/languages/graphql/directive_feature.test
                deleted file mode 100644
                index ca9b700..0000000
                --- a/node_modules/prismjs/tests/languages/graphql/directive_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -@skip
                -@include
                -
                -----------------------------------------------------
                -
                -[
                -	["directive", "@skip"],
                -	["directive", "@include"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for directives
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/graphql/keyword_feature.test b/node_modules/prismjs/tests/languages/graphql/keyword_feature.test
                deleted file mode 100644
                index 06d16f2..0000000
                --- a/node_modules/prismjs/tests/languages/graphql/keyword_feature.test
                +++ /dev/null
                @@ -1,24 +0,0 @@
                -query
                -fragment
                -mutation
                -fragment foo on Bar
                -... on Foo
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "query"],
                -	["keyword", "fragment"],
                -	["keyword", "mutation"],
                -	["keyword", "fragment"],
                -	" foo ",
                -	["keyword", "on"],
                -	" Bar\r\n",
                -	["operator", "..."],
                -	["keyword", "on"],
                -	" Foo"
                -]
                -
                -----------------------------------------------------
                -
                -Checks for keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/graphql/number_feature.test b/node_modules/prismjs/tests/languages/graphql/number_feature.test
                deleted file mode 100644
                index c58cc24..0000000
                --- a/node_modules/prismjs/tests/languages/graphql/number_feature.test
                +++ /dev/null
                @@ -1,23 +0,0 @@
                -0
                -42
                --5
                -3.14159
                -5e4
                -6E-78
                -0.3e+1
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "0"],
                -	["number", "42"],
                -	["number", "-5"],
                -	["number", "3.14159"],
                -	["number", "5e4"],
                -	["number", "6E-78"],
                -	["number", "0.3e+1"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/graphql/string_feature.test b/node_modules/prismjs/tests/languages/graphql/string_feature.test
                deleted file mode 100644
                index a3d26be..0000000
                --- a/node_modules/prismjs/tests/languages/graphql/string_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -""
                -"foo bar"
                -"foo\"bar\\baz"
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "\"\""],
                -	["string", "\"foo bar\""],
                -	["string", "\"foo\\\"bar\\\\baz\""]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/graphql/variable_feature.test b/node_modules/prismjs/tests/languages/graphql/variable_feature.test
                deleted file mode 100644
                index 642d173..0000000
                --- a/node_modules/prismjs/tests/languages/graphql/variable_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -$foo
                -$Foo_bar42
                -
                -----------------------------------------------------
                -
                -[
                -	["variable", "$foo"],
                -	["variable", "$Foo_bar42"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for variables.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/groovy/annotation_feature.test b/node_modules/prismjs/tests/languages/groovy/annotation_feature.test
                deleted file mode 100644
                index f956c52..0000000
                --- a/node_modules/prismjs/tests/languages/groovy/annotation_feature.test
                +++ /dev/null
                @@ -1,17 +0,0 @@
                -@BaseScript MyBaseClass baseScript
                -@DelegatesTo(EmailSpec)
                -
                -----------------------------------------------------
                -
                -[
                -	["annotation", "@BaseScript"],
                -	" MyBaseClass baseScript\r\n",
                -	["annotation", "@DelegatesTo"],
                -	["punctuation", "("],
                -	"EmailSpec",
                -	["punctuation", ")"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for annotations.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/groovy/issue1049.js b/node_modules/prismjs/tests/languages/groovy/issue1049.js
                deleted file mode 100644
                index 2ce8153..0000000
                --- a/node_modules/prismjs/tests/languages/groovy/issue1049.js
                +++ /dev/null
                @@ -1,8 +0,0 @@
                -module.exports = {
                -	'"&"': '"&amp;"',
                -	'"&&"': '"&amp;&amp;"',
                -	'"<"': '"&lt;"',
                -	'"<<"': '"&lt;&lt;"',
                -	'"&lt;"': '"&amp;lt;"',
                -	'">"': '"&gt;"',
                -};
                diff --git a/node_modules/prismjs/tests/languages/groovy/keyword_feature.test b/node_modules/prismjs/tests/languages/groovy/keyword_feature.test
                deleted file mode 100644
                index 57b7e16..0000000
                --- a/node_modules/prismjs/tests/languages/groovy/keyword_feature.test
                +++ /dev/null
                @@ -1,61 +0,0 @@
                -as def in abstract
                -assert boolean break
                -byte case catch char
                -class;
                -const continue
                -default do double else
                -enum
                -extends;
                -final
                -finally float for goto
                -if
                -implements;
                -import
                -instanceof;
                -int
                -interface;
                -long native
                -new;
                -package private protected
                -public return short
                -static strictfp super
                -switch synchronized this
                -throw throws
                -trait;
                -transient
                -try void volatile while
                -
                -----------------------------------------------------
                -
                -[
                -	["keyword", "as"], ["keyword", "def"], ["keyword", "in"], ["keyword", "abstract"],
                -	["keyword", "assert"], ["keyword", "boolean"], ["keyword", "break"],
                -	["keyword", "byte"], ["keyword", "case"], ["keyword", "catch"], ["keyword", "char"],
                -	["keyword", "class"], ["punctuation", ";"],
                -	["keyword", "const"], ["keyword", "continue"],
                -	["keyword", "default"], ["keyword", "do"], ["keyword", "double"], ["keyword", "else"],
                -	["keyword", "enum"],
                -	["keyword", "extends"], ["punctuation", ";"],
                -	["keyword", "final"],
                -	["keyword", "finally"], ["keyword", "float"], ["keyword", "for"], ["keyword", "goto"],
                -	["keyword", "if"],
                -	["keyword", "implements"], ["punctuation", ";"],
                -	["keyword", "import"],
                -	["keyword", "instanceof"], ["punctuation", ";"],
                -	["keyword", "int"],
                -	["keyword", "interface"], ["punctuation", ";"],
                -	["keyword", "long"], ["keyword", "native"],
                -	["keyword", "new"], ["punctuation", ";"],
                -	["keyword", "package"], ["keyword", "private"], ["keyword", "protected"],
                -	["keyword", "public"], ["keyword", "return"], ["keyword", "short"],
                -	["keyword", "static"], ["keyword", "strictfp"], ["keyword", "super"],
                -	["keyword", "switch"], ["keyword", "synchronized"], ["keyword", "this"],
                -	["keyword", "throw"], ["keyword", "throws"],
                -	["keyword", "trait"], ["punctuation", ";"],
                -	["keyword", "transient"],
                -	["keyword", "try"], ["keyword", "void"], ["keyword", "volatile"], ["keyword", "while"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all keywords.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/groovy/number_feature.test b/node_modules/prismjs/tests/languages/groovy/number_feature.test
                deleted file mode 100644
                index bd12ff9..0000000
                --- a/node_modules/prismjs/tests/languages/groovy/number_feature.test
                +++ /dev/null
                @@ -1,43 +0,0 @@
                -0b0110
                -0b0110_1111_0000
                -0b01G 0b01L 0b01I
                -0b01D 0b01F
                -
                -0xBABE
                -0xBad_Face
                -0x1.8p1
                -0xa.fp-2
                -
                -42_000
                -3.14_15_9
                -1.2e3
                -3E+1
                -4E-2
                -42g 42l 42i
                -42d 42f
                -
                -----------------------------------------------------
                -
                -[
                -	["number", "0b0110"],
                -	["number", "0b0110_1111_0000"],
                -	["number", "0b01G"], ["number", "0b01L"], ["number", "0b01I"],
                -	["number", "0b01D"], ["number", "0b01F"],
                -
                -	["number", "0xBABE"],
                -	["number", "0xBad_Face"],
                -	["number", "0x1.8p1"],
                -	["number", "0xa.fp-2"],
                -
                -	["number", "42_000"],
                -	["number", "3.14_15_9"],
                -	["number", "1.2e3"],
                -	["number", "3E+1"],
                -	["number", "4E-2"],
                -	["number", "42g"], ["number", "42l"], ["number", "42i"],
                -	["number", "42d"], ["number", "42f"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for binary, hexadecimal and decimal numbers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/groovy/operator_feature.test b/node_modules/prismjs/tests/languages/groovy/operator_feature.test
                deleted file mode 100644
                index cce07a9..0000000
                --- a/node_modules/prismjs/tests/languages/groovy/operator_feature.test
                +++ /dev/null
                @@ -1,45 +0,0 @@
                -~
                -= == =~ ==~
                -? ?. ?:
                -* ** *. *= **=
                -. .@ .&
                -5..8
                -5..<8
                -- -- -= ->
                -+ ++ +=
                -! !=
                -< << <<= <= <=>
                -> >> >>> >>= >>>= >=
                -& && &=
                -| || |=
                -/
                -/=
                -^ ^=
                -% %=
                -
                -----------------------------------------------------
                -
                -[
                -	["operator", "~"],
                -	["operator", "="], ["operator", "=="], ["operator", "=~"], ["operator", "==~"],
                -	["operator", "?"], ["operator", "?."], ["operator", "?:"],
                -	["operator", "*"], ["operator", "**"], ["operator", "*."], ["operator", "*="], ["operator", "**="],
                -	["operator", "."], ["operator", ".@"], ["operator", ".&"],
                -	["number", "5"], ["operator", ".."], ["number", "8"],
                -	["number", "5"], ["operator", "..<"], ["number", "8"],
                -	["operator", "-"], ["operator", "--"], ["operator", "-="], ["operator", "->"],
                -	["operator", "+"], ["operator", "++"], ["operator", "+="],
                -	["operator", "!"], ["operator", "!="],
                -	["operator", "<"], ["operator", "<<"], ["operator", "<<="], ["operator", "<="], ["operator", "<=>"],
                -	["operator", ">"], ["operator", ">>"], ["operator", ">>>"], ["operator", ">>="], ["operator", ">>>="], ["operator", ">="],
                -	["operator", "&"], ["operator", "&&"], ["operator", "&="],
                -	["operator", "|"], ["operator", "||"], ["operator", "|="],
                -	["operator", "/"],
                -	["operator", "/="],
                -	["operator", "^"], ["operator", "^="],
                -	["operator", "%"], ["operator", "%="]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all operators.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/groovy/shebang_feature.test b/node_modules/prismjs/tests/languages/groovy/shebang_feature.test
                deleted file mode 100644
                index c5806eb..0000000
                --- a/node_modules/prismjs/tests/languages/groovy/shebang_feature.test
                +++ /dev/null
                @@ -1,13 +0,0 @@
                -#!foobar
                -#!/usr/bin/env groovy
                -
                -----------------------------------------------------
                -
                -[
                -	["shebang", "#!foobar"],
                -	["shebang", "#!/usr/bin/env groovy"]
                -]
                -
                -----------------------------------------------------
                -
                -Check for shebang comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/groovy/spock-block_feature.test b/node_modules/prismjs/tests/languages/groovy/spock-block_feature.test
                deleted file mode 100644
                index 5cc72fe..0000000
                --- a/node_modules/prismjs/tests/languages/groovy/spock-block_feature.test
                +++ /dev/null
                @@ -1,25 +0,0 @@
                -setup:
                -given:
                -when:
                -then:
                -and:
                -cleanup:
                -expect:
                -where:
                -
                -----------------------------------------------------
                -
                -[
                -	["spock-block", "setup:"],
                -	["spock-block", "given:"],
                -	["spock-block", "when:"],
                -	["spock-block", "then:"],
                -	["spock-block", "and:"],
                -	["spock-block", "cleanup:"],
                -	["spock-block", "expect:"],
                -	["spock-block", "where:"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all spock blocks.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/groovy/string-interpolation_feature.js b/node_modules/prismjs/tests/languages/groovy/string-interpolation_feature.js
                deleted file mode 100644
                index ddecdfd..0000000
                --- a/node_modules/prismjs/tests/languages/groovy/string-interpolation_feature.js
                +++ /dev/null
                @@ -1,28 +0,0 @@
                -module.exports = {
                -	// Double quoted: interpolation
                -	'"$foo"': '"$foo"',
                -	'"${42}"': '"${42}"',
                -	// Triple double quoted: interpolation
                -	'"""$foo"""': '"""$foo"""',
                -	'"""${42}"""': '"""${42}"""',
                -	// Slashy string: interpolation
                -	'/$foo/': '/$foo/',
                -	'/${42}/': '/${42}/',
                -	// Dollar slashy string: interpolation
                -	'$/$foo/$': '$/$foo/$',
                -	'$/${42}/$': '$/${42}/$',
                -
                -	// Double quoted: no interpolation (escaped)
                -	'"\\$foo \\${42}"': '"\\$foo \\${42}"',
                -	// Triple double quoted: no interpolation (escaped)
                -	'"""\\$foo \\${42}"""': '"""\\$foo \\${42}"""',
                -	// Slashy string: no interpolation (escaped)
                -	'/\\$foo \\${42}/': '/\\$foo \\${42}/',
                -	// Dollar slashy string: no interpolation (escaped)
                -	'$/$$foo $${42}/$': '$/$$foo $${42}/$',
                -
                -	// Single quoted string: no interpolation
                -	'\'$foo ${42}\'': '\'$foo ${42}\'',
                -	// Triple single quoted string: no interpolation
                -	'\'\'\'$foo ${42}\'\'\'': '\'\'\'$foo ${42}\'\'\''
                -};
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/groovy/string_feature.test b/node_modules/prismjs/tests/languages/groovy/string_feature.test
                deleted file mode 100644
                index 639db82..0000000
                --- a/node_modules/prismjs/tests/languages/groovy/string_feature.test
                +++ /dev/null
                @@ -1,60 +0,0 @@
                -""""""
                -"""foo"""
                -"""foo
                -bar"""
                -
                -''''''
                -'''foo'''
                -'''foo
                -bar'''
                -
                -""
                -"fo\"o"
                -''
                -'fo\'o'
                -
                -/foo/
                -/fo\/o/
                -
                -$/fo$/$o/$
                -$/foo
                -bar/$
                -"foo /* comment */ bar"
                -'foo // bar'
                -'''foo
                -/* comment */
                -bar'''
                -"""foo
                -// comment
                -bar"""
                -
                -----------------------------------------------------
                -
                -[
                -	["string", "\"\"\"\"\"\""],
                -	["string", "\"\"\"foo\"\"\""],
                -	["string", "\"\"\"foo\r\nbar\"\"\""],
                -	["string", "''''''"],
                -	["string", "'''foo'''"],
                -	["string", "'''foo\r\nbar'''"],
                -
                -	["string", "\"\""],
                -	["string", "\"fo\\\"o\""],
                -	["string", "''"],
                -	["string", "'fo\\'o'"],
                -
                -	["string", "/foo/"],
                -	["string", "/fo\\/o/"],
                -
                -	["string", "$/fo$/$o/$"],
                -	["string", "$/foo\r\nbar/$"],
                -	["string", "\"foo /* comment */ bar\""],
                -	["string", "'foo // bar'"],
                -	["string", "'''foo\r\n/* comment */\r\nbar'''"],
                -	["string", "\"\"\"foo\r\n// comment\r\nbar\"\"\""]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for single quoted, triple single quoted, double quoted,
                -triple double quoted, slashy and dollar slashy strings.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/haml/code_feature.test b/node_modules/prismjs/tests/languages/haml/code_feature.test
                deleted file mode 100644
                index 51315e6..0000000
                --- a/node_modules/prismjs/tests/languages/haml/code_feature.test
                +++ /dev/null
                @@ -1,19 +0,0 @@
                -~ 42
                -- 42
                -= 42
                -&= 42
                -!= 42
                -
                -----------------------------------------------------
                -
                -[
                -	["punctuation", "~"], ["code", [["number", "42"]]],
                -	["punctuation", "-"], ["code", [["number", "42"]]],
                -	["punctuation", "="], ["code", [["number", "42"]]],
                -	["punctuation", "&="], ["code", [["number", "42"]]],
                -	["punctuation", "!="], ["code", [["number", "42"]]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for single-line code.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/haml/doctype_feature.test b/node_modules/prismjs/tests/languages/haml/doctype_feature.test
                deleted file mode 100644
                index 5f5a731..0000000
                --- a/node_modules/prismjs/tests/languages/haml/doctype_feature.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -!!!
                -!!! 5
                -!!! Strict
                -
                -----------------------------------------------------
                -
                -[
                -	["doctype", "!!!"],
                -	["doctype", "!!! 5"],
                -	["doctype", "!!! Strict"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for doctypes.
                diff --git a/node_modules/prismjs/tests/languages/haml/interpolation_feature.test b/node_modules/prismjs/tests/languages/haml/interpolation_feature.test
                deleted file mode 100644
                index ed13c87..0000000
                --- a/node_modules/prismjs/tests/languages/haml/interpolation_feature.test
                +++ /dev/null
                @@ -1,21 +0,0 @@
                -#{ 42 }
                -#{ "foobar" }
                -
                -----------------------------------------------------
                -
                -[
                -	["interpolation", [
                -		["delimiter", "#{"],
                -		["number", "42"],
                -		["delimiter", "}"]
                -	]],
                -	["interpolation", [
                -		["delimiter", "#{"],
                -		["string", ["\"foobar\""]],
                -		["delimiter", "}"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for interpolation in plain text.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/haml/multiline-code_feature.test b/node_modules/prismjs/tests/languages/haml/multiline-code_feature.test
                deleted file mode 100644
                index 06cb2b4..0000000
                --- a/node_modules/prismjs/tests/languages/haml/multiline-code_feature.test
                +++ /dev/null
                @@ -1,58 +0,0 @@
                -	~ 1,
                -	  1,
                -	  1
                -~ 2 |
                -  2 |
                -  2 |
                -
                -- 3,
                -  3,
                -  3
                -	- 4 |
                -	  4 |
                -	  4 |
                -
                -  = 5,
                -    5,
                -    5
                -= 6 |
                -  6 |
                -  6 |
                -
                -&= 7,
                -   7,
                -   7
                -  &= 8 |
                -     8 |
                -     8 |
                -
                -!= 9,
                -   9,
                -   9
                -!= 10 |
                -   10 |
                -   10 |
                -
                -----------------------------------------------------
                -
                -[
                -	["punctuation", "~"], ["multiline-code", [["number", "1"], ["punctuation", ","], ["number", "1"], ["punctuation", ","], ["number", "1"]]],
                -	["punctuation", "~"], ["multiline-code", [["number", "2"], ["operator", "|"], ["number", "2"], ["operator", "|"], ["number", "2"], ["operator", "|"]]],
                -    
                -	["punctuation", "-"], ["multiline-code", [["number", "3"], ["punctuation", ","], ["number", "3"], ["punctuation", ","], ["number", "3"]]],
                -    ["punctuation", "-"], ["multiline-code", [["number", "4"], ["operator", "|"], ["number", "4"], ["operator", "|"], ["number", "4"], ["operator", "|"]]],
                -    
                -    ["punctuation", "="], ["multiline-code", [["number", "5"], ["punctuation", ","], ["number", "5"], ["punctuation", ","], ["number", "5"]]],
                -	["punctuation", "="], ["multiline-code", [["number", "6"], ["operator", "|"], ["number", "6"], ["operator", "|"], ["number", "6"], ["operator", "|"]]],
                -	
                -	["punctuation", "&="], ["multiline-code", [["number", "7"], ["punctuation", ","], ["number", "7"], ["punctuation", ","], ["number", "7"]]],
                -	["punctuation", "&="], ["multiline-code", [["number", "8"], ["operator", "|"], ["number", "8"], ["operator", "|"], ["number", "8"], ["operator", "|"]]],
                -	
                -	["punctuation", "!="], ["multiline-code", [["number", "9"], ["punctuation", ","], ["number", "9"], ["punctuation", ","], ["number", "9"]]],
                -	["punctuation", "!="], ["multiline-code", [["number", "10"], ["operator", "|"], ["number", "10"], ["operator", "|"], ["number", "10"], ["operator", "|"]]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for inline code, with all possible prefixes, some not indented, some
                -indented with two spaces, some indented with one tab.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/haml/multiline-comment_feature.test b/node_modules/prismjs/tests/languages/haml/multiline-comment_feature.test
                deleted file mode 100644
                index 809aaff..0000000
                --- a/node_modules/prismjs/tests/languages/haml/multiline-comment_feature.test
                +++ /dev/null
                @@ -1,46 +0,0 @@
                -/
                -
                -/ foo
                -
                -/foo
                - bar
                -
                -  /foo
                -   bar
                -
                -	/foo
                -	 bar
                -
                --#
                -
                --# foo
                -
                --#foo
                - bar
                -
                -  -#foo
                -   bar
                -
                -	-#foo
                -	 bar
                -
                -----------------------------------------------------
                -
                -[
                -	["multiline-comment", "/"],
                -	["multiline-comment", "/ foo"],
                -	["multiline-comment", "/foo\r\n bar"],
                -	["multiline-comment", "/foo\r\n   bar"],
                -	["multiline-comment", "/foo\r\n\t bar"],
                -
                -	["multiline-comment", "-#"],
                -    ["multiline-comment", "-# foo"],
                -    ["multiline-comment", "-#foo\r\n bar"],
                -    ["multiline-comment", "-#foo\r\n   bar"],
                -    ["multiline-comment", "-#foo\r\n\t bar"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for multi-line comments, not indented, indented with two spaces and
                -indented with one tab.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/haml/tag_feature.test b/node_modules/prismjs/tests/languages/haml/tag_feature.test
                deleted file mode 100644
                index e5927d0..0000000
                --- a/node_modules/prismjs/tests/languages/haml/tag_feature.test
                +++ /dev/null
                @@ -1,161 +0,0 @@
                -%one
                -	%two
                -
                -%div#things
                -%div.articles
                -%div.article.title
                -
                -%script{:type => "text/javascript",
                -        :src  => "javascripts/script_#{42}"}
                -
                -%div{:id => [@item.type, @item.number]}
                -
                -%a(title=@title href=href)
                -%input(selected)
                -
                -%html{html_attrs('fr-fr')}
                -
                -%div[@user, :greeting]
                -	%bar[290]/
                -
                -%div#Article.article.entry{:id => @article.number}
                -
                -#collection
                -	.item
                -
                -%br/
                -%blockquote<
                -%img>
                -
                -----------------------------------------------------
                -
                -[
                -	["tag", ["%one"]],
                -	["tag", ["%two"]],
                -
                -	["tag", ["%div#things"]],
                -	["tag", ["%div.articles"]],
                -	["tag", ["%div.article.title"]],
                -
                -	["tag", [
                -		"%script",
                -		["attributes", [
                -			["punctuation", "{"],
                -			["symbol", ":type"],
                -			["operator", "="], ["operator", ">"],
                -			["string", ["\"text/javascript\""]],
                -			["punctuation", ","],
                -			["symbol", ":src"],
                -			["operator", "="], ["operator", ">"],
                -			["string", [
                -				"\"javascripts/script_",
                -				["interpolation", [
                -					["delimiter", "#{"],
                -					["number", "42"],
                -					["delimiter", "}"]
                -				]],
                -				"\""
                -			]],
                -			["punctuation", "}"]
                -		]]
                -	]],
                -
                -	["tag", [
                -		"%div",
                -		["attributes", [
                -			["punctuation", "{"],
                -			["symbol", ":id"],
                -			["operator", "="], ["operator", ">"],
                -			["punctuation", "["],
                -			["variable", "@item"],
                -			["punctuation", "."],
                -			"type",
                -			["punctuation", ","],
                -			["variable", "@item"],
                -			["punctuation", "."],
                -			"number",
                -			["punctuation", "]"],
                -			["punctuation", "}"]
                -		]]
                -	]],
                -
                -	["tag", [
                -		"%a",
                -		["attributes", [
                -			["punctuation", "("],
                -			["attr-name", "title"],
                -			["punctuation", "="],
                -			["attr-value", "@title"],
                -			["attr-name", "href"],
                -			["punctuation", "="],
                -            ["attr-value", "href"],
                -            ["punctuation", ")"]
                -		]]
                -	]],
                -	["tag", [
                -		"%input",
                -		["attributes", [
                -			["punctuation", "("],
                -			["attr-name", "selected"],
                -			["punctuation", ")"]
                -		]]
                -	]],
                -
                -	["tag", [
                -		"%html",
                -		["attributes", [
                -			["punctuation", "{"],
                -			["function", "html_attrs"],
                -			["punctuation", "("],
                -			["string", ["'fr-fr'"]],
                -			["punctuation", ")"],
                -			["punctuation", "}"]
                -		]]
                -	]],
                -
                -	["tag", [
                -		"%div",
                -		["attributes", [
                -			["punctuation", "["],
                -			["variable", "@user"],
                -			["punctuation", ","],
                -			["symbol", ":greeting"],
                -			["punctuation", "]"]
                -		]]
                -	]],
                -	["tag", [
                -		"%bar",
                -		["attributes", [
                -			["punctuation", "["],
                -			["number", "290"],
                -			["punctuation", "]"]
                -		]],
                -		"/"
                -	]],
                -
                -	["tag", [
                -		"%div#Article.article.entry",
                -		["attributes", [
                -			["punctuation", "{"],
                -			["symbol", ":id"],
                -			["operator", "="], ["operator", ">"],
                -			["variable", "@article"],
                -			["punctuation", "."],
                -			"number",
                -			["punctuation", "}"]
                -		]]
                -	]],
                -
                -	["tag", ["#collection"]],
                -	["tag", [".item"]],
                -
                -	["tag", ["%br/"]],
                -	["tag", ["%blockquote", ["punctuation", "<"]]],
                -	["tag", ["%img", ["punctuation", ">"]]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for tags: basic element names, attributes, html-style attributes,
                -attribute methods, boolean attributes, class and id shortcuts,
                -implicit div elements, empty tags and whitespace removal.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/handlebars+jade/handlebars_inclusion.test b/node_modules/prismjs/tests/languages/handlebars+jade/handlebars_inclusion.test
                deleted file mode 100644
                index f95ba77..0000000
                --- a/node_modules/prismjs/tests/languages/handlebars+jade/handlebars_inclusion.test
                +++ /dev/null
                @@ -1,15 +0,0 @@
                -:handlebars
                -	{{!comment}}
                -
                -----------------------------------------------------
                -
                -[
                -	["filter-handlebars", [
                -		["filter-name", ":handlebars"],
                -		["handlebars-comment", "{{!comment}}"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for handlebars filter in Jade.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/handlebars/block_feature.test b/node_modules/prismjs/tests/languages/handlebars/block_feature.test
                deleted file mode 100644
                index dd2c74e..0000000
                --- a/node_modules/prismjs/tests/languages/handlebars/block_feature.test
                +++ /dev/null
                @@ -1,23 +0,0 @@
                -{{#each comments}}{{/each}}
                -{{~#if isActive~}}{{~/if~}}
                -
                -----------------------------------------------------
                -
                -[
                -	["handlebars", [
                -		["delimiter", "{{"], ["block", "#each"], ["variable", "comments"], ["delimiter", "}}"]
                -	]],
                -	["handlebars", [
                -		["delimiter", "{{"], ["block", "/each"], ["delimiter", "}}"]
                -	]],
                -	["handlebars", [
                -		["delimiter", "{{"], ["punctuation", "~"], ["block", "#if"], ["variable", "isActive"], ["punctuation", "~"], ["delimiter", "}}"]
                -	]],
                -	["handlebars", [
                -		["delimiter", "{{"], ["punctuation", "~"], ["block", "/if"], ["punctuation", "~"], ["delimiter", "}}"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for block helpers.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/handlebars/boolean_feature.test b/node_modules/prismjs/tests/languages/handlebars/boolean_feature.test
                deleted file mode 100644
                index 1f252a1..0000000
                --- a/node_modules/prismjs/tests/languages/handlebars/boolean_feature.test
                +++ /dev/null
                @@ -1,17 +0,0 @@
                -{{ true }}
                -{{{ false }}}
                -
                -----------------------------------------------------
                -
                -[
                -	["handlebars", [
                -		["delimiter", "{{"], ["boolean", "true"], ["delimiter", "}}"]
                -	]],
                -	["handlebars", [
                -		["delimiter", "{{{"], ["boolean", "false"], ["delimiter", "}}}"]
                -	]]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for all booleans.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/handlebars/comment_feature.test b/node_modules/prismjs/tests/languages/handlebars/comment_feature.test
                deleted file mode 100644
                index 813f978..0000000
                --- a/node_modules/prismjs/tests/languages/handlebars/comment_feature.test
                +++ /dev/null
                @@ -1,19 +0,0 @@
                -{{! foobar}}
                -{{!-- foo bar baz --}}
                -{{! foo
                -bar }}
                -{{!-- foo
                -bar --}}
                -
                -----------------------------------------------------
                -
                -[
                -	["handlebars-comment", "{{! foobar}}"],
                -	["handlebars-comment", "{{!-- foo bar baz --}}"],
                -	["handlebars-comment", "{{! foo\r\nbar }}"],
                -	["handlebars-comment", "{{!-- foo\r\nbar --}}"]
                -]
                -
                -----------------------------------------------------
                -
                -Checks for comments.
                \ No newline at end of file
                diff --git a/node_modules/prismjs/tests/languages/handlebars/handlebars_in_markup_feature.js b/node_modules/prismjs/tests/languages/handlebars/handlebars_in_markup_feature.js
                deleted file mode 100644
                index 13f51db..0000000
                --- a/node_modules/prismjs/tests/languages/handlebars/handlebars_in_markup_feature.js
                +++ /dev/null
                @@ -1,4 +0,0 @@
                -module.exports = {
                -	'
                {{{intro}}}
                ': '<div>{{{intro}}}</div>', - '
                ': '<div class="{{foo}}">' -}; \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/handlebars/number_feature.test b/node_modules/prismjs/tests/languages/handlebars/number_feature.test deleted file mode 100644 index aa894ec..0000000 --- a/node_modules/prismjs/tests/languages/handlebars/number_feature.test +++ /dev/null @@ -1,29 +0,0 @@ -{{ 0xBadFace }} -{{{ 42 }}} -{{{ 4e2 }}} -{{ 3.5e+1 }} -{{ 0.15e-9 }} - ----------------------------------------------------- - -[ - ["handlebars", [ - ["delimiter", "{{"], ["number", "0xBadFace"], ["delimiter", "}}"] - ]], - ["handlebars", [ - ["delimiter", "{{{"], ["number", "42"], ["delimiter", "}}}"] - ]], - ["handlebars", [ - ["delimiter", "{{{"], ["number", "4e2"], ["delimiter", "}}}"] - ]], - ["handlebars", [ - ["delimiter", "{{"], ["number", "3.5e+1"], ["delimiter", "}}"] - ]], - ["handlebars", [ - ["delimiter", "{{"], ["number", "0.15e-9"], ["delimiter", "}}"] - ]] -] - ----------------------------------------------------- - -Checks for decimal and hexadecimal numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/handlebars/string_feature.test b/node_modules/prismjs/tests/languages/handlebars/string_feature.test deleted file mode 100644 index f9f9d70..0000000 --- a/node_modules/prismjs/tests/languages/handlebars/string_feature.test +++ /dev/null @@ -1,25 +0,0 @@ -{{ "" }} -{{{''}}} -{{{"foobar"}}} -{{ 'foobar' }} - ----------------------------------------------------- - -[ - ["handlebars", [ - ["delimiter", "{{"], ["string", "\"\""], ["delimiter", "}}"] - ]], - ["handlebars", [ - ["delimiter", "{{{"], ["string", "''"], ["delimiter", "}}}"] - ]], - ["handlebars", [ - ["delimiter", "{{{"], ["string", "\"foobar\""], ["delimiter", "}}}"] - ]], - ["handlebars", [ - ["delimiter", "{{"], ["string", "'foobar'"], ["delimiter", "}}"] - ]] -] - ----------------------------------------------------- - -Checks for strings \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/builtin_feature.test b/node_modules/prismjs/tests/languages/haskell/builtin_feature.test deleted file mode 100644 index c50ca40..0000000 --- a/node_modules/prismjs/tests/languages/haskell/builtin_feature.test +++ /dev/null @@ -1,137 +0,0 @@ -abs acos acosh all and -any appendFile approxRational -asTypeOf asin asinh atan -atan2 atanh basicIORun break -catch ceiling chr compare -concat concatMap const -cos cosh curry cycle -decodeFloat denominator -digitToInt div divMod -drop dropWhile either -elem encodeFloat enumFrom -enumFromThen enumFromThenTo -enumFromTo error even exp -exponent fail filter flip -floatDigits floatRadix -floatRange floor fmap -foldl foldl1 foldr foldr1 -fromDouble fromEnum fromInt -fromInteger fromIntegral -fromRational fst gcd -getChar getContents getLine -group head id inRange index -init intToDigit interact -ioError isAlpha isAlphaNum -isAscii isControl isDenormalized -isDigit isHexDigit isIEEE -isInfinite isLower isNaN -isNegativeZero isOctDigit -isPrint isSpace isUpper iterate -last lcm length lex -lexDigits lexLitChar lines -log logBase lookup map -mapM mapM_ max maxBound -maximum maybe min minBound -minimum mod negate not -notElem null numerator odd -or ord otherwise pack pi -pred primExitWith print -product properFraction -putChar putStr putStrLn quot -quotRem range rangeSize read -readDec readFile readFloat readHex -readIO readInt readList -readLitChar readLn readOct -readParen readSigned reads -readsPrec realToFrac recip -rem repeat replicate return -reverse round scaleFloat -scanl scanl1 scanr scanr1 -seq sequence sequence_ show -showChar showInt showList -showLitChar showParen showSigned -showString shows showsPrec -significand signum sin sinh -snd sort span splitAt sqrt -subtract succ sum tail take -takeWhile tan tanh threadToIOResult -toEnum toInt toInteger -toLower toRational toUpper -truncate uncurry undefined -unlines until unwords -unzip unzip3 userError words -writeFile zip zip3 zipWith -zipWith3 - ----------------------------------------------------- - -[ - ["builtin", "abs"], ["builtin", "acos"], ["builtin", "acosh"], ["builtin", "all"], ["builtin", "and"], - ["builtin", "any"], ["builtin", "appendFile"], ["builtin", "approxRational"], - ["builtin", "asTypeOf"], ["builtin", "asin"], ["builtin", "asinh"], ["builtin", "atan"], - ["builtin", "atan2"], ["builtin", "atanh"], ["builtin", "basicIORun"], ["builtin", "break"], - ["builtin", "catch"], ["builtin", "ceiling"], ["builtin", "chr"], ["builtin", "compare"], - ["builtin", "concat"], ["builtin", "concatMap"], ["builtin", "const"], - ["builtin", "cos"], ["builtin", "cosh"], ["builtin", "curry"], ["builtin", "cycle"], - ["builtin", "decodeFloat"], ["builtin", "denominator"], - ["builtin", "digitToInt"], ["builtin", "div"], ["builtin", "divMod"], - ["builtin", "drop"], ["builtin", "dropWhile"], ["builtin", "either"], - ["builtin", "elem"], ["builtin", "encodeFloat"], ["builtin", "enumFrom"], - ["builtin", "enumFromThen"], ["builtin", "enumFromThenTo"], - ["builtin", "enumFromTo"], ["builtin", "error"], ["builtin", "even"], ["builtin", "exp"], - ["builtin", "exponent"], ["builtin", "fail"], ["builtin", "filter"], ["builtin", "flip"], - ["builtin", "floatDigits"], ["builtin", "floatRadix"], - ["builtin", "floatRange"], ["builtin", "floor"], ["builtin", "fmap"], - ["builtin", "foldl"], ["builtin", "foldl1"], ["builtin", "foldr"], ["builtin", "foldr1"], - ["builtin", "fromDouble"], ["builtin", "fromEnum"], ["builtin", "fromInt"], - ["builtin", "fromInteger"], ["builtin", "fromIntegral"], - ["builtin", "fromRational"], ["builtin", "fst"], ["builtin", "gcd"], - ["builtin", "getChar"], ["builtin", "getContents"], ["builtin", "getLine"], - ["builtin", "group"], ["builtin", "head"], ["builtin", "id"], ["builtin", "inRange"], ["builtin", "index"], - ["builtin", "init"], ["builtin", "intToDigit"], ["builtin", "interact"], - ["builtin", "ioError"], ["builtin", "isAlpha"], ["builtin", "isAlphaNum"], - ["builtin", "isAscii"], ["builtin", "isControl"], ["builtin", "isDenormalized"], - ["builtin", "isDigit"], ["builtin", "isHexDigit"], ["builtin", "isIEEE"], - ["builtin", "isInfinite"], ["builtin", "isLower"], ["builtin", "isNaN"], - ["builtin", "isNegativeZero"], ["builtin", "isOctDigit"], - ["builtin", "isPrint"], ["builtin", "isSpace"], ["builtin", "isUpper"], ["builtin", "iterate"], - ["builtin", "last"], ["builtin", "lcm"], ["builtin", "length"], ["builtin", "lex"], - ["builtin", "lexDigits"], ["builtin", "lexLitChar"], ["builtin", "lines"], - ["builtin", "log"], ["builtin", "logBase"], ["builtin", "lookup"], ["builtin", "map"], - ["builtin", "mapM"], ["builtin", "mapM_"], ["builtin", "max"], ["builtin", "maxBound"], - ["builtin", "maximum"], ["builtin", "maybe"], ["builtin", "min"], ["builtin", "minBound"], - ["builtin", "minimum"], ["builtin", "mod"], ["builtin", "negate"], ["builtin", "not"], - ["builtin", "notElem"], ["builtin", "null"], ["builtin", "numerator"], ["builtin", "odd"], - ["builtin", "or"], ["builtin", "ord"], ["builtin", "otherwise"], ["builtin", "pack"], ["builtin", "pi"], - ["builtin", "pred"], ["builtin", "primExitWith"], ["builtin", "print"], - ["builtin", "product"], ["builtin", "properFraction"], - ["builtin", "putChar"], ["builtin", "putStr"], ["builtin", "putStrLn"], ["builtin", "quot"], - ["builtin", "quotRem"], ["builtin", "range"], ["builtin", "rangeSize"], ["builtin", "read"], - ["builtin", "readDec"], ["builtin", "readFile"], ["builtin", "readFloat"], ["builtin", "readHex"], - ["builtin", "readIO"], ["builtin", "readInt"], ["builtin", "readList"], - ["builtin", "readLitChar"], ["builtin", "readLn"], ["builtin", "readOct"], - ["builtin", "readParen"], ["builtin", "readSigned"], ["builtin", "reads"], - ["builtin", "readsPrec"], ["builtin", "realToFrac"], ["builtin", "recip"], - ["builtin", "rem"], ["builtin", "repeat"], ["builtin", "replicate"], ["builtin", "return"], - ["builtin", "reverse"], ["builtin", "round"], ["builtin", "scaleFloat"], - ["builtin", "scanl"], ["builtin", "scanl1"], ["builtin", "scanr"], ["builtin", "scanr1"], - ["builtin", "seq"], ["builtin", "sequence"], ["builtin", "sequence_"], ["builtin", "show"], - ["builtin", "showChar"], ["builtin", "showInt"], ["builtin", "showList"], - ["builtin", "showLitChar"], ["builtin", "showParen"], ["builtin", "showSigned"], - ["builtin", "showString"], ["builtin", "shows"], ["builtin", "showsPrec"], - ["builtin", "significand"], ["builtin", "signum"], ["builtin", "sin"], ["builtin", "sinh"], - ["builtin", "snd"], ["builtin", "sort"], ["builtin", "span"], ["builtin", "splitAt"], ["builtin", "sqrt"], - ["builtin", "subtract"], ["builtin", "succ"], ["builtin", "sum"], ["builtin", "tail"], ["builtin", "take"], - ["builtin", "takeWhile"], ["builtin", "tan"], ["builtin", "tanh"], ["builtin", "threadToIOResult"], - ["builtin", "toEnum"], ["builtin", "toInt"], ["builtin", "toInteger"], - ["builtin", "toLower"], ["builtin", "toRational"], ["builtin", "toUpper"], - ["builtin", "truncate"], ["builtin", "uncurry"], ["builtin", "undefined"], - ["builtin", "unlines"], ["builtin", "until"], ["builtin", "unwords"], - ["builtin", "unzip"], ["builtin", "unzip3"], ["builtin", "userError"], ["builtin", "words"], - ["builtin", "writeFile"], ["builtin", "zip"], ["builtin", "zip3"], ["builtin", "zipWith"], - ["builtin", "zipWith3"] -] - ----------------------------------------------------- - -Checks for all builtin. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/char_feature.test b/node_modules/prismjs/tests/languages/haskell/char_feature.test deleted file mode 100644 index e4dedc4..0000000 --- a/node_modules/prismjs/tests/languages/haskell/char_feature.test +++ /dev/null @@ -1,17 +0,0 @@ -'a' -'\n' -'\23' -'\xFE' - ----------------------------------------------------- - -[ - ["char", "'a'"], - ["char", "'\\n'"], - ["char", "'\\23'"], - ["char", "'\\xFE'"] -] - ----------------------------------------------------- - -Checks for chars. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/comment_feature.test b/node_modules/prismjs/tests/languages/haskell/comment_feature.test deleted file mode 100644 index d8c8cdd..0000000 --- a/node_modules/prismjs/tests/languages/haskell/comment_feature.test +++ /dev/null @@ -1,14 +0,0 @@ --- foo -{- foo -bar -} - ----------------------------------------------------- - -[ - ["comment", "-- foo"], - ["comment", "{- foo\r\nbar -}"] -] - ----------------------------------------------------- - -Checks for single-line and multi-line comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/constant_feature.test b/node_modules/prismjs/tests/languages/haskell/constant_feature.test deleted file mode 100644 index 06f25f1..0000000 --- a/node_modules/prismjs/tests/languages/haskell/constant_feature.test +++ /dev/null @@ -1,15 +0,0 @@ -Foo -Foo.Bar -Baz.Foobar_42 - ----------------------------------------------------- - -[ - ["constant", "Foo"], - ["constant", "Foo.Bar"], - ["constant", "Baz.Foobar_42"] -] - ----------------------------------------------------- - -Checks for constants. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/hvariable_feature.test b/node_modules/prismjs/tests/languages/haskell/hvariable_feature.test deleted file mode 100644 index defa3ba..0000000 --- a/node_modules/prismjs/tests/languages/haskell/hvariable_feature.test +++ /dev/null @@ -1,15 +0,0 @@ -foo -Foo.bar -Baz.foobar_42 - ----------------------------------------------------- - -[ - ["hvariable", "foo"], - ["hvariable", "Foo.bar"], - ["hvariable", "Baz.foobar_42"] -] - ----------------------------------------------------- - -Checks for hvariables. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/import_statement_feature.test b/node_modules/prismjs/tests/languages/haskell/import_statement_feature.test deleted file mode 100644 index 120fbe7..0000000 --- a/node_modules/prismjs/tests/languages/haskell/import_statement_feature.test +++ /dev/null @@ -1,35 +0,0 @@ -import Foo -import qualified Foobar -import Foo_42.Bar as Foobar -import Foo.Bar as Foo.Baz hiding - ----------------------------------------------------- - -[ - ["import_statement", [ - ["keyword", "import"], - " Foo" - ]], - ["import_statement", [ - ["keyword", "import"], - ["keyword", "qualified"], - " Foobar" - ]], - ["import_statement", [ - ["keyword", "import"], - " Foo_42.Bar ", - ["keyword", "as"], - " Foobar" - ]], - ["import_statement", [ - ["keyword", "import"], - " Foo.Bar ", - ["keyword", "as"], - " Foo.Baz ", - ["keyword", "hiding"] - ]] -] - ----------------------------------------------------- - -Checks for import statement. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/keyword_feature.test b/node_modules/prismjs/tests/languages/haskell/keyword_feature.test deleted file mode 100644 index 0fb3657..0000000 --- a/node_modules/prismjs/tests/languages/haskell/keyword_feature.test +++ /dev/null @@ -1,19 +0,0 @@ -case class data deriving -do else if in infixl -infixr instance let -module newtype of -primitive then type where - ----------------------------------------------------- - -[ - ["keyword", "case"], ["keyword", "class"], ["keyword", "data"], ["keyword", "deriving"], - ["keyword", "do"], ["keyword", "else"], ["keyword", "if"], ["keyword", "in"], ["keyword", "infixl"], - ["keyword", "infixr"], ["keyword", "instance"], ["keyword", "let"], - ["keyword", "module"], ["keyword", "newtype"], ["keyword", "of"], - ["keyword", "primitive"], ["keyword", "then"], ["keyword", "type"], ["keyword", "where"] -] - ----------------------------------------------------- - -Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/number_feature.test b/node_modules/prismjs/tests/languages/haskell/number_feature.test deleted file mode 100644 index f45a0f2..0000000 --- a/node_modules/prismjs/tests/languages/haskell/number_feature.test +++ /dev/null @@ -1,23 +0,0 @@ -42 -3.14159 -2E3 -1.2e-4 -0.9e+1 -0o47 -0xBadFace - ----------------------------------------------------- - -[ - ["number", "42"], - ["number", "3.14159"], - ["number", "2E3"], - ["number", "1.2e-4"], - ["number", "0.9e+1"], - ["number", "0o47"], - ["number", "0xBadFace"] -] - ----------------------------------------------------- - -Checks for decimal, octal and hexadecimal numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/operator_feature.test b/node_modules/prismjs/tests/languages/haskell/operator_feature.test deleted file mode 100644 index 9cd8339..0000000 --- a/node_modules/prismjs/tests/languages/haskell/operator_feature.test +++ /dev/null @@ -1,37 +0,0 @@ -.. -reverse . sort -`foo` -`Foo.bar` -+ - * / -^ ^^ ** -&& || -< <= == /= ->= > \ | -++ : !! -\\ <- -> -= :: => ->> >>= >@> -~ ! @ - ----------------------------------------------------- - -[ - ["operator", ".."], - ["builtin", "reverse"], ["operator", " . "], ["builtin", "sort"], - ["operator", "`foo`"], - ["operator", "`Foo.bar`"], - ["operator", "+"], ["operator", "-"], ["operator", "*"], ["operator", "/"], - ["operator", "^"], ["operator", "^^"], ["operator", "**"], - ["operator", "&&"], ["operator", "||"], - ["operator", "<"], ["operator", "<="], ["operator", "=="], ["operator", "/="], - ["operator", ">="], ["operator", ">"], ["operator", "\\"], ["operator", "|"], - ["operator", "++"], ["operator", ":"], ["operator", "!!"], - ["operator", "\\\\"], ["operator", "<-"], ["operator", "->"], - ["operator", "="], ["operator", "::"], ["operator", "=>"], - ["operator", ">>"], ["operator", ">>="], ["operator", ">@>"], - ["operator", "~"], ["operator", "!"], ["operator", "@"] -] - ----------------------------------------------------- - -Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haskell/string_feature.test b/node_modules/prismjs/tests/languages/haskell/string_feature.test deleted file mode 100644 index 49c2cfb..0000000 --- a/node_modules/prismjs/tests/languages/haskell/string_feature.test +++ /dev/null @@ -1,19 +0,0 @@ -"" -"fo\"o" -"foo \ - \ bar" -"foo -- comment \ - \ bar" - ----------------------------------------------------- - -[ - ["string", "\"\""], - ["string", "\"fo\\\"o\""], - ["string", "\"foo \\\r\n \\ bar\""], - ["string", "\"foo -- comment \\\r\n \\ bar\""] -] - ----------------------------------------------------- - -Checks for strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haxe/keyword_feature.test b/node_modules/prismjs/tests/languages/haxe/keyword_feature.test deleted file mode 100644 index 6a26bd0..0000000 --- a/node_modules/prismjs/tests/languages/haxe/keyword_feature.test +++ /dev/null @@ -1,93 +0,0 @@ -this -abstract -as -break -case -cast -catch -class -continue -default -do -dynamic -else -enum -extends -extern -from -for -function -if -implements -import -in -inline -interface -macro -new -null -override -public -private -return -static -super -switch -throw -to -try -typedef -using -var -while - ----------------------------------------------------- - -[ - ["keyword", "this"], - ["keyword", "abstract"], - ["keyword", "as"], - ["keyword", "break"], - ["keyword", "case"], - ["keyword", "cast"], - ["keyword", "catch"], - ["keyword", "class"], - ["keyword", "continue"], - ["keyword", "default"], - ["keyword", "do"], - ["keyword", "dynamic"], - ["keyword", "else"], - ["keyword", "enum"], - ["keyword", "extends"], - ["keyword", "extern"], - ["keyword", "from"], - ["keyword", "for"], - ["keyword", "function"], - ["keyword", "if"], - ["keyword", "implements"], - ["keyword", "import"], - ["keyword", "in"], - ["keyword", "inline"], - ["keyword", "interface"], - ["keyword", "macro"], - ["keyword", "new"], - ["keyword", "null"], - ["keyword", "override"], - ["keyword", "public"], - ["keyword", "private"], - ["keyword", "return"], - ["keyword", "static"], - ["keyword", "super"], - ["keyword", "switch"], - ["keyword", "throw"], - ["keyword", "to"], - ["keyword", "try"], - ["keyword", "typedef"], - ["keyword", "using"], - ["keyword", "var"], - ["keyword", "while"] -] - ----------------------------------------------------- - -Checks for keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haxe/metadata_feature.test b/node_modules/prismjs/tests/languages/haxe/metadata_feature.test deleted file mode 100644 index 312114d..0000000 --- a/node_modules/prismjs/tests/languages/haxe/metadata_feature.test +++ /dev/null @@ -1,15 +0,0 @@ -@author("Nicolas") -@debug -@:noCompletion - ----------------------------------------------------- - -[ - ["metadata", "@author"], ["punctuation", "("], ["string", ["\"Nicolas\""]], ["punctuation", ")"], - ["metadata", "@debug"], - ["metadata", "@:noCompletion"] -] - ----------------------------------------------------- - -Checks for metadata. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haxe/operator_feature.test b/node_modules/prismjs/tests/languages/haxe/operator_feature.test deleted file mode 100644 index 6963f80..0000000 --- a/node_modules/prismjs/tests/languages/haxe/operator_feature.test +++ /dev/null @@ -1,29 +0,0 @@ -... -+ ++ -- -- -> -= == -! != -& && -| || -< <= << -> >= >> -* / % ~ ^ - ----------------------------------------------------- - -[ - ["operator", "..."], - ["operator", "+"], ["operator", "++"], - ["operator", "-"], ["operator", "--"], ["operator", "->"], - ["operator", "="], ["operator", "=="], - ["operator", "!"], ["operator", "!="], - ["operator", "&"], ["operator", "&&"], - ["operator", "|"], ["operator", "||"], - ["operator", "<"], ["operator", "<="], ["operator", "<<"], - ["operator", ">"], ["operator", ">="], ["operator", ">>"], - ["operator", "*"], ["operator", "/"], ["operator", "%"], ["operator", "~"], ["operator", "^"] -] - ----------------------------------------------------- - -Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haxe/preprocessor_feature.test b/node_modules/prismjs/tests/languages/haxe/preprocessor_feature.test deleted file mode 100644 index 3cadacf..0000000 --- a/node_modules/prismjs/tests/languages/haxe/preprocessor_feature.test +++ /dev/null @@ -1,17 +0,0 @@ -#if -#elseif -#else -#end - ----------------------------------------------------- - -[ - ["preprocessor", "#if"], - ["preprocessor", "#elseif"], - ["preprocessor", "#else"], - ["preprocessor", "#end"] -] - ----------------------------------------------------- - -Checks for preprocessor directives. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haxe/regex_feature.test b/node_modules/prismjs/tests/languages/haxe/regex_feature.test deleted file mode 100644 index 577cab7..0000000 --- a/node_modules/prismjs/tests/languages/haxe/regex_feature.test +++ /dev/null @@ -1,15 +0,0 @@ -~/ha\/xe/i -~/[A-Z0-9._%-]+@[A-Z0-9.-]+.[A-Z][A-Z][A-Z]?/i -~/(dog|fox)/igmsu - ----------------------------------------------------- - -[ - ["regex", "~/ha\\/xe/i"], - ["regex", "~/[A-Z0-9._%-]+@[A-Z0-9.-]+.[A-Z][A-Z][A-Z]?/i"], - ["regex", "~/(dog|fox)/igmsu"] -] - ----------------------------------------------------- - -Checks for regexes. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haxe/reification_feature.test b/node_modules/prismjs/tests/languages/haxe/reification_feature.test deleted file mode 100644 index 6d382b7..0000000 --- a/node_modules/prismjs/tests/languages/haxe/reification_feature.test +++ /dev/null @@ -1,16 +0,0 @@ -$e -${4+2} - ----------------------------------------------------- - -[ - ["reification", "$e"], - ["reification", "$"], - ["punctuation", "{"], - ["number", "4"], ["operator", "+"], ["number", "2"], - ["punctuation", "}"] -] - ----------------------------------------------------- - -Checks for reification. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/haxe/string_feature.test b/node_modules/prismjs/tests/languages/haxe/string_feature.test deleted file mode 100644 index 61f1985..0000000 --- a/node_modules/prismjs/tests/languages/haxe/string_feature.test +++ /dev/null @@ -1,37 +0,0 @@ -"" -"Foo -\"bar\" -baz" -"$bar ${4+2}" -'' -'Foo -\'bar\' -baz' - ----------------------------------------------------- - -[ - ["string", ["\"\""]], - ["string", ["\"Foo\r\n\\\"bar\\\"\r\nbaz\""]], - ["string", [ - "\"", - ["interpolation", [ - ["interpolation", "$bar"] - ]], - ["interpolation", [ - ["interpolation", "$"], - ["punctuation", "{"], - ["number", "4"], - ["operator", "+"], - ["number", "2"], - ["punctuation", "}"] - ]], - "\"" - ]], - ["string", ["''"]], - ["string", ["'Foo\r\n\\'bar\\'\r\nbaz'"]] -] - ----------------------------------------------------- - -Checks for strings and string interpolation. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/http/header-name_feature.test b/node_modules/prismjs/tests/languages/http/header-name_feature.test deleted file mode 100644 index cd2612f..0000000 --- a/node_modules/prismjs/tests/languages/http/header-name_feature.test +++ /dev/null @@ -1,24 +0,0 @@ -Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 -Accept-Encoding: gzip, deflate -Server: GitHub.com -Date: Mon, 22 Dec 2014 18:25:30 GMT -Content-Type: text/html; charset=utf-8 - ----------------------------------------------------- - -[ - ["header-name", "Accept-Language:"], - " fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3\r\n", - ["header-name", "Accept-Encoding:"], - " gzip, deflate\r\n", - ["header-name", "Server:"], - " GitHub.com\r\n", - ["header-name", "Date:"], - " Mon, 22 Dec 2014 18:25:30 GMT\r\n", - ["header-name", "Content-Type:"], - " text/html; charset=utf-8" -] - ----------------------------------------------------- - -Checks for header names. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/http/request-line_feature.test b/node_modules/prismjs/tests/languages/http/request-line_feature.test deleted file mode 100644 index e234374..0000000 --- a/node_modules/prismjs/tests/languages/http/request-line_feature.test +++ /dev/null @@ -1,51 +0,0 @@ -POST http://example.com HTTP/1.0 -GET http://localhost:9999/foo.html HTTP/1.1 -PUT http://www.example.com HTTP/2.0 -DELETE https://example.com HTTP/1.1 -OPTIONS https://www.example.com HTTP/1.1 -PATCH http://example.com HTTP/1.0 -TRACE http://example.com HTTP/1.0 -CONNECT http://example.com HTTP/1.0 - ----------------------------------------------------- - -[ - ["request-line", [ - ["property", "POST"], - " http://example.com HTTP/1.0" - ]], - ["request-line", [ - ["property", "GET"], - " http://localhost", - ["attr-name", ":9999"], - "/foo.html HTTP/1.1" - ]], - ["request-line", [ - ["property", "PUT"], - " http://www.example.com HTTP/2.0" - ]], - ["request-line", [ - ["property", "DELETE"], - " https://example.com HTTP/1.1" - ]], - ["request-line", [ - ["property", "OPTIONS"], - " https://www.example.com HTTP/1.1" - ]], - ["request-line", [ - ["property", "PATCH"], - " http://example.com HTTP/1.0" - ]], - ["request-line", [ - ["property", "TRACE"], - " http://example.com HTTP/1.0" - ]], - ["request-line", [ - ["property", "CONNECT"], - " http://example.com HTTP/1.0" - ]] -] - ----------------------------------------------------- - -Checks for request lines. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/http/response-status_feature.test b/node_modules/prismjs/tests/languages/http/response-status_feature.test deleted file mode 100644 index 7384ff2..0000000 --- a/node_modules/prismjs/tests/languages/http/response-status_feature.test +++ /dev/null @@ -1,29 +0,0 @@ -HTTP/1.0 200 OK -HTTP/1.1 403 Forbidden -HTTP/1.1 404 Not Found -HTTP/1.0 418 I'm a teapot - ----------------------------------------------------- - -[ - ["response-status", [ - "HTTP/1.0 ", - ["property", "200 OK"] - ]], - ["response-status", [ - "HTTP/1.1 ", - ["property", "403 Forbidden"] - ]], - ["response-status", [ - "HTTP/1.1 ", - ["property", "404 Not Found"] - ]], - ["response-status", [ - "HTTP/1.0 ", - ["property", "418 I'm a teapot"] - ]] -] - ----------------------------------------------------- - -Checks for response statuses. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/icon/builtin-keyword_feature.test b/node_modules/prismjs/tests/languages/icon/builtin-keyword_feature.test deleted file mode 100644 index 1d25764..0000000 --- a/node_modules/prismjs/tests/languages/icon/builtin-keyword_feature.test +++ /dev/null @@ -1,91 +0,0 @@ -&allocated -&ascii -&clock -&collections -&cset -¤t -&date -&dateline -&digits -&dump -&e -&error -&errornumber -&errortext -&errorvalue -&errout -&fail -&features -&file -&host -&input -&lcase -&letters -&level -&line -&main -&null -&output -&phi -&pi -&pos -&progname -&random -®ions -&source -&storage -&subject -&time -&trace -&ucase -&version - ----------------------------------------------------- - -[ - ["builtin-keyword", "&allocated"], - ["builtin-keyword", "&ascii"], - ["builtin-keyword", "&clock"], - ["builtin-keyword", "&collections"], - ["builtin-keyword", "&cset"], - ["builtin-keyword", "¤t"], - ["builtin-keyword", "&date"], - ["builtin-keyword", "&dateline"], - ["builtin-keyword", "&digits"], - ["builtin-keyword", "&dump"], - ["builtin-keyword", "&e"], - ["builtin-keyword", "&error"], - ["builtin-keyword", "&errornumber"], - ["builtin-keyword", "&errortext"], - ["builtin-keyword", "&errorvalue"], - ["builtin-keyword", "&errout"], - ["builtin-keyword", "&fail"], - ["builtin-keyword", "&features"], - ["builtin-keyword", "&file"], - ["builtin-keyword", "&host"], - ["builtin-keyword", "&input"], - ["builtin-keyword", "&lcase"], - ["builtin-keyword", "&letters"], - ["builtin-keyword", "&level"], - ["builtin-keyword", "&line"], - ["builtin-keyword", "&main"], - ["builtin-keyword", "&null"], - ["builtin-keyword", "&output"], - ["builtin-keyword", "&phi"], - ["builtin-keyword", "&pi"], - ["builtin-keyword", "&pos"], - ["builtin-keyword", "&progname"], - ["builtin-keyword", "&random"], - ["builtin-keyword", "®ions"], - ["builtin-keyword", "&source"], - ["builtin-keyword", "&storage"], - ["builtin-keyword", "&subject"], - ["builtin-keyword", "&time"], - ["builtin-keyword", "&trace"], - ["builtin-keyword", "&ucase"], - ["builtin-keyword", "&version"] -] - ----------------------------------------------------- - -Checks for builtin keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/icon/comment_feature.test b/node_modules/prismjs/tests/languages/icon/comment_feature.test deleted file mode 100644 index 09493ab..0000000 --- a/node_modules/prismjs/tests/languages/icon/comment_feature.test +++ /dev/null @@ -1,13 +0,0 @@ -# -# Foobar - ----------------------------------------------------- - -[ - ["comment", "#"], - ["comment", "# Foobar"] -] - ----------------------------------------------------- - -Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/icon/directive_feature.test b/node_modules/prismjs/tests/languages/icon/directive_feature.test deleted file mode 100644 index ede5ebc..0000000 --- a/node_modules/prismjs/tests/languages/icon/directive_feature.test +++ /dev/null @@ -1,21 +0,0 @@ -$include -$line -$define -$undef -$ifdef -$ifndef - ----------------------------------------------------- - -[ - ["directive", "$include"], - ["directive", "$line"], - ["directive", "$define"], - ["directive", "$undef"], - ["directive", "$ifdef"], - ["directive", "$ifndef"] -] - ----------------------------------------------------- - -Checks for preprocessor directives. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/icon/function_feature.test b/node_modules/prismjs/tests/languages/icon/function_feature.test deleted file mode 100644 index 715452f..0000000 --- a/node_modules/prismjs/tests/languages/icon/function_feature.test +++ /dev/null @@ -1,15 +0,0 @@ -foo() -Foobar_42{} -Foo_Bar ! [] - ----------------------------------------------------- - -[ - ["function", "foo"], ["punctuation", "("], ["punctuation", ")"], - ["function", "Foobar_42"], ["punctuation", "{"], ["punctuation", "}"], - ["function", "Foo_Bar"], ["operator", "!"], ["punctuation", "["], ["punctuation", "]"] -] - ----------------------------------------------------- - -Checks for functions. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/icon/keyword_feature.test b/node_modules/prismjs/tests/languages/icon/keyword_feature.test deleted file mode 100644 index 0816911..0000000 --- a/node_modules/prismjs/tests/languages/icon/keyword_feature.test +++ /dev/null @@ -1,67 +0,0 @@ -break -by -case -create -default -do -else -end -every -fail -global -if -initial -invocable -link -local -next -not -of -procedure -record -repeat -return -static -suspend -then -to -until -while - ----------------------------------------------------- - -[ - ["keyword", "break"], - ["keyword", "by"], - ["keyword", "case"], - ["keyword", "create"], - ["keyword", "default"], - ["keyword", "do"], - ["keyword", "else"], - ["keyword", "end"], - ["keyword", "every"], - ["keyword", "fail"], - ["keyword", "global"], - ["keyword", "if"], - ["keyword", "initial"], - ["keyword", "invocable"], - ["keyword", "link"], - ["keyword", "local"], - ["keyword", "next"], - ["keyword", "not"], - ["keyword", "of"], - ["keyword", "procedure"], - ["keyword", "record"], - ["keyword", "repeat"], - ["keyword", "return"], - ["keyword", "static"], - ["keyword", "suspend"], - ["keyword", "then"], - ["keyword", "to"], - ["keyword", "until"], - ["keyword", "while"] -] - ----------------------------------------------------- - -Checks for keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/icon/number_feature.test b/node_modules/prismjs/tests/languages/icon/number_feature.test deleted file mode 100644 index fc8efc8..0000000 --- a/node_modules/prismjs/tests/languages/icon/number_feature.test +++ /dev/null @@ -1,33 +0,0 @@ -0 -.42 -42 -3.14159 -2e8 -3.2E-7 -47E+19 - -2r11 -8R751 -16rbadface -36razerty - ----------------------------------------------------- - -[ - ["number", "0"], - ["number", ".42"], - ["number", "42"], - ["number", "3.14159"], - ["number", "2e8"], - ["number", "3.2E-7"], - ["number", "47E+19"], - - ["number", "2r11"], - ["number", "8R751"], - ["number", "16rbadface"], - ["number", "36razerty"] -] - ----------------------------------------------------- - -Checks for numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/icon/operator_feature.test b/node_modules/prismjs/tests/languages/icon/operator_feature.test deleted file mode 100644 index a2e29ff..0000000 --- a/node_modules/prismjs/tests/languages/icon/operator_feature.test +++ /dev/null @@ -1,69 +0,0 @@ -! -% %:= -& &:= -* *:= ** **:= -+ ++ +:= ++:= -- -:= -- --:= -. -/ /:= -:= :=: -< <- <-> <:= -<< <<:= -<<= <<=:= -<= <=:= -= =:= -== ==:= -=== ===:= -> >:= ->= >=:= ->> >>:= ->>= >>=:= -? ?:= -@ @:= -\ -^ ^:= -| || ||:= -||| |||:= -~ ~= ~=:= -~== ~==:= -~=== ~===:= -: +: -: - ----------------------------------------------------- - -[ - ["operator", "!"], - ["operator", "%"], ["operator", "%:="], - ["operator", "&"], ["operator", "&:="], - ["operator", "*"], ["operator", "*:="], ["operator", "**"], ["operator", "**:="], - ["operator", "+"], ["operator", "++"], ["operator", "+:="], ["operator", "++:="], - ["operator", "-"], ["operator", "-:="], ["operator", "--"], ["operator", "--:="], - ["operator", "."], - ["operator", "/"], ["operator", "/:="], - ["operator", ":="], ["operator", ":=:"], - ["operator", "<"], ["operator", "<-"], ["operator", "<->"], ["operator", "<:="], - ["operator", "<<"], ["operator", "<<:="], - ["operator", "<<="], ["operator", "<<=:="], - ["operator", "<="], ["operator", "<=:="], - ["operator", "="], ["operator", "=:="], - ["operator", "=="], ["operator", "==:="], - ["operator", "==="], ["operator", "===:="], - ["operator", ">"], ["operator", ">:="], - ["operator", ">="], ["operator", ">=:="], - ["operator", ">>"], ["operator", ">>:="], - ["operator", ">>="], ["operator", ">>=:="], - ["operator", "?"], ["operator", "?:="], - ["operator", "@"], ["operator", "@:="], - ["operator", "\\"], - ["operator", "^"], ["operator", "^:="], - ["operator", "|"], ["operator", "||"], ["operator", "||:="], - ["operator", "|||"], ["operator", "|||:="], - ["operator", "~"], ["operator", "~="], ["operator", "~=:="], - ["operator", "~=="], ["operator", "~==:="], - ["operator", "~==="], ["operator", "~===:="], - ["operator", ":"], ["operator", "+:"], ["operator", "-:"] -] - ----------------------------------------------------- - -Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/icon/string_feature.test b/node_modules/prismjs/tests/languages/icon/string_feature.test deleted file mode 100644 index 78bc034..0000000 --- a/node_modules/prismjs/tests/languages/icon/string_feature.test +++ /dev/null @@ -1,22 +0,0 @@ -"" -"Fo\"obar" -"Foo_ -bar_ -baz" - -'' -'a\'zerty' - ----------------------------------------------------- - -[ - ["string", "\"\""], - ["string", "\"Fo\\\"obar\""], - ["string", "\"Foo_\r\nbar_\r\nbaz\""], - ["string", "''"], - ["string", "'a\\'zerty'"] -] - ----------------------------------------------------- - -Checks for strings and csets. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/comment_feature.test b/node_modules/prismjs/tests/languages/inform7/comment_feature.test deleted file mode 100644 index f0aedfe..0000000 --- a/node_modules/prismjs/tests/languages/inform7/comment_feature.test +++ /dev/null @@ -1,15 +0,0 @@ -[Foobar] -[Foo -bar -baz] - ----------------------------------------------------- - -[ - ["comment", "[Foobar]"], - ["comment", "[Foo\r\nbar\r\nbaz]"] -] - ----------------------------------------------------- - -Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/keyword_feature.test b/node_modules/prismjs/tests/languages/inform7/keyword_feature.test deleted file mode 100644 index b2497b4..0000000 --- a/node_modules/prismjs/tests/languages/inform7/keyword_feature.test +++ /dev/null @@ -1,85 +0,0 @@ -after -before -carry out -check -continue the action -definition : -do nothing -else -end if -end unless -end the story -every turn -if -include -instead -instead of -let -move -no -now -otherwise -repeat -report -resume the story -rule for -running through -say -saying -stop the action -test -try -trying -understand -unless -use -when -while -yes - ----------------------------------------------------- - -[ - ["keyword", "after"], - ["keyword", "before"], - ["keyword", "carry out"], - ["keyword", "check"], - ["keyword", "continue the action"], - ["keyword", "definition"], ["punctuation", ":"], - ["keyword", "do nothing"], - ["keyword", "else"], - ["keyword", "end if"], - ["keyword", "end unless"], - ["keyword", "end the story"], - ["keyword", "every turn"], - ["keyword", "if"], - ["keyword", "include"], - ["keyword", "instead"], - ["keyword", "instead of"], - ["keyword", "let"], - ["keyword", "move"], - ["keyword", "no"], - ["keyword", "now"], - ["keyword", "otherwise"], - ["keyword", "repeat"], - ["keyword", "report"], - ["keyword", "resume the story"], - ["keyword", "rule for"], - ["keyword", "running through"], - ["keyword", "say"], - ["keyword", "saying"], - ["keyword", "stop the action"], - ["keyword", "test"], - ["keyword", "try"], - ["keyword", "trying"], - ["keyword", "understand"], - ["keyword", "unless"], - ["keyword", "use"], - ["keyword", "when"], - ["keyword", "while"], - ["keyword", "yes"] -] - ----------------------------------------------------- - -Checks for keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/number_feature.test b/node_modules/prismjs/tests/languages/inform7/number_feature.test deleted file mode 100644 index cb5ca7f..0000000 --- a/node_modules/prismjs/tests/languages/inform7/number_feature.test +++ /dev/null @@ -1,25 +0,0 @@ -42 -3.14159 -50kg -100m -one two three -four five six -seven eight nine -ten eleven twelve - ----------------------------------------------------- - -[ - ["number", "42"], - ["number", "3.14159"], - ["number", "50kg"], - ["number", "100m"], - ["number", "one"], ["number", "two"], ["number", "three"], - ["number", "four"], ["number", "five"], ["number", "six"], - ["number", "seven"], ["number", "eight"], ["number", "nine"], - ["number", "ten"], ["number", "eleven"], ["number", "twelve"] -] - ----------------------------------------------------- - -Checks for numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/position_feature.test b/node_modules/prismjs/tests/languages/inform7/position_feature.test deleted file mode 100644 index a298217..0000000 --- a/node_modules/prismjs/tests/languages/inform7/position_feature.test +++ /dev/null @@ -1,73 +0,0 @@ -above -adjacent to -back side of -below -between -down -east -everywhere -front side -here -in -inside -inside from -north -northeast -northwest -nowhere -on -on top of -other side -outside -outside from -part of -parts of -regionally in -south -southeast -southwest -through -up -west -within - ----------------------------------------------------- - -[ - ["position", "above"], - ["position", "adjacent to"], - ["position", "back side of"], - ["position", "below"], - ["position", "between"], - ["position", "down"], - ["position", "east"], - ["position", "everywhere"], - ["position", "front side"], - ["position", "here"], - ["position", "in"], - ["position", "inside"], - ["position", "inside from"], - ["position", "north"], - ["position", "northeast"], - ["position", "northwest"], - ["position", "nowhere"], - ["position", "on"], - ["position", "on top of"], - ["position", "other side"], - ["position", "outside"], - ["position", "outside from"], - ["position", "part of"], - ["position", "parts of"], - ["position", "regionally in"], - ["position", "south"], - ["position", "southeast"], - ["position", "southwest"], - ["position", "through"], - ["position", "up"], - ["position", "west"], - ["position", "within"] -] - ----------------------------------------------------- - -Checks for positions. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/property_feature.test b/node_modules/prismjs/tests/languages/inform7/property_feature.test deleted file mode 100644 index 4954b9e..0000000 --- a/node_modules/prismjs/tests/languages/inform7/property_feature.test +++ /dev/null @@ -1,157 +0,0 @@ -adjacent -carried -closed -concealed -contained -dark -described -edible -empty -enclosed -enterable -even -female -fixed in place -full -handled -held -improper-named -incorporated -inedible -invisible -lighted -lit -lockable -locked -male -marked for listing -mentioned -negative -neuter -non-empty -non-full -non-recurring -odd -opaque -open -openable -plural-named -portable -positive -privately-named -proper-named -provided -publically-named -pushable between rooms -recurring -related -rubbing -scenery -seen -singular-named -supported -swinging -switchable -switched -switched on -switched off -touchable -touched -transparent -unconcealed -undescribed -unlit -unlocked -unmarked for listing -unmentioned -unopenable -untouchable -unvisited -variable -visible -visited -wearable -worn - ----------------------------------------------------- - -[ - ["property", "adjacent"], - ["property", "carried"], - ["property", "closed"], - ["property", "concealed"], - ["property", "contained"], - ["property", "dark"], - ["property", "described"], - ["property", "edible"], - ["property", "empty"], - ["property", "enclosed"], - ["property", "enterable"], - ["property", "even"], - ["property", "female"], - ["property", "fixed in place"], - ["property", "full"], - ["property", "handled"], - ["property", "held"], - ["property", "improper-named"], - ["property", "incorporated"], - ["property", "inedible"], - ["property", "invisible"], - ["property", "lighted"], - ["property", "lit"], - ["property", "lockable"], - ["property", "locked"], - ["property", "male"], - ["property", "marked for listing"], - ["property", "mentioned"], - ["property", "negative"], - ["property", "neuter"], - ["property", "non-empty"], - ["property", "non-full"], - ["property", "non-recurring"], - ["property", "odd"], - ["property", "opaque"], - ["property", "open"], - ["property", "openable"], - ["property", "plural-named"], - ["property", "portable"], - ["property", "positive"], - ["property", "privately-named"], - ["property", "proper-named"], - ["property", "provided"], - ["property", "publically-named"], - ["property", "pushable between rooms"], - ["property", "recurring"], - ["property", "related"], - ["property", "rubbing"], - ["property", "scenery"], - ["property", "seen"], - ["property", "singular-named"], - ["property", "supported"], - ["property", "swinging"], - ["property", "switchable"], - ["property", "switched"], - ["property", "switched on"], - ["property", "switched off"], - ["property", "touchable"], - ["property", "touched"], - ["property", "transparent"], - ["property", "unconcealed"], - ["property", "undescribed"], - ["property", "unlit"], - ["property", "unlocked"], - ["property", "unmarked for listing"], - ["property", "unmentioned"], - ["property", "unopenable"], - ["property", "untouchable"], - ["property", "unvisited"], - ["property", "variable"], - ["property", "visible"], - ["property", "visited"], - ["property", "wearable"], - ["property", "worn"] -] - ----------------------------------------------------- - -Checks for properties. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/string_feature.test b/node_modules/prismjs/tests/languages/inform7/string_feature.test deleted file mode 100644 index 56a880e..0000000 --- a/node_modules/prismjs/tests/languages/inform7/string_feature.test +++ /dev/null @@ -1,49 +0,0 @@ -"" -"foo" -"foo -bar" -"[if the player is in Center Ring]A magician's booth stands in the corner, painted dark blue with glittering gold stars.[otherwise if the magician's booth is closed]A crack of light indicates the way back out to the center ring.[otherwise]The door stands open to the outside.[end if]" - ----------------------------------------------------- - -[ - ["string", ["\"\""]], - ["string", ["\"foo\""]], - ["string", ["\"foo\r\nbar\""]], - ["string", [ - "\"", - ["substitution", [ - ["delimiter", "["], - ["keyword", "if"], ["text", "the"], - ["type", "player"], ["verb", "is"], - ["position", "in"], ["text", "Center Ring"], - ["delimiter", "]"] - ]], - "A magician's booth stands in the corner, painted dark blue with glittering gold stars.", - ["substitution", [ - ["delimiter", "["], - ["keyword", "otherwise"], ["keyword", "if"], - ["text", "the magician's booth"], - ["verb", "is"], - ["property", "closed"], - ["delimiter", "]"] - ]], - "A crack of light indicates the way back out to the center ring.", - ["substitution", [ - ["delimiter", "["], - ["keyword", "otherwise"], - ["delimiter", "]"] - ]], - "The door stands open to the outside.", - ["substitution", [ - ["delimiter", "["], - ["keyword", "end if"], - ["delimiter", "]"] - ]], - "\"" - ]] -] - ----------------------------------------------------- - -Checks for strings and text substitution. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/title_feature.test b/node_modules/prismjs/tests/languages/inform7/title_feature.test deleted file mode 100644 index ec3cdbf..0000000 --- a/node_modules/prismjs/tests/languages/inform7/title_feature.test +++ /dev/null @@ -1,21 +0,0 @@ -Volume 1 - Foobar -Book 2 - Foobar -Part 3 - Foobar -Chapter 4 - Foobar -Section 5 - Foobar -Table 6 - Foobar - ----------------------------------------------------- - -[ - ["title", "Volume 1 - Foobar"], - ["title", "Book 2 - Foobar"], - ["title", "Part 3 - Foobar"], - ["title", "Chapter 4 - Foobar"], - ["title", "Section 5 - Foobar"], - ["title", "Table 6 - Foobar"] -] - ----------------------------------------------------- - -Checks for titles. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/variable_feature.test b/node_modules/prismjs/tests/languages/inform7/variable_feature.test deleted file mode 100644 index 25c2f74..0000000 --- a/node_modules/prismjs/tests/languages/inform7/variable_feature.test +++ /dev/null @@ -1,141 +0,0 @@ -action -actions -activity -activities -actor -actors -animal -animals -backdrop -backdrops -container -containers -device -devices -direction -directions -door -doors -holder -holders -kind -kinds -list -lists -man -men -nobody -nothing -noun -nouns -number -numbers -object -objects -people -person -persons -player -player's holdall -region -regions -relation -relations -room -rooms -rule -rules -rulebook -rulebooks -scene -scenes -someone -something -supporter -supporters -table -tables -text -texts -thing -things -time -vehicle -vehicles -woman -women - ----------------------------------------------------- - -[ - ["type", "action"], - ["type", "actions"], - ["type", "activity"], - ["type", "activities"], - ["type", "actor"], - ["type", "actors"], - ["type", "animal"], - ["type", "animals"], - ["type", "backdrop"], - ["type", "backdrops"], - ["type", "container"], - ["type", "containers"], - ["type", "device"], - ["type", "devices"], - ["type", "direction"], - ["type", "directions"], - ["type", "door"], - ["type", "doors"], - ["type", "holder"], - ["type", "holders"], - ["type", "kind"], - ["type", "kinds"], - ["type", "list"], - ["type", "lists"], - ["type", "man"], - ["type", "men"], - ["type", "nobody"], - ["type", "nothing"], - ["type", "noun"], - ["type", "nouns"], - ["type", "number"], - ["type", "numbers"], - ["type", "object"], - ["type", "objects"], - ["type", "people"], - ["type", "person"], - ["type", "persons"], - ["type", "player"], - ["type", "player's holdall"], - ["type", "region"], - ["type", "regions"], - ["type", "relation"], - ["type", "relations"], - ["type", "room"], - ["type", "rooms"], - ["type", "rule"], - ["type", "rules"], - ["type", "rulebook"], - ["type", "rulebooks"], - ["type", "scene"], - ["type", "scenes"], - ["type", "someone"], - ["type", "something"], - ["type", "supporter"], - ["type", "supporters"], - ["type", "table"], - ["type", "tables"], - ["type", "text"], - ["type", "texts"], - ["type", "thing"], - ["type", "things"], - ["type", "time"], - ["type", "vehicle"], - ["type", "vehicles"], - ["type", "woman"], - ["type", "women"] -] - ----------------------------------------------------- - -Checks for variables. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/inform7/verb_feature.test b/node_modules/prismjs/tests/languages/inform7/verb_feature.test deleted file mode 100644 index 3da285d..0000000 --- a/node_modules/prismjs/tests/languages/inform7/verb_feature.test +++ /dev/null @@ -1,213 +0,0 @@ -applying to -are -attacking -answering -asking -be -being -burning -buying -called -carries -carry -carrying -climbing -closing -conceal -conceals -concealing -consulting -contain -contains -containing -cutting -drinking -dropping -eating -enclose -encloses -enclosing -entering -examining -exiting -getting -giving -going -have -has -having -hold -holds -holding -imply -implies -incorporate -incorporates -incorporating -inserting -is -jumping -kissing -listening -locking -looking -mean -means -meaning -opening -provide -provides -providing -pulling -pushing -putting -relate -relates -relating -removing -searching -see -sees -seeing -setting -showing -singing -sleeping -smelling -squeezing -switching -support -supports -supporting -swearing -taking -tasting -telling -thinking -throwing -touching -turning -tying -unlock -unlocks -unlocking -vary -varies -varying -waiting -waking -waving -wear -wears -wearing - ----------------------------------------------------- - -[ - ["verb", "applying to"], - ["verb", "are"], - ["verb", "attacking"], - ["verb", "answering"], - ["verb", "asking"], - ["verb", "be"], - ["verb", "being"], - ["verb", "burning"], - ["verb", "buying"], - ["verb", "called"], - ["verb", "carries"], - ["verb", "carry"], - ["verb", "carrying"], - ["verb", "climbing"], - ["verb", "closing"], - ["verb", "conceal"], - ["verb", "conceals"], - ["verb", "concealing"], - ["verb", "consulting"], - ["verb", "contain"], - ["verb", "contains"], - ["verb", "containing"], - ["verb", "cutting"], - ["verb", "drinking"], - ["verb", "dropping"], - ["verb", "eating"], - ["verb", "enclose"], - ["verb", "encloses"], - ["verb", "enclosing"], - ["verb", "entering"], - ["verb", "examining"], - ["verb", "exiting"], - ["verb", "getting"], - ["verb", "giving"], - ["verb", "going"], - ["verb", "have"], - ["verb", "has"], - ["verb", "having"], - ["verb", "hold"], - ["verb", "holds"], - ["verb", "holding"], - ["verb", "imply"], - ["verb", "implies"], - ["verb", "incorporate"], - ["verb", "incorporates"], - ["verb", "incorporating"], - ["verb", "inserting"], - ["verb", "is"], - ["verb", "jumping"], - ["verb", "kissing"], - ["verb", "listening"], - ["verb", "locking"], - ["verb", "looking"], - ["verb", "mean"], - ["verb", "means"], - ["verb", "meaning"], - ["verb", "opening"], - ["verb", "provide"], - ["verb", "provides"], - ["verb", "providing"], - ["verb", "pulling"], - ["verb", "pushing"], - ["verb", "putting"], - ["verb", "relate"], - ["verb", "relates"], - ["verb", "relating"], - ["verb", "removing"], - ["verb", "searching"], - ["verb", "see"], - ["verb", "sees"], - ["verb", "seeing"], - ["verb", "setting"], - ["verb", "showing"], - ["verb", "singing"], - ["verb", "sleeping"], - ["verb", "smelling"], - ["verb", "squeezing"], - ["verb", "switching"], - ["verb", "support"], - ["verb", "supports"], - ["verb", "supporting"], - ["verb", "swearing"], - ["verb", "taking"], - ["verb", "tasting"], - ["verb", "telling"], - ["verb", "thinking"], - ["verb", "throwing"], - ["verb", "touching"], - ["verb", "turning"], - ["verb", "tying"], - ["verb", "unlock"], - ["verb", "unlocks"], - ["verb", "unlocking"], - ["verb", "vary"], - ["verb", "varies"], - ["verb", "varying"], - ["verb", "waiting"], - ["verb", "waking"], - ["verb", "waving"], - ["verb", "wear"], - ["verb", "wears"], - ["verb", "wearing"] -] - ----------------------------------------------------- - -Checks for verbs. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/ini/comment_feature.test b/node_modules/prismjs/tests/languages/ini/comment_feature.test deleted file mode 100644 index 85faefe..0000000 --- a/node_modules/prismjs/tests/languages/ini/comment_feature.test +++ /dev/null @@ -1,13 +0,0 @@ -; -; foobar - ----------------------------------------------------- - -[ - ["comment", ";"], - ["comment", "; foobar"] -] - ----------------------------------------------------- - -Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/ini/key_value_feature.test b/node_modules/prismjs/tests/languages/ini/key_value_feature.test deleted file mode 100644 index 5d25d9d..0000000 --- a/node_modules/prismjs/tests/languages/ini/key_value_feature.test +++ /dev/null @@ -1,21 +0,0 @@ -foo=Bar Baz -foobar=42 - ----------------------------------------------------- - -[ - ["constant", "foo"], - ["attr-value", [ - ["punctuation", "="], - "Bar Baz" - ]], - ["constant", "foobar"], - ["attr-value", [ - ["punctuation", "="], - "42" - ]] -] - ----------------------------------------------------- - -Checks for key/value pairs. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/ini/selector_feature.test b/node_modules/prismjs/tests/languages/ini/selector_feature.test deleted file mode 100644 index 3158a66..0000000 --- a/node_modules/prismjs/tests/languages/ini/selector_feature.test +++ /dev/null @@ -1,13 +0,0 @@ -[owner] -[foobar] - ----------------------------------------------------- - -[ - ["selector", "[owner]"], - ["selector", "[foobar]"] -] - ----------------------------------------------------- - -Checks for section titles. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/j/adverb_feature.test b/node_modules/prismjs/tests/languages/j/adverb_feature.test deleted file mode 100644 index 2374d72..0000000 --- a/node_modules/prismjs/tests/languages/j/adverb_feature.test +++ /dev/null @@ -1,19 +0,0 @@ -~ } -/ /. -\ \. -b. f. M. -t. t: - ----------------------------------------------------- - -[ - ["adverb", "~"], ["adverb", "}"], - ["adverb", "/"], ["adverb", "/."], - ["adverb", "\\"], ["adverb", "\\."], - ["adverb", "b."], ["adverb", "f."], ["adverb", "M."], - ["adverb", "t."], ["adverb", "t:"] -] - ----------------------------------------------------- - -Checks for adverbs. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/j/comment_feature.test b/node_modules/prismjs/tests/languages/j/comment_feature.test deleted file mode 100644 index c816bf1..0000000 --- a/node_modules/prismjs/tests/languages/j/comment_feature.test +++ /dev/null @@ -1,13 +0,0 @@ -NB. -NB. Foo bar - ----------------------------------------------------- - -[ - ["comment", "NB."], - ["comment", "NB. Foo bar"] -] - ----------------------------------------------------- - -Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/j/conjunction_feature.test b/node_modules/prismjs/tests/languages/j/conjunction_feature.test deleted file mode 100644 index 0fcc2e8..0000000 --- a/node_modules/prismjs/tests/languages/j/conjunction_feature.test +++ /dev/null @@ -1,41 +0,0 @@ -& &. &.: &: - -. .. .: -: :. :: -@ @. @: - -!. !: -D. D: - -;. d. H. T. - -` `: - -^: L: S: - -" - ----------------------------------------------------- - -[ - ["conjunction", "&"], ["conjunction", "&."], ["conjunction", "&.:"], ["conjunction", "&:"], - - ["conjunction", "."], ["conjunction", ".."], ["conjunction", ".:"], - ["conjunction", ":"], ["conjunction", ":."], ["conjunction", "::"], - ["conjunction", "@"], ["conjunction", "@."], ["conjunction", "@:"], - - ["conjunction", "!."], ["conjunction", "!:"], - ["conjunction", "D."], ["conjunction", "D:"], - - ["conjunction", ";."], ["conjunction", "d."], ["conjunction", "H."], ["conjunction", "T."], - - ["conjunction", "`"], ["conjunction", "`:"], - - ["conjunction", "^:"], ["conjunction", "L:"], ["conjunction", "S:"], - - ["conjunction", "\""] -] - ----------------------------------------------------- - -Checks for conjunctions. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/j/keyword_feature.test b/node_modules/prismjs/tests/languages/j/keyword_feature.test deleted file mode 100644 index 38f982d..0000000 --- a/node_modules/prismjs/tests/languages/j/keyword_feature.test +++ /dev/null @@ -1,77 +0,0 @@ -adverb -conjunction -CR -def -define -dyad -LF -monad -noun -verb - -assert. -break. -case. -catch. -catchd. -catcht. -continue. -do. -else. -elseif. -end. -fcase. -for. -for_foobar. -goto_foobar. -if. -label_foobar. -return. -select. -throw. -try. -while. -whilst. - ----------------------------------------------------- - -[ - ["keyword", "adverb"], - ["keyword", "conjunction"], - ["keyword", "CR"], - ["keyword", "def"], - ["keyword", "define"], - ["keyword", "dyad"], - ["keyword", "LF"], - ["keyword", "monad"], - ["keyword", "noun"], - ["keyword", "verb"], - - ["keyword", "assert."], - ["keyword", "break."], - ["keyword", "case."], - ["keyword", "catch."], - ["keyword", "catchd."], - ["keyword", "catcht."], - ["keyword", "continue."], - ["keyword", "do."], - ["keyword", "else."], - ["keyword", "elseif."], - ["keyword", "end."], - ["keyword", "fcase."], - ["keyword", "for."], - ["keyword", "for_foobar."], - ["keyword", "goto_foobar."], - ["keyword", "if."], - ["keyword", "label_foobar."], - ["keyword", "return."], - ["keyword", "select."], - ["keyword", "throw."], - ["keyword", "try."], - ["keyword", "while."], - ["keyword", "whilst."] -] - ----------------------------------------------------- - -Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/j/number_feature.test b/node_modules/prismjs/tests/languages/j/number_feature.test deleted file mode 100644 index ecd2dc2..0000000 --- a/node_modules/prismjs/tests/languages/j/number_feature.test +++ /dev/null @@ -1,41 +0,0 @@ -2.3e2 2.3e_2 2j3 -230 0.023 2j3 - -2p1 1p_1 -6.28319 0.31831 - -1x2 2x1 1x_1 -7.38906 5.43656 0.367879 - -2e2j_2e2 2e2j2p1 2ad45 2ar0.785398 -200j_200 628.319j6.28319 1.41421j1.41421 1.41421j1.41421 - -16b1f 10b23 _10b23 1e2b23 2b111.111 -31 23 _17 203 7.875 - -_ __ - ----------------------------------------------------- - -[ - ["number", "2.3e2"], ["number", "2.3e_2"], ["number", "2j3"], - ["number", "230"], ["number", "0.023"], ["number", "2j3"], - - ["number", "2p1"], ["number", "1p_1"], - ["number", "6.28319"], ["number", "0.31831"], - - ["number", "1x2"], ["number", "2x1"], ["number", "1x_1"], - ["number", "7.38906"], ["number", "5.43656"], ["number", "0.367879"], - - ["number", "2e2j_2e2"], ["number", "2e2j2p1"], ["number", "2ad45"], ["number", "2ar0.785398"], - ["number", "200j_200"], ["number", "628.319j6.28319"], ["number", "1.41421j1.41421"], ["number", "1.41421j1.41421"], - - ["number", "16b1f"], ["number", "10b23"], ["number", "_10b23"], ["number", "1e2b23"], ["number", "2b111.111"], - ["number", "31"], ["number", "23"], ["number", "_17"], ["number", "203"], ["number", "7.875"], - - ["number", "_"], ["number", "__"] -] - ----------------------------------------------------- - -Checks for numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/j/string_feature.test b/node_modules/prismjs/tests/languages/j/string_feature.test deleted file mode 100644 index 8cfa97f..0000000 --- a/node_modules/prismjs/tests/languages/j/string_feature.test +++ /dev/null @@ -1,13 +0,0 @@ -'' -'fo''obar' - ----------------------------------------------------- - -[ - ["string", "''"], - ["string", "'fo''obar'"] -] - ----------------------------------------------------- - -Checks for strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/j/verb_feature.test b/node_modules/prismjs/tests/languages/j/verb_feature.test deleted file mode 100644 index 55f9086..0000000 --- a/node_modules/prismjs/tests/languages/j/verb_feature.test +++ /dev/null @@ -1,93 +0,0 @@ -{ {. {: {:: - -p. p.. p: - -= -! -] - -< <. <: -> >. >: -+ +. +: -* *. *: -- -. -: -% %. %: -$ $. $: -| |. |: -, ,. ,: -# #. #: - -^ ^. -? ?. - -; ;: -[ [: - -~. ~: -}. }: -". ": -i. i: - -A. C. e. -E. I. j. -L. o. r. - -_: /: \: -q: s: u: x: -_9: _8: _7: -_6: _5: _4: -_3: _2: _1: -1: 2: 3: -4: 5: 6: -7: 8: 9: - ----------------------------------------------------- - -[ - ["verb", "{"], ["verb", "{."], ["verb", "{:"], ["verb", "{::"], - - ["verb", "p."], ["verb", "p.."], ["verb", "p:"], - - ["verb", "="], - ["verb", "!"], - ["verb", "]"], - - ["verb", "<"], ["verb", "<."], ["verb", "<:"], - ["verb", ">"], ["verb", ">."], ["verb", ">:"], - ["verb", "+"], ["verb", "+."], ["verb", "+:"], - ["verb", "*"], ["verb", "*."], ["verb", "*:"], - ["verb", "-"], ["verb", "-."], ["verb", "-:"], - ["verb", "%"], ["verb", "%."], ["verb", "%:"], - ["verb", "$"], ["verb", "$."], ["verb", "$:"], - ["verb", "|"], ["verb", "|."], ["verb", "|:"], - ["verb", ","], ["verb", ",."], ["verb", ",:"], - ["verb", "#"], ["verb", "#."], ["verb", "#:"], - - ["verb", "^"], ["verb", "^."], - ["verb", "?"], ["verb", "?."], - - ["verb", ";"], ["verb", ";:"], - ["verb", "["], ["verb", "[:"], - - ["verb", "~."], ["verb", "~:"], - ["verb", "}."], ["verb", "}:"], - ["verb", "\"."], ["verb", "\":"], - ["verb", "i."], ["verb", "i:"], - - ["verb", "A."], ["verb", "C."], ["verb", "e."], - ["verb", "E."], ["verb", "I."], ["verb", "j."], - ["verb", "L."], ["verb", "o."], ["verb", "r."], - - ["verb", "_:"], ["verb", "/:"], ["verb", "\\:"], - ["verb", "q:"], ["verb", "s:"], ["verb", "u:"], ["verb", "x:"], - ["verb", "_9:"], ["verb", "_8:"], ["verb", "_7:"], - ["verb", "_6:"], ["verb", "_5:"], ["verb", "_4:"], - ["verb", "_3:"], ["verb", "_2:"], ["verb", "_1:"], - ["verb", "1:"], ["verb", "2:"], ["verb", "3:"], - ["verb", "4:"], ["verb", "5:"], ["verb", "6:"], - ["verb", "7:"], ["verb", "8:"], ["verb", "9:"] -] - ----------------------------------------------------- - -Checks for verbs. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/code_feature.test b/node_modules/prismjs/tests/languages/jade/code_feature.test deleted file mode 100644 index 6bb436b..0000000 --- a/node_modules/prismjs/tests/languages/jade/code_feature.test +++ /dev/null @@ -1,36 +0,0 @@ -- if(foo) - -p= 'This code is' + ' !' - -span - != 'Not escaped' - ----------------------------------------------------- - -[ - ["punctuation", "-"], - ["code", [ - ["keyword", "if"], - ["punctuation", "("], - "foo", - ["punctuation", ")"] - ]], - - ["tag", ["p"]], - ["punctuation", "="], - ["code", [ - ["string", "'This code is'"], - ["operator", "+"], - ["string", "' !'"] - ]], - - ["tag", ["span"]], - ["punctuation", "!="], - ["code", [ - ["string", "'Not escaped'"] - ]] -] - ----------------------------------------------------- - -Checks for inline code. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/comment_feature.test b/node_modules/prismjs/tests/languages/jade/comment_feature.test deleted file mode 100644 index 1ca737a..0000000 --- a/node_modules/prismjs/tests/languages/jade/comment_feature.test +++ /dev/null @@ -1,22 +0,0 @@ -// foo - bar - - // foo - bar baz - -// foo - - // bar - ----------------------------------------------------- - -[ - ["comment", "// foo\r\n bar"], - ["comment", "// foo\r\n\t\tbar baz"], - ["comment", "// foo"], - ["comment", "// bar"] -] - ----------------------------------------------------- - -Checks for single-line comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/doctype_feature.test b/node_modules/prismjs/tests/languages/jade/doctype_feature.test deleted file mode 100644 index 7c13b12..0000000 --- a/node_modules/prismjs/tests/languages/jade/doctype_feature.test +++ /dev/null @@ -1,15 +0,0 @@ -doctype html -doctype 1.1 -doctype html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" - ----------------------------------------------------- - -[ - ["doctype", "doctype html"], - ["doctype", "doctype 1.1"], - ["doctype", "doctype html PUBLIC \"-//W3C//DTD XHTML Basic 1.1//EN\""] -] - ----------------------------------------------------- - -Checks for doctypes. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/flow-control_feature.test b/node_modules/prismjs/tests/languages/jade/flow-control_feature.test deleted file mode 100644 index 2b68ddf..0000000 --- a/node_modules/prismjs/tests/languages/jade/flow-control_feature.test +++ /dev/null @@ -1,75 +0,0 @@ -each val, index in [1,2,3] - -if foo -else if bar -else - -unless foo - -while n < 4 - -case foo - when "bar" - default - ----------------------------------------------------- - -[ - ["flow-control", [ - ["each", [ - ["keyword", "each"], - " val", - ["punctuation", ","], - " index ", - ["keyword", "in"] - ]], - ["punctuation", "["], - ["number", "1"], - ["punctuation", ","], - ["number", "2"], - ["punctuation", ","], - ["number", "3"], - ["punctuation", "]"] - ]], - - ["flow-control", [ - ["branch", "if"], - " foo" - ]], - ["flow-control", [ - ["branch", "else"], - ["keyword", "if"], - " bar" - ]], - ["flow-control", [ - ["branch", "else"] - ]], - - ["flow-control", [ - ["branch", "unless"], - " foo" - ]], - - ["flow-control", [ - ["branch", "while"], - " n ", - ["operator", "<"], - ["number", "4"] - ]], - - ["flow-control", [ - ["branch", "case"], - " foo" - ]], - ["flow-control", [ - ["branch", "when"], - ["string", "\"bar\""] - ]], - ["flow-control", [ - ["branch", "default"] - ]] -] - ----------------------------------------------------- - -Checks for all flow-control structures. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/keyword_feature.test b/node_modules/prismjs/tests/languages/jade/keyword_feature.test deleted file mode 100644 index 21a5383..0000000 --- a/node_modules/prismjs/tests/languages/jade/keyword_feature.test +++ /dev/null @@ -1,27 +0,0 @@ -block title - - extends ./foo.jade - -include ./bar.jade - -block append foo -append bar - -block prepend foo -prepend bar - ----------------------------------------------------- - -[ - ["keyword", "block title"], - ["keyword", "extends ./foo.jade"], - ["keyword", "include ./bar.jade"], - ["keyword", "block append foo"], - ["keyword", "append bar"], - ["keyword", "block prepend foo"], - ["keyword", "prepend bar"] -] - ----------------------------------------------------- - -Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/mixin_feature.test b/node_modules/prismjs/tests/languages/jade/mixin_feature.test deleted file mode 100644 index ef515b3..0000000 --- a/node_modules/prismjs/tests/languages/jade/mixin_feature.test +++ /dev/null @@ -1,35 +0,0 @@ -mixin foo -mixin pet(name) - -+foo -+pet('cat') - ----------------------------------------------------- - -[ - ["mixin", [ - ["keyword", "mixin"], - ["function", "foo"] - ]], - ["mixin", [ - ["keyword", "mixin"], - ["function", "pet"], - ["punctuation", "("], - "name", - ["punctuation", ")"] - ]], - - ["mixin", [ - ["name", "+foo"] - ]], - ["mixin", [ - ["name", "+pet"], - ["punctuation", "("], - ["string", "'cat'"], - ["punctuation", ")"] - ]] -] - ----------------------------------------------------- - -Checks for mixins declaration and usage. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/multiline-plain-text_feature.test b/node_modules/prismjs/tests/languages/jade/multiline-plain-text_feature.test deleted file mode 100644 index fc14a71..0000000 --- a/node_modules/prismjs/tests/languages/jade/multiline-plain-text_feature.test +++ /dev/null @@ -1,30 +0,0 @@ -div. - foobar - - baz -. - div. - foobar - baz - ----------------------------------------------------- - -[ - ["tag", [ - "div" - ]], - ["punctuation", "."], - ["multiline-plain-text", "\r\n foobar\r\n\r\n baz"], - - ["punctuation", "."], - - ["tag", [ - "div" - ]], - ["punctuation", "."], - ["multiline-plain-text", "\r\n\t\tfoobar\r\n\t\tbaz"] -] - ----------------------------------------------------- - -Checks for multi-line plain text. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/multiline-script_feature.test b/node_modules/prismjs/tests/languages/jade/multiline-script_feature.test deleted file mode 100644 index 5648bf3..0000000 --- a/node_modules/prismjs/tests/languages/jade/multiline-script_feature.test +++ /dev/null @@ -1,58 +0,0 @@ -script. - alert(42); - -. - script(type='text/javascript'). - - if(foo) { - bar(1 + 5); - } - ----------------------------------------------------- - -[ - ["tag", [ - "script" - ]], - ["punctuation", "."], - ["multiline-script", [ - ["function", "alert"], - ["punctuation", "("], - ["number", "42"], - ["punctuation", ")"], - ["punctuation", ";"] - ]], - - ["punctuation", "."], - - ["tag", [ - "script", - ["attributes", [ - ["punctuation", "("], - ["attr-name", "type"], - ["punctuation", "="], - ["attr-value", [["string", "'text/javascript'"]]], - ["punctuation", ")"] - ]] - ]], - ["punctuation", "."], - ["multiline-script", [ - ["keyword", "if"], - ["punctuation", "("], - "foo", - ["punctuation", ")"], - ["punctuation", "{"], - ["function", "bar"], - ["punctuation", "("], - ["number", "1"], - ["operator", "+"], - ["number", "5"], - ["punctuation", ")"], - ["punctuation", ";"], - ["punctuation", "}"] - ]] -] - ----------------------------------------------------- - -Checks for multi-line scripts. The alone dot serves as a separator. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/plain-text_feature.test b/node_modules/prismjs/tests/languages/jade/plain-text_feature.test deleted file mode 100644 index 5e97fb0..0000000 --- a/node_modules/prismjs/tests/languages/jade/plain-text_feature.test +++ /dev/null @@ -1,19 +0,0 @@ -div foo - span foo bar - ----------------------------------------------------- - -[ - ["tag", [ - "div" - ]], - ["plain-text", "foo"], - ["tag", [ - "span" - ]], - ["plain-text", "foo bar"] -] - ----------------------------------------------------- - -Checks for single-line plain text. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/script_feature.test b/node_modules/prismjs/tests/languages/jade/script_feature.test deleted file mode 100644 index 649fbf3..0000000 --- a/node_modules/prismjs/tests/languages/jade/script_feature.test +++ /dev/null @@ -1,38 +0,0 @@ -script alert(42); - script(type='text/javascript') alert(42); - ----------------------------------------------------- - -[ - ["tag", [ - "script" - ]], - ["script", [ - ["function", "alert"], - ["punctuation", "("], - ["number", "42"], - ["punctuation", ")"], - ["punctuation", ";"] - ]], - ["tag", [ - "script", - ["attributes", [ - ["punctuation", "("], - ["attr-name", "type"], - ["punctuation", "="], - ["attr-value", [["string", "'text/javascript'"]]], - ["punctuation", ")"] - ]] - ]], - ["script", [ - ["function", "alert"], - ["punctuation", "("], - ["number", "42"], - ["punctuation", ")"], - ["punctuation", ";"] - ]] -] - ----------------------------------------------------- - -Checks for single-line scripts. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jade/tag_feature.test b/node_modules/prismjs/tests/languages/jade/tag_feature.test deleted file mode 100644 index 415f8bd..0000000 --- a/node_modules/prismjs/tests/languages/jade/tag_feature.test +++ /dev/null @@ -1,97 +0,0 @@ -div - span&attributes({'data-foo': 'bar'}) - -input(data-bar="foo", type='checkbox', checked) - -a(style={color: 'red', background: 'green'}) - -div(unescaped!="") - -a.button -.content - -a#main-link -#content - -a: span - ----------------------------------------------------- - -[ - ["tag", ["div"]], - ["tag", [ - "span", - ["attributes", [ - ["operator", "&"], - ["function", "attributes"], - ["punctuation", "("], - ["punctuation", "{"], - ["string", "'data-foo'"], - ["punctuation", ":"], - ["string", "'bar'"], - ["punctuation", "}"], - ["punctuation", ")"] - ]] - ]], - - ["tag", [ - "input", - ["attributes", [ - ["punctuation", "("], - ["attr-name", "data-bar"], - ["punctuation", "="], - ["attr-value", [["string", "\"foo\""]]], - ["punctuation", ","], - ["attr-name", "type"], - ["punctuation", "="], - ["attr-value", [["string", "'checkbox'"]]], - ["punctuation", ","], - ["attr-name", "checked"], - ["punctuation", ")"] - ]] - ]], - - ["tag", [ - "a", - ["attributes", [ - ["punctuation", "("], - ["attr-name", "style"], - ["punctuation", "="], - ["attr-value", [ - ["punctuation", "{"], - "color", - ["punctuation", ":"], - ["string", "'red'"], - ["punctuation", ","], - " background", - ["punctuation", ":"], - ["string", "'green'"], - ["punctuation", "}"] - ]], - ["punctuation", ")"] - ]] - ]], - - ["tag", [ - "div", - ["attributes", [ - ["punctuation", "("], - ["attr-name", "unescaped"], - ["punctuation", "!="], - ["attr-value", [["string", "\"\""]]], - ["punctuation", ")"] - ]] - ]], - - ["tag", ["a.button"]], - ["tag", [".content"]], - ["tag", ["a#main-link"]], - ["tag", ["#content"]], - - ["tag", ["a", ["punctuation", ":"]]], - ["tag", ["span"]] -] - ----------------------------------------------------- - -Checks for tags and attributes. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/java/keyword_feature.test b/node_modules/prismjs/tests/languages/java/keyword_feature.test deleted file mode 100644 index 4a6613c..0000000 --- a/node_modules/prismjs/tests/languages/java/keyword_feature.test +++ /dev/null @@ -1,51 +0,0 @@ -abstract continue for -new ; -switch assert default -goto package synchronized -boolean do if private -this break double -implements ; -protected throw byte else -import public throws case -enum -instanceof ; -return transient catch -extends ; -int short try char -final -interface ; -static void -class ; -finally long -strictfp volatile const -float native super while - ----------------------------------------------------- - -[ - ["keyword", "abstract"], ["keyword", "continue"], ["keyword", "for"], - ["keyword", "new"], ["punctuation", ";"], - ["keyword", "switch"], ["keyword", "assert"], ["keyword", "default"], - ["keyword", "goto"], ["keyword", "package"], ["keyword", "synchronized"], - ["keyword", "boolean"], ["keyword", "do"], ["keyword", "if"], ["keyword", "private"], - ["keyword", "this"], ["keyword", "break"], ["keyword", "double"], - ["keyword", "implements"], ["punctuation", ";"], - ["keyword", "protected"], ["keyword", "throw"], ["keyword", "byte"], ["keyword", "else"], - ["keyword", "import"], ["keyword", "public"], ["keyword", "throws"], ["keyword", "case"], - ["keyword", "enum"], - ["keyword", "instanceof"], ["punctuation", ";"], - ["keyword", "return"], ["keyword", "transient"], ["keyword", "catch"], - ["keyword", "extends"], ["punctuation", ";"], - ["keyword", "int"], ["keyword", "short"], ["keyword", "try"], ["keyword", "char"], - ["keyword", "final"], - ["keyword", "interface"], ["punctuation", ";"], - ["keyword", "static"], ["keyword", "void"], - ["keyword", "class"], ["punctuation", ";"], - ["keyword", "finally"], ["keyword", "long"], - ["keyword", "strictfp"], ["keyword", "volatile"], ["keyword", "const"], - ["keyword", "float"], ["keyword", "native"], ["keyword", "super"], ["keyword", "while"] -] - ----------------------------------------------------- - -Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/java/number_feature.test b/node_modules/prismjs/tests/languages/java/number_feature.test deleted file mode 100644 index b88f082..0000000 --- a/node_modules/prismjs/tests/languages/java/number_feature.test +++ /dev/null @@ -1,27 +0,0 @@ -0b11110000 -0xBadFace -0x1.8p1 -0xa.fp-2 -42 -42d -1.2e3f -0.1E-4f -0.2e+1f - ----------------------------------------------------- - -[ - ["number", "0b11110000"], - ["number", "0xBadFace"], - ["number", "0x1.8p1"], - ["number", "0xa.fp-2"], - ["number", "42"], - ["number", "42d"], - ["number", "1.2e3f"], - ["number", "0.1E-4f"], - ["number", "0.2e+1f"] -] - ----------------------------------------------------- - -Checks for binary, hexadecimal and decimal numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/java/operator_feature.test b/node_modules/prismjs/tests/languages/java/operator_feature.test deleted file mode 100644 index 87f4906..0000000 --- a/node_modules/prismjs/tests/languages/java/operator_feature.test +++ /dev/null @@ -1,33 +0,0 @@ -+ ++ += -- -- -= -! != -< << <= <<= -> >> >>> >= >>= >>>= -= == -& && &= -| || |= -? : ~ -* *= -/ /= -% %= - ----------------------------------------------------- - -[ - ["operator", "+"], ["operator", "++"], ["operator", "+="], - ["operator", "-"], ["operator", "--"], ["operator", "-="], - ["operator", "!"], ["operator", "!="], - ["operator", "<"], ["operator", "<<"], ["operator", "<="], ["operator", "<<="], - ["operator", ">"], ["operator", ">>"], ["operator", ">>>"], ["operator", ">="], ["operator", ">>="], ["operator", ">>>="], - ["operator", "="], ["operator", "=="], - ["operator", "&"], ["operator", "&&"], ["operator", "&="], - ["operator", "|"], ["operator", "||"], ["operator", "|="], - ["operator", "?"], ["operator", ":"], ["operator", "~"], - ["operator", "*"], ["operator", "*="], - ["operator", "/"], ["operator", "/="], - ["operator", "%"], ["operator", "%="] -] - ----------------------------------------------------- - -Checks for all operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/javascript+haml/javascript_inclusion.test b/node_modules/prismjs/tests/languages/javascript+haml/javascript_inclusion.test deleted file mode 100644 index 2420e60..0000000 --- a/node_modules/prismjs/tests/languages/javascript+haml/javascript_inclusion.test +++ /dev/null @@ -1,24 +0,0 @@ -:javascript - 0xBadFace - -~ - :javascript - 0xBadFace - ----------------------------------------------------- - -[ - ["filter-javascript", [ - ["filter-name", ":javascript"], - ["number", "0xBadFace"] - ]], - ["punctuation", "~"], - ["filter-javascript", [ - ["filter-name", ":javascript"], - ["number", "0xBadFace"] - ]] -] - ----------------------------------------------------- - -Checks for JavaScript filter in Haml. The tilde serves only as a separator. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/javascript+http/javascript_inclusion.test b/node_modules/prismjs/tests/languages/javascript+http/javascript_inclusion.test deleted file mode 100644 index 825fea4..0000000 --- a/node_modules/prismjs/tests/languages/javascript+http/javascript_inclusion.test +++ /dev/null @@ -1,21 +0,0 @@ -Content-type: application/json - -{"foo":"bar"} - ----------------------------------------------------- - -[ - ["header-name", "Content-type:"], - " application/json", - ["application/json", [ - ["punctuation", "{"], - ["string", "\"foo\""], - ["punctuation", ":"], - ["string", "\"bar\""], - ["punctuation", "}"] - ]] -] - ----------------------------------------------------- - -Checks for JSON content in HTTP. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/javascript/boolean_feature.test b/node_modules/prismjs/tests/languages/javascript/boolean_feature.test deleted file mode 100644 index 4019c44..0000000 --- a/node_modules/prismjs/tests/languages/javascript/boolean_feature.test +++ /dev/null @@ -1,13 +0,0 @@ -true -false - ----------------------------------------------------- - -[ - ["boolean", "true"], - ["boolean", "false"] -] - ----------------------------------------------------- - -Checks for booleans. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/javascript/function_feature.test b/node_modules/prismjs/tests/languages/javascript/function_feature.test deleted file mode 100644 index e805e87..0000000 --- a/node_modules/prismjs/tests/languages/javascript/function_feature.test +++ /dev/null @@ -1,23 +0,0 @@ -foo() -foo_bar() -f42() -_() -$() -ಠ_ಠ() -Ƞȡ_҇() - ----------------------------------------------------- - -[ - ["function", "foo"], ["punctuation", "("], ["punctuation", ")"], - ["function", "foo_bar"], ["punctuation", "("], ["punctuation", ")"], - ["function", "f42"], ["punctuation", "("], ["punctuation", ")"], - ["function", "_"], ["punctuation", "("], ["punctuation", ")"], - ["function", "$"], ["punctuation", "("], ["punctuation", ")"], - ["function", "ಠ_ಠ"], ["punctuation", "("], ["punctuation", ")"], - ["function", "Ƞȡ_҇"], ["punctuation", "("], ["punctuation", ")"] -] - ----------------------------------------------------- - -Checks for functions. Also checks for unicode characters in identifiers. diff --git a/node_modules/prismjs/tests/languages/javascript/keyword_feature.test b/node_modules/prismjs/tests/languages/javascript/keyword_feature.test deleted file mode 100644 index 13b8887..0000000 --- a/node_modules/prismjs/tests/languages/javascript/keyword_feature.test +++ /dev/null @@ -1,70 +0,0 @@ -as; async; await; break; case; -catch; class; const; continue; debugger; -default; delete; do; else; enum; -export; extends; finally; for; -from; function; get; if; implements; -import; in; instanceof; interface; let; -new; null; of; package; private; -protected; public; return; set; static; -super; switch; this; throw; -try; typeof; var; void; while; -with; yield; - ----------------------------------------------------- - -[ - ["keyword", "as"], ["punctuation", ";"], - ["keyword", "async"], ["punctuation", ";"], - ["keyword", "await"], ["punctuation", ";"], - ["keyword", "break"], ["punctuation", ";"], - ["keyword", "case"], ["punctuation", ";"], - ["keyword", "catch"], ["punctuation", ";"], - ["keyword", "class"], ["punctuation", ";"], - ["keyword", "const"], ["punctuation", ";"], - ["keyword", "continue"], ["punctuation", ";"], - ["keyword", "debugger"], ["punctuation", ";"], - ["keyword", "default"], ["punctuation", ";"], - ["keyword", "delete"], ["punctuation", ";"], - ["keyword", "do"], ["punctuation", ";"], - ["keyword", "else"], ["punctuation", ";"], - ["keyword", "enum"], ["punctuation", ";"], - ["keyword", "export"], ["punctuation", ";"], - ["keyword", "extends"], ["punctuation", ";"], - ["keyword", "finally"], ["punctuation", ";"], - ["keyword", "for"], ["punctuation", ";"], - ["keyword", "from"], ["punctuation", ";"], - ["keyword", "function"], ["punctuation", ";"], - ["keyword", "get"], ["punctuation", ";"], - ["keyword", "if"], ["punctuation", ";"], - ["keyword", "implements"], ["punctuation", ";"], - ["keyword", "import"], ["punctuation", ";"], - ["keyword", "in"], ["punctuation", ";"], - ["keyword", "instanceof"], ["punctuation", ";"], - ["keyword", "interface"], ["punctuation", ";"], - ["keyword", "let"], ["punctuation", ";"], - ["keyword", "new"], ["punctuation", ";"], - ["keyword", "null"], ["punctuation", ";"], - ["keyword", "of"], ["punctuation", ";"], - ["keyword", "package"], ["punctuation", ";"], - ["keyword", "private"], ["punctuation", ";"], - ["keyword", "protected"], ["punctuation", ";"], - ["keyword", "public"], ["punctuation", ";"], - ["keyword", "return"], ["punctuation", ";"], - ["keyword", "set"], ["punctuation", ";"], - ["keyword", "static"], ["punctuation", ";"], - ["keyword", "super"], ["punctuation", ";"], - ["keyword", "switch"], ["punctuation", ";"], - ["keyword", "this"], ["punctuation", ";"], - ["keyword", "throw"], ["punctuation", ";"], - ["keyword", "try"], ["punctuation", ";"], - ["keyword", "typeof"], ["punctuation", ";"], - ["keyword", "var"], ["punctuation", ";"], - ["keyword", "void"], ["punctuation", ";"], - ["keyword", "while"], ["punctuation", ";"], - ["keyword", "with"], ["punctuation", ";"], - ["keyword", "yield"], ["punctuation", ";"] -] - ----------------------------------------------------- - -Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/javascript/number_feature.test b/node_modules/prismjs/tests/languages/javascript/number_feature.test deleted file mode 100644 index b832787..0000000 --- a/node_modules/prismjs/tests/languages/javascript/number_feature.test +++ /dev/null @@ -1,32 +0,0 @@ -42 -3.14159 -4e10 -3.2E+6 -2.1e-10 -0b1101 -0o571 -0xbabe -0xBABE -NaN -Infinity - ----------------------------------------------------- - -[ - ["number", "42"], - ["number", "3.14159"], - ["number", "4e10"], - ["number", "3.2E+6"], - ["number", "2.1e-10"], - ["number", "0b1101"], - ["number", "0o571"], - ["number", "0xbabe"], - ["number", "0xBABE"], - ["number", "NaN"], - ["number", "Infinity"] -] - ----------------------------------------------------- - -Checks for decimal numbers, binary numbers, octal numbers, hexadecimal numbers. -Also checks for keywords representing numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/javascript/operator_feature.test b/node_modules/prismjs/tests/languages/javascript/operator_feature.test deleted file mode 100644 index 53a7637..0000000 --- a/node_modules/prismjs/tests/languages/javascript/operator_feature.test +++ /dev/null @@ -1,25 +0,0 @@ -- + -- ++ -< <= > >= -= == === -! != !== -& && | || -* ** -? / ~ ^ % -... - ----------------------------------------------------- - -[ - ["operator", "-"], ["operator", "+"], ["operator", "--"], ["operator", "++"], - ["operator", "<"], ["operator", "<="], ["operator", ">"], ["operator", ">="], - ["operator", "="], ["operator", "=="], ["operator", "==="], - ["operator", "!"], ["operator", "!="], ["operator", "!=="], - ["operator", "&"], ["operator", "&&"], ["operator", "|"], ["operator", "||"], - ["operator", "*"], ["operator", "**"], - ["operator", "?"], ["operator", "/"], ["operator", "~"], ["operator", "^"], ["operator", "%"], - ["operator", "..."] -] - ----------------------------------------------------- - -Checks for all operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/javascript/regex_feature.test b/node_modules/prismjs/tests/languages/javascript/regex_feature.test deleted file mode 100644 index c79397e..0000000 --- a/node_modules/prismjs/tests/languages/javascript/regex_feature.test +++ /dev/null @@ -1,23 +0,0 @@ -/foo bar/ -/foo/gimyu, -/[\[\]]{2,4}(?:foo)*/; -/foo"test"bar/ -/foo\// -1 / 4 + "/, not a regex"; -/ '1' '2' '3' '4' '5' / - ----------------------------------------------------- - -[ - ["regex", "/foo bar/"], - ["regex", "/foo/gimyu"], ["punctuation", ","], - ["regex", "/[\\[\\]]{2,4}(?:foo)*/"], ["punctuation", ";"], - ["regex", "/foo\"test\"bar/"], - ["regex", "/foo\\//"], - ["number", "1"], ["operator", "/"], ["number", "4"], ["operator", "+"], ["string", "\"/, not a regex\""], ["punctuation", ";"], - ["regex", "/ '1' '2' '3' '4' '5' /"] -] - ----------------------------------------------------- - -Checks for regex. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/javascript/template-string_feature.test b/node_modules/prismjs/tests/languages/javascript/template-string_feature.test deleted file mode 100644 index 33de8b3..0000000 --- a/node_modules/prismjs/tests/languages/javascript/template-string_feature.test +++ /dev/null @@ -1,44 +0,0 @@ -`foo bar` -`foo -bar` -`40+2=${40+2}` -`${foo()}` -"foo `a` `b` `c` `d` bar" - ----------------------------------------------------- - -[ - ["template-string", [ - ["string", "`foo bar`"] - ]], - ["template-string", [ - ["string", "`foo\r\nbar`"] - ]], - ["template-string", [ - ["string", "`40+2="], - ["interpolation", [ - ["interpolation-punctuation", "${"], - ["number", "40"], - ["operator", "+"], - ["number", "2"], - ["interpolation-punctuation", "}"] - ]], - ["string", "`"] - ]], - ["template-string", [ - ["string", "`"], - ["interpolation", [ - ["interpolation-punctuation", "${"], - ["function", "foo"], - ["punctuation", "("], - ["punctuation", ")"], - ["interpolation-punctuation", "}"] - ]], - ["string", "`"] - ]], - ["string", "\"foo `a` `b` `c` `d` bar\""] -] - ----------------------------------------------------- - -Checks for single-line and multi-line template strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jolie/deployment_features.test b/node_modules/prismjs/tests/languages/jolie/deployment_features.test deleted file mode 100644 index ebcd86a..0000000 --- a/node_modules/prismjs/tests/languages/jolie/deployment_features.test +++ /dev/null @@ -1,43 +0,0 @@ -Aggregates: First, Second with Third -Redirects: First => Second, Third => Fourth -Jolie: "logger.ol" in LoggerService -log@LoggerService( new )(); -println @ Console( "none" )() ----------------------------------------------------- - [ - [ "keyword", "Aggregates" ], - [ "operator", ":" ], - [ "aggregates", [ - [ "function", "First" ], [ "punctuation", ","], - [ "function", "Second" ], - [ "withExtension", [ - [ "keyword", "with" ], " Third" ] - ] - ] - ], - [ "keyword", "Redirects" ], - [ "operator", ":" ], - [ "redirects", - [ - [ "function", "First" ], - [ "symbol", "=>" ], - [ "function", "Second" ], [ "punctuation", ","], - [ "function", "Third" ], - [ "symbol", "=>" ], - [ "function", "Fourth" ] - ] - ], - [ "keyword", "Jolie" ], - [ "operator", ":" ], - [ "string", "\"logger.ol\"" ], - [ "keyword", "in" ], - [ "function", "LoggerService" ], - "\nlog", [ "symbol", "@" ], [ "function", "LoggerService" ], - "( ", [ "keyword", "new" ], " )()", [ "symbol", ";" ], - "\nprintln ", [ "symbol", "@" ], [ "function", "Console" ], - "( ", [ "string", "\"none\"" ], " )()" -] - ----------------------------------------------------- - -Checks for outputPorts and Aggregates and Redirect constructs. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jolie/keyword_feature.test b/node_modules/prismjs/tests/languages/jolie/keyword_feature.test deleted file mode 100644 index 55a95ca..0000000 --- a/node_modules/prismjs/tests/languages/jolie/keyword_feature.test +++ /dev/null @@ -1,129 +0,0 @@ -include -define -is_defined -undef -main -init -outputPort ; -inputPort ; -Location -Protocol -Interfaces -RequestResponse -OneWay -type -interface -extender -throws -cset -csets -forward -courier ; -Aggregates -Redirects -embedded -extender -execution -sequential -concurrent -single -scope -install -throw -comp -cH -default -global -linkIn -linkOut -synchronized -this -new -for -if -else -while -in ; -Jolie -Java -Javascript -nullProcess -spawn -constants -with -provide -until -exit -foreach -instanceof -over -service - ----------------------------------------------------- -[ - ["keyword", "include" ], - ["keyword", "define" ], - ["keyword", "is_defined" ], - ["keyword", "undef" ], - ["keyword", "main" ], - ["keyword", "init" ], - ["keyword", "outputPort" ], [ "symbol", ";" ], - ["keyword", "inputPort" ], [ "symbol", ";" ], - ["keyword", "Location" ], - ["keyword", "Protocol" ], - ["keyword", "Interfaces" ], - ["keyword", "RequestResponse" ], - ["keyword", "OneWay" ], - ["keyword", "type" ], - ["keyword", "interface" ], - ["keyword", "extender" ], - ["keyword", "throws" ], - ["keyword", "cset" ], - ["keyword", "csets" ], - ["keyword", "forward" ], - ["keyword", "courier" ], [ "symbol", ";" ], - ["keyword", "Aggregates" ], - ["keyword", "Redirects" ], - ["keyword", "embedded" ], - ["keyword", "extender" ], - ["keyword", "execution" ], - ["keyword", "sequential" ], - ["keyword", "concurrent" ], - ["keyword", "single" ], - ["keyword", "scope" ], - ["keyword", "install" ], - ["keyword", "throw" ], - ["keyword", "comp" ], - ["keyword", "cH" ], - ["keyword", "default" ], - ["keyword", "global" ], - ["keyword", "linkIn" ], - ["keyword", "linkOut" ], - ["keyword", "synchronized" ], - ["keyword", "this" ], - ["keyword", "new" ], - ["keyword", "for" ], - ["keyword", "if" ], - ["keyword", "else" ], - ["keyword", "while" ], - ["keyword", "in" ], [ "symbol", ";" ], - ["keyword", "Jolie" ], - ["keyword", "Java" ], - ["keyword", "Javascript" ], - ["keyword", "nullProcess" ], - ["keyword", "spawn" ], - ["keyword", "constants" ], - ["keyword", "with" ], - ["keyword", "provide" ], - ["keyword", "until" ], - ["keyword", "exit" ], - ["keyword", "foreach" ], - ["keyword", "instanceof" ], - ["keyword", "over" ], - ["keyword", "service" ] - -] - ----------------------------------------------------- - -Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jolie/number_feature.test b/node_modules/prismjs/tests/languages/jolie/number_feature.test deleted file mode 100644 index 90d5c96..0000000 --- a/node_modules/prismjs/tests/languages/jolie/number_feature.test +++ /dev/null @@ -1,19 +0,0 @@ -42 -42L -1.2e3 -0.1E-4 -0.2e+1 - ----------------------------------------------------- - -[ - ["number", "42" ], - ["number", "42L" ], - ["number", "1.2e3" ], - ["number", "0.1E-4" ], - ["number", "0.2e+1" ] -] - ----------------------------------------------------- - -Checks for decimal numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jolie/operator_feature.test b/node_modules/prismjs/tests/languages/jolie/operator_feature.test deleted file mode 100644 index 963acc2..0000000 --- a/node_modules/prismjs/tests/languages/jolie/operator_feature.test +++ /dev/null @@ -1,42 +0,0 @@ -+ ++ += -- -- -= -! != -< <= > >= -> << -= == -&& -? * / % ; : | @ - ----------------------------------------------------- - -[ - ["operator", "+"], - ["operator", "++"], - ["operator", "+="], - ["operator", "-"], - ["operator", "--"], - ["operator", "-="], - ["operator", "!"], - ["operator", "!="], - ["operator", "<" ], - ["operator", "<=" ], - ["operator", ">" ], - ["operator", ">=" ], - ["operator", "->" ], - ["operator", "<<" ], - ["operator", "=" ], - ["operator", "==" ], - ["operator", "&&" ], - [ "operator", "?" ], - [ "operator", "*" ], - [ "operator", "/" ], - [ "operator", "%" ], - [ "symbol", ";" ], - [ "operator", ":" ], - [ "symbol", "|" ], - [ "symbol", "@" ] - -] - ----------------------------------------------------- - -Checks for all operators and symbols. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/json/boolean_feature.test b/node_modules/prismjs/tests/languages/json/boolean_feature.test deleted file mode 100644 index 4019c44..0000000 --- a/node_modules/prismjs/tests/languages/json/boolean_feature.test +++ /dev/null @@ -1,13 +0,0 @@ -true -false - ----------------------------------------------------- - -[ - ["boolean", "true"], - ["boolean", "false"] -] - ----------------------------------------------------- - -Checks for booleans. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/json/null_feature.test b/node_modules/prismjs/tests/languages/json/null_feature.test deleted file mode 100644 index 1283944..0000000 --- a/node_modules/prismjs/tests/languages/json/null_feature.test +++ /dev/null @@ -1,11 +0,0 @@ -null - ----------------------------------------------------- - -[ - ["null", "null"] -] - ----------------------------------------------------- - -Checks for null. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/json/number_feature.test b/node_modules/prismjs/tests/languages/json/number_feature.test deleted file mode 100644 index ba045ec..0000000 --- a/node_modules/prismjs/tests/languages/json/number_feature.test +++ /dev/null @@ -1,21 +0,0 @@ -0 -123 -3.14159 -5.0e8 -0.2E+2 -47e-5 - ----------------------------------------------------- - -[ - ["number", "0"], - ["number", "123"], - ["number", "3.14159"], - ["number", "5.0e8"], - ["number", "0.2E+2"], - ["number", "47e-5"] -] - ----------------------------------------------------- - -Checks for numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/json/property_feature.test b/node_modules/prismjs/tests/languages/json/property_feature.test deleted file mode 100644 index 3880ad7..0000000 --- a/node_modules/prismjs/tests/languages/json/property_feature.test +++ /dev/null @@ -1,33 +0,0 @@ -{"foo\"bar\"baz":1,"foo":2} -{ - "foo": 1, - "b\"ar": 2 -} - ----------------------------------------------------- - -[ - ["punctuation", "{"], - ["property", "\"foo\\\"bar\\\"baz\""], - ["operator", ":"], - ["number", "1"], - ["punctuation", ","], - ["property", "\"foo\""], - ["operator", ":"], - ["number", "2"], - ["punctuation", "}"], - - ["punctuation", "{"], - ["property", "\"foo\""], - ["operator", ":"], - ["number", "1"], - ["punctuation", ","], - ["property", "\"b\\\"ar\""], - ["operator", ":"], - ["number", "2"], - ["punctuation", "}"] -] - ----------------------------------------------------- - -Checks for features. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/json/string_feature.test b/node_modules/prismjs/tests/languages/json/string_feature.test deleted file mode 100644 index 08ac8c0..0000000 --- a/node_modules/prismjs/tests/languages/json/string_feature.test +++ /dev/null @@ -1,27 +0,0 @@ -"" -"foo" -"foo\"bar\"baz" -"\u2642\\ " -{"foo":"bar","baz":"\""} - ----------------------------------------------------- - -[ - ["string", "\"\""], - ["string", "\"foo\""], - ["string", "\"foo\\\"bar\\\"baz\""], - ["string", "\"\\u2642\\\\ \""], - ["punctuation", "{"], - ["property", "\"foo\""], - ["operator", ":"], - ["string", "\"bar\""], - ["punctuation", ","], - ["property", "\"baz\""], - ["operator", ":"], - ["string", "\"\\\"\""], - ["punctuation", "}"] -] - ----------------------------------------------------- - -Checks for strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/jsx/tag_feature.test b/node_modules/prismjs/tests/languages/jsx/tag_feature.test deleted file mode 100644 index 6a4a8c5..0000000 --- a/node_modules/prismjs/tests/languages/jsx/tag_feature.test +++ /dev/null @@ -1,48 +0,0 @@ -var myDivElement =
                ; -var myElement = ; - ----------------------------------------------------- - -[ - ["keyword", "var"], - " myDivElement ", - ["operator", "="], - ["tag", [ - ["tag", [ - ["punctuation", "<"], - "div" - ]], - ["attr-name", ["className"]], - ["attr-value", [ - ["punctuation", "="], - ["punctuation", "\""], - "foo", - ["punctuation", "\""] - ]], - ["punctuation", "/>"] - ]], - ["punctuation", ";"], - - ["keyword", "var"], - " myElement ", - ["operator", "="], - ["tag", [ - ["tag", [ - ["punctuation", "<"], - "MyComponent" - ]], - ["attr-name", ["someProperty"]], - ["script", [ - ["punctuation", "="], - ["punctuation", "{"], - ["boolean", "true"], - ["punctuation", "}"] - ]], - ["punctuation", "/>"] - ]], - ["punctuation", ";"] -] - ----------------------------------------------------- - -Checks for JSX tags. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/julia/boolean_feature.test b/node_modules/prismjs/tests/languages/julia/boolean_feature.test deleted file mode 100644 index 4019c44..0000000 --- a/node_modules/prismjs/tests/languages/julia/boolean_feature.test +++ /dev/null @@ -1,13 +0,0 @@ -true -false - ----------------------------------------------------- - -[ - ["boolean", "true"], - ["boolean", "false"] -] - ----------------------------------------------------- - -Checks for booleans. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/julia/comment_feature.test b/node_modules/prismjs/tests/languages/julia/comment_feature.test deleted file mode 100644 index 054d602..0000000 --- a/node_modules/prismjs/tests/languages/julia/comment_feature.test +++ /dev/null @@ -1,13 +0,0 @@ -# -# foobar - ----------------------------------------------------- - -[ - ["comment", "#"], - ["comment", "# foobar"] -] - ----------------------------------------------------- - -Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/julia/keyword_feature.test b/node_modules/prismjs/tests/languages/julia/keyword_feature.test deleted file mode 100644 index e2cfa8c..0000000 --- a/node_modules/prismjs/tests/languages/julia/keyword_feature.test +++ /dev/null @@ -1,31 +0,0 @@ -abstract baremodule begin -bitstype break catch -ccall const continue -do else elseif end -export finally for -function global if -immutable import importall -let local macro module -print println quote -return try type -typealias using while - ----------------------------------------------------- - -[ - ["keyword", "abstract"], ["keyword", "baremodule"], ["keyword", "begin"], - ["keyword", "bitstype"], ["keyword", "break"], ["keyword", "catch"], - ["keyword", "ccall"], ["keyword", "const"], ["keyword", "continue"], - ["keyword", "do"], ["keyword", "else"], ["keyword", "elseif"], ["keyword", "end"], - ["keyword", "export"], ["keyword", "finally"], ["keyword", "for"], - ["keyword", "function"], ["keyword", "global"], ["keyword", "if"], - ["keyword", "immutable"], ["keyword", "import"], ["keyword", "importall"], - ["keyword", "let"], ["keyword", "local"], ["keyword", "macro"], ["keyword", "module"], - ["keyword", "print"], ["keyword", "println"], ["keyword", "quote"], - ["keyword", "return"], ["keyword", "try"], ["keyword", "type"], - ["keyword", "typealias"], ["keyword", "using"], ["keyword", "while"] -] - ----------------------------------------------------- - -Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/julia/number_feature.test b/node_modules/prismjs/tests/languages/julia/number_feature.test deleted file mode 100644 index 72fc7a4..0000000 --- a/node_modules/prismjs/tests/languages/julia/number_feature.test +++ /dev/null @@ -1,33 +0,0 @@ -0b0011 -0o274 -0xBadFace -42 -1.23 -1e10 -2.5e-4 -0.5f0 -2.5f-4 -0x1p0 -0x1.8p3 -0x.4p-1 - ----------------------------------------------------- - -[ - ["number", "0b0011"], - ["number", "0o274"], - ["number", "0xBadFace"], - ["number", "42"], - ["number", "1.23"], - ["number", "1e10"], - ["number", "2.5e-4"], - ["number", "0.5f0"], - ["number", "2.5f-4"], - ["number", "0x1p0"], - ["number", "0x1.8p3"], - ["number", "0x.4p-1"] -] - ----------------------------------------------------- - -Checks for binary, octal, hexadecimal and decimal numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/julia/operator_feature.test b/node_modules/prismjs/tests/languages/julia/operator_feature.test deleted file mode 100644 index 57f0d68..0000000 --- a/node_modules/prismjs/tests/languages/julia/operator_feature.test +++ /dev/null @@ -1,41 +0,0 @@ -+ += -- -= -* *= -/ /= // -\ \= -^ ^= -% %= -÷ ÷= -! != !== -& &= -| |= |> -$ $= -< <= <: << <<= -> >= >> >>= >>> >>>= -= == === -~ ≠ ≤ ≥ - ----------------------------------------------------- - -[ - ["operator", "+"], ["operator", "+="], - ["operator", "-"], ["operator", "-="], - ["operator", "*"], ["operator", "*="], - ["operator", "/"], ["operator", "/="], ["operator", "//"], - ["operator", "\\"], ["operator", "\\="], - ["operator", "^"], ["operator", "^="], - ["operator", "%"], ["operator", "%="], - ["operator", "÷"], ["operator", "÷="], - ["operator", "!"], ["operator", "!="], ["operator", "!=="], - ["operator", "&"], ["operator", "&="], - ["operator", "|"], ["operator", "|="], ["operator", "|>"], - ["operator", "$"], ["operator", "$="], - ["operator", "<"], ["operator", "<="], ["operator", "<:"], ["operator", "<<"], ["operator", "<<="], - ["operator", ">"], ["operator", ">="], ["operator", ">>"], ["operator", ">>="], ["operator", ">>>"], ["operator", ">>>="], - ["operator", "="], ["operator", "=="], ["operator", "==="], - ["operator", "~"], ["operator", "≠"], ["operator", "≤"], ["operator", "≥"] -] - ----------------------------------------------------- - -Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/julia/string_feature.test b/node_modules/prismjs/tests/languages/julia/string_feature.test deleted file mode 100644 index 207b3f4..0000000 --- a/node_modules/prismjs/tests/languages/julia/string_feature.test +++ /dev/null @@ -1,29 +0,0 @@ -"" -"fo\"o" -'x' -'\'' -'\u2200' -"""foo""" -"""fo"o -bar""" -'''foo''' -'''fo'o -bar''' - ----------------------------------------------------- - -[ - ["string", "\"\""], - ["string", "\"fo\\\"o\""], - ["string", "'x'"], - ["string", "'\\''"], - ["string", "'\\u2200'"], - ["string", "\"\"\"foo\"\"\""], - ["string", "\"\"\"fo\"o\r\nbar\"\"\""], - ["string", "'''foo'''"], - ["string", "'''fo'o\r\nbar'''"] -] - ----------------------------------------------------- - -Checks for strings and characters. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/atrule_feature.test b/node_modules/prismjs/tests/languages/keyman/atrule_feature.test deleted file mode 100644 index 1171caf..0000000 --- a/node_modules/prismjs/tests/languages/keyman/atrule_feature.test +++ /dev/null @@ -1,15 +0,0 @@ -ansi begin unicode -group using keys -match nomatch - ----------------------------------------------------- - -[ - ["atrule", "ansi"], ["atrule", "begin"], ["atrule", "unicode"], - ["atrule", "group"], ["atrule", "using keys"], - ["atrule", "match"], ["atrule", "nomatch"] -] - ----------------------------------------------------- - -Checks for all structural keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/bold_feature.test b/node_modules/prismjs/tests/languages/keyman/bold_feature.test deleted file mode 100644 index 58e731c..0000000 --- a/node_modules/prismjs/tests/languages/keyman/bold_feature.test +++ /dev/null @@ -1,59 +0,0 @@ -&baselayout &bitmap &capsononly -&capsalwaysoff &shiftfreescaps -©right ðnologuecode -&hotkey &includecodes -&keyboardversion &kmw_embedcss -&kmw_embedjs &kmw_helpfile -&kmw_helptext &kmw_rtl -&language &layer &layoutfile -&message &mnemoniclayout -&name &oldcharposmatching -&platform &targets &version -&visualkeyboard &windowslanguages - -bitmap -bitmaps -caps on only -caps always off -shift frees caps -copyright -hotkey -language -layout -message -name -version - ----------------------------------------------------- - -[ - ["bold", "&baselayout"], ["bold", "&bitmap"], ["bold", "&capsononly"], - ["bold", "&capsalwaysoff"], ["bold", "&shiftfreescaps"], - ["bold", "©right"], ["bold", "ðnologuecode"], - ["bold", "&hotkey"], ["bold", "&includecodes"], - ["bold", "&keyboardversion"], ["bold", "&kmw_embedcss"], - ["bold", "&kmw_embedjs"], ["bold", "&kmw_helpfile"], - ["bold", "&kmw_helptext"], ["bold", "&kmw_rtl"], - ["bold", "&language"], ["bold", "&layer"], ["bold", "&layoutfile"], - ["bold", "&message"], ["bold", "&mnemoniclayout"], - ["bold", "&name"], ["bold", "&oldcharposmatching"], - ["bold", "&platform"], ["bold", "&targets"], ["bold", "&version"], - ["bold", "&visualkeyboard"], ["bold", "&windowslanguages"], - - ["bold", "bitmap"], - ["bold", "bitmaps"], - ["bold", "caps on only"], - ["bold", "caps always off"], - ["bold", "shift frees caps"], - ["bold", "copyright"], - ["bold", "hotkey"], - ["bold", "language"], - ["bold", "layout"], - ["bold", "message"], - ["bold", "name"], - ["bold", "version"] -] - ----------------------------------------------------- - -Checks for header statements, system stores and variable system stores. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/comment_feature.test b/node_modules/prismjs/tests/languages/keyman/comment_feature.test deleted file mode 100644 index 3056bde..0000000 --- a/node_modules/prismjs/tests/languages/keyman/comment_feature.test +++ /dev/null @@ -1,13 +0,0 @@ -c Foo - c Foobar - ----------------------------------------------------- - -[ - ["comment", "c Foo"], - ["comment", "c Foobar"] -] - ----------------------------------------------------- - -Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/function_feature.test b/node_modules/prismjs/tests/languages/keyman/function_feature.test deleted file mode 100644 index 3852ade..0000000 --- a/node_modules/prismjs/tests/languages/keyman/function_feature.test +++ /dev/null @@ -1,39 +0,0 @@ -['c'] -["f"] -[K_SEL] -[K_KANJI?15] -[T_SCHWA] -[U_0259] -[CTRL 'a'] -[SHIFT "b"] -[ALT K_C] -[LCTRL T_D] -[RCTRL U_E259] -[LALT K_F] -[RALT K_G] -[CAPS K_H] -[NCAPS K_I] - ----------------------------------------------------- - -[ - ["function", "['c']"], - ["function", "[\"f\"]"], - ["function", "[K_SEL]"], - ["function", "[K_KANJI?15]"], - ["function", "[T_SCHWA]"], - ["function", "[U_0259]"], - ["function", "[CTRL 'a']"], - ["function", "[SHIFT \"b\"]"], - ["function", "[ALT K_C]"], - ["function", "[LCTRL T_D]"], - ["function", "[RCTRL U_E259]"], - ["function", "[LALT K_F]"], - ["function", "[RALT K_G]"], - ["function", "[CAPS K_H]"], - ["function", "[NCAPS K_I]"] -] - ----------------------------------------------------- - -Checks for keys, with all possible modifiers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/keyword_feature.test b/node_modules/prismjs/tests/languages/keyman/keyword_feature.test deleted file mode 100644 index 7bbd230..0000000 --- a/node_modules/prismjs/tests/languages/keyman/keyword_feature.test +++ /dev/null @@ -1,21 +0,0 @@ -any baselayout beep -call context deadkey -dk if index layer -notany nul outs -platform return reset -save set store use - ----------------------------------------------------- - -[ - ["keyword", "any"], ["keyword", "baselayout"], ["keyword", "beep"], - ["keyword", "call"], ["keyword", "context"], ["keyword", "deadkey"], - ["keyword", "dk"], ["keyword", "if"], ["keyword", "index"], ["keyword", "layer"], - ["keyword", "notany"], ["keyword", "nul"], ["keyword", "outs"], - ["keyword", "platform"], ["keyword", "return"], ["keyword", "reset"], - ["keyword", "save"], ["keyword", "set"], ["keyword", "store"], ["keyword", "use"] -] - ----------------------------------------------------- - -Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/number_feature.test b/node_modules/prismjs/tests/languages/keyman/number_feature.test deleted file mode 100644 index c71eb6e..0000000 --- a/node_modules/prismjs/tests/languages/keyman/number_feature.test +++ /dev/null @@ -1,21 +0,0 @@ -U+0041 -d67 -d1114111 -x20 -x10FFFF -4177777 - ----------------------------------------------------- - -[ - ["number", "U+0041"], - ["number", "d67"], - ["number", "d1114111"], - ["number", "x20"], - ["number", "x10FFFF"], - ["number", "4177777"] -] - ----------------------------------------------------- - -Checks for unicode, decimal, hexadecimal and octal character codes. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/operator_feature.test b/node_modules/prismjs/tests/languages/keyman/operator_feature.test deleted file mode 100644 index bc439e8..0000000 --- a/node_modules/prismjs/tests/languages/keyman/operator_feature.test +++ /dev/null @@ -1,15 +0,0 @@ -+ > -\ , -( ) - ----------------------------------------------------- - -[ - ["operator", "+"], ["operator", ">"], - ["operator", "\\"], ["operator", ","], - ["operator", "("], ["operator", ")"] -] - ----------------------------------------------------- - -Checks for all operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/string_feature.test b/node_modules/prismjs/tests/languages/keyman/string_feature.test deleted file mode 100644 index ac457af..0000000 --- a/node_modules/prismjs/tests/languages/keyman/string_feature.test +++ /dev/null @@ -1,17 +0,0 @@ -'' -"" -'foo' -"bar" - ----------------------------------------------------- - -[ - ["string", "''"], - ["string", "\"\""], - ["string", "'foo'"], - ["string", "\"bar\""] -] - ----------------------------------------------------- - -Checks for single-quoted and double-quoted strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/keyman/tag_feature.test b/node_modules/prismjs/tests/languages/keyman/tag_feature.test deleted file mode 100644 index 2aa760a..0000000 --- a/node_modules/prismjs/tests/languages/keyman/tag_feature.test +++ /dev/null @@ -1,19 +0,0 @@ -$keyman: -$kmfl: -$weaver: -$keymanweb: -$keymanonly: - ----------------------------------------------------- - -[ - ["tag", "$keyman:"], - ["tag", "$kmfl:"], - ["tag", "$weaver:"], - ["tag", "$keymanweb:"], - ["tag", "$keymanonly:"] -] - ----------------------------------------------------- - -Checks for all prefixes. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/kotlin/annotation_feature.test b/node_modules/prismjs/tests/languages/kotlin/annotation_feature.test deleted file mode 100644 index 05c1385..0000000 --- a/node_modules/prismjs/tests/languages/kotlin/annotation_feature.test +++ /dev/null @@ -1,21 +0,0 @@ -@Deprecated(SUBSYSTEM_DEPRECATED) -@SetUp -@Suppress -@field:Ann -@file:JvmName -@set:[Inject VisibleForTesting] - ----------------------------------------------------- - -[ - ["annotation", "@Deprecated"], ["punctuation", "("], "SUBSYSTEM_DEPRECATED", ["punctuation", ")"], - ["annotation", "@SetUp"], - ["annotation", "@Suppress"], - ["annotation", "@field:Ann"], - ["annotation", "@file:JvmName"], - ["annotation", "@set:[Inject VisibleForTesting]"] -] - ----------------------------------------------------- - -Checks for annotations. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/kotlin/function_feature.test b/node_modules/prismjs/tests/languages/kotlin/function_feature.test deleted file mode 100644 index 8bfd2b2..0000000 --- a/node_modules/prismjs/tests/languages/kotlin/function_feature.test +++ /dev/null @@ -1,16 +0,0 @@ -foo() -foo_Bar_42() -list.filter {} - ----------------------------------------------------- - -[ - ["function", "foo"], ["punctuation", "("], ["punctuation", ")"], - ["function", "foo_Bar_42"], ["punctuation", "("], ["punctuation", ")"], - "\r\nlist", ["punctuation", "."], - ["function", "filter"], ["punctuation", "{"], ["punctuation", "}"] -] - ----------------------------------------------------- - -Checks for functions. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/kotlin/interpolation_feature.test b/node_modules/prismjs/tests/languages/kotlin/interpolation_feature.test deleted file mode 100644 index 0ee8299..0000000 --- a/node_modules/prismjs/tests/languages/kotlin/interpolation_feature.test +++ /dev/null @@ -1,46 +0,0 @@ -"$foo ${bar} ${'$'} ${foobar()}" -""" -$foo ${bar} -${'$'} ${foobar()} -""" - ----------------------------------------------------- - -[ - ["string", [ - "\"", - ["interpolation", "$foo"], - ["interpolation", [ - ["delimiter", "${"], "bar", ["delimiter", "}"] - ]], - ["interpolation", [ - ["delimiter", "${"], ["string", "'$'"], ["delimiter", "}"] - ]], - ["interpolation", [ - ["delimiter", "${"], - ["function", "foobar"], ["punctuation", "("], ["punctuation", ")"], - ["delimiter", "}"] - ]], - "\"" - ]], - ["raw-string", [ - "\"\"\"\r\n", - ["interpolation", "$foo"], - ["interpolation", [ - ["delimiter", "${"], "bar", ["delimiter", "}"] - ]], - ["interpolation", [ - ["delimiter", "${"], ["string", "'$'"], ["delimiter", "}"] - ]], - ["interpolation", [ - ["delimiter", "${"], - ["function", "foobar"], ["punctuation", "("], ["punctuation", ")"], - ["delimiter", "}"] - ]], - "\r\n\"\"\"" - ]] -] - ----------------------------------------------------- - -Checks for string interpolation. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/kotlin/keyword_feature.test b/node_modules/prismjs/tests/languages/kotlin/keyword_feature.test deleted file mode 100644 index d8ace30..0000000 --- a/node_modules/prismjs/tests/languages/kotlin/keyword_feature.test +++ /dev/null @@ -1,121 +0,0 @@ -abstract -annotation -as -break -by -catch -class -companion -const -constructor -continue -crossinline -data -do -else -enum -final -finally -for -fun -get -if -import -in -init -inline -inner -interface -internal -is -lateinit -noinline -null -object -open -out -override -package -private -protected -public -reified -return -sealed -set -super -tailrec -this -throw -to -try -val -var -when -where -while - ----------------------------------------------------- - -[ - ["keyword", "abstract"], - ["keyword", "annotation"], - ["keyword", "as"], - ["keyword", "break"], - ["keyword", "by"], - ["keyword", "catch"], - ["keyword", "class"], - ["keyword", "companion"], - ["keyword", "const"], - ["keyword", "constructor"], - ["keyword", "continue"], - ["keyword", "crossinline"], - ["keyword", "data"], - ["keyword", "do"], - ["keyword", "else"], - ["keyword", "enum"], - ["keyword", "final"], - ["keyword", "finally"], - ["keyword", "for"], - ["keyword", "fun"], - ["keyword", "get"], - ["keyword", "if"], - ["keyword", "import"], - ["keyword", "in"], - ["keyword", "init"], - ["keyword", "inline"], - ["keyword", "inner"], - ["keyword", "interface"], - ["keyword", "internal"], - ["keyword", "is"], - ["keyword", "lateinit"], - ["keyword", "noinline"], - ["keyword", "null"], - ["keyword", "object"], - ["keyword", "open"], - ["keyword", "out"], - ["keyword", "override"], - ["keyword", "package"], - ["keyword", "private"], - ["keyword", "protected"], - ["keyword", "public"], - ["keyword", "reified"], - ["keyword", "return"], - ["keyword", "sealed"], - ["keyword", "set"], - ["keyword", "super"], - ["keyword", "tailrec"], - ["keyword", "this"], - ["keyword", "throw"], - ["keyword", "to"], - ["keyword", "try"], - ["keyword", "val"], - ["keyword", "var"], - ["keyword", "when"], - ["keyword", "where"], - ["keyword", "while"] -] - ----------------------------------------------------- - -Checks for keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/kotlin/label_feature.test b/node_modules/prismjs/tests/languages/kotlin/label_feature.test deleted file mode 100644 index fa62266..0000000 --- a/node_modules/prismjs/tests/languages/kotlin/label_feature.test +++ /dev/null @@ -1,15 +0,0 @@ -loop@ -break@loop -return@forEach - ----------------------------------------------------- - -[ - ["label", "loop@"], - ["keyword", "break"], ["label", "@loop"], - ["keyword", "return"], ["label", "@forEach"] -] - ----------------------------------------------------- - -Checks for labels. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/kotlin/number_feature.test b/node_modules/prismjs/tests/languages/kotlin/number_feature.test deleted file mode 100644 index df21736..0000000 --- a/node_modules/prismjs/tests/languages/kotlin/number_feature.test +++ /dev/null @@ -1,29 +0,0 @@ -123 -123L -0x0F -0b00001011 -123.5 -123.5e10 -123.5e-10 -123.5e+10 -123.5f -123.5F - ----------------------------------------------------- - -[ - ["number", "123"], - ["number", "123L"], - ["number", "0x0F"], - ["number", "0b00001011"], - ["number", "123.5"], - ["number", "123.5e10"], - ["number", "123.5e-10"], - ["number", "123.5e+10"], - ["number", "123.5f"], - ["number", "123.5F"] -] - ----------------------------------------------------- - -Checks for numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/kotlin/operator_feature.test b/node_modules/prismjs/tests/languages/kotlin/operator_feature.test deleted file mode 100644 index 12f0cae..0000000 --- a/node_modules/prismjs/tests/languages/kotlin/operator_feature.test +++ /dev/null @@ -1,31 +0,0 @@ -+ ++ += -- -- -= -> -= == === -! !! != !== -/ /= * *= -% %= -< <= > >= -? ?: : :: -.. && || -and inv or -shl shr ushr xor - ----------------------------------------------------- - -[ - ["operator", "+"], ["operator", "++"], ["operator", "+="], - ["operator", "-"], ["operator", "--"], ["operator", "-="], ["operator", "->"], - ["operator", "="], ["operator", "=="], ["operator", "==="], - ["operator", "!"], ["operator", "!!"], ["operator", "!="], ["operator", "!=="], - ["operator", "/"], ["operator", "/="], ["operator", "*"], ["operator", "*="], - ["operator", "%"], ["operator", "%="], - ["operator", "<"], ["operator", "<="], ["operator", ">"], ["operator", ">="], - ["operator", "?"], ["operator", "?:"], ["operator", ":"], ["operator", "::"], - ["operator", ".."], ["operator", "&&"], ["operator", "||"], - ["operator", "and"], ["operator", "inv"], ["operator", "or"], - ["operator", "shl"], ["operator", "shr"], ["operator", "ushr"], ["operator", "xor"] -] - ----------------------------------------------------- - -Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/kotlin/raw-string_feature.test b/node_modules/prismjs/tests/languages/kotlin/raw-string_feature.test deleted file mode 100644 index 5a5ca33..0000000 --- a/node_modules/prismjs/tests/languages/kotlin/raw-string_feature.test +++ /dev/null @@ -1,18 +0,0 @@ -"""""" -"""Foo "bar"" baz""" -""" -"Foo" -bar -""" - ----------------------------------------------------- - -[ - ["raw-string", ["\"\"\"\"\"\""]], - ["raw-string", ["\"\"\"Foo \"bar\"\" baz\"\"\""]], - ["raw-string", ["\"\"\"\r\n\"Foo\"\r\nbar\r\n\"\"\""]] -] - ----------------------------------------------------- - -Checks for raw strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/latex/cdata_feature.test b/node_modules/prismjs/tests/languages/latex/cdata_feature.test deleted file mode 100644 index 0dfa98e..0000000 --- a/node_modules/prismjs/tests/languages/latex/cdata_feature.test +++ /dev/null @@ -1,28 +0,0 @@ -\begin{verbatim*} -Foo bar -\end{verbatim*} - -\begin{lstlisting} -Foo bar -baz -\end{lstlisting} - ----------------------------------------------------- - -[ - ["function", "\\begin"], ["punctuation", "{"], - ["keyword", "verbatim*"], ["punctuation", "}"], - ["cdata", "\r\nFoo bar\r\n"], - ["function", "\\end"], ["punctuation", "{"], - ["keyword", "verbatim*"], ["punctuation", "}"], - - ["function", "\\begin"], ["punctuation", "{"], - ["keyword", "lstlisting"], ["punctuation", "}"], - ["cdata", "\r\nFoo bar\r\nbaz\r\n"], - ["function", "\\end"], ["punctuation", "{"], - ["keyword", "lstlisting"], ["punctuation", "}"] -] - ----------------------------------------------------- - -Checks for verbatim environment. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/latex/comment_feature.test b/node_modules/prismjs/tests/languages/latex/comment_feature.test deleted file mode 100644 index 2f59d3c..0000000 --- a/node_modules/prismjs/tests/languages/latex/comment_feature.test +++ /dev/null @@ -1,13 +0,0 @@ -% -% foobar - ----------------------------------------------------- - -[ - ["comment", "%"], - ["comment", "% foobar"] -] - ----------------------------------------------------- - -Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/latex/equation_feature.test b/node_modules/prismjs/tests/languages/latex/equation_feature.test deleted file mode 100644 index 40caeeb..0000000 --- a/node_modules/prismjs/tests/languages/latex/equation_feature.test +++ /dev/null @@ -1,121 +0,0 @@ -$foo$ -$a \dots -b$ -\(foo\) -\(a \dots -b\) -\[foo\] -\[a \dots -b\] - -\begin{equation}foo\end{equation} -\begin{equation}a \dots -b\end{equation} -\begin{math}foo\end{math} -\begin{math}a \dots -b\end{math} -\begin{eqnarray}foo\end{eqnarray} -\begin{eqnarray}a \dots -b\end{eqnarray} -\begin{align}foo\end{align} -\begin{align*}a \dots -b\end{align*} -\begin{multline}foo\end{multline} -\begin{multline}a \dots -b\end{multline} -\begin{gather}foo\end{gather} -\begin{gather}a \dots -b\end{gather} - ----------------------------------------------------- - -[ - ["equation", ["$foo$"]], - ["equation", [ - "$a ", - ["equation-command", "\\dots"], - "\r\nb$" - ]], - ["equation", ["\\(foo\\)"]], - ["equation", [ - "\\(a ", - ["equation-command", "\\dots"], - "\r\nb\\)" - ]], - ["equation", ["\\[foo\\]"]], - ["equation", [ - "\\[a ", - ["equation-command", "\\dots"], - "\r\nb\\]" - ]], - - ["function", "\\begin"], ["punctuation", "{"], - ["keyword", "equation"], ["punctuation", "}"], - ["equation", ["foo"]], - ["function", "\\end"], ["punctuation", "{"], - ["keyword", "equation"], ["punctuation", "}"], - ["function", "\\begin"], ["punctuation", "{"], - ["keyword", "equation"], ["punctuation", "}"], - ["equation", ["a ", ["equation-command", "\\dots"], "\r\nb"]], - ["function", "\\end"], ["punctuation", "{"], - ["keyword", "equation"], ["punctuation", "}"], - - ["function", "\\begin"], ["punctuation", "{"], - ["keyword", "math"], ["punctuation", "}"], - ["equation", ["foo"]], - ["function", "\\end"], ["punctuation", "{"], - ["keyword", "math"], ["punctuation", "}"], - ["function", "\\begin"], ["punctuation", "{"], - ["keyword", "math"], ["punctuation", "}"], - ["equation", ["a ", ["equation-command", "\\dots"], "\r\nb"]], - ["function", "\\end"], ["punctuation", "{"], - ["keyword", "math"], ["punctuation", "}"], - - ["function", "\\begin"], ["punctuation", "{"], - ["keyword", "eqnarray"], ["punctuation", "}"], - ["equation", ["foo"]], - ["function", "\\end"], ["punctuation", "{"], - ["keyword", "eqnarray"], ["punctuation", "}"], - ["function", "\\begin"], ["punctuation", "{"], - ["keyword", "eqnarray"], ["punctuation", "}"], - ["equation", ["a ", ["equation-command", "\\dots"], "\r\nb"]], - ["function", "\\end"], ["punctuation", "{"], - ["keyword", "eqnarray"], ["punctuation", "}"], - - ["function", "\\begin"], ["punctuation", "{"], - ["keyword", "align"], ["punctuation", "}"], - ["equation", ["foo"]], - ["function", "\\end"], ["punctuation", "{"], - ["keyword", "align"], ["punctuation", "}"], - ["function", "\\begin"], ["punctuation", "{"], - ["keyword", "align*"], ["punctuation", "}"], - ["equation", ["a ", ["equation-command", "\\dots"], "\r\nb"]], - ["function", "\\end"], ["punctuation", "{"], - ["keyword", "align*"], ["punctuation", "}"], - - ["function", "\\begin"], ["punctuation", "{"], - ["keyword", "multline"], ["punctuation", "}"], - ["equation", ["foo"]], - ["function", "\\end"], ["punctuation", "{"], - ["keyword", "multline"], ["punctuation", "}"], - ["function", "\\begin"], ["punctuation", "{"], - ["keyword", "multline"], ["punctuation", "}"], - ["equation", ["a ", ["equation-command", "\\dots"], "\r\nb"]], - ["function", "\\end"], ["punctuation", "{"], - ["keyword", "multline"], ["punctuation", "}"], - - ["function", "\\begin"], ["punctuation", "{"], - ["keyword", "gather"], ["punctuation", "}"], - ["equation", ["foo"]], - ["function", "\\end"], ["punctuation", "{"], - ["keyword", "gather"], ["punctuation", "}"], - ["function", "\\begin"], ["punctuation", "{"], - ["keyword", "gather"], ["punctuation", "}"], - ["equation", ["a ", ["equation-command", "\\dots"], "\r\nb"]], - ["function", "\\end"], ["punctuation", "{"], - ["keyword", "gather"], ["punctuation", "}"] -] - ----------------------------------------------------- - -Checks for equations. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/latex/headline_feature.test b/node_modules/prismjs/tests/languages/latex/headline_feature.test deleted file mode 100644 index 17102ad..0000000 --- a/node_modules/prismjs/tests/languages/latex/headline_feature.test +++ /dev/null @@ -1,39 +0,0 @@ -\part{Foobar} -\chapter{Foobar} -\section{Foobar} -\subsection{Foobar} -\frametitle{Foobar} -\subsubsection{Foobar} -\paragraph{Foobar} -\subparagraph{Foobar} -\subsubparagraph{Foobar} -\subsubsubparagraph{Foobar} - ----------------------------------------------------- - -[ - ["function", "\\part"], ["punctuation", "{"], - ["headline", "Foobar"], ["punctuation", "}"], - ["function", "\\chapter"], ["punctuation", "{"], - ["headline", "Foobar"], ["punctuation", "}"], - ["function", "\\section"], ["punctuation", "{"], - ["headline", "Foobar"], ["punctuation", "}"], - ["function", "\\subsection"], ["punctuation", "{"], - ["headline", "Foobar"], ["punctuation", "}"], - ["function", "\\frametitle"], ["punctuation", "{"], - ["headline", "Foobar"], ["punctuation", "}"], - ["function", "\\subsubsection"], ["punctuation", "{"], - ["headline", "Foobar"], ["punctuation", "}"], - ["function", "\\paragraph"], ["punctuation", "{"], - ["headline", "Foobar"], ["punctuation", "}"], - ["function", "\\subparagraph"], ["punctuation", "{"], - ["headline", "Foobar"], ["punctuation", "}"], - ["function", "\\subsubparagraph"], ["punctuation", "{"], - ["headline", "Foobar"], ["punctuation", "}"], - ["function", "\\subsubsubparagraph"], ["punctuation", "{"], - ["headline", "Foobar"], ["punctuation", "}"] -] - ----------------------------------------------------- - -Checks for headlines. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/latex/keyword_feature.test b/node_modules/prismjs/tests/languages/latex/keyword_feature.test deleted file mode 100644 index 7a1b86f..0000000 --- a/node_modules/prismjs/tests/languages/latex/keyword_feature.test +++ /dev/null @@ -1,32 +0,0 @@ -\begin{foobar} -\end{foobar} -\ref{foobar} -\cite{foobar} -\label{foobar} -\usepackage{foobar} -\documentclass[11px,twoside,a4paper]{foobar} - ----------------------------------------------------- - -[ - ["function", "\\begin"], ["punctuation", "{"], - ["keyword", "foobar"], ["punctuation", "}"], - ["function", "\\end"], ["punctuation", "{"], - ["keyword", "foobar"], ["punctuation", "}"], - ["function", "\\ref"], ["punctuation", "{"], - ["keyword", "foobar"], ["punctuation", "}"], - ["function", "\\cite"], ["punctuation", "{"], - ["keyword", "foobar"], ["punctuation", "}"], - ["function", "\\label"], ["punctuation", "{"], - ["keyword", "foobar"], ["punctuation", "}"], - ["function", "\\usepackage"], ["punctuation", "{"], - ["keyword", "foobar"], ["punctuation", "}"], - ["function", "\\documentclass"], - ["punctuation", "["], "11px,twoside,a4paper", ["punctuation", "]"], - ["punctuation", "{"], - ["keyword", "foobar"], ["punctuation", "}"] -] - ----------------------------------------------------- - -Checks for keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/latex/url_feature.test b/node_modules/prismjs/tests/languages/latex/url_feature.test deleted file mode 100644 index 53e1c01..0000000 --- a/node_modules/prismjs/tests/languages/latex/url_feature.test +++ /dev/null @@ -1,12 +0,0 @@ -\url{http://prismjs.com} - ----------------------------------------------------- - -[ - ["function", "\\url"], ["punctuation", "{"], - ["url", "http://prismjs.com"], ["punctuation", "}"] -] - ----------------------------------------------------- - -Checks for URLs. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/less+haml/less_inclusion.test b/node_modules/prismjs/tests/languages/less+haml/less_inclusion.test deleted file mode 100644 index fffe2ca..0000000 --- a/node_modules/prismjs/tests/languages/less+haml/less_inclusion.test +++ /dev/null @@ -1,32 +0,0 @@ -:less - .foo { .bar; } - -~ - :less - .foo { .bar; } - ----------------------------------------------------- - -[ - ["filter-less", [ - ["filter-name", ":less"], - ["selector", [".foo"]], - ["punctuation", "{"], - ["mixin-usage", ".bar"], - ["punctuation", ";"], - ["punctuation", "}"] - ]], - ["punctuation", "~"], - ["filter-less", [ - ["filter-name", ":less"], - ["selector", [".foo"]], - ["punctuation", "{"], - ["mixin-usage", ".bar"], - ["punctuation", ";"], - ["punctuation", "}"] - ]] -] - ----------------------------------------------------- - -Checks for Less filter in Haml. The tilde serves only as a separator. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/less+jade/less_inclusion.test b/node_modules/prismjs/tests/languages/less+jade/less_inclusion.test deleted file mode 100644 index 1cc8b35..0000000 --- a/node_modules/prismjs/tests/languages/less+jade/less_inclusion.test +++ /dev/null @@ -1,20 +0,0 @@ -:less - @foo: #123; - ----------------------------------------------------- - -[ - ["filter-less", [ - ["filter-name", ":less"], - ["variable", [ - "@foo", - ["punctuation", ":"] - ]], - " #123", - ["punctuation", ";"] - ]] -] - ----------------------------------------------------- - -Checks for less filter in Jade. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/less/atrule_feature.test b/node_modules/prismjs/tests/languages/less/atrule_feature.test deleted file mode 100644 index 333d672..0000000 --- a/node_modules/prismjs/tests/languages/less/atrule_feature.test +++ /dev/null @@ -1,25 +0,0 @@ -@media {} -@media screen and (min-width: 320px) {} - ----------------------------------------------------- - -[ - ["atrule", [ - "@media" - ]], - ["punctuation", "{"], ["punctuation", "}"], - - ["atrule", [ - "@media screen and ", - ["punctuation", "("], - "min-width", - ["punctuation", ":"], - " 320px", - ["punctuation", ")"] - ]], - ["punctuation", "{"], ["punctuation", "}"] -] - ----------------------------------------------------- - -Checks for at-rules. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/less/comment_feature.test b/node_modules/prismjs/tests/languages/less/comment_feature.test deleted file mode 100644 index c728423..0000000 --- a/node_modules/prismjs/tests/languages/less/comment_feature.test +++ /dev/null @@ -1,18 +0,0 @@ -// -// foobar -/**/ -/* foo -bar */ - ----------------------------------------------------- - -[ - ["comment", "//"], - ["comment", "// foobar"], - ["comment", "/**/"], - ["comment", "/* foo\r\nbar */"] -] - ----------------------------------------------------- - -Checks for single-line and multi-line comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/less/operator_feature.test b/node_modules/prismjs/tests/languages/less/operator_feature.test deleted file mode 100644 index 7093994..0000000 --- a/node_modules/prismjs/tests/languages/less/operator_feature.test +++ /dev/null @@ -1,14 +0,0 @@ -+ - * / - ----------------------------------------------------- - -[ - ["operator", "+"], - ["operator", "-"], - ["operator", "*"], - ["operator", "/"] -] - ----------------------------------------------------- - -Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/less/property_feature.test b/node_modules/prismjs/tests/languages/less/property_feature.test deleted file mode 100644 index 85288c4..0000000 --- a/node_modules/prismjs/tests/languages/less/property_feature.test +++ /dev/null @@ -1,19 +0,0 @@ -font-weight: -@{foobar} : -background-@{foo}: -box-shadow+: -transform+_: - ----------------------------------------------------- - -[ - ["property", "font-weight"], ["punctuation", ":"], - ["property", "@{foobar}"], ["punctuation", ":"], - ["property", "background-@{foo}"], ["punctuation", ":"], - ["property", "box-shadow+"], ["punctuation", ":"], - ["property", "transform+_"], ["punctuation", ":"] -] - ----------------------------------------------------- - -Checks for properties. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/less/selector_feature.test b/node_modules/prismjs/tests/languages/less/selector_feature.test deleted file mode 100644 index ae82f14..0000000 --- a/node_modules/prismjs/tests/languages/less/selector_feature.test +++ /dev/null @@ -1,24 +0,0 @@ -.bordered {} -.@{foo} {} -.foo (@bg: #fff, @color: #000) {} - ----------------------------------------------------- - -[ - ["selector", [".bordered"]], - ["punctuation", "{"], ["punctuation", "}"], - ["selector", [".@{foo}"]], - ["punctuation", "{"], ["punctuation", "}"], - ["selector", [ - ".foo (", - ["variable", "@bg"], - ": #fff, ", - ["variable", "@color"], - ": #000)" - ]], - ["punctuation", "{"], ["punctuation", "}"] -] - ----------------------------------------------------- - -Checks for selectors and mixin declarations. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/argument_feature.test b/node_modules/prismjs/tests/languages/livescript/argument_feature.test deleted file mode 100644 index c195da9..0000000 --- a/node_modules/prismjs/tests/languages/livescript/argument_feature.test +++ /dev/null @@ -1,17 +0,0 @@ -& -&0 -&1 -&999 - ----------------------------------------------------- - -[ - ["argument", "&"], - ["argument", "&0"], - ["argument", "&1"], - ["argument", "&999"] -] - ----------------------------------------------------- - -Checks for arguments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/boolean_feature.test b/node_modules/prismjs/tests/languages/livescript/boolean_feature.test deleted file mode 100644 index 8fa6348..0000000 --- a/node_modules/prismjs/tests/languages/livescript/boolean_feature.test +++ /dev/null @@ -1,21 +0,0 @@ -false -no -off -on -true -yes - ----------------------------------------------------- - -[ - ["boolean", "false"], - ["boolean", "no"], - ["boolean", "off"], - ["boolean", "on"], - ["boolean", "true"], - ["boolean", "yes"] -] - ----------------------------------------------------- - -Checks for all boolean aliases. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/comment_feature.test b/node_modules/prismjs/tests/languages/livescript/comment_feature.test deleted file mode 100644 index afb4276..0000000 --- a/node_modules/prismjs/tests/languages/livescript/comment_feature.test +++ /dev/null @@ -1,18 +0,0 @@ -/**/ -/* foo -bar */ -# -# foobar - ----------------------------------------------------- - -[ - ["comment", "/**/"], - ["comment", "/* foo\r\nbar */"], - ["comment", "#"], - ["comment", "# foobar"] -] - ----------------------------------------------------- - -Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/identifier_feature.test b/node_modules/prismjs/tests/languages/livescript/identifier_feature.test deleted file mode 100644 index e0de5e8..0000000 --- a/node_modules/prismjs/tests/languages/livescript/identifier_feature.test +++ /dev/null @@ -1,21 +0,0 @@ -foo -fooBar42 -foo-bar42-baz -yes-no -function-case -delete-by - ----------------------------------------------------- - -[ - ["identifier", "foo"], - ["identifier", "fooBar42"], - ["identifier", "foo-bar42-baz"], - ["identifier", "yes-no"], - ["identifier", "function-case"], - ["identifier", "delete-by"] -] - ----------------------------------------------------- - -Checks for identifiers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/interpolated-string.test b/node_modules/prismjs/tests/languages/livescript/interpolated-string.test deleted file mode 100644 index 015ae09..0000000 --- a/node_modules/prismjs/tests/languages/livescript/interpolated-string.test +++ /dev/null @@ -1,57 +0,0 @@ -"""""" -"""Foo\"""bar""" -"""Foo -bar""" -"""#foobar #{foo + 42}""" - -"" -"Foo\"bar" -"Foo -bar" -"#foo #{ if /test/ == 'test' then 3 else 4}" - ----------------------------------------------------- - -[ - ["interpolated-string", [["string", "\"\"\"\"\"\""]]], - ["interpolated-string", [["string", "\"\"\"Foo\\\"\"\"bar\"\"\""]]], - ["interpolated-string", [["string", "\"\"\"Foo\r\nbar\"\"\""]]], - ["interpolated-string", [ - ["string", "\"\"\""], - ["variable", "#foobar"], - ["string", " "], - ["interpolation", [ - ["interpolation-punctuation", "#{"], - ["identifier", "foo"], - ["operator", "+"], - ["number", "42"], - ["interpolation-punctuation", "}"] - ]], - ["string", "\"\"\""] - ]], - ["interpolated-string", [["string", "\"\""]]], - ["interpolated-string", [["string", "\"Foo\\\"bar\""]]], - ["interpolated-string", [["string", "\"Foo\r\nbar\""]]], - ["interpolated-string", [ - ["string", "\""], - ["variable", "#foo"], - ["string", " "], - ["interpolation", [ - ["interpolation-punctuation", "#{"], - ["keyword", "if"], - ["regex", "/test/"], - ["operator", "=="], - ["string", "'test'"], - ["keyword", "then"], - ["number", "3"], - ["keyword", "else"], - ["number", "4"], - ["interpolation-punctuation", "}"] - ]], - ["string", "\""] - ]] -] - ----------------------------------------------------- - -Checks for interpolated strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/keyword-operator_feature.test b/node_modules/prismjs/tests/languages/livescript/keyword-operator_feature.test deleted file mode 100644 index b6f3d90..0000000 --- a/node_modules/prismjs/tests/languages/livescript/keyword-operator_feature.test +++ /dev/null @@ -1,57 +0,0 @@ -delete! -require! -typeof! - -and -by -delete -export -from -import -import all -in -instanceof -is -isnt -is not -not -of -or -til -to -typeof -with -xor - ----------------------------------------------------- - -[ - ["keyword-operator", "delete!"], - ["keyword-operator", "require!"], - ["keyword-operator", "typeof!"], - - ["keyword-operator", "and"], - ["keyword-operator", "by"], - ["keyword-operator", "delete"], - ["keyword-operator", "export"], - ["keyword-operator", "from"], - ["keyword-operator", "import"], - ["keyword-operator", "import all"], - ["keyword-operator", "in"], - ["keyword-operator", "instanceof"], - ["keyword-operator", "is"], - ["keyword-operator", "isnt"], - ["keyword-operator", "is not"], - ["keyword-operator", "not"], - ["keyword-operator", "of"], - ["keyword-operator", "or"], - ["keyword-operator", "til"], - ["keyword-operator", "to"], - ["keyword-operator", "typeof"], - ["keyword-operator", "with"], - ["keyword-operator", "xor"] -] - ----------------------------------------------------- - -Checks for all keyword operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/keyword_feature.test b/node_modules/prismjs/tests/languages/livescript/keyword_feature.test deleted file mode 100644 index 123f37d..0000000 --- a/node_modules/prismjs/tests/languages/livescript/keyword_feature.test +++ /dev/null @@ -1,87 +0,0 @@ -break -case -catch -class -const -continue -default -do -else -extends -fallthrough -finally -for -for ever -function -if -implements -it -let -loop -new -null -otherwise -own -return -super -switch -that -then -this -throw -try -unless -until -var -void -when -while -yield - ----------------------------------------------------- - -[ - ["keyword", "break"], - ["keyword", "case"], - ["keyword", "catch"], - ["keyword", "class"], - ["keyword", "const"], - ["keyword", "continue"], - ["keyword", "default"], - ["keyword", "do"], - ["keyword", "else"], - ["keyword", "extends"], - ["keyword", "fallthrough"], - ["keyword", "finally"], - ["keyword", "for"], - ["keyword", "for ever"], - ["keyword", "function"], - ["keyword", "if"], - ["keyword", "implements"], - ["keyword", "it"], - ["keyword", "let"], - ["keyword", "loop"], - ["keyword", "new"], - ["keyword", "null"], - ["keyword", "otherwise"], - ["keyword", "own"], - ["keyword", "return"], - ["keyword", "super"], - ["keyword", "switch"], - ["keyword", "that"], - ["keyword", "then"], - ["keyword", "this"], - ["keyword", "throw"], - ["keyword", "try"], - ["keyword", "unless"], - ["keyword", "until"], - ["keyword", "var"], - ["keyword", "void"], - ["keyword", "when"], - ["keyword", "while"], - ["keyword", "yield"] -] - ----------------------------------------------------- - -Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/number_feature.test b/node_modules/prismjs/tests/languages/livescript/number_feature.test deleted file mode 100644 index 7375927..0000000 --- a/node_modules/prismjs/tests/languages/livescript/number_feature.test +++ /dev/null @@ -1,21 +0,0 @@ -42 42_ 42km 42km_2 -4.514 0.47foo_7 -4_8_7_4.2_4_7 -4~12 -16~badFaCE -36~azertyuiop0123456789 - ----------------------------------------------------- - -[ - ["number", "42"], ["number", "42_"], ["number", "42km"], ["number", "42km_2"], - ["number", "4.514"], ["number", "0.47foo_7"], - ["number", "4_8_7_4.2_4_7"], - ["number", "4~12"], - ["number", "16~badFaCE"], - ["number", "36~azertyuiop0123456789"] -] - ----------------------------------------------------- - -Checks for numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/operator_feature.test b/node_modules/prismjs/tests/languages/livescript/operator_feature.test deleted file mode 100644 index d9565b2..0000000 --- a/node_modules/prismjs/tests/languages/livescript/operator_feature.test +++ /dev/null @@ -1,55 +0,0 @@ -a . b -.= .~ .. ... -.&. .^. .<<. .>>. .>>>. -:= :: ::= -&& -|| |> -< << <<< <<<< -<- <-- <-! <--! -<~ <~~ <~! <~~! -<| <= >> >= >? -- -- -> --> -+ ++ -@ @@ -% %% -* ** -! != !~= -!~> !~~> -!-> !--> -~ ~> ~~> ~= -= == -^ ^^ -/ ? - ----------------------------------------------------- - -[ - ["identifier", "a"], ["operator", "."], ["identifier", "b"], - ["operator", ".="], ["operator", ".~"], ["operator", ".."], ["operator", "..."], - ["operator", ".&."], ["operator", ".^."], ["operator", ".<<."], ["operator", ".>>."], ["operator", ".>>>."], - ["operator", ":="], ["operator", "::"], ["operator", "::="], - ["operator", "&&"], - ["operator", "||"], ["operator", "|>"], - ["operator", "<"], ["operator", "<<"], ["operator", "<<<"], ["operator", "<<<<"], - ["operator", "<-"], ["operator", "<--"], ["operator", "<-!"], ["operator", "<--!"], - ["operator", "<~"], ["operator", "<~~"], ["operator", "<~!"], ["operator", "<~~!"], - ["operator", "<|"], ["operator", "<="], ["operator", ""], ["operator", ">>"], ["operator", ">="], ["operator", ">?"], - ["operator", "-"], ["operator", "--"], ["operator", "->"], ["operator", "-->"], - ["operator", "+"], ["operator", "++"], - ["operator", "@"], ["operator", "@@"], - ["operator", "%"], ["operator", "%%"], - ["operator", "*"], ["operator", "**"], - ["operator", "!"], ["operator", "!="], ["operator", "!~="], - ["operator", "!~>"], ["operator", "!~~>"], - ["operator", "!->"], ["operator", "!-->"], - ["operator", "~"], ["operator", "~>"], ["operator", "~~>"], ["operator", "~="], - ["operator", "="], ["operator", "=="], - ["operator", "^"], ["operator", "^^"], - ["operator", "/"], ["operator", "?"] -] - ----------------------------------------------------- - -Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/regex_feature.test b/node_modules/prismjs/tests/languages/livescript/regex_feature.test deleted file mode 100644 index 0369ddb..0000000 --- a/node_modules/prismjs/tests/languages/livescript/regex_feature.test +++ /dev/null @@ -1,27 +0,0 @@ -/foo[bar]/igm -// -foo | -[bar]* -//igmuy -// -foo #bar -[baz] # foo bar -// - ----------------------------------------------------- - -[ - ["regex", "/foo[bar]/igm"], - ["regex", ["//\r\nfoo |\r\n[bar]*\r\n//igmuy"]], - ["regex", [ - "//\r\nfoo ", - ["comment", "#bar"], - "\r\n[baz] ", - ["comment", "# foo bar"], - "\r\n//" - ]] -] - ----------------------------------------------------- - -Checks for regexps. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/livescript/string_feature.test b/node_modules/prismjs/tests/languages/livescript/string_feature.test deleted file mode 100644 index 313a131..0000000 --- a/node_modules/prismjs/tests/languages/livescript/string_feature.test +++ /dev/null @@ -1,32 +0,0 @@ -'''''' -'''Foo\'''bar''' -'''Foo -bar''' - -'' -'Foo\'bar' -'Foo -bar' - -<[ foo bar baz ]> - -\foo \bar \"({[-!@^+baz - ----------------------------------------------------- - -[ - ["string", "''''''"], - ["string", "'''Foo\\'''bar'''"], - ["string", "'''Foo\r\nbar'''"], - ["string", "''"], - ["string", "'Foo\\'bar'"], - ["string", "'Foo\r\nbar'"], - ["string", "<[ foo bar baz ]>"], - ["string", "\\foo"], - ["string", "\\bar"], - ["string", "\\\"({[-!@^+baz"] -] - ----------------------------------------------------- - -Checks for strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/boolean_feature.test b/node_modules/prismjs/tests/languages/lolcode/boolean_feature.test deleted file mode 100644 index 4409cfe..0000000 --- a/node_modules/prismjs/tests/languages/lolcode/boolean_feature.test +++ /dev/null @@ -1,13 +0,0 @@ -WIN -FAIL - ----------------------------------------------------- - -[ - ["boolean", "WIN"], - ["boolean", "FAIL"] -] - ----------------------------------------------------- - -Checks for booleans. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/comment_feature.test b/node_modules/prismjs/tests/languages/lolcode/comment_feature.test deleted file mode 100644 index 6031e27..0000000 --- a/node_modules/prismjs/tests/languages/lolcode/comment_feature.test +++ /dev/null @@ -1,14 +0,0 @@ -OBTW foo -bar TLDR - BTW foobar - ----------------------------------------------------- - -[ - ["comment", "OBTW foo\r\nbar TLDR"], - ["comment", "BTW foobar"] -] - ----------------------------------------------------- - -Checks for single-line and multi-line comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/function_feature.test b/node_modules/prismjs/tests/languages/lolcode/function_feature.test deleted file mode 100644 index 0f3dc0d..0000000 --- a/node_modules/prismjs/tests/languages/lolcode/function_feature.test +++ /dev/null @@ -1,18 +0,0 @@ -I IZ foobar - HOW IZ I foobar -IZ fooBAR - ----------------------------------------------------- - -[ - ["keyword", "I IZ"], - ["function", "foobar"], - ["keyword", "HOW IZ I"], - ["function", "foobar"], - ["keyword", "IZ"], - ["function", "fooBAR"] -] - ----------------------------------------------------- - -Checks for functions. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/keyword_feature.test b/node_modules/prismjs/tests/languages/lolcode/keyword_feature.test deleted file mode 100644 index bb59d25..0000000 --- a/node_modules/prismjs/tests/languages/lolcode/keyword_feature.test +++ /dev/null @@ -1,93 +0,0 @@ -O HAI IM -KTHX -HAI -KTHXBYE -I HAS A -ITZ -ITZ A -R -AN -MKAY -SMOOSH -MAEK -IS NOW -IS NOW A -VISIBLE -GIMMEH -O RLY? -YA RLY -NO WAI -OIC -MEBBE -WTF? -OMG -OMGWTF -GTFO -IM IN YR -IM OUTTA YR -FOUND YR -YR -TIL -WILE -UPPIN -NERFIN -I IZ -HOW IZ I foo -IF U SAY SO -SRS -HAS A -LIEK -LIEK A -IZ -foo'Z - ----------------------------------------------------- - -[ - ["keyword", "O HAI IM"], - ["keyword", "KTHX"], - ["keyword", "HAI"], - ["keyword", "KTHXBYE"], - ["keyword", "I HAS A"], - ["keyword", "ITZ"], - ["keyword", "ITZ A"], - ["keyword", "R"], - ["keyword", "AN"], - ["keyword", "MKAY"], - ["keyword", "SMOOSH"], - ["keyword", "MAEK"], - ["keyword", "IS NOW"], - ["keyword", "IS NOW A"], - ["keyword", "VISIBLE"], - ["keyword", "GIMMEH"], - ["keyword", "O RLY?"], - ["keyword", "YA RLY"], - ["keyword", "NO WAI"], - ["keyword", "OIC"], - ["keyword", "MEBBE"], - ["keyword", "WTF?"], - ["keyword", "OMG"], - ["keyword", "OMGWTF"], - ["keyword", "GTFO"], - ["keyword", "IM IN YR"], - ["keyword", "IM OUTTA YR"], - ["keyword", "FOUND YR"], - ["keyword", "YR"], - ["keyword", "TIL"], - ["keyword", "WILE"], - ["keyword", "UPPIN"], - ["keyword", "NERFIN"], - ["keyword", "I IZ"], - ["keyword", "HOW IZ I"], ["function", "foo"], - ["keyword", "IF U SAY SO"], - ["keyword", "SRS"], - ["keyword", "HAS A"], - ["keyword", "LIEK"], - ["keyword", "LIEK A"], - ["keyword", "IZ"], - "\r\nfoo", ["keyword", "'Z"] -] - ----------------------------------------------------- - -Checks for all keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/label_feature.test b/node_modules/prismjs/tests/languages/lolcode/label_feature.test deleted file mode 100644 index 7722d2a..0000000 --- a/node_modules/prismjs/tests/languages/lolcode/label_feature.test +++ /dev/null @@ -1,15 +0,0 @@ -IM IN YR foobar - IM OUTTA YR fooBAR - ----------------------------------------------------- - -[ - ["keyword", "IM IN YR"], - ["label", "foobar"], - ["keyword", "IM OUTTA YR"], - ["label", "fooBAR"] -] - ----------------------------------------------------- - -Checks for labels. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/number_feature.test b/node_modules/prismjs/tests/languages/lolcode/number_feature.test deleted file mode 100644 index 060d6d2..0000000 --- a/node_modules/prismjs/tests/languages/lolcode/number_feature.test +++ /dev/null @@ -1,13 +0,0 @@ -42 -3.14159 - ----------------------------------------------------- - -[ - ["number", "42"], - ["number", "3.14159"] -] - ----------------------------------------------------- - -Checks for numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/operator_feature.test b/node_modules/prismjs/tests/languages/lolcode/operator_feature.test deleted file mode 100644 index c55dcc1..0000000 --- a/node_modules/prismjs/tests/languages/lolcode/operator_feature.test +++ /dev/null @@ -1,39 +0,0 @@ -NOT -BOTH SAEM -DIFFRINT -SUM OF -DIFF OF -PRODUKT OF -QUOSHUNT OF -MOD OF -BIGGR OF -SMALLR OF -BOTH OF -EITHER OF -WON OF -ALL OF -ANY OF - ----------------------------------------------------- - -[ - ["operator", "NOT"], - ["operator", "BOTH SAEM"], - ["operator", "DIFFRINT"], - ["operator", "SUM OF"], - ["operator", "DIFF OF"], - ["operator", "PRODUKT OF"], - ["operator", "QUOSHUNT OF"], - ["operator", "MOD OF"], - ["operator", "BIGGR OF"], - ["operator", "SMALLR OF"], - ["operator", "BOTH OF"], - ["operator", "EITHER OF"], - ["operator", "WON OF"], - ["operator", "ALL OF"], - ["operator", "ANY OF"] -] - ----------------------------------------------------- - -Checks for all operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/string_feature.test b/node_modules/prismjs/tests/languages/lolcode/string_feature.test deleted file mode 100644 index 813228d..0000000 --- a/node_modules/prismjs/tests/languages/lolcode/string_feature.test +++ /dev/null @@ -1,33 +0,0 @@ -"" -"foobar" -"fo:"o" -"foo:)bar:>baz" -"foo:{bar}baz" - ----------------------------------------------------- - -[ - ["string", ["\"\""]], - ["string", ["\"foobar\""]], - ["string", [ - "\"fo", - ["symbol", ":\""], - "o\"" - ]], - ["string", [ - "\"foo", - ["symbol", ":)"], - "bar", - ["symbol", ":>"], - "baz\"" - ]], - ["string", [ - "\"foo", - ["variable", ":{bar}"], - "baz\"" - ]] -] - ----------------------------------------------------- - -Checks for strings, with variables and symbols in them. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/symbol_feature.test b/node_modules/prismjs/tests/languages/lolcode/symbol_feature.test deleted file mode 100644 index 7f1534a..0000000 --- a/node_modules/prismjs/tests/languages/lolcode/symbol_feature.test +++ /dev/null @@ -1,27 +0,0 @@ -YARN A YARN -NUMBR A NUMBR -NUMBAR A NUMBAR -TROOF A TROOF -BUKKIT A BUKKIT -NOOB A NOOB - ----------------------------------------------------- - -[ - ["symbol", ["YARN"]], - ["symbol", [["keyword", "A"], " YARN"]], - ["symbol", ["NUMBR"]], - ["symbol", [["keyword", "A"], " NUMBR"]], - ["symbol", ["NUMBAR"]], - ["symbol", [["keyword", "A"], " NUMBAR"]], - ["symbol", ["TROOF"]], - ["symbol", [["keyword", "A"], " TROOF"]], - ["symbol", ["BUKKIT"]], - ["symbol", [["keyword", "A"], " BUKKIT"]], - ["symbol", ["NOOB"]], - ["symbol", [["keyword", "A"], " NOOB"]] -] - ----------------------------------------------------- - -Checks for symbols, optionally prefixed by "A ". \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lolcode/variable_feature.test b/node_modules/prismjs/tests/languages/lolcode/variable_feature.test deleted file mode 100644 index 1066c33..0000000 --- a/node_modules/prismjs/tests/languages/lolcode/variable_feature.test +++ /dev/null @@ -1,11 +0,0 @@ -IT - ----------------------------------------------------- - -[ - ["variable", "IT"] -] - ----------------------------------------------------- - -Checks for variables. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lua/comment_feature.test b/node_modules/prismjs/tests/languages/lua/comment_feature.test deleted file mode 100644 index 3c639f7..0000000 --- a/node_modules/prismjs/tests/languages/lua/comment_feature.test +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/local/bin/lua --- --- Foobar ---[[Foo -bar]] ---[====[Foo -bar]=====] ]===] -baz]====] - ----------------------------------------------------- - -[ - ["comment", "#!/usr/local/bin/lua"], - ["comment", "--"], - ["comment", "-- Foobar"], - ["comment", "--[[Foo\r\nbar]]"], - ["comment", "--[====[Foo\r\nbar]=====] ]===]\r\nbaz]====]"] -] - ----------------------------------------------------- - -Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lua/function_feature.test b/node_modules/prismjs/tests/languages/lua/function_feature.test deleted file mode 100644 index 90e2383..0000000 --- a/node_modules/prismjs/tests/languages/lua/function_feature.test +++ /dev/null @@ -1,17 +0,0 @@ -foo () -Foo_bar_42() -foo {} -Foo_bar_42{} - ----------------------------------------------------- - -[ - ["function", "foo"], ["punctuation", "("], ["punctuation", ")"], - ["function", "Foo_bar_42"], ["punctuation", "("], ["punctuation", ")"], - ["function", "foo"], ["punctuation", "{"], ["punctuation", "}"], - ["function", "Foo_bar_42"], ["punctuation", "{"], ["punctuation", "}"] -] - ----------------------------------------------------- - -Checks for functions. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lua/keyword_feature.test b/node_modules/prismjs/tests/languages/lua/keyword_feature.test deleted file mode 100644 index 0020aca..0000000 --- a/node_modules/prismjs/tests/languages/lua/keyword_feature.test +++ /dev/null @@ -1,53 +0,0 @@ -and -break -do -else -elseif -end -false -for -function -goto -if -in -local -nil -not -or -repeat -return -then -true -until -while - ----------------------------------------------------- - -[ - ["keyword", "and"], - ["keyword", "break"], - ["keyword", "do"], - ["keyword", "else"], - ["keyword", "elseif"], - ["keyword", "end"], - ["keyword", "false"], - ["keyword", "for"], - ["keyword", "function"], - ["keyword", "goto"], - ["keyword", "if"], - ["keyword", "in"], - ["keyword", "local"], - ["keyword", "nil"], - ["keyword", "not"], - ["keyword", "or"], - ["keyword", "repeat"], - ["keyword", "return"], - ["keyword", "then"], - ["keyword", "true"], - ["keyword", "until"], - ["keyword", "while"] -] - ----------------------------------------------------- - -Checks for keywords. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lua/number_feature.test b/node_modules/prismjs/tests/languages/lua/number_feature.test deleted file mode 100644 index 913b5b8..0000000 --- a/node_modules/prismjs/tests/languages/lua/number_feature.test +++ /dev/null @@ -1,35 +0,0 @@ -0 -42 -3.14159 -3. -.42 -4e14 -3.14e+8 -.7E-1 -4.e12 -0xBadFace -0x0.1E -0xA23p-4 -0X1.921FB54442D18P+1 - ----------------------------------------------------- - -[ - ["number", "0"], - ["number", "42"], - ["number", "3.14159"], - ["number", "3."], - ["number", ".42"], - ["number", "4e14"], - ["number", "3.14e+8"], - ["number", ".7E-1"], - ["number", "4.e12"], - ["number", "0xBadFace"], - ["number", "0x0.1E"], - ["number", "0xA23p-4"], - ["number", "0X1.921FB54442D18P+1"] -] - ----------------------------------------------------- - -Checks for numbers. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lua/operator_feature.test b/node_modules/prismjs/tests/languages/lua/operator_feature.test deleted file mode 100644 index dec2836..0000000 --- a/node_modules/prismjs/tests/languages/lua/operator_feature.test +++ /dev/null @@ -1,25 +0,0 @@ -+ - * % -^ & | # -/ // -< << <= -> >> >= -= == -~ ~= -.. - ----------------------------------------------------- - -[ - ["operator", "+"], ["operator", "-"], ["operator", "*"], ["operator", "%"], - ["operator", "^"], ["operator", "&"], ["operator", "|"], ["operator", "#"], - ["operator", "/"], ["operator", "//"], - ["operator", "<"], ["operator", "<<"], ["operator", "<="], - ["operator", ">"], ["operator", ">>"], ["operator", ">="], - ["operator", "="], ["operator", "=="], - ["operator", "~"], ["operator", "~="], - ["operator", ".."] -] - ----------------------------------------------------- - -Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/lua/string_feature.test b/node_modules/prismjs/tests/languages/lua/string_feature.test deleted file mode 100644 index 137884c..0000000 --- a/node_modules/prismjs/tests/languages/lua/string_feature.test +++ /dev/null @@ -1,36 +0,0 @@ -"" -"Fo\"obar" -"Foo\ -bar\z -baz" -'' -'Fo\'obar' -'Foo\ -bar\z -baz' -[[Foo -bar]] -[====[Foo -bar]=====] ]===] -baz]====] -[====[Foo --- comment -baz]====] - ----------------------------------------------------- - -[ - ["string", "\"\""], - ["string", "\"Fo\\\"obar\""], - ["string", "\"Foo\\\r\nbar\\z\r\nbaz\""], - ["string", "''"], - ["string", "'Fo\\'obar'"], - ["string", "'Foo\\\r\nbar\\z\r\nbaz'"], - ["string", "[[Foo\r\nbar]]"], - ["string", "[====[Foo\r\nbar]=====] ]===]\r\nbaz]====]"], - ["string", "[====[Foo\r\n-- comment\r\nbaz]====]"] -] - ----------------------------------------------------- - -Checks for strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/makefile/builtin_feature.test b/node_modules/prismjs/tests/languages/makefile/builtin_feature.test deleted file mode 100644 index 6f6a1a3..0000000 --- a/node_modules/prismjs/tests/languages/makefile/builtin_feature.test +++ /dev/null @@ -1,15 +0,0 @@ -.PHONY: -.DELETE_ON_ERROR: -.SECONDEXPANSION: - ----------------------------------------------------- - -[ - ["builtin", ".PHONY"], ["punctuation", ":"], - ["builtin", ".DELETE_ON_ERROR"], ["punctuation", ":"], - ["builtin", ".SECONDEXPANSION"], ["punctuation", ":"] -] - ----------------------------------------------------- - -Checks for built-in target names. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/makefile/comment_feature.test b/node_modules/prismjs/tests/languages/makefile/comment_feature.test deleted file mode 100644 index 0e0c6c4..0000000 --- a/node_modules/prismjs/tests/languages/makefile/comment_feature.test +++ /dev/null @@ -1,16 +0,0 @@ -# -# foobar -# foo \ -bar - ----------------------------------------------------- - -[ - ["comment", "#"], - ["comment", "# foobar"], - ["comment", "# foo \\\r\nbar"] -] - ----------------------------------------------------- - -Checks for comments. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/makefile/keyword_feature.test b/node_modules/prismjs/tests/languages/makefile/keyword_feature.test deleted file mode 100644 index dcbbcc8..0000000 --- a/node_modules/prismjs/tests/languages/makefile/keyword_feature.test +++ /dev/null @@ -1,73 +0,0 @@ -define else endef endif -export ifdef ifndef ifeq -ifneq -include include -override private sinclude -undefine unexport vpath - -(addsuffix foo) (abspath foo) -(and foo) (basename foo) -(call foo) (dir foo) (error foo) -(eval foo) (file foo) (filter foo) -(filter-out foo) (findstring foo) -(firstword foo) (flavor foo) -(foreach foo) (guile foo) -(if foo) (info foo) (join foo) -(lastword foo) (load foo) -(notdir foo) (or foo) (origin foo) -(patsubst foo) (realpath foo) -(shell foo) (sort foo) (strip foo) -(subst foo) (suffix foo) (value foo) -(warning foo) (wildcard foo) -(word foo) (words foo) (wordlist foo) - ----------------------------------------------------- - -[ - ["keyword", "define"], ["keyword", "else"], ["keyword", "endef"], ["keyword", "endif"], - ["keyword", "export"], ["keyword", "ifdef"], ["keyword", "ifndef"], ["keyword", "ifeq"], - ["keyword", "ifneq"], ["keyword", "-include"], ["keyword", "include"], - ["keyword", "override"], ["keyword", "private"], ["keyword", "sinclude"], - ["keyword", "undefine"], ["keyword", "unexport"], ["keyword", "vpath"], - - ["punctuation", "("], ["keyword", "addsuffix"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "abspath"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "and"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "basename"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "call"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "dir"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "error"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "eval"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "file"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "filter"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "filter-out"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "findstring"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "firstword"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "flavor"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "foreach"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "guile"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "if"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "info"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "join"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "lastword"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "load"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "notdir"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "or"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "origin"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "patsubst"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "realpath"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "shell"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "sort"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "strip"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "subst"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "suffix"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "value"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "warning"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "wildcard"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "word"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "words"], " foo", ["punctuation", ")"], - ["punctuation", "("], ["keyword", "wordlist"], " foo", ["punctuation", ")"] -] - ----------------------------------------------------- - -Checks for keywords and functions. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/makefile/operator_feature.test b/node_modules/prismjs/tests/languages/makefile/operator_feature.test deleted file mode 100644 index d0df60a..0000000 --- a/node_modules/prismjs/tests/languages/makefile/operator_feature.test +++ /dev/null @@ -1,15 +0,0 @@ -= ::= ?= -:= += != -| @ - ----------------------------------------------------- - -[ - ["operator", "="], ["operator", "::="], ["operator", "?="], - ["operator", ":="], ["operator", "+="], ["operator", "!="], - ["operator", "|"], ["operator", "@"] -] - ----------------------------------------------------- - -Checks for operators. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/makefile/string_feature.test b/node_modules/prismjs/tests/languages/makefile/string_feature.test deleted file mode 100644 index ece27c8..0000000 --- a/node_modules/prismjs/tests/languages/makefile/string_feature.test +++ /dev/null @@ -1,23 +0,0 @@ -"" -'' -"fo\"o" -'fo\'o' -"foo\ -bar" -'foo\ -bar' - ----------------------------------------------------- - -[ - ["string", "\"\""], - ["string", "''"], - ["string", "\"fo\\\"o\""], - ["string", "'fo\\'o'"], - ["string", "\"foo\\\r\nbar\""], - ["string", "'foo\\\r\nbar'"] -] - ----------------------------------------------------- - -Checks for single-quoted and double-quoted strings. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/makefile/symbol_feature.test b/node_modules/prismjs/tests/languages/makefile/symbol_feature.test deleted file mode 100644 index d1fe40b..0000000 --- a/node_modules/prismjs/tests/languages/makefile/symbol_feature.test +++ /dev/null @@ -1,18 +0,0 @@ -edit : -%oo: -$(foo): - ----------------------------------------------------- - -[ - ["symbol", ["edit "]], ["punctuation", ":"], - ["symbol", ["%oo"]], ["punctuation", ":"], - ["symbol", [ - ["variable", "$"], - "(foo)" - ]], ["punctuation", ":"] -] - ----------------------------------------------------- - -Checks for targets, optionally containing interpolation. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/makefile/variable_feature.test b/node_modules/prismjs/tests/languages/makefile/variable_feature.test deleted file mode 100644 index 84431d0..0000000 --- a/node_modules/prismjs/tests/languages/makefile/variable_feature.test +++ /dev/null @@ -1,19 +0,0 @@ -$@ -$$< -$(@D) -$(foobar) -$(2) - ----------------------------------------------------- - -[ - ["variable", "$@"], - ["variable", "$$<"], - ["variable", "$(@D)"], - ["variable", "$"], ["punctuation", "("], "foobar", ["punctuation", ")"], - ["variable", "$"], ["punctuation", "("], "2", ["punctuation", ")"] -] - ----------------------------------------------------- - -Checks for variables. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown+haml/markdown_inclusion.test b/node_modules/prismjs/tests/languages/markdown+haml/markdown_inclusion.test deleted file mode 100644 index 4a75fa9..0000000 --- a/node_modules/prismjs/tests/languages/markdown+haml/markdown_inclusion.test +++ /dev/null @@ -1,32 +0,0 @@ -:markdown - # Title 1 - -~ - :markdown - # Title 1 - ----------------------------------------------------- - -[ - ["filter-markdown", [ - ["filter-name", ":markdown"], - ["title", [ - ["punctuation", "#"], - " Title 1" - ]] - ]], - ["punctuation", "~"], - ["filter-markdown", [ - ["filter-name", ":markdown"], - ["title", [ - ["punctuation", "#"], - " Title 1" - ]] - ]] -] - ----------------------------------------------------- - -Checks for Markdown filter in Haml. The tilde serves only as a separator. -Indentation is intentionally less than 1 tab, otherwise markdown is -interpreted as code. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown+jade/markdown_inclusion.test b/node_modules/prismjs/tests/languages/markdown+jade/markdown_inclusion.test deleted file mode 100644 index 01e6c3e..0000000 --- a/node_modules/prismjs/tests/languages/markdown+jade/markdown_inclusion.test +++ /dev/null @@ -1,18 +0,0 @@ -:markdown - # title - ----------------------------------------------------- - -[ - ["filter-markdown", [ - ["filter-name", ":markdown"], - ["title", [ - ["punctuation", "#"], - " title" - ]] - ]] -] - ----------------------------------------------------- - -Checks for markdown filter in Jade. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/blockquote_feature.test b/node_modules/prismjs/tests/languages/markdown/blockquote_feature.test deleted file mode 100644 index 3d0a4df..0000000 --- a/node_modules/prismjs/tests/languages/markdown/blockquote_feature.test +++ /dev/null @@ -1,15 +0,0 @@ -> foo ->> foo -> > foo - ----------------------------------------------------- - -[ - ["blockquote", ">"], " foo\r\n", - ["blockquote", ">>"], " foo\r\n", - ["blockquote", "> >"], " foo" -] - ----------------------------------------------------- - -Checks for blockquotes. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/bold_feature.test b/node_modules/prismjs/tests/languages/markdown/bold_feature.test deleted file mode 100644 index 7d8e8ba..0000000 --- a/node_modules/prismjs/tests/languages/markdown/bold_feature.test +++ /dev/null @@ -1,70 +0,0 @@ -**foobar** -**foo -bar** -__foobar__ -__foo -bar__ - -__foo*bar*baz__ -__foo_bar_baz__ -__foo[bar](baz)__ - ----------------------------------------------------- - -[ - ["bold", [ - ["punctuation", "**"], - "foobar", - ["punctuation", "**"] - ]], - ["bold", [ - ["punctuation", "**"], - "foo\r\nbar", - ["punctuation", "**"] - ]], - ["bold", [ - ["punctuation", "__"], - "foobar", - ["punctuation", "__"] - ]], - ["bold", [ - ["punctuation", "__"], - "foo\r\nbar", - ["punctuation", "__"] - ]], - - ["bold", [ - ["punctuation", "__"], - "foo", - ["italic", [ - ["punctuation", "*"], - "bar", - ["punctuation", "*"] - ]], - "baz", - ["punctuation", "__"] - ]], - ["bold", [ - ["punctuation", "__"], - "foo", - ["italic", [ - ["punctuation", "_"], - "bar", - ["punctuation", "_"] - ]], - "baz", - ["punctuation", "__"] - ]], - ["bold", [ - ["punctuation", "__"], - "foo", - ["url", [ - "[bar](baz)" - ]], - ["punctuation", "__"] - ]] -] - ----------------------------------------------------- - -Checks for bold. Also tests for inclusion of italic and url. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/code_feature.test b/node_modules/prismjs/tests/languages/markdown/code_feature.test deleted file mode 100644 index 2696ca7..0000000 --- a/node_modules/prismjs/tests/languages/markdown/code_feature.test +++ /dev/null @@ -1,22 +0,0 @@ -`foo bar baz` -``foo `bar` baz`` - - foobar - - foobar - ----------------------------------------------------- - -[ - ["code", "`foo bar baz`"], - ["code", "``foo `bar` baz``"], - ["code", " foobar"], - ["code", "\tfoobar"] -] - ----------------------------------------------------- - -Checks for code blocks and inline code. The first code block is -indented with 4 spaces, the second one is indented with 1 tab. -The initial dot is necessary because of the first part being trimmed -by the test runner. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/hr_feature.test b/node_modules/prismjs/tests/languages/markdown/hr_feature.test deleted file mode 100644 index 4120226..0000000 --- a/node_modules/prismjs/tests/languages/markdown/hr_feature.test +++ /dev/null @@ -1,15 +0,0 @@ -*** ---- -* * * - ----------------------------------------------------- - -[ - ["hr", "***"], - ["hr", "---"], - ["hr", "* * *"] -] - ----------------------------------------------------- - -Checks for hr. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/italic_feature.test b/node_modules/prismjs/tests/languages/markdown/italic_feature.test deleted file mode 100644 index 02ced18..0000000 --- a/node_modules/prismjs/tests/languages/markdown/italic_feature.test +++ /dev/null @@ -1,46 +0,0 @@ -*foobar* -*foo -bar* -_foobar_ -_foo -bar_ - -_foo[bar](baz)_ - ----------------------------------------------------- - -[ - ["italic", [ - ["punctuation", "*"], - "foobar", - ["punctuation", "*"] - ]], - ["italic", [ - ["punctuation", "*"], - "foo\r\nbar", - ["punctuation", "*"] - ]], - ["italic", [ - ["punctuation", "_"], - "foobar", - ["punctuation", "_"] - ]], - ["italic", [ - ["punctuation", "_"], - "foo\r\nbar", - ["punctuation", "_"] - ]], - - ["italic", [ - ["punctuation", "_"], - "foo", - ["url", [ - "[bar](baz)" - ]], - ["punctuation", "_"] - ]] -] - ----------------------------------------------------- - -Checks for italic. Also tests for inclusion of url. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/list_feature.test b/node_modules/prismjs/tests/languages/markdown/list_feature.test deleted file mode 100644 index bfc9f8e..0000000 --- a/node_modules/prismjs/tests/languages/markdown/list_feature.test +++ /dev/null @@ -1,22 +0,0 @@ -* foo -+ bar -- baz - -1. foo - 2. bar -42. baz - ----------------------------------------------------- - -[ - ["list", "*"], " foo\r\n", - ["list", "+"], " bar\r\n", - ["list", "-"], " baz\r\n\r\n", - ["list", "1."], " foo\r\n ", - ["list", "2."], " bar\r\n", - ["list", "42."], " baz" -] - ----------------------------------------------------- - -Checks for list symbols. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/title_feature.test b/node_modules/prismjs/tests/languages/markdown/title_feature.test deleted file mode 100644 index e02e86f..0000000 --- a/node_modules/prismjs/tests/languages/markdown/title_feature.test +++ /dev/null @@ -1,34 +0,0 @@ -title 1 -== - -foobar -====== - -title 2 --- - -# title 1 -## title 2 -### title 3 -#### title 4 -##### title 5 -###### title 6 - ----------------------------------------------------- - -[ - ["title", ["title 1\r\n", ["punctuation", "=="]]], - ["title", ["foobar\r\n", ["punctuation", "======"]]], - ["title", ["title 2\r\n", ["punctuation", "--"]]], - - ["title", [["punctuation", "#"], " title 1"]], - ["title", [["punctuation", "##"], " title 2"]], - ["title", [["punctuation", "###"], " title 3"]], - ["title", [["punctuation", "####"], " title 4"]], - ["title", [["punctuation", "#####"], " title 5"]], - ["title", [["punctuation", "######"], " title 6"]] -] - ----------------------------------------------------- - -Checks for titles. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/url-reference_feature.test b/node_modules/prismjs/tests/languages/markdown/url-reference_feature.test deleted file mode 100644 index 4dc25ba..0000000 --- a/node_modules/prismjs/tests/languages/markdown/url-reference_feature.test +++ /dev/null @@ -1,56 +0,0 @@ -[foo]: http://prismjs.com -[foo]: http://prismjs.com "foo\"bar" -[foo]: http://prismjs.com 'foo\'bar' -![foo]: http://prismjs.com (foo (bar\) baz) -[foo]: "Prism" - ----------------------------------------------------- - -[ - ["url-reference", [ - ["punctuation", "["], - ["variable", "foo"], - ["punctuation", "]"], - ["punctuation", ":"], - " http://prismjs.com" - ]], - ["url-reference", [ - ["punctuation", "["], - ["variable", "foo"], - ["punctuation", "]"], - ["punctuation", ":"], - " http://prismjs.com ", - ["string", "\"foo\\\"bar\""] - ]], - ["url-reference", [ - ["punctuation", "["], - ["variable", "foo"], - ["punctuation", "]"], - ["punctuation", ":"], - " http://prismjs.com ", - ["string", "'foo\\'bar'"] - ]], - ["url-reference", [ - ["punctuation", "!"], - ["punctuation", "["], - ["variable", "foo"], - ["punctuation", "]"], - ["punctuation", ":"], - " http://prismjs.com ", - ["string", "(foo (bar\\) baz)"] - ]], - ["url-reference", [ - ["punctuation", "["], - ["variable", "foo"], - ["punctuation", "]"], - ["punctuation", ":"], - ["punctuation", "<"], - "http://prismjs.com", - ["punctuation", ">"], - ["string", "\"Prism\""] - ]] -] - ----------------------------------------------------- - -Checks for URL references. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markdown/url_feature.test b/node_modules/prismjs/tests/languages/markdown/url_feature.test deleted file mode 100644 index ca8b9cf..0000000 --- a/node_modules/prismjs/tests/languages/markdown/url_feature.test +++ /dev/null @@ -1,25 +0,0 @@ -[foo](http://prismjs.com) -![foo](http://prismjs.com "Foo\"bar") -[foo] [bar] - ----------------------------------------------------- - -[ - ["url", [ - "[foo](http://prismjs.com)" - ]], - ["url", [ - "![foo](http://prismjs.com ", - ["string", "\"Foo\\\"bar\""], - ")" - ]], - ["url", [ - "[foo] [", - ["variable", "bar"], - "]" - ]] -] - ----------------------------------------------------- - -Checks for URLs. \ No newline at end of file diff --git a/node_modules/prismjs/tests/languages/markup!+css/css_inclusion.test b/node_modules/prismjs/tests/languages/markup!+css/css_inclusion.test deleted file mode 100644 index 6296fce..0000000 --- a/node_modules/prismjs/tests/languages/markup!+css/css_inclusion.test +++ /dev/null @@ -1,71 +0,0 @@ - - - - ----------------------------------------------------- - -[ - ["tag", [ - ["tag", [ - ["punctuation", "<"], - "style" - ]], - ["attr-name", [ - "type" - ]], - ["attr-value", [ - ["punctuation", "="], - ["punctuation", "\""], - "text/css", - ["punctuation", "\""] - ]], - ["punctuation", ">"] - ]], - ["style", [ - ["selector", "foo"], - ["punctuation", "{"], - ["property", "bar"], - ["punctuation", ":"], - " baz", - ["punctuation", ";"], - ["punctuation", "}"] - ]], - ["tag", [ - ["tag", [ - ["punctuation", ""] - ]], - - ["tag", [ - ["tag", [ - ["punctuation", "<"], - "foo" - ]], - ["style-attr", [ - ["attr-name", [ - ["attr-name", [ - "style" - ]] - ]], - ["punctuation", "=\""], - ["attr-value", [ - ["property", "bar"], - ["punctuation", ":"], - "baz", - ["punctuation", ";"] - ]], - ["punctuation", "\""] - ]], - ["punctuation", ">"] - ]] -] - ----------------------------------------------------- - -Checks for CSS usage inside Markup, using