Project import generated by Copybara.

GitOrigin-RevId: 63746295f1a5ab5a619056791995793d65529e62
diff --git a/node_modules/mdl-ext/lib/mdl-ext-eqjs.css b/node_modules/mdl-ext/lib/mdl-ext-eqjs.css
new file mode 100644
index 0000000..5cf9d7e
--- /dev/null
+++ b/node_modules/mdl-ext/lib/mdl-ext-eqjs.css
@@ -0,0 +1,5726 @@
+/**
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*------------------------------------*    $CONTENTS
+\*------------------------------------*/
+
+/**
+ * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
+ * -----Typography
+ * -----Colors
+ * -----Textfield
+ * -----Switch
+ * -----Spinner
+ * -----Radio
+ * -----Menu
+ * -----List
+ * -----Layout
+ * -----Icon toggles
+ * -----Footer
+ * -----Column
+ * -----Checkbox
+ * -----Card
+ * -----Button
+ * -----Animation
+ * -----Progress
+ * -----Badge
+ * -----Shadows
+ * -----Grid
+ * -----Data table
+ * -----Dialog
+ * -----Snackbar
+ * -----Tooltip
+ * -----Chip
+ *
+ * Even though all variables have the `!default` directive, most of them
+ * should not be changed as they are dependent one another. This can cause
+ * visual distortions (like alignment issues) that are hard to track down
+ * and fix.
+ */
+
+/* ==========  TYPOGRAPHY  ========== */
+
+/* We're splitting fonts into "preferred" and "performance" in order to optimize
+   page loading. For important text, such as the body, we want it to load
+   immediately and not wait for the web font load, whereas for other sections,
+   such as headers and titles, we're OK with things taking a bit longer to load.
+   We do have some optional classes and parameters in the mixins, in case you
+   definitely want to make sure you're using the preferred font and don't mind
+   the performance hit.
+   We should be able to improve on this once CSS Font Loading L3 becomes more
+   widely available.
+*/
+
+/* ==========  COLORS  ========== */
+
+/**
+*
+* Material design color palettes.
+* @see http://www.google.com/design/spec/style/color.html
+*
+**/
+
+/**
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* ==========  Color Palettes  ========== */
+
+/* colors.scss */
+
+/**
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* ==========  IMAGES  ========== */
+
+/* ==========  Color & Themes  ========== */
+
+/* ==========  Typography  ========== */
+
+/* ==========  Components  ========== */
+
+/* ==========  Standard Buttons  ========== */
+
+/* ==========  Icon Toggles  ========== */
+
+/* ==========  Radio Buttons  ========== */
+
+/* ==========  Ripple effect  ========== */
+
+/* ==========  Layout  ========== */
+
+/* ==========  Content Tabs  ========== */
+
+/* ==========  Checkboxes  ========== */
+
+/* ==========  Switches  ========== */
+
+/* ==========  Spinner  ========== */
+
+/* ==========  Text fields  ========== */
+
+/* ==========  Card  ========== */
+
+/* ==========  Sliders ========== */
+
+/* ========== Progress ========== */
+
+/* ==========  List ========== */
+
+/* ==========  Item ========== */
+
+/* ==========  Dropdown menu ========== */
+
+/* ==========  Tooltips  ========== */
+
+/* ==========  Footer  ========== */
+
+/* TEXTFIELD */
+
+/* SWITCH */
+
+/* SPINNER */
+
+/* RADIO */
+
+/* MENU */
+
+/* LIST */
+
+/* LAYOUT */
+
+/* ICON TOGGLE */
+
+/* FOOTER */
+
+/*mega-footer*/
+
+/*mini-footer*/
+
+/* CHECKBOX */
+
+/* CARD */
+
+/* Card dimensions */
+
+/* Cover image */
+
+/* BUTTON */
+
+/**
+ *
+ * Dimensions
+ *
+ */
+
+/* ANIMATION */
+
+/* PROGRESS */
+
+/* BADGE */
+
+/* SHADOWS */
+
+/* GRID */
+
+/* DATA TABLE */
+
+/* DIALOG */
+
+/* SNACKBAR */
+
+/* TOOLTIP */
+
+/* CHIP */
+
+/**
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* Typography */
+
+/* Shadows */
+
+/* Animations */
+
+/* Dialog */
+
+/**
+ * Element Queries are a new way of writing CSS styles so the rules apply to individual elements
+ * on the page, instead of to the whole page as one document like in regular CSS Media Queries.
+ * This SASS file includes the eq.js, https://github.com/Snugug/eq.js, prolyfill which is an easy to use
+ * drop-in solution to JavaScript powered element queries. It works well with SASS,
+ * and element queries work without requireing a server to run.
+ *
+ * Feel fre to write your own element query stylesheet using one of the other libraries, e.g:
+ *   [EQCSS]               - (https://github.com/eqcss/eqcss)
+ *   [CSS Element Queries] - (https://github.com/marcj/css-element-queries)
+ *   [BoomQueries]         - (https://github.com/BoomTownROI/boomqueries)
+ */
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========   Sticky Header   ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========     Accordion     ========== */
+
+/* ==========     Dialog     ========== */
+
+/* ==========     Lightbox     ========== */
+
+/* ==========  Lightboard  ========== */
+
+/* ==========  Carousel  ========== */
+
+/* ==========  Bordered fields  ========== */
+
+/* ==========  Color Themes  ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/**
+ * @license
+ * Copyright 2016-2017 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * This code is built with Google Material Design Lite,
+ * which is Licensed under the Apache License, Version 2.0
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+.mdlext-aria-expanded-plus-minus {
+  font-family: inherit;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 24px;
+  display: inline-block;
+  width: 1em;
+  height: 1em;
+  line-height: 1;
+  text-transform: none;
+  letter-spacing: normal;
+  word-wrap: normal;
+  white-space: nowrap;
+  direction: ltr;
+  vertical-align: middle;
+  -webkit-font-smoothing: antialiased;
+  -webkit-font-feature-settings: 'liga';
+  text-rendering: optimizeLegibility;
+  -moz-osx-font-smoothing: grayscale;
+  font-feature-settings: 'liga';
+}
+
+.mdlext-aria-expanded-plus-minus::after {
+  content: "+";
+  margin-left: 0;
+}
+
+[aria-expanded='true'] > .mdlext-aria-expanded-plus-minus::after {
+  content: "-";
+  margin-left: 0;
+}
+
+.mdlext-aria-expanded-more-less {
+  font-family: "Material Icons";
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 24px;
+  display: inline-block;
+  width: 1em;
+  height: 1em;
+  line-height: 1;
+  text-transform: none;
+  letter-spacing: normal;
+  word-wrap: normal;
+  white-space: nowrap;
+  direction: ltr;
+  vertical-align: middle;
+  -webkit-font-smoothing: antialiased;
+  -webkit-font-feature-settings: 'liga';
+  text-rendering: optimizeLegibility;
+  -moz-osx-font-smoothing: grayscale;
+  font-feature-settings: 'liga';
+}
+
+.mdlext-aria-expanded-more-less::after {
+  content: "expand_more";
+  margin-left: 0;
+}
+
+[aria-expanded='true'] > .mdlext-aria-expanded-more-less::after {
+  content: "expand_less";
+  margin-left: 0;
+}
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========   Sticky Header   ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========     Accordion     ========== */
+
+/* ==========     Dialog     ========== */
+
+/* ==========     Lightbox     ========== */
+
+/* ==========  Lightboard  ========== */
+
+/* ==========  Carousel  ========== */
+
+/* ==========  Bordered fields  ========== */
+
+/* ==========  Color Themes  ========== */
+
+.mdlext-layout__sticky-header {
+  position: absolute;
+  overflow: visible;
+  background: transparent linear-gradient(to bottom, #3f51b5 0, #3f51b5 100%);
+  transition: 0.1s ease-in-out;
+}
+
+.mdlext-layout__sticky-header.mdlext-is-scroll {
+  background: transparent linear-gradient(to bottom, rgba(63, 81, 181, 0.98) 100%, rgba(63, 81, 181, 0.95) 100%);
+}
+
+*:not(.is-small-screen) .mdlext-layout__sticky-header .mdl-layout__drawer-button {
+  visibility: hidden;
+}
+
+*:not(.is-small-screen) .mdlext-layout__sticky-header .mdl-layout__header-row {
+  padding-left: 16px;
+}
+
+*:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header,
+.is-small-screen.has-drawer .mdlext-layout__sticky-header {
+  display: -ms-flexbox;
+  display: flex;
+}
+
+*:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header .mdl-layout__drawer-button,
+.is-small-screen.has-drawer .mdlext-layout__sticky-header .mdl-layout__drawer-button {
+  visibility: visible;
+}
+
+*:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header .mdl-layout__header-row,
+.is-small-screen.has-drawer .mdlext-layout__sticky-header .mdl-layout__header-row {
+  padding-left: 64px;
+}
+
+/**
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SASS based on css from Google Chrome Dialog polyfill, https://github.com/GoogleChrome/dialog-polyfill
+ * @include 'node_modules/dialog-polyfill/dialog-polyfill.css' before using this
+ */
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========   Sticky Header   ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========     Accordion     ========== */
+
+/* ==========     Dialog     ========== */
+
+/* ==========     Lightbox     ========== */
+
+/* ==========  Lightboard  ========== */
+
+/* ==========  Carousel  ========== */
+
+/* ==========  Bordered fields  ========== */
+
+/* ==========  Color Themes  ========== */
+
+dialog.mdlext-dialog {
+  position: absolute;
+  border: 0;
+  opacity: 0;
+  padding: 0;
+  background-color: transparent;
+}
+
+dialog.mdlext-dialog[open] {
+  animation: mdlext-open-dialog 0.5s 0.2s forwards;
+}
+
+dialog.mdlext-dialog[open]::-webkit-backdrop {
+  animation: mdlext-darken-backdrop 0.2s forwards;
+}
+
+dialog.mdlext-dialog[open]::backdrop {
+  animation: mdlext-darken-backdrop 0.2s forwards;
+}
+
+dialog.mdlext-dialog[open] + .backdrop {
+  animation: mdlext-darken-backdrop 0.2s forwards;
+}
+
+@keyframes mdlext-darken-backdrop {
+  to {
+    background: rgba(0, 0, 0, 0.86);
+  }
+}
+
+@keyframes mdlext-open-dialog {
+  to {
+    opacity: 1;
+  }
+}
+
+/**
+ * This code is modified from Material Design Lite _grid.sass,
+ * which is Licensed under the Apache License, Version 2.0
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+.mdlext-grid {
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-flow: row wrap;
+      flex-flow: row wrap;
+  margin: 0 auto;
+  -ms-flex-align: stretch;
+      align-items: stretch;
+}
+
+.mdlext-grid.mdlext-grid--no-spacing {
+  padding: 0;
+}
+
+.mdlext-grid > .mdlext-cell {
+  box-sizing: border-box;
+}
+
+.mdlext-grid > .mdlext-cell--top {
+  -ms-flex-item-align: start;
+      align-self: flex-start;
+}
+
+.mdlext-grid > .mdlext-cell--middle {
+  -ms-flex-item-align: center;
+      -ms-grid-row-align: center;
+      align-self: center;
+}
+
+.mdlext-grid > .mdlext-cell--bottom {
+  -ms-flex-item-align: end;
+      align-self: flex-end;
+}
+
+.mdlext-grid > .mdlext-cell--stretch {
+  -ms-flex-item-align: stretch;
+      -ms-grid-row-align: stretch;
+      align-self: stretch;
+}
+
+.mdlext-grid .mdlext-grid--no-spacing > .mdlext-cell {
+  margin: 0;
+}
+
+.mdlext-grid > .mdlext-cell--order-1 {
+  -ms-flex-order: 1;
+      order: 1;
+}
+
+.mdlext-grid > .mdlext-cell--order-2 {
+  -ms-flex-order: 2;
+      order: 2;
+}
+
+.mdlext-grid > .mdlext-cell--order-3 {
+  -ms-flex-order: 3;
+      order: 3;
+}
+
+.mdlext-grid > .mdlext-cell--order-4 {
+  -ms-flex-order: 4;
+      order: 4;
+}
+
+.mdlext-grid > .mdlext-cell--order-5 {
+  -ms-flex-order: 5;
+      order: 5;
+}
+
+.mdlext-grid > .mdlext-cell--order-6 {
+  -ms-flex-order: 6;
+      order: 6;
+}
+
+.mdlext-grid > .mdlext-cell--order-7 {
+  -ms-flex-order: 7;
+      order: 7;
+}
+
+.mdlext-grid > .mdlext-cell--order-8 {
+  -ms-flex-order: 8;
+      order: 8;
+}
+
+.mdlext-grid > .mdlext-cell--order-9 {
+  -ms-flex-order: 9;
+      order: 9;
+}
+
+.mdlext-grid > .mdlext-cell--order-10 {
+  -ms-flex-order: 10;
+      order: 10;
+}
+
+.mdlext-grid > .mdlext-cell--order-11 {
+  -ms-flex-order: 11;
+      order: 11;
+}
+
+.mdlext-grid > .mdlext-cell--order-12 {
+  -ms-flex-order: 12;
+      order: 12;
+}
+
+.mdlext-grid:before {
+  display: none;
+  content: "grid_phone: 0, grid_tablet: 480, grid_desktop: 840";
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] {
+  padding: 8px;
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell {
+  margin: 8px;
+  width: calc(100% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--hide-phone {
+  display: none !important;
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--order-1-phone.mdlext-cell--order-1-phone {
+  -ms-flex-order: 1;
+      order: 1;
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--order-2-phone.mdlext-cell--order-2-phone {
+  -ms-flex-order: 2;
+      order: 2;
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--order-3-phone.mdlext-cell--order-3-phone {
+  -ms-flex-order: 3;
+      order: 3;
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--order-4-phone.mdlext-cell--order-4-phone {
+  -ms-flex-order: 4;
+      order: 4;
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--order-5-phone.mdlext-cell--order-5-phone {
+  -ms-flex-order: 5;
+      order: 5;
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--order-6-phone.mdlext-cell--order-6-phone {
+  -ms-flex-order: 6;
+      order: 6;
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--order-7-phone.mdlext-cell--order-7-phone {
+  -ms-flex-order: 7;
+      order: 7;
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--order-8-phone.mdlext-cell--order-8-phone {
+  -ms-flex-order: 8;
+      order: 8;
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--order-9-phone.mdlext-cell--order-9-phone {
+  -ms-flex-order: 9;
+      order: 9;
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--order-10-phone.mdlext-cell--order-10-phone {
+  -ms-flex-order: 10;
+      order: 10;
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--order-11-phone.mdlext-cell--order-11-phone {
+  -ms-flex-order: 11;
+      order: 11;
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--order-12-phone.mdlext-cell--order-12-phone {
+  -ms-flex-order: 12;
+      order: 12;
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--1-col,
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--1-col-phone.mdlext-cell--1-col-phone {
+  width: calc(25% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--2-col,
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--2-col-phone.mdlext-cell--2-col-phone {
+  width: calc(50% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--3-col,
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--3-col-phone.mdlext-cell--3-col-phone {
+  width: calc(75% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--4-col,
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--4-col-phone.mdlext-cell--4-col-phone {
+  width: calc(100% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--5-col,
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--5-col-phone.mdlext-cell--5-col-phone {
+  width: calc(100% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--6-col,
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--6-col-phone.mdlext-cell--6-col-phone {
+  width: calc(100% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--7-col,
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--7-col-phone.mdlext-cell--7-col-phone {
+  width: calc(100% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--8-col,
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--8-col-phone.mdlext-cell--8-col-phone {
+  width: calc(100% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--9-col,
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--9-col-phone.mdlext-cell--9-col-phone {
+  width: calc(100% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--10-col,
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--10-col-phone.mdlext-cell--10-col-phone {
+  width: calc(100% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--11-col,
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--11-col-phone.mdlext-cell--11-col-phone {
+  width: calc(100% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--12-col,
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--12-col-phone.mdlext-cell--12-col-phone {
+  width: calc(100% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--1-offset,
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--1-offset-phone.mdlext-cell--1-offset-phone {
+  margin-left: calc(25% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--2-offset,
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--2-offset-phone.mdlext-cell--2-offset-phone {
+  margin-left: calc(50% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--3-offset,
+.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--3-offset-phone.mdlext-cell--3-offset-phone {
+  margin-left: calc(75% + 8px);
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] {
+  padding: 0;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell {
+  margin: 0;
+  width: 100%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--1-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--1-col-phone.mdlext-cell--1-col-phone {
+  width: 25%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--2-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--2-col-phone.mdlext-cell--2-col-phone {
+  width: 50%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--3-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--3-col-phone.mdlext-cell--3-col-phone {
+  width: 75%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--4-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--4-col-phone.mdlext-cell--4-col-phone {
+  width: 100%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--5-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--5-col-phone.mdlext-cell--5-col-phone {
+  width: 100%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--6-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--6-col-phone.mdlext-cell--6-col-phone {
+  width: 100%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--7-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--7-col-phone.mdlext-cell--7-col-phone {
+  width: 100%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--8-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--8-col-phone.mdlext-cell--8-col-phone {
+  width: 100%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--9-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--9-col-phone.mdlext-cell--9-col-phone {
+  width: 100%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--10-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--10-col-phone.mdlext-cell--10-col-phone {
+  width: 100%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--11-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--11-col-phone.mdlext-cell--11-col-phone {
+  width: 100%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--12-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--12-col-phone.mdlext-cell--12-col-phone {
+  width: 100%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--1-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--1-offset-phone.mdlext-cell--1-offset-phone {
+  margin-left: 25%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--2-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--2-offset-phone.mdlext-cell--2-offset-phone {
+  margin-left: 50%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--3-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_phone"] > .mdlext-cell--3-offset-phone.mdlext-cell--3-offset-phone {
+  margin-left: 75%;
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] {
+  padding: 8px;
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell {
+  margin: 8px;
+  width: calc(50% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--hide-tablet {
+  display: none !important;
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--order-1-tablet.mdlext-cell--order-1-tablet {
+  -ms-flex-order: 1;
+      order: 1;
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--order-2-tablet.mdlext-cell--order-2-tablet {
+  -ms-flex-order: 2;
+      order: 2;
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--order-3-tablet.mdlext-cell--order-3-tablet {
+  -ms-flex-order: 3;
+      order: 3;
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--order-4-tablet.mdlext-cell--order-4-tablet {
+  -ms-flex-order: 4;
+      order: 4;
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--order-5-tablet.mdlext-cell--order-5-tablet {
+  -ms-flex-order: 5;
+      order: 5;
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--order-6-tablet.mdlext-cell--order-6-tablet {
+  -ms-flex-order: 6;
+      order: 6;
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--order-7-tablet.mdlext-cell--order-7-tablet {
+  -ms-flex-order: 7;
+      order: 7;
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--order-8-tablet.mdlext-cell--order-8-tablet {
+  -ms-flex-order: 8;
+      order: 8;
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--order-9-tablet.mdlext-cell--order-9-tablet {
+  -ms-flex-order: 9;
+      order: 9;
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--order-10-tablet.mdlext-cell--order-10-tablet {
+  -ms-flex-order: 10;
+      order: 10;
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--order-11-tablet.mdlext-cell--order-11-tablet {
+  -ms-flex-order: 11;
+      order: 11;
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--order-12-tablet.mdlext-cell--order-12-tablet {
+  -ms-flex-order: 12;
+      order: 12;
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--1-col,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--1-col-tablet.mdlext-cell--1-col-tablet {
+  width: calc(12.5% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--2-col,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--2-col-tablet.mdlext-cell--2-col-tablet {
+  width: calc(25% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--3-col,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--3-col-tablet.mdlext-cell--3-col-tablet {
+  width: calc(37.5% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--4-col,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--4-col-tablet.mdlext-cell--4-col-tablet {
+  width: calc(50% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--5-col,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--5-col-tablet.mdlext-cell--5-col-tablet {
+  width: calc(62.5% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--6-col,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--6-col-tablet.mdlext-cell--6-col-tablet {
+  width: calc(75% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--7-col,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--7-col-tablet.mdlext-cell--7-col-tablet {
+  width: calc(87.5% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--8-col,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--8-col-tablet.mdlext-cell--8-col-tablet {
+  width: calc(100% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--9-col,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--9-col-tablet.mdlext-cell--9-col-tablet {
+  width: calc(100% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--10-col,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--10-col-tablet.mdlext-cell--10-col-tablet {
+  width: calc(100% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--11-col,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--11-col-tablet.mdlext-cell--11-col-tablet {
+  width: calc(100% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--12-col,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--12-col-tablet.mdlext-cell--12-col-tablet {
+  width: calc(100% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--1-offset,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--1-offset-tablet.mdlext-cell--1-offset-tablet {
+  margin-left: calc(12.5% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--2-offset,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--2-offset-tablet.mdlext-cell--2-offset-tablet {
+  margin-left: calc(25% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--3-offset,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--3-offset-tablet.mdlext-cell--3-offset-tablet {
+  margin-left: calc(37.5% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--4-offset,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--4-offset-tablet.mdlext-cell--4-offset-tablet {
+  margin-left: calc(50% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--5-offset,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--5-offset-tablet.mdlext-cell--5-offset-tablet {
+  margin-left: calc(62.5% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--6-offset,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--6-offset-tablet.mdlext-cell--6-offset-tablet {
+  margin-left: calc(75% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--7-offset,
+.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--7-offset-tablet.mdlext-cell--7-offset-tablet {
+  margin-left: calc(87.5% + 8px);
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] {
+  padding: 0;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell {
+  margin: 0;
+  width: 50%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--1-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--1-col-tablet.mdlext-cell--1-col-tablet {
+  width: 12.5%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--2-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--2-col-tablet.mdlext-cell--2-col-tablet {
+  width: 25%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--3-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--3-col-tablet.mdlext-cell--3-col-tablet {
+  width: 37.5%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--4-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--4-col-tablet.mdlext-cell--4-col-tablet {
+  width: 50%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--5-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--5-col-tablet.mdlext-cell--5-col-tablet {
+  width: 62.5%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--6-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--6-col-tablet.mdlext-cell--6-col-tablet {
+  width: 75%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--7-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--7-col-tablet.mdlext-cell--7-col-tablet {
+  width: 87.5%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--8-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--8-col-tablet.mdlext-cell--8-col-tablet {
+  width: 100%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--9-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--9-col-tablet.mdlext-cell--9-col-tablet {
+  width: 100%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--10-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--10-col-tablet.mdlext-cell--10-col-tablet {
+  width: 100%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--11-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--11-col-tablet.mdlext-cell--11-col-tablet {
+  width: 100%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--12-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--12-col-tablet.mdlext-cell--12-col-tablet {
+  width: 100%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--1-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--1-offset-tablet.mdlext-cell--1-offset-tablet {
+  margin-left: 12.5%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--2-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--2-offset-tablet.mdlext-cell--2-offset-tablet {
+  margin-left: 25%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--3-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--3-offset-tablet.mdlext-cell--3-offset-tablet {
+  margin-left: 37.5%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--4-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--4-offset-tablet.mdlext-cell--4-offset-tablet {
+  margin-left: 50%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--5-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--5-offset-tablet.mdlext-cell--5-offset-tablet {
+  margin-left: 62.5%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--6-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--6-offset-tablet.mdlext-cell--6-offset-tablet {
+  margin-left: 75%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--7-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_tablet"] > .mdlext-cell--7-offset-tablet.mdlext-cell--7-offset-tablet {
+  margin-left: 87.5%;
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] {
+  padding: 8px;
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell {
+  margin: 8px;
+  width: calc(33.33333% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--hide-desktop {
+  display: none !important;
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--order-1-desktop.mdlext-cell--order-1-desktop {
+  -ms-flex-order: 1;
+      order: 1;
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--order-2-desktop.mdlext-cell--order-2-desktop {
+  -ms-flex-order: 2;
+      order: 2;
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--order-3-desktop.mdlext-cell--order-3-desktop {
+  -ms-flex-order: 3;
+      order: 3;
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--order-4-desktop.mdlext-cell--order-4-desktop {
+  -ms-flex-order: 4;
+      order: 4;
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--order-5-desktop.mdlext-cell--order-5-desktop {
+  -ms-flex-order: 5;
+      order: 5;
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--order-6-desktop.mdlext-cell--order-6-desktop {
+  -ms-flex-order: 6;
+      order: 6;
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--order-7-desktop.mdlext-cell--order-7-desktop {
+  -ms-flex-order: 7;
+      order: 7;
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--order-8-desktop.mdlext-cell--order-8-desktop {
+  -ms-flex-order: 8;
+      order: 8;
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--order-9-desktop.mdlext-cell--order-9-desktop {
+  -ms-flex-order: 9;
+      order: 9;
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--order-10-desktop.mdlext-cell--order-10-desktop {
+  -ms-flex-order: 10;
+      order: 10;
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--order-11-desktop.mdlext-cell--order-11-desktop {
+  -ms-flex-order: 11;
+      order: 11;
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--order-12-desktop.mdlext-cell--order-12-desktop {
+  -ms-flex-order: 12;
+      order: 12;
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--1-col,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--1-col-desktop.mdlext-cell--1-col-desktop {
+  width: calc(8.33333% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--2-col,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--2-col-desktop.mdlext-cell--2-col-desktop {
+  width: calc(16.66667% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--3-col,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--3-col-desktop.mdlext-cell--3-col-desktop {
+  width: calc(25% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--4-col,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--4-col-desktop.mdlext-cell--4-col-desktop {
+  width: calc(33.33333% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--5-col,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--5-col-desktop.mdlext-cell--5-col-desktop {
+  width: calc(41.66667% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--6-col,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--6-col-desktop.mdlext-cell--6-col-desktop {
+  width: calc(50% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--7-col,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--7-col-desktop.mdlext-cell--7-col-desktop {
+  width: calc(58.33333% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--8-col,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--8-col-desktop.mdlext-cell--8-col-desktop {
+  width: calc(66.66667% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--9-col,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--9-col-desktop.mdlext-cell--9-col-desktop {
+  width: calc(75% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--10-col,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--10-col-desktop.mdlext-cell--10-col-desktop {
+  width: calc(83.33333% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--11-col,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--11-col-desktop.mdlext-cell--11-col-desktop {
+  width: calc(91.66667% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--12-col,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--12-col-desktop.mdlext-cell--12-col-desktop {
+  width: calc(100% - 16px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--1-offset,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--1-offset-desktop.mdlext-cell--1-offset-desktop {
+  margin-left: calc(8.33333% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--2-offset,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--2-offset-desktop.mdlext-cell--2-offset-desktop {
+  margin-left: calc(16.66667% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--3-offset,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--3-offset-desktop.mdlext-cell--3-offset-desktop {
+  margin-left: calc(25% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--4-offset,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--4-offset-desktop.mdlext-cell--4-offset-desktop {
+  margin-left: calc(33.33333% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--5-offset,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--5-offset-desktop.mdlext-cell--5-offset-desktop {
+  margin-left: calc(41.66667% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--6-offset,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--6-offset-desktop.mdlext-cell--6-offset-desktop {
+  margin-left: calc(50% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--7-offset,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--7-offset-desktop.mdlext-cell--7-offset-desktop {
+  margin-left: calc(58.33333% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--8-offset,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--8-offset-desktop.mdlext-cell--8-offset-desktop {
+  margin-left: calc(66.66667% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--9-offset,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--9-offset-desktop.mdlext-cell--9-offset-desktop {
+  margin-left: calc(75% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--10-offset,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--10-offset-desktop.mdlext-cell--10-offset-desktop {
+  margin-left: calc(83.33333% + 8px);
+}
+
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--11-offset,
+.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--11-offset-desktop.mdlext-cell--11-offset-desktop {
+  margin-left: calc(91.66667% + 8px);
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] {
+  padding: 0;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell {
+  margin: 0;
+  width: 33.33333%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--1-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--1-col-desktop.mdlext-cell--1-col-desktop {
+  width: 8.33333%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--2-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--2-col-desktop.mdlext-cell--2-col-desktop {
+  width: 16.66667%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--3-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--3-col-desktop.mdlext-cell--3-col-desktop {
+  width: 25%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--4-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--4-col-desktop.mdlext-cell--4-col-desktop {
+  width: 33.33333%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--5-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--5-col-desktop.mdlext-cell--5-col-desktop {
+  width: 41.66667%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--6-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--6-col-desktop.mdlext-cell--6-col-desktop {
+  width: 50%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--7-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--7-col-desktop.mdlext-cell--7-col-desktop {
+  width: 58.33333%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--8-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--8-col-desktop.mdlext-cell--8-col-desktop {
+  width: 66.66667%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--9-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--9-col-desktop.mdlext-cell--9-col-desktop {
+  width: 75%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--10-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--10-col-desktop.mdlext-cell--10-col-desktop {
+  width: 83.33333%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--11-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--11-col-desktop.mdlext-cell--11-col-desktop {
+  width: 91.66667%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--12-col,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--12-col-desktop.mdlext-cell--12-col-desktop {
+  width: 100%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--1-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--1-offset-desktop.mdlext-cell--1-offset-desktop {
+  margin-left: 8.33333%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--2-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--2-offset-desktop.mdlext-cell--2-offset-desktop {
+  margin-left: 16.66667%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--3-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--3-offset-desktop.mdlext-cell--3-offset-desktop {
+  margin-left: 25%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--4-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--4-offset-desktop.mdlext-cell--4-offset-desktop {
+  margin-left: 33.33333%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--5-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--5-offset-desktop.mdlext-cell--5-offset-desktop {
+  margin-left: 41.66667%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--6-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--6-offset-desktop.mdlext-cell--6-offset-desktop {
+  margin-left: 50%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--7-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--7-offset-desktop.mdlext-cell--7-offset-desktop {
+  margin-left: 58.33333%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--8-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--8-offset-desktop.mdlext-cell--8-offset-desktop {
+  margin-left: 66.66667%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--9-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--9-offset-desktop.mdlext-cell--9-offset-desktop {
+  margin-left: 75%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--10-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--10-offset-desktop.mdlext-cell--10-offset-desktop {
+  margin-left: 83.33333%;
+}
+
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--11-offset,
+.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$="grid_desktop"] > .mdlext-cell--11-offset-desktop.mdlext-cell--11-offset-desktop {
+  margin-left: 91.66667%;
+}
+
+html:before {
+  display: none;
+  content: ".mdlext-grid";
+}
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * A lightboard is a translucent surface illuminated from behind, used for situations
+ * where a shape laid upon the surface needs to be seen with high contrast. In the "old days" of photography
+ * photograpers used a lightboard to get a quick view of their slides. The goal is to create a responsive lightbox
+ * design, based on flex layout, similar to what is used in Adobe LightRoom to browse images.
+ */
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========   Sticky Header   ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========     Accordion     ========== */
+
+/* ==========     Dialog     ========== */
+
+/* ==========     Lightbox     ========== */
+
+/* ==========  Lightboard  ========== */
+
+/* ==========  Carousel  ========== */
+
+/* ==========  Bordered fields  ========== */
+
+/* ==========  Color Themes  ========== */
+
+ul.mdlext-lightboard {
+  list-style: none;
+}
+
+.mdlext-lightboard {
+  box-sizing: border-box;
+  margin: 0 auto;
+  padding: 0;
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-flow: row wrap;
+      flex-flow: row wrap;
+  -ms-flex-align: stretch;
+      align-items: stretch;
+}
+
+.mdlext-lightboard *,
+.mdlext-lightboard *::before,
+.mdlext-lightboard *::after,
+.mdlext-lightboard input[type="search"] {
+  box-sizing: border-box;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide {
+  background-color: #F8F8F8;
+  border: 1px solid #D8D8D8;
+  border-radius: 5px;
+  box-shadow: 2px 2px 6px -1px rgba(219, 215, 219, 0.5);
+  position: relative;
+  display: block;
+  max-width: 250px;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide::before {
+  content: '';
+  display: block;
+  padding-top: 100%;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide:hover,
+.mdlext-lightboard .mdlext-lightboard__slide:active,
+.mdlext-lightboard .mdlext-lightboard__slide:focus {
+  border-color: #B8B8B8;
+  background-color: #E8E8E8;
+  box-shadow: 2px 2px 12px -1px #dbd7db;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide:hover figcaption,
+.mdlext-lightboard .mdlext-lightboard__slide:active figcaption,
+.mdlext-lightboard .mdlext-lightboard__slide:focus figcaption {
+  color: black !important;
+  background-color: rgba(255, 255, 255, 0.2);
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide:focus {
+  outline-offset: -2px;
+  outline-color: inherit;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide[aria-selected='true'] {
+  background-color: #E8E8E8;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide[aria-selected='true'] figcaption {
+  color: black !important;
+  background-color: rgba(255, 255, 255, 0.2);
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide__frame,
+.mdlext-lightboard .mdlext-lightboard__slide__ripple-container {
+  text-decoration: none;
+  display: block;
+  overflow: hidden;
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide__frame:focus,
+.mdlext-lightboard .mdlext-lightboard__slide__ripple-container:focus {
+  outline-offset: -2px;
+  outline-color: inherit;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide__frame .mdl-ripple,
+.mdlext-lightboard .mdlext-lightboard__slide__ripple-container .mdl-ripple {
+  background: rgb(63,81,181);
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide__frame figure,
+.mdlext-lightboard .mdlext-lightboard__slide__ripple-container figure {
+  display: block;
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide__frame figure img,
+.mdlext-lightboard .mdlext-lightboard__slide__ripple-container figure img {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  margin: auto;
+  max-width: 100%;
+  max-height: 100%;
+  border-width: 0;
+  border-radius: 3px;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide__frame figure figcaption,
+.mdlext-lightboard .mdlext-lightboard__slide__ripple-container figure figcaption {
+  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
+  font-size: 12px;
+  font-weight: 400;
+  line-height: 1;
+  letter-spacing: 0;
+  color: #bdbdbd;
+  position: absolute;
+  bottom: -2px;
+  white-space: nowrap;
+  overflow: hidden;
+  max-width: 100%;
+  width: 100%;
+  text-align: center;
+  text-overflow: ellipsis;
+  padding: 4px 0;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide__frame:hover figcaption,
+.mdlext-lightboard .mdlext-lightboard__slide__ripple-container:hover figcaption {
+  color: black !important;
+  background-color: rgba(255, 255, 255, 0.2);
+}
+
+.mdlext-lightboard {
+  padding: calc((0 - 2px) / 2);
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide {
+  margin: calc(2px / 2);
+  width: calc(1 / 2 * 100% - 2px);
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure {
+  margin: 8px;
+}
+
+.mdlext-lightboard.mdlext-lightboard--no-spacing {
+  padding: 0;
+}
+
+.mdlext-lightboard.mdlext-lightboard--no-spacing .mdlext-lightboard__slide {
+  margin: 0;
+  width: calc(1 / 2 * 100%);
+}
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========   Sticky Header   ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========     Accordion     ========== */
+
+/* ==========     Dialog     ========== */
+
+/* ==========     Lightbox     ========== */
+
+/* ==========  Lightboard  ========== */
+
+/* ==========  Carousel  ========== */
+
+/* ==========  Bordered fields  ========== */
+
+/* ==========  Color Themes  ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+.mdlext-lightboard:before {
+  display: none;
+  content: "lightboard_medium_small: 480, lightboard_medium: 660, lightboard_medium_large: 840, lightboard_large: 1200";
+}
+
+.mdlext-lightboard[data-eq-state$="lightboard_medium_small"] {
+  padding: calc((0 - 4px) / 2);
+}
+
+.mdlext-lightboard[data-eq-state$="lightboard_medium_small"] .mdlext-lightboard__slide {
+  margin: calc(4px / 2);
+  width: calc(1 / 4 * 100% - 4px);
+}
+
+.mdlext-lightboard[data-eq-state$="lightboard_medium_small"] .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure {
+  margin: 8px;
+}
+
+.mdlext-lightboard--no-spacing.mdlext-lightboard[data-eq-state$="lightboard_medium_small"] {
+  padding: 0;
+}
+
+.mdlext-lightboard--no-spacing.mdlext-lightboard[data-eq-state$="lightboard_medium_small"] .mdlext-lightboard__slide {
+  margin: 0;
+  width: calc(1 / 4 * 100%);
+}
+
+.mdlext-lightboard[data-eq-state$="lightboard_medium"] {
+  padding: calc((0 - 4px) / 2);
+}
+
+.mdlext-lightboard[data-eq-state$="lightboard_medium"] .mdlext-lightboard__slide {
+  margin: calc(4px / 2);
+  width: calc(1 / 5 * 100% - 4px);
+}
+
+.mdlext-lightboard[data-eq-state$="lightboard_medium"] .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure {
+  margin: 8px;
+}
+
+.mdlext-lightboard--no-spacing.mdlext-lightboard[data-eq-state$="lightboard_medium"] {
+  padding: 0;
+}
+
+.mdlext-lightboard--no-spacing.mdlext-lightboard[data-eq-state$="lightboard_medium"] .mdlext-lightboard__slide {
+  margin: 0;
+  width: calc(1 / 5 * 100%);
+}
+
+.mdlext-lightboard[data-eq-state$="lightboard_medium_large"] {
+  padding: calc((0 - 8px) / 2);
+}
+
+.mdlext-lightboard[data-eq-state$="lightboard_medium_large"] .mdlext-lightboard__slide {
+  margin: calc(8px / 2);
+  width: calc(1 / 6 * 100% - 8px);
+}
+
+.mdlext-lightboard[data-eq-state$="lightboard_medium_large"] .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure {
+  margin: 12px;
+}
+
+.mdlext-lightboard--no-spacing.mdlext-lightboard[data-eq-state$="lightboard_medium_large"] {
+  padding: 0;
+}
+
+.mdlext-lightboard--no-spacing.mdlext-lightboard[data-eq-state$="lightboard_medium_large"] .mdlext-lightboard__slide {
+  margin: 0;
+  width: calc(1 / 6 * 100%);
+}
+
+.mdlext-lightboard[data-eq-state$="lightboard_large"] {
+  padding: calc((0 - 8px) / 2);
+}
+
+.mdlext-lightboard[data-eq-state$="lightboard_large"] .mdlext-lightboard__slide {
+  margin: calc(8px / 2);
+  width: calc(1 / 7 * 100% - 8px);
+}
+
+.mdlext-lightboard[data-eq-state$="lightboard_large"] .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure {
+  margin: 12px;
+}
+
+.mdlext-lightboard--no-spacing.mdlext-lightboard[data-eq-state$="lightboard_large"] {
+  padding: 0;
+}
+
+.mdlext-lightboard--no-spacing.mdlext-lightboard[data-eq-state$="lightboard_large"] .mdlext-lightboard__slide {
+  margin: 0;
+  width: calc(1 / 7 * 100%);
+}
+
+html:before {
+  display: none;
+  content: ".mdlext-grid, .mdlext-lightboard";
+}
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========   Sticky Header   ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========     Accordion     ========== */
+
+/* ==========     Dialog     ========== */
+
+/* ==========     Lightbox     ========== */
+
+/* ==========  Lightboard  ========== */
+
+/* ==========  Carousel  ========== */
+
+/* ==========  Bordered fields  ========== */
+
+/* ==========  Color Themes  ========== */
+
+.mdlext-lightbox {
+  -webkit-user-select: none;
+     -moz-user-select: none;
+      -ms-user-select: none;
+          user-select: none;
+  cursor: default;
+  position: relative;
+  width: auto;
+  max-width: 100%;
+  margin: 0 auto;
+  border: 0;
+  border-radius: 0;
+  background-color: rgb(255,255,255);
+  box-sizing: border-box;
+  outline: 0;
+  display: block;
+}
+
+.mdlext-lightbox *,
+.mdlext-lightbox *::before,
+.mdlext-lightbox *::after,
+.mdlext-lightbox input[type="search"] {
+  box-sizing: border-box;
+}
+
+.mdlext-lightbox .mdlext-lightbox__slider {
+  position: absolute;
+  top: 0;
+  left: 0;
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-pack: center;
+      justify-content: center;
+}
+
+.mdlext-lightbox .mdlext-lightbox__slider .mdlext-lightbox__slider__slide {
+  -ms-flex-negative: 0;
+      flex-shrink: 0;
+  display: block;
+  text-align: left;
+  color: #7f7f7f;
+  background-size: cover;
+  background-position: center;
+  background-repeat: no-repeat;
+}
+
+.mdlext-lightbox figure {
+  margin: 0;
+  padding: 0;
+  position: relative;
+}
+
+.mdlext-lightbox figure img {
+  width: 100%;
+  max-width: 100%;
+  height: auto;
+  border: 0;
+  outline: 0;
+}
+
+.mdlext-lightbox figure figcaption {
+  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
+  font-size: 12px;
+  font-weight: 400;
+  line-height: 1;
+  letter-spacing: 0;
+  display: block;
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  max-width: 100%;
+  height: auto;
+  max-height: 50%;
+  overflow: auto;
+  padding: 8px;
+  background-color: rgba(255, 255, 255, 0.76);
+  transform-origin: bottom;
+  transform: scaleY(0);
+  transition: 0.2s ease-in-out;
+}
+
+.mdlext-lightbox figure figcaption.mdlext-lightbox__show-figcaption {
+  transform: scaleY(1);
+}
+
+.mdlext-lightbox figure figcaption tbody th {
+  text-align: left;
+}
+
+.mdlext-lightbox figure figcaption tbody th,
+.mdlext-lightbox figure figcaption tbody td {
+  vertical-align: text-top;
+}
+
+.mdlext-lightbox .mdl-card__menu {
+  color: #ffffff;
+  z-index: 1;
+}
+
+.mdlext-lightbox footer {
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-pack: justify;
+      justify-content: space-between;
+  -ms-flex-align: center;
+      align-items: center;
+  background-color: rgba(255, 255, 255, 0.86);
+}
+
+.mdlext-lightbox footer .mdl-card__supporting-text {
+  -ms-flex: 1;
+      flex: 1;
+  overflow: hidden;
+  padding: 0;
+  height: 18px;
+  width: 100%;
+}
+
+.mdlext-lightbox footer nav {
+  display: -ms-flexbox;
+  display: flex;
+}
+
+.mdlext-lightbox.mdlext-lightbox--sticky-footer footer {
+  position: fixed;
+  bottom: 0;
+  left: 0;
+}
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * A carousel ...
+ */
+
+ul.mdlext-carousel {
+  list-style: none;
+}
+
+.mdlext-carousel {
+  box-sizing: border-box;
+  margin: 0;
+  padding: 0;
+  overflow: hidden;
+  height: 100%;
+  width: 100%;
+  display: block;
+  white-space: nowrap;
+  font-size: 0;
+  background-color: transparent;
+}
+
+.mdlext-carousel__slide {
+  box-sizing: border-box;
+  display: inline-block;
+  position: relative;
+  outline: 0;
+  margin: 0 0;
+  padding: 0;
+  height: 100%;
+  border-top: 2px solid transparent;
+}
+
+.mdlext-carousel__slide[aria-selected] figcaption,
+.mdlext-carousel__slide[aria-selected='true'] figcaption {
+  color: black !important;
+  background-color: rgba(255, 255, 255, 0.25);
+}
+
+.mdlext-carousel__slide[aria-selected]::after,
+.mdlext-carousel__slide[aria-selected='true']::after {
+  height: 2px;
+  width: 100%;
+  display: block;
+  content: ' ';
+  top: -2px;
+  left: 0;
+  position: absolute;
+  background: #ff4081;
+  animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
+  transition: all 1s cubic-bezier(0.4, 0, 1, 1);
+}
+
+.mdlext-carousel__slide a {
+  text-decoration: none;
+}
+
+.mdlext-carousel__slide figure {
+  box-sizing: border-box;
+  position: relative;
+  height: 100%;
+  margin: 0;
+  padding: 0;
+}
+
+.mdlext-carousel__slide figure img {
+  box-sizing: border-box;
+  max-height: 100%;
+}
+
+.mdlext-carousel__slide figure figcaption {
+  box-sizing: border-box;
+  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
+  font-size: 12px;
+  font-weight: 400;
+  line-height: 1;
+  letter-spacing: 0;
+  color: #bdbdbd;
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  white-space: nowrap;
+  overflow: hidden;
+  max-width: 100%;
+  width: 100%;
+  text-align: center;
+  text-overflow: ellipsis;
+  padding: 4px 0;
+}
+
+.mdlext-carousel__slide figure:hover figcaption {
+  color: black !important;
+  background-color: rgba(255, 255, 255, 0.25);
+}
+
+.mdlext-carousel__slide .mdlext-carousel__slide__ripple-container {
+  text-decoration: none;
+  display: block;
+  overflow: hidden;
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  outline: 0;
+}
+
+.mdlext-carousel__slide .mdlext-carousel__slide__ripple-container .mdl-ripple {
+  background: rgb(63,81,181);
+}
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * Copied/Modified/Inspired from/by:
+ *   https://github.com/google/material-design-lite/tree/master/src/textfield
+ *   http://red-team-design.com/making-html-dropdowns-not-suck/
+ *   http://codepen.io/etcpe9/pen/PqyOye,
+ *   http://codepen.io/pudgereyem/pen/PqBxQx
+ *   https://github.com/MEYVN-digital/mdl-selectfield
+ *   https://github.com/mebibou/mdl-selectfield
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+.mdlext-selectfield {
+  box-sizing: border-box;
+  position: relative;
+  font-size: 16px;
+  display: inline-block;
+  width: 300px;
+  max-width: 100%;
+  margin: 0;
+  padding: 20px 0;
+}
+
+.mdlext-selectfield .mdl-button {
+  bottom: 20px;
+  position: absolute;
+}
+
+.mdlext-selectfield::after {
+  content: '';
+  width: 0;
+  height: 0;
+  font-size: inherit;
+  line-height: inherit;
+  border-top: 0.5em solid inherit;
+  border-top-width: 0.5em;
+  border-top-style: solid;
+  border-top-color: inherit;
+  border-left: 0.35em solid transparent;
+  border-right: 0.35em solid transparent;
+  position: absolute;
+  right: 0.5em;
+  top: 50%;
+  transform: translateY(-50%);
+  pointer-events: none;
+}
+
+.mdlext-selectfield.is-disabled::after {
+  color: rgba(0,0,0, 0.12);
+  content: '';
+  width: 0;
+  height: 0;
+  font-size: inherit;
+  line-height: inherit;
+  border-top: 0.5em solid rgba(0,0,0, 0.12);
+  border-top-width: 0.5em;
+  border-top-style: solid;
+  border-top-color: rgba(0,0,0, 0.12);
+  border-left: 0.35em solid transparent;
+  border-right: 0.35em solid transparent;
+}
+
+.mdlext-selectfield--align-right {
+  text-align: right;
+}
+
+.mdlext-selectfield--full-width {
+  width: 100%;
+}
+
+.mdlext-selectfield--expandable {
+  min-height: 32px;
+  min-width: 32px;
+  width: auto;
+}
+
+.mdlext-selectfield__select {
+  box-sizing: border-box;
+  border: 0;
+  border-radius: 0;
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  -ms-appearance: none;
+  appearance: none;
+  text-indent: 0.01px;
+  text-overflow: '';
+  outline: none;
+  box-shadow: none;
+  font-size: 16px;
+  font-family: "Helvetica", "Arial", sans-serif;
+  padding: 4px calc(1.2em + 4px) 4px 0;
+  width: 100%;
+  border-bottom: 1px solid rgba(0,0,0, 0.12);
+  display: block;
+  margin: 0;
+  background: none;
+  text-align: left;
+  color: inherit;
+}
+
+.mdlext-selectfield__select:-moz-focusring {
+  color: transparent;
+  text-shadow: 0 0 0 #000000;
+}
+
+.mdlext-selectfield__select:focus::-ms-value {
+  background-color: inherit;
+  color: inherit;
+}
+
+.mdlext-selectfield__select::-ms-expand {
+  display: none;
+}
+
+.mdlext-selectfield.is-focused .mdlext-selectfield__select {
+  outline: none;
+}
+
+.mdlext-selectfield.is-invalid .mdlext-selectfield__select {
+  border-color: rgb(213,0,0);
+  box-shadow: none;
+}
+
+fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,
+.mdlext-selectfield.is-disabled .mdlext-selectfield__select {
+  border-bottom: 1px dotted rgba(0,0,0, 0.12);
+  color: rgba(0,0,0, 0.26);
+  background-color: transparent;
+}
+
+.mdlext-selectfield__select option {
+  color: rgba(0,0,0, 0.87);
+  box-sizing: border-box;
+  background-color: inherit;
+}
+
+.mdlext-selectfield__label {
+  box-sizing: border-box;
+  color: rgba(0,0,0, 0.26);
+  font-size: 16px;
+  top: 24px;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  pointer-events: none;
+  position: absolute;
+  display: block;
+  width: 100%;
+  overflow: hidden;
+  white-space: nowrap;
+  text-align: left;
+}
+
+.mdlext-selectfield.is-dirty .mdlext-selectfield__label,
+.mdlext-selectfield.has-placeholder .mdlext-selectfield__label {
+  visibility: hidden;
+}
+
+.mdlext-selectfield--floating-label .mdlext-selectfield__label {
+  transition-duration: 0.2s;
+  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+}
+
+.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
+  transition: none;
+}
+
+fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,
+.mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {
+  color: rgba(0,0,0, 0.26);
+}
+
+.mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,
+.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
+  color: rgb(63,81,181);
+  font-size: 12px;
+  top: 4px;
+  visibility: visible;
+}
+
+.mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__expandable-holder .mdlext-selectfield__label,
+.mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__expandable-holder .mdlext-selectfield__label,
+.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__expandable-holder .mdlext-selectfield__label {
+  top: -16px;
+}
+
+.mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {
+  color: rgb(213,0,0);
+  font-size: 12px;
+}
+
+.mdlext-selectfield__label::after {
+  background-color: rgb(63,81,181);
+  bottom: 20px;
+  content: '';
+  height: 2px;
+  left: 45%;
+  position: absolute;
+  transition-duration: 0.2s;
+  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+  visibility: hidden;
+  width: 10px;
+}
+
+.mdlext-selectfield.is-focused .mdlext-selectfield__label::after {
+  left: 0;
+  visibility: visible;
+  width: 100%;
+}
+
+.mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {
+  background-color: rgb(213,0,0);
+}
+
+.mdlext-selectfield__error {
+  color: rgb(213,0,0);
+  font-size: 12px;
+  position: absolute;
+  margin-top: 3px;
+  visibility: hidden;
+  display: block;
+}
+
+.mdlext-selectfield.is-invalid .mdlext-selectfield__error {
+  visibility: visible;
+}
+
+.mdlext-selectfield__expandable-holder {
+  display: inline-block;
+  position: relative;
+  margin-left: 32px;
+  transition-duration: 0.2s;
+  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+  max-width: 0.1px;
+}
+
+.mdlext-selectfield.is-focused .mdlext-selectfield__expandable-holder,
+.mdlext-selectfield.is-dirty .mdlext-selectfield__expandable-holder {
+  max-width: 600px;
+}
+
+.mdlext-selectfield__expandable-holder .mdlext-selectfield__label::after {
+  bottom: 0;
+}
+
+/**
+ * @license
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * This code is built with Google Material Design Lite,
+ * which is Licensed under the Apache License, Version 2.0
+ */
+
+/* Moved to aria-expanded-toggle.scss
+
+.mdlext-aria-expanded-plus-minus {
+  @include mdlext-aria-expanded-toggle($font-family: inherit);
+}
+
+.mdlext-aria-expanded-more-less {
+  @include mdlext-aria-expanded-toggle($icon: 'expand_more', $icon-expanded: 'expand_less');
+}
+*/
+
+.mdlext-menu-button {
+  box-sizing: border-box;
+  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
+  font-size: 14px;
+  font-weight: 500;
+  line-height: 1;
+  letter-spacing: 0;
+  text-transform: none;
+  position: relative;
+  height: 36px;
+  padding: 0 16px;
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-align: center;
+      align-items: center;
+  -ms-flex-item-align: stretch;
+      align-self: stretch;
+}
+
+.mdlext-menu-button > * {
+  margin: 0;
+  padding: 0 0 0 8px;
+}
+
+.mdlext-menu-button > *:first-child {
+  padding-left: 0;
+}
+
+.mdlext-menu-button > *:last-child:not(:only-child):not(.mdlext-menu__item__caption) {
+  margin-left: auto;
+}
+
+.mdlext-menu-button__caption {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  line-height: 1.2;
+}
+
+.mdlext-menu,
+.mdlext-menu__item {
+  box-sizing: border-box;
+  margin: 0;
+  padding: 0;
+  list-style: none;
+  display: -ms-flexbox;
+  display: flex;
+}
+
+.mdlext-menu {
+  position: absolute;
+  background: rgb(255,255,255);
+  z-index: 1000;
+  min-width: 124px;
+  border-radius: 2px;
+  box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12);
+  display: -ms-inline-flexbox;
+  display: inline-flex;
+  -ms-flex-direction: column;
+      flex-direction: column;
+  padding: 0;
+  overflow: hidden;
+  overflow-y: auto;
+}
+
+.mdlext-menu:focus {
+  outline-offset: -1px;
+  outline-width: 1px;
+}
+
+.mdlext-menu[hidden] {
+  border: 0;
+  clip: rect(0 0 0 0);
+  height: 1px;
+  margin: -1px;
+  overflow: hidden;
+  padding: 0;
+  position: absolute;
+  width: 1px;
+  pointer-events: none;
+}
+
+.mdlext-menu__item {
+  font-size: 14px;
+  font-weight: 400;
+  line-height: 24px;
+  letter-spacing: 0;
+  color: rgba(0,0,0, 0.87);
+  background-color: rgb(255,255,255);
+  position: relative;
+  padding: 0 16px 0 24px;
+  -ms-flex-align: center;
+      align-items: center;
+  -ms-flex-item-align: stretch;
+      -ms-grid-row-align: stretch;
+      align-self: stretch;
+  text-decoration: none;
+  cursor: pointer;
+  white-space: nowrap;
+  -webkit-user-select: none;
+     -moz-user-select: none;
+      -ms-user-select: none;
+          user-select: none;
+  min-height: 40px;
+  overflow: hidden;
+}
+
+.mdlext-menu__item[aria-selected='true'] {
+  background-color: rgb(224,224,224);
+}
+
+.mdlext-menu__item[aria-selected='true']::before {
+  content: '\2713';
+  position: absolute;
+  font-size: 1.4em;
+  left: 4px;
+  top: 50%;
+  transform: translateY(-50%);
+  pointer-events: none;
+}
+
+.mdlext-menu__item:hover:not([disabled]) {
+  background-color: rgb(238,238,238);
+}
+
+.mdlext-menu__item:focus {
+  outline-offset: -2px;
+  outline-width: 1px;
+  outline-color: rgb(189,189,189);
+  background-color: rgb(238,238,238);
+}
+
+.mdlext-menu__item::-moz-focus-inner {
+  border: 0;
+}
+
+.mdlext-menu__item[disabled] {
+  color: rgb(189,189,189);
+  background-color: transparent;
+  cursor: auto;
+  pointer-events: none;
+}
+
+.mdlext-menu__item[disabled] > * {
+  color: rgb(189,189,189);
+}
+
+.mdlext-menu__item__caption {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+
+.mdlext-menu__item > * {
+  margin: 0;
+  padding: 0 0 0 8px;
+}
+
+.mdlext-menu__item > *:first-child {
+  padding-left: 0;
+}
+
+.mdlext-menu__item > *:last-child:not(:only-child):not(.mdlext-menu__item__caption) {
+  margin-left: auto;
+}
+
+.mdlext-menu__item-separator {
+  margin: 0;
+  padding: 0;
+  border-bottom: 1px solid rgba(0,0,0, 0.12);
+}
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * The bordered fields are based on / inspired by this CodePen: http://codepen.io/prajwal078/pen/LVJZXz?editors=010
+ */
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========   Sticky Header   ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========     Accordion     ========== */
+
+/* ==========     Dialog     ========== */
+
+/* ==========     Lightbox     ========== */
+
+/* ==========  Lightboard  ========== */
+
+/* ==========  Carousel  ========== */
+
+/* ==========  Bordered fields  ========== */
+
+/* ==========  Color Themes  ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+.mdlext-bordered-fields {
+  box-sizing: border-box;
+}
+
+.mdlext-bordered-fields * {
+  box-sizing: border-box;
+}
+
+.mdlext-bordered-fields .mdl-textfield,
+.mdlext-bordered-fields .mdlext-selectfield {
+  padding: 0;
+  margin: 0 0 20px 0;
+  /*
+    &.is-dirty {
+      .mdl-textfield__input,
+      .mdlext-selectfield__select {
+      }
+    }
+    */
+}
+
+.mdlext-bordered-fields .mdl-textfield .mdl-textfield__input,
+.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,
+.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input,
+.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select {
+  height: 46px;
+  background-color: rgba(255, 255, 255, 0.2);
+  border: 1px solid rgba(0, 0, 0, 0.26);
+  border-radius: 3px;
+  padding: 20px 8px 4px 8px;
+  font-size: 16px;
+  font-weight: normal;
+  color: inherit;
+}
+
+.mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:disabled,
+.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:disabled,
+.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:disabled,
+.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:disabled {
+  color: rgba(0, 0, 0, 0.12);
+  background-color: rgba(255, 255, 255, 0.2);
+  border-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:focus,
+.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:focus,
+.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:focus,
+.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:focus {
+  background-color: rgba(238, 238, 238, 0.2);
+  border-color: #3f51b5;
+}
+
+.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,
+.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select {
+  padding-right: calc(1em + 8px);
+}
+
+.mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input,
+.mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select,
+.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input,
+.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select {
+  color: inherit;
+  border-color: #d50000;
+  background-color: rgba(255, 213, 213, 0.5);
+}
+
+.mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input:focus,
+.mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select:focus,
+.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input:focus,
+.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select:focus {
+  border-color: #a20000;
+  background-color: rgba(255, 213, 213, 0.5);
+}
+
+.mdlext-bordered-fields .mdlext-selectfield::after {
+  top: auto;
+  bottom: 4px;
+}
+
+.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield::after,
+.mdlext-bordered-fields .mdlext-selectfield.is-disabled::after {
+  color: rgba(0, 0, 0, 0.12);
+  content: '';
+  width: 0;
+  height: 0;
+  font-size: inherit;
+  line-height: inherit;
+  border-top: 0.5em solid rgba(0, 0, 0, 0.12);
+  border-top-width: 0.5em;
+  border-top-style: solid;
+  border-top-color: rgba(0, 0, 0, 0.12);
+  border-left: 0.35em solid transparent;
+  border-right: 0.35em solid transparent;
+}
+
+.mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__input,
+.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {
+  color: rgba(0, 0, 0, 0.12);
+  background-color: rgba(255, 255, 255, 0.2);
+  border-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-bordered-fields .mdl-textfield.is-dirty .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.is-dirty .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.has-placeholder .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.has-placeholder .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.is-dirty .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.is-dirty .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.has-placeholder .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.has-placeholder .mdlext-selectfield__label {
+  visibility: hidden;
+}
+
+.mdlext-bordered-fields .mdl-textfield .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label {
+  color: rgba(0, 0, 0, 0.26);
+  font-size: 16px;
+  font-weight: normal;
+  padding-left: 8px;
+  top: auto;
+  bottom: 4px;
+}
+
+.mdlext-bordered-fields .mdl-textfield .mdl-textfield__label::after,
+.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label::after,
+.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label::after,
+.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label::after {
+  background-color: transparent !important;
+  visibility: hidden !important;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
+  color: #3f51b5;
+  font-size: 12px;
+  font-weight: normal;
+  top: auto;
+  bottom: 24px;
+  visibility: visible;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label {
+  color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label {
+  color: #d50000;
+}
+
+.mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__label,
+.mdlext-bordered-fields fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {
+  color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > i,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > .mdl-button,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > i,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > .mdl-button {
+  position: absolute;
+  bottom: 2px;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > i,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > i {
+  bottom: 6px;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i:first-child,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button:first-child,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i:first-child,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button:first-child {
+  left: 4px;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i ~ .mdl-textfield__input,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdl-textfield__input,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i ~ .mdlext-selectfield__select,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdlext-selectfield__select,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i ~ .mdl-textfield__input,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdl-textfield__input,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i ~ .mdlext-selectfield__select,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdlext-selectfield__select {
+  padding-left: 32px;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i ~ .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i ~ .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdl-textfield__label {
+  left: 24px;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i ~ .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i ~ .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdlext-selectfield__label {
+  left: 24px;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > .mdl-textfield__input,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > .mdl-textfield__input {
+  padding-right: 32px;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > i:last-child,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > .mdl-button:last-child,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > i:last-child,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > .mdl-button:last-child {
+  left: auto;
+  right: 4px;
+}
+
+.mdlext-bordered-fields .mdl-textfield.is-disabled i,
+.mdlext-bordered-fields .mdl-textfield.is-disabled .mdl-button,
+.mdlext-bordered-fields .mdlext-selectfield.is-disabled i,
+.mdlext-bordered-fields .mdlext-selectfield.is-disabled .mdl-button {
+  color: rgba(0, 0, 0, 0.12);
+  pointer-events: none;
+}
+
+.mdlext-bordered-fields fieldset[disabled] .mdl-textfield i,
+.mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-button,
+.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield i,
+.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdl-button {
+  color: rgba(0, 0, 0, 0.12);
+  pointer-events: none;
+}
+
+/**
+ * @license
+ * Copyright 2016-2017 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * This code is built with Google Material Design Lite,
+ * which is Licensed under the Apache License, Version 2.0
+ */
+
+.mdlext-collapsible {
+  box-sizing: border-box;
+  cursor: pointer;
+}
+
+.mdlext-collapsible-group,
+.mdlext-collapsible-region {
+  box-sizing: border-box;
+}
+
+.mdlext-collapsible-group[hidden],
+.mdlext-collapsible-region[hidden] {
+  border: 0;
+  clip: rect(0 0 0 0);
+  height: 1px;
+  margin: -1px;
+  overflow: hidden;
+  padding: 0;
+  position: absolute;
+  width: 1px;
+  pointer-events: none;
+}
+
+/**
+ * @license
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * This code is built with Google Material Design Lite,
+ * which is Licensed under the Apache License, Version 2.0
+ */
+
+.mdlext-aria-toggle-plus-minus {
+  font-family: inherit;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 1.4em;
+  display: inline-block;
+  width: 1em;
+  height: 1em;
+  line-height: 1;
+  text-transform: none;
+  letter-spacing: normal;
+  word-wrap: normal;
+  white-space: nowrap;
+  direction: ltr;
+  vertical-align: middle;
+  -webkit-font-smoothing: antialiased;
+  -webkit-font-feature-settings: 'liga';
+  text-rendering: optimizeLegibility;
+  -moz-osx-font-smoothing: grayscale;
+  font-feature-settings: 'liga';
+}
+
+.mdlext-aria-toggle-plus-minus::after {
+  content: "+";
+  margin-left: 0;
+}
+
+[aria-expanded='true'] > .mdlext-aria-toggle-plus-minus::after {
+  content: "-";
+  margin-left: 0;
+}
+
+.mdlext-aria-toggle-material-icons {
+  font-family: "Material Icons";
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 1.3em;
+  display: inline-block;
+  width: 1em;
+  height: 1em;
+  line-height: 1;
+  text-transform: none;
+  letter-spacing: normal;
+  word-wrap: normal;
+  white-space: nowrap;
+  direction: ltr;
+  vertical-align: middle;
+  -webkit-font-smoothing: antialiased;
+  -webkit-font-feature-settings: 'liga';
+  text-rendering: optimizeLegibility;
+  -moz-osx-font-smoothing: grayscale;
+  font-feature-settings: 'liga';
+}
+
+.mdlext-aria-toggle-material-icons::after {
+  content: "expand_more";
+  margin-left: -8px;
+}
+
+[aria-expanded='true'] > .mdlext-aria-toggle-material-icons::after {
+  content: "expand_less";
+  margin-left: -8px;
+}
+
+.mdlext-accordion {
+  box-sizing: border-box;
+  margin: 0;
+  padding: 0;
+  list-style: none;
+  display: -ms-flexbox;
+  display: flex;
+}
+
+.mdlext-accordion * {
+  box-sizing: border-box;
+}
+
+.mdlext-accordion__panel {
+  box-sizing: border-box;
+  position: relative;
+  overflow: hidden;
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-wrap: nowrap;
+      flex-wrap: nowrap;
+}
+
+.mdlext-accordion__tab {
+  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
+  font-size: 20px;
+  font-weight: 500;
+  line-height: 1;
+  letter-spacing: 0.02em;
+  font-weight: 400;
+  line-height: 1.1;
+  box-sizing: border-box;
+  position: relative;
+  margin: 0;
+  padding: 0;
+  min-width: 56px;
+  min-height: 56px;
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-align: center;
+      align-items: center;
+  -ms-flex-item-align: stretch;
+      align-self: stretch;
+  -webkit-user-select: none;
+     -moz-user-select: none;
+      -ms-user-select: none;
+          user-select: none;
+  color: #000000;
+  background-color: rgba(158, 158, 158, 0.2);
+  cursor: pointer;
+  overflow: hidden;
+}
+
+.mdlext-accordion__tab:focus {
+  outline-offset: -2px;
+  outline-color: invert;
+  outline-width: 2px;
+}
+
+.mdlext-accordion__tab[aria-expanded='true'] {
+  background-color: rgba(158, 158, 158, 0.3);
+}
+
+.mdlext-accordion__tab[aria-selected='true'] {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-accordion__tab[disabled] {
+  background-color: rgba(158, 158, 158, 0.12);
+  color: rgba(0, 0, 0, 0.26);
+  pointer-events: none;
+}
+
+.mdlext-accordion__tab[disabled] > * {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-accordion__tab:hover:not([disabled]) {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-accordion__tab > * {
+  margin: 0;
+  padding: 0;
+}
+
+.mdlext-accordion__tab__caption {
+  padding-left: 8px;
+  padding-right: 8px;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+
+.mdlext-accordion__tab > *:first-child {
+  padding-left: 0;
+}
+
+.mdlext-accordion__tab--ripple[aria-selected='true']::before {
+  content: '';
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  background: rgba(255, 255, 255, 0.5);
+  opacity: 0;
+  border-radius: 100%;
+  transform: scale(1, 1) translate(-50%);
+  transform-origin: 50% 50%;
+}
+
+.mdlext-accordion__tab--ripple[aria-selected='true']:focus:not(:active)::before {
+  animation: mdlext-accordion-tab-ripple 1s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
+}
+
+.mdlext-accordion__tabpanel {
+  box-sizing: border-box;
+  margin: 0;
+  padding: 0 8px;
+  color: inherit;
+  background-color: transparent;
+  display: block;
+  overflow: auto;
+  -ms-flex-positive: 1;
+      flex-grow: 1;
+}
+
+.mdlext-accordion__tabpanel[hidden] {
+  border: 0;
+  clip: rect(0 0 0 0);
+  height: 1px;
+  margin: -1px;
+  overflow: hidden;
+  padding: 0;
+  position: absolute;
+  width: 1px;
+}
+
+.mdlext-accordion--vertical {
+  -ms-flex-direction: column;
+      flex-direction: column;
+  -ms-flex-wrap: nowrap;
+      flex-wrap: nowrap;
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__panel {
+  min-height: 56px;
+  -ms-flex-direction: column;
+      flex-direction: column;
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tab {
+  height: 56px;
+  border-top: 1px solid rgba(158, 158, 158, 0.5);
+  padding-left: 8px;
+  padding-right: 8px;
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tab[aria-selected='true']::after {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  height: 1px;
+  width: 100%;
+  display: block;
+  content: " ";
+  background-color: rgba(150, 150, 150, 0.5);
+  animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
+  transition: all 1s cubic-bezier(0.4, 0, 1, 1);
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tab > * {
+  padding-left: 8px;
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tab > *:first-child {
+  padding-left: 0;
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tab > *:last-child:not(:only-child):not(.mdlext-accordion__tab__caption) {
+  margin-left: auto;
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tab--ripple[aria-selected='true']::before {
+  width: 5%;
+  height: 10%;
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tabpanel {
+  border-top: 1px solid rgba(158, 158, 158, 0.5);
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tabpanel--animation {
+  transform: scaleY(1);
+  animation: mdlext-accordion-show-tabpanel-y 0.2s ease-in-out;
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tabpanel--animation[hidden] {
+  transform: scaleY(0);
+  animation: mdlext-accordion-hide-tabpanel-y 0.2s ease-out;
+  animation-delay: 0.1s;
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__panel {
+  min-width: 56px;
+  width: 56px;
+}
+
+.mdlext-accordion--horizontal[aria-multiselectable='true'] .mdlext-accordion__panel.is-expanded {
+  width: 100%;
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tab {
+  -ms-flex-direction: column-reverse;
+      flex-direction: column-reverse;
+  width: 56px;
+  white-space: nowrap;
+  border-left: 1px solid rgba(158, 158, 158, 0.5);
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tab[aria-selected='true']::after {
+  position: absolute;
+  top: 0;
+  right: 0;
+  height: 100%;
+  width: 1px;
+  display: block;
+  content: " ";
+  background-color: rgba(150, 150, 150, 0.5);
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tab > * {
+  transform: rotate(-90deg) translateX(8px);
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tab > *:last-child:not(:only-child):not(.mdlext-accordion__tab__caption) {
+  margin-bottom: auto;
+  transform: rotate(-90deg) translateX(0);
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tab__caption {
+  transform: rotate(-90deg) translateX(50%);
+  padding-right: 16px;
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tab--ripple[aria-selected='true']::before {
+  width: 10%;
+  height: 5%;
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tabpanel {
+  border-left: 1px solid rgba(158, 158, 158, 0.5);
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tabpanel--animation {
+  transform: scaleX(1);
+  animation: mdlext-accordion-show-tabpanel-x 0.2s ease-in-out;
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tabpanel--animation[hidden] {
+  transform: scaleX(0);
+  animation: mdlext-accordion-hide-tabpanel-x 0.2s ease-out;
+}
+
+.mdlext-accordion__panel:first-child > .mdlext-accordion__tab {
+  border-top-color: transparent;
+  border-left-color: transparent;
+}
+
+.mdlext-accordion[aria-multiselectable="false"] .mdlext-accordion__panel.is-expanded {
+  -ms-flex-positive: 1;
+      flex-grow: 1;
+}
+
+.mdlext-accordion[disabled] * {
+  pointer-events: none;
+}
+
+.mdlext-accordion[disabled] .mdlext-accordion__tab {
+  background-color: rgba(158, 158, 158, 0.12);
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-accordion[disabled] .mdlext-accordion__tab > * {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-accordion[disabled] .mdlext-accordion__tabpanel {
+  opacity: 0.8;
+  filter: blur(1px) grayscale(80%);
+}
+
+@keyframes mdlext-accordion-tab-ripple {
+  0% {
+    transform: scale(0, 0);
+    opacity: 1;
+  }
+
+  20% {
+    transform: scale(25, 25);
+    opacity: 1;
+  }
+
+  100% {
+    opacity: 0;
+    transform: scale(40, 40);
+  }
+}
+
+/*
+@keyframes mdlext-accordion-show-tabpanel-y {
+  0% { transform: scaleY(0.1); }
+  40% { transform: scaleY(1.03); }
+  60% { transform: scaleY(0.98); }
+  80% { transform: scaleY(1.03); }
+  100% { transform: scaleY(0.98); }
+  80% { transform: scaleY(1.01); }
+  100% { transform: scaleY(1); }
+}
+*/
+
+@keyframes mdlext-accordion-show-tabpanel-y {
+  0% {
+    transform: scaleY(0);
+  }
+
+  60% {
+    transform: scaleY(1.01);
+  }
+
+  80% {
+    transform: scaleY(0.98);
+  }
+
+  100% {
+    transform: scaleY(1);
+  }
+}
+
+@keyframes mdlext-accordion-hide-tabpanel-y {
+  0% {
+    transform: scaleY(1);
+  }
+
+  60% {
+    transform: scaleY(0.98);
+  }
+
+  80% {
+    transform: scaleY(1.01);
+  }
+
+  100% {
+    transform: scaleY(0);
+  }
+}
+
+/*
+@keyframes mdlext-accordion-show-tabpanel-x {
+  0% { transform: scaleX(0.1); }
+  40% { transform: scaleX(1.03); }
+  60% { transform: scaleX(0.98); }
+  80% { transform: scaleX(1.03); }
+  100% { transform: scaleX(0.98); }
+  80% { transform: scaleX(1.01); }
+  100% { transform: scaleX(1); }
+}
+*/
+
+@keyframes mdlext-accordion-show-tabpanel-x {
+  0% {
+    transform: scaleX(0);
+  }
+
+  60% {
+    transform: scaleX(1.01);
+  }
+
+  80% {
+    transform: scaleX(0.98);
+  }
+
+  100% {
+    transform: scaleX(1);
+  }
+}
+
+@keyframes mdlext-accordion-hide-tabpanel-x {
+  0% {
+    transform: scaleX(1);
+  }
+
+  60% {
+    transform: scaleX(0.98);
+  }
+
+  80% {
+    transform: scaleX(1.01);
+  }
+
+  100% {
+    transform: scaleX(0);
+  }
+}
+
+/* -------------------------------------------------------------
+   Palette samples. Not part of build
+----------------------------------------------------------------
+
+$mdlext-light-color-primary:          #9E9E9E !default;
+$mdlext-light-color-primary-dark:     #616161 !default;
+$mdlext-light-color-primary-light:    #9E9E9E !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #212121 !default;  // text color on primary/primary dark background
+$mdlext-light-color-accent:           #E040FB !default;
+$mdlext-light-color-accent-light:     #E040FB !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FAFAFA !default;
+
+$mdlext-light-color-primary:          #F5F5F5 !default;
+$mdlext-light-color-primary-dark:     #E0E0E0 !default;
+$mdlext-light-color-primary-light:    #8BC34A !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #000000 !default;  // text color on primary/primary dark background
+$mdlext-light-color-accent:           #FFC107 !default;
+$mdlext-light-color-accent-light:     #FFC107 !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FFFFFF !default;
+
+
+$mdlext-light-color-primary:          #673AB7 !default;
+$mdlext-light-color-primary-dark:     #512DA8 !default;
+$mdlext-light-color-primary-light:    #673AB7 !default;   // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #D1C4E9 !default;   // text color on primary/primary dark background
+$mdlext-light-color-accent:           #4CAF50 !default;
+$mdlext-light-color-accent-light:     #4CAF50 !default;   // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FFFFFF !default;
+
+
+$mdlext-light-color-primary:          #4CAF50 !default;
+$mdlext-light-color-primary-dark:     #388E3C !default;
+$mdlext-light-color-primary-light:    #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #C8E6C9 !default;  // text color on primary/primary dark background
+$mdlext-light-color-accent:           #FF5252 !default;
+$mdlext-light-color-accent-light:     #FF5252 !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FFFFFF !default;
+
+
+$mdlext-light-color-primary:          #4CAF50 !default;
+$mdlext-light-color-primary-dark:     #388E3C !default;
+$mdlext-light-color-primary-light:    #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #C8E6C9 !default;  // text color on primary/primary dark background
+$mdlext-light-color-accent:           #03A9F4 !default;
+$mdlext-light-color-accent-light:     #03A9F4 !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FFFFFF !default;
+
+
+$mdlext-dark-color-primary:           #212121 !default;
+$mdlext-dark-color-primary-dark:      #000000 !default;
+$mdlext-dark-color-primary-light:     #607D8B !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-dark-color-primary-contrast:  #FFFFFF !default;  // text color on primary/primary dark background
+$mdlext-dark-color-accent:            #FF5722 !default;
+$mdlext-dark-color-accent-light:      #FF5722 !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-dark-color-accent-contrast:   #FFFFFF !default;
+
+*/
+
+.mdlext-light-color-theme {
+  background-color: #FAFAFA;
+  color: rgba(0, 0, 0, 0.87);
+}
+
+.mdlext-light-color-theme a {
+  outline-color: inherit;
+}
+
+.mdlext-light-color-theme .mdl-color--primary {
+  background-color: #4CAF50 !important;
+}
+
+.mdlext-light-color-theme .mdl-color--primary-contrast {
+  background-color: #C8E6C9 !important;
+}
+
+.mdlext-light-color-theme .mdl-color--primary-dark {
+  background-color: #388E3C !important;
+}
+
+.mdlext-light-color-theme .mdl-color--accent {
+  background-color: #E040FB !important;
+}
+
+.mdlext-light-color-theme .mdl-color--accent-contrast {
+  background-color: #FAFAFA !important;
+}
+
+.mdlext-light-color-theme .mdl-color-text--primary {
+  color: #4CAF50 !important;
+}
+
+.mdlext-light-color-theme .mdl-color-text--primary-contrast {
+  color: #C8E6C9 !important;
+}
+
+.mdlext-light-color-theme .mdl-color-text--primary-dark {
+  color: #388E3C !important;
+}
+
+.mdlext-light-color-theme .mdl-color-text--accent {
+  color: #E040FB !important;
+}
+
+.mdlext-light-color-theme .mdl-color-text--accent-contrast {
+  color: #FAFAFA !important;
+}
+
+.mdlext-light-color-theme a {
+  color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-badge[data-badge]::after {
+  background: #E040FB;
+  color: #FAFAFA;
+}
+
+.mdlext-light-color-theme .mdl-badge.mdl-badge--no-background[data-badge]::after {
+  color: #E040FB;
+  background: #FAFAFA;
+}
+
+.mdlext-light-color-theme .mdl-button {
+  background: transparent;
+  color: #000000;
+}
+
+.mdlext-light-color-theme .mdl-button:hover {
+  background-color: rgba(158, 158, 158, 0.2);
+}
+
+.mdlext-light-color-theme .mdl-button:focus:not(:active) {
+  background-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdl-button:active {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-light-color-theme .mdl-button.mdl-button--colored {
+  color: #4CAF50;
+}
+
+.mdlext-light-color-theme .mdl-button.mdl-button--colored:focus:not(:active) {
+  background-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdl-button--raised {
+  background: rgba(158, 158, 158, 0.2);
+}
+
+.mdlext-light-color-theme .mdl-button--raised:active {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-light-color-theme .mdl-button--raised:focus:not(:active) {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored {
+  background: #4CAF50;
+  color: #C8E6C9;
+}
+
+.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored:hover {
+  background-color: #3d8b40;
+}
+
+.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored:active {
+  background-color: #3d8b40;
+}
+
+.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored:focus:not(:active) {
+  background-color: #3d8b40;
+}
+
+.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored .mdl-ripple {
+  background: #C8E6C9;
+}
+
+.mdlext-light-color-theme .mdl-button--fab {
+  background: rgba(158, 158, 158, 0.2);
+}
+
+.mdlext-light-color-theme .mdl-button--fab:active {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-light-color-theme .mdl-button--fab:focus:not(:active) {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored {
+  background: #E040FB;
+  color: #FAFAFA;
+}
+
+.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored:hover {
+  background-color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored:focus:not(:active) {
+  background-color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored:active {
+  background-color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored .mdl-ripple {
+  background: #FAFAFA;
+}
+
+.mdlext-light-color-theme .mdl-button--icon {
+  color: inherit;
+}
+
+.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary {
+  color: #4CAF50;
+}
+
+.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary .mdl-ripple {
+  background: #C8E6C9;
+}
+
+.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--raised,
+.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--fab {
+  color: #C8E6C9;
+  background-color: #4CAF50;
+}
+
+.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent {
+  color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent .mdl-ripple {
+  background: #FAFAFA;
+}
+
+.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--raised,
+.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--fab {
+  color: #FAFAFA;
+  background-color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-button[disabled][disabled],
+.mdlext-light-color-theme .mdl-button.mdl-button--disabled.mdl-button--disabled {
+  color: rgba(0, 0, 0, 0.26);
+  background-color: transparent;
+}
+
+.mdlext-light-color-theme .mdl-button--fab[disabled][disabled],
+.mdlext-light-color-theme .mdl-button--fab.mdl-button--disabled.mdl-button--disabled {
+  background-color: rgba(0, 0, 0, 0.12);
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-button--raised[disabled][disabled],
+.mdlext-light-color-theme .mdl-button--raised.mdl-button--disabled.mdl-button--disabled {
+  background-color: rgba(0, 0, 0, 0.12);
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-button--colored[disabled][disabled],
+.mdlext-light-color-theme .mdl-button--colored.mdl-button--disabled.mdl-button--disabled {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded {
+  background: transparent;
+  color: #E040FB;
+  /* stylelint-disable */
+  /* stylelint-enable */
+  /**************************** Thumbs ****************************/
+  /* stylelint-disable */
+  /* stylelint-enable */
+  /**************************** 0-value ****************************/
+  /* stylelint-disable */
+  /* stylelint-enable */
+  /**************************** Disabled ****************************/
+  /* stylelint-disable */
+  /* stylelint-enable */
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded::-webkit-slider-runnable-track {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded::-moz-range-track {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-track {
+  background: none;
+  color: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-fill-lower {
+  background: linear-gradient(to right, transparent, transparent 16px, #E040FB 16px, #E040FB 0);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-fill-upper {
+  background: linear-gradient(to left, transparent, transparent 16px, rgba(0, 0, 0, 0.26) 16px, rgba(0, 0, 0, 0.26) 0);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded::-webkit-slider-thumb {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded::-moz-range-thumb {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb {
+  box-shadow: 0 0 0 10px rgba(224, 64, 251, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb {
+  box-shadow: 0 0 0 10px rgba(224, 64, 251, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:active::-webkit-slider-thumb {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:active::-moz-range-thumb {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-thumb {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb {
+  background: radial-gradient(circle closest-side, #E040FB 0%, #E040FB 37.5%, rgba(224, 64, 251, 0.26) 37.5%, rgba(224, 64, 251, 0.26) 100%);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:active::-ms-thumb {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb {
+  border-color: #E040FB;
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb {
+  border-color: rgba(0, 0, 0, 0.26);
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {
+  box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.12);
+  background: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb {
+  box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.12);
+  background: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb {
+  border-color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb {
+  border-color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-thumb {
+  background: radial-gradient(circle closest-side, transparent 0%, transparent 66.67%, rgba(0, 0, 0, 0.26) 66.67%, rgba(0, 0, 0, 0.26) 100%);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb {
+  background: radial-gradient(circle closest-side, rgba(0, 0, 0, 0.12) 0%, rgba(0, 0, 0, 0.12) 25%, rgba(0, 0, 0, 0.26) 25%, rgba(0, 0, 0, 0.26) 37.5%, rgba(0, 0, 0, 0.12) 37.5%, rgba(0, 0, 0, 0.12) 100%);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb {
+  background: radial-gradient(circle closest-side, transparent 0%, transparent 77.78%, rgba(0, 0, 0, 0.26) 77.78%, rgba(0, 0, 0, 0.26) 100%);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb {
+  background: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-moz-range-thumb {
+  background: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {
+  background-color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb {
+  border-color: rgba(0, 0, 0, 0.26);
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb {
+  border-color: rgba(0, 0, 0, 0.26);
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:focus::-ms-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:active::-ms-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-ms-thumb {
+  background: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb {
+  background: radial-gradient(circle closest-side, transparent 0%, transparent 50%, rgba(0, 0, 0, 0.26) 50%, rgba(0, 0, 0, 0.26) 100%);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-ms-fill-lower {
+  background: linear-gradient(to right, transparent, transparent 25px, rgba(0, 0, 0, 0.26) 25px, rgba(0, 0, 0, 0.26) 0);
+}
+
+.mdlext-light-color-theme .mdl-slider__background-flex {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider__background-lower {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-slider__background-upper {
+  background: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-textfield__input {
+  border-bottom-color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-textfield.is-invalid .mdl-textfield__input {
+  border-color: #D32F2F;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__input,
+.mdlext-light-color-theme .mdl-textfield.is-disabled .mdl-textfield__input {
+  background-color: transparent;
+  border-bottom-color: rgba(0, 0, 0, 0.12);
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-textfield__label {
+  color: rgba(0, 0, 0, 0.54);
+}
+
+.mdlext-light-color-theme .mdl-textfield__label::after {
+  background-color: #E040FB;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__label,
+.mdlext-light-color-theme .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-textfield--floating-label.is-focused .mdl-textfield__label,
+.mdlext-light-color-theme .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,
+.mdlext-light-color-theme .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {
+  color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {
+  color: #D32F2F;
+}
+
+.mdlext-light-color-theme .mdl-textfield.is-invalid .mdl-textfield__label::after {
+  background-color: #D32F2F;
+}
+
+.mdlext-light-color-theme .mdl-textfield__error {
+  color: #D32F2F;
+}
+
+.mdlext-light-color-theme .mdl-checkbox__box-outline {
+  border-color: rgba(0, 0, 0, 0.54);
+}
+
+.mdlext-light-color-theme .mdl-checkbox.is-checked .mdl-checkbox__box-outline {
+  border-color: #E040FB;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,
+.mdlext-light-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {
+  border-color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-checkbox__focus-helper {
+  background-color: transparent;
+}
+
+.mdlext-light-color-theme .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {
+  box-shadow: 0 0 0 8px rgba(224, 64, 251, 0.26);
+  background-color: rgba(224, 64, 251, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-checkbox__tick-outline {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {
+  background-color: #E040FB;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,
+.mdlext-light-color-theme .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {
+  background-color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,
+.mdlext-light-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__label {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-checkbox__ripple-container .mdl-ripple {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,
+.mdlext-light-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-radio__outer-circle {
+  border-color: rgba(0, 0, 0, 0.54);
+}
+
+.mdlext-light-color-theme .mdl-radio.is-checked .mdl-radio__outer-circle {
+  border-color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,
+.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__outer-circle {
+  border-color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-radio__inner-circle {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,
+.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__inner-circle {
+  background: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-radio .mdl-radio__label,
+.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__label {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-radio__ripple-container .mdl-ripple {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,
+.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-icon-toggle__label {
+  color: #616161;
+}
+
+.mdlext-light-color-theme .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {
+  color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {
+  background-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {
+  background-color: rgba(224, 64, 251, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-icon-toggle__ripple-container .mdl-ripple {
+  background: #616161;
+}
+
+.mdlext-light-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-switch__track {
+  background: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-switch.is-checked .mdl-switch__track {
+  background: rgba(224, 64, 251, 0.54);
+}
+
+.mdlext-light-color-theme .mdl-switch__track fieldset[disabled] .mdl-switch,
+.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__track {
+  background: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdl-switch__thumb {
+  background: #FAFAFA;
+}
+
+.mdlext-light-color-theme .mdl-switch.is-checked .mdl-switch__thumb {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-switch__thumb fieldset[disabled] .mdl-switch,
+.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__thumb {
+  background: #BDBDBD;
+}
+
+.mdlext-light-color-theme .mdl-switch__focus-helper {
+  background-color: transparent;
+}
+
+.mdlext-light-color-theme .mdl-switch.is-focused .mdl-switch__focus-helper {
+  background-color: rgba(0, 0, 0, 0.1);
+}
+
+.mdlext-light-color-theme .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {
+  box-shadow: 0 0 0 20px rgba(224, 64, 251, 0.26);
+  background-color: rgba(224, 64, 251, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-switch__label fieldset[disabled] .mdl-switch,
+.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__label {
+  color: #BDBDBD;
+}
+
+.mdlext-light-color-theme .mdl-switch__ripple-container .mdl-ripple {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,
+.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-data-table {
+  border-color: rgba(0, 0, 0, 0.12);
+  background-color: #FAFAFA;
+}
+
+.mdlext-light-color-theme .mdl-data-table tbody tr.is-selected {
+  background-color: #EEEEEE;
+}
+
+.mdlext-light-color-theme .mdl-data-table tbody tr:hover {
+  background-color: #EEEEEE;
+}
+
+.mdlext-light-color-theme .mdl-data-table th {
+  color: rgba(0, 0, 0, 0.54);
+}
+
+.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending,
+.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending {
+  color: rgba(0, 0, 0, 0.87);
+}
+
+.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover::before,
+.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending:hover::before {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-menu__outline {
+  background: #FFFFFF;
+}
+
+.mdlext-light-color-theme .mdl-menu__item {
+  color: rgba(0, 0, 0, 0.87);
+  background-color: transparent;
+  outline-color: #BDBDBD;
+}
+
+.mdlext-light-color-theme .mdl-menu__item--full-bleed-divider {
+  border-bottom-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdl-menu__item[disabled],
+.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled] {
+  color: #BDBDBD;
+  background-color: transparent;
+}
+
+.mdlext-light-color-theme .mdl-menu__item[disabled]:hover,
+.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled]:hover {
+  background-color: transparent;
+}
+
+.mdlext-light-color-theme .mdl-menu__item[disabled]:focus,
+.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled]:focus {
+  background-color: transparent;
+}
+
+.mdlext-light-color-theme .mdl-menu__item[disabled] .mdl-ripple,
+.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled] .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-menu__item:hover {
+  background-color: #EEEEEE;
+}
+
+.mdlext-light-color-theme .mdl-menu__item:focus {
+  background-color: #EEEEEE;
+}
+
+.mdlext-light-color-theme .mdl-menu__item:active {
+  background-color: #E0E0E0;
+}
+
+.mdlext-light-color-theme .mdl-card {
+  background: #FAFAFA;
+}
+
+.mdlext-light-color-theme .mdl-card__media {
+  background-color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-card__title {
+  color: rgba(0, 0, 0, 0.87);
+}
+
+.mdlext-light-color-theme .mdl-card__title.mdl-card--border {
+  border-bottom-color: rgba(0, 0, 0, 0.1);
+}
+
+.mdlext-light-color-theme .mdl-card__title-text {
+  color: inherit;
+}
+
+.mdlext-light-color-theme .mdl-card__subtitle-text {
+  color: rgba(0, 0, 0, 0.54);
+}
+
+.mdlext-light-color-theme .mdl-card__supporting-text {
+  color: rgba(0, 0, 0, 0.54);
+}
+
+.mdlext-light-color-theme .mdl-card__actions {
+  background-color: transparent;
+}
+
+.mdlext-light-color-theme .mdl-card__actions.mdl-card--border {
+  border-top-color: rgba(0, 0, 0, 0.1);
+}
+
+.mdlext-light-color-theme .mdlext-selectfield.is-disabled::after {
+  color: rgba(0, 0, 0, 0.12);
+  content: '';
+  width: 0;
+  height: 0;
+  font-size: inherit;
+  line-height: inherit;
+  border-top: 0.5em solid rgba(0, 0, 0, 0.12);
+  border-top-width: 0.5em;
+  border-top-style: solid;
+  border-top-color: rgba(0, 0, 0, 0.12);
+  border-left: 0.35em solid transparent;
+  border-right: 0.35em solid transparent;
+}
+
+.mdlext-light-color-theme .mdlext-selectfield__select {
+  border-bottom-color: rgba(0, 0, 0, 0.26);
+  color: inherit;
+}
+
+.mdlext-light-color-theme .mdlext-selectfield__select option {
+  background-color: #FAFAFA;
+  color: rgba(0, 0, 0, 0.87);
+}
+
+.mdlext-light-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__select {
+  border-color: #D32F2F;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,
+.mdlext-light-color-theme .mdlext-selectfield.is-disabled .mdlext-selectfield__select {
+  background-color: transparent;
+  border-bottom-color: rgba(0, 0, 0, 0.12);
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdlext-selectfield__label {
+  color: rgba(0, 0, 0, 0.54);
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
+  color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {
+  color: #D32F2F;
+}
+
+.mdlext-light-color-theme .mdlext-selectfield__label::after {
+  background-color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {
+  background-color: #D32F2F;
+}
+
+.mdlext-light-color-theme .mdlext-selectfield__error {
+  color: #D32F2F;
+}
+
+.mdlext-menu.mdlext-light-color-theme {
+  background: #FFFFFF;
+}
+
+.mdlext-light-color-theme .mdlext-menu {
+  background: #FFFFFF;
+}
+
+.mdlext-light-color-theme .mdlext-menu__item {
+  color: rgba(0, 0, 0, 0.87);
+  background-color: #FFFFFF;
+}
+
+.mdlext-light-color-theme .mdlext-menu__item:active,
+.mdlext-light-color-theme .mdlext-menu__item[aria-selected='true'] {
+  background-color: #E0E0E0;
+}
+
+.mdlext-light-color-theme .mdlext-menu__item:hover:not([disabled]) {
+  background-color: #EEEEEE;
+}
+
+.mdlext-light-color-theme .mdlext-menu__item:focus {
+  outline-color: #BDBDBD;
+  background-color: #EEEEEE;
+}
+
+.mdlext-light-color-theme .mdlext-menu__item[disabled] {
+  color: #BDBDBD;
+}
+
+.mdlext-light-color-theme .mdlext-menu__item[disabled] > * {
+  color: #BDBDBD;
+}
+
+.mdlext-light-color-theme .mdlext-menu__item-separator {
+  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select {
+  background-color: rgba(250, 250, 250, 0.1);
+  border-color: rgba(0, 0, 0, 0.26);
+  color: inherit;
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:disabled,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:disabled,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:disabled,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:disabled {
+  color: rgba(0, 0, 0, 0.26);
+  background-color: rgba(250, 250, 250, 0.1);
+  border-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:focus,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:focus,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:focus,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:focus {
+  background-color: rgba(225, 225, 225, 0.1);
+  border-color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select {
+  color: inherit;
+  border-color: #D32F2F;
+  background-color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input:focus,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select:focus,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input:focus,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select:focus {
+  border-color: #ab2424;
+  background-color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield::after,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled::after {
+  color: rgba(0, 0, 0, 0.26);
+  content: '';
+  width: 0;
+  height: 0;
+  font-size: inherit;
+  line-height: inherit;
+  border-top: 0.5em solid rgba(0, 0, 0, 0.26);
+  border-top-width: 0.5em;
+  border-top-style: solid;
+  border-top-color: rgba(0, 0, 0, 0.26);
+  border-left: 0.35em solid transparent;
+  border-right: 0.35em solid transparent;
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__input,
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {
+  color: rgba(0, 0, 0, 0.26);
+  background-color: rgba(250, 250, 250, 0.1);
+  border-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label {
+  color: rgba(0, 0, 0, 0.54);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
+  color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label {
+  color: #D32F2F;
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled i,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled .mdl-button,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled i,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled .mdl-button {
+  color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield i,
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-button,
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield i,
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdl-button {
+  color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tab {
+  color: #000000;
+  background-color: rgba(117, 117, 117, 0.2);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tab:focus {
+  outline-color: rgba(109, 109, 109, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tab[aria-expanded='true'] {
+  background-color: rgba(117, 117, 117, 0.3);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tab[aria-selected='true'] {
+  background-color: rgba(117, 117, 117, 0.4);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tab[disabled] {
+  background-color: rgba(117, 117, 117, 0.12);
+  color: rgba(0, 0, 0, 0.26);
+  pointer-events: none;
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tab[disabled] > * {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tab:hover:not([disabled]) {
+  background-color: rgba(117, 117, 117, 0.4);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tab--ripple[aria-selected='true']::before {
+  background: rgba(117, 117, 117, 0.4);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tabpanel {
+  color: inherit;
+  background-color: transparent;
+}
+
+.mdlext-light-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab {
+  border-top: 1px solid rgba(117, 117, 117, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab[aria-selected='true']::after {
+  background-color: rgba(102, 102, 102, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-accordion--vertical .mdlext-accordion__tabpanel {
+  border-top: 1px solid rgba(117, 117, 117, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab {
+  border-left: 1px solid rgba(117, 117, 117, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab[aria-selected='true']::after {
+  background-color: rgba(102, 102, 102, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tabpanel {
+  border-left: 1px solid rgba(117, 117, 117, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__panel:first-child > .mdlext-light-color-theme .mdlext-accordion__tab {
+  border-top-color: transparent;
+  border-left-color: transparent;
+}
+
+.mdlext-light-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab {
+  background-color: rgba(117, 117, 117, 0.12);
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab > * {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tabpanel {
+  opacity: 0.8;
+  filter: blur(1px) grayscale(80%);
+}
+
+/* -------------------------------------------------------------
+   Palette samples. Not part of build
+----------------------------------------------------------------
+
+$mdlext-light-color-primary:          #9E9E9E !default;
+$mdlext-light-color-primary-dark:     #616161 !default;
+$mdlext-light-color-primary-light:    #9E9E9E !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #212121 !default;  // text color on primary/primary dark background
+$mdlext-light-color-accent:           #E040FB !default;
+$mdlext-light-color-accent-light:     #E040FB !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FAFAFA !default;
+
+$mdlext-light-color-primary:          #F5F5F5 !default;
+$mdlext-light-color-primary-dark:     #E0E0E0 !default;
+$mdlext-light-color-primary-light:    #8BC34A !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #000000 !default;  // text color on primary/primary dark background
+$mdlext-light-color-accent:           #FFC107 !default;
+$mdlext-light-color-accent-light:     #FFC107 !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FFFFFF !default;
+
+
+$mdlext-light-color-primary:          #673AB7 !default;
+$mdlext-light-color-primary-dark:     #512DA8 !default;
+$mdlext-light-color-primary-light:    #673AB7 !default;   // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #D1C4E9 !default;   // text color on primary/primary dark background
+$mdlext-light-color-accent:           #4CAF50 !default;
+$mdlext-light-color-accent-light:     #4CAF50 !default;   // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FFFFFF !default;
+
+
+$mdlext-light-color-primary:          #4CAF50 !default;
+$mdlext-light-color-primary-dark:     #388E3C !default;
+$mdlext-light-color-primary-light:    #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #C8E6C9 !default;  // text color on primary/primary dark background
+$mdlext-light-color-accent:           #FF5252 !default;
+$mdlext-light-color-accent-light:     #FF5252 !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FFFFFF !default;
+
+
+$mdlext-light-color-primary:          #4CAF50 !default;
+$mdlext-light-color-primary-dark:     #388E3C !default;
+$mdlext-light-color-primary-light:    #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #C8E6C9 !default;  // text color on primary/primary dark background
+$mdlext-light-color-accent:           #03A9F4 !default;
+$mdlext-light-color-accent-light:     #03A9F4 !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FFFFFF !default;
+
+
+$mdlext-dark-color-primary:           #212121 !default;
+$mdlext-dark-color-primary-dark:      #000000 !default;
+$mdlext-dark-color-primary-light:     #607D8B !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-dark-color-primary-contrast:  #FFFFFF !default;  // text color on primary/primary dark background
+$mdlext-dark-color-accent:            #FF5722 !default;
+$mdlext-dark-color-accent-light:      #FF5722 !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-dark-color-accent-contrast:   #FFFFFF !default;
+
+*/
+
+.mdlext-dark-color-theme {
+  background-color: #303030;
+  color: white;
+}
+
+.mdlext-dark-color-theme a {
+  outline-color: inherit;
+}
+
+.mdlext-dark-color-theme .mdl-color--primary {
+  background-color: #FFC107 !important;
+}
+
+.mdlext-dark-color-theme .mdl-color--primary-contrast {
+  background-color: #FFF8E1 !important;
+}
+
+.mdlext-dark-color-theme .mdl-color--primary-dark {
+  background-color: #FFA000 !important;
+}
+
+.mdlext-dark-color-theme .mdl-color--accent {
+  background-color: #536DFE !important;
+}
+
+.mdlext-dark-color-theme .mdl-color--accent-contrast {
+  background-color: #FFFFFF !important;
+}
+
+.mdlext-dark-color-theme .mdl-color-text--primary {
+  color: #FFC107 !important;
+}
+
+.mdlext-dark-color-theme .mdl-color-text--primary-contrast {
+  color: #FFF8E1 !important;
+}
+
+.mdlext-dark-color-theme .mdl-color-text--primary-dark {
+  color: #FFA000 !important;
+}
+
+.mdlext-dark-color-theme .mdl-color-text--accent {
+  color: #536DFE !important;
+}
+
+.mdlext-dark-color-theme .mdl-color-text--accent-contrast {
+  color: #FFFFFF !important;
+}
+
+.mdlext-dark-color-theme a {
+  color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-badge[data-badge]::after {
+  background: #536DFE;
+  color: #FFFFFF;
+}
+
+.mdlext-dark-color-theme .mdl-badge.mdl-badge--no-background[data-badge]::after {
+  color: #536DFE;
+  background: #FFFFFF;
+}
+
+.mdlext-dark-color-theme .mdl-button {
+  background: transparent;
+  color: #FFFFFF;
+}
+
+.mdlext-dark-color-theme .mdl-button:hover {
+  background-color: rgba(158, 158, 158, 0.2);
+}
+
+.mdlext-dark-color-theme .mdl-button:focus:not(:active) {
+  background-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-dark-color-theme .mdl-button:active {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-dark-color-theme .mdl-button.mdl-button--colored {
+  color: #FFC107;
+}
+
+.mdlext-dark-color-theme .mdl-button.mdl-button--colored:focus:not(:active) {
+  background-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-dark-color-theme .mdl-button--raised {
+  background: rgba(158, 158, 158, 0.2);
+}
+
+.mdlext-dark-color-theme .mdl-button--raised:active {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-dark-color-theme .mdl-button--raised:focus:not(:active) {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored {
+  background: #FFC107;
+  color: #FFF8E1;
+}
+
+.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored:hover {
+  background-color: #d39e00;
+}
+
+.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored:active {
+  background-color: #d39e00;
+}
+
+.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored:focus:not(:active) {
+  background-color: #d39e00;
+}
+
+.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored .mdl-ripple {
+  background: #FFF8E1;
+}
+
+.mdlext-dark-color-theme .mdl-button--fab {
+  background: rgba(158, 158, 158, 0.2);
+}
+
+.mdlext-dark-color-theme .mdl-button--fab:active {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-dark-color-theme .mdl-button--fab:focus:not(:active) {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored {
+  background: #536DFE;
+  color: #FFFFFF;
+}
+
+.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored:hover {
+  background-color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored:focus:not(:active) {
+  background-color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored:active {
+  background-color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored .mdl-ripple {
+  background: #FFFFFF;
+}
+
+.mdlext-dark-color-theme .mdl-button--icon {
+  color: inherit;
+}
+
+.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary {
+  color: #FFC107;
+}
+
+.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary .mdl-ripple {
+  background: #FFF8E1;
+}
+
+.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--raised,
+.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--fab {
+  color: #FFF8E1;
+  background-color: #FFC107;
+}
+
+.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent {
+  color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent .mdl-ripple {
+  background: #FFFFFF;
+}
+
+.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--raised,
+.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--fab {
+  color: #FFFFFF;
+  background-color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-button[disabled][disabled],
+.mdlext-dark-color-theme .mdl-button.mdl-button--disabled.mdl-button--disabled {
+  color: rgba(255, 255, 255, 0.26);
+  background-color: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-button--fab[disabled][disabled],
+.mdlext-dark-color-theme .mdl-button--fab.mdl-button--disabled.mdl-button--disabled {
+  background-color: rgba(255, 255, 255, 0.12);
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-button--raised[disabled][disabled],
+.mdlext-dark-color-theme .mdl-button--raised.mdl-button--disabled.mdl-button--disabled {
+  background-color: rgba(255, 255, 255, 0.12);
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-button--colored[disabled][disabled],
+.mdlext-dark-color-theme .mdl-button--colored.mdl-button--disabled.mdl-button--disabled {
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded {
+  background: transparent;
+  color: #536DFE;
+  /* stylelint-disable */
+  /* stylelint-enable */
+  /* stylelint-disable */
+  /* stylelint-enable */
+  /**************************** 0-value ****************************/
+  /* stylelint-disable */
+  /* stylelint-enable */
+  /**************************** Disabled ****************************/
+  /* stylelint-disable */
+  /* stylelint-enable */
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded::-webkit-slider-runnable-track {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded::-moz-range-track {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-track {
+  background: none;
+  color: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-fill-lower {
+  background: linear-gradient(to right, transparent, transparent 16px, #536DFE 16px, #536DFE 0);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-fill-upper {
+  background: linear-gradient(to left, transparent, transparent 16px, rgba(255, 255, 255, 0.87) 16px, rgba(255, 255, 255, 0.87) 0);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded::-webkit-slider-thumb {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded::-moz-range-thumb {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb {
+  box-shadow: 0 0 0 10px rgba(83, 109, 254, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb {
+  box-shadow: 0 0 0 10px rgba(83, 109, 254, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:active::-webkit-slider-thumb {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:active::-moz-range-thumb {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-thumb {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb {
+  background: radial-gradient(circle closest-side, #536DFE 0%, #536DFE 37.5%, rgba(83, 109, 254, 0.5) 37.5%, rgba(83, 109, 254, 0.5) 100%);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:active::-ms-thumb {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb {
+  border-color: #536DFE;
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb {
+  border-color: rgba(255, 255, 255, 0.87);
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {
+  box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.5);
+  background: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb {
+  box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.5);
+  background: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb {
+  border-color: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb {
+  border-color: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-thumb {
+  background: radial-gradient(circle closest-side, transparent 0%, transparent 66.67%, rgba(255, 255, 255, 0.87) 66.67%, rgba(255, 255, 255, 0.87) 100%);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb {
+  background: radial-gradient(circle closest-side, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0.5) 25%, rgba(255, 255, 255, 0.87) 25%, rgba(255, 255, 255, 0.87) 37.5%, rgba(255, 255, 255, 0.5) 37.5%, rgba(255, 255, 255, 0.5) 100%);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb {
+  background: radial-gradient(circle closest-side, transparent 0%, transparent 77.78%, rgba(255, 255, 255, 0.87) 77.78%, rgba(255, 255, 255, 0.87) 100%);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb {
+  background: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-moz-range-thumb {
+  background: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {
+  background-color: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb {
+  border-color: rgba(255, 255, 255, 0.87);
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb {
+  border-color: rgba(255, 255, 255, 0.87);
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:focus::-ms-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:active::-ms-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-ms-thumb {
+  background: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb {
+  background: radial-gradient(circle closest-side, transparent 0%, transparent 50%, rgba(255, 255, 255, 0.87) 50%, rgba(255, 255, 255, 0.87) 100%);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-ms-fill-lower {
+  background: linear-gradient(to right, transparent, transparent 25px, rgba(255, 255, 255, 0.87) 25px, rgba(255, 255, 255, 0.87) 0);
+}
+
+.mdlext-dark-color-theme .mdl-slider__background-flex {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider__background-lower {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-slider__background-upper {
+  background: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-textfield__input {
+  border-bottom-color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-textfield.is-invalid .mdl-textfield__input {
+  border-color: #FF1744;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__input,
+.mdlext-dark-color-theme .mdl-textfield.is-disabled .mdl-textfield__input {
+  background-color: transparent;
+  border-bottom-color: rgba(255, 255, 255, 0.12);
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-textfield__label {
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-textfield__label::after {
+  background-color: #536DFE;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__label,
+.mdlext-dark-color-theme .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-textfield--floating-label.is-focused .mdl-textfield__label,
+.mdlext-dark-color-theme .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,
+.mdlext-dark-color-theme .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {
+  color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {
+  color: #FF1744;
+}
+
+.mdlext-dark-color-theme .mdl-textfield.is-invalid .mdl-textfield__label::after {
+  background-color: #FF1744;
+}
+
+.mdlext-dark-color-theme .mdl-textfield__error {
+  color: #FF1744;
+}
+
+.mdlext-dark-color-theme .mdl-checkbox__box-outline {
+  border-color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-checkbox.is-checked .mdl-checkbox__box-outline {
+  border-color: #536DFE;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,
+.mdlext-dark-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {
+  border-color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-checkbox__focus-helper {
+  background-color: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {
+  box-shadow: 0 0 0 8px rgba(83, 109, 254, 0.26);
+  background-color: rgba(83, 109, 254, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-checkbox__tick-outline {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {
+  background-color: #536DFE;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,
+.mdlext-dark-color-theme .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {
+  background-color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,
+.mdlext-dark-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__label {
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-checkbox__ripple-container .mdl-ripple {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,
+.mdlext-dark-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-radio__outer-circle {
+  border-color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-radio.is-checked .mdl-radio__outer-circle {
+  border-color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,
+.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__outer-circle {
+  border-color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-radio__inner-circle {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,
+.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__inner-circle {
+  background: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-radio .mdl-radio__label,
+.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__label {
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-radio__ripple-container .mdl-ripple {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,
+.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-icon-toggle__label {
+  color: #616161;
+}
+
+.mdlext-dark-color-theme .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {
+  color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {
+  background-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-dark-color-theme .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {
+  background-color: rgba(83, 109, 254, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-icon-toggle__ripple-container .mdl-ripple {
+  background: #616161;
+}
+
+.mdlext-dark-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-switch__track {
+  background: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-switch.is-checked .mdl-switch__track {
+  background: rgba(83, 109, 254, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-switch__track fieldset[disabled] .mdl-switch,
+.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__track {
+  background: rgba(255, 255, 255, 0.12);
+}
+
+.mdlext-dark-color-theme .mdl-switch__thumb {
+  background: #FAFAFA;
+}
+
+.mdlext-dark-color-theme .mdl-switch.is-checked .mdl-switch__thumb {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-switch__thumb fieldset[disabled] .mdl-switch,
+.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__thumb {
+  background: #FAFAFA;
+}
+
+.mdlext-dark-color-theme .mdl-switch__focus-helper {
+  background-color: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-switch.is-focused .mdl-switch__focus-helper {
+  background-color: rgba(0, 0, 0, 0.1);
+}
+
+.mdlext-dark-color-theme .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {
+  box-shadow: 0 0 0 20px rgba(83, 109, 254, 0.26);
+  background-color: rgba(83, 109, 254, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-switch__label fieldset[disabled] .mdl-switch,
+.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__label {
+  color: #FAFAFA;
+}
+
+.mdlext-dark-color-theme .mdl-switch__ripple-container .mdl-ripple {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,
+.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-data-table {
+  border-color: rgba(255, 255, 255, 0.12);
+  background-color: #303030;
+}
+
+.mdlext-dark-color-theme .mdl-data-table tbody tr.is-selected {
+  background-color: #424242;
+}
+
+.mdlext-dark-color-theme .mdl-data-table tbody tr:hover {
+  background-color: #212121;
+}
+
+.mdlext-dark-color-theme .mdl-data-table th {
+  color: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending,
+.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending {
+  color: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover::before,
+.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending:hover::before {
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-menu__outline {
+  background: #000000;
+}
+
+.mdlext-dark-color-theme .mdl-menu__item {
+  color: rgba(255, 255, 255, 0.87);
+  background-color: transparent;
+  outline-color: #616161;
+}
+
+.mdlext-dark-color-theme .mdl-menu__item--full-bleed-divider {
+  border-bottom-color: rgba(255, 255, 255, 0.2);
+}
+
+.mdlext-dark-color-theme .mdl-menu__item[disabled],
+.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled] {
+  color: #9E9E9E;
+  background-color: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-menu__item[disabled]:hover,
+.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled]:hover {
+  background-color: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-menu__item[disabled]:focus,
+.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled]:focus {
+  background-color: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-menu__item[disabled] .mdl-ripple,
+.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled] .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-menu__item:hover {
+  background-color: #212121;
+}
+
+.mdlext-dark-color-theme .mdl-menu__item:focus {
+  background-color: #212121;
+}
+
+.mdlext-dark-color-theme .mdl-menu__item:active {
+  background-color: #424242;
+}
+
+.mdlext-dark-color-theme .mdl-card {
+  background: #303030;
+}
+
+.mdlext-dark-color-theme .mdl-card__media {
+  background-color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-card__title {
+  color: white;
+}
+
+.mdlext-dark-color-theme .mdl-card__title.mdl-card--border {
+  border-bottom-color: rgba(0, 0, 0, 0.1);
+}
+
+.mdlext-dark-color-theme .mdl-card__title-text {
+  color: inherit;
+}
+
+.mdlext-dark-color-theme .mdl-card__subtitle-text {
+  color: rgba(0, 0, 0, 0.7);
+}
+
+.mdlext-dark-color-theme .mdl-card__supporting-text {
+  color: rgba(255, 255, 255, 0.7);
+}
+
+.mdlext-dark-color-theme .mdl-card__actions {
+  background-color: rgba(255, 255, 255, 0);
+}
+
+.mdlext-dark-color-theme .mdl-card__actions.mdl-card--border {
+  border-top-color: rgba(0, 0, 0, 0.1);
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield.is-disabled::after {
+  color: rgba(255, 255, 255, 0.12);
+  content: '';
+  width: 0;
+  height: 0;
+  font-size: inherit;
+  line-height: inherit;
+  border-top: 0.5em solid rgba(255, 255, 255, 0.12);
+  border-top-width: 0.5em;
+  border-top-style: solid;
+  border-top-color: rgba(255, 255, 255, 0.12);
+  border-left: 0.35em solid transparent;
+  border-right: 0.35em solid transparent;
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield__select {
+  border-bottom-color: rgba(255, 255, 255, 0.26);
+  color: inherit;
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield__select option {
+  background-color: #303030;
+  color: white;
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__select {
+  border-color: #FF1744;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,
+.mdlext-dark-color-theme .mdlext-selectfield.is-disabled .mdlext-selectfield__select {
+  background-color: transparent;
+  border-bottom-color: rgba(255, 255, 255, 0.12);
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield__label {
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
+  color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {
+  color: #FF1744;
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield__label::after {
+  background-color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {
+  background-color: #FF1744;
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield__error {
+  color: #FF1744;
+}
+
+.mdlext-menu.mdlext-dark-color-theme {
+  background: #000000;
+}
+
+.mdlext-dark-color-theme .mdlext-menu {
+  background: #000000;
+}
+
+.mdlext-dark-color-theme .mdlext-menu__item {
+  color: rgba(255, 255, 255, 0.87);
+  background-color: #000000;
+}
+
+.mdlext-dark-color-theme .mdlext-menu__item:active,
+.mdlext-dark-color-theme .mdlext-menu__item[aria-selected='true'] {
+  background-color: #424242;
+}
+
+.mdlext-dark-color-theme .mdlext-menu__item:hover:not([disabled]) {
+  background-color: #212121;
+}
+
+.mdlext-dark-color-theme .mdlext-menu__item:focus {
+  outline-color: #616161;
+  background-color: #212121;
+}
+
+.mdlext-dark-color-theme .mdlext-menu__item[disabled] {
+  color: #9E9E9E;
+}
+
+.mdlext-dark-color-theme .mdlext-menu__item[disabled] > * {
+  color: #9E9E9E;
+}
+
+.mdlext-dark-color-theme .mdlext-menu__item-separator {
+  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select {
+  background-color: rgba(48, 48, 48, 0.1);
+  border-color: rgba(255, 255, 255, 0.26);
+  color: inherit;
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:disabled,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:disabled,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:disabled,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:disabled {
+  color: rgba(255, 255, 255, 0.26);
+  background-color: rgba(48, 48, 48, 0.1);
+  border-color: rgba(255, 255, 255, 0.12);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:focus,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:focus,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:focus,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:focus {
+  background-color: rgba(23, 23, 23, 0.1);
+  border-color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select {
+  color: inherit;
+  border-color: #FF1744;
+  background-color: rgba(255, 23, 68, 0.1);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input:focus,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select:focus,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input:focus,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select:focus {
+  border-color: #e3002c;
+  background-color: rgba(255, 23, 68, 0.1);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield::after,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled::after {
+  color: rgba(255, 255, 255, 0.26);
+  content: '';
+  width: 0;
+  height: 0;
+  font-size: inherit;
+  line-height: inherit;
+  border-top: 0.5em solid rgba(255, 255, 255, 0.26);
+  border-top-width: 0.5em;
+  border-top-style: solid;
+  border-top-color: rgba(255, 255, 255, 0.26);
+  border-left: 0.35em solid transparent;
+  border-right: 0.35em solid transparent;
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__input,
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {
+  color: rgba(255, 255, 255, 0.26);
+  background-color: rgba(48, 48, 48, 0.1);
+  border-color: rgba(255, 255, 255, 0.12);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label {
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
+  color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label {
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label {
+  color: #FF1744;
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled i,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled .mdl-button,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled i,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled .mdl-button {
+  color: rgba(255, 255, 255, 0.12);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield i,
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-button,
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield i,
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdl-button {
+  color: rgba(255, 255, 255, 0.12);
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tab {
+  color: white;
+  background-color: black;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tab:focus {
+  outline-color: #a8a8a8;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tab[aria-expanded='true'] {
+  background-color: rgba(0, 0, 0, 0.9);
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tab[aria-selected='true'] {
+  background-color: rgba(0, 0, 0, 0.6);
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tab[disabled] {
+  background-color: rgba(0, 0, 0, 0.4);
+  color: rgba(255, 255, 255, 0.5);
+  pointer-events: none;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tab[disabled] > * {
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tab:hover:not([disabled]) {
+  background-color: rgba(0, 0, 0, 0.5);
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tab--ripple[aria-selected='true']::before {
+  background: rgba(0, 0, 0, 0.3);
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tabpanel {
+  color: inherit;
+  background-color: transparent;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab {
+  border-top: 1px solid #424242;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab[aria-selected='true']::after {
+  background-color: #a8a8a8;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion--vertical .mdlext-accordion__tabpanel {
+  border-top: 1px solid #424242;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab {
+  border-left: 1px solid #424242;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab[aria-selected='true']::after {
+  background-color: #a8a8a8;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tabpanel {
+  border-left: 1px solid #424242;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__panel:first-child > .mdlext-dark-color-theme .mdlext-accordion__tab {
+  border-top-color: transparent;
+  border-left-color: transparent;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab {
+  background-color: rgba(0, 0, 0, 0.4);
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab > * {
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tabpanel {
+  opacity: 0.8;
+  filter: blur(1px) grayscale(80%);
+}
+
+
+/*# sourceMappingURL=mdl-ext-eqjs.css.map*/
\ No newline at end of file
diff --git a/node_modules/mdl-ext/lib/mdl-ext-eqjs.css.map b/node_modules/mdl-ext/lib/mdl-ext-eqjs.css.map
new file mode 100644
index 0000000..c2c7f12
--- /dev/null
+++ b/node_modules/mdl-ext/lib/mdl-ext-eqjs.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack:///~/material-design-lite/src/_variables.scss","webpack:///webpack:///src/mdl-ext-eqjs-build.scss","webpack:///webpack:///~/material-design-lite/src/_color-definitions.scss","webpack:///webpack:///~/material-design-lite/src/_functions.scss","webpack:///webpack:///~/material-design-lite/src/_mixins.scss","webpack:///webpack:///src/mdl-ext-eqjs.scss","webpack:///webpack:///src/_variables.scss","webpack:///webpack:///src/_functions.scss","webpack:///webpack:///src/aria-expanded-toggle/_aria-expanded-toggle.scss","webpack:///webpack:///src/_mixins.scss","webpack:///webpack:///src/sticky-header/_sticky-header.scss","webpack:///webpack:///src/dialog/dialog.scss","webpack:///webpack:///src/grid/_grid-eqjs.scss","webpack:///webpack:///~/eq.js/sass/_eq.scss","webpack:///webpack:///src/lightboard/_lightboard.scss","webpack:///webpack:///src/lightboard/_lightboard-eqjs.scss","webpack:///webpack:///src/lightbox/_lightbox.scss","webpack:///webpack:///src/carousel/_carousel.scss","webpack:///webpack:///src/selectfield/_selectfield.scss","webpack:///webpack:///src/menu-button/_menu-button.scss","webpack:///webpack:///src/bordered-fields/_bordered-fields.scss","webpack:///webpack:///src/collapsible/_collapsible.scss","webpack:///webpack:///src/accordion/_accordion.scss","webpack:///webpack:///src/color-themes/_color-themes.scss","webpack:///webpack:///src/color-themes/_light-color-theme.scss","webpack:///webpack:///src/color-themes/_dark-color-theme.scss"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GCcG;;ADEH;wCCCwC;;ADExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GCgCG;;ADGH;;AAEA;;;;;;;;;ECQE;;ADKF;;AAEA;;;;;GCEG;;ACzEH;;;;;;;;;;;;;;GDyFG;;ACzEH;;AAikBA;;ACjlBA;;;;;;;;;;;;;;GF6GG;;AD5BH;;AAGA;;AA8BA;;AAgBA;;AAEA;;AAkCA;;AAQA;;AAMA;;AAIA;;AAqBA;;AAOA;;AAQA;;AAYA;;AASA;;AAUA;;AASA;;AAOA;;AAMA;;AAOA;;AAaA;;AAIA;;AAKA;;AASA;;AAYA;;AAYA;;AAgBA;;AAWA;;AAKA;;AAeA;;AA6BA;;AAMA;;AAEA;;AAOA;;AAMA;;AAWA;;AAEA;;AA0BA;;AAKA;;AACA;;;;GC9RG;;ADiTH;;AAQA;;AAGA;;AAUA;;AAMA;;AAqBA;;AA6BA;;AAGA;;AAOA;;AAIA;;AI3kBA;;;;;;;;;;;;;;GHmOG;;AGnNH;;AA+MA;;AA6CA;;AAsBA;;AChSA;;;;;;;;;;;GJsPG;;AKxPH;;;;;;;;;;;;;;GLwQG;;AMnMH;;AAqCA;;AD/CA;;AAUA;;AAWA;;AAEA;;AAoBA;;AAQA;;AAUA;;AA8CA;;AAQA;;AAkDA;;AC3JA;;AAqCA;;AArCA;;AAqCA;;ACxGA;;;;;;;;;;;;;;;;;;GP0TG;;AMvPH;;AAqCA;;AClFA;ECiDE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EAGA;EAGA;EAGA;CRmPD;;AO9TD;EC8EI;EACA;CRoPH;;AAxFC;EQvJI;EACA;CRmPL;;AOpUD;EC6CE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EAGA;EAGA;EAGA;CRmRD;;AQjRC;EACE;EACA;CRoRH;;AA7FC;EQlLI;EACA;CRmRL;;AShYD;;;;;;;;;;;;;;GTgZG;;AKhZH;;;;;;;;;;;;;;GLgaG;;AM3VH;;AAqCA;;AD/CA;;AAUA;;AAWA;;AAEA;;AAoBA;;AAQA;;AAUA;;AA8CA;;AAQA;;AAkDA;;AI3MA;EACE;EACA;EACA;EACA;CTsaD;;ASpaC;EACE;CTuaH;;ASnaD;EAEI;CTqaH;;ASvaD;EAKI;CTsaH;;ASla2C;;EAE1C;EAAA;CTqaD;;ASnaC;;EACE;CTuaH;;AS5aD;;EAQI;CTyaH;;AU1dD;;;;;;;;;;;;;;;;;;GV8eG;;AK9eH;;;;;;;;;;;;;;GL8fG;;AMzbH;;AAqCA;;AD/CA;;AAUA;;AAWA;;AAEA;;AAoBA;;AAQA;;AAUA;;AA8CA;;AAQA;;AAkDA;;AK1MA;EACE;EACA;EACA;EACA;EACA;CVmgBD;;AUjgBC;EACE;CVogBH;;AU5gBD;EAWI;CVqgBH;;AUhhBD;EAWI;CVqgBH;;AUhhBD;EAcI;CVsgBH;;AUlgBD;EACE;IAAK;GVsgBJ;CACF;;AUrgBD;EACE;IAAK;GVygBJ;CACF;;AWpjBD;;;;;;;;;;;;;;;;;GXukBG;;AW5iBH;EACE;EAAA;EACA;MAAA;EACA;EACA;MAAA;CX+iBD;;AWnjBD;EAOI;CXgjBH;;AWvjBD;EAWI;CXgjBH;;AW3jBD;EAeI;MAAA;CXgjBH;;AW/jBD;EAmBI;MAAA;MAAA;CXgjBH;;AWnkBD;EAuBI;MAAA;CXgjBH;;AWvkBD;EA2BI;MAAA;MAAA;CXgjBH;;AW3kBD;EA+BI;CXgjBH;;AW3iBO;EACF;MAAA;CX8iBL;;AW/iBO;EACF;MAAA;CXkjBL;;AWnjBO;EACF;MAAA;CXsjBL;;AWvjBO;EACF;MAAA;CX0jBL;;AW3jBO;EACF;MAAA;CX8jBL;;AW/jBO;EACF;MAAA;CXkkBL;;AWnkBO;EACF;MAAA;CXskBL;;AWvkBO;EACF;MAAA;CX0kBL;;AW3kBO;EACF;MAAA;CX8kBL;;AW/kBO;EACF;MAAA;CXklBL;;AWnlBO;EACF;MAAA;CXslBL;;AWvlBO;EACF;MAAA;CX0lBL;;AW/jBD;ECSI;EACA;CZ0jBH;;AY7nBK;EDmEF;CX8jBH;;AW5jBO;EACF;EAjCJ;CXimBD;;AW7kBD;EAkBM;CX+jBL;;AWjlBD;EAwBQ;MAAA;CX6jBP;;AWrlBD;EAwBQ;MAAA;CXikBP;;AWzlBD;EAwBQ;MAAA;CXqkBP;;AW7lBD;EAwBQ;MAAA;CXykBP;;AWjmBD;EAwBQ;MAAA;CX6kBP;;AWrmBD;EAwBQ;MAAA;CXilBP;;AWzmBD;EAwBQ;MAAA;CXqlBP;;AWtlBS;EACF;MAAA;CXylBP;;AW1lBS;EACF;MAAA;CX6lBP;;AW9lBS;EACF;MAAA;CXimBP;;AWlmBS;EACF;MAAA;CXqmBP;;AW7nBD;EAwBQ;MAAA;CXymBP;;AWjoBD;;EApBE;CX0pBD;;AWtoBD;;EApBE;CX+pBD;;AW3oBD;;EApBE;CXoqBD;;AWhpBD;;EApBE;CXyqBD;;AWrpBD;;EApBE;CX8qBD;;AWpnBS;;EA1DR;CXmrBD;;AW/pBD;;EApBE;CXwrBD;;AWpqBD;;EApBE;CX6rBD;;AWzqBD;;EApBE;CXksBD;;AW9qBD;;EApBE;CXusBD;;AWnrBD;;EApBE;CX4sBD;;AWxrBD;;EApBE;CXitBD;;AW7rBD;;EAdE;CXgtBD;;AWppBS;;EA5DR;CXqtBD;;AWzpBS;;EA5DR;CX0tBD;;AWxpBG;EACE;CX2pBL;;AWzpBS;EACF;EAlEN;CX+tBD;;AWjqBG;;EA9DF;CXouBD;;AW5pBW;;EAxEV;CXyuBD;;AW3qBG;;EA9DF;CX8uBD;;AWhrBG;;EA9DF;CXmvBD;;AWnqBW;;EAhFV;CXwvBD;;AW1rBG;;EA9DF;CX6vBD;;AW/rBG;;EA9DF;CXkwBD;;AWlrBW;;EAhFV;CXuwBD;;AWzsBG;;EA9DF;CX4wBD;;AW9sBG;;EA9DF;CXixBD;;AWjsBW;;EAhFV;CXsxBD;;AWtsBW;;EAhFV;CX2xBD;;AW7tBG;;EAxDF;CX0xBD;;AWxsBW;;EAlFV;CX+xBD;;AWvuBG;;EAxDF;CXoyBD;;AYz1BK;EDiJF;CX4sBH;;AW1sBO;EACF;EA/GJ;CX6zBD;;AWzyBD;EAgGM;CX6sBL;;AWxsBS;EACF;MAAA;CX2sBP;;AWjzBD;EAsGQ;MAAA;CX+sBP;;AWrzBD;EAsGQ;MAAA;CXmtBP;;AWzzBD;EAsGQ;MAAA;CXutBP;;AW7zBD;EAsGQ;MAAA;CX2tBP;;AWj0BD;EAsGQ;MAAA;CX+tBP;;AWr0BD;EAsGQ;MAAA;CXmuBP;;AWz0BD;EAsGQ;MAAA;CXuuBP;;AWxuBS;EACF;MAAA;CX2uBP;;AW5uBS;EACF;MAAA;CX+uBP;;AWhvBS;EACF;MAAA;CXmvBP;;AWpvBS;EACF;MAAA;CXuvBP;;AW71BD;;EApBE;CXs3BD;;AWl2BD;;EApBE;CX23BD;;AWv2BD;;EApBE;CXg4BD;;AW52BD;;EApBE;CXq4BD;;AWj3BD;;EApBE;CX04BD;;AWt3BD;;EApBE;CX+4BD;;AW33BD;;EApBE;CXo5BD;;AW5wBS;;EAxIR;CXy5BD;;AWjxBS;;EAxIR;CX85BD;;AW14BD;;EApBE;CXm6BD;;AW/4BD;;EApBE;CXw6BD;;AWp5BD;;EApBE;CX66BD;;AWz5BD;;EAdE;CX46BD;;AW95BD;;EAdE;CXi7BD;;AWvyBS;;EA1IR;CXs7BD;;AW5yBS;;EA1IR;CX27BD;;AWjzBS;;EA1IR;CXg8BD;;AWtzBS;;EA1IR;CXq8BD;;AWv7BD;;EAdE;CX08BD;;AYr/BK;ED4LA;CX6zBL;;AW3zBS;EACF;EAhJN;CX+8BD;;AWn0BG;;EA5IF;CXo9BD;;AWx0BG;;EA5IF;CXy9BD;;AWn0BW;;EAtJV;CX89BD;;AWl1BG;;EA5IF;CXm+BD;;AWv1BG;;EA5IF;CXw+BD;;AWl1BW;;EAtJV;CX6+BD;;AWj2BG;;EA5IF;CXk/BD;;AWt2BG;;EA5IF;CXu/BD;;AWz1BW;;EA9JV;CX4/BD;;AWh3BG;;EA5IF;CXigCD;;AWn2BW;;EA9JV;CXsgCD;;AWx2BW;;EA9JV;CX2gCD;;AW/3BG;;EAtIF;CX0gCD;;AWp4BG;;EAtIF;CX+gCD;;AW/2BW;;EAhKV;CXohCD;;AW94BG;;EAtIF;CXyhCD;;AWn5BG;;EAtIF;CX8hCD;;AW93BW;;EAhKV;CXmiCD;;AW75BG;;EAtIF;CXwiCD;;AY7lCK;ED+NF;CXk4BH;;AWxiCD;EAyKM;EA7LJ;CXikCD;;AWh4BO;EACF;CXm4BL;;AW93BS;EACF;MAAA;CXi4BP;;AWl4BS;EACF;MAAA;CXq4BP;;AWt4BS;EACF;MAAA;CXy4BP;;AW7jCD;EAoLQ;MAAA;CX64BP;;AWjkCD;EAoLQ;MAAA;CXi5BP;;AWrkCD;EAoLQ;MAAA;CXq5BP;;AWzkCD;EAoLQ;MAAA;CXy5BP;;AW7kCD;EAoLQ;MAAA;CX65BP;;AWjlCD;EAoLQ;MAAA;CXi6BP;;AWrlCD;EAoLQ;MAAA;CXq6BP;;AWt6BS;EACF;MAAA;CXy6BP;;AW16BS;EACF;MAAA;CX66BP;;AWv6BS;;EA9MR;CX0nCD;;AW56BS;;EA9MR;CX+nCD;;AW3mCD;;EApBE;CXooCD;;AWhnCD;;EApBE;CXyoCD;;AWrnCD;;EApBE;CX8oCD;;AWh8BS;;EA9MR;CXmpCD;;AWr8BS;;EA9MR;CXwpCD;;AW18BS;;EA9MR;CX6pCD;;AW/8BS;;EA9MR;CXkqCD;;AW9oCD;;EApBE;CXuqCD;;AWnpCD;;EApBE;CX4qCD;;AWxpCD;;EApBE;CXirCD;;AW7pCD;;EAdE;CXgrCD;;AWlqCD;;EAdE;CXqrCD;;AWvqCD;;EAdE;CX0rCD;;AW5qCD;;EAdE;CX+rCD;;AW/+BS;;EAhNR;CXosCD;;AWp/BS;;EAhNR;CXysCD;;AWz/BS;;EAhNR;CX8sCD;;AW9/BS;;EAhNR;CXmtCD;;AWrsCD;;EAdE;CXwtCD;;AW1sCD;;EAdE;CX6tCD;;AW/sCD;;EAdE;CXkuCD;;AY7wCK;EDkQA;CX+gCL;;AWhhCG;EAII;EAtNN;CXuuCD;;AW3gCW;;EA5NV;CX4uCD;;AW1hCG;;EAlNF;CXivCD;;AW/hCG;;EAlNF;CXsvCD;;AW1hCW;;EA5NV;CX2vCD;;AW/hCW;;EA5NV;CXgwCD;;AW9iCG;;EAlNF;CXqwCD;;AWziCW;;EA5NV;CX0wCD;;AWxjCG;;EAlNF;CX+wCD;;AW7jCG;;EAlNF;CXoxCD;;AWxjCW;;EA5NV;CXyxCD;;AWvkCG;;EAlNF;CX8xCD;;AW5kCG;;EAlNF;CXmyCD;;AW/jCW;;EA9NV;CXkyCD;;AWtlCG;;EA5MF;CXuyCD;;AW3lCG;;EA5MF;CX4yCD;;AW9kCW;;EA9NV;CXizCD;;AWrmCG;;EA5MF;CXszCD;;AWxlCW;;EA9NV;CX2zCD;;AW/mCG;;EA5MF;CXg0CD;;AWpnCG;;EA5MF;CXq0CD;;AWvmCW;;EA9NV;CX00CD;;AW9nCG;;EA5MF;CX+0CD;;AWnoCG;;E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;;GhB+8DG;;AgBv8DH;EACE;ChB08DD;;AgBv8DD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ChB08DD;;AgBv8DD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ChB08DD;;AgBr8DG;;EAIE;EACA;ChBs8DL;;AgBx9DD;;EAwBI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ChBq8DH;;AgBt+DD;EAsCI;ChBo8DH;;AgB1+DD;EA0CI;EACA;EACA;EACA;EACA;ChBo8DH;;AgBl/DD;EAiDM;EACA;ChBq8DL;;AgBv/DD;EAsDM;Eb7EF;EAgIF;EACA;EACA;EACA;EanDI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ChBw8DL;;AgB3gED;EA0EQ;EACA;ChBq8DP;;AgBhhED;EAiFI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ChBm8DH;;AgBj8DK;EACA;ChBo8DL;;AiB3kED;;;;;;;;;;;;;;GjB2lEG;;AiB3kEH;;;;;;;;GjBqlEG;;AMhiEH;;AAqCA;;AWzEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CjB2kED;;AiBnlED;EAYI;EACA;CjB2kEH;;AiBvkEC;ETzCA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKE;EACA;ES8BA;EACA;EACA;EACA;EACA;CjBmlEH;;AiB9kEC;EACE;ETtDF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKE;EACA;CRooEH;;AiBtlED;EACE;CjBylED;;AiBrlED;EACE;CjBwlED;;AiBplED;EACE;EACA;EACA;CjBulED;;AiBnlED;EAGE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CjBklED;;AiB3mED;EA6BI;EACA;CjBklEH;;AiBhnED;EAmCI;EACA;CjBilEH;;AiB9kEC;EACE;CjBilEH;;AiB9kEgC;EAC7B;CjBilEH;;AiB9kEC;EACE;EACA;CjBilEH;;AiB9kEC;;EAEE;EACA;EACA;CjBilEH;;AiB9kEC;EACE;EACA;EACA;CjBilEH;;AiB5kED;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CjB+kED;;AiB7kE8B;;EAE3B;CjBglEH;;AiB5kEC;Ed+GA;EACA;CHi+DD;;AiB7kEC;EACE;CjBglEH;;AiB7kEC;;EAEE;CjBglEH;;AiB7kEgD;;;EAG7C;EACA;EACA;EACA;CjBglEH;;AiB7kEC;;;EAGE;CjBglEH;;AiB7kEC;EACE;EACA;CjBglEH;;AiB5kEC;EACE;EACA;EACA;EACA;EACA;EACA;EduEF;EACA;EcrEE;EACA;CjB+kEH;;AiB5kEgC;EAC7B;EACA;EACA;CjB+kEH;;AiB5kEC;EACE;CjB+kEH;;AiB1kED;EACE;EACA;EACA;EACA;EACA;EACA;CjB6kED;;AiB3kEgC;EAC7B;CjB8kEH;;AiBzkED;EACE;EACA;EACA;EdmCA;EACA;Ec5BA;CjBukED;;AiBrkEC;;EAME;CjBokEH;;AiBvlED;EAsBI;CjBqkEH;;AkBj1ED;;;;;;;;;;;;;;;;;;GlBq2EG;;AkBj1EH;;;;;;;;;ElB41EE;;AkBj1EF;EACE;EfdE;EAqKF;EACA;EACA;EACA;EexJA;EACA;EACA;EACA;EACA;EAAA;EACA;MAAA;EACA;MAAA;ClBw1ED;;AkBj2ED;EAYI;EACA;ClBy1EH;;AkBt1EG;EACA;ClBy1EH;;AkB12ED;EAqBI;ClBy1EH;;AkBp1ED;EACE;EACA;EACA;EACA;ClBu1ED;;AkBp1ED;;EAEE;EACA;EACA;EACA;EACA;EAAA;ClBu1ED;;AkBp1ED;EACE;EACA;EACA;EACA;EACA;Ef4JA;Ee1JA;EAAA;EACA;MAAA;EACA;EACA;EACA;ClBu1ED;;AkBl2ED;EAcI;EACA;ClBw1EH;;AkBv2ED;EVxCE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EUqDE;ClB+1EH;;AkB51EC;EfsCA;EACA;EACA;EACA;EevCE;EACA;EACA;EACA;EACA;MA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;EACA;CrBg7FH;;AqB96FK;EACA;CrBi7FL;;AqB17FD;EAaI;EACA;CrBi7FH;;AqB56FD;EACE;IACE;IACA;GrB+6FD;;EqB76FD;IACE;IACA;GrBg7FD;;EqB96FD;IACE;IACA;GrBi7FD;CACF;;AqB96FD;;;;;;;;;;ErB07FE;;AqB96FF;EACE;IAAK;GrBk7FJ;;EqBj7FD;IAAM;GrBq7FL;;EqBp7FD;IAAM;GrBw7FL;;EqBv7FD;IAAO;GrB27FN;CACF;;AqBz7FD;EACE;IAAK;GrB67FJ;;EqB57FD;IAAM;GrBg8FL;;EqB/7FD;IAAM;GrBm8FL;;EqBl8FD;IAAO;GrBs8FN;CACF;;AqBp8FD;;;;;;;;;;ErBg9FE;;AqBp8FF;EACE;IAAK;GrBw8FJ;;EqBv8FD;IAAM;GrB28FL;;EqB18FD;IAAM;GrB88FL;;EqB78FD;IAAO;GrBi9FN;CACF;;AqB/8FD;EACE;IAAK;GrBm9FJ;;EqBl9FD;IAAM;GrBs9FL;;EqBr9FD;IAAM;GrBy9FL;;EqBx9FD;IAAO;GrB49FN;CACF;;AsBt2GD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EtBg6GE;;AuB95GF;EACE;EACA;CvBi6GD;;AuBn6GD;EAKI;CvBk6GH;;AuB55GD;EAGI;CvB65GH;;AuBh6GD;EAOI;CvB65GH;;AuBp6GD;EAWI;CvB65GH;;AuB15GC;EACE;CvB65GH;;AuB56GD;EAmBI;CvB65GH;;AuBh7GD;EAuBI;CvB65GH;;AuB15GC;EACE;CvB65GH;;AuB15GC;EACE;CvB65GH;;AuB57GD;EAmCI;CvB65GH;;AuB15GC;EACE;CvB65GH;;AuBt5GD;EAEI;CvBw5GH;;AuBj5GD;EAIM;EACA;CvBi5GL;;AuBt5GD;EAUQ;EACA;CvBg5GP;;AuBv4GD;EAGI;EACA;CvBw4GH;;AuB14GC;EAKI;CvBy4GL;;AuB94GC;EASI;CvBy4GL;;AuBp5GD;EAeM;CvBy4GL;;AuBt5GC;EAiBI;CvBy4GL;;AuB15GC;EAoBM;CvB04GP;;AuBp4GC;EACE;CvBu4GH;;AuBx4GC;EAII;CvBw4GL;;AuB54GC;EAQI;CvBw4GL;;AuB56GD;EAwCM;EACA;CvBw4GL;;AuBj7GD;EA4CQ;CvBy4GP;;AuBz5GC;EAoBM;CvBy4GP;;AuBz7GD;EAoDQ;CvBy4GP;;AuB77GD;EAwDQ;CvBy4GP;;AuBj8GD;EAgEI;CvBq4GH;;AuBr8GD;EAmEM;CvBs4GL;;AuB14GC;EAQI;CvBs4GL;;AuB78GD;EA2EM;EACA;CvBs4GL;;AuBl9GD;EA+EQ;CvBu4GP;;AuBv5GC;EAoBM;CvBu4GP;;AuB19GD;EAuFQ;CvBu4GP;;AuBp4GO;EACA;CvBu4GP;;AuBl+GD;EAmGI;CvBm4GH;;AuBt+GD;EAyGI;CvBi4GH;;AuB/3GK;EACA;CvBk4GL;;AuB9+GD;;EAgHM;EACA;CvBm4GL;;AuBp/GD;EAsHI;CvBk4GH;;AuBx/GD;EAyHM;CvBm4GL;;AuBv4GC;;EAQI;EACA;CvBo4GL;;AuB93GC;;EAII;EACA;CvB+3GL;;AuBxgHD;;EAgJQ;EACA;CvB63GP;;AuB9gHD;;EAyJQ;EACA;CvB03GP;;AuBh5GC;;EA6BM;CvBw3GP;;AuB/2GC;EAGI;EACA;EAeA;EAgBA;EAGA;EA6BA;EAQA;EAOA;EA8BA;EA0BA;EAMA;EAsCA;EAkBA;CvBurGL;;AuBh4GD;EAQQ;CvB43GP;;AuBp4GD;EAYQ;CvB43GP;;AuBv4GC;EAeM;EACA;CvB43GP;;AuB74GD;EAsBQ;CvB23GP;;AuBj5GD;EA8BQ;CvBu3GP;;AuBr5GD;EAyCQ;CvBg3GP;;AuBx5GC;EA4CM;CvBg3GP;;AuB75GD;EAiDQ;CvBg3GP;;AuBj6GD;EAqDQ;CvBg3GP;;AuBr6GD;EAyDQ;CvBg3GP;;AuBz6GD;EA6DQ;CvBg3GP;;AuB76GD;EAiEQ;CvBg3GP;;AuBj7GD;EAsEQ;CvB+2GP;;AuBr7GD;EA+EQ;CvB02GP;;AuBz7GD;EAsFQ;EACA;CvBu2GP;;AuB77GC;EA0FM;EACA;CvBu2GP;;AuBn8GD;EAgGQ;EACA;CvBu2GP;;AuBx8GD;EAqGQ;EACA;CvBu2GP;;AuB58GC;EAyGM;CvBu2GP;;AuBj9GD;EA8GQ;CvBu2GP;;AuBr9GD;EAmHQ;CvBs2GP;;AuBx9GC;EA0HM;CvBk2GP;;AuB79GD;EAqIQ;CvB41GP;;AuBj+GD;EA8IQ;CvBu1GP;;AuBr+GD;;;EAsJQ;CvBq1GP;;AuB3+GD;;;EA4JQ;CvBq1GP;;AuBl1GiD;EAC1C;CvBq1GP;;AuBp/GC;;;EAqKM;EACA;CvBq1GP;;AuB3/GC;;;EA4KM;EACA;CvBq1GP;;AuBngHD;;;EAoLQ;CvBq1GP;;AuBzgHD;;;EA2LQ;CvBo1GP;;AuB/gHD;EAmMQ;CvBg1GP;;AuBnhHD;EA+MI;CvBw0GH;;AuBvhHD;EAmNI;CvBw0GH;;AuB3hHD;EAwNI;CvBu0GH;;AuBh0GD;EAGI;CvBi0GH;;AuBp0GD;EAMI;CvBk0GH;;AuBh0GmC;;EAEhC;EACA;EACA;CvBm0GH;;AuB/0GD;EAeI;CvBo0GH;;AuBn1GD;EAkBI;CvBq0GH;;AuBn0GmC;;EAEhC;CvBs0GH;;AuBp0G2C;;;EAGxC;CvBu0GH;;AuBr0G2C;EACxC;CvBw0GH;;AuBt2GD;EAiCI;CvBy0GH;;AuB12GD;EAoCI;CvB00GH;;AuBn0GD;EAGI;CvBo0GH;;AuBv0GD;EAMI;CvBq0GH;;AuBn0GkC;;EAE/B;CvBs0GH;;AuBn0GC;EACE;CvBs0GH;;AuBp0GqC;EAClC;EACA;CvBu0GH;;AuBz1GD;EAsBI;CvBu0GH;;AuB71GD;EAyBI;CvBw0GH;;AuBt0G6C;;EAE1C;CvBy0GH;;AuBt2GD;;EAkCI;CvBy0GH;;AuBt0GiC;EAC9B;CvBy0GH;;AuB/2GD;;EA0CI;CvB00GH;;AuBn0GD;EAEI;CvBq0GH;;AuBv0GD;EAKI;CvBs0GH;;AuB30GD;;EASI;CvBu0GH;;AuBp0GC;EACE;CvBu0GH;;AuBr0G+B;;EAE5B;CvBw0GH;;AuBr0G+B;;EAE5B;CvBw0GH;;AuB91GD;EA0BI;CvBw0GH;;AuBt0G4D;;EAEzD;CvBy0GH;;AuBn0GD;EAEI;CvBq0GH;;AuBv0GD;EAKI;CvBs0GH;;AuB30GD;EAQI;CvBu0GH;;AuB/0GD;EAWI;CvBw0GH;;AuBn1GD;EAcI;CvBy0GH;;AuBv0GoC;EACjC;CvB00GH;;AuB31GD;EAoBI;CvB20GH;;AuBp0GD;EAGI;CvBq0GH;;AuBx0GD;EAMI;CvBs0GH;;AuB50GD;;EAUI;CvBu0GH;;AuBj1GD;EAcI;CvBu0GH;;AuBr1GD;EAiBI;CvBw0GH;;AuBt0GuC;;EAEpC;CvBy0GH;;AuBt0GC;EACE;CvBy0GH;;AuBv0GwB;EACrB;CvB00GH;;AuBt2GD;EA+BI;EACA;CvB20GH;;AuBx0GuC;;EAEpC;CvB20GH;;AuBh3GD;EAyCI;CvB20GH;;AuBz0G8D;;EAE3D;CvB40GH;;AuBr0GD;EAGI;EACA;CvBs0GH;;AuBn0GK;EAEI;CvBq0GT;;AuB90GD;EAYU;CvBs0GT;;AuBl1GD;EAiBM;CvBq0GL;;AuBt0GG;;EAKI;CvBs0GP;;AuB30GG;;EASQ;CvBu0GX;;AuB5zGD;EAGI;CvB6zGH;;AuBh0GD;EAOI;EACA;EACA;CvB6zGH;;AuBt0GD;EAYM;CvB8zGL;;AuB10GD;;EAiBM;EACA;CvB8zGL;;AuBh1GD;;EAqBQ;CvBg0GP;;AuBr1GD;;EAyBQ;CvBi0GP;;AuB9zGO;;EACA;CvBk0GP;;AuBz1GC;EA4BI;CvBi0GL;;AuB71GC;EAgCI;CvBi0GL;;AuBv2GD;EA0CM;CvBi0GL;;AuBzzGD;EAGI;CvB0zGH;;AuB7zGD;EAOI;CvB0zGH;;AuBj0GD;EAWI;CvB0zGH;;AuBr0GD;EAcM;CvB2zGL;;AuBvzGC;EACE;CvB0zGH;;AuB70GD;EAuBI;CvB0zGH;;AuBj1GD;EA2BI;CvB0zGH;;AuBr1GD;EA+BI;CvB0zGH;;AuBz1GD;EAkCM;CvB2zGL;;AuBnzGD;EAGI;EfzyBF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKE;EACA;CR0lIH;;AuBl0GD;EAQI;EACA;CvB8zGH;;AuBv0GD;EAYM;EACA;CvB+zGL;;AuB5zGgC;EAC7B;CvB+zGH;;AuBh1GD;;EAqBI;EACA;EACA;CvBg0GH;;AuBv1GD;EA2BI;CvBg0GH;;AuB31GD;;EA+BI;CvBi0GH;;AuBh2GD;;;;EAqCI;CvBk0GH;;AuBv2GD;EAwCI;CvBm0GH;;AuB32GD;EA2CI;CvBo0GH;;AuB/2GD;EA8CI;CvBq0GH;;AuBn3GD;EAkDI;CvBq0GH;;AuB/zGD;EACE;CvBk0GD;;AuB/zGD;EAGI;CvBg0GH;;AuBn0GD;EAMM;EACA;CvBi0GL;;AuBt0GC;;EASM;CvBk0GP;;AuB30GC;EAYM;CvBm0GP;;AuB/0GC;EAeM;EACA;CvBo0GP;;AuBt1GD;EAqBQ;CvBq0GP;;AuB11GD;EAwBU;CvBs0GT;;AuB51GC;EA2BI;CvBq0GL;;AuB7zGD;;;;EASQ;EACA;EACA;CvB2zGP;;AuBt0GD;;;;EAcU;EACA;EACA;CvB+zGT;;AuB/0GD;;;;EAmBU;EACA;CvBm0GT;;AuBv1GD;;;;EA0BU;EACA;EACA;CvBo0GT;;AuBx0GO;;;;EAOI;EACA;CvBw0GX;;AuBx2GD;;EAwCM;Ef/6BJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKE;EACA;CRivIH;;AuBx3GD;;EA8CM;EACA;EACA;CvB+0GL;;AuB/3GD;;;;EAwDQ;CvB80GP;;AuBr0GO;;;;;;;;;;;;;;;;;;;;;;;;EAEE;CvB81GT;;AuBx1GO;;;;;;;;EAEE;CvBi2GT;;AuB56GD;;;;;;;;EAmFU;CvBo2GT;;AuBv7GD;;EA0FM;CvBk2GL;;AuB57GD;;;;EAkGQ;CvBi2GP;;AuBn8GD;;;;EAyGQ;CvBi2GP;;AuBx1GD;EAKM;EACA;CvBu1GL;;AuB31GC;EAOM;CvBw1GP;;AuB/1GC;EAUM;CvBy1GP;;AuBn2GC;EAaM;CvB01GP;;AuBz2GD;EAkBQ;EACA;EACA;CvB21GP;;AuB/2GD;EAuBU;CvB41GT;;AuBn3GD;EA2BQ;CvB41GP;;AuBr3GC;EA6BQ;CvB41GT;;AuBz3GC;EAmCI;EACA;CvB01GL;;AuBh4GD;EAgDQ;CvBo1GP;;AuBp4GD;EAmDU;CvBq1GT;;AuBx4GD;EAuDQ;CvBq1GP;;AuB54GD;EAkEQ;CvB80GP;;AuBh5GD;EAqEU;CvB+0GT;;AuBp5GD;EAyEQ;CvB+0GP;;AuBx5GD;EAkFM;EACA;CvB00GL;;AuBn0GG;EACE;EACA;CvBs0GL;;AuBl6GD;EA+FQ;CvBu0GP;;AuBt6GD;EAmGM;EACA;CvBu0GL;;AsB76ID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EtBu+IE;;AwBr+IF;EACE;EACA;CxBw+ID;;AwB1+ID;EAII;CxB0+IH;;AwBr+ID;EAGI;CxBs+IH;;AwBn+IC;EACE;CxBs+IH;;AwBn+IC;EACE;CxBs+IH;;AwBj/ID;EAeI;CxBs+IH;;AwBn+IC;EACE;CxBs+IH;;AwBz/ID;EAuBI;CxBs+IH;;AwB7/ID;EA2BI;CxBs+IH;;AwBn+IC;EACE;CxBs+IH;;AwBn+IC;EACE;CxBs+IH;;AwBzgJD;EAuCI;CxBs+IH;;AwBh+ID;EAEI;CxBk+IH;;AwB39ID;EAIM;EACA;CxB29IL;;AwB/9IC;EASM;EACA;CxB09IP;;AwBj9ID;EAGI;EACA;CxBk9IH;;AwBt9ID;EAOM;CxBm9IL;;AwB19ID;EAWM;CxBm9IL;;AwB59IC;EAaI;CxBm9IL;;AwBl+ID;EAmBM;CxBm9IL;;AwBt+ID;EAsBQ;CxBo9IP;;AwB1+ID;EA6BI;CxBi9IH;;AwB9+ID;EAgCM;CxBk9IL;;AwBl/ID;EAoCM;CxBk9IL;;AwB19IC;EAYI;EACA;CxBk9IL;;AwB3/ID;EA4CQ;CxBm9IP;;AwB//ID;EAgDQ;CxBm9IP;;AwBv+IC;EAwBM;CxBm9IP;;AwBvgJD;EAwDQ;CxBm9IP;;AwB58IC;EACE;CxB+8IH;;AwBh9IC;EAII;CxBg9IL;;AwBnhJD;EAuEM;CxBg9IL;;AwBx9IC;EAYI;EACA;CxBg9IL;;AwB5hJD;EA+EQ;CxBi9IP;;AwBhiJD;EAmFQ;CxBi9IP;;AwBr+IC;EAwBM;CxBi9IP;;AwBxiJD;EA2FQ;CxBi9IP;;AwB18IC;EACE;CxB68IH;;AwBx8IC;EACE;CxB28IH;;AwBpjJD;EA4GM;CxB48IL;;AwBh9IC;;EAQI;EACA;CxB68IL;;AwB9jJD;EAsHI;CxB48IH;;AwB18IK;EACA;CxB68IL;;AwBtkJD;;EA6HM;EACA;CxB88IL;;AwB5kJD;;EAwIM;EACA;CxBy8IL;;AwBllJD;;EAgJQ;EACA;CxBu8IP;;AwBp9IC;;EAqBM;EACA;CxBo8IP;;AwB9lJD;;EAiKQ;CxBk8IP;;AwBz7ID;EAKM;EACA;EAeA;EAmBA;EA8BA;EAQA;EAOA;EA8BA;EA0BA;EAMA;EAsCA;EAkBA;CxB6vIL;;AwBt8IC;EAOM;CxBm8IP;;AwB58ID;EAaQ;CxBm8IP;;AwBh9ID;EAiBQ;EACA;CxBm8IP;;AwBr9ID;EAuBQ;CxBk8IP;;AwBv9IC;EA+BM;CxB47IP;;AwB79ID;EA2CQ;CxBs7IP;;AwB/9IC;EA6CM;CxBs7IP;;AwBr+ID;EAmDQ;CxBs7IP;;AwBz+ID;EAuDQ;CxBs7IP;;AwB7+ID;EA2DQ;CxBs7IP;;AwBj/ID;EA+DQ;CxBs7IP;;AwBr/ID;EAmEQ;CxBs7IP;;AwBv/IC;EAsEM;CxBq7IP;;AwB3/IC;EA+EM;CxBg7IP;;AwBjgJD;EAwFQ;EACA;CxB66IP;;AwBpgJC;EA2FM;EACA;CxB66IP;;AwB3gJD;EAkGQ;EACA;CxB66IP;;AwBhhJD;EAuGQ;EACA;CxB66IP;;AwBrhJD;EA4GQ;CxB66IP;;AwBzhJD;EAgHQ;CxB66IP;;AwB7hJD;EAqHQ;CxB46IP;;AwBjiJD;EA6HQ;CxBw6IP;;AwBriJD;EAuIQ;CxBk6IP;;AwBziJD;EAgJQ;CxB65IP;;AwB7iJD;;;EAwJQ;CxB25IP;;AwBnjJD;;;EA8JQ;CxB25IP;;AwBx5IiD;EAC1C;CxB25IP;;AwB7jJD;;;EAwKQ;EACA;CxB25IP;;AwBpkJD;;;EA+KQ;EACA;CxB25IP;;AwBzkJC;;;EAoLM;CxB25IP;;AwBjlJD;;;EA6LQ;CxB05IP;;AwBvlJD;EAqMQ;CxBs5IP;;AwB3lJD;EAiNI;CxB84IH;;AwB/lJD;EAqNI;CxB84IH;;AwBnmJD;EA0NI;CxB64IH;;AwBt4ID;EAGI;CxBu4IH;;AwB14ID;EAMI;CxBw4IH;;AwBt4ImC;;EAEhC;EACA;EACA;CxBy4IH;;AwBv4IC;EACE;CxB04IH;;AwBx4IC;EACE;CxB24IH;;AwBz4ImC;;EAEhC;CxB44IH;;AwBl6ID;;;EA2BI;CxB64IH;;AwBx6ID;EA8BI;CxB84IH;;AwB56ID;EAiCI;CxB+4IH;;AwBh7ID;EAoCI;CxBg5IH;;AwBz4ID;EAGI;CxB04IH;;AwB74ID;EAMI;CxB24IH;;AwBz4IkC;;EAE/B;CxB44IH;;AwBz4IC;EACE;CxB44IH;;AwB14IqC;EAClC;EACA;CxB64IH;;AwB/5ID;EAsBI;CxB64IH;;AwBn6ID;EAyBI;CxB84IH;;AwB54I6C;;EAE1C;CxB+4IH;;AwB56ID;;EAkCI;CxB+4IH;;AwB54IiC;EAC9B;CxB+4IH;;AwBr7ID;;EA0CI;CxBg5IH;;AwBz4ID;EAEI;CxB24IH;;AwB74ID;EAKI;CxB44IH;;AwBj5ID;;EASI;CxB64IH;;AwB14IC;EACE;CxB64IH;;AwB34I+B;;EAE5B;CxB84IH;;AwB/5ID;;EAsBI;CxB84IH;;AwB34I8B;EAC3B;CxB84IH;;AwBx6ID;;EA8BI;CxB+4IH;;AwBz4ID;EAEI;CxB24IH;;AwB74ID;EAKI;CxB44IH;;AwBj5ID;EAQI;CxB64IH;;AwB34I6B;EAC1B;CxB84IH;;AwBz5ID;EAcI;CxB+4IH;;AwB75ID;EAiBI;CxBg5IH;;AwBj6ID;EAoBI;CxBi5IH;;AwB14ID;EAGI;CxB24IH;;AwB94ID;EAMI;CxB44IH;;AwB14IuC;;EAEpC;CxB64IH;;AwBv5ID;EAcI;CxB64IH;;AwB35ID;EAiBI;CxB84IH;;AwB/5ID;;EAqBI;CxB+4IH;;AwB54IC;EACE;CxB+4IH;;AwB74IwB;EACrB;CxBg5IH;;AwB56ID;EA+BI;EACA;CxBi5IH;;AwB94IuC;;EAEpC;CxBi5IH;;AwB94I+B;EAC5B;CxBi5IH;;AwB/4I8D;;EAE3D;CxBk5IH;;AwB14ID;EAGI;EACA;CxB24IH;;AwBx4IK;EAEI;CxB04IT;;AwB54IK;EAMI;CxB04IT;;AwBv5ID;EAmBM;CxBw4IL;;AwBz4IG;;EAKI;CxBy4IP;;AwBh6ID;;EA2BY;CxB04IX;;AwBh4ID;EAGI;CxBi4IH;;AwBp4ID;EAOI;EACA;EACA;CxBi4IH;;AwB14ID;EAYM;CxBk4IL;;AwB94ID;;EAiBM;EACA;CxBk4IL;;AwBp5ID;;EAqBQ;CxBo4IP;;AwBz5ID;;EAyBQ;CxBq4IP;;AwBl4IO;;EACA;CxBs4IP;;AwB75IC;EA4BI;CxBq4IL;;AwBv6ID;EAsCM;CxBq4IL;;AwBr6IC;EAoCI;CxBq4IL;;AwB73IC;EACE;CxBg4IH;;AwB73IC;EACE;CxBg4IH;;AwB73IC;EACE;CxBg4IH;;AwBj4IC;EAII;CxBi4IL;;AwB94ID;EAkBI;CxBg4IH;;AwBl5ID;EAsBI;CxBg4IH;;AwBt5ID;EA0BI;CxBg4IH;;AwB15ID;EA8BI;CxBg4IH;;AwB95ID;EAiCM;CxBi4IL;;AwBz3ID;EAGI;EhBzyBF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKE;EACA;CRgqKH;;AwBj4IC;EACE;EACA;CxBo4IH;;AwB74ID;EAYM;EACA;CxBq4IL;;AwBl5ID;EAiBI;CxBq4IH;;AwBt5ID;;EAqBI;EACA;EACA;CxBs4IH;;AwB75ID;EA2BI;CxBs4IH;;AwBj6ID;;EA+BI;CxBu4IH;;AwBt6ID;;;;EAqCI;CxBw4IH;;AwB76ID;EAwCI;CxBy4IH;;AwBj7ID;EA2CI;CxB04IH;;AwBr7ID;EA8CI;CxB24IH;;AwBz7ID;EAkDI;CxB24IH;;AwBp4ID;EACE;CxBu4ID;;AwBp4ID;EAGI;CxBq4IH;;AwBx4ID;EAMM;EACA;CxBs4IL;;AwB34IC;;EASM;CxBu4IP;;AwBl5ID;EAcQ;CxBw4IP;;AwBp5IC;EAeM;EACA;CxBy4IP;;AwB35ID;EAqBQ;CxB04IP;;AwB/5ID;EAwBU;CxB24IT;;AwBj6IC;EA2BI;CxB04IL;;AwBl4ID;;;;EASQ;EACA;EACA;CxBg4IP;;AwB34ID;;;;EAcU;EACA;EACA;CxBo4IT;;AwBp5ID;;;;EAmBU;EACA;CxBw4IT;;AwBp4IO;;;;EAEE;EACA;EACA;CxBy4IT;;AwB74IO;;;;EAOI;EACA;CxB64IX;;AwB76ID;;EAwCM;EhBh7BJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKE;EACA;CRuzKH;;AwB77ID;;EA8CM;EACA;EACA;CxBo5IL;;AwBp8ID;;;;EAwDQ;CxBm5IP;;AwB38ID;;;;;;;;;;;;;;;;;;;;;;;;EAmEU;CxBm6IT;;AwB75IO;;;;;;;;EAEE;CxBs6IT;;AwBj/ID;;;;;;;;EAmFU;CxBy6IT;;AwB5/ID;;EA0FM;CxBu6IL;;AwBjgJD;;;;EAkGQ;CxBs6IP;;AwBxgJD;;;;EAyGQ;CxBs6IP;;AwB55ID;EAKM;EACA;CxB25IL;;AwB/5IC;EAOM;CxB45IP;;AwBr6ID;EAYQ;CxB65IP;;AwBv6IC;EAaM;CxB85IP;;AwB36IC;EAgBM;EACA;EACA;CxB+5IP;;AwBn7ID;EAuBU;CxBg6IT;;AwBv7ID;EA2BQ;CxBg6IP;;AwBz7IC;EA6BQ;CxBg6IT;;AwB77IC;EAmCI;EACA;CxB85IL;;AwBp8ID;EAgDQ;CxBw5IP;;AwBx8ID;EAmDU;CxBy5IT;;AwBt5IK;EACE;CxBy5IP;;AwBh9ID;EAkEQ;CxBk5IP;;AwBp9ID;EAqEU;CxBm5IT;;AwBh5IK;EACE;CxBm5IP;;AwB59ID;EAkFM;EACA;CxB84IL;;AwBv4IG;EACE;EACA;CxB04IL;;AwBt+ID;EA+FQ;CxB24IP;;AwB1+ID;EAmGM;EACA;CxB24IL","file":"mdl-ext-eqjs.css","sourcesContent":["/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*------------------------------------*\\\n    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n\n\n/* ==========  TYPOGRAPHY  ========== */\n\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n$preferred_font: 'Roboto', 'Helvetica', 'Arial', sans-serif !default;\n$performance_font: 'Helvetica', 'Arial', sans-serif !default;\n\n/* ==========  COLORS  ========== */\n\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n\n@import \"color-definitions\";\n@import \"functions\";\n\n/* ==========  IMAGES  ========== */\n$image_path: '/images' !default;\n\n/* ==========  Color & Themes  ========== */\n\n// Define whether individual color palette items should have classes created.\n// Setting this to true will remove individual color classes for each color in the palettes.\n// To improve overall performance (assuming they aren't used) by:\n// * Saving server bandwidth sending the extra classes\n// * Save client computation against the classes\n// it is RECOMMENDED you set this to true.\n$trim-color-classes: false !default;\n\n// Use color primarily for emphasis. Choose colors that fit with\n// your brand and provide good contrast between visual components.\n$color-primary: $palette-indigo-500 !default;\n$color-primary-dark: $palette-indigo-700 !default;\n$color-accent: $palette-pink-A200 !default;\n\n// Our primary is dark, so use $color-dark-contrast for overlaid text.\n$color-primary-contrast: $color-dark-contrast !default;\n// Our accent is dark, so use $color-dark-contrast for overlaid text.\n$color-accent-contrast: $color-dark-contrast !default;\n\n// Replace all colors with placeholders if we're generating a template.\n@if $styleguide-generate-template == true {\n  $color-primary: '$color-primary';\n  $color-primary-dark: '$color-primary-dark';\n  $color-accent: '$color-accent';\n  $color-primary-contrast: '$color-primary-contrast';\n  $color-accent-contrast: '$color-accent-contrast';\n}\n\n/* ==========  Typography  ========== */\n\n// We use the following default color styles: text-color-primary and\n// text-color-secondary. For light themes, use text-color-primary-inverse\n// and text-color-secondary-inverse.\n\n$text-color-primary: unquote(\"rgba(#{$color-black}, 0.87)\") !default;\n$text-link-color: unquote(\"rgb(#{$color-accent})\") !default;\n\n// Define whether to target elements directly for typographic enhancements.\n// Turning this off means you need to use mdl-* classes more often.\n// Other components may also fail to adhere to MD without these rules.\n// It is strongly recommended you leave this as true.\n\n$target-elements-directly: true !default;\n\n/* ==========  Components  ========== */\n\n/* ==========  Standard Buttons  ========== */\n\n// Default button colors.\n$button-primary-color: unquote(\"rgba(#{$palette-grey-500}, 0.20)\") !default;\n$button-secondary-color: unquote(\"rgb(#{$color-black})\") !default;\n$button-hover-color: $button-primary-color !default;\n$button-active-color: unquote(\"rgba(#{$palette-grey-500}, 0.40)\") !default;\n$button-focus-color: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n\n// Colored button colors.\n$button-primary-color-alt: unquote(\"rgb(#{$color-primary})\") !default;\n$button-secondary-color-alt: unquote(\"rgb(#{$color-primary-contrast})\") !default;\n$button-hover-color-alt: unquote(\"rgb(#{$color-primary})\") !default;\n$button-active-color-alt: unquote(\"rgb(#{$color-primary})\") !default;\n$button-focus-color-alt: $button-focus-color !default;\n\n// Ripple color for colored raised buttons.\n$button-ripple-color-alt: unquote(\"rgb(#{$color-primary-contrast})\") !default;\n\n// Disabled button colors.\n$button-primary-color-disabled: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n$button-secondary-color-disabled: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n\n// FAB colors and sizes.\n$button-fab-color-alt: unquote(\"rgb(#{$color-accent})\") !default;\n$button-fab-hover-color-alt: unquote(\"rgb(#{$color-accent})\") !default;\n$button-fab-active-color-alt: unquote(\"rgb(#{$color-accent})\") !default;\n$button-fab-text-color-alt: unquote(\"rgb(#{$color-accent-contrast})\") !default;\n$button-fab-ripple-color-alt: unquote(\"rgb(#{$color-accent-contrast})\") !default;\n\n// Icon button colors and sizes.\n$button-icon-color: unquote(\"rgb(#{$palette-grey-700})\") !default;\n$button-icon-focus-color: $button-focus-color !default;\n\n/* ==========  Icon Toggles  ========== */\n\n$icon-toggle-color: unquote(\"rgb(#{$palette-grey-700})\") !default;\n$icon-toggle-focus-color: $button-focus-color !default;\n$icon-toggle-checked-color: unquote(\"rgb(#{$color-primary})\") !default;\n$icon-toggle-checked-focus-color: unquote(\"rgba(#{$color-primary}, 0.26)\") !default;\n$icon-toggle-disabled-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n\n/* ==========  Radio Buttons  ========== */\n\n$radio-color: unquote(\"rgb(#{$color-primary})\") !default;\n$radio-off-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n$radio-disabled-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n\n/* ==========  Ripple effect  ========== */\n\n$ripple-bg-color: unquote(\"rgb(#{$color-light-contrast})\") !default;\n\n/* ==========  Layout  ========== */\n\n$layout-nav-color: unquote(\"rgb(#{$palette-grey-300})\") !default;\n\n// Drawer\n$layout-drawer-bg-color: unquote(\"rgb(#{$palette-grey-50})\") !default;\n$layout-drawer-border-color: unquote(\"rgb(#{$palette-grey-300})\") !default;\n$layout-text-color: unquote(\"rgb(#{$palette-grey-800})\") !default;\n$layout-drawer-navigation-color: #757575 !default;\n$layout-drawer-navigation-link-active-background: unquote(\"rgb(#{$palette-grey-300})\") !default;\n$layout-drawer-navigation-link-active-color: unquote(\"rgb(#{$color-light-contrast})\") !default;\n\n// Header\n$layout-header-bg-color: unquote(\"rgb(#{$color-primary})\") !default;\n$layout-header-text-color: unquote(\"rgb(#{$color-primary-contrast})\") !default;\n$layout-header-nav-hover-color: unquote(\"rgba(#{$palette-grey-700}, 0.6)\") !default;\n$layout-header-tab-text-color: unquote(\"rgba(#{$color-primary-contrast}, 0.6)\") !default;\n\n// Tabs\n$layout-header-tab-highlight: unquote(\"rgb(#{$color-accent})\") !default;\n\n/* ==========  Content Tabs  ========== */\n\n$tab-highlight-color: unquote(\"rgb(#{$color-primary})\") !default;\n$tab-text-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n$tab-active-text-color: unquote(\"rgba(#{$color-black}, 0.87)\") !default;\n$tab-border-color: unquote(\"rgb(#{$palette-grey-300})\") !default;\n\n/* ==========  Checkboxes  ========== */\n\n$checkbox-color: unquote(\"rgb(#{$color-primary})\") !default;\n$checkbox-off-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n$checkbox-disabled-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n$checkbox-focus-color: unquote(\"rgba(#{$color-primary}, 0.26)\") !default;\n$checkbox-image-path: $image_path;\n\n/* ==========  Switches  ========== */\n\n$switch-color: unquote(\"rgb(#{$color-primary})\") !default;\n$switch-faded-color: unquote(\"rgba(#{$color-primary}, 0.26)\") !default;\n$switch-thumb-color: $switch-color !default;\n$switch-track-color: unquote(\"rgba(#{$color-primary}, 0.5)\") !default;\n\n$switch-off-thumb-color: unquote(\"rgb(#{$palette-grey-50})\") !default;\n$switch-off-track-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n$switch-disabled-thumb-color: unquote(\"rgb(#{$palette-grey-400})\") !default;\n$switch-disabled-track-color: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n\n/* ==========  Spinner  ========== */\n\n$spinner-color-1: unquote(\"rgb(#{$palette-blue-400})\") !default;\n$spinner-color-2: unquote(\"rgb(#{$palette-red-500})\") !default;\n$spinner-color-3: unquote(\"rgb(#{$palette-yellow-600})\") !default;\n$spinner-color-4: unquote(\"rgb(#{$palette-green-500})\") !default;\n\n$spinner-single-color: unquote(\"rgb(#{$color-primary})\") !default;\n\n/* ==========  Text fields  ========== */\n\n$input-text-background-color: transparent !default;\n$input-text-label-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n$input-text-bottom-border-color: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n$input-text-highlight-color: unquote(\"rgb(#{$color-primary})\") !default;\n$input-text-disabled-color: $input-text-bottom-border-color !default;\n$input-text-disabled-text-color: $input-text-label-color !default;\n$input-text-error-color: unquote(\"rgb(#{$palette-red-A700})\") !default;\n\n/* ==========  Card  ========== */\n\n$card-background-color: unquote(\"rgb(#{$color-white})\") !default;\n$card-text-color: unquote(\"rgb(#{$color-black})\") !default;\n$card-image-placeholder-color: unquote(\"rgb(#{$color-accent})\") !default;\n$card-supporting-text-text-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n$card-border-color: rgba(0,0,0,0.1) !default;\n$card-subtitle-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n\n/* ==========  Sliders ========== */\n\n$range-bg-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n$range-color: unquote(\"rgb(#{$color-primary})\") !default;\n$range-faded-color: unquote(\"rgba(#{$color-primary}, 0.26)\") !default;\n$range-bg-focus-color: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n\n/* ========== Progress ========== */\n$progress-main-color: unquote(\"rgb(#{$color-primary})\") !default;\n$progress-secondary-color: unquote(\"rgba(#{$color-primary-contrast}, 0.7)\") !default;\n$progress-fallback-buffer-color: unquote(\"rgba(#{$color-primary-contrast}, 0.9)\") !default;\n$progress-image-path: $image_path;\n\n/* ==========  List ========== */\n\n$list-main-text-text-color: unquote(\"rgba(#{$color-black}, 0.87)\") !default;\n$list-supporting-text-text-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n$list-icon-color: unquote(\"rgb(#{$palette-grey-600})\") !default;\n$list-avatar-color: white !default;\n\n/* ==========  Item ========== */\n\n// Default Item Colors\n$default-item-text-color: unquote(\"rgba(#{$color-black}, 0.87)\") !default;\n$default-item-outline-color: unquote(\"rgb(#{$palette-grey-400})\") !default;\n$default-item-hover-bg-color: unquote(\"rgb(#{$palette-grey-200})\") !default;\n$default-item-focus-bg-color: unquote(\"rgb(#{$palette-grey-200})\") !default;\n$default-item-active-bg-color: unquote(\"rgb(#{$palette-grey-300})\") !default;\n$default-item-divider-color: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n\n// Disabled Button Colors\n$disabled-item-text-color: unquote(\"rgb(#{$palette-grey-400})\") !default;\n\n/* ==========  Dropdown menu ========== */\n\n$default-dropdown-bg-color: unquote(\"rgb(#{$color-white})\") !default;\n\n/* ==========  Tooltips  ========== */\n\n$tooltip-text-color: unquote(\"rgb(#{$color-white})\") !default;\n$tooltip-background-color: unquote(\"rgba(#{$palette-grey-700}, 0.9)\") !default;\n\n/* ==========  Footer  ========== */\n\n$footer-bg-color: unquote(\"rgb(#{$palette-grey-800})\") !default;\n$footer-color: unquote(\"rgb(#{$palette-grey-500})\") !default;\n$footer-heading-color: unquote(\"rgb(#{$palette-grey-300})\") !default;\n$footer-button-fill-color: $footer-color !default;\n$footer-underline-color: $footer-color !default;\n\n\n/* TEXTFIELD */\n\n$input-text-font-size: 16px !default;\n$input-text-width: 100% !default;\n$input-text-padding: 4px !default;\n$input-text-vertical-spacing: 20px !default;\n\n$input-text-button-size: 32px !default;\n$input-text-floating-label-fontsize: 12px !default;\n$input-text-expandable-icon-top: 16px !default;\n\n\n/* SWITCH */\n\n$switch-label-font-size: 16px !default;\n$switch-label-height: 24px !default;\n$switch-track-height: 14px !default;\n$switch-track-length: 36px !default;\n$switch-thumb-size: 20px !default;\n$switch-track-top: ($switch-label-height - $switch-track-height) / 2 !default;\n$switch-thumb-top: ($switch-label-height - $switch-thumb-size) / 2 !default;\n$switch-ripple-size: $switch-label-height * 2 !default;\n$switch-helper-size: 8px !default;\n\n/* SPINNER */\n\n$spinner-size: 28px !default;\n$spinner-stroke-width: 3px !default;\n\n// Amount of circle the arc takes up.\n$spinner-arc-size: 270deg !default;\n// Time it takes to expand and contract arc.\n$spinner-arc-time: 1333ms !default;\n// How much the start location of the arc should rotate each time.\n$spinner-arc-start-rot: 216deg !default;\n\n$spinner-duration: 360 * $spinner-arc-time / (\n    strip-units($spinner-arc-start-rot + (360deg - $spinner-arc-size)));\n\n\n/* RADIO */\n\n$radio-label-font-size: 16px !default;\n$radio-label-height: 24px !default;\n$radio-button-size: 16px !default;\n$radio-inner-margin: $radio-button-size / 4;\n$radio-padding: 8px !default;\n$radio-top-offset: ($radio-label-height - $radio-button-size) / 2;\n$radio-ripple-size: 42px !default;\n\n\n/* MENU */\n\n$menu-expand-duration: 0.3s !default;\n$menu-fade-duration: 0.2s !default;\n\n/* LIST */\n\n$list-border: 8px !default;\n$list-min-height: 48px !default;\n$list-min-padding: 16px !default;\n$list-bottom-padding: 20px !default;\n$list-avatar-text-left-distance: 72px !default;\n$list-icon-text-left-distance: 72px !default;\n\n$list-avatar-size: 40px !default;\n$list-icon-size: 24px !default;\n\n$list-two-line-height: 72px !default;\n$list-three-line-height: 88px !default;\n\n/* LAYOUT */\n\n$layout-drawer-narrow: 240px !default;\n$layout-drawer-wide: 456px !default;\n$layout-drawer-width: $layout-drawer-narrow !default;\n\n$layout-header-icon-size: 32px !default;\n$layout-screen-size-threshold: 1024px !default;\n$layout-header-icon-margin: 24px !default;\n$layout-drawer-button-mobile-size: 32px !default;\n$layout-drawer-button-desktop-size: 48px !default;\n\n$layout-header-mobile-row-height: 56px !default;\n$layout-mobile-header-height: $layout-header-mobile-row-height;\n$layout-header-desktop-row-height: 64px !default;\n$layout-desktop-header-height: $layout-header-desktop-row-height;\n\n$layout-header-desktop-baseline: 80px !default;\n$layout-header-mobile-baseline: 72px !default;\n$layout-header-mobile-indent: 16px !default;\n$layout-header-desktop-indent: 40px !default;\n\n$layout-tab-font-size: 14px !default;\n$layout-tab-bar-height: 48px !default;\n$layout-tab-mobile-padding: 12px !default;\n$layout-tab-desktop-padding: 24px !default;\n$layout-tab-highlight-thickness: 2px !default;\n\n\n/* ICON TOGGLE */\n\n$icon-toggle-size: 32px !default;\n$icon-toggle-font-size: 24px !default;\n$icon-toggle-ripple-size: 36px !default;\n\n/* FOOTER */\n\n/*mega-footer*/\n$footer-min-padding: 16px !default;\n$footer-padding-sides: 40px !default;\n$footer-heading-font-size: 14px !default;\n$footer-heading-line-height: (1.7 * $footer-heading-font-size) !default;\n$footer-btn-size: 36px  !default;\n\n/*mini-footer*/\n$padding: 16px !default;\n$footer-heading-font-size: 24px !default;\n$footer-heading-line-height: (1.5 * $footer-heading-font-size) !default;\n$footer-btn-size: 36px !default;\n\n/* CHECKBOX */\n\n$checkbox-label-font-size: 16px !default;\n$checkbox-label-height: 24px !default;\n$checkbox-button-size: 16px !default;\n$checkbox-inner-margin: 2px !default;\n$checkbox-padding: 8px !default;\n$checkbox-top-offset:\n($checkbox-label-height - $checkbox-button-size - $checkbox-inner-margin) / 2;\n$checkbox-ripple-size: $checkbox-label-height * 1.5;\n\n/* CARD */\n\n/* Card dimensions */\n$card-width: 330px !default;\n$card-height: 200px !default;\n$card-font-size: 16px !default;\n$card-title-font-size: 24px !default;\n$card-subtitle-font-size: 14px !default;\n$card-horizontal-padding: 16px !default;\n$card-vertical-padding: 16px !default;\n\n$card-title-perspective-origin-x: 165px !default;\n$card-title-perspective-origin-y: 56px !default;\n\n$card-title-transform-origin-x: 165px !default;\n$card-title-transform-origin-y: 56px !default;\n\n$card-title-text-transform-origin-x: 149px !default;\n$card-title-text-transform-origin-y: 48px !default;\n\n$card-supporting-text-font-size: 1rem !default;\n$card-supporting-text-line-height: 18px !default;\n\n$card-actions-font-size: 16px !default;\n\n$card-title-text-font-weight: 300 !default;\n$card-z-index: 1 !default;\n\n/* Cover image */\n$card-cover-image-height: 186px !default;\n$card-background-image-url: '' !default;\n\n\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n$button-min-width: 64px !default;\n$button-height: 36px !default;\n$button-padding: 16px !default;\n$button-margin: 4px !default;\n$button-border-radius: 2px !default;\n\n$button-fab-size: 56px !default;\n$button-fab-size-mini: 40px !default;\n$button-fab-font-size: 24px !default;\n\n$button-icon-size: 32px !default;\n$button-icon-size-mini: 24px !default;\n\n\n/* ANIMATION */\n$animation-curve-fast-out-slow-in: cubic-bezier(0.4, 0, 0.2, 1) !default;\n$animation-curve-linear-out-slow-in: cubic-bezier(0, 0, 0.2, 1) !default;\n$animation-curve-fast-out-linear-in: cubic-bezier(0.4, 0, 1, 1) !default;\n\n$animation-curve-default: $animation-curve-fast-out-slow-in !default;\n\n\n/* PROGRESS */\n$bar-height: 4px !default;\n\n/* BADGE */\n$badge-font-size: 12px !default;\n$badge-color: unquote(\"rgb(#{$color-accent-contrast})\") !default;\n$badge-color-inverse: unquote(\"rgb(#{$color-accent})\") !default;\n$badge-background: unquote(\"rgb(#{$color-accent})\") !default;\n$badge-background-inverse: unquote(\"rgba(#{$color-accent-contrast},0.2)\") !default;\n$badge-size : 22px !default;\n$badge-padding: 2px !default;\n$badge-overlap: 12px !default;\n\n/* SHADOWS */\n\n$shadow-key-umbra-opacity: 0.2 !default;\n$shadow-key-penumbra-opacity: 0.14 !default;\n$shadow-ambient-shadow-opacity: 0.12 !default;\n\n/* GRID */\n\n$grid-desktop-columns: 12 !default;\n$grid-desktop-gutter: 16px !default;\n$grid-desktop-margin: 16px !default;\n\n$grid-desktop-breakpoint: 840px !default;\n\n$grid-tablet-columns: 8 !default;\n$grid-tablet-gutter: $grid-desktop-gutter !default;\n$grid-tablet-margin: $grid-desktop-margin !default;\n\n$grid-tablet-breakpoint: 480px !default;\n\n$grid-phone-columns: 4 !default;\n$grid-phone-gutter: $grid-desktop-gutter !default;\n$grid-phone-margin: $grid-desktop-margin !default;\n\n$grid-cell-default-columns: $grid-phone-columns !default;\n$grid-max-columns: $grid-desktop-columns !default;\n\n/* DATA TABLE */\n\n$data-table-font-size: 13px !default;\n$data-table-header-font-size: 12px !default;\n$data-table-header-sort-icon-size: 16px !default;\n\n$data-table-header-color: rgba(#000, 0.54) !default;\n$data-table-header-sorted-color: rgba(#000, 0.87) !default;\n$data-table-header-sorted-icon-hover-color: rgba(#000, 0.26) !default;\n$data-table-divider-color: rgba(#000, 0.12) !default;\n\n$data-table-hover-color: #eeeeee !default;\n$data-table-selection-color: #e0e0e0 !default;\n\n$data-table-dividers: 1px solid $data-table-divider-color !default;\n\n$data-table-row-height: 48px !default;\n$data-table-last-row-height: 56px !default;\n$data-table-header-height: 56px !default;\n\n$data-table-column-spacing: 36px !default;\n$data-table-column-padding: $data-table-column-spacing / 2;\n\n$data-table-card-header-height: 64px !default;\n$data-table-card-title-top: 20px !default;\n$data-table-card-padding: 24px !default;\n$data-table-button-padding-right: 16px !default;\n$data-table-cell-top: $data-table-card-padding / 2;\n\n/* DIALOG */\n$dialog-content-color: $card-supporting-text-text-color;\n\n/* SNACKBAR */\n\n// Hard coded since the color is not present in any palette.\n$snackbar-background-color: #323232 !default;\n$snackbar-tablet-breakpoint: $grid-tablet-breakpoint;\n$snackbar-action-color: unquote(\"rgb(#{$color-accent})\") !default;\n\n/* TOOLTIP */\n$tooltip-font-size: 10px !default;\n$tooltip-font-size-large: 14px !default;\n\n/* CHIP */\n$chip-bg-color: rgb(222, 222, 222) !default;\n$chip-bg-active-color: rgb(214, 214, 214) !default;\n$chip-height: 32px !default;\n$chip-font-size: 13px !default; \n\n\n\n// WEBPACK FOOTER //\n// webpack:///~/material-design-lite/src/_variables.scss","@charset \"UTF-8\";\n\n// Material Design Lite\n@import '~material-design-lite/src/variables';\n@import '~material-design-lite/src/mixins';\n\n// mdl-ext\n@import 'mdl-ext-eqjs';\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/mdl-ext-eqjs-build.scss","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* ==========  Color Palettes  ========== */\n\n// Color order: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, A100, A200,\n// A400, A700.\n\n$palette-red:\n\"255,235,238\"\n\"255,205,210\"\n\"239,154,154\"\n\"229,115,115\"\n\"239,83,80\"\n\"244,67,54\"\n\"229,57,53\"\n\"211,47,47\"\n\"198,40,40\"\n\"183,28,28\"\n\"255,138,128\"\n\"255,82,82\"\n\"255,23,68\"\n\"213,0,0\";\n\n$palette-red-50: nth($palette-red, 1);\n$palette-red-100: nth($palette-red, 2);\n$palette-red-200: nth($palette-red, 3);\n$palette-red-300: nth($palette-red, 4);\n$palette-red-400: nth($palette-red, 5);\n$palette-red-500: nth($palette-red, 6);\n$palette-red-600: nth($palette-red, 7);\n$palette-red-700: nth($palette-red, 8);\n$palette-red-800: nth($palette-red, 9);\n$palette-red-900: nth($palette-red, 10);\n$palette-red-A100: nth($palette-red, 11);\n$palette-red-A200: nth($palette-red, 12);\n$palette-red-A400: nth($palette-red, 13);\n$palette-red-A700: nth($palette-red, 14);\n\n$palette-pink:\n\"252,228,236\"\n\"248,187,208\"\n\"244,143,177\"\n\"240,98,146\"\n\"236,64,122\"\n\"233,30,99\"\n\"216,27,96\"\n\"194,24,91\"\n\"173,20,87\"\n\"136,14,79\"\n\"255,128,171\"\n\"255,64,129\"\n\"245,0,87\"\n\"197,17,98\";\n\n$palette-pink-50: nth($palette-pink, 1);\n$palette-pink-100: nth($palette-pink, 2);\n$palette-pink-200: nth($palette-pink, 3);\n$palette-pink-300: nth($palette-pink, 4);\n$palette-pink-400: nth($palette-pink, 5);\n$palette-pink-500: nth($palette-pink, 6);\n$palette-pink-600: nth($palette-pink, 7);\n$palette-pink-700: nth($palette-pink, 8);\n$palette-pink-800: nth($palette-pink, 9);\n$palette-pink-900: nth($palette-pink, 10);\n$palette-pink-A100: nth($palette-pink, 11);\n$palette-pink-A200: nth($palette-pink, 12);\n$palette-pink-A400: nth($palette-pink, 13);\n$palette-pink-A700: nth($palette-pink, 14);\n\n$palette-purple:\n\"243,229,245\"\n\"225,190,231\"\n\"206,147,216\"\n\"186,104,200\"\n\"171,71,188\"\n\"156,39,176\"\n\"142,36,170\"\n\"123,31,162\"\n\"106,27,154\"\n\"74,20,140\"\n\"234,128,252\"\n\"224,64,251\"\n\"213,0,249\"\n\"170,0,255\";\n\n$palette-purple-50: nth($palette-purple, 1);\n$palette-purple-100: nth($palette-purple, 2);\n$palette-purple-200: nth($palette-purple, 3);\n$palette-purple-300: nth($palette-purple, 4);\n$palette-purple-400: nth($palette-purple, 5);\n$palette-purple-500: nth($palette-purple, 6);\n$palette-purple-600: nth($palette-purple, 7);\n$palette-purple-700: nth($palette-purple, 8);\n$palette-purple-800: nth($palette-purple, 9);\n$palette-purple-900: nth($palette-purple, 10);\n$palette-purple-A100: nth($palette-purple, 11);\n$palette-purple-A200: nth($palette-purple, 12);\n$palette-purple-A400: nth($palette-purple, 13);\n$palette-purple-A700: nth($palette-purple, 14);\n\n$palette-deep-purple:\n\"237,231,246\"\n\"209,196,233\"\n\"179,157,219\"\n\"149,117,205\"\n\"126,87,194\"\n\"103,58,183\"\n\"94,53,177\"\n\"81,45,168\"\n\"69,39,160\"\n\"49,27,146\"\n\"179,136,255\"\n\"124,77,255\"\n\"101,31,255\"\n\"98,0,234\";\n\n$palette-deep-purple-50: nth($palette-deep-purple, 1);\n$palette-deep-purple-100: nth($palette-deep-purple, 2);\n$palette-deep-purple-200: nth($palette-deep-purple, 3);\n$palette-deep-purple-300: nth($palette-deep-purple, 4);\n$palette-deep-purple-400: nth($palette-deep-purple, 5);\n$palette-deep-purple-500: nth($palette-deep-purple, 6);\n$palette-deep-purple-600: nth($palette-deep-purple, 7);\n$palette-deep-purple-700: nth($palette-deep-purple, 8);\n$palette-deep-purple-800: nth($palette-deep-purple, 9);\n$palette-deep-purple-900: nth($palette-deep-purple, 10);\n$palette-deep-purple-A100: nth($palette-deep-purple, 11);\n$palette-deep-purple-A200: nth($palette-deep-purple, 12);\n$palette-deep-purple-A400: nth($palette-deep-purple, 13);\n$palette-deep-purple-A700: nth($palette-deep-purple, 14);\n\n$palette-indigo:\n\"232,234,246\"\n\"197,202,233\"\n\"159,168,218\"\n\"121,134,203\"\n\"92,107,192\"\n\"63,81,181\"\n\"57,73,171\"\n\"48,63,159\"\n\"40,53,147\"\n\"26,35,126\"\n\"140,158,255\"\n\"83,109,254\"\n\"61,90,254\"\n\"48,79,254\";\n\n$palette-indigo-50: nth($palette-indigo, 1);\n$palette-indigo-100: nth($palette-indigo, 2);\n$palette-indigo-200: nth($palette-indigo, 3);\n$palette-indigo-300: nth($palette-indigo, 4);\n$palette-indigo-400: nth($palette-indigo, 5);\n$palette-indigo-500: nth($palette-indigo, 6);\n$palette-indigo-600: nth($palette-indigo, 7);\n$palette-indigo-700: nth($palette-indigo, 8);\n$palette-indigo-800: nth($palette-indigo, 9);\n$palette-indigo-900: nth($palette-indigo, 10);\n$palette-indigo-A100: nth($palette-indigo, 11);\n$palette-indigo-A200: nth($palette-indigo, 12);\n$palette-indigo-A400: nth($palette-indigo, 13);\n$palette-indigo-A700: nth($palette-indigo, 14);\n\n$palette-blue:\n\"227,242,253\"\n\"187,222,251\"\n\"144,202,249\"\n\"100,181,246\"\n\"66,165,245\"\n\"33,150,243\"\n\"30,136,229\"\n\"25,118,210\"\n\"21,101,192\"\n\"13,71,161\"\n\"130,177,255\"\n\"68,138,255\"\n\"41,121,255\"\n\"41,98,255\";\n\n$palette-blue-50: nth($palette-blue, 1);\n$palette-blue-100: nth($palette-blue, 2);\n$palette-blue-200: nth($palette-blue, 3);\n$palette-blue-300: nth($palette-blue, 4);\n$palette-blue-400: nth($palette-blue, 5);\n$palette-blue-500: nth($palette-blue, 6);\n$palette-blue-600: nth($palette-blue, 7);\n$palette-blue-700: nth($palette-blue, 8);\n$palette-blue-800: nth($palette-blue, 9);\n$palette-blue-900: nth($palette-blue, 10);\n$palette-blue-A100: nth($palette-blue, 11);\n$palette-blue-A200: nth($palette-blue, 12);\n$palette-blue-A400: nth($palette-blue, 13);\n$palette-blue-A700: nth($palette-blue, 14);\n\n$palette-light-blue:\n\"225,245,254\"\n\"179,229,252\"\n\"129,212,250\"\n\"79,195,247\"\n\"41,182,246\"\n\"3,169,244\"\n\"3,155,229\"\n\"2,136,209\"\n\"2,119,189\"\n\"1,87,155\"\n\"128,216,255\"\n\"64,196,255\"\n\"0,176,255\"\n\"0,145,234\";\n\n$palette-light-blue-50: nth($palette-light-blue, 1);\n$palette-light-blue-100: nth($palette-light-blue, 2);\n$palette-light-blue-200: nth($palette-light-blue, 3);\n$palette-light-blue-300: nth($palette-light-blue, 4);\n$palette-light-blue-400: nth($palette-light-blue, 5);\n$palette-light-blue-500: nth($palette-light-blue, 6);\n$palette-light-blue-600: nth($palette-light-blue, 7);\n$palette-light-blue-700: nth($palette-light-blue, 8);\n$palette-light-blue-800: nth($palette-light-blue, 9);\n$palette-light-blue-900: nth($palette-light-blue, 10);\n$palette-light-blue-A100: nth($palette-light-blue, 11);\n$palette-light-blue-A200: nth($palette-light-blue, 12);\n$palette-light-blue-A400: nth($palette-light-blue, 13);\n$palette-light-blue-A700: nth($palette-light-blue, 14);\n\n$palette-cyan:\n\"224,247,250\"\n\"178,235,242\"\n\"128,222,234\"\n\"77,208,225\"\n\"38,198,218\"\n\"0,188,212\"\n\"0,172,193\"\n\"0,151,167\"\n\"0,131,143\"\n\"0,96,100\"\n\"132,255,255\"\n\"24,255,255\"\n\"0,229,255\"\n\"0,184,212\";\n\n$palette-cyan-50: nth($palette-cyan, 1);\n$palette-cyan-100: nth($palette-cyan, 2);\n$palette-cyan-200: nth($palette-cyan, 3);\n$palette-cyan-300: nth($palette-cyan, 4);\n$palette-cyan-400: nth($palette-cyan, 5);\n$palette-cyan-500: nth($palette-cyan, 6);\n$palette-cyan-600: nth($palette-cyan, 7);\n$palette-cyan-700: nth($palette-cyan, 8);\n$palette-cyan-800: nth($palette-cyan, 9);\n$palette-cyan-900: nth($palette-cyan, 10);\n$palette-cyan-A100: nth($palette-cyan, 11);\n$palette-cyan-A200: nth($palette-cyan, 12);\n$palette-cyan-A400: nth($palette-cyan, 13);\n$palette-cyan-A700: nth($palette-cyan, 14);\n\n$palette-teal:\n\"224,242,241\"\n\"178,223,219\"\n\"128,203,196\"\n\"77,182,172\"\n\"38,166,154\"\n\"0,150,136\"\n\"0,137,123\"\n\"0,121,107\"\n\"0,105,92\"\n\"0,77,64\"\n\"167,255,235\"\n\"100,255,218\"\n\"29,233,182\"\n\"0,191,165\";\n\n$palette-teal-50: nth($palette-teal, 1);\n$palette-teal-100: nth($palette-teal, 2);\n$palette-teal-200: nth($palette-teal, 3);\n$palette-teal-300: nth($palette-teal, 4);\n$palette-teal-400: nth($palette-teal, 5);\n$palette-teal-500: nth($palette-teal, 6);\n$palette-teal-600: nth($palette-teal, 7);\n$palette-teal-700: nth($palette-teal, 8);\n$palette-teal-800: nth($palette-teal, 9);\n$palette-teal-900: nth($palette-teal, 10);\n$palette-teal-A100: nth($palette-teal, 11);\n$palette-teal-A200: nth($palette-teal, 12);\n$palette-teal-A400: nth($palette-teal, 13);\n$palette-teal-A700: nth($palette-teal, 14);\n\n$palette-green:\n\"232,245,233\"\n\"200,230,201\"\n\"165,214,167\"\n\"129,199,132\"\n\"102,187,106\"\n\"76,175,80\"\n\"67,160,71\"\n\"56,142,60\"\n\"46,125,50\"\n\"27,94,32\"\n\"185,246,202\"\n\"105,240,174\"\n\"0,230,118\"\n\"0,200,83\";\n\n$palette-green-50: nth($palette-green, 1);\n$palette-green-100: nth($palette-green, 2);\n$palette-green-200: nth($palette-green, 3);\n$palette-green-300: nth($palette-green, 4);\n$palette-green-400: nth($palette-green, 5);\n$palette-green-500: nth($palette-green, 6);\n$palette-green-600: nth($palette-green, 7);\n$palette-green-700: nth($palette-green, 8);\n$palette-green-800: nth($palette-green, 9);\n$palette-green-900: nth($palette-green, 10);\n$palette-green-A100: nth($palette-green, 11);\n$palette-green-A200: nth($palette-green, 12);\n$palette-green-A400: nth($palette-green, 13);\n$palette-green-A700: nth($palette-green, 14);\n\n$palette-light-green:\n\"241,248,233\"\n\"220,237,200\"\n\"197,225,165\"\n\"174,213,129\"\n\"156,204,101\"\n\"139,195,74\"\n\"124,179,66\"\n\"104,159,56\"\n\"85,139,47\"\n\"51,105,30\"\n\"204,255,144\"\n\"178,255,89\"\n\"118,255,3\"\n\"100,221,23\";\n\n$palette-light-green-50: nth($palette-light-green, 1);\n$palette-light-green-100: nth($palette-light-green, 2);\n$palette-light-green-200: nth($palette-light-green, 3);\n$palette-light-green-300: nth($palette-light-green, 4);\n$palette-light-green-400: nth($palette-light-green, 5);\n$palette-light-green-500: nth($palette-light-green, 6);\n$palette-light-green-600: nth($palette-light-green, 7);\n$palette-light-green-700: nth($palette-light-green, 8);\n$palette-light-green-800: nth($palette-light-green, 9);\n$palette-light-green-900: nth($palette-light-green, 10);\n$palette-light-green-A100: nth($palette-light-green, 11);\n$palette-light-green-A200: nth($palette-light-green, 12);\n$palette-light-green-A400: nth($palette-light-green, 13);\n$palette-light-green-A700: nth($palette-light-green, 14);\n\n$palette-lime:\n\"249,251,231\"\n\"240,244,195\"\n\"230,238,156\"\n\"220,231,117\"\n\"212,225,87\"\n\"205,220,57\"\n\"192,202,51\"\n\"175,180,43\"\n\"158,157,36\"\n\"130,119,23\"\n\"244,255,129\"\n\"238,255,65\"\n\"198,255,0\"\n\"174,234,0\";\n\n$palette-lime-50: nth($palette-lime, 1);\n$palette-lime-100: nth($palette-lime, 2);\n$palette-lime-200: nth($palette-lime, 3);\n$palette-lime-300: nth($palette-lime, 4);\n$palette-lime-400: nth($palette-lime, 5);\n$palette-lime-500: nth($palette-lime, 6);\n$palette-lime-600: nth($palette-lime, 7);\n$palette-lime-700: nth($palette-lime, 8);\n$palette-lime-800: nth($palette-lime, 9);\n$palette-lime-900: nth($palette-lime, 10);\n$palette-lime-A100: nth($palette-lime, 11);\n$palette-lime-A200: nth($palette-lime, 12);\n$palette-lime-A400: nth($palette-lime, 13);\n$palette-lime-A700: nth($palette-lime, 14);\n\n$palette-yellow:\n\"255,253,231\"\n\"255,249,196\"\n\"255,245,157\"\n\"255,241,118\"\n\"255,238,88\"\n\"255,235,59\"\n\"253,216,53\"\n\"251,192,45\"\n\"249,168,37\"\n\"245,127,23\"\n\"255,255,141\"\n\"255,255,0\"\n\"255,234,0\"\n\"255,214,0\";\n\n$palette-yellow-50: nth($palette-yellow, 1);\n$palette-yellow-100: nth($palette-yellow, 2);\n$palette-yellow-200: nth($palette-yellow, 3);\n$palette-yellow-300: nth($palette-yellow, 4);\n$palette-yellow-400: nth($palette-yellow, 5);\n$palette-yellow-500: nth($palette-yellow, 6);\n$palette-yellow-600: nth($palette-yellow, 7);\n$palette-yellow-700: nth($palette-yellow, 8);\n$palette-yellow-800: nth($palette-yellow, 9);\n$palette-yellow-900: nth($palette-yellow, 10);\n$palette-yellow-A100: nth($palette-yellow, 11);\n$palette-yellow-A200: nth($palette-yellow, 12);\n$palette-yellow-A400: nth($palette-yellow, 13);\n$palette-yellow-A700: nth($palette-yellow, 14);\n\n$palette-amber:\n\"255,248,225\"\n\"255,236,179\"\n\"255,224,130\"\n\"255,213,79\"\n\"255,202,40\"\n\"255,193,7\"\n\"255,179,0\"\n\"255,160,0\"\n\"255,143,0\"\n\"255,111,0\"\n\"255,229,127\"\n\"255,215,64\"\n\"255,196,0\"\n\"255,171,0\";\n\n$palette-amber-50: nth($palette-amber, 1);\n$palette-amber-100: nth($palette-amber, 2);\n$palette-amber-200: nth($palette-amber, 3);\n$palette-amber-300: nth($palette-amber, 4);\n$palette-amber-400: nth($palette-amber, 5);\n$palette-amber-500: nth($palette-amber, 6);\n$palette-amber-600: nth($palette-amber, 7);\n$palette-amber-700: nth($palette-amber, 8);\n$palette-amber-800: nth($palette-amber, 9);\n$palette-amber-900: nth($palette-amber, 10);\n$palette-amber-A100: nth($palette-amber, 11);\n$palette-amber-A200: nth($palette-amber, 12);\n$palette-amber-A400: nth($palette-amber, 13);\n$palette-amber-A700: nth($palette-amber, 14);\n\n$palette-orange:\n\"255,243,224\"\n\"255,224,178\"\n\"255,204,128\"\n\"255,183,77\"\n\"255,167,38\"\n\"255,152,0\"\n\"251,140,0\"\n\"245,124,0\"\n\"239,108,0\"\n\"230,81,0\"\n\"255,209,128\"\n\"255,171,64\"\n\"255,145,0\"\n\"255,109,0\";\n\n$palette-orange-50: nth($palette-orange, 1);\n$palette-orange-100: nth($palette-orange, 2);\n$palette-orange-200: nth($palette-orange, 3);\n$palette-orange-300: nth($palette-orange, 4);\n$palette-orange-400: nth($palette-orange, 5);\n$palette-orange-500: nth($palette-orange, 6);\n$palette-orange-600: nth($palette-orange, 7);\n$palette-orange-700: nth($palette-orange, 8);\n$palette-orange-800: nth($palette-orange, 9);\n$palette-orange-900: nth($palette-orange, 10);\n$palette-orange-A100: nth($palette-orange, 11);\n$palette-orange-A200: nth($palette-orange, 12);\n$palette-orange-A400: nth($palette-orange, 13);\n$palette-orange-A700: nth($palette-orange, 14);\n\n$palette-deep-orange:\n\"251,233,231\"\n\"255,204,188\"\n\"255,171,145\"\n\"255,138,101\"\n\"255,112,67\"\n\"255,87,34\"\n\"244,81,30\"\n\"230,74,25\"\n\"216,67,21\"\n\"191,54,12\"\n\"255,158,128\"\n\"255,110,64\"\n\"255,61,0\"\n\"221,44,0\";\n\n$palette-deep-orange-50: nth($palette-deep-orange, 1);\n$palette-deep-orange-100: nth($palette-deep-orange, 2);\n$palette-deep-orange-200: nth($palette-deep-orange, 3);\n$palette-deep-orange-300: nth($palette-deep-orange, 4);\n$palette-deep-orange-400: nth($palette-deep-orange, 5);\n$palette-deep-orange-500: nth($palette-deep-orange, 6);\n$palette-deep-orange-600: nth($palette-deep-orange, 7);\n$palette-deep-orange-700: nth($palette-deep-orange, 8);\n$palette-deep-orange-800: nth($palette-deep-orange, 9);\n$palette-deep-orange-900: nth($palette-deep-orange, 10);\n$palette-deep-orange-A100: nth($palette-deep-orange, 11);\n$palette-deep-orange-A200: nth($palette-deep-orange, 12);\n$palette-deep-orange-A400: nth($palette-deep-orange, 13);\n$palette-deep-orange-A700: nth($palette-deep-orange, 14);\n\n\n// Color order: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900.\n\n$palette-brown:\n\"239,235,233\"\n\"215,204,200\"\n\"188,170,164\"\n\"161,136,127\"\n\"141,110,99\"\n\"121,85,72\"\n\"109,76,65\"\n\"93,64,55\"\n\"78,52,46\"\n\"62,39,35\";\n\n$palette-brown-50: nth($palette-brown, 1);\n$palette-brown-100: nth($palette-brown, 2);\n$palette-brown-200: nth($palette-brown, 3);\n$palette-brown-300: nth($palette-brown, 4);\n$palette-brown-400: nth($palette-brown, 5);\n$palette-brown-500: nth($palette-brown, 6);\n$palette-brown-600: nth($palette-brown, 7);\n$palette-brown-700: nth($palette-brown, 8);\n$palette-brown-800: nth($palette-brown, 9);\n$palette-brown-900: nth($palette-brown, 10);\n\n$palette-grey:\n\"250,250,250\"\n\"245,245,245\"\n\"238,238,238\"\n\"224,224,224\"\n\"189,189,189\"\n\"158,158,158\"\n\"117,117,117\"\n\"97,97,97\"\n\"66,66,66\"\n\"33,33,33\";\n\n$palette-grey-50: nth($palette-grey, 1);\n$palette-grey-100: nth($palette-grey, 2);\n$palette-grey-200: nth($palette-grey, 3);\n$palette-grey-300: nth($palette-grey, 4);\n$palette-grey-400: nth($palette-grey, 5);\n$palette-grey-500: nth($palette-grey, 6);\n$palette-grey-600: nth($palette-grey, 7);\n$palette-grey-700: nth($palette-grey, 8);\n$palette-grey-800: nth($palette-grey, 9);\n$palette-grey-900: nth($palette-grey, 10);\n\n$palette-blue-grey:\n\"236,239,241\"\n\"207,216,220\"\n\"176,190,197\"\n\"144,164,174\"\n\"120,144,156\"\n\"96,125,139\"\n\"84,110,122\"\n\"69,90,100\"\n\"55,71,79\"\n\"38,50,56\";\n\n$palette-blue-grey-50: nth($palette-blue-grey, 1);\n$palette-blue-grey-100: nth($palette-blue-grey, 2);\n$palette-blue-grey-200: nth($palette-blue-grey, 3);\n$palette-blue-grey-300: nth($palette-blue-grey, 4);\n$palette-blue-grey-400: nth($palette-blue-grey, 5);\n$palette-blue-grey-500: nth($palette-blue-grey, 6);\n$palette-blue-grey-600: nth($palette-blue-grey, 7);\n$palette-blue-grey-700: nth($palette-blue-grey, 8);\n$palette-blue-grey-800: nth($palette-blue-grey, 9);\n$palette-blue-grey-900: nth($palette-blue-grey, 10);\n\n$color-black: \"0,0,0\";\n$color-white: \"255,255,255\";\n\n\n/* colors.scss */\n$styleguide-generate-template: false !default;\n\n// The two possible colors for overlayed text.\n$color-dark-contrast: $color-white !default;\n$color-light-contrast: $color-black !default;\n\n\n\n// WEBPACK FOOTER //\n// webpack:///~/material-design-lite/src/_color-definitions.scss","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@function strip-units($number) {\n  @return $number / ($number * 0 + 1);\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///~/material-design-lite/src/_functions.scss","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* Typography */\n\n@mixin typo-preferred-font($usePreferred: true) {\n  @if $usePreferred {\n    font-family: $preferred_font;\n  }\n}\n\n@mixin typo-display-4($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 112px;\n  font-weight: 300;\n  line-height: 1;\n  letter-spacing: -0.04em;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-display-3($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 56px;\n  font-weight: 400;\n  line-height: 1.35;\n  letter-spacing: -0.02em;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-display-2($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 45px;\n  font-weight: 400;\n  line-height: 48px;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-display-1($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 34px;\n  font-weight: 400;\n  line-height: 40px;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-headline($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 24px;\n  font-weight: 400;\n  line-height: 32px;\n  -moz-osx-font-smoothing: grayscale;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-title($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 20px;\n  font-weight: 500;\n  line-height: 1;\n  letter-spacing: 0.02em;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-subhead($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0.04em;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-subhead-2($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 28px;\n  letter-spacing: 0.04em;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-body-2($colorContrast: false, $usePreferred: false) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  @if $usePreferred {\n    font-weight: 500;\n  } @else {\n    font-weight: bold;\n  }\n  line-height: 24px;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-body-1($colorContrast: false, $usePreferred: false) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-caption($colorContrast: false, $usePreferred: false) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 12px;\n  font-weight: 400;\n  line-height: 1;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-blockquote($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  position: relative;\n  font-size: 24px;\n  font-weight: 300;\n  font-style: italic;\n  line-height: 1.35;\n  letter-spacing: 0.08em;\n\n  &:before {\n    position: absolute;\n    left: -0.5em;\n    content: '“';\n  }\n\n  &:after {\n    content: '”';\n    margin-left: -0.05em;\n  }\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-menu($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  font-weight: 500;\n  line-height: 1;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-button($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  font-weight: 500;\n  text-transform: uppercase;\n  line-height: 1;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-icon() {\n  font-family: 'Material Icons';\n  font-weight: normal;\n  font-style: normal;\n  font-size: 24px;\n  line-height: 1;\n  letter-spacing: normal;\n  text-transform: none;\n  display: inline-block;\n  word-wrap: normal;\n  font-feature-settings: 'liga';\n  -webkit-font-feature-settings: 'liga';\n  -webkit-font-smoothing: antialiased;\n}\n\n/* Shadows */\n\n// Focus shadow mixin.\n@mixin focus-shadow() {\n  box-shadow: 0 0 8px rgba(0,0,0,.18),0 8px 16px rgba(0,0,0,.36);\n}\n\n@mixin shadow-2dp() {\n  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 3px 1px -2px rgba(0, 0, 0, $shadow-key-umbra-opacity),\n              0 1px 5px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity);\n}\n@mixin shadow-3dp() {\n  box-shadow: 0 3px 4px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 3px 3px -2px rgba(0, 0, 0, $shadow-key-umbra-opacity),\n              0 1px 8px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity);\n}\n@mixin shadow-4dp() {\n  box-shadow: 0 4px 5px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 1px 10px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 2px 4px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n@mixin shadow-6dp() {\n  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 1px 18px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 3px 5px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n@mixin shadow-8dp() {\n  box-shadow: 0 8px 10px 1px rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 3px 14px 2px rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 5px 5px -3px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n\n@mixin shadow-16dp() {\n  box-shadow: 0 16px 24px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0  6px 30px 5px rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0  8px 10px -5px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n\n@mixin shadow-24dp() {\n  box-shadow: 0  9px 46px  8px rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 11px 15px -7px rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 24px 38px  3px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n\n/* Animations */\n\n@mixin material-animation-fast-out-slow-in($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-fast-out-slow-in;\n}\n\n@mixin material-animation-linear-out-slow-in($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-linear-out-slow-in;\n}\n\n@mixin material-animation-fast-out-linear-in($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-fast-out-linear-in;\n}\n\n@mixin material-animation-default($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-default;\n}\n\n/* Dialog */\n\n@mixin dialog-width($units:5) {\n  @if(type_of($units) != 'number') {\n    @error \"The unit given to dialog-width should be a number.\";\n  }\n  // 56dp is the base unit width for Dialogs.\n  // With 5 units being the number of units for a mobile device.\n  // https://goo.gl/sK2O5o\n  width: $units * 56px;\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///~/material-design-lite/src/_mixins.scss","@charset \"UTF-8\";\n\n/**\n * Element Queries are a new way of writing CSS styles so the rules apply to individual elements\n * on the page, instead of to the whole page as one document like in regular CSS Media Queries.\n * This SASS file includes the eq.js, https://github.com/Snugug/eq.js, prolyfill which is an easy to use\n * drop-in solution to JavaScript powered element queries. It works well with SASS,\n * and element queries work without requireing a server to run.\n *\n * Feel fre to write your own element query stylesheet using one of the other libraries, e.g:\n *   [EQCSS]               - (https://github.com/eqcss/eqcss)\n *   [CSS Element Queries] - (https://github.com/marcj/css-element-queries)\n *   [BoomQueries]         - (https://github.com/BoomTownROI/boomqueries)\n */\n\n// eq.js mixins\n@import '~eq.js/sass/eq';\n\n// Configuration and helpers\n@import 'variables';\n@import 'mixins';\n@import 'functions';\n\n// Components\n@import 'aria-expanded-toggle/aria-expanded-toggle';\n@import 'sticky-header/sticky-header';\n@import 'dialog/dialog';\n@import 'grid/grid-eqjs';\n@import 'lightboard/lightboard';\n@import 'lightboard/lightboard-eqjs';\n@import 'lightbox/lightbox';\n@import 'carousel/carousel';\n@import 'selectfield/selectfield';\n@import 'menu-button/menu-button';\n@import 'bordered-fields/bordered-fields';\n@import 'collapsible/collapsible';\n@import 'accordion/accordion';\n@import 'color-themes/light-color-theme';\n@import 'color-themes/dark-color-theme';\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/mdl-ext-eqjs.scss","/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"functions\";\n\n// ----------------------------------------------------------------\n// Sample colors\n// ----------------------------------------------------------------\n$mdlext-palette-amber-50:                         #FFF8E1;\n$mdlext-palette-amber-100:                        #FFECB3;\n$mdlext-palette-amber-500:                        #FFC107;\n$mdlext-palette-amber-700:                        #FFA000;\n$mdlext-palette-blue-grey-500:                    #607D8B;\n$mdlext-palette-deep-orange-500:                  #FF5722;\n$mdlext-palette-deep-purple-100:                  #D1C4E9;\n$mdlext-palette-deep-purple-500:                  #512DA8;\n$mdlext-palette-deep-purple-700:                  #673AB7;\n$mdlext-palette-green-50:                         #E8F5E9;\n$mdlext-palette-green-100:                        #C8E6C9;\n$mdlext-palette-green-500:                        #4CAF50;\n$mdlext-palette-green-700:                        #388E3C;\n$mdlext-palette-grey-50:                          #FAFAFA;\n$mdlext-palette-grey-100:                         #F5F5F5;\n$mdlext-palette-grey-200:                         #EEEEEE;\n$mdlext-palette-grey-300:                         #E0E0E0;\n$mdlext-palette-grey-400:                         #BDBDBD;\n$mdlext-palette-grey-500:                         #9E9E9E;\n$mdlext-palette-grey-600:                         #757575;\n$mdlext-palette-grey-700:                         #616161;\n$mdlext-palette-grey-800:                         #424242;\n$mdlext-palette-grey-900:                         #212121;\n$mdlext-palette-indigo-A200:                      #536DFE;\n$mdlext-palette-light-blue-500:                   #03A9F4;\n$mdlext-palette-light-green-500:                  #8BC34A;\n$mdlext-palette-pink-500:                         #E91E63;\n$mdlext-palette-pink-700:                         #C2185B;\n$mdlext-palette-pink-A400:                        #F50057;\n$mdlext-palette-purple-A200:                      #E040FB;\n$mdlext-palette-red-700:                          #D32F2F;\n$mdlext-palette-red-A200:                         #FF5252;\n$mdlext-palette-red-A400:                         #FF1744;\n$mdlext-palette-yellow-500:                       #FFEB3B;\n$mdlext-color-black:                              #000000;\n$mdlext-color-white:                              #FFFFFF;\n\n\n/* ==========   Sticky Header   ========== */\n$mdlext-sticky-header-background-color           : transparent !default;\n$mdlext-sticky-header-background-color-scroll    : transparent !default;\n$mdlext-sticky-header-gradient-color             : rgb-string-to-hex($color-primary) !default;\n$mdlext-sticky-header-gradient-color-start       : $mdlext-sticky-header-gradient-color !default;\n$mdlext-sticky-header-gradient-color-end         : $mdlext-sticky-header-gradient-color-start !default;\n$mdlext-sticky-header-gradient-color-scroll-start: rgba($mdlext-sticky-header-gradient-color, 0.98) !default;\n$mdlext-sticky-header-gradient-color-scroll-end  : rgba($mdlext-sticky-header-gradient-color, 0.95) !default;\n\n// Background shorthand\n/* stylelint-disable */\n$mdlext-sticky-header-background                 : $mdlext-sticky-header-background-color\n                                                   linear-gradient(to bottom,\n                                                      $mdlext-sticky-header-gradient-color-start 0,\n                                                      $mdlext-sticky-header-gradient-color-end 100%) !default;\n\n// Background shorthand when content is scrolling\n$mdlext-sticky-header-background-scroll          : $mdlext-sticky-header-background-color-scroll\n                                                   linear-gradient(to bottom,\n                                                      $mdlext-sticky-header-gradient-color-scroll-start 100%,\n                                                      $mdlext-sticky-header-gradient-color-scroll-end 100%) !default;\n/* stylelint-enable */\n\n/* ==========     Accordion     ========== */\n$mdlext-accordion-header-background-color-base   : $mdlext-palette-grey-500 !default;\n$mdlext-accordion-header-background-color        : rgba($mdlext-accordion-header-background-color-base, 0.20) !default;\n$mdlext-accordion-header-background-open-color   : rgba($mdlext-accordion-header-background-color-base, 0.30) !default;\n$mdlext-accordion-header-background-active-color : rgba($mdlext-accordion-header-background-color-base, 0.40) !default;\n$mdlext-accordion-header-border-color            : rgba($mdlext-accordion-header-background-color-base, 0.50) !default;\n$mdlext-accordion-header-background-hover-color  : rgba($mdlext-accordion-header-background-color-base, 0.40) !default;\n$mdlext-accordion-header-focus-outline-color     : invert !default;\n$mdlext-accordion-header-disabled-color          : rgba($mdlext-accordion-header-background-color-base, 0.12) !default;\n$mdlext-accordion-header-secondary-color         : $mdlext-color-black !default;\n$mdlext-accordion-header-secondary-color-disabled: rgba($mdlext-color-black, 0.26) !default;\n$mdlext-accordion-header-highlight-color         : darken($mdlext-accordion-header-border-color, 3%) !default;\n$mdlext-accordion-ripple-color                   : rgba(rgb-string-to-hex($color-accent-contrast), 0.5) !default;\n$mdlext-accordion-header-padding                 : 8px !default;\n$mdlext-accordion-header-height                  : 56px !default;\n$mdlext-accordion-content-padding                : $mdlext-accordion-header-padding !default;\n$mdlext-accordion-content-color                  : inherit !default;\n$mdlext-accordion-content-background-color       : transparent !default;\n\n\n/* ==========     Dialog     ========== */\n$mdlext-dialog-padding           : 0;\n$mdlext-dialog-background-color  : transparent !default;\n$mdlext-dialog-backdrop-color    : rgba(0, 0, 0, 0.86) !default;\n$mdlext-dialog-open-animation    : 0.5s 0.2s forwards !default;\n$mdlext-dialog-backdrop-animation: 0.2s forwards !default;\n\n\n/* ==========     Lightbox     ========== */\n$mdlext-lightbox-background-color           : $card-background-color !default;\n$mdlext-lightbox-border                     : 0 !default;\n$mdlext-lightbox-border-radius              : 0 !default;\n$mdlext-lightbox-figure-margin              : 0 !default;\n$mdlext-lightbox-figure-padding             : 0 !default;\n$mdlext-lightbox-figcaption-background-color: rgba(255, 255, 255, 0.76) !default;\n$mdlext-lightbox-footer-background-color    : rgba(255, 255, 255, 0.86) !default;\n\n\n/* ==========  Lightboard  ========== */\n$mdlext-lightboard-medium-small-breakpoint     : $grid-tablet-breakpoint !default;          // 480\n$mdlext-lightboard-medium-breakpoint           : $grid-tablet-breakpoint + 180px !default;  // 480 + 180\n$mdlext-lightboard-medium-large-breakpoint     : $grid-desktop-breakpoint !default;         // 840\n$mdlext-lightboard-large-breakpoint            : $grid-desktop-breakpoint + 360px !default; // 840+360\n\n$mdlext-lightboard-small-gutter                : 2px !default;\n$mdlext-lightboard-small-margin                : 0 !default;\n$mdlext-lightboard-small-columns               : 2 !default;\n$mdlext-lightboard-small-frame-width           : 8px !default;\n\n$mdlext-lightboard-medium-small-gutter         : 4px !default;\n$mdlext-lightboard-medium-small-margin         : 0 !default;\n$mdlext-lightboard-medium-small-columns        : 4 !default;\n$mdlext-lightboard-medium-small-frame-width    : 8px !default;\n\n$mdlext-lightboard-medium-gutter               : 4px !default;\n$mdlext-lightboard-medium-margin               : 0 !default;\n$mdlext-lightboard-medium-columns              : 5 !default;\n$mdlext-lightboard-medium-frame-width          : 8px !default;\n\n$mdlext-lightboard-medium-large-gutter         : 8px !default;\n$mdlext-lightboard-medium-large-margin         : 0 !default;\n$mdlext-lightboard-medium-large-columns        : 6 !default;\n$mdlext-lightboard-medium-large-frame-width    : 12px !default;\n\n$mdlext-lightboard-large-gutter                : 8px !default;\n$mdlext-lightboard-large-margin                : 0 !default;\n$mdlext-lightboard-large-columns               : 7 !default;\n$mdlext-lightboard-large-frame-width           : 12px !default;\n\n$mdlext-lightboard-slide-max-size              : 250px !default;\n$mdlext-lightboard-slide-border-color          : #D8D8D8 !default;\n$mdlext-lightboard-slide-background-color      : #F8F8F8 !default;\n$mdlext-lightboard-slide-border-radius         : 5px !default;\n$mdlext-lightboard-slide-inner-border-radius   : 3px !default;\n$mdlext-lightboard-slide-box-shadow            : 2px 2px 6px -1px rgba(219, 215, 219, 0.5) !default;\n$mdlext-lightboard-slide-border-color-hover    : #B8B8B8 !default;\n$mdlext-lightboard-slide-background-color-hover: #E8E8E8 !default;\n$mdlext-lightboard-slide-active-bacground-color: #E8E8E8 !default;\n$mdlext-lightboard-slide-box-shadow-hover      : 2px 2px 12px -1px rgba(219, 215, 219, 1) !default;\n$mdlext-lightboard-ripple-color                : $tab-highlight-color !default;\n$mdlext-lightboard-focus-outline-color         : inherit !default;\n$mdlext-lightboard-figcaption-text-color       : rgb-string-to-hex($palette-grey-400) !default;\n\n\n/* ==========  Carousel  ========== */\n$mdlext-carousel-slide-border-top-width        : 2px !default;\n$mdlext-carousel-slide-border-top-color        : rgb-string-to-hex($color-accent) !default;\n$mdlext-carousel-slide-margin-horizontal       : 0;\n$mdlext-carousel-slide-figcaption-color        : $mdlext-lightboard-figcaption-text-color !default;\n$mdlext-carousel-slide-ripple-color            : $mdlext-lightboard-ripple-color !default;\n\n\n/* ==========  Bordered fields  ========== */\n$mdlext-bordered-field-vertical-spacing-top           : 0 !default;\n$mdlext-bordered-field-vertical-spacing-bottom        : $input-text-vertical-spacing !default;\n\n$mdlext-bordered-field-input-text-font-size           : $input-text-font-size !default;\n$mdlext-bordered-field-font-weight                    : normal !default;\n$mdlext-bordered-field-border-width                   : 1px !default;\n$mdlext-bordered-field-border-radius                  : 3px !default;\n$mdlext-bordered-field-padding                        : $input-text-padding + 4px !default;\n$mdlext-bordered-field-padding-top                    : $input-text-vertical-spacing !default;\n$mdlext-bordered-field-padding-bottom                 : $input-text-padding !default;\n\n$mdlext-bordered-field-input-text-color               : inherit !default;\n$mdlext-bordered-field-border-color                   : rgba($mdlext-color-black, 0.26) !default;\n$mdlext-bordered-field-background-color               : rgba(#FFFFFF, 0.2) !default;\n$mdlext-bordered-field-focus-border-color             : rgb-string-to-hex($color-primary) !default;\n$mdlext-bordered-field-focus-background-color         : rgba(#EEEEEE, 0.2) !default;\n\n$mdlext-bordered-field-input-text-disabled-text-color : rgba($mdlext-color-black, 0.12) !default;\n$mdlext-bordered-field-disabled-border-color          : rgba($mdlext-color-black, 0.12) !default;\n$mdlext-bordered-field-disabled-background-color      : $mdlext-bordered-field-background-color !default;\n\n$mdlext-bordered-field-input-text-error-color         : $mdlext-bordered-field-input-text-color !default;\n$mdlext-bordered-field-error-border-color             : rgb-string-to-hex($input-text-error-color) !default;\n$mdlext-bordered-field-error-background-color         : rgba(lighten($mdlext-bordered-field-error-border-color, 50%), 0.5) !default;\n$mdlext-bordered-field-error-focus-border-color       : darken($mdlext-bordered-field-error-border-color, 10%) !default;\n$mdlext-bordered-field-error-focus-background-color   : $mdlext-bordered-field-error-background-color !default;\n\n$mdlext-bordered-field-input-text-label-color         : rgba($mdlext-color-black, 0.26) !default;\n$mdlext-bordered-field-input-text-label-focus-color   : $mdlext-bordered-field-focus-border-color !default;\n$mdlext-bordered-field-input-text-label-error-color   : $mdlext-bordered-field-error-border-color !default;\n$mdlext-bordered-field-input-text-label-disabled-color: rgba($mdlext-color-black, 0.12) !default;\n\n$mdlext-bordered-field-label-font-size                : $mdlext-bordered-field-input-text-font-size !default;\n$mdlext-bordered-field-floating-label-font-size       : $input-text-floating-label-fontsize !default;\n$mdlext-bordered-field-floating-label-font-weight     : normal !default;\n\n$mdlext-bordered-field-height                         : $mdlext-bordered-field-padding-top + $mdlext-bordered-field-padding-bottom + $mdlext-bordered-field-input-text-font-size + 6px !default;\n$mdlext-bordered-field-floating-label-focus-bottom    : $mdlext-bordered-field-height - $mdlext-bordered-field-floating-label-font-size - $mdlext-bordered-field-padding-top/2 !default;\n\n\n// MDL can not handle required attribute properly. Planned for MDL-v2\n//$mdlext-bordered-field-required-border-color          : rgba(rgb-string-to-hex($color-accent), 0.8) !default;\n//$mdlext-bordered-field-required-background-color      : $mdlext-bordered-field-background-color !default;\n//$mdlext-bordered-field-required-focus-border-color    : rgba(rgb-string-to-hex($color-accent), 0.8) !default;\n//$mdlext-bordered-field-required-focus-background-color: $mdlext-bordered-field-background-color !default;\n//$mdlext-bordered-field-label-required-color           : $mdlext-bordered-field-required-border-color !default;\n\n\n\n/* ==========  Color Themes  ========== */\n\n// ----------------------------------------------------------------\n// Light Color Theme.\n// ----------------------------------------------------------------\n$mdlext-light-color-primary:                      #4CAF50 !default;\n$mdlext-light-color-primary-dark:                 #388E3C !default;\n$mdlext-light-color-primary-light:                #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed\n$mdlext-light-color-primary-contrast:             #C8E6C9 !default;  // text color on primary/primary dark background\n$mdlext-light-color-accent:                       #E040FB !default;\n$mdlext-light-color-accent-light:                 #E040FB !default;  // Fallback color. Set to color-accent if fallback is not needed\n$mdlext-light-color-accent-contrast:              #FAFAFA !default;\n\n$mdlext-light-content-background-color:           #FAFAFA !default;                         // background color on content (paper/card) background\n$mdlext-light-text-color-primary:                 rgba($mdlext-color-black, 0.87) !default; // text color on content (paper/card) background\n$mdlext-light-text-color-secondary:               rgba($mdlext-color-black, 0.54) !default; // text color on content (paper/card) background\n$mdlext-light-text-color-disabled:                rgba($mdlext-color-black, 0.38) !default; // disabled text, hint text, and icons\n$mdlext-light-divider-color:                      rgba($mdlext-color-black, 0.12) !default; // -> $card-border-color\n$mdlext-light-error-color:                        #D32F2F !default;\n\n// Anchor\n$mdlext-light-text-link-color:                    $mdlext-light-color-accent !default;\n\n// Card\n$mdlext-light-card-background-color:              $mdlext-light-content-background-color !default;\n$mdlext-light-card-text-color:                    $mdlext-light-text-color-primary !default;\n$mdlext-light-card-image-placeholder-color:       $mdlext-light-color-accent !default;\n$mdlext-light-card-supporting-text-text-color:    rgba($mdlext-color-black, 0.54) !default;\n$mdlext-light-card-border-color:                  rgba(0, 0, 0, 0.1) !default;\n$mdlext-light-card-subtitle-color:                rgba($mdlext-color-black, 0.54) !default;\n\n//  Item\n\n// Default Item Colors\n$mdlext-light-default-item-text-color:            rgba($mdlext-color-black, 0.87) !default;\n$mdlext-light-default-item-outline-color:         $mdlext-palette-grey-400 !default;\n$mdlext-light-default-item-hover-bg-color:        $mdlext-palette-grey-200 !default;\n$mdlext-light-default-item-focus-bg-color:        $mdlext-palette-grey-200 !default;\n$mdlext-light-default-item-active-bg-color:       $mdlext-palette-grey-300 !default;\n$mdlext-light-default-item-divider-color:         rgba($mdlext-color-black, 0.12) !default;\n\n// Disabled Button Colors\n$mdlext-light-disabled-item-text-color:           $mdlext-palette-grey-400 !default;\n\n// Dropdown menu / menu-button\n$mdlext-light-default-dropdown-bg-color:          $mdlext-color-white !default;\n\n// Badge\n$mdlext-light-badge-color:                        $mdlext-light-color-accent-contrast !default;\n$mdlext-light-badge-color-inverse:                $mdlext-light-color-accent !default;\n$mdlext-light-badge-background:                   $mdlext-light-color-accent !default;\n$mdlext-light-badge-background-inverse:           $mdlext-light-color-accent-contrast !default;\n\n// Default button colors.\n$mdlext-light-button-primary-color:               rgba($mdlext-palette-grey-500, 0.20) !default;\n$mdlext-light-button-secondary-color:             $mdlext-color-black !default;\n$mdlext-light-button-hover-color:                 $mdlext-light-button-primary-color !default;\n$mdlext-light-button-active-color:                rgba($mdlext-palette-grey-500, 0.40) !default;\n$mdlext-light-button-focus-color:                 rgba($mdlext-color-black, 0.12) !default;\n\n// Colored button colors.\n$mdlext-light-button-primary-color-alt:           $mdlext-light-color-primary-light !default;\n$mdlext-light-button-secondary-color-alt:         $mdlext-light-color-primary-contrast !default;\n$mdlext-light-button-hover-color-alt:             darken($mdlext-light-color-primary-light, 10%) !default;\n$mdlext-light-button-active-color-alt:            darken($mdlext-light-color-primary-light, 10%) !default;\n$mdlext-light-button-focus-color-alt:             $mdlext-light-button-focus-color !default;\n\n// Ripple color for colored raised buttons.\n$mdlext-light-button-ripple-color-alt:            $mdlext-light-color-primary-contrast !default;\n\n// Disabled button colors.\n$mdlext-light-button-primary-color-disabled:      rgba($mdlext-color-black, 0.12) !default;\n$mdlext-light-button-secondary-color-disabled:    rgba($mdlext-color-black, 0.26) !default;\n\n// FAB colors and sizes.\n$mdlext-light-button-fab-color-alt:               $mdlext-light-color-accent !default;\n$mdlext-light-button-fab-hover-color-alt:         $mdlext-light-color-accent !default;\n$mdlext-light-button-fab-active-color-alt:        $mdlext-light-color-accent !default;\n$mdlext-light-button-fab-text-color-alt:          $mdlext-light-color-accent-contrast !default;\n$mdlext-light-button-fab-ripple-color-alt:        $mdlext-light-color-accent-contrast !default;\n\n// Slider\n$mdlext-light-range-bg-color:                     rgba($mdlext-color-black, 0.26) !default;\n$mdlext-light-range-color:                        $mdlext-light-color-accent-light !default;\n$mdlext-light-range-faded-color:                  rgba($mdlext-light-color-accent-light, 0.26) !default;\n$mdlext-light-range-bg-focus-color:               rgba($mdlext-color-black, 0.12) !default;\n\n// Textfields\n$mdlext-light-input-text-background-color:        transparent !default;\n$mdlext-light-input-text-label-color:             rgba($mdlext-color-black, 0.54) !default;\n$mdlext-light-input-text-bottom-border-color:     rgba($mdlext-color-black, 0.26) !default;\n$mdlext-light-input-text-highlight-color:         $mdlext-light-color-accent-light !default;\n$mdlext-light-input-text-disabled-color:          rgba($mdlext-color-black, 0.12) !default;\n$mdlext-light-input-text-disabled-text-color:     rgba($mdlext-color-black, 0.26) !default;\n$mdlext-light-input-text-error-color:             $mdlext-light-error-color !default;\n\n// Checkboxes\n$mdlext-light-checkbox-color:                     $mdlext-light-color-accent-light !default;\n$mdlext-light-checkbox-off-color:                 rgba($mdlext-color-black, 0.54) !default;\n$mdlext-light-checkbox-disabled-color:            rgba($mdlext-color-black, 0.26) !default;\n$mdlext-light-checkbox-focus-color:               rgba($mdlext-light-color-accent-light, 0.26) !default;\n\n// Icon Toggles\n$mdlext-light-icon-toggle-color:                  $mdlext-palette-grey-700 !default;\n$mdlext-light-icon-toggle-focus-color:            $mdlext-light-button-focus-color !default;\n$mdlext-light-icon-toggle-checked-color:          $mdlext-light-color-accent-light !default;\n$mdlext-light-icon-toggle-checked-focus-color:    rgba($mdlext-light-color-accent-light, 0.26) !default;\n$mdlext-light-icon-toggle-disabled-color:         rgba($mdlext-color-black, 0.26) !default;\n\n// Radio Buttons\n$mdlext-light-radio-color:                        $mdlext-light-color-accent-light !default;\n$mdlext-light-radio-off-color:                    rgba($mdlext-color-black, 0.54) !default;\n$mdlext-light-radio-disabled-color:               rgba($mdlext-color-black, 0.26) !default;\n\n// Switches\n$mdlext-light-switch-color:                       $mdlext-light-color-accent-light !default;\n$mdlext-light-switch-faded-color:                 rgba($mdlext-light-color-accent-light, 0.26) !default;\n$mdlext-light-switch-thumb-color:                 $mdlext-light-switch-color !default;\n$mdlext-light-switch-track-color:                 rgba($mdlext-light-color-accent-light, 0.54) !default;\n$mdlext-light-switch-off-thumb-color:             $mdlext-palette-grey-50 !default;\n$mdlext-light-switch-off-track-color:             rgba($mdlext-color-black, 0.26) !default;\n$mdlext-light-switch-disabled-thumb-color:        $mdlext-palette-grey-400 !default;\n$mdlext-light-switch-disabled-track-color:        rgba($mdlext-color-black, 0.12) !default;\n\n// Data table\n$mdlext-light-data-table-background-color:               $mdlext-light-content-background-color !default;\n$mdlext-light-data-table-header-color:                   rgba($mdlext-color-black, 0.54) !default;\n$mdlext-light-data-table-header-sorted-color:            rgba($mdlext-color-black, 0.87) !default;\n$mdlext-light-data-table-header-sorted-icon-hover-color: rgba($mdlext-color-black, 0.26) !default;\n$mdlext-light-data-table-hover-color:                    $mdlext-palette-grey-200 !default;\n$mdlext-light-data-table-selection-color:                $mdlext-palette-grey-200 !default;\n$mdlext-light-data-table-divider-color:                  rgba($mdlext-color-black, 0.12) !default;\n$mdlext-light-data-table-dividers:                       1px solid $mdlext-light-data-table-divider-color !default;\n\n\n// Selectfield\n// Uses variables from textfield\n$mdlext-selectfield-arrow-width: 0.7em;\n$mdlext-selectfield-arrow-length: 0.5em;\n\n\n// Accordion\n$mdlext-light-accordion-header-background-color-base   : $mdlext-palette-grey-600 !default;\n$mdlext-light-accordion-header-background-color        : rgba($mdlext-light-accordion-header-background-color-base, 0.20) !default;\n$mdlext-light-accordion-header-background-open-color   : rgba($mdlext-light-accordion-header-background-color-base, 0.30) !default;\n$mdlext-light-accordion-header-background-active-color : rgba($mdlext-light-accordion-header-background-color-base, 0.40) !default;\n$mdlext-light-accordion-header-border-color            : rgba($mdlext-light-accordion-header-background-color-base, 0.50) !default;\n$mdlext-light-accordion-header-background-hover-color  : rgba($mdlext-light-accordion-header-background-color-base, 0.40) !default;\n$mdlext-light-accordion-header-focus-outline-color     : darken($mdlext-light-accordion-header-border-color, 3%) !default;\n$mdlext-light-accordion-header-disabled-color          : rgba($mdlext-light-accordion-header-background-color-base, 0.12) !default;\n$mdlext-light-accordion-header-secondary-color         : $mdlext-color-black !default;\n$mdlext-light-accordion-header-secondary-color-disabled: rgba($mdlext-color-black, 0.26) !default;\n$mdlext-light-accordion-header-highlight-color         : darken($mdlext-light-accordion-header-border-color, 6%) !default;\n$mdlext-light-accordion-ripple-color                   : rgba($mdlext-light-accordion-header-background-color-base, 0.4) !default;\n$mdlext-light-accordion-content-color                  : inherit !default;\n$mdlext-light-accordion-content-background-color       : transparent !default;\n\n\n// Bordered fields\n$mdlext-light-bordered-field-input-text-color               : inherit !default;\n$mdlext-light-bordered-field-border-color                   : $mdlext-light-input-text-bottom-border-color !default;\n$mdlext-light-bordered-field-background-color               : rgba($mdlext-light-content-background-color, 0.1) !default;\n$mdlext-light-bordered-field-focus-border-color             : $mdlext-light-color-accent-light !default;\n$mdlext-light-bordered-field-focus-background-color         : rgba(darken($mdlext-light-bordered-field-background-color, 10%), 0.1) !default;\n\n$mdlext-light-bordered-field-input-text-disabled-text-color : $mdlext-light-input-text-disabled-text-color;\n$mdlext-light-bordered-field-disabled-border-color          : $mdlext-light-input-text-disabled-color !default;\n$mdlext-light-bordered-field-disabled-background-color      : $mdlext-light-bordered-field-background-color !default;\n\n$mdlext-light-bordered-field-input-text-error-color         : $mdlext-light-bordered-field-input-text-color !default;\n$mdlext-light-bordered-field-error-border-color             : $mdlext-light-input-text-error-color !default;\n$mdlext-light-bordered-field-error-background-color         : rgba(lighten($mdlext-light-bordered-field-error-border-color, 50%), 0.5) !default;\n$mdlext-light-bordered-field-error-focus-border-color       : darken($mdlext-light-bordered-field-error-border-color, 10%) !default;\n$mdlext-light-bordered-field-error-focus-background-color   : $mdlext-light-bordered-field-error-background-color !default;\n\n$mdlext-light-bordered-field-input-text-label-color         : $mdlext-light-input-text-label-color !default;\n$mdlext-light-bordered-field-input-text-label-focus-color   : $mdlext-light-bordered-field-focus-border-color !default;\n$mdlext-light-bordered-field-input-text-label-error-color   : $mdlext-light-bordered-field-error-border-color !default;\n$mdlext-light-bordered-field-input-text-label-disabled-color: $mdlext-light-input-text-disabled-text-color !default;\n\n\n\n// ----------------------------------------------------------------\n// Dark Color Theme.\n// ----------------------------------------------------------------\n$mdlext-dark-color-primary:                       #FFC107 !default;\n$mdlext-dark-color-primary-dark:                  #FFA000 !default;\n$mdlext-dark-color-primary-light:                 #FFC107 !default;             // Fallback color. Set to color-primary if fallback is not needed\n$mdlext-dark-color-primary-contrast:              #FFF8E1 !default;             // text color on primary/primary dark background\n$mdlext-dark-color-accent:                        #536DFE !default;\n$mdlext-dark-color-accent-light:                  #536DFE !default;             // Fallback color. Set to color-accent if fallback is not needed\n$mdlext-dark-color-accent-contrast:               #FFFFFF !default;\n\n$mdlext-dark-content-background-color:            #303030 !default;             // #424242 or #303030, background color on content (paper/card) background\n$mdlext-dark-text-color-primary:                  rgba(#FFFFFF, 1.00) !default; // text color on content (paper/card) background\n$mdlext-dark-text-color-secondary:                rgba(#FFFFFF, 0.70) !default; // text color on content (paper/card) background\n$mdlext-dark-text-color-disabled:                 rgba(#FFFFFF, 0.50) !default; // disabled text, hint text, and icons\n$mdlext-dark-divider-color:                       rgba(#FFFFFF, 0.12) !default; // -> $card-border-color\n$mdlext-dark-error-color:                         #FF1744 !default;\n\n// Anchor\n$mdlext-dark-text-link-color:                     $mdlext-dark-color-accent !default;\n\n// Card\n$mdlext-dark-card-background-color:               $mdlext-dark-content-background-color !default;\n$mdlext-dark-card-text-color:                     $mdlext-dark-text-color-primary !default;\n$mdlext-dark-card-image-placeholder-color:        $mdlext-dark-color-accent !default;\n$mdlext-dark-card-supporting-text-text-color:     rgba($mdlext-color-white, 0.70) !default;\n$mdlext-dark-card-border-color:                   rgba(0, 0, 0, 0.1) !default;\n$mdlext-dark-card-subtitle-color:                 rgba($mdlext-color-black, 0.70) !default;\n\n//  Item\n\n// Default Item Colors\n$mdlext-dark-default-item-text-color:             rgba($mdlext-color-white, 0.87) !default;\n$mdlext-dark-default-item-outline-color:          $mdlext-palette-grey-700 !default;\n$mdlext-dark-default-item-hover-bg-color:         $mdlext-palette-grey-900 !default;\n$mdlext-dark-default-item-focus-bg-color:         $mdlext-palette-grey-900 !default;\n$mdlext-dark-default-item-active-bg-color:        $mdlext-palette-grey-800 !default;\n$mdlext-dark-default-item-divider-color:          rgba($mdlext-color-white, 0.20) !default;\n\n// Disabled Button Colors\n$mdlext-dark-disabled-item-text-color:            $mdlext-palette-grey-500 !default;\n\n// Dropdown menu / menu-button\n$mdlext-dark-default-dropdown-bg-color:           $mdlext-color-black !default;\n\n// Badge\n$mdlext-dark-badge-color:                         $mdlext-dark-color-accent-contrast !default;\n$mdlext-dark-badge-color-inverse:                 $mdlext-dark-color-accent !default;\n$mdlext-dark-badge-background:                    $mdlext-dark-color-accent !default;\n$mdlext-dark-badge-background-inverse:            $mdlext-dark-color-accent-contrast !default;\n\n// Default button colors.\n$mdlext-dark-button-primary-color:                rgba($mdlext-palette-grey-500, 0.20) !default;\n$mdlext-dark-button-secondary-color:              $mdlext-color-white !default;\n$mdlext-dark-button-hover-color:                  $mdlext-dark-button-primary-color !default;\n$mdlext-dark-button-active-color:                 rgba($mdlext-palette-grey-500, 0.40) !default;\n$mdlext-dark-button-focus-color:                  rgba($mdlext-color-black, 0.12) !default;\n\n// Colored button colors.\n$mdlext-dark-button-primary-color-alt:            $mdlext-dark-color-primary-light !default;\n$mdlext-dark-button-secondary-color-alt:          $mdlext-dark-color-primary-contrast !default;\n$mdlext-dark-button-hover-color-alt:              darken($mdlext-dark-color-primary-light, 10%) !default;\n$mdlext-dark-button-active-color-alt:             darken($mdlext-dark-color-primary-light, 10%) !default;\n$mdlext-dark-button-focus-color-alt:              $mdlext-dark-button-focus-color !default;\n\n// Ripple color for colored raised buttons.\n$mdlext-dark-button-ripple-color-alt:             $mdlext-dark-color-primary-contrast !default;\n\n// Disabled button colors.\n$mdlext-dark-button-primary-color-disabled:       rgba($mdlext-color-white, 0.12) !default;\n$mdlext-dark-button-secondary-color-disabled:     rgba($mdlext-color-white, 0.26) !default;\n\n// FAB colors and sizes.\n$mdlext-dark-button-fab-color-alt:                $mdlext-dark-color-accent !default;\n$mdlext-dark-button-fab-hover-color-alt:          $mdlext-dark-color-accent !default;\n$mdlext-dark-button-fab-active-color-alt:         $mdlext-dark-color-accent !default;\n$mdlext-dark-button-fab-text-color-alt:           $mdlext-dark-color-accent-contrast !default;\n$mdlext-dark-button-fab-ripple-color-alt:         $mdlext-dark-color-accent-contrast !default;\n\n// Slider\n$mdlext-dark-range-bg-color:                      rgba($mdlext-color-white, 0.87) !default;\n$mdlext-dark-range-color:                         $mdlext-dark-color-accent-light !default;\n$mdlext-dark-range-faded-color:                   rgba($mdlext-dark-color-accent-light, 0.50) !default;\n$mdlext-dark-range-bg-focus-color:                rgba($mdlext-color-white, 0.50) !default;\n\n// Textfields\n$mdlext-dark-input-text-background-color:         transparent !default;\n$mdlext-dark-input-text-label-color:              rgba($mdlext-color-white, 0.50) !default;\n$mdlext-dark-input-text-bottom-border-color:      rgba($mdlext-color-white, 0.26) !default;\n$mdlext-dark-input-text-highlight-color:          $mdlext-dark-color-accent-light !default;\n$mdlext-dark-input-text-disabled-color:           rgba($mdlext-color-white, 0.12) !default;\n$mdlext-dark-input-text-disabled-text-color:      rgba($mdlext-color-white, 0.26) !default;\n$mdlext-dark-input-text-error-color:              $mdlext-dark-error-color !default;\n\n// Checkboxes\n$mdlext-dark-checkbox-color:                      $mdlext-dark-color-accent-light !default;\n$mdlext-dark-checkbox-off-color:                  rgba($mdlext-color-white, 0.50) !default;\n$mdlext-dark-checkbox-disabled-color:             rgba($mdlext-color-white, 0.26) !default;\n$mdlext-dark-checkbox-focus-color:                rgba($mdlext-dark-color-accent-light, 0.26) !default;\n\n// Icon Toggles\n$mdlext-dark-icon-toggle-color:                   $mdlext-palette-grey-700 !default;\n$mdlext-dark-icon-toggle-focus-color:             $mdlext-dark-button-focus-color !default;\n$mdlext-dark-icon-toggle-checked-color:           $mdlext-dark-color-accent-light !default;\n$mdlext-dark-icon-toggle-checked-focus-color:     rgba($mdlext-dark-color-accent-light, 0.26) !default;\n$mdlext-dark-icon-toggle-disabled-color:          rgba($mdlext-color-white, 0.50) !default;\n\n// Radio Buttons\n$mdlext-dark-radio-color:                         $mdlext-dark-color-accent-light !default;\n$mdlext-dark-radio-off-color:                     rgba($mdlext-color-white, 0.50) !default;\n$mdlext-dark-radio-disabled-color:                rgba($mdlext-color-white, 0.26) !default;\n\n// Switches\n$mdlext-dark-switch-color:                        $mdlext-dark-color-accent-light !default;\n$mdlext-dark-switch-faded-color:                  rgba($mdlext-dark-color-accent-light, 0.26) !default;\n$mdlext-dark-switch-thumb-color:                  $mdlext-dark-switch-color !default;\n$mdlext-dark-switch-track-color:                  rgba($mdlext-dark-color-accent-light, 0.5) !default;\n$mdlext-dark-switch-off-thumb-color:              $mdlext-palette-grey-50 !default;\n$mdlext-dark-switch-off-track-color:              rgba($mdlext-color-white, 0.26) !default;\n$mdlext-dark-switch-disabled-thumb-color:         $mdlext-palette-grey-50 !default;\n$mdlext-dark-switch-disabled-track-color:         rgba($mdlext-color-white, 0.12) !default;\n\n// Data table\n$mdlext-dark-data-table-background-color:               $mdlext-dark-content-background-color !default;\n$mdlext-dark-data-table-header-color:                   rgba($mdlext-color-white, 0.87) !default;\n$mdlext-dark-data-table-header-sorted-color:            rgba($mdlext-color-white, 0.87) !default;\n$mdlext-dark-data-table-header-sorted-icon-hover-color: rgba($mdlext-color-white, 0.26) !default;\n$mdlext-dark-data-table-hover-color:                    $mdlext-dark-default-item-hover-bg-color !default;\n$mdlext-dark-data-table-selection-color:                $mdlext-dark-default-item-active-bg-color !default;\n$mdlext-dark-data-table-divider-color:                  rgba($mdlext-color-white, 0.12) !default;\n$mdlext-dark-data-table-dividers:                       1px solid $mdlext-dark-data-table-divider-color !default;\n\n\n// Selectfield\n// Uses variables from textfield\n\n\n// Accordion\n$mdlext-dark-accordion-header-background-color-base   : $mdlext-color-black !default;\n$mdlext-dark-accordion-header-background-color        : rgba($mdlext-dark-accordion-header-background-color-base, 1.0) !default;\n$mdlext-dark-accordion-header-background-open-color   : rgba($mdlext-dark-accordion-header-background-color-base, 0.9) !default;\n$mdlext-dark-accordion-header-border-color            : $mdlext-palette-grey-800 !default;\n$mdlext-dark-accordion-header-background-hover-color  : rgba($mdlext-dark-accordion-header-background-color-base, 0.5) !default;\n$mdlext-dark-accordion-header-background-active-color : rgba($mdlext-dark-accordion-header-background-color-base, 0.6) !default;\n$mdlext-dark-accordion-header-focus-outline-color     : lighten($mdlext-dark-accordion-header-border-color, 40%) !default;\n$mdlext-dark-accordion-header-disabled-color          : rgba($mdlext-dark-accordion-header-background-color-base, 0.4) !default;\n$mdlext-dark-accordion-header-secondary-color         : $mdlext-dark-text-color-primary !default;\n$mdlext-dark-accordion-header-secondary-color-disabled: $mdlext-dark-text-color-disabled !default;\n$mdlext-dark-accordion-header-highlight-color         : lighten($mdlext-dark-accordion-header-border-color, 40%) !default;\n$mdlext-dark-accordion-ripple-color                   : rgba($mdlext-dark-accordion-header-background-color-base, 0.3) !default;\n$mdlext-dark-accordion-content-color                  : inherit !default;\n$mdlext-dark-accordion-content-background-color       : transparent !default;\n\n\n// Bordered fields\n$mdlext-dark-bordered-field-input-text-color               : inherit !default;\n$mdlext-dark-bordered-field-border-color                   : $mdlext-dark-input-text-bottom-border-color !default;\n$mdlext-dark-bordered-field-background-color               : rgba($mdlext-dark-content-background-color, 0.1) !default;\n$mdlext-dark-bordered-field-focus-border-color             : $mdlext-dark-color-accent-light !default;\n$mdlext-dark-bordered-field-focus-background-color         : rgba(darken($mdlext-dark-bordered-field-background-color, 10%), 0.1) !default;\n\n$mdlext-dark-bordered-field-input-text-disabled-text-color : $mdlext-dark-input-text-disabled-text-color;\n$mdlext-dark-bordered-field-disabled-border-color          : $mdlext-dark-input-text-disabled-color !default;\n$mdlext-dark-bordered-field-disabled-background-color      : $mdlext-dark-bordered-field-background-color !default;\n\n$mdlext-dark-bordered-field-input-text-error-color         : $mdlext-dark-bordered-field-input-text-color !default;\n$mdlext-dark-bordered-field-error-border-color             : $mdlext-dark-input-text-error-color !default;\n$mdlext-dark-bordered-field-error-background-color         : rgba($mdlext-dark-bordered-field-error-border-color, 0.1) !default;\n$mdlext-dark-bordered-field-error-focus-border-color       : darken($mdlext-dark-bordered-field-error-border-color, 10%) !default;\n$mdlext-dark-bordered-field-error-focus-background-color   : $mdlext-dark-bordered-field-error-background-color !default;\n\n$mdlext-dark-bordered-field-input-text-label-color         : $mdlext-dark-input-text-label-color !default;\n$mdlext-dark-bordered-field-input-text-label-focus-color   : $mdlext-dark-bordered-field-focus-border-color !default;\n$mdlext-dark-bordered-field-input-text-label-error-color   : $mdlext-dark-bordered-field-error-border-color !default;\n$mdlext-dark-bordered-field-input-text-label-disabled-color: $mdlext-dark-input-text-disabled-text-color !default;\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/_variables.scss","///\n/// Returns the opposite direction of each direction in a list\n/// Modified from: https://css-tricks.com/snippets/sass/opposite-direction-function/\n/// @author Hugo Giraudel\n/// @param {List} $directions - List of initial directions\n/// @return {List} - List of opposite directions\n@function mdlext-opposite-direction($directions) {\n  $opposite-directions: ();\n  $direction-map: (\n    'top':    'bottom',\n    'right':  'left',\n    'bottom': 'top',\n    'left':   'right',\n    'center': 'center',\n    'ltr':    'rtl',\n    'rtl':    'ltr'\n  );\n\n  @each $direction in $directions {\n    $direction: to-lower-case($direction);\n\n    @if map-has-key($direction-map, $direction) {\n      $opposite-directions: append($opposite-directions, unquote(map-get($direction-map, $direction)));\n    }\n    @else {\n      @warn \"No opposite direction can be found for `#{$direction}`. Direction omitted.\";\n    }\n  }\n\n  @return $opposite-directions;\n}\n\n///\n/// Strip unit from value\n/// @author Hugo Giraudel\n/// http://hugogiraudel.com/2013/08/12/sass-functions/\n/// https://css-tricks.com/snippets/sass/strip-unit-function/\n/// @param {Number} $number - Number to remove unit from\n/// @return {Number} - Unitless number\n\n@function strip-unit($number) {\n  @return if(type-of($number) == 'number' and not unitless($number), $number / ($number * 0 + 1), $number);\n}\n\n///\n/// Clamping a number means restricting it between min and max values.\n///    4 clamped to 1-3 equals 3.\n///   -5 clamped to 1-10 equals 1.\n///   42 clamped to 10-100 equals 42.\n/// @author Hugo Giraudel\n/// http://hugogiraudel.com/2013/08/12/sass-functions/\n/// @param {Number} $value - The value to clamp\n/// @param {Number} $min - min value in range\n/// @param {Number} $max - Max value in range\n/// @return {Number} - The clamped value\n\n@function clamp($value, $min, $max) {\n  @return if($value > $max, $max, if($value < $min, $min, $value));\n}\n\n///\n/// Convert one unit into another\n/// @author Hugo Giraudel\n/// http://www.sitepoint.com/understanding-sass-units/\n/// @param {Number} $value - Initial value\n/// @param {String} $unit - Desired unit\n/// @return {Number}\n/// @throw Error if `$unit` does not exist or if units are incompatible.\n\n/* stylelint-disable */\n@function convert-unit($value, $unit) {\n  $units: (\n    'px'  : 0px,\n    'cm'  : 0cm,\n    'mm'  : 0mm,\n    '%'   : 0%,\n    'ch'  : 0ch,\n    'in'  : 0in,\n    'em'  : 0em,\n    'rem' : 0rem,\n    'pt'  : 0pt,\n    'pc'  : 0pc,\n    'ex'  : 0ex,\n    'vw'  : 0vw,\n    'vh'  : 0vh,\n    'vmin': 0vmin,\n    'vmax': 0vmax,\n    'deg' : 0deg,\n    'turn': 0turn,\n    'rad' : 0rad,\n    'grad': 0grad,\n    's'   : 0s,\n    'ms'  : 0ms,\n    'Hz'  : 0Hz,\n    'kHz' : 0kHz,\n    'dppx': 0dppx,\n    'dpcm': 0dpcm,\n    'dpi' : 0dpi,\n  );\n\n  @if map-has-key($units, $unit) {\n    @return map-get($units, $unit) + $value;\n  }\n\n  @error \"Unknown unit `#{$unit}`.\";\n}\n/* stylelint-enable */\n\n\n///\n/// Replace `$search` with `$replace` in `$string`\n/// @author Hugo Giraudel, http://hugogiraudel.com/2014/01/13/sass-string-replacement-function/\n/// @param {String} $string - Initial string\n/// @param {String} $search - Substring to replace\n/// @param {String} $replace ('') - New value\n/// @return {String} - Updated string\n@function str-replace($string, $search, $replace: '') {\n  $index: str-index($string, $search);\n\n  @if $index {\n    @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n  }\n  @return $string;\n}\n\n///\n/// @function explode() -- split a string into a list of strings\n/// @author https://gist.github.com/danielpchen/3677421ea15dcf2579ff\n///  {string} $string: the string to be split\n///  {string} $delimiter: the boundary string\n///  @return {list} the result list\n@function explode($string, $delimiter: ',') {\n  $result: ();\n  @if $delimiter == \"\" {\n    @for $i from 1 through str-length($string) {\n      $result: append($result, str-slice($string, $i, $i));\n    }\n    @return $result;\n  }\n  $exploding: true;\n  @while $exploding {\n    $d-index: str-index($string, $delimiter);\n    @if $d-index {\n      @if $d-index > 1 {\n        $result: append($result, str-slice($string, 1, $d-index - 1));\n        $string: str-slice($string, $d-index + str-length($delimiter));\n      }\n      @else if $d-index == 1 {\n        $string: str-slice($string, 1, $d-index + str-length($delimiter));\n      }\n      @else {\n        $result: append($result, $string);\n        $exploding: false;\n      }\n    }\n    @else {\n      $result: append($result, $string);\n      $exploding: false;\n    }\n  }\n  @return $result;\n}\n\n///\n/// Add `$unit` to `$value`\n/// @author Hugo Giraudel\n///\n/// @param {Number} $value - Value to add unit to\n/// @param {String} $unit - String representation of the unit\n///\n/// @return {Number} - `$value` expressed in `$unit`\n/// @throw Error if `$unit` does not exist or if units are incompatible.\n///\n@function to-length($value, $unit) {\n  $units: (\n    'px'  : 1px,\n    'cm'  : 1cm,\n    'mm'  : 1mm,\n    '%'   : 1%,\n    'ch'  : 1ch,\n    'pc'  : 1pc,\n    'in'  : 1in,\n    'em'  : 1em,\n    'rem' : 1rem,\n    'pt'  : 1pt,\n    'ex'  : 1ex,\n    'vw'  : 1vw,\n    'vh'  : 1vh,\n    'vmin': 1vmin,\n    'vmax': 1vmax\n  );\n\n  @if not index(map-keys($units), $unit) {\n    @error('Invalid unit `#{$unit}`.');\n  }\n\n  @return $value * map-get($units, $unit);\n}\n\n///\n/// Casts a string into a number\n///\n/// @author Hugo Giraudel\n// @param {String | Number} $value - Value to be parsed\n///\n/// @return {Number}\n/// @throw Error if `$value` is not a number or a string.\n///\n@function to-number($value) {\n  @if type-of($value) == 'number' {\n    @return $value;\n  }\n  @else if type-of($value) != 'string' {\n    @error('Value for `to-number` should be a number or a string.');\n  }\n\n  $result: 0;\n  $digits: 0;\n  $minus: str-slice($value, 1, 1) == '-';\n  $numbers: ('0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9);\n\n  @for $i from if($minus, 2, 1) through str-length($value) {\n    $character: str-slice($value, $i, $i);\n\n    @if not (index(map-keys($numbers), $character) or $character == '.') {\n      @return to-length(if($minus, -$result, $result), str-slice($value, $i));\n    }\n\n    @if $character == '.' {\n      $digits: 1;\n    }\n    @else if $digits == 0 {\n      $result: $result * 10 + map-get($numbers, $character);\n    }\n    @else {\n      $digits: $digits * 10;\n      $result: $result + map-get($numbers, $character) / $digits;\n    }\n  }\n\n  @return if($minus, -$result, $result);\n}\n\n///\n/// Convert `$rgb-string` to a number list\n/// @author Leif Olsen\n/// @param {String | Number} $value - Value to be parsed\n/// @return {list} the rgb number list\n/// @throw Error if `$value` is not a number, color or a string.\n@function rgb-string-to-numbers($value) {\n  @if type-of($value) == 'number' or type-of($value) == 'color' {\n    @return $value;\n  }\n  @else if type-of($value) != 'string' {\n    @error('Value for `rgb-string-to-numbers` should be a number or a string.');\n  }\n\n  $s: str-replace($value, \"rgba\");\n  $s: str-replace($s, \"rgb\");\n  $s: str-replace($s, \"(\");\n  $s: str-replace($s, \")\");\n  $s: str-replace($s, \" \");\n  $l: explode($s);\n  $result: ();\n  @for $i from 1 through length($l) {\n    $result: append($result, to-number(nth($l, $i)));\n  }\n  @return $result;\n}\n\n///\n/// Convert `$rgb-string` to a corresponding hex value\n/// @author Leif Olsen\n/// @param {String | Number} $value - Value to be parsed\n/// @return {number} the rgb hex value\n/// @throw Error if `$value` is not a number, color or a string.\n@function rgb-string-to-hex($value) {\n  @if type-of($value) == 'number' or type-of($value) == 'color' {\n    @return $value;\n  }\n  @else if type-of($value) != 'string' {\n    @error('Value for `rgb-string-to-numbers` should be a number or a string.');\n  }\n  $l: rgb-string-to-numbers($value);\n  @return rgb(nth($l, 1), nth($l, 2), nth($l, 3));\n}\n\n\n///\n/// Convert hex color to a coresponding `$rgb-string`\n/// @author https://github.com/google/material-design-lite/issues/1689\n/// @param {Number} $hexColor - Value to convert\n/// @return {String} the rgb string value\n///\n/// @example - $color-primary: hex-to-string(#333);\n@function hex-to-rgb-string($hexColor) {\n  // 0.999999 val in alpha actually compiles to 1.0\n  $rgbaVal:  inspect(rgba($hexColor, 0.9999999));\n\n  // slice substring between 'rgba(' and '1.0)'\n  @return str-slice($rgbaVal, 6, str-length($rgbaVal)-4);\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/_functions.scss","@charset \"UTF-8\";\n\n/**\n * @license\n * Copyright 2016-2017 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n@import \"../mixins\";\n\n.mdlext-aria-expanded-plus-minus {\n  @include mdlext-aria-expanded-toggle($font-family: inherit);\n}\n\n.mdlext-aria-expanded-more-less {\n  @include mdlext-aria-expanded-toggle($icon: 'expand_more', $icon-expanded: 'expand_less');\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/aria-expanded-toggle/_aria-expanded-toggle.scss","@import \"functions\";\n\n/// Triangle helper mixin\n/// Modified from: http://blustemy.io/drawing-pure-css-arrows-with-mixins/\n///                https://css-tricks.com/snippets/sass/css-triangle-mixin/\n/// @param {Direction} $direction - Triangle direction, either `top`, `right`, `bottom` or `left`\n/// @param {Color} $color [currentcolor] - Triangle color\n/// @param {Length} $size [1em] - Triangle size\n@mixin mdlext-arrow($direction: bottom, $base-width: 15px, $length: 10px, $color: inherit, $font-size: inherit) {\n  content: '';\n  width: 0;\n  height: 0;\n  font-size: $font-size;\n  line-height: $font-size;\n  border-#{mdlext-opposite-direction($direction)}: $length solid $color;\n  border-#{mdlext-opposite-direction($direction)}-width: $length;\n  border-#{mdlext-opposite-direction($direction)}-style: solid;\n  border-#{mdlext-opposite-direction($direction)}-color: $color;\n\n  $perpendicular-borders: ($base-width / 2) solid transparent;\n\n  @if $direction == top or $direction == bottom {\n    border-left: $perpendicular-borders;\n    border-right: $perpendicular-borders;\n  }\n  @else if $direction == right or $direction == left {\n    border-bottom: $perpendicular-borders;\n    border-top: $perpendicular-borders;\n  }\n}\n\n/// Hide element while making it readable for screen readers\n/// Copied from HTML5Boilerplate:\n/// https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L119-L133\n@mixin mdlext-visually-hidden() {\n  border: 0;\n  clip: rect(0 0 0 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n\n/// Toggle for aria-expanded attribute\n///\n/// @author Leif Olsen\n/// @param {Font} $font-family ['Material Icons'] - Font family\n/// @param {Length} $font-size [24px] - Font size\n/// @param {string} $icon ['+'] - icon to display when 'aria-expanded=\"false\"'\n/// @param {string} $icon-expanded ['-'] - icon to display when 'aria-expanded=\"true\"'\n/// @link https://github.com/google/material-design-icons Modified from '.material-icons' class\n/// @param {Length} $icon-offset [0] - Icon offset\n///\n/// @example - +/- toggle\n///   .plus-minus {\n///     @include mdlext-aria-expanded-toggle($font-family: inherit, $font-size: inherit);\n///   }\n///   <div aria-expanded=\"false\">\n///     <i class=\"plus-minus\"></i>\n///   </div>\n///\n/// @example - Material Icons, expand-more/expand_less\n///   .more-less {\n///     @include mdlext-aria-expanded-toggle($content: 'expand_more', $content-expanded: 'expand_less');\n///   }\n///   <div aria-expanded=\"true\">\n///     <i class=\"more-less\"></i>\n///   </div>\n\n@mixin mdlext-aria-expanded-toggle($font-family: 'Material Icons', $font-size: 24px, $icon: '+', $icon-expanded: '-', $icon-offset: 0) {\n  font-family: $font-family;\n  font-weight: inherit;\n  font-style: inherit;\n  font-size: $font-size;  // Preferred icon size\n  display: inline-block;\n  width: 1em;\n  height: 1em;\n  line-height: 1;\n  text-transform: none;\n  letter-spacing: normal;\n  word-wrap: normal;\n  white-space: nowrap;\n  direction: ltr;\n  vertical-align: middle;\n\n  // Support for all WebKit browsers.\n  -webkit-font-smoothing: antialiased;\n  -webkit-font-feature-settings: 'liga';\n\n  // Support for Safari and Chrome.\n  text-rendering: optimizeLegibility;\n\n  // Support for Firefox.\n  -moz-osx-font-smoothing: grayscale;\n\n  // Support for IE.\n  font-feature-settings: 'liga';\n\n  &::after {\n    content: $icon;\n    margin-left: $icon-offset;\n  }\n\n  [aria-expanded='true'] > & {\n    &::after {\n      content: $icon-expanded;\n      margin-left: $icon-offset;\n    }\n  }\n}\n\n\n/// Keyframe mixin\n/// Modified from: http://sassbreak.com/nested-keyframe-rules-sass/\n/// Modified from: http://sassbreak.com/sass-tools-and-snippets/\n///\n/// @example\n///\n/// .some-element {\n///   animation: 10s linear infinite;\n///\n///   @include mdlext-animation-keyframes {\n///     from {\n///       background-position: 0% 0%;\n///     }\n///     to {\n///       background-position: 114.2857% 0%;\n///     }\n///   }\n/// }\n\n@mixin mdlext-animation-keyframes {\n  $animation-name: unique-id();\n  animation-name: $animation-name;\n\n  @keyframes #{$animation-name} {\n    @content;\n  }\n}\n\n\n/// Flexible title mixin\n/// A flexible title consists of three regions, left, middle and right.\n/// The left and right regions are optional and will typically contain state icons\n/// or act as a toolbar. The middle region should contain the title text.\n///\n/// @author Leif Olsen\n/// @param {String} $class - class name\n/// @gutter {Length} [8px] - horizontal spacing between title elements\n///\n/// @example\n///\n/// @include mdlext-flexible-title(my-title) {\n///   overflow: hidden;\n///   background-color: yellow;\n///   &__text {\n///     font-size: 20px;\n///     letter-spacing: 0.02em;\n///     font-weight: 400;\n///     line-height: 1.1;\n///   }\n/// }\n///\n/// <header class=\"my-title\">\n///   <i class=\"material-icons\" role=\"presentation\" style=\"font-size: 28px;\">info</i>\n///   <h2 class=\"my-title__text\">A title</h2>\n///   <span class=\"my-title__spacer\"></span>\n///   <i class=\"mdlext-aria-expanded-more-less\" role=\"presentation\" style=\"font-size: 28px;\"></i>\n/// </header>\n\n@mixin mdlext-flexible-title($class, $gutter: 8px) {\n  .#{$class} {\n    box-sizing: border-box;\n    position: relative;\n    width: 100%;\n    display: flex;\n    align-self: stretch;\n    align-items: center;\n    margin: 0;\n    padding: 0 $gutter;\n\n    &__text,\n    &__text > * {\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n\n    > * {\n      box-sizing: border-box;\n      margin: 0;\n      padding: 0 $gutter 0 0;\n    }\n\n    > *:last-child {\n      padding-right: 0;\n    }\n\n    // Used to align elements inside a header or drawer, by growing to fill\n    // remaining space. Commonly used for aligning elements to the right.\n    &__spacer {\n      flex: 1;\n    }\n\n    @content;\n  }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/_mixins.scss","/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n@import \"../variables\";\n\n.mdlext-layout__sticky-header {\n  position: absolute;\n  overflow: visible;\n  background: $mdlext-sticky-header-background;\n  transition: 0.1s ease-in-out;\n\n  &.mdlext-is-scroll {\n    background: $mdlext-sticky-header-background-scroll;\n  }\n}\n\n*:not(.is-small-screen) .mdlext-layout__sticky-header {\n  .mdl-layout__drawer-button {\n    visibility: hidden;\n  }\n  .mdl-layout__header-row {\n    padding-left: $padding;\n  }\n}\n\n*:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header,\n.is-small-screen.has-drawer .mdlext-layout__sticky-header {\n  display: flex;\n\n  .mdl-layout__drawer-button {\n    visibility: visible;\n  }\n  .mdl-layout__header-row {\n    padding-left: $padding + $layout-drawer-button-desktop-size;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/sticky-header/_sticky-header.scss","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SASS based on css from Google Chrome Dialog polyfill, https://github.com/GoogleChrome/dialog-polyfill\n * @include 'node_modules/dialog-polyfill/dialog-polyfill.css' before using this\n */\n\n@import \"../variables\";\n\ndialog.mdlext-dialog {\n  position: absolute;\n  border: 0;\n  opacity: 0;\n  padding: $mdlext-dialog-padding;\n  background-color: $mdlext-dialog-background-color;\n\n  &[open] {\n    animation: mdlext-open-dialog $mdlext-dialog-open-animation;\n  }\n  &[open]::backdrop {\n    animation: mdlext-darken-backdrop $mdlext-dialog-backdrop-animation;\n  }\n  &[open] + .backdrop {\n    animation: mdlext-darken-backdrop $mdlext-dialog-backdrop-animation;\n  }\n}\n\n@keyframes mdlext-darken-backdrop {\n  to { background: $mdlext-dialog-backdrop-color; }\n}\n@keyframes mdlext-open-dialog {\n  to { opacity: 1; }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/dialog/dialog.scss","@charset \"UTF-8\";\n\n/**\n * This code is modified from Material Design Lite _grid.sass,\n * which is Licensed under the Apache License, Version 2.0\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n//////////////////////////////////////////////////////////////////////////////////\n//\n// Element queries for _grid.scss, based on: https://github.com/Snugug/eq.js\n//\n//////////////////////////////////////////////////////////////////////////////////\n\n// Use of this module requires the user to include variables from material-design-lite in hers/his main SASS module\n//@import \"../../node_modules/material-design-lite/src/variables\";\n.mdlext-grid {\n  display: flex;\n  flex-flow: row wrap;\n  margin: 0 auto;\n  align-items: stretch;\n\n  &.mdlext-grid--no-spacing {\n    padding: 0;\n  }\n\n  & > .mdlext-cell {\n    box-sizing: border-box;\n  }\n\n  & > .mdlext-cell--top {\n    align-self: flex-start;\n  }\n\n  & > .mdlext-cell--middle {\n    align-self: center;\n  }\n\n  & > .mdlext-cell--bottom {\n    align-self: flex-end;\n  }\n\n  & > .mdlext-cell--stretch {\n    align-self: stretch;\n  }\n\n  .mdlext-grid--no-spacing > .mdlext-cell {\n    margin: 0;\n  }\n\n  // Define order override classes.\n  @for $i from 1 through $grid-max-columns {\n    & > .mdlext-cell--order-#{$i} {\n      order: $i;\n    }\n  }\n}\n\n// Mixins for width calculation.\n@mixin _partial-size($size, $columns, $gutter) {\n  width: calc(#{(($size / $columns) * 100) + \"%\"} - #{$gutter});\n}\n@mixin _full-size($gutter) {\n  @include _partial-size(1, 1, $gutter);\n}\n@mixin _offset-size($size, $columns, $gutter) {\n  margin-left: calc(#{(($size / $columns) * 100) + \"%\"} + #{$gutter / 2});\n}\n\n@mixin _partial-size-no-spacing($size, $columns) {\n  width: #{(($size / $columns) * 100) + \"%\"};\n}\n@mixin _full-size-no-spacing() {\n  @include _partial-size-no-spacing(1, 1);\n}\n@mixin _offset-size-no-spacing($size, $columns) {\n  margin-left: #{(($size / $columns) * 100) + \"%\"};\n}\n\n\n.mdlext-grid {\n\n  @include eq-pts((\n    grid_phone: 0,\n    grid_tablet: strip-unit($grid-tablet-breakpoint),\n    grid_desktop: strip-unit($grid-desktop-breakpoint)\n  ));\n\n  ////////// Phone //////////\n  @include eq('grid_phone') {\n    padding: $grid-phone-margin - ($grid-phone-gutter / 2);\n\n    & > .mdlext-cell {\n      margin: $grid-phone-gutter / 2;\n      @include _partial-size($grid-cell-default-columns, $grid-phone-columns, $grid-phone-gutter);\n    }\n\n    & > .mdlext-cell--hide-phone {\n      display: none !important;\n    }\n\n    // Define order override classes.\n    @for $i from 1 through $grid-max-columns {\n      & > .mdlext-cell--order-#{$i}-phone.mdlext-cell--order-#{$i}-phone {\n        order: $i;\n      }\n    }\n\n    // Define partial sizes for columnNumber < totalColumns.\n    @for $i from 1 through ($grid-phone-columns - 1) {\n      & > .mdlext-cell--#{$i}-col,\n      & > .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {\n        @include _partial-size($i, $grid-phone-columns, $grid-phone-gutter);\n      }\n    }\n\n    // Define 100% for everything else.\n    @for $i from $grid-phone-columns through $grid-desktop-columns {\n      & > .mdlext-cell--#{$i}-col,\n      & > .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {\n        @include _full-size($grid-phone-gutter);\n      }\n    }\n\n    // Define valid phone offsets.\n    @for $i from 1 through ($grid-phone-columns - 1) {\n      & > .mdlext-cell--#{$i}-offset,\n      & > .mdlext-cell--#{$i}-offset-phone.mdlext-cell--#{$i}-offset-phone {\n        @include _offset-size($i, $grid-phone-columns, $grid-phone-gutter);\n      }\n    }\n\n    &.mdlext-grid--no-spacing {\n      padding: 0;\n\n      & > .mdlext-cell {\n        margin: 0;\n        @include _partial-size-no-spacing($grid-cell-default-columns, $grid-phone-columns);\n      }\n\n      // Define partial sizes for columnNumber < totalColumns.\n      @for $i from 1 through ($grid-phone-columns - 1) {\n        & > .mdlext-cell--#{$i}-col,\n        & > .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {\n          @include _partial-size-no-spacing($i, $grid-phone-columns);\n        }\n      }\n\n      // Define 100% for everything else.\n      @for $i from $grid-phone-columns through $grid-desktop-columns {\n        & > .mdlext-cell--#{$i}-col,\n        & > .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {\n          @include _full-size-no-spacing();\n        }\n      }\n\n      // Define valid phone offsets.\n      @for $i from 1 through ($grid-phone-columns - 1) {\n        & > .mdlext-cell--#{$i}-offset,\n        & > .mdlext-cell--#{$i}-offset-phone.mdlext-cell--#{$i}-offset-phone {\n          @include _offset-size-no-spacing($i, $grid-phone-columns);\n        }\n      }\n    }\n  }\n\n  ////////// Tablet //////////\n  @include eq('grid_tablet') {\n    padding: $grid-tablet-margin - ($grid-tablet-gutter / 2);\n\n    & > .mdlext-cell {\n      margin: $grid-tablet-gutter / 2;\n      @include _partial-size($grid-cell-default-columns, $grid-tablet-columns, $grid-tablet-gutter);\n    }\n\n    & > .mdlext-cell--hide-tablet {\n      display: none !important;\n    }\n\n    // Define order override classes.\n    @for $i from 1 through $grid-max-columns {\n      & > .mdlext-cell--order-#{$i}-tablet.mdlext-cell--order-#{$i}-tablet {\n        order: $i;\n      }\n    }\n\n    // Define partial sizes for columnNumber < totalColumns.\n    @for $i from 1 through ($grid-tablet-columns - 1) {\n      & > .mdlext-cell--#{$i}-col,\n      & > .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {\n        @include _partial-size($i, $grid-tablet-columns, $grid-tablet-gutter);\n      }\n    }\n\n    // Define 100% for everything else.\n    @for $i from $grid-tablet-columns through $grid-desktop-columns {\n      & > .mdlext-cell--#{$i}-col,\n      & > .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {\n        @include _full-size($grid-tablet-gutter);\n      }\n    }\n\n    // Define valid tablet offsets.\n    @for $i from 1 through ($grid-tablet-columns - 1) {\n      & > .mdlext-cell--#{$i}-offset,\n      & > .mdlext-cell--#{$i}-offset-tablet.mdlext-cell--#{$i}-offset-tablet {\n        @include _offset-size($i, $grid-tablet-columns, $grid-tablet-gutter);\n      }\n    }\n\n    &.mdlext-grid--no-spacing {\n      padding: 0;\n\n      & > .mdlext-cell {\n        margin: 0;\n        @include _partial-size-no-spacing($grid-cell-default-columns, $grid-tablet-columns);\n      }\n\n      // Define partial sizes for columnNumber < totalColumns.\n      @for $i from 1 through ($grid-tablet-columns - 1) {\n        & > .mdlext-cell--#{$i}-col,\n        & > .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {\n          @include _partial-size-no-spacing($i, $grid-tablet-columns);\n        }\n      }\n\n      // Define 100% for everything else.\n      @for $i from $grid-tablet-columns through $grid-desktop-columns {\n        & > .mdlext-cell--#{$i}-col,\n        & > .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {\n          @include _full-size-no-spacing();\n        }\n      }\n\n      // Define valid tablet offsets.\n      @for $i from 1 through ($grid-tablet-columns - 1) {\n        & > .mdlext-cell--#{$i}-offset,\n        & > .mdlext-cell--#{$i}-offset-tablet.mdlext-cell--#{$i}-offset-tablet {\n          @include _offset-size-no-spacing($i, $grid-tablet-columns);\n        }\n      }\n    }\n  }\n\n  ////////// Desktop //////////\n  @include eq('grid_desktop') {\n    padding: $grid-desktop-margin - ($grid-desktop-gutter / 2);\n\n    & > .mdlext-cell {\n      margin: $grid-desktop-gutter / 2;\n      @include _partial-size($grid-cell-default-columns, $grid-desktop-columns, $grid-desktop-gutter);\n    }\n\n    & > .mdlext-cell--hide-desktop {\n      display: none !important;\n    }\n\n    // Define order override classes.\n    @for $i from 1 through $grid-max-columns {\n      & > .mdlext-cell--order-#{$i}-desktop.mdlext-cell--order-#{$i}-desktop {\n        order: $i;\n      }\n    }\n\n    // Define partial sizes for all numbers of columns.\n    @for $i from 1 through $grid-desktop-columns {\n      & > .mdlext-cell--#{$i}-col,\n      & > .mdlext-cell--#{$i}-col-desktop.mdlext-cell--#{$i}-col-desktop {\n        @include _partial-size($i, $grid-desktop-columns, $grid-desktop-gutter);\n      }\n    }\n\n    // Define valid desktop offsets.\n    @for $i from 1 through ($grid-desktop-columns - 1) {\n      & > .mdlext-cell--#{$i}-offset,\n      & > .mdlext-cell--#{$i}-offset-desktop.mdlext-cell--#{$i}-offset-desktop {\n        @include _offset-size($i, $grid-desktop-columns, $grid-desktop-gutter);\n      }\n    }\n\n    &.mdlext-grid--no-spacing {\n      padding: 0;\n\n      & > .mdlext-cell {\n        margin: 0;\n        @include _partial-size-no-spacing($grid-cell-default-columns, $grid-desktop-columns);\n      }\n\n      // Define partial sizes for all numbers of columns.\n      @for $i from 1 through $grid-desktop-columns {\n        & > .mdlext-cell--#{$i}-col,\n        & > .mdlext-cell--#{$i}-col-desktop.mdlext-cell--#{$i}-col-desktop {\n          @include _partial-size-no-spacing($i, $grid-desktop-columns);\n        }\n      }\n\n      // Define valid desktop offsets.\n      @for $i from 1 through ($grid-desktop-columns - 1) {\n        & > .mdlext-cell--#{$i}-offset,\n        & > .mdlext-cell--#{$i}-offset-desktop.mdlext-cell--#{$i}-offset-desktop {\n          @include _offset-size-no-spacing($i, $grid-desktop-columns);\n        }\n      }\n    }\n  }\n}\n\n@include eq-selectors;\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/grid/_grid-eqjs.scss","//////////////////////////////\n// Variables\n//////////////////////////////\n// Selectors that were called for CSS element queries\n$EQ-Selectors: ();\n\n//////////////////////////////\n// Error Mixin\n//////////////////////////////\n@mixin EQSTATECHECK($states, $name) {\n  $EQ-Error: 'You need to include a state for the `#{$name}` mixin!';\n  @if (length($states) == 0) {\n    @if feature-exists(at-error) {\n      @error $EQ-Error;\n    }\n    @else {\n      @warn $EQ-Error;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n//////////////////////////////\n// Element Queries!\n//\n// $states - List of states to apply styling to; @include eq(small, medium, large)\n//////////////////////////////\n@mixin eq($states...) {\n  @include EQSTATECHECK('eq', $states) {\n    //////////////////////////////\n    // Markup based Element Queries\n    //////////////////////////////\n    $extend: unique-id();\n    @at-root {\n      %#{$extend} {\n        @content;\n      }\n    }\n    @each $state in $states {\n      &[data-eq-state$=\"#{$state}\"] {\n        @extend %#{$extend};\n      }\n    }\n  }\n}\n\n//////////////////////////////\n// Element Query Stack!\n//\n// Contains one of the query states!\n// $states - List of states to apply styling to; @include eq-contains(small, medium, large)\n//  * Space separated list will be treated like an `and` media query; all of the states must be active\n//  * Comma separated list will be treated like an `or` media query: at least one of the states must be active\n//////////////////////////////\n@mixin eq-contains($states...) {\n  // Space separator API, so going to do stupid magic\n  @if length($states) == 1 {\n    $states: nth($states, 1);\n  }\n\n  @include EQSTATECHECK('eq', $states) {\n    //////////////////////////////\n    // Markup based Element Queries\n    //////////////////////////////\n    $extend: unique-id();\n    @at-root {\n      %#{$extend} {\n        @content;\n      }\n    }\n    @if list-separator($states) == 'space' {\n      $stateApply: '';\n\n      @each $state in $states {\n        $stateApply: $stateApply + '[data-eq-state~=\"#{$state}\"]';\n      }\n\n      &#{$stateApply} {\n        @extend %#{$extend};\n      }\n    }\n    @else {\n      @each $state in $states {\n        &[data-eq-state~=\"#{$state}\"] {\n          @extend %#{$extend};\n        }\n      }\n    }\n  }\n}\n\n//////////////////////////////\n// Element Query Points\n//\n// Prints element query points to element's `:before`\n//\n// $states - Map of `name: size`; @include eq-pts((small: 400, medium: 600, large: 900))\n//////////////////////////////\n@mixin eq-pts($states) {\n  &:before {\n    display: none;\n    content: '#{str-slice(inspect($states), 2, -2)}';\n  }\n\n  @if not index($EQ-Selectors, '#{&}') {\n    $EQ-Selectors: append($EQ-Selectors, '#{&}', 'comma') !global;\n  }\n}\n\n//////////////////////////////\n// Element Query Selectors\n//\n// Prints list of selectors that were called for CSS element queries to HTML's `:before`\n//////////////////////////////\n@mixin eq-selectors {\n  @at-root {\n    html:before {\n      display: none;\n      content: '#{$EQ-Selectors}';\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///~/eq.js/sass/_eq.scss","@charset \"UTF-8\";\n\n/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * A lightboard is a translucent surface illuminated from behind, used for situations\n * where a shape laid upon the surface needs to be seen with high contrast. In the \"old days\" of photography\n * photograpers used a lightboard to get a quick view of their slides. The goal is to create a responsive lightbox\n * design, based on flex layout, similar to what is used in Adobe LightRoom to browse images.\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n@import \"../variables\";\n\nul.mdlext-lightboard {\n  list-style: none;\n}\n\n.mdlext-lightboard {\n  box-sizing: border-box;\n  margin: 0 auto;\n  padding: 0;\n  display: flex;\n  flex-flow:row wrap;\n  align-items: stretch;\n\n  *,\n  *::before,\n  *::after,\n  input[type=\"search\"] {\n    box-sizing: border-box;\n  }\n\n  .mdlext-lightboard__slide {\n    background-color: $mdlext-lightboard-slide-background-color;\n    border: 1px solid $mdlext-lightboard-slide-border-color;\n    border-radius: $mdlext-lightboard-slide-border-radius;\n    box-shadow: $mdlext-lightboard-slide-box-shadow;\n    position: relative;\n    display: block;\n    max-width: $mdlext-lightboard-slide-max-size;\n\n    &::before {\n      // 1:1 ratio\n      // TODO: Use a class for ratio so the grid can display slides with different ratios (16:9, 16:10, 4:3 ...)\n      content: '';\n      display: block;\n      padding-top: 100%;\n    }\n    &:hover,\n    &:active,\n    &:focus {\n      border-color: $mdlext-lightboard-slide-border-color-hover;\n      background-color: $mdlext-lightboard-slide-background-color-hover;\n      box-shadow: $mdlext-lightboard-slide-box-shadow-hover;\n\n      figcaption {\n        color: rgba(0, 0, 0, 1) !important;\n        background-color: rgba(255, 255, 255, 0.2);\n      }\n    }\n    &:focus {\n      outline-offset: -2px;\n      outline-color: $mdlext-lightboard-focus-outline-color;\n    }\n    &[aria-selected='true'] {\n      background-color: $mdlext-lightboard-slide-active-bacground-color;\n\n      figcaption {\n        color: rgba(0, 0, 0, 1) !important;\n        background-color: rgba(255, 255, 255, 0.2);\n      }\n    }\n    &__frame,\n    &__ripple-container {\n      text-decoration: none;\n      display: block;\n      overflow: hidden;\n      position: absolute;\n      top: 0;\n      left: 0;\n      right: 0;\n      bottom: 0;\n\n      &:focus {\n        outline-offset: -2px;\n        outline-color: $mdlext-lightboard-focus-outline-color;\n      }\n      & .mdl-ripple {\n        background: $mdlext-lightboard-ripple-color;\n      }\n      figure {\n        display: block;\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n\n        img {\n          position: absolute;\n          top: 0;\n          left: 0;\n          right: 0;\n          bottom: 0;\n          margin: auto;\n          max-width: 100%;\n          max-height: 100%;\n          border-width: 0;\n          border-radius: $mdlext-lightboard-slide-inner-border-radius;\n        }\n        figcaption {\n          @include typo-caption($colorContrast: false, $usePreferred: true);\n\n          color: $mdlext-lightboard-figcaption-text-color;\n          position: absolute;\n          bottom: -2px;\n          white-space: nowrap;\n          overflow: hidden;\n          max-width: 100%;\n          width: 100%;\n          text-align: center;\n          text-overflow: ellipsis;\n          padding: 4px 0;\n        }\n      }\n      &:hover {\n        figcaption {\n          // As far as I can see there is no way to darken/lighten a text color\n          // defined by MDL, due to the \"unqote\" functions.\n          // So this is a hack\n          color: rgba(0, 0, 0, 1) !important;\n          background-color: rgba(255, 255, 255, 0.2);\n        }\n      }\n    }\n  }\n}\n\n////// Media / Element queries default, Small //////\n.mdlext-lightboard {\n  padding: calc((#{$mdlext-lightboard-small-margin} - #{$mdlext-lightboard-small-gutter}) / 2);\n\n  .mdlext-lightboard__slide {\n    margin: calc(#{$mdlext-lightboard-small-gutter} / 2);\n    width: calc(1 / #{$mdlext-lightboard-small-columns} * 100% - #{$mdlext-lightboard-small-gutter});\n\n    .mdlext-lightboard__slide__frame figure {\n      margin: $mdlext-lightboard-small-frame-width;\n    }\n  }\n  &.mdlext-lightboard--no-spacing {\n    padding: 0;\n\n    .mdlext-lightboard__slide {\n      margin: 0;\n      width: calc(1 / #{$mdlext-lightboard-small-columns} * 100%);\n    }\n  }\n}\n\n// Import one of _lightboard-media-queries.scss or _lightboard-eq-js.scss to complete SASS\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/lightboard/_lightboard.scss","@charset \"UTF-8\";\n//////////////////////////////////////////////////////////////////////////////////\n//\n// Element queries for _lightbox.scss, based on: https://github.com/Snugug/eq.js\n//\n//////////////////////////////////////////////////////////////////////////////////\n\n@import \"../variables\";\n@import \"../functions\";\n\n.mdlext-lightboard {\n\n  @include eq-pts((\n    lightboard_medium_small: strip-unit($mdlext-lightboard-medium-small-breakpoint),\n    lightboard_medium: strip-unit($mdlext-lightboard-medium-breakpoint),\n    lightboard_medium_large: strip-unit($mdlext-lightboard-medium-large-breakpoint),\n    lightboard_large: strip-unit($mdlext-lightboard-large-breakpoint)\n  ));\n\n  ////// small - meduim-small //////\n  @include eq('lightboard_medium_small') {\n    padding: calc((#{$mdlext-lightboard-medium-small-margin} - #{$mdlext-lightboard-medium-small-gutter}) / 2);\n\n    .mdlext-lightboard__slide {\n      margin: calc(#{$mdlext-lightboard-medium-small-gutter} / 2);\n      width: calc(1 / #{$mdlext-lightboard-medium-small-columns} * 100% - #{$mdlext-lightboard-medium-small-gutter});\n\n      .mdlext-lightboard__slide__frame figure {\n        margin: $mdlext-lightboard-medium-small-frame-width;\n      }\n    }\n    &.mdlext-lightboard--no-spacing {\n      padding: 0;\n\n      .mdlext-lightboard__slide {\n        margin: 0;\n        width: calc(1 / #{$mdlext-lightboard-medium-small-columns} * 100%);\n      }\n    }\n  }\n\n  ////// meduim-small - medium //////\n  @include eq('lightboard_medium') {\n    padding: calc((#{$mdlext-lightboard-medium-margin} - #{$mdlext-lightboard-medium-gutter}) / 2);\n\n    .mdlext-lightboard__slide {\n      margin: calc(#{$mdlext-lightboard-medium-gutter} / 2);\n      width: calc(1 / #{$mdlext-lightboard-medium-columns} * 100% - #{$mdlext-lightboard-medium-gutter});\n\n      .mdlext-lightboard__slide__frame figure {\n        margin: $mdlext-lightboard-medium-frame-width;\n      }\n    }\n    &.mdlext-lightboard--no-spacing {\n      padding: 0;\n\n      .mdlext-lightboard__slide {\n        margin: 0;\n        width: calc(1 / #{$mdlext-lightboard-medium-columns} * 100%);\n      }\n    }\n  }\n\n  ////// meduim - medium-large //////\n  @include eq('lightboard_medium_large') {\n    padding: calc((#{$mdlext-lightboard-medium-large-margin} - #{$mdlext-lightboard-medium-large-gutter}) / 2);\n\n    .mdlext-lightboard__slide {\n      margin: calc(#{$mdlext-lightboard-medium-large-gutter} / 2);\n      width: calc(1 / #{$mdlext-lightboard-medium-large-columns} * 100% - #{$mdlext-lightboard-medium-large-gutter});\n\n      .mdlext-lightboard__slide__frame figure {\n        margin: $mdlext-lightboard-medium-large-frame-width;\n      }\n    }\n    &.mdlext-lightboard--no-spacing {\n      padding: 0;\n\n      .mdlext-lightboard__slide {\n        margin: 0;\n        width: calc(1 / #{$mdlext-lightboard-medium-large-columns} * 100%);\n      }\n    }\n  }\n\n  ////// meduim-large - large //////\n  @include eq('lightboard_large') {\n    padding: calc((#{$mdlext-lightboard-large-margin} - #{$mdlext-lightboard-large-gutter}) / 2);\n\n    .mdlext-lightboard__slide {\n      margin: calc(#{$mdlext-lightboard-large-gutter} / 2);\n      width: calc(1 / #{$mdlext-lightboard-large-columns} * 100% - #{$mdlext-lightboard-large-gutter});\n\n      .mdlext-lightboard__slide__frame figure {\n        margin: $mdlext-lightboard-large-frame-width;\n      }\n    }\n    &.mdlext-lightboard--no-spacing {\n      padding: 0;\n\n      .mdlext-lightboard__slide {\n        margin: 0;\n        width: calc(1 / #{$mdlext-lightboard-large-columns} * 100%);\n      }\n    }\n  }\n}\n\n@include eq-selectors;\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/lightboard/_lightboard-eqjs.scss","@charset \"UTF-8\";\n\n/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n@import \"../variables\";\n\n.mdlext-lightbox {\n  user-select: none;\n  cursor: default;\n  position: relative;\n  width: auto;\n  max-width: 100%;\n  margin: 0 auto;\n  border: $mdlext-lightbox-border;\n  border-radius: $mdlext-lightbox-border-radius;\n  background-color: $mdlext-lightbox-background-color;\n  box-sizing: border-box;\n  outline: 0;\n  display: block; // display: flex and IE11 has issues with reposition. Set display:block for now.\n\n  *,\n  *::before,\n  *::after,\n  input[type=\"search\"] {\n    box-sizing: border-box;\n  }\n\n  .mdlext-lightbox__slider {\n    // Displays prevvious, current and next image while dragging\n    // Elements are created by lightbox component when dragging starts\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: flex;\n    justify-content: center;\n\n    .mdlext-lightbox__slider__slide {\n      flex-shrink: 0;\n      display: block;\n      text-align: left;\n      color: #7f7f7f;\n      background-size: cover;\n      background-position: center;\n      background-repeat: no-repeat;\n\n      //&:nth-child(1),\n      //&:nth-child(3) {\n      //  filter: blur(1px);\n      //}\n    }\n  }\n\n  figure {\n    margin: $mdlext-lightbox-figure-margin;\n    padding: $mdlext-lightbox-figure-padding;\n    position: relative;\n\n    img {\n      width: 100%;\n      max-width: 100%;\n      height: auto;\n      border: 0;\n      outline: 0;\n    }\n    figcaption {\n      @include typo-caption($colorContrast: false, $usePreferred: true);\n\n      display: block;\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      max-width: 100%;\n      height: auto;\n      max-height: 50%;\n      overflow: auto;\n      padding: 8px;\n      background-color: $mdlext-lightbox-figcaption-background-color;\n      transform-origin: bottom;\n      transform: scaleY(0);\n      transition: 0.2s ease-in-out;\n\n      &.mdlext-lightbox__show-figcaption {\n        transform: scaleY(1);\n      }\n      tbody {\n        th {\n          text-align: left;\n        }\n        th,\n        td {\n          vertical-align: text-top;\n        }\n      }\n    }\n  }\n  .mdl-card__menu {\n    color: #ffffff;\n    z-index: 1;\n  }\n  footer {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    background-color: $mdlext-lightbox-footer-background-color;\n\n    .mdl-card__supporting-text {\n      flex: 1;\n      overflow: hidden;\n      padding: 0;\n      height: $card-supporting-text-line-height;\n      width: 100%;\n    }\n    nav {\n      display: flex;\n    }\n  }\n\n  &.mdlext-lightbox--sticky-footer footer {\n    position: fixed;\n    bottom: 0;\n    left: 0;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/lightbox/_lightbox.scss","@charset \"UTF-8\";\n\n/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * A carousel ...\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n\nul.mdlext-carousel {\n  list-style: none;\n}\n\n.mdlext-carousel {\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n  height: 100%;  // Use a container to constrain height and width\n  width: 100%;\n  display: block;\n  white-space: nowrap;\n  font-size: 0;\n  background-color: transparent;\n}\n\n.mdlext-carousel__slide {\n  box-sizing: border-box;\n  display: inline-block;\n  position: relative;\n  outline: 0;\n  margin: 0 $mdlext-carousel-slide-margin-horizontal;\n  padding:0;\n  height: 100%;\n  border-top: $mdlext-carousel-slide-border-top-width solid transparent; // Makes room for the animated select/focus line\n\n  //&:focus,\n  &[aria-selected],\n  &[aria-selected='true'] {\n    figcaption {\n      // As far as I can see there is no way to darken/lighten a text color\n      // defined by MDL, due to the \"unqote\" functions.\n      // So this is a hack\n      color: rgba(0, 0, 0, 1) !important;\n      background-color: rgba(255, 255, 255, 0.25);\n    }\n  }\n\n  &[aria-selected]::after,\n  &[aria-selected='true']::after {\n    height: $mdlext-carousel-slide-border-top-width;\n    width: 100%;\n    display: block;\n    content: ' ';\n    top: (-$mdlext-carousel-slide-border-top-width);\n    left: 0;\n    position: absolute;\n    background: $mdlext-carousel-slide-border-top-color;\n    animation: border-expand 0.2s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards;\n    transition: all 1s cubic-bezier(0.4, 0.0, 1, 1);\n  }\n\n\n  a {\n    text-decoration: none;\n  }\n\n  figure {\n    box-sizing: border-box;\n    position: relative;\n    height: 100%;\n    margin: 0;\n    padding: 0;\n\n    img {\n      box-sizing: border-box;\n      max-height: 100%;\n    }\n\n    figcaption {\n      box-sizing: border-box;\n      @include typo-caption($colorContrast: false, $usePreferred: true);\n\n      color: $mdlext-carousel-slide-figcaption-color;\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      white-space: nowrap;\n      overflow: hidden;\n      max-width: 100%;\n      width: 100%;\n      text-align: center;\n      text-overflow: ellipsis;\n      padding: 4px 0;\n    }\n    &:hover {\n      figcaption {\n        // As far as I can see there is no way to darken/lighten a text color\n        // defined by MDL, due to the \"unqote\" functions.\n        // So this is a hack\n        color: rgba(0, 0, 0, 1) !important;\n        background-color: rgba(255, 255, 255, 0.25);\n      }\n    }\n  }\n\n  .mdlext-carousel__slide__ripple-container {\n    text-decoration: none;\n    display: block;\n    overflow: hidden;\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    outline: 0;\n\n    & .mdl-ripple {\n      background: $mdlext-carousel-slide-ripple-color;\n    }\n  }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/carousel/_carousel.scss","/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Copied/Modified/Inspired from/by:\n *   https://github.com/google/material-design-lite/tree/master/src/textfield\n *   http://red-team-design.com/making-html-dropdowns-not-suck/\n *   http://codepen.io/etcpe9/pen/PqyOye,\n *   http://codepen.io/pudgereyem/pen/PqBxQx\n *   https://github.com/MEYVN-digital/mdl-selectfield\n *   https://github.com/mebibou/mdl-selectfield\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n\n@import \"../mixins\";\n\n// The container for the selectfield.\n.mdlext-selectfield {\n  box-sizing: border-box;\n  position: relative;\n  font-size: $input-text-font-size;\n  display: inline-block;\n  width: 300px;\n  max-width: 100%;\n  margin: 0;\n  padding: $input-text-vertical-spacing 0;\n\n  // Align buttons, if used.\n  & .mdl-button {\n    bottom: $input-text-vertical-spacing;\n    position: absolute;\n  }\n\n  // Styling the down arrow\n  &::after {\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length);\n\n    position: absolute;\n    right: 0.5em;\n    top: 50%;\n    transform: translateY(-50%);\n    pointer-events: none;\n  }\n}\n\n.mdlext-selectfield.is-disabled {\n  &::after {\n    color: $input-text-disabled-color;\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $input-text-disabled-color);\n  }\n}\n\n// Optional class to align right.\n.mdlext-selectfield--align-right {\n  text-align: right;\n}\n\n// Optional class to display at full width.\n.mdlext-selectfield--full-width {\n  width: 100%;\n}\n\n// Optional class to make the select field expandable.\n.mdlext-selectfield--expandable {\n  min-height: $input-text-button-size;\n  min-width: $input-text-button-size;\n  width: auto;\n}\n\n// Styling for the select element.\n.mdlext-selectfield__select {\n\n  // Reset select\n  box-sizing: border-box;\n  border: 0;\n  border-radius: 0;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  -ms-appearance: none;\n  appearance: none;\n  text-indent: 0.01px; // Removes default arrow from firefox\n  text-overflow: '';   // Removes default arrow from firefox\n  outline: none;\n  box-shadow: none;\n  // End Reset select\n\n  font-size: $input-text-font-size;\n  font-family: $performance_font;\n  padding: $input-text-padding calc(1.2em + #{$input-text-padding}) $input-text-padding 0;\n  width: $input-text-width;\n  border-bottom: 1px solid $input-text-bottom-border-color;\n  display: block;\n  margin: 0;\n  background: none;\n  text-align: left;\n  color: inherit;\n\n  // Mozilla, remove focusring\n  &:-moz-focusring {\n    color: transparent;\n    text-shadow: 0 0 0 #000000;\n  }\n\n  // MS, remove selected option background color\n  &:focus::-ms-value {\n    background-color: inherit;\n    color: inherit;\n  }\n\n  &::-ms-expand {\n    display: none;\n  }\n\n  .mdlext-selectfield.is-focused & {\n    outline: none;\n  }\n\n  .mdlext-selectfield.is-invalid & {\n    border-color: $input-text-error-color;\n    box-shadow: none;\n  }\n\n  fieldset[disabled] .mdlext-selectfield &,\n  .mdlext-selectfield.is-disabled & {\n    border-bottom: 1px dotted $input-text-disabled-color;\n    color: $input-text-disabled-text-color;\n    background-color: transparent;\n  }\n\n  option {\n    color: $text-color-primary;\n    box-sizing: border-box;\n    background-color: inherit;\n  }\n}\n\n// Styling for the label / floating label.\n.mdlext-selectfield__label {\n  box-sizing: border-box;\n  color: $input-text-label-color;\n  font-size: $input-text-font-size;\n  top: ($input-text-padding + $input-text-vertical-spacing);\n  bottom: 0;\n  left: 0;\n  right: 0;\n  pointer-events: none;\n  position: absolute;\n  display: block;\n  width: 100%;\n  overflow: hidden;\n  white-space: nowrap;\n  text-align: left;\n\n  .mdlext-selectfield.is-dirty &,\n  .mdlext-selectfield.has-placeholder & {\n    visibility: hidden;\n  }\n\n  // Floating Label\n  .mdlext-selectfield--floating-label & {\n    @include material-animation-default();\n  }\n\n  .mdlext-selectfield--floating-label.has-placeholder & {\n    transition: none;\n  }\n\n  fieldset[disabled] .mdlext-selectfield &,\n  .mdlext-selectfield.is-disabled.is-disabled & {\n    color: $input-text-disabled-text-color;\n  }\n\n  .mdlext-selectfield--floating-label.is-focused &,\n  .mdlext-selectfield--floating-label.is-dirty.is-dirty &,\n  .mdlext-selectfield--floating-label.has-placeholder & {\n    color: $input-text-highlight-color;\n    font-size: $input-text-floating-label-fontsize;\n    top: $input-text-vertical-spacing - ($input-text-floating-label-fontsize + $input-text-padding);\n    visibility: visible;\n  }\n\n  .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__expandable-holder &,\n  .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__expandable-holder &,\n  .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__expandable-holder & {\n    top: -($input-text-floating-label-fontsize + $input-text-padding);\n  }\n\n  .mdlext-selectfield--floating-label.is-invalid & {\n    color: $input-text-error-color;\n    font-size: $input-text-floating-label-fontsize;\n  }\n\n  // The after label is the colored underline for the Selectfield.\n  &::after {\n    background-color: $input-text-highlight-color;\n    bottom: $input-text-vertical-spacing;\n    content: '';\n    height: 2px;\n    left: 45%;\n    position: absolute;\n    @include material-animation-default();\n\n    visibility: hidden;\n    width: 10px;\n  }\n\n  .mdlext-selectfield.is-focused &::after {\n    left: 0;\n    visibility: visible;\n    width: 100%;\n  }\n\n  .mdlext-selectfield.is-invalid &::after {\n    background-color: $input-text-error-color;\n  }\n}\n\n// SelectField Error.\n.mdlext-selectfield__error {\n  color: $input-text-error-color;\n  font-size: $input-text-floating-label-fontsize;\n  position: absolute;\n  margin-top: 3px;\n  visibility: hidden;\n  display: block;\n\n  .mdlext-selectfield.is-invalid & {\n    visibility: visible;\n  }\n}\n\n// Expandable Holder.\n.mdlext-selectfield__expandable-holder {\n  display: inline-block;\n  position: relative;\n  margin-left: $input-text-button-size;\n\n  @include material-animation-default();\n\n  // Safari (possibly others) need to be convinced that this field is actually\n  // visible, otherwise it cannot be tabbed to nor focused via a <label>.\n  // TODO: In some cases (Retina displays), this is big enough to render the\n  // inner element :(\n  max-width: 0.1px;\n\n  .mdlext-selectfield.is-focused &,\n  .mdlext-selectfield.is-dirty & {\n    // This is an unfortunate hack. Animating between widths in percent (%)\n    // in many browsers (Chrome, Firefox) only animates the inner visual style\n    // of the input - the outer bounding box still 'jumps'.\n    // Thus assume a sensible maximum, and animate to/from that value.\n    max-width: 600px;\n  }\n  .mdlext-selectfield__label::after {\n    bottom: 0;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/selectfield/_selectfield.scss","@charset \"UTF-8\";\n\n/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/* Moved to aria-expanded-toggle.scss\n\n.mdlext-aria-expanded-plus-minus {\n  @include mdlext-aria-expanded-toggle($font-family: inherit);\n}\n\n.mdlext-aria-expanded-more-less {\n  @include mdlext-aria-expanded-toggle($icon: 'expand_more', $icon-expanded: 'expand_less');\n}\n*/\n\n.mdlext-menu-button {\n  box-sizing: border-box;\n  @include typo-menu();\n  text-transform: none;\n  position: relative;\n  height: $button-height;\n  padding: 0 $button-padding;\n  display: flex;\n  align-items: center;\n  align-self: stretch;\n\n  > * {\n    margin: 0;\n    padding: 0 0 0 8px;\n  }\n\n  > *:first-child {\n    padding-left: 0;\n  }\n\n  > *:last-child:not(:only-child):not(.mdlext-menu__item__caption) {\n    margin-left: auto; // If more than one element, push last element to the right\n  }\n\n}\n\n.mdlext-menu-button__caption {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  line-height: 1.2;\n}\n\n.mdlext-menu,\n.mdlext-menu__item {\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  display: flex;\n}\n\n.mdlext-menu {\n  position: absolute; //fixed;\n  background: $default-dropdown-bg-color;\n  z-index: 1000;\n  min-width: 124px;\n  border-radius: 2px;\n  @include shadow-3dp();\n  display: inline-flex;\n  flex-direction: column;\n  padding: 0;\n  overflow: hidden;\n  overflow-y: auto;\n\n  &:focus {\n    outline-offset: -1px;\n    outline-width: 1px;\n  }\n\n  &[hidden] {\n    @include mdlext-visually-hidden;\n    pointer-events: none;\n  }\n\n  &__item {\n    @include typo-body-1();\n    color: $default-item-text-color;\n    background-color: $default-dropdown-bg-color;\n    position: relative;\n    padding: 0 16px 0 24px;\n    align-items: center;\n    align-self: stretch;\n    text-decoration: none;\n    cursor: pointer;\n    white-space: nowrap;\n    user-select: none;\n    min-height: 40px;\n    overflow: hidden;\n\n    &[aria-selected='true'] {\n      background-color: $default-item-active-bg-color;\n    }\n\n    // checkmark\n    &[aria-selected='true']::before {\n      content:'\\2713';\n      position: absolute;\n      font-size: 1.4em;\n      left: 4px;\n      top: 50%;\n      transform: translateY(-50%);\n      pointer-events: none;\n    }\n\n    &:hover:not([disabled]) {\n      background-color: $default-item-hover-bg-color;\n    }\n\n    &:focus {\n      outline-offset: -2px;\n      outline-width: 1px;\n      outline-color: $default-item-outline-color;\n      background-color: $default-item-focus-bg-color;\n    }\n\n    &::-moz-focus-inner {\n      border: 0;\n    }\n\n    &[disabled] {\n      color: $disabled-item-text-color;\n      background-color: transparent;\n      cursor: auto;\n      pointer-events: none;\n\n      > * {\n        color: $disabled-item-text-color;\n      }\n    }\n\n    &__caption {\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n\n    > * {\n      margin: 0;\n      padding: 0 0 0 8px;\n    }\n\n    > *:first-child {\n      padding-left: 0;\n    }\n\n    > *:last-child:not(:only-child):not(.mdlext-menu__item__caption) {\n      margin-left: auto; // If more than one element, push last element to the right\n    }\n\n  }\n  &__item-separator {\n    margin: 0;\n    padding: 0;\n    border-bottom: 1px solid $default-item-divider-color;\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/menu-button/_menu-button.scss","/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * The bordered fields are based on / inspired by this CodePen: http://codepen.io/prajwal078/pen/LVJZXz?editors=010\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n\n@import \"../variables\";\n@import \"../functions\";\n\n\n// \"Theme\" for this styling\n.mdlext-bordered-fields {\n  box-sizing: border-box;\n\n  * {\n    box-sizing: border-box;\n  }\n\n  // Styling for textfield and selectfield.\n  .mdl-textfield,\n  .mdlext-selectfield {\n    padding: 0;\n    margin: $mdlext-bordered-field-vertical-spacing-top 0 $mdlext-bordered-field-vertical-spacing-bottom 0;\n\n    .mdl-textfield__input,\n    .mdlext-selectfield__select {\n      height: $mdlext-bordered-field-height;\n      background-color: $mdlext-bordered-field-background-color;\n      border: $mdlext-bordered-field-border-width solid $mdlext-bordered-field-border-color;\n      border-radius: $mdlext-bordered-field-border-radius;\n      padding: $mdlext-bordered-field-padding-top $mdlext-bordered-field-padding $mdlext-bordered-field-padding-bottom $mdlext-bordered-field-padding;\n      font-size: $mdlext-bordered-field-input-text-font-size;\n      font-weight: $mdlext-bordered-field-font-weight;\n      color: $mdlext-bordered-field-input-text-color;\n\n      &:disabled {\n        color: $mdlext-bordered-field-input-text-disabled-text-color;\n        background-color: $mdlext-bordered-field-disabled-background-color;\n        border-color: $mdlext-bordered-field-disabled-border-color;\n      }\n\n      // MDL can not handle required attribute properly. Planned for MDL-v2\n      //&:required {\n      //  background-color: $mdlext-bordered-field-required-background-color;\n      //  border-color: $mdlext-bordered-field-required-border-color;\n      //}\n\n      &:focus {\n        background-color: $mdlext-bordered-field-focus-background-color;\n        border-color: $mdlext-bordered-field-focus-border-color;\n      }\n\n      // MDL can not handle required. Planned for MDL-v2\n      //&:required:focus {\n      //  background-color: $mdlext-bordered-field-required-focus-background-color;\n      //  border-color: $mdlext-bordered-field-required-focus-border-color;\n      //}\n    }\n    .mdlext-selectfield__select {\n      padding-right: calc(1em + #{$mdlext-bordered-field-padding});  // space for down arrow\n    }\n\n    /*\n    &.is-dirty {\n      .mdl-textfield__input,\n      .mdlext-selectfield__select {\n      }\n    }\n    */\n\n    &.is-invalid {\n      .mdl-textfield__input,\n      .mdlext-selectfield__select {\n        color: $mdlext-bordered-field-input-text-error-color;\n        border-color: $mdlext-bordered-field-error-border-color;\n        background-color: $mdlext-bordered-field-error-background-color;\n\n        &:focus {\n          //&:required:focus {\n          border-color: $mdlext-bordered-field-error-focus-border-color;\n          background-color: $mdlext-bordered-field-error-focus-background-color;\n        }\n      }\n    }\n  }\n\n  .mdlext-selectfield::after {\n    top: auto;\n    bottom: $mdlext-bordered-field-padding-bottom;  // Position of down arrow\n  }\n\n  fieldset[disabled] .mdlext-selectfield::after,\n  .mdlext-selectfield.is-disabled::after {\n    color: $mdlext-bordered-field-input-text-disabled-text-color;\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-bordered-field-input-text-disabled-text-color);\n  }\n\n\n  fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {\n    color: $mdlext-bordered-field-input-text-disabled-text-color;\n    background-color: $mdlext-bordered-field-disabled-background-color;\n    border-color: $mdlext-bordered-field-disabled-border-color;\n  }\n\n\n  // Styling for the label / floating label.\n  .mdl-textfield,\n  .mdlext-selectfield {\n\n    &.is-dirty,\n    &.has-placeholder {\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        visibility: hidden;\n      }\n    }\n    .mdl-textfield__label,\n    .mdlext-selectfield__label {\n      color: $mdlext-bordered-field-input-text-label-color;\n      font-size: $mdlext-bordered-field-label-font-size;\n      font-weight: $mdlext-bordered-field-font-weight;\n      padding-left: $mdlext-bordered-field-padding;\n      top: auto;\n      bottom: $mdlext-bordered-field-padding-bottom;\n\n      // Hides the colored underline for the textField/selectfield.\n      &::after {\n        background-color: transparent !important;\n        visibility: hidden !important;\n      }\n    }\n    &.mdl-textfield--floating-label.is-focused.is-focused,\n    &.mdl-textfield--floating-label.is-dirty.is-dirty,\n    &.mdl-textfield--floating-label.has-placeholder,\n    &.mdlext-selectfield--floating-label.is-focused.is-focused,\n    &.mdlext-selectfield--floating-label.is-dirty.is-dirty,\n    &.mdlext-selectfield--floating-label.has-placeholder {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-bordered-field-input-text-label-focus-color;\n        font-size: $mdlext-bordered-field-floating-label-font-size;\n        font-weight: $mdlext-bordered-field-floating-label-font-weight;\n        top: auto;\n        bottom: $mdlext-bordered-field-floating-label-focus-bottom;\n        visibility: visible;\n      }\n    }\n    &.mdl-textfield--floating-label.is-disabled.is-disabled,\n    &.mdlext-selectfield--floating-label.is-disabled.is-disabled {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-bordered-field-input-text-label-disabled-color;\n      }\n    }\n    &.mdl-textfield--floating-label.is-invalid.is-invalid,\n    &.mdlext-selectfield--floating-label.is-invalid.is-invalid {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-bordered-field-input-text-label-error-color;\n      }\n    }\n  }\n\n  fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n  fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {\n    color: $mdlext-bordered-field-input-text-label-disabled-color;\n  }\n\n  // Icon(s) and/or button(s) inside textfield\n  .mdl-textfield,\n  .mdlext-selectfield {\n    &.mdlext-bordered-fields__icon-left,\n    &.mdlext-bordered-fields__icon-right {\n      & > i,\n      & > .mdl-button {\n        position: absolute;\n        bottom: $mdlext-bordered-field-padding-bottom - 2px;\n      }\n      & > i {\n        bottom: $mdlext-bordered-field-padding-bottom + 2px;\n      }\n    }\n    &.mdlext-bordered-fields__icon-left {\n      & > i:first-child,\n      & > .mdl-button:first-child {\n        left: $mdlext-bordered-field-padding/2;\n      }\n      & > i ~ .mdl-textfield__input,\n      & > .mdl-button ~ .mdl-textfield__input,\n      & > i ~ .mdlext-selectfield__select,\n      & > .mdl-button ~ .mdlext-selectfield__select {\n        padding-left: $input-text-button-size;\n      }\n      & > i ~ .mdl-textfield__label,\n      & > .mdl-button ~ .mdl-textfield__label {\n        left: $input-text-button-size - $mdlext-bordered-field-padding;\n      }\n      & > i ~ .mdlext-selectfield__label,\n      & > .mdl-button ~ .mdlext-selectfield__label {\n        left: $input-text-button-size - $mdlext-bordered-field-padding;\n      }\n    }\n    &.mdlext-bordered-fields__icon-right {\n      & > .mdl-textfield__input {\n        padding-right: $input-text-button-size;\n      }\n      & > i:last-child,\n      & > .mdl-button:last-child {\n        left: auto;\n        right: $mdlext-bordered-field-padding/2;\n      }\n    }\n    &.is-disabled i,\n    &.is-disabled .mdl-button {\n      color: $mdlext-bordered-field-disabled-border-color;\n      pointer-events: none;\n    }\n  }\n\n  fieldset[disabled] .mdl-textfield,\n  fieldset[disabled] .mdlext-selectfield {\n    i,\n    .mdl-button {\n      color: $mdlext-bordered-field-disabled-border-color;\n      pointer-events: none;\n    }\n  }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/bordered-fields/_bordered-fields.scss","@charset \"UTF-8\";\n\n/**\n * @license\n * Copyright 2016-2017 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n.mdlext-collapsible {\n  box-sizing: border-box;\n  cursor: pointer;\n}\n\n.mdlext-collapsible-group,\n.mdlext-collapsible-region {\n  box-sizing: border-box;\n\n  &[hidden] {\n    @include mdlext-visually-hidden;\n    pointer-events: none;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/collapsible/_collapsible.scss","@charset \"UTF-8\";\n\n/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n.mdlext-aria-toggle-plus-minus {\n  @include mdlext-aria-expanded-toggle($font-family: inherit, $font-size: 1.4em);\n}\n\n.mdlext-aria-toggle-material-icons {\n  @include mdlext-aria-expanded-toggle($font-size: 1.3em, $icon: 'expand_more', $icon-expanded: 'expand_less', $icon-offset: -$mdlext-accordion-header-padding);\n}\n\n.mdlext-accordion {\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  display: flex;\n\n  * {\n    box-sizing: border-box;\n  }\n\n  &__panel {\n    box-sizing: border-box;\n    position: relative;\n    overflow: hidden;\n    display: flex;\n    flex-wrap: nowrap;\n  }\n\n  &__tab {\n    @include typo-title();\n\n    font-weight: 400;\n    line-height: 1.1;\n    box-sizing: border-box;\n    position: relative;\n    margin: 0;\n    padding: 0; // $mdlext-accordion-header-padding;\n    min-width: $mdlext-accordion-header-height;\n    min-height: $mdlext-accordion-header-height;\n    display: flex;\n    align-items: center;\n    align-self: stretch;\n    user-select: none;\n    color: $mdlext-accordion-header-secondary-color;\n    background-color: $mdlext-accordion-header-background-color;\n    cursor: pointer;\n    overflow: hidden;\n\n    &:focus {\n      outline-offset: -2px;\n      outline-color: $mdlext-accordion-header-focus-outline-color;\n      outline-width: 2px;\n    }\n\n    &[aria-expanded='true'] {\n      background-color: $mdlext-accordion-header-background-open-color;\n    }\n\n    &[aria-selected='true'] {\n      background-color: $mdlext-accordion-header-background-active-color;\n    }\n\n    &[disabled] {\n      background-color: $mdlext-accordion-header-disabled-color;\n      color: $mdlext-accordion-header-secondary-color-disabled;\n      pointer-events: none;\n\n      > * {\n        color: $mdlext-accordion-header-secondary-color-disabled;\n      }\n    }\n\n    &:hover:not([disabled]) {\n      background-color: $mdlext-accordion-header-background-hover-color;\n    }\n\n    > * {\n      margin: 0;\n      padding: 0;\n    }\n\n    &__caption {\n      padding-left: $mdlext-accordion-header-padding;\n      padding-right: $mdlext-accordion-header-padding;\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n\n    > *:first-child {\n      padding-left: 0;\n    }\n\n    &--ripple {\n      &[aria-selected='true']::before {\n        content: '';\n        position: absolute;\n        top: 50%;\n        left: 50%;\n        background: $mdlext-accordion-ripple-color;\n        opacity: 0;\n        border-radius: 100%;\n        transform: scale(1, 1) translate(-50%);\n        transform-origin: 50% 50%;\n      }\n      &[aria-selected='true']:focus:not(:active)::before {\n        // http://easings.net/\n        animation: mdlext-accordion-tab-ripple 1s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards; // cubic-bezier(0.4, 0.0, 1, 1); //cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards; //ease-out;\n      }\n    }\n  }\n\n  &__tabpanel {\n    box-sizing: border-box;\n    margin: 0;\n    padding: 0 $mdlext-accordion-content-padding;\n    color: $mdlext-accordion-content-color;\n    background-color: $mdlext-accordion-content-background-color;\n    display: block;\n    overflow: auto;\n    flex-grow: 1;\n\n    &[hidden] {\n      @include mdlext-visually-hidden;\n    }\n  }\n}\n\n// Vertical layout\n.mdlext-accordion {\n\n  &--vertical {\n    flex-direction: column;\n    flex-wrap: nowrap;\n\n    .mdlext-accordion__panel {\n      min-height: $mdlext-accordion-header-height;\n      flex-direction: column;\n    }\n\n    .mdlext-accordion__tab {\n      height: $mdlext-accordion-header-height;\n      border-top: 1px solid $mdlext-accordion-header-border-color;\n      padding-left: $mdlext-accordion-header-padding;\n      padding-right: $mdlext-accordion-header-padding;\n\n      &[aria-selected='true']::after {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        height: 1px;\n        width: 100%;\n        display: block;\n        content: \" \";\n        background-color: $mdlext-accordion-header-highlight-color;\n        animation: border-expand 0.2s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards;\n        transition: all 1s cubic-bezier(0.4, 0.0, 1, 1);\n      }\n\n      > * {\n        padding-left: $mdlext-accordion-header-padding;\n      }\n\n      > *:first-child {\n        padding-left: 0;\n      }\n\n      > *:last-child:not(:only-child):not(.mdlext-accordion__tab__caption) {\n        margin-left: auto; // If more than one element, push last element to the right\n      }\n\n      &--ripple {\n        &[aria-selected='true']::before {\n          width: 5%;\n          height: 10%;\n        }\n      }\n\n    }\n\n    .mdlext-accordion__tabpanel {\n      border-top: 1px solid $mdlext-accordion-header-border-color;\n\n      &--animation {\n        transform: scaleY(1);\n        animation: mdlext-accordion-show-tabpanel-y 0.2s ease-in-out;\n\n        &[hidden] {\n          transform: scaleY(0);\n          animation: mdlext-accordion-hide-tabpanel-y 0.2s ease-out;\n          animation-delay: 0.1s;\n        }\n      }\n    }\n  }\n}\n\n// Horizontal layout\n.mdlext-accordion {\n\n  &--horizontal {\n\n    .mdlext-accordion__panel {\n      min-width: $mdlext-accordion-header-height;\n      width: $mdlext-accordion-header-height;\n    }\n\n    &[aria-multiselectable='true'] .mdlext-accordion__panel.is-expanded {\n      width: 100%;\n    }\n\n    .mdlext-accordion__tab {\n      flex-direction: column-reverse;\n      width: $mdlext-accordion-header-height;\n      white-space: nowrap;\n      border-left: 1px solid $mdlext-accordion-header-border-color;\n\n      &[aria-selected='true']::after {\n        position: absolute;\n        top: 0;\n        right: 0;\n        height: 100%;\n        width: 1px;\n        display: block;\n        content: \" \";\n        background-color: $mdlext-accordion-header-highlight-color;\n\n        // Figure out how to animate a vertical line\n        //animation: border-expand 0.2s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards;\n        //transition: all 1s cubic-bezier(0.4, 0.0, 1, 1);\n      }\n\n      > * {\n        //transform: rotate(-90deg) translateX(50%);\n        transform: rotate(-90deg) translateX($mdlext-accordion-header-padding);\n      }\n\n      > *:last-child:not(:only-child):not(.mdlext-accordion__tab__caption) {\n        // If more than one element, push last element to top\n        margin-bottom: auto;\n        transform: rotate(-90deg) translateX(0);\n      }\n\n      &__caption {\n        transform: rotate(-90deg) translateX(50%);\n        padding-right: $mdlext-accordion-header-padding + 8px;\n      }\n\n      &--ripple {\n        &[aria-selected='true']::before {\n          width: 10%;\n          height: 5%;\n        }\n      }\n    }\n\n    .mdlext-accordion__tabpanel {\n      border-left: 1px solid $mdlext-accordion-header-border-color;\n\n      &--animation {\n        transform: scaleX(1);\n        animation: mdlext-accordion-show-tabpanel-x 0.2s ease-in-out;\n\n        &[hidden] {\n          transform: scaleX(0);\n          animation: mdlext-accordion-hide-tabpanel-x 0.2s ease-out;\n        }\n      }\n    }\n  }\n}\n\n.mdlext-accordion {\n\n  &__panel:first-child > &__tab {\n    // Use container to set outer borders\n    border-top-color: transparent;\n    border-left-color: transparent;\n  }\n\n  &[aria-multiselectable=\"false\"] {\n    .mdlext-accordion__panel.is-expanded {\n      flex-grow: 1;\n    }\n  }\n}\n\n// Making accordion appear disabled.\n// Note: does not prevent tabbing into a disabled accordion\n.mdlext-accordion[disabled] {\n  * {\n    pointer-events: none;\n  }\n  .mdlext-accordion__tab {\n    background-color: $mdlext-accordion-header-disabled-color;\n    color: $mdlext-accordion-header-secondary-color-disabled;\n\n    > * {\n      color: $mdlext-accordion-header-secondary-color-disabled;\n    }\n  }\n  .mdlext-accordion__tabpanel {\n    opacity: 0.8;\n    filter: blur(1px) grayscale(80%);\n  }\n}\n\n\n@keyframes mdlext-accordion-tab-ripple {\n  0% {\n    transform: scale(0, 0);\n    opacity: 1;\n  }\n  20% {\n    transform: scale(25, 25);\n    opacity: 1;\n  }\n  100% {\n    opacity: 0;\n    transform: scale(40, 40);\n  }\n}\n\n/*\n@keyframes mdlext-accordion-show-tabpanel-y {\n  0% { transform: scaleY(0.1); }\n  40% { transform: scaleY(1.03); }\n  60% { transform: scaleY(0.98); }\n  80% { transform: scaleY(1.03); }\n  100% { transform: scaleY(0.98); }\n  80% { transform: scaleY(1.01); }\n  100% { transform: scaleY(1); }\n}\n*/\n\n@keyframes mdlext-accordion-show-tabpanel-y {\n  0% { transform: scaleY(0); }\n  60% { transform: scaleY(1.01); }\n  80% { transform: scaleY(0.98); }\n  100% { transform: scaleY(1); }\n}\n\n@keyframes mdlext-accordion-hide-tabpanel-y {\n  0% { transform: scaleY(1); }\n  60% { transform: scaleY(0.98); }\n  80% { transform: scaleY(1.01); }\n  100% { transform: scaleY(0); }\n}\n\n/*\n@keyframes mdlext-accordion-show-tabpanel-x {\n  0% { transform: scaleX(0.1); }\n  40% { transform: scaleX(1.03); }\n  60% { transform: scaleX(0.98); }\n  80% { transform: scaleX(1.03); }\n  100% { transform: scaleX(0.98); }\n  80% { transform: scaleX(1.01); }\n  100% { transform: scaleX(1); }\n}\n*/\n\n@keyframes mdlext-accordion-show-tabpanel-x {\n  0% { transform: scaleX(0); }\n  60% { transform: scaleX(1.01); }\n  80% { transform: scaleX(0.98); }\n  100% { transform: scaleX(1); }\n}\n\n@keyframes mdlext-accordion-hide-tabpanel-x {\n  0% { transform: scaleX(1); }\n  60% { transform: scaleX(0.98); }\n  80% { transform: scaleX(1.01); }\n  100% { transform: scaleX(0); }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/accordion/_accordion.scss","/* -------------------------------------------------------------\n   Palette samples. Not part of build\n----------------------------------------------------------------\n\n$mdlext-light-color-primary:          #9E9E9E !default;\n$mdlext-light-color-primary-dark:     #616161 !default;\n$mdlext-light-color-primary-light:    #9E9E9E !default;  // Fallback color. Set to color-primary if fallback is not needed\n$mdlext-light-color-primary-contrast: #212121 !default;  // text color on primary/primary dark background\n$mdlext-light-color-accent:           #E040FB !default;\n$mdlext-light-color-accent-light:     #E040FB !default;  // Fallback color. Set to color-accent if fallback is not needed\n$mdlext-light-color-accent-contrast:  #FAFAFA !default;\n\n$mdlext-light-color-primary:          #F5F5F5 !default;\n$mdlext-light-color-primary-dark:     #E0E0E0 !default;\n$mdlext-light-color-primary-light:    #8BC34A !default;  // Fallback color. Set to color-primary if fallback is not needed\n$mdlext-light-color-primary-contrast: #000000 !default;  // text color on primary/primary dark background\n$mdlext-light-color-accent:           #FFC107 !default;\n$mdlext-light-color-accent-light:     #FFC107 !default;  // Fallback color. Set to color-accent if fallback is not needed\n$mdlext-light-color-accent-contrast:  #FFFFFF !default;\n\n\n$mdlext-light-color-primary:          #673AB7 !default;\n$mdlext-light-color-primary-dark:     #512DA8 !default;\n$mdlext-light-color-primary-light:    #673AB7 !default;   // Fallback color. Set to color-primary if fallback is not needed\n$mdlext-light-color-primary-contrast: #D1C4E9 !default;   // text color on primary/primary dark background\n$mdlext-light-color-accent:           #4CAF50 !default;\n$mdlext-light-color-accent-light:     #4CAF50 !default;   // Fallback color. Set to color-accent if fallback is not needed\n$mdlext-light-color-accent-contrast:  #FFFFFF !default;\n\n\n$mdlext-light-color-primary:          #4CAF50 !default;\n$mdlext-light-color-primary-dark:     #388E3C !default;\n$mdlext-light-color-primary-light:    #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed\n$mdlext-light-color-primary-contrast: #C8E6C9 !default;  // text color on primary/primary dark background\n$mdlext-light-color-accent:           #FF5252 !default;\n$mdlext-light-color-accent-light:     #FF5252 !default;  // Fallback color. Set to color-accent if fallback is not needed\n$mdlext-light-color-accent-contrast:  #FFFFFF !default;\n\n\n$mdlext-light-color-primary:          #4CAF50 !default;\n$mdlext-light-color-primary-dark:     #388E3C !default;\n$mdlext-light-color-primary-light:    #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed\n$mdlext-light-color-primary-contrast: #C8E6C9 !default;  // text color on primary/primary dark background\n$mdlext-light-color-accent:           #03A9F4 !default;\n$mdlext-light-color-accent-light:     #03A9F4 !default;  // Fallback color. Set to color-accent if fallback is not needed\n$mdlext-light-color-accent-contrast:  #FFFFFF !default;\n\n\n$mdlext-dark-color-primary:           #212121 !default;\n$mdlext-dark-color-primary-dark:      #000000 !default;\n$mdlext-dark-color-primary-light:     #607D8B !default;  // Fallback color. Set to color-primary if fallback is not needed\n$mdlext-dark-color-primary-contrast:  #FFFFFF !default;  // text color on primary/primary dark background\n$mdlext-dark-color-accent:            #FF5722 !default;\n$mdlext-dark-color-accent-light:      #FF5722 !default;  // Fallback color. Set to color-accent if fallback is not needed\n$mdlext-dark-color-accent-contrast:   #FFFFFF !default;\n\n*/\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/color-themes/_color-themes.scss","@import \"color-themes\";\n\n.mdlext-light-color-theme {\n  background-color: $mdlext-light-content-background-color;\n  color: $mdlext-light-text-color-primary;\n\n  a {\n    outline-color: inherit;\n  }\n}\n\n// mdl/src/palette/_palette.scss\n// -----------------------------\n.mdlext-light-color-theme {\n\n  .mdl-color--primary {\n    background-color: $mdlext-light-color-primary !important;\n  }\n\n  .mdl-color--primary-contrast {\n    background-color: $mdlext-light-color-primary-contrast !important;\n  }\n\n  .mdl-color--primary-dark {\n    background-color: $mdlext-light-color-primary-dark !important;\n  }\n\n  .mdl-color--accent {\n    background-color: $mdlext-light-color-accent !important;\n  }\n\n  .mdl-color--accent-contrast {\n    background-color: $mdlext-light-color-accent-contrast !important;\n  }\n\n  .mdl-color-text--primary {\n    color: $mdlext-light-color-primary !important;\n  }\n\n  .mdl-color-text--primary-contrast {\n    color: $mdlext-light-color-primary-contrast !important;\n  }\n\n  .mdl-color-text--primary-dark {\n    color: $mdlext-light-color-primary-dark !important;\n  }\n\n  .mdl-color-text--accent {\n    color: $mdlext-light-color-accent !important;\n  }\n\n  .mdl-color-text--accent-contrast {\n    color: $mdlext-light-color-accent-contrast !important;\n  }\n\n}\n\n// mdl/src/typography/_typography.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n  a {\n    color: $mdlext-light-text-link-color;\n  }\n}\n\n\n// mdl/src/badge/_badge.scss\n// ---------------------------\n.mdlext-light-color-theme {\n  .mdl-badge {\n\n    &[data-badge]::after {\n      background: $mdlext-light-badge-background;\n      color: $mdlext-light-badge-color;\n    }\n\n    &.mdl-badge--no-background {\n      &[data-badge]::after {\n        color: $mdlext-light-badge-color-inverse;\n        background: $mdlext-light-badge-background-inverse;\n      }\n    }\n  }\n}\n\n\n// mdl/src/button/_button.scss\n// ---------------------------\n.mdlext-light-color-theme {\n\n  .mdl-button {\n    background: transparent;\n    color: $mdlext-light-button-secondary-color;\n\n    &:hover {\n      background-color: $mdlext-light-button-hover-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-light-button-focus-color;\n    }\n\n    &:active {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      color: $mdlext-light-button-primary-color-alt;\n\n      &:focus:not(:active) {\n        background-color: $mdlext-light-button-focus-color-alt;\n      }\n    }\n  }\n\n  // Raised buttons\n  .mdl-button--raised {\n    background: $mdlext-light-button-primary-color;\n\n    &:active {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $mdlext-light-button-primary-color-alt;\n      color: $mdlext-light-button-secondary-color-alt;\n\n      &:hover {\n        background-color: $mdlext-light-button-hover-color-alt;\n      }\n\n      &:active {\n        background-color: $mdlext-light-button-active-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $mdlext-light-button-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $mdlext-light-button-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // FABs\n  .mdl-button--fab {\n    background: $mdlext-light-button-primary-color;\n\n    &:active {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $mdlext-light-button-fab-color-alt;\n      color: $mdlext-light-button-fab-text-color-alt;\n\n      &:hover {\n        background-color: $mdlext-light-button-fab-hover-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $mdlext-light-button-fab-active-color-alt;\n      }\n\n      &:active {\n        background-color: $mdlext-light-button-fab-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $mdlext-light-button-fab-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // Icon buttons\n  .mdl-button--icon {\n    color: inherit;\n  }\n\n  // Colorized buttons\n\n  .mdl-button--primary.mdl-button--primary {\n    color: $mdlext-light-button-primary-color-alt;\n\n    & .mdl-ripple {\n      background: $mdlext-light-button-secondary-color-alt;\n    }\n    &.mdl-button--raised,\n    &.mdl-button--fab {\n      color: $mdlext-light-button-secondary-color-alt;\n      background-color: $mdlext-light-button-primary-color-alt;\n    }\n  }\n\n  .mdl-button--accent.mdl-button--accent {\n    color: $mdlext-light-button-fab-color-alt;\n\n    & .mdl-ripple {\n      background: $mdlext-light-button-fab-text-color-alt;\n    }\n    &.mdl-button--raised,\n    &.mdl-button--fab {\n      color: $mdlext-light-button-fab-text-color-alt;\n      background-color: $mdlext-light-button-fab-color-alt;\n    }\n  }\n\n  // Disabled buttons\n\n  .mdl-button {\n    // Bump up specificity by using [disabled] twice.\n    &[disabled][disabled],\n    &.mdl-button--disabled.mdl-button--disabled {\n      color: $mdlext-light-button-secondary-color-disabled;\n      background-color: transparent;\n    }\n\n    &--fab {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        background-color: $mdlext-light-button-primary-color-disabled;\n        color: $mdlext-light-button-secondary-color-disabled;\n      }\n    }\n\n    &--raised {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        background-color: $mdlext-light-button-primary-color-disabled;\n        color: $mdlext-light-button-secondary-color-disabled;\n      }\n    }\n    &--colored {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        color: $mdlext-light-button-secondary-color-disabled;\n      }\n    }\n  }\n}\n\n// mdl/src/slider/_slider.scss\n// ---------------------------\n.mdlext-light-color-theme {\n  .mdl-slider {\n\n    &.is-upgraded {\n      background: transparent;\n      color: $mdlext-light-range-color;\n\n      &::-webkit-slider-runnable-track {\n        background: transparent;\n      }\n\n      &::-moz-range-track {\n        background: transparent;\n      }\n\n      &::-ms-track {\n        background: none;\n        color: transparent;\n      }\n\n      /* stylelint-disable */\n      &::-ms-fill-lower {\n        background: linear-gradient(to right,\n          transparent,\n          transparent 16px,\n          $mdlext-light-range-color 16px,\n          $mdlext-light-range-color 0);\n      }\n\n      &::-ms-fill-upper {\n        background: linear-gradient(to left,\n          transparent,\n          transparent 16px,\n          $mdlext-light-range-bg-color 16px,\n          $mdlext-light-range-bg-color 0);\n      }\n      /* stylelint-enable */\n\n\n      /**************************** Thumbs ****************************/\n      &::-webkit-slider-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      &::-moz-range-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      &:focus:not(:active)::-webkit-slider-thumb {\n        box-shadow: 0 0 0 10px $mdlext-light-range-faded-color;\n      }\n\n      &:focus:not(:active)::-moz-range-thumb {\n        box-shadow: 0 0 0 10px $mdlext-light-range-faded-color;\n      }\n\n      &:active::-webkit-slider-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      &:active::-moz-range-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      &::-ms-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      /* stylelint-disable */\n      &:focus:not(:active)::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          $mdlext-light-range-color 0%,\n          $mdlext-light-range-color 37.5%,\n          $mdlext-light-range-faded-color 37.5%,\n          $mdlext-light-range-faded-color 100%);\n      }\n      /* stylelint-enable */\n\n      &:active::-ms-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n\n      /**************************** 0-value ****************************/\n\n      &.is-lowest-value::-webkit-slider-thumb {\n        border-color: $mdlext-light-range-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value::-moz-range-thumb {\n        border-color: $mdlext-light-range-bg-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {\n        box-shadow: 0 0 0 10px $mdlext-light-range-bg-focus-color;\n        background: $mdlext-light-range-bg-focus-color;\n      }\n\n      &.is-lowest-value:focus:not(:active)::-moz-range-thumb {\n        box-shadow: 0 0 0 10px $mdlext-light-range-bg-focus-color;\n        background: $mdlext-light-range-bg-focus-color;\n      }\n\n      &.is-lowest-value:active::-webkit-slider-thumb {\n        border-color: $mdlext-light-range-bg-color;\n      }\n\n      &.is-lowest-value:active::-moz-range-thumb {\n        border-color: $mdlext-light-range-bg-color;\n      }\n\n      /* stylelint-disable */\n      &.is-lowest-value::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 66.67%,\n          $mdlext-light-range-bg-color 66.67%,\n          $mdlext-light-range-bg-color 100%);\n      }\n\n      &.is-lowest-value:focus:not(:active)::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          $mdlext-light-range-bg-focus-color 0%,\n          $mdlext-light-range-bg-focus-color 25%,\n          $mdlext-light-range-bg-color 25%,\n          $mdlext-light-range-bg-color 37.5%,\n          $mdlext-light-range-bg-focus-color 37.5%,\n          $mdlext-light-range-bg-focus-color 100%);\n      }\n\n      &.is-lowest-value:active::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 77.78%,\n          $mdlext-light-range-bg-color 77.78%,\n          $mdlext-light-range-bg-color 100%);\n      }\n      /* stylelint-enable */\n\n      &.is-lowest-value::-ms-fill-lower {\n        background: transparent;\n      }\n\n      /**************************** Disabled ****************************/\n\n      &:disabled:focus::-webkit-slider-thumb,\n      &:disabled:active::-webkit-slider-thumb,\n      &:disabled::-webkit-slider-thumb {\n        background: $mdlext-light-range-bg-color;\n      }\n\n      &:disabled:focus::-moz-range-thumb,\n      &:disabled:active::-moz-range-thumb,\n      &:disabled::-moz-range-thumb {\n        background: $mdlext-light-range-bg-color;\n      }\n\n      &:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {\n        background-color: $mdlext-light-range-bg-color;\n      }\n\n      &.is-lowest-value:disabled:focus::-webkit-slider-thumb,\n      &.is-lowest-value:disabled:active::-webkit-slider-thumb,\n      &.is-lowest-value:disabled::-webkit-slider-thumb {\n        border-color: $mdlext-light-range-bg-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value:disabled:focus::-moz-range-thumb,\n      &.is-lowest-value:disabled:active::-moz-range-thumb,\n      &.is-lowest-value:disabled::-moz-range-thumb {\n        border-color: $mdlext-light-range-bg-color;\n        background: transparent;\n      }\n\n      &:disabled:focus::-ms-thumb,\n      &:disabled:active::-ms-thumb,\n      &:disabled::-ms-thumb {\n        background: $mdlext-light-range-bg-color;\n      }\n\n      /* stylelint-disable */\n      &.is-lowest-value:disabled:focus::-ms-thumb,\n      &.is-lowest-value:disabled:active::-ms-thumb,\n      &.is-lowest-value:disabled::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 50%,\n          $mdlext-light-range-bg-color 50%,\n          $mdlext-light-range-bg-color 100%);\n      }\n\n      &:disabled::-ms-fill-lower {\n        background: linear-gradient(to right,\n          transparent,\n          transparent 25px,\n          $mdlext-light-range-bg-color 25px,\n          $mdlext-light-range-bg-color 0);\n      }\n      /* stylelint-enable */\n\n    }\n  }\n\n  .mdl-slider__background-flex {\n    background: transparent;\n  }\n\n  .mdl-slider__background-lower {\n    background: $mdlext-light-range-color;\n  }\n\n  // This one styles the upper part of the slider track.\n  .mdl-slider__background-upper {\n    background: $mdlext-light-range-bg-color;\n  }\n}\n\n\n// mdl/src/textfield/_textfield.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-textfield__input {\n    border-bottom-color: $mdlext-light-input-text-bottom-border-color;\n  }\n  .mdl-textfield.is-invalid .mdl-textfield__input {\n    border-color: $mdlext-light-input-text-error-color;\n  }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n  .mdl-textfield.is-disabled .mdl-textfield__input {\n    background-color: transparent;\n    border-bottom-color: $mdlext-light-input-text-disabled-color;\n    color: $mdlext-light-input-text-disabled-text-color;\n  }\n  .mdl-textfield__label {\n    color: $mdlext-light-input-text-label-color;\n  }\n  .mdl-textfield__label::after {\n    background-color: $mdlext-light-input-text-highlight-color;\n  }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n  .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {\n    color: $mdlext-light-input-text-disabled-text-color;\n  }\n  .mdl-textfield--floating-label.is-focused .mdl-textfield__label,\n  .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,\n  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {\n    color: $mdlext-light-input-text-highlight-color;\n  }\n  .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {\n    color: $mdlext-light-input-text-error-color;\n  }\n  .mdl-textfield.is-invalid .mdl-textfield__label::after {\n    background-color: $mdlext-light-input-text-error-color;\n  }\n  .mdl-textfield__error {\n    color: $mdlext-light-input-text-error-color;\n  }\n}\n\n\n// mdl/src/checkbox/_checkbox.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-checkbox__box-outline {\n    border-color: $mdlext-light-checkbox-off-color;\n  }\n  .mdl-checkbox.is-checked .mdl-checkbox__box-outline {\n    border-color: $mdlext-light-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,\n  .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {\n    border-color: $mdlext-light-checkbox-disabled-color;\n  }\n\n  .mdl-checkbox__focus-helper {\n    background-color: transparent;\n  }\n  .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {\n    box-shadow: 0 0 0 ($checkbox-button-size / 2) $mdlext-light-checkbox-focus-color;\n    background-color: $mdlext-light-checkbox-focus-color;\n  }\n\n  .mdl-checkbox__tick-outline {\n    background: transparent;\n  }\n  .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {\n    background-color: $mdlext-light-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,\n  .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {\n    background-color: $mdlext-light-checkbox-disabled-color;\n  }\n\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,\n  .mdl-checkbox.is-disabled .mdl-checkbox__label {\n    color: $mdlext-light-checkbox-disabled-color;\n  }\n\n  .mdl-checkbox__ripple-container .mdl-ripple {\n    background: $mdlext-light-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,\n  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n\n}\n\n// mdl/src/radio/_radio.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n  .mdl-radio__outer-circle {\n    border-color: $mdlext-light-radio-off-color;\n  }\n  .mdl-radio.is-checked .mdl-radio__outer-circle {\n    border-color: $mdlext-light-radio-color;\n  }\n  .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,\n  .mdl-radio.is-disabled .mdl-radio__outer-circle {\n    border-color: $mdlext-light-radio-disabled-color;\n  }\n\n  .mdl-radio__inner-circle {\n    background: $mdlext-light-radio-color;\n  }\n  fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,\n  .mdl-radio.is-disabled .mdl-radio__inner-circle {\n    background: $mdlext-light-radio-disabled-color;\n  }\n\n  fieldset[disabled] .mdl-radio .mdl-radio__label,\n  .mdl-radio.is-disabled .mdl-radio__label {\n    color: $mdlext-light-radio-disabled-color;\n  }\n\n  .mdl-radio__ripple-container .mdl-ripple {\n    background: $mdlext-light-radio-color;\n  }\n  fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,\n  .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n// mdl/src/icon-togglr/_icon-toggle.scss\n// ---------------------------------------\n.mdlext-light-color-theme {\n  .mdl-icon-toggle__label {\n    color: $mdlext-light-icon-toggle-color;\n  }\n  .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {\n    color: $mdlext-light-icon-toggle-checked-color;\n  }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {\n    color: $mdlext-light-icon-toggle-disabled-color;\n  }\n  .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {\n    background-color: $mdlext-light-icon-toggle-focus-color;\n  }\n  .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {\n    background-color: $mdlext-light-icon-toggle-checked-focus-color;\n  }\n  .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: $mdlext-light-icon-toggle-color;\n  }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n\n// mdl/src/switch/_switch.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-switch__track {\n    background: $mdlext-light-switch-off-track-color;\n  }\n  .mdl-switch.is-checked .mdl-switch__track {\n    background: $mdlext-light-switch-track-color;\n  }\n  .mdl-switch__track fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__track {\n    background: $mdlext-light-switch-disabled-track-color;\n  }\n\n  .mdl-switch__thumb {\n    background: $mdlext-light-switch-off-thumb-color;\n  }\n  .mdl-switch.is-checked .mdl-switch__thumb {\n    background: $mdlext-light-switch-thumb-color;\n  }\n  .mdl-switch__thumb fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__thumb {\n    background: $mdlext-light-switch-disabled-thumb-color;\n  }\n\n  .mdl-switch__focus-helper {\n    background-color: transparent;\n  }\n  .mdl-switch.is-focused .mdl-switch__focus-helper {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n  .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {\n    box-shadow: 0 0 0 (($switch-ripple-size - $switch-helper-size) / 2) $mdlext-light-switch-faded-color;\n    background-color: $mdlext-light-switch-faded-color;\n  }\n\n  .mdl-switch__label fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__label {\n    color: $mdlext-light-switch-disabled-thumb-color;\n  }\n\n  .mdl-switch__ripple-container .mdl-ripple {\n    background: $mdlext-light-switch-color;\n  }\n  fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,\n  .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n\n// mdl/src/data-table/_data-table.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-data-table {\n    border-color: $mdlext-light-data-table-divider-color;\n    background-color: $mdlext-light-data-table-background-color;\n\n    tbody {\n      tr {\n        &.is-selected {\n          background-color: $mdlext-light-data-table-selection-color;\n        }\n        &:hover {\n          background-color: $mdlext-light-data-table-hover-color;\n        }\n      }\n    }\n    th {\n      color: $data-table-header-color;\n\n      &.mdl-data-table__header--sorted-ascending,\n      &.mdl-data-table__header--sorted-descending {\n        color: $mdlext-light-data-table-header-sorted-color;\n\n        &:hover {\n          &::before {\n            color: $mdlext-light-data-table-header-sorted-icon-hover-color;\n          }\n        }\n      }\n    }\n  }\n}\n\n\n// mdl/src/menu/_menu.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-menu__outline {\n    background: $mdlext-light-default-dropdown-bg-color;\n  }\n\n  .mdl-menu__item {\n    color: $mdlext-light-default-item-text-color;\n    background-color: transparent;\n    outline-color: $mdlext-light-default-item-outline-color;\n\n    &--full-bleed-divider {\n      border-bottom-color: $mdlext-light-default-item-divider-color;\n    }\n\n    &[disabled],\n    &[data-mdl-disabled] {\n      color: $mdlext-light-disabled-item-text-color;\n      background-color: transparent;\n\n      &:hover {\n        background-color: transparent;\n      }\n\n      &:focus {\n        background-color: transparent;\n      }\n\n      & .mdl-ripple {\n        background: transparent;\n      }\n    }\n\n    &:hover {\n      background-color: $mdlext-light-default-item-hover-bg-color;\n    }\n\n    &:focus {\n      background-color: $mdlext-light-default-item-focus-bg-color;\n    }\n\n    &:active {\n      background-color: $mdlext-light-default-item-active-bg-color;\n    }\n  }\n}\n\n\n// mdl/src/card/_card.scss\n// ----------------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-card {\n    background: $mdlext-light-card-background-color;\n  }\n\n  .mdl-card__media {\n    background-color: $mdlext-light-card-image-placeholder-color;\n  }\n\n  .mdl-card__title {\n    color: $mdlext-light-card-text-color;\n\n    &.mdl-card--border {\n      border-bottom-color: $mdlext-light-card-border-color;\n    }\n  }\n\n  .mdl-card__title-text {\n    color: inherit;\n  }\n\n  .mdl-card__subtitle-text {\n    color: $mdlext-light-card-subtitle-color;\n  }\n\n  .mdl-card__supporting-text {\n    color: $mdlext-light-card-supporting-text-text-color;\n  }\n\n  .mdl-card__actions {\n    background-color: rgba(0, 0, 0, 0);\n\n    &.mdl-card--border {\n      border-top-color: $mdlext-light-card-border-color;\n    }\n  }\n}\n\n\n// mdlext/src/selectfield/_selectfield.scss\n// ----------------------------------------\n.mdlext-light-color-theme {\n\n  .mdlext-selectfield.is-disabled::after {\n    color: $mdlext-light-input-text-disabled-color;\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-light-input-text-disabled-color);\n  }\n\n  .mdlext-selectfield__select {\n    border-bottom-color: $mdlext-light-input-text-bottom-border-color;\n    color: inherit;\n\n    option {\n      background-color: $mdlext-light-content-background-color;\n      color: $mdlext-light-text-color-primary;\n    }\n  }\n  .mdlext-selectfield.is-invalid .mdlext-selectfield__select {\n    border-color: $mdlext-light-input-text-error-color;\n  }\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,\n  .mdlext-selectfield.is-disabled .mdlext-selectfield__select {\n    background-color: transparent;\n    border-bottom-color: $mdlext-light-input-text-disabled-color;\n    color: $mdlext-light-input-text-disabled-text-color;\n  }\n\n  .mdlext-selectfield__label {\n    color: $mdlext-light-input-text-label-color;\n  }\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,\n  .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {\n    color: $mdlext-light-input-text-disabled-text-color;\n  }\n  .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {\n    color: $mdlext-light-input-text-highlight-color;\n  }\n  .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {\n    color: $mdlext-light-input-text-error-color;\n  }\n  .mdlext-selectfield__label::after {\n    background-color: $mdlext-light-input-text-highlight-color;\n  }\n  .mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {\n    background-color: $mdlext-light-input-text-error-color;\n  }\n\n  .mdlext-selectfield__error {\n    color: $mdlext-light-input-text-error-color;\n  }\n}\n\n// mdlext/src/menu-button/_menu-button.scss\n// ----------------------------------------\n.mdlext-menu.mdlext-light-color-theme {\n  background: $mdlext-light-default-dropdown-bg-color;\n}\n\n.mdlext-light-color-theme {\n\n  .mdlext-menu {\n    background: $mdlext-light-default-dropdown-bg-color;\n\n    &__item {\n      color: $mdlext-light-default-item-text-color;\n      background-color: $mdlext-light-default-dropdown-bg-color;\n\n      &:active,\n      &[aria-selected='true'] {\n        background-color: $mdlext-light-default-item-active-bg-color;\n      }\n      &:hover:not([disabled]) {\n        background-color: $mdlext-light-default-item-hover-bg-color;\n      }\n      &:focus {\n        outline-color: $mdlext-light-default-item-outline-color;\n        background-color: $mdlext-light-default-item-focus-bg-color;\n      }\n      &[disabled] {\n        color: $mdlext-light-disabled-item-text-color;\n\n        > * {\n          color: $mdlext-light-disabled-item-text-color;\n        }\n      }\n    }\n    &__item-separator {\n      border-bottom: 1px solid $mdlext-light-default-item-divider-color;\n    }\n  }\n}\n\n\n// mdlext/src/bordered-fields/_bordered-fields.scss\n// -------------------------------------------------\n.mdlext-light-color-theme {\n\n  .mdlext-bordered-fields {\n\n    .mdl-textfield,\n    .mdlext-selectfield {\n\n      .mdl-textfield__input,\n      .mdlext-selectfield__select {\n        background-color: $mdlext-light-bordered-field-background-color;\n        border-color: $mdlext-light-bordered-field-border-color;\n        color: $mdlext-light-bordered-field-input-text-color;\n\n        &:disabled {\n          color: $mdlext-light-bordered-field-input-text-disabled-text-color;\n          background-color: $mdlext-light-bordered-field-disabled-background-color;\n          border-color: $mdlext-light-bordered-field-disabled-border-color;\n        }\n        &:focus {\n          background-color: $mdlext-light-bordered-field-focus-background-color;\n          border-color: $mdlext-light-bordered-field-focus-border-color;\n        }\n      }\n      &.is-invalid {\n        .mdl-textfield__input,\n        .mdlext-selectfield__select {\n          color: $mdlext-light-bordered-field-input-text-error-color;\n          border-color: $mdlext-light-bordered-field-error-border-color;\n          background-color: $mdlext-light-bordered-field-error-background-color;\n\n          &:focus {\n            border-color: $mdlext-light-bordered-field-error-focus-border-color;\n            background-color: $mdlext-light-bordered-field-error-focus-background-color;\n          }\n        }\n      }\n    }\n\n    fieldset[disabled] .mdlext-selectfield::after,\n    .mdlext-selectfield.is-disabled::after {\n      color: $mdlext-light-bordered-field-input-text-disabled-text-color;\n      @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-light-bordered-field-input-text-disabled-text-color);\n    }\n\n    fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n    fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {\n      color: $mdlext-light-bordered-field-input-text-disabled-text-color;\n      background-color: $mdlext-light-bordered-field-disabled-background-color;\n      border-color: $mdlext-light-bordered-field-disabled-border-color;\n    }\n\n    .mdl-textfield,\n    .mdlext-selectfield {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-light-bordered-field-input-text-label-color;\n      }\n      &.mdl-textfield--floating-label.is-focused.is-focused,\n      &.mdl-textfield--floating-label.is-dirty.is-dirty,\n      &.mdl-textfield--floating-label.has-placeholder,\n      &.mdlext-selectfield--floating-label.is-focused.is-focused,\n      &.mdlext-selectfield--floating-label.is-dirty.is-dirty,\n      &.mdlext-selectfield--floating-label.has-placeholder {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-light-bordered-field-input-text-label-focus-color;\n        }\n      }\n      &.mdl-textfield--floating-label.is-disabled.is-disabled,\n      &.mdlext-selectfield--floating-label.is-disabled.is-disabled {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-light-bordered-field-input-text-label-disabled-color;\n        }\n      }\n      &.mdl-textfield--floating-label.is-invalid.is-invalid,\n      &.mdlext-selectfield--floating-label.is-invalid.is-invalid {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-light-bordered-field-input-text-label-error-color;\n        }\n      }\n    }\n\n    fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n    fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {\n      color: $mdlext-light-bordered-field-input-text-label-disabled-color;\n    }\n\n    // Icon(s) and/or button(s) inside textfield\n    .mdl-textfield,\n    .mdlext-selectfield {\n      &.is-disabled i,\n      &.is-disabled .mdl-button {\n        color: $mdlext-light-bordered-field-disabled-border-color;\n      }\n    }\n    fieldset[disabled] .mdl-textfield,\n    fieldset[disabled] .mdlext-selectfield {\n      i,\n      .mdl-button {\n        color: $mdlext-light-bordered-field-disabled-border-color;\n      }\n    }\n  }\n}\n\n\n// mdlext/src/accordion/_accordion.scss\n// ----------------------------------------\n.mdlext-light-color-theme {\n\n  .mdlext-accordion {\n\n    &__tab {\n      color: $mdlext-light-accordion-header-secondary-color;\n      background-color: $mdlext-light-accordion-header-background-color;\n\n      &:focus {\n        outline-color: $mdlext-light-accordion-header-focus-outline-color;\n      }\n      &[aria-expanded='true'] {\n        background-color: $mdlext-light-accordion-header-background-open-color;\n      }\n      &[aria-selected='true'] {\n        background-color: $mdlext-light-accordion-header-background-active-color;\n      }\n      &[disabled] {\n        background-color: $mdlext-light-accordion-header-disabled-color;\n        color: $mdlext-light-accordion-header-secondary-color-disabled;\n        pointer-events: none;\n\n        > * {\n          color: $mdlext-light-accordion-header-secondary-color-disabled;\n        }\n      }\n      &:hover:not([disabled]) {\n        background-color: $mdlext-light-accordion-header-background-hover-color;\n      }\n      &--ripple {\n        &[aria-selected='true']::before {\n          background: $mdlext-light-accordion-ripple-color;\n        }\n      }\n    }\n\n    &__tabpanel {\n      color: $mdlext-light-accordion-content-color;\n      background-color: $mdlext-light-accordion-content-background-color;\n    }\n  }\n\n  // Vertical layout\n  .mdlext-accordion {\n\n    &--vertical {\n\n      .mdlext-accordion__tab {\n        border-top: 1px solid $mdlext-light-accordion-header-border-color;\n\n        &[aria-selected='true']::after {\n          background-color: $mdlext-light-accordion-header-highlight-color;\n        }\n      }\n      .mdlext-accordion__tabpanel {\n        border-top: 1px solid $mdlext-light-accordion-header-border-color;\n      }\n    }\n  }\n\n  // Horizontal layout\n  .mdlext-accordion {\n\n    &--horizontal {\n\n      .mdlext-accordion__tab {\n        border-left: 1px solid $mdlext-light-accordion-header-border-color;\n\n        &[aria-selected='true']::after {\n          background-color: $mdlext-light-accordion-header-highlight-color;\n        }\n      }\n      .mdlext-accordion__tabpanel {\n        border-left: 1px solid $mdlext-light-accordion-header-border-color;\n      }\n    }\n  }\n\n  .mdlext-accordion {\n\n    &__panel:first-child > &__tab {\n      // Use container to set outer borders\n      border-top-color: transparent;\n      border-left-color: transparent;\n    }\n  }\n\n  // Making accordion appear disabled.\n  // Note: does not prevent tabbing into a disabled accordion\n  .mdlext-accordion[disabled] {\n    .mdlext-accordion__tab {\n      background-color: $mdlext-light-accordion-header-disabled-color;\n      color: $mdlext-light-accordion-header-secondary-color-disabled;\n\n      > * {\n        color: $mdlext-light-accordion-header-secondary-color-disabled;\n      }\n    }\n    .mdlext-accordion__tabpanel {\n      opacity: 0.8;\n      filter: blur(1px) grayscale(80%);\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/color-themes/_light-color-theme.scss","@import \"color-themes\";\n\n.mdlext-dark-color-theme {\n  background-color: $mdlext-dark-content-background-color;\n  color: $mdlext-dark-text-color-primary;\n  a {\n    outline-color: inherit;\n  }\n}\n\n// mdl/src/palette/_palette.scss\n.mdlext-dark-color-theme {\n\n  .mdl-color--primary {\n    background-color: $mdlext-dark-color-primary !important;\n  }\n\n  .mdl-color--primary-contrast {\n    background-color: $mdlext-dark-color-primary-contrast !important;\n  }\n\n  .mdl-color--primary-dark {\n    background-color: $mdlext-dark-color-primary-dark !important;\n  }\n\n  .mdl-color--accent {\n    background-color: $mdlext-dark-color-accent !important;\n  }\n\n  .mdl-color--accent-contrast {\n    background-color: $mdlext-dark-color-accent-contrast !important;\n  }\n\n  .mdl-color-text--primary {\n    color: $mdlext-dark-color-primary !important;\n  }\n\n  .mdl-color-text--primary-contrast {\n    color: $mdlext-dark-color-primary-contrast !important;\n  }\n\n  .mdl-color-text--primary-dark {\n    color: $mdlext-dark-color-primary-dark !important;\n  }\n\n  .mdl-color-text--accent {\n    color: $mdlext-dark-color-accent !important;\n  }\n\n  .mdl-color-text--accent-contrast {\n    color: $mdlext-dark-color-accent-contrast !important;\n  }\n\n}\n\n// mdl/src/typography/_typography.scss\n.mdlext-dark-color-theme {\n  a {\n    color: $mdlext-dark-text-link-color;\n  }\n}\n\n\n// mdl/src/badge/_badge.scss\n// ---------------------------\n.mdlext-dark-color-theme {\n  .mdl-badge {\n\n    &[data-badge]::after {\n      background: $mdlext-dark-badge-background;\n      color: $mdlext-dark-badge-color;\n    }\n\n    &.mdl-badge--no-background {\n      &[data-badge]::after {\n        color: $mdlext-dark-badge-color-inverse;\n        background: $mdlext-dark-badge-background-inverse;\n      }\n    }\n  }\n}\n\n\n// mdl/src/button/_button.scss\n// ---------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-button {\n    background: transparent;\n    color: $mdlext-dark-button-secondary-color;\n\n    &:hover {\n      background-color: $mdlext-dark-button-hover-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-dark-button-focus-color;\n    }\n\n    &:active {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      color: $mdlext-dark-button-primary-color-alt;\n\n      &:focus:not(:active) {\n        background-color: $mdlext-dark-button-focus-color-alt;\n      }\n    }\n  }\n\n  // Raised buttons\n  .mdl-button--raised {\n    background: $mdlext-dark-button-primary-color;\n\n    &:active {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $mdlext-dark-button-primary-color-alt;\n      color: $mdlext-dark-button-secondary-color-alt;\n\n      &:hover {\n        background-color: $mdlext-dark-button-hover-color-alt;\n      }\n\n      &:active {\n        background-color: $mdlext-dark-button-active-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $mdlext-dark-button-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $mdlext-dark-button-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // FABs\n  .mdl-button--fab {\n    background: $mdlext-dark-button-primary-color;\n\n    &:active {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $mdlext-dark-button-fab-color-alt;\n      color: $mdlext-dark-button-fab-text-color-alt;\n\n      &:hover {\n        background-color: $mdlext-dark-button-fab-hover-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $mdlext-dark-button-fab-active-color-alt;\n      }\n\n      &:active {\n        background-color: $mdlext-dark-button-fab-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $mdlext-dark-button-fab-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // Icon buttons\n  .mdl-button--icon {\n    color: inherit;\n  }\n\n  // Colorized buttons\n\n  .mdl-button--primary.mdl-button--primary {\n    color: $mdlext-dark-button-primary-color-alt;\n\n    & .mdl-ripple {\n      background: $mdlext-dark-button-secondary-color-alt;\n    }\n    &.mdl-button--raised,\n    &.mdl-button--fab {\n      color: $mdlext-dark-button-secondary-color-alt;\n      background-color: $mdlext-dark-button-primary-color-alt;\n    }\n  }\n\n  .mdl-button--accent.mdl-button--accent {\n    color: $mdlext-dark-button-fab-color-alt;\n\n    & .mdl-ripple {\n      background: $mdlext-dark-button-fab-text-color-alt;\n    }\n    &.mdl-button--raised,\n    &.mdl-button--fab {\n      color: $mdlext-dark-button-fab-text-color-alt;\n      background-color: $mdlext-dark-button-fab-color-alt;\n    }\n  }\n\n  // Disabled buttons\n\n  .mdl-button {\n    // Bump up specificity by using [disabled] twice.\n    &[disabled][disabled],\n    &.mdl-button--disabled.mdl-button--disabled {\n      color: $mdlext-dark-button-secondary-color-disabled;\n      background-color: transparent;\n    }\n\n    &--fab {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        background-color: $mdlext-dark-button-primary-color-disabled;\n        color: $mdlext-dark-button-secondary-color-disabled;\n      }\n    }\n\n    &--raised {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        background-color: $mdlext-dark-button-primary-color-disabled;\n        color: $mdlext-dark-button-secondary-color-disabled;\n      }\n    }\n    &--colored {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        color: $mdlext-dark-button-secondary-color-disabled;\n      }\n    }\n  }\n}\n\n\n// mdl/src/slider/_slider.scss\n// ---------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-slider {\n\n    &.is-upgraded {\n      background: transparent;\n      color: $mdlext-dark-range-color;\n\n      &::-webkit-slider-runnable-track {\n        background: transparent;\n      }\n\n      &::-moz-range-track {\n        background: transparent;\n      }\n\n      &::-ms-track {\n        background: none;\n        color: transparent;\n      }\n\n      /* stylelint-disable */\n      &::-ms-fill-lower {\n        background: linear-gradient(\n          to right,\n          transparent,\n          transparent 16px,\n          $mdlext-dark-range-color 16px,\n          $mdlext-dark-range-color 0\n        );\n      }\n\n      &::-ms-fill-upper {\n        background: linear-gradient(\n          to left,\n          transparent,\n          transparent 16px,\n          $mdlext-dark-range-bg-color 16px,\n          $mdlext-dark-range-bg-color 0);\n      }\n      /* stylelint-enable */\n\n      &::-webkit-slider-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      &::-moz-range-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      &:focus:not(:active)::-webkit-slider-thumb {\n        box-shadow: 0 0 0 10px $mdlext-dark-range-faded-color;\n      }\n\n      &:focus:not(:active)::-moz-range-thumb {\n        box-shadow: 0 0 0 10px $mdlext-dark-range-faded-color;\n      }\n\n      &:active::-webkit-slider-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      &:active::-moz-range-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      &::-ms-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      /* stylelint-disable */\n      &:focus:not(:active)::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          $mdlext-dark-range-color 0%,\n          $mdlext-dark-range-color 37.5%,\n          $mdlext-dark-range-faded-color 37.5%,\n          $mdlext-dark-range-faded-color 100%);\n      }\n      /* stylelint-enable */\n\n      &:active::-ms-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n\n      /**************************** 0-value ****************************/\n\n      &.is-lowest-value::-webkit-slider-thumb {\n        border-color: $mdlext-dark-range-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value::-moz-range-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {\n        box-shadow: 0 0 0 10px $mdlext-dark-range-bg-focus-color;\n        background: $mdlext-dark-range-bg-focus-color;\n      }\n\n      &.is-lowest-value:focus:not(:active)::-moz-range-thumb {\n        box-shadow: 0 0 0 10px $mdlext-dark-range-bg-focus-color;\n        background: $mdlext-dark-range-bg-focus-color;\n      }\n\n      &.is-lowest-value:active::-webkit-slider-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n      }\n\n      &.is-lowest-value:active::-moz-range-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n      }\n\n      /* stylelint-disable */\n      &.is-lowest-value::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 66.67%,\n          $mdlext-dark-range-bg-color 66.67%,\n          $mdlext-dark-range-bg-color 100%);\n      }\n\n      &.is-lowest-value:focus:not(:active)::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          $mdlext-dark-range-bg-focus-color 0%,\n          $mdlext-dark-range-bg-focus-color 25%,\n          $mdlext-dark-range-bg-color 25%,\n          $mdlext-dark-range-bg-color 37.5%,\n          $mdlext-dark-range-bg-focus-color 37.5%,\n          $mdlext-dark-range-bg-focus-color 100%);\n      }\n\n      &.is-lowest-value:active::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 77.78%,\n          $mdlext-dark-range-bg-color 77.78%,\n          $mdlext-dark-range-bg-color 100%);\n      }\n      /* stylelint-enable */\n\n      &.is-lowest-value::-ms-fill-lower {\n        background: transparent;\n      }\n\n      /**************************** Disabled ****************************/\n\n      &:disabled:focus::-webkit-slider-thumb,\n      &:disabled:active::-webkit-slider-thumb,\n      &:disabled::-webkit-slider-thumb {\n        background: $mdlext-dark-range-bg-color;\n      }\n\n      &:disabled:focus::-moz-range-thumb,\n      &:disabled:active::-moz-range-thumb,\n      &:disabled::-moz-range-thumb {\n        background: $mdlext-dark-range-bg-color;\n      }\n\n      &:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {\n        background-color: $mdlext-dark-range-bg-color;\n      }\n\n      &.is-lowest-value:disabled:focus::-webkit-slider-thumb,\n      &.is-lowest-value:disabled:active::-webkit-slider-thumb,\n      &.is-lowest-value:disabled::-webkit-slider-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value:disabled:focus::-moz-range-thumb,\n      &.is-lowest-value:disabled:active::-moz-range-thumb,\n      &.is-lowest-value:disabled::-moz-range-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n        background: transparent;\n      }\n\n      &:disabled:focus::-ms-thumb,\n      &:disabled:active::-ms-thumb,\n      &:disabled::-ms-thumb {\n        background: $mdlext-dark-range-bg-color;\n      }\n\n      /* stylelint-disable */\n      &.is-lowest-value:disabled:focus::-ms-thumb,\n      &.is-lowest-value:disabled:active::-ms-thumb,\n      &.is-lowest-value:disabled::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 50%,\n          $mdlext-dark-range-bg-color 50%,\n          $mdlext-dark-range-bg-color 100%);\n      }\n\n      &:disabled::-ms-fill-lower {\n        background: linear-gradient(to right,\n          transparent,\n          transparent 25px,\n          $mdlext-dark-range-bg-color 25px,\n          $mdlext-dark-range-bg-color 0);\n      }\n      /* stylelint-enable */\n\n    }\n  }\n\n  .mdl-slider__background-flex {\n    background: transparent;\n  }\n\n  .mdl-slider__background-lower {\n    background: $mdlext-dark-range-color;\n  }\n\n  // This one styles the upper part of the slider track.\n  .mdl-slider__background-upper {\n    background: $mdlext-dark-range-bg-color;\n  }\n}\n\n\n// mdl/src/textfield/_textfield.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-textfield__input {\n    border-bottom-color: $mdlext-dark-input-text-bottom-border-color;\n  }\n  .mdl-textfield.is-invalid .mdl-textfield__input {\n    border-color: $mdlext-dark-input-text-error-color;\n  }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n  .mdl-textfield.is-disabled .mdl-textfield__input {\n    background-color: transparent;\n    border-bottom-color: $mdlext-dark-input-text-disabled-color;\n    color: $mdlext-dark-input-text-disabled-text-color;\n  }\n  .mdl-textfield__label {\n    color: $mdlext-dark-input-text-label-color;\n  }\n  .mdl-textfield__label::after {\n    background-color: $mdlext-dark-input-text-highlight-color;\n  }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n  .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {\n    color: $mdlext-dark-input-text-disabled-text-color;\n  }\n  .mdl-textfield--floating-label.is-focused .mdl-textfield__label,\n  .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,\n  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {\n    color: $mdlext-dark-input-text-highlight-color;\n  }\n  .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {\n    color: $mdlext-dark-input-text-error-color;\n  }\n  .mdl-textfield.is-invalid .mdl-textfield__label::after {\n    background-color: $mdlext-dark-input-text-error-color;\n  }\n  .mdl-textfield__error {\n    color: $mdlext-dark-input-text-error-color;\n  }\n}\n\n\n// mdl/src/checkbox/_checkbox.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-checkbox__box-outline {\n    border-color: $mdlext-dark-checkbox-off-color;\n  }\n  .mdl-checkbox.is-checked .mdl-checkbox__box-outline {\n    border-color: $mdlext-dark-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,\n  .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {\n    border-color: $mdlext-dark-checkbox-disabled-color;\n  }\n\n  .mdl-checkbox__focus-helper {\n    background-color: transparent;\n  }\n  .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {\n    box-shadow: 0 0 0 ($checkbox-button-size / 2) $mdlext-dark-checkbox-focus-color;\n    background-color: $mdlext-dark-checkbox-focus-color;\n  }\n\n  .mdl-checkbox__tick-outline {\n    background: transparent;\n  }\n  .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {\n    background-color: $mdlext-dark-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,\n  .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {\n    background-color: $mdlext-dark-checkbox-disabled-color;\n  }\n\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,\n  .mdl-checkbox.is-disabled .mdl-checkbox__label {\n    color: $mdlext-dark-checkbox-disabled-color;\n  }\n\n  .mdl-checkbox__ripple-container .mdl-ripple {\n    background: $mdlext-dark-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,\n  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n\n}\n\n// mdl/src/radio/_radio.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n  .mdl-radio__outer-circle {\n    border-color: $mdlext-dark-radio-off-color;\n  }\n  .mdl-radio.is-checked .mdl-radio__outer-circle {\n    border-color: $mdlext-dark-radio-color;\n  }\n  .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,\n  .mdl-radio.is-disabled .mdl-radio__outer-circle {\n    border-color: $mdlext-dark-radio-disabled-color;\n  }\n\n  .mdl-radio__inner-circle {\n    background: $mdlext-dark-radio-color;\n  }\n  fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,\n  .mdl-radio.is-disabled .mdl-radio__inner-circle {\n    background: $mdlext-dark-radio-disabled-color;\n  }\n\n  fieldset[disabled] .mdl-radio .mdl-radio__label,\n  .mdl-radio.is-disabled .mdl-radio__label {\n    color: $mdlext-dark-radio-disabled-color;\n  }\n\n  .mdl-radio__ripple-container .mdl-ripple {\n    background: $mdlext-dark-radio-color;\n  }\n  fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,\n  .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n// mdl/src/icon-togglr/_icon-toggle.scss\n// ---------------------------------------\n.mdlext-dark-color-theme {\n  .mdl-icon-toggle__label {\n    color: $mdlext-dark-icon-toggle-color;\n  }\n  .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {\n    color: $mdlext-dark-icon-toggle-checked-color;\n  }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {\n    color: $mdlext-dark-icon-toggle-disabled-color;\n  }\n  .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {\n    background-color: $mdlext-dark-icon-toggle-focus-color;\n  }\n  .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {\n    background-color: $mdlext-dark-icon-toggle-checked-focus-color;\n  }\n  .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: $mdlext-dark-icon-toggle-color;\n  }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n\n// mdl/src/switch/_switch.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-switch__track {\n    background: $mdlext-dark-switch-off-track-color;\n  }\n  .mdl-switch.is-checked .mdl-switch__track {\n    background: $mdlext-dark-switch-track-color;\n  }\n  .mdl-switch__track fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__track {\n    background: $mdlext-dark-switch-disabled-track-color;\n  }\n\n  .mdl-switch__thumb {\n    background: $mdlext-dark-switch-off-thumb-color;\n  }\n  .mdl-switch.is-checked .mdl-switch__thumb {\n    background: $mdlext-dark-switch-thumb-color;\n  }\n  .mdl-switch__thumb fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__thumb {\n    background: $mdlext-dark-switch-disabled-thumb-color;\n  }\n\n  .mdl-switch__focus-helper {\n    background-color: transparent;\n  }\n  .mdl-switch.is-focused .mdl-switch__focus-helper {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n  .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {\n    box-shadow: 0 0 0 (($switch-ripple-size - $switch-helper-size) / 2) $mdlext-dark-switch-faded-color;\n    background-color: $mdlext-dark-switch-faded-color;\n  }\n\n  .mdl-switch__label fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__label {\n    color: $mdlext-dark-switch-disabled-thumb-color;\n  }\n\n  .mdl-switch__ripple-container .mdl-ripple {\n    background: $mdlext-dark-switch-color;\n  }\n  fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,\n  .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n\n}\n\n\n// mdl/src/data-table/_data-table.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-data-table {\n    border-color: $mdlext-dark-data-table-divider-color;\n    background-color: $mdlext-dark-data-table-background-color;\n\n    tbody {\n      tr {\n        &.is-selected {\n          background-color: $mdlext-dark-data-table-selection-color;\n        }\n\n        &:hover {\n          background-color: $mdlext-dark-data-table-hover-color;\n        }\n      }\n    }\n\n    th {\n      color: $mdlext-dark-data-table-header-color;\n\n      &.mdl-data-table__header--sorted-ascending,\n      &.mdl-data-table__header--sorted-descending {\n        color: $mdlext-dark-data-table-header-sorted-color;\n\n        &:hover {\n          &::before {\n            color: $mdlext-dark-data-table-header-sorted-icon-hover-color;\n          }\n        }\n      }\n    }\n  }\n}\n\n// mdl/src/menu/_menu.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-menu__outline {\n    background: $mdlext-dark-default-dropdown-bg-color;\n  }\n\n  .mdl-menu__item {\n    color: $mdlext-dark-default-item-text-color;\n    background-color: transparent;\n    outline-color: $mdlext-dark-default-item-outline-color;\n\n    &--full-bleed-divider {\n      border-bottom-color: $mdlext-dark-default-item-divider-color;\n    }\n\n    &[disabled],\n    &[data-mdl-disabled] {\n      color: $mdlext-dark-disabled-item-text-color;\n      background-color: transparent;\n\n      &:hover {\n        background-color: transparent;\n      }\n\n      &:focus {\n        background-color: transparent;\n      }\n\n      & .mdl-ripple {\n        background: transparent;\n      }\n    }\n\n    &:hover {\n      background-color: $mdlext-dark-default-item-hover-bg-color;\n    }\n\n    &:focus {\n      background-color: $mdlext-dark-default-item-focus-bg-color;\n    }\n\n    &:active {\n      background-color: $mdlext-dark-default-item-active-bg-color;\n    }\n  }\n}\n\n// mdl/src/card/_card.scss\n// ----------------------------------------\n.mdlext-dark-color-theme {\n  .mdl-card {\n    background: $mdlext-dark-card-background-color;\n  }\n\n  .mdl-card__media {\n    background-color: $mdlext-dark-card-image-placeholder-color;\n  }\n\n  .mdl-card__title {\n    color: $mdlext-dark-card-text-color;\n\n    &.mdl-card--border {\n      border-bottom-color: $mdlext-dark-card-border-color;\n    }\n  }\n\n  .mdl-card__title-text {\n    color: inherit;\n  }\n\n  .mdl-card__subtitle-text {\n    color: $mdlext-dark-card-subtitle-color;\n  }\n\n  .mdl-card__supporting-text {\n    color: $mdlext-dark-card-supporting-text-text-color;\n  }\n\n  .mdl-card__actions {\n    background-color: rgba(255, 255, 255, 0);\n\n    &.mdl-card--border {\n      border-top-color: $mdlext-dark-card-border-color;\n    }\n  }\n}\n\n\n// mdlext/src/selectfield/_selectfield.scss\n// ----------------------------------------\n.mdlext-dark-color-theme {\n\n  .mdlext-selectfield.is-disabled::after {\n    color: $mdlext-dark-input-text-disabled-color;\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-dark-input-text-disabled-color);\n  }\n\n  .mdlext-selectfield__select {\n    border-bottom-color: $mdlext-dark-input-text-bottom-border-color;\n    color: inherit;\n\n    option {\n      background-color: $mdlext-dark-content-background-color;\n      color: $mdlext-dark-text-color-primary;\n    }\n  }\n  .mdlext-selectfield.is-invalid .mdlext-selectfield__select {\n    border-color: $mdlext-dark-input-text-error-color;\n  }\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,\n  .mdlext-selectfield.is-disabled .mdlext-selectfield__select {\n    background-color: transparent;\n    border-bottom-color: $mdlext-dark-input-text-disabled-color;\n    color: $mdlext-dark-input-text-disabled-text-color;\n  }\n\n  .mdlext-selectfield__label {\n    color: $mdlext-dark-input-text-label-color;\n  }\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,\n  .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {\n    color: $mdlext-dark-input-text-disabled-text-color;\n  }\n  .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {\n    color: $mdlext-dark-input-text-highlight-color;\n  }\n  .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {\n    color: $mdlext-dark-input-text-error-color;\n  }\n  .mdlext-selectfield__label::after {\n    background-color: $mdlext-dark-input-text-highlight-color;\n  }\n  .mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {\n    background-color: $mdlext-dark-input-text-error-color;\n  }\n\n  .mdlext-selectfield__error {\n    color: $mdlext-dark-input-text-error-color;\n  }\n}\n\n\n// mdlext/src/menu-button/_menu-button.scss\n// ----------------------------------------\n.mdlext-menu.mdlext-dark-color-theme {\n  background: $mdlext-dark-default-dropdown-bg-color;\n}\n\n.mdlext-dark-color-theme {\n\n  .mdlext-menu {\n    background: $mdlext-dark-default-dropdown-bg-color;\n\n    &__item {\n      color: $mdlext-dark-default-item-text-color;\n      background-color: $mdlext-dark-default-dropdown-bg-color;\n\n      &:active,\n      &[aria-selected='true'] {\n        background-color: $mdlext-dark-default-item-active-bg-color;\n      }\n      &:hover:not([disabled]) {\n        background-color: $mdlext-dark-default-item-hover-bg-color;\n      }\n      &:focus {\n        outline-color: $mdlext-dark-default-item-outline-color;\n        background-color: $mdlext-dark-default-item-focus-bg-color;\n      }\n      &[disabled] {\n        color: $mdlext-dark-disabled-item-text-color;\n\n        > * {\n          color: $mdlext-dark-disabled-item-text-color;\n        }\n      }\n    }\n    &__item-separator {\n      border-bottom: 1px solid $mdlext-dark-default-item-divider-color;\n    }\n  }\n}\n\n\n// mdlext/src/bordered-fields/_bordered-fields.scss\n// -------------------------------------------------\n.mdlext-dark-color-theme {\n\n  .mdlext-bordered-fields {\n\n    .mdl-textfield,\n    .mdlext-selectfield {\n\n      .mdl-textfield__input,\n      .mdlext-selectfield__select {\n        background-color: $mdlext-dark-bordered-field-background-color;\n        border-color: $mdlext-dark-bordered-field-border-color;\n        color: $mdlext-dark-bordered-field-input-text-color;\n\n        &:disabled {\n          color: $mdlext-dark-bordered-field-input-text-disabled-text-color;\n          background-color: $mdlext-dark-bordered-field-disabled-background-color;\n          border-color: $mdlext-dark-bordered-field-disabled-border-color;\n        }\n        &:focus {\n          background-color: $mdlext-dark-bordered-field-focus-background-color;\n          border-color: $mdlext-dark-bordered-field-focus-border-color;\n        }\n      }\n      &.is-invalid {\n        .mdl-textfield__input,\n        .mdlext-selectfield__select {\n          color: $mdlext-dark-bordered-field-input-text-error-color;\n          border-color: $mdlext-dark-bordered-field-error-border-color;\n          background-color: $mdlext-dark-bordered-field-error-background-color;\n\n          &:focus {\n            border-color: $mdlext-dark-bordered-field-error-focus-border-color;\n            background-color: $mdlext-dark-bordered-field-error-focus-background-color;\n          }\n        }\n      }\n    }\n\n    fieldset[disabled] .mdlext-selectfield::after,\n    .mdlext-selectfield.is-disabled::after {\n      color: $mdlext-dark-bordered-field-input-text-disabled-text-color;\n      @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-dark-bordered-field-input-text-disabled-text-color);\n    }\n\n    fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n    fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {\n      color: $mdlext-dark-bordered-field-input-text-disabled-text-color;\n      background-color: $mdlext-dark-bordered-field-disabled-background-color;\n      border-color: $mdlext-dark-bordered-field-disabled-border-color;\n    }\n\n    .mdl-textfield,\n    .mdlext-selectfield {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-dark-bordered-field-input-text-label-color;\n      }\n      &.mdl-textfield--floating-label.is-focused.is-focused,\n      &.mdl-textfield--floating-label.is-dirty.is-dirty,\n      &.mdl-textfield--floating-label.has-placeholder,\n      &.mdlext-selectfield--floating-label.is-focused.is-focused,\n      &.mdlext-selectfield--floating-label.is-dirty.is-dirty,\n      &.mdlext-selectfield--floating-label.has-placeholder {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-dark-bordered-field-input-text-label-focus-color;\n        }\n      }\n      &.mdl-textfield--floating-label.is-disabled.is-disabled,\n      &.mdlext-selectfield--floating-label.is-disabled.is-disabled {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-dark-bordered-field-input-text-label-disabled-color;\n        }\n      }\n      &.mdl-textfield--floating-label.is-invalid.is-invalid,\n      &.mdlext-selectfield--floating-label.is-invalid.is-invalid {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-dark-bordered-field-input-text-label-error-color;\n        }\n      }\n    }\n\n    fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n    fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {\n      color: $mdlext-dark-bordered-field-input-text-label-disabled-color;\n    }\n\n    // Icon(s) and/or button(s) inside textfield\n    .mdl-textfield,\n    .mdlext-selectfield {\n      &.is-disabled i,\n      &.is-disabled .mdl-button {\n        color: $mdlext-dark-bordered-field-disabled-border-color;\n      }\n    }\n    fieldset[disabled] .mdl-textfield,\n    fieldset[disabled] .mdlext-selectfield {\n      i,\n      .mdl-button {\n        color: $mdlext-dark-bordered-field-disabled-border-color;\n      }\n    }\n  }\n\n}\n\n\n// mdlext/src/accordion/_accordion.scss\n// ----------------------------------------\n.mdlext-dark-color-theme {\n\n  .mdlext-accordion {\n\n    &__tab {\n      color: $mdlext-dark-accordion-header-secondary-color;\n      background-color: $mdlext-dark-accordion-header-background-color;\n\n      &:focus {\n        outline-color: $mdlext-dark-accordion-header-focus-outline-color;\n      }\n      &[aria-expanded='true'] {\n        background-color: $mdlext-dark-accordion-header-background-open-color;\n      }\n      &[aria-selected='true'] {\n        background-color: $mdlext-dark-accordion-header-background-active-color;\n      }\n      &[disabled] {\n        background-color: $mdlext-dark-accordion-header-disabled-color;\n        color: $mdlext-dark-accordion-header-secondary-color-disabled;\n        pointer-events: none;\n\n        > * {\n          color: $mdlext-dark-accordion-header-secondary-color-disabled;\n        }\n      }\n      &:hover:not([disabled]) {\n        background-color: $mdlext-dark-accordion-header-background-hover-color;\n      }\n      &--ripple {\n        &[aria-selected='true']::before {\n          background: $mdlext-dark-accordion-ripple-color;\n        }\n      }\n    }\n\n    &__tabpanel {\n      color: $mdlext-dark-accordion-content-color;\n      background-color: $mdlext-dark-accordion-content-background-color;\n    }\n  }\n\n  // Vertical layout\n  .mdlext-accordion {\n\n    &--vertical {\n\n      .mdlext-accordion__tab {\n        border-top: 1px solid $mdlext-dark-accordion-header-border-color;\n\n        &[aria-selected='true']::after {\n          background-color: $mdlext-dark-accordion-header-highlight-color;\n        }\n      }\n      .mdlext-accordion__tabpanel {\n        border-top: 1px solid $mdlext-dark-accordion-header-border-color;\n      }\n    }\n  }\n\n  // Horizontal layout\n  .mdlext-accordion {\n\n    &--horizontal {\n\n      .mdlext-accordion__tab {\n        border-left: 1px solid $mdlext-dark-accordion-header-border-color;\n\n        &[aria-selected='true']::after {\n          background-color: $mdlext-dark-accordion-header-highlight-color;\n        }\n      }\n      .mdlext-accordion__tabpanel {\n        border-left: 1px solid $mdlext-dark-accordion-header-border-color;\n      }\n    }\n  }\n\n  .mdlext-accordion {\n\n    &__panel:first-child > &__tab {\n      // Use container to set outer borders\n      border-top-color: transparent;\n      border-left-color: transparent;\n    }\n  }\n\n  // Making accordion appear disabled.\n  // Note: does not prevent tabbing into a disabled accordion\n  .mdlext-accordion[disabled] {\n    .mdlext-accordion__tab {\n      background-color: $mdlext-dark-accordion-header-disabled-color;\n      color: $mdlext-dark-accordion-header-secondary-color-disabled;\n\n      > * {\n        color: $mdlext-dark-accordion-header-secondary-color-disabled;\n      }\n    }\n    .mdlext-accordion__tabpanel {\n      opacity: 0.8;\n      filter: blur(1px) grayscale(80%);\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/color-themes/_dark-color-theme.scss"],"sourceRoot":""}
\ No newline at end of file
diff --git a/node_modules/mdl-ext/lib/mdl-ext-eqjs.min.css b/node_modules/mdl-ext/lib/mdl-ext-eqjs.min.css
new file mode 100644
index 0000000..1dbbe23
--- /dev/null
+++ b/node_modules/mdl-ext/lib/mdl-ext-eqjs.min.css
@@ -0,0 +1,2 @@
+.mdlext-aria-expanded-plus-minus{font-family:inherit;font-weight:inherit;font-style:inherit;font-size:24px;display:inline-block;width:1em;height:1em;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;vertical-align:middle;-webkit-font-smoothing:antialiased;-webkit-font-feature-settings:"liga";text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.mdlext-aria-expanded-plus-minus:after{content:"+";margin-left:0}[aria-expanded=true]>.mdlext-aria-expanded-plus-minus:after{content:"-";margin-left:0}.mdlext-aria-expanded-more-less{font-family:Material Icons;font-weight:inherit;font-style:inherit;font-size:24px;display:inline-block;width:1em;height:1em;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;vertical-align:middle;-webkit-font-smoothing:antialiased;-webkit-font-feature-settings:"liga";text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.mdlext-aria-expanded-more-less:after{content:"expand_more";margin-left:0}[aria-expanded=true]>.mdlext-aria-expanded-more-less:after{content:"expand_less";margin-left:0}.mdlext-layout__sticky-header{position:absolute;overflow:visible;background:transparent linear-gradient(180deg,#3f51b5 0,#3f51b5);transition:.1s ease-in-out}.mdlext-layout__sticky-header.mdlext-is-scroll{background:transparent linear-gradient(180deg,rgba(63,81,181,.98) 100%,rgba(63,81,181,.95) 0)}:not(.is-small-screen) .mdlext-layout__sticky-header .mdl-layout__drawer-button{visibility:hidden}:not(.is-small-screen) .mdlext-layout__sticky-header .mdl-layout__header-row{padding-left:16px}.is-small-screen.has-drawer .mdlext-layout__sticky-header,:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header{display:-ms-flexbox;display:flex}.is-small-screen.has-drawer .mdlext-layout__sticky-header .mdl-layout__drawer-button,:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header .mdl-layout__drawer-button{visibility:visible}.is-small-screen.has-drawer .mdlext-layout__sticky-header .mdl-layout__header-row,:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header .mdl-layout__header-row{padding-left:64px}dialog.mdlext-dialog{position:absolute;border:0;opacity:0;padding:0;background-color:transparent}dialog.mdlext-dialog[open]{animation:mdlext-open-dialog .5s .2s forwards}dialog.mdlext-dialog[open]::-webkit-backdrop{animation:mdlext-darken-backdrop .2s forwards}dialog.mdlext-dialog[open]::backdrop{animation:mdlext-darken-backdrop .2s forwards}dialog.mdlext-dialog[open]+.backdrop{animation:mdlext-darken-backdrop .2s forwards}@keyframes mdlext-darken-backdrop{to{background:rgba(0,0,0,.86)}}@keyframes mdlext-open-dialog{to{opacity:1}}.mdlext-grid{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin:0 auto;-ms-flex-align:stretch;align-items:stretch}.mdlext-grid.mdlext-grid--no-spacing{padding:0}.mdlext-grid>.mdlext-cell{box-sizing:border-box}.mdlext-grid>.mdlext-cell--top{-ms-flex-item-align:start;align-self:flex-start}.mdlext-grid>.mdlext-cell--middle{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.mdlext-grid>.mdlext-cell--bottom{-ms-flex-item-align:end;align-self:flex-end}.mdlext-grid>.mdlext-cell--stretch{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.mdlext-grid .mdlext-grid--no-spacing>.mdlext-cell{margin:0}.mdlext-grid>.mdlext-cell--order-1{-ms-flex-order:1;order:1}.mdlext-grid>.mdlext-cell--order-2{-ms-flex-order:2;order:2}.mdlext-grid>.mdlext-cell--order-3{-ms-flex-order:3;order:3}.mdlext-grid>.mdlext-cell--order-4{-ms-flex-order:4;order:4}.mdlext-grid>.mdlext-cell--order-5{-ms-flex-order:5;order:5}.mdlext-grid>.mdlext-cell--order-6{-ms-flex-order:6;order:6}.mdlext-grid>.mdlext-cell--order-7{-ms-flex-order:7;order:7}.mdlext-grid>.mdlext-cell--order-8{-ms-flex-order:8;order:8}.mdlext-grid>.mdlext-cell--order-9{-ms-flex-order:9;order:9}.mdlext-grid>.mdlext-cell--order-10{-ms-flex-order:10;order:10}.mdlext-grid>.mdlext-cell--order-11{-ms-flex-order:11;order:11}.mdlext-grid>.mdlext-cell--order-12{-ms-flex-order:12;order:12}.mdlext-grid:before{display:none;content:"grid_phone: 0, grid_tablet: 480, grid_desktop: 840"}.mdlext-grid[data-eq-state$=grid_phone]{padding:8px}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell{margin:8px;width:calc(100% - 16px)}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--hide-phone{display:none!important}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--order-1-phone.mdlext-cell--order-1-phone{-ms-flex-order:1;order:1}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--order-2-phone.mdlext-cell--order-2-phone{-ms-flex-order:2;order:2}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--order-3-phone.mdlext-cell--order-3-phone{-ms-flex-order:3;order:3}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--order-4-phone.mdlext-cell--order-4-phone{-ms-flex-order:4;order:4}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--order-5-phone.mdlext-cell--order-5-phone{-ms-flex-order:5;order:5}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--order-6-phone.mdlext-cell--order-6-phone{-ms-flex-order:6;order:6}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--order-7-phone.mdlext-cell--order-7-phone{-ms-flex-order:7;order:7}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--order-8-phone.mdlext-cell--order-8-phone{-ms-flex-order:8;order:8}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--order-9-phone.mdlext-cell--order-9-phone{-ms-flex-order:9;order:9}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--order-10-phone.mdlext-cell--order-10-phone{-ms-flex-order:10;order:10}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--order-11-phone.mdlext-cell--order-11-phone{-ms-flex-order:11;order:11}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--order-12-phone.mdlext-cell--order-12-phone{-ms-flex-order:12;order:12}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--1-col,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--1-col-phone.mdlext-cell--1-col-phone{width:calc(25% - 16px)}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--2-col,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--2-col-phone.mdlext-cell--2-col-phone{width:calc(50% - 16px)}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--3-col,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--3-col-phone.mdlext-cell--3-col-phone{width:calc(75% - 16px)}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--4-col,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--4-col-phone.mdlext-cell--4-col-phone,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--5-col,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--5-col-phone.mdlext-cell--5-col-phone,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--6-col,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--6-col-phone.mdlext-cell--6-col-phone,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--7-col,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--7-col-phone.mdlext-cell--7-col-phone,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--8-col,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--8-col-phone.mdlext-cell--8-col-phone,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--9-col,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--9-col-phone.mdlext-cell--9-col-phone,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--10-col,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--10-col-phone.mdlext-cell--10-col-phone,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--11-col,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--11-col-phone.mdlext-cell--11-col-phone,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--12-col,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--12-col-phone.mdlext-cell--12-col-phone{width:calc(100% - 16px)}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--1-offset,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--1-offset-phone.mdlext-cell--1-offset-phone{margin-left:calc(25% + 8px)}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--2-offset,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--2-offset-phone.mdlext-cell--2-offset-phone{margin-left:calc(50% + 8px)}.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--3-offset,.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--3-offset-phone.mdlext-cell--3-offset-phone{margin-left:calc(75% + 8px)}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]{padding:0}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell{margin:0;width:100%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--1-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--1-col-phone.mdlext-cell--1-col-phone{width:25%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--2-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--2-col-phone.mdlext-cell--2-col-phone{width:50%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--3-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--3-col-phone.mdlext-cell--3-col-phone{width:75%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--4-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--4-col-phone.mdlext-cell--4-col-phone,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--5-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--5-col-phone.mdlext-cell--5-col-phone,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--6-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--6-col-phone.mdlext-cell--6-col-phone,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--7-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--7-col-phone.mdlext-cell--7-col-phone,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--8-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--8-col-phone.mdlext-cell--8-col-phone,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--9-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--9-col-phone.mdlext-cell--9-col-phone,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--10-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--10-col-phone.mdlext-cell--10-col-phone,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--11-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--11-col-phone.mdlext-cell--11-col-phone,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--12-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--12-col-phone.mdlext-cell--12-col-phone{width:100%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--1-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--1-offset-phone.mdlext-cell--1-offset-phone{margin-left:25%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--2-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--2-offset-phone.mdlext-cell--2-offset-phone{margin-left:50%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--3-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_phone]>.mdlext-cell--3-offset-phone.mdlext-cell--3-offset-phone{margin-left:75%}.mdlext-grid[data-eq-state$=grid_tablet]{padding:8px}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell{margin:8px;width:calc(50% - 16px)}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--hide-tablet{display:none!important}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--order-1-tablet.mdlext-cell--order-1-tablet{-ms-flex-order:1;order:1}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--order-2-tablet.mdlext-cell--order-2-tablet{-ms-flex-order:2;order:2}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--order-3-tablet.mdlext-cell--order-3-tablet{-ms-flex-order:3;order:3}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--order-4-tablet.mdlext-cell--order-4-tablet{-ms-flex-order:4;order:4}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--order-5-tablet.mdlext-cell--order-5-tablet{-ms-flex-order:5;order:5}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--order-6-tablet.mdlext-cell--order-6-tablet{-ms-flex-order:6;order:6}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--order-7-tablet.mdlext-cell--order-7-tablet{-ms-flex-order:7;order:7}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--order-8-tablet.mdlext-cell--order-8-tablet{-ms-flex-order:8;order:8}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--order-9-tablet.mdlext-cell--order-9-tablet{-ms-flex-order:9;order:9}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--order-10-tablet.mdlext-cell--order-10-tablet{-ms-flex-order:10;order:10}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--order-11-tablet.mdlext-cell--order-11-tablet{-ms-flex-order:11;order:11}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--order-12-tablet.mdlext-cell--order-12-tablet{-ms-flex-order:12;order:12}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--1-col,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--1-col-tablet.mdlext-cell--1-col-tablet{width:calc(12.5% - 16px)}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--2-col,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--2-col-tablet.mdlext-cell--2-col-tablet{width:calc(25% - 16px)}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--3-col,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--3-col-tablet.mdlext-cell--3-col-tablet{width:calc(37.5% - 16px)}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--4-col,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--4-col-tablet.mdlext-cell--4-col-tablet{width:calc(50% - 16px)}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--5-col,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--5-col-tablet.mdlext-cell--5-col-tablet{width:calc(62.5% - 16px)}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--6-col,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--6-col-tablet.mdlext-cell--6-col-tablet{width:calc(75% - 16px)}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--7-col,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--7-col-tablet.mdlext-cell--7-col-tablet{width:calc(87.5% - 16px)}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--8-col,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--8-col-tablet.mdlext-cell--8-col-tablet,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--9-col,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--9-col-tablet.mdlext-cell--9-col-tablet,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--10-col,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--10-col-tablet.mdlext-cell--10-col-tablet,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--11-col,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--11-col-tablet.mdlext-cell--11-col-tablet,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--12-col,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--12-col-tablet.mdlext-cell--12-col-tablet{width:calc(100% - 16px)}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--1-offset,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--1-offset-tablet.mdlext-cell--1-offset-tablet{margin-left:calc(12.5% + 8px)}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--2-offset,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--2-offset-tablet.mdlext-cell--2-offset-tablet{margin-left:calc(25% + 8px)}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--3-offset,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--3-offset-tablet.mdlext-cell--3-offset-tablet{margin-left:calc(37.5% + 8px)}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--4-offset,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--4-offset-tablet.mdlext-cell--4-offset-tablet{margin-left:calc(50% + 8px)}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--5-offset,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--5-offset-tablet.mdlext-cell--5-offset-tablet{margin-left:calc(62.5% + 8px)}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--6-offset,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--6-offset-tablet.mdlext-cell--6-offset-tablet{margin-left:calc(75% + 8px)}.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--7-offset,.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--7-offset-tablet.mdlext-cell--7-offset-tablet{margin-left:calc(87.5% + 8px)}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]{padding:0}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell{margin:0;width:50%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--1-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--1-col-tablet.mdlext-cell--1-col-tablet{width:12.5%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--2-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--2-col-tablet.mdlext-cell--2-col-tablet{width:25%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--3-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--3-col-tablet.mdlext-cell--3-col-tablet{width:37.5%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--4-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--4-col-tablet.mdlext-cell--4-col-tablet{width:50%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--5-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--5-col-tablet.mdlext-cell--5-col-tablet{width:62.5%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--6-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--6-col-tablet.mdlext-cell--6-col-tablet{width:75%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--7-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--7-col-tablet.mdlext-cell--7-col-tablet{width:87.5%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--8-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--8-col-tablet.mdlext-cell--8-col-tablet,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--9-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--9-col-tablet.mdlext-cell--9-col-tablet,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--10-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--10-col-tablet.mdlext-cell--10-col-tablet,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--11-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--11-col-tablet.mdlext-cell--11-col-tablet,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--12-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--12-col-tablet.mdlext-cell--12-col-tablet{width:100%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--1-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--1-offset-tablet.mdlext-cell--1-offset-tablet{margin-left:12.5%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--2-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--2-offset-tablet.mdlext-cell--2-offset-tablet{margin-left:25%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--3-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--3-offset-tablet.mdlext-cell--3-offset-tablet{margin-left:37.5%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--4-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--4-offset-tablet.mdlext-cell--4-offset-tablet{margin-left:50%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--5-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--5-offset-tablet.mdlext-cell--5-offset-tablet{margin-left:62.5%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--6-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--6-offset-tablet.mdlext-cell--6-offset-tablet{margin-left:75%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--7-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_tablet]>.mdlext-cell--7-offset-tablet.mdlext-cell--7-offset-tablet{margin-left:87.5%}.mdlext-grid[data-eq-state$=grid_desktop]{padding:8px}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell{margin:8px;width:calc(33.33333% - 16px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--hide-desktop{display:none!important}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--order-1-desktop.mdlext-cell--order-1-desktop{-ms-flex-order:1;order:1}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--order-2-desktop.mdlext-cell--order-2-desktop{-ms-flex-order:2;order:2}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--order-3-desktop.mdlext-cell--order-3-desktop{-ms-flex-order:3;order:3}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--order-4-desktop.mdlext-cell--order-4-desktop{-ms-flex-order:4;order:4}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--order-5-desktop.mdlext-cell--order-5-desktop{-ms-flex-order:5;order:5}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--order-6-desktop.mdlext-cell--order-6-desktop{-ms-flex-order:6;order:6}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--order-7-desktop.mdlext-cell--order-7-desktop{-ms-flex-order:7;order:7}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--order-8-desktop.mdlext-cell--order-8-desktop{-ms-flex-order:8;order:8}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--order-9-desktop.mdlext-cell--order-9-desktop{-ms-flex-order:9;order:9}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--order-10-desktop.mdlext-cell--order-10-desktop{-ms-flex-order:10;order:10}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--order-11-desktop.mdlext-cell--order-11-desktop{-ms-flex-order:11;order:11}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--order-12-desktop.mdlext-cell--order-12-desktop{-ms-flex-order:12;order:12}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--1-col,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--1-col-desktop.mdlext-cell--1-col-desktop{width:calc(8.33333% - 16px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--2-col,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--2-col-desktop.mdlext-cell--2-col-desktop{width:calc(16.66667% - 16px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--3-col,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--3-col-desktop.mdlext-cell--3-col-desktop{width:calc(25% - 16px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--4-col,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--4-col-desktop.mdlext-cell--4-col-desktop{width:calc(33.33333% - 16px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--5-col,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--5-col-desktop.mdlext-cell--5-col-desktop{width:calc(41.66667% - 16px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--6-col,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--6-col-desktop.mdlext-cell--6-col-desktop{width:calc(50% - 16px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--7-col,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--7-col-desktop.mdlext-cell--7-col-desktop{width:calc(58.33333% - 16px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--8-col,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--8-col-desktop.mdlext-cell--8-col-desktop{width:calc(66.66667% - 16px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--9-col,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--9-col-desktop.mdlext-cell--9-col-desktop{width:calc(75% - 16px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--10-col,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--10-col-desktop.mdlext-cell--10-col-desktop{width:calc(83.33333% - 16px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--11-col,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--11-col-desktop.mdlext-cell--11-col-desktop{width:calc(91.66667% - 16px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--12-col,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--12-col-desktop.mdlext-cell--12-col-desktop{width:calc(100% - 16px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--1-offset,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--1-offset-desktop.mdlext-cell--1-offset-desktop{margin-left:calc(8.33333% + 8px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--2-offset,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--2-offset-desktop.mdlext-cell--2-offset-desktop{margin-left:calc(16.66667% + 8px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--3-offset,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--3-offset-desktop.mdlext-cell--3-offset-desktop{margin-left:calc(25% + 8px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--4-offset,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--4-offset-desktop.mdlext-cell--4-offset-desktop{margin-left:calc(33.33333% + 8px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--5-offset,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--5-offset-desktop.mdlext-cell--5-offset-desktop{margin-left:calc(41.66667% + 8px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--6-offset,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--6-offset-desktop.mdlext-cell--6-offset-desktop{margin-left:calc(50% + 8px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--7-offset,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--7-offset-desktop.mdlext-cell--7-offset-desktop{margin-left:calc(58.33333% + 8px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--8-offset,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--8-offset-desktop.mdlext-cell--8-offset-desktop{margin-left:calc(66.66667% + 8px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--9-offset,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--9-offset-desktop.mdlext-cell--9-offset-desktop{margin-left:calc(75% + 8px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--10-offset,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--10-offset-desktop.mdlext-cell--10-offset-desktop{margin-left:calc(83.33333% + 8px)}.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--11-offset,.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--11-offset-desktop.mdlext-cell--11-offset-desktop{margin-left:calc(91.66667% + 8px)}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]{padding:0}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell{margin:0;width:33.33333%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--1-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--1-col-desktop.mdlext-cell--1-col-desktop{width:8.33333%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--2-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--2-col-desktop.mdlext-cell--2-col-desktop{width:16.66667%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--3-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--3-col-desktop.mdlext-cell--3-col-desktop{width:25%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--4-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--4-col-desktop.mdlext-cell--4-col-desktop{width:33.33333%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--5-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--5-col-desktop.mdlext-cell--5-col-desktop{width:41.66667%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--6-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--6-col-desktop.mdlext-cell--6-col-desktop{width:50%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--7-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--7-col-desktop.mdlext-cell--7-col-desktop{width:58.33333%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--8-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--8-col-desktop.mdlext-cell--8-col-desktop{width:66.66667%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--9-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--9-col-desktop.mdlext-cell--9-col-desktop{width:75%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--10-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--10-col-desktop.mdlext-cell--10-col-desktop{width:83.33333%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--11-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--11-col-desktop.mdlext-cell--11-col-desktop{width:91.66667%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--12-col,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--12-col-desktop.mdlext-cell--12-col-desktop{width:100%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--1-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--1-offset-desktop.mdlext-cell--1-offset-desktop{margin-left:8.33333%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--2-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--2-offset-desktop.mdlext-cell--2-offset-desktop{margin-left:16.66667%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--3-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--3-offset-desktop.mdlext-cell--3-offset-desktop{margin-left:25%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--4-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--4-offset-desktop.mdlext-cell--4-offset-desktop{margin-left:33.33333%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--5-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--5-offset-desktop.mdlext-cell--5-offset-desktop{margin-left:41.66667%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--6-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--6-offset-desktop.mdlext-cell--6-offset-desktop{margin-left:50%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--7-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--7-offset-desktop.mdlext-cell--7-offset-desktop{margin-left:58.33333%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--8-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--8-offset-desktop.mdlext-cell--8-offset-desktop{margin-left:66.66667%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--9-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--9-offset-desktop.mdlext-cell--9-offset-desktop{margin-left:75%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--10-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--10-offset-desktop.mdlext-cell--10-offset-desktop{margin-left:83.33333%}.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--11-offset,.mdlext-grid--no-spacing.mdlext-grid[data-eq-state$=grid_desktop]>.mdlext-cell--11-offset-desktop.mdlext-cell--11-offset-desktop{margin-left:91.66667%}html:before{content:".mdlext-grid"}ul.mdlext-lightboard{list-style:none}.mdlext-lightboard{margin:0 auto;padding:0;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:stretch;align-items:stretch}.mdlext-lightboard,.mdlext-lightboard *,.mdlext-lightboard :after,.mdlext-lightboard :before,.mdlext-lightboard input[type=search]{box-sizing:border-box}.mdlext-lightboard .mdlext-lightboard__slide{background-color:#f8f8f8;border:1px solid #d8d8d8;border-radius:5px;box-shadow:2px 2px 6px -1px hsla(300,5%,85%,.5);position:relative;display:block;max-width:250px}.mdlext-lightboard .mdlext-lightboard__slide:before{content:"";display:block;padding-top:100%}.mdlext-lightboard .mdlext-lightboard__slide:active,.mdlext-lightboard .mdlext-lightboard__slide:focus,.mdlext-lightboard .mdlext-lightboard__slide:hover{border-color:#b8b8b8;background-color:#e8e8e8;box-shadow:2px 2px 12px -1px #dbd7db}.mdlext-lightboard .mdlext-lightboard__slide:active figcaption,.mdlext-lightboard .mdlext-lightboard__slide:focus figcaption,.mdlext-lightboard .mdlext-lightboard__slide:hover figcaption{color:#000!important;background-color:hsla(0,0%,100%,.2)}.mdlext-lightboard .mdlext-lightboard__slide:focus{outline-offset:-2px;outline-color:inherit}.mdlext-lightboard .mdlext-lightboard__slide[aria-selected=true]{background-color:#e8e8e8}.mdlext-lightboard .mdlext-lightboard__slide[aria-selected=true] figcaption{color:#000!important;background-color:hsla(0,0%,100%,.2)}.mdlext-lightboard .mdlext-lightboard__slide__frame,.mdlext-lightboard .mdlext-lightboard__slide__ripple-container{text-decoration:none;display:block;overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.mdlext-lightboard .mdlext-lightboard__slide__frame:focus,.mdlext-lightboard .mdlext-lightboard__slide__ripple-container:focus{outline-offset:-2px;outline-color:inherit}.mdlext-lightboard .mdlext-lightboard__slide__frame .mdl-ripple,.mdlext-lightboard .mdlext-lightboard__slide__ripple-container .mdl-ripple{background:#3f51b5}.mdlext-lightboard .mdlext-lightboard__slide__frame figure,.mdlext-lightboard .mdlext-lightboard__slide__ripple-container figure{display:block;position:absolute;top:0;left:0;right:0;bottom:0}.mdlext-lightboard .mdlext-lightboard__slide__frame figure img,.mdlext-lightboard .mdlext-lightboard__slide__ripple-container figure img{position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;max-width:100%;max-height:100%;border-width:0;border-radius:3px}.mdlext-lightboard .mdlext-lightboard__slide__frame figure figcaption,.mdlext-lightboard .mdlext-lightboard__slide__ripple-container figure figcaption{font-family:Roboto,Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1;letter-spacing:0;color:#bdbdbd;position:absolute;bottom:-2px;white-space:nowrap;overflow:hidden;max-width:100%;width:100%;text-align:center;text-overflow:ellipsis;padding:4px 0}.mdlext-lightboard .mdlext-lightboard__slide__frame:hover figcaption,.mdlext-lightboard .mdlext-lightboard__slide__ripple-container:hover figcaption{color:#000!important;background-color:hsla(0,0%,100%,.2)}.mdlext-lightboard{padding:-1px}.mdlext-lightboard .mdlext-lightboard__slide{margin:1px;width:calc(1 / 2 * 100% - 2px)}.mdlext-lightboard .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure{margin:8px}.mdlext-lightboard.mdlext-lightboard--no-spacing{padding:0}.mdlext-lightboard.mdlext-lightboard--no-spacing .mdlext-lightboard__slide{margin:0;width:50%}.mdlext-lightboard:before{display:none;content:"lightboard_medium_small: 480, lightboard_medium: 660, lightboard_medium_large: 840, lightboard_large: 1200"}.mdlext-lightboard[data-eq-state$=lightboard_medium_small]{padding:-2px}.mdlext-lightboard[data-eq-state$=lightboard_medium_small] .mdlext-lightboard__slide{margin:2px;width:calc(1 / 4 * 100% - 4px)}.mdlext-lightboard[data-eq-state$=lightboard_medium_small] .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure{margin:8px}.mdlext-lightboard--no-spacing.mdlext-lightboard[data-eq-state$=lightboard_medium_small]{padding:0}.mdlext-lightboard--no-spacing.mdlext-lightboard[data-eq-state$=lightboard_medium_small] .mdlext-lightboard__slide{margin:0;width:25%}.mdlext-lightboard[data-eq-state$=lightboard_medium]{padding:-2px}.mdlext-lightboard[data-eq-state$=lightboard_medium] .mdlext-lightboard__slide{margin:2px;width:calc(1 / 5 * 100% - 4px)}.mdlext-lightboard[data-eq-state$=lightboard_medium] .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure{margin:8px}.mdlext-lightboard--no-spacing.mdlext-lightboard[data-eq-state$=lightboard_medium]{padding:0}.mdlext-lightboard--no-spacing.mdlext-lightboard[data-eq-state$=lightboard_medium] .mdlext-lightboard__slide{margin:0;width:20%}.mdlext-lightboard[data-eq-state$=lightboard_medium_large]{padding:-4px}.mdlext-lightboard[data-eq-state$=lightboard_medium_large] .mdlext-lightboard__slide{margin:4px;width:calc(1 / 6 * 100% - 8px)}.mdlext-lightboard[data-eq-state$=lightboard_medium_large] .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure{margin:12px}.mdlext-lightboard--no-spacing.mdlext-lightboard[data-eq-state$=lightboard_medium_large]{padding:0}.mdlext-lightboard--no-spacing.mdlext-lightboard[data-eq-state$=lightboard_medium_large] .mdlext-lightboard__slide{margin:0;width:16.66667%}.mdlext-lightboard[data-eq-state$=lightboard_large]{padding:-4px}.mdlext-lightboard[data-eq-state$=lightboard_large] .mdlext-lightboard__slide{margin:4px;width:calc(1 / 7 * 100% - 8px)}.mdlext-lightboard[data-eq-state$=lightboard_large] .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure{margin:12px}.mdlext-lightboard--no-spacing.mdlext-lightboard[data-eq-state$=lightboard_large]{padding:0}.mdlext-lightboard--no-spacing.mdlext-lightboard[data-eq-state$=lightboard_large] .mdlext-lightboard__slide{margin:0;width:14.28571%}html:before{display:none;content:".mdlext-grid,.mdlext-lightboard"}.mdlext-lightbox{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;position:relative;width:auto;max-width:100%;margin:0 auto;border:0;border-radius:0;background-color:#fff;outline:0;display:block}.mdlext-lightbox,.mdlext-lightbox *,.mdlext-lightbox :after,.mdlext-lightbox :before,.mdlext-lightbox input[type=search]{box-sizing:border-box}.mdlext-lightbox .mdlext-lightbox__slider{position:absolute;top:0;left:0;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.mdlext-lightbox .mdlext-lightbox__slider .mdlext-lightbox__slider__slide{-ms-flex-negative:0;flex-shrink:0;display:block;text-align:left;color:#7f7f7f;background-size:cover;background-position:50%;background-repeat:no-repeat}.mdlext-lightbox figure{margin:0;padding:0;position:relative}.mdlext-lightbox figure img{width:100%;max-width:100%;height:auto;border:0;outline:0}.mdlext-lightbox figure figcaption{font-family:Roboto,Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1;letter-spacing:0;display:block;position:absolute;bottom:0;left:0;right:0;max-width:100%;height:auto;max-height:50%;overflow:auto;padding:8px;background-color:hsla(0,0%,100%,.76);transform-origin:bottom;transform:scaleY(0);transition:.2s ease-in-out}.mdlext-lightbox figure figcaption.mdlext-lightbox__show-figcaption{transform:scaleY(1)}.mdlext-lightbox figure figcaption tbody th{text-align:left}.mdlext-lightbox figure figcaption tbody td,.mdlext-lightbox figure figcaption tbody th{vertical-align:text-top}.mdlext-lightbox .mdl-card__menu{color:#fff;z-index:1}.mdlext-lightbox footer{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;background-color:hsla(0,0%,100%,.86)}.mdlext-lightbox footer .mdl-card__supporting-text{-ms-flex:1;flex:1;overflow:hidden;padding:0;height:18px;width:100%}.mdlext-lightbox footer nav{display:-ms-flexbox;display:flex}.mdlext-lightbox.mdlext-lightbox--sticky-footer footer{position:fixed;bottom:0;left:0}ul.mdlext-carousel{list-style:none}.mdlext-carousel{overflow:hidden;width:100%;display:block;white-space:nowrap;font-size:0;background-color:transparent}.mdlext-carousel,.mdlext-carousel__slide{box-sizing:border-box;margin:0;padding:0;height:100%}.mdlext-carousel__slide{display:inline-block;position:relative;outline:0;border-top:2px solid transparent}.mdlext-carousel__slide[aria-selected=true] figcaption,.mdlext-carousel__slide[aria-selected] figcaption{color:#000!important;background-color:hsla(0,0%,100%,.25)}.mdlext-carousel__slide[aria-selected=true]:after,.mdlext-carousel__slide[aria-selected]:after{height:2px;width:100%;display:block;content:" ";top:-2px;left:0;position:absolute;background:#ff4081;animation:border-expand .2s cubic-bezier(.4,0,.4,1) .01s alternate forwards;transition:all 1s cubic-bezier(.4,0,1,1)}.mdlext-carousel__slide a{text-decoration:none}.mdlext-carousel__slide figure{box-sizing:border-box;position:relative;height:100%;margin:0;padding:0}.mdlext-carousel__slide figure img{box-sizing:border-box;max-height:100%}.mdlext-carousel__slide figure figcaption{box-sizing:border-box;font-family:Roboto,Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1;letter-spacing:0;color:#bdbdbd;position:absolute;bottom:0;left:0;white-space:nowrap;overflow:hidden;max-width:100%;width:100%;text-align:center;text-overflow:ellipsis;padding:4px 0}.mdlext-carousel__slide figure:hover figcaption{color:#000!important;background-color:hsla(0,0%,100%,.25)}.mdlext-carousel__slide .mdlext-carousel__slide__ripple-container{text-decoration:none;display:block;overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0;outline:0}.mdlext-carousel__slide .mdlext-carousel__slide__ripple-container .mdl-ripple{background:#3f51b5}.mdlext-selectfield{box-sizing:border-box;position:relative;font-size:16px;display:inline-block;width:300px;max-width:100%;margin:0;padding:20px 0}.mdlext-selectfield .mdl-button{bottom:20px;position:absolute}.mdlext-selectfield:after{border-top:.5em solid inherit;border-top-width:.5em;border-top-style:solid;border-top-color:inherit;border-left:.35em solid transparent;border-right:.35em solid transparent;position:absolute;right:.5em;top:50%;transform:translateY(-50%);pointer-events:none}.mdlext-selectfield.is-disabled:after,.mdlext-selectfield:after{content:"";width:0;height:0;font-size:inherit;line-height:inherit}.mdlext-selectfield.is-disabled:after{color:rgba(0,0,0,.12);border-top:.5em solid rgba(0,0,0,.12);border-top-width:.5em;border-top-style:solid;border-top-color:rgba(0,0,0,.12);border-left:.35em solid transparent;border-right:.35em solid transparent}.mdlext-selectfield--align-right{text-align:right}.mdlext-selectfield--full-width{width:100%}.mdlext-selectfield--expandable{min-height:32px;min-width:32px;width:auto}.mdlext-selectfield__select{box-sizing:border-box;border:0;border-radius:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;text-indent:.01px;text-overflow:"";outline:none;box-shadow:none;font-size:16px;font-family:Helvetica,Arial,sans-serif;padding:4px calc(1.2em + 4px) 4px 0;width:100%;border-bottom:1px solid rgba(0,0,0,.12);display:block;margin:0;background:none;text-align:left;color:inherit}.mdlext-selectfield__select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.mdlext-selectfield__select:focus::-ms-value{background-color:inherit;color:inherit}.mdlext-selectfield__select::-ms-expand{display:none}.mdlext-selectfield.is-focused .mdlext-selectfield__select{outline:none}.mdlext-selectfield.is-invalid .mdlext-selectfield__select{border-color:#d50000;box-shadow:none}.mdlext-selectfield.is-disabled .mdlext-selectfield__select,fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select{border-bottom:1px dotted rgba(0,0,0,.12);color:rgba(0,0,0,.26);background-color:transparent}.mdlext-selectfield__select option{color:rgba(0,0,0,.87);box-sizing:border-box;background-color:inherit}.mdlext-selectfield__label{box-sizing:border-box;color:rgba(0,0,0,.26);font-size:16px;top:24px;bottom:0;left:0;right:0;pointer-events:none;position:absolute;display:block;width:100%;overflow:hidden;white-space:nowrap;text-align:left}.mdlext-selectfield.has-placeholder .mdlext-selectfield__label,.mdlext-selectfield.is-dirty .mdlext-selectfield__label{visibility:hidden}.mdlext-selectfield--floating-label .mdlext-selectfield__label{transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label{transition:none}.mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label,fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label{color:rgba(0,0,0,.26)}.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label{color:#3f51b5;font-size:12px;top:4px;visibility:visible}.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__expandable-holder .mdlext-selectfield__label,.mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__expandable-holder .mdlext-selectfield__label,.mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__expandable-holder .mdlext-selectfield__label{top:-16px}.mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label{color:#d50000;font-size:12px}.mdlext-selectfield__label:after{background-color:#3f51b5;bottom:20px;content:"";height:2px;left:45%;position:absolute;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);visibility:hidden;width:10px}.mdlext-selectfield.is-focused .mdlext-selectfield__label:after{left:0;visibility:visible;width:100%}.mdlext-selectfield.is-invalid .mdlext-selectfield__label:after{background-color:#d50000}.mdlext-selectfield__error{color:#d50000;font-size:12px;position:absolute;margin-top:3px;visibility:hidden;display:block}.mdlext-selectfield.is-invalid .mdlext-selectfield__error{visibility:visible}.mdlext-selectfield__expandable-holder{display:inline-block;position:relative;margin-left:32px;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);max-width:.1px}.mdlext-selectfield.is-dirty .mdlext-selectfield__expandable-holder,.mdlext-selectfield.is-focused .mdlext-selectfield__expandable-holder{max-width:600px}.mdlext-selectfield__expandable-holder .mdlext-selectfield__label:after{bottom:0}.mdlext-menu-button{box-sizing:border-box;font-family:Roboto,Helvetica,Arial,sans-serif;font-size:14px;font-weight:500;line-height:1;letter-spacing:0;text-transform:none;position:relative;height:36px;padding:0 16px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-item-align:stretch;align-self:stretch}.mdlext-menu-button>*{margin:0;padding:0 0 0 8px}.mdlext-menu-button>:first-child{padding-left:0}.mdlext-menu-button>:last-child:not(:only-child):not(.mdlext-menu__item__caption){margin-left:auto}.mdlext-menu-button__caption{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.mdlext-menu,.mdlext-menu__item{box-sizing:border-box;margin:0;padding:0;list-style:none;display:-ms-flexbox;display:flex}.mdlext-menu{position:absolute;background:#fff;z-index:1000;min-width:124px;border-radius:2px;box-shadow:0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.2),0 1px 8px 0 rgba(0,0,0,.12);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:column;flex-direction:column;padding:0;overflow:hidden;overflow-y:auto}.mdlext-menu:focus{outline-offset:-1px;outline-width:1px}.mdlext-menu[hidden]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;pointer-events:none}.mdlext-menu__item{font-size:14px;font-weight:400;line-height:24px;letter-spacing:0;color:rgba(0,0,0,.87);background-color:#fff;position:relative;padding:0 16px 0 24px;-ms-flex-align:center;align-items:center;-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch;text-decoration:none;cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-height:40px;overflow:hidden}.mdlext-menu__item[aria-selected=true]{background-color:#e0e0e0}.mdlext-menu__item[aria-selected=true]:before{content:"\2713";position:absolute;font-size:1.4em;left:4px;top:50%;transform:translateY(-50%);pointer-events:none}.mdlext-menu__item:hover:not([disabled]){background-color:#eee}.mdlext-menu__item:focus{outline-offset:-2px;outline-width:1px;outline-color:#bdbdbd;background-color:#eee}.mdlext-menu__item::-moz-focus-inner{border:0}.mdlext-menu__item[disabled]{color:#bdbdbd;background-color:transparent;cursor:auto;pointer-events:none}.mdlext-menu__item[disabled]>*{color:#bdbdbd}.mdlext-menu__item__caption{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mdlext-menu__item>*{margin:0;padding:0 0 0 8px}.mdlext-menu__item>:first-child{padding-left:0}.mdlext-menu__item>:last-child:not(:only-child):not(.mdlext-menu__item__caption){margin-left:auto}.mdlext-menu__item-separator{margin:0;padding:0;border-bottom:1px solid rgba(0,0,0,.12)}.mdlext-bordered-fields,.mdlext-bordered-fields *{box-sizing:border-box}.mdlext-bordered-fields .mdl-textfield,.mdlext-bordered-fields .mdlext-selectfield{padding:0;margin:0 0 20px}.mdlext-bordered-fields .mdl-textfield .mdl-textfield__input,.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input,.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select{height:46px;background-color:hsla(0,0%,100%,.2);border:1px solid rgba(0,0,0,.26);border-radius:3px;padding:20px 8px 4px;font-size:16px;font-weight:400;color:inherit}.mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:disabled,.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:disabled,.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:disabled,.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:disabled{color:rgba(0,0,0,.12);background-color:hsla(0,0%,100%,.2);border-color:rgba(0,0,0,.12)}.mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:focus,.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:focus,.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:focus,.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:focus{background-color:hsla(0,0%,93%,.2);border-color:#3f51b5}.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select{padding-right:calc(1em + 8px)}.mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input,.mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select,.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input,.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select{color:inherit;border-color:#d50000;background-color:hsla(0,100%,92%,.5)}.mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input:focus,.mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select:focus,.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input:focus,.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select:focus{border-color:#a20000;background-color:hsla(0,100%,92%,.5)}.mdlext-bordered-fields .mdlext-selectfield:after{top:auto;bottom:4px}.mdlext-bordered-fields .mdlext-selectfield.is-disabled:after,.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield:after{color:rgba(0,0,0,.12);content:"";width:0;height:0;font-size:inherit;line-height:inherit;border-top:.5em solid rgba(0,0,0,.12);border-top-width:.5em;border-top-style:solid;border-top-color:rgba(0,0,0,.12);border-left:.35em solid transparent;border-right:.35em solid transparent}.mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__input,.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select{color:rgba(0,0,0,.12);background-color:hsla(0,0%,100%,.2);border-color:rgba(0,0,0,.12)}.mdlext-bordered-fields .mdl-textfield.has-placeholder .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.has-placeholder .mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.is-dirty .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.is-dirty .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.has-placeholder .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.has-placeholder .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.is-dirty .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.is-dirty .mdlext-selectfield__label{visibility:hidden}.mdlext-bordered-fields .mdl-textfield .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label{color:rgba(0,0,0,.26);font-size:16px;font-weight:400;padding-left:8px;top:auto;bottom:4px}.mdlext-bordered-fields .mdl-textfield .mdl-textfield__label:after,.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label:after,.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label:after,.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label:after{background-color:transparent!important;visibility:hidden!important}.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label{color:#3f51b5;font-size:12px;font-weight:400;top:auto;bottom:24px;visibility:visible}.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label{color:rgba(0,0,0,.12)}.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label{color:#d50000}.mdlext-bordered-fields fieldset[disabled] .mdl-selectfield .mdl-selectfield__label,.mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__label{color:rgba(0,0,0,.12)}.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>.mdl-button,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>i,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right>.mdl-button,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right>i,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>.mdl-button,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>i,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right>.mdl-button,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right>i{position:absolute;bottom:2px}.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>i,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right>i,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>i,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right>i{bottom:6px}.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>.mdl-button:first-child,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>i:first-child,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>.mdl-button:first-child,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>i:first-child{left:4px}.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>.mdl-button~.mdl-textfield__input,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>.mdl-button~.mdlext-selectfield__select,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>i~.mdl-textfield__input,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>i~.mdlext-selectfield__select,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>.mdl-button~.mdl-textfield__input,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>.mdl-button~.mdlext-selectfield__select,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>i~.mdl-textfield__input,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>i~.mdlext-selectfield__select{padding-left:32px}.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>.mdl-button~.mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>.mdl-button~.mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>i~.mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>i~.mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>.mdl-button~.mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>.mdl-button~.mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>i~.mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>i~.mdlext-selectfield__label{left:24px}.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right>.mdl-textfield__input,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right>.mdl-textfield__input{padding-right:32px}.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right>.mdl-button:last-child,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right>i:last-child,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right>.mdl-button:last-child,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right>i:last-child{left:auto;right:4px}.mdlext-bordered-fields .mdl-textfield.is-disabled .mdl-button,.mdlext-bordered-fields .mdl-textfield.is-disabled i,.mdlext-bordered-fields .mdlext-selectfield.is-disabled .mdl-button,.mdlext-bordered-fields .mdlext-selectfield.is-disabled i,.mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-button,.mdlext-bordered-fields fieldset[disabled] .mdl-textfield i,.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdl-button,.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield i{color:rgba(0,0,0,.12);pointer-events:none}.mdlext-collapsible{cursor:pointer}.mdlext-collapsible,.mdlext-collapsible-group,.mdlext-collapsible-region{box-sizing:border-box}.mdlext-collapsible-group[hidden],.mdlext-collapsible-region[hidden]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;pointer-events:none}.mdlext-aria-toggle-plus-minus{font-family:inherit;font-weight:inherit;font-style:inherit;font-size:1.4em;display:inline-block;width:1em;height:1em;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;vertical-align:middle;-webkit-font-smoothing:antialiased;-webkit-font-feature-settings:"liga";text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.mdlext-aria-toggle-plus-minus:after{content:"+";margin-left:0}[aria-expanded=true]>.mdlext-aria-toggle-plus-minus:after{content:"-";margin-left:0}.mdlext-aria-toggle-material-icons{font-family:Material Icons;font-weight:inherit;font-style:inherit;font-size:1.3em;display:inline-block;width:1em;height:1em;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;vertical-align:middle;-webkit-font-smoothing:antialiased;-webkit-font-feature-settings:"liga";text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.mdlext-aria-toggle-material-icons:after{content:"expand_more";margin-left:-8px}[aria-expanded=true]>.mdlext-aria-toggle-material-icons:after{content:"expand_less";margin-left:-8px}.mdlext-accordion{margin:0;padding:0;list-style:none;display:-ms-flexbox;display:flex}.mdlext-accordion,.mdlext-accordion *{box-sizing:border-box}.mdlext-accordion__panel{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.mdlext-accordion__panel,.mdlext-accordion__tab{box-sizing:border-box;position:relative;overflow:hidden;display:-ms-flexbox;display:flex}.mdlext-accordion__tab{font-family:Roboto,Helvetica,Arial,sans-serif;font-size:20px;font-weight:500;line-height:1;letter-spacing:.02em;font-weight:400;line-height:1.1;margin:0;padding:0;min-width:56px;min-height:56px;-ms-flex-align:center;align-items:center;-ms-flex-item-align:stretch;align-self:stretch;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#000;background-color:hsla(0,0%,62%,.2);cursor:pointer}.mdlext-accordion__tab:focus{outline-offset:-2px;outline-color:invert;outline-width:2px}.mdlext-accordion__tab[aria-expanded=true]{background-color:hsla(0,0%,62%,.3)}.mdlext-accordion__tab[aria-selected=true]{background-color:hsla(0,0%,62%,.4)}.mdlext-accordion__tab[disabled]{background-color:hsla(0,0%,62%,.12);color:rgba(0,0,0,.26);pointer-events:none}.mdlext-accordion__tab[disabled]>*{color:rgba(0,0,0,.26)}.mdlext-accordion__tab:hover:not([disabled]){background-color:hsla(0,0%,62%,.4)}.mdlext-accordion__tab>*{margin:0;padding:0}.mdlext-accordion__tab__caption{padding-left:8px;padding-right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mdlext-accordion__tab>:first-child{padding-left:0}.mdlext-accordion__tab--ripple[aria-selected=true]:before{content:"";position:absolute;top:50%;left:50%;background:hsla(0,0%,100%,.5);opacity:0;border-radius:100%;transform:scale(1) translate(-50%);transform-origin:50% 50%}.mdlext-accordion__tab--ripple[aria-selected=true]:focus:not(:active):before{animation:mdlext-accordion-tab-ripple 1s cubic-bezier(.4,0,.4,1) .01s alternate forwards}.mdlext-accordion__tabpanel{box-sizing:border-box;margin:0;padding:0 8px;color:inherit;background-color:transparent;display:block;overflow:auto;-ms-flex-positive:1;flex-grow:1}.mdlext-accordion__tabpanel[hidden]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.mdlext-accordion--vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.mdlext-accordion--vertical .mdlext-accordion__panel{min-height:56px;-ms-flex-direction:column;flex-direction:column}.mdlext-accordion--vertical .mdlext-accordion__tab{height:56px;border-top:1px solid hsla(0,0%,62%,.5);padding-left:8px;padding-right:8px}.mdlext-accordion--vertical .mdlext-accordion__tab[aria-selected=true]:after{position:absolute;bottom:0;left:0;height:1px;width:100%;display:block;content:" ";background-color:hsla(0,0%,59%,.5);animation:border-expand .2s cubic-bezier(.4,0,.4,1) .01s alternate forwards;transition:all 1s cubic-bezier(.4,0,1,1)}.mdlext-accordion--vertical .mdlext-accordion__tab>*{padding-left:8px}.mdlext-accordion--vertical .mdlext-accordion__tab>:first-child{padding-left:0}.mdlext-accordion--vertical .mdlext-accordion__tab>:last-child:not(:only-child):not(.mdlext-accordion__tab__caption){margin-left:auto}.mdlext-accordion--vertical .mdlext-accordion__tab--ripple[aria-selected=true]:before{width:5%;height:10%}.mdlext-accordion--vertical .mdlext-accordion__tabpanel{border-top:1px solid hsla(0,0%,62%,.5)}.mdlext-accordion--vertical .mdlext-accordion__tabpanel--animation{transform:scaleY(1);animation:mdlext-accordion-show-tabpanel-y .2s ease-in-out}.mdlext-accordion--vertical .mdlext-accordion__tabpanel--animation[hidden]{transform:scaleY(0);animation:mdlext-accordion-hide-tabpanel-y .2s ease-out;animation-delay:.1s}.mdlext-accordion--horizontal .mdlext-accordion__panel{min-width:56px;width:56px}.mdlext-accordion--horizontal[aria-multiselectable=true] .mdlext-accordion__panel.is-expanded{width:100%}.mdlext-accordion--horizontal .mdlext-accordion__tab{-ms-flex-direction:column-reverse;flex-direction:column-reverse;width:56px;white-space:nowrap;border-left:1px solid hsla(0,0%,62%,.5)}.mdlext-accordion--horizontal .mdlext-accordion__tab[aria-selected=true]:after{position:absolute;top:0;right:0;height:100%;width:1px;display:block;content:" ";background-color:hsla(0,0%,59%,.5)}.mdlext-accordion--horizontal .mdlext-accordion__tab>*{transform:rotate(-90deg) translateX(8px)}.mdlext-accordion--horizontal .mdlext-accordion__tab>:last-child:not(:only-child):not(.mdlext-accordion__tab__caption){margin-bottom:auto;transform:rotate(-90deg) translateX(0)}.mdlext-accordion--horizontal .mdlext-accordion__tab__caption{transform:rotate(-90deg) translateX(50%);padding-right:16px}.mdlext-accordion--horizontal .mdlext-accordion__tab--ripple[aria-selected=true]:before{width:10%;height:5%}.mdlext-accordion--horizontal .mdlext-accordion__tabpanel{border-left:1px solid hsla(0,0%,62%,.5)}.mdlext-accordion--horizontal .mdlext-accordion__tabpanel--animation{transform:scaleX(1);animation:mdlext-accordion-show-tabpanel-x .2s ease-in-out}.mdlext-accordion--horizontal .mdlext-accordion__tabpanel--animation[hidden]{transform:scaleX(0);animation:mdlext-accordion-hide-tabpanel-x .2s ease-out}.mdlext-accordion__panel:first-child>.mdlext-accordion__tab{border-top-color:transparent;border-left-color:transparent}.mdlext-accordion[aria-multiselectable=false] .mdlext-accordion__panel.is-expanded{-ms-flex-positive:1;flex-grow:1}.mdlext-accordion[disabled] *{pointer-events:none}.mdlext-accordion[disabled] .mdlext-accordion__tab{background-color:hsla(0,0%,62%,.12);color:rgba(0,0,0,.26)}.mdlext-accordion[disabled] .mdlext-accordion__tab>*{color:rgba(0,0,0,.26)}.mdlext-accordion[disabled] .mdlext-accordion__tabpanel{opacity:.8;filter:blur(1px) grayscale(80%)}@keyframes mdlext-accordion-tab-ripple{0%{transform:scale(0);opacity:1}20%{transform:scale(25);opacity:1}to{opacity:0;transform:scale(40)}}@keyframes mdlext-accordion-show-tabpanel-y{0%{transform:scaleY(0)}60%{transform:scaleY(1.01)}80%{transform:scaleY(.98)}to{transform:scaleY(1)}}@keyframes mdlext-accordion-hide-tabpanel-y{0%{transform:scaleY(1)}60%{transform:scaleY(.98)}80%{transform:scaleY(1.01)}to{transform:scaleY(0)}}@keyframes mdlext-accordion-show-tabpanel-x{0%{transform:scaleX(0)}60%{transform:scaleX(1.01)}80%{transform:scaleX(.98)}to{transform:scaleX(1)}}@keyframes mdlext-accordion-hide-tabpanel-x{0%{transform:scaleX(1)}60%{transform:scaleX(.98)}80%{transform:scaleX(1.01)}to{transform:scaleX(0)}}.mdlext-light-color-theme{background-color:#fafafa;color:rgba(0,0,0,.87)}.mdlext-light-color-theme a{outline-color:inherit}.mdlext-light-color-theme .mdl-color--primary{background-color:#4caf50!important}.mdlext-light-color-theme .mdl-color--primary-contrast{background-color:#c8e6c9!important}.mdlext-light-color-theme .mdl-color--primary-dark{background-color:#388e3c!important}.mdlext-light-color-theme .mdl-color--accent{background-color:#e040fb!important}.mdlext-light-color-theme .mdl-color--accent-contrast{background-color:#fafafa!important}.mdlext-light-color-theme .mdl-color-text--primary{color:#4caf50!important}.mdlext-light-color-theme .mdl-color-text--primary-contrast{color:#c8e6c9!important}.mdlext-light-color-theme .mdl-color-text--primary-dark{color:#388e3c!important}.mdlext-light-color-theme .mdl-color-text--accent{color:#e040fb!important}.mdlext-light-color-theme .mdl-color-text--accent-contrast{color:#fafafa!important}.mdlext-light-color-theme a{color:#e040fb}.mdlext-light-color-theme .mdl-badge[data-badge]:after{background:#e040fb;color:#fafafa}.mdlext-light-color-theme .mdl-badge.mdl-badge--no-background[data-badge]:after{color:#e040fb;background:#fafafa}.mdlext-light-color-theme .mdl-button{background:transparent;color:#000}.mdlext-light-color-theme .mdl-button:hover{background-color:hsla(0,0%,62%,.2)}.mdlext-light-color-theme .mdl-button:focus:not(:active){background-color:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdl-button:active{background-color:hsla(0,0%,62%,.4)}.mdlext-light-color-theme .mdl-button.mdl-button--colored{color:#4caf50}.mdlext-light-color-theme .mdl-button.mdl-button--colored:focus:not(:active){background-color:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdl-button--raised{background:hsla(0,0%,62%,.2)}.mdlext-light-color-theme .mdl-button--raised:active,.mdlext-light-color-theme .mdl-button--raised:focus:not(:active){background-color:hsla(0,0%,62%,.4)}.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored{background:#4caf50;color:#c8e6c9}.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored:active,.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored:focus:not(:active),.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored:hover{background-color:#3d8b40}.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored .mdl-ripple{background:#c8e6c9}.mdlext-light-color-theme .mdl-button--fab{background:hsla(0,0%,62%,.2)}.mdlext-light-color-theme .mdl-button--fab:active,.mdlext-light-color-theme .mdl-button--fab:focus:not(:active){background-color:hsla(0,0%,62%,.4)}.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored{background:#e040fb;color:#fafafa}.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored:active,.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored:focus:not(:active),.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored:hover{background-color:#e040fb}.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored .mdl-ripple{background:#fafafa}.mdlext-light-color-theme .mdl-button--icon{color:inherit}.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary{color:#4caf50}.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary .mdl-ripple{background:#c8e6c9}.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--fab,.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--raised{color:#c8e6c9;background-color:#4caf50}.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent{color:#e040fb}.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent .mdl-ripple{background:#fafafa}.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--fab,.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--raised{color:#fafafa;background-color:#e040fb}.mdlext-light-color-theme .mdl-button.mdl-button--disabled.mdl-button--disabled,.mdlext-light-color-theme .mdl-button[disabled][disabled]{color:rgba(0,0,0,.26);background-color:transparent}.mdlext-light-color-theme .mdl-button--fab.mdl-button--disabled.mdl-button--disabled,.mdlext-light-color-theme .mdl-button--fab[disabled][disabled],.mdlext-light-color-theme .mdl-button--raised.mdl-button--disabled.mdl-button--disabled,.mdlext-light-color-theme .mdl-button--raised[disabled][disabled]{background-color:rgba(0,0,0,.12);color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-button--colored.mdl-button--disabled.mdl-button--disabled,.mdlext-light-color-theme .mdl-button--colored[disabled][disabled]{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded{background:transparent;color:#e040fb}.mdlext-light-color-theme .mdl-slider.is-upgraded::-webkit-slider-runnable-track{background:transparent}.mdlext-light-color-theme .mdl-slider.is-upgraded::-moz-range-track{background:transparent}.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-track{background:none;color:transparent}.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-fill-lower{background:linear-gradient(90deg,transparent,transparent 16px,#e040fb 0,#e040fb 0)}.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-fill-upper{background:linear-gradient(270deg,transparent,transparent 16px,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 0)}.mdlext-light-color-theme .mdl-slider.is-upgraded::-webkit-slider-thumb{background:#e040fb}.mdlext-light-color-theme .mdl-slider.is-upgraded::-moz-range-thumb{background:#e040fb}.mdlext-light-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb{box-shadow:0 0 0 10px rgba(224,64,251,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb{box-shadow:0 0 0 10px rgba(224,64,251,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded:active::-webkit-slider-thumb{background:#e040fb}.mdlext-light-color-theme .mdl-slider.is-upgraded:active::-moz-range-thumb{background:#e040fb}.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-thumb{background:#e040fb}.mdlext-light-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb{background:radial-gradient(circle closest-side,#e040fb 0,#e040fb 37.5%,rgba(224,64,251,.26) 0,rgba(224,64,251,.26) 100%)}.mdlext-light-color-theme .mdl-slider.is-upgraded:active::-ms-thumb{background:#e040fb}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb{border-color:#e040fb;background:transparent}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb{border-color:rgba(0,0,0,.26);background:transparent}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb{box-shadow:0 0 0 10px rgba(0,0,0,.12);background:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb{box-shadow:0 0 0 10px rgba(0,0,0,.12);background:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb{border-color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb{border-color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-thumb{background:radial-gradient(circle closest-side,transparent 0,transparent 66.67%,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 100%)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb{background:radial-gradient(circle closest-side,rgba(0,0,0,.12) 0,rgba(0,0,0,.12) 25%,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 37.5%,rgba(0,0,0,.12) 0,rgba(0,0,0,.12) 100%)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb{background:radial-gradient(circle closest-side,transparent 0,transparent 77.78%,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 100%)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower{background:transparent}.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb{background:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-moz-range-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb{background:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled+.mdl-slider__background-flex>.mdl-slider__background-lower{background-color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb{border-color:rgba(0,0,0,.26);background:transparent}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb{border-color:rgba(0,0,0,.26);background:transparent}.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-ms-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:active::-ms-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:focus::-ms-thumb{background:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb{background:radial-gradient(circle closest-side,transparent 0,transparent 50%,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 100%)}.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-ms-fill-lower{background:linear-gradient(90deg,transparent,transparent 25px,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 0)}.mdlext-light-color-theme .mdl-slider__background-flex{background:transparent}.mdlext-light-color-theme .mdl-slider__background-lower{background:#e040fb}.mdlext-light-color-theme .mdl-slider__background-upper{background:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-textfield__input{border-bottom-color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-textfield.is-invalid .mdl-textfield__input{border-color:#d32f2f}.mdlext-light-color-theme .mdl-textfield.is-disabled .mdl-textfield__input,.mdlext-light-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__input{background-color:transparent;border-bottom-color:rgba(0,0,0,.12);color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-textfield__label{color:rgba(0,0,0,.54)}.mdlext-light-color-theme .mdl-textfield__label:after{background-color:#e040fb}.mdlext-light-color-theme .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label,.mdlext-light-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__label{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-light-color-theme .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,.mdlext-light-color-theme .mdl-textfield--floating-label.is-focused .mdl-textfield__label{color:#e040fb}.mdlext-light-color-theme .mdl-textfield--floating-label.is-invalid .mdl-textfield__label{color:#d32f2f}.mdlext-light-color-theme .mdl-textfield.is-invalid .mdl-textfield__label:after{background-color:#d32f2f}.mdlext-light-color-theme .mdl-textfield__error{color:#d32f2f}.mdlext-light-color-theme .mdl-checkbox__box-outline{border-color:rgba(0,0,0,.54)}.mdlext-light-color-theme .mdl-checkbox.is-checked .mdl-checkbox__box-outline{border-color:#e040fb}.mdlext-light-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__box-outline,.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline{border-color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-checkbox__focus-helper{background-color:transparent}.mdlext-light-color-theme .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper{box-shadow:0 0 0 8px rgba(224,64,251,.26);background-color:rgba(224,64,251,.26)}.mdlext-light-color-theme .mdl-checkbox__tick-outline{background:transparent}.mdlext-light-color-theme .mdl-checkbox.is-checked .mdl-checkbox__tick-outline{background-color:#e040fb}.mdlext-light-color-theme .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline,.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline{background-color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__label,.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__label{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-checkbox__ripple-container .mdl-ripple{background:#e040fb}.mdlext-light-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple,.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple{background:transparent}.mdlext-light-color-theme .mdl-radio__outer-circle{border-color:rgba(0,0,0,.54)}.mdlext-light-color-theme .mdl-radio.is-checked .mdl-radio__outer-circle{border-color:#e040fb}.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__outer-circle,.mdlext-light-color-theme .mdl-radio__outer-circle fieldset[disabled] .mdl-radio{border-color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-radio__inner-circle{background:#e040fb}.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__inner-circle,.mdlext-light-color-theme fieldset[disabled] .mdl-radio .mdl-radio__inner-circle{background:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__label,.mdlext-light-color-theme fieldset[disabled] .mdl-radio .mdl-radio__label{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-radio__ripple-container .mdl-ripple{background:#e040fb}.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple,.mdlext-light-color-theme fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple{background:transparent}.mdlext-light-color-theme .mdl-icon-toggle__label{color:#616161}.mdlext-light-color-theme .mdl-icon-toggle.is-checked .mdl-icon-toggle__label{color:#e040fb}.mdlext-light-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-icon-toggle.is-focused .mdl-icon-toggle__label{background-color:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label{background-color:rgba(224,64,251,.26)}.mdlext-light-color-theme .mdl-icon-toggle__ripple-container .mdl-ripple{background:#616161}.mdlext-light-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple{background:transparent}.mdlext-light-color-theme .mdl-switch__track{background:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-switch.is-checked .mdl-switch__track{background:rgba(224,64,251,.54)}.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__track,.mdlext-light-color-theme .mdl-switch__track fieldset[disabled] .mdl-switch{background:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdl-switch__thumb{background:#fafafa}.mdlext-light-color-theme .mdl-switch.is-checked .mdl-switch__thumb{background:#e040fb}.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__thumb,.mdlext-light-color-theme .mdl-switch__thumb fieldset[disabled] .mdl-switch{background:#bdbdbd}.mdlext-light-color-theme .mdl-switch__focus-helper{background-color:transparent}.mdlext-light-color-theme .mdl-switch.is-focused .mdl-switch__focus-helper{background-color:rgba(0,0,0,.1)}.mdlext-light-color-theme .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper{box-shadow:0 0 0 20px rgba(224,64,251,.26);background-color:rgba(224,64,251,.26)}.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__label,.mdlext-light-color-theme .mdl-switch__label fieldset[disabled] .mdl-switch{color:#bdbdbd}.mdlext-light-color-theme .mdl-switch__ripple-container .mdl-ripple{background:#e040fb}.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple,.mdlext-light-color-theme fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple{background:transparent}.mdlext-light-color-theme .mdl-data-table{border-color:rgba(0,0,0,.12);background-color:#fafafa}.mdlext-light-color-theme .mdl-data-table tbody tr.is-selected,.mdlext-light-color-theme .mdl-data-table tbody tr:hover{background-color:#eee}.mdlext-light-color-theme .mdl-data-table th{color:rgba(0,0,0,.54)}.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending,.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending{color:rgba(0,0,0,.87)}.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover:before,.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending:hover:before{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-menu__outline{background:#fff}.mdlext-light-color-theme .mdl-menu__item{color:rgba(0,0,0,.87);background-color:transparent;outline-color:#bdbdbd}.mdlext-light-color-theme .mdl-menu__item--full-bleed-divider{border-bottom-color:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled],.mdlext-light-color-theme .mdl-menu__item[disabled]{color:#bdbdbd;background-color:transparent}.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled]:focus,.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled]:hover,.mdlext-light-color-theme .mdl-menu__item[disabled]:focus,.mdlext-light-color-theme .mdl-menu__item[disabled]:hover{background-color:transparent}.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled] .mdl-ripple,.mdlext-light-color-theme .mdl-menu__item[disabled] .mdl-ripple{background:transparent}.mdlext-light-color-theme .mdl-menu__item:focus,.mdlext-light-color-theme .mdl-menu__item:hover{background-color:#eee}.mdlext-light-color-theme .mdl-menu__item:active{background-color:#e0e0e0}.mdlext-light-color-theme .mdl-card{background:#fafafa}.mdlext-light-color-theme .mdl-card__media{background-color:#e040fb}.mdlext-light-color-theme .mdl-card__title{color:rgba(0,0,0,.87)}.mdlext-light-color-theme .mdl-card__title.mdl-card--border{border-bottom-color:rgba(0,0,0,.1)}.mdlext-light-color-theme .mdl-card__title-text{color:inherit}.mdlext-light-color-theme .mdl-card__subtitle-text,.mdlext-light-color-theme .mdl-card__supporting-text{color:rgba(0,0,0,.54)}.mdlext-light-color-theme .mdl-card__actions{background-color:transparent}.mdlext-light-color-theme .mdl-card__actions.mdl-card--border{border-top-color:rgba(0,0,0,.1)}.mdlext-light-color-theme .mdlext-selectfield.is-disabled:after{color:rgba(0,0,0,.12);content:"";width:0;height:0;font-size:inherit;line-height:inherit;border-top:.5em solid rgba(0,0,0,.12);border-top-width:.5em;border-top-style:solid;border-top-color:rgba(0,0,0,.12);border-left:.35em solid transparent;border-right:.35em solid transparent}.mdlext-light-color-theme .mdlext-selectfield__select{border-bottom-color:rgba(0,0,0,.26);color:inherit}.mdlext-light-color-theme .mdlext-selectfield__select option{background-color:#fafafa;color:rgba(0,0,0,.87)}.mdlext-light-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__select{border-color:#d32f2f}.mdlext-light-color-theme .mdlext-selectfield.is-disabled .mdlext-selectfield__select,.mdlext-light-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select{background-color:transparent;border-bottom-color:rgba(0,0,0,.12);color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdlext-selectfield__label{color:rgba(0,0,0,.54)}.mdlext-light-color-theme .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-light-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label{color:#e040fb}.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label{color:#d32f2f}.mdlext-light-color-theme .mdlext-selectfield__label:after{background-color:#e040fb}.mdlext-light-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__label:after{background-color:#d32f2f}.mdlext-light-color-theme .mdlext-selectfield__error{color:#d32f2f}.mdlext-light-color-theme .mdlext-menu,.mdlext-menu.mdlext-light-color-theme{background:#fff}.mdlext-light-color-theme .mdlext-menu__item{color:rgba(0,0,0,.87);background-color:#fff}.mdlext-light-color-theme .mdlext-menu__item:active,.mdlext-light-color-theme .mdlext-menu__item[aria-selected=true]{background-color:#e0e0e0}.mdlext-light-color-theme .mdlext-menu__item:hover:not([disabled]){background-color:#eee}.mdlext-light-color-theme .mdlext-menu__item:focus{outline-color:#bdbdbd;background-color:#eee}.mdlext-light-color-theme .mdlext-menu__item[disabled],.mdlext-light-color-theme .mdlext-menu__item[disabled]>*{color:#bdbdbd}.mdlext-light-color-theme .mdlext-menu__item-separator{border-bottom:1px solid rgba(0,0,0,.12)}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select{background-color:hsla(0,0%,98%,.1);border-color:rgba(0,0,0,.26);color:inherit}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:disabled,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:disabled,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:disabled,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:disabled{color:rgba(0,0,0,.26);background-color:hsla(0,0%,98%,.1);border-color:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:focus,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:focus,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:focus,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:focus{background-color:hsla(0,0%,88%,.1);border-color:#e040fb}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select{color:inherit;border-color:#d32f2f;background-color:hsla(0,0%,100%,.5)}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input:focus,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select:focus,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input:focus,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select:focus{border-color:#ab2424;background-color:hsla(0,0%,100%,.5)}.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled:after,.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield:after{color:rgba(0,0,0,.26);content:"";width:0;height:0;font-size:inherit;line-height:inherit;border-top:.5em solid rgba(0,0,0,.26);border-top-width:.5em;border-top-style:solid;border-top-color:rgba(0,0,0,.26);border-left:.35em solid transparent;border-right:.35em solid transparent}.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__input,.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select{color:rgba(0,0,0,.26);background-color:hsla(0,0%,98%,.1);border-color:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label{color:rgba(0,0,0,.54)}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label{color:#e040fb}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label{color:#d32f2f}.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-selectfield .mdl-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__label{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled .mdl-button,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled i,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled .mdl-button,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled i,.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-button,.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield i,.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdl-button,.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield i{color:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdlext-accordion__tab{color:#000;background-color:hsla(0,0%,46%,.2)}.mdlext-light-color-theme .mdlext-accordion__tab:focus{outline-color:hsla(0,0%,43%,.5)}.mdlext-light-color-theme .mdlext-accordion__tab[aria-expanded=true]{background-color:hsla(0,0%,46%,.3)}.mdlext-light-color-theme .mdlext-accordion__tab[aria-selected=true]{background-color:hsla(0,0%,46%,.4)}.mdlext-light-color-theme .mdlext-accordion__tab[disabled]{background-color:hsla(0,0%,46%,.12);color:rgba(0,0,0,.26);pointer-events:none}.mdlext-light-color-theme .mdlext-accordion__tab[disabled]>*{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdlext-accordion__tab:hover:not([disabled]){background-color:hsla(0,0%,46%,.4)}.mdlext-light-color-theme .mdlext-accordion__tab--ripple[aria-selected=true]:before{background:hsla(0,0%,46%,.4)}.mdlext-light-color-theme .mdlext-accordion__tabpanel{color:inherit;background-color:transparent}.mdlext-light-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab{border-top:1px solid hsla(0,0%,46%,.5)}.mdlext-light-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab[aria-selected=true]:after{background-color:hsla(0,0%,40%,.5)}.mdlext-light-color-theme .mdlext-accordion--vertical .mdlext-accordion__tabpanel{border-top:1px solid hsla(0,0%,46%,.5)}.mdlext-light-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab{border-left:1px solid hsla(0,0%,46%,.5)}.mdlext-light-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab[aria-selected=true]:after{background-color:hsla(0,0%,40%,.5)}.mdlext-light-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tabpanel{border-left:1px solid hsla(0,0%,46%,.5)}.mdlext-light-color-theme .mdlext-accordion__panel:first-child>.mdlext-light-color-theme .mdlext-accordion__tab{border-top-color:transparent;border-left-color:transparent}.mdlext-light-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab{background-color:hsla(0,0%,46%,.12);color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab>*{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tabpanel{opacity:.8;filter:blur(1px) grayscale(80%)}.mdlext-dark-color-theme{background-color:#303030;color:#fff}.mdlext-dark-color-theme a{outline-color:inherit}.mdlext-dark-color-theme .mdl-color--primary{background-color:#ffc107!important}.mdlext-dark-color-theme .mdl-color--primary-contrast{background-color:#fff8e1!important}.mdlext-dark-color-theme .mdl-color--primary-dark{background-color:#ffa000!important}.mdlext-dark-color-theme .mdl-color--accent{background-color:#536dfe!important}.mdlext-dark-color-theme .mdl-color--accent-contrast{background-color:#fff!important}.mdlext-dark-color-theme .mdl-color-text--primary{color:#ffc107!important}.mdlext-dark-color-theme .mdl-color-text--primary-contrast{color:#fff8e1!important}.mdlext-dark-color-theme .mdl-color-text--primary-dark{color:#ffa000!important}.mdlext-dark-color-theme .mdl-color-text--accent{color:#536dfe!important}.mdlext-dark-color-theme .mdl-color-text--accent-contrast{color:#fff!important}.mdlext-dark-color-theme a{color:#536dfe}.mdlext-dark-color-theme .mdl-badge[data-badge]:after{background:#536dfe;color:#fff}.mdlext-dark-color-theme .mdl-badge.mdl-badge--no-background[data-badge]:after{color:#536dfe;background:#fff}.mdlext-dark-color-theme .mdl-button{background:transparent;color:#fff}.mdlext-dark-color-theme .mdl-button:hover{background-color:hsla(0,0%,62%,.2)}.mdlext-dark-color-theme .mdl-button:focus:not(:active){background-color:rgba(0,0,0,.12)}.mdlext-dark-color-theme .mdl-button:active{background-color:hsla(0,0%,62%,.4)}.mdlext-dark-color-theme .mdl-button.mdl-button--colored{color:#ffc107}.mdlext-dark-color-theme .mdl-button.mdl-button--colored:focus:not(:active){background-color:rgba(0,0,0,.12)}.mdlext-dark-color-theme .mdl-button--raised{background:hsla(0,0%,62%,.2)}.mdlext-dark-color-theme .mdl-button--raised:active,.mdlext-dark-color-theme .mdl-button--raised:focus:not(:active){background-color:hsla(0,0%,62%,.4)}.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored{background:#ffc107;color:#fff8e1}.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored:active,.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored:focus:not(:active),.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored:hover{background-color:#d39e00}.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored .mdl-ripple{background:#fff8e1}.mdlext-dark-color-theme .mdl-button--fab{background:hsla(0,0%,62%,.2)}.mdlext-dark-color-theme .mdl-button--fab:active,.mdlext-dark-color-theme .mdl-button--fab:focus:not(:active){background-color:hsla(0,0%,62%,.4)}.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored{background:#536dfe;color:#fff}.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored:active,.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored:focus:not(:active),.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored:hover{background-color:#536dfe}.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored .mdl-ripple{background:#fff}.mdlext-dark-color-theme .mdl-button--icon{color:inherit}.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary{color:#ffc107}.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary .mdl-ripple{background:#fff8e1}.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--fab,.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--raised{color:#fff8e1;background-color:#ffc107}.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent{color:#536dfe}.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent .mdl-ripple{background:#fff}.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--fab,.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--raised{color:#fff;background-color:#536dfe}.mdlext-dark-color-theme .mdl-button.mdl-button--disabled.mdl-button--disabled,.mdlext-dark-color-theme .mdl-button[disabled][disabled]{color:hsla(0,0%,100%,.26);background-color:transparent}.mdlext-dark-color-theme .mdl-button--fab.mdl-button--disabled.mdl-button--disabled,.mdlext-dark-color-theme .mdl-button--fab[disabled][disabled],.mdlext-dark-color-theme .mdl-button--raised.mdl-button--disabled.mdl-button--disabled,.mdlext-dark-color-theme .mdl-button--raised[disabled][disabled]{background-color:hsla(0,0%,100%,.12);color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-button--colored.mdl-button--disabled.mdl-button--disabled,.mdlext-dark-color-theme .mdl-button--colored[disabled][disabled]{color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-slider.is-upgraded{background:transparent;color:#536dfe}.mdlext-dark-color-theme .mdl-slider.is-upgraded::-webkit-slider-runnable-track{background:transparent}.mdlext-dark-color-theme .mdl-slider.is-upgraded::-moz-range-track{background:transparent}.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-track{background:none;color:transparent}.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-fill-lower{background:linear-gradient(90deg,transparent,transparent 16px,#536dfe 0,#536dfe 0)}.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-fill-upper{background:linear-gradient(270deg,transparent,transparent 16px,hsla(0,0%,100%,.87) 0,hsla(0,0%,100%,.87) 0)}.mdlext-dark-color-theme .mdl-slider.is-upgraded::-webkit-slider-thumb{background:#536dfe}.mdlext-dark-color-theme .mdl-slider.is-upgraded::-moz-range-thumb{background:#536dfe}.mdlext-dark-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb{box-shadow:0 0 0 10px rgba(83,109,254,.5)}.mdlext-dark-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb{box-shadow:0 0 0 10px rgba(83,109,254,.5)}.mdlext-dark-color-theme .mdl-slider.is-upgraded:active::-webkit-slider-thumb{background:#536dfe}.mdlext-dark-color-theme .mdl-slider.is-upgraded:active::-moz-range-thumb{background:#536dfe}.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-thumb{background:#536dfe}.mdlext-dark-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb{background:radial-gradient(circle closest-side,#536dfe 0,#536dfe 37.5%,rgba(83,109,254,.5) 0,rgba(83,109,254,.5) 100%)}.mdlext-dark-color-theme .mdl-slider.is-upgraded:active::-ms-thumb{background:#536dfe}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb{border-color:#536dfe;background:transparent}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb{border-color:hsla(0,0%,100%,.87);background:transparent}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb{box-shadow:0 0 0 10px hsla(0,0%,100%,.5);background:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb{box-shadow:0 0 0 10px hsla(0,0%,100%,.5);background:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb{border-color:hsla(0,0%,100%,.87)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb{border-color:hsla(0,0%,100%,.87)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-thumb{background:radial-gradient(circle closest-side,transparent 0,transparent 66.67%,hsla(0,0%,100%,.87) 0,hsla(0,0%,100%,.87) 100%)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb{background:radial-gradient(circle closest-side,hsla(0,0%,100%,.5) 0,hsla(0,0%,100%,.5) 25%,hsla(0,0%,100%,.87) 0,hsla(0,0%,100%,.87) 37.5%,hsla(0,0%,100%,.5) 0,hsla(0,0%,100%,.5) 100%)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb{background:radial-gradient(circle closest-side,transparent 0,transparent 77.78%,hsla(0,0%,100%,.87) 0,hsla(0,0%,100%,.87) 100%)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower{background:transparent}.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb{background:hsla(0,0%,100%,.87)}.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-moz-range-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb{background:hsla(0,0%,100%,.87)}.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled+.mdl-slider__background-flex>.mdl-slider__background-lower{background-color:hsla(0,0%,100%,.87)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb{border-color:hsla(0,0%,100%,.87);background:transparent}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb{border-color:hsla(0,0%,100%,.87);background:transparent}.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-ms-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:active::-ms-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:focus::-ms-thumb{background:hsla(0,0%,100%,.87)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb{background:radial-gradient(circle closest-side,transparent 0,transparent 50%,hsla(0,0%,100%,.87) 0,hsla(0,0%,100%,.87) 100%)}.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-ms-fill-lower{background:linear-gradient(90deg,transparent,transparent 25px,hsla(0,0%,100%,.87) 0,hsla(0,0%,100%,.87) 0)}.mdlext-dark-color-theme .mdl-slider__background-flex{background:transparent}.mdlext-dark-color-theme .mdl-slider__background-lower{background:#536dfe}.mdlext-dark-color-theme .mdl-slider__background-upper{background:hsla(0,0%,100%,.87)}.mdlext-dark-color-theme .mdl-textfield__input{border-bottom-color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-textfield.is-invalid .mdl-textfield__input{border-color:#ff1744}.mdlext-dark-color-theme .mdl-textfield.is-disabled .mdl-textfield__input,.mdlext-dark-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__input{background-color:transparent;border-bottom-color:hsla(0,0%,100%,.12);color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-textfield__label{color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdl-textfield__label:after{background-color:#536dfe}.mdlext-dark-color-theme .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label,.mdlext-dark-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__label{color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-dark-color-theme .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,.mdlext-dark-color-theme .mdl-textfield--floating-label.is-focused .mdl-textfield__label{color:#536dfe}.mdlext-dark-color-theme .mdl-textfield--floating-label.is-invalid .mdl-textfield__label{color:#ff1744}.mdlext-dark-color-theme .mdl-textfield.is-invalid .mdl-textfield__label:after{background-color:#ff1744}.mdlext-dark-color-theme .mdl-textfield__error{color:#ff1744}.mdlext-dark-color-theme .mdl-checkbox__box-outline{border-color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdl-checkbox.is-checked .mdl-checkbox__box-outline{border-color:#536dfe}.mdlext-dark-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__box-outline,.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline{border-color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-checkbox__focus-helper{background-color:transparent}.mdlext-dark-color-theme .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper{box-shadow:0 0 0 8px rgba(83,109,254,.26);background-color:rgba(83,109,254,.26)}.mdlext-dark-color-theme .mdl-checkbox__tick-outline{background:transparent}.mdlext-dark-color-theme .mdl-checkbox.is-checked .mdl-checkbox__tick-outline{background-color:#536dfe}.mdlext-dark-color-theme .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline,.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline{background-color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__label,.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__label{color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-checkbox__ripple-container .mdl-ripple{background:#536dfe}.mdlext-dark-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple,.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple{background:transparent}.mdlext-dark-color-theme .mdl-radio__outer-circle{border-color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdl-radio.is-checked .mdl-radio__outer-circle{border-color:#536dfe}.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__outer-circle,.mdlext-dark-color-theme .mdl-radio__outer-circle fieldset[disabled] .mdl-radio{border-color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-radio__inner-circle{background:#536dfe}.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__inner-circle,.mdlext-dark-color-theme fieldset[disabled] .mdl-radio .mdl-radio__inner-circle{background:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__label,.mdlext-dark-color-theme fieldset[disabled] .mdl-radio .mdl-radio__label{color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-radio__ripple-container .mdl-ripple{background:#536dfe}.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple,.mdlext-dark-color-theme fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple{background:transparent}.mdlext-dark-color-theme .mdl-icon-toggle__label{color:#616161}.mdlext-dark-color-theme .mdl-icon-toggle.is-checked .mdl-icon-toggle__label{color:#536dfe}.mdlext-dark-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label{color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdl-icon-toggle.is-focused .mdl-icon-toggle__label{background-color:rgba(0,0,0,.12)}.mdlext-dark-color-theme .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label{background-color:rgba(83,109,254,.26)}.mdlext-dark-color-theme .mdl-icon-toggle__ripple-container .mdl-ripple{background:#616161}.mdlext-dark-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple{background:transparent}.mdlext-dark-color-theme .mdl-switch__track{background:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-switch.is-checked .mdl-switch__track{background:rgba(83,109,254,.5)}.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__track,.mdlext-dark-color-theme .mdl-switch__track fieldset[disabled] .mdl-switch{background:hsla(0,0%,100%,.12)}.mdlext-dark-color-theme .mdl-switch__thumb{background:#fafafa}.mdlext-dark-color-theme .mdl-switch.is-checked .mdl-switch__thumb{background:#536dfe}.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__thumb,.mdlext-dark-color-theme .mdl-switch__thumb fieldset[disabled] .mdl-switch{background:#fafafa}.mdlext-dark-color-theme .mdl-switch__focus-helper{background-color:transparent}.mdlext-dark-color-theme .mdl-switch.is-focused .mdl-switch__focus-helper{background-color:rgba(0,0,0,.1)}.mdlext-dark-color-theme .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper{box-shadow:0 0 0 20px rgba(83,109,254,.26);background-color:rgba(83,109,254,.26)}.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__label,.mdlext-dark-color-theme .mdl-switch__label fieldset[disabled] .mdl-switch{color:#fafafa}.mdlext-dark-color-theme .mdl-switch__ripple-container .mdl-ripple{background:#536dfe}.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple,.mdlext-dark-color-theme fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple{background:transparent}.mdlext-dark-color-theme .mdl-data-table{border-color:hsla(0,0%,100%,.12);background-color:#303030}.mdlext-dark-color-theme .mdl-data-table tbody tr.is-selected{background-color:#424242}.mdlext-dark-color-theme .mdl-data-table tbody tr:hover{background-color:#212121}.mdlext-dark-color-theme .mdl-data-table th,.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending,.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending{color:hsla(0,0%,100%,.87)}.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover:before,.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending:hover:before{color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-menu__outline{background:#000}.mdlext-dark-color-theme .mdl-menu__item{color:hsla(0,0%,100%,.87);background-color:transparent;outline-color:#616161}.mdlext-dark-color-theme .mdl-menu__item--full-bleed-divider{border-bottom-color:hsla(0,0%,100%,.2)}.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled],.mdlext-dark-color-theme .mdl-menu__item[disabled]{color:#9e9e9e;background-color:transparent}.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled]:focus,.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled]:hover,.mdlext-dark-color-theme .mdl-menu__item[disabled]:focus,.mdlext-dark-color-theme .mdl-menu__item[disabled]:hover{background-color:transparent}.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled] .mdl-ripple,.mdlext-dark-color-theme .mdl-menu__item[disabled] .mdl-ripple{background:transparent}.mdlext-dark-color-theme .mdl-menu__item:focus,.mdlext-dark-color-theme .mdl-menu__item:hover{background-color:#212121}.mdlext-dark-color-theme .mdl-menu__item:active{background-color:#424242}.mdlext-dark-color-theme .mdl-card{background:#303030}.mdlext-dark-color-theme .mdl-card__media{background-color:#536dfe}.mdlext-dark-color-theme .mdl-card__title{color:#fff}.mdlext-dark-color-theme .mdl-card__title.mdl-card--border{border-bottom-color:rgba(0,0,0,.1)}.mdlext-dark-color-theme .mdl-card__title-text{color:inherit}.mdlext-dark-color-theme .mdl-card__subtitle-text{color:rgba(0,0,0,.7)}.mdlext-dark-color-theme .mdl-card__supporting-text{color:hsla(0,0%,100%,.7)}.mdlext-dark-color-theme .mdl-card__actions{background-color:hsla(0,0%,100%,0)}.mdlext-dark-color-theme .mdl-card__actions.mdl-card--border{border-top-color:rgba(0,0,0,.1)}.mdlext-dark-color-theme .mdlext-selectfield.is-disabled:after{color:hsla(0,0%,100%,.12);content:"";width:0;height:0;font-size:inherit;line-height:inherit;border-top:.5em solid hsla(0,0%,100%,.12);border-top-width:.5em;border-top-style:solid;border-top-color:hsla(0,0%,100%,.12);border-left:.35em solid transparent;border-right:.35em solid transparent}.mdlext-dark-color-theme .mdlext-selectfield__select{border-bottom-color:hsla(0,0%,100%,.26);color:inherit}.mdlext-dark-color-theme .mdlext-selectfield__select option{background-color:#303030;color:#fff}.mdlext-dark-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__select{border-color:#ff1744}.mdlext-dark-color-theme .mdlext-selectfield.is-disabled .mdlext-selectfield__select,.mdlext-dark-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select{background-color:transparent;border-bottom-color:hsla(0,0%,100%,.12);color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdlext-selectfield__label{color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-dark-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label{color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label{color:#536dfe}.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label{color:#ff1744}.mdlext-dark-color-theme .mdlext-selectfield__label:after{background-color:#536dfe}.mdlext-dark-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__label:after{background-color:#ff1744}.mdlext-dark-color-theme .mdlext-selectfield__error{color:#ff1744}.mdlext-dark-color-theme .mdlext-menu,.mdlext-menu.mdlext-dark-color-theme{background:#000}.mdlext-dark-color-theme .mdlext-menu__item{color:hsla(0,0%,100%,.87);background-color:#000}.mdlext-dark-color-theme .mdlext-menu__item:active,.mdlext-dark-color-theme .mdlext-menu__item[aria-selected=true]{background-color:#424242}.mdlext-dark-color-theme .mdlext-menu__item:hover:not([disabled]){background-color:#212121}.mdlext-dark-color-theme .mdlext-menu__item:focus{outline-color:#616161;background-color:#212121}.mdlext-dark-color-theme .mdlext-menu__item[disabled],.mdlext-dark-color-theme .mdlext-menu__item[disabled]>*{color:#9e9e9e}.mdlext-dark-color-theme .mdlext-menu__item-separator{border-bottom:1px solid hsla(0,0%,100%,.2)}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select{background-color:rgba(48,48,48,.1);border-color:hsla(0,0%,100%,.26);color:inherit}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:disabled,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:disabled,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:disabled,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:disabled{color:hsla(0,0%,100%,.26);background-color:rgba(48,48,48,.1);border-color:hsla(0,0%,100%,.12)}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:focus,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:focus,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:focus,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:focus{background-color:hsla(0,0%,9%,.1);border-color:#536dfe}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select{color:inherit;border-color:#ff1744;background-color:rgba(255,23,68,.1)}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input:focus,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select:focus,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input:focus,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select:focus{border-color:#e3002c;background-color:rgba(255,23,68,.1)}.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled:after,.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield:after{color:hsla(0,0%,100%,.26);content:"";width:0;height:0;font-size:inherit;line-height:inherit;border-top:.5em solid hsla(0,0%,100%,.26);border-top-width:.5em;border-top-style:solid;border-top-color:hsla(0,0%,100%,.26);border-left:.35em solid transparent;border-right:.35em solid transparent}.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__input,.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select{color:hsla(0,0%,100%,.26);background-color:rgba(48,48,48,.1);border-color:hsla(0,0%,100%,.12)}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label{color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label{color:#536dfe}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label{color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label{color:#ff1744}.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-selectfield .mdl-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__label{color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled .mdl-button,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled i,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled .mdl-button,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled i,.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-button,.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield i,.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdl-button,.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield i{color:hsla(0,0%,100%,.12)}.mdlext-dark-color-theme .mdlext-accordion__tab{color:#fff;background-color:#000}.mdlext-dark-color-theme .mdlext-accordion__tab:focus{outline-color:#a8a8a8}.mdlext-dark-color-theme .mdlext-accordion__tab[aria-expanded=true]{background-color:rgba(0,0,0,.9)}.mdlext-dark-color-theme .mdlext-accordion__tab[aria-selected=true]{background-color:rgba(0,0,0,.6)}.mdlext-dark-color-theme .mdlext-accordion__tab[disabled]{background-color:rgba(0,0,0,.4);color:hsla(0,0%,100%,.5);pointer-events:none}.mdlext-dark-color-theme .mdlext-accordion__tab[disabled]>*{color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdlext-accordion__tab:hover:not([disabled]){background-color:rgba(0,0,0,.5)}.mdlext-dark-color-theme .mdlext-accordion__tab--ripple[aria-selected=true]:before{background:rgba(0,0,0,.3)}.mdlext-dark-color-theme .mdlext-accordion__tabpanel{color:inherit;background-color:transparent}.mdlext-dark-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab{border-top:1px solid #424242}.mdlext-dark-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab[aria-selected=true]:after{background-color:#a8a8a8}.mdlext-dark-color-theme .mdlext-accordion--vertical .mdlext-accordion__tabpanel{border-top:1px solid #424242}.mdlext-dark-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab{border-left:1px solid #424242}.mdlext-dark-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab[aria-selected=true]:after{background-color:#a8a8a8}.mdlext-dark-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tabpanel{border-left:1px solid #424242}.mdlext-dark-color-theme .mdlext-accordion__panel:first-child>.mdlext-dark-color-theme .mdlext-accordion__tab{border-top-color:transparent;border-left-color:transparent}.mdlext-dark-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab{background-color:rgba(0,0,0,.4);color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab>*{color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tabpanel{opacity:.8;filter:blur(1px) grayscale(80%)}
+/*# sourceMappingURL=mdl-ext-eqjs.min.css.map*/
\ No newline at end of file
diff --git a/node_modules/mdl-ext/lib/mdl-ext-eqjs.min.css.map b/node_modules/mdl-ext/lib/mdl-ext-eqjs.min.css.map
new file mode 100644
index 0000000..ecfade4
--- /dev/null
+++ b/node_modules/mdl-ext/lib/mdl-ext-eqjs.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack:///src/aria-expanded-toggle/_aria-expanded-toggle.scss","webpack:///webpack:///src/_mixins.scss","webpack:///webpack:///src/mdl-ext-eqjs-build.scss","webpack:///webpack:///src/sticky-header/_sticky-header.scss","webpack:///webpack:///src/dialog/dialog.scss","webpack:///webpack:///src/grid/_grid-eqjs.scss","webpack:///webpack:///~/eq.js/sass/_eq.scss","webpack:///webpack:///src/lightboard/_lightboard.scss","webpack:///webpack:///~/material-design-lite/src/_mixins.scss","webpack:///webpack:///src/lightboard/_lightboard-eqjs.scss","webpack:///webpack:///src/lightbox/_lightbox.scss","webpack:///webpack:///src/carousel/_carousel.scss","webpack:///webpack:///src/selectfield/_selectfield.scss","webpack:///webpack:///src/menu-button/_menu-button.scss","webpack:///webpack:///src/bordered-fields/_bordered-fields.scss","webpack:///webpack:///src/collapsible/_collapsible.scss","webpack:///webpack:///src/accordion/_accordion.scss","webpack:///webpack:///src/color-themes/_light-color-theme.scss","webpack:///webpack:///src/color-themes/_dark-color-theme.scss"],"names":[],"mappings":"AAwBA,iCCiDE,oBACA,oBACA,mBACA,eACA,qBACA,UACA,WACA,cACA,oBACA,sBACA,iBACA,mBACA,cACA,sBAGA,mCACA,qCAGA,kCAGA,kCAGA,6BC/ED,uCDkFG,YACA,cC9EH,4DDmFK,YACA,cC/EL,gCD2CC,2BACA,oBACA,mBACA,eACA,qBACA,UACA,WACA,cACA,oBACA,sBACA,iBACA,mBACA,cACA,sBAGA,mCACA,qCAGA,kCAGA,kCAGA,6BC/CD,sCDkDG,sBACA,cC9CH,2DDmDK,sBACA,cExFN,8BACE,kBACA,iBACA,iEACA,2BAEA,+CACE,8FACD,gFAKC,kBAEF,6EACE,kBACD,mIAKD,iCAFF,yLAKI,mBALJ,mLAQI,kBC3BJ,qBACE,kBACA,SACA,UACA,UACA,6BAEA,2BACE,8CACD,6CAEC,8CAFD,qCAEC,8CAEQ,qCACR,8CACD,kCAID,GAAK,2BFgFJ,CE9EH,8BACE,GAAK,UFmFJ,CGlGH,aACE,iCACA,0CACA,cACA,2CAEA,qCACE,UAPJ,0BAWI,sBAXJ,+BAeI,gDAfJ,kCAmBI,uEAnBJ,kCAuBI,4CAGE,mCACF,0EAGyB,mDACzB,SA/BJ,mCAqCM,yBACD,mCADC,yBACD,mCADC,yBACD,mCADC,yBACD,mCADC,yBACD,mCADC,yBACD,mCADC,yBACD,mCADC,yBACD,mCADC,yBADE,oCACF,2BADE,oCACF,2BADE,oCACF,2BACD,oBCmCD,aACA,6DACD,wCDDC,YCjEG,qDDoED,kCAjCJ,CAoBF,iEAkBM,uBAKI,+FACF,yBAxBR,+FAwBQ,yBAxBR,+FAwBQ,yBAxBR,+FAwBQ,yBACD,+FADC,yBAxBR,+FAwBQ,yBACD,+FADC,yBACD,+FADC,yBACD,+FADC,yBADE,iGACF,2BACD,iGADC,2BACD,iGADC,2BAME,uJAlDR,uBAkDQ,uJAlDR,uBAkDQ,uJAlDR,uBA6DK,w1CA7DL,wBA6DK,gKAvDL,4BA4DQ,gKA5DR,4BAcF,gKAdE,4BC3CI,gED8GA,UA8BD,6EA3BG,mBAlEN,CA8DE,uMA9DF,UA2EO,uMA3EP,UA8DE,uMA9DF,UAmFO,wwDAnFP,WA8DE,gNAxDF,gBAkFU,gNAlFV,gBAqFO,gNArFP,gBAIF,yCAwFI,YAEI,sDACF,iCA/GJ,CAoBF,mEAgGM,uBAKI,kGACF,yBACD,kGADC,yBACD,kGADC,yBADE,kGACF,yBACD,kGADC,yBADE,kGACF,yBADE,kGACF,yBADE,kGACF,yBACD,kGADC,yBADE,oGACF,2BADE,oGACF,2BADE,oGACF,2BACD,2JA3HL,yBAoBF,2JApBE,uBAoBF,2JApBE,yBAoBF,2JApBE,uBAoBF,2JApBE,yBAoBF,2JApBE,uBAmIK,2JAnIL,yBAwIQ,gxBAxIR,wBAoBF,oKAdE,8BAcF,oKAdE,4BAcF,oKAdE,8BAcF,oKAdE,4BA6IK,oKA7IL,8BA0IQ,oKA1IR,4BA6IK,oKA7IL,8BA6IK,iEAID,UADF,8EAII,kBAhJN,CAkJK,2MAlJL,YAyJO,2MAzJP,UA4IE,2MA5IF,YAyJO,2MAzJP,UA4IE,2MA5IF,YAsJU,2MAtJV,UAyJO,2MAzJP,YA4IE,ggCA5IF,WAiKO,oNA3JP,kBAmKO,oNAnKP,gBAsIE,oNAtIF,kBAmKO,oNAnKP,gBAsIE,oNAtIF,kBAmKO,oNAnKP,gBAsIE,oNAtIF,kBCrDI,0CD+NF,YAEI,uDACF,uCA7LJ,CAoBF,qEA8KM,uBA9KN,qGAoLQ,yBACD,qGADC,yBACD,qGADC,yBACD,qGADC,yBADE,qGACF,yBACD,qGADC,yBADE,qGACF,yBADE,qGACF,yBADE,qGACF,yBACD,uGADC,2BADE,uGACF,2BADE,uGACF,2BACD,+JAzML,4BA8MQ,+JA9MR,6BAoBF,+JApBE,uBAoBF,+JApBE,6BAoBF,+JApBE,6BAoBF,+JApBE,uBAiNK,+JAjNL,6BAiNK,+JAjNL,6BA8MQ,+JA9MR,uBA8MQ,kKA9MR,6BAiNK,kKAjNL,6BA8MQ,kKA9MR,wBAoBF,wKAdE,iCAcF,wKAdE,kCAcF,wKAdE,4BAcF,wKAdE,kCAcF,wKAdE,kCAmNK,wKAnNL,4BAgNQ,wKAhNR,kCAgNQ,wKAhNR,kCAgNQ,wKAhNR,4BAgNQ,2KAhNR,kCAcF,2KAdE,kCAmNK,kEAID,UAsBD,+EAnBG,wBAtNN,CAwNK,+MAxNL,eA+NO,+MA/NP,gBA4NU,+MA5NV,UA4NU,+MA5NV,gBAkNE,+MAlNF,gBA4NU,+MA5NV,UA+NO,+MA/NP,gBA4NU,+MA5NV,gBA+NO,+MA/NP,UA4NU,kNA5NV,gBA4NU,kNA5NV,gBA+NO,kNA/NP,WA+NO,wNAzNP,qBA4ME,wNA5MF,sBA8NU,wNA9NV,gBAiOO,wNAjOP,sBA4ME,wNA5MF,sBA8NU,wNA9NV,gBA4ME,wNA5MF,sBA8NU,wNA9NV,sBAiOO,wNAjOP,gBA4ME,2NA5MF,sBAiOO,2NAjOP,sBC6BE,YAEE,uBC1FN,qBACE,gBAGF,mBAEE,cACA,UACA,iCACA,0CACA,2CAEA,mIAPA,sBAYC,6CAGC,yBACA,yBACA,kBACA,gDACA,kBACA,cACA,gBAtBJ,oDA2BM,WACA,cACA,iBAdJ,0JAmBI,qBACA,yBACA,qCAEA,2LACE,qBACA,oCACD,mDAGD,oBACA,sBACD,iEAEC,yBAhDN,4EAmDQ,qBACA,oCApDR,mHAyDM,qBACA,cACA,gBACA,kBACA,MACA,OACA,QACA,SAqDD,+HAlDG,oBACA,sBACD,2IAEC,mBACD,iIAEC,cACA,kBACA,MACA,OACA,QACA,SAEA,yIACE,kBACA,MACA,OACA,QACA,SACA,YACA,eACA,gBACA,eACA,kBA3FV,uJCdI,8CAgIF,eACA,gBACA,cACA,+BDpBQ,kBACA,YACA,mBACA,gBACA,eACA,WACA,kBACA,uBACA,cAzGV,qJAiHU,qBACA,oCAQV,mBACE,aAkBD,6CAfG,WACA,+BALJ,qFAQM,WAGJ,iDACE,UAMD,2EAHG,SACA,UElKN,0BH4FI,aACA,qHAnEE,2DGfF,aAXJ,qFAcM,WACA,+BAKD,6HAFG,WAGJ,yFACE,UAEA,mHACE,SACA,UHAF,qDGOF,aAjCJ,+EAoCM,WACA,+BAKD,uHAFG,WHdF,mFGkBA,UAMD,6GAHG,SACA,UHtBF,2DG6BF,aAEA,qFACE,WACA,+BAKD,6HAFG,YHpCF,yFGwCA,UAMD,mHAHG,SACA,gBH5CF,oDGmDF,aAEA,8EACE,WACA,+BAjFN,sHAoFQ,YACD,kFAGD,UAMD,4GAHG,SACA,gBHgBJ,YACE,aACA,0CIjGN,iBACE,qFACA,eACA,kBACA,WACA,eACA,cACA,SACA,gBACA,sBAEA,UACA,cAZF,yHAUE,sBAVF,0CAwBI,kBACA,MACA,OACA,iCACA,4CA5BJ,0EA+BM,kCACA,cACA,gBACA,cACA,sBACA,wBACA,4BAMD,wBAID,SACA,UACA,kBAjDJ,4BAoDM,WACA,eACA,YACA,SACA,UACD,mCF5DD,8CAgIF,eACA,gBACA,cACA,iBEnEI,cACA,kBACA,SACA,OACA,QACA,eACA,YACA,eACA,cACA,YACA,qCACA,wBACA,oBACA,2BA1EN,oEA6EQ,oBA7ER,4CAiFU,gBAjFV,wFAqFU,wBACD,iCAKL,WACA,UA5FJ,wBA+FI,iCACA,oDACA,yCACA,qCAEA,mDACE,kBACA,gBACA,UACA,YACA,WAEF,4BACE,iCA5GN,uDAiHI,eACA,SACA,OChHJ,mBACE,gBAGF,iBAIE,gBAEA,WACA,cACA,mBACA,YACA,6BAGF,yCAZE,sBACA,SACA,UAEA,YAQF,wBAEE,qBACA,kBACA,UAIA,iCAuFD,yGA9EK,qBACA,qCAIJ,+FAEE,WACA,WACA,cACA,YACA,SACA,OACA,kBACA,mBACA,4EACA,yCAIF,0BACE,qBAGF,+BACE,sBACA,kBACA,YACA,SACA,UAEA,mCACE,sBACA,gBACD,0CAGC,oEHmDJ,eACA,gBACA,cACA,iBGnDI,cACA,kBACA,SACA,OACA,mBACA,gBACA,eACA,WACA,kBACA,uBACA,cAGA,gDAIE,qBACA,qCA3ER,kEAiFI,qBACA,cACA,gBACA,kBACA,MACA,OACA,QACA,SACA,UAzFJ,8EA4FM,mBACD,oBCtGH,sBACA,kBACA,eACA,qBACA,YACA,eACA,SACA,eAGE,gCACA,YACA,kBAbJ,0BXnBE,8BACA,sBACA,uBACA,yBAKE,oCACA,qCW8BA,kBACA,WACA,QACA,2BACA,oBAIJ,gEXpDE,WACA,QACA,SACA,kBACA,oBWgDF,sCAEI,4DXhDF,sBACA,uBACA,iCAKE,oCACA,qCW8CJ,iCACE,iBAIF,gCACE,WACD,gCAIC,gBACA,eACA,WACD,4BAMC,sBACA,SACA,gBACA,wBACA,qBACA,oBACA,gBACA,kBACA,iBACA,aACA,gBAGA,eACA,uCACA,oCACA,WACA,wCACA,cACA,SACA,gBACA,gBACA,cAuCD,2CAnCG,kBACA,uBACD,6CAIC,yBACA,cApCJ,wCAwCI,aAG6B,2DAC7B,aACD,2DAGC,qBACA,gBAGqC,+HAErC,yCACA,sBACA,6BAGF,mCACE,sBACA,sBACA,yBAKJ,2BACE,sBACA,sBACA,eACA,SACA,SACA,OACA,QACA,oBACA,kBACA,cACA,WACA,gBACA,mBACA,gBAEA,uHAEE,kBAIF,+DJ+GA,wBACA,mDI5GoD,+EAClD,gBACD,yIAIC,sBAG6C,0OAG7C,cACA,eACA,QACA,mBAGF,sVAGE,UACD,0EAGC,cACA,eAIF,iCACE,yBACA,YACA,WACA,WACA,SACA,0CJwEF,mDIrEE,kBACA,WAGF,gEACE,OACA,mBACA,WACD,gEAGC,yBAKJ,2BACE,cACA,eACA,kBACA,eACA,kBACA,cAKD,0DAFG,mBACD,uCAKD,qBACA,kBACA,yCJoCA,mDI5BA,eAEA,0IAME,gBAEF,wEACE,SC7OJ,oBACE,oELuJA,eACA,gBACA,cACA,iBKxJA,oBACA,kBACA,YACA,eACA,iCACA,yCACA,+CATF,sBAYI,SACA,kBACD,iCAGC,eAGA,kFACA,iBACD,6BAKD,mBACA,gBACA,uBACA,gBAGF,gCAEE,sBACA,SACA,UACA,gBACA,iCACD,aAGC,kBACA,gBACA,aACA,gBACA,mHAEA,+CACA,gDACA,UACA,gBACA,gBAXF,mBAcI,oBACA,kBAGF,qBZ1DA,SACA,mBACA,WACA,YACA,gBACA,UACA,kBACA,UYqDE,oBACD,mBLwCD,eACA,gBACA,iBACA,iBKvCE,sBACA,sBACA,kBACA,sBACA,yCACA,0EACA,qBACA,eACA,mBACA,qFACA,gBACA,gBAbF,uCAgBI,yBAIF,8CACE,gBACA,kBACA,gBACA,SACA,QACA,2BACA,oBAGF,yCACE,sBA/BJ,yBAmCI,oBACA,kBACA,sBACA,sBACD,qCAGC,SACD,6BAGC,cACA,6BACA,YACA,oBAjDJ,+BAoDM,cAIJ,4BACE,mBACA,gBACA,uBA3DJ,qBA+DI,SACA,kBAGA,gCACA,eApEJ,iFAwEI,iBAIJ,6BACE,SACA,UACA,wCCjJF,kDACE,sBACD,mFAKC,UACA,gBA8DD,0QA1DG,YACA,oCACA,iCACA,kBACA,qBACA,eACA,gBACA,cAtBN,8SAyBQ,sBACA,oCACA,6BACD,kSASC,mCACA,qBASJ,2IACE,8BAhDN,sTA8DQ,cACA,qBACA,qCAJF,8UAQI,qBACA,qCAMR,kDACE,SACA,WACD,mIAIC,iCbrGF,QACA,SACA,kBACA,oBACA,sCACA,sBACA,uBACA,iCAKE,oCACA,qCaMJ,2KAyFI,sBACA,oCACA,6BACD,onBAWK,kBAGJ,wQAEE,sBACA,eACA,gBACA,iBACA,SACA,WAPF,gSAWI,uCACA,4BAUF,4vFAEE,cACA,eACA,gBACA,SACA,YACA,mBACD,o9BAOC,sBAMF,o8BAEE,cACD,oKAMH,sBACD,wpBASK,kBACA,WAEE,wTACF,WACD,0XAKC,SAlLR,41BAwLQ,kBAMM,w1BAEN,UACD,qMAIC,mBArMR,0XAyMQ,UACA,UAOH,ggBAOC,sBACA,oBACD,oBC/NH,eAGF,yEAJE,sBAIF,qEdQE,SACA,mBACA,WACA,YACA,gBACA,UACA,kBACA,UcTE,oBACD,+BduCD,oBACA,oBACA,mBACA,gBACA,qBACA,UACA,WACA,cACA,oBACA,sBACA,iBACA,mBACA,cACA,sBAGA,mCACA,qCAGA,kCAGA,kCAGA,6BCwiED,qCDriEG,YACA,cCyiEH,0DDpiEK,YACA,cenFN,mCf+CE,2BACA,oBACA,mBACA,gBACA,qBACA,UACA,WACA,cACA,oBACA,sBACA,iBACA,mBACA,cACA,sBAGA,mCACA,qCAGA,kCAGA,kCAGA,6BevED,yCf0EG,sBACA,iBCykEH,8DDpkEK,sBACA,iBe/EN,kBAEE,SACA,UACA,gBACA,iCALF,sCACE,sBAUA,yBAKE,sCAGF,gDAPE,sBACA,kBACA,gBACA,iCAIF,uBR7BE,8CAgEF,eACA,gBACA,cACA,qBQnCE,gBACA,gBAGA,SACA,UACA,eACA,gBAEA,yCACA,+CACA,qFACA,WACA,mCACA,eAiED,6BA7DG,oBACA,qBACA,kBACD,2CAGC,mCA3BJ,2CA+BI,mCACD,iCAGC,oCACA,sBACA,oBAKD,mCAFG,sBAxCN,6CA6CI,mCACD,yBAGC,SACA,UAGF,gCACE,iBACA,kBACA,mBACA,gBACA,uBACD,oCAGC,eAIA,0DACE,WACA,kBACA,QACA,SACA,8BACA,UACA,mBACA,mCACA,yBAEF,6EAEE,yFACD,4BAKH,sBACA,SACA,cACA,cACA,6BACA,cACA,cACA,gCAEA,oCf5GF,SACA,mBACA,WACA,YACA,gBACA,UACA,kBACA,Ue8GA,4BACE,gDACA,sCA6DD,qDA1DG,gBACA,gDANJ,mDAUI,YACA,uCACA,iBACA,kBAbJ,6EAgBM,kBACA,SACA,OACA,WACA,WACA,cACA,YACA,mCACA,4EACA,yCACD,qDAGC,iBAGA,gEACA,eAjCN,qHAqCM,iBArCN,sFA0CQ,SACA,WACD,wDAMH,uCAlDJ,mEAqDM,oBACA,2DALJ,2EAQM,oBACA,wDACA,oBAYN,uDACE,eACA,WACD,8FAGC,WARJ,qDAYI,gEACA,WACA,mBACA,wCAfJ,+EAkBM,kBACA,MACA,QACA,YACA,UACA,cACA,YACA,mCAzBN,uDAkCM,yCACD,uHAIC,mBACA,uCAxCN,8DA4CM,yCACA,mBAlCJ,wFAuCM,UACA,UAnDR,0DAyDI,wCADF,qEAII,oBACA,2DAMD,6EAHG,oBACA,wDACD,4DAUL,6BACA,8BAIA,mFACE,gCAQJ,8BACE,oBAFJ,mDAKI,oCACA,sBANJ,qDASM,sBATN,wDAaI,WACA,gCACD,uCAKD,GACE,mBACA,UAEF,IACE,oBACA,UAEF,GACE,UACA,oBdqoED,CcrnEH,4CACE,GAAK,oBACL,IAAM,uBACN,IAAM,sBACN,GAAO,oBdmoEN,CchoEH,4CACE,GAAK,oBACL,IAAM,sBACN,IAAM,uBACN,GAAO,oBd8oEN,Cc/nEH,4CACE,GAAK,oBACL,IAAM,uBACN,IAAM,sBACN,GAAO,oBd6oEN,Cc1oEH,4CACE,GAAK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","file":"mdl-ext-eqjs.min.css","sourcesContent":["@charset \"UTF-8\";\n\n/**\n * @license\n * Copyright 2016-2017 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n@import \"../mixins\";\n\n.mdlext-aria-expanded-plus-minus {\n  @include mdlext-aria-expanded-toggle($font-family: inherit);\n}\n\n.mdlext-aria-expanded-more-less {\n  @include mdlext-aria-expanded-toggle($icon: 'expand_more', $icon-expanded: 'expand_less');\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/aria-expanded-toggle/_aria-expanded-toggle.scss","@import \"functions\";\n\n/// Triangle helper mixin\n/// Modified from: http://blustemy.io/drawing-pure-css-arrows-with-mixins/\n///                https://css-tricks.com/snippets/sass/css-triangle-mixin/\n/// @param {Direction} $direction - Triangle direction, either `top`, `right`, `bottom` or `left`\n/// @param {Color} $color [currentcolor] - Triangle color\n/// @param {Length} $size [1em] - Triangle size\n@mixin mdlext-arrow($direction: bottom, $base-width: 15px, $length: 10px, $color: inherit, $font-size: inherit) {\n  content: '';\n  width: 0;\n  height: 0;\n  font-size: $font-size;\n  line-height: $font-size;\n  border-#{mdlext-opposite-direction($direction)}: $length solid $color;\n  border-#{mdlext-opposite-direction($direction)}-width: $length;\n  border-#{mdlext-opposite-direction($direction)}-style: solid;\n  border-#{mdlext-opposite-direction($direction)}-color: $color;\n\n  $perpendicular-borders: ($base-width / 2) solid transparent;\n\n  @if $direction == top or $direction == bottom {\n    border-left: $perpendicular-borders;\n    border-right: $perpendicular-borders;\n  }\n  @else if $direction == right or $direction == left {\n    border-bottom: $perpendicular-borders;\n    border-top: $perpendicular-borders;\n  }\n}\n\n/// Hide element while making it readable for screen readers\n/// Copied from HTML5Boilerplate:\n/// https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L119-L133\n@mixin mdlext-visually-hidden() {\n  border: 0;\n  clip: rect(0 0 0 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n\n/// Toggle for aria-expanded attribute\n///\n/// @author Leif Olsen\n/// @param {Font} $font-family ['Material Icons'] - Font family\n/// @param {Length} $font-size [24px] - Font size\n/// @param {string} $icon ['+'] - icon to display when 'aria-expanded=\"false\"'\n/// @param {string} $icon-expanded ['-'] - icon to display when 'aria-expanded=\"true\"'\n/// @link https://github.com/google/material-design-icons Modified from '.material-icons' class\n/// @param {Length} $icon-offset [0] - Icon offset\n///\n/// @example - +/- toggle\n///   .plus-minus {\n///     @include mdlext-aria-expanded-toggle($font-family: inherit, $font-size: inherit);\n///   }\n///   <div aria-expanded=\"false\">\n///     <i class=\"plus-minus\"></i>\n///   </div>\n///\n/// @example - Material Icons, expand-more/expand_less\n///   .more-less {\n///     @include mdlext-aria-expanded-toggle($content: 'expand_more', $content-expanded: 'expand_less');\n///   }\n///   <div aria-expanded=\"true\">\n///     <i class=\"more-less\"></i>\n///   </div>\n\n@mixin mdlext-aria-expanded-toggle($font-family: 'Material Icons', $font-size: 24px, $icon: '+', $icon-expanded: '-', $icon-offset: 0) {\n  font-family: $font-family;\n  font-weight: inherit;\n  font-style: inherit;\n  font-size: $font-size;  // Preferred icon size\n  display: inline-block;\n  width: 1em;\n  height: 1em;\n  line-height: 1;\n  text-transform: none;\n  letter-spacing: normal;\n  word-wrap: normal;\n  white-space: nowrap;\n  direction: ltr;\n  vertical-align: middle;\n\n  // Support for all WebKit browsers.\n  -webkit-font-smoothing: antialiased;\n  -webkit-font-feature-settings: 'liga';\n\n  // Support for Safari and Chrome.\n  text-rendering: optimizeLegibility;\n\n  // Support for Firefox.\n  -moz-osx-font-smoothing: grayscale;\n\n  // Support for IE.\n  font-feature-settings: 'liga';\n\n  &::after {\n    content: $icon;\n    margin-left: $icon-offset;\n  }\n\n  [aria-expanded='true'] > & {\n    &::after {\n      content: $icon-expanded;\n      margin-left: $icon-offset;\n    }\n  }\n}\n\n\n/// Keyframe mixin\n/// Modified from: http://sassbreak.com/nested-keyframe-rules-sass/\n/// Modified from: http://sassbreak.com/sass-tools-and-snippets/\n///\n/// @example\n///\n/// .some-element {\n///   animation: 10s linear infinite;\n///\n///   @include mdlext-animation-keyframes {\n///     from {\n///       background-position: 0% 0%;\n///     }\n///     to {\n///       background-position: 114.2857% 0%;\n///     }\n///   }\n/// }\n\n@mixin mdlext-animation-keyframes {\n  $animation-name: unique-id();\n  animation-name: $animation-name;\n\n  @keyframes #{$animation-name} {\n    @content;\n  }\n}\n\n\n/// Flexible title mixin\n/// A flexible title consists of three regions, left, middle and right.\n/// The left and right regions are optional and will typically contain state icons\n/// or act as a toolbar. The middle region should contain the title text.\n///\n/// @author Leif Olsen\n/// @param {String} $class - class name\n/// @gutter {Length} [8px] - horizontal spacing between title elements\n///\n/// @example\n///\n/// @include mdlext-flexible-title(my-title) {\n///   overflow: hidden;\n///   background-color: yellow;\n///   &__text {\n///     font-size: 20px;\n///     letter-spacing: 0.02em;\n///     font-weight: 400;\n///     line-height: 1.1;\n///   }\n/// }\n///\n/// <header class=\"my-title\">\n///   <i class=\"material-icons\" role=\"presentation\" style=\"font-size: 28px;\">info</i>\n///   <h2 class=\"my-title__text\">A title</h2>\n///   <span class=\"my-title__spacer\"></span>\n///   <i class=\"mdlext-aria-expanded-more-less\" role=\"presentation\" style=\"font-size: 28px;\"></i>\n/// </header>\n\n@mixin mdlext-flexible-title($class, $gutter: 8px) {\n  .#{$class} {\n    box-sizing: border-box;\n    position: relative;\n    width: 100%;\n    display: flex;\n    align-self: stretch;\n    align-items: center;\n    margin: 0;\n    padding: 0 $gutter;\n\n    &__text,\n    &__text > * {\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n\n    > * {\n      box-sizing: border-box;\n      margin: 0;\n      padding: 0 $gutter 0 0;\n    }\n\n    > *:last-child {\n      padding-right: 0;\n    }\n\n    // Used to align elements inside a header or drawer, by growing to fill\n    // remaining space. Commonly used for aligning elements to the right.\n    &__spacer {\n      flex: 1;\n    }\n\n    @content;\n  }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/_mixins.scss","@charset \"UTF-8\";\n\n// Material Design Lite\n@import '~material-design-lite/src/variables';\n@import '~material-design-lite/src/mixins';\n\n// mdl-ext\n@import 'mdl-ext-eqjs';\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/mdl-ext-eqjs-build.scss","/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n@import \"../variables\";\n\n.mdlext-layout__sticky-header {\n  position: absolute;\n  overflow: visible;\n  background: $mdlext-sticky-header-background;\n  transition: 0.1s ease-in-out;\n\n  &.mdlext-is-scroll {\n    background: $mdlext-sticky-header-background-scroll;\n  }\n}\n\n*:not(.is-small-screen) .mdlext-layout__sticky-header {\n  .mdl-layout__drawer-button {\n    visibility: hidden;\n  }\n  .mdl-layout__header-row {\n    padding-left: $padding;\n  }\n}\n\n*:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header,\n.is-small-screen.has-drawer .mdlext-layout__sticky-header {\n  display: flex;\n\n  .mdl-layout__drawer-button {\n    visibility: visible;\n  }\n  .mdl-layout__header-row {\n    padding-left: $padding + $layout-drawer-button-desktop-size;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/sticky-header/_sticky-header.scss","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SASS based on css from Google Chrome Dialog polyfill, https://github.com/GoogleChrome/dialog-polyfill\n * @include 'node_modules/dialog-polyfill/dialog-polyfill.css' before using this\n */\n\n@import \"../variables\";\n\ndialog.mdlext-dialog {\n  position: absolute;\n  border: 0;\n  opacity: 0;\n  padding: $mdlext-dialog-padding;\n  background-color: $mdlext-dialog-background-color;\n\n  &[open] {\n    animation: mdlext-open-dialog $mdlext-dialog-open-animation;\n  }\n  &[open]::backdrop {\n    animation: mdlext-darken-backdrop $mdlext-dialog-backdrop-animation;\n  }\n  &[open] + .backdrop {\n    animation: mdlext-darken-backdrop $mdlext-dialog-backdrop-animation;\n  }\n}\n\n@keyframes mdlext-darken-backdrop {\n  to { background: $mdlext-dialog-backdrop-color; }\n}\n@keyframes mdlext-open-dialog {\n  to { opacity: 1; }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/dialog/dialog.scss","@charset \"UTF-8\";\n\n/**\n * This code is modified from Material Design Lite _grid.sass,\n * which is Licensed under the Apache License, Version 2.0\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n//////////////////////////////////////////////////////////////////////////////////\n//\n// Element queries for _grid.scss, based on: https://github.com/Snugug/eq.js\n//\n//////////////////////////////////////////////////////////////////////////////////\n\n// Use of this module requires the user to include variables from material-design-lite in hers/his main SASS module\n//@import \"../../node_modules/material-design-lite/src/variables\";\n.mdlext-grid {\n  display: flex;\n  flex-flow: row wrap;\n  margin: 0 auto;\n  align-items: stretch;\n\n  &.mdlext-grid--no-spacing {\n    padding: 0;\n  }\n\n  & > .mdlext-cell {\n    box-sizing: border-box;\n  }\n\n  & > .mdlext-cell--top {\n    align-self: flex-start;\n  }\n\n  & > .mdlext-cell--middle {\n    align-self: center;\n  }\n\n  & > .mdlext-cell--bottom {\n    align-self: flex-end;\n  }\n\n  & > .mdlext-cell--stretch {\n    align-self: stretch;\n  }\n\n  .mdlext-grid--no-spacing > .mdlext-cell {\n    margin: 0;\n  }\n\n  // Define order override classes.\n  @for $i from 1 through $grid-max-columns {\n    & > .mdlext-cell--order-#{$i} {\n      order: $i;\n    }\n  }\n}\n\n// Mixins for width calculation.\n@mixin _partial-size($size, $columns, $gutter) {\n  width: calc(#{(($size / $columns) * 100) + \"%\"} - #{$gutter});\n}\n@mixin _full-size($gutter) {\n  @include _partial-size(1, 1, $gutter);\n}\n@mixin _offset-size($size, $columns, $gutter) {\n  margin-left: calc(#{(($size / $columns) * 100) + \"%\"} + #{$gutter / 2});\n}\n\n@mixin _partial-size-no-spacing($size, $columns) {\n  width: #{(($size / $columns) * 100) + \"%\"};\n}\n@mixin _full-size-no-spacing() {\n  @include _partial-size-no-spacing(1, 1);\n}\n@mixin _offset-size-no-spacing($size, $columns) {\n  margin-left: #{(($size / $columns) * 100) + \"%\"};\n}\n\n\n.mdlext-grid {\n\n  @include eq-pts((\n    grid_phone: 0,\n    grid_tablet: strip-unit($grid-tablet-breakpoint),\n    grid_desktop: strip-unit($grid-desktop-breakpoint)\n  ));\n\n  ////////// Phone //////////\n  @include eq('grid_phone') {\n    padding: $grid-phone-margin - ($grid-phone-gutter / 2);\n\n    & > .mdlext-cell {\n      margin: $grid-phone-gutter / 2;\n      @include _partial-size($grid-cell-default-columns, $grid-phone-columns, $grid-phone-gutter);\n    }\n\n    & > .mdlext-cell--hide-phone {\n      display: none !important;\n    }\n\n    // Define order override classes.\n    @for $i from 1 through $grid-max-columns {\n      & > .mdlext-cell--order-#{$i}-phone.mdlext-cell--order-#{$i}-phone {\n        order: $i;\n      }\n    }\n\n    // Define partial sizes for columnNumber < totalColumns.\n    @for $i from 1 through ($grid-phone-columns - 1) {\n      & > .mdlext-cell--#{$i}-col,\n      & > .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {\n        @include _partial-size($i, $grid-phone-columns, $grid-phone-gutter);\n      }\n    }\n\n    // Define 100% for everything else.\n    @for $i from $grid-phone-columns through $grid-desktop-columns {\n      & > .mdlext-cell--#{$i}-col,\n      & > .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {\n        @include _full-size($grid-phone-gutter);\n      }\n    }\n\n    // Define valid phone offsets.\n    @for $i from 1 through ($grid-phone-columns - 1) {\n      & > .mdlext-cell--#{$i}-offset,\n      & > .mdlext-cell--#{$i}-offset-phone.mdlext-cell--#{$i}-offset-phone {\n        @include _offset-size($i, $grid-phone-columns, $grid-phone-gutter);\n      }\n    }\n\n    &.mdlext-grid--no-spacing {\n      padding: 0;\n\n      & > .mdlext-cell {\n        margin: 0;\n        @include _partial-size-no-spacing($grid-cell-default-columns, $grid-phone-columns);\n      }\n\n      // Define partial sizes for columnNumber < totalColumns.\n      @for $i from 1 through ($grid-phone-columns - 1) {\n        & > .mdlext-cell--#{$i}-col,\n        & > .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {\n          @include _partial-size-no-spacing($i, $grid-phone-columns);\n        }\n      }\n\n      // Define 100% for everything else.\n      @for $i from $grid-phone-columns through $grid-desktop-columns {\n        & > .mdlext-cell--#{$i}-col,\n        & > .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {\n          @include _full-size-no-spacing();\n        }\n      }\n\n      // Define valid phone offsets.\n      @for $i from 1 through ($grid-phone-columns - 1) {\n        & > .mdlext-cell--#{$i}-offset,\n        & > .mdlext-cell--#{$i}-offset-phone.mdlext-cell--#{$i}-offset-phone {\n          @include _offset-size-no-spacing($i, $grid-phone-columns);\n        }\n      }\n    }\n  }\n\n  ////////// Tablet //////////\n  @include eq('grid_tablet') {\n    padding: $grid-tablet-margin - ($grid-tablet-gutter / 2);\n\n    & > .mdlext-cell {\n      margin: $grid-tablet-gutter / 2;\n      @include _partial-size($grid-cell-default-columns, $grid-tablet-columns, $grid-tablet-gutter);\n    }\n\n    & > .mdlext-cell--hide-tablet {\n      display: none !important;\n    }\n\n    // Define order override classes.\n    @for $i from 1 through $grid-max-columns {\n      & > .mdlext-cell--order-#{$i}-tablet.mdlext-cell--order-#{$i}-tablet {\n        order: $i;\n      }\n    }\n\n    // Define partial sizes for columnNumber < totalColumns.\n    @for $i from 1 through ($grid-tablet-columns - 1) {\n      & > .mdlext-cell--#{$i}-col,\n      & > .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {\n        @include _partial-size($i, $grid-tablet-columns, $grid-tablet-gutter);\n      }\n    }\n\n    // Define 100% for everything else.\n    @for $i from $grid-tablet-columns through $grid-desktop-columns {\n      & > .mdlext-cell--#{$i}-col,\n      & > .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {\n        @include _full-size($grid-tablet-gutter);\n      }\n    }\n\n    // Define valid tablet offsets.\n    @for $i from 1 through ($grid-tablet-columns - 1) {\n      & > .mdlext-cell--#{$i}-offset,\n      & > .mdlext-cell--#{$i}-offset-tablet.mdlext-cell--#{$i}-offset-tablet {\n        @include _offset-size($i, $grid-tablet-columns, $grid-tablet-gutter);\n      }\n    }\n\n    &.mdlext-grid--no-spacing {\n      padding: 0;\n\n      & > .mdlext-cell {\n        margin: 0;\n        @include _partial-size-no-spacing($grid-cell-default-columns, $grid-tablet-columns);\n      }\n\n      // Define partial sizes for columnNumber < totalColumns.\n      @for $i from 1 through ($grid-tablet-columns - 1) {\n        & > .mdlext-cell--#{$i}-col,\n        & > .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {\n          @include _partial-size-no-spacing($i, $grid-tablet-columns);\n        }\n      }\n\n      // Define 100% for everything else.\n      @for $i from $grid-tablet-columns through $grid-desktop-columns {\n        & > .mdlext-cell--#{$i}-col,\n        & > .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {\n          @include _full-size-no-spacing();\n        }\n      }\n\n      // Define valid tablet offsets.\n      @for $i from 1 through ($grid-tablet-columns - 1) {\n        & > .mdlext-cell--#{$i}-offset,\n        & > .mdlext-cell--#{$i}-offset-tablet.mdlext-cell--#{$i}-offset-tablet {\n          @include _offset-size-no-spacing($i, $grid-tablet-columns);\n        }\n      }\n    }\n  }\n\n  ////////// Desktop //////////\n  @include eq('grid_desktop') {\n    padding: $grid-desktop-margin - ($grid-desktop-gutter / 2);\n\n    & > .mdlext-cell {\n      margin: $grid-desktop-gutter / 2;\n      @include _partial-size($grid-cell-default-columns, $grid-desktop-columns, $grid-desktop-gutter);\n    }\n\n    & > .mdlext-cell--hide-desktop {\n      display: none !important;\n    }\n\n    // Define order override classes.\n    @for $i from 1 through $grid-max-columns {\n      & > .mdlext-cell--order-#{$i}-desktop.mdlext-cell--order-#{$i}-desktop {\n        order: $i;\n      }\n    }\n\n    // Define partial sizes for all numbers of columns.\n    @for $i from 1 through $grid-desktop-columns {\n      & > .mdlext-cell--#{$i}-col,\n      & > .mdlext-cell--#{$i}-col-desktop.mdlext-cell--#{$i}-col-desktop {\n        @include _partial-size($i, $grid-desktop-columns, $grid-desktop-gutter);\n      }\n    }\n\n    // Define valid desktop offsets.\n    @for $i from 1 through ($grid-desktop-columns - 1) {\n      & > .mdlext-cell--#{$i}-offset,\n      & > .mdlext-cell--#{$i}-offset-desktop.mdlext-cell--#{$i}-offset-desktop {\n        @include _offset-size($i, $grid-desktop-columns, $grid-desktop-gutter);\n      }\n    }\n\n    &.mdlext-grid--no-spacing {\n      padding: 0;\n\n      & > .mdlext-cell {\n        margin: 0;\n        @include _partial-size-no-spacing($grid-cell-default-columns, $grid-desktop-columns);\n      }\n\n      // Define partial sizes for all numbers of columns.\n      @for $i from 1 through $grid-desktop-columns {\n        & > .mdlext-cell--#{$i}-col,\n        & > .mdlext-cell--#{$i}-col-desktop.mdlext-cell--#{$i}-col-desktop {\n          @include _partial-size-no-spacing($i, $grid-desktop-columns);\n        }\n      }\n\n      // Define valid desktop offsets.\n      @for $i from 1 through ($grid-desktop-columns - 1) {\n        & > .mdlext-cell--#{$i}-offset,\n        & > .mdlext-cell--#{$i}-offset-desktop.mdlext-cell--#{$i}-offset-desktop {\n          @include _offset-size-no-spacing($i, $grid-desktop-columns);\n        }\n      }\n    }\n  }\n}\n\n@include eq-selectors;\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/grid/_grid-eqjs.scss","//////////////////////////////\n// Variables\n//////////////////////////////\n// Selectors that were called for CSS element queries\n$EQ-Selectors: ();\n\n//////////////////////////////\n// Error Mixin\n//////////////////////////////\n@mixin EQSTATECHECK($states, $name) {\n  $EQ-Error: 'You need to include a state for the `#{$name}` mixin!';\n  @if (length($states) == 0) {\n    @if feature-exists(at-error) {\n      @error $EQ-Error;\n    }\n    @else {\n      @warn $EQ-Error;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n//////////////////////////////\n// Element Queries!\n//\n// $states - List of states to apply styling to; @include eq(small, medium, large)\n//////////////////////////////\n@mixin eq($states...) {\n  @include EQSTATECHECK('eq', $states) {\n    //////////////////////////////\n    // Markup based Element Queries\n    //////////////////////////////\n    $extend: unique-id();\n    @at-root {\n      %#{$extend} {\n        @content;\n      }\n    }\n    @each $state in $states {\n      &[data-eq-state$=\"#{$state}\"] {\n        @extend %#{$extend};\n      }\n    }\n  }\n}\n\n//////////////////////////////\n// Element Query Stack!\n//\n// Contains one of the query states!\n// $states - List of states to apply styling to; @include eq-contains(small, medium, large)\n//  * Space separated list will be treated like an `and` media query; all of the states must be active\n//  * Comma separated list will be treated like an `or` media query: at least one of the states must be active\n//////////////////////////////\n@mixin eq-contains($states...) {\n  // Space separator API, so going to do stupid magic\n  @if length($states) == 1 {\n    $states: nth($states, 1);\n  }\n\n  @include EQSTATECHECK('eq', $states) {\n    //////////////////////////////\n    // Markup based Element Queries\n    //////////////////////////////\n    $extend: unique-id();\n    @at-root {\n      %#{$extend} {\n        @content;\n      }\n    }\n    @if list-separator($states) == 'space' {\n      $stateApply: '';\n\n      @each $state in $states {\n        $stateApply: $stateApply + '[data-eq-state~=\"#{$state}\"]';\n      }\n\n      &#{$stateApply} {\n        @extend %#{$extend};\n      }\n    }\n    @else {\n      @each $state in $states {\n        &[data-eq-state~=\"#{$state}\"] {\n          @extend %#{$extend};\n        }\n      }\n    }\n  }\n}\n\n//////////////////////////////\n// Element Query Points\n//\n// Prints element query points to element's `:before`\n//\n// $states - Map of `name: size`; @include eq-pts((small: 400, medium: 600, large: 900))\n//////////////////////////////\n@mixin eq-pts($states) {\n  &:before {\n    display: none;\n    content: '#{str-slice(inspect($states), 2, -2)}';\n  }\n\n  @if not index($EQ-Selectors, '#{&}') {\n    $EQ-Selectors: append($EQ-Selectors, '#{&}', 'comma') !global;\n  }\n}\n\n//////////////////////////////\n// Element Query Selectors\n//\n// Prints list of selectors that were called for CSS element queries to HTML's `:before`\n//////////////////////////////\n@mixin eq-selectors {\n  @at-root {\n    html:before {\n      display: none;\n      content: '#{$EQ-Selectors}';\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///~/eq.js/sass/_eq.scss","@charset \"UTF-8\";\n\n/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * A lightboard is a translucent surface illuminated from behind, used for situations\n * where a shape laid upon the surface needs to be seen with high contrast. In the \"old days\" of photography\n * photograpers used a lightboard to get a quick view of their slides. The goal is to create a responsive lightbox\n * design, based on flex layout, similar to what is used in Adobe LightRoom to browse images.\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n@import \"../variables\";\n\nul.mdlext-lightboard {\n  list-style: none;\n}\n\n.mdlext-lightboard {\n  box-sizing: border-box;\n  margin: 0 auto;\n  padding: 0;\n  display: flex;\n  flex-flow:row wrap;\n  align-items: stretch;\n\n  *,\n  *::before,\n  *::after,\n  input[type=\"search\"] {\n    box-sizing: border-box;\n  }\n\n  .mdlext-lightboard__slide {\n    background-color: $mdlext-lightboard-slide-background-color;\n    border: 1px solid $mdlext-lightboard-slide-border-color;\n    border-radius: $mdlext-lightboard-slide-border-radius;\n    box-shadow: $mdlext-lightboard-slide-box-shadow;\n    position: relative;\n    display: block;\n    max-width: $mdlext-lightboard-slide-max-size;\n\n    &::before {\n      // 1:1 ratio\n      // TODO: Use a class for ratio so the grid can display slides with different ratios (16:9, 16:10, 4:3 ...)\n      content: '';\n      display: block;\n      padding-top: 100%;\n    }\n    &:hover,\n    &:active,\n    &:focus {\n      border-color: $mdlext-lightboard-slide-border-color-hover;\n      background-color: $mdlext-lightboard-slide-background-color-hover;\n      box-shadow: $mdlext-lightboard-slide-box-shadow-hover;\n\n      figcaption {\n        color: rgba(0, 0, 0, 1) !important;\n        background-color: rgba(255, 255, 255, 0.2);\n      }\n    }\n    &:focus {\n      outline-offset: -2px;\n      outline-color: $mdlext-lightboard-focus-outline-color;\n    }\n    &[aria-selected='true'] {\n      background-color: $mdlext-lightboard-slide-active-bacground-color;\n\n      figcaption {\n        color: rgba(0, 0, 0, 1) !important;\n        background-color: rgba(255, 255, 255, 0.2);\n      }\n    }\n    &__frame,\n    &__ripple-container {\n      text-decoration: none;\n      display: block;\n      overflow: hidden;\n      position: absolute;\n      top: 0;\n      left: 0;\n      right: 0;\n      bottom: 0;\n\n      &:focus {\n        outline-offset: -2px;\n        outline-color: $mdlext-lightboard-focus-outline-color;\n      }\n      & .mdl-ripple {\n        background: $mdlext-lightboard-ripple-color;\n      }\n      figure {\n        display: block;\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n\n        img {\n          position: absolute;\n          top: 0;\n          left: 0;\n          right: 0;\n          bottom: 0;\n          margin: auto;\n          max-width: 100%;\n          max-height: 100%;\n          border-width: 0;\n          border-radius: $mdlext-lightboard-slide-inner-border-radius;\n        }\n        figcaption {\n          @include typo-caption($colorContrast: false, $usePreferred: true);\n\n          color: $mdlext-lightboard-figcaption-text-color;\n          position: absolute;\n          bottom: -2px;\n          white-space: nowrap;\n          overflow: hidden;\n          max-width: 100%;\n          width: 100%;\n          text-align: center;\n          text-overflow: ellipsis;\n          padding: 4px 0;\n        }\n      }\n      &:hover {\n        figcaption {\n          // As far as I can see there is no way to darken/lighten a text color\n          // defined by MDL, due to the \"unqote\" functions.\n          // So this is a hack\n          color: rgba(0, 0, 0, 1) !important;\n          background-color: rgba(255, 255, 255, 0.2);\n        }\n      }\n    }\n  }\n}\n\n////// Media / Element queries default, Small //////\n.mdlext-lightboard {\n  padding: calc((#{$mdlext-lightboard-small-margin} - #{$mdlext-lightboard-small-gutter}) / 2);\n\n  .mdlext-lightboard__slide {\n    margin: calc(#{$mdlext-lightboard-small-gutter} / 2);\n    width: calc(1 / #{$mdlext-lightboard-small-columns} * 100% - #{$mdlext-lightboard-small-gutter});\n\n    .mdlext-lightboard__slide__frame figure {\n      margin: $mdlext-lightboard-small-frame-width;\n    }\n  }\n  &.mdlext-lightboard--no-spacing {\n    padding: 0;\n\n    .mdlext-lightboard__slide {\n      margin: 0;\n      width: calc(1 / #{$mdlext-lightboard-small-columns} * 100%);\n    }\n  }\n}\n\n// Import one of _lightboard-media-queries.scss or _lightboard-eq-js.scss to complete SASS\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/lightboard/_lightboard.scss","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* Typography */\n\n@mixin typo-preferred-font($usePreferred: true) {\n  @if $usePreferred {\n    font-family: $preferred_font;\n  }\n}\n\n@mixin typo-display-4($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 112px;\n  font-weight: 300;\n  line-height: 1;\n  letter-spacing: -0.04em;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-display-3($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 56px;\n  font-weight: 400;\n  line-height: 1.35;\n  letter-spacing: -0.02em;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-display-2($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 45px;\n  font-weight: 400;\n  line-height: 48px;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-display-1($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 34px;\n  font-weight: 400;\n  line-height: 40px;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-headline($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 24px;\n  font-weight: 400;\n  line-height: 32px;\n  -moz-osx-font-smoothing: grayscale;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-title($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 20px;\n  font-weight: 500;\n  line-height: 1;\n  letter-spacing: 0.02em;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-subhead($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0.04em;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-subhead-2($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 28px;\n  letter-spacing: 0.04em;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-body-2($colorContrast: false, $usePreferred: false) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  @if $usePreferred {\n    font-weight: 500;\n  } @else {\n    font-weight: bold;\n  }\n  line-height: 24px;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-body-1($colorContrast: false, $usePreferred: false) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-caption($colorContrast: false, $usePreferred: false) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 12px;\n  font-weight: 400;\n  line-height: 1;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-blockquote($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  position: relative;\n  font-size: 24px;\n  font-weight: 300;\n  font-style: italic;\n  line-height: 1.35;\n  letter-spacing: 0.08em;\n\n  &:before {\n    position: absolute;\n    left: -0.5em;\n    content: '“';\n  }\n\n  &:after {\n    content: '”';\n    margin-left: -0.05em;\n  }\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-menu($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  font-weight: 500;\n  line-height: 1;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-button($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  font-weight: 500;\n  text-transform: uppercase;\n  line-height: 1;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-icon() {\n  font-family: 'Material Icons';\n  font-weight: normal;\n  font-style: normal;\n  font-size: 24px;\n  line-height: 1;\n  letter-spacing: normal;\n  text-transform: none;\n  display: inline-block;\n  word-wrap: normal;\n  font-feature-settings: 'liga';\n  -webkit-font-feature-settings: 'liga';\n  -webkit-font-smoothing: antialiased;\n}\n\n/* Shadows */\n\n// Focus shadow mixin.\n@mixin focus-shadow() {\n  box-shadow: 0 0 8px rgba(0,0,0,.18),0 8px 16px rgba(0,0,0,.36);\n}\n\n@mixin shadow-2dp() {\n  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 3px 1px -2px rgba(0, 0, 0, $shadow-key-umbra-opacity),\n              0 1px 5px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity);\n}\n@mixin shadow-3dp() {\n  box-shadow: 0 3px 4px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 3px 3px -2px rgba(0, 0, 0, $shadow-key-umbra-opacity),\n              0 1px 8px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity);\n}\n@mixin shadow-4dp() {\n  box-shadow: 0 4px 5px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 1px 10px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 2px 4px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n@mixin shadow-6dp() {\n  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 1px 18px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 3px 5px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n@mixin shadow-8dp() {\n  box-shadow: 0 8px 10px 1px rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 3px 14px 2px rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 5px 5px -3px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n\n@mixin shadow-16dp() {\n  box-shadow: 0 16px 24px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0  6px 30px 5px rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0  8px 10px -5px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n\n@mixin shadow-24dp() {\n  box-shadow: 0  9px 46px  8px rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 11px 15px -7px rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 24px 38px  3px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n\n/* Animations */\n\n@mixin material-animation-fast-out-slow-in($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-fast-out-slow-in;\n}\n\n@mixin material-animation-linear-out-slow-in($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-linear-out-slow-in;\n}\n\n@mixin material-animation-fast-out-linear-in($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-fast-out-linear-in;\n}\n\n@mixin material-animation-default($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-default;\n}\n\n/* Dialog */\n\n@mixin dialog-width($units:5) {\n  @if(type_of($units) != 'number') {\n    @error \"The unit given to dialog-width should be a number.\";\n  }\n  // 56dp is the base unit width for Dialogs.\n  // With 5 units being the number of units for a mobile device.\n  // https://goo.gl/sK2O5o\n  width: $units * 56px;\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///~/material-design-lite/src/_mixins.scss","@charset \"UTF-8\";\n//////////////////////////////////////////////////////////////////////////////////\n//\n// Element queries for _lightbox.scss, based on: https://github.com/Snugug/eq.js\n//\n//////////////////////////////////////////////////////////////////////////////////\n\n@import \"../variables\";\n@import \"../functions\";\n\n.mdlext-lightboard {\n\n  @include eq-pts((\n    lightboard_medium_small: strip-unit($mdlext-lightboard-medium-small-breakpoint),\n    lightboard_medium: strip-unit($mdlext-lightboard-medium-breakpoint),\n    lightboard_medium_large: strip-unit($mdlext-lightboard-medium-large-breakpoint),\n    lightboard_large: strip-unit($mdlext-lightboard-large-breakpoint)\n  ));\n\n  ////// small - meduim-small //////\n  @include eq('lightboard_medium_small') {\n    padding: calc((#{$mdlext-lightboard-medium-small-margin} - #{$mdlext-lightboard-medium-small-gutter}) / 2);\n\n    .mdlext-lightboard__slide {\n      margin: calc(#{$mdlext-lightboard-medium-small-gutter} / 2);\n      width: calc(1 / #{$mdlext-lightboard-medium-small-columns} * 100% - #{$mdlext-lightboard-medium-small-gutter});\n\n      .mdlext-lightboard__slide__frame figure {\n        margin: $mdlext-lightboard-medium-small-frame-width;\n      }\n    }\n    &.mdlext-lightboard--no-spacing {\n      padding: 0;\n\n      .mdlext-lightboard__slide {\n        margin: 0;\n        width: calc(1 / #{$mdlext-lightboard-medium-small-columns} * 100%);\n      }\n    }\n  }\n\n  ////// meduim-small - medium //////\n  @include eq('lightboard_medium') {\n    padding: calc((#{$mdlext-lightboard-medium-margin} - #{$mdlext-lightboard-medium-gutter}) / 2);\n\n    .mdlext-lightboard__slide {\n      margin: calc(#{$mdlext-lightboard-medium-gutter} / 2);\n      width: calc(1 / #{$mdlext-lightboard-medium-columns} * 100% - #{$mdlext-lightboard-medium-gutter});\n\n      .mdlext-lightboard__slide__frame figure {\n        margin: $mdlext-lightboard-medium-frame-width;\n      }\n    }\n    &.mdlext-lightboard--no-spacing {\n      padding: 0;\n\n      .mdlext-lightboard__slide {\n        margin: 0;\n        width: calc(1 / #{$mdlext-lightboard-medium-columns} * 100%);\n      }\n    }\n  }\n\n  ////// meduim - medium-large //////\n  @include eq('lightboard_medium_large') {\n    padding: calc((#{$mdlext-lightboard-medium-large-margin} - #{$mdlext-lightboard-medium-large-gutter}) / 2);\n\n    .mdlext-lightboard__slide {\n      margin: calc(#{$mdlext-lightboard-medium-large-gutter} / 2);\n      width: calc(1 / #{$mdlext-lightboard-medium-large-columns} * 100% - #{$mdlext-lightboard-medium-large-gutter});\n\n      .mdlext-lightboard__slide__frame figure {\n        margin: $mdlext-lightboard-medium-large-frame-width;\n      }\n    }\n    &.mdlext-lightboard--no-spacing {\n      padding: 0;\n\n      .mdlext-lightboard__slide {\n        margin: 0;\n        width: calc(1 / #{$mdlext-lightboard-medium-large-columns} * 100%);\n      }\n    }\n  }\n\n  ////// meduim-large - large //////\n  @include eq('lightboard_large') {\n    padding: calc((#{$mdlext-lightboard-large-margin} - #{$mdlext-lightboard-large-gutter}) / 2);\n\n    .mdlext-lightboard__slide {\n      margin: calc(#{$mdlext-lightboard-large-gutter} / 2);\n      width: calc(1 / #{$mdlext-lightboard-large-columns} * 100% - #{$mdlext-lightboard-large-gutter});\n\n      .mdlext-lightboard__slide__frame figure {\n        margin: $mdlext-lightboard-large-frame-width;\n      }\n    }\n    &.mdlext-lightboard--no-spacing {\n      padding: 0;\n\n      .mdlext-lightboard__slide {\n        margin: 0;\n        width: calc(1 / #{$mdlext-lightboard-large-columns} * 100%);\n      }\n    }\n  }\n}\n\n@include eq-selectors;\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/lightboard/_lightboard-eqjs.scss","@charset \"UTF-8\";\n\n/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n@import \"../variables\";\n\n.mdlext-lightbox {\n  user-select: none;\n  cursor: default;\n  position: relative;\n  width: auto;\n  max-width: 100%;\n  margin: 0 auto;\n  border: $mdlext-lightbox-border;\n  border-radius: $mdlext-lightbox-border-radius;\n  background-color: $mdlext-lightbox-background-color;\n  box-sizing: border-box;\n  outline: 0;\n  display: block; // display: flex and IE11 has issues with reposition. Set display:block for now.\n\n  *,\n  *::before,\n  *::after,\n  input[type=\"search\"] {\n    box-sizing: border-box;\n  }\n\n  .mdlext-lightbox__slider {\n    // Displays prevvious, current and next image while dragging\n    // Elements are created by lightbox component when dragging starts\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: flex;\n    justify-content: center;\n\n    .mdlext-lightbox__slider__slide {\n      flex-shrink: 0;\n      display: block;\n      text-align: left;\n      color: #7f7f7f;\n      background-size: cover;\n      background-position: center;\n      background-repeat: no-repeat;\n\n      //&:nth-child(1),\n      //&:nth-child(3) {\n      //  filter: blur(1px);\n      //}\n    }\n  }\n\n  figure {\n    margin: $mdlext-lightbox-figure-margin;\n    padding: $mdlext-lightbox-figure-padding;\n    position: relative;\n\n    img {\n      width: 100%;\n      max-width: 100%;\n      height: auto;\n      border: 0;\n      outline: 0;\n    }\n    figcaption {\n      @include typo-caption($colorContrast: false, $usePreferred: true);\n\n      display: block;\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      max-width: 100%;\n      height: auto;\n      max-height: 50%;\n      overflow: auto;\n      padding: 8px;\n      background-color: $mdlext-lightbox-figcaption-background-color;\n      transform-origin: bottom;\n      transform: scaleY(0);\n      transition: 0.2s ease-in-out;\n\n      &.mdlext-lightbox__show-figcaption {\n        transform: scaleY(1);\n      }\n      tbody {\n        th {\n          text-align: left;\n        }\n        th,\n        td {\n          vertical-align: text-top;\n        }\n      }\n    }\n  }\n  .mdl-card__menu {\n    color: #ffffff;\n    z-index: 1;\n  }\n  footer {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    background-color: $mdlext-lightbox-footer-background-color;\n\n    .mdl-card__supporting-text {\n      flex: 1;\n      overflow: hidden;\n      padding: 0;\n      height: $card-supporting-text-line-height;\n      width: 100%;\n    }\n    nav {\n      display: flex;\n    }\n  }\n\n  &.mdlext-lightbox--sticky-footer footer {\n    position: fixed;\n    bottom: 0;\n    left: 0;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/lightbox/_lightbox.scss","@charset \"UTF-8\";\n\n/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * A carousel ...\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n\nul.mdlext-carousel {\n  list-style: none;\n}\n\n.mdlext-carousel {\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n  height: 100%;  // Use a container to constrain height and width\n  width: 100%;\n  display: block;\n  white-space: nowrap;\n  font-size: 0;\n  background-color: transparent;\n}\n\n.mdlext-carousel__slide {\n  box-sizing: border-box;\n  display: inline-block;\n  position: relative;\n  outline: 0;\n  margin: 0 $mdlext-carousel-slide-margin-horizontal;\n  padding:0;\n  height: 100%;\n  border-top: $mdlext-carousel-slide-border-top-width solid transparent; // Makes room for the animated select/focus line\n\n  //&:focus,\n  &[aria-selected],\n  &[aria-selected='true'] {\n    figcaption {\n      // As far as I can see there is no way to darken/lighten a text color\n      // defined by MDL, due to the \"unqote\" functions.\n      // So this is a hack\n      color: rgba(0, 0, 0, 1) !important;\n      background-color: rgba(255, 255, 255, 0.25);\n    }\n  }\n\n  &[aria-selected]::after,\n  &[aria-selected='true']::after {\n    height: $mdlext-carousel-slide-border-top-width;\n    width: 100%;\n    display: block;\n    content: ' ';\n    top: (-$mdlext-carousel-slide-border-top-width);\n    left: 0;\n    position: absolute;\n    background: $mdlext-carousel-slide-border-top-color;\n    animation: border-expand 0.2s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards;\n    transition: all 1s cubic-bezier(0.4, 0.0, 1, 1);\n  }\n\n\n  a {\n    text-decoration: none;\n  }\n\n  figure {\n    box-sizing: border-box;\n    position: relative;\n    height: 100%;\n    margin: 0;\n    padding: 0;\n\n    img {\n      box-sizing: border-box;\n      max-height: 100%;\n    }\n\n    figcaption {\n      box-sizing: border-box;\n      @include typo-caption($colorContrast: false, $usePreferred: true);\n\n      color: $mdlext-carousel-slide-figcaption-color;\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      white-space: nowrap;\n      overflow: hidden;\n      max-width: 100%;\n      width: 100%;\n      text-align: center;\n      text-overflow: ellipsis;\n      padding: 4px 0;\n    }\n    &:hover {\n      figcaption {\n        // As far as I can see there is no way to darken/lighten a text color\n        // defined by MDL, due to the \"unqote\" functions.\n        // So this is a hack\n        color: rgba(0, 0, 0, 1) !important;\n        background-color: rgba(255, 255, 255, 0.25);\n      }\n    }\n  }\n\n  .mdlext-carousel__slide__ripple-container {\n    text-decoration: none;\n    display: block;\n    overflow: hidden;\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    outline: 0;\n\n    & .mdl-ripple {\n      background: $mdlext-carousel-slide-ripple-color;\n    }\n  }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/carousel/_carousel.scss","/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Copied/Modified/Inspired from/by:\n *   https://github.com/google/material-design-lite/tree/master/src/textfield\n *   http://red-team-design.com/making-html-dropdowns-not-suck/\n *   http://codepen.io/etcpe9/pen/PqyOye,\n *   http://codepen.io/pudgereyem/pen/PqBxQx\n *   https://github.com/MEYVN-digital/mdl-selectfield\n *   https://github.com/mebibou/mdl-selectfield\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n\n@import \"../mixins\";\n\n// The container for the selectfield.\n.mdlext-selectfield {\n  box-sizing: border-box;\n  position: relative;\n  font-size: $input-text-font-size;\n  display: inline-block;\n  width: 300px;\n  max-width: 100%;\n  margin: 0;\n  padding: $input-text-vertical-spacing 0;\n\n  // Align buttons, if used.\n  & .mdl-button {\n    bottom: $input-text-vertical-spacing;\n    position: absolute;\n  }\n\n  // Styling the down arrow\n  &::after {\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length);\n\n    position: absolute;\n    right: 0.5em;\n    top: 50%;\n    transform: translateY(-50%);\n    pointer-events: none;\n  }\n}\n\n.mdlext-selectfield.is-disabled {\n  &::after {\n    color: $input-text-disabled-color;\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $input-text-disabled-color);\n  }\n}\n\n// Optional class to align right.\n.mdlext-selectfield--align-right {\n  text-align: right;\n}\n\n// Optional class to display at full width.\n.mdlext-selectfield--full-width {\n  width: 100%;\n}\n\n// Optional class to make the select field expandable.\n.mdlext-selectfield--expandable {\n  min-height: $input-text-button-size;\n  min-width: $input-text-button-size;\n  width: auto;\n}\n\n// Styling for the select element.\n.mdlext-selectfield__select {\n\n  // Reset select\n  box-sizing: border-box;\n  border: 0;\n  border-radius: 0;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  -ms-appearance: none;\n  appearance: none;\n  text-indent: 0.01px; // Removes default arrow from firefox\n  text-overflow: '';   // Removes default arrow from firefox\n  outline: none;\n  box-shadow: none;\n  // End Reset select\n\n  font-size: $input-text-font-size;\n  font-family: $performance_font;\n  padding: $input-text-padding calc(1.2em + #{$input-text-padding}) $input-text-padding 0;\n  width: $input-text-width;\n  border-bottom: 1px solid $input-text-bottom-border-color;\n  display: block;\n  margin: 0;\n  background: none;\n  text-align: left;\n  color: inherit;\n\n  // Mozilla, remove focusring\n  &:-moz-focusring {\n    color: transparent;\n    text-shadow: 0 0 0 #000000;\n  }\n\n  // MS, remove selected option background color\n  &:focus::-ms-value {\n    background-color: inherit;\n    color: inherit;\n  }\n\n  &::-ms-expand {\n    display: none;\n  }\n\n  .mdlext-selectfield.is-focused & {\n    outline: none;\n  }\n\n  .mdlext-selectfield.is-invalid & {\n    border-color: $input-text-error-color;\n    box-shadow: none;\n  }\n\n  fieldset[disabled] .mdlext-selectfield &,\n  .mdlext-selectfield.is-disabled & {\n    border-bottom: 1px dotted $input-text-disabled-color;\n    color: $input-text-disabled-text-color;\n    background-color: transparent;\n  }\n\n  option {\n    color: $text-color-primary;\n    box-sizing: border-box;\n    background-color: inherit;\n  }\n}\n\n// Styling for the label / floating label.\n.mdlext-selectfield__label {\n  box-sizing: border-box;\n  color: $input-text-label-color;\n  font-size: $input-text-font-size;\n  top: ($input-text-padding + $input-text-vertical-spacing);\n  bottom: 0;\n  left: 0;\n  right: 0;\n  pointer-events: none;\n  position: absolute;\n  display: block;\n  width: 100%;\n  overflow: hidden;\n  white-space: nowrap;\n  text-align: left;\n\n  .mdlext-selectfield.is-dirty &,\n  .mdlext-selectfield.has-placeholder & {\n    visibility: hidden;\n  }\n\n  // Floating Label\n  .mdlext-selectfield--floating-label & {\n    @include material-animation-default();\n  }\n\n  .mdlext-selectfield--floating-label.has-placeholder & {\n    transition: none;\n  }\n\n  fieldset[disabled] .mdlext-selectfield &,\n  .mdlext-selectfield.is-disabled.is-disabled & {\n    color: $input-text-disabled-text-color;\n  }\n\n  .mdlext-selectfield--floating-label.is-focused &,\n  .mdlext-selectfield--floating-label.is-dirty.is-dirty &,\n  .mdlext-selectfield--floating-label.has-placeholder & {\n    color: $input-text-highlight-color;\n    font-size: $input-text-floating-label-fontsize;\n    top: $input-text-vertical-spacing - ($input-text-floating-label-fontsize + $input-text-padding);\n    visibility: visible;\n  }\n\n  .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__expandable-holder &,\n  .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__expandable-holder &,\n  .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__expandable-holder & {\n    top: -($input-text-floating-label-fontsize + $input-text-padding);\n  }\n\n  .mdlext-selectfield--floating-label.is-invalid & {\n    color: $input-text-error-color;\n    font-size: $input-text-floating-label-fontsize;\n  }\n\n  // The after label is the colored underline for the Selectfield.\n  &::after {\n    background-color: $input-text-highlight-color;\n    bottom: $input-text-vertical-spacing;\n    content: '';\n    height: 2px;\n    left: 45%;\n    position: absolute;\n    @include material-animation-default();\n\n    visibility: hidden;\n    width: 10px;\n  }\n\n  .mdlext-selectfield.is-focused &::after {\n    left: 0;\n    visibility: visible;\n    width: 100%;\n  }\n\n  .mdlext-selectfield.is-invalid &::after {\n    background-color: $input-text-error-color;\n  }\n}\n\n// SelectField Error.\n.mdlext-selectfield__error {\n  color: $input-text-error-color;\n  font-size: $input-text-floating-label-fontsize;\n  position: absolute;\n  margin-top: 3px;\n  visibility: hidden;\n  display: block;\n\n  .mdlext-selectfield.is-invalid & {\n    visibility: visible;\n  }\n}\n\n// Expandable Holder.\n.mdlext-selectfield__expandable-holder {\n  display: inline-block;\n  position: relative;\n  margin-left: $input-text-button-size;\n\n  @include material-animation-default();\n\n  // Safari (possibly others) need to be convinced that this field is actually\n  // visible, otherwise it cannot be tabbed to nor focused via a <label>.\n  // TODO: In some cases (Retina displays), this is big enough to render the\n  // inner element :(\n  max-width: 0.1px;\n\n  .mdlext-selectfield.is-focused &,\n  .mdlext-selectfield.is-dirty & {\n    // This is an unfortunate hack. Animating between widths in percent (%)\n    // in many browsers (Chrome, Firefox) only animates the inner visual style\n    // of the input - the outer bounding box still 'jumps'.\n    // Thus assume a sensible maximum, and animate to/from that value.\n    max-width: 600px;\n  }\n  .mdlext-selectfield__label::after {\n    bottom: 0;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/selectfield/_selectfield.scss","@charset \"UTF-8\";\n\n/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/* Moved to aria-expanded-toggle.scss\n\n.mdlext-aria-expanded-plus-minus {\n  @include mdlext-aria-expanded-toggle($font-family: inherit);\n}\n\n.mdlext-aria-expanded-more-less {\n  @include mdlext-aria-expanded-toggle($icon: 'expand_more', $icon-expanded: 'expand_less');\n}\n*/\n\n.mdlext-menu-button {\n  box-sizing: border-box;\n  @include typo-menu();\n  text-transform: none;\n  position: relative;\n  height: $button-height;\n  padding: 0 $button-padding;\n  display: flex;\n  align-items: center;\n  align-self: stretch;\n\n  > * {\n    margin: 0;\n    padding: 0 0 0 8px;\n  }\n\n  > *:first-child {\n    padding-left: 0;\n  }\n\n  > *:last-child:not(:only-child):not(.mdlext-menu__item__caption) {\n    margin-left: auto; // If more than one element, push last element to the right\n  }\n\n}\n\n.mdlext-menu-button__caption {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  line-height: 1.2;\n}\n\n.mdlext-menu,\n.mdlext-menu__item {\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  display: flex;\n}\n\n.mdlext-menu {\n  position: absolute; //fixed;\n  background: $default-dropdown-bg-color;\n  z-index: 1000;\n  min-width: 124px;\n  border-radius: 2px;\n  @include shadow-3dp();\n  display: inline-flex;\n  flex-direction: column;\n  padding: 0;\n  overflow: hidden;\n  overflow-y: auto;\n\n  &:focus {\n    outline-offset: -1px;\n    outline-width: 1px;\n  }\n\n  &[hidden] {\n    @include mdlext-visually-hidden;\n    pointer-events: none;\n  }\n\n  &__item {\n    @include typo-body-1();\n    color: $default-item-text-color;\n    background-color: $default-dropdown-bg-color;\n    position: relative;\n    padding: 0 16px 0 24px;\n    align-items: center;\n    align-self: stretch;\n    text-decoration: none;\n    cursor: pointer;\n    white-space: nowrap;\n    user-select: none;\n    min-height: 40px;\n    overflow: hidden;\n\n    &[aria-selected='true'] {\n      background-color: $default-item-active-bg-color;\n    }\n\n    // checkmark\n    &[aria-selected='true']::before {\n      content:'\\2713';\n      position: absolute;\n      font-size: 1.4em;\n      left: 4px;\n      top: 50%;\n      transform: translateY(-50%);\n      pointer-events: none;\n    }\n\n    &:hover:not([disabled]) {\n      background-color: $default-item-hover-bg-color;\n    }\n\n    &:focus {\n      outline-offset: -2px;\n      outline-width: 1px;\n      outline-color: $default-item-outline-color;\n      background-color: $default-item-focus-bg-color;\n    }\n\n    &::-moz-focus-inner {\n      border: 0;\n    }\n\n    &[disabled] {\n      color: $disabled-item-text-color;\n      background-color: transparent;\n      cursor: auto;\n      pointer-events: none;\n\n      > * {\n        color: $disabled-item-text-color;\n      }\n    }\n\n    &__caption {\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n\n    > * {\n      margin: 0;\n      padding: 0 0 0 8px;\n    }\n\n    > *:first-child {\n      padding-left: 0;\n    }\n\n    > *:last-child:not(:only-child):not(.mdlext-menu__item__caption) {\n      margin-left: auto; // If more than one element, push last element to the right\n    }\n\n  }\n  &__item-separator {\n    margin: 0;\n    padding: 0;\n    border-bottom: 1px solid $default-item-divider-color;\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/menu-button/_menu-button.scss","/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * The bordered fields are based on / inspired by this CodePen: http://codepen.io/prajwal078/pen/LVJZXz?editors=010\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n\n@import \"../variables\";\n@import \"../functions\";\n\n\n// \"Theme\" for this styling\n.mdlext-bordered-fields {\n  box-sizing: border-box;\n\n  * {\n    box-sizing: border-box;\n  }\n\n  // Styling for textfield and selectfield.\n  .mdl-textfield,\n  .mdlext-selectfield {\n    padding: 0;\n    margin: $mdlext-bordered-field-vertical-spacing-top 0 $mdlext-bordered-field-vertical-spacing-bottom 0;\n\n    .mdl-textfield__input,\n    .mdlext-selectfield__select {\n      height: $mdlext-bordered-field-height;\n      background-color: $mdlext-bordered-field-background-color;\n      border: $mdlext-bordered-field-border-width solid $mdlext-bordered-field-border-color;\n      border-radius: $mdlext-bordered-field-border-radius;\n      padding: $mdlext-bordered-field-padding-top $mdlext-bordered-field-padding $mdlext-bordered-field-padding-bottom $mdlext-bordered-field-padding;\n      font-size: $mdlext-bordered-field-input-text-font-size;\n      font-weight: $mdlext-bordered-field-font-weight;\n      color: $mdlext-bordered-field-input-text-color;\n\n      &:disabled {\n        color: $mdlext-bordered-field-input-text-disabled-text-color;\n        background-color: $mdlext-bordered-field-disabled-background-color;\n        border-color: $mdlext-bordered-field-disabled-border-color;\n      }\n\n      // MDL can not handle required attribute properly. Planned for MDL-v2\n      //&:required {\n      //  background-color: $mdlext-bordered-field-required-background-color;\n      //  border-color: $mdlext-bordered-field-required-border-color;\n      //}\n\n      &:focus {\n        background-color: $mdlext-bordered-field-focus-background-color;\n        border-color: $mdlext-bordered-field-focus-border-color;\n      }\n\n      // MDL can not handle required. Planned for MDL-v2\n      //&:required:focus {\n      //  background-color: $mdlext-bordered-field-required-focus-background-color;\n      //  border-color: $mdlext-bordered-field-required-focus-border-color;\n      //}\n    }\n    .mdlext-selectfield__select {\n      padding-right: calc(1em + #{$mdlext-bordered-field-padding});  // space for down arrow\n    }\n\n    /*\n    &.is-dirty {\n      .mdl-textfield__input,\n      .mdlext-selectfield__select {\n      }\n    }\n    */\n\n    &.is-invalid {\n      .mdl-textfield__input,\n      .mdlext-selectfield__select {\n        color: $mdlext-bordered-field-input-text-error-color;\n        border-color: $mdlext-bordered-field-error-border-color;\n        background-color: $mdlext-bordered-field-error-background-color;\n\n        &:focus {\n          //&:required:focus {\n          border-color: $mdlext-bordered-field-error-focus-border-color;\n          background-color: $mdlext-bordered-field-error-focus-background-color;\n        }\n      }\n    }\n  }\n\n  .mdlext-selectfield::after {\n    top: auto;\n    bottom: $mdlext-bordered-field-padding-bottom;  // Position of down arrow\n  }\n\n  fieldset[disabled] .mdlext-selectfield::after,\n  .mdlext-selectfield.is-disabled::after {\n    color: $mdlext-bordered-field-input-text-disabled-text-color;\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-bordered-field-input-text-disabled-text-color);\n  }\n\n\n  fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {\n    color: $mdlext-bordered-field-input-text-disabled-text-color;\n    background-color: $mdlext-bordered-field-disabled-background-color;\n    border-color: $mdlext-bordered-field-disabled-border-color;\n  }\n\n\n  // Styling for the label / floating label.\n  .mdl-textfield,\n  .mdlext-selectfield {\n\n    &.is-dirty,\n    &.has-placeholder {\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        visibility: hidden;\n      }\n    }\n    .mdl-textfield__label,\n    .mdlext-selectfield__label {\n      color: $mdlext-bordered-field-input-text-label-color;\n      font-size: $mdlext-bordered-field-label-font-size;\n      font-weight: $mdlext-bordered-field-font-weight;\n      padding-left: $mdlext-bordered-field-padding;\n      top: auto;\n      bottom: $mdlext-bordered-field-padding-bottom;\n\n      // Hides the colored underline for the textField/selectfield.\n      &::after {\n        background-color: transparent !important;\n        visibility: hidden !important;\n      }\n    }\n    &.mdl-textfield--floating-label.is-focused.is-focused,\n    &.mdl-textfield--floating-label.is-dirty.is-dirty,\n    &.mdl-textfield--floating-label.has-placeholder,\n    &.mdlext-selectfield--floating-label.is-focused.is-focused,\n    &.mdlext-selectfield--floating-label.is-dirty.is-dirty,\n    &.mdlext-selectfield--floating-label.has-placeholder {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-bordered-field-input-text-label-focus-color;\n        font-size: $mdlext-bordered-field-floating-label-font-size;\n        font-weight: $mdlext-bordered-field-floating-label-font-weight;\n        top: auto;\n        bottom: $mdlext-bordered-field-floating-label-focus-bottom;\n        visibility: visible;\n      }\n    }\n    &.mdl-textfield--floating-label.is-disabled.is-disabled,\n    &.mdlext-selectfield--floating-label.is-disabled.is-disabled {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-bordered-field-input-text-label-disabled-color;\n      }\n    }\n    &.mdl-textfield--floating-label.is-invalid.is-invalid,\n    &.mdlext-selectfield--floating-label.is-invalid.is-invalid {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-bordered-field-input-text-label-error-color;\n      }\n    }\n  }\n\n  fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n  fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {\n    color: $mdlext-bordered-field-input-text-label-disabled-color;\n  }\n\n  // Icon(s) and/or button(s) inside textfield\n  .mdl-textfield,\n  .mdlext-selectfield {\n    &.mdlext-bordered-fields__icon-left,\n    &.mdlext-bordered-fields__icon-right {\n      & > i,\n      & > .mdl-button {\n        position: absolute;\n        bottom: $mdlext-bordered-field-padding-bottom - 2px;\n      }\n      & > i {\n        bottom: $mdlext-bordered-field-padding-bottom + 2px;\n      }\n    }\n    &.mdlext-bordered-fields__icon-left {\n      & > i:first-child,\n      & > .mdl-button:first-child {\n        left: $mdlext-bordered-field-padding/2;\n      }\n      & > i ~ .mdl-textfield__input,\n      & > .mdl-button ~ .mdl-textfield__input,\n      & > i ~ .mdlext-selectfield__select,\n      & > .mdl-button ~ .mdlext-selectfield__select {\n        padding-left: $input-text-button-size;\n      }\n      & > i ~ .mdl-textfield__label,\n      & > .mdl-button ~ .mdl-textfield__label {\n        left: $input-text-button-size - $mdlext-bordered-field-padding;\n      }\n      & > i ~ .mdlext-selectfield__label,\n      & > .mdl-button ~ .mdlext-selectfield__label {\n        left: $input-text-button-size - $mdlext-bordered-field-padding;\n      }\n    }\n    &.mdlext-bordered-fields__icon-right {\n      & > .mdl-textfield__input {\n        padding-right: $input-text-button-size;\n      }\n      & > i:last-child,\n      & > .mdl-button:last-child {\n        left: auto;\n        right: $mdlext-bordered-field-padding/2;\n      }\n    }\n    &.is-disabled i,\n    &.is-disabled .mdl-button {\n      color: $mdlext-bordered-field-disabled-border-color;\n      pointer-events: none;\n    }\n  }\n\n  fieldset[disabled] .mdl-textfield,\n  fieldset[disabled] .mdlext-selectfield {\n    i,\n    .mdl-button {\n      color: $mdlext-bordered-field-disabled-border-color;\n      pointer-events: none;\n    }\n  }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/bordered-fields/_bordered-fields.scss","@charset \"UTF-8\";\n\n/**\n * @license\n * Copyright 2016-2017 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n.mdlext-collapsible {\n  box-sizing: border-box;\n  cursor: pointer;\n}\n\n.mdlext-collapsible-group,\n.mdlext-collapsible-region {\n  box-sizing: border-box;\n\n  &[hidden] {\n    @include mdlext-visually-hidden;\n    pointer-events: none;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/collapsible/_collapsible.scss","@charset \"UTF-8\";\n\n/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n.mdlext-aria-toggle-plus-minus {\n  @include mdlext-aria-expanded-toggle($font-family: inherit, $font-size: 1.4em);\n}\n\n.mdlext-aria-toggle-material-icons {\n  @include mdlext-aria-expanded-toggle($font-size: 1.3em, $icon: 'expand_more', $icon-expanded: 'expand_less', $icon-offset: -$mdlext-accordion-header-padding);\n}\n\n.mdlext-accordion {\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  display: flex;\n\n  * {\n    box-sizing: border-box;\n  }\n\n  &__panel {\n    box-sizing: border-box;\n    position: relative;\n    overflow: hidden;\n    display: flex;\n    flex-wrap: nowrap;\n  }\n\n  &__tab {\n    @include typo-title();\n\n    font-weight: 400;\n    line-height: 1.1;\n    box-sizing: border-box;\n    position: relative;\n    margin: 0;\n    padding: 0; // $mdlext-accordion-header-padding;\n    min-width: $mdlext-accordion-header-height;\n    min-height: $mdlext-accordion-header-height;\n    display: flex;\n    align-items: center;\n    align-self: stretch;\n    user-select: none;\n    color: $mdlext-accordion-header-secondary-color;\n    background-color: $mdlext-accordion-header-background-color;\n    cursor: pointer;\n    overflow: hidden;\n\n    &:focus {\n      outline-offset: -2px;\n      outline-color: $mdlext-accordion-header-focus-outline-color;\n      outline-width: 2px;\n    }\n\n    &[aria-expanded='true'] {\n      background-color: $mdlext-accordion-header-background-open-color;\n    }\n\n    &[aria-selected='true'] {\n      background-color: $mdlext-accordion-header-background-active-color;\n    }\n\n    &[disabled] {\n      background-color: $mdlext-accordion-header-disabled-color;\n      color: $mdlext-accordion-header-secondary-color-disabled;\n      pointer-events: none;\n\n      > * {\n        color: $mdlext-accordion-header-secondary-color-disabled;\n      }\n    }\n\n    &:hover:not([disabled]) {\n      background-color: $mdlext-accordion-header-background-hover-color;\n    }\n\n    > * {\n      margin: 0;\n      padding: 0;\n    }\n\n    &__caption {\n      padding-left: $mdlext-accordion-header-padding;\n      padding-right: $mdlext-accordion-header-padding;\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n\n    > *:first-child {\n      padding-left: 0;\n    }\n\n    &--ripple {\n      &[aria-selected='true']::before {\n        content: '';\n        position: absolute;\n        top: 50%;\n        left: 50%;\n        background: $mdlext-accordion-ripple-color;\n        opacity: 0;\n        border-radius: 100%;\n        transform: scale(1, 1) translate(-50%);\n        transform-origin: 50% 50%;\n      }\n      &[aria-selected='true']:focus:not(:active)::before {\n        // http://easings.net/\n        animation: mdlext-accordion-tab-ripple 1s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards; // cubic-bezier(0.4, 0.0, 1, 1); //cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards; //ease-out;\n      }\n    }\n  }\n\n  &__tabpanel {\n    box-sizing: border-box;\n    margin: 0;\n    padding: 0 $mdlext-accordion-content-padding;\n    color: $mdlext-accordion-content-color;\n    background-color: $mdlext-accordion-content-background-color;\n    display: block;\n    overflow: auto;\n    flex-grow: 1;\n\n    &[hidden] {\n      @include mdlext-visually-hidden;\n    }\n  }\n}\n\n// Vertical layout\n.mdlext-accordion {\n\n  &--vertical {\n    flex-direction: column;\n    flex-wrap: nowrap;\n\n    .mdlext-accordion__panel {\n      min-height: $mdlext-accordion-header-height;\n      flex-direction: column;\n    }\n\n    .mdlext-accordion__tab {\n      height: $mdlext-accordion-header-height;\n      border-top: 1px solid $mdlext-accordion-header-border-color;\n      padding-left: $mdlext-accordion-header-padding;\n      padding-right: $mdlext-accordion-header-padding;\n\n      &[aria-selected='true']::after {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        height: 1px;\n        width: 100%;\n        display: block;\n        content: \" \";\n        background-color: $mdlext-accordion-header-highlight-color;\n        animation: border-expand 0.2s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards;\n        transition: all 1s cubic-bezier(0.4, 0.0, 1, 1);\n      }\n\n      > * {\n        padding-left: $mdlext-accordion-header-padding;\n      }\n\n      > *:first-child {\n        padding-left: 0;\n      }\n\n      > *:last-child:not(:only-child):not(.mdlext-accordion__tab__caption) {\n        margin-left: auto; // If more than one element, push last element to the right\n      }\n\n      &--ripple {\n        &[aria-selected='true']::before {\n          width: 5%;\n          height: 10%;\n        }\n      }\n\n    }\n\n    .mdlext-accordion__tabpanel {\n      border-top: 1px solid $mdlext-accordion-header-border-color;\n\n      &--animation {\n        transform: scaleY(1);\n        animation: mdlext-accordion-show-tabpanel-y 0.2s ease-in-out;\n\n        &[hidden] {\n          transform: scaleY(0);\n          animation: mdlext-accordion-hide-tabpanel-y 0.2s ease-out;\n          animation-delay: 0.1s;\n        }\n      }\n    }\n  }\n}\n\n// Horizontal layout\n.mdlext-accordion {\n\n  &--horizontal {\n\n    .mdlext-accordion__panel {\n      min-width: $mdlext-accordion-header-height;\n      width: $mdlext-accordion-header-height;\n    }\n\n    &[aria-multiselectable='true'] .mdlext-accordion__panel.is-expanded {\n      width: 100%;\n    }\n\n    .mdlext-accordion__tab {\n      flex-direction: column-reverse;\n      width: $mdlext-accordion-header-height;\n      white-space: nowrap;\n      border-left: 1px solid $mdlext-accordion-header-border-color;\n\n      &[aria-selected='true']::after {\n        position: absolute;\n        top: 0;\n        right: 0;\n        height: 100%;\n        width: 1px;\n        display: block;\n        content: \" \";\n        background-color: $mdlext-accordion-header-highlight-color;\n\n        // Figure out how to animate a vertical line\n        //animation: border-expand 0.2s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards;\n        //transition: all 1s cubic-bezier(0.4, 0.0, 1, 1);\n      }\n\n      > * {\n        //transform: rotate(-90deg) translateX(50%);\n        transform: rotate(-90deg) translateX($mdlext-accordion-header-padding);\n      }\n\n      > *:last-child:not(:only-child):not(.mdlext-accordion__tab__caption) {\n        // If more than one element, push last element to top\n        margin-bottom: auto;\n        transform: rotate(-90deg) translateX(0);\n      }\n\n      &__caption {\n        transform: rotate(-90deg) translateX(50%);\n        padding-right: $mdlext-accordion-header-padding + 8px;\n      }\n\n      &--ripple {\n        &[aria-selected='true']::before {\n          width: 10%;\n          height: 5%;\n        }\n      }\n    }\n\n    .mdlext-accordion__tabpanel {\n      border-left: 1px solid $mdlext-accordion-header-border-color;\n\n      &--animation {\n        transform: scaleX(1);\n        animation: mdlext-accordion-show-tabpanel-x 0.2s ease-in-out;\n\n        &[hidden] {\n          transform: scaleX(0);\n          animation: mdlext-accordion-hide-tabpanel-x 0.2s ease-out;\n        }\n      }\n    }\n  }\n}\n\n.mdlext-accordion {\n\n  &__panel:first-child > &__tab {\n    // Use container to set outer borders\n    border-top-color: transparent;\n    border-left-color: transparent;\n  }\n\n  &[aria-multiselectable=\"false\"] {\n    .mdlext-accordion__panel.is-expanded {\n      flex-grow: 1;\n    }\n  }\n}\n\n// Making accordion appear disabled.\n// Note: does not prevent tabbing into a disabled accordion\n.mdlext-accordion[disabled] {\n  * {\n    pointer-events: none;\n  }\n  .mdlext-accordion__tab {\n    background-color: $mdlext-accordion-header-disabled-color;\n    color: $mdlext-accordion-header-secondary-color-disabled;\n\n    > * {\n      color: $mdlext-accordion-header-secondary-color-disabled;\n    }\n  }\n  .mdlext-accordion__tabpanel {\n    opacity: 0.8;\n    filter: blur(1px) grayscale(80%);\n  }\n}\n\n\n@keyframes mdlext-accordion-tab-ripple {\n  0% {\n    transform: scale(0, 0);\n    opacity: 1;\n  }\n  20% {\n    transform: scale(25, 25);\n    opacity: 1;\n  }\n  100% {\n    opacity: 0;\n    transform: scale(40, 40);\n  }\n}\n\n/*\n@keyframes mdlext-accordion-show-tabpanel-y {\n  0% { transform: scaleY(0.1); }\n  40% { transform: scaleY(1.03); }\n  60% { transform: scaleY(0.98); }\n  80% { transform: scaleY(1.03); }\n  100% { transform: scaleY(0.98); }\n  80% { transform: scaleY(1.01); }\n  100% { transform: scaleY(1); }\n}\n*/\n\n@keyframes mdlext-accordion-show-tabpanel-y {\n  0% { transform: scaleY(0); }\n  60% { transform: scaleY(1.01); }\n  80% { transform: scaleY(0.98); }\n  100% { transform: scaleY(1); }\n}\n\n@keyframes mdlext-accordion-hide-tabpanel-y {\n  0% { transform: scaleY(1); }\n  60% { transform: scaleY(0.98); }\n  80% { transform: scaleY(1.01); }\n  100% { transform: scaleY(0); }\n}\n\n/*\n@keyframes mdlext-accordion-show-tabpanel-x {\n  0% { transform: scaleX(0.1); }\n  40% { transform: scaleX(1.03); }\n  60% { transform: scaleX(0.98); }\n  80% { transform: scaleX(1.03); }\n  100% { transform: scaleX(0.98); }\n  80% { transform: scaleX(1.01); }\n  100% { transform: scaleX(1); }\n}\n*/\n\n@keyframes mdlext-accordion-show-tabpanel-x {\n  0% { transform: scaleX(0); }\n  60% { transform: scaleX(1.01); }\n  80% { transform: scaleX(0.98); }\n  100% { transform: scaleX(1); }\n}\n\n@keyframes mdlext-accordion-hide-tabpanel-x {\n  0% { transform: scaleX(1); }\n  60% { transform: scaleX(0.98); }\n  80% { transform: scaleX(1.01); }\n  100% { transform: scaleX(0); }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/accordion/_accordion.scss","@import \"color-themes\";\n\n.mdlext-light-color-theme {\n  background-color: $mdlext-light-content-background-color;\n  color: $mdlext-light-text-color-primary;\n\n  a {\n    outline-color: inherit;\n  }\n}\n\n// mdl/src/palette/_palette.scss\n// -----------------------------\n.mdlext-light-color-theme {\n\n  .mdl-color--primary {\n    background-color: $mdlext-light-color-primary !important;\n  }\n\n  .mdl-color--primary-contrast {\n    background-color: $mdlext-light-color-primary-contrast !important;\n  }\n\n  .mdl-color--primary-dark {\n    background-color: $mdlext-light-color-primary-dark !important;\n  }\n\n  .mdl-color--accent {\n    background-color: $mdlext-light-color-accent !important;\n  }\n\n  .mdl-color--accent-contrast {\n    background-color: $mdlext-light-color-accent-contrast !important;\n  }\n\n  .mdl-color-text--primary {\n    color: $mdlext-light-color-primary !important;\n  }\n\n  .mdl-color-text--primary-contrast {\n    color: $mdlext-light-color-primary-contrast !important;\n  }\n\n  .mdl-color-text--primary-dark {\n    color: $mdlext-light-color-primary-dark !important;\n  }\n\n  .mdl-color-text--accent {\n    color: $mdlext-light-color-accent !important;\n  }\n\n  .mdl-color-text--accent-contrast {\n    color: $mdlext-light-color-accent-contrast !important;\n  }\n\n}\n\n// mdl/src/typography/_typography.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n  a {\n    color: $mdlext-light-text-link-color;\n  }\n}\n\n\n// mdl/src/badge/_badge.scss\n// ---------------------------\n.mdlext-light-color-theme {\n  .mdl-badge {\n\n    &[data-badge]::after {\n      background: $mdlext-light-badge-background;\n      color: $mdlext-light-badge-color;\n    }\n\n    &.mdl-badge--no-background {\n      &[data-badge]::after {\n        color: $mdlext-light-badge-color-inverse;\n        background: $mdlext-light-badge-background-inverse;\n      }\n    }\n  }\n}\n\n\n// mdl/src/button/_button.scss\n// ---------------------------\n.mdlext-light-color-theme {\n\n  .mdl-button {\n    background: transparent;\n    color: $mdlext-light-button-secondary-color;\n\n    &:hover {\n      background-color: $mdlext-light-button-hover-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-light-button-focus-color;\n    }\n\n    &:active {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      color: $mdlext-light-button-primary-color-alt;\n\n      &:focus:not(:active) {\n        background-color: $mdlext-light-button-focus-color-alt;\n      }\n    }\n  }\n\n  // Raised buttons\n  .mdl-button--raised {\n    background: $mdlext-light-button-primary-color;\n\n    &:active {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $mdlext-light-button-primary-color-alt;\n      color: $mdlext-light-button-secondary-color-alt;\n\n      &:hover {\n        background-color: $mdlext-light-button-hover-color-alt;\n      }\n\n      &:active {\n        background-color: $mdlext-light-button-active-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $mdlext-light-button-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $mdlext-light-button-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // FABs\n  .mdl-button--fab {\n    background: $mdlext-light-button-primary-color;\n\n    &:active {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $mdlext-light-button-fab-color-alt;\n      color: $mdlext-light-button-fab-text-color-alt;\n\n      &:hover {\n        background-color: $mdlext-light-button-fab-hover-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $mdlext-light-button-fab-active-color-alt;\n      }\n\n      &:active {\n        background-color: $mdlext-light-button-fab-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $mdlext-light-button-fab-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // Icon buttons\n  .mdl-button--icon {\n    color: inherit;\n  }\n\n  // Colorized buttons\n\n  .mdl-button--primary.mdl-button--primary {\n    color: $mdlext-light-button-primary-color-alt;\n\n    & .mdl-ripple {\n      background: $mdlext-light-button-secondary-color-alt;\n    }\n    &.mdl-button--raised,\n    &.mdl-button--fab {\n      color: $mdlext-light-button-secondary-color-alt;\n      background-color: $mdlext-light-button-primary-color-alt;\n    }\n  }\n\n  .mdl-button--accent.mdl-button--accent {\n    color: $mdlext-light-button-fab-color-alt;\n\n    & .mdl-ripple {\n      background: $mdlext-light-button-fab-text-color-alt;\n    }\n    &.mdl-button--raised,\n    &.mdl-button--fab {\n      color: $mdlext-light-button-fab-text-color-alt;\n      background-color: $mdlext-light-button-fab-color-alt;\n    }\n  }\n\n  // Disabled buttons\n\n  .mdl-button {\n    // Bump up specificity by using [disabled] twice.\n    &[disabled][disabled],\n    &.mdl-button--disabled.mdl-button--disabled {\n      color: $mdlext-light-button-secondary-color-disabled;\n      background-color: transparent;\n    }\n\n    &--fab {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        background-color: $mdlext-light-button-primary-color-disabled;\n        color: $mdlext-light-button-secondary-color-disabled;\n      }\n    }\n\n    &--raised {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        background-color: $mdlext-light-button-primary-color-disabled;\n        color: $mdlext-light-button-secondary-color-disabled;\n      }\n    }\n    &--colored {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        color: $mdlext-light-button-secondary-color-disabled;\n      }\n    }\n  }\n}\n\n// mdl/src/slider/_slider.scss\n// ---------------------------\n.mdlext-light-color-theme {\n  .mdl-slider {\n\n    &.is-upgraded {\n      background: transparent;\n      color: $mdlext-light-range-color;\n\n      &::-webkit-slider-runnable-track {\n        background: transparent;\n      }\n\n      &::-moz-range-track {\n        background: transparent;\n      }\n\n      &::-ms-track {\n        background: none;\n        color: transparent;\n      }\n\n      /* stylelint-disable */\n      &::-ms-fill-lower {\n        background: linear-gradient(to right,\n          transparent,\n          transparent 16px,\n          $mdlext-light-range-color 16px,\n          $mdlext-light-range-color 0);\n      }\n\n      &::-ms-fill-upper {\n        background: linear-gradient(to left,\n          transparent,\n          transparent 16px,\n          $mdlext-light-range-bg-color 16px,\n          $mdlext-light-range-bg-color 0);\n      }\n      /* stylelint-enable */\n\n\n      /**************************** Thumbs ****************************/\n      &::-webkit-slider-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      &::-moz-range-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      &:focus:not(:active)::-webkit-slider-thumb {\n        box-shadow: 0 0 0 10px $mdlext-light-range-faded-color;\n      }\n\n      &:focus:not(:active)::-moz-range-thumb {\n        box-shadow: 0 0 0 10px $mdlext-light-range-faded-color;\n      }\n\n      &:active::-webkit-slider-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      &:active::-moz-range-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      &::-ms-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      /* stylelint-disable */\n      &:focus:not(:active)::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          $mdlext-light-range-color 0%,\n          $mdlext-light-range-color 37.5%,\n          $mdlext-light-range-faded-color 37.5%,\n          $mdlext-light-range-faded-color 100%);\n      }\n      /* stylelint-enable */\n\n      &:active::-ms-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n\n      /**************************** 0-value ****************************/\n\n      &.is-lowest-value::-webkit-slider-thumb {\n        border-color: $mdlext-light-range-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value::-moz-range-thumb {\n        border-color: $mdlext-light-range-bg-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {\n        box-shadow: 0 0 0 10px $mdlext-light-range-bg-focus-color;\n        background: $mdlext-light-range-bg-focus-color;\n      }\n\n      &.is-lowest-value:focus:not(:active)::-moz-range-thumb {\n        box-shadow: 0 0 0 10px $mdlext-light-range-bg-focus-color;\n        background: $mdlext-light-range-bg-focus-color;\n      }\n\n      &.is-lowest-value:active::-webkit-slider-thumb {\n        border-color: $mdlext-light-range-bg-color;\n      }\n\n      &.is-lowest-value:active::-moz-range-thumb {\n        border-color: $mdlext-light-range-bg-color;\n      }\n\n      /* stylelint-disable */\n      &.is-lowest-value::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 66.67%,\n          $mdlext-light-range-bg-color 66.67%,\n          $mdlext-light-range-bg-color 100%);\n      }\n\n      &.is-lowest-value:focus:not(:active)::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          $mdlext-light-range-bg-focus-color 0%,\n          $mdlext-light-range-bg-focus-color 25%,\n          $mdlext-light-range-bg-color 25%,\n          $mdlext-light-range-bg-color 37.5%,\n          $mdlext-light-range-bg-focus-color 37.5%,\n          $mdlext-light-range-bg-focus-color 100%);\n      }\n\n      &.is-lowest-value:active::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 77.78%,\n          $mdlext-light-range-bg-color 77.78%,\n          $mdlext-light-range-bg-color 100%);\n      }\n      /* stylelint-enable */\n\n      &.is-lowest-value::-ms-fill-lower {\n        background: transparent;\n      }\n\n      /**************************** Disabled ****************************/\n\n      &:disabled:focus::-webkit-slider-thumb,\n      &:disabled:active::-webkit-slider-thumb,\n      &:disabled::-webkit-slider-thumb {\n        background: $mdlext-light-range-bg-color;\n      }\n\n      &:disabled:focus::-moz-range-thumb,\n      &:disabled:active::-moz-range-thumb,\n      &:disabled::-moz-range-thumb {\n        background: $mdlext-light-range-bg-color;\n      }\n\n      &:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {\n        background-color: $mdlext-light-range-bg-color;\n      }\n\n      &.is-lowest-value:disabled:focus::-webkit-slider-thumb,\n      &.is-lowest-value:disabled:active::-webkit-slider-thumb,\n      &.is-lowest-value:disabled::-webkit-slider-thumb {\n        border-color: $mdlext-light-range-bg-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value:disabled:focus::-moz-range-thumb,\n      &.is-lowest-value:disabled:active::-moz-range-thumb,\n      &.is-lowest-value:disabled::-moz-range-thumb {\n        border-color: $mdlext-light-range-bg-color;\n        background: transparent;\n      }\n\n      &:disabled:focus::-ms-thumb,\n      &:disabled:active::-ms-thumb,\n      &:disabled::-ms-thumb {\n        background: $mdlext-light-range-bg-color;\n      }\n\n      /* stylelint-disable */\n      &.is-lowest-value:disabled:focus::-ms-thumb,\n      &.is-lowest-value:disabled:active::-ms-thumb,\n      &.is-lowest-value:disabled::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 50%,\n          $mdlext-light-range-bg-color 50%,\n          $mdlext-light-range-bg-color 100%);\n      }\n\n      &:disabled::-ms-fill-lower {\n        background: linear-gradient(to right,\n          transparent,\n          transparent 25px,\n          $mdlext-light-range-bg-color 25px,\n          $mdlext-light-range-bg-color 0);\n      }\n      /* stylelint-enable */\n\n    }\n  }\n\n  .mdl-slider__background-flex {\n    background: transparent;\n  }\n\n  .mdl-slider__background-lower {\n    background: $mdlext-light-range-color;\n  }\n\n  // This one styles the upper part of the slider track.\n  .mdl-slider__background-upper {\n    background: $mdlext-light-range-bg-color;\n  }\n}\n\n\n// mdl/src/textfield/_textfield.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-textfield__input {\n    border-bottom-color: $mdlext-light-input-text-bottom-border-color;\n  }\n  .mdl-textfield.is-invalid .mdl-textfield__input {\n    border-color: $mdlext-light-input-text-error-color;\n  }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n  .mdl-textfield.is-disabled .mdl-textfield__input {\n    background-color: transparent;\n    border-bottom-color: $mdlext-light-input-text-disabled-color;\n    color: $mdlext-light-input-text-disabled-text-color;\n  }\n  .mdl-textfield__label {\n    color: $mdlext-light-input-text-label-color;\n  }\n  .mdl-textfield__label::after {\n    background-color: $mdlext-light-input-text-highlight-color;\n  }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n  .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {\n    color: $mdlext-light-input-text-disabled-text-color;\n  }\n  .mdl-textfield--floating-label.is-focused .mdl-textfield__label,\n  .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,\n  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {\n    color: $mdlext-light-input-text-highlight-color;\n  }\n  .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {\n    color: $mdlext-light-input-text-error-color;\n  }\n  .mdl-textfield.is-invalid .mdl-textfield__label::after {\n    background-color: $mdlext-light-input-text-error-color;\n  }\n  .mdl-textfield__error {\n    color: $mdlext-light-input-text-error-color;\n  }\n}\n\n\n// mdl/src/checkbox/_checkbox.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-checkbox__box-outline {\n    border-color: $mdlext-light-checkbox-off-color;\n  }\n  .mdl-checkbox.is-checked .mdl-checkbox__box-outline {\n    border-color: $mdlext-light-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,\n  .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {\n    border-color: $mdlext-light-checkbox-disabled-color;\n  }\n\n  .mdl-checkbox__focus-helper {\n    background-color: transparent;\n  }\n  .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {\n    box-shadow: 0 0 0 ($checkbox-button-size / 2) $mdlext-light-checkbox-focus-color;\n    background-color: $mdlext-light-checkbox-focus-color;\n  }\n\n  .mdl-checkbox__tick-outline {\n    background: transparent;\n  }\n  .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {\n    background-color: $mdlext-light-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,\n  .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {\n    background-color: $mdlext-light-checkbox-disabled-color;\n  }\n\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,\n  .mdl-checkbox.is-disabled .mdl-checkbox__label {\n    color: $mdlext-light-checkbox-disabled-color;\n  }\n\n  .mdl-checkbox__ripple-container .mdl-ripple {\n    background: $mdlext-light-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,\n  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n\n}\n\n// mdl/src/radio/_radio.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n  .mdl-radio__outer-circle {\n    border-color: $mdlext-light-radio-off-color;\n  }\n  .mdl-radio.is-checked .mdl-radio__outer-circle {\n    border-color: $mdlext-light-radio-color;\n  }\n  .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,\n  .mdl-radio.is-disabled .mdl-radio__outer-circle {\n    border-color: $mdlext-light-radio-disabled-color;\n  }\n\n  .mdl-radio__inner-circle {\n    background: $mdlext-light-radio-color;\n  }\n  fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,\n  .mdl-radio.is-disabled .mdl-radio__inner-circle {\n    background: $mdlext-light-radio-disabled-color;\n  }\n\n  fieldset[disabled] .mdl-radio .mdl-radio__label,\n  .mdl-radio.is-disabled .mdl-radio__label {\n    color: $mdlext-light-radio-disabled-color;\n  }\n\n  .mdl-radio__ripple-container .mdl-ripple {\n    background: $mdlext-light-radio-color;\n  }\n  fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,\n  .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n// mdl/src/icon-togglr/_icon-toggle.scss\n// ---------------------------------------\n.mdlext-light-color-theme {\n  .mdl-icon-toggle__label {\n    color: $mdlext-light-icon-toggle-color;\n  }\n  .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {\n    color: $mdlext-light-icon-toggle-checked-color;\n  }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {\n    color: $mdlext-light-icon-toggle-disabled-color;\n  }\n  .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {\n    background-color: $mdlext-light-icon-toggle-focus-color;\n  }\n  .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {\n    background-color: $mdlext-light-icon-toggle-checked-focus-color;\n  }\n  .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: $mdlext-light-icon-toggle-color;\n  }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n\n// mdl/src/switch/_switch.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-switch__track {\n    background: $mdlext-light-switch-off-track-color;\n  }\n  .mdl-switch.is-checked .mdl-switch__track {\n    background: $mdlext-light-switch-track-color;\n  }\n  .mdl-switch__track fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__track {\n    background: $mdlext-light-switch-disabled-track-color;\n  }\n\n  .mdl-switch__thumb {\n    background: $mdlext-light-switch-off-thumb-color;\n  }\n  .mdl-switch.is-checked .mdl-switch__thumb {\n    background: $mdlext-light-switch-thumb-color;\n  }\n  .mdl-switch__thumb fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__thumb {\n    background: $mdlext-light-switch-disabled-thumb-color;\n  }\n\n  .mdl-switch__focus-helper {\n    background-color: transparent;\n  }\n  .mdl-switch.is-focused .mdl-switch__focus-helper {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n  .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {\n    box-shadow: 0 0 0 (($switch-ripple-size - $switch-helper-size) / 2) $mdlext-light-switch-faded-color;\n    background-color: $mdlext-light-switch-faded-color;\n  }\n\n  .mdl-switch__label fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__label {\n    color: $mdlext-light-switch-disabled-thumb-color;\n  }\n\n  .mdl-switch__ripple-container .mdl-ripple {\n    background: $mdlext-light-switch-color;\n  }\n  fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,\n  .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n\n// mdl/src/data-table/_data-table.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-data-table {\n    border-color: $mdlext-light-data-table-divider-color;\n    background-color: $mdlext-light-data-table-background-color;\n\n    tbody {\n      tr {\n        &.is-selected {\n          background-color: $mdlext-light-data-table-selection-color;\n        }\n        &:hover {\n          background-color: $mdlext-light-data-table-hover-color;\n        }\n      }\n    }\n    th {\n      color: $data-table-header-color;\n\n      &.mdl-data-table__header--sorted-ascending,\n      &.mdl-data-table__header--sorted-descending {\n        color: $mdlext-light-data-table-header-sorted-color;\n\n        &:hover {\n          &::before {\n            color: $mdlext-light-data-table-header-sorted-icon-hover-color;\n          }\n        }\n      }\n    }\n  }\n}\n\n\n// mdl/src/menu/_menu.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-menu__outline {\n    background: $mdlext-light-default-dropdown-bg-color;\n  }\n\n  .mdl-menu__item {\n    color: $mdlext-light-default-item-text-color;\n    background-color: transparent;\n    outline-color: $mdlext-light-default-item-outline-color;\n\n    &--full-bleed-divider {\n      border-bottom-color: $mdlext-light-default-item-divider-color;\n    }\n\n    &[disabled],\n    &[data-mdl-disabled] {\n      color: $mdlext-light-disabled-item-text-color;\n      background-color: transparent;\n\n      &:hover {\n        background-color: transparent;\n      }\n\n      &:focus {\n        background-color: transparent;\n      }\n\n      & .mdl-ripple {\n        background: transparent;\n      }\n    }\n\n    &:hover {\n      background-color: $mdlext-light-default-item-hover-bg-color;\n    }\n\n    &:focus {\n      background-color: $mdlext-light-default-item-focus-bg-color;\n    }\n\n    &:active {\n      background-color: $mdlext-light-default-item-active-bg-color;\n    }\n  }\n}\n\n\n// mdl/src/card/_card.scss\n// ----------------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-card {\n    background: $mdlext-light-card-background-color;\n  }\n\n  .mdl-card__media {\n    background-color: $mdlext-light-card-image-placeholder-color;\n  }\n\n  .mdl-card__title {\n    color: $mdlext-light-card-text-color;\n\n    &.mdl-card--border {\n      border-bottom-color: $mdlext-light-card-border-color;\n    }\n  }\n\n  .mdl-card__title-text {\n    color: inherit;\n  }\n\n  .mdl-card__subtitle-text {\n    color: $mdlext-light-card-subtitle-color;\n  }\n\n  .mdl-card__supporting-text {\n    color: $mdlext-light-card-supporting-text-text-color;\n  }\n\n  .mdl-card__actions {\n    background-color: rgba(0, 0, 0, 0);\n\n    &.mdl-card--border {\n      border-top-color: $mdlext-light-card-border-color;\n    }\n  }\n}\n\n\n// mdlext/src/selectfield/_selectfield.scss\n// ----------------------------------------\n.mdlext-light-color-theme {\n\n  .mdlext-selectfield.is-disabled::after {\n    color: $mdlext-light-input-text-disabled-color;\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-light-input-text-disabled-color);\n  }\n\n  .mdlext-selectfield__select {\n    border-bottom-color: $mdlext-light-input-text-bottom-border-color;\n    color: inherit;\n\n    option {\n      background-color: $mdlext-light-content-background-color;\n      color: $mdlext-light-text-color-primary;\n    }\n  }\n  .mdlext-selectfield.is-invalid .mdlext-selectfield__select {\n    border-color: $mdlext-light-input-text-error-color;\n  }\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,\n  .mdlext-selectfield.is-disabled .mdlext-selectfield__select {\n    background-color: transparent;\n    border-bottom-color: $mdlext-light-input-text-disabled-color;\n    color: $mdlext-light-input-text-disabled-text-color;\n  }\n\n  .mdlext-selectfield__label {\n    color: $mdlext-light-input-text-label-color;\n  }\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,\n  .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {\n    color: $mdlext-light-input-text-disabled-text-color;\n  }\n  .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {\n    color: $mdlext-light-input-text-highlight-color;\n  }\n  .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {\n    color: $mdlext-light-input-text-error-color;\n  }\n  .mdlext-selectfield__label::after {\n    background-color: $mdlext-light-input-text-highlight-color;\n  }\n  .mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {\n    background-color: $mdlext-light-input-text-error-color;\n  }\n\n  .mdlext-selectfield__error {\n    color: $mdlext-light-input-text-error-color;\n  }\n}\n\n// mdlext/src/menu-button/_menu-button.scss\n// ----------------------------------------\n.mdlext-menu.mdlext-light-color-theme {\n  background: $mdlext-light-default-dropdown-bg-color;\n}\n\n.mdlext-light-color-theme {\n\n  .mdlext-menu {\n    background: $mdlext-light-default-dropdown-bg-color;\n\n    &__item {\n      color: $mdlext-light-default-item-text-color;\n      background-color: $mdlext-light-default-dropdown-bg-color;\n\n      &:active,\n      &[aria-selected='true'] {\n        background-color: $mdlext-light-default-item-active-bg-color;\n      }\n      &:hover:not([disabled]) {\n        background-color: $mdlext-light-default-item-hover-bg-color;\n      }\n      &:focus {\n        outline-color: $mdlext-light-default-item-outline-color;\n        background-color: $mdlext-light-default-item-focus-bg-color;\n      }\n      &[disabled] {\n        color: $mdlext-light-disabled-item-text-color;\n\n        > * {\n          color: $mdlext-light-disabled-item-text-color;\n        }\n      }\n    }\n    &__item-separator {\n      border-bottom: 1px solid $mdlext-light-default-item-divider-color;\n    }\n  }\n}\n\n\n// mdlext/src/bordered-fields/_bordered-fields.scss\n// -------------------------------------------------\n.mdlext-light-color-theme {\n\n  .mdlext-bordered-fields {\n\n    .mdl-textfield,\n    .mdlext-selectfield {\n\n      .mdl-textfield__input,\n      .mdlext-selectfield__select {\n        background-color: $mdlext-light-bordered-field-background-color;\n        border-color: $mdlext-light-bordered-field-border-color;\n        color: $mdlext-light-bordered-field-input-text-color;\n\n        &:disabled {\n          color: $mdlext-light-bordered-field-input-text-disabled-text-color;\n          background-color: $mdlext-light-bordered-field-disabled-background-color;\n          border-color: $mdlext-light-bordered-field-disabled-border-color;\n        }\n        &:focus {\n          background-color: $mdlext-light-bordered-field-focus-background-color;\n          border-color: $mdlext-light-bordered-field-focus-border-color;\n        }\n      }\n      &.is-invalid {\n        .mdl-textfield__input,\n        .mdlext-selectfield__select {\n          color: $mdlext-light-bordered-field-input-text-error-color;\n          border-color: $mdlext-light-bordered-field-error-border-color;\n          background-color: $mdlext-light-bordered-field-error-background-color;\n\n          &:focus {\n            border-color: $mdlext-light-bordered-field-error-focus-border-color;\n            background-color: $mdlext-light-bordered-field-error-focus-background-color;\n          }\n        }\n      }\n    }\n\n    fieldset[disabled] .mdlext-selectfield::after,\n    .mdlext-selectfield.is-disabled::after {\n      color: $mdlext-light-bordered-field-input-text-disabled-text-color;\n      @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-light-bordered-field-input-text-disabled-text-color);\n    }\n\n    fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n    fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {\n      color: $mdlext-light-bordered-field-input-text-disabled-text-color;\n      background-color: $mdlext-light-bordered-field-disabled-background-color;\n      border-color: $mdlext-light-bordered-field-disabled-border-color;\n    }\n\n    .mdl-textfield,\n    .mdlext-selectfield {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-light-bordered-field-input-text-label-color;\n      }\n      &.mdl-textfield--floating-label.is-focused.is-focused,\n      &.mdl-textfield--floating-label.is-dirty.is-dirty,\n      &.mdl-textfield--floating-label.has-placeholder,\n      &.mdlext-selectfield--floating-label.is-focused.is-focused,\n      &.mdlext-selectfield--floating-label.is-dirty.is-dirty,\n      &.mdlext-selectfield--floating-label.has-placeholder {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-light-bordered-field-input-text-label-focus-color;\n        }\n      }\n      &.mdl-textfield--floating-label.is-disabled.is-disabled,\n      &.mdlext-selectfield--floating-label.is-disabled.is-disabled {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-light-bordered-field-input-text-label-disabled-color;\n        }\n      }\n      &.mdl-textfield--floating-label.is-invalid.is-invalid,\n      &.mdlext-selectfield--floating-label.is-invalid.is-invalid {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-light-bordered-field-input-text-label-error-color;\n        }\n      }\n    }\n\n    fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n    fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {\n      color: $mdlext-light-bordered-field-input-text-label-disabled-color;\n    }\n\n    // Icon(s) and/or button(s) inside textfield\n    .mdl-textfield,\n    .mdlext-selectfield {\n      &.is-disabled i,\n      &.is-disabled .mdl-button {\n        color: $mdlext-light-bordered-field-disabled-border-color;\n      }\n    }\n    fieldset[disabled] .mdl-textfield,\n    fieldset[disabled] .mdlext-selectfield {\n      i,\n      .mdl-button {\n        color: $mdlext-light-bordered-field-disabled-border-color;\n      }\n    }\n  }\n}\n\n\n// mdlext/src/accordion/_accordion.scss\n// ----------------------------------------\n.mdlext-light-color-theme {\n\n  .mdlext-accordion {\n\n    &__tab {\n      color: $mdlext-light-accordion-header-secondary-color;\n      background-color: $mdlext-light-accordion-header-background-color;\n\n      &:focus {\n        outline-color: $mdlext-light-accordion-header-focus-outline-color;\n      }\n      &[aria-expanded='true'] {\n        background-color: $mdlext-light-accordion-header-background-open-color;\n      }\n      &[aria-selected='true'] {\n        background-color: $mdlext-light-accordion-header-background-active-color;\n      }\n      &[disabled] {\n        background-color: $mdlext-light-accordion-header-disabled-color;\n        color: $mdlext-light-accordion-header-secondary-color-disabled;\n        pointer-events: none;\n\n        > * {\n          color: $mdlext-light-accordion-header-secondary-color-disabled;\n        }\n      }\n      &:hover:not([disabled]) {\n        background-color: $mdlext-light-accordion-header-background-hover-color;\n      }\n      &--ripple {\n        &[aria-selected='true']::before {\n          background: $mdlext-light-accordion-ripple-color;\n        }\n      }\n    }\n\n    &__tabpanel {\n      color: $mdlext-light-accordion-content-color;\n      background-color: $mdlext-light-accordion-content-background-color;\n    }\n  }\n\n  // Vertical layout\n  .mdlext-accordion {\n\n    &--vertical {\n\n      .mdlext-accordion__tab {\n        border-top: 1px solid $mdlext-light-accordion-header-border-color;\n\n        &[aria-selected='true']::after {\n          background-color: $mdlext-light-accordion-header-highlight-color;\n        }\n      }\n      .mdlext-accordion__tabpanel {\n        border-top: 1px solid $mdlext-light-accordion-header-border-color;\n      }\n    }\n  }\n\n  // Horizontal layout\n  .mdlext-accordion {\n\n    &--horizontal {\n\n      .mdlext-accordion__tab {\n        border-left: 1px solid $mdlext-light-accordion-header-border-color;\n\n        &[aria-selected='true']::after {\n          background-color: $mdlext-light-accordion-header-highlight-color;\n        }\n      }\n      .mdlext-accordion__tabpanel {\n        border-left: 1px solid $mdlext-light-accordion-header-border-color;\n      }\n    }\n  }\n\n  .mdlext-accordion {\n\n    &__panel:first-child > &__tab {\n      // Use container to set outer borders\n      border-top-color: transparent;\n      border-left-color: transparent;\n    }\n  }\n\n  // Making accordion appear disabled.\n  // Note: does not prevent tabbing into a disabled accordion\n  .mdlext-accordion[disabled] {\n    .mdlext-accordion__tab {\n      background-color: $mdlext-light-accordion-header-disabled-color;\n      color: $mdlext-light-accordion-header-secondary-color-disabled;\n\n      > * {\n        color: $mdlext-light-accordion-header-secondary-color-disabled;\n      }\n    }\n    .mdlext-accordion__tabpanel {\n      opacity: 0.8;\n      filter: blur(1px) grayscale(80%);\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/color-themes/_light-color-theme.scss","@import \"color-themes\";\n\n.mdlext-dark-color-theme {\n  background-color: $mdlext-dark-content-background-color;\n  color: $mdlext-dark-text-color-primary;\n  a {\n    outline-color: inherit;\n  }\n}\n\n// mdl/src/palette/_palette.scss\n.mdlext-dark-color-theme {\n\n  .mdl-color--primary {\n    background-color: $mdlext-dark-color-primary !important;\n  }\n\n  .mdl-color--primary-contrast {\n    background-color: $mdlext-dark-color-primary-contrast !important;\n  }\n\n  .mdl-color--primary-dark {\n    background-color: $mdlext-dark-color-primary-dark !important;\n  }\n\n  .mdl-color--accent {\n    background-color: $mdlext-dark-color-accent !important;\n  }\n\n  .mdl-color--accent-contrast {\n    background-color: $mdlext-dark-color-accent-contrast !important;\n  }\n\n  .mdl-color-text--primary {\n    color: $mdlext-dark-color-primary !important;\n  }\n\n  .mdl-color-text--primary-contrast {\n    color: $mdlext-dark-color-primary-contrast !important;\n  }\n\n  .mdl-color-text--primary-dark {\n    color: $mdlext-dark-color-primary-dark !important;\n  }\n\n  .mdl-color-text--accent {\n    color: $mdlext-dark-color-accent !important;\n  }\n\n  .mdl-color-text--accent-contrast {\n    color: $mdlext-dark-color-accent-contrast !important;\n  }\n\n}\n\n// mdl/src/typography/_typography.scss\n.mdlext-dark-color-theme {\n  a {\n    color: $mdlext-dark-text-link-color;\n  }\n}\n\n\n// mdl/src/badge/_badge.scss\n// ---------------------------\n.mdlext-dark-color-theme {\n  .mdl-badge {\n\n    &[data-badge]::after {\n      background: $mdlext-dark-badge-background;\n      color: $mdlext-dark-badge-color;\n    }\n\n    &.mdl-badge--no-background {\n      &[data-badge]::after {\n        color: $mdlext-dark-badge-color-inverse;\n        background: $mdlext-dark-badge-background-inverse;\n      }\n    }\n  }\n}\n\n\n// mdl/src/button/_button.scss\n// ---------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-button {\n    background: transparent;\n    color: $mdlext-dark-button-secondary-color;\n\n    &:hover {\n      background-color: $mdlext-dark-button-hover-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-dark-button-focus-color;\n    }\n\n    &:active {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      color: $mdlext-dark-button-primary-color-alt;\n\n      &:focus:not(:active) {\n        background-color: $mdlext-dark-button-focus-color-alt;\n      }\n    }\n  }\n\n  // Raised buttons\n  .mdl-button--raised {\n    background: $mdlext-dark-button-primary-color;\n\n    &:active {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $mdlext-dark-button-primary-color-alt;\n      color: $mdlext-dark-button-secondary-color-alt;\n\n      &:hover {\n        background-color: $mdlext-dark-button-hover-color-alt;\n      }\n\n      &:active {\n        background-color: $mdlext-dark-button-active-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $mdlext-dark-button-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $mdlext-dark-button-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // FABs\n  .mdl-button--fab {\n    background: $mdlext-dark-button-primary-color;\n\n    &:active {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $mdlext-dark-button-fab-color-alt;\n      color: $mdlext-dark-button-fab-text-color-alt;\n\n      &:hover {\n        background-color: $mdlext-dark-button-fab-hover-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $mdlext-dark-button-fab-active-color-alt;\n      }\n\n      &:active {\n        background-color: $mdlext-dark-button-fab-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $mdlext-dark-button-fab-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // Icon buttons\n  .mdl-button--icon {\n    color: inherit;\n  }\n\n  // Colorized buttons\n\n  .mdl-button--primary.mdl-button--primary {\n    color: $mdlext-dark-button-primary-color-alt;\n\n    & .mdl-ripple {\n      background: $mdlext-dark-button-secondary-color-alt;\n    }\n    &.mdl-button--raised,\n    &.mdl-button--fab {\n      color: $mdlext-dark-button-secondary-color-alt;\n      background-color: $mdlext-dark-button-primary-color-alt;\n    }\n  }\n\n  .mdl-button--accent.mdl-button--accent {\n    color: $mdlext-dark-button-fab-color-alt;\n\n    & .mdl-ripple {\n      background: $mdlext-dark-button-fab-text-color-alt;\n    }\n    &.mdl-button--raised,\n    &.mdl-button--fab {\n      color: $mdlext-dark-button-fab-text-color-alt;\n      background-color: $mdlext-dark-button-fab-color-alt;\n    }\n  }\n\n  // Disabled buttons\n\n  .mdl-button {\n    // Bump up specificity by using [disabled] twice.\n    &[disabled][disabled],\n    &.mdl-button--disabled.mdl-button--disabled {\n      color: $mdlext-dark-button-secondary-color-disabled;\n      background-color: transparent;\n    }\n\n    &--fab {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        background-color: $mdlext-dark-button-primary-color-disabled;\n        color: $mdlext-dark-button-secondary-color-disabled;\n      }\n    }\n\n    &--raised {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        background-color: $mdlext-dark-button-primary-color-disabled;\n        color: $mdlext-dark-button-secondary-color-disabled;\n      }\n    }\n    &--colored {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        color: $mdlext-dark-button-secondary-color-disabled;\n      }\n    }\n  }\n}\n\n\n// mdl/src/slider/_slider.scss\n// ---------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-slider {\n\n    &.is-upgraded {\n      background: transparent;\n      color: $mdlext-dark-range-color;\n\n      &::-webkit-slider-runnable-track {\n        background: transparent;\n      }\n\n      &::-moz-range-track {\n        background: transparent;\n      }\n\n      &::-ms-track {\n        background: none;\n        color: transparent;\n      }\n\n      /* stylelint-disable */\n      &::-ms-fill-lower {\n        background: linear-gradient(\n          to right,\n          transparent,\n          transparent 16px,\n          $mdlext-dark-range-color 16px,\n          $mdlext-dark-range-color 0\n        );\n      }\n\n      &::-ms-fill-upper {\n        background: linear-gradient(\n          to left,\n          transparent,\n          transparent 16px,\n          $mdlext-dark-range-bg-color 16px,\n          $mdlext-dark-range-bg-color 0);\n      }\n      /* stylelint-enable */\n\n      &::-webkit-slider-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      &::-moz-range-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      &:focus:not(:active)::-webkit-slider-thumb {\n        box-shadow: 0 0 0 10px $mdlext-dark-range-faded-color;\n      }\n\n      &:focus:not(:active)::-moz-range-thumb {\n        box-shadow: 0 0 0 10px $mdlext-dark-range-faded-color;\n      }\n\n      &:active::-webkit-slider-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      &:active::-moz-range-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      &::-ms-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      /* stylelint-disable */\n      &:focus:not(:active)::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          $mdlext-dark-range-color 0%,\n          $mdlext-dark-range-color 37.5%,\n          $mdlext-dark-range-faded-color 37.5%,\n          $mdlext-dark-range-faded-color 100%);\n      }\n      /* stylelint-enable */\n\n      &:active::-ms-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n\n      /**************************** 0-value ****************************/\n\n      &.is-lowest-value::-webkit-slider-thumb {\n        border-color: $mdlext-dark-range-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value::-moz-range-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {\n        box-shadow: 0 0 0 10px $mdlext-dark-range-bg-focus-color;\n        background: $mdlext-dark-range-bg-focus-color;\n      }\n\n      &.is-lowest-value:focus:not(:active)::-moz-range-thumb {\n        box-shadow: 0 0 0 10px $mdlext-dark-range-bg-focus-color;\n        background: $mdlext-dark-range-bg-focus-color;\n      }\n\n      &.is-lowest-value:active::-webkit-slider-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n      }\n\n      &.is-lowest-value:active::-moz-range-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n      }\n\n      /* stylelint-disable */\n      &.is-lowest-value::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 66.67%,\n          $mdlext-dark-range-bg-color 66.67%,\n          $mdlext-dark-range-bg-color 100%);\n      }\n\n      &.is-lowest-value:focus:not(:active)::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          $mdlext-dark-range-bg-focus-color 0%,\n          $mdlext-dark-range-bg-focus-color 25%,\n          $mdlext-dark-range-bg-color 25%,\n          $mdlext-dark-range-bg-color 37.5%,\n          $mdlext-dark-range-bg-focus-color 37.5%,\n          $mdlext-dark-range-bg-focus-color 100%);\n      }\n\n      &.is-lowest-value:active::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 77.78%,\n          $mdlext-dark-range-bg-color 77.78%,\n          $mdlext-dark-range-bg-color 100%);\n      }\n      /* stylelint-enable */\n\n      &.is-lowest-value::-ms-fill-lower {\n        background: transparent;\n      }\n\n      /**************************** Disabled ****************************/\n\n      &:disabled:focus::-webkit-slider-thumb,\n      &:disabled:active::-webkit-slider-thumb,\n      &:disabled::-webkit-slider-thumb {\n        background: $mdlext-dark-range-bg-color;\n      }\n\n      &:disabled:focus::-moz-range-thumb,\n      &:disabled:active::-moz-range-thumb,\n      &:disabled::-moz-range-thumb {\n        background: $mdlext-dark-range-bg-color;\n      }\n\n      &:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {\n        background-color: $mdlext-dark-range-bg-color;\n      }\n\n      &.is-lowest-value:disabled:focus::-webkit-slider-thumb,\n      &.is-lowest-value:disabled:active::-webkit-slider-thumb,\n      &.is-lowest-value:disabled::-webkit-slider-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value:disabled:focus::-moz-range-thumb,\n      &.is-lowest-value:disabled:active::-moz-range-thumb,\n      &.is-lowest-value:disabled::-moz-range-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n        background: transparent;\n      }\n\n      &:disabled:focus::-ms-thumb,\n      &:disabled:active::-ms-thumb,\n      &:disabled::-ms-thumb {\n        background: $mdlext-dark-range-bg-color;\n      }\n\n      /* stylelint-disable */\n      &.is-lowest-value:disabled:focus::-ms-thumb,\n      &.is-lowest-value:disabled:active::-ms-thumb,\n      &.is-lowest-value:disabled::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 50%,\n          $mdlext-dark-range-bg-color 50%,\n          $mdlext-dark-range-bg-color 100%);\n      }\n\n      &:disabled::-ms-fill-lower {\n        background: linear-gradient(to right,\n          transparent,\n          transparent 25px,\n          $mdlext-dark-range-bg-color 25px,\n          $mdlext-dark-range-bg-color 0);\n      }\n      /* stylelint-enable */\n\n    }\n  }\n\n  .mdl-slider__background-flex {\n    background: transparent;\n  }\n\n  .mdl-slider__background-lower {\n    background: $mdlext-dark-range-color;\n  }\n\n  // This one styles the upper part of the slider track.\n  .mdl-slider__background-upper {\n    background: $mdlext-dark-range-bg-color;\n  }\n}\n\n\n// mdl/src/textfield/_textfield.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-textfield__input {\n    border-bottom-color: $mdlext-dark-input-text-bottom-border-color;\n  }\n  .mdl-textfield.is-invalid .mdl-textfield__input {\n    border-color: $mdlext-dark-input-text-error-color;\n  }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n  .mdl-textfield.is-disabled .mdl-textfield__input {\n    background-color: transparent;\n    border-bottom-color: $mdlext-dark-input-text-disabled-color;\n    color: $mdlext-dark-input-text-disabled-text-color;\n  }\n  .mdl-textfield__label {\n    color: $mdlext-dark-input-text-label-color;\n  }\n  .mdl-textfield__label::after {\n    background-color: $mdlext-dark-input-text-highlight-color;\n  }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n  .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {\n    color: $mdlext-dark-input-text-disabled-text-color;\n  }\n  .mdl-textfield--floating-label.is-focused .mdl-textfield__label,\n  .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,\n  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {\n    color: $mdlext-dark-input-text-highlight-color;\n  }\n  .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {\n    color: $mdlext-dark-input-text-error-color;\n  }\n  .mdl-textfield.is-invalid .mdl-textfield__label::after {\n    background-color: $mdlext-dark-input-text-error-color;\n  }\n  .mdl-textfield__error {\n    color: $mdlext-dark-input-text-error-color;\n  }\n}\n\n\n// mdl/src/checkbox/_checkbox.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-checkbox__box-outline {\n    border-color: $mdlext-dark-checkbox-off-color;\n  }\n  .mdl-checkbox.is-checked .mdl-checkbox__box-outline {\n    border-color: $mdlext-dark-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,\n  .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {\n    border-color: $mdlext-dark-checkbox-disabled-color;\n  }\n\n  .mdl-checkbox__focus-helper {\n    background-color: transparent;\n  }\n  .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {\n    box-shadow: 0 0 0 ($checkbox-button-size / 2) $mdlext-dark-checkbox-focus-color;\n    background-color: $mdlext-dark-checkbox-focus-color;\n  }\n\n  .mdl-checkbox__tick-outline {\n    background: transparent;\n  }\n  .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {\n    background-color: $mdlext-dark-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,\n  .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {\n    background-color: $mdlext-dark-checkbox-disabled-color;\n  }\n\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,\n  .mdl-checkbox.is-disabled .mdl-checkbox__label {\n    color: $mdlext-dark-checkbox-disabled-color;\n  }\n\n  .mdl-checkbox__ripple-container .mdl-ripple {\n    background: $mdlext-dark-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,\n  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n\n}\n\n// mdl/src/radio/_radio.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n  .mdl-radio__outer-circle {\n    border-color: $mdlext-dark-radio-off-color;\n  }\n  .mdl-radio.is-checked .mdl-radio__outer-circle {\n    border-color: $mdlext-dark-radio-color;\n  }\n  .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,\n  .mdl-radio.is-disabled .mdl-radio__outer-circle {\n    border-color: $mdlext-dark-radio-disabled-color;\n  }\n\n  .mdl-radio__inner-circle {\n    background: $mdlext-dark-radio-color;\n  }\n  fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,\n  .mdl-radio.is-disabled .mdl-radio__inner-circle {\n    background: $mdlext-dark-radio-disabled-color;\n  }\n\n  fieldset[disabled] .mdl-radio .mdl-radio__label,\n  .mdl-radio.is-disabled .mdl-radio__label {\n    color: $mdlext-dark-radio-disabled-color;\n  }\n\n  .mdl-radio__ripple-container .mdl-ripple {\n    background: $mdlext-dark-radio-color;\n  }\n  fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,\n  .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n// mdl/src/icon-togglr/_icon-toggle.scss\n// ---------------------------------------\n.mdlext-dark-color-theme {\n  .mdl-icon-toggle__label {\n    color: $mdlext-dark-icon-toggle-color;\n  }\n  .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {\n    color: $mdlext-dark-icon-toggle-checked-color;\n  }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {\n    color: $mdlext-dark-icon-toggle-disabled-color;\n  }\n  .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {\n    background-color: $mdlext-dark-icon-toggle-focus-color;\n  }\n  .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {\n    background-color: $mdlext-dark-icon-toggle-checked-focus-color;\n  }\n  .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: $mdlext-dark-icon-toggle-color;\n  }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n\n// mdl/src/switch/_switch.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-switch__track {\n    background: $mdlext-dark-switch-off-track-color;\n  }\n  .mdl-switch.is-checked .mdl-switch__track {\n    background: $mdlext-dark-switch-track-color;\n  }\n  .mdl-switch__track fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__track {\n    background: $mdlext-dark-switch-disabled-track-color;\n  }\n\n  .mdl-switch__thumb {\n    background: $mdlext-dark-switch-off-thumb-color;\n  }\n  .mdl-switch.is-checked .mdl-switch__thumb {\n    background: $mdlext-dark-switch-thumb-color;\n  }\n  .mdl-switch__thumb fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__thumb {\n    background: $mdlext-dark-switch-disabled-thumb-color;\n  }\n\n  .mdl-switch__focus-helper {\n    background-color: transparent;\n  }\n  .mdl-switch.is-focused .mdl-switch__focus-helper {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n  .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {\n    box-shadow: 0 0 0 (($switch-ripple-size - $switch-helper-size) / 2) $mdlext-dark-switch-faded-color;\n    background-color: $mdlext-dark-switch-faded-color;\n  }\n\n  .mdl-switch__label fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__label {\n    color: $mdlext-dark-switch-disabled-thumb-color;\n  }\n\n  .mdl-switch__ripple-container .mdl-ripple {\n    background: $mdlext-dark-switch-color;\n  }\n  fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,\n  .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n\n}\n\n\n// mdl/src/data-table/_data-table.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-data-table {\n    border-color: $mdlext-dark-data-table-divider-color;\n    background-color: $mdlext-dark-data-table-background-color;\n\n    tbody {\n      tr {\n        &.is-selected {\n          background-color: $mdlext-dark-data-table-selection-color;\n        }\n\n        &:hover {\n          background-color: $mdlext-dark-data-table-hover-color;\n        }\n      }\n    }\n\n    th {\n      color: $mdlext-dark-data-table-header-color;\n\n      &.mdl-data-table__header--sorted-ascending,\n      &.mdl-data-table__header--sorted-descending {\n        color: $mdlext-dark-data-table-header-sorted-color;\n\n        &:hover {\n          &::before {\n            color: $mdlext-dark-data-table-header-sorted-icon-hover-color;\n          }\n        }\n      }\n    }\n  }\n}\n\n// mdl/src/menu/_menu.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-menu__outline {\n    background: $mdlext-dark-default-dropdown-bg-color;\n  }\n\n  .mdl-menu__item {\n    color: $mdlext-dark-default-item-text-color;\n    background-color: transparent;\n    outline-color: $mdlext-dark-default-item-outline-color;\n\n    &--full-bleed-divider {\n      border-bottom-color: $mdlext-dark-default-item-divider-color;\n    }\n\n    &[disabled],\n    &[data-mdl-disabled] {\n      color: $mdlext-dark-disabled-item-text-color;\n      background-color: transparent;\n\n      &:hover {\n        background-color: transparent;\n      }\n\n      &:focus {\n        background-color: transparent;\n      }\n\n      & .mdl-ripple {\n        background: transparent;\n      }\n    }\n\n    &:hover {\n      background-color: $mdlext-dark-default-item-hover-bg-color;\n    }\n\n    &:focus {\n      background-color: $mdlext-dark-default-item-focus-bg-color;\n    }\n\n    &:active {\n      background-color: $mdlext-dark-default-item-active-bg-color;\n    }\n  }\n}\n\n// mdl/src/card/_card.scss\n// ----------------------------------------\n.mdlext-dark-color-theme {\n  .mdl-card {\n    background: $mdlext-dark-card-background-color;\n  }\n\n  .mdl-card__media {\n    background-color: $mdlext-dark-card-image-placeholder-color;\n  }\n\n  .mdl-card__title {\n    color: $mdlext-dark-card-text-color;\n\n    &.mdl-card--border {\n      border-bottom-color: $mdlext-dark-card-border-color;\n    }\n  }\n\n  .mdl-card__title-text {\n    color: inherit;\n  }\n\n  .mdl-card__subtitle-text {\n    color: $mdlext-dark-card-subtitle-color;\n  }\n\n  .mdl-card__supporting-text {\n    color: $mdlext-dark-card-supporting-text-text-color;\n  }\n\n  .mdl-card__actions {\n    background-color: rgba(255, 255, 255, 0);\n\n    &.mdl-card--border {\n      border-top-color: $mdlext-dark-card-border-color;\n    }\n  }\n}\n\n\n// mdlext/src/selectfield/_selectfield.scss\n// ----------------------------------------\n.mdlext-dark-color-theme {\n\n  .mdlext-selectfield.is-disabled::after {\n    color: $mdlext-dark-input-text-disabled-color;\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-dark-input-text-disabled-color);\n  }\n\n  .mdlext-selectfield__select {\n    border-bottom-color: $mdlext-dark-input-text-bottom-border-color;\n    color: inherit;\n\n    option {\n      background-color: $mdlext-dark-content-background-color;\n      color: $mdlext-dark-text-color-primary;\n    }\n  }\n  .mdlext-selectfield.is-invalid .mdlext-selectfield__select {\n    border-color: $mdlext-dark-input-text-error-color;\n  }\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,\n  .mdlext-selectfield.is-disabled .mdlext-selectfield__select {\n    background-color: transparent;\n    border-bottom-color: $mdlext-dark-input-text-disabled-color;\n    color: $mdlext-dark-input-text-disabled-text-color;\n  }\n\n  .mdlext-selectfield__label {\n    color: $mdlext-dark-input-text-label-color;\n  }\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,\n  .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {\n    color: $mdlext-dark-input-text-disabled-text-color;\n  }\n  .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {\n    color: $mdlext-dark-input-text-highlight-color;\n  }\n  .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {\n    color: $mdlext-dark-input-text-error-color;\n  }\n  .mdlext-selectfield__label::after {\n    background-color: $mdlext-dark-input-text-highlight-color;\n  }\n  .mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {\n    background-color: $mdlext-dark-input-text-error-color;\n  }\n\n  .mdlext-selectfield__error {\n    color: $mdlext-dark-input-text-error-color;\n  }\n}\n\n\n// mdlext/src/menu-button/_menu-button.scss\n// ----------------------------------------\n.mdlext-menu.mdlext-dark-color-theme {\n  background: $mdlext-dark-default-dropdown-bg-color;\n}\n\n.mdlext-dark-color-theme {\n\n  .mdlext-menu {\n    background: $mdlext-dark-default-dropdown-bg-color;\n\n    &__item {\n      color: $mdlext-dark-default-item-text-color;\n      background-color: $mdlext-dark-default-dropdown-bg-color;\n\n      &:active,\n      &[aria-selected='true'] {\n        background-color: $mdlext-dark-default-item-active-bg-color;\n      }\n      &:hover:not([disabled]) {\n        background-color: $mdlext-dark-default-item-hover-bg-color;\n      }\n      &:focus {\n        outline-color: $mdlext-dark-default-item-outline-color;\n        background-color: $mdlext-dark-default-item-focus-bg-color;\n      }\n      &[disabled] {\n        color: $mdlext-dark-disabled-item-text-color;\n\n        > * {\n          color: $mdlext-dark-disabled-item-text-color;\n        }\n      }\n    }\n    &__item-separator {\n      border-bottom: 1px solid $mdlext-dark-default-item-divider-color;\n    }\n  }\n}\n\n\n// mdlext/src/bordered-fields/_bordered-fields.scss\n// -------------------------------------------------\n.mdlext-dark-color-theme {\n\n  .mdlext-bordered-fields {\n\n    .mdl-textfield,\n    .mdlext-selectfield {\n\n      .mdl-textfield__input,\n      .mdlext-selectfield__select {\n        background-color: $mdlext-dark-bordered-field-background-color;\n        border-color: $mdlext-dark-bordered-field-border-color;\n        color: $mdlext-dark-bordered-field-input-text-color;\n\n        &:disabled {\n          color: $mdlext-dark-bordered-field-input-text-disabled-text-color;\n          background-color: $mdlext-dark-bordered-field-disabled-background-color;\n          border-color: $mdlext-dark-bordered-field-disabled-border-color;\n        }\n        &:focus {\n          background-color: $mdlext-dark-bordered-field-focus-background-color;\n          border-color: $mdlext-dark-bordered-field-focus-border-color;\n        }\n      }\n      &.is-invalid {\n        .mdl-textfield__input,\n        .mdlext-selectfield__select {\n          color: $mdlext-dark-bordered-field-input-text-error-color;\n          border-color: $mdlext-dark-bordered-field-error-border-color;\n          background-color: $mdlext-dark-bordered-field-error-background-color;\n\n          &:focus {\n            border-color: $mdlext-dark-bordered-field-error-focus-border-color;\n            background-color: $mdlext-dark-bordered-field-error-focus-background-color;\n          }\n        }\n      }\n    }\n\n    fieldset[disabled] .mdlext-selectfield::after,\n    .mdlext-selectfield.is-disabled::after {\n      color: $mdlext-dark-bordered-field-input-text-disabled-text-color;\n      @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-dark-bordered-field-input-text-disabled-text-color);\n    }\n\n    fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n    fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {\n      color: $mdlext-dark-bordered-field-input-text-disabled-text-color;\n      background-color: $mdlext-dark-bordered-field-disabled-background-color;\n      border-color: $mdlext-dark-bordered-field-disabled-border-color;\n    }\n\n    .mdl-textfield,\n    .mdlext-selectfield {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-dark-bordered-field-input-text-label-color;\n      }\n      &.mdl-textfield--floating-label.is-focused.is-focused,\n      &.mdl-textfield--floating-label.is-dirty.is-dirty,\n      &.mdl-textfield--floating-label.has-placeholder,\n      &.mdlext-selectfield--floating-label.is-focused.is-focused,\n      &.mdlext-selectfield--floating-label.is-dirty.is-dirty,\n      &.mdlext-selectfield--floating-label.has-placeholder {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-dark-bordered-field-input-text-label-focus-color;\n        }\n      }\n      &.mdl-textfield--floating-label.is-disabled.is-disabled,\n      &.mdlext-selectfield--floating-label.is-disabled.is-disabled {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-dark-bordered-field-input-text-label-disabled-color;\n        }\n      }\n      &.mdl-textfield--floating-label.is-invalid.is-invalid,\n      &.mdlext-selectfield--floating-label.is-invalid.is-invalid {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-dark-bordered-field-input-text-label-error-color;\n        }\n      }\n    }\n\n    fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n    fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {\n      color: $mdlext-dark-bordered-field-input-text-label-disabled-color;\n    }\n\n    // Icon(s) and/or button(s) inside textfield\n    .mdl-textfield,\n    .mdlext-selectfield {\n      &.is-disabled i,\n      &.is-disabled .mdl-button {\n        color: $mdlext-dark-bordered-field-disabled-border-color;\n      }\n    }\n    fieldset[disabled] .mdl-textfield,\n    fieldset[disabled] .mdlext-selectfield {\n      i,\n      .mdl-button {\n        color: $mdlext-dark-bordered-field-disabled-border-color;\n      }\n    }\n  }\n\n}\n\n\n// mdlext/src/accordion/_accordion.scss\n// ----------------------------------------\n.mdlext-dark-color-theme {\n\n  .mdlext-accordion {\n\n    &__tab {\n      color: $mdlext-dark-accordion-header-secondary-color;\n      background-color: $mdlext-dark-accordion-header-background-color;\n\n      &:focus {\n        outline-color: $mdlext-dark-accordion-header-focus-outline-color;\n      }\n      &[aria-expanded='true'] {\n        background-color: $mdlext-dark-accordion-header-background-open-color;\n      }\n      &[aria-selected='true'] {\n        background-color: $mdlext-dark-accordion-header-background-active-color;\n      }\n      &[disabled] {\n        background-color: $mdlext-dark-accordion-header-disabled-color;\n        color: $mdlext-dark-accordion-header-secondary-color-disabled;\n        pointer-events: none;\n\n        > * {\n          color: $mdlext-dark-accordion-header-secondary-color-disabled;\n        }\n      }\n      &:hover:not([disabled]) {\n        background-color: $mdlext-dark-accordion-header-background-hover-color;\n      }\n      &--ripple {\n        &[aria-selected='true']::before {\n          background: $mdlext-dark-accordion-ripple-color;\n        }\n      }\n    }\n\n    &__tabpanel {\n      color: $mdlext-dark-accordion-content-color;\n      background-color: $mdlext-dark-accordion-content-background-color;\n    }\n  }\n\n  // Vertical layout\n  .mdlext-accordion {\n\n    &--vertical {\n\n      .mdlext-accordion__tab {\n        border-top: 1px solid $mdlext-dark-accordion-header-border-color;\n\n        &[aria-selected='true']::after {\n          background-color: $mdlext-dark-accordion-header-highlight-color;\n        }\n      }\n      .mdlext-accordion__tabpanel {\n        border-top: 1px solid $mdlext-dark-accordion-header-border-color;\n      }\n    }\n  }\n\n  // Horizontal layout\n  .mdlext-accordion {\n\n    &--horizontal {\n\n      .mdlext-accordion__tab {\n        border-left: 1px solid $mdlext-dark-accordion-header-border-color;\n\n        &[aria-selected='true']::after {\n          background-color: $mdlext-dark-accordion-header-highlight-color;\n        }\n      }\n      .mdlext-accordion__tabpanel {\n        border-left: 1px solid $mdlext-dark-accordion-header-border-color;\n      }\n    }\n  }\n\n  .mdlext-accordion {\n\n    &__panel:first-child > &__tab {\n      // Use container to set outer borders\n      border-top-color: transparent;\n      border-left-color: transparent;\n    }\n  }\n\n  // Making accordion appear disabled.\n  // Note: does not prevent tabbing into a disabled accordion\n  .mdlext-accordion[disabled] {\n    .mdlext-accordion__tab {\n      background-color: $mdlext-dark-accordion-header-disabled-color;\n      color: $mdlext-dark-accordion-header-secondary-color-disabled;\n\n      > * {\n        color: $mdlext-dark-accordion-header-secondary-color-disabled;\n      }\n    }\n    .mdlext-accordion__tabpanel {\n      opacity: 0.8;\n      filter: blur(1px) grayscale(80%);\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/color-themes/_dark-color-theme.scss"],"sourceRoot":""}
\ No newline at end of file
diff --git a/node_modules/mdl-ext/lib/mdl-ext.css b/node_modules/mdl-ext/lib/mdl-ext.css
new file mode 100644
index 0000000..a26dc18
--- /dev/null
+++ b/node_modules/mdl-ext/lib/mdl-ext.css
@@ -0,0 +1,5765 @@
+/**
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*------------------------------------*    $CONTENTS
+\*------------------------------------*/
+
+/**
+ * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
+ * -----Typography
+ * -----Colors
+ * -----Textfield
+ * -----Switch
+ * -----Spinner
+ * -----Radio
+ * -----Menu
+ * -----List
+ * -----Layout
+ * -----Icon toggles
+ * -----Footer
+ * -----Column
+ * -----Checkbox
+ * -----Card
+ * -----Button
+ * -----Animation
+ * -----Progress
+ * -----Badge
+ * -----Shadows
+ * -----Grid
+ * -----Data table
+ * -----Dialog
+ * -----Snackbar
+ * -----Tooltip
+ * -----Chip
+ *
+ * Even though all variables have the `!default` directive, most of them
+ * should not be changed as they are dependent one another. This can cause
+ * visual distortions (like alignment issues) that are hard to track down
+ * and fix.
+ */
+
+/* ==========  TYPOGRAPHY  ========== */
+
+/* We're splitting fonts into "preferred" and "performance" in order to optimize
+   page loading. For important text, such as the body, we want it to load
+   immediately and not wait for the web font load, whereas for other sections,
+   such as headers and titles, we're OK with things taking a bit longer to load.
+   We do have some optional classes and parameters in the mixins, in case you
+   definitely want to make sure you're using the preferred font and don't mind
+   the performance hit.
+   We should be able to improve on this once CSS Font Loading L3 becomes more
+   widely available.
+*/
+
+/* ==========  COLORS  ========== */
+
+/**
+*
+* Material design color palettes.
+* @see http://www.google.com/design/spec/style/color.html
+*
+**/
+
+/**
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* ==========  Color Palettes  ========== */
+
+/* colors.scss */
+
+/**
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* ==========  IMAGES  ========== */
+
+/* ==========  Color & Themes  ========== */
+
+/* ==========  Typography  ========== */
+
+/* ==========  Components  ========== */
+
+/* ==========  Standard Buttons  ========== */
+
+/* ==========  Icon Toggles  ========== */
+
+/* ==========  Radio Buttons  ========== */
+
+/* ==========  Ripple effect  ========== */
+
+/* ==========  Layout  ========== */
+
+/* ==========  Content Tabs  ========== */
+
+/* ==========  Checkboxes  ========== */
+
+/* ==========  Switches  ========== */
+
+/* ==========  Spinner  ========== */
+
+/* ==========  Text fields  ========== */
+
+/* ==========  Card  ========== */
+
+/* ==========  Sliders ========== */
+
+/* ========== Progress ========== */
+
+/* ==========  List ========== */
+
+/* ==========  Item ========== */
+
+/* ==========  Dropdown menu ========== */
+
+/* ==========  Tooltips  ========== */
+
+/* ==========  Footer  ========== */
+
+/* TEXTFIELD */
+
+/* SWITCH */
+
+/* SPINNER */
+
+/* RADIO */
+
+/* MENU */
+
+/* LIST */
+
+/* LAYOUT */
+
+/* ICON TOGGLE */
+
+/* FOOTER */
+
+/*mega-footer*/
+
+/*mini-footer*/
+
+/* CHECKBOX */
+
+/* CARD */
+
+/* Card dimensions */
+
+/* Cover image */
+
+/* BUTTON */
+
+/**
+ *
+ * Dimensions
+ *
+ */
+
+/* ANIMATION */
+
+/* PROGRESS */
+
+/* BADGE */
+
+/* SHADOWS */
+
+/* GRID */
+
+/* DATA TABLE */
+
+/* DIALOG */
+
+/* SNACKBAR */
+
+/* TOOLTIP */
+
+/* CHIP */
+
+/**
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* Typography */
+
+/* Shadows */
+
+/* Animations */
+
+/* Dialog */
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========   Sticky Header   ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========     Accordion     ========== */
+
+/* ==========     Dialog     ========== */
+
+/* ==========     Lightbox     ========== */
+
+/* ==========  Lightboard  ========== */
+
+/* ==========  Carousel  ========== */
+
+/* ==========  Bordered fields  ========== */
+
+/* ==========  Color Themes  ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/**
+ * @license
+ * Copyright 2016-2017 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * This code is built with Google Material Design Lite,
+ * which is Licensed under the Apache License, Version 2.0
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+.mdlext-aria-expanded-plus-minus {
+  font-family: inherit;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 24px;
+  display: inline-block;
+  width: 1em;
+  height: 1em;
+  line-height: 1;
+  text-transform: none;
+  letter-spacing: normal;
+  word-wrap: normal;
+  white-space: nowrap;
+  direction: ltr;
+  vertical-align: middle;
+  -webkit-font-smoothing: antialiased;
+  -webkit-font-feature-settings: 'liga';
+  text-rendering: optimizeLegibility;
+  -moz-osx-font-smoothing: grayscale;
+  font-feature-settings: 'liga';
+}
+
+.mdlext-aria-expanded-plus-minus::after {
+  content: "+";
+  margin-left: 0;
+}
+
+[aria-expanded='true'] > .mdlext-aria-expanded-plus-minus::after {
+  content: "-";
+  margin-left: 0;
+}
+
+.mdlext-aria-expanded-more-less {
+  font-family: "Material Icons";
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 24px;
+  display: inline-block;
+  width: 1em;
+  height: 1em;
+  line-height: 1;
+  text-transform: none;
+  letter-spacing: normal;
+  word-wrap: normal;
+  white-space: nowrap;
+  direction: ltr;
+  vertical-align: middle;
+  -webkit-font-smoothing: antialiased;
+  -webkit-font-feature-settings: 'liga';
+  text-rendering: optimizeLegibility;
+  -moz-osx-font-smoothing: grayscale;
+  font-feature-settings: 'liga';
+}
+
+.mdlext-aria-expanded-more-less::after {
+  content: "expand_more";
+  margin-left: 0;
+}
+
+[aria-expanded='true'] > .mdlext-aria-expanded-more-less::after {
+  content: "expand_less";
+  margin-left: 0;
+}
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========   Sticky Header   ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========     Accordion     ========== */
+
+/* ==========     Dialog     ========== */
+
+/* ==========     Lightbox     ========== */
+
+/* ==========  Lightboard  ========== */
+
+/* ==========  Carousel  ========== */
+
+/* ==========  Bordered fields  ========== */
+
+/* ==========  Color Themes  ========== */
+
+.mdlext-layout__sticky-header {
+  position: absolute;
+  overflow: visible;
+  background: transparent linear-gradient(to bottom, #3f51b5 0, #3f51b5 100%);
+  transition: 0.1s ease-in-out;
+}
+
+.mdlext-layout__sticky-header.mdlext-is-scroll {
+  background: transparent linear-gradient(to bottom, rgba(63, 81, 181, 0.98) 100%, rgba(63, 81, 181, 0.95) 100%);
+}
+
+*:not(.is-small-screen) .mdlext-layout__sticky-header .mdl-layout__drawer-button {
+  visibility: hidden;
+}
+
+*:not(.is-small-screen) .mdlext-layout__sticky-header .mdl-layout__header-row {
+  padding-left: 16px;
+}
+
+*:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header,
+.is-small-screen.has-drawer .mdlext-layout__sticky-header {
+  display: -ms-flexbox;
+  display: flex;
+}
+
+*:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header .mdl-layout__drawer-button,
+.is-small-screen.has-drawer .mdlext-layout__sticky-header .mdl-layout__drawer-button {
+  visibility: visible;
+}
+
+*:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header .mdl-layout__header-row,
+.is-small-screen.has-drawer .mdlext-layout__sticky-header .mdl-layout__header-row {
+  padding-left: 64px;
+}
+
+/**
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SASS based on css from Google Chrome Dialog polyfill, https://github.com/GoogleChrome/dialog-polyfill
+ * @include 'node_modules/dialog-polyfill/dialog-polyfill.css' before using this
+ */
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========   Sticky Header   ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========     Accordion     ========== */
+
+/* ==========     Dialog     ========== */
+
+/* ==========     Lightbox     ========== */
+
+/* ==========  Lightboard  ========== */
+
+/* ==========  Carousel  ========== */
+
+/* ==========  Bordered fields  ========== */
+
+/* ==========  Color Themes  ========== */
+
+dialog.mdlext-dialog {
+  position: absolute;
+  border: 0;
+  opacity: 0;
+  padding: 0;
+  background-color: transparent;
+}
+
+dialog.mdlext-dialog[open] {
+  animation: mdlext-open-dialog 0.5s 0.2s forwards;
+}
+
+dialog.mdlext-dialog[open]::-webkit-backdrop {
+  animation: mdlext-darken-backdrop 0.2s forwards;
+}
+
+dialog.mdlext-dialog[open]::backdrop {
+  animation: mdlext-darken-backdrop 0.2s forwards;
+}
+
+dialog.mdlext-dialog[open] + .backdrop {
+  animation: mdlext-darken-backdrop 0.2s forwards;
+}
+
+@keyframes mdlext-darken-backdrop {
+  to {
+    background: rgba(0, 0, 0, 0.86);
+  }
+}
+
+@keyframes mdlext-open-dialog {
+  to {
+    opacity: 1;
+  }
+}
+
+/**
+ * This code is modified from Material Design Lite _grid.sass,
+ * which is Licensed under the Apache License, Version 2.0
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+.mdlext-grid {
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-flow: row wrap;
+      flex-flow: row wrap;
+  margin: 0 auto;
+  -ms-flex-align: stretch;
+      align-items: stretch;
+}
+
+.mdlext-grid.mdlext-grid--no-spacing {
+  padding: 0;
+}
+
+.mdlext-cell {
+  box-sizing: border-box;
+}
+
+.mdlext-cell--top {
+  -ms-flex-item-align: start;
+      align-self: flex-start;
+}
+
+.mdlext-cell--middle {
+  -ms-flex-item-align: center;
+      -ms-grid-row-align: center;
+      align-self: center;
+}
+
+.mdlext-cell--bottom {
+  -ms-flex-item-align: end;
+      align-self: flex-end;
+}
+
+.mdlext-cell--stretch {
+  -ms-flex-item-align: stretch;
+      -ms-grid-row-align: stretch;
+      align-self: stretch;
+}
+
+.mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell {
+  margin: 0;
+}
+
+.mdlext-cell--order-1 {
+  -ms-flex-order: 1;
+      order: 1;
+}
+
+.mdlext-cell--order-2 {
+  -ms-flex-order: 2;
+      order: 2;
+}
+
+.mdlext-cell--order-3 {
+  -ms-flex-order: 3;
+      order: 3;
+}
+
+.mdlext-cell--order-4 {
+  -ms-flex-order: 4;
+      order: 4;
+}
+
+.mdlext-cell--order-5 {
+  -ms-flex-order: 5;
+      order: 5;
+}
+
+.mdlext-cell--order-6 {
+  -ms-flex-order: 6;
+      order: 6;
+}
+
+.mdlext-cell--order-7 {
+  -ms-flex-order: 7;
+      order: 7;
+}
+
+.mdlext-cell--order-8 {
+  -ms-flex-order: 8;
+      order: 8;
+}
+
+.mdlext-cell--order-9 {
+  -ms-flex-order: 9;
+      order: 9;
+}
+
+.mdlext-cell--order-10 {
+  -ms-flex-order: 10;
+      order: 10;
+}
+
+.mdlext-cell--order-11 {
+  -ms-flex-order: 11;
+      order: 11;
+}
+
+.mdlext-cell--order-12 {
+  -ms-flex-order: 12;
+      order: 12;
+}
+
+/* stylelint-disable */
+
+@media (max-width: 479px) {
+  /* stylelint-enable */
+
+  .mdlext-grid {
+    padding: 8px;
+  }
+
+  .mdlext-cell {
+    margin: 8px;
+    width: calc(100% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell {
+    width: 100%;
+  }
+
+  .mdlext-cell--hide-phone {
+    display: none !important;
+  }
+
+  .mdlext-cell--order-1-phone.mdlext-cell--order-1-phone {
+    -ms-flex-order: 1;
+        order: 1;
+  }
+
+  .mdlext-cell--order-2-phone.mdlext-cell--order-2-phone {
+    -ms-flex-order: 2;
+        order: 2;
+  }
+
+  .mdlext-cell--order-3-phone.mdlext-cell--order-3-phone {
+    -ms-flex-order: 3;
+        order: 3;
+  }
+
+  .mdlext-cell--order-4-phone.mdlext-cell--order-4-phone {
+    -ms-flex-order: 4;
+        order: 4;
+  }
+
+  .mdlext-cell--order-5-phone.mdlext-cell--order-5-phone {
+    -ms-flex-order: 5;
+        order: 5;
+  }
+
+  .mdlext-cell--order-6-phone.mdlext-cell--order-6-phone {
+    -ms-flex-order: 6;
+        order: 6;
+  }
+
+  .mdlext-cell--order-7-phone.mdlext-cell--order-7-phone {
+    -ms-flex-order: 7;
+        order: 7;
+  }
+
+  .mdlext-cell--order-8-phone.mdlext-cell--order-8-phone {
+    -ms-flex-order: 8;
+        order: 8;
+  }
+
+  .mdlext-cell--order-9-phone.mdlext-cell--order-9-phone {
+    -ms-flex-order: 9;
+        order: 9;
+  }
+
+  .mdlext-cell--order-10-phone.mdlext-cell--order-10-phone {
+    -ms-flex-order: 10;
+        order: 10;
+  }
+
+  .mdlext-cell--order-11-phone.mdlext-cell--order-11-phone {
+    -ms-flex-order: 11;
+        order: 11;
+  }
+
+  .mdlext-cell--order-12-phone.mdlext-cell--order-12-phone {
+    -ms-flex-order: 12;
+        order: 12;
+  }
+
+  .mdlext-cell--1-col,
+  .mdlext-cell--1-col-phone.mdlext-cell--1-col-phone {
+    width: calc(25% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--1-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--1-col-phone.mdlext-cell--1-col-phone {
+    width: 25%;
+  }
+
+  .mdlext-cell--2-col,
+  .mdlext-cell--2-col-phone.mdlext-cell--2-col-phone {
+    width: calc(50% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--2-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--2-col-phone.mdlext-cell--2-col-phone {
+    width: 50%;
+  }
+
+  .mdlext-cell--3-col,
+  .mdlext-cell--3-col-phone.mdlext-cell--3-col-phone {
+    width: calc(75% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--3-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--3-col-phone.mdlext-cell--3-col-phone {
+    width: 75%;
+  }
+
+  .mdlext-cell--4-col,
+  .mdlext-cell--4-col-phone.mdlext-cell--4-col-phone {
+    width: calc(100% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--4-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--4-col-phone.mdlext-cell--4-col-phone {
+    width: 100%;
+  }
+
+  .mdlext-cell--5-col,
+  .mdlext-cell--5-col-phone.mdlext-cell--5-col-phone {
+    width: calc(100% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--5-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--5-col-phone.mdlext-cell--5-col-phone {
+    width: 100%;
+  }
+
+  .mdlext-cell--6-col,
+  .mdlext-cell--6-col-phone.mdlext-cell--6-col-phone {
+    width: calc(100% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--6-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--6-col-phone.mdlext-cell--6-col-phone {
+    width: 100%;
+  }
+
+  .mdlext-cell--7-col,
+  .mdlext-cell--7-col-phone.mdlext-cell--7-col-phone {
+    width: calc(100% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--7-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--7-col-phone.mdlext-cell--7-col-phone {
+    width: 100%;
+  }
+
+  .mdlext-cell--8-col,
+  .mdlext-cell--8-col-phone.mdlext-cell--8-col-phone {
+    width: calc(100% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--8-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--8-col-phone.mdlext-cell--8-col-phone {
+    width: 100%;
+  }
+
+  .mdlext-cell--9-col,
+  .mdlext-cell--9-col-phone.mdlext-cell--9-col-phone {
+    width: calc(100% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--9-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--9-col-phone.mdlext-cell--9-col-phone {
+    width: 100%;
+  }
+
+  .mdlext-cell--10-col,
+  .mdlext-cell--10-col-phone.mdlext-cell--10-col-phone {
+    width: calc(100% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--10-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--10-col-phone.mdlext-cell--10-col-phone {
+    width: 100%;
+  }
+
+  .mdlext-cell--11-col,
+  .mdlext-cell--11-col-phone.mdlext-cell--11-col-phone {
+    width: calc(100% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--11-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--11-col-phone.mdlext-cell--11-col-phone {
+    width: 100%;
+  }
+
+  .mdlext-cell--12-col,
+  .mdlext-cell--12-col-phone.mdlext-cell--12-col-phone {
+    width: calc(100% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--12-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--12-col-phone.mdlext-cell--12-col-phone {
+    width: 100%;
+  }
+
+  .mdlext-cell--1-offset,
+  .mdlext-cell--1-offset-phone.mdlext-cell--1-offset-phone {
+    margin-left: calc(25% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--1-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--1-offset-phone.mdlext-cell--1-offset-phone {
+    margin-left: 25%;
+  }
+
+  .mdlext-cell--2-offset,
+  .mdlext-cell--2-offset-phone.mdlext-cell--2-offset-phone {
+    margin-left: calc(50% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--2-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--2-offset-phone.mdlext-cell--2-offset-phone {
+    margin-left: 50%;
+  }
+
+  .mdlext-cell--3-offset,
+  .mdlext-cell--3-offset-phone.mdlext-cell--3-offset-phone {
+    margin-left: calc(75% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--3-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--3-offset-phone.mdlext-cell--3-offset-phone {
+    margin-left: 75%;
+  }
+}
+
+/* stylelint-disable */
+
+@media (min-width: 480px) and (max-width: 839px) {
+  /* stylelint-enable */
+
+  .mdlext-grid {
+    padding: 8px;
+  }
+
+  .mdlext-cell {
+    margin: 8px;
+    width: calc(50% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell {
+    width: 50%;
+  }
+
+  .mdlext-cell--hide-tablet {
+    display: none !important;
+  }
+
+  .mdlext-cell--order-1-tablet.mdlext-cell--order-1-tablet {
+    -ms-flex-order: 1;
+        order: 1;
+  }
+
+  .mdlext-cell--order-2-tablet.mdlext-cell--order-2-tablet {
+    -ms-flex-order: 2;
+        order: 2;
+  }
+
+  .mdlext-cell--order-3-tablet.mdlext-cell--order-3-tablet {
+    -ms-flex-order: 3;
+        order: 3;
+  }
+
+  .mdlext-cell--order-4-tablet.mdlext-cell--order-4-tablet {
+    -ms-flex-order: 4;
+        order: 4;
+  }
+
+  .mdlext-cell--order-5-tablet.mdlext-cell--order-5-tablet {
+    -ms-flex-order: 5;
+        order: 5;
+  }
+
+  .mdlext-cell--order-6-tablet.mdlext-cell--order-6-tablet {
+    -ms-flex-order: 6;
+        order: 6;
+  }
+
+  .mdlext-cell--order-7-tablet.mdlext-cell--order-7-tablet {
+    -ms-flex-order: 7;
+        order: 7;
+  }
+
+  .mdlext-cell--order-8-tablet.mdlext-cell--order-8-tablet {
+    -ms-flex-order: 8;
+        order: 8;
+  }
+
+  .mdlext-cell--order-9-tablet.mdlext-cell--order-9-tablet {
+    -ms-flex-order: 9;
+        order: 9;
+  }
+
+  .mdlext-cell--order-10-tablet.mdlext-cell--order-10-tablet {
+    -ms-flex-order: 10;
+        order: 10;
+  }
+
+  .mdlext-cell--order-11-tablet.mdlext-cell--order-11-tablet {
+    -ms-flex-order: 11;
+        order: 11;
+  }
+
+  .mdlext-cell--order-12-tablet.mdlext-cell--order-12-tablet {
+    -ms-flex-order: 12;
+        order: 12;
+  }
+
+  .mdlext-cell--1-col,
+  .mdlext-cell--1-col-tablet.mdlext-cell--1-col-tablet {
+    width: calc(12.5% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--1-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--1-col-tablet.mdlext-cell--1-col-tablet {
+    width: 12.5%;
+  }
+
+  .mdlext-cell--2-col,
+  .mdlext-cell--2-col-tablet.mdlext-cell--2-col-tablet {
+    width: calc(25% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--2-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--2-col-tablet.mdlext-cell--2-col-tablet {
+    width: 25%;
+  }
+
+  .mdlext-cell--3-col,
+  .mdlext-cell--3-col-tablet.mdlext-cell--3-col-tablet {
+    width: calc(37.5% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--3-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--3-col-tablet.mdlext-cell--3-col-tablet {
+    width: 37.5%;
+  }
+
+  .mdlext-cell--4-col,
+  .mdlext-cell--4-col-tablet.mdlext-cell--4-col-tablet {
+    width: calc(50% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--4-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--4-col-tablet.mdlext-cell--4-col-tablet {
+    width: 50%;
+  }
+
+  .mdlext-cell--5-col,
+  .mdlext-cell--5-col-tablet.mdlext-cell--5-col-tablet {
+    width: calc(62.5% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--5-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--5-col-tablet.mdlext-cell--5-col-tablet {
+    width: 62.5%;
+  }
+
+  .mdlext-cell--6-col,
+  .mdlext-cell--6-col-tablet.mdlext-cell--6-col-tablet {
+    width: calc(75% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--6-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--6-col-tablet.mdlext-cell--6-col-tablet {
+    width: 75%;
+  }
+
+  .mdlext-cell--7-col,
+  .mdlext-cell--7-col-tablet.mdlext-cell--7-col-tablet {
+    width: calc(87.5% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--7-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--7-col-tablet.mdlext-cell--7-col-tablet {
+    width: 87.5%;
+  }
+
+  .mdlext-cell--8-col,
+  .mdlext-cell--8-col-tablet.mdlext-cell--8-col-tablet {
+    width: calc(100% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--8-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--8-col-tablet.mdlext-cell--8-col-tablet {
+    width: 100%;
+  }
+
+  .mdlext-cell--9-col,
+  .mdlext-cell--9-col-tablet.mdlext-cell--9-col-tablet {
+    width: calc(100% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--9-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--9-col-tablet.mdlext-cell--9-col-tablet {
+    width: 100%;
+  }
+
+  .mdlext-cell--10-col,
+  .mdlext-cell--10-col-tablet.mdlext-cell--10-col-tablet {
+    width: calc(100% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--10-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--10-col-tablet.mdlext-cell--10-col-tablet {
+    width: 100%;
+  }
+
+  .mdlext-cell--11-col,
+  .mdlext-cell--11-col-tablet.mdlext-cell--11-col-tablet {
+    width: calc(100% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--11-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--11-col-tablet.mdlext-cell--11-col-tablet {
+    width: 100%;
+  }
+
+  .mdlext-cell--12-col,
+  .mdlext-cell--12-col-tablet.mdlext-cell--12-col-tablet {
+    width: calc(100% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--12-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--12-col-tablet.mdlext-cell--12-col-tablet {
+    width: 100%;
+  }
+
+  .mdlext-cell--1-offset,
+  .mdlext-cell--1-offset-tablet.mdlext-cell--1-offset-tablet {
+    margin-left: calc(12.5% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--1-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--1-offset-tablet.mdlext-cell--1-offset-tablet {
+    margin-left: 12.5%;
+  }
+
+  .mdlext-cell--2-offset,
+  .mdlext-cell--2-offset-tablet.mdlext-cell--2-offset-tablet {
+    margin-left: calc(25% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--2-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--2-offset-tablet.mdlext-cell--2-offset-tablet {
+    margin-left: 25%;
+  }
+
+  .mdlext-cell--3-offset,
+  .mdlext-cell--3-offset-tablet.mdlext-cell--3-offset-tablet {
+    margin-left: calc(37.5% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--3-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--3-offset-tablet.mdlext-cell--3-offset-tablet {
+    margin-left: 37.5%;
+  }
+
+  .mdlext-cell--4-offset,
+  .mdlext-cell--4-offset-tablet.mdlext-cell--4-offset-tablet {
+    margin-left: calc(50% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--4-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--4-offset-tablet.mdlext-cell--4-offset-tablet {
+    margin-left: 50%;
+  }
+
+  .mdlext-cell--5-offset,
+  .mdlext-cell--5-offset-tablet.mdlext-cell--5-offset-tablet {
+    margin-left: calc(62.5% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--5-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--5-offset-tablet.mdlext-cell--5-offset-tablet {
+    margin-left: 62.5%;
+  }
+
+  .mdlext-cell--6-offset,
+  .mdlext-cell--6-offset-tablet.mdlext-cell--6-offset-tablet {
+    margin-left: calc(75% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--6-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--6-offset-tablet.mdlext-cell--6-offset-tablet {
+    margin-left: 75%;
+  }
+
+  .mdlext-cell--7-offset,
+  .mdlext-cell--7-offset-tablet.mdlext-cell--7-offset-tablet {
+    margin-left: calc(87.5% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--7-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--7-offset-tablet.mdlext-cell--7-offset-tablet {
+    margin-left: 87.5%;
+  }
+}
+
+@media (min-width: 840px) {
+  .mdlext-grid {
+    padding: 8px;
+  }
+
+  .mdlext-cell {
+    margin: 8px;
+    width: calc(33.33333% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell {
+    width: 33.33333%;
+  }
+
+  .mdlext-cell--hide-desktop {
+    display: none !important;
+  }
+
+  .mdlext-cell--order-1-desktop.mdlext-cell--order-1-desktop {
+    -ms-flex-order: 1;
+        order: 1;
+  }
+
+  .mdlext-cell--order-2-desktop.mdlext-cell--order-2-desktop {
+    -ms-flex-order: 2;
+        order: 2;
+  }
+
+  .mdlext-cell--order-3-desktop.mdlext-cell--order-3-desktop {
+    -ms-flex-order: 3;
+        order: 3;
+  }
+
+  .mdlext-cell--order-4-desktop.mdlext-cell--order-4-desktop {
+    -ms-flex-order: 4;
+        order: 4;
+  }
+
+  .mdlext-cell--order-5-desktop.mdlext-cell--order-5-desktop {
+    -ms-flex-order: 5;
+        order: 5;
+  }
+
+  .mdlext-cell--order-6-desktop.mdlext-cell--order-6-desktop {
+    -ms-flex-order: 6;
+        order: 6;
+  }
+
+  .mdlext-cell--order-7-desktop.mdlext-cell--order-7-desktop {
+    -ms-flex-order: 7;
+        order: 7;
+  }
+
+  .mdlext-cell--order-8-desktop.mdlext-cell--order-8-desktop {
+    -ms-flex-order: 8;
+        order: 8;
+  }
+
+  .mdlext-cell--order-9-desktop.mdlext-cell--order-9-desktop {
+    -ms-flex-order: 9;
+        order: 9;
+  }
+
+  .mdlext-cell--order-10-desktop.mdlext-cell--order-10-desktop {
+    -ms-flex-order: 10;
+        order: 10;
+  }
+
+  .mdlext-cell--order-11-desktop.mdlext-cell--order-11-desktop {
+    -ms-flex-order: 11;
+        order: 11;
+  }
+
+  .mdlext-cell--order-12-desktop.mdlext-cell--order-12-desktop {
+    -ms-flex-order: 12;
+        order: 12;
+  }
+
+  .mdlext-cell--1-col,
+  .mdlext-cell--1-col-desktop.mdlext-cell--1-col-desktop {
+    width: calc(8.33333% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--1-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--1-col-desktop.mdlext-cell--1-col-desktop {
+    width: 8.33333%;
+  }
+
+  .mdlext-cell--2-col,
+  .mdlext-cell--2-col-desktop.mdlext-cell--2-col-desktop {
+    width: calc(16.66667% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--2-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--2-col-desktop.mdlext-cell--2-col-desktop {
+    width: 16.66667%;
+  }
+
+  .mdlext-cell--3-col,
+  .mdlext-cell--3-col-desktop.mdlext-cell--3-col-desktop {
+    width: calc(25% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--3-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--3-col-desktop.mdlext-cell--3-col-desktop {
+    width: 25%;
+  }
+
+  .mdlext-cell--4-col,
+  .mdlext-cell--4-col-desktop.mdlext-cell--4-col-desktop {
+    width: calc(33.33333% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--4-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--4-col-desktop.mdlext-cell--4-col-desktop {
+    width: 33.33333%;
+  }
+
+  .mdlext-cell--5-col,
+  .mdlext-cell--5-col-desktop.mdlext-cell--5-col-desktop {
+    width: calc(41.66667% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--5-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--5-col-desktop.mdlext-cell--5-col-desktop {
+    width: 41.66667%;
+  }
+
+  .mdlext-cell--6-col,
+  .mdlext-cell--6-col-desktop.mdlext-cell--6-col-desktop {
+    width: calc(50% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--6-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--6-col-desktop.mdlext-cell--6-col-desktop {
+    width: 50%;
+  }
+
+  .mdlext-cell--7-col,
+  .mdlext-cell--7-col-desktop.mdlext-cell--7-col-desktop {
+    width: calc(58.33333% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--7-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--7-col-desktop.mdlext-cell--7-col-desktop {
+    width: 58.33333%;
+  }
+
+  .mdlext-cell--8-col,
+  .mdlext-cell--8-col-desktop.mdlext-cell--8-col-desktop {
+    width: calc(66.66667% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--8-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--8-col-desktop.mdlext-cell--8-col-desktop {
+    width: 66.66667%;
+  }
+
+  .mdlext-cell--9-col,
+  .mdlext-cell--9-col-desktop.mdlext-cell--9-col-desktop {
+    width: calc(75% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--9-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--9-col-desktop.mdlext-cell--9-col-desktop {
+    width: 75%;
+  }
+
+  .mdlext-cell--10-col,
+  .mdlext-cell--10-col-desktop.mdlext-cell--10-col-desktop {
+    width: calc(83.33333% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--10-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--10-col-desktop.mdlext-cell--10-col-desktop {
+    width: 83.33333%;
+  }
+
+  .mdlext-cell--11-col,
+  .mdlext-cell--11-col-desktop.mdlext-cell--11-col-desktop {
+    width: calc(91.66667% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--11-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--11-col-desktop.mdlext-cell--11-col-desktop {
+    width: 91.66667%;
+  }
+
+  .mdlext-cell--12-col,
+  .mdlext-cell--12-col-desktop.mdlext-cell--12-col-desktop {
+    width: calc(100% - 16px);
+  }
+
+  .mdlext-grid--no-spacing > .mdlext-cell--12-col,
+  .mdlext-grid--no-spacing >
+    .mdlext-cell--12-col-desktop.mdlext-cell--12-col-desktop {
+    width: 100%;
+  }
+
+  .mdlext-cell--1-offset,
+  .mdlext-cell--1-offset-desktop.mdlext-cell--1-offset-desktop {
+    margin-left: calc(8.33333% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--1-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--1-offset-desktop.mdlext-cell--1-offset-desktop {
+    margin-left: 8.33333%;
+  }
+
+  .mdlext-cell--2-offset,
+  .mdlext-cell--2-offset-desktop.mdlext-cell--2-offset-desktop {
+    margin-left: calc(16.66667% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--2-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--2-offset-desktop.mdlext-cell--2-offset-desktop {
+    margin-left: 16.66667%;
+  }
+
+  .mdlext-cell--3-offset,
+  .mdlext-cell--3-offset-desktop.mdlext-cell--3-offset-desktop {
+    margin-left: calc(25% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--3-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--3-offset-desktop.mdlext-cell--3-offset-desktop {
+    margin-left: 25%;
+  }
+
+  .mdlext-cell--4-offset,
+  .mdlext-cell--4-offset-desktop.mdlext-cell--4-offset-desktop {
+    margin-left: calc(33.33333% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--4-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--4-offset-desktop.mdlext-cell--4-offset-desktop {
+    margin-left: 33.33333%;
+  }
+
+  .mdlext-cell--5-offset,
+  .mdlext-cell--5-offset-desktop.mdlext-cell--5-offset-desktop {
+    margin-left: calc(41.66667% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--5-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--5-offset-desktop.mdlext-cell--5-offset-desktop {
+    margin-left: 41.66667%;
+  }
+
+  .mdlext-cell--6-offset,
+  .mdlext-cell--6-offset-desktop.mdlext-cell--6-offset-desktop {
+    margin-left: calc(50% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--6-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--6-offset-desktop.mdlext-cell--6-offset-desktop {
+    margin-left: 50%;
+  }
+
+  .mdlext-cell--7-offset,
+  .mdlext-cell--7-offset-desktop.mdlext-cell--7-offset-desktop {
+    margin-left: calc(58.33333% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--7-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--7-offset-desktop.mdlext-cell--7-offset-desktop {
+    margin-left: 58.33333%;
+  }
+
+  .mdlext-cell--8-offset,
+  .mdlext-cell--8-offset-desktop.mdlext-cell--8-offset-desktop {
+    margin-left: calc(66.66667% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--8-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--8-offset-desktop.mdlext-cell--8-offset-desktop {
+    margin-left: 66.66667%;
+  }
+
+  .mdlext-cell--9-offset,
+  .mdlext-cell--9-offset-desktop.mdlext-cell--9-offset-desktop {
+    margin-left: calc(75% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--9-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--9-offset-desktop.mdlext-cell--9-offset-desktop {
+    margin-left: 75%;
+  }
+
+  .mdlext-cell--10-offset,
+  .mdlext-cell--10-offset-desktop.mdlext-cell--10-offset-desktop {
+    margin-left: calc(83.33333% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--10-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--10-offset-desktop.mdlext-cell--10-offset-desktop {
+    margin-left: 83.33333%;
+  }
+
+  .mdlext-cell--11-offset,
+  .mdlext-cell--11-offset-desktop.mdlext-cell--11-offset-desktop {
+    margin-left: calc(91.66667% + 8px);
+  }
+
+  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--11-offset,
+  .mdlext-grid.mdlext-grid--no-spacing >
+    .mdlext-cell--11-offset-desktop.mdlext-cell--11-offset-desktop {
+    margin-left: 91.66667%;
+  }
+}
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * A lightboard is a translucent surface illuminated from behind, used for situations
+ * where a shape laid upon the surface needs to be seen with high contrast. In the "old days" of photography
+ * photograpers used a lightboard to get a quick view of their slides. The goal is to create a responsive lightbox
+ * design, based on flex layout, similar to what is used in Adobe LightRoom to browse images.
+ */
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========   Sticky Header   ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========     Accordion     ========== */
+
+/* ==========     Dialog     ========== */
+
+/* ==========     Lightbox     ========== */
+
+/* ==========  Lightboard  ========== */
+
+/* ==========  Carousel  ========== */
+
+/* ==========  Bordered fields  ========== */
+
+/* ==========  Color Themes  ========== */
+
+ul.mdlext-lightboard {
+  list-style: none;
+}
+
+.mdlext-lightboard {
+  box-sizing: border-box;
+  margin: 0 auto;
+  padding: 0;
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-flow: row wrap;
+      flex-flow: row wrap;
+  -ms-flex-align: stretch;
+      align-items: stretch;
+}
+
+.mdlext-lightboard *,
+.mdlext-lightboard *::before,
+.mdlext-lightboard *::after,
+.mdlext-lightboard input[type="search"] {
+  box-sizing: border-box;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide {
+  background-color: #F8F8F8;
+  border: 1px solid #D8D8D8;
+  border-radius: 5px;
+  box-shadow: 2px 2px 6px -1px rgba(219, 215, 219, 0.5);
+  position: relative;
+  display: block;
+  max-width: 250px;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide::before {
+  content: '';
+  display: block;
+  padding-top: 100%;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide:hover,
+.mdlext-lightboard .mdlext-lightboard__slide:active,
+.mdlext-lightboard .mdlext-lightboard__slide:focus {
+  border-color: #B8B8B8;
+  background-color: #E8E8E8;
+  box-shadow: 2px 2px 12px -1px #dbd7db;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide:hover figcaption,
+.mdlext-lightboard .mdlext-lightboard__slide:active figcaption,
+.mdlext-lightboard .mdlext-lightboard__slide:focus figcaption {
+  color: black !important;
+  background-color: rgba(255, 255, 255, 0.2);
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide:focus {
+  outline-offset: -2px;
+  outline-color: inherit;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide[aria-selected='true'] {
+  background-color: #E8E8E8;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide[aria-selected='true'] figcaption {
+  color: black !important;
+  background-color: rgba(255, 255, 255, 0.2);
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide__frame,
+.mdlext-lightboard .mdlext-lightboard__slide__ripple-container {
+  text-decoration: none;
+  display: block;
+  overflow: hidden;
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide__frame:focus,
+.mdlext-lightboard .mdlext-lightboard__slide__ripple-container:focus {
+  outline-offset: -2px;
+  outline-color: inherit;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide__frame .mdl-ripple,
+.mdlext-lightboard .mdlext-lightboard__slide__ripple-container .mdl-ripple {
+  background: rgb(63,81,181);
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide__frame figure,
+.mdlext-lightboard .mdlext-lightboard__slide__ripple-container figure {
+  display: block;
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide__frame figure img,
+.mdlext-lightboard .mdlext-lightboard__slide__ripple-container figure img {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  margin: auto;
+  max-width: 100%;
+  max-height: 100%;
+  border-width: 0;
+  border-radius: 3px;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide__frame figure figcaption,
+.mdlext-lightboard .mdlext-lightboard__slide__ripple-container figure figcaption {
+  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
+  font-size: 12px;
+  font-weight: 400;
+  line-height: 1;
+  letter-spacing: 0;
+  color: #bdbdbd;
+  position: absolute;
+  bottom: -2px;
+  white-space: nowrap;
+  overflow: hidden;
+  max-width: 100%;
+  width: 100%;
+  text-align: center;
+  text-overflow: ellipsis;
+  padding: 4px 0;
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide__frame:hover figcaption,
+.mdlext-lightboard .mdlext-lightboard__slide__ripple-container:hover figcaption {
+  color: black !important;
+  background-color: rgba(255, 255, 255, 0.2);
+}
+
+.mdlext-lightboard {
+  padding: calc((0 - 2px) / 2);
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide {
+  margin: calc(2px / 2);
+  width: calc(1 / 2 * 100% - 2px);
+}
+
+.mdlext-lightboard .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure {
+  margin: 8px;
+}
+
+.mdlext-lightboard.mdlext-lightboard--no-spacing {
+  padding: 0;
+}
+
+.mdlext-lightboard.mdlext-lightboard--no-spacing .mdlext-lightboard__slide {
+  margin: 0;
+  width: calc(1 / 2 * 100%);
+}
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========   Sticky Header   ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========     Accordion     ========== */
+
+/* ==========     Dialog     ========== */
+
+/* ==========     Lightbox     ========== */
+
+/* ==========  Lightboard  ========== */
+
+/* ==========  Carousel  ========== */
+
+/* ==========  Bordered fields  ========== */
+
+/* ==========  Color Themes  ========== */
+
+/* stylelint-disable */
+
+@media (min-width: 480px) and (max-width: 659px) {
+  /* stylelint-enable */
+
+  .mdlext-lightboard {
+    padding: calc((0 - 4px) / 2);
+  }
+
+  .mdlext-lightboard .mdlext-lightboard__slide {
+    margin: calc(4px / 2);
+    width: calc(1 / 4 * 100% - 4px);
+  }
+
+  .mdlext-lightboard .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure {
+    margin: 8px;
+  }
+
+  .mdlext-lightboard.mdlext-lightboard--no-spacing {
+    padding: 0;
+  }
+
+  .mdlext-lightboard.mdlext-lightboard--no-spacing .mdlext-lightboard__slide {
+    margin: 0;
+    width: calc(1 / 4 * 100%);
+  }
+}
+
+/* stylelint-disable */
+
+@media (min-width: 660px) and (max-width: 839px) {
+  /* stylelint-enable */
+
+  .mdlext-lightboard {
+    padding: calc((0 - 4px) / 2);
+  }
+
+  .mdlext-lightboard .mdlext-lightboard__slide {
+    margin: calc(4px / 2);
+    width: calc(1 / 5 * 100% - 4px);
+  }
+
+  .mdlext-lightboard .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure {
+    margin: 8px;
+  }
+
+  .mdlext-lightboard.mdlext-lightboard--no-spacing {
+    padding: 0;
+  }
+
+  .mdlext-lightboard.mdlext-lightboard--no-spacing .mdlext-lightboard__slide {
+    margin: 0;
+    width: calc(1 / 5 * 100%);
+  }
+}
+
+/* stylelint-disable */
+
+@media (min-width: 840px) and (max-width: 1199px) {
+  /* stylelint-enable */
+
+  .mdlext-lightboard {
+    padding: calc((0 - 8px) / 2);
+  }
+
+  .mdlext-lightboard .mdlext-lightboard__slide {
+    margin: calc(8px / 2);
+    width: calc(1 / 6 * 100% - 8px);
+  }
+
+  .mdlext-lightboard .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure {
+    margin: 12px;
+  }
+
+  .mdlext-lightboard.mdlext-lightboard--no-spacing {
+    padding: 0;
+  }
+
+  .mdlext-lightboard.mdlext-lightboard--no-spacing .mdlext-lightboard__slide {
+    margin: 0;
+    width: calc(1 / 6 * 100%);
+  }
+}
+
+@media (min-width: 1200px) {
+  .mdlext-lightboard {
+    padding: calc((0 - 8px) / 2);
+  }
+
+  .mdlext-lightboard .mdlext-lightboard__slide {
+    margin: calc(8px / 2);
+    width: calc(1 / 7 * 100% - 8px);
+  }
+
+  .mdlext-lightboard .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure {
+    margin: 12px;
+  }
+
+  .mdlext-lightboard.mdlext-lightboard--no-spacing {
+    padding: 0;
+  }
+
+  .mdlext-lightboard.mdlext-lightboard--no-spacing .mdlext-lightboard__slide {
+    margin: 0;
+    width: calc(1 / 7 * 100%);
+  }
+}
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========   Sticky Header   ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========     Accordion     ========== */
+
+/* ==========     Dialog     ========== */
+
+/* ==========     Lightbox     ========== */
+
+/* ==========  Lightboard  ========== */
+
+/* ==========  Carousel  ========== */
+
+/* ==========  Bordered fields  ========== */
+
+/* ==========  Color Themes  ========== */
+
+.mdlext-lightbox {
+  -webkit-user-select: none;
+     -moz-user-select: none;
+      -ms-user-select: none;
+          user-select: none;
+  cursor: default;
+  position: relative;
+  width: auto;
+  max-width: 100%;
+  margin: 0 auto;
+  border: 0;
+  border-radius: 0;
+  background-color: rgb(255,255,255);
+  box-sizing: border-box;
+  outline: 0;
+  display: block;
+}
+
+.mdlext-lightbox *,
+.mdlext-lightbox *::before,
+.mdlext-lightbox *::after,
+.mdlext-lightbox input[type="search"] {
+  box-sizing: border-box;
+}
+
+.mdlext-lightbox .mdlext-lightbox__slider {
+  position: absolute;
+  top: 0;
+  left: 0;
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-pack: center;
+      justify-content: center;
+}
+
+.mdlext-lightbox .mdlext-lightbox__slider .mdlext-lightbox__slider__slide {
+  -ms-flex-negative: 0;
+      flex-shrink: 0;
+  display: block;
+  text-align: left;
+  color: #7f7f7f;
+  background-size: cover;
+  background-position: center;
+  background-repeat: no-repeat;
+}
+
+.mdlext-lightbox figure {
+  margin: 0;
+  padding: 0;
+  position: relative;
+}
+
+.mdlext-lightbox figure img {
+  width: 100%;
+  max-width: 100%;
+  height: auto;
+  border: 0;
+  outline: 0;
+}
+
+.mdlext-lightbox figure figcaption {
+  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
+  font-size: 12px;
+  font-weight: 400;
+  line-height: 1;
+  letter-spacing: 0;
+  display: block;
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  max-width: 100%;
+  height: auto;
+  max-height: 50%;
+  overflow: auto;
+  padding: 8px;
+  background-color: rgba(255, 255, 255, 0.76);
+  transform-origin: bottom;
+  transform: scaleY(0);
+  transition: 0.2s ease-in-out;
+}
+
+.mdlext-lightbox figure figcaption.mdlext-lightbox__show-figcaption {
+  transform: scaleY(1);
+}
+
+.mdlext-lightbox figure figcaption tbody th {
+  text-align: left;
+}
+
+.mdlext-lightbox figure figcaption tbody th,
+.mdlext-lightbox figure figcaption tbody td {
+  vertical-align: text-top;
+}
+
+.mdlext-lightbox .mdl-card__menu {
+  color: #ffffff;
+  z-index: 1;
+}
+
+.mdlext-lightbox footer {
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-pack: justify;
+      justify-content: space-between;
+  -ms-flex-align: center;
+      align-items: center;
+  background-color: rgba(255, 255, 255, 0.86);
+}
+
+.mdlext-lightbox footer .mdl-card__supporting-text {
+  -ms-flex: 1;
+      flex: 1;
+  overflow: hidden;
+  padding: 0;
+  height: 18px;
+  width: 100%;
+}
+
+.mdlext-lightbox footer nav {
+  display: -ms-flexbox;
+  display: flex;
+}
+
+.mdlext-lightbox.mdlext-lightbox--sticky-footer footer {
+  position: fixed;
+  bottom: 0;
+  left: 0;
+}
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * A carousel ...
+ */
+
+ul.mdlext-carousel {
+  list-style: none;
+}
+
+.mdlext-carousel {
+  box-sizing: border-box;
+  margin: 0;
+  padding: 0;
+  overflow: hidden;
+  height: 100%;
+  width: 100%;
+  display: block;
+  white-space: nowrap;
+  font-size: 0;
+  background-color: transparent;
+}
+
+.mdlext-carousel__slide {
+  box-sizing: border-box;
+  display: inline-block;
+  position: relative;
+  outline: 0;
+  margin: 0 0;
+  padding: 0;
+  height: 100%;
+  border-top: 2px solid transparent;
+}
+
+.mdlext-carousel__slide[aria-selected] figcaption,
+.mdlext-carousel__slide[aria-selected='true'] figcaption {
+  color: black !important;
+  background-color: rgba(255, 255, 255, 0.25);
+}
+
+.mdlext-carousel__slide[aria-selected]::after,
+.mdlext-carousel__slide[aria-selected='true']::after {
+  height: 2px;
+  width: 100%;
+  display: block;
+  content: ' ';
+  top: -2px;
+  left: 0;
+  position: absolute;
+  background: #ff4081;
+  animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
+  transition: all 1s cubic-bezier(0.4, 0, 1, 1);
+}
+
+.mdlext-carousel__slide a {
+  text-decoration: none;
+}
+
+.mdlext-carousel__slide figure {
+  box-sizing: border-box;
+  position: relative;
+  height: 100%;
+  margin: 0;
+  padding: 0;
+}
+
+.mdlext-carousel__slide figure img {
+  box-sizing: border-box;
+  max-height: 100%;
+}
+
+.mdlext-carousel__slide figure figcaption {
+  box-sizing: border-box;
+  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
+  font-size: 12px;
+  font-weight: 400;
+  line-height: 1;
+  letter-spacing: 0;
+  color: #bdbdbd;
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  white-space: nowrap;
+  overflow: hidden;
+  max-width: 100%;
+  width: 100%;
+  text-align: center;
+  text-overflow: ellipsis;
+  padding: 4px 0;
+}
+
+.mdlext-carousel__slide figure:hover figcaption {
+  color: black !important;
+  background-color: rgba(255, 255, 255, 0.25);
+}
+
+.mdlext-carousel__slide .mdlext-carousel__slide__ripple-container {
+  text-decoration: none;
+  display: block;
+  overflow: hidden;
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  outline: 0;
+}
+
+.mdlext-carousel__slide .mdlext-carousel__slide__ripple-container .mdl-ripple {
+  background: rgb(63,81,181);
+}
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * Copied/Modified/Inspired from/by:
+ *   https://github.com/google/material-design-lite/tree/master/src/textfield
+ *   http://red-team-design.com/making-html-dropdowns-not-suck/
+ *   http://codepen.io/etcpe9/pen/PqyOye,
+ *   http://codepen.io/pudgereyem/pen/PqBxQx
+ *   https://github.com/MEYVN-digital/mdl-selectfield
+ *   https://github.com/mebibou/mdl-selectfield
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+.mdlext-selectfield {
+  box-sizing: border-box;
+  position: relative;
+  font-size: 16px;
+  display: inline-block;
+  width: 300px;
+  max-width: 100%;
+  margin: 0;
+  padding: 20px 0;
+}
+
+.mdlext-selectfield .mdl-button {
+  bottom: 20px;
+  position: absolute;
+}
+
+.mdlext-selectfield::after {
+  content: '';
+  width: 0;
+  height: 0;
+  font-size: inherit;
+  line-height: inherit;
+  border-top: 0.5em solid inherit;
+  border-top-width: 0.5em;
+  border-top-style: solid;
+  border-top-color: inherit;
+  border-left: 0.35em solid transparent;
+  border-right: 0.35em solid transparent;
+  position: absolute;
+  right: 0.5em;
+  top: 50%;
+  transform: translateY(-50%);
+  pointer-events: none;
+}
+
+.mdlext-selectfield.is-disabled::after {
+  color: rgba(0,0,0, 0.12);
+  content: '';
+  width: 0;
+  height: 0;
+  font-size: inherit;
+  line-height: inherit;
+  border-top: 0.5em solid rgba(0,0,0, 0.12);
+  border-top-width: 0.5em;
+  border-top-style: solid;
+  border-top-color: rgba(0,0,0, 0.12);
+  border-left: 0.35em solid transparent;
+  border-right: 0.35em solid transparent;
+}
+
+.mdlext-selectfield--align-right {
+  text-align: right;
+}
+
+.mdlext-selectfield--full-width {
+  width: 100%;
+}
+
+.mdlext-selectfield--expandable {
+  min-height: 32px;
+  min-width: 32px;
+  width: auto;
+}
+
+.mdlext-selectfield__select {
+  box-sizing: border-box;
+  border: 0;
+  border-radius: 0;
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  -ms-appearance: none;
+  appearance: none;
+  text-indent: 0.01px;
+  text-overflow: '';
+  outline: none;
+  box-shadow: none;
+  font-size: 16px;
+  font-family: "Helvetica", "Arial", sans-serif;
+  padding: 4px calc(1.2em + 4px) 4px 0;
+  width: 100%;
+  border-bottom: 1px solid rgba(0,0,0, 0.12);
+  display: block;
+  margin: 0;
+  background: none;
+  text-align: left;
+  color: inherit;
+}
+
+.mdlext-selectfield__select:-moz-focusring {
+  color: transparent;
+  text-shadow: 0 0 0 #000000;
+}
+
+.mdlext-selectfield__select:focus::-ms-value {
+  background-color: inherit;
+  color: inherit;
+}
+
+.mdlext-selectfield__select::-ms-expand {
+  display: none;
+}
+
+.mdlext-selectfield.is-focused .mdlext-selectfield__select {
+  outline: none;
+}
+
+.mdlext-selectfield.is-invalid .mdlext-selectfield__select {
+  border-color: rgb(213,0,0);
+  box-shadow: none;
+}
+
+fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,
+.mdlext-selectfield.is-disabled .mdlext-selectfield__select {
+  border-bottom: 1px dotted rgba(0,0,0, 0.12);
+  color: rgba(0,0,0, 0.26);
+  background-color: transparent;
+}
+
+.mdlext-selectfield__select option {
+  color: rgba(0,0,0, 0.87);
+  box-sizing: border-box;
+  background-color: inherit;
+}
+
+.mdlext-selectfield__label {
+  box-sizing: border-box;
+  color: rgba(0,0,0, 0.26);
+  font-size: 16px;
+  top: 24px;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  pointer-events: none;
+  position: absolute;
+  display: block;
+  width: 100%;
+  overflow: hidden;
+  white-space: nowrap;
+  text-align: left;
+}
+
+.mdlext-selectfield.is-dirty .mdlext-selectfield__label,
+.mdlext-selectfield.has-placeholder .mdlext-selectfield__label {
+  visibility: hidden;
+}
+
+.mdlext-selectfield--floating-label .mdlext-selectfield__label {
+  transition-duration: 0.2s;
+  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+}
+
+.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
+  transition: none;
+}
+
+fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,
+.mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {
+  color: rgba(0,0,0, 0.26);
+}
+
+.mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,
+.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
+  color: rgb(63,81,181);
+  font-size: 12px;
+  top: 4px;
+  visibility: visible;
+}
+
+.mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__expandable-holder .mdlext-selectfield__label,
+.mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__expandable-holder .mdlext-selectfield__label,
+.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__expandable-holder .mdlext-selectfield__label {
+  top: -16px;
+}
+
+.mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {
+  color: rgb(213,0,0);
+  font-size: 12px;
+}
+
+.mdlext-selectfield__label::after {
+  background-color: rgb(63,81,181);
+  bottom: 20px;
+  content: '';
+  height: 2px;
+  left: 45%;
+  position: absolute;
+  transition-duration: 0.2s;
+  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+  visibility: hidden;
+  width: 10px;
+}
+
+.mdlext-selectfield.is-focused .mdlext-selectfield__label::after {
+  left: 0;
+  visibility: visible;
+  width: 100%;
+}
+
+.mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {
+  background-color: rgb(213,0,0);
+}
+
+.mdlext-selectfield__error {
+  color: rgb(213,0,0);
+  font-size: 12px;
+  position: absolute;
+  margin-top: 3px;
+  visibility: hidden;
+  display: block;
+}
+
+.mdlext-selectfield.is-invalid .mdlext-selectfield__error {
+  visibility: visible;
+}
+
+.mdlext-selectfield__expandable-holder {
+  display: inline-block;
+  position: relative;
+  margin-left: 32px;
+  transition-duration: 0.2s;
+  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+  max-width: 0.1px;
+}
+
+.mdlext-selectfield.is-focused .mdlext-selectfield__expandable-holder,
+.mdlext-selectfield.is-dirty .mdlext-selectfield__expandable-holder {
+  max-width: 600px;
+}
+
+.mdlext-selectfield__expandable-holder .mdlext-selectfield__label::after {
+  bottom: 0;
+}
+
+/**
+ * @license
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * This code is built with Google Material Design Lite,
+ * which is Licensed under the Apache License, Version 2.0
+ */
+
+/* Moved to aria-expanded-toggle.scss
+
+.mdlext-aria-expanded-plus-minus {
+  @include mdlext-aria-expanded-toggle($font-family: inherit);
+}
+
+.mdlext-aria-expanded-more-less {
+  @include mdlext-aria-expanded-toggle($icon: 'expand_more', $icon-expanded: 'expand_less');
+}
+*/
+
+.mdlext-menu-button {
+  box-sizing: border-box;
+  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
+  font-size: 14px;
+  font-weight: 500;
+  line-height: 1;
+  letter-spacing: 0;
+  text-transform: none;
+  position: relative;
+  height: 36px;
+  padding: 0 16px;
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-align: center;
+      align-items: center;
+  -ms-flex-item-align: stretch;
+      align-self: stretch;
+}
+
+.mdlext-menu-button > * {
+  margin: 0;
+  padding: 0 0 0 8px;
+}
+
+.mdlext-menu-button > *:first-child {
+  padding-left: 0;
+}
+
+.mdlext-menu-button > *:last-child:not(:only-child):not(.mdlext-menu__item__caption) {
+  margin-left: auto;
+}
+
+.mdlext-menu-button__caption {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  line-height: 1.2;
+}
+
+.mdlext-menu,
+.mdlext-menu__item {
+  box-sizing: border-box;
+  margin: 0;
+  padding: 0;
+  list-style: none;
+  display: -ms-flexbox;
+  display: flex;
+}
+
+.mdlext-menu {
+  position: absolute;
+  background: rgb(255,255,255);
+  z-index: 1000;
+  min-width: 124px;
+  border-radius: 2px;
+  box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12);
+  display: -ms-inline-flexbox;
+  display: inline-flex;
+  -ms-flex-direction: column;
+      flex-direction: column;
+  padding: 0;
+  overflow: hidden;
+  overflow-y: auto;
+}
+
+.mdlext-menu:focus {
+  outline-offset: -1px;
+  outline-width: 1px;
+}
+
+.mdlext-menu[hidden] {
+  border: 0;
+  clip: rect(0 0 0 0);
+  height: 1px;
+  margin: -1px;
+  overflow: hidden;
+  padding: 0;
+  position: absolute;
+  width: 1px;
+  pointer-events: none;
+}
+
+.mdlext-menu__item {
+  font-size: 14px;
+  font-weight: 400;
+  line-height: 24px;
+  letter-spacing: 0;
+  color: rgba(0,0,0, 0.87);
+  background-color: rgb(255,255,255);
+  position: relative;
+  padding: 0 16px 0 24px;
+  -ms-flex-align: center;
+      align-items: center;
+  -ms-flex-item-align: stretch;
+      -ms-grid-row-align: stretch;
+      align-self: stretch;
+  text-decoration: none;
+  cursor: pointer;
+  white-space: nowrap;
+  -webkit-user-select: none;
+     -moz-user-select: none;
+      -ms-user-select: none;
+          user-select: none;
+  min-height: 40px;
+  overflow: hidden;
+}
+
+.mdlext-menu__item[aria-selected='true'] {
+  background-color: rgb(224,224,224);
+}
+
+.mdlext-menu__item[aria-selected='true']::before {
+  content: '\2713';
+  position: absolute;
+  font-size: 1.4em;
+  left: 4px;
+  top: 50%;
+  transform: translateY(-50%);
+  pointer-events: none;
+}
+
+.mdlext-menu__item:hover:not([disabled]) {
+  background-color: rgb(238,238,238);
+}
+
+.mdlext-menu__item:focus {
+  outline-offset: -2px;
+  outline-width: 1px;
+  outline-color: rgb(189,189,189);
+  background-color: rgb(238,238,238);
+}
+
+.mdlext-menu__item::-moz-focus-inner {
+  border: 0;
+}
+
+.mdlext-menu__item[disabled] {
+  color: rgb(189,189,189);
+  background-color: transparent;
+  cursor: auto;
+  pointer-events: none;
+}
+
+.mdlext-menu__item[disabled] > * {
+  color: rgb(189,189,189);
+}
+
+.mdlext-menu__item__caption {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+
+.mdlext-menu__item > * {
+  margin: 0;
+  padding: 0 0 0 8px;
+}
+
+.mdlext-menu__item > *:first-child {
+  padding-left: 0;
+}
+
+.mdlext-menu__item > *:last-child:not(:only-child):not(.mdlext-menu__item__caption) {
+  margin-left: auto;
+}
+
+.mdlext-menu__item-separator {
+  margin: 0;
+  padding: 0;
+  border-bottom: 1px solid rgba(0,0,0, 0.12);
+}
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * The bordered fields are based on / inspired by this CodePen: http://codepen.io/prajwal078/pen/LVJZXz?editors=010
+ */
+
+/**
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========   Sticky Header   ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+/* ==========     Accordion     ========== */
+
+/* ==========     Dialog     ========== */
+
+/* ==========     Lightbox     ========== */
+
+/* ==========  Lightboard  ========== */
+
+/* ==========  Carousel  ========== */
+
+/* ==========  Bordered fields  ========== */
+
+/* ==========  Color Themes  ========== */
+
+/* stylelint-disable */
+
+/* stylelint-enable */
+
+.mdlext-bordered-fields {
+  box-sizing: border-box;
+}
+
+.mdlext-bordered-fields * {
+  box-sizing: border-box;
+}
+
+.mdlext-bordered-fields .mdl-textfield,
+.mdlext-bordered-fields .mdlext-selectfield {
+  padding: 0;
+  margin: 0 0 20px 0;
+  /*
+    &.is-dirty {
+      .mdl-textfield__input,
+      .mdlext-selectfield__select {
+      }
+    }
+    */
+}
+
+.mdlext-bordered-fields .mdl-textfield .mdl-textfield__input,
+.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,
+.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input,
+.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select {
+  height: 46px;
+  background-color: rgba(255, 255, 255, 0.2);
+  border: 1px solid rgba(0, 0, 0, 0.26);
+  border-radius: 3px;
+  padding: 20px 8px 4px 8px;
+  font-size: 16px;
+  font-weight: normal;
+  color: inherit;
+}
+
+.mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:disabled,
+.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:disabled,
+.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:disabled,
+.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:disabled {
+  color: rgba(0, 0, 0, 0.12);
+  background-color: rgba(255, 255, 255, 0.2);
+  border-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:focus,
+.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:focus,
+.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:focus,
+.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:focus {
+  background-color: rgba(238, 238, 238, 0.2);
+  border-color: #3f51b5;
+}
+
+.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,
+.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select {
+  padding-right: calc(1em + 8px);
+}
+
+.mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input,
+.mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select,
+.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input,
+.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select {
+  color: inherit;
+  border-color: #d50000;
+  background-color: rgba(255, 213, 213, 0.5);
+}
+
+.mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input:focus,
+.mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select:focus,
+.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input:focus,
+.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select:focus {
+  border-color: #a20000;
+  background-color: rgba(255, 213, 213, 0.5);
+}
+
+.mdlext-bordered-fields .mdlext-selectfield::after {
+  top: auto;
+  bottom: 4px;
+}
+
+.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield::after,
+.mdlext-bordered-fields .mdlext-selectfield.is-disabled::after {
+  color: rgba(0, 0, 0, 0.12);
+  content: '';
+  width: 0;
+  height: 0;
+  font-size: inherit;
+  line-height: inherit;
+  border-top: 0.5em solid rgba(0, 0, 0, 0.12);
+  border-top-width: 0.5em;
+  border-top-style: solid;
+  border-top-color: rgba(0, 0, 0, 0.12);
+  border-left: 0.35em solid transparent;
+  border-right: 0.35em solid transparent;
+}
+
+.mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__input,
+.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {
+  color: rgba(0, 0, 0, 0.12);
+  background-color: rgba(255, 255, 255, 0.2);
+  border-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-bordered-fields .mdl-textfield.is-dirty .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.is-dirty .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.has-placeholder .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.has-placeholder .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.is-dirty .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.is-dirty .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.has-placeholder .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.has-placeholder .mdlext-selectfield__label {
+  visibility: hidden;
+}
+
+.mdlext-bordered-fields .mdl-textfield .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label {
+  color: rgba(0, 0, 0, 0.26);
+  font-size: 16px;
+  font-weight: normal;
+  padding-left: 8px;
+  top: auto;
+  bottom: 4px;
+}
+
+.mdlext-bordered-fields .mdl-textfield .mdl-textfield__label::after,
+.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label::after,
+.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label::after,
+.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label::after {
+  background-color: transparent !important;
+  visibility: hidden !important;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
+  color: #3f51b5;
+  font-size: 12px;
+  font-weight: normal;
+  top: auto;
+  bottom: 24px;
+  visibility: visible;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label {
+  color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label {
+  color: #d50000;
+}
+
+.mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__label,
+.mdlext-bordered-fields fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {
+  color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > i,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > .mdl-button,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > i,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > .mdl-button {
+  position: absolute;
+  bottom: 2px;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > i,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > i {
+  bottom: 6px;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i:first-child,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button:first-child,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i:first-child,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button:first-child {
+  left: 4px;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i ~ .mdl-textfield__input,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdl-textfield__input,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i ~ .mdlext-selectfield__select,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdlext-selectfield__select,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i ~ .mdl-textfield__input,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdl-textfield__input,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i ~ .mdlext-selectfield__select,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdlext-selectfield__select {
+  padding-left: 32px;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i ~ .mdl-textfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i ~ .mdl-textfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdl-textfield__label {
+  left: 24px;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i ~ .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i ~ .mdlext-selectfield__label,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdlext-selectfield__label {
+  left: 24px;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > .mdl-textfield__input,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > .mdl-textfield__input {
+  padding-right: 32px;
+}
+
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > i:last-child,
+.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > .mdl-button:last-child,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > i:last-child,
+.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > .mdl-button:last-child {
+  left: auto;
+  right: 4px;
+}
+
+.mdlext-bordered-fields .mdl-textfield.is-disabled i,
+.mdlext-bordered-fields .mdl-textfield.is-disabled .mdl-button,
+.mdlext-bordered-fields .mdlext-selectfield.is-disabled i,
+.mdlext-bordered-fields .mdlext-selectfield.is-disabled .mdl-button {
+  color: rgba(0, 0, 0, 0.12);
+  pointer-events: none;
+}
+
+.mdlext-bordered-fields fieldset[disabled] .mdl-textfield i,
+.mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-button,
+.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield i,
+.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdl-button {
+  color: rgba(0, 0, 0, 0.12);
+  pointer-events: none;
+}
+
+/**
+ * @license
+ * Copyright 2016-2017 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * This code is built with Google Material Design Lite,
+ * which is Licensed under the Apache License, Version 2.0
+ */
+
+.mdlext-collapsible {
+  box-sizing: border-box;
+  cursor: pointer;
+}
+
+.mdlext-collapsible-group,
+.mdlext-collapsible-region {
+  box-sizing: border-box;
+}
+
+.mdlext-collapsible-group[hidden],
+.mdlext-collapsible-region[hidden] {
+  border: 0;
+  clip: rect(0 0 0 0);
+  height: 1px;
+  margin: -1px;
+  overflow: hidden;
+  padding: 0;
+  position: absolute;
+  width: 1px;
+  pointer-events: none;
+}
+
+/**
+ * @license
+ * Copyright 2016 Leif Olsen. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * This code is built with Google Material Design Lite,
+ * which is Licensed under the Apache License, Version 2.0
+ */
+
+.mdlext-aria-toggle-plus-minus {
+  font-family: inherit;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 1.4em;
+  display: inline-block;
+  width: 1em;
+  height: 1em;
+  line-height: 1;
+  text-transform: none;
+  letter-spacing: normal;
+  word-wrap: normal;
+  white-space: nowrap;
+  direction: ltr;
+  vertical-align: middle;
+  -webkit-font-smoothing: antialiased;
+  -webkit-font-feature-settings: 'liga';
+  text-rendering: optimizeLegibility;
+  -moz-osx-font-smoothing: grayscale;
+  font-feature-settings: 'liga';
+}
+
+.mdlext-aria-toggle-plus-minus::after {
+  content: "+";
+  margin-left: 0;
+}
+
+[aria-expanded='true'] > .mdlext-aria-toggle-plus-minus::after {
+  content: "-";
+  margin-left: 0;
+}
+
+.mdlext-aria-toggle-material-icons {
+  font-family: "Material Icons";
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 1.3em;
+  display: inline-block;
+  width: 1em;
+  height: 1em;
+  line-height: 1;
+  text-transform: none;
+  letter-spacing: normal;
+  word-wrap: normal;
+  white-space: nowrap;
+  direction: ltr;
+  vertical-align: middle;
+  -webkit-font-smoothing: antialiased;
+  -webkit-font-feature-settings: 'liga';
+  text-rendering: optimizeLegibility;
+  -moz-osx-font-smoothing: grayscale;
+  font-feature-settings: 'liga';
+}
+
+.mdlext-aria-toggle-material-icons::after {
+  content: "expand_more";
+  margin-left: -8px;
+}
+
+[aria-expanded='true'] > .mdlext-aria-toggle-material-icons::after {
+  content: "expand_less";
+  margin-left: -8px;
+}
+
+.mdlext-accordion {
+  box-sizing: border-box;
+  margin: 0;
+  padding: 0;
+  list-style: none;
+  display: -ms-flexbox;
+  display: flex;
+}
+
+.mdlext-accordion * {
+  box-sizing: border-box;
+}
+
+.mdlext-accordion__panel {
+  box-sizing: border-box;
+  position: relative;
+  overflow: hidden;
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-wrap: nowrap;
+      flex-wrap: nowrap;
+}
+
+.mdlext-accordion__tab {
+  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
+  font-size: 20px;
+  font-weight: 500;
+  line-height: 1;
+  letter-spacing: 0.02em;
+  font-weight: 400;
+  line-height: 1.1;
+  box-sizing: border-box;
+  position: relative;
+  margin: 0;
+  padding: 0;
+  min-width: 56px;
+  min-height: 56px;
+  display: -ms-flexbox;
+  display: flex;
+  -ms-flex-align: center;
+      align-items: center;
+  -ms-flex-item-align: stretch;
+      align-self: stretch;
+  -webkit-user-select: none;
+     -moz-user-select: none;
+      -ms-user-select: none;
+          user-select: none;
+  color: #000000;
+  background-color: rgba(158, 158, 158, 0.2);
+  cursor: pointer;
+  overflow: hidden;
+}
+
+.mdlext-accordion__tab:focus {
+  outline-offset: -2px;
+  outline-color: invert;
+  outline-width: 2px;
+}
+
+.mdlext-accordion__tab[aria-expanded='true'] {
+  background-color: rgba(158, 158, 158, 0.3);
+}
+
+.mdlext-accordion__tab[aria-selected='true'] {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-accordion__tab[disabled] {
+  background-color: rgba(158, 158, 158, 0.12);
+  color: rgba(0, 0, 0, 0.26);
+  pointer-events: none;
+}
+
+.mdlext-accordion__tab[disabled] > * {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-accordion__tab:hover:not([disabled]) {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-accordion__tab > * {
+  margin: 0;
+  padding: 0;
+}
+
+.mdlext-accordion__tab__caption {
+  padding-left: 8px;
+  padding-right: 8px;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+
+.mdlext-accordion__tab > *:first-child {
+  padding-left: 0;
+}
+
+.mdlext-accordion__tab--ripple[aria-selected='true']::before {
+  content: '';
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  background: rgba(255, 255, 255, 0.5);
+  opacity: 0;
+  border-radius: 100%;
+  transform: scale(1, 1) translate(-50%);
+  transform-origin: 50% 50%;
+}
+
+.mdlext-accordion__tab--ripple[aria-selected='true']:focus:not(:active)::before {
+  animation: mdlext-accordion-tab-ripple 1s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
+}
+
+.mdlext-accordion__tabpanel {
+  box-sizing: border-box;
+  margin: 0;
+  padding: 0 8px;
+  color: inherit;
+  background-color: transparent;
+  display: block;
+  overflow: auto;
+  -ms-flex-positive: 1;
+      flex-grow: 1;
+}
+
+.mdlext-accordion__tabpanel[hidden] {
+  border: 0;
+  clip: rect(0 0 0 0);
+  height: 1px;
+  margin: -1px;
+  overflow: hidden;
+  padding: 0;
+  position: absolute;
+  width: 1px;
+}
+
+.mdlext-accordion--vertical {
+  -ms-flex-direction: column;
+      flex-direction: column;
+  -ms-flex-wrap: nowrap;
+      flex-wrap: nowrap;
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__panel {
+  min-height: 56px;
+  -ms-flex-direction: column;
+      flex-direction: column;
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tab {
+  height: 56px;
+  border-top: 1px solid rgba(158, 158, 158, 0.5);
+  padding-left: 8px;
+  padding-right: 8px;
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tab[aria-selected='true']::after {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  height: 1px;
+  width: 100%;
+  display: block;
+  content: " ";
+  background-color: rgba(150, 150, 150, 0.5);
+  animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
+  transition: all 1s cubic-bezier(0.4, 0, 1, 1);
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tab > * {
+  padding-left: 8px;
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tab > *:first-child {
+  padding-left: 0;
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tab > *:last-child:not(:only-child):not(.mdlext-accordion__tab__caption) {
+  margin-left: auto;
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tab--ripple[aria-selected='true']::before {
+  width: 5%;
+  height: 10%;
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tabpanel {
+  border-top: 1px solid rgba(158, 158, 158, 0.5);
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tabpanel--animation {
+  transform: scaleY(1);
+  animation: mdlext-accordion-show-tabpanel-y 0.2s ease-in-out;
+}
+
+.mdlext-accordion--vertical .mdlext-accordion__tabpanel--animation[hidden] {
+  transform: scaleY(0);
+  animation: mdlext-accordion-hide-tabpanel-y 0.2s ease-out;
+  animation-delay: 0.1s;
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__panel {
+  min-width: 56px;
+  width: 56px;
+}
+
+.mdlext-accordion--horizontal[aria-multiselectable='true'] .mdlext-accordion__panel.is-expanded {
+  width: 100%;
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tab {
+  -ms-flex-direction: column-reverse;
+      flex-direction: column-reverse;
+  width: 56px;
+  white-space: nowrap;
+  border-left: 1px solid rgba(158, 158, 158, 0.5);
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tab[aria-selected='true']::after {
+  position: absolute;
+  top: 0;
+  right: 0;
+  height: 100%;
+  width: 1px;
+  display: block;
+  content: " ";
+  background-color: rgba(150, 150, 150, 0.5);
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tab > * {
+  transform: rotate(-90deg) translateX(8px);
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tab > *:last-child:not(:only-child):not(.mdlext-accordion__tab__caption) {
+  margin-bottom: auto;
+  transform: rotate(-90deg) translateX(0);
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tab__caption {
+  transform: rotate(-90deg) translateX(50%);
+  padding-right: 16px;
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tab--ripple[aria-selected='true']::before {
+  width: 10%;
+  height: 5%;
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tabpanel {
+  border-left: 1px solid rgba(158, 158, 158, 0.5);
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tabpanel--animation {
+  transform: scaleX(1);
+  animation: mdlext-accordion-show-tabpanel-x 0.2s ease-in-out;
+}
+
+.mdlext-accordion--horizontal .mdlext-accordion__tabpanel--animation[hidden] {
+  transform: scaleX(0);
+  animation: mdlext-accordion-hide-tabpanel-x 0.2s ease-out;
+}
+
+.mdlext-accordion__panel:first-child > .mdlext-accordion__tab {
+  border-top-color: transparent;
+  border-left-color: transparent;
+}
+
+.mdlext-accordion[aria-multiselectable="false"] .mdlext-accordion__panel.is-expanded {
+  -ms-flex-positive: 1;
+      flex-grow: 1;
+}
+
+.mdlext-accordion[disabled] * {
+  pointer-events: none;
+}
+
+.mdlext-accordion[disabled] .mdlext-accordion__tab {
+  background-color: rgba(158, 158, 158, 0.12);
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-accordion[disabled] .mdlext-accordion__tab > * {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-accordion[disabled] .mdlext-accordion__tabpanel {
+  opacity: 0.8;
+  filter: blur(1px) grayscale(80%);
+}
+
+@keyframes mdlext-accordion-tab-ripple {
+  0% {
+    transform: scale(0, 0);
+    opacity: 1;
+  }
+
+  20% {
+    transform: scale(25, 25);
+    opacity: 1;
+  }
+
+  100% {
+    opacity: 0;
+    transform: scale(40, 40);
+  }
+}
+
+/*
+@keyframes mdlext-accordion-show-tabpanel-y {
+  0% { transform: scaleY(0.1); }
+  40% { transform: scaleY(1.03); }
+  60% { transform: scaleY(0.98); }
+  80% { transform: scaleY(1.03); }
+  100% { transform: scaleY(0.98); }
+  80% { transform: scaleY(1.01); }
+  100% { transform: scaleY(1); }
+}
+*/
+
+@keyframes mdlext-accordion-show-tabpanel-y {
+  0% {
+    transform: scaleY(0);
+  }
+
+  60% {
+    transform: scaleY(1.01);
+  }
+
+  80% {
+    transform: scaleY(0.98);
+  }
+
+  100% {
+    transform: scaleY(1);
+  }
+}
+
+@keyframes mdlext-accordion-hide-tabpanel-y {
+  0% {
+    transform: scaleY(1);
+  }
+
+  60% {
+    transform: scaleY(0.98);
+  }
+
+  80% {
+    transform: scaleY(1.01);
+  }
+
+  100% {
+    transform: scaleY(0);
+  }
+}
+
+/*
+@keyframes mdlext-accordion-show-tabpanel-x {
+  0% { transform: scaleX(0.1); }
+  40% { transform: scaleX(1.03); }
+  60% { transform: scaleX(0.98); }
+  80% { transform: scaleX(1.03); }
+  100% { transform: scaleX(0.98); }
+  80% { transform: scaleX(1.01); }
+  100% { transform: scaleX(1); }
+}
+*/
+
+@keyframes mdlext-accordion-show-tabpanel-x {
+  0% {
+    transform: scaleX(0);
+  }
+
+  60% {
+    transform: scaleX(1.01);
+  }
+
+  80% {
+    transform: scaleX(0.98);
+  }
+
+  100% {
+    transform: scaleX(1);
+  }
+}
+
+@keyframes mdlext-accordion-hide-tabpanel-x {
+  0% {
+    transform: scaleX(1);
+  }
+
+  60% {
+    transform: scaleX(0.98);
+  }
+
+  80% {
+    transform: scaleX(1.01);
+  }
+
+  100% {
+    transform: scaleX(0);
+  }
+}
+
+/* -------------------------------------------------------------
+   Palette samples. Not part of build
+----------------------------------------------------------------
+
+$mdlext-light-color-primary:          #9E9E9E !default;
+$mdlext-light-color-primary-dark:     #616161 !default;
+$mdlext-light-color-primary-light:    #9E9E9E !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #212121 !default;  // text color on primary/primary dark background
+$mdlext-light-color-accent:           #E040FB !default;
+$mdlext-light-color-accent-light:     #E040FB !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FAFAFA !default;
+
+$mdlext-light-color-primary:          #F5F5F5 !default;
+$mdlext-light-color-primary-dark:     #E0E0E0 !default;
+$mdlext-light-color-primary-light:    #8BC34A !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #000000 !default;  // text color on primary/primary dark background
+$mdlext-light-color-accent:           #FFC107 !default;
+$mdlext-light-color-accent-light:     #FFC107 !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FFFFFF !default;
+
+
+$mdlext-light-color-primary:          #673AB7 !default;
+$mdlext-light-color-primary-dark:     #512DA8 !default;
+$mdlext-light-color-primary-light:    #673AB7 !default;   // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #D1C4E9 !default;   // text color on primary/primary dark background
+$mdlext-light-color-accent:           #4CAF50 !default;
+$mdlext-light-color-accent-light:     #4CAF50 !default;   // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FFFFFF !default;
+
+
+$mdlext-light-color-primary:          #4CAF50 !default;
+$mdlext-light-color-primary-dark:     #388E3C !default;
+$mdlext-light-color-primary-light:    #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #C8E6C9 !default;  // text color on primary/primary dark background
+$mdlext-light-color-accent:           #FF5252 !default;
+$mdlext-light-color-accent-light:     #FF5252 !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FFFFFF !default;
+
+
+$mdlext-light-color-primary:          #4CAF50 !default;
+$mdlext-light-color-primary-dark:     #388E3C !default;
+$mdlext-light-color-primary-light:    #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #C8E6C9 !default;  // text color on primary/primary dark background
+$mdlext-light-color-accent:           #03A9F4 !default;
+$mdlext-light-color-accent-light:     #03A9F4 !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FFFFFF !default;
+
+
+$mdlext-dark-color-primary:           #212121 !default;
+$mdlext-dark-color-primary-dark:      #000000 !default;
+$mdlext-dark-color-primary-light:     #607D8B !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-dark-color-primary-contrast:  #FFFFFF !default;  // text color on primary/primary dark background
+$mdlext-dark-color-accent:            #FF5722 !default;
+$mdlext-dark-color-accent-light:      #FF5722 !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-dark-color-accent-contrast:   #FFFFFF !default;
+
+*/
+
+.mdlext-light-color-theme {
+  background-color: #FAFAFA;
+  color: rgba(0, 0, 0, 0.87);
+}
+
+.mdlext-light-color-theme a {
+  outline-color: inherit;
+}
+
+.mdlext-light-color-theme .mdl-color--primary {
+  background-color: #4CAF50 !important;
+}
+
+.mdlext-light-color-theme .mdl-color--primary-contrast {
+  background-color: #C8E6C9 !important;
+}
+
+.mdlext-light-color-theme .mdl-color--primary-dark {
+  background-color: #388E3C !important;
+}
+
+.mdlext-light-color-theme .mdl-color--accent {
+  background-color: #E040FB !important;
+}
+
+.mdlext-light-color-theme .mdl-color--accent-contrast {
+  background-color: #FAFAFA !important;
+}
+
+.mdlext-light-color-theme .mdl-color-text--primary {
+  color: #4CAF50 !important;
+}
+
+.mdlext-light-color-theme .mdl-color-text--primary-contrast {
+  color: #C8E6C9 !important;
+}
+
+.mdlext-light-color-theme .mdl-color-text--primary-dark {
+  color: #388E3C !important;
+}
+
+.mdlext-light-color-theme .mdl-color-text--accent {
+  color: #E040FB !important;
+}
+
+.mdlext-light-color-theme .mdl-color-text--accent-contrast {
+  color: #FAFAFA !important;
+}
+
+.mdlext-light-color-theme a {
+  color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-badge[data-badge]::after {
+  background: #E040FB;
+  color: #FAFAFA;
+}
+
+.mdlext-light-color-theme .mdl-badge.mdl-badge--no-background[data-badge]::after {
+  color: #E040FB;
+  background: #FAFAFA;
+}
+
+.mdlext-light-color-theme .mdl-button {
+  background: transparent;
+  color: #000000;
+}
+
+.mdlext-light-color-theme .mdl-button:hover {
+  background-color: rgba(158, 158, 158, 0.2);
+}
+
+.mdlext-light-color-theme .mdl-button:focus:not(:active) {
+  background-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdl-button:active {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-light-color-theme .mdl-button.mdl-button--colored {
+  color: #4CAF50;
+}
+
+.mdlext-light-color-theme .mdl-button.mdl-button--colored:focus:not(:active) {
+  background-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdl-button--raised {
+  background: rgba(158, 158, 158, 0.2);
+}
+
+.mdlext-light-color-theme .mdl-button--raised:active {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-light-color-theme .mdl-button--raised:focus:not(:active) {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored {
+  background: #4CAF50;
+  color: #C8E6C9;
+}
+
+.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored:hover {
+  background-color: #3d8b40;
+}
+
+.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored:active {
+  background-color: #3d8b40;
+}
+
+.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored:focus:not(:active) {
+  background-color: #3d8b40;
+}
+
+.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored .mdl-ripple {
+  background: #C8E6C9;
+}
+
+.mdlext-light-color-theme .mdl-button--fab {
+  background: rgba(158, 158, 158, 0.2);
+}
+
+.mdlext-light-color-theme .mdl-button--fab:active {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-light-color-theme .mdl-button--fab:focus:not(:active) {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored {
+  background: #E040FB;
+  color: #FAFAFA;
+}
+
+.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored:hover {
+  background-color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored:focus:not(:active) {
+  background-color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored:active {
+  background-color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored .mdl-ripple {
+  background: #FAFAFA;
+}
+
+.mdlext-light-color-theme .mdl-button--icon {
+  color: inherit;
+}
+
+.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary {
+  color: #4CAF50;
+}
+
+.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary .mdl-ripple {
+  background: #C8E6C9;
+}
+
+.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--raised,
+.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--fab {
+  color: #C8E6C9;
+  background-color: #4CAF50;
+}
+
+.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent {
+  color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent .mdl-ripple {
+  background: #FAFAFA;
+}
+
+.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--raised,
+.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--fab {
+  color: #FAFAFA;
+  background-color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-button[disabled][disabled],
+.mdlext-light-color-theme .mdl-button.mdl-button--disabled.mdl-button--disabled {
+  color: rgba(0, 0, 0, 0.26);
+  background-color: transparent;
+}
+
+.mdlext-light-color-theme .mdl-button--fab[disabled][disabled],
+.mdlext-light-color-theme .mdl-button--fab.mdl-button--disabled.mdl-button--disabled {
+  background-color: rgba(0, 0, 0, 0.12);
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-button--raised[disabled][disabled],
+.mdlext-light-color-theme .mdl-button--raised.mdl-button--disabled.mdl-button--disabled {
+  background-color: rgba(0, 0, 0, 0.12);
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-button--colored[disabled][disabled],
+.mdlext-light-color-theme .mdl-button--colored.mdl-button--disabled.mdl-button--disabled {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded {
+  background: transparent;
+  color: #E040FB;
+  /* stylelint-disable */
+  /* stylelint-enable */
+  /**************************** Thumbs ****************************/
+  /* stylelint-disable */
+  /* stylelint-enable */
+  /**************************** 0-value ****************************/
+  /* stylelint-disable */
+  /* stylelint-enable */
+  /**************************** Disabled ****************************/
+  /* stylelint-disable */
+  /* stylelint-enable */
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded::-webkit-slider-runnable-track {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded::-moz-range-track {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-track {
+  background: none;
+  color: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-fill-lower {
+  background: linear-gradient(to right, transparent, transparent 16px, #E040FB 16px, #E040FB 0);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-fill-upper {
+  background: linear-gradient(to left, transparent, transparent 16px, rgba(0, 0, 0, 0.26) 16px, rgba(0, 0, 0, 0.26) 0);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded::-webkit-slider-thumb {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded::-moz-range-thumb {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb {
+  box-shadow: 0 0 0 10px rgba(224, 64, 251, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb {
+  box-shadow: 0 0 0 10px rgba(224, 64, 251, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:active::-webkit-slider-thumb {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:active::-moz-range-thumb {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-thumb {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb {
+  background: radial-gradient(circle closest-side, #E040FB 0%, #E040FB 37.5%, rgba(224, 64, 251, 0.26) 37.5%, rgba(224, 64, 251, 0.26) 100%);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:active::-ms-thumb {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb {
+  border-color: #E040FB;
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb {
+  border-color: rgba(0, 0, 0, 0.26);
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {
+  box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.12);
+  background: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb {
+  box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.12);
+  background: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb {
+  border-color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb {
+  border-color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-thumb {
+  background: radial-gradient(circle closest-side, transparent 0%, transparent 66.67%, rgba(0, 0, 0, 0.26) 66.67%, rgba(0, 0, 0, 0.26) 100%);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb {
+  background: radial-gradient(circle closest-side, rgba(0, 0, 0, 0.12) 0%, rgba(0, 0, 0, 0.12) 25%, rgba(0, 0, 0, 0.26) 25%, rgba(0, 0, 0, 0.26) 37.5%, rgba(0, 0, 0, 0.12) 37.5%, rgba(0, 0, 0, 0.12) 100%);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb {
+  background: radial-gradient(circle closest-side, transparent 0%, transparent 77.78%, rgba(0, 0, 0, 0.26) 77.78%, rgba(0, 0, 0, 0.26) 100%);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb {
+  background: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-moz-range-thumb {
+  background: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {
+  background-color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb {
+  border-color: rgba(0, 0, 0, 0.26);
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb {
+  border-color: rgba(0, 0, 0, 0.26);
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:focus::-ms-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:active::-ms-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-ms-thumb {
+  background: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb,
+.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb {
+  background: radial-gradient(circle closest-side, transparent 0%, transparent 50%, rgba(0, 0, 0, 0.26) 50%, rgba(0, 0, 0, 0.26) 100%);
+}
+
+.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-ms-fill-lower {
+  background: linear-gradient(to right, transparent, transparent 25px, rgba(0, 0, 0, 0.26) 25px, rgba(0, 0, 0, 0.26) 0);
+}
+
+.mdlext-light-color-theme .mdl-slider__background-flex {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-slider__background-lower {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-slider__background-upper {
+  background: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-textfield__input {
+  border-bottom-color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-textfield.is-invalid .mdl-textfield__input {
+  border-color: #D32F2F;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__input,
+.mdlext-light-color-theme .mdl-textfield.is-disabled .mdl-textfield__input {
+  background-color: transparent;
+  border-bottom-color: rgba(0, 0, 0, 0.12);
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-textfield__label {
+  color: rgba(0, 0, 0, 0.54);
+}
+
+.mdlext-light-color-theme .mdl-textfield__label::after {
+  background-color: #E040FB;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__label,
+.mdlext-light-color-theme .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-textfield--floating-label.is-focused .mdl-textfield__label,
+.mdlext-light-color-theme .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,
+.mdlext-light-color-theme .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {
+  color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {
+  color: #D32F2F;
+}
+
+.mdlext-light-color-theme .mdl-textfield.is-invalid .mdl-textfield__label::after {
+  background-color: #D32F2F;
+}
+
+.mdlext-light-color-theme .mdl-textfield__error {
+  color: #D32F2F;
+}
+
+.mdlext-light-color-theme .mdl-checkbox__box-outline {
+  border-color: rgba(0, 0, 0, 0.54);
+}
+
+.mdlext-light-color-theme .mdl-checkbox.is-checked .mdl-checkbox__box-outline {
+  border-color: #E040FB;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,
+.mdlext-light-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {
+  border-color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-checkbox__focus-helper {
+  background-color: transparent;
+}
+
+.mdlext-light-color-theme .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {
+  box-shadow: 0 0 0 8px rgba(224, 64, 251, 0.26);
+  background-color: rgba(224, 64, 251, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-checkbox__tick-outline {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {
+  background-color: #E040FB;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,
+.mdlext-light-color-theme .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {
+  background-color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,
+.mdlext-light-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__label {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-checkbox__ripple-container .mdl-ripple {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,
+.mdlext-light-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-radio__outer-circle {
+  border-color: rgba(0, 0, 0, 0.54);
+}
+
+.mdlext-light-color-theme .mdl-radio.is-checked .mdl-radio__outer-circle {
+  border-color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,
+.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__outer-circle {
+  border-color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-radio__inner-circle {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,
+.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__inner-circle {
+  background: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-radio .mdl-radio__label,
+.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__label {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-radio__ripple-container .mdl-ripple {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,
+.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-icon-toggle__label {
+  color: #616161;
+}
+
+.mdlext-light-color-theme .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {
+  color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {
+  background-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {
+  background-color: rgba(224, 64, 251, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-icon-toggle__ripple-container .mdl-ripple {
+  background: #616161;
+}
+
+.mdlext-light-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-switch__track {
+  background: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-switch.is-checked .mdl-switch__track {
+  background: rgba(224, 64, 251, 0.54);
+}
+
+.mdlext-light-color-theme .mdl-switch__track fieldset[disabled] .mdl-switch,
+.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__track {
+  background: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdl-switch__thumb {
+  background: #FAFAFA;
+}
+
+.mdlext-light-color-theme .mdl-switch.is-checked .mdl-switch__thumb {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-switch__thumb fieldset[disabled] .mdl-switch,
+.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__thumb {
+  background: #BDBDBD;
+}
+
+.mdlext-light-color-theme .mdl-switch__focus-helper {
+  background-color: transparent;
+}
+
+.mdlext-light-color-theme .mdl-switch.is-focused .mdl-switch__focus-helper {
+  background-color: rgba(0, 0, 0, 0.1);
+}
+
+.mdlext-light-color-theme .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {
+  box-shadow: 0 0 0 20px rgba(224, 64, 251, 0.26);
+  background-color: rgba(224, 64, 251, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-switch__label fieldset[disabled] .mdl-switch,
+.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__label {
+  color: #BDBDBD;
+}
+
+.mdlext-light-color-theme .mdl-switch__ripple-container .mdl-ripple {
+  background: #E040FB;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,
+.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-data-table {
+  border-color: rgba(0, 0, 0, 0.12);
+  background-color: #FAFAFA;
+}
+
+.mdlext-light-color-theme .mdl-data-table tbody tr.is-selected {
+  background-color: #EEEEEE;
+}
+
+.mdlext-light-color-theme .mdl-data-table tbody tr:hover {
+  background-color: #EEEEEE;
+}
+
+.mdlext-light-color-theme .mdl-data-table th {
+  color: rgba(0, 0, 0, 0.54);
+}
+
+.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending,
+.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending {
+  color: rgba(0, 0, 0, 0.87);
+}
+
+.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover::before,
+.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending:hover::before {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdl-menu__outline {
+  background: #FFFFFF;
+}
+
+.mdlext-light-color-theme .mdl-menu__item {
+  color: rgba(0, 0, 0, 0.87);
+  background-color: transparent;
+  outline-color: #BDBDBD;
+}
+
+.mdlext-light-color-theme .mdl-menu__item--full-bleed-divider {
+  border-bottom-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdl-menu__item[disabled],
+.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled] {
+  color: #BDBDBD;
+  background-color: transparent;
+}
+
+.mdlext-light-color-theme .mdl-menu__item[disabled]:hover,
+.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled]:hover {
+  background-color: transparent;
+}
+
+.mdlext-light-color-theme .mdl-menu__item[disabled]:focus,
+.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled]:focus {
+  background-color: transparent;
+}
+
+.mdlext-light-color-theme .mdl-menu__item[disabled] .mdl-ripple,
+.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled] .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-light-color-theme .mdl-menu__item:hover {
+  background-color: #EEEEEE;
+}
+
+.mdlext-light-color-theme .mdl-menu__item:focus {
+  background-color: #EEEEEE;
+}
+
+.mdlext-light-color-theme .mdl-menu__item:active {
+  background-color: #E0E0E0;
+}
+
+.mdlext-light-color-theme .mdl-card {
+  background: #FAFAFA;
+}
+
+.mdlext-light-color-theme .mdl-card__media {
+  background-color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdl-card__title {
+  color: rgba(0, 0, 0, 0.87);
+}
+
+.mdlext-light-color-theme .mdl-card__title.mdl-card--border {
+  border-bottom-color: rgba(0, 0, 0, 0.1);
+}
+
+.mdlext-light-color-theme .mdl-card__title-text {
+  color: inherit;
+}
+
+.mdlext-light-color-theme .mdl-card__subtitle-text {
+  color: rgba(0, 0, 0, 0.54);
+}
+
+.mdlext-light-color-theme .mdl-card__supporting-text {
+  color: rgba(0, 0, 0, 0.54);
+}
+
+.mdlext-light-color-theme .mdl-card__actions {
+  background-color: transparent;
+}
+
+.mdlext-light-color-theme .mdl-card__actions.mdl-card--border {
+  border-top-color: rgba(0, 0, 0, 0.1);
+}
+
+.mdlext-light-color-theme .mdlext-selectfield.is-disabled::after {
+  color: rgba(0, 0, 0, 0.12);
+  content: '';
+  width: 0;
+  height: 0;
+  font-size: inherit;
+  line-height: inherit;
+  border-top: 0.5em solid rgba(0, 0, 0, 0.12);
+  border-top-width: 0.5em;
+  border-top-style: solid;
+  border-top-color: rgba(0, 0, 0, 0.12);
+  border-left: 0.35em solid transparent;
+  border-right: 0.35em solid transparent;
+}
+
+.mdlext-light-color-theme .mdlext-selectfield__select {
+  border-bottom-color: rgba(0, 0, 0, 0.26);
+  color: inherit;
+}
+
+.mdlext-light-color-theme .mdlext-selectfield__select option {
+  background-color: #FAFAFA;
+  color: rgba(0, 0, 0, 0.87);
+}
+
+.mdlext-light-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__select {
+  border-color: #D32F2F;
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,
+.mdlext-light-color-theme .mdlext-selectfield.is-disabled .mdlext-selectfield__select {
+  background-color: transparent;
+  border-bottom-color: rgba(0, 0, 0, 0.12);
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdlext-selectfield__label {
+  color: rgba(0, 0, 0, 0.54);
+}
+
+.mdlext-light-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
+  color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {
+  color: #D32F2F;
+}
+
+.mdlext-light-color-theme .mdlext-selectfield__label::after {
+  background-color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {
+  background-color: #D32F2F;
+}
+
+.mdlext-light-color-theme .mdlext-selectfield__error {
+  color: #D32F2F;
+}
+
+.mdlext-menu.mdlext-light-color-theme {
+  background: #FFFFFF;
+}
+
+.mdlext-light-color-theme .mdlext-menu {
+  background: #FFFFFF;
+}
+
+.mdlext-light-color-theme .mdlext-menu__item {
+  color: rgba(0, 0, 0, 0.87);
+  background-color: #FFFFFF;
+}
+
+.mdlext-light-color-theme .mdlext-menu__item:active,
+.mdlext-light-color-theme .mdlext-menu__item[aria-selected='true'] {
+  background-color: #E0E0E0;
+}
+
+.mdlext-light-color-theme .mdlext-menu__item:hover:not([disabled]) {
+  background-color: #EEEEEE;
+}
+
+.mdlext-light-color-theme .mdlext-menu__item:focus {
+  outline-color: #BDBDBD;
+  background-color: #EEEEEE;
+}
+
+.mdlext-light-color-theme .mdlext-menu__item[disabled] {
+  color: #BDBDBD;
+}
+
+.mdlext-light-color-theme .mdlext-menu__item[disabled] > * {
+  color: #BDBDBD;
+}
+
+.mdlext-light-color-theme .mdlext-menu__item-separator {
+  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select {
+  background-color: rgba(250, 250, 250, 0.1);
+  border-color: rgba(0, 0, 0, 0.26);
+  color: inherit;
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:disabled,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:disabled,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:disabled,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:disabled {
+  color: rgba(0, 0, 0, 0.26);
+  background-color: rgba(250, 250, 250, 0.1);
+  border-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:focus,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:focus,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:focus,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:focus {
+  background-color: rgba(225, 225, 225, 0.1);
+  border-color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select {
+  color: inherit;
+  border-color: #D32F2F;
+  background-color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input:focus,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select:focus,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input:focus,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select:focus {
+  border-color: #ab2424;
+  background-color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield::after,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled::after {
+  color: rgba(0, 0, 0, 0.26);
+  content: '';
+  width: 0;
+  height: 0;
+  font-size: inherit;
+  line-height: inherit;
+  border-top: 0.5em solid rgba(0, 0, 0, 0.26);
+  border-top-width: 0.5em;
+  border-top-style: solid;
+  border-top-color: rgba(0, 0, 0, 0.26);
+  border-left: 0.35em solid transparent;
+  border-right: 0.35em solid transparent;
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__input,
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {
+  color: rgba(0, 0, 0, 0.26);
+  background-color: rgba(250, 250, 250, 0.1);
+  border-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label {
+  color: rgba(0, 0, 0, 0.54);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
+  color: #E040FB;
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label {
+  color: #D32F2F;
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__label,
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled i,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled .mdl-button,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled i,
+.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled .mdl-button {
+  color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield i,
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-button,
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield i,
+.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdl-button {
+  color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tab {
+  color: #000000;
+  background-color: rgba(117, 117, 117, 0.2);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tab:focus {
+  outline-color: rgba(109, 109, 109, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tab[aria-expanded='true'] {
+  background-color: rgba(117, 117, 117, 0.3);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tab[aria-selected='true'] {
+  background-color: rgba(117, 117, 117, 0.4);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tab[disabled] {
+  background-color: rgba(117, 117, 117, 0.12);
+  color: rgba(0, 0, 0, 0.26);
+  pointer-events: none;
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tab[disabled] > * {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tab:hover:not([disabled]) {
+  background-color: rgba(117, 117, 117, 0.4);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tab--ripple[aria-selected='true']::before {
+  background: rgba(117, 117, 117, 0.4);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__tabpanel {
+  color: inherit;
+  background-color: transparent;
+}
+
+.mdlext-light-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab {
+  border-top: 1px solid rgba(117, 117, 117, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab[aria-selected='true']::after {
+  background-color: rgba(102, 102, 102, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-accordion--vertical .mdlext-accordion__tabpanel {
+  border-top: 1px solid rgba(117, 117, 117, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab {
+  border-left: 1px solid rgba(117, 117, 117, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab[aria-selected='true']::after {
+  background-color: rgba(102, 102, 102, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tabpanel {
+  border-left: 1px solid rgba(117, 117, 117, 0.5);
+}
+
+.mdlext-light-color-theme .mdlext-accordion__panel:first-child > .mdlext-light-color-theme .mdlext-accordion__tab {
+  border-top-color: transparent;
+  border-left-color: transparent;
+}
+
+.mdlext-light-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab {
+  background-color: rgba(117, 117, 117, 0.12);
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab > * {
+  color: rgba(0, 0, 0, 0.26);
+}
+
+.mdlext-light-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tabpanel {
+  opacity: 0.8;
+  filter: blur(1px) grayscale(80%);
+}
+
+/* -------------------------------------------------------------
+   Palette samples. Not part of build
+----------------------------------------------------------------
+
+$mdlext-light-color-primary:          #9E9E9E !default;
+$mdlext-light-color-primary-dark:     #616161 !default;
+$mdlext-light-color-primary-light:    #9E9E9E !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #212121 !default;  // text color on primary/primary dark background
+$mdlext-light-color-accent:           #E040FB !default;
+$mdlext-light-color-accent-light:     #E040FB !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FAFAFA !default;
+
+$mdlext-light-color-primary:          #F5F5F5 !default;
+$mdlext-light-color-primary-dark:     #E0E0E0 !default;
+$mdlext-light-color-primary-light:    #8BC34A !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #000000 !default;  // text color on primary/primary dark background
+$mdlext-light-color-accent:           #FFC107 !default;
+$mdlext-light-color-accent-light:     #FFC107 !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FFFFFF !default;
+
+
+$mdlext-light-color-primary:          #673AB7 !default;
+$mdlext-light-color-primary-dark:     #512DA8 !default;
+$mdlext-light-color-primary-light:    #673AB7 !default;   // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #D1C4E9 !default;   // text color on primary/primary dark background
+$mdlext-light-color-accent:           #4CAF50 !default;
+$mdlext-light-color-accent-light:     #4CAF50 !default;   // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FFFFFF !default;
+
+
+$mdlext-light-color-primary:          #4CAF50 !default;
+$mdlext-light-color-primary-dark:     #388E3C !default;
+$mdlext-light-color-primary-light:    #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #C8E6C9 !default;  // text color on primary/primary dark background
+$mdlext-light-color-accent:           #FF5252 !default;
+$mdlext-light-color-accent-light:     #FF5252 !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FFFFFF !default;
+
+
+$mdlext-light-color-primary:          #4CAF50 !default;
+$mdlext-light-color-primary-dark:     #388E3C !default;
+$mdlext-light-color-primary-light:    #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-light-color-primary-contrast: #C8E6C9 !default;  // text color on primary/primary dark background
+$mdlext-light-color-accent:           #03A9F4 !default;
+$mdlext-light-color-accent-light:     #03A9F4 !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-light-color-accent-contrast:  #FFFFFF !default;
+
+
+$mdlext-dark-color-primary:           #212121 !default;
+$mdlext-dark-color-primary-dark:      #000000 !default;
+$mdlext-dark-color-primary-light:     #607D8B !default;  // Fallback color. Set to color-primary if fallback is not needed
+$mdlext-dark-color-primary-contrast:  #FFFFFF !default;  // text color on primary/primary dark background
+$mdlext-dark-color-accent:            #FF5722 !default;
+$mdlext-dark-color-accent-light:      #FF5722 !default;  // Fallback color. Set to color-accent if fallback is not needed
+$mdlext-dark-color-accent-contrast:   #FFFFFF !default;
+
+*/
+
+.mdlext-dark-color-theme {
+  background-color: #303030;
+  color: white;
+}
+
+.mdlext-dark-color-theme a {
+  outline-color: inherit;
+}
+
+.mdlext-dark-color-theme .mdl-color--primary {
+  background-color: #FFC107 !important;
+}
+
+.mdlext-dark-color-theme .mdl-color--primary-contrast {
+  background-color: #FFF8E1 !important;
+}
+
+.mdlext-dark-color-theme .mdl-color--primary-dark {
+  background-color: #FFA000 !important;
+}
+
+.mdlext-dark-color-theme .mdl-color--accent {
+  background-color: #536DFE !important;
+}
+
+.mdlext-dark-color-theme .mdl-color--accent-contrast {
+  background-color: #FFFFFF !important;
+}
+
+.mdlext-dark-color-theme .mdl-color-text--primary {
+  color: #FFC107 !important;
+}
+
+.mdlext-dark-color-theme .mdl-color-text--primary-contrast {
+  color: #FFF8E1 !important;
+}
+
+.mdlext-dark-color-theme .mdl-color-text--primary-dark {
+  color: #FFA000 !important;
+}
+
+.mdlext-dark-color-theme .mdl-color-text--accent {
+  color: #536DFE !important;
+}
+
+.mdlext-dark-color-theme .mdl-color-text--accent-contrast {
+  color: #FFFFFF !important;
+}
+
+.mdlext-dark-color-theme a {
+  color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-badge[data-badge]::after {
+  background: #536DFE;
+  color: #FFFFFF;
+}
+
+.mdlext-dark-color-theme .mdl-badge.mdl-badge--no-background[data-badge]::after {
+  color: #536DFE;
+  background: #FFFFFF;
+}
+
+.mdlext-dark-color-theme .mdl-button {
+  background: transparent;
+  color: #FFFFFF;
+}
+
+.mdlext-dark-color-theme .mdl-button:hover {
+  background-color: rgba(158, 158, 158, 0.2);
+}
+
+.mdlext-dark-color-theme .mdl-button:focus:not(:active) {
+  background-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-dark-color-theme .mdl-button:active {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-dark-color-theme .mdl-button.mdl-button--colored {
+  color: #FFC107;
+}
+
+.mdlext-dark-color-theme .mdl-button.mdl-button--colored:focus:not(:active) {
+  background-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-dark-color-theme .mdl-button--raised {
+  background: rgba(158, 158, 158, 0.2);
+}
+
+.mdlext-dark-color-theme .mdl-button--raised:active {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-dark-color-theme .mdl-button--raised:focus:not(:active) {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored {
+  background: #FFC107;
+  color: #FFF8E1;
+}
+
+.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored:hover {
+  background-color: #d39e00;
+}
+
+.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored:active {
+  background-color: #d39e00;
+}
+
+.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored:focus:not(:active) {
+  background-color: #d39e00;
+}
+
+.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored .mdl-ripple {
+  background: #FFF8E1;
+}
+
+.mdlext-dark-color-theme .mdl-button--fab {
+  background: rgba(158, 158, 158, 0.2);
+}
+
+.mdlext-dark-color-theme .mdl-button--fab:active {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-dark-color-theme .mdl-button--fab:focus:not(:active) {
+  background-color: rgba(158, 158, 158, 0.4);
+}
+
+.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored {
+  background: #536DFE;
+  color: #FFFFFF;
+}
+
+.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored:hover {
+  background-color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored:focus:not(:active) {
+  background-color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored:active {
+  background-color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored .mdl-ripple {
+  background: #FFFFFF;
+}
+
+.mdlext-dark-color-theme .mdl-button--icon {
+  color: inherit;
+}
+
+.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary {
+  color: #FFC107;
+}
+
+.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary .mdl-ripple {
+  background: #FFF8E1;
+}
+
+.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--raised,
+.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--fab {
+  color: #FFF8E1;
+  background-color: #FFC107;
+}
+
+.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent {
+  color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent .mdl-ripple {
+  background: #FFFFFF;
+}
+
+.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--raised,
+.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--fab {
+  color: #FFFFFF;
+  background-color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-button[disabled][disabled],
+.mdlext-dark-color-theme .mdl-button.mdl-button--disabled.mdl-button--disabled {
+  color: rgba(255, 255, 255, 0.26);
+  background-color: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-button--fab[disabled][disabled],
+.mdlext-dark-color-theme .mdl-button--fab.mdl-button--disabled.mdl-button--disabled {
+  background-color: rgba(255, 255, 255, 0.12);
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-button--raised[disabled][disabled],
+.mdlext-dark-color-theme .mdl-button--raised.mdl-button--disabled.mdl-button--disabled {
+  background-color: rgba(255, 255, 255, 0.12);
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-button--colored[disabled][disabled],
+.mdlext-dark-color-theme .mdl-button--colored.mdl-button--disabled.mdl-button--disabled {
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded {
+  background: transparent;
+  color: #536DFE;
+  /* stylelint-disable */
+  /* stylelint-enable */
+  /* stylelint-disable */
+  /* stylelint-enable */
+  /**************************** 0-value ****************************/
+  /* stylelint-disable */
+  /* stylelint-enable */
+  /**************************** Disabled ****************************/
+  /* stylelint-disable */
+  /* stylelint-enable */
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded::-webkit-slider-runnable-track {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded::-moz-range-track {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-track {
+  background: none;
+  color: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-fill-lower {
+  background: linear-gradient(to right, transparent, transparent 16px, #536DFE 16px, #536DFE 0);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-fill-upper {
+  background: linear-gradient(to left, transparent, transparent 16px, rgba(255, 255, 255, 0.87) 16px, rgba(255, 255, 255, 0.87) 0);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded::-webkit-slider-thumb {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded::-moz-range-thumb {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb {
+  box-shadow: 0 0 0 10px rgba(83, 109, 254, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb {
+  box-shadow: 0 0 0 10px rgba(83, 109, 254, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:active::-webkit-slider-thumb {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:active::-moz-range-thumb {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-thumb {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb {
+  background: radial-gradient(circle closest-side, #536DFE 0%, #536DFE 37.5%, rgba(83, 109, 254, 0.5) 37.5%, rgba(83, 109, 254, 0.5) 100%);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:active::-ms-thumb {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb {
+  border-color: #536DFE;
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb {
+  border-color: rgba(255, 255, 255, 0.87);
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {
+  box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.5);
+  background: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb {
+  box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.5);
+  background: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb {
+  border-color: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb {
+  border-color: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-thumb {
+  background: radial-gradient(circle closest-side, transparent 0%, transparent 66.67%, rgba(255, 255, 255, 0.87) 66.67%, rgba(255, 255, 255, 0.87) 100%);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb {
+  background: radial-gradient(circle closest-side, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0.5) 25%, rgba(255, 255, 255, 0.87) 25%, rgba(255, 255, 255, 0.87) 37.5%, rgba(255, 255, 255, 0.5) 37.5%, rgba(255, 255, 255, 0.5) 100%);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb {
+  background: radial-gradient(circle closest-side, transparent 0%, transparent 77.78%, rgba(255, 255, 255, 0.87) 77.78%, rgba(255, 255, 255, 0.87) 100%);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb {
+  background: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-moz-range-thumb {
+  background: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {
+  background-color: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb {
+  border-color: rgba(255, 255, 255, 0.87);
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb {
+  border-color: rgba(255, 255, 255, 0.87);
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:focus::-ms-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:active::-ms-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-ms-thumb {
+  background: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb,
+.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb {
+  background: radial-gradient(circle closest-side, transparent 0%, transparent 50%, rgba(255, 255, 255, 0.87) 50%, rgba(255, 255, 255, 0.87) 100%);
+}
+
+.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-ms-fill-lower {
+  background: linear-gradient(to right, transparent, transparent 25px, rgba(255, 255, 255, 0.87) 25px, rgba(255, 255, 255, 0.87) 0);
+}
+
+.mdlext-dark-color-theme .mdl-slider__background-flex {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-slider__background-lower {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-slider__background-upper {
+  background: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-textfield__input {
+  border-bottom-color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-textfield.is-invalid .mdl-textfield__input {
+  border-color: #FF1744;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__input,
+.mdlext-dark-color-theme .mdl-textfield.is-disabled .mdl-textfield__input {
+  background-color: transparent;
+  border-bottom-color: rgba(255, 255, 255, 0.12);
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-textfield__label {
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-textfield__label::after {
+  background-color: #536DFE;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__label,
+.mdlext-dark-color-theme .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-textfield--floating-label.is-focused .mdl-textfield__label,
+.mdlext-dark-color-theme .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,
+.mdlext-dark-color-theme .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {
+  color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {
+  color: #FF1744;
+}
+
+.mdlext-dark-color-theme .mdl-textfield.is-invalid .mdl-textfield__label::after {
+  background-color: #FF1744;
+}
+
+.mdlext-dark-color-theme .mdl-textfield__error {
+  color: #FF1744;
+}
+
+.mdlext-dark-color-theme .mdl-checkbox__box-outline {
+  border-color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-checkbox.is-checked .mdl-checkbox__box-outline {
+  border-color: #536DFE;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,
+.mdlext-dark-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {
+  border-color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-checkbox__focus-helper {
+  background-color: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {
+  box-shadow: 0 0 0 8px rgba(83, 109, 254, 0.26);
+  background-color: rgba(83, 109, 254, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-checkbox__tick-outline {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {
+  background-color: #536DFE;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,
+.mdlext-dark-color-theme .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {
+  background-color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,
+.mdlext-dark-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__label {
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-checkbox__ripple-container .mdl-ripple {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,
+.mdlext-dark-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-radio__outer-circle {
+  border-color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-radio.is-checked .mdl-radio__outer-circle {
+  border-color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,
+.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__outer-circle {
+  border-color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-radio__inner-circle {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,
+.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__inner-circle {
+  background: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-radio .mdl-radio__label,
+.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__label {
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-radio__ripple-container .mdl-ripple {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,
+.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-icon-toggle__label {
+  color: #616161;
+}
+
+.mdlext-dark-color-theme .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {
+  color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {
+  background-color: rgba(0, 0, 0, 0.12);
+}
+
+.mdlext-dark-color-theme .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {
+  background-color: rgba(83, 109, 254, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-icon-toggle__ripple-container .mdl-ripple {
+  background: #616161;
+}
+
+.mdlext-dark-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-switch__track {
+  background: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-switch.is-checked .mdl-switch__track {
+  background: rgba(83, 109, 254, 0.5);
+}
+
+.mdlext-dark-color-theme .mdl-switch__track fieldset[disabled] .mdl-switch,
+.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__track {
+  background: rgba(255, 255, 255, 0.12);
+}
+
+.mdlext-dark-color-theme .mdl-switch__thumb {
+  background: #FAFAFA;
+}
+
+.mdlext-dark-color-theme .mdl-switch.is-checked .mdl-switch__thumb {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-switch__thumb fieldset[disabled] .mdl-switch,
+.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__thumb {
+  background: #FAFAFA;
+}
+
+.mdlext-dark-color-theme .mdl-switch__focus-helper {
+  background-color: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-switch.is-focused .mdl-switch__focus-helper {
+  background-color: rgba(0, 0, 0, 0.1);
+}
+
+.mdlext-dark-color-theme .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {
+  box-shadow: 0 0 0 20px rgba(83, 109, 254, 0.26);
+  background-color: rgba(83, 109, 254, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-switch__label fieldset[disabled] .mdl-switch,
+.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__label {
+  color: #FAFAFA;
+}
+
+.mdlext-dark-color-theme .mdl-switch__ripple-container .mdl-ripple {
+  background: #536DFE;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,
+.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-data-table {
+  border-color: rgba(255, 255, 255, 0.12);
+  background-color: #303030;
+}
+
+.mdlext-dark-color-theme .mdl-data-table tbody tr.is-selected {
+  background-color: #424242;
+}
+
+.mdlext-dark-color-theme .mdl-data-table tbody tr:hover {
+  background-color: #212121;
+}
+
+.mdlext-dark-color-theme .mdl-data-table th {
+  color: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending,
+.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending {
+  color: rgba(255, 255, 255, 0.87);
+}
+
+.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover::before,
+.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending:hover::before {
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdl-menu__outline {
+  background: #000000;
+}
+
+.mdlext-dark-color-theme .mdl-menu__item {
+  color: rgba(255, 255, 255, 0.87);
+  background-color: transparent;
+  outline-color: #616161;
+}
+
+.mdlext-dark-color-theme .mdl-menu__item--full-bleed-divider {
+  border-bottom-color: rgba(255, 255, 255, 0.2);
+}
+
+.mdlext-dark-color-theme .mdl-menu__item[disabled],
+.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled] {
+  color: #9E9E9E;
+  background-color: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-menu__item[disabled]:hover,
+.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled]:hover {
+  background-color: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-menu__item[disabled]:focus,
+.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled]:focus {
+  background-color: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-menu__item[disabled] .mdl-ripple,
+.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled] .mdl-ripple {
+  background: transparent;
+}
+
+.mdlext-dark-color-theme .mdl-menu__item:hover {
+  background-color: #212121;
+}
+
+.mdlext-dark-color-theme .mdl-menu__item:focus {
+  background-color: #212121;
+}
+
+.mdlext-dark-color-theme .mdl-menu__item:active {
+  background-color: #424242;
+}
+
+.mdlext-dark-color-theme .mdl-card {
+  background: #303030;
+}
+
+.mdlext-dark-color-theme .mdl-card__media {
+  background-color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdl-card__title {
+  color: white;
+}
+
+.mdlext-dark-color-theme .mdl-card__title.mdl-card--border {
+  border-bottom-color: rgba(0, 0, 0, 0.1);
+}
+
+.mdlext-dark-color-theme .mdl-card__title-text {
+  color: inherit;
+}
+
+.mdlext-dark-color-theme .mdl-card__subtitle-text {
+  color: rgba(0, 0, 0, 0.7);
+}
+
+.mdlext-dark-color-theme .mdl-card__supporting-text {
+  color: rgba(255, 255, 255, 0.7);
+}
+
+.mdlext-dark-color-theme .mdl-card__actions {
+  background-color: rgba(255, 255, 255, 0);
+}
+
+.mdlext-dark-color-theme .mdl-card__actions.mdl-card--border {
+  border-top-color: rgba(0, 0, 0, 0.1);
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield.is-disabled::after {
+  color: rgba(255, 255, 255, 0.12);
+  content: '';
+  width: 0;
+  height: 0;
+  font-size: inherit;
+  line-height: inherit;
+  border-top: 0.5em solid rgba(255, 255, 255, 0.12);
+  border-top-width: 0.5em;
+  border-top-style: solid;
+  border-top-color: rgba(255, 255, 255, 0.12);
+  border-left: 0.35em solid transparent;
+  border-right: 0.35em solid transparent;
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield__select {
+  border-bottom-color: rgba(255, 255, 255, 0.26);
+  color: inherit;
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield__select option {
+  background-color: #303030;
+  color: white;
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__select {
+  border-color: #FF1744;
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,
+.mdlext-dark-color-theme .mdlext-selectfield.is-disabled .mdlext-selectfield__select {
+  background-color: transparent;
+  border-bottom-color: rgba(255, 255, 255, 0.12);
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield__label {
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
+  color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {
+  color: #FF1744;
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield__label::after {
+  background-color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {
+  background-color: #FF1744;
+}
+
+.mdlext-dark-color-theme .mdlext-selectfield__error {
+  color: #FF1744;
+}
+
+.mdlext-menu.mdlext-dark-color-theme {
+  background: #000000;
+}
+
+.mdlext-dark-color-theme .mdlext-menu {
+  background: #000000;
+}
+
+.mdlext-dark-color-theme .mdlext-menu__item {
+  color: rgba(255, 255, 255, 0.87);
+  background-color: #000000;
+}
+
+.mdlext-dark-color-theme .mdlext-menu__item:active,
+.mdlext-dark-color-theme .mdlext-menu__item[aria-selected='true'] {
+  background-color: #424242;
+}
+
+.mdlext-dark-color-theme .mdlext-menu__item:hover:not([disabled]) {
+  background-color: #212121;
+}
+
+.mdlext-dark-color-theme .mdlext-menu__item:focus {
+  outline-color: #616161;
+  background-color: #212121;
+}
+
+.mdlext-dark-color-theme .mdlext-menu__item[disabled] {
+  color: #9E9E9E;
+}
+
+.mdlext-dark-color-theme .mdlext-menu__item[disabled] > * {
+  color: #9E9E9E;
+}
+
+.mdlext-dark-color-theme .mdlext-menu__item-separator {
+  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select {
+  background-color: rgba(48, 48, 48, 0.1);
+  border-color: rgba(255, 255, 255, 0.26);
+  color: inherit;
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:disabled,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:disabled,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:disabled,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:disabled {
+  color: rgba(255, 255, 255, 0.26);
+  background-color: rgba(48, 48, 48, 0.1);
+  border-color: rgba(255, 255, 255, 0.12);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:focus,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:focus,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:focus,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:focus {
+  background-color: rgba(23, 23, 23, 0.1);
+  border-color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select {
+  color: inherit;
+  border-color: #FF1744;
+  background-color: rgba(255, 23, 68, 0.1);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input:focus,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select:focus,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input:focus,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select:focus {
+  border-color: #e3002c;
+  background-color: rgba(255, 23, 68, 0.1);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield::after,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled::after {
+  color: rgba(255, 255, 255, 0.26);
+  content: '';
+  width: 0;
+  height: 0;
+  font-size: inherit;
+  line-height: inherit;
+  border-top: 0.5em solid rgba(255, 255, 255, 0.26);
+  border-top-width: 0.5em;
+  border-top-style: solid;
+  border-top-color: rgba(255, 255, 255, 0.26);
+  border-left: 0.35em solid transparent;
+  border-right: 0.35em solid transparent;
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__input,
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {
+  color: rgba(255, 255, 255, 0.26);
+  background-color: rgba(48, 48, 48, 0.1);
+  border-color: rgba(255, 255, 255, 0.12);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label {
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
+  color: #536DFE;
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label {
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label {
+  color: #FF1744;
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__label,
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {
+  color: rgba(255, 255, 255, 0.26);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled i,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled .mdl-button,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled i,
+.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled .mdl-button {
+  color: rgba(255, 255, 255, 0.12);
+}
+
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield i,
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-button,
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield i,
+.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdl-button {
+  color: rgba(255, 255, 255, 0.12);
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tab {
+  color: white;
+  background-color: black;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tab:focus {
+  outline-color: #a8a8a8;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tab[aria-expanded='true'] {
+  background-color: rgba(0, 0, 0, 0.9);
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tab[aria-selected='true'] {
+  background-color: rgba(0, 0, 0, 0.6);
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tab[disabled] {
+  background-color: rgba(0, 0, 0, 0.4);
+  color: rgba(255, 255, 255, 0.5);
+  pointer-events: none;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tab[disabled] > * {
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tab:hover:not([disabled]) {
+  background-color: rgba(0, 0, 0, 0.5);
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tab--ripple[aria-selected='true']::before {
+  background: rgba(0, 0, 0, 0.3);
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__tabpanel {
+  color: inherit;
+  background-color: transparent;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab {
+  border-top: 1px solid #424242;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab[aria-selected='true']::after {
+  background-color: #a8a8a8;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion--vertical .mdlext-accordion__tabpanel {
+  border-top: 1px solid #424242;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab {
+  border-left: 1px solid #424242;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab[aria-selected='true']::after {
+  background-color: #a8a8a8;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tabpanel {
+  border-left: 1px solid #424242;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion__panel:first-child > .mdlext-dark-color-theme .mdlext-accordion__tab {
+  border-top-color: transparent;
+  border-left-color: transparent;
+}
+
+.mdlext-dark-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab {
+  background-color: rgba(0, 0, 0, 0.4);
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab > * {
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.mdlext-dark-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tabpanel {
+  opacity: 0.8;
+  filter: blur(1px) grayscale(80%);
+}
+
+
+/*# sourceMappingURL=mdl-ext.css.map*/
\ No newline at end of file
diff --git a/node_modules/mdl-ext/lib/mdl-ext.css.map b/node_modules/mdl-ext/lib/mdl-ext.css.map
new file mode 100644
index 0000000..f91a309
--- /dev/null
+++ b/node_modules/mdl-ext/lib/mdl-ext.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack:///~/material-design-lite/src/_variables.scss?0a5c","webpack:///webpack:///src/mdl-ext-build.scss","webpack:///webpack:///~/material-design-lite/src/_color-definitions.scss?1036","webpack:///webpack:///~/material-design-lite/src/_functions.scss?fd08","webpack:///webpack:///~/material-design-lite/src/_mixins.scss?572c","webpack:///webpack:///src/_variables.scss?5326","webpack:///webpack:///src/_functions.scss?19fe","webpack:///webpack:///src/aria-expanded-toggle/_aria-expanded-toggle.scss?d01f","webpack:///webpack:///src/_mixins.scss?c723","webpack:///webpack:///src/sticky-header/_sticky-header.scss?721e","webpack:///webpack:///src/dialog/dialog.scss?6dd1","webpack:///webpack:///src/grid/_grid-media-queries.scss","webpack:///webpack:///src/lightboard/_lightboard.scss?79ea","webpack:///webpack:///src/lightboard/_lightboard-media-queries.scss","webpack:///webpack:///src/lightbox/_lightbox.scss?bce5","webpack:///webpack:///src/carousel/_carousel.scss?ab9b","webpack:///webpack:///src/selectfield/_selectfield.scss?910a","webpack:///webpack:///src/menu-button/_menu-button.scss?610a","webpack:///webpack:///src/bordered-fields/_bordered-fields.scss?3072","webpack:///webpack:///src/collapsible/_collapsible.scss?5cb7","webpack:///webpack:///src/accordion/_accordion.scss?b350","webpack:///webpack:///src/color-themes/_color-themes.scss?0fde","webpack:///webpack:///src/color-themes/_light-color-theme.scss?77e1","webpack:///webpack:///src/color-themes/_dark-color-theme.scss?a990"],"names":[],"mappings":"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QAAA;GVmkBH;;EUpkBC;IACE;QAAA;GVukBH;;EUxkBC;IACE;QAAA;GV2kBH;;EU5kBC;IACE;QAAA;GV+kBH;;EUhlBC;IACE;QAAA;GVmlBH;;EUplBC;IACE;QAAA;GVulBH;;EUxlBC;IACE;QAAA;GV2lBH;;EU5lBC;IACE;QAAA;GV+lBH;;EUzlBC;;IAhDF;GV8oBC;;EU5oB0B;;;IACzB;GVipBD;;EUpmBC;;IAhDF;GVypBC;;EUvpBD;;;IACE;GV4pBD;;EU/mBC;;IAhDF;GVoqBC;;EUlqB0B;;;IACzB;GVuqBD;;EUlnBC;;IAxDF;GV+qBC;;EU7qBD;;;IACE;GVkrBD;;EU7nBC;;IAxDF;GV0rBC;;EUxrBD;;;IACE;GV6rBD;;EUxoBC;;IAxDF;GVqsBC;;EUnsBD;;;IACE;GVwsBD;;EUnpBC;;IAxDF;GVgtBC;;EU9sBD;;;IACE;GVmtBD;;EU9pBC;;IAxDF;GV2tBC;;EUztBD;;;IACE;GV8tBD;;EUzqBC;;IAxDF;GVsuBC;;EUpuBD;;;IACE;GVyuBD;;EUprBC;;IAxDF;GVivBC;;EU/uBD;;;IACE;GVovBD;;EU/rBC;;IAxDF;GV4vBC;;EU1vBD;;;IACE;GV+vBD;;EU1sBC;;IAxDF;GVuwBC;;EUrwBD;;;IACE;GV0wBD;;EU7sBC;;IApDF;GVswBC;;EUpwBD;;;IACE;GVywBD;;EUxtBC;;IApDF;GVixBC;;EU/wBsC;;;IACrC;GVoxBD;;EUnuBC;;IApDF;GV4xBC;;EU1xBD;;;IACE;GV+xBD;CACF;;AUruBD;;AACA;EAA4F;;EAC1F;IACE;GV2uBD;;EUxuBD;IACE;IAjFF;GV6zBC;;EU3zB0B;IACzB;GV8zBD;;EU5uBD;IACE;GV+uBD;;EU1uBC;IACE;QAAA;GV6uBH;;EU9uBC;IACE;QAAA;GVivBH;;EUlvBC;IACE;QAAA;GVqvBH;;EUtvBC;IACE;QAAA;GVyvBH;;EU1vBC;IACE;QAAA;GV6vBH;;EU9vBC;IACE;QAAA;GViwBH;;EUlwBC;IACE;QAAA;GVqwBH;;EUtwBC;IACE;QAAA;GVywBH;;EU1wBC;IACE;QAAA;GV6wBH;;EU9wBC;IACE;QAAA;GVixBH;;EUlxBC;IACE;QAAA;GVqxBH;;EUtxBC;IACE;QAAA;GVyxBH;;EUnxBC;;IAlGF;GV03BC;;EUx3B0B;;;IACzB;GV63BD;;EU9xBC;;IAlGF;GVq4BC;;EUn4BD;;;IACE;GVw4BD;;EUzyBC;;IAlGF;GVg5BC;;EU94B0B;;;IACzB;GVm5BD;;EUpzBC;;IAlGF;GV25BC;;EUz5BD;;;IACE;GV85BD;;EU/zBC;;IAlGF;GVs6BC;;EUp6B0B;;;IACzB;GVy6BD;;EU10BC;;IAlGF;GVi7BC;;EU/6B0B;;;IACzB;GVo7BD;;EUr1BC;;IAlGF;GV47BC;;EU17B0B;;;IACzB;GV+7BD;;EUx1BC;;IA1GF;GVu8BC;;EUr8B0B;;;IACzB;GV08BD;;EUn2BC;;IA1GF;GVk9BC;;EUh9B0B;;;IACzB;GVq9BD;;EU92BC;;IA1GF;GV69BC;;EU39B0B;;;IACzB;GVg+BD;;EUz3BC;;IA1GF;GVw+BC;;EUt+BD;;;IACE;GV2+BD;;EUp4BC;;IA1GF;GVm/BC;;EUj/B0B;;;IACzB;GVs/BD;;EUv4BC;;IAtGF;GVk/BC;;EUh/BD;;;IACE;GVq/BD;;EUl5BC;;IAtGF;GV6/BC;;EU3/BD;;;IACE;GVggCD;;EU75BC;;IAtGF;GVwgCC;;EUtgCsC;;;IACrC;GV2gCD;;EUx6BC;;IAtGF;GVmhCC;;EUjhCD;;;IACE;GVshCD;;EUn7BC;;IAtGF;GV8hCC;;EU5hCsC;;;IACrC;GViiCD;;EU97BC;;IAtGF;GVyiCC;;EUviCD;;;IACE;GV4iCD;;EUz8BC;;IAtGF;GVojCC;;EUljCD;;;IACE;GVujCD;CACF;;AU38BD;EACE;IACE;GV88BD;;EU38BD;IACE;IAlIF;GVilCC;;EU/kCD;IACE;GVklCD;;EU/8BD;IACE;GVk9BD;;EU78BC;IACE;QAAA;GVg9BH;;EUj9BC;IACE;QAAA;GVo9BH;;EUr9BC;IACE;QAAA;GVw9BH;;EUz9BC;IACE;QAAA;GV49BH;;EU79BC;IACE;QAAA;GVg+BH;;EUj+BC;IACE;QAAA;GVo+BH;;EUr+BC;IACE;QAAA;GVw+BH;;EUz+BC;IACE;QAAA;GV4+BH;;EU7+BC;IACE;QAAA;GVg/BH;;EUj/BC;IACE;QAAA;GVo/BH;;EUr/BC;IACE;QAAA;GVw/BH;;EUz/BC;IACE;QAAA;GV4/BH;;EUt/BC;;IAnJF;GV8oCC;;EU5oCD;;;IACE;GVipCD;;EUjgCC;;IAnJF;GVypCC;;EUvpCD;;;IACE;GV4pCD;;EU5gCC;;IAnJF;GVoqCC;;EUlqC0B;;;IACzB;GVuqCD;;EUvhCC;;IAnJF;GV+qCC;;EU7qCD;;;IACE;GVkrCD;;EUliCC;;IAnJF;GV0rCC;;EUxrC0B;;;IACzB;GV6rCD;;EU7iCC;;IAnJF;GVqsCC;;EUnsCD;;;IACE;GVwsCD;;EUxjCC;;IAnJF;GVgtCC;;EU9sC0B;;;IACzB;GVmtCD;;EUnkCC;;IAnJF;GV2tCC;;EUztC0B;;;IACzB;GV8tCD;;EU9kCC;;IAnJF;GVsuCC;;EUpuC0B;;;IACzB;GVyuCD;;EUzlCC;;IAnJF;GVivCC;;EU/uC0B;;;IACzB;GVovCD;;EUpmCC;;IAnJF;GV4vCC;;EU1vC0B;;;IACzB;GV+vCD;;EU/mCC;;IAnJF;GVuwCC;;EUrwC0B;;;IACzB;GV0wCD;;EUlnCC;;IA/IF;GVswCC;;EUpwCsC;;;IACrC;GVywCD;;EU7nCC;;IA/IF;GVixCC;;EU/wCD;;;IACE;GVoxCD;;EUxoCC;;IA/IF;GV4xCC;;EU1xCsC;;;IACrC;GV+xCD;;EUnpCC;;IA/IF;GVuyCC;;EUryCD;;;IACE;GV0yCD;;EU9pCC;;IA/IF;GVkzCC;;EUhzCsC;;;IACrC;GVqzCD;;EUzqCC;;IA/IF;GV6zCC;;EU3zCsC;;;IACrC;GVg0CD;;EUprCC;;IA/IF;GVw0CC;;EUt0CD;;;IACE;GV20CD;;EU/rCC;;IA/IF;GVm1CC;;EUj1CsC;;;IACrC;GVs1CD;;EU1sCC;;IA/IF;GV81CC;;EU51CD;;;IACE;GVi2CD;;EUrtCC;;IA/IF;GVy2CC;;EUv2CD;;;IACE;GV42CD;;EUhuCC;;IA/IF;GVo3CC;;EUl3CD;;;IACE;GVu3CD;CACF;;AWj9CD;;;;;;;;;;;;;;GXi+CG;;AWj9CH;;;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A;EACA;EACA;EACA;Cdi/DD;;Ac9+DD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;Cdi/DD;;Ac5+DG;;EAIE;EACA;Cd6+DL;;Ac//DD;;EAwBI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;Cd4+DH;;Ac7gED;EAsCI;Cd2+DH;;Acx+DC;EACE;EACA;EACA;EACA;EACA;Cd2+DH;;Acz+DG;EACE;EACA;Cd4+DL;;Acz+DG;EACE;EX7EF;EAgIF;EACA;EACA;EACA;EWnDI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;Cd++DL;;AcljED;EA0EQ;EACA;Cd4+DP;;Acv+DC;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;Cd0+DH;;AcnkED;EA4FM;Cd2+DL;;AelnED;;;;;;;;;;;;;;GfkoEG;;AelnEH;;;;;;;;Gf4nEG;;AKvkEH;;AAqCA;;AUzEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CfknED;;Ae1nED;EAYI;EACA;CfknEH;;Ae9mEC;ERzCA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKE;EACA;EQ8BA;EACA;EACA;EACA;EACA;Cf0nEH;;AetnED;EAEI;ERtDF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKE;EACA;CP2qEH;;Ae7nED;EACE;CfgoED;;Ae5nED;EACE;Cf+nED;;Ae3nED;EACE;EACA;EACA;Cf8nED;;Ae1nED;EAGE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CfynED;;AetnEC;EACE;EACA;CfynEH;;AernEC;EACE;EACA;CfwnEH;;Ae5pED;EAwCI;CfwnEH;;AernEC;EACE;CfwnEH;;AernEgC;EAC7B;EACA;CfwnEH;;AernEC;;EAEE;EACA;EACA;CfwnEH;;AehrED;EA4DI;EACA;EACA;CfwnEH;;AennED;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CfsnED;;AepnE8B;;EAE3B;CfunEH;;AennEqC;EZ+GpC;EACA;CHwgED;;AepnEqD;EAClD;CfunEH;;AepnEwC;;EAErC;CfunEH;;AepnEgD;;;EAG7C;EACA;EACA;EACA;CfunEH;;AepnEC;;;EAGE;CfunEH;;AepnEgD;EAC7C;EACA;CfunEH;;Ae3qED;EAyDI;EACA;EACA;EACA;EACA;EACA;EZuEF;EACA;EYrEE;EACA;CfsnEH;;AennEC;EACE;EACA;EACA;CfsnEH;;AennEgC;EAC7B;CfsnEH;;AejnED;EACE;EACA;EACA;EACA;EACA;EACA;CfonED;;AelnEC;EACE;CfqnEH;;AehnED;EACE;EACA;EACA;EZmCA;EACA;EY5BA;Cf8mED;;Ae5mEgC;;EAM7B;Cf2mEH;;AezmEC;EACE;Cf4mEH;;AgBx3ED;;;;;;;;;;;;;;;;;;GhB44EG;;AgBx3EH;;;;;;;;;EhBm4EE;;AgBx3EF;EACE;EbdE;EAqKF;EACA;EACA;EACA;EaxJA;EACA;EACA;EACA;EACA;EAAA;EACA;MAAA;EACA;MAAA;ChB+3ED;;AgB73EG;EACA;EACA;ChBg4EH;;AgB73EG;EACA;ChBg4EH;;AgBj5ED;EAqBI;ChBg4EH;;AgB33ED;EACE;EACA;EACA;EACA;ChB83ED;;AgB33ED;;EAEE;EACA;EACA;EACA;EACA;EAAA;ChB83ED;;AgB33ED;EACE;EACA;EACA;EACA;EACA;Eb4JA;Ea1JA;EAAA;EACA;MAAA;EACA;EACA;EACA;ChB83ED;;AgBz4ED;EAcI;EACA;ChB+3EH;;AgB94ED;ETxCE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ESqDE;ChBs4EH;;AgBn4EC;EbsCA;EACA;EACA;EACA;EavCE;EACA;EACA;EACA;EACA;MAAA;EACA;MAAA;MAAA;EACA;EACA;EACA;EACA;KAAA;MAAA;UAAA;EACA;EACA;ChBy4EH;;AgBv4EG;EACE;ChB04EL;;AgBt4EG;EACE;EACA;EACA;EACA;EACA;EACA;EACA;ChBy4EL;;AgBt4EG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D;;;;;;;;;;EnBi+FE;;AmBr9FF;EACE;IAAK;GnBy9FJ;;EmBx9FD;IAAM;GnB49FL;;EmB39FD;IAAM;GnB+9FL;;EmB99FD;IAAO;GnBk+FN;CACF;;AmBh+FD;EACE;IAAK;GnBo+FJ;;EmBn+FD;IAAM;GnBu+FL;;EmBt+FD;IAAM;GnB0+FL;;EmBz+FD;IAAO;GnB6+FN;CACF;;AmB3+FD;;;;;;;;;;EnBu/FE;;AmB3+FF;EACE;IAAK;GnB++FJ;;EmB9+FD;IAAM;GnBk/FL;;EmBj/FD;IAAM;GnBq/FL;;EmBp/FD;IAAO;GnBw/FN;CACF;;AmBt/FD;EACE;IAAK;GnB0/FJ;;EmBz/FD;IAAM;GnB6/FL;;EmB5/FD;IAAM;GnBggGL;;EmB//FD;IAAO;GnBmgGN;CACF;;AoB74GD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EpBu8GE;;AqBr8GF;EACE;EACA;CrBw8GD;;AqB18GD;EAKI;CrBy8GH;;AqBj8GC;EACE;CrBo8GH;;AqBj8GC;EACE;CrBo8GH;;AqB38GD;EAWI;CrBo8GH;;AqBj8GC;EACE;CrBo8GH;;AqBj8GC;EACE;CrBo8GH;;AqBv9GD;EAuBI;CrBo8GH;;AqB39GD;EA2BI;CrBo8GH;;AqB/9GD;EA+BI;CrBo8GH;;AqBj8GC;EACE;CrBo8GH;;AqBv+GD;EAuCI;CrBo8GH;;AqB77GD;EAEI;CrB+7GH;;AqBv7GC;EAGI;EACA;CrBw7GL;;AqB77GD;EAUQ;EACA;CrBu7GP;;AqB96GD;EAGI;EACA;CrB+6GH;;AqBj7GC;EAKI;CrBg7GL;;AqBv7GD;EAWM;CrBg7GL;;AqB37GD;EAeM;CrBg7GL;;AqB/7GD;EAmBM;CrBg7GL;;AqBj8GC;EAoBM;CrBi7GP;;AqBv8GD;EA6BI;CrB86GH;;AqB38GD;EAgCM;CrB+6GL;;AqBn7GC;EAQI;CrB+6GL;;AqBv7GC;EAYI;EACA;CrB+6GL;;AqB57GC;EAgBM;CrBg7GP;;AqBh8GC;EAoBM;CrBg7GP;;AqBh+GD;EAoDQ;CrBg7GP;;AqBp+GD;EAwDQ;CrBg7GP;;AqBx+GD;EAgEI;CrB46GH;;AqB5+GD;EAmEM;CrB66GL;;AqBj7GC;EAQI;CrB66GL;;AqBp/GD;EA2EM;EACA;CrB66GL;;AqBz/GD;EA+EQ;CrB86GP;;AqB7/GD;EAmFQ;CrB86GP;;AqBjgHD;EAuFQ;CrB86GP;;AqBrgHD;EA2FQ;CrB86GP;;AqBzgHD;EAmGI;CrB06GH;;AqBr6GC;EACE;CrBw6GH;;AqBjhHD;EA4GM;CrBy6GL;;AqBrhHD;;EAgHM;EACA;CrB06GL;;AqBt6GC;EACE;CrBy6GH;;AqBv6GK;EACA;CrB06GL;;AqB96GC;;EAQI;EACA;CrB26GL;;AqBziHD;;EAwIM;EACA;CrBs6GL;;AqB/iHD;;EAgJQ;EACA;CrBo6GP;;AqBrjHD;;EAyJQ;EACA;CrBi6GP;;AqBv7GC;;EA6BM;CrB+5GP;;AqBv5GD;EAIM;EACA;EAeA;EAgBA;EAGA;EA6BA;EAQA;EAOA;EA8BA;EA0BA;EAMA;EAsCA;EAkBA;CrB8tGL;;AqBv6GD;EAQQ;CrBm6GP;;AqB36GD;EAYQ;CrBm6GP;;AqB/6GD;EAgBQ;EACA;CrBm6GP;;AqBp7GD;EAsBQ;CrBk6GP;;AqBx7GD;EA8BQ;CrB85GP;;AqB57GD;EAyCQ;CrBu5GP;;AqBh8GD;EA6CQ;CrBu5GP;;AqBp8GD;EAiDQ;CrBu5GP;;AqBx8GD;EAqDQ;CrBu5GP;;AqB58GD;EAyDQ;CrBu5GP;;AqB/8GC;EA4DM;CrBu5GP;;AqBp9GD;EAiEQ;CrBu5GP;;AqBx9GD;EAsEQ;CrBs5GP;;AqB59GD;EA+EQ;CrBi5GP;;AqBh+GD;EAsFQ;EACA;CrB84GP;;AqBp+GC;EA0FM;EACA;CrB84GP;;AqB1+GD;EAgGQ;EACA;CrB84GP;;AqB/+GD;EAqGQ;EACA;CrB84GP;;AqBp/GD;EA0GQ;CrB84GP;;AqBx/GD;EA8GQ;CrB84GP;;AqB3/GC;EAkHM;CrB64GP;;AqB//GC;EA0HM;CrBy4GP;;AqBpgHD;EAqIQ;CrBm4GP;;AqBxgHD;EA8IQ;CrB83GP;;AqB3gHC;;;EAqJM;CrB43GP;;AqBlhHD;;;EA4JQ;CrB43GP;;AqBxhHD;EAgKQ;CrB43GP;;AqB3hHC;;;EAqKM;EACA;CrB43GP;;AqBliHC;;;EA4KM;EACA;CrB43GP;;AqB1iHD;;;EAoLQ;CrB43GP;;AqBhjHD;;;EA2LQ;CrB23GP;;AqBrjHC;EAkMM;CrBu3GP;;AqB52GC;EACE;CrB+2GH;;AqB9jHD;EAmNI;CrB+2GH;;AqB32GC;EACE;CrB82GH;;AqBv2GD;EAGI;CrBw2GH;;AqB32GD;EAMI;CrBy2GH;;AqB/2GD;;EAUI;EACA;EACA;CrB02GH;;AqBt3GD;EAeI;CrB22GH;;AqBz2GC;EACE;CrB42GH;;AqB12GmC;;EAEhC;CrB62GH;;AqB32G2C;;;EAGxC;CrB82GH;;AqBz4GD;EA8BI;CrB+2GH;;AqB74GD;EAiCI;CrBg3GH;;AqBj5GD;EAoCI;CrBi3GH;;AqBx2GC;EACE;CrB22GH;;AqB92GD;EAMI;CrB42GH;;AqBl3GD;;EAUI;CrB62GH;;AqB12GC;EACE;CrB62GH;;AqB33GD;EAiBI;EACA;CrB82GH;;AqBh4GD;EAsBI;CrB82GH;;AqBp4GD;EAyBI;CrB+2GH;;AqBx4GD;;EA6BI;CrBg3GH;;AqB74GD;;EAkCI;CrBg3GH;;AqB72GiC;EAC9B;CrBg3GH;;AqBt5GD;;EA0CI;CrBi3GH;;AqBz2GC;EACE;CrB42GH;;AqB92GD;EAKI;CrB62GH;;AqB32G6C;;EAE1C;CrB82GH;;AqB32GC;EACE;CrB82GH;;AqB33GD;;EAiBI;CrB+2GH;;AqBh4GD;;EAsBI;CrB+2GH;;AqBr4GD;EA0BI;CrB+2GH;;AqBz4GD;;EA8BI;CrBg3GH;;AqB12GD;EAEI;CrB42GH;;AqB92GD;EAKI;CrB62GH;;AqB32G8B;EAC3B;CrB82GH;;AqB52G6B;EAC1B;CrB+2GH;;AqB72GwC;EACrC;CrBg3GH;;AqB92GoC;EACjC;CrBi3GH;;AqB/2GiE;EAC9D;CrBk3GH;;AqBz2GC;EACE;CrB42GH;;AqB/2GD;EAMI;CrB62GH;;AqBn3GD;;EAUI;CrB82GH;;AqBx3GD;EAcI;CrB82GH;;AqB52GwB;EACrB;CrB+2GH;;AqBh4GD;;EAqBI;CrBg3GH;;AqBr4GD;EAyBI;CrBg3GH;;AqB92GwB;EACrB;CrBi3GH;;AqB/2GmC;EAChC;EACA;CrBk3GH;;AqB/2GuC;;EAEpC;CrBk3GH;;AqB/2G+B;EAC5B;CrBk3GH;;AqB35GD;;EA6CI;CrBm3GH;;AqB52GD;EAGI;EACA;CrB62GH;;AqBj3GD;EASU;CrB42GT;;AqBr3GD;EAYU;CrB62GT;;AqBz2GG;EACE;CrB42GL;;AqB73GD;;EAqBQ;CrB62GP;;AqBl4GD;;EAyBY;CrB82GX;;AqBj2GC;EACE;CrBo2GH;;AqBv2GD;EAOI;EACA;EACA;CrBo2GH;;AqBv2GC;EAMI;CrBq2GL;;AqB32GC;;EAWI;EACA;CrBq2GL;;AqBj3GC;;EAeM;CrBu2GP;;AqB53GD;;EAyBQ;CrBw2GP;;AqBr2GO;;EACA;CrBy2GP;;AqBh4GC;EA4BI;CrBw2GL;;AqB14GD;EAsCM;CrBw2GL;;AqB94GD;EA0CM;CrBw2GL;;AqB91GC;EACE;CrBi2GH;;AqBp2GD;EAOI;CrBi2GH;;AqB91GC;EACE;CrBi2GH;;AqB52GD;EAcM;CrBk2GL;;AqBh3GD;EAmBI;CrBi2GH;;AqB91GC;EACE;CrBi2GH;;AqBx3GD;EA2BI;CrBi2GH;;AqB91GC;EACE;CrBi2GH;;AqBh4GD;EAkCM;CrBk2GL;;AqB11GD;EAGI;EdzyBF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKE;EACA;CPioIH;;AqBz2GD;EAQI;EACA;CrBq2GH;;AqB92GD;EAYM;EACA;CrBs2GL;;AqBn3GD;EAiBI;CrBs2GH;;AqBv3GD;;EAqBI;EACA;EACA;CrBu2GH;;AqBp2GC;EACE;CrBu2GH;;AqBl4GD;;EA+BI;CrBw2GH;;AqBv4GD;;;;EAqCI;CrBy2GH;;AqB94GD;EAwCI;CrB02GH;;AqBl5GD;EA2CI;CrB22GH;;AqBt5GD;EA8CI;CrB42GH;;AqB15GD;EAkDI;CrB42GH;;AqBt2GD;EACE;CrBy2GD;;AqBt2GD;EAGI;CrBu2GH;;AqBx2GC;EAII;EACA;CrBw2GL;;AqB72GC;;EASM;CrBy2GP;;AqBp3GD;EAcQ;CrB02GP;;AqBt3GC;EAeM;EACA;CrB22GP;;AqB33GC;EAmBM;CrB42GP;;AqB12GS;EACA;CrB62GT;;AqBr4GD;EA6BM;CrB42GL;;AqBp2GD;;;;EASQ;EACA;EACA;CrBk2GP;;AqBt2GK;;;;EAOI;EACA;EACA;CrBs2GT;;AqBt3GD;;;;EAmBU;EACA;CrB02GT;;AqB93GD;;;;EA0BU;EACA;EACA;CrB22GT;;AqBv4GD;;;;EA+BY;EACA;CrB+2GX;;AqB/4GD;;EAwCM;Ed/6BJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKE;EACA;CPwxIH;;AqB/5GD;;EA8CM;EACA;EACA;CrBs3GL;;AqBt6GD;;;;EAwDQ;CrBq3GP;;AqB52GO;;;;;;;;;;;;;;;;;;;;;;;;EAEE;CrBq4GT;;AqB/3GO;;;;;;;;EAEE;CrBw4GT;;AqBl4GO;;;;;;;;EAEE;CrB24GT;;AqBt4GqC;;EAEhC;CrBy4GL;;AqBn+GD;;;;EAkGQ;CrBw4GP;;AqBn4GK;;;;EAEE;CrBw4GP;;AqB/3GD;EAKM;EACA;CrB83GL;;AqBp4GD;EASQ;CrB+3GP;;AqBt4GC;EAUM;CrBg4GP;;AqB54GD;EAeQ;CrBi4GP;;AqBh5GD;EAkBQ;EACA;EACA;CrBk4GP;;AqBh4GS;EACA;CrBm4GT;;AqBx5GC;EAyBM;CrBm4GP;;AqB55GC;EA6BQ;CrBm4GT;;AqBl6GD;EAqCM;EACA;CrBi4GL;;AqBx3GK;EACE;CrB23GP;;AqB36GD;EAmDU;CrB43GT;;AqBz3GK;EACE;CrB43GP;;AqBl3GK;EACE;CrBq3GP;;AqBv7GD;EAqEU;CrBs3GT;;AqBn3GK;EACE;CrBs3GP;;AqBj3GC;EAII;EACA;CrBi3GL;;AqBp8GD;EA2FM;EACA;CrB62GL;;AqB32GO;EACA;CrB82GP;;AqB78GD;EAmGM;EACA;CrB82GL;;AoBp9ID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EpB8gJE;;AsB5gJF;EACE;EACA;CtB+gJD;;AsB9gJC;EACE;CtBihJH;;AsB5gJD;EAGI;CtB6gJH;;AsB1gJC;EACE;CtB6gJH;;AsB1gJC;EACE;CtB6gJH;;AsBxhJD;EAeI;CtB6gJH;;AsB5hJD;EAmBI;CtB6gJH;;AsBhiJD;EAuBI;CtB6gJH;;AsB1gJC;EACE;CtB6gJH;;AsBxiJD;EA+BI;CtB6gJH;;AsB5iJD;EAmCI;CtB6gJH;;AsB1gJC;EACE;CtB6gJH;;AsBtgJC;EACE;CtBygJH;;AsBlgJD;EAIM;EACA;CtBkgJL;;AsBtgJC;EASM;EACA;CtBigJP;;AsBx/ID;EAGI;EACA;CtBy/IH;;AsB7/ID;EAOM;CtB0/IL;;AsBjgJD;EAWM;CtB0/IL;;AsBngJC;EAaI;CtB0/IL;;AsBzgJD;EAmBM;CtB0/IL;;AsB7gJD;EAsBQ;CtB2/IP;;AsBjhJD;EA6BI;CtBw/IH;;AsBz/IC;EAII;CtBy/IL;;AsBzhJD;EAoCM;CtBy/IL;;AsB7hJD;EAwCM;EACA;CtBy/IL;;AsBliJD;EA4CQ;CtB0/IP;;AsBtiJD;EAgDQ;CtB0/IP;;AsB1iJD;EAoDQ;CtB0/IP;;AsB9iJD;EAwDQ;CtB0/IP;;AsBn/IC;EACE;CtBs/IH;;AsBtjJD;EAmEM;CtBu/IL;;AsB1jJD;EAuEM;CtBu/IL;;AsB//IC;EAYI;EACA;CtBu/IL;;AsBnkJD;EA+EQ;CtBw/IP;;AsBvkJD;EAmFQ;CtBw/IP;;AsB5gJC;EAwBM;CtBw/IP;;AsBr/IO;EACA;CtBw/IP;;AsBj/IC;EACE;CtBo/IH;;AsBvlJD;EAyGI;CtBk/IH;;AsB3lJD;EA4GM;CtBm/IL;;AsBv/IC;;EAQI;EACA;CtBo/IL;;AsBrmJD;EAsHI;CtBm/IH;;AsBzmJD;EAyHM;CtBo/IL;;AsB7mJD;;EA6HM;EACA;CtBq/IL;;AsB/+IC;;EAII;EACA;CtBg/IL;;AsBr/IC;;EAYM;EACA;CtB8+IP;;AsB/nJD;;EAyJQ;EACA;CtB2+IP;;AsBjgJC;;EA6BM;CtBy+IP;;AsB99IC;EAGI;EACA;EAeA;EAmBA;EA8BA;EAQA;EAOA;EA8BA;EA0BA;EAMA;EAsCA;EAkBA;CtBoyIL;;AsB/+ID;EASQ;CtB0+IP;;AsBn/ID;EAaQ;CtB0+IP;;AsBv/ID;EAiBQ;EACA;CtB0+IP;;AsB1/IC;EAqBM;CtBy+IP;;AsB9/IC;EA+BM;CtBm+IP;;AsBpgJD;EA2CQ;CtB69IP;;AsBxgJD;EA+CQ;CtB69IP;;AsB5gJD;EAmDQ;CtB69IP;;AsBhhJD;EAuDQ;CtB69IP;;AsBphJD;EA2DQ;CtB69IP;;AsBxhJD;EA+DQ;CtB69IP;;AsB5hJD;EAmEQ;CtB69IP;;AsBhiJD;EAwEQ;CtB49IP;;AsBpiJD;EAiFQ;CtBu9IP;;AsBxiJD;EAwFQ;EACA;CtBo9IP;;AsB7iJD;EA6FQ;EACA;CtBo9IP;;AsBhjJC;EAgGM;EACA;CtBo9IP;;AsBrjJC;EAqGM;EACA;CtBo9IP;;AsB5jJD;EA4GQ;CtBo9IP;;AsBhkJD;EAgHQ;CtBo9IP;;AsBlkJC;EAmHM;CtBm9IP;;AsBxkJD;EA6HQ;CtB+8IP;;AsB5kJD;EAuIQ;CtBy8IP;;AsBhlJD;EAgJQ;CtBo8IP;;AsBllJC;;;EAsJM;CtBk8IP;;AsB1lJD;;;EA8JQ;CtBk8IP;;AsB/7IiD;EAC1C;CtBk8IP;;AsBpmJD;;;EAwKQ;EACA;CtBk8IP;;AsBzmJC;;;EA6KM;EACA;CtBk8IP;;AsBlnJD;;;EAsLQ;CtBk8IP;;AsBtnJC;;;EA2LM;CtBi8IP;;AsB5nJC;EAmMM;CtB67IP;;AsBloJD;EAiNI;CtBq7IH;;AsBl7IC;EACE;CtBq7IH;;AsB1oJD;EA0NI;CtBo7IH;;AsB36IC;EACE;CtB86IH;;AsBj7ID;EAMI;CtB+6IH;;AsBr7ID;;EAUI;EACA;EACA;CtBg7IH;;AsB96IC;EACE;CtBi7IH;;AsBh8ID;EAkBI;CtBk7IH;;AsBp8ID;;EAsBI;CtBm7IH;;AsBj7I2C;;;EAGxC;CtBo7IH;;AsB/8ID;EA8BI;CtBq7IH;;AsBn9ID;EAiCI;CtBs7IH;;AsBv9ID;EAoCI;CtBu7IH;;AsB96IC;EACE;CtBi7IH;;AsBp7ID;EAMI;CtBk7IH;;AsBx7ID;;EAUI;CtBm7IH;;AsB77ID;EAcI;CtBm7IH;;AsBj8ID;EAiBI;EACA;CtBo7IH;;AsBj7IC;EACE;CtBo7IH;;AsB18ID;EAyBI;CtBq7IH;;AsB98ID;;EA6BI;CtBs7IH;;AsBn9ID;;EAkCI;CtBs7IH;;AsBx9ID;EAsCI;CtBs7IH;;AsBp7IkE;;EAE/D;CtBu7IH;;AsB/6IC;EACE;CtBk7IH;;AsBp7ID;EAKI;CtBm7IH;;AsBx7ID;;EASI;CtBo7IH;;AsB77ID;EAaI;CtBo7IH;;AsBl7I+B;;EAE5B;CtBq7IH;;AsBt8ID;;EAsBI;CtBq7IH;;AsBl7I8B;EAC3B;CtBq7IH;;AsBn7I4D;;EAEzD;CtBs7IH;;AsBh7ID;EAEI;CtBk7IH;;AsBp7ID;EAKI;CtBm7IH;;AsBx7ID;EAQI;CtBo7IH;;AsB57ID;EAWI;CtBq7IH;;AsBh8ID;EAcI;CtBs7IH;;AsBp7IoC;EACjC;CtBu7IH;;AsBr7IiE;EAC9D;CtBw7IH;;AsB/6IC;EACE;CtBk7IH;;AsBr7ID;EAMI;CtBm7IH;;AsBz7ID;;EAUI;CtBo7IH;;AsB97ID;EAcI;CtBo7IH;;AsBl7IwB;EACrB;CtBq7IH;;AsBn7IuC;;EAEpC;CtBs7IH;;AsBn7IC;EACE;CtBs7IH;;AsB/8ID;EA4BI;CtBu7IH;;AsBr7ImC;EAChC;EACA;CtBw7IH;;AsBx9ID;;EAqCI;CtBw7IH;;AsB79ID;EAyCI;CtBw7IH;;AsBj+ID;;EA6CI;CtBy7IH;;AsB/6IC;EACE;EACA;CtBk7IH;;AsB/6IK;EAEI;CtBi7IT;;AsBn7IK;EAMI;CtBi7IT;;AsB56IG;EACE;CtB+6IL;;AsBl8ID;;EAuBQ;CtBg7IP;;AsBr7IG;;EASQ;CtBi7IX;;AsBv6ID;EAGI;CtBw6IH;;AsB36ID;EAOI;EACA;EACA;CtBw6IH;;AsB36IC;EAMI;CtBy6IL;;AsBr7ID;;EAiBM;EACA;CtBy6IL;;AsB37ID;;EAqBQ;CtB26IP;;AsBh8ID;;EAyBQ;CtB46IP;;AsBr8ID;;EA6BQ;CtB66IP;;AsB18ID;EAkCM;CtB46IL;;AsB98ID;EAsCM;CtB46IL;;AsBl9ID;EA0CM;CtB46IL;;AsBr6ID;EAEI;CtBu6IH;;AsBp6IC;EACE;CtBu6IH;;AsB76ID;EAUI;CtBu6IH;;AsBx6IC;EAII;CtBw6IL;;AsBp6IC;EACE;CtBu6IH;;AsBp6IC;EACE;CtBu6IH;;AsB77ID;EA0BI;CtBu6IH;;AsBj8ID;EA8BI;CtBu6IH;;AsBx6IC;EAII;CtBw6IL;;AsBh6ID;EAGI;EfzyBF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKE;EACA;CPusKH;;AsBx6IC;EACE;EACA;CtB26IH;;AsBz6IG;EACE;EACA;CtB46IL;;AsBz6IgC;EAC7B;CtB46IH;;AsB77ID;;EAqBI;EACA;EACA;CtB66IH;;AsBp8ID;EA2BI;CtB66IH;;AsB36IwC;;EAErC;CtB86IH;;AsB78ID;;;;EAqCI;CtB+6IH;;AsB76IgD;EAC7C;CtBg7IH;;AsB96IC;EACE;CtBi7IH;;AsB59ID;EA8CI;CtBk7IH;;AsBh+ID;EAkDI;CtBk7IH;;AsB36ID;EACE;CtB86ID;;AsB36ID;EAGI;CtB46IH;;AsB/6ID;EAMM;EACA;CtB66IL;;AsBp7ID;;EAWQ;CtB86IP;;AsBz7ID;EAcQ;CtB+6IP;;AsB77ID;EAiBQ;EACA;CtBg7IP;;AsBl8ID;EAqBQ;CtBi7IP;;AsBt8ID;EAwBU;CtBk7IT;;AsB18ID;EA6BM;CtBi7IL;;AsBz6ID;;;;EASQ;EACA;EACA;CtBu6IP;;AsBl7ID;;;;EAcU;EACA;EACA;CtB26IT;;AsB37ID;;;;EAmBU;EACA;CtB+6IT;;AsBn8ID;;;;EA0BU;EACA;EACA;CtBg7IT;;AsB58ID;;;;EA+BY;EACA;CtBo7IX;;AsBp9ID;;EAwCM;Efh7BJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKE;EACA;CP81KH;;AsBx7IqC;;EAEhC;EACA;EACA;CtB27IL;;AsBr7IK;;;;EAEE;CtB07IP;;AsBj7IO;;;;;;;;;;;;;;;;;;;;;;;;EAEE;CtB08IT;;AsB7gJD;;;;;;;;EA2EU;CtB68IT;;AsBv8IO;;;;;;;;EAEE;CtBg9IT;;AsBniJD;;EA0FM;CtB88IL;;AsBxiJD;;;;EAkGQ;CtB68IP;;AsB/iJD;;;;EAyGQ;CtB68IP;;AsBn8ID;EAKM;EACA;CtBk8IL;;AsBx8ID;EASQ;CtBm8IP;;AsB58ID;EAYQ;CtBo8IP;;AsBh9ID;EAeQ;CtBq8IP;;AsBp9ID;EAkBQ;EACA;EACA;CtBs8IP;;AsB19ID;EAuBU;CtBu8IT;;AsB99ID;EA2BQ;CtBu8IP;;AsBh+IC;EA6BQ;CtBu8IT;;AsBt+ID;EAqCM;EACA;CtBq8IL;;AsB3+ID;EAgDQ;CtB+7IP;;AsB/+ID;EAmDU;CtBg8IT;;AsB77IK;EACE;CtBg8IP;;AsBt7IK;EACE;CtBy7IP;;AsB3/ID;EAqEU;CtB07IT;;AsBv7IK;EACE;CtB07IP;;AsBr7IC;EAII;EACA;CtBq7IL;;AsBxgJD;EA2FM;EACA;CtBi7IL;;AsB7gJD;EA+FQ;CtBk7IP;;AsBjhJD;EAmGM;EACA;CtBk7IL","file":"mdl-ext.css","sourcesContent":["/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*------------------------------------*\\\n    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n\n\n/* ==========  TYPOGRAPHY  ========== */\n\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n$preferred_font: 'Roboto', 'Helvetica', 'Arial', sans-serif !default;\n$performance_font: 'Helvetica', 'Arial', sans-serif !default;\n\n/* ==========  COLORS  ========== */\n\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n\n@import \"color-definitions\";\n@import \"functions\";\n\n/* ==========  IMAGES  ========== */\n$image_path: '/images' !default;\n\n/* ==========  Color & Themes  ========== */\n\n// Define whether individual color palette items should have classes created.\n// Setting this to true will remove individual color classes for each color in the palettes.\n// To improve overall performance (assuming they aren't used) by:\n// * Saving server bandwidth sending the extra classes\n// * Save client computation against the classes\n// it is RECOMMENDED you set this to true.\n$trim-color-classes: false !default;\n\n// Use color primarily for emphasis. Choose colors that fit with\n// your brand and provide good contrast between visual components.\n$color-primary: $palette-indigo-500 !default;\n$color-primary-dark: $palette-indigo-700 !default;\n$color-accent: $palette-pink-A200 !default;\n\n// Our primary is dark, so use $color-dark-contrast for overlaid text.\n$color-primary-contrast: $color-dark-contrast !default;\n// Our accent is dark, so use $color-dark-contrast for overlaid text.\n$color-accent-contrast: $color-dark-contrast !default;\n\n// Replace all colors with placeholders if we're generating a template.\n@if $styleguide-generate-template == true {\n  $color-primary: '$color-primary';\n  $color-primary-dark: '$color-primary-dark';\n  $color-accent: '$color-accent';\n  $color-primary-contrast: '$color-primary-contrast';\n  $color-accent-contrast: '$color-accent-contrast';\n}\n\n/* ==========  Typography  ========== */\n\n// We use the following default color styles: text-color-primary and\n// text-color-secondary. For light themes, use text-color-primary-inverse\n// and text-color-secondary-inverse.\n\n$text-color-primary: unquote(\"rgba(#{$color-black}, 0.87)\") !default;\n$text-link-color: unquote(\"rgb(#{$color-accent})\") !default;\n\n// Define whether to target elements directly for typographic enhancements.\n// Turning this off means you need to use mdl-* classes more often.\n// Other components may also fail to adhere to MD without these rules.\n// It is strongly recommended you leave this as true.\n\n$target-elements-directly: true !default;\n\n/* ==========  Components  ========== */\n\n/* ==========  Standard Buttons  ========== */\n\n// Default button colors.\n$button-primary-color: unquote(\"rgba(#{$palette-grey-500}, 0.20)\") !default;\n$button-secondary-color: unquote(\"rgb(#{$color-black})\") !default;\n$button-hover-color: $button-primary-color !default;\n$button-active-color: unquote(\"rgba(#{$palette-grey-500}, 0.40)\") !default;\n$button-focus-color: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n\n// Colored button colors.\n$button-primary-color-alt: unquote(\"rgb(#{$color-primary})\") !default;\n$button-secondary-color-alt: unquote(\"rgb(#{$color-primary-contrast})\") !default;\n$button-hover-color-alt: unquote(\"rgb(#{$color-primary})\") !default;\n$button-active-color-alt: unquote(\"rgb(#{$color-primary})\") !default;\n$button-focus-color-alt: $button-focus-color !default;\n\n// Ripple color for colored raised buttons.\n$button-ripple-color-alt: unquote(\"rgb(#{$color-primary-contrast})\") !default;\n\n// Disabled button colors.\n$button-primary-color-disabled: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n$button-secondary-color-disabled: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n\n// FAB colors and sizes.\n$button-fab-color-alt: unquote(\"rgb(#{$color-accent})\") !default;\n$button-fab-hover-color-alt: unquote(\"rgb(#{$color-accent})\") !default;\n$button-fab-active-color-alt: unquote(\"rgb(#{$color-accent})\") !default;\n$button-fab-text-color-alt: unquote(\"rgb(#{$color-accent-contrast})\") !default;\n$button-fab-ripple-color-alt: unquote(\"rgb(#{$color-accent-contrast})\") !default;\n\n// Icon button colors and sizes.\n$button-icon-color: unquote(\"rgb(#{$palette-grey-700})\") !default;\n$button-icon-focus-color: $button-focus-color !default;\n\n/* ==========  Icon Toggles  ========== */\n\n$icon-toggle-color: unquote(\"rgb(#{$palette-grey-700})\") !default;\n$icon-toggle-focus-color: $button-focus-color !default;\n$icon-toggle-checked-color: unquote(\"rgb(#{$color-primary})\") !default;\n$icon-toggle-checked-focus-color: unquote(\"rgba(#{$color-primary}, 0.26)\") !default;\n$icon-toggle-disabled-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n\n/* ==========  Radio Buttons  ========== */\n\n$radio-color: unquote(\"rgb(#{$color-primary})\") !default;\n$radio-off-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n$radio-disabled-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n\n/* ==========  Ripple effect  ========== */\n\n$ripple-bg-color: unquote(\"rgb(#{$color-light-contrast})\") !default;\n\n/* ==========  Layout  ========== */\n\n$layout-nav-color: unquote(\"rgb(#{$palette-grey-300})\") !default;\n\n// Drawer\n$layout-drawer-bg-color: unquote(\"rgb(#{$palette-grey-50})\") !default;\n$layout-drawer-border-color: unquote(\"rgb(#{$palette-grey-300})\") !default;\n$layout-text-color: unquote(\"rgb(#{$palette-grey-800})\") !default;\n$layout-drawer-navigation-color: #757575 !default;\n$layout-drawer-navigation-link-active-background: unquote(\"rgb(#{$palette-grey-300})\") !default;\n$layout-drawer-navigation-link-active-color: unquote(\"rgb(#{$color-light-contrast})\") !default;\n\n// Header\n$layout-header-bg-color: unquote(\"rgb(#{$color-primary})\") !default;\n$layout-header-text-color: unquote(\"rgb(#{$color-primary-contrast})\") !default;\n$layout-header-nav-hover-color: unquote(\"rgba(#{$palette-grey-700}, 0.6)\") !default;\n$layout-header-tab-text-color: unquote(\"rgba(#{$color-primary-contrast}, 0.6)\") !default;\n\n// Tabs\n$layout-header-tab-highlight: unquote(\"rgb(#{$color-accent})\") !default;\n\n/* ==========  Content Tabs  ========== */\n\n$tab-highlight-color: unquote(\"rgb(#{$color-primary})\") !default;\n$tab-text-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n$tab-active-text-color: unquote(\"rgba(#{$color-black}, 0.87)\") !default;\n$tab-border-color: unquote(\"rgb(#{$palette-grey-300})\") !default;\n\n/* ==========  Checkboxes  ========== */\n\n$checkbox-color: unquote(\"rgb(#{$color-primary})\") !default;\n$checkbox-off-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n$checkbox-disabled-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n$checkbox-focus-color: unquote(\"rgba(#{$color-primary}, 0.26)\") !default;\n$checkbox-image-path: $image_path;\n\n/* ==========  Switches  ========== */\n\n$switch-color: unquote(\"rgb(#{$color-primary})\") !default;\n$switch-faded-color: unquote(\"rgba(#{$color-primary}, 0.26)\") !default;\n$switch-thumb-color: $switch-color !default;\n$switch-track-color: unquote(\"rgba(#{$color-primary}, 0.5)\") !default;\n\n$switch-off-thumb-color: unquote(\"rgb(#{$palette-grey-50})\") !default;\n$switch-off-track-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n$switch-disabled-thumb-color: unquote(\"rgb(#{$palette-grey-400})\") !default;\n$switch-disabled-track-color: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n\n/* ==========  Spinner  ========== */\n\n$spinner-color-1: unquote(\"rgb(#{$palette-blue-400})\") !default;\n$spinner-color-2: unquote(\"rgb(#{$palette-red-500})\") !default;\n$spinner-color-3: unquote(\"rgb(#{$palette-yellow-600})\") !default;\n$spinner-color-4: unquote(\"rgb(#{$palette-green-500})\") !default;\n\n$spinner-single-color: unquote(\"rgb(#{$color-primary})\") !default;\n\n/* ==========  Text fields  ========== */\n\n$input-text-background-color: transparent !default;\n$input-text-label-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n$input-text-bottom-border-color: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n$input-text-highlight-color: unquote(\"rgb(#{$color-primary})\") !default;\n$input-text-disabled-color: $input-text-bottom-border-color !default;\n$input-text-disabled-text-color: $input-text-label-color !default;\n$input-text-error-color: unquote(\"rgb(#{$palette-red-A700})\") !default;\n\n/* ==========  Card  ========== */\n\n$card-background-color: unquote(\"rgb(#{$color-white})\") !default;\n$card-text-color: unquote(\"rgb(#{$color-black})\") !default;\n$card-image-placeholder-color: unquote(\"rgb(#{$color-accent})\") !default;\n$card-supporting-text-text-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n$card-border-color: rgba(0,0,0,0.1) !default;\n$card-subtitle-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n\n/* ==========  Sliders ========== */\n\n$range-bg-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n$range-color: unquote(\"rgb(#{$color-primary})\") !default;\n$range-faded-color: unquote(\"rgba(#{$color-primary}, 0.26)\") !default;\n$range-bg-focus-color: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n\n/* ========== Progress ========== */\n$progress-main-color: unquote(\"rgb(#{$color-primary})\") !default;\n$progress-secondary-color: unquote(\"rgba(#{$color-primary-contrast}, 0.7)\") !default;\n$progress-fallback-buffer-color: unquote(\"rgba(#{$color-primary-contrast}, 0.9)\") !default;\n$progress-image-path: $image_path;\n\n/* ==========  List ========== */\n\n$list-main-text-text-color: unquote(\"rgba(#{$color-black}, 0.87)\") !default;\n$list-supporting-text-text-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n$list-icon-color: unquote(\"rgb(#{$palette-grey-600})\") !default;\n$list-avatar-color: white !default;\n\n/* ==========  Item ========== */\n\n// Default Item Colors\n$default-item-text-color: unquote(\"rgba(#{$color-black}, 0.87)\") !default;\n$default-item-outline-color: unquote(\"rgb(#{$palette-grey-400})\") !default;\n$default-item-hover-bg-color: unquote(\"rgb(#{$palette-grey-200})\") !default;\n$default-item-focus-bg-color: unquote(\"rgb(#{$palette-grey-200})\") !default;\n$default-item-active-bg-color: unquote(\"rgb(#{$palette-grey-300})\") !default;\n$default-item-divider-color: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n\n// Disabled Button Colors\n$disabled-item-text-color: unquote(\"rgb(#{$palette-grey-400})\") !default;\n\n/* ==========  Dropdown menu ========== */\n\n$default-dropdown-bg-color: unquote(\"rgb(#{$color-white})\") !default;\n\n/* ==========  Tooltips  ========== */\n\n$tooltip-text-color: unquote(\"rgb(#{$color-white})\") !default;\n$tooltip-background-color: unquote(\"rgba(#{$palette-grey-700}, 0.9)\") !default;\n\n/* ==========  Footer  ========== */\n\n$footer-bg-color: unquote(\"rgb(#{$palette-grey-800})\") !default;\n$footer-color: unquote(\"rgb(#{$palette-grey-500})\") !default;\n$footer-heading-color: unquote(\"rgb(#{$palette-grey-300})\") !default;\n$footer-button-fill-color: $footer-color !default;\n$footer-underline-color: $footer-color !default;\n\n\n/* TEXTFIELD */\n\n$input-text-font-size: 16px !default;\n$input-text-width: 100% !default;\n$input-text-padding: 4px !default;\n$input-text-vertical-spacing: 20px !default;\n\n$input-text-button-size: 32px !default;\n$input-text-floating-label-fontsize: 12px !default;\n$input-text-expandable-icon-top: 16px !default;\n\n\n/* SWITCH */\n\n$switch-label-font-size: 16px !default;\n$switch-label-height: 24px !default;\n$switch-track-height: 14px !default;\n$switch-track-length: 36px !default;\n$switch-thumb-size: 20px !default;\n$switch-track-top: ($switch-label-height - $switch-track-height) / 2 !default;\n$switch-thumb-top: ($switch-label-height - $switch-thumb-size) / 2 !default;\n$switch-ripple-size: $switch-label-height * 2 !default;\n$switch-helper-size: 8px !default;\n\n/* SPINNER */\n\n$spinner-size: 28px !default;\n$spinner-stroke-width: 3px !default;\n\n// Amount of circle the arc takes up.\n$spinner-arc-size: 270deg !default;\n// Time it takes to expand and contract arc.\n$spinner-arc-time: 1333ms !default;\n// How much the start location of the arc should rotate each time.\n$spinner-arc-start-rot: 216deg !default;\n\n$spinner-duration: 360 * $spinner-arc-time / (\n    strip-units($spinner-arc-start-rot + (360deg - $spinner-arc-size)));\n\n\n/* RADIO */\n\n$radio-label-font-size: 16px !default;\n$radio-label-height: 24px !default;\n$radio-button-size: 16px !default;\n$radio-inner-margin: $radio-button-size / 4;\n$radio-padding: 8px !default;\n$radio-top-offset: ($radio-label-height - $radio-button-size) / 2;\n$radio-ripple-size: 42px !default;\n\n\n/* MENU */\n\n$menu-expand-duration: 0.3s !default;\n$menu-fade-duration: 0.2s !default;\n\n/* LIST */\n\n$list-border: 8px !default;\n$list-min-height: 48px !default;\n$list-min-padding: 16px !default;\n$list-bottom-padding: 20px !default;\n$list-avatar-text-left-distance: 72px !default;\n$list-icon-text-left-distance: 72px !default;\n\n$list-avatar-size: 40px !default;\n$list-icon-size: 24px !default;\n\n$list-two-line-height: 72px !default;\n$list-three-line-height: 88px !default;\n\n/* LAYOUT */\n\n$layout-drawer-narrow: 240px !default;\n$layout-drawer-wide: 456px !default;\n$layout-drawer-width: $layout-drawer-narrow !default;\n\n$layout-header-icon-size: 32px !default;\n$layout-screen-size-threshold: 1024px !default;\n$layout-header-icon-margin: 24px !default;\n$layout-drawer-button-mobile-size: 32px !default;\n$layout-drawer-button-desktop-size: 48px !default;\n\n$layout-header-mobile-row-height: 56px !default;\n$layout-mobile-header-height: $layout-header-mobile-row-height;\n$layout-header-desktop-row-height: 64px !default;\n$layout-desktop-header-height: $layout-header-desktop-row-height;\n\n$layout-header-desktop-baseline: 80px !default;\n$layout-header-mobile-baseline: 72px !default;\n$layout-header-mobile-indent: 16px !default;\n$layout-header-desktop-indent: 40px !default;\n\n$layout-tab-font-size: 14px !default;\n$layout-tab-bar-height: 48px !default;\n$layout-tab-mobile-padding: 12px !default;\n$layout-tab-desktop-padding: 24px !default;\n$layout-tab-highlight-thickness: 2px !default;\n\n\n/* ICON TOGGLE */\n\n$icon-toggle-size: 32px !default;\n$icon-toggle-font-size: 24px !default;\n$icon-toggle-ripple-size: 36px !default;\n\n/* FOOTER */\n\n/*mega-footer*/\n$footer-min-padding: 16px !default;\n$footer-padding-sides: 40px !default;\n$footer-heading-font-size: 14px !default;\n$footer-heading-line-height: (1.7 * $footer-heading-font-size) !default;\n$footer-btn-size: 36px  !default;\n\n/*mini-footer*/\n$padding: 16px !default;\n$footer-heading-font-size: 24px !default;\n$footer-heading-line-height: (1.5 * $footer-heading-font-size) !default;\n$footer-btn-size: 36px !default;\n\n/* CHECKBOX */\n\n$checkbox-label-font-size: 16px !default;\n$checkbox-label-height: 24px !default;\n$checkbox-button-size: 16px !default;\n$checkbox-inner-margin: 2px !default;\n$checkbox-padding: 8px !default;\n$checkbox-top-offset:\n($checkbox-label-height - $checkbox-button-size - $checkbox-inner-margin) / 2;\n$checkbox-ripple-size: $checkbox-label-height * 1.5;\n\n/* CARD */\n\n/* Card dimensions */\n$card-width: 330px !default;\n$card-height: 200px !default;\n$card-font-size: 16px !default;\n$card-title-font-size: 24px !default;\n$card-subtitle-font-size: 14px !default;\n$card-horizontal-padding: 16px !default;\n$card-vertical-padding: 16px !default;\n\n$card-title-perspective-origin-x: 165px !default;\n$card-title-perspective-origin-y: 56px !default;\n\n$card-title-transform-origin-x: 165px !default;\n$card-title-transform-origin-y: 56px !default;\n\n$card-title-text-transform-origin-x: 149px !default;\n$card-title-text-transform-origin-y: 48px !default;\n\n$card-supporting-text-font-size: 1rem !default;\n$card-supporting-text-line-height: 18px !default;\n\n$card-actions-font-size: 16px !default;\n\n$card-title-text-font-weight: 300 !default;\n$card-z-index: 1 !default;\n\n/* Cover image */\n$card-cover-image-height: 186px !default;\n$card-background-image-url: '' !default;\n\n\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n$button-min-width: 64px !default;\n$button-height: 36px !default;\n$button-padding: 16px !default;\n$button-margin: 4px !default;\n$button-border-radius: 2px !default;\n\n$button-fab-size: 56px !default;\n$button-fab-size-mini: 40px !default;\n$button-fab-font-size: 24px !default;\n\n$button-icon-size: 32px !default;\n$button-icon-size-mini: 24px !default;\n\n\n/* ANIMATION */\n$animation-curve-fast-out-slow-in: cubic-bezier(0.4, 0, 0.2, 1) !default;\n$animation-curve-linear-out-slow-in: cubic-bezier(0, 0, 0.2, 1) !default;\n$animation-curve-fast-out-linear-in: cubic-bezier(0.4, 0, 1, 1) !default;\n\n$animation-curve-default: $animation-curve-fast-out-slow-in !default;\n\n\n/* PROGRESS */\n$bar-height: 4px !default;\n\n/* BADGE */\n$badge-font-size: 12px !default;\n$badge-color: unquote(\"rgb(#{$color-accent-contrast})\") !default;\n$badge-color-inverse: unquote(\"rgb(#{$color-accent})\") !default;\n$badge-background: unquote(\"rgb(#{$color-accent})\") !default;\n$badge-background-inverse: unquote(\"rgba(#{$color-accent-contrast},0.2)\") !default;\n$badge-size : 22px !default;\n$badge-padding: 2px !default;\n$badge-overlap: 12px !default;\n\n/* SHADOWS */\n\n$shadow-key-umbra-opacity: 0.2 !default;\n$shadow-key-penumbra-opacity: 0.14 !default;\n$shadow-ambient-shadow-opacity: 0.12 !default;\n\n/* GRID */\n\n$grid-desktop-columns: 12 !default;\n$grid-desktop-gutter: 16px !default;\n$grid-desktop-margin: 16px !default;\n\n$grid-desktop-breakpoint: 840px !default;\n\n$grid-tablet-columns: 8 !default;\n$grid-tablet-gutter: $grid-desktop-gutter !default;\n$grid-tablet-margin: $grid-desktop-margin !default;\n\n$grid-tablet-breakpoint: 480px !default;\n\n$grid-phone-columns: 4 !default;\n$grid-phone-gutter: $grid-desktop-gutter !default;\n$grid-phone-margin: $grid-desktop-margin !default;\n\n$grid-cell-default-columns: $grid-phone-columns !default;\n$grid-max-columns: $grid-desktop-columns !default;\n\n/* DATA TABLE */\n\n$data-table-font-size: 13px !default;\n$data-table-header-font-size: 12px !default;\n$data-table-header-sort-icon-size: 16px !default;\n\n$data-table-header-color: rgba(#000, 0.54) !default;\n$data-table-header-sorted-color: rgba(#000, 0.87) !default;\n$data-table-header-sorted-icon-hover-color: rgba(#000, 0.26) !default;\n$data-table-divider-color: rgba(#000, 0.12) !default;\n\n$data-table-hover-color: #eeeeee !default;\n$data-table-selection-color: #e0e0e0 !default;\n\n$data-table-dividers: 1px solid $data-table-divider-color !default;\n\n$data-table-row-height: 48px !default;\n$data-table-last-row-height: 56px !default;\n$data-table-header-height: 56px !default;\n\n$data-table-column-spacing: 36px !default;\n$data-table-column-padding: $data-table-column-spacing / 2;\n\n$data-table-card-header-height: 64px !default;\n$data-table-card-title-top: 20px !default;\n$data-table-card-padding: 24px !default;\n$data-table-button-padding-right: 16px !default;\n$data-table-cell-top: $data-table-card-padding / 2;\n\n/* DIALOG */\n$dialog-content-color: $card-supporting-text-text-color;\n\n/* SNACKBAR */\n\n// Hard coded since the color is not present in any palette.\n$snackbar-background-color: #323232 !default;\n$snackbar-tablet-breakpoint: $grid-tablet-breakpoint;\n$snackbar-action-color: unquote(\"rgb(#{$color-accent})\") !default;\n\n/* TOOLTIP */\n$tooltip-font-size: 10px !default;\n$tooltip-font-size-large: 14px !default;\n\n/* CHIP */\n$chip-bg-color: rgb(222, 222, 222) !default;\n$chip-bg-active-color: rgb(214, 214, 214) !default;\n$chip-height: 32px !default;\n$chip-font-size: 13px !default; \n\n\n\n// WEBPACK FOOTER //\n// webpack:///~/material-design-lite/src/_variables.scss","@charset \"UTF-8\";\n\n// Material Design Lite\n@import '~material-design-lite/src/variables';\n@import '~material-design-lite/src/mixins';\n\n// mdl-ext\n@import 'mdl-ext';\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/mdl-ext-build.scss","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* ==========  Color Palettes  ========== */\n\n// Color order: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, A100, A200,\n// A400, A700.\n\n$palette-red:\n\"255,235,238\"\n\"255,205,210\"\n\"239,154,154\"\n\"229,115,115\"\n\"239,83,80\"\n\"244,67,54\"\n\"229,57,53\"\n\"211,47,47\"\n\"198,40,40\"\n\"183,28,28\"\n\"255,138,128\"\n\"255,82,82\"\n\"255,23,68\"\n\"213,0,0\";\n\n$palette-red-50: nth($palette-red, 1);\n$palette-red-100: nth($palette-red, 2);\n$palette-red-200: nth($palette-red, 3);\n$palette-red-300: nth($palette-red, 4);\n$palette-red-400: nth($palette-red, 5);\n$palette-red-500: nth($palette-red, 6);\n$palette-red-600: nth($palette-red, 7);\n$palette-red-700: nth($palette-red, 8);\n$palette-red-800: nth($palette-red, 9);\n$palette-red-900: nth($palette-red, 10);\n$palette-red-A100: nth($palette-red, 11);\n$palette-red-A200: nth($palette-red, 12);\n$palette-red-A400: nth($palette-red, 13);\n$palette-red-A700: nth($palette-red, 14);\n\n$palette-pink:\n\"252,228,236\"\n\"248,187,208\"\n\"244,143,177\"\n\"240,98,146\"\n\"236,64,122\"\n\"233,30,99\"\n\"216,27,96\"\n\"194,24,91\"\n\"173,20,87\"\n\"136,14,79\"\n\"255,128,171\"\n\"255,64,129\"\n\"245,0,87\"\n\"197,17,98\";\n\n$palette-pink-50: nth($palette-pink, 1);\n$palette-pink-100: nth($palette-pink, 2);\n$palette-pink-200: nth($palette-pink, 3);\n$palette-pink-300: nth($palette-pink, 4);\n$palette-pink-400: nth($palette-pink, 5);\n$palette-pink-500: nth($palette-pink, 6);\n$palette-pink-600: nth($palette-pink, 7);\n$palette-pink-700: nth($palette-pink, 8);\n$palette-pink-800: nth($palette-pink, 9);\n$palette-pink-900: nth($palette-pink, 10);\n$palette-pink-A100: nth($palette-pink, 11);\n$palette-pink-A200: nth($palette-pink, 12);\n$palette-pink-A400: nth($palette-pink, 13);\n$palette-pink-A700: nth($palette-pink, 14);\n\n$palette-purple:\n\"243,229,245\"\n\"225,190,231\"\n\"206,147,216\"\n\"186,104,200\"\n\"171,71,188\"\n\"156,39,176\"\n\"142,36,170\"\n\"123,31,162\"\n\"106,27,154\"\n\"74,20,140\"\n\"234,128,252\"\n\"224,64,251\"\n\"213,0,249\"\n\"170,0,255\";\n\n$palette-purple-50: nth($palette-purple, 1);\n$palette-purple-100: nth($palette-purple, 2);\n$palette-purple-200: nth($palette-purple, 3);\n$palette-purple-300: nth($palette-purple, 4);\n$palette-purple-400: nth($palette-purple, 5);\n$palette-purple-500: nth($palette-purple, 6);\n$palette-purple-600: nth($palette-purple, 7);\n$palette-purple-700: nth($palette-purple, 8);\n$palette-purple-800: nth($palette-purple, 9);\n$palette-purple-900: nth($palette-purple, 10);\n$palette-purple-A100: nth($palette-purple, 11);\n$palette-purple-A200: nth($palette-purple, 12);\n$palette-purple-A400: nth($palette-purple, 13);\n$palette-purple-A700: nth($palette-purple, 14);\n\n$palette-deep-purple:\n\"237,231,246\"\n\"209,196,233\"\n\"179,157,219\"\n\"149,117,205\"\n\"126,87,194\"\n\"103,58,183\"\n\"94,53,177\"\n\"81,45,168\"\n\"69,39,160\"\n\"49,27,146\"\n\"179,136,255\"\n\"124,77,255\"\n\"101,31,255\"\n\"98,0,234\";\n\n$palette-deep-purple-50: nth($palette-deep-purple, 1);\n$palette-deep-purple-100: nth($palette-deep-purple, 2);\n$palette-deep-purple-200: nth($palette-deep-purple, 3);\n$palette-deep-purple-300: nth($palette-deep-purple, 4);\n$palette-deep-purple-400: nth($palette-deep-purple, 5);\n$palette-deep-purple-500: nth($palette-deep-purple, 6);\n$palette-deep-purple-600: nth($palette-deep-purple, 7);\n$palette-deep-purple-700: nth($palette-deep-purple, 8);\n$palette-deep-purple-800: nth($palette-deep-purple, 9);\n$palette-deep-purple-900: nth($palette-deep-purple, 10);\n$palette-deep-purple-A100: nth($palette-deep-purple, 11);\n$palette-deep-purple-A200: nth($palette-deep-purple, 12);\n$palette-deep-purple-A400: nth($palette-deep-purple, 13);\n$palette-deep-purple-A700: nth($palette-deep-purple, 14);\n\n$palette-indigo:\n\"232,234,246\"\n\"197,202,233\"\n\"159,168,218\"\n\"121,134,203\"\n\"92,107,192\"\n\"63,81,181\"\n\"57,73,171\"\n\"48,63,159\"\n\"40,53,147\"\n\"26,35,126\"\n\"140,158,255\"\n\"83,109,254\"\n\"61,90,254\"\n\"48,79,254\";\n\n$palette-indigo-50: nth($palette-indigo, 1);\n$palette-indigo-100: nth($palette-indigo, 2);\n$palette-indigo-200: nth($palette-indigo, 3);\n$palette-indigo-300: nth($palette-indigo, 4);\n$palette-indigo-400: nth($palette-indigo, 5);\n$palette-indigo-500: nth($palette-indigo, 6);\n$palette-indigo-600: nth($palette-indigo, 7);\n$palette-indigo-700: nth($palette-indigo, 8);\n$palette-indigo-800: nth($palette-indigo, 9);\n$palette-indigo-900: nth($palette-indigo, 10);\n$palette-indigo-A100: nth($palette-indigo, 11);\n$palette-indigo-A200: nth($palette-indigo, 12);\n$palette-indigo-A400: nth($palette-indigo, 13);\n$palette-indigo-A700: nth($palette-indigo, 14);\n\n$palette-blue:\n\"227,242,253\"\n\"187,222,251\"\n\"144,202,249\"\n\"100,181,246\"\n\"66,165,245\"\n\"33,150,243\"\n\"30,136,229\"\n\"25,118,210\"\n\"21,101,192\"\n\"13,71,161\"\n\"130,177,255\"\n\"68,138,255\"\n\"41,121,255\"\n\"41,98,255\";\n\n$palette-blue-50: nth($palette-blue, 1);\n$palette-blue-100: nth($palette-blue, 2);\n$palette-blue-200: nth($palette-blue, 3);\n$palette-blue-300: nth($palette-blue, 4);\n$palette-blue-400: nth($palette-blue, 5);\n$palette-blue-500: nth($palette-blue, 6);\n$palette-blue-600: nth($palette-blue, 7);\n$palette-blue-700: nth($palette-blue, 8);\n$palette-blue-800: nth($palette-blue, 9);\n$palette-blue-900: nth($palette-blue, 10);\n$palette-blue-A100: nth($palette-blue, 11);\n$palette-blue-A200: nth($palette-blue, 12);\n$palette-blue-A400: nth($palette-blue, 13);\n$palette-blue-A700: nth($palette-blue, 14);\n\n$palette-light-blue:\n\"225,245,254\"\n\"179,229,252\"\n\"129,212,250\"\n\"79,195,247\"\n\"41,182,246\"\n\"3,169,244\"\n\"3,155,229\"\n\"2,136,209\"\n\"2,119,189\"\n\"1,87,155\"\n\"128,216,255\"\n\"64,196,255\"\n\"0,176,255\"\n\"0,145,234\";\n\n$palette-light-blue-50: nth($palette-light-blue, 1);\n$palette-light-blue-100: nth($palette-light-blue, 2);\n$palette-light-blue-200: nth($palette-light-blue, 3);\n$palette-light-blue-300: nth($palette-light-blue, 4);\n$palette-light-blue-400: nth($palette-light-blue, 5);\n$palette-light-blue-500: nth($palette-light-blue, 6);\n$palette-light-blue-600: nth($palette-light-blue, 7);\n$palette-light-blue-700: nth($palette-light-blue, 8);\n$palette-light-blue-800: nth($palette-light-blue, 9);\n$palette-light-blue-900: nth($palette-light-blue, 10);\n$palette-light-blue-A100: nth($palette-light-blue, 11);\n$palette-light-blue-A200: nth($palette-light-blue, 12);\n$palette-light-blue-A400: nth($palette-light-blue, 13);\n$palette-light-blue-A700: nth($palette-light-blue, 14);\n\n$palette-cyan:\n\"224,247,250\"\n\"178,235,242\"\n\"128,222,234\"\n\"77,208,225\"\n\"38,198,218\"\n\"0,188,212\"\n\"0,172,193\"\n\"0,151,167\"\n\"0,131,143\"\n\"0,96,100\"\n\"132,255,255\"\n\"24,255,255\"\n\"0,229,255\"\n\"0,184,212\";\n\n$palette-cyan-50: nth($palette-cyan, 1);\n$palette-cyan-100: nth($palette-cyan, 2);\n$palette-cyan-200: nth($palette-cyan, 3);\n$palette-cyan-300: nth($palette-cyan, 4);\n$palette-cyan-400: nth($palette-cyan, 5);\n$palette-cyan-500: nth($palette-cyan, 6);\n$palette-cyan-600: nth($palette-cyan, 7);\n$palette-cyan-700: nth($palette-cyan, 8);\n$palette-cyan-800: nth($palette-cyan, 9);\n$palette-cyan-900: nth($palette-cyan, 10);\n$palette-cyan-A100: nth($palette-cyan, 11);\n$palette-cyan-A200: nth($palette-cyan, 12);\n$palette-cyan-A400: nth($palette-cyan, 13);\n$palette-cyan-A700: nth($palette-cyan, 14);\n\n$palette-teal:\n\"224,242,241\"\n\"178,223,219\"\n\"128,203,196\"\n\"77,182,172\"\n\"38,166,154\"\n\"0,150,136\"\n\"0,137,123\"\n\"0,121,107\"\n\"0,105,92\"\n\"0,77,64\"\n\"167,255,235\"\n\"100,255,218\"\n\"29,233,182\"\n\"0,191,165\";\n\n$palette-teal-50: nth($palette-teal, 1);\n$palette-teal-100: nth($palette-teal, 2);\n$palette-teal-200: nth($palette-teal, 3);\n$palette-teal-300: nth($palette-teal, 4);\n$palette-teal-400: nth($palette-teal, 5);\n$palette-teal-500: nth($palette-teal, 6);\n$palette-teal-600: nth($palette-teal, 7);\n$palette-teal-700: nth($palette-teal, 8);\n$palette-teal-800: nth($palette-teal, 9);\n$palette-teal-900: nth($palette-teal, 10);\n$palette-teal-A100: nth($palette-teal, 11);\n$palette-teal-A200: nth($palette-teal, 12);\n$palette-teal-A400: nth($palette-teal, 13);\n$palette-teal-A700: nth($palette-teal, 14);\n\n$palette-green:\n\"232,245,233\"\n\"200,230,201\"\n\"165,214,167\"\n\"129,199,132\"\n\"102,187,106\"\n\"76,175,80\"\n\"67,160,71\"\n\"56,142,60\"\n\"46,125,50\"\n\"27,94,32\"\n\"185,246,202\"\n\"105,240,174\"\n\"0,230,118\"\n\"0,200,83\";\n\n$palette-green-50: nth($palette-green, 1);\n$palette-green-100: nth($palette-green, 2);\n$palette-green-200: nth($palette-green, 3);\n$palette-green-300: nth($palette-green, 4);\n$palette-green-400: nth($palette-green, 5);\n$palette-green-500: nth($palette-green, 6);\n$palette-green-600: nth($palette-green, 7);\n$palette-green-700: nth($palette-green, 8);\n$palette-green-800: nth($palette-green, 9);\n$palette-green-900: nth($palette-green, 10);\n$palette-green-A100: nth($palette-green, 11);\n$palette-green-A200: nth($palette-green, 12);\n$palette-green-A400: nth($palette-green, 13);\n$palette-green-A700: nth($palette-green, 14);\n\n$palette-light-green:\n\"241,248,233\"\n\"220,237,200\"\n\"197,225,165\"\n\"174,213,129\"\n\"156,204,101\"\n\"139,195,74\"\n\"124,179,66\"\n\"104,159,56\"\n\"85,139,47\"\n\"51,105,30\"\n\"204,255,144\"\n\"178,255,89\"\n\"118,255,3\"\n\"100,221,23\";\n\n$palette-light-green-50: nth($palette-light-green, 1);\n$palette-light-green-100: nth($palette-light-green, 2);\n$palette-light-green-200: nth($palette-light-green, 3);\n$palette-light-green-300: nth($palette-light-green, 4);\n$palette-light-green-400: nth($palette-light-green, 5);\n$palette-light-green-500: nth($palette-light-green, 6);\n$palette-light-green-600: nth($palette-light-green, 7);\n$palette-light-green-700: nth($palette-light-green, 8);\n$palette-light-green-800: nth($palette-light-green, 9);\n$palette-light-green-900: nth($palette-light-green, 10);\n$palette-light-green-A100: nth($palette-light-green, 11);\n$palette-light-green-A200: nth($palette-light-green, 12);\n$palette-light-green-A400: nth($palette-light-green, 13);\n$palette-light-green-A700: nth($palette-light-green, 14);\n\n$palette-lime:\n\"249,251,231\"\n\"240,244,195\"\n\"230,238,156\"\n\"220,231,117\"\n\"212,225,87\"\n\"205,220,57\"\n\"192,202,51\"\n\"175,180,43\"\n\"158,157,36\"\n\"130,119,23\"\n\"244,255,129\"\n\"238,255,65\"\n\"198,255,0\"\n\"174,234,0\";\n\n$palette-lime-50: nth($palette-lime, 1);\n$palette-lime-100: nth($palette-lime, 2);\n$palette-lime-200: nth($palette-lime, 3);\n$palette-lime-300: nth($palette-lime, 4);\n$palette-lime-400: nth($palette-lime, 5);\n$palette-lime-500: nth($palette-lime, 6);\n$palette-lime-600: nth($palette-lime, 7);\n$palette-lime-700: nth($palette-lime, 8);\n$palette-lime-800: nth($palette-lime, 9);\n$palette-lime-900: nth($palette-lime, 10);\n$palette-lime-A100: nth($palette-lime, 11);\n$palette-lime-A200: nth($palette-lime, 12);\n$palette-lime-A400: nth($palette-lime, 13);\n$palette-lime-A700: nth($palette-lime, 14);\n\n$palette-yellow:\n\"255,253,231\"\n\"255,249,196\"\n\"255,245,157\"\n\"255,241,118\"\n\"255,238,88\"\n\"255,235,59\"\n\"253,216,53\"\n\"251,192,45\"\n\"249,168,37\"\n\"245,127,23\"\n\"255,255,141\"\n\"255,255,0\"\n\"255,234,0\"\n\"255,214,0\";\n\n$palette-yellow-50: nth($palette-yellow, 1);\n$palette-yellow-100: nth($palette-yellow, 2);\n$palette-yellow-200: nth($palette-yellow, 3);\n$palette-yellow-300: nth($palette-yellow, 4);\n$palette-yellow-400: nth($palette-yellow, 5);\n$palette-yellow-500: nth($palette-yellow, 6);\n$palette-yellow-600: nth($palette-yellow, 7);\n$palette-yellow-700: nth($palette-yellow, 8);\n$palette-yellow-800: nth($palette-yellow, 9);\n$palette-yellow-900: nth($palette-yellow, 10);\n$palette-yellow-A100: nth($palette-yellow, 11);\n$palette-yellow-A200: nth($palette-yellow, 12);\n$palette-yellow-A400: nth($palette-yellow, 13);\n$palette-yellow-A700: nth($palette-yellow, 14);\n\n$palette-amber:\n\"255,248,225\"\n\"255,236,179\"\n\"255,224,130\"\n\"255,213,79\"\n\"255,202,40\"\n\"255,193,7\"\n\"255,179,0\"\n\"255,160,0\"\n\"255,143,0\"\n\"255,111,0\"\n\"255,229,127\"\n\"255,215,64\"\n\"255,196,0\"\n\"255,171,0\";\n\n$palette-amber-50: nth($palette-amber, 1);\n$palette-amber-100: nth($palette-amber, 2);\n$palette-amber-200: nth($palette-amber, 3);\n$palette-amber-300: nth($palette-amber, 4);\n$palette-amber-400: nth($palette-amber, 5);\n$palette-amber-500: nth($palette-amber, 6);\n$palette-amber-600: nth($palette-amber, 7);\n$palette-amber-700: nth($palette-amber, 8);\n$palette-amber-800: nth($palette-amber, 9);\n$palette-amber-900: nth($palette-amber, 10);\n$palette-amber-A100: nth($palette-amber, 11);\n$palette-amber-A200: nth($palette-amber, 12);\n$palette-amber-A400: nth($palette-amber, 13);\n$palette-amber-A700: nth($palette-amber, 14);\n\n$palette-orange:\n\"255,243,224\"\n\"255,224,178\"\n\"255,204,128\"\n\"255,183,77\"\n\"255,167,38\"\n\"255,152,0\"\n\"251,140,0\"\n\"245,124,0\"\n\"239,108,0\"\n\"230,81,0\"\n\"255,209,128\"\n\"255,171,64\"\n\"255,145,0\"\n\"255,109,0\";\n\n$palette-orange-50: nth($palette-orange, 1);\n$palette-orange-100: nth($palette-orange, 2);\n$palette-orange-200: nth($palette-orange, 3);\n$palette-orange-300: nth($palette-orange, 4);\n$palette-orange-400: nth($palette-orange, 5);\n$palette-orange-500: nth($palette-orange, 6);\n$palette-orange-600: nth($palette-orange, 7);\n$palette-orange-700: nth($palette-orange, 8);\n$palette-orange-800: nth($palette-orange, 9);\n$palette-orange-900: nth($palette-orange, 10);\n$palette-orange-A100: nth($palette-orange, 11);\n$palette-orange-A200: nth($palette-orange, 12);\n$palette-orange-A400: nth($palette-orange, 13);\n$palette-orange-A700: nth($palette-orange, 14);\n\n$palette-deep-orange:\n\"251,233,231\"\n\"255,204,188\"\n\"255,171,145\"\n\"255,138,101\"\n\"255,112,67\"\n\"255,87,34\"\n\"244,81,30\"\n\"230,74,25\"\n\"216,67,21\"\n\"191,54,12\"\n\"255,158,128\"\n\"255,110,64\"\n\"255,61,0\"\n\"221,44,0\";\n\n$palette-deep-orange-50: nth($palette-deep-orange, 1);\n$palette-deep-orange-100: nth($palette-deep-orange, 2);\n$palette-deep-orange-200: nth($palette-deep-orange, 3);\n$palette-deep-orange-300: nth($palette-deep-orange, 4);\n$palette-deep-orange-400: nth($palette-deep-orange, 5);\n$palette-deep-orange-500: nth($palette-deep-orange, 6);\n$palette-deep-orange-600: nth($palette-deep-orange, 7);\n$palette-deep-orange-700: nth($palette-deep-orange, 8);\n$palette-deep-orange-800: nth($palette-deep-orange, 9);\n$palette-deep-orange-900: nth($palette-deep-orange, 10);\n$palette-deep-orange-A100: nth($palette-deep-orange, 11);\n$palette-deep-orange-A200: nth($palette-deep-orange, 12);\n$palette-deep-orange-A400: nth($palette-deep-orange, 13);\n$palette-deep-orange-A700: nth($palette-deep-orange, 14);\n\n\n// Color order: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900.\n\n$palette-brown:\n\"239,235,233\"\n\"215,204,200\"\n\"188,170,164\"\n\"161,136,127\"\n\"141,110,99\"\n\"121,85,72\"\n\"109,76,65\"\n\"93,64,55\"\n\"78,52,46\"\n\"62,39,35\";\n\n$palette-brown-50: nth($palette-brown, 1);\n$palette-brown-100: nth($palette-brown, 2);\n$palette-brown-200: nth($palette-brown, 3);\n$palette-brown-300: nth($palette-brown, 4);\n$palette-brown-400: nth($palette-brown, 5);\n$palette-brown-500: nth($palette-brown, 6);\n$palette-brown-600: nth($palette-brown, 7);\n$palette-brown-700: nth($palette-brown, 8);\n$palette-brown-800: nth($palette-brown, 9);\n$palette-brown-900: nth($palette-brown, 10);\n\n$palette-grey:\n\"250,250,250\"\n\"245,245,245\"\n\"238,238,238\"\n\"224,224,224\"\n\"189,189,189\"\n\"158,158,158\"\n\"117,117,117\"\n\"97,97,97\"\n\"66,66,66\"\n\"33,33,33\";\n\n$palette-grey-50: nth($palette-grey, 1);\n$palette-grey-100: nth($palette-grey, 2);\n$palette-grey-200: nth($palette-grey, 3);\n$palette-grey-300: nth($palette-grey, 4);\n$palette-grey-400: nth($palette-grey, 5);\n$palette-grey-500: nth($palette-grey, 6);\n$palette-grey-600: nth($palette-grey, 7);\n$palette-grey-700: nth($palette-grey, 8);\n$palette-grey-800: nth($palette-grey, 9);\n$palette-grey-900: nth($palette-grey, 10);\n\n$palette-blue-grey:\n\"236,239,241\"\n\"207,216,220\"\n\"176,190,197\"\n\"144,164,174\"\n\"120,144,156\"\n\"96,125,139\"\n\"84,110,122\"\n\"69,90,100\"\n\"55,71,79\"\n\"38,50,56\";\n\n$palette-blue-grey-50: nth($palette-blue-grey, 1);\n$palette-blue-grey-100: nth($palette-blue-grey, 2);\n$palette-blue-grey-200: nth($palette-blue-grey, 3);\n$palette-blue-grey-300: nth($palette-blue-grey, 4);\n$palette-blue-grey-400: nth($palette-blue-grey, 5);\n$palette-blue-grey-500: nth($palette-blue-grey, 6);\n$palette-blue-grey-600: nth($palette-blue-grey, 7);\n$palette-blue-grey-700: nth($palette-blue-grey, 8);\n$palette-blue-grey-800: nth($palette-blue-grey, 9);\n$palette-blue-grey-900: nth($palette-blue-grey, 10);\n\n$color-black: \"0,0,0\";\n$color-white: \"255,255,255\";\n\n\n/* colors.scss */\n$styleguide-generate-template: false !default;\n\n// The two possible colors for overlayed text.\n$color-dark-contrast: $color-white !default;\n$color-light-contrast: $color-black !default;\n\n\n\n// WEBPACK FOOTER //\n// webpack:///~/material-design-lite/src/_color-definitions.scss","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@function strip-units($number) {\n  @return $number / ($number * 0 + 1);\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///~/material-design-lite/src/_functions.scss","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* Typography */\n\n@mixin typo-preferred-font($usePreferred: true) {\n  @if $usePreferred {\n    font-family: $preferred_font;\n  }\n}\n\n@mixin typo-display-4($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 112px;\n  font-weight: 300;\n  line-height: 1;\n  letter-spacing: -0.04em;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-display-3($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 56px;\n  font-weight: 400;\n  line-height: 1.35;\n  letter-spacing: -0.02em;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-display-2($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 45px;\n  font-weight: 400;\n  line-height: 48px;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-display-1($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 34px;\n  font-weight: 400;\n  line-height: 40px;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-headline($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 24px;\n  font-weight: 400;\n  line-height: 32px;\n  -moz-osx-font-smoothing: grayscale;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-title($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 20px;\n  font-weight: 500;\n  line-height: 1;\n  letter-spacing: 0.02em;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-subhead($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0.04em;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-subhead-2($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 28px;\n  letter-spacing: 0.04em;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-body-2($colorContrast: false, $usePreferred: false) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  @if $usePreferred {\n    font-weight: 500;\n  } @else {\n    font-weight: bold;\n  }\n  line-height: 24px;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-body-1($colorContrast: false, $usePreferred: false) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-caption($colorContrast: false, $usePreferred: false) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 12px;\n  font-weight: 400;\n  line-height: 1;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-blockquote($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  position: relative;\n  font-size: 24px;\n  font-weight: 300;\n  font-style: italic;\n  line-height: 1.35;\n  letter-spacing: 0.08em;\n\n  &:before {\n    position: absolute;\n    left: -0.5em;\n    content: '“';\n  }\n\n  &:after {\n    content: '”';\n    margin-left: -0.05em;\n  }\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-menu($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  font-weight: 500;\n  line-height: 1;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-button($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  font-weight: 500;\n  text-transform: uppercase;\n  line-height: 1;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-icon() {\n  font-family: 'Material Icons';\n  font-weight: normal;\n  font-style: normal;\n  font-size: 24px;\n  line-height: 1;\n  letter-spacing: normal;\n  text-transform: none;\n  display: inline-block;\n  word-wrap: normal;\n  font-feature-settings: 'liga';\n  -webkit-font-feature-settings: 'liga';\n  -webkit-font-smoothing: antialiased;\n}\n\n/* Shadows */\n\n// Focus shadow mixin.\n@mixin focus-shadow() {\n  box-shadow: 0 0 8px rgba(0,0,0,.18),0 8px 16px rgba(0,0,0,.36);\n}\n\n@mixin shadow-2dp() {\n  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 3px 1px -2px rgba(0, 0, 0, $shadow-key-umbra-opacity),\n              0 1px 5px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity);\n}\n@mixin shadow-3dp() {\n  box-shadow: 0 3px 4px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 3px 3px -2px rgba(0, 0, 0, $shadow-key-umbra-opacity),\n              0 1px 8px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity);\n}\n@mixin shadow-4dp() {\n  box-shadow: 0 4px 5px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 1px 10px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 2px 4px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n@mixin shadow-6dp() {\n  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 1px 18px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 3px 5px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n@mixin shadow-8dp() {\n  box-shadow: 0 8px 10px 1px rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 3px 14px 2px rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 5px 5px -3px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n\n@mixin shadow-16dp() {\n  box-shadow: 0 16px 24px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0  6px 30px 5px rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0  8px 10px -5px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n\n@mixin shadow-24dp() {\n  box-shadow: 0  9px 46px  8px rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 11px 15px -7px rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 24px 38px  3px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n\n/* Animations */\n\n@mixin material-animation-fast-out-slow-in($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-fast-out-slow-in;\n}\n\n@mixin material-animation-linear-out-slow-in($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-linear-out-slow-in;\n}\n\n@mixin material-animation-fast-out-linear-in($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-fast-out-linear-in;\n}\n\n@mixin material-animation-default($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-default;\n}\n\n/* Dialog */\n\n@mixin dialog-width($units:5) {\n  @if(type_of($units) != 'number') {\n    @error \"The unit given to dialog-width should be a number.\";\n  }\n  // 56dp is the base unit width for Dialogs.\n  // With 5 units being the number of units for a mobile device.\n  // https://goo.gl/sK2O5o\n  width: $units * 56px;\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///~/material-design-lite/src/_mixins.scss","/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"functions\";\n\n// ----------------------------------------------------------------\n// Sample colors\n// ----------------------------------------------------------------\n$mdlext-palette-amber-50:                         #FFF8E1;\n$mdlext-palette-amber-100:                        #FFECB3;\n$mdlext-palette-amber-500:                        #FFC107;\n$mdlext-palette-amber-700:                        #FFA000;\n$mdlext-palette-blue-grey-500:                    #607D8B;\n$mdlext-palette-deep-orange-500:                  #FF5722;\n$mdlext-palette-deep-purple-100:                  #D1C4E9;\n$mdlext-palette-deep-purple-500:                  #512DA8;\n$mdlext-palette-deep-purple-700:                  #673AB7;\n$mdlext-palette-green-50:                         #E8F5E9;\n$mdlext-palette-green-100:                        #C8E6C9;\n$mdlext-palette-green-500:                        #4CAF50;\n$mdlext-palette-green-700:                        #388E3C;\n$mdlext-palette-grey-50:                          #FAFAFA;\n$mdlext-palette-grey-100:                         #F5F5F5;\n$mdlext-palette-grey-200:                         #EEEEEE;\n$mdlext-palette-grey-300:                         #E0E0E0;\n$mdlext-palette-grey-400:                         #BDBDBD;\n$mdlext-palette-grey-500:                         #9E9E9E;\n$mdlext-palette-grey-600:                         #757575;\n$mdlext-palette-grey-700:                         #616161;\n$mdlext-palette-grey-800:                         #424242;\n$mdlext-palette-grey-900:                         #212121;\n$mdlext-palette-indigo-A200:                      #536DFE;\n$mdlext-palette-light-blue-500:                   #03A9F4;\n$mdlext-palette-light-green-500:                  #8BC34A;\n$mdlext-palette-pink-500:                         #E91E63;\n$mdlext-palette-pink-700:                         #C2185B;\n$mdlext-palette-pink-A400:                        #F50057;\n$mdlext-palette-purple-A200:                      #E040FB;\n$mdlext-palette-red-700:                          #D32F2F;\n$mdlext-palette-red-A200:                         #FF5252;\n$mdlext-palette-red-A400:                         #FF1744;\n$mdlext-palette-yellow-500:                       #FFEB3B;\n$mdlext-color-black:                              #000000;\n$mdlext-color-white:                              #FFFFFF;\n\n\n/* ==========   Sticky Header   ========== */\n$mdlext-sticky-header-background-color           : transparent !default;\n$mdlext-sticky-header-background-color-scroll    : transparent !default;\n$mdlext-sticky-header-gradient-color             : rgb-string-to-hex($color-primary) !default;\n$mdlext-sticky-header-gradient-color-start       : $mdlext-sticky-header-gradient-color !default;\n$mdlext-sticky-header-gradient-color-end         : $mdlext-sticky-header-gradient-color-start !default;\n$mdlext-sticky-header-gradient-color-scroll-start: rgba($mdlext-sticky-header-gradient-color, 0.98) !default;\n$mdlext-sticky-header-gradient-color-scroll-end  : rgba($mdlext-sticky-header-gradient-color, 0.95) !default;\n\n// Background shorthand\n/* stylelint-disable */\n$mdlext-sticky-header-background                 : $mdlext-sticky-header-background-color\n                                                   linear-gradient(to bottom,\n                                                      $mdlext-sticky-header-gradient-color-start 0,\n                                                      $mdlext-sticky-header-gradient-color-end 100%) !default;\n\n// Background shorthand when content is scrolling\n$mdlext-sticky-header-background-scroll          : $mdlext-sticky-header-background-color-scroll\n                                                   linear-gradient(to bottom,\n                                                      $mdlext-sticky-header-gradient-color-scroll-start 100%,\n                                                      $mdlext-sticky-header-gradient-color-scroll-end 100%) !default;\n/* stylelint-enable */\n\n/* ==========     Accordion     ========== */\n$mdlext-accordion-header-background-color-base   : $mdlext-palette-grey-500 !default;\n$mdlext-accordion-header-background-color        : rgba($mdlext-accordion-header-background-color-base, 0.20) !default;\n$mdlext-accordion-header-background-open-color   : rgba($mdlext-accordion-header-background-color-base, 0.30) !default;\n$mdlext-accordion-header-background-active-color : rgba($mdlext-accordion-header-background-color-base, 0.40) !default;\n$mdlext-accordion-header-border-color            : rgba($mdlext-accordion-header-background-color-base, 0.50) !default;\n$mdlext-accordion-header-background-hover-color  : rgba($mdlext-accordion-header-background-color-base, 0.40) !default;\n$mdlext-accordion-header-focus-outline-color     : invert !default;\n$mdlext-accordion-header-disabled-color          : rgba($mdlext-accordion-header-background-color-base, 0.12) !default;\n$mdlext-accordion-header-secondary-color         : $mdlext-color-black !default;\n$mdlext-accordion-header-secondary-color-disabled: rgba($mdlext-color-black, 0.26) !default;\n$mdlext-accordion-header-highlight-color         : darken($mdlext-accordion-header-border-color, 3%) !default;\n$mdlext-accordion-ripple-color                   : rgba(rgb-string-to-hex($color-accent-contrast), 0.5) !default;\n$mdlext-accordion-header-padding                 : 8px !default;\n$mdlext-accordion-header-height                  : 56px !default;\n$mdlext-accordion-content-padding                : $mdlext-accordion-header-padding !default;\n$mdlext-accordion-content-color                  : inherit !default;\n$mdlext-accordion-content-background-color       : transparent !default;\n\n\n/* ==========     Dialog     ========== */\n$mdlext-dialog-padding           : 0;\n$mdlext-dialog-background-color  : transparent !default;\n$mdlext-dialog-backdrop-color    : rgba(0, 0, 0, 0.86) !default;\n$mdlext-dialog-open-animation    : 0.5s 0.2s forwards !default;\n$mdlext-dialog-backdrop-animation: 0.2s forwards !default;\n\n\n/* ==========     Lightbox     ========== */\n$mdlext-lightbox-background-color           : $card-background-color !default;\n$mdlext-lightbox-border                     : 0 !default;\n$mdlext-lightbox-border-radius              : 0 !default;\n$mdlext-lightbox-figure-margin              : 0 !default;\n$mdlext-lightbox-figure-padding             : 0 !default;\n$mdlext-lightbox-figcaption-background-color: rgba(255, 255, 255, 0.76) !default;\n$mdlext-lightbox-footer-background-color    : rgba(255, 255, 255, 0.86) !default;\n\n\n/* ==========  Lightboard  ========== */\n$mdlext-lightboard-medium-small-breakpoint     : $grid-tablet-breakpoint !default;          // 480\n$mdlext-lightboard-medium-breakpoint           : $grid-tablet-breakpoint + 180px !default;  // 480 + 180\n$mdlext-lightboard-medium-large-breakpoint     : $grid-desktop-breakpoint !default;         // 840\n$mdlext-lightboard-large-breakpoint            : $grid-desktop-breakpoint + 360px !default; // 840+360\n\n$mdlext-lightboard-small-gutter                : 2px !default;\n$mdlext-lightboard-small-margin                : 0 !default;\n$mdlext-lightboard-small-columns               : 2 !default;\n$mdlext-lightboard-small-frame-width           : 8px !default;\n\n$mdlext-lightboard-medium-small-gutter         : 4px !default;\n$mdlext-lightboard-medium-small-margin         : 0 !default;\n$mdlext-lightboard-medium-small-columns        : 4 !default;\n$mdlext-lightboard-medium-small-frame-width    : 8px !default;\n\n$mdlext-lightboard-medium-gutter               : 4px !default;\n$mdlext-lightboard-medium-margin               : 0 !default;\n$mdlext-lightboard-medium-columns              : 5 !default;\n$mdlext-lightboard-medium-frame-width          : 8px !default;\n\n$mdlext-lightboard-medium-large-gutter         : 8px !default;\n$mdlext-lightboard-medium-large-margin         : 0 !default;\n$mdlext-lightboard-medium-large-columns        : 6 !default;\n$mdlext-lightboard-medium-large-frame-width    : 12px !default;\n\n$mdlext-lightboard-large-gutter                : 8px !default;\n$mdlext-lightboard-large-margin                : 0 !default;\n$mdlext-lightboard-large-columns               : 7 !default;\n$mdlext-lightboard-large-frame-width           : 12px !default;\n\n$mdlext-lightboard-slide-max-size              : 250px !default;\n$mdlext-lightboard-slide-border-color          : #D8D8D8 !default;\n$mdlext-lightboard-slide-background-color      : #F8F8F8 !default;\n$mdlext-lightboard-slide-border-radius         : 5px !default;\n$mdlext-lightboard-slide-inner-border-radius   : 3px !default;\n$mdlext-lightboard-slide-box-shadow            : 2px 2px 6px -1px rgba(219, 215, 219, 0.5) !default;\n$mdlext-lightboard-slide-border-color-hover    : #B8B8B8 !default;\n$mdlext-lightboard-slide-background-color-hover: #E8E8E8 !default;\n$mdlext-lightboard-slide-active-bacground-color: #E8E8E8 !default;\n$mdlext-lightboard-slide-box-shadow-hover      : 2px 2px 12px -1px rgba(219, 215, 219, 1) !default;\n$mdlext-lightboard-ripple-color                : $tab-highlight-color !default;\n$mdlext-lightboard-focus-outline-color         : inherit !default;\n$mdlext-lightboard-figcaption-text-color       : rgb-string-to-hex($palette-grey-400) !default;\n\n\n/* ==========  Carousel  ========== */\n$mdlext-carousel-slide-border-top-width        : 2px !default;\n$mdlext-carousel-slide-border-top-color        : rgb-string-to-hex($color-accent) !default;\n$mdlext-carousel-slide-margin-horizontal       : 0;\n$mdlext-carousel-slide-figcaption-color        : $mdlext-lightboard-figcaption-text-color !default;\n$mdlext-carousel-slide-ripple-color            : $mdlext-lightboard-ripple-color !default;\n\n\n/* ==========  Bordered fields  ========== */\n$mdlext-bordered-field-vertical-spacing-top           : 0 !default;\n$mdlext-bordered-field-vertical-spacing-bottom        : $input-text-vertical-spacing !default;\n\n$mdlext-bordered-field-input-text-font-size           : $input-text-font-size !default;\n$mdlext-bordered-field-font-weight                    : normal !default;\n$mdlext-bordered-field-border-width                   : 1px !default;\n$mdlext-bordered-field-border-radius                  : 3px !default;\n$mdlext-bordered-field-padding                        : $input-text-padding + 4px !default;\n$mdlext-bordered-field-padding-top                    : $input-text-vertical-spacing !default;\n$mdlext-bordered-field-padding-bottom                 : $input-text-padding !default;\n\n$mdlext-bordered-field-input-text-color               : inherit !default;\n$mdlext-bordered-field-border-color                   : rgba($mdlext-color-black, 0.26) !default;\n$mdlext-bordered-field-background-color               : rgba(#FFFFFF, 0.2) !default;\n$mdlext-bordered-field-focus-border-color             : rgb-string-to-hex($color-primary) !default;\n$mdlext-bordered-field-focus-background-color         : rgba(#EEEEEE, 0.2) !default;\n\n$mdlext-bordered-field-input-text-disabled-text-color : rgba($mdlext-color-black, 0.12) !default;\n$mdlext-bordered-field-disabled-border-color          : rgba($mdlext-color-black, 0.12) !default;\n$mdlext-bordered-field-disabled-background-color      : $mdlext-bordered-field-background-color !default;\n\n$mdlext-bordered-field-input-text-error-color         : $mdlext-bordered-field-input-text-color !default;\n$mdlext-bordered-field-error-border-color             : rgb-string-to-hex($input-text-error-color) !default;\n$mdlext-bordered-field-error-background-color         : rgba(lighten($mdlext-bordered-field-error-border-color, 50%), 0.5) !default;\n$mdlext-bordered-field-error-focus-border-color       : darken($mdlext-bordered-field-error-border-color, 10%) !default;\n$mdlext-bordered-field-error-focus-background-color   : $mdlext-bordered-field-error-background-color !default;\n\n$mdlext-bordered-field-input-text-label-color         : rgba($mdlext-color-black, 0.26) !default;\n$mdlext-bordered-field-input-text-label-focus-color   : $mdlext-bordered-field-focus-border-color !default;\n$mdlext-bordered-field-input-text-label-error-color   : $mdlext-bordered-field-error-border-color !default;\n$mdlext-bordered-field-input-text-label-disabled-color: rgba($mdlext-color-black, 0.12) !default;\n\n$mdlext-bordered-field-label-font-size                : $mdlext-bordered-field-input-text-font-size !default;\n$mdlext-bordered-field-floating-label-font-size       : $input-text-floating-label-fontsize !default;\n$mdlext-bordered-field-floating-label-font-weight     : normal !default;\n\n$mdlext-bordered-field-height                         : $mdlext-bordered-field-padding-top + $mdlext-bordered-field-padding-bottom + $mdlext-bordered-field-input-text-font-size + 6px !default;\n$mdlext-bordered-field-floating-label-focus-bottom    : $mdlext-bordered-field-height - $mdlext-bordered-field-floating-label-font-size - $mdlext-bordered-field-padding-top/2 !default;\n\n\n// MDL can not handle required attribute properly. Planned for MDL-v2\n//$mdlext-bordered-field-required-border-color          : rgba(rgb-string-to-hex($color-accent), 0.8) !default;\n//$mdlext-bordered-field-required-background-color      : $mdlext-bordered-field-background-color !default;\n//$mdlext-bordered-field-required-focus-border-color    : rgba(rgb-string-to-hex($color-accent), 0.8) !default;\n//$mdlext-bordered-field-required-focus-background-color: $mdlext-bordered-field-background-color !default;\n//$mdlext-bordered-field-label-required-color           : $mdlext-bordered-field-required-border-color !default;\n\n\n\n/* ==========  Color Themes  ========== */\n\n// ----------------------------------------------------------------\n// Light Color Theme.\n// ----------------------------------------------------------------\n$mdlext-light-color-primary:                      #4CAF50 !default;\n$mdlext-light-color-primary-dark:                 #388E3C !default;\n$mdlext-light-color-primary-light:                #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed\n$mdlext-light-color-primary-contrast:             #C8E6C9 !default;  // text color on primary/primary dark background\n$mdlext-light-color-accent:                       #E040FB !default;\n$mdlext-light-color-accent-light:                 #E040FB !default;  // Fallback color. Set to color-accent if fallback is not needed\n$mdlext-light-color-accent-contrast:              #FAFAFA !default;\n\n$mdlext-light-content-background-color:           #FAFAFA !default;                         // background color on content (paper/card) background\n$mdlext-light-text-color-primary:                 rgba($mdlext-color-black, 0.87) !default; // text color on content (paper/card) background\n$mdlext-light-text-color-secondary:               rgba($mdlext-color-black, 0.54) !default; // text color on content (paper/card) background\n$mdlext-light-text-color-disabled:                rgba($mdlext-color-black, 0.38) !default; // disabled text, hint text, and icons\n$mdlext-light-divider-color:                      rgba($mdlext-color-black, 0.12) !default; // -> $card-border-color\n$mdlext-light-error-color:                        #D32F2F !default;\n\n// Anchor\n$mdlext-light-text-link-color:                    $mdlext-light-color-accent !default;\n\n// Card\n$mdlext-light-card-background-color:              $mdlext-light-content-background-color !default;\n$mdlext-light-card-text-color:                    $mdlext-light-text-color-primary !default;\n$mdlext-light-card-image-placeholder-color:       $mdlext-light-color-accent !default;\n$mdlext-light-card-supporting-text-text-color:    rgba($mdlext-color-black, 0.54) !default;\n$mdlext-light-card-border-color:                  rgba(0, 0, 0, 0.1) !default;\n$mdlext-light-card-subtitle-color:                rgba($mdlext-color-black, 0.54) !default;\n\n//  Item\n\n// Default Item Colors\n$mdlext-light-default-item-text-color:            rgba($mdlext-color-black, 0.87) !default;\n$mdlext-light-default-item-outline-color:         $mdlext-palette-grey-400 !default;\n$mdlext-light-default-item-hover-bg-color:        $mdlext-palette-grey-200 !default;\n$mdlext-light-default-item-focus-bg-color:        $mdlext-palette-grey-200 !default;\n$mdlext-light-default-item-active-bg-color:       $mdlext-palette-grey-300 !default;\n$mdlext-light-default-item-divider-color:         rgba($mdlext-color-black, 0.12) !default;\n\n// Disabled Button Colors\n$mdlext-light-disabled-item-text-color:           $mdlext-palette-grey-400 !default;\n\n// Dropdown menu / menu-button\n$mdlext-light-default-dropdown-bg-color:          $mdlext-color-white !default;\n\n// Badge\n$mdlext-light-badge-color:                        $mdlext-light-color-accent-contrast !default;\n$mdlext-light-badge-color-inverse:                $mdlext-light-color-accent !default;\n$mdlext-light-badge-background:                   $mdlext-light-color-accent !default;\n$mdlext-light-badge-background-inverse:           $mdlext-light-color-accent-contrast !default;\n\n// Default button colors.\n$mdlext-light-button-primary-color:               rgba($mdlext-palette-grey-500, 0.20) !default;\n$mdlext-light-button-secondary-color:             $mdlext-color-black !default;\n$mdlext-light-button-hover-color:                 $mdlext-light-button-primary-color !default;\n$mdlext-light-button-active-color:                rgba($mdlext-palette-grey-500, 0.40) !default;\n$mdlext-light-button-focus-color:                 rgba($mdlext-color-black, 0.12) !default;\n\n// Colored button colors.\n$mdlext-light-button-primary-color-alt:           $mdlext-light-color-primary-light !default;\n$mdlext-light-button-secondary-color-alt:         $mdlext-light-color-primary-contrast !default;\n$mdlext-light-button-hover-color-alt:             darken($mdlext-light-color-primary-light, 10%) !default;\n$mdlext-light-button-active-color-alt:            darken($mdlext-light-color-primary-light, 10%) !default;\n$mdlext-light-button-focus-color-alt:             $mdlext-light-button-focus-color !default;\n\n// Ripple color for colored raised buttons.\n$mdlext-light-button-ripple-color-alt:            $mdlext-light-color-primary-contrast !default;\n\n// Disabled button colors.\n$mdlext-light-button-primary-color-disabled:      rgba($mdlext-color-black, 0.12) !default;\n$mdlext-light-button-secondary-color-disabled:    rgba($mdlext-color-black, 0.26) !default;\n\n// FAB colors and sizes.\n$mdlext-light-button-fab-color-alt:               $mdlext-light-color-accent !default;\n$mdlext-light-button-fab-hover-color-alt:         $mdlext-light-color-accent !default;\n$mdlext-light-button-fab-active-color-alt:        $mdlext-light-color-accent !default;\n$mdlext-light-button-fab-text-color-alt:          $mdlext-light-color-accent-contrast !default;\n$mdlext-light-button-fab-ripple-color-alt:        $mdlext-light-color-accent-contrast !default;\n\n// Slider\n$mdlext-light-range-bg-color:                     rgba($mdlext-color-black, 0.26) !default;\n$mdlext-light-range-color:                        $mdlext-light-color-accent-light !default;\n$mdlext-light-range-faded-color:                  rgba($mdlext-light-color-accent-light, 0.26) !default;\n$mdlext-light-range-bg-focus-color:               rgba($mdlext-color-black, 0.12) !default;\n\n// Textfields\n$mdlext-light-input-text-background-color:        transparent !default;\n$mdlext-light-input-text-label-color:             rgba($mdlext-color-black, 0.54) !default;\n$mdlext-light-input-text-bottom-border-color:     rgba($mdlext-color-black, 0.26) !default;\n$mdlext-light-input-text-highlight-color:         $mdlext-light-color-accent-light !default;\n$mdlext-light-input-text-disabled-color:          rgba($mdlext-color-black, 0.12) !default;\n$mdlext-light-input-text-disabled-text-color:     rgba($mdlext-color-black, 0.26) !default;\n$mdlext-light-input-text-error-color:             $mdlext-light-error-color !default;\n\n// Checkboxes\n$mdlext-light-checkbox-color:                     $mdlext-light-color-accent-light !default;\n$mdlext-light-checkbox-off-color:                 rgba($mdlext-color-black, 0.54) !default;\n$mdlext-light-checkbox-disabled-color:            rgba($mdlext-color-black, 0.26) !default;\n$mdlext-light-checkbox-focus-color:               rgba($mdlext-light-color-accent-light, 0.26) !default;\n\n// Icon Toggles\n$mdlext-light-icon-toggle-color:                  $mdlext-palette-grey-700 !default;\n$mdlext-light-icon-toggle-focus-color:            $mdlext-light-button-focus-color !default;\n$mdlext-light-icon-toggle-checked-color:          $mdlext-light-color-accent-light !default;\n$mdlext-light-icon-toggle-checked-focus-color:    rgba($mdlext-light-color-accent-light, 0.26) !default;\n$mdlext-light-icon-toggle-disabled-color:         rgba($mdlext-color-black, 0.26) !default;\n\n// Radio Buttons\n$mdlext-light-radio-color:                        $mdlext-light-color-accent-light !default;\n$mdlext-light-radio-off-color:                    rgba($mdlext-color-black, 0.54) !default;\n$mdlext-light-radio-disabled-color:               rgba($mdlext-color-black, 0.26) !default;\n\n// Switches\n$mdlext-light-switch-color:                       $mdlext-light-color-accent-light !default;\n$mdlext-light-switch-faded-color:                 rgba($mdlext-light-color-accent-light, 0.26) !default;\n$mdlext-light-switch-thumb-color:                 $mdlext-light-switch-color !default;\n$mdlext-light-switch-track-color:                 rgba($mdlext-light-color-accent-light, 0.54) !default;\n$mdlext-light-switch-off-thumb-color:             $mdlext-palette-grey-50 !default;\n$mdlext-light-switch-off-track-color:             rgba($mdlext-color-black, 0.26) !default;\n$mdlext-light-switch-disabled-thumb-color:        $mdlext-palette-grey-400 !default;\n$mdlext-light-switch-disabled-track-color:        rgba($mdlext-color-black, 0.12) !default;\n\n// Data table\n$mdlext-light-data-table-background-color:               $mdlext-light-content-background-color !default;\n$mdlext-light-data-table-header-color:                   rgba($mdlext-color-black, 0.54) !default;\n$mdlext-light-data-table-header-sorted-color:            rgba($mdlext-color-black, 0.87) !default;\n$mdlext-light-data-table-header-sorted-icon-hover-color: rgba($mdlext-color-black, 0.26) !default;\n$mdlext-light-data-table-hover-color:                    $mdlext-palette-grey-200 !default;\n$mdlext-light-data-table-selection-color:                $mdlext-palette-grey-200 !default;\n$mdlext-light-data-table-divider-color:                  rgba($mdlext-color-black, 0.12) !default;\n$mdlext-light-data-table-dividers:                       1px solid $mdlext-light-data-table-divider-color !default;\n\n\n// Selectfield\n// Uses variables from textfield\n$mdlext-selectfield-arrow-width: 0.7em;\n$mdlext-selectfield-arrow-length: 0.5em;\n\n\n// Accordion\n$mdlext-light-accordion-header-background-color-base   : $mdlext-palette-grey-600 !default;\n$mdlext-light-accordion-header-background-color        : rgba($mdlext-light-accordion-header-background-color-base, 0.20) !default;\n$mdlext-light-accordion-header-background-open-color   : rgba($mdlext-light-accordion-header-background-color-base, 0.30) !default;\n$mdlext-light-accordion-header-background-active-color : rgba($mdlext-light-accordion-header-background-color-base, 0.40) !default;\n$mdlext-light-accordion-header-border-color            : rgba($mdlext-light-accordion-header-background-color-base, 0.50) !default;\n$mdlext-light-accordion-header-background-hover-color  : rgba($mdlext-light-accordion-header-background-color-base, 0.40) !default;\n$mdlext-light-accordion-header-focus-outline-color     : darken($mdlext-light-accordion-header-border-color, 3%) !default;\n$mdlext-light-accordion-header-disabled-color          : rgba($mdlext-light-accordion-header-background-color-base, 0.12) !default;\n$mdlext-light-accordion-header-secondary-color         : $mdlext-color-black !default;\n$mdlext-light-accordion-header-secondary-color-disabled: rgba($mdlext-color-black, 0.26) !default;\n$mdlext-light-accordion-header-highlight-color         : darken($mdlext-light-accordion-header-border-color, 6%) !default;\n$mdlext-light-accordion-ripple-color                   : rgba($mdlext-light-accordion-header-background-color-base, 0.4) !default;\n$mdlext-light-accordion-content-color                  : inherit !default;\n$mdlext-light-accordion-content-background-color       : transparent !default;\n\n\n// Bordered fields\n$mdlext-light-bordered-field-input-text-color               : inherit !default;\n$mdlext-light-bordered-field-border-color                   : $mdlext-light-input-text-bottom-border-color !default;\n$mdlext-light-bordered-field-background-color               : rgba($mdlext-light-content-background-color, 0.1) !default;\n$mdlext-light-bordered-field-focus-border-color             : $mdlext-light-color-accent-light !default;\n$mdlext-light-bordered-field-focus-background-color         : rgba(darken($mdlext-light-bordered-field-background-color, 10%), 0.1) !default;\n\n$mdlext-light-bordered-field-input-text-disabled-text-color : $mdlext-light-input-text-disabled-text-color;\n$mdlext-light-bordered-field-disabled-border-color          : $mdlext-light-input-text-disabled-color !default;\n$mdlext-light-bordered-field-disabled-background-color      : $mdlext-light-bordered-field-background-color !default;\n\n$mdlext-light-bordered-field-input-text-error-color         : $mdlext-light-bordered-field-input-text-color !default;\n$mdlext-light-bordered-field-error-border-color             : $mdlext-light-input-text-error-color !default;\n$mdlext-light-bordered-field-error-background-color         : rgba(lighten($mdlext-light-bordered-field-error-border-color, 50%), 0.5) !default;\n$mdlext-light-bordered-field-error-focus-border-color       : darken($mdlext-light-bordered-field-error-border-color, 10%) !default;\n$mdlext-light-bordered-field-error-focus-background-color   : $mdlext-light-bordered-field-error-background-color !default;\n\n$mdlext-light-bordered-field-input-text-label-color         : $mdlext-light-input-text-label-color !default;\n$mdlext-light-bordered-field-input-text-label-focus-color   : $mdlext-light-bordered-field-focus-border-color !default;\n$mdlext-light-bordered-field-input-text-label-error-color   : $mdlext-light-bordered-field-error-border-color !default;\n$mdlext-light-bordered-field-input-text-label-disabled-color: $mdlext-light-input-text-disabled-text-color !default;\n\n\n\n// ----------------------------------------------------------------\n// Dark Color Theme.\n// ----------------------------------------------------------------\n$mdlext-dark-color-primary:                       #FFC107 !default;\n$mdlext-dark-color-primary-dark:                  #FFA000 !default;\n$mdlext-dark-color-primary-light:                 #FFC107 !default;             // Fallback color. Set to color-primary if fallback is not needed\n$mdlext-dark-color-primary-contrast:              #FFF8E1 !default;             // text color on primary/primary dark background\n$mdlext-dark-color-accent:                        #536DFE !default;\n$mdlext-dark-color-accent-light:                  #536DFE !default;             // Fallback color. Set to color-accent if fallback is not needed\n$mdlext-dark-color-accent-contrast:               #FFFFFF !default;\n\n$mdlext-dark-content-background-color:            #303030 !default;             // #424242 or #303030, background color on content (paper/card) background\n$mdlext-dark-text-color-primary:                  rgba(#FFFFFF, 1.00) !default; // text color on content (paper/card) background\n$mdlext-dark-text-color-secondary:                rgba(#FFFFFF, 0.70) !default; // text color on content (paper/card) background\n$mdlext-dark-text-color-disabled:                 rgba(#FFFFFF, 0.50) !default; // disabled text, hint text, and icons\n$mdlext-dark-divider-color:                       rgba(#FFFFFF, 0.12) !default; // -> $card-border-color\n$mdlext-dark-error-color:                         #FF1744 !default;\n\n// Anchor\n$mdlext-dark-text-link-color:                     $mdlext-dark-color-accent !default;\n\n// Card\n$mdlext-dark-card-background-color:               $mdlext-dark-content-background-color !default;\n$mdlext-dark-card-text-color:                     $mdlext-dark-text-color-primary !default;\n$mdlext-dark-card-image-placeholder-color:        $mdlext-dark-color-accent !default;\n$mdlext-dark-card-supporting-text-text-color:     rgba($mdlext-color-white, 0.70) !default;\n$mdlext-dark-card-border-color:                   rgba(0, 0, 0, 0.1) !default;\n$mdlext-dark-card-subtitle-color:                 rgba($mdlext-color-black, 0.70) !default;\n\n//  Item\n\n// Default Item Colors\n$mdlext-dark-default-item-text-color:             rgba($mdlext-color-white, 0.87) !default;\n$mdlext-dark-default-item-outline-color:          $mdlext-palette-grey-700 !default;\n$mdlext-dark-default-item-hover-bg-color:         $mdlext-palette-grey-900 !default;\n$mdlext-dark-default-item-focus-bg-color:         $mdlext-palette-grey-900 !default;\n$mdlext-dark-default-item-active-bg-color:        $mdlext-palette-grey-800 !default;\n$mdlext-dark-default-item-divider-color:          rgba($mdlext-color-white, 0.20) !default;\n\n// Disabled Button Colors\n$mdlext-dark-disabled-item-text-color:            $mdlext-palette-grey-500 !default;\n\n// Dropdown menu / menu-button\n$mdlext-dark-default-dropdown-bg-color:           $mdlext-color-black !default;\n\n// Badge\n$mdlext-dark-badge-color:                         $mdlext-dark-color-accent-contrast !default;\n$mdlext-dark-badge-color-inverse:                 $mdlext-dark-color-accent !default;\n$mdlext-dark-badge-background:                    $mdlext-dark-color-accent !default;\n$mdlext-dark-badge-background-inverse:            $mdlext-dark-color-accent-contrast !default;\n\n// Default button colors.\n$mdlext-dark-button-primary-color:                rgba($mdlext-palette-grey-500, 0.20) !default;\n$mdlext-dark-button-secondary-color:              $mdlext-color-white !default;\n$mdlext-dark-button-hover-color:                  $mdlext-dark-button-primary-color !default;\n$mdlext-dark-button-active-color:                 rgba($mdlext-palette-grey-500, 0.40) !default;\n$mdlext-dark-button-focus-color:                  rgba($mdlext-color-black, 0.12) !default;\n\n// Colored button colors.\n$mdlext-dark-button-primary-color-alt:            $mdlext-dark-color-primary-light !default;\n$mdlext-dark-button-secondary-color-alt:          $mdlext-dark-color-primary-contrast !default;\n$mdlext-dark-button-hover-color-alt:              darken($mdlext-dark-color-primary-light, 10%) !default;\n$mdlext-dark-button-active-color-alt:             darken($mdlext-dark-color-primary-light, 10%) !default;\n$mdlext-dark-button-focus-color-alt:              $mdlext-dark-button-focus-color !default;\n\n// Ripple color for colored raised buttons.\n$mdlext-dark-button-ripple-color-alt:             $mdlext-dark-color-primary-contrast !default;\n\n// Disabled button colors.\n$mdlext-dark-button-primary-color-disabled:       rgba($mdlext-color-white, 0.12) !default;\n$mdlext-dark-button-secondary-color-disabled:     rgba($mdlext-color-white, 0.26) !default;\n\n// FAB colors and sizes.\n$mdlext-dark-button-fab-color-alt:                $mdlext-dark-color-accent !default;\n$mdlext-dark-button-fab-hover-color-alt:          $mdlext-dark-color-accent !default;\n$mdlext-dark-button-fab-active-color-alt:         $mdlext-dark-color-accent !default;\n$mdlext-dark-button-fab-text-color-alt:           $mdlext-dark-color-accent-contrast !default;\n$mdlext-dark-button-fab-ripple-color-alt:         $mdlext-dark-color-accent-contrast !default;\n\n// Slider\n$mdlext-dark-range-bg-color:                      rgba($mdlext-color-white, 0.87) !default;\n$mdlext-dark-range-color:                         $mdlext-dark-color-accent-light !default;\n$mdlext-dark-range-faded-color:                   rgba($mdlext-dark-color-accent-light, 0.50) !default;\n$mdlext-dark-range-bg-focus-color:                rgba($mdlext-color-white, 0.50) !default;\n\n// Textfields\n$mdlext-dark-input-text-background-color:         transparent !default;\n$mdlext-dark-input-text-label-color:              rgba($mdlext-color-white, 0.50) !default;\n$mdlext-dark-input-text-bottom-border-color:      rgba($mdlext-color-white, 0.26) !default;\n$mdlext-dark-input-text-highlight-color:          $mdlext-dark-color-accent-light !default;\n$mdlext-dark-input-text-disabled-color:           rgba($mdlext-color-white, 0.12) !default;\n$mdlext-dark-input-text-disabled-text-color:      rgba($mdlext-color-white, 0.26) !default;\n$mdlext-dark-input-text-error-color:              $mdlext-dark-error-color !default;\n\n// Checkboxes\n$mdlext-dark-checkbox-color:                      $mdlext-dark-color-accent-light !default;\n$mdlext-dark-checkbox-off-color:                  rgba($mdlext-color-white, 0.50) !default;\n$mdlext-dark-checkbox-disabled-color:             rgba($mdlext-color-white, 0.26) !default;\n$mdlext-dark-checkbox-focus-color:                rgba($mdlext-dark-color-accent-light, 0.26) !default;\n\n// Icon Toggles\n$mdlext-dark-icon-toggle-color:                   $mdlext-palette-grey-700 !default;\n$mdlext-dark-icon-toggle-focus-color:             $mdlext-dark-button-focus-color !default;\n$mdlext-dark-icon-toggle-checked-color:           $mdlext-dark-color-accent-light !default;\n$mdlext-dark-icon-toggle-checked-focus-color:     rgba($mdlext-dark-color-accent-light, 0.26) !default;\n$mdlext-dark-icon-toggle-disabled-color:          rgba($mdlext-color-white, 0.50) !default;\n\n// Radio Buttons\n$mdlext-dark-radio-color:                         $mdlext-dark-color-accent-light !default;\n$mdlext-dark-radio-off-color:                     rgba($mdlext-color-white, 0.50) !default;\n$mdlext-dark-radio-disabled-color:                rgba($mdlext-color-white, 0.26) !default;\n\n// Switches\n$mdlext-dark-switch-color:                        $mdlext-dark-color-accent-light !default;\n$mdlext-dark-switch-faded-color:                  rgba($mdlext-dark-color-accent-light, 0.26) !default;\n$mdlext-dark-switch-thumb-color:                  $mdlext-dark-switch-color !default;\n$mdlext-dark-switch-track-color:                  rgba($mdlext-dark-color-accent-light, 0.5) !default;\n$mdlext-dark-switch-off-thumb-color:              $mdlext-palette-grey-50 !default;\n$mdlext-dark-switch-off-track-color:              rgba($mdlext-color-white, 0.26) !default;\n$mdlext-dark-switch-disabled-thumb-color:         $mdlext-palette-grey-50 !default;\n$mdlext-dark-switch-disabled-track-color:         rgba($mdlext-color-white, 0.12) !default;\n\n// Data table\n$mdlext-dark-data-table-background-color:               $mdlext-dark-content-background-color !default;\n$mdlext-dark-data-table-header-color:                   rgba($mdlext-color-white, 0.87) !default;\n$mdlext-dark-data-table-header-sorted-color:            rgba($mdlext-color-white, 0.87) !default;\n$mdlext-dark-data-table-header-sorted-icon-hover-color: rgba($mdlext-color-white, 0.26) !default;\n$mdlext-dark-data-table-hover-color:                    $mdlext-dark-default-item-hover-bg-color !default;\n$mdlext-dark-data-table-selection-color:                $mdlext-dark-default-item-active-bg-color !default;\n$mdlext-dark-data-table-divider-color:                  rgba($mdlext-color-white, 0.12) !default;\n$mdlext-dark-data-table-dividers:                       1px solid $mdlext-dark-data-table-divider-color !default;\n\n\n// Selectfield\n// Uses variables from textfield\n\n\n// Accordion\n$mdlext-dark-accordion-header-background-color-base   : $mdlext-color-black !default;\n$mdlext-dark-accordion-header-background-color        : rgba($mdlext-dark-accordion-header-background-color-base, 1.0) !default;\n$mdlext-dark-accordion-header-background-open-color   : rgba($mdlext-dark-accordion-header-background-color-base, 0.9) !default;\n$mdlext-dark-accordion-header-border-color            : $mdlext-palette-grey-800 !default;\n$mdlext-dark-accordion-header-background-hover-color  : rgba($mdlext-dark-accordion-header-background-color-base, 0.5) !default;\n$mdlext-dark-accordion-header-background-active-color : rgba($mdlext-dark-accordion-header-background-color-base, 0.6) !default;\n$mdlext-dark-accordion-header-focus-outline-color     : lighten($mdlext-dark-accordion-header-border-color, 40%) !default;\n$mdlext-dark-accordion-header-disabled-color          : rgba($mdlext-dark-accordion-header-background-color-base, 0.4) !default;\n$mdlext-dark-accordion-header-secondary-color         : $mdlext-dark-text-color-primary !default;\n$mdlext-dark-accordion-header-secondary-color-disabled: $mdlext-dark-text-color-disabled !default;\n$mdlext-dark-accordion-header-highlight-color         : lighten($mdlext-dark-accordion-header-border-color, 40%) !default;\n$mdlext-dark-accordion-ripple-color                   : rgba($mdlext-dark-accordion-header-background-color-base, 0.3) !default;\n$mdlext-dark-accordion-content-color                  : inherit !default;\n$mdlext-dark-accordion-content-background-color       : transparent !default;\n\n\n// Bordered fields\n$mdlext-dark-bordered-field-input-text-color               : inherit !default;\n$mdlext-dark-bordered-field-border-color                   : $mdlext-dark-input-text-bottom-border-color !default;\n$mdlext-dark-bordered-field-background-color               : rgba($mdlext-dark-content-background-color, 0.1) !default;\n$mdlext-dark-bordered-field-focus-border-color             : $mdlext-dark-color-accent-light !default;\n$mdlext-dark-bordered-field-focus-background-color         : rgba(darken($mdlext-dark-bordered-field-background-color, 10%), 0.1) !default;\n\n$mdlext-dark-bordered-field-input-text-disabled-text-color : $mdlext-dark-input-text-disabled-text-color;\n$mdlext-dark-bordered-field-disabled-border-color          : $mdlext-dark-input-text-disabled-color !default;\n$mdlext-dark-bordered-field-disabled-background-color      : $mdlext-dark-bordered-field-background-color !default;\n\n$mdlext-dark-bordered-field-input-text-error-color         : $mdlext-dark-bordered-field-input-text-color !default;\n$mdlext-dark-bordered-field-error-border-color             : $mdlext-dark-input-text-error-color !default;\n$mdlext-dark-bordered-field-error-background-color         : rgba($mdlext-dark-bordered-field-error-border-color, 0.1) !default;\n$mdlext-dark-bordered-field-error-focus-border-color       : darken($mdlext-dark-bordered-field-error-border-color, 10%) !default;\n$mdlext-dark-bordered-field-error-focus-background-color   : $mdlext-dark-bordered-field-error-background-color !default;\n\n$mdlext-dark-bordered-field-input-text-label-color         : $mdlext-dark-input-text-label-color !default;\n$mdlext-dark-bordered-field-input-text-label-focus-color   : $mdlext-dark-bordered-field-focus-border-color !default;\n$mdlext-dark-bordered-field-input-text-label-error-color   : $mdlext-dark-bordered-field-error-border-color !default;\n$mdlext-dark-bordered-field-input-text-label-disabled-color: $mdlext-dark-input-text-disabled-text-color !default;\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/_variables.scss","///\n/// Returns the opposite direction of each direction in a list\n/// Modified from: https://css-tricks.com/snippets/sass/opposite-direction-function/\n/// @author Hugo Giraudel\n/// @param {List} $directions - List of initial directions\n/// @return {List} - List of opposite directions\n@function mdlext-opposite-direction($directions) {\n  $opposite-directions: ();\n  $direction-map: (\n    'top':    'bottom',\n    'right':  'left',\n    'bottom': 'top',\n    'left':   'right',\n    'center': 'center',\n    'ltr':    'rtl',\n    'rtl':    'ltr'\n  );\n\n  @each $direction in $directions {\n    $direction: to-lower-case($direction);\n\n    @if map-has-key($direction-map, $direction) {\n      $opposite-directions: append($opposite-directions, unquote(map-get($direction-map, $direction)));\n    }\n    @else {\n      @warn \"No opposite direction can be found for `#{$direction}`. Direction omitted.\";\n    }\n  }\n\n  @return $opposite-directions;\n}\n\n///\n/// Strip unit from value\n/// @author Hugo Giraudel\n/// http://hugogiraudel.com/2013/08/12/sass-functions/\n/// https://css-tricks.com/snippets/sass/strip-unit-function/\n/// @param {Number} $number - Number to remove unit from\n/// @return {Number} - Unitless number\n\n@function strip-unit($number) {\n  @return if(type-of($number) == 'number' and not unitless($number), $number / ($number * 0 + 1), $number);\n}\n\n///\n/// Clamping a number means restricting it between min and max values.\n///    4 clamped to 1-3 equals 3.\n///   -5 clamped to 1-10 equals 1.\n///   42 clamped to 10-100 equals 42.\n/// @author Hugo Giraudel\n/// http://hugogiraudel.com/2013/08/12/sass-functions/\n/// @param {Number} $value - The value to clamp\n/// @param {Number} $min - min value in range\n/// @param {Number} $max - Max value in range\n/// @return {Number} - The clamped value\n\n@function clamp($value, $min, $max) {\n  @return if($value > $max, $max, if($value < $min, $min, $value));\n}\n\n///\n/// Convert one unit into another\n/// @author Hugo Giraudel\n/// http://www.sitepoint.com/understanding-sass-units/\n/// @param {Number} $value - Initial value\n/// @param {String} $unit - Desired unit\n/// @return {Number}\n/// @throw Error if `$unit` does not exist or if units are incompatible.\n\n/* stylelint-disable */\n@function convert-unit($value, $unit) {\n  $units: (\n    'px'  : 0px,\n    'cm'  : 0cm,\n    'mm'  : 0mm,\n    '%'   : 0%,\n    'ch'  : 0ch,\n    'in'  : 0in,\n    'em'  : 0em,\n    'rem' : 0rem,\n    'pt'  : 0pt,\n    'pc'  : 0pc,\n    'ex'  : 0ex,\n    'vw'  : 0vw,\n    'vh'  : 0vh,\n    'vmin': 0vmin,\n    'vmax': 0vmax,\n    'deg' : 0deg,\n    'turn': 0turn,\n    'rad' : 0rad,\n    'grad': 0grad,\n    's'   : 0s,\n    'ms'  : 0ms,\n    'Hz'  : 0Hz,\n    'kHz' : 0kHz,\n    'dppx': 0dppx,\n    'dpcm': 0dpcm,\n    'dpi' : 0dpi,\n  );\n\n  @if map-has-key($units, $unit) {\n    @return map-get($units, $unit) + $value;\n  }\n\n  @error \"Unknown unit `#{$unit}`.\";\n}\n/* stylelint-enable */\n\n\n///\n/// Replace `$search` with `$replace` in `$string`\n/// @author Hugo Giraudel, http://hugogiraudel.com/2014/01/13/sass-string-replacement-function/\n/// @param {String} $string - Initial string\n/// @param {String} $search - Substring to replace\n/// @param {String} $replace ('') - New value\n/// @return {String} - Updated string\n@function str-replace($string, $search, $replace: '') {\n  $index: str-index($string, $search);\n\n  @if $index {\n    @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n  }\n  @return $string;\n}\n\n///\n/// @function explode() -- split a string into a list of strings\n/// @author https://gist.github.com/danielpchen/3677421ea15dcf2579ff\n///  {string} $string: the string to be split\n///  {string} $delimiter: the boundary string\n///  @return {list} the result list\n@function explode($string, $delimiter: ',') {\n  $result: ();\n  @if $delimiter == \"\" {\n    @for $i from 1 through str-length($string) {\n      $result: append($result, str-slice($string, $i, $i));\n    }\n    @return $result;\n  }\n  $exploding: true;\n  @while $exploding {\n    $d-index: str-index($string, $delimiter);\n    @if $d-index {\n      @if $d-index > 1 {\n        $result: append($result, str-slice($string, 1, $d-index - 1));\n        $string: str-slice($string, $d-index + str-length($delimiter));\n      }\n      @else if $d-index == 1 {\n        $string: str-slice($string, 1, $d-index + str-length($delimiter));\n      }\n      @else {\n        $result: append($result, $string);\n        $exploding: false;\n      }\n    }\n    @else {\n      $result: append($result, $string);\n      $exploding: false;\n    }\n  }\n  @return $result;\n}\n\n///\n/// Add `$unit` to `$value`\n/// @author Hugo Giraudel\n///\n/// @param {Number} $value - Value to add unit to\n/// @param {String} $unit - String representation of the unit\n///\n/// @return {Number} - `$value` expressed in `$unit`\n/// @throw Error if `$unit` does not exist or if units are incompatible.\n///\n@function to-length($value, $unit) {\n  $units: (\n    'px'  : 1px,\n    'cm'  : 1cm,\n    'mm'  : 1mm,\n    '%'   : 1%,\n    'ch'  : 1ch,\n    'pc'  : 1pc,\n    'in'  : 1in,\n    'em'  : 1em,\n    'rem' : 1rem,\n    'pt'  : 1pt,\n    'ex'  : 1ex,\n    'vw'  : 1vw,\n    'vh'  : 1vh,\n    'vmin': 1vmin,\n    'vmax': 1vmax\n  );\n\n  @if not index(map-keys($units), $unit) {\n    @error('Invalid unit `#{$unit}`.');\n  }\n\n  @return $value * map-get($units, $unit);\n}\n\n///\n/// Casts a string into a number\n///\n/// @author Hugo Giraudel\n// @param {String | Number} $value - Value to be parsed\n///\n/// @return {Number}\n/// @throw Error if `$value` is not a number or a string.\n///\n@function to-number($value) {\n  @if type-of($value) == 'number' {\n    @return $value;\n  }\n  @else if type-of($value) != 'string' {\n    @error('Value for `to-number` should be a number or a string.');\n  }\n\n  $result: 0;\n  $digits: 0;\n  $minus: str-slice($value, 1, 1) == '-';\n  $numbers: ('0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9);\n\n  @for $i from if($minus, 2, 1) through str-length($value) {\n    $character: str-slice($value, $i, $i);\n\n    @if not (index(map-keys($numbers), $character) or $character == '.') {\n      @return to-length(if($minus, -$result, $result), str-slice($value, $i));\n    }\n\n    @if $character == '.' {\n      $digits: 1;\n    }\n    @else if $digits == 0 {\n      $result: $result * 10 + map-get($numbers, $character);\n    }\n    @else {\n      $digits: $digits * 10;\n      $result: $result + map-get($numbers, $character) / $digits;\n    }\n  }\n\n  @return if($minus, -$result, $result);\n}\n\n///\n/// Convert `$rgb-string` to a number list\n/// @author Leif Olsen\n/// @param {String | Number} $value - Value to be parsed\n/// @return {list} the rgb number list\n/// @throw Error if `$value` is not a number, color or a string.\n@function rgb-string-to-numbers($value) {\n  @if type-of($value) == 'number' or type-of($value) == 'color' {\n    @return $value;\n  }\n  @else if type-of($value) != 'string' {\n    @error('Value for `rgb-string-to-numbers` should be a number or a string.');\n  }\n\n  $s: str-replace($value, \"rgba\");\n  $s: str-replace($s, \"rgb\");\n  $s: str-replace($s, \"(\");\n  $s: str-replace($s, \")\");\n  $s: str-replace($s, \" \");\n  $l: explode($s);\n  $result: ();\n  @for $i from 1 through length($l) {\n    $result: append($result, to-number(nth($l, $i)));\n  }\n  @return $result;\n}\n\n///\n/// Convert `$rgb-string` to a corresponding hex value\n/// @author Leif Olsen\n/// @param {String | Number} $value - Value to be parsed\n/// @return {number} the rgb hex value\n/// @throw Error if `$value` is not a number, color or a string.\n@function rgb-string-to-hex($value) {\n  @if type-of($value) == 'number' or type-of($value) == 'color' {\n    @return $value;\n  }\n  @else if type-of($value) != 'string' {\n    @error('Value for `rgb-string-to-numbers` should be a number or a string.');\n  }\n  $l: rgb-string-to-numbers($value);\n  @return rgb(nth($l, 1), nth($l, 2), nth($l, 3));\n}\n\n\n///\n/// Convert hex color to a coresponding `$rgb-string`\n/// @author https://github.com/google/material-design-lite/issues/1689\n/// @param {Number} $hexColor - Value to convert\n/// @return {String} the rgb string value\n///\n/// @example - $color-primary: hex-to-string(#333);\n@function hex-to-rgb-string($hexColor) {\n  // 0.999999 val in alpha actually compiles to 1.0\n  $rgbaVal:  inspect(rgba($hexColor, 0.9999999));\n\n  // slice substring between 'rgba(' and '1.0)'\n  @return str-slice($rgbaVal, 6, str-length($rgbaVal)-4);\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/_functions.scss","@charset \"UTF-8\";\n\n/**\n * @license\n * Copyright 2016-2017 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n@import \"../mixins\";\n\n.mdlext-aria-expanded-plus-minus {\n  @include mdlext-aria-expanded-toggle($font-family: inherit);\n}\n\n.mdlext-aria-expanded-more-less {\n  @include mdlext-aria-expanded-toggle($icon: 'expand_more', $icon-expanded: 'expand_less');\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/aria-expanded-toggle/_aria-expanded-toggle.scss","@import \"functions\";\n\n/// Triangle helper mixin\n/// Modified from: http://blustemy.io/drawing-pure-css-arrows-with-mixins/\n///                https://css-tricks.com/snippets/sass/css-triangle-mixin/\n/// @param {Direction} $direction - Triangle direction, either `top`, `right`, `bottom` or `left`\n/// @param {Color} $color [currentcolor] - Triangle color\n/// @param {Length} $size [1em] - Triangle size\n@mixin mdlext-arrow($direction: bottom, $base-width: 15px, $length: 10px, $color: inherit, $font-size: inherit) {\n  content: '';\n  width: 0;\n  height: 0;\n  font-size: $font-size;\n  line-height: $font-size;\n  border-#{mdlext-opposite-direction($direction)}: $length solid $color;\n  border-#{mdlext-opposite-direction($direction)}-width: $length;\n  border-#{mdlext-opposite-direction($direction)}-style: solid;\n  border-#{mdlext-opposite-direction($direction)}-color: $color;\n\n  $perpendicular-borders: ($base-width / 2) solid transparent;\n\n  @if $direction == top or $direction == bottom {\n    border-left: $perpendicular-borders;\n    border-right: $perpendicular-borders;\n  }\n  @else if $direction == right or $direction == left {\n    border-bottom: $perpendicular-borders;\n    border-top: $perpendicular-borders;\n  }\n}\n\n/// Hide element while making it readable for screen readers\n/// Copied from HTML5Boilerplate:\n/// https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L119-L133\n@mixin mdlext-visually-hidden() {\n  border: 0;\n  clip: rect(0 0 0 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n\n/// Toggle for aria-expanded attribute\n///\n/// @author Leif Olsen\n/// @param {Font} $font-family ['Material Icons'] - Font family\n/// @param {Length} $font-size [24px] - Font size\n/// @param {string} $icon ['+'] - icon to display when 'aria-expanded=\"false\"'\n/// @param {string} $icon-expanded ['-'] - icon to display when 'aria-expanded=\"true\"'\n/// @link https://github.com/google/material-design-icons Modified from '.material-icons' class\n/// @param {Length} $icon-offset [0] - Icon offset\n///\n/// @example - +/- toggle\n///   .plus-minus {\n///     @include mdlext-aria-expanded-toggle($font-family: inherit, $font-size: inherit);\n///   }\n///   <div aria-expanded=\"false\">\n///     <i class=\"plus-minus\"></i>\n///   </div>\n///\n/// @example - Material Icons, expand-more/expand_less\n///   .more-less {\n///     @include mdlext-aria-expanded-toggle($content: 'expand_more', $content-expanded: 'expand_less');\n///   }\n///   <div aria-expanded=\"true\">\n///     <i class=\"more-less\"></i>\n///   </div>\n\n@mixin mdlext-aria-expanded-toggle($font-family: 'Material Icons', $font-size: 24px, $icon: '+', $icon-expanded: '-', $icon-offset: 0) {\n  font-family: $font-family;\n  font-weight: inherit;\n  font-style: inherit;\n  font-size: $font-size;  // Preferred icon size\n  display: inline-block;\n  width: 1em;\n  height: 1em;\n  line-height: 1;\n  text-transform: none;\n  letter-spacing: normal;\n  word-wrap: normal;\n  white-space: nowrap;\n  direction: ltr;\n  vertical-align: middle;\n\n  // Support for all WebKit browsers.\n  -webkit-font-smoothing: antialiased;\n  -webkit-font-feature-settings: 'liga';\n\n  // Support for Safari and Chrome.\n  text-rendering: optimizeLegibility;\n\n  // Support for Firefox.\n  -moz-osx-font-smoothing: grayscale;\n\n  // Support for IE.\n  font-feature-settings: 'liga';\n\n  &::after {\n    content: $icon;\n    margin-left: $icon-offset;\n  }\n\n  [aria-expanded='true'] > & {\n    &::after {\n      content: $icon-expanded;\n      margin-left: $icon-offset;\n    }\n  }\n}\n\n\n/// Keyframe mixin\n/// Modified from: http://sassbreak.com/nested-keyframe-rules-sass/\n/// Modified from: http://sassbreak.com/sass-tools-and-snippets/\n///\n/// @example\n///\n/// .some-element {\n///   animation: 10s linear infinite;\n///\n///   @include mdlext-animation-keyframes {\n///     from {\n///       background-position: 0% 0%;\n///     }\n///     to {\n///       background-position: 114.2857% 0%;\n///     }\n///   }\n/// }\n\n@mixin mdlext-animation-keyframes {\n  $animation-name: unique-id();\n  animation-name: $animation-name;\n\n  @keyframes #{$animation-name} {\n    @content;\n  }\n}\n\n\n/// Flexible title mixin\n/// A flexible title consists of three regions, left, middle and right.\n/// The left and right regions are optional and will typically contain state icons\n/// or act as a toolbar. The middle region should contain the title text.\n///\n/// @author Leif Olsen\n/// @param {String} $class - class name\n/// @gutter {Length} [8px] - horizontal spacing between title elements\n///\n/// @example\n///\n/// @include mdlext-flexible-title(my-title) {\n///   overflow: hidden;\n///   background-color: yellow;\n///   &__text {\n///     font-size: 20px;\n///     letter-spacing: 0.02em;\n///     font-weight: 400;\n///     line-height: 1.1;\n///   }\n/// }\n///\n/// <header class=\"my-title\">\n///   <i class=\"material-icons\" role=\"presentation\" style=\"font-size: 28px;\">info</i>\n///   <h2 class=\"my-title__text\">A title</h2>\n///   <span class=\"my-title__spacer\"></span>\n///   <i class=\"mdlext-aria-expanded-more-less\" role=\"presentation\" style=\"font-size: 28px;\"></i>\n/// </header>\n\n@mixin mdlext-flexible-title($class, $gutter: 8px) {\n  .#{$class} {\n    box-sizing: border-box;\n    position: relative;\n    width: 100%;\n    display: flex;\n    align-self: stretch;\n    align-items: center;\n    margin: 0;\n    padding: 0 $gutter;\n\n    &__text,\n    &__text > * {\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n\n    > * {\n      box-sizing: border-box;\n      margin: 0;\n      padding: 0 $gutter 0 0;\n    }\n\n    > *:last-child {\n      padding-right: 0;\n    }\n\n    // Used to align elements inside a header or drawer, by growing to fill\n    // remaining space. Commonly used for aligning elements to the right.\n    &__spacer {\n      flex: 1;\n    }\n\n    @content;\n  }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/_mixins.scss","/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n@import \"../variables\";\n\n.mdlext-layout__sticky-header {\n  position: absolute;\n  overflow: visible;\n  background: $mdlext-sticky-header-background;\n  transition: 0.1s ease-in-out;\n\n  &.mdlext-is-scroll {\n    background: $mdlext-sticky-header-background-scroll;\n  }\n}\n\n*:not(.is-small-screen) .mdlext-layout__sticky-header {\n  .mdl-layout__drawer-button {\n    visibility: hidden;\n  }\n  .mdl-layout__header-row {\n    padding-left: $padding;\n  }\n}\n\n*:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header,\n.is-small-screen.has-drawer .mdlext-layout__sticky-header {\n  display: flex;\n\n  .mdl-layout__drawer-button {\n    visibility: visible;\n  }\n  .mdl-layout__header-row {\n    padding-left: $padding + $layout-drawer-button-desktop-size;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/sticky-header/_sticky-header.scss","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SASS based on css from Google Chrome Dialog polyfill, https://github.com/GoogleChrome/dialog-polyfill\n * @include 'node_modules/dialog-polyfill/dialog-polyfill.css' before using this\n */\n\n@import \"../variables\";\n\ndialog.mdlext-dialog {\n  position: absolute;\n  border: 0;\n  opacity: 0;\n  padding: $mdlext-dialog-padding;\n  background-color: $mdlext-dialog-background-color;\n\n  &[open] {\n    animation: mdlext-open-dialog $mdlext-dialog-open-animation;\n  }\n  &[open]::backdrop {\n    animation: mdlext-darken-backdrop $mdlext-dialog-backdrop-animation;\n  }\n  &[open] + .backdrop {\n    animation: mdlext-darken-backdrop $mdlext-dialog-backdrop-animation;\n  }\n}\n\n@keyframes mdlext-darken-backdrop {\n  to { background: $mdlext-dialog-backdrop-color; }\n}\n@keyframes mdlext-open-dialog {\n  to { opacity: 1; }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/dialog/dialog.scss","@charset \"UTF-8\";\n\n/**\n * This code is modified from Material Design Lite _grid.sass,\n * which is Licensed under the Apache License, Version 2.0\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n///////////////////////////////////////////////////////////////////////\n//\n// Grid media queries, modified from Material Design Lite _grid.sass\n//\n///////////////////////////////////////////////////////////////////////\n// Use of this module requires the user to include variables from material-design-lite in hers/his main SASS module\n//@import \"../../node_modules/material-design-lite/src/variables\";\n\n\n.mdlext-grid {\n  display: flex;\n  flex-flow: row wrap;\n  margin: 0 auto;\n  align-items: stretch;\n\n  &.mdlext-grid--no-spacing {\n    padding: 0;\n  }\n}\n\n.mdlext-cell {\n  box-sizing: border-box;\n}\n\n\n.mdlext-cell--top {\n  align-self: flex-start;\n}\n\n.mdlext-cell--middle {\n  align-self: center;\n}\n\n.mdlext-cell--bottom {\n  align-self: flex-end;\n}\n\n.mdlext-cell--stretch {\n  align-self: stretch;\n}\n\n.mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell {\n  margin: 0;\n}\n\n// Define order override classes.\n@for $i from 1 through $grid-max-columns {\n  .mdlext-cell--order-#{$i} {\n    order: $i;\n  }\n}\n\n\n// Mixins for width calculation.\n@mixin partial-size($size, $columns, $gutter) {\n  width: calc(#{(($size / $columns) * 100) + \"%\"} - #{$gutter});\n\n  .mdlext-grid--no-spacing > & {\n    width: #{(($size / $columns) * 100) + \"%\"};\n  }\n}\n\n@mixin full-size($gutter) {\n  @include partial-size(1, 1, $gutter);\n}\n\n@mixin offset-size($size, $columns, $gutter) {\n  margin-left: calc(#{(($size / $columns) * 100) + \"%\"} + #{$gutter / 2});\n\n  .mdlext-grid.mdlext-grid--no-spacing > & {\n    margin-left: #{(($size / $columns) * 100) + \"%\"};\n  }\n}\n\n\n\n////////// Phone //////////\n\n/* stylelint-disable */\n@media (max-width: $grid-tablet-breakpoint - 1) {\n/* stylelint-enable */\n  .mdlext-grid {\n    padding: $grid-phone-margin - ($grid-phone-gutter / 2);\n  }\n\n  .mdlext-cell {\n    margin: $grid-phone-gutter / 2;\n    @include partial-size($grid-cell-default-columns, $grid-phone-columns, $grid-phone-gutter);\n  }\n\n  .mdlext-cell--hide-phone {\n    display: none !important;\n  }\n\n  // Define order override classes.\n  @for $i from 1 through $grid-max-columns {\n    .mdlext-cell--order-#{$i}-phone.mdlext-cell--order-#{$i}-phone {\n      order: $i;\n    }\n  }\n\n  // Define partial sizes for columnNumber < totalColumns.\n  @for $i from 1 through ($grid-phone-columns - 1) {\n    .mdlext-cell--#{$i}-col,\n    .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {\n      @include partial-size($i, $grid-phone-columns, $grid-phone-gutter);\n    }\n  }\n\n  // Define 100% for everything else.\n  @for $i from $grid-phone-columns through $grid-desktop-columns {\n    .mdlext-cell--#{$i}-col,\n    .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {\n      @include full-size($grid-phone-gutter);\n    }\n  }\n\n  // Define valid phone offsets.\n  @for $i from 1 through ($grid-phone-columns - 1) {\n    .mdlext-cell--#{$i}-offset,\n    .mdlext-cell--#{$i}-offset-phone.mdlext-cell--#{$i}-offset-phone {\n      @include offset-size($i, $grid-phone-columns, $grid-phone-gutter);\n    }\n  }\n}\n\n\n////////// Tablet //////////\n\n/* stylelint-disable */\n@media (min-width: $grid-tablet-breakpoint) and (max-width: $grid-desktop-breakpoint - 1) { /* stylelint-enable */\n  .mdlext-grid {\n    padding: $grid-tablet-margin - ($grid-tablet-gutter / 2);\n  }\n\n  .mdlext-cell {\n    margin: $grid-tablet-gutter / 2;\n    @include partial-size($grid-cell-default-columns, $grid-tablet-columns, $grid-tablet-gutter);\n  }\n\n  .mdlext-cell--hide-tablet {\n    display: none !important;\n  }\n\n  // Define order override classes.\n  @for $i from 1 through $grid-max-columns {\n    .mdlext-cell--order-#{$i}-tablet.mdlext-cell--order-#{$i}-tablet {\n      order: $i;\n    }\n  }\n\n  // Define partial sizes for columnNumber < totalColumns.\n  @for $i from 1 through ($grid-tablet-columns - 1) {\n    .mdlext-cell--#{$i}-col,\n    .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {\n      @include partial-size($i, $grid-tablet-columns, $grid-tablet-gutter);\n    }\n  }\n\n  // Define 100% for everything else.\n  @for $i from $grid-tablet-columns through $grid-desktop-columns {\n    .mdlext-cell--#{$i}-col,\n    .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {\n      @include full-size($grid-tablet-gutter);\n    }\n  }\n\n  // Define valid tablet offsets.\n  @for $i from 1 through ($grid-tablet-columns - 1) {\n    .mdlext-cell--#{$i}-offset,\n    .mdlext-cell--#{$i}-offset-tablet.mdlext-cell--#{$i}-offset-tablet {\n      @include offset-size($i, $grid-tablet-columns, $grid-tablet-gutter);\n    }\n  }\n}\n\n\n////////// Desktop //////////\n\n@media (min-width: $grid-desktop-breakpoint) {\n  .mdlext-grid {\n    padding: $grid-desktop-margin - ($grid-desktop-gutter / 2);\n  }\n\n  .mdlext-cell {\n    margin: $grid-desktop-gutter / 2;\n    @include partial-size($grid-cell-default-columns, $grid-desktop-columns, $grid-desktop-gutter);\n  }\n\n  .mdlext-cell--hide-desktop {\n    display: none !important;\n  }\n\n  // Define order override classes.\n  @for $i from 1 through $grid-max-columns {\n    .mdlext-cell--order-#{$i}-desktop.mdlext-cell--order-#{$i}-desktop {\n      order: $i;\n    }\n  }\n\n  // Define partial sizes for all numbers of columns.\n  @for $i from 1 through $grid-desktop-columns {\n    .mdlext-cell--#{$i}-col,\n    .mdlext-cell--#{$i}-col-desktop.mdlext-cell--#{$i}-col-desktop {\n      @include partial-size($i, $grid-desktop-columns, $grid-desktop-gutter);\n    }\n  }\n\n  // Define valid desktop offsets.\n  @for $i from 1 through ($grid-desktop-columns - 1) {\n    .mdlext-cell--#{$i}-offset,\n    .mdlext-cell--#{$i}-offset-desktop.mdlext-cell--#{$i}-offset-desktop {\n      @include offset-size($i, $grid-desktop-columns, $grid-desktop-gutter);\n    }\n  }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/grid/_grid-media-queries.scss","@charset \"UTF-8\";\n\n/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * A lightboard is a translucent surface illuminated from behind, used for situations\n * where a shape laid upon the surface needs to be seen with high contrast. In the \"old days\" of photography\n * photograpers used a lightboard to get a quick view of their slides. The goal is to create a responsive lightbox\n * design, based on flex layout, similar to what is used in Adobe LightRoom to browse images.\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n@import \"../variables\";\n\nul.mdlext-lightboard {\n  list-style: none;\n}\n\n.mdlext-lightboard {\n  box-sizing: border-box;\n  margin: 0 auto;\n  padding: 0;\n  display: flex;\n  flex-flow:row wrap;\n  align-items: stretch;\n\n  *,\n  *::before,\n  *::after,\n  input[type=\"search\"] {\n    box-sizing: border-box;\n  }\n\n  .mdlext-lightboard__slide {\n    background-color: $mdlext-lightboard-slide-background-color;\n    border: 1px solid $mdlext-lightboard-slide-border-color;\n    border-radius: $mdlext-lightboard-slide-border-radius;\n    box-shadow: $mdlext-lightboard-slide-box-shadow;\n    position: relative;\n    display: block;\n    max-width: $mdlext-lightboard-slide-max-size;\n\n    &::before {\n      // 1:1 ratio\n      // TODO: Use a class for ratio so the grid can display slides with different ratios (16:9, 16:10, 4:3 ...)\n      content: '';\n      display: block;\n      padding-top: 100%;\n    }\n    &:hover,\n    &:active,\n    &:focus {\n      border-color: $mdlext-lightboard-slide-border-color-hover;\n      background-color: $mdlext-lightboard-slide-background-color-hover;\n      box-shadow: $mdlext-lightboard-slide-box-shadow-hover;\n\n      figcaption {\n        color: rgba(0, 0, 0, 1) !important;\n        background-color: rgba(255, 255, 255, 0.2);\n      }\n    }\n    &:focus {\n      outline-offset: -2px;\n      outline-color: $mdlext-lightboard-focus-outline-color;\n    }\n    &[aria-selected='true'] {\n      background-color: $mdlext-lightboard-slide-active-bacground-color;\n\n      figcaption {\n        color: rgba(0, 0, 0, 1) !important;\n        background-color: rgba(255, 255, 255, 0.2);\n      }\n    }\n    &__frame,\n    &__ripple-container {\n      text-decoration: none;\n      display: block;\n      overflow: hidden;\n      position: absolute;\n      top: 0;\n      left: 0;\n      right: 0;\n      bottom: 0;\n\n      &:focus {\n        outline-offset: -2px;\n        outline-color: $mdlext-lightboard-focus-outline-color;\n      }\n      & .mdl-ripple {\n        background: $mdlext-lightboard-ripple-color;\n      }\n      figure {\n        display: block;\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n\n        img {\n          position: absolute;\n          top: 0;\n          left: 0;\n          right: 0;\n          bottom: 0;\n          margin: auto;\n          max-width: 100%;\n          max-height: 100%;\n          border-width: 0;\n          border-radius: $mdlext-lightboard-slide-inner-border-radius;\n        }\n        figcaption {\n          @include typo-caption($colorContrast: false, $usePreferred: true);\n\n          color: $mdlext-lightboard-figcaption-text-color;\n          position: absolute;\n          bottom: -2px;\n          white-space: nowrap;\n          overflow: hidden;\n          max-width: 100%;\n          width: 100%;\n          text-align: center;\n          text-overflow: ellipsis;\n          padding: 4px 0;\n        }\n      }\n      &:hover {\n        figcaption {\n          // As far as I can see there is no way to darken/lighten a text color\n          // defined by MDL, due to the \"unqote\" functions.\n          // So this is a hack\n          color: rgba(0, 0, 0, 1) !important;\n          background-color: rgba(255, 255, 255, 0.2);\n        }\n      }\n    }\n  }\n}\n\n////// Media / Element queries default, Small //////\n.mdlext-lightboard {\n  padding: calc((#{$mdlext-lightboard-small-margin} - #{$mdlext-lightboard-small-gutter}) / 2);\n\n  .mdlext-lightboard__slide {\n    margin: calc(#{$mdlext-lightboard-small-gutter} / 2);\n    width: calc(1 / #{$mdlext-lightboard-small-columns} * 100% - #{$mdlext-lightboard-small-gutter});\n\n    .mdlext-lightboard__slide__frame figure {\n      margin: $mdlext-lightboard-small-frame-width;\n    }\n  }\n  &.mdlext-lightboard--no-spacing {\n    padding: 0;\n\n    .mdlext-lightboard__slide {\n      margin: 0;\n      width: calc(1 / #{$mdlext-lightboard-small-columns} * 100%);\n    }\n  }\n}\n\n// Import one of _lightboard-media-queries.scss or _lightboard-eq-js.scss to complete SASS\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/lightboard/_lightboard.scss","@charset \"UTF-8\";\n\n//////////////////////////////\n//\n// Lightboard media queries\n//\n//////////////////////////////\n@import \"../variables\";\n\n////////// Small /////////////\n//@media (max-width: $mdlext-lightboard-medium-small-breakpoint - 1) {\n//  // This is the default, see: _lightboard.scss\n//}\n\n////////// Medium small //////////\n/* stylelint-disable */\n@media (min-width: $mdlext-lightboard-medium-small-breakpoint) and (max-width: $mdlext-lightboard-medium-breakpoint - 1) { /* stylelint-enable */\n  .mdlext-lightboard {\n    padding: calc((#{$mdlext-lightboard-medium-small-margin} - #{$mdlext-lightboard-medium-small-gutter}) / 2);\n\n    .mdlext-lightboard__slide {\n      margin: calc(#{$mdlext-lightboard-medium-small-gutter} / 2);\n      width: calc(1 / #{$mdlext-lightboard-medium-small-columns} * 100% - #{$mdlext-lightboard-medium-small-gutter});\n\n      .mdlext-lightboard__slide__frame figure {\n        margin: $mdlext-lightboard-medium-small-frame-width;\n      }\n    }\n    &.mdlext-lightboard--no-spacing {\n      padding: 0;\n\n      .mdlext-lightboard__slide {\n        margin: 0;\n        width: calc(1 / #{$mdlext-lightboard-medium-small-columns} * 100%);\n      }\n    }\n  }\n}\n\n////////// Medium //////////\n/* stylelint-disable */\n@media (min-width: $mdlext-lightboard-medium-breakpoint) and (max-width: $mdlext-lightboard-medium-large-breakpoint - 1) { /* stylelint-enable */\n  .mdlext-lightboard {\n    padding: calc((#{$mdlext-lightboard-medium-margin} - #{$mdlext-lightboard-medium-gutter}) / 2);\n\n    .mdlext-lightboard__slide {\n      margin: calc(#{$mdlext-lightboard-medium-gutter} / 2);\n      width: calc(1 / #{$mdlext-lightboard-medium-columns} * 100% - #{$mdlext-lightboard-medium-gutter});\n\n      .mdlext-lightboard__slide__frame figure {\n        margin: $mdlext-lightboard-medium-frame-width;\n      }\n    }\n    &.mdlext-lightboard--no-spacing {\n      padding: 0;\n\n      .mdlext-lightboard__slide {\n        margin: 0;\n        width: calc(1 / #{$mdlext-lightboard-medium-columns} * 100%);\n      }\n    }\n  }\n}\n\n////////// Medium large //////////\n/* stylelint-disable */\n@media (min-width: $mdlext-lightboard-medium-large-breakpoint)  and (max-width: $mdlext-lightboard-large-breakpoint - 1) { /* stylelint-enable */\n  .mdlext-lightboard {\n    padding: calc((#{$mdlext-lightboard-medium-large-margin} - #{$mdlext-lightboard-medium-large-gutter}) / 2);\n\n    .mdlext-lightboard__slide {\n      margin: calc(#{$mdlext-lightboard-medium-large-gutter} / 2);\n      width: calc(1 / #{$mdlext-lightboard-medium-large-columns} * 100% - #{$mdlext-lightboard-medium-large-gutter});\n\n      .mdlext-lightboard__slide__frame figure {\n        margin: $mdlext-lightboard-medium-large-frame-width;\n      }\n    }\n    &.mdlext-lightboard--no-spacing {\n      padding: 0;\n\n      .mdlext-lightboard__slide {\n        margin: 0;\n        width: calc(1 / #{$mdlext-lightboard-medium-large-columns} * 100%);\n      }\n    }\n  }\n}\n\n////////// Large //////////\n@media (min-width: $mdlext-lightboard-large-breakpoint) {\n  .mdlext-lightboard {\n    padding: calc((#{$mdlext-lightboard-large-margin} - #{$mdlext-lightboard-large-gutter}) / 2);\n\n    .mdlext-lightboard__slide {\n      margin: calc(#{$mdlext-lightboard-large-gutter} / 2);\n      width: calc(1 / #{$mdlext-lightboard-large-columns} * 100% - #{$mdlext-lightboard-large-gutter});\n\n      .mdlext-lightboard__slide__frame figure {\n        margin: $mdlext-lightboard-large-frame-width;\n      }\n    }\n    &.mdlext-lightboard--no-spacing {\n      padding: 0;\n\n      .mdlext-lightboard__slide {\n        margin: 0;\n        width: calc(1 / #{$mdlext-lightboard-large-columns} * 100%);\n      }\n    }\n  }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/lightboard/_lightboard-media-queries.scss","@charset \"UTF-8\";\n\n/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n@import \"../variables\";\n\n.mdlext-lightbox {\n  user-select: none;\n  cursor: default;\n  position: relative;\n  width: auto;\n  max-width: 100%;\n  margin: 0 auto;\n  border: $mdlext-lightbox-border;\n  border-radius: $mdlext-lightbox-border-radius;\n  background-color: $mdlext-lightbox-background-color;\n  box-sizing: border-box;\n  outline: 0;\n  display: block; // display: flex and IE11 has issues with reposition. Set display:block for now.\n\n  *,\n  *::before,\n  *::after,\n  input[type=\"search\"] {\n    box-sizing: border-box;\n  }\n\n  .mdlext-lightbox__slider {\n    // Displays prevvious, current and next image while dragging\n    // Elements are created by lightbox component when dragging starts\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: flex;\n    justify-content: center;\n\n    .mdlext-lightbox__slider__slide {\n      flex-shrink: 0;\n      display: block;\n      text-align: left;\n      color: #7f7f7f;\n      background-size: cover;\n      background-position: center;\n      background-repeat: no-repeat;\n\n      //&:nth-child(1),\n      //&:nth-child(3) {\n      //  filter: blur(1px);\n      //}\n    }\n  }\n\n  figure {\n    margin: $mdlext-lightbox-figure-margin;\n    padding: $mdlext-lightbox-figure-padding;\n    position: relative;\n\n    img {\n      width: 100%;\n      max-width: 100%;\n      height: auto;\n      border: 0;\n      outline: 0;\n    }\n    figcaption {\n      @include typo-caption($colorContrast: false, $usePreferred: true);\n\n      display: block;\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      max-width: 100%;\n      height: auto;\n      max-height: 50%;\n      overflow: auto;\n      padding: 8px;\n      background-color: $mdlext-lightbox-figcaption-background-color;\n      transform-origin: bottom;\n      transform: scaleY(0);\n      transition: 0.2s ease-in-out;\n\n      &.mdlext-lightbox__show-figcaption {\n        transform: scaleY(1);\n      }\n      tbody {\n        th {\n          text-align: left;\n        }\n        th,\n        td {\n          vertical-align: text-top;\n        }\n      }\n    }\n  }\n  .mdl-card__menu {\n    color: #ffffff;\n    z-index: 1;\n  }\n  footer {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    background-color: $mdlext-lightbox-footer-background-color;\n\n    .mdl-card__supporting-text {\n      flex: 1;\n      overflow: hidden;\n      padding: 0;\n      height: $card-supporting-text-line-height;\n      width: 100%;\n    }\n    nav {\n      display: flex;\n    }\n  }\n\n  &.mdlext-lightbox--sticky-footer footer {\n    position: fixed;\n    bottom: 0;\n    left: 0;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/lightbox/_lightbox.scss","@charset \"UTF-8\";\n\n/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * A carousel ...\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n\nul.mdlext-carousel {\n  list-style: none;\n}\n\n.mdlext-carousel {\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n  height: 100%;  // Use a container to constrain height and width\n  width: 100%;\n  display: block;\n  white-space: nowrap;\n  font-size: 0;\n  background-color: transparent;\n}\n\n.mdlext-carousel__slide {\n  box-sizing: border-box;\n  display: inline-block;\n  position: relative;\n  outline: 0;\n  margin: 0 $mdlext-carousel-slide-margin-horizontal;\n  padding:0;\n  height: 100%;\n  border-top: $mdlext-carousel-slide-border-top-width solid transparent; // Makes room for the animated select/focus line\n\n  //&:focus,\n  &[aria-selected],\n  &[aria-selected='true'] {\n    figcaption {\n      // As far as I can see there is no way to darken/lighten a text color\n      // defined by MDL, due to the \"unqote\" functions.\n      // So this is a hack\n      color: rgba(0, 0, 0, 1) !important;\n      background-color: rgba(255, 255, 255, 0.25);\n    }\n  }\n\n  &[aria-selected]::after,\n  &[aria-selected='true']::after {\n    height: $mdlext-carousel-slide-border-top-width;\n    width: 100%;\n    display: block;\n    content: ' ';\n    top: (-$mdlext-carousel-slide-border-top-width);\n    left: 0;\n    position: absolute;\n    background: $mdlext-carousel-slide-border-top-color;\n    animation: border-expand 0.2s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards;\n    transition: all 1s cubic-bezier(0.4, 0.0, 1, 1);\n  }\n\n\n  a {\n    text-decoration: none;\n  }\n\n  figure {\n    box-sizing: border-box;\n    position: relative;\n    height: 100%;\n    margin: 0;\n    padding: 0;\n\n    img {\n      box-sizing: border-box;\n      max-height: 100%;\n    }\n\n    figcaption {\n      box-sizing: border-box;\n      @include typo-caption($colorContrast: false, $usePreferred: true);\n\n      color: $mdlext-carousel-slide-figcaption-color;\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      white-space: nowrap;\n      overflow: hidden;\n      max-width: 100%;\n      width: 100%;\n      text-align: center;\n      text-overflow: ellipsis;\n      padding: 4px 0;\n    }\n    &:hover {\n      figcaption {\n        // As far as I can see there is no way to darken/lighten a text color\n        // defined by MDL, due to the \"unqote\" functions.\n        // So this is a hack\n        color: rgba(0, 0, 0, 1) !important;\n        background-color: rgba(255, 255, 255, 0.25);\n      }\n    }\n  }\n\n  .mdlext-carousel__slide__ripple-container {\n    text-decoration: none;\n    display: block;\n    overflow: hidden;\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    outline: 0;\n\n    & .mdl-ripple {\n      background: $mdlext-carousel-slide-ripple-color;\n    }\n  }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/carousel/_carousel.scss","/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Copied/Modified/Inspired from/by:\n *   https://github.com/google/material-design-lite/tree/master/src/textfield\n *   http://red-team-design.com/making-html-dropdowns-not-suck/\n *   http://codepen.io/etcpe9/pen/PqyOye,\n *   http://codepen.io/pudgereyem/pen/PqBxQx\n *   https://github.com/MEYVN-digital/mdl-selectfield\n *   https://github.com/mebibou/mdl-selectfield\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n\n@import \"../mixins\";\n\n// The container for the selectfield.\n.mdlext-selectfield {\n  box-sizing: border-box;\n  position: relative;\n  font-size: $input-text-font-size;\n  display: inline-block;\n  width: 300px;\n  max-width: 100%;\n  margin: 0;\n  padding: $input-text-vertical-spacing 0;\n\n  // Align buttons, if used.\n  & .mdl-button {\n    bottom: $input-text-vertical-spacing;\n    position: absolute;\n  }\n\n  // Styling the down arrow\n  &::after {\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length);\n\n    position: absolute;\n    right: 0.5em;\n    top: 50%;\n    transform: translateY(-50%);\n    pointer-events: none;\n  }\n}\n\n.mdlext-selectfield.is-disabled {\n  &::after {\n    color: $input-text-disabled-color;\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $input-text-disabled-color);\n  }\n}\n\n// Optional class to align right.\n.mdlext-selectfield--align-right {\n  text-align: right;\n}\n\n// Optional class to display at full width.\n.mdlext-selectfield--full-width {\n  width: 100%;\n}\n\n// Optional class to make the select field expandable.\n.mdlext-selectfield--expandable {\n  min-height: $input-text-button-size;\n  min-width: $input-text-button-size;\n  width: auto;\n}\n\n// Styling for the select element.\n.mdlext-selectfield__select {\n\n  // Reset select\n  box-sizing: border-box;\n  border: 0;\n  border-radius: 0;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  -ms-appearance: none;\n  appearance: none;\n  text-indent: 0.01px; // Removes default arrow from firefox\n  text-overflow: '';   // Removes default arrow from firefox\n  outline: none;\n  box-shadow: none;\n  // End Reset select\n\n  font-size: $input-text-font-size;\n  font-family: $performance_font;\n  padding: $input-text-padding calc(1.2em + #{$input-text-padding}) $input-text-padding 0;\n  width: $input-text-width;\n  border-bottom: 1px solid $input-text-bottom-border-color;\n  display: block;\n  margin: 0;\n  background: none;\n  text-align: left;\n  color: inherit;\n\n  // Mozilla, remove focusring\n  &:-moz-focusring {\n    color: transparent;\n    text-shadow: 0 0 0 #000000;\n  }\n\n  // MS, remove selected option background color\n  &:focus::-ms-value {\n    background-color: inherit;\n    color: inherit;\n  }\n\n  &::-ms-expand {\n    display: none;\n  }\n\n  .mdlext-selectfield.is-focused & {\n    outline: none;\n  }\n\n  .mdlext-selectfield.is-invalid & {\n    border-color: $input-text-error-color;\n    box-shadow: none;\n  }\n\n  fieldset[disabled] .mdlext-selectfield &,\n  .mdlext-selectfield.is-disabled & {\n    border-bottom: 1px dotted $input-text-disabled-color;\n    color: $input-text-disabled-text-color;\n    background-color: transparent;\n  }\n\n  option {\n    color: $text-color-primary;\n    box-sizing: border-box;\n    background-color: inherit;\n  }\n}\n\n// Styling for the label / floating label.\n.mdlext-selectfield__label {\n  box-sizing: border-box;\n  color: $input-text-label-color;\n  font-size: $input-text-font-size;\n  top: ($input-text-padding + $input-text-vertical-spacing);\n  bottom: 0;\n  left: 0;\n  right: 0;\n  pointer-events: none;\n  position: absolute;\n  display: block;\n  width: 100%;\n  overflow: hidden;\n  white-space: nowrap;\n  text-align: left;\n\n  .mdlext-selectfield.is-dirty &,\n  .mdlext-selectfield.has-placeholder & {\n    visibility: hidden;\n  }\n\n  // Floating Label\n  .mdlext-selectfield--floating-label & {\n    @include material-animation-default();\n  }\n\n  .mdlext-selectfield--floating-label.has-placeholder & {\n    transition: none;\n  }\n\n  fieldset[disabled] .mdlext-selectfield &,\n  .mdlext-selectfield.is-disabled.is-disabled & {\n    color: $input-text-disabled-text-color;\n  }\n\n  .mdlext-selectfield--floating-label.is-focused &,\n  .mdlext-selectfield--floating-label.is-dirty.is-dirty &,\n  .mdlext-selectfield--floating-label.has-placeholder & {\n    color: $input-text-highlight-color;\n    font-size: $input-text-floating-label-fontsize;\n    top: $input-text-vertical-spacing - ($input-text-floating-label-fontsize + $input-text-padding);\n    visibility: visible;\n  }\n\n  .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__expandable-holder &,\n  .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__expandable-holder &,\n  .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__expandable-holder & {\n    top: -($input-text-floating-label-fontsize + $input-text-padding);\n  }\n\n  .mdlext-selectfield--floating-label.is-invalid & {\n    color: $input-text-error-color;\n    font-size: $input-text-floating-label-fontsize;\n  }\n\n  // The after label is the colored underline for the Selectfield.\n  &::after {\n    background-color: $input-text-highlight-color;\n    bottom: $input-text-vertical-spacing;\n    content: '';\n    height: 2px;\n    left: 45%;\n    position: absolute;\n    @include material-animation-default();\n\n    visibility: hidden;\n    width: 10px;\n  }\n\n  .mdlext-selectfield.is-focused &::after {\n    left: 0;\n    visibility: visible;\n    width: 100%;\n  }\n\n  .mdlext-selectfield.is-invalid &::after {\n    background-color: $input-text-error-color;\n  }\n}\n\n// SelectField Error.\n.mdlext-selectfield__error {\n  color: $input-text-error-color;\n  font-size: $input-text-floating-label-fontsize;\n  position: absolute;\n  margin-top: 3px;\n  visibility: hidden;\n  display: block;\n\n  .mdlext-selectfield.is-invalid & {\n    visibility: visible;\n  }\n}\n\n// Expandable Holder.\n.mdlext-selectfield__expandable-holder {\n  display: inline-block;\n  position: relative;\n  margin-left: $input-text-button-size;\n\n  @include material-animation-default();\n\n  // Safari (possibly others) need to be convinced that this field is actually\n  // visible, otherwise it cannot be tabbed to nor focused via a <label>.\n  // TODO: In some cases (Retina displays), this is big enough to render the\n  // inner element :(\n  max-width: 0.1px;\n\n  .mdlext-selectfield.is-focused &,\n  .mdlext-selectfield.is-dirty & {\n    // This is an unfortunate hack. Animating between widths in percent (%)\n    // in many browsers (Chrome, Firefox) only animates the inner visual style\n    // of the input - the outer bounding box still 'jumps'.\n    // Thus assume a sensible maximum, and animate to/from that value.\n    max-width: 600px;\n  }\n  .mdlext-selectfield__label::after {\n    bottom: 0;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/selectfield/_selectfield.scss","@charset \"UTF-8\";\n\n/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/* Moved to aria-expanded-toggle.scss\n\n.mdlext-aria-expanded-plus-minus {\n  @include mdlext-aria-expanded-toggle($font-family: inherit);\n}\n\n.mdlext-aria-expanded-more-less {\n  @include mdlext-aria-expanded-toggle($icon: 'expand_more', $icon-expanded: 'expand_less');\n}\n*/\n\n.mdlext-menu-button {\n  box-sizing: border-box;\n  @include typo-menu();\n  text-transform: none;\n  position: relative;\n  height: $button-height;\n  padding: 0 $button-padding;\n  display: flex;\n  align-items: center;\n  align-self: stretch;\n\n  > * {\n    margin: 0;\n    padding: 0 0 0 8px;\n  }\n\n  > *:first-child {\n    padding-left: 0;\n  }\n\n  > *:last-child:not(:only-child):not(.mdlext-menu__item__caption) {\n    margin-left: auto; // If more than one element, push last element to the right\n  }\n\n}\n\n.mdlext-menu-button__caption {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  line-height: 1.2;\n}\n\n.mdlext-menu,\n.mdlext-menu__item {\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  display: flex;\n}\n\n.mdlext-menu {\n  position: absolute; //fixed;\n  background: $default-dropdown-bg-color;\n  z-index: 1000;\n  min-width: 124px;\n  border-radius: 2px;\n  @include shadow-3dp();\n  display: inline-flex;\n  flex-direction: column;\n  padding: 0;\n  overflow: hidden;\n  overflow-y: auto;\n\n  &:focus {\n    outline-offset: -1px;\n    outline-width: 1px;\n  }\n\n  &[hidden] {\n    @include mdlext-visually-hidden;\n    pointer-events: none;\n  }\n\n  &__item {\n    @include typo-body-1();\n    color: $default-item-text-color;\n    background-color: $default-dropdown-bg-color;\n    position: relative;\n    padding: 0 16px 0 24px;\n    align-items: center;\n    align-self: stretch;\n    text-decoration: none;\n    cursor: pointer;\n    white-space: nowrap;\n    user-select: none;\n    min-height: 40px;\n    overflow: hidden;\n\n    &[aria-selected='true'] {\n      background-color: $default-item-active-bg-color;\n    }\n\n    // checkmark\n    &[aria-selected='true']::before {\n      content:'\\2713';\n      position: absolute;\n      font-size: 1.4em;\n      left: 4px;\n      top: 50%;\n      transform: translateY(-50%);\n      pointer-events: none;\n    }\n\n    &:hover:not([disabled]) {\n      background-color: $default-item-hover-bg-color;\n    }\n\n    &:focus {\n      outline-offset: -2px;\n      outline-width: 1px;\n      outline-color: $default-item-outline-color;\n      background-color: $default-item-focus-bg-color;\n    }\n\n    &::-moz-focus-inner {\n      border: 0;\n    }\n\n    &[disabled] {\n      color: $disabled-item-text-color;\n      background-color: transparent;\n      cursor: auto;\n      pointer-events: none;\n\n      > * {\n        color: $disabled-item-text-color;\n      }\n    }\n\n    &__caption {\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n\n    > * {\n      margin: 0;\n      padding: 0 0 0 8px;\n    }\n\n    > *:first-child {\n      padding-left: 0;\n    }\n\n    > *:last-child:not(:only-child):not(.mdlext-menu__item__caption) {\n      margin-left: auto; // If more than one element, push last element to the right\n    }\n\n  }\n  &__item-separator {\n    margin: 0;\n    padding: 0;\n    border-bottom: 1px solid $default-item-divider-color;\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/menu-button/_menu-button.scss","/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * The bordered fields are based on / inspired by this CodePen: http://codepen.io/prajwal078/pen/LVJZXz?editors=010\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n\n@import \"../variables\";\n@import \"../functions\";\n\n\n// \"Theme\" for this styling\n.mdlext-bordered-fields {\n  box-sizing: border-box;\n\n  * {\n    box-sizing: border-box;\n  }\n\n  // Styling for textfield and selectfield.\n  .mdl-textfield,\n  .mdlext-selectfield {\n    padding: 0;\n    margin: $mdlext-bordered-field-vertical-spacing-top 0 $mdlext-bordered-field-vertical-spacing-bottom 0;\n\n    .mdl-textfield__input,\n    .mdlext-selectfield__select {\n      height: $mdlext-bordered-field-height;\n      background-color: $mdlext-bordered-field-background-color;\n      border: $mdlext-bordered-field-border-width solid $mdlext-bordered-field-border-color;\n      border-radius: $mdlext-bordered-field-border-radius;\n      padding: $mdlext-bordered-field-padding-top $mdlext-bordered-field-padding $mdlext-bordered-field-padding-bottom $mdlext-bordered-field-padding;\n      font-size: $mdlext-bordered-field-input-text-font-size;\n      font-weight: $mdlext-bordered-field-font-weight;\n      color: $mdlext-bordered-field-input-text-color;\n\n      &:disabled {\n        color: $mdlext-bordered-field-input-text-disabled-text-color;\n        background-color: $mdlext-bordered-field-disabled-background-color;\n        border-color: $mdlext-bordered-field-disabled-border-color;\n      }\n\n      // MDL can not handle required attribute properly. Planned for MDL-v2\n      //&:required {\n      //  background-color: $mdlext-bordered-field-required-background-color;\n      //  border-color: $mdlext-bordered-field-required-border-color;\n      //}\n\n      &:focus {\n        background-color: $mdlext-bordered-field-focus-background-color;\n        border-color: $mdlext-bordered-field-focus-border-color;\n      }\n\n      // MDL can not handle required. Planned for MDL-v2\n      //&:required:focus {\n      //  background-color: $mdlext-bordered-field-required-focus-background-color;\n      //  border-color: $mdlext-bordered-field-required-focus-border-color;\n      //}\n    }\n    .mdlext-selectfield__select {\n      padding-right: calc(1em + #{$mdlext-bordered-field-padding});  // space for down arrow\n    }\n\n    /*\n    &.is-dirty {\n      .mdl-textfield__input,\n      .mdlext-selectfield__select {\n      }\n    }\n    */\n\n    &.is-invalid {\n      .mdl-textfield__input,\n      .mdlext-selectfield__select {\n        color: $mdlext-bordered-field-input-text-error-color;\n        border-color: $mdlext-bordered-field-error-border-color;\n        background-color: $mdlext-bordered-field-error-background-color;\n\n        &:focus {\n          //&:required:focus {\n          border-color: $mdlext-bordered-field-error-focus-border-color;\n          background-color: $mdlext-bordered-field-error-focus-background-color;\n        }\n      }\n    }\n  }\n\n  .mdlext-selectfield::after {\n    top: auto;\n    bottom: $mdlext-bordered-field-padding-bottom;  // Position of down arrow\n  }\n\n  fieldset[disabled] .mdlext-selectfield::after,\n  .mdlext-selectfield.is-disabled::after {\n    color: $mdlext-bordered-field-input-text-disabled-text-color;\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-bordered-field-input-text-disabled-text-color);\n  }\n\n\n  fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {\n    color: $mdlext-bordered-field-input-text-disabled-text-color;\n    background-color: $mdlext-bordered-field-disabled-background-color;\n    border-color: $mdlext-bordered-field-disabled-border-color;\n  }\n\n\n  // Styling for the label / floating label.\n  .mdl-textfield,\n  .mdlext-selectfield {\n\n    &.is-dirty,\n    &.has-placeholder {\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        visibility: hidden;\n      }\n    }\n    .mdl-textfield__label,\n    .mdlext-selectfield__label {\n      color: $mdlext-bordered-field-input-text-label-color;\n      font-size: $mdlext-bordered-field-label-font-size;\n      font-weight: $mdlext-bordered-field-font-weight;\n      padding-left: $mdlext-bordered-field-padding;\n      top: auto;\n      bottom: $mdlext-bordered-field-padding-bottom;\n\n      // Hides the colored underline for the textField/selectfield.\n      &::after {\n        background-color: transparent !important;\n        visibility: hidden !important;\n      }\n    }\n    &.mdl-textfield--floating-label.is-focused.is-focused,\n    &.mdl-textfield--floating-label.is-dirty.is-dirty,\n    &.mdl-textfield--floating-label.has-placeholder,\n    &.mdlext-selectfield--floating-label.is-focused.is-focused,\n    &.mdlext-selectfield--floating-label.is-dirty.is-dirty,\n    &.mdlext-selectfield--floating-label.has-placeholder {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-bordered-field-input-text-label-focus-color;\n        font-size: $mdlext-bordered-field-floating-label-font-size;\n        font-weight: $mdlext-bordered-field-floating-label-font-weight;\n        top: auto;\n        bottom: $mdlext-bordered-field-floating-label-focus-bottom;\n        visibility: visible;\n      }\n    }\n    &.mdl-textfield--floating-label.is-disabled.is-disabled,\n    &.mdlext-selectfield--floating-label.is-disabled.is-disabled {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-bordered-field-input-text-label-disabled-color;\n      }\n    }\n    &.mdl-textfield--floating-label.is-invalid.is-invalid,\n    &.mdlext-selectfield--floating-label.is-invalid.is-invalid {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-bordered-field-input-text-label-error-color;\n      }\n    }\n  }\n\n  fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n  fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {\n    color: $mdlext-bordered-field-input-text-label-disabled-color;\n  }\n\n  // Icon(s) and/or button(s) inside textfield\n  .mdl-textfield,\n  .mdlext-selectfield {\n    &.mdlext-bordered-fields__icon-left,\n    &.mdlext-bordered-fields__icon-right {\n      & > i,\n      & > .mdl-button {\n        position: absolute;\n        bottom: $mdlext-bordered-field-padding-bottom - 2px;\n      }\n      & > i {\n        bottom: $mdlext-bordered-field-padding-bottom + 2px;\n      }\n    }\n    &.mdlext-bordered-fields__icon-left {\n      & > i:first-child,\n      & > .mdl-button:first-child {\n        left: $mdlext-bordered-field-padding/2;\n      }\n      & > i ~ .mdl-textfield__input,\n      & > .mdl-button ~ .mdl-textfield__input,\n      & > i ~ .mdlext-selectfield__select,\n      & > .mdl-button ~ .mdlext-selectfield__select {\n        padding-left: $input-text-button-size;\n      }\n      & > i ~ .mdl-textfield__label,\n      & > .mdl-button ~ .mdl-textfield__label {\n        left: $input-text-button-size - $mdlext-bordered-field-padding;\n      }\n      & > i ~ .mdlext-selectfield__label,\n      & > .mdl-button ~ .mdlext-selectfield__label {\n        left: $input-text-button-size - $mdlext-bordered-field-padding;\n      }\n    }\n    &.mdlext-bordered-fields__icon-right {\n      & > .mdl-textfield__input {\n        padding-right: $input-text-button-size;\n      }\n      & > i:last-child,\n      & > .mdl-button:last-child {\n        left: auto;\n        right: $mdlext-bordered-field-padding/2;\n      }\n    }\n    &.is-disabled i,\n    &.is-disabled .mdl-button {\n      color: $mdlext-bordered-field-disabled-border-color;\n      pointer-events: none;\n    }\n  }\n\n  fieldset[disabled] .mdl-textfield,\n  fieldset[disabled] .mdlext-selectfield {\n    i,\n    .mdl-button {\n      color: $mdlext-bordered-field-disabled-border-color;\n      pointer-events: none;\n    }\n  }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/bordered-fields/_bordered-fields.scss","@charset \"UTF-8\";\n\n/**\n * @license\n * Copyright 2016-2017 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n.mdlext-collapsible {\n  box-sizing: border-box;\n  cursor: pointer;\n}\n\n.mdlext-collapsible-group,\n.mdlext-collapsible-region {\n  box-sizing: border-box;\n\n  &[hidden] {\n    @include mdlext-visually-hidden;\n    pointer-events: none;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/collapsible/_collapsible.scss","@charset \"UTF-8\";\n\n/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n.mdlext-aria-toggle-plus-minus {\n  @include mdlext-aria-expanded-toggle($font-family: inherit, $font-size: 1.4em);\n}\n\n.mdlext-aria-toggle-material-icons {\n  @include mdlext-aria-expanded-toggle($font-size: 1.3em, $icon: 'expand_more', $icon-expanded: 'expand_less', $icon-offset: -$mdlext-accordion-header-padding);\n}\n\n.mdlext-accordion {\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  display: flex;\n\n  * {\n    box-sizing: border-box;\n  }\n\n  &__panel {\n    box-sizing: border-box;\n    position: relative;\n    overflow: hidden;\n    display: flex;\n    flex-wrap: nowrap;\n  }\n\n  &__tab {\n    @include typo-title();\n\n    font-weight: 400;\n    line-height: 1.1;\n    box-sizing: border-box;\n    position: relative;\n    margin: 0;\n    padding: 0; // $mdlext-accordion-header-padding;\n    min-width: $mdlext-accordion-header-height;\n    min-height: $mdlext-accordion-header-height;\n    display: flex;\n    align-items: center;\n    align-self: stretch;\n    user-select: none;\n    color: $mdlext-accordion-header-secondary-color;\n    background-color: $mdlext-accordion-header-background-color;\n    cursor: pointer;\n    overflow: hidden;\n\n    &:focus {\n      outline-offset: -2px;\n      outline-color: $mdlext-accordion-header-focus-outline-color;\n      outline-width: 2px;\n    }\n\n    &[aria-expanded='true'] {\n      background-color: $mdlext-accordion-header-background-open-color;\n    }\n\n    &[aria-selected='true'] {\n      background-color: $mdlext-accordion-header-background-active-color;\n    }\n\n    &[disabled] {\n      background-color: $mdlext-accordion-header-disabled-color;\n      color: $mdlext-accordion-header-secondary-color-disabled;\n      pointer-events: none;\n\n      > * {\n        color: $mdlext-accordion-header-secondary-color-disabled;\n      }\n    }\n\n    &:hover:not([disabled]) {\n      background-color: $mdlext-accordion-header-background-hover-color;\n    }\n\n    > * {\n      margin: 0;\n      padding: 0;\n    }\n\n    &__caption {\n      padding-left: $mdlext-accordion-header-padding;\n      padding-right: $mdlext-accordion-header-padding;\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n\n    > *:first-child {\n      padding-left: 0;\n    }\n\n    &--ripple {\n      &[aria-selected='true']::before {\n        content: '';\n        position: absolute;\n        top: 50%;\n        left: 50%;\n        background: $mdlext-accordion-ripple-color;\n        opacity: 0;\n        border-radius: 100%;\n        transform: scale(1, 1) translate(-50%);\n        transform-origin: 50% 50%;\n      }\n      &[aria-selected='true']:focus:not(:active)::before {\n        // http://easings.net/\n        animation: mdlext-accordion-tab-ripple 1s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards; // cubic-bezier(0.4, 0.0, 1, 1); //cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards; //ease-out;\n      }\n    }\n  }\n\n  &__tabpanel {\n    box-sizing: border-box;\n    margin: 0;\n    padding: 0 $mdlext-accordion-content-padding;\n    color: $mdlext-accordion-content-color;\n    background-color: $mdlext-accordion-content-background-color;\n    display: block;\n    overflow: auto;\n    flex-grow: 1;\n\n    &[hidden] {\n      @include mdlext-visually-hidden;\n    }\n  }\n}\n\n// Vertical layout\n.mdlext-accordion {\n\n  &--vertical {\n    flex-direction: column;\n    flex-wrap: nowrap;\n\n    .mdlext-accordion__panel {\n      min-height: $mdlext-accordion-header-height;\n      flex-direction: column;\n    }\n\n    .mdlext-accordion__tab {\n      height: $mdlext-accordion-header-height;\n      border-top: 1px solid $mdlext-accordion-header-border-color;\n      padding-left: $mdlext-accordion-header-padding;\n      padding-right: $mdlext-accordion-header-padding;\n\n      &[aria-selected='true']::after {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        height: 1px;\n        width: 100%;\n        display: block;\n        content: \" \";\n        background-color: $mdlext-accordion-header-highlight-color;\n        animation: border-expand 0.2s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards;\n        transition: all 1s cubic-bezier(0.4, 0.0, 1, 1);\n      }\n\n      > * {\n        padding-left: $mdlext-accordion-header-padding;\n      }\n\n      > *:first-child {\n        padding-left: 0;\n      }\n\n      > *:last-child:not(:only-child):not(.mdlext-accordion__tab__caption) {\n        margin-left: auto; // If more than one element, push last element to the right\n      }\n\n      &--ripple {\n        &[aria-selected='true']::before {\n          width: 5%;\n          height: 10%;\n        }\n      }\n\n    }\n\n    .mdlext-accordion__tabpanel {\n      border-top: 1px solid $mdlext-accordion-header-border-color;\n\n      &--animation {\n        transform: scaleY(1);\n        animation: mdlext-accordion-show-tabpanel-y 0.2s ease-in-out;\n\n        &[hidden] {\n          transform: scaleY(0);\n          animation: mdlext-accordion-hide-tabpanel-y 0.2s ease-out;\n          animation-delay: 0.1s;\n        }\n      }\n    }\n  }\n}\n\n// Horizontal layout\n.mdlext-accordion {\n\n  &--horizontal {\n\n    .mdlext-accordion__panel {\n      min-width: $mdlext-accordion-header-height;\n      width: $mdlext-accordion-header-height;\n    }\n\n    &[aria-multiselectable='true'] .mdlext-accordion__panel.is-expanded {\n      width: 100%;\n    }\n\n    .mdlext-accordion__tab {\n      flex-direction: column-reverse;\n      width: $mdlext-accordion-header-height;\n      white-space: nowrap;\n      border-left: 1px solid $mdlext-accordion-header-border-color;\n\n      &[aria-selected='true']::after {\n        position: absolute;\n        top: 0;\n        right: 0;\n        height: 100%;\n        width: 1px;\n        display: block;\n        content: \" \";\n        background-color: $mdlext-accordion-header-highlight-color;\n\n        // Figure out how to animate a vertical line\n        //animation: border-expand 0.2s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards;\n        //transition: all 1s cubic-bezier(0.4, 0.0, 1, 1);\n      }\n\n      > * {\n        //transform: rotate(-90deg) translateX(50%);\n        transform: rotate(-90deg) translateX($mdlext-accordion-header-padding);\n      }\n\n      > *:last-child:not(:only-child):not(.mdlext-accordion__tab__caption) {\n        // If more than one element, push last element to top\n        margin-bottom: auto;\n        transform: rotate(-90deg) translateX(0);\n      }\n\n      &__caption {\n        transform: rotate(-90deg) translateX(50%);\n        padding-right: $mdlext-accordion-header-padding + 8px;\n      }\n\n      &--ripple {\n        &[aria-selected='true']::before {\n          width: 10%;\n          height: 5%;\n        }\n      }\n    }\n\n    .mdlext-accordion__tabpanel {\n      border-left: 1px solid $mdlext-accordion-header-border-color;\n\n      &--animation {\n        transform: scaleX(1);\n        animation: mdlext-accordion-show-tabpanel-x 0.2s ease-in-out;\n\n        &[hidden] {\n          transform: scaleX(0);\n          animation: mdlext-accordion-hide-tabpanel-x 0.2s ease-out;\n        }\n      }\n    }\n  }\n}\n\n.mdlext-accordion {\n\n  &__panel:first-child > &__tab {\n    // Use container to set outer borders\n    border-top-color: transparent;\n    border-left-color: transparent;\n  }\n\n  &[aria-multiselectable=\"false\"] {\n    .mdlext-accordion__panel.is-expanded {\n      flex-grow: 1;\n    }\n  }\n}\n\n// Making accordion appear disabled.\n// Note: does not prevent tabbing into a disabled accordion\n.mdlext-accordion[disabled] {\n  * {\n    pointer-events: none;\n  }\n  .mdlext-accordion__tab {\n    background-color: $mdlext-accordion-header-disabled-color;\n    color: $mdlext-accordion-header-secondary-color-disabled;\n\n    > * {\n      color: $mdlext-accordion-header-secondary-color-disabled;\n    }\n  }\n  .mdlext-accordion__tabpanel {\n    opacity: 0.8;\n    filter: blur(1px) grayscale(80%);\n  }\n}\n\n\n@keyframes mdlext-accordion-tab-ripple {\n  0% {\n    transform: scale(0, 0);\n    opacity: 1;\n  }\n  20% {\n    transform: scale(25, 25);\n    opacity: 1;\n  }\n  100% {\n    opacity: 0;\n    transform: scale(40, 40);\n  }\n}\n\n/*\n@keyframes mdlext-accordion-show-tabpanel-y {\n  0% { transform: scaleY(0.1); }\n  40% { transform: scaleY(1.03); }\n  60% { transform: scaleY(0.98); }\n  80% { transform: scaleY(1.03); }\n  100% { transform: scaleY(0.98); }\n  80% { transform: scaleY(1.01); }\n  100% { transform: scaleY(1); }\n}\n*/\n\n@keyframes mdlext-accordion-show-tabpanel-y {\n  0% { transform: scaleY(0); }\n  60% { transform: scaleY(1.01); }\n  80% { transform: scaleY(0.98); }\n  100% { transform: scaleY(1); }\n}\n\n@keyframes mdlext-accordion-hide-tabpanel-y {\n  0% { transform: scaleY(1); }\n  60% { transform: scaleY(0.98); }\n  80% { transform: scaleY(1.01); }\n  100% { transform: scaleY(0); }\n}\n\n/*\n@keyframes mdlext-accordion-show-tabpanel-x {\n  0% { transform: scaleX(0.1); }\n  40% { transform: scaleX(1.03); }\n  60% { transform: scaleX(0.98); }\n  80% { transform: scaleX(1.03); }\n  100% { transform: scaleX(0.98); }\n  80% { transform: scaleX(1.01); }\n  100% { transform: scaleX(1); }\n}\n*/\n\n@keyframes mdlext-accordion-show-tabpanel-x {\n  0% { transform: scaleX(0); }\n  60% { transform: scaleX(1.01); }\n  80% { transform: scaleX(0.98); }\n  100% { transform: scaleX(1); }\n}\n\n@keyframes mdlext-accordion-hide-tabpanel-x {\n  0% { transform: scaleX(1); }\n  60% { transform: scaleX(0.98); }\n  80% { transform: scaleX(1.01); }\n  100% { transform: scaleX(0); }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/accordion/_accordion.scss","/* -------------------------------------------------------------\n   Palette samples. Not part of build\n----------------------------------------------------------------\n\n$mdlext-light-color-primary:          #9E9E9E !default;\n$mdlext-light-color-primary-dark:     #616161 !default;\n$mdlext-light-color-primary-light:    #9E9E9E !default;  // Fallback color. Set to color-primary if fallback is not needed\n$mdlext-light-color-primary-contrast: #212121 !default;  // text color on primary/primary dark background\n$mdlext-light-color-accent:           #E040FB !default;\n$mdlext-light-color-accent-light:     #E040FB !default;  // Fallback color. Set to color-accent if fallback is not needed\n$mdlext-light-color-accent-contrast:  #FAFAFA !default;\n\n$mdlext-light-color-primary:          #F5F5F5 !default;\n$mdlext-light-color-primary-dark:     #E0E0E0 !default;\n$mdlext-light-color-primary-light:    #8BC34A !default;  // Fallback color. Set to color-primary if fallback is not needed\n$mdlext-light-color-primary-contrast: #000000 !default;  // text color on primary/primary dark background\n$mdlext-light-color-accent:           #FFC107 !default;\n$mdlext-light-color-accent-light:     #FFC107 !default;  // Fallback color. Set to color-accent if fallback is not needed\n$mdlext-light-color-accent-contrast:  #FFFFFF !default;\n\n\n$mdlext-light-color-primary:          #673AB7 !default;\n$mdlext-light-color-primary-dark:     #512DA8 !default;\n$mdlext-light-color-primary-light:    #673AB7 !default;   // Fallback color. Set to color-primary if fallback is not needed\n$mdlext-light-color-primary-contrast: #D1C4E9 !default;   // text color on primary/primary dark background\n$mdlext-light-color-accent:           #4CAF50 !default;\n$mdlext-light-color-accent-light:     #4CAF50 !default;   // Fallback color. Set to color-accent if fallback is not needed\n$mdlext-light-color-accent-contrast:  #FFFFFF !default;\n\n\n$mdlext-light-color-primary:          #4CAF50 !default;\n$mdlext-light-color-primary-dark:     #388E3C !default;\n$mdlext-light-color-primary-light:    #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed\n$mdlext-light-color-primary-contrast: #C8E6C9 !default;  // text color on primary/primary dark background\n$mdlext-light-color-accent:           #FF5252 !default;\n$mdlext-light-color-accent-light:     #FF5252 !default;  // Fallback color. Set to color-accent if fallback is not needed\n$mdlext-light-color-accent-contrast:  #FFFFFF !default;\n\n\n$mdlext-light-color-primary:          #4CAF50 !default;\n$mdlext-light-color-primary-dark:     #388E3C !default;\n$mdlext-light-color-primary-light:    #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed\n$mdlext-light-color-primary-contrast: #C8E6C9 !default;  // text color on primary/primary dark background\n$mdlext-light-color-accent:           #03A9F4 !default;\n$mdlext-light-color-accent-light:     #03A9F4 !default;  // Fallback color. Set to color-accent if fallback is not needed\n$mdlext-light-color-accent-contrast:  #FFFFFF !default;\n\n\n$mdlext-dark-color-primary:           #212121 !default;\n$mdlext-dark-color-primary-dark:      #000000 !default;\n$mdlext-dark-color-primary-light:     #607D8B !default;  // Fallback color. Set to color-primary if fallback is not needed\n$mdlext-dark-color-primary-contrast:  #FFFFFF !default;  // text color on primary/primary dark background\n$mdlext-dark-color-accent:            #FF5722 !default;\n$mdlext-dark-color-accent-light:      #FF5722 !default;  // Fallback color. Set to color-accent if fallback is not needed\n$mdlext-dark-color-accent-contrast:   #FFFFFF !default;\n\n*/\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/color-themes/_color-themes.scss","@import \"color-themes\";\n\n.mdlext-light-color-theme {\n  background-color: $mdlext-light-content-background-color;\n  color: $mdlext-light-text-color-primary;\n\n  a {\n    outline-color: inherit;\n  }\n}\n\n// mdl/src/palette/_palette.scss\n// -----------------------------\n.mdlext-light-color-theme {\n\n  .mdl-color--primary {\n    background-color: $mdlext-light-color-primary !important;\n  }\n\n  .mdl-color--primary-contrast {\n    background-color: $mdlext-light-color-primary-contrast !important;\n  }\n\n  .mdl-color--primary-dark {\n    background-color: $mdlext-light-color-primary-dark !important;\n  }\n\n  .mdl-color--accent {\n    background-color: $mdlext-light-color-accent !important;\n  }\n\n  .mdl-color--accent-contrast {\n    background-color: $mdlext-light-color-accent-contrast !important;\n  }\n\n  .mdl-color-text--primary {\n    color: $mdlext-light-color-primary !important;\n  }\n\n  .mdl-color-text--primary-contrast {\n    color: $mdlext-light-color-primary-contrast !important;\n  }\n\n  .mdl-color-text--primary-dark {\n    color: $mdlext-light-color-primary-dark !important;\n  }\n\n  .mdl-color-text--accent {\n    color: $mdlext-light-color-accent !important;\n  }\n\n  .mdl-color-text--accent-contrast {\n    color: $mdlext-light-color-accent-contrast !important;\n  }\n\n}\n\n// mdl/src/typography/_typography.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n  a {\n    color: $mdlext-light-text-link-color;\n  }\n}\n\n\n// mdl/src/badge/_badge.scss\n// ---------------------------\n.mdlext-light-color-theme {\n  .mdl-badge {\n\n    &[data-badge]::after {\n      background: $mdlext-light-badge-background;\n      color: $mdlext-light-badge-color;\n    }\n\n    &.mdl-badge--no-background {\n      &[data-badge]::after {\n        color: $mdlext-light-badge-color-inverse;\n        background: $mdlext-light-badge-background-inverse;\n      }\n    }\n  }\n}\n\n\n// mdl/src/button/_button.scss\n// ---------------------------\n.mdlext-light-color-theme {\n\n  .mdl-button {\n    background: transparent;\n    color: $mdlext-light-button-secondary-color;\n\n    &:hover {\n      background-color: $mdlext-light-button-hover-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-light-button-focus-color;\n    }\n\n    &:active {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      color: $mdlext-light-button-primary-color-alt;\n\n      &:focus:not(:active) {\n        background-color: $mdlext-light-button-focus-color-alt;\n      }\n    }\n  }\n\n  // Raised buttons\n  .mdl-button--raised {\n    background: $mdlext-light-button-primary-color;\n\n    &:active {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $mdlext-light-button-primary-color-alt;\n      color: $mdlext-light-button-secondary-color-alt;\n\n      &:hover {\n        background-color: $mdlext-light-button-hover-color-alt;\n      }\n\n      &:active {\n        background-color: $mdlext-light-button-active-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $mdlext-light-button-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $mdlext-light-button-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // FABs\n  .mdl-button--fab {\n    background: $mdlext-light-button-primary-color;\n\n    &:active {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $mdlext-light-button-fab-color-alt;\n      color: $mdlext-light-button-fab-text-color-alt;\n\n      &:hover {\n        background-color: $mdlext-light-button-fab-hover-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $mdlext-light-button-fab-active-color-alt;\n      }\n\n      &:active {\n        background-color: $mdlext-light-button-fab-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $mdlext-light-button-fab-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // Icon buttons\n  .mdl-button--icon {\n    color: inherit;\n  }\n\n  // Colorized buttons\n\n  .mdl-button--primary.mdl-button--primary {\n    color: $mdlext-light-button-primary-color-alt;\n\n    & .mdl-ripple {\n      background: $mdlext-light-button-secondary-color-alt;\n    }\n    &.mdl-button--raised,\n    &.mdl-button--fab {\n      color: $mdlext-light-button-secondary-color-alt;\n      background-color: $mdlext-light-button-primary-color-alt;\n    }\n  }\n\n  .mdl-button--accent.mdl-button--accent {\n    color: $mdlext-light-button-fab-color-alt;\n\n    & .mdl-ripple {\n      background: $mdlext-light-button-fab-text-color-alt;\n    }\n    &.mdl-button--raised,\n    &.mdl-button--fab {\n      color: $mdlext-light-button-fab-text-color-alt;\n      background-color: $mdlext-light-button-fab-color-alt;\n    }\n  }\n\n  // Disabled buttons\n\n  .mdl-button {\n    // Bump up specificity by using [disabled] twice.\n    &[disabled][disabled],\n    &.mdl-button--disabled.mdl-button--disabled {\n      color: $mdlext-light-button-secondary-color-disabled;\n      background-color: transparent;\n    }\n\n    &--fab {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        background-color: $mdlext-light-button-primary-color-disabled;\n        color: $mdlext-light-button-secondary-color-disabled;\n      }\n    }\n\n    &--raised {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        background-color: $mdlext-light-button-primary-color-disabled;\n        color: $mdlext-light-button-secondary-color-disabled;\n      }\n    }\n    &--colored {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        color: $mdlext-light-button-secondary-color-disabled;\n      }\n    }\n  }\n}\n\n// mdl/src/slider/_slider.scss\n// ---------------------------\n.mdlext-light-color-theme {\n  .mdl-slider {\n\n    &.is-upgraded {\n      background: transparent;\n      color: $mdlext-light-range-color;\n\n      &::-webkit-slider-runnable-track {\n        background: transparent;\n      }\n\n      &::-moz-range-track {\n        background: transparent;\n      }\n\n      &::-ms-track {\n        background: none;\n        color: transparent;\n      }\n\n      /* stylelint-disable */\n      &::-ms-fill-lower {\n        background: linear-gradient(to right,\n          transparent,\n          transparent 16px,\n          $mdlext-light-range-color 16px,\n          $mdlext-light-range-color 0);\n      }\n\n      &::-ms-fill-upper {\n        background: linear-gradient(to left,\n          transparent,\n          transparent 16px,\n          $mdlext-light-range-bg-color 16px,\n          $mdlext-light-range-bg-color 0);\n      }\n      /* stylelint-enable */\n\n\n      /**************************** Thumbs ****************************/\n      &::-webkit-slider-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      &::-moz-range-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      &:focus:not(:active)::-webkit-slider-thumb {\n        box-shadow: 0 0 0 10px $mdlext-light-range-faded-color;\n      }\n\n      &:focus:not(:active)::-moz-range-thumb {\n        box-shadow: 0 0 0 10px $mdlext-light-range-faded-color;\n      }\n\n      &:active::-webkit-slider-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      &:active::-moz-range-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      &::-ms-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      /* stylelint-disable */\n      &:focus:not(:active)::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          $mdlext-light-range-color 0%,\n          $mdlext-light-range-color 37.5%,\n          $mdlext-light-range-faded-color 37.5%,\n          $mdlext-light-range-faded-color 100%);\n      }\n      /* stylelint-enable */\n\n      &:active::-ms-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n\n      /**************************** 0-value ****************************/\n\n      &.is-lowest-value::-webkit-slider-thumb {\n        border-color: $mdlext-light-range-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value::-moz-range-thumb {\n        border-color: $mdlext-light-range-bg-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {\n        box-shadow: 0 0 0 10px $mdlext-light-range-bg-focus-color;\n        background: $mdlext-light-range-bg-focus-color;\n      }\n\n      &.is-lowest-value:focus:not(:active)::-moz-range-thumb {\n        box-shadow: 0 0 0 10px $mdlext-light-range-bg-focus-color;\n        background: $mdlext-light-range-bg-focus-color;\n      }\n\n      &.is-lowest-value:active::-webkit-slider-thumb {\n        border-color: $mdlext-light-range-bg-color;\n      }\n\n      &.is-lowest-value:active::-moz-range-thumb {\n        border-color: $mdlext-light-range-bg-color;\n      }\n\n      /* stylelint-disable */\n      &.is-lowest-value::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 66.67%,\n          $mdlext-light-range-bg-color 66.67%,\n          $mdlext-light-range-bg-color 100%);\n      }\n\n      &.is-lowest-value:focus:not(:active)::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          $mdlext-light-range-bg-focus-color 0%,\n          $mdlext-light-range-bg-focus-color 25%,\n          $mdlext-light-range-bg-color 25%,\n          $mdlext-light-range-bg-color 37.5%,\n          $mdlext-light-range-bg-focus-color 37.5%,\n          $mdlext-light-range-bg-focus-color 100%);\n      }\n\n      &.is-lowest-value:active::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 77.78%,\n          $mdlext-light-range-bg-color 77.78%,\n          $mdlext-light-range-bg-color 100%);\n      }\n      /* stylelint-enable */\n\n      &.is-lowest-value::-ms-fill-lower {\n        background: transparent;\n      }\n\n      /**************************** Disabled ****************************/\n\n      &:disabled:focus::-webkit-slider-thumb,\n      &:disabled:active::-webkit-slider-thumb,\n      &:disabled::-webkit-slider-thumb {\n        background: $mdlext-light-range-bg-color;\n      }\n\n      &:disabled:focus::-moz-range-thumb,\n      &:disabled:active::-moz-range-thumb,\n      &:disabled::-moz-range-thumb {\n        background: $mdlext-light-range-bg-color;\n      }\n\n      &:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {\n        background-color: $mdlext-light-range-bg-color;\n      }\n\n      &.is-lowest-value:disabled:focus::-webkit-slider-thumb,\n      &.is-lowest-value:disabled:active::-webkit-slider-thumb,\n      &.is-lowest-value:disabled::-webkit-slider-thumb {\n        border-color: $mdlext-light-range-bg-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value:disabled:focus::-moz-range-thumb,\n      &.is-lowest-value:disabled:active::-moz-range-thumb,\n      &.is-lowest-value:disabled::-moz-range-thumb {\n        border-color: $mdlext-light-range-bg-color;\n        background: transparent;\n      }\n\n      &:disabled:focus::-ms-thumb,\n      &:disabled:active::-ms-thumb,\n      &:disabled::-ms-thumb {\n        background: $mdlext-light-range-bg-color;\n      }\n\n      /* stylelint-disable */\n      &.is-lowest-value:disabled:focus::-ms-thumb,\n      &.is-lowest-value:disabled:active::-ms-thumb,\n      &.is-lowest-value:disabled::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 50%,\n          $mdlext-light-range-bg-color 50%,\n          $mdlext-light-range-bg-color 100%);\n      }\n\n      &:disabled::-ms-fill-lower {\n        background: linear-gradient(to right,\n          transparent,\n          transparent 25px,\n          $mdlext-light-range-bg-color 25px,\n          $mdlext-light-range-bg-color 0);\n      }\n      /* stylelint-enable */\n\n    }\n  }\n\n  .mdl-slider__background-flex {\n    background: transparent;\n  }\n\n  .mdl-slider__background-lower {\n    background: $mdlext-light-range-color;\n  }\n\n  // This one styles the upper part of the slider track.\n  .mdl-slider__background-upper {\n    background: $mdlext-light-range-bg-color;\n  }\n}\n\n\n// mdl/src/textfield/_textfield.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-textfield__input {\n    border-bottom-color: $mdlext-light-input-text-bottom-border-color;\n  }\n  .mdl-textfield.is-invalid .mdl-textfield__input {\n    border-color: $mdlext-light-input-text-error-color;\n  }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n  .mdl-textfield.is-disabled .mdl-textfield__input {\n    background-color: transparent;\n    border-bottom-color: $mdlext-light-input-text-disabled-color;\n    color: $mdlext-light-input-text-disabled-text-color;\n  }\n  .mdl-textfield__label {\n    color: $mdlext-light-input-text-label-color;\n  }\n  .mdl-textfield__label::after {\n    background-color: $mdlext-light-input-text-highlight-color;\n  }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n  .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {\n    color: $mdlext-light-input-text-disabled-text-color;\n  }\n  .mdl-textfield--floating-label.is-focused .mdl-textfield__label,\n  .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,\n  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {\n    color: $mdlext-light-input-text-highlight-color;\n  }\n  .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {\n    color: $mdlext-light-input-text-error-color;\n  }\n  .mdl-textfield.is-invalid .mdl-textfield__label::after {\n    background-color: $mdlext-light-input-text-error-color;\n  }\n  .mdl-textfield__error {\n    color: $mdlext-light-input-text-error-color;\n  }\n}\n\n\n// mdl/src/checkbox/_checkbox.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-checkbox__box-outline {\n    border-color: $mdlext-light-checkbox-off-color;\n  }\n  .mdl-checkbox.is-checked .mdl-checkbox__box-outline {\n    border-color: $mdlext-light-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,\n  .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {\n    border-color: $mdlext-light-checkbox-disabled-color;\n  }\n\n  .mdl-checkbox__focus-helper {\n    background-color: transparent;\n  }\n  .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {\n    box-shadow: 0 0 0 ($checkbox-button-size / 2) $mdlext-light-checkbox-focus-color;\n    background-color: $mdlext-light-checkbox-focus-color;\n  }\n\n  .mdl-checkbox__tick-outline {\n    background: transparent;\n  }\n  .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {\n    background-color: $mdlext-light-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,\n  .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {\n    background-color: $mdlext-light-checkbox-disabled-color;\n  }\n\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,\n  .mdl-checkbox.is-disabled .mdl-checkbox__label {\n    color: $mdlext-light-checkbox-disabled-color;\n  }\n\n  .mdl-checkbox__ripple-container .mdl-ripple {\n    background: $mdlext-light-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,\n  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n\n}\n\n// mdl/src/radio/_radio.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n  .mdl-radio__outer-circle {\n    border-color: $mdlext-light-radio-off-color;\n  }\n  .mdl-radio.is-checked .mdl-radio__outer-circle {\n    border-color: $mdlext-light-radio-color;\n  }\n  .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,\n  .mdl-radio.is-disabled .mdl-radio__outer-circle {\n    border-color: $mdlext-light-radio-disabled-color;\n  }\n\n  .mdl-radio__inner-circle {\n    background: $mdlext-light-radio-color;\n  }\n  fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,\n  .mdl-radio.is-disabled .mdl-radio__inner-circle {\n    background: $mdlext-light-radio-disabled-color;\n  }\n\n  fieldset[disabled] .mdl-radio .mdl-radio__label,\n  .mdl-radio.is-disabled .mdl-radio__label {\n    color: $mdlext-light-radio-disabled-color;\n  }\n\n  .mdl-radio__ripple-container .mdl-ripple {\n    background: $mdlext-light-radio-color;\n  }\n  fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,\n  .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n// mdl/src/icon-togglr/_icon-toggle.scss\n// ---------------------------------------\n.mdlext-light-color-theme {\n  .mdl-icon-toggle__label {\n    color: $mdlext-light-icon-toggle-color;\n  }\n  .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {\n    color: $mdlext-light-icon-toggle-checked-color;\n  }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {\n    color: $mdlext-light-icon-toggle-disabled-color;\n  }\n  .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {\n    background-color: $mdlext-light-icon-toggle-focus-color;\n  }\n  .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {\n    background-color: $mdlext-light-icon-toggle-checked-focus-color;\n  }\n  .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: $mdlext-light-icon-toggle-color;\n  }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n\n// mdl/src/switch/_switch.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-switch__track {\n    background: $mdlext-light-switch-off-track-color;\n  }\n  .mdl-switch.is-checked .mdl-switch__track {\n    background: $mdlext-light-switch-track-color;\n  }\n  .mdl-switch__track fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__track {\n    background: $mdlext-light-switch-disabled-track-color;\n  }\n\n  .mdl-switch__thumb {\n    background: $mdlext-light-switch-off-thumb-color;\n  }\n  .mdl-switch.is-checked .mdl-switch__thumb {\n    background: $mdlext-light-switch-thumb-color;\n  }\n  .mdl-switch__thumb fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__thumb {\n    background: $mdlext-light-switch-disabled-thumb-color;\n  }\n\n  .mdl-switch__focus-helper {\n    background-color: transparent;\n  }\n  .mdl-switch.is-focused .mdl-switch__focus-helper {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n  .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {\n    box-shadow: 0 0 0 (($switch-ripple-size - $switch-helper-size) / 2) $mdlext-light-switch-faded-color;\n    background-color: $mdlext-light-switch-faded-color;\n  }\n\n  .mdl-switch__label fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__label {\n    color: $mdlext-light-switch-disabled-thumb-color;\n  }\n\n  .mdl-switch__ripple-container .mdl-ripple {\n    background: $mdlext-light-switch-color;\n  }\n  fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,\n  .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n\n// mdl/src/data-table/_data-table.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-data-table {\n    border-color: $mdlext-light-data-table-divider-color;\n    background-color: $mdlext-light-data-table-background-color;\n\n    tbody {\n      tr {\n        &.is-selected {\n          background-color: $mdlext-light-data-table-selection-color;\n        }\n        &:hover {\n          background-color: $mdlext-light-data-table-hover-color;\n        }\n      }\n    }\n    th {\n      color: $data-table-header-color;\n\n      &.mdl-data-table__header--sorted-ascending,\n      &.mdl-data-table__header--sorted-descending {\n        color: $mdlext-light-data-table-header-sorted-color;\n\n        &:hover {\n          &::before {\n            color: $mdlext-light-data-table-header-sorted-icon-hover-color;\n          }\n        }\n      }\n    }\n  }\n}\n\n\n// mdl/src/menu/_menu.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-menu__outline {\n    background: $mdlext-light-default-dropdown-bg-color;\n  }\n\n  .mdl-menu__item {\n    color: $mdlext-light-default-item-text-color;\n    background-color: transparent;\n    outline-color: $mdlext-light-default-item-outline-color;\n\n    &--full-bleed-divider {\n      border-bottom-color: $mdlext-light-default-item-divider-color;\n    }\n\n    &[disabled],\n    &[data-mdl-disabled] {\n      color: $mdlext-light-disabled-item-text-color;\n      background-color: transparent;\n\n      &:hover {\n        background-color: transparent;\n      }\n\n      &:focus {\n        background-color: transparent;\n      }\n\n      & .mdl-ripple {\n        background: transparent;\n      }\n    }\n\n    &:hover {\n      background-color: $mdlext-light-default-item-hover-bg-color;\n    }\n\n    &:focus {\n      background-color: $mdlext-light-default-item-focus-bg-color;\n    }\n\n    &:active {\n      background-color: $mdlext-light-default-item-active-bg-color;\n    }\n  }\n}\n\n\n// mdl/src/card/_card.scss\n// ----------------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-card {\n    background: $mdlext-light-card-background-color;\n  }\n\n  .mdl-card__media {\n    background-color: $mdlext-light-card-image-placeholder-color;\n  }\n\n  .mdl-card__title {\n    color: $mdlext-light-card-text-color;\n\n    &.mdl-card--border {\n      border-bottom-color: $mdlext-light-card-border-color;\n    }\n  }\n\n  .mdl-card__title-text {\n    color: inherit;\n  }\n\n  .mdl-card__subtitle-text {\n    color: $mdlext-light-card-subtitle-color;\n  }\n\n  .mdl-card__supporting-text {\n    color: $mdlext-light-card-supporting-text-text-color;\n  }\n\n  .mdl-card__actions {\n    background-color: rgba(0, 0, 0, 0);\n\n    &.mdl-card--border {\n      border-top-color: $mdlext-light-card-border-color;\n    }\n  }\n}\n\n\n// mdlext/src/selectfield/_selectfield.scss\n// ----------------------------------------\n.mdlext-light-color-theme {\n\n  .mdlext-selectfield.is-disabled::after {\n    color: $mdlext-light-input-text-disabled-color;\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-light-input-text-disabled-color);\n  }\n\n  .mdlext-selectfield__select {\n    border-bottom-color: $mdlext-light-input-text-bottom-border-color;\n    color: inherit;\n\n    option {\n      background-color: $mdlext-light-content-background-color;\n      color: $mdlext-light-text-color-primary;\n    }\n  }\n  .mdlext-selectfield.is-invalid .mdlext-selectfield__select {\n    border-color: $mdlext-light-input-text-error-color;\n  }\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,\n  .mdlext-selectfield.is-disabled .mdlext-selectfield__select {\n    background-color: transparent;\n    border-bottom-color: $mdlext-light-input-text-disabled-color;\n    color: $mdlext-light-input-text-disabled-text-color;\n  }\n\n  .mdlext-selectfield__label {\n    color: $mdlext-light-input-text-label-color;\n  }\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,\n  .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {\n    color: $mdlext-light-input-text-disabled-text-color;\n  }\n  .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {\n    color: $mdlext-light-input-text-highlight-color;\n  }\n  .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {\n    color: $mdlext-light-input-text-error-color;\n  }\n  .mdlext-selectfield__label::after {\n    background-color: $mdlext-light-input-text-highlight-color;\n  }\n  .mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {\n    background-color: $mdlext-light-input-text-error-color;\n  }\n\n  .mdlext-selectfield__error {\n    color: $mdlext-light-input-text-error-color;\n  }\n}\n\n// mdlext/src/menu-button/_menu-button.scss\n// ----------------------------------------\n.mdlext-menu.mdlext-light-color-theme {\n  background: $mdlext-light-default-dropdown-bg-color;\n}\n\n.mdlext-light-color-theme {\n\n  .mdlext-menu {\n    background: $mdlext-light-default-dropdown-bg-color;\n\n    &__item {\n      color: $mdlext-light-default-item-text-color;\n      background-color: $mdlext-light-default-dropdown-bg-color;\n\n      &:active,\n      &[aria-selected='true'] {\n        background-color: $mdlext-light-default-item-active-bg-color;\n      }\n      &:hover:not([disabled]) {\n        background-color: $mdlext-light-default-item-hover-bg-color;\n      }\n      &:focus {\n        outline-color: $mdlext-light-default-item-outline-color;\n        background-color: $mdlext-light-default-item-focus-bg-color;\n      }\n      &[disabled] {\n        color: $mdlext-light-disabled-item-text-color;\n\n        > * {\n          color: $mdlext-light-disabled-item-text-color;\n        }\n      }\n    }\n    &__item-separator {\n      border-bottom: 1px solid $mdlext-light-default-item-divider-color;\n    }\n  }\n}\n\n\n// mdlext/src/bordered-fields/_bordered-fields.scss\n// -------------------------------------------------\n.mdlext-light-color-theme {\n\n  .mdlext-bordered-fields {\n\n    .mdl-textfield,\n    .mdlext-selectfield {\n\n      .mdl-textfield__input,\n      .mdlext-selectfield__select {\n        background-color: $mdlext-light-bordered-field-background-color;\n        border-color: $mdlext-light-bordered-field-border-color;\n        color: $mdlext-light-bordered-field-input-text-color;\n\n        &:disabled {\n          color: $mdlext-light-bordered-field-input-text-disabled-text-color;\n          background-color: $mdlext-light-bordered-field-disabled-background-color;\n          border-color: $mdlext-light-bordered-field-disabled-border-color;\n        }\n        &:focus {\n          background-color: $mdlext-light-bordered-field-focus-background-color;\n          border-color: $mdlext-light-bordered-field-focus-border-color;\n        }\n      }\n      &.is-invalid {\n        .mdl-textfield__input,\n        .mdlext-selectfield__select {\n          color: $mdlext-light-bordered-field-input-text-error-color;\n          border-color: $mdlext-light-bordered-field-error-border-color;\n          background-color: $mdlext-light-bordered-field-error-background-color;\n\n          &:focus {\n            border-color: $mdlext-light-bordered-field-error-focus-border-color;\n            background-color: $mdlext-light-bordered-field-error-focus-background-color;\n          }\n        }\n      }\n    }\n\n    fieldset[disabled] .mdlext-selectfield::after,\n    .mdlext-selectfield.is-disabled::after {\n      color: $mdlext-light-bordered-field-input-text-disabled-text-color;\n      @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-light-bordered-field-input-text-disabled-text-color);\n    }\n\n    fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n    fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {\n      color: $mdlext-light-bordered-field-input-text-disabled-text-color;\n      background-color: $mdlext-light-bordered-field-disabled-background-color;\n      border-color: $mdlext-light-bordered-field-disabled-border-color;\n    }\n\n    .mdl-textfield,\n    .mdlext-selectfield {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-light-bordered-field-input-text-label-color;\n      }\n      &.mdl-textfield--floating-label.is-focused.is-focused,\n      &.mdl-textfield--floating-label.is-dirty.is-dirty,\n      &.mdl-textfield--floating-label.has-placeholder,\n      &.mdlext-selectfield--floating-label.is-focused.is-focused,\n      &.mdlext-selectfield--floating-label.is-dirty.is-dirty,\n      &.mdlext-selectfield--floating-label.has-placeholder {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-light-bordered-field-input-text-label-focus-color;\n        }\n      }\n      &.mdl-textfield--floating-label.is-disabled.is-disabled,\n      &.mdlext-selectfield--floating-label.is-disabled.is-disabled {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-light-bordered-field-input-text-label-disabled-color;\n        }\n      }\n      &.mdl-textfield--floating-label.is-invalid.is-invalid,\n      &.mdlext-selectfield--floating-label.is-invalid.is-invalid {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-light-bordered-field-input-text-label-error-color;\n        }\n      }\n    }\n\n    fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n    fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {\n      color: $mdlext-light-bordered-field-input-text-label-disabled-color;\n    }\n\n    // Icon(s) and/or button(s) inside textfield\n    .mdl-textfield,\n    .mdlext-selectfield {\n      &.is-disabled i,\n      &.is-disabled .mdl-button {\n        color: $mdlext-light-bordered-field-disabled-border-color;\n      }\n    }\n    fieldset[disabled] .mdl-textfield,\n    fieldset[disabled] .mdlext-selectfield {\n      i,\n      .mdl-button {\n        color: $mdlext-light-bordered-field-disabled-border-color;\n      }\n    }\n  }\n}\n\n\n// mdlext/src/accordion/_accordion.scss\n// ----------------------------------------\n.mdlext-light-color-theme {\n\n  .mdlext-accordion {\n\n    &__tab {\n      color: $mdlext-light-accordion-header-secondary-color;\n      background-color: $mdlext-light-accordion-header-background-color;\n\n      &:focus {\n        outline-color: $mdlext-light-accordion-header-focus-outline-color;\n      }\n      &[aria-expanded='true'] {\n        background-color: $mdlext-light-accordion-header-background-open-color;\n      }\n      &[aria-selected='true'] {\n        background-color: $mdlext-light-accordion-header-background-active-color;\n      }\n      &[disabled] {\n        background-color: $mdlext-light-accordion-header-disabled-color;\n        color: $mdlext-light-accordion-header-secondary-color-disabled;\n        pointer-events: none;\n\n        > * {\n          color: $mdlext-light-accordion-header-secondary-color-disabled;\n        }\n      }\n      &:hover:not([disabled]) {\n        background-color: $mdlext-light-accordion-header-background-hover-color;\n      }\n      &--ripple {\n        &[aria-selected='true']::before {\n          background: $mdlext-light-accordion-ripple-color;\n        }\n      }\n    }\n\n    &__tabpanel {\n      color: $mdlext-light-accordion-content-color;\n      background-color: $mdlext-light-accordion-content-background-color;\n    }\n  }\n\n  // Vertical layout\n  .mdlext-accordion {\n\n    &--vertical {\n\n      .mdlext-accordion__tab {\n        border-top: 1px solid $mdlext-light-accordion-header-border-color;\n\n        &[aria-selected='true']::after {\n          background-color: $mdlext-light-accordion-header-highlight-color;\n        }\n      }\n      .mdlext-accordion__tabpanel {\n        border-top: 1px solid $mdlext-light-accordion-header-border-color;\n      }\n    }\n  }\n\n  // Horizontal layout\n  .mdlext-accordion {\n\n    &--horizontal {\n\n      .mdlext-accordion__tab {\n        border-left: 1px solid $mdlext-light-accordion-header-border-color;\n\n        &[aria-selected='true']::after {\n          background-color: $mdlext-light-accordion-header-highlight-color;\n        }\n      }\n      .mdlext-accordion__tabpanel {\n        border-left: 1px solid $mdlext-light-accordion-header-border-color;\n      }\n    }\n  }\n\n  .mdlext-accordion {\n\n    &__panel:first-child > &__tab {\n      // Use container to set outer borders\n      border-top-color: transparent;\n      border-left-color: transparent;\n    }\n  }\n\n  // Making accordion appear disabled.\n  // Note: does not prevent tabbing into a disabled accordion\n  .mdlext-accordion[disabled] {\n    .mdlext-accordion__tab {\n      background-color: $mdlext-light-accordion-header-disabled-color;\n      color: $mdlext-light-accordion-header-secondary-color-disabled;\n\n      > * {\n        color: $mdlext-light-accordion-header-secondary-color-disabled;\n      }\n    }\n    .mdlext-accordion__tabpanel {\n      opacity: 0.8;\n      filter: blur(1px) grayscale(80%);\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/color-themes/_light-color-theme.scss","@import \"color-themes\";\n\n.mdlext-dark-color-theme {\n  background-color: $mdlext-dark-content-background-color;\n  color: $mdlext-dark-text-color-primary;\n  a {\n    outline-color: inherit;\n  }\n}\n\n// mdl/src/palette/_palette.scss\n.mdlext-dark-color-theme {\n\n  .mdl-color--primary {\n    background-color: $mdlext-dark-color-primary !important;\n  }\n\n  .mdl-color--primary-contrast {\n    background-color: $mdlext-dark-color-primary-contrast !important;\n  }\n\n  .mdl-color--primary-dark {\n    background-color: $mdlext-dark-color-primary-dark !important;\n  }\n\n  .mdl-color--accent {\n    background-color: $mdlext-dark-color-accent !important;\n  }\n\n  .mdl-color--accent-contrast {\n    background-color: $mdlext-dark-color-accent-contrast !important;\n  }\n\n  .mdl-color-text--primary {\n    color: $mdlext-dark-color-primary !important;\n  }\n\n  .mdl-color-text--primary-contrast {\n    color: $mdlext-dark-color-primary-contrast !important;\n  }\n\n  .mdl-color-text--primary-dark {\n    color: $mdlext-dark-color-primary-dark !important;\n  }\n\n  .mdl-color-text--accent {\n    color: $mdlext-dark-color-accent !important;\n  }\n\n  .mdl-color-text--accent-contrast {\n    color: $mdlext-dark-color-accent-contrast !important;\n  }\n\n}\n\n// mdl/src/typography/_typography.scss\n.mdlext-dark-color-theme {\n  a {\n    color: $mdlext-dark-text-link-color;\n  }\n}\n\n\n// mdl/src/badge/_badge.scss\n// ---------------------------\n.mdlext-dark-color-theme {\n  .mdl-badge {\n\n    &[data-badge]::after {\n      background: $mdlext-dark-badge-background;\n      color: $mdlext-dark-badge-color;\n    }\n\n    &.mdl-badge--no-background {\n      &[data-badge]::after {\n        color: $mdlext-dark-badge-color-inverse;\n        background: $mdlext-dark-badge-background-inverse;\n      }\n    }\n  }\n}\n\n\n// mdl/src/button/_button.scss\n// ---------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-button {\n    background: transparent;\n    color: $mdlext-dark-button-secondary-color;\n\n    &:hover {\n      background-color: $mdlext-dark-button-hover-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-dark-button-focus-color;\n    }\n\n    &:active {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      color: $mdlext-dark-button-primary-color-alt;\n\n      &:focus:not(:active) {\n        background-color: $mdlext-dark-button-focus-color-alt;\n      }\n    }\n  }\n\n  // Raised buttons\n  .mdl-button--raised {\n    background: $mdlext-dark-button-primary-color;\n\n    &:active {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $mdlext-dark-button-primary-color-alt;\n      color: $mdlext-dark-button-secondary-color-alt;\n\n      &:hover {\n        background-color: $mdlext-dark-button-hover-color-alt;\n      }\n\n      &:active {\n        background-color: $mdlext-dark-button-active-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $mdlext-dark-button-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $mdlext-dark-button-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // FABs\n  .mdl-button--fab {\n    background: $mdlext-dark-button-primary-color;\n\n    &:active {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $mdlext-dark-button-fab-color-alt;\n      color: $mdlext-dark-button-fab-text-color-alt;\n\n      &:hover {\n        background-color: $mdlext-dark-button-fab-hover-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $mdlext-dark-button-fab-active-color-alt;\n      }\n\n      &:active {\n        background-color: $mdlext-dark-button-fab-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $mdlext-dark-button-fab-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // Icon buttons\n  .mdl-button--icon {\n    color: inherit;\n  }\n\n  // Colorized buttons\n\n  .mdl-button--primary.mdl-button--primary {\n    color: $mdlext-dark-button-primary-color-alt;\n\n    & .mdl-ripple {\n      background: $mdlext-dark-button-secondary-color-alt;\n    }\n    &.mdl-button--raised,\n    &.mdl-button--fab {\n      color: $mdlext-dark-button-secondary-color-alt;\n      background-color: $mdlext-dark-button-primary-color-alt;\n    }\n  }\n\n  .mdl-button--accent.mdl-button--accent {\n    color: $mdlext-dark-button-fab-color-alt;\n\n    & .mdl-ripple {\n      background: $mdlext-dark-button-fab-text-color-alt;\n    }\n    &.mdl-button--raised,\n    &.mdl-button--fab {\n      color: $mdlext-dark-button-fab-text-color-alt;\n      background-color: $mdlext-dark-button-fab-color-alt;\n    }\n  }\n\n  // Disabled buttons\n\n  .mdl-button {\n    // Bump up specificity by using [disabled] twice.\n    &[disabled][disabled],\n    &.mdl-button--disabled.mdl-button--disabled {\n      color: $mdlext-dark-button-secondary-color-disabled;\n      background-color: transparent;\n    }\n\n    &--fab {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        background-color: $mdlext-dark-button-primary-color-disabled;\n        color: $mdlext-dark-button-secondary-color-disabled;\n      }\n    }\n\n    &--raised {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        background-color: $mdlext-dark-button-primary-color-disabled;\n        color: $mdlext-dark-button-secondary-color-disabled;\n      }\n    }\n    &--colored {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        color: $mdlext-dark-button-secondary-color-disabled;\n      }\n    }\n  }\n}\n\n\n// mdl/src/slider/_slider.scss\n// ---------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-slider {\n\n    &.is-upgraded {\n      background: transparent;\n      color: $mdlext-dark-range-color;\n\n      &::-webkit-slider-runnable-track {\n        background: transparent;\n      }\n\n      &::-moz-range-track {\n        background: transparent;\n      }\n\n      &::-ms-track {\n        background: none;\n        color: transparent;\n      }\n\n      /* stylelint-disable */\n      &::-ms-fill-lower {\n        background: linear-gradient(\n          to right,\n          transparent,\n          transparent 16px,\n          $mdlext-dark-range-color 16px,\n          $mdlext-dark-range-color 0\n        );\n      }\n\n      &::-ms-fill-upper {\n        background: linear-gradient(\n          to left,\n          transparent,\n          transparent 16px,\n          $mdlext-dark-range-bg-color 16px,\n          $mdlext-dark-range-bg-color 0);\n      }\n      /* stylelint-enable */\n\n      &::-webkit-slider-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      &::-moz-range-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      &:focus:not(:active)::-webkit-slider-thumb {\n        box-shadow: 0 0 0 10px $mdlext-dark-range-faded-color;\n      }\n\n      &:focus:not(:active)::-moz-range-thumb {\n        box-shadow: 0 0 0 10px $mdlext-dark-range-faded-color;\n      }\n\n      &:active::-webkit-slider-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      &:active::-moz-range-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      &::-ms-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      /* stylelint-disable */\n      &:focus:not(:active)::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          $mdlext-dark-range-color 0%,\n          $mdlext-dark-range-color 37.5%,\n          $mdlext-dark-range-faded-color 37.5%,\n          $mdlext-dark-range-faded-color 100%);\n      }\n      /* stylelint-enable */\n\n      &:active::-ms-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n\n      /**************************** 0-value ****************************/\n\n      &.is-lowest-value::-webkit-slider-thumb {\n        border-color: $mdlext-dark-range-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value::-moz-range-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {\n        box-shadow: 0 0 0 10px $mdlext-dark-range-bg-focus-color;\n        background: $mdlext-dark-range-bg-focus-color;\n      }\n\n      &.is-lowest-value:focus:not(:active)::-moz-range-thumb {\n        box-shadow: 0 0 0 10px $mdlext-dark-range-bg-focus-color;\n        background: $mdlext-dark-range-bg-focus-color;\n      }\n\n      &.is-lowest-value:active::-webkit-slider-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n      }\n\n      &.is-lowest-value:active::-moz-range-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n      }\n\n      /* stylelint-disable */\n      &.is-lowest-value::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 66.67%,\n          $mdlext-dark-range-bg-color 66.67%,\n          $mdlext-dark-range-bg-color 100%);\n      }\n\n      &.is-lowest-value:focus:not(:active)::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          $mdlext-dark-range-bg-focus-color 0%,\n          $mdlext-dark-range-bg-focus-color 25%,\n          $mdlext-dark-range-bg-color 25%,\n          $mdlext-dark-range-bg-color 37.5%,\n          $mdlext-dark-range-bg-focus-color 37.5%,\n          $mdlext-dark-range-bg-focus-color 100%);\n      }\n\n      &.is-lowest-value:active::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 77.78%,\n          $mdlext-dark-range-bg-color 77.78%,\n          $mdlext-dark-range-bg-color 100%);\n      }\n      /* stylelint-enable */\n\n      &.is-lowest-value::-ms-fill-lower {\n        background: transparent;\n      }\n\n      /**************************** Disabled ****************************/\n\n      &:disabled:focus::-webkit-slider-thumb,\n      &:disabled:active::-webkit-slider-thumb,\n      &:disabled::-webkit-slider-thumb {\n        background: $mdlext-dark-range-bg-color;\n      }\n\n      &:disabled:focus::-moz-range-thumb,\n      &:disabled:active::-moz-range-thumb,\n      &:disabled::-moz-range-thumb {\n        background: $mdlext-dark-range-bg-color;\n      }\n\n      &:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {\n        background-color: $mdlext-dark-range-bg-color;\n      }\n\n      &.is-lowest-value:disabled:focus::-webkit-slider-thumb,\n      &.is-lowest-value:disabled:active::-webkit-slider-thumb,\n      &.is-lowest-value:disabled::-webkit-slider-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value:disabled:focus::-moz-range-thumb,\n      &.is-lowest-value:disabled:active::-moz-range-thumb,\n      &.is-lowest-value:disabled::-moz-range-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n        background: transparent;\n      }\n\n      &:disabled:focus::-ms-thumb,\n      &:disabled:active::-ms-thumb,\n      &:disabled::-ms-thumb {\n        background: $mdlext-dark-range-bg-color;\n      }\n\n      /* stylelint-disable */\n      &.is-lowest-value:disabled:focus::-ms-thumb,\n      &.is-lowest-value:disabled:active::-ms-thumb,\n      &.is-lowest-value:disabled::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 50%,\n          $mdlext-dark-range-bg-color 50%,\n          $mdlext-dark-range-bg-color 100%);\n      }\n\n      &:disabled::-ms-fill-lower {\n        background: linear-gradient(to right,\n          transparent,\n          transparent 25px,\n          $mdlext-dark-range-bg-color 25px,\n          $mdlext-dark-range-bg-color 0);\n      }\n      /* stylelint-enable */\n\n    }\n  }\n\n  .mdl-slider__background-flex {\n    background: transparent;\n  }\n\n  .mdl-slider__background-lower {\n    background: $mdlext-dark-range-color;\n  }\n\n  // This one styles the upper part of the slider track.\n  .mdl-slider__background-upper {\n    background: $mdlext-dark-range-bg-color;\n  }\n}\n\n\n// mdl/src/textfield/_textfield.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-textfield__input {\n    border-bottom-color: $mdlext-dark-input-text-bottom-border-color;\n  }\n  .mdl-textfield.is-invalid .mdl-textfield__input {\n    border-color: $mdlext-dark-input-text-error-color;\n  }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n  .mdl-textfield.is-disabled .mdl-textfield__input {\n    background-color: transparent;\n    border-bottom-color: $mdlext-dark-input-text-disabled-color;\n    color: $mdlext-dark-input-text-disabled-text-color;\n  }\n  .mdl-textfield__label {\n    color: $mdlext-dark-input-text-label-color;\n  }\n  .mdl-textfield__label::after {\n    background-color: $mdlext-dark-input-text-highlight-color;\n  }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n  .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {\n    color: $mdlext-dark-input-text-disabled-text-color;\n  }\n  .mdl-textfield--floating-label.is-focused .mdl-textfield__label,\n  .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,\n  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {\n    color: $mdlext-dark-input-text-highlight-color;\n  }\n  .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {\n    color: $mdlext-dark-input-text-error-color;\n  }\n  .mdl-textfield.is-invalid .mdl-textfield__label::after {\n    background-color: $mdlext-dark-input-text-error-color;\n  }\n  .mdl-textfield__error {\n    color: $mdlext-dark-input-text-error-color;\n  }\n}\n\n\n// mdl/src/checkbox/_checkbox.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-checkbox__box-outline {\n    border-color: $mdlext-dark-checkbox-off-color;\n  }\n  .mdl-checkbox.is-checked .mdl-checkbox__box-outline {\n    border-color: $mdlext-dark-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,\n  .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {\n    border-color: $mdlext-dark-checkbox-disabled-color;\n  }\n\n  .mdl-checkbox__focus-helper {\n    background-color: transparent;\n  }\n  .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {\n    box-shadow: 0 0 0 ($checkbox-button-size / 2) $mdlext-dark-checkbox-focus-color;\n    background-color: $mdlext-dark-checkbox-focus-color;\n  }\n\n  .mdl-checkbox__tick-outline {\n    background: transparent;\n  }\n  .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {\n    background-color: $mdlext-dark-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,\n  .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {\n    background-color: $mdlext-dark-checkbox-disabled-color;\n  }\n\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,\n  .mdl-checkbox.is-disabled .mdl-checkbox__label {\n    color: $mdlext-dark-checkbox-disabled-color;\n  }\n\n  .mdl-checkbox__ripple-container .mdl-ripple {\n    background: $mdlext-dark-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,\n  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n\n}\n\n// mdl/src/radio/_radio.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n  .mdl-radio__outer-circle {\n    border-color: $mdlext-dark-radio-off-color;\n  }\n  .mdl-radio.is-checked .mdl-radio__outer-circle {\n    border-color: $mdlext-dark-radio-color;\n  }\n  .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,\n  .mdl-radio.is-disabled .mdl-radio__outer-circle {\n    border-color: $mdlext-dark-radio-disabled-color;\n  }\n\n  .mdl-radio__inner-circle {\n    background: $mdlext-dark-radio-color;\n  }\n  fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,\n  .mdl-radio.is-disabled .mdl-radio__inner-circle {\n    background: $mdlext-dark-radio-disabled-color;\n  }\n\n  fieldset[disabled] .mdl-radio .mdl-radio__label,\n  .mdl-radio.is-disabled .mdl-radio__label {\n    color: $mdlext-dark-radio-disabled-color;\n  }\n\n  .mdl-radio__ripple-container .mdl-ripple {\n    background: $mdlext-dark-radio-color;\n  }\n  fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,\n  .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n// mdl/src/icon-togglr/_icon-toggle.scss\n// ---------------------------------------\n.mdlext-dark-color-theme {\n  .mdl-icon-toggle__label {\n    color: $mdlext-dark-icon-toggle-color;\n  }\n  .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {\n    color: $mdlext-dark-icon-toggle-checked-color;\n  }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {\n    color: $mdlext-dark-icon-toggle-disabled-color;\n  }\n  .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {\n    background-color: $mdlext-dark-icon-toggle-focus-color;\n  }\n  .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {\n    background-color: $mdlext-dark-icon-toggle-checked-focus-color;\n  }\n  .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: $mdlext-dark-icon-toggle-color;\n  }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n\n// mdl/src/switch/_switch.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-switch__track {\n    background: $mdlext-dark-switch-off-track-color;\n  }\n  .mdl-switch.is-checked .mdl-switch__track {\n    background: $mdlext-dark-switch-track-color;\n  }\n  .mdl-switch__track fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__track {\n    background: $mdlext-dark-switch-disabled-track-color;\n  }\n\n  .mdl-switch__thumb {\n    background: $mdlext-dark-switch-off-thumb-color;\n  }\n  .mdl-switch.is-checked .mdl-switch__thumb {\n    background: $mdlext-dark-switch-thumb-color;\n  }\n  .mdl-switch__thumb fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__thumb {\n    background: $mdlext-dark-switch-disabled-thumb-color;\n  }\n\n  .mdl-switch__focus-helper {\n    background-color: transparent;\n  }\n  .mdl-switch.is-focused .mdl-switch__focus-helper {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n  .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {\n    box-shadow: 0 0 0 (($switch-ripple-size - $switch-helper-size) / 2) $mdlext-dark-switch-faded-color;\n    background-color: $mdlext-dark-switch-faded-color;\n  }\n\n  .mdl-switch__label fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__label {\n    color: $mdlext-dark-switch-disabled-thumb-color;\n  }\n\n  .mdl-switch__ripple-container .mdl-ripple {\n    background: $mdlext-dark-switch-color;\n  }\n  fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,\n  .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n\n}\n\n\n// mdl/src/data-table/_data-table.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-data-table {\n    border-color: $mdlext-dark-data-table-divider-color;\n    background-color: $mdlext-dark-data-table-background-color;\n\n    tbody {\n      tr {\n        &.is-selected {\n          background-color: $mdlext-dark-data-table-selection-color;\n        }\n\n        &:hover {\n          background-color: $mdlext-dark-data-table-hover-color;\n        }\n      }\n    }\n\n    th {\n      color: $mdlext-dark-data-table-header-color;\n\n      &.mdl-data-table__header--sorted-ascending,\n      &.mdl-data-table__header--sorted-descending {\n        color: $mdlext-dark-data-table-header-sorted-color;\n\n        &:hover {\n          &::before {\n            color: $mdlext-dark-data-table-header-sorted-icon-hover-color;\n          }\n        }\n      }\n    }\n  }\n}\n\n// mdl/src/menu/_menu.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-menu__outline {\n    background: $mdlext-dark-default-dropdown-bg-color;\n  }\n\n  .mdl-menu__item {\n    color: $mdlext-dark-default-item-text-color;\n    background-color: transparent;\n    outline-color: $mdlext-dark-default-item-outline-color;\n\n    &--full-bleed-divider {\n      border-bottom-color: $mdlext-dark-default-item-divider-color;\n    }\n\n    &[disabled],\n    &[data-mdl-disabled] {\n      color: $mdlext-dark-disabled-item-text-color;\n      background-color: transparent;\n\n      &:hover {\n        background-color: transparent;\n      }\n\n      &:focus {\n        background-color: transparent;\n      }\n\n      & .mdl-ripple {\n        background: transparent;\n      }\n    }\n\n    &:hover {\n      background-color: $mdlext-dark-default-item-hover-bg-color;\n    }\n\n    &:focus {\n      background-color: $mdlext-dark-default-item-focus-bg-color;\n    }\n\n    &:active {\n      background-color: $mdlext-dark-default-item-active-bg-color;\n    }\n  }\n}\n\n// mdl/src/card/_card.scss\n// ----------------------------------------\n.mdlext-dark-color-theme {\n  .mdl-card {\n    background: $mdlext-dark-card-background-color;\n  }\n\n  .mdl-card__media {\n    background-color: $mdlext-dark-card-image-placeholder-color;\n  }\n\n  .mdl-card__title {\n    color: $mdlext-dark-card-text-color;\n\n    &.mdl-card--border {\n      border-bottom-color: $mdlext-dark-card-border-color;\n    }\n  }\n\n  .mdl-card__title-text {\n    color: inherit;\n  }\n\n  .mdl-card__subtitle-text {\n    color: $mdlext-dark-card-subtitle-color;\n  }\n\n  .mdl-card__supporting-text {\n    color: $mdlext-dark-card-supporting-text-text-color;\n  }\n\n  .mdl-card__actions {\n    background-color: rgba(255, 255, 255, 0);\n\n    &.mdl-card--border {\n      border-top-color: $mdlext-dark-card-border-color;\n    }\n  }\n}\n\n\n// mdlext/src/selectfield/_selectfield.scss\n// ----------------------------------------\n.mdlext-dark-color-theme {\n\n  .mdlext-selectfield.is-disabled::after {\n    color: $mdlext-dark-input-text-disabled-color;\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-dark-input-text-disabled-color);\n  }\n\n  .mdlext-selectfield__select {\n    border-bottom-color: $mdlext-dark-input-text-bottom-border-color;\n    color: inherit;\n\n    option {\n      background-color: $mdlext-dark-content-background-color;\n      color: $mdlext-dark-text-color-primary;\n    }\n  }\n  .mdlext-selectfield.is-invalid .mdlext-selectfield__select {\n    border-color: $mdlext-dark-input-text-error-color;\n  }\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,\n  .mdlext-selectfield.is-disabled .mdlext-selectfield__select {\n    background-color: transparent;\n    border-bottom-color: $mdlext-dark-input-text-disabled-color;\n    color: $mdlext-dark-input-text-disabled-text-color;\n  }\n\n  .mdlext-selectfield__label {\n    color: $mdlext-dark-input-text-label-color;\n  }\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,\n  .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {\n    color: $mdlext-dark-input-text-disabled-text-color;\n  }\n  .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {\n    color: $mdlext-dark-input-text-highlight-color;\n  }\n  .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {\n    color: $mdlext-dark-input-text-error-color;\n  }\n  .mdlext-selectfield__label::after {\n    background-color: $mdlext-dark-input-text-highlight-color;\n  }\n  .mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {\n    background-color: $mdlext-dark-input-text-error-color;\n  }\n\n  .mdlext-selectfield__error {\n    color: $mdlext-dark-input-text-error-color;\n  }\n}\n\n\n// mdlext/src/menu-button/_menu-button.scss\n// ----------------------------------------\n.mdlext-menu.mdlext-dark-color-theme {\n  background: $mdlext-dark-default-dropdown-bg-color;\n}\n\n.mdlext-dark-color-theme {\n\n  .mdlext-menu {\n    background: $mdlext-dark-default-dropdown-bg-color;\n\n    &__item {\n      color: $mdlext-dark-default-item-text-color;\n      background-color: $mdlext-dark-default-dropdown-bg-color;\n\n      &:active,\n      &[aria-selected='true'] {\n        background-color: $mdlext-dark-default-item-active-bg-color;\n      }\n      &:hover:not([disabled]) {\n        background-color: $mdlext-dark-default-item-hover-bg-color;\n      }\n      &:focus {\n        outline-color: $mdlext-dark-default-item-outline-color;\n        background-color: $mdlext-dark-default-item-focus-bg-color;\n      }\n      &[disabled] {\n        color: $mdlext-dark-disabled-item-text-color;\n\n        > * {\n          color: $mdlext-dark-disabled-item-text-color;\n        }\n      }\n    }\n    &__item-separator {\n      border-bottom: 1px solid $mdlext-dark-default-item-divider-color;\n    }\n  }\n}\n\n\n// mdlext/src/bordered-fields/_bordered-fields.scss\n// -------------------------------------------------\n.mdlext-dark-color-theme {\n\n  .mdlext-bordered-fields {\n\n    .mdl-textfield,\n    .mdlext-selectfield {\n\n      .mdl-textfield__input,\n      .mdlext-selectfield__select {\n        background-color: $mdlext-dark-bordered-field-background-color;\n        border-color: $mdlext-dark-bordered-field-border-color;\n        color: $mdlext-dark-bordered-field-input-text-color;\n\n        &:disabled {\n          color: $mdlext-dark-bordered-field-input-text-disabled-text-color;\n          background-color: $mdlext-dark-bordered-field-disabled-background-color;\n          border-color: $mdlext-dark-bordered-field-disabled-border-color;\n        }\n        &:focus {\n          background-color: $mdlext-dark-bordered-field-focus-background-color;\n          border-color: $mdlext-dark-bordered-field-focus-border-color;\n        }\n      }\n      &.is-invalid {\n        .mdl-textfield__input,\n        .mdlext-selectfield__select {\n          color: $mdlext-dark-bordered-field-input-text-error-color;\n          border-color: $mdlext-dark-bordered-field-error-border-color;\n          background-color: $mdlext-dark-bordered-field-error-background-color;\n\n          &:focus {\n            border-color: $mdlext-dark-bordered-field-error-focus-border-color;\n            background-color: $mdlext-dark-bordered-field-error-focus-background-color;\n          }\n        }\n      }\n    }\n\n    fieldset[disabled] .mdlext-selectfield::after,\n    .mdlext-selectfield.is-disabled::after {\n      color: $mdlext-dark-bordered-field-input-text-disabled-text-color;\n      @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-dark-bordered-field-input-text-disabled-text-color);\n    }\n\n    fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n    fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {\n      color: $mdlext-dark-bordered-field-input-text-disabled-text-color;\n      background-color: $mdlext-dark-bordered-field-disabled-background-color;\n      border-color: $mdlext-dark-bordered-field-disabled-border-color;\n    }\n\n    .mdl-textfield,\n    .mdlext-selectfield {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-dark-bordered-field-input-text-label-color;\n      }\n      &.mdl-textfield--floating-label.is-focused.is-focused,\n      &.mdl-textfield--floating-label.is-dirty.is-dirty,\n      &.mdl-textfield--floating-label.has-placeholder,\n      &.mdlext-selectfield--floating-label.is-focused.is-focused,\n      &.mdlext-selectfield--floating-label.is-dirty.is-dirty,\n      &.mdlext-selectfield--floating-label.has-placeholder {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-dark-bordered-field-input-text-label-focus-color;\n        }\n      }\n      &.mdl-textfield--floating-label.is-disabled.is-disabled,\n      &.mdlext-selectfield--floating-label.is-disabled.is-disabled {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-dark-bordered-field-input-text-label-disabled-color;\n        }\n      }\n      &.mdl-textfield--floating-label.is-invalid.is-invalid,\n      &.mdlext-selectfield--floating-label.is-invalid.is-invalid {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-dark-bordered-field-input-text-label-error-color;\n        }\n      }\n    }\n\n    fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n    fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {\n      color: $mdlext-dark-bordered-field-input-text-label-disabled-color;\n    }\n\n    // Icon(s) and/or button(s) inside textfield\n    .mdl-textfield,\n    .mdlext-selectfield {\n      &.is-disabled i,\n      &.is-disabled .mdl-button {\n        color: $mdlext-dark-bordered-field-disabled-border-color;\n      }\n    }\n    fieldset[disabled] .mdl-textfield,\n    fieldset[disabled] .mdlext-selectfield {\n      i,\n      .mdl-button {\n        color: $mdlext-dark-bordered-field-disabled-border-color;\n      }\n    }\n  }\n\n}\n\n\n// mdlext/src/accordion/_accordion.scss\n// ----------------------------------------\n.mdlext-dark-color-theme {\n\n  .mdlext-accordion {\n\n    &__tab {\n      color: $mdlext-dark-accordion-header-secondary-color;\n      background-color: $mdlext-dark-accordion-header-background-color;\n\n      &:focus {\n        outline-color: $mdlext-dark-accordion-header-focus-outline-color;\n      }\n      &[aria-expanded='true'] {\n        background-color: $mdlext-dark-accordion-header-background-open-color;\n      }\n      &[aria-selected='true'] {\n        background-color: $mdlext-dark-accordion-header-background-active-color;\n      }\n      &[disabled] {\n        background-color: $mdlext-dark-accordion-header-disabled-color;\n        color: $mdlext-dark-accordion-header-secondary-color-disabled;\n        pointer-events: none;\n\n        > * {\n          color: $mdlext-dark-accordion-header-secondary-color-disabled;\n        }\n      }\n      &:hover:not([disabled]) {\n        background-color: $mdlext-dark-accordion-header-background-hover-color;\n      }\n      &--ripple {\n        &[aria-selected='true']::before {\n          background: $mdlext-dark-accordion-ripple-color;\n        }\n      }\n    }\n\n    &__tabpanel {\n      color: $mdlext-dark-accordion-content-color;\n      background-color: $mdlext-dark-accordion-content-background-color;\n    }\n  }\n\n  // Vertical layout\n  .mdlext-accordion {\n\n    &--vertical {\n\n      .mdlext-accordion__tab {\n        border-top: 1px solid $mdlext-dark-accordion-header-border-color;\n\n        &[aria-selected='true']::after {\n          background-color: $mdlext-dark-accordion-header-highlight-color;\n        }\n      }\n      .mdlext-accordion__tabpanel {\n        border-top: 1px solid $mdlext-dark-accordion-header-border-color;\n      }\n    }\n  }\n\n  // Horizontal layout\n  .mdlext-accordion {\n\n    &--horizontal {\n\n      .mdlext-accordion__tab {\n        border-left: 1px solid $mdlext-dark-accordion-header-border-color;\n\n        &[aria-selected='true']::after {\n          background-color: $mdlext-dark-accordion-header-highlight-color;\n        }\n      }\n      .mdlext-accordion__tabpanel {\n        border-left: 1px solid $mdlext-dark-accordion-header-border-color;\n      }\n    }\n  }\n\n  .mdlext-accordion {\n\n    &__panel:first-child > &__tab {\n      // Use container to set outer borders\n      border-top-color: transparent;\n      border-left-color: transparent;\n    }\n  }\n\n  // Making accordion appear disabled.\n  // Note: does not prevent tabbing into a disabled accordion\n  .mdlext-accordion[disabled] {\n    .mdlext-accordion__tab {\n      background-color: $mdlext-dark-accordion-header-disabled-color;\n      color: $mdlext-dark-accordion-header-secondary-color-disabled;\n\n      > * {\n        color: $mdlext-dark-accordion-header-secondary-color-disabled;\n      }\n    }\n    .mdlext-accordion__tabpanel {\n      opacity: 0.8;\n      filter: blur(1px) grayscale(80%);\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/color-themes/_dark-color-theme.scss"],"sourceRoot":""}
\ No newline at end of file
diff --git a/node_modules/mdl-ext/lib/mdl-ext.js b/node_modules/mdl-ext/lib/mdl-ext.js
new file mode 100644
index 0000000..b3ecacf
--- /dev/null
+++ b/node_modules/mdl-ext/lib/mdl-ext.js
@@ -0,0 +1,6477 @@
+(function webpackUniversalModuleDefinition(root, factory) {
+	if(typeof exports === 'object' && typeof module === 'object')
+		module.exports = factory();
+	else if(typeof define === 'function' && define.amd)
+		define("mdl-ext", [], factory);
+	else if(typeof exports === 'object')
+		exports["mdl-ext"] = factory();
+	else
+		root["mdl-ext"] = factory();
+})(this, function() {
+return /******/ (function(modules) { // webpackBootstrap
+/******/ 	// The module cache
+/******/ 	var installedModules = {};
+/******/
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/
+/******/ 		// Check if module is in cache
+/******/ 		if(installedModules[moduleId])
+/******/ 			return installedModules[moduleId].exports;
+/******/
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = installedModules[moduleId] = {
+/******/ 			exports: {},
+/******/ 			id: moduleId,
+/******/ 			loaded: false
+/******/ 		};
+/******/
+/******/ 		// Execute the module function
+/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ 		// Flag the module as loaded
+/******/ 		module.loaded = true;
+/******/
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/
+/******/
+/******/ 	// expose the modules object (__webpack_modules__)
+/******/ 	__webpack_require__.m = modules;
+/******/
+/******/ 	// expose the module cache
+/******/ 	__webpack_require__.c = installedModules;
+/******/
+/******/ 	// __webpack_public_path__
+/******/ 	__webpack_require__.p = "";
+/******/
+/******/ 	// Load entry module and return exports
+/******/ 	return __webpack_require__(0);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ function(module, exports, __webpack_require__) {
+
+	__webpack_require__(113);
+	module.exports = __webpack_require__(53);
+
+
+/***/ },
+/* 1 */
+/***/ function(module, exports) {
+
+	var core = module.exports = {version: '2.4.0'};
+	if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
+
+/***/ },
+/* 2 */
+/***/ function(module, exports) {
+
+	'use strict';
+	
+	Object.defineProperty(exports, "__esModule", {
+	  value: true
+	});
+	var VK_TAB = 9;
+	var VK_ENTER = 13;
+	var VK_ESC = 27;
+	var VK_SPACE = 32;
+	var VK_PAGE_UP = 33;
+	var VK_PAGE_DOWN = 34;
+	var VK_END = 35;
+	var VK_HOME = 36;
+	var VK_ARROW_LEFT = 37;
+	var VK_ARROW_UP = 38;
+	var VK_ARROW_RIGHT = 39;
+	var VK_ARROW_DOWN = 40;
+	
+	var ARIA_EXPANDED = 'aria-expanded';
+	var ARIA_HIDDEN = 'aria-hidden';
+	var ARIA_MULTISELECTABLE = 'aria-multiselectable';
+	var ARIA_SELECTED = 'aria-selected';
+	
+	var IS_DIRTY = 'is-dirty';
+	var IS_DISABLED = 'is-disabled';
+	var IS_EXPANDED = 'is-expanded';
+	var IS_FOCUSED = 'is-focused';
+	var IS_INVALID = 'is-invalid';
+	var IS_UPGRADED = 'is-upgraded';
+	var DATA_UPGRADED = 'data-upgraded';
+	
+	var MDL_RIPPLE = 'mdl-ripple';
+	var MDL_RIPPLE_COMPONENT = 'MaterialRipple';
+	var MDL_RIPPLE_EFFECT = 'mdl-js-ripple-effect';
+	var MDL_RIPPLE_EFFECT_IGNORE_EVENTS = 'mdl-js-ripple-effect--ignore-events';
+	
+	exports.VK_TAB = VK_TAB;
+	exports.VK_ENTER = VK_ENTER;
+	exports.VK_ESC = VK_ESC;
+	exports.VK_SPACE = VK_SPACE;
+	exports.VK_PAGE_UP = VK_PAGE_UP;
+	exports.VK_PAGE_DOWN = VK_PAGE_DOWN;
+	exports.VK_END = VK_END;
+	exports.VK_HOME = VK_HOME;
+	exports.VK_ARROW_LEFT = VK_ARROW_LEFT;
+	exports.VK_ARROW_UP = VK_ARROW_UP;
+	exports.VK_ARROW_RIGHT = VK_ARROW_RIGHT;
+	exports.VK_ARROW_DOWN = VK_ARROW_DOWN;
+	exports.ARIA_EXPANDED = ARIA_EXPANDED;
+	exports.ARIA_HIDDEN = ARIA_HIDDEN;
+	exports.ARIA_MULTISELECTABLE = ARIA_MULTISELECTABLE;
+	exports.ARIA_SELECTED = ARIA_SELECTED;
+	exports.IS_DIRTY = IS_DIRTY;
+	exports.IS_DISABLED = IS_DISABLED;
+	exports.IS_EXPANDED = IS_EXPANDED;
+	exports.IS_FOCUSED = IS_FOCUSED;
+	exports.IS_INVALID = IS_INVALID;
+	exports.IS_UPGRADED = IS_UPGRADED;
+	exports.DATA_UPGRADED = DATA_UPGRADED;
+	exports.MDL_RIPPLE = MDL_RIPPLE;
+	exports.MDL_RIPPLE_COMPONENT = MDL_RIPPLE_COMPONENT;
+	exports.MDL_RIPPLE_EFFECT = MDL_RIPPLE_EFFECT;
+	exports.MDL_RIPPLE_EFFECT_IGNORE_EVENTS = MDL_RIPPLE_EFFECT_IGNORE_EVENTS;
+
+/***/ },
+/* 3 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var global    = __webpack_require__(5)
+	  , core      = __webpack_require__(1)
+	  , ctx       = __webpack_require__(37)
+	  , hide      = __webpack_require__(11)
+	  , PROTOTYPE = 'prototype';
+	
+	var $export = function(type, name, source){
+	  var IS_FORCED = type & $export.F
+	    , IS_GLOBAL = type & $export.G
+	    , IS_STATIC = type & $export.S
+	    , IS_PROTO  = type & $export.P
+	    , IS_BIND   = type & $export.B
+	    , IS_WRAP   = type & $export.W
+	    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})
+	    , expProto  = exports[PROTOTYPE]
+	    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
+	    , key, own, out;
+	  if(IS_GLOBAL)source = name;
+	  for(key in source){
+	    // contains in native
+	    own = !IS_FORCED && target && target[key] !== undefined;
+	    if(own && key in exports)continue;
+	    // export native or passed
+	    out = own ? target[key] : source[key];
+	    // prevent global pollution for namespaces
+	    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
+	    // bind timers to global for call from export context
+	    : IS_BIND && own ? ctx(out, global)
+	    // wrap global constructors for prevent change them in library
+	    : IS_WRAP && target[key] == out ? (function(C){
+	      var F = function(a, b, c){
+	        if(this instanceof C){
+	          switch(arguments.length){
+	            case 0: return new C;
+	            case 1: return new C(a);
+	            case 2: return new C(a, b);
+	          } return new C(a, b, c);
+	        } return C.apply(this, arguments);
+	      };
+	      F[PROTOTYPE] = C[PROTOTYPE];
+	      return F;
+	    // make static versions for prototype methods
+	    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
+	    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
+	    if(IS_PROTO){
+	      (exports.virtual || (exports.virtual = {}))[key] = out;
+	      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
+	      if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
+	    }
+	  }
+	};
+	// type bitmap
+	$export.F = 1;   // forced
+	$export.G = 2;   // global
+	$export.S = 4;   // static
+	$export.P = 8;   // proto
+	$export.B = 16;  // bind
+	$export.W = 32;  // wrap
+	$export.U = 64;  // safe
+	$export.R = 128; // real proto method for `library` 
+	module.exports = $export;
+
+/***/ },
+/* 4 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var store      = __webpack_require__(44)('wks')
+	  , uid        = __webpack_require__(46)
+	  , Symbol     = __webpack_require__(5).Symbol
+	  , USE_SYMBOL = typeof Symbol == 'function';
+	
+	var $exports = module.exports = function(name){
+	  return store[name] || (store[name] =
+	    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
+	};
+	
+	$exports.store = store;
+
+/***/ },
+/* 5 */
+/***/ function(module, exports) {
+
+	// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+	var global = module.exports = typeof window != 'undefined' && window.Math == Math
+	  ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
+	if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
+
+/***/ },
+/* 6 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var isObject = __webpack_require__(17);
+	module.exports = function(it){
+	  if(!isObject(it))throw TypeError(it + ' is not an object!');
+	  return it;
+	};
+
+/***/ },
+/* 7 */
+/***/ function(module, exports) {
+
+	module.exports = {};
+
+/***/ },
+/* 8 */
+/***/ function(module, exports, __webpack_require__) {
+
+	"use strict";
+	
+	exports.__esModule = true;
+	
+	var _from = __webpack_require__(60);
+	
+	var _from2 = _interopRequireDefault(_from);
+	
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+	
+	exports.default = function (arr) {
+	  if (Array.isArray(arr)) {
+	    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
+	      arr2[i] = arr[i];
+	    }
+	
+	    return arr2;
+	  } else {
+	    return (0, _from2.default)(arr);
+	  }
+	};
+
+/***/ },
+/* 9 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// Thank's IE8 for his funny defineProperty
+	module.exports = !__webpack_require__(10)(function(){
+	  return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
+	});
+
+/***/ },
+/* 10 */
+/***/ function(module, exports) {
+
+	module.exports = function(exec){
+	  try {
+	    return !!exec();
+	  } catch(e){
+	    return true;
+	  }
+	};
+
+/***/ },
+/* 11 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var dP         = __webpack_require__(12)
+	  , createDesc = __webpack_require__(25);
+	module.exports = __webpack_require__(9) ? function(object, key, value){
+	  return dP.f(object, key, createDesc(1, value));
+	} : function(object, key, value){
+	  object[key] = value;
+	  return object;
+	};
+
+/***/ },
+/* 12 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var anObject       = __webpack_require__(6)
+	  , IE8_DOM_DEFINE = __webpack_require__(82)
+	  , toPrimitive    = __webpack_require__(101)
+	  , dP             = Object.defineProperty;
+	
+	exports.f = __webpack_require__(9) ? Object.defineProperty : function defineProperty(O, P, Attributes){
+	  anObject(O);
+	  P = toPrimitive(P, true);
+	  anObject(Attributes);
+	  if(IE8_DOM_DEFINE)try {
+	    return dP(O, P, Attributes);
+	  } catch(e){ /* empty */ }
+	  if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
+	  if('value' in Attributes)O[P] = Attributes.value;
+	  return O;
+	};
+
+/***/ },
+/* 13 */
+/***/ function(module, exports, __webpack_require__) {
+
+	"use strict";
+	
+	Object.defineProperty(exports, "__esModule", {
+	  value: true
+	});
+	
+	var _apply = __webpack_require__(66);
+	
+	var _apply2 = _interopRequireDefault(_apply);
+	
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+	
+	/**
+	 * Since some events can fire at a high rate, the event handler should be limited to execute computationally
+	 * expensive operations, such as DOM modifications, inside a single rendered frame.
+	 * When listening to e.g. scroll and resize events, the browser tends to fire off more events per
+	 * second than are actually useful. For instance, if your event listener sets some element positions, then it
+	 * is possible for those positions to be updated multiple times in a single rendered frame. In this case, all of
+	 * the layout calculations triggered by setting the elements' positions will be wasted except for the one time that
+	 * it runs immediately prior to the browser rendering the updated layout to the screen.
+	 * To avoid wasting cycles, we can use requestAnimationFrame to only run the event listener once just before the page
+	 * is rendered to the screen.
+	 * *
+	 * @param callback the function to throttle
+	 * @param context  optional context of this, default to global
+	 * @return {function(...[*])}
+	 */
+	var fullThrottle = function fullThrottle(callback, context) {
+	
+	  if (!context) {
+	    context = undefined || window;
+	  }
+	
+	  var throttling = false;
+	
+	  return function () {
+	    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+	      args[_key] = arguments[_key];
+	    }
+	
+	    if (!throttling) {
+	      throttling = true;
+	      window.requestAnimationFrame(function () {
+	        throttling = false;
+	        return (0, _apply2.default)(callback, context, args);
+	      });
+	    }
+	  };
+	};
+	
+	exports.default = fullThrottle;
+	module.exports = exports["default"];
+
+/***/ },
+/* 14 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	
+	/**
+	 * Converts a JSON string to object
+	 * @param jsonString
+	 * @param source
+	 */
+	
+	Object.defineProperty(exports, "__esModule", {
+	  value: true
+	});
+	exports.jsonStringToObject = undefined;
+	
+	var _assign = __webpack_require__(33);
+	
+	var _assign2 = _interopRequireDefault(_assign);
+	
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+	
+	var jsonStringToObject = function jsonStringToObject(jsonString) {
+	  var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+	
+	  var s = jsonString.replace(/'/g, '"');
+	  try {
+	    return (0, _assign2.default)(source, JSON.parse(s));
+	  } catch (e) {
+	    throw new Error('Failed to parse json string: ' + s + '. Error: ' + e.message);
+	  }
+	};
+	
+	exports.jsonStringToObject = jsonStringToObject;
+
+/***/ },
+/* 15 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	
+	/**
+	 * @license
+	 * Copyright 2016 Leif Olsen. All Rights Reserved.
+	 *
+	 * Licensed under the Apache License, Version 2.0 (the "License");
+	 * you may not use this file except in compliance with the License.
+	 * You may obtain a copy of the License at
+	 *
+	 *      http://www.apache.org/licenses/LICENSE-2.0
+	 *
+	 * Unless required by applicable law or agreed to in writing, software
+	 * distributed under the License is distributed on an "AS IS" BASIS,
+	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	 * See the License for the specific language governing permissions and
+	 * limitations under the License.
+	 */
+	
+	/**
+	 * A javascript utility for conditionally creating a list of strings.
+	 * The function takes any number of arguments which can be a string or object.
+	 * Inspired by (but not copied from) JedWatson/classnames, https://github.com/JedWatson/classnames
+	 *
+	 * @param  {*} args the strings and/or objects to
+	 * @return {Array} a list of strings
+	 * @example
+	 * // Returns ['foo', 'bar', 'baz', 'quux']
+	 * stringList(', ', 'foo', { bar: true, duck: false }, 'baz', { quux: true });
+	 * @example see the tests for more examples
+	 */
+	
+	Object.defineProperty(exports, "__esModule", {
+	  value: true
+	});
+	exports.stringList = exports.randomString = exports.joinStrings = undefined;
+	
+	var _keys = __webpack_require__(65);
+	
+	var _keys2 = _interopRequireDefault(_keys);
+	
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+	
+	var stringList = function stringList() {
+	  for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+	    args[_key] = arguments[_key];
+	  }
+	
+	  var isString = function isString(str) {
+	    return str != null && typeof str === 'string';
+	  };
+	
+	  var flatten = function flatten(list) {
+	    return list.reduce(function (a, b) {
+	      return a.concat(Array.isArray(b) ? flatten(b) : b);
+	    }, []);
+	  };
+	
+	  var objectToStrings = function objectToStrings(arg) {
+	    return (0, _keys2.default)(arg).filter(function (key) {
+	      return arg[key];
+	    }).map(function (key) {
+	      return key;
+	    });
+	  };
+	
+	  return args.filter(function (arg) {
+	    return !!arg;
+	  }).map(function (arg) {
+	    return isString(arg) ? arg : objectToStrings(arg);
+	  }).reduce(function (result, arg) {
+	    return result.concat(Array.isArray(arg) ? flatten(arg) : arg);
+	  }, []);
+	};
+	
+	/**
+	 * A simple javascript utility for conditionally joining strings together.
+	 * The function takes a delimiter string and any number of arguments which can be a string or object.
+	 *
+	 * @param delimiter delimiter to separate joined strings
+	 * @param  {*} args the strings and/or objects to join
+	 * @return {String} the joined strings
+	 * @example
+	 * // Returns 'foo, bar, baz, quux'
+	 * joinStrings(', ', 'foo', { bar: true, duck: false }, 'baz', { quux: true });
+	 * @example see the tests for more examples
+	 */
+	var joinStrings = function joinStrings() {
+	  for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
+	    args[_key2 - 1] = arguments[_key2];
+	  }
+	
+	  var delimiter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' ';
+	  return stringList.apply(undefined, args).join(delimiter);
+	};
+	
+	/**
+	 * Generates a random string with a given length
+	 * @param n {Integer} length of generated string
+	 * @see http://stackoverflow.com/questions/1349404/generate-random-string-characters-in-javascript
+	 * @return {String} the random string
+	 * @example
+	 * // Returns e.g. 'pd781w0y'
+	 * randomString(8);
+	 * @example see the tests for more examples
+	 */
+	var randomString = function randomString() {
+	  var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 12;
+	  return Array(n + 1).join((Math.random().toString(36) + '00000000000000000').slice(2, 18)).slice(0, n);
+	};
+	
+	exports.joinStrings = joinStrings;
+	exports.randomString = randomString;
+	exports.stringList = stringList;
+
+/***/ },
+/* 16 */
+/***/ function(module, exports) {
+
+	var hasOwnProperty = {}.hasOwnProperty;
+	module.exports = function(it, key){
+	  return hasOwnProperty.call(it, key);
+	};
+
+/***/ },
+/* 17 */
+/***/ function(module, exports) {
+
+	module.exports = function(it){
+	  return typeof it === 'object' ? it !== null : typeof it === 'function';
+	};
+
+/***/ },
+/* 18 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// 19.1.2.14 / 15.2.3.14 Object.keys(O)
+	var $keys       = __webpack_require__(95)
+	  , enumBugKeys = __webpack_require__(39);
+	
+	module.exports = Object.keys || function keys(O){
+	  return $keys(O, enumBugKeys);
+	};
+
+/***/ },
+/* 19 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// to indexed object, toObject with fallback for non-array-like ES3 strings
+	var IObject = __webpack_require__(40)
+	  , defined = __webpack_require__(24);
+	module.exports = function(it){
+	  return IObject(defined(it));
+	};
+
+/***/ },
+/* 20 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// 7.1.13 ToObject(argument)
+	var defined = __webpack_require__(24);
+	module.exports = function(it){
+	  return Object(defined(it));
+	};
+
+/***/ },
+/* 21 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	
+	Object.defineProperty(exports, "__esModule", {
+	  value: true
+	});
+	exports.tether = exports.removeChildElements = exports.moveElements = exports.isRectInsideWindowViewport = exports.isFocusable = exports.getScrollParents = exports.getParentElements = exports.getWindowViewport = undefined;
+	
+	var _isNan = __webpack_require__(62);
+	
+	var _isNan2 = _interopRequireDefault(_isNan);
+	
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+	
+	/**
+	 * Remove child element(s)
+	 * element.innerHTNL = '' has a performance penality!
+	 * @see http://jsperf.com/empty-an-element/16
+	 * @see http://jsperf.com/force-reflow
+	 * @param element
+	 * @param forceReflow
+	 */
+	var removeChildElements = function removeChildElements(element) {
+	  var forceReflow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
+	
+	
+	  // See: http://jsperf.com/empty-an-element/16
+	  while (element.lastChild) {
+	    element.removeChild(element.lastChild);
+	  }
+	  if (forceReflow) {
+	    // See: http://jsperf.com/force-reflow
+	    var d = element.style.display;
+	
+	    element.style.display = 'none';
+	    element.style.display = d;
+	  }
+	};
+	
+	/**
+	 * Moves child elements from a DOM node to another dom node.
+	 * @param source {HTMLElement}
+	 * @param target {HTMLElement} If the target parameter is ommited, a document fragment is created
+	 * @return {HTMLElement} The target node
+	 *
+	 * @example
+	 * // Moves child elements from a DOM node to another dom node.
+	 * moveElements(source, destination);
+	 *
+	 * @example
+	 * // If the second parameter is ommited, a document fragment is created:
+	 * let fragment = moveElements(source);
+	 *
+	 * @See: https://github.com/webmodules/dom-move
+	 */
+	var moveElements = function moveElements(source, target) {
+	  if (!target) {
+	    target = source.ownerDocument.createDocumentFragment();
+	  }
+	  while (source.firstChild) {
+	    target.appendChild(source.firstChild);
+	  }
+	  return target;
+	};
+	
+	/**
+	 * Get the browser viewport dimensions
+	 * @see http://stackoverflow.com/questions/1248081/get-the-browser-viewport-dimensions-with-javascript
+	 * @return {{windowWidth: number, windowHeight: number}}
+	 */
+	var getWindowViewport = function getWindowViewport() {
+	  return {
+	    viewportWidth: Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0),
+	    viewportHeight: Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0)
+	  };
+	};
+	
+	/**
+	 * Check whether an element is in the window viewport
+	 * @see http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport/
+	 * @param top
+	 * @param left
+	 * @param bottom
+	 * @param right
+	 * @return {boolean} true if rectangle is inside window viewport, otherwise false
+	 */
+	var isRectInsideWindowViewport = function isRectInsideWindowViewport(_ref) {
+	  var top = _ref.top,
+	      left = _ref.left,
+	      bottom = _ref.bottom,
+	      right = _ref.right;
+	
+	  var _getWindowViewport = getWindowViewport(),
+	      viewportWidth = _getWindowViewport.viewportWidth,
+	      viewportHeight = _getWindowViewport.viewportHeight;
+	
+	  return top >= 0 && left >= 0 && bottom <= viewportHeight && right <= viewportWidth;
+	};
+	
+	/**
+	 * Get a list of parent elements that can possibly scroll
+	 * @param el the element to get parents for
+	 * @returns {Array}
+	 */
+	var getScrollParents = function getScrollParents(el) {
+	  var elements = [];
+	
+	  /*
+	  for (el = el.parentNode; el; el = el.parentNode) {
+	    const cs = window.getComputedStyle(el);
+	    if(!(cs.overflowY === 'hidden' && cs.overflowX === 'hidden')) {
+	      elements.unshift(el);
+	    }
+	    if(el === document.body) {
+	      break;
+	    }
+	  }
+	  */
+	
+	  var element = el.parentNode;
+	  while (element) {
+	    var cs = window.getComputedStyle(element);
+	    if (!(cs.overflowY === 'hidden' && cs.overflowX === 'hidden')) {
+	      elements.unshift(element);
+	    }
+	    if (element === document.body) {
+	      break;
+	    }
+	    element = element.parentNode;
+	  }
+	
+	  return elements;
+	};
+	
+	/**
+	 * Get a list of parent elements, from a given element to a given element
+	 * @param {HTMLElement} from
+	 * @param {HTMLElement} to
+	 * @return {Array<HTMLElement>} the parent elements, not including from and to
+	 */
+	var getParentElements = function getParentElements(from, to) {
+	  var result = [];
+	  var element = from.parentNode;
+	  while (element) {
+	    if (element === to) {
+	      break;
+	    }
+	    result.unshift(element);
+	    element = element.parentNode;
+	  }
+	  return result;
+	};
+	
+	/**
+	 * Position element next to button
+	 *
+	 * Positioning strategy
+	 *  1. element.height > viewport.height
+	 *     let element.height = viewport.heigt
+	 *     let element.overflow-y = auto
+	 *  2. element.width > viewport.width
+	 *     let element.width = viewport.width
+	 *  3. position element below button, align left edge of element with button left
+	 *       done if element inside viewport
+	 *  4. position element below button, align right edge of element with button right
+	 *       done if element inside viewport
+	 *  5. positions element above button, aligns left edge of element with button left
+	 *       done if element inside viewport
+	 *  6. position element above the control element, aligned to its right.
+	 *       done if element inside viewport
+	 *  7. position element at button right hand side, aligns element top with button top
+	 *       done if element inside viewport
+	 *  8. position element at button left hand side, aligns element top with button top
+	 *       done if element inside viewport
+	 *  9. position element inside viewport
+	 *     1. position element at viewport bottom
+	 *     2. position element at button right hand side
+	 *        done if element inside viewport
+	 *     3. position element at button left hand side
+	 *       done if element inside viewport
+	 *     4. position element at viewport right
+	 * 10. done
+	 *
+	 */
+	var tether = function tether(controlledBy, element) {
+	  var controlRect = controlledBy.getBoundingClientRect();
+	
+	  // 1. will element height fit inside window viewport?
+	
+	  var _getWindowViewport2 = getWindowViewport(),
+	      viewportWidth = _getWindowViewport2.viewportWidth,
+	      viewportHeight = _getWindowViewport2.viewportHeight;
+	
+	  element.style.height = 'auto';
+	  //element.style.overflowY = 'hidden';
+	  if (element.offsetHeight > viewportHeight) {
+	    element.style.height = viewportHeight + 'px';
+	    element.style.overflowY = 'auto';
+	  }
+	
+	  // 2. will element width fit inside window viewport?
+	  element.style.width = 'auto';
+	  if (element.offsetWidth > viewportWidth) {
+	    element.style.width = viewportWidth + 'px';
+	  }
+	
+	  var elementRect = element.getBoundingClientRect();
+	
+	  // element to control distance
+	  var dy = controlRect.top - elementRect.top;
+	  var dx = controlRect.left - elementRect.left;
+	
+	  // element rect, window coordinates relative to top,left of control
+	  var top = elementRect.top + dy;
+	  var left = elementRect.left + dx;
+	  var bottom = top + elementRect.height;
+	  var right = left + elementRect.width;
+	
+	  // Position relative to control
+	  var ddy = dy;
+	  var ddx = dx;
+	
+	  if (isRectInsideWindowViewport({
+	    top: top + controlRect.height,
+	    left: left,
+	    bottom: bottom + controlRect.height,
+	    right: right
+	  })) {
+	    // 3 position element below the control element, aligned to its left
+	    ddy = controlRect.height + dy;
+	    //console.log('***** 3');
+	  } else if (isRectInsideWindowViewport({
+	    top: top + controlRect.height,
+	    left: left + controlRect.width - elementRect.width,
+	    bottom: bottom + controlRect.height,
+	    right: left + controlRect.width
+	  })) {
+	    // 4 position element below the control element, aligned to its right
+	    ddy = controlRect.height + dy;
+	    ddx = dx + controlRect.width - elementRect.width;
+	    //console.log('***** 4');
+	  } else if (isRectInsideWindowViewport({
+	    top: top - elementRect.height,
+	    left: left,
+	    bottom: bottom - elementRect.height,
+	    right: right
+	  })) {
+	    // 5. position element above the control element, aligned to its left.
+	    ddy = dy - elementRect.height;
+	    //console.log('***** 5');
+	  } else if (isRectInsideWindowViewport({
+	    top: top - elementRect.height,
+	    left: left + controlRect.width - elementRect.width,
+	    bottom: bottom - elementRect.height,
+	    right: left + controlRect.width
+	  })) {
+	    // 6. position element above the control element, aligned to its right.
+	    ddy = dy - elementRect.height;
+	    ddx = dx + controlRect.width - elementRect.width;
+	    //console.log('***** 6');
+	  } else if (isRectInsideWindowViewport({
+	    top: top,
+	    left: left + controlRect.width,
+	    bottom: bottom,
+	    right: right + controlRect.width
+	  })) {
+	    // 7. position element at button right hand side
+	    ddx = controlRect.width + dx;
+	    //console.log('***** 7');
+	  } else if (isRectInsideWindowViewport({
+	    top: top,
+	    left: left - controlRect.width,
+	    bottom: bottom,
+	    right: right - controlRect.width
+	  })) {
+	    // 8. position element at button left hand side
+	    ddx = dx - elementRect.width;
+	    //console.log('***** 8');
+	  } else {
+	    // 9. position element inside viewport, near controlrect if possible
+	    //console.log('***** 9');
+	
+	    // 9.1 position element near controlrect bottom
+	    ddy = dy - bottom + viewportHeight;
+	    if (top + controlRect.height >= 0 && bottom + controlRect.height <= viewportHeight) {
+	      ddy = controlRect.height + dy;
+	    } else if (top - elementRect.height >= 0 && bottom - elementRect.height <= viewportHeight) {
+	      ddy = dy - elementRect.height;
+	    }
+	
+	    if (left + elementRect.width + controlRect.width <= viewportWidth) {
+	      // 9.2 Position element at button right hand side
+	      ddx = controlRect.width + dx;
+	      //console.log('***** 9.2');
+	    } else if (left - elementRect.width >= 0) {
+	      // 9.3 Position element at button left hand side
+	      ddx = dx - elementRect.width;
+	      //console.log('***** 9.3');
+	    } else {
+	      // 9.4 position element at (near) viewport right
+	      var r = left + elementRect.width - viewportWidth;
+	      ddx = dx - r;
+	      //console.log('***** 9.4');
+	    }
+	  }
+	
+	  // 10. done
+	  element.style.top = element.offsetTop + ddy + 'px';
+	  element.style.left = element.offsetLeft + ddx + 'px';
+	  //console.log('***** 10. done');
+	};
+	
+	/**
+	 * Check if the given element can receive focus
+	 * @param {HTMLElement} element the element to check
+	 * @return {boolean} true if the element is focusable, otherwise false
+	 */
+	var isFocusable = function isFocusable(element) {
+	  // https://github.com/stephenmathieson/is-focusable/blob/master/index.js
+	  // http://stackoverflow.com/questions/1599660/which-html-elements-can-receive-focus
+	
+	  if (element.hasAttribute('tabindex')) {
+	    var tabindex = element.getAttribute('tabindex');
+	    if (!(0, _isNan2.default)(tabindex)) {
+	      return parseInt(tabindex) > -1;
+	    }
+	  }
+	
+	  if (element.hasAttribute('contenteditable') && element.getAttribute('contenteditable') !== 'false') {
+	    // https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-contenteditable
+	    return true;
+	  }
+	
+	  // natively focusable, but only when enabled
+	  var selector = /input|select|textarea|button|details/i;
+	  var name = element.nodeName;
+	  if (selector.test(name)) {
+	    return element.type.toLowerCase() !== 'hidden' && !element.disabled;
+	  }
+	
+	  // anchors and area must have an href
+	  if (name === 'A' || name === 'AREA') {
+	    return !!element.href;
+	  }
+	
+	  if (name === 'IFRAME') {
+	    // Check visible iframe
+	    var cs = window.getComputedStyle(element);
+	    return cs.getPropertyValue('display').toLowerCase() !== 'none';
+	  }
+	
+	  return false;
+	};
+	
+	/**
+	 * Get a list of offset parents for given element
+	 * @see https://www.benpickles.com/articles/51-finding-a-dom-nodes-common-ancestor-using-javascript
+	 * @param el the element
+	 * @return {Array} a list of offset parents
+	 */
+	/*
+	const offsetParents = (el) => {
+	  const elements = [];
+	  for (; el; el = el.offsetParent) {
+	    elements.unshift(el);
+	  }
+	  if(!elements.find(e => e === document.body)) {
+	    elements.unshift(document.body);
+	  }
+	  return elements;
+	};
+	*/
+	
+	/**
+	 * Finds the common offset ancestor of two DOM nodes
+	 * @see https://www.benpickles.com/articles/51-finding-a-dom-nodes-common-ancestor-using-javascript
+	 * @see https://gist.github.com/benpickles/4059636
+	 * @param a
+	 * @param b
+	 * @return {Element} The common offset ancestor of a and b
+	 */
+	/*
+	const commonOffsetAncestor = (a, b) => {
+	  const parentsA = offsetParents(a);
+	  const parentsB = offsetParents(b);
+	
+	  for (let i = 0; i < parentsA.length; i++) {
+	    if (parentsA[i] !== parentsB[i]) return parentsA[i-1];
+	  }
+	};
+	*/
+	
+	/**
+	 * Calculate position relative to a target element
+	 * @see http://stackoverflow.com/questions/21064101/understanding-offsetwidth-clientwidth-scrollwidth-and-height-respectively
+	 * @param target
+	 * @param el
+	 * @return {{top: number, left: number}}
+	 */
+	/*
+	const calcPositionRelativeToTarget = (target, el) => {
+	  let top = 0;
+	  let left = 0;
+	
+	  while(el) {
+	    top += (el.offsetTop - el.scrollTop + el.clientTop) || 0;
+	    left += (el.offsetLeft - el.scrollLeft + el.clientLeft) || 0;
+	    el = el.offsetParent;
+	
+	    if(el === target) {
+	      break;
+	    }
+	  }
+	  return { top: top, left: left };
+	};
+	*/
+	
+	exports.getWindowViewport = getWindowViewport;
+	exports.getParentElements = getParentElements;
+	exports.getScrollParents = getScrollParents;
+	exports.isFocusable = isFocusable;
+	exports.isRectInsideWindowViewport = isRectInsideWindowViewport;
+	exports.moveElements = moveElements;
+	exports.removeChildElements = removeChildElements;
+	exports.tether = tether;
+
+/***/ },
+/* 22 */
+/***/ function(module, exports) {
+
+	"use strict";
+	
+	exports.__esModule = true;
+	
+	exports.default = function (instance, Constructor) {
+	  if (!(instance instanceof Constructor)) {
+	    throw new TypeError("Cannot call a class as a function");
+	  }
+	};
+
+/***/ },
+/* 23 */
+/***/ function(module, exports, __webpack_require__) {
+
+	"use strict";
+	
+	exports.__esModule = true;
+	
+	var _defineProperty = __webpack_require__(63);
+	
+	var _defineProperty2 = _interopRequireDefault(_defineProperty);
+	
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+	
+	exports.default = function () {
+	  function defineProperties(target, props) {
+	    for (var i = 0; i < props.length; i++) {
+	      var descriptor = props[i];
+	      descriptor.enumerable = descriptor.enumerable || false;
+	      descriptor.configurable = true;
+	      if ("value" in descriptor) descriptor.writable = true;
+	      (0, _defineProperty2.default)(target, descriptor.key, descriptor);
+	    }
+	  }
+	
+	  return function (Constructor, protoProps, staticProps) {
+	    if (protoProps) defineProperties(Constructor.prototype, protoProps);
+	    if (staticProps) defineProperties(Constructor, staticProps);
+	    return Constructor;
+	  };
+	}();
+
+/***/ },
+/* 24 */
+/***/ function(module, exports) {
+
+	// 7.2.1 RequireObjectCoercible(argument)
+	module.exports = function(it){
+	  if(it == undefined)throw TypeError("Can't call method on  " + it);
+	  return it;
+	};
+
+/***/ },
+/* 25 */
+/***/ function(module, exports) {
+
+	module.exports = function(bitmap, value){
+	  return {
+	    enumerable  : !(bitmap & 1),
+	    configurable: !(bitmap & 2),
+	    writable    : !(bitmap & 4),
+	    value       : value
+	  };
+	};
+
+/***/ },
+/* 26 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var shared = __webpack_require__(44)('keys')
+	  , uid    = __webpack_require__(46);
+	module.exports = function(key){
+	  return shared[key] || (shared[key] = uid(key));
+	};
+
+/***/ },
+/* 27 */
+/***/ function(module, exports) {
+
+	// 7.1.4 ToInteger
+	var ceil  = Math.ceil
+	  , floor = Math.floor;
+	module.exports = function(it){
+	  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
+	};
+
+/***/ },
+/* 28 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	var $at  = __webpack_require__(99)(true);
+	
+	// 21.1.3.27 String.prototype[@@iterator]()
+	__webpack_require__(41)(String, 'String', function(iterated){
+	  this._t = String(iterated); // target
+	  this._i = 0;                // next index
+	// 21.1.5.2.1 %StringIteratorPrototype%.next()
+	}, function(){
+	  var O     = this._t
+	    , index = this._i
+	    , point;
+	  if(index >= O.length)return {value: undefined, done: true};
+	  point = $at(O, index);
+	  this._i += point.length;
+	  return {value: point, done: false};
+	});
+
+/***/ },
+/* 29 */
+/***/ function(module, exports) {
+
+	'use strict';
+	
+	// See: http://robertpenner.com/easing/
+	
+	Object.defineProperty(exports, "__esModule", {
+	  value: true
+	});
+	var easeInOutQuad = function easeInOutQuad(t, b, c, d) {
+	  t /= d / 2;
+	  if (t < 1) return c / 2 * t * t + b;
+	  t--;
+	  return -c / 2 * (t * (t - 2) - 1) + b;
+	};
+	
+	var inOutQuintic = function inOutQuintic(t, b, c, d) {
+	  var ts = (t /= d) * t;
+	  var tc = ts * t;
+	  return b + c * (6 * tc * ts + -15 * ts * ts + 10 * tc);
+	};
+	
+	exports.easeInOutQuad = easeInOutQuad;
+	exports.inOutQuintic = inOutQuintic;
+
+/***/ },
+/* 30 */
+/***/ function(module, exports) {
+
+	'use strict';
+	
+	Object.defineProperty(exports, "__esModule", {
+	  value: true
+	});
+	var MIN_INERVAL = 1000 / 60;
+	
+	/**
+	 * Trigger a callback at a given interval
+	 * @param interval defaults to 1000/60 ms
+	 * @return {function()} reference to start, stop, immediate and started
+	 */
+	
+	var intervalFunction = function intervalFunction() {
+	  var interval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MIN_INERVAL;
+	
+	
+	  var lapse = interval < MIN_INERVAL ? MIN_INERVAL : interval;
+	  var cb = undefined;
+	  var next = null;
+	  var timeElapsed = 0;
+	
+	  var execute = function execute() {
+	    var f = cb(timeElapsed);
+	    if (!f) {
+	      cancel();
+	    }
+	  };
+	
+	  var cancel = function cancel() {
+	    if (next) {
+	      window.cancelAnimationFrame(next);
+	    }
+	    next = null;
+	    timeElapsed = 0;
+	  };
+	
+	  var _start = function _start() {
+	    var timeStart = Date.now();
+	
+	    var loop = function loop(now) {
+	      if (next) {
+	        next = window.requestAnimationFrame(function () {
+	          return loop(Date.now());
+	        });
+	
+	        timeElapsed += now - timeStart;
+	
+	        if (timeElapsed >= lapse) {
+	          execute();
+	          if ((timeElapsed -= lapse) > lapse) {
+	            // time elapsed - interval_ > interval_ , indicates inactivity
+	            // Could be due to browser minimized, tab changed, screen saver started, computer sleep, and so on
+	            timeElapsed = 0;
+	          }
+	        }
+	        timeStart = now;
+	      }
+	    };
+	
+	    next = 1; // a truthy value for first loop
+	    loop(timeStart);
+	  };
+	
+	  return {
+	    get started() {
+	      return next != null;
+	    },
+	    get interval() {
+	      return lapse;
+	    },
+	    set interval(value) {
+	      lapse = value < MIN_INERVAL ? MIN_INERVAL : value;
+	    },
+	    start: function start(callback) {
+	      if (typeof callback !== 'function') {
+	        throw new TypeError('callback parameter must be a function');
+	      }
+	      cb = callback;
+	      _start();
+	    },
+	    immediate: function immediate() {
+	      if (!cb) {
+	        throw new ReferenceError('callback parameter is not defined. Call start before immediate.');
+	      }
+	      execute();
+	    },
+	
+	    stop: function stop() {
+	      return cancel();
+	    }
+	  };
+	};
+	
+	exports.default = intervalFunction;
+	module.exports = exports['default'];
+
+/***/ },
+/* 31 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(69), __esModule: true };
+
+/***/ },
+/* 32 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(71), __esModule: true };
+
+/***/ },
+/* 33 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(73), __esModule: true };
+
+/***/ },
+/* 34 */
+/***/ function(module, exports) {
+
+	module.exports = function(it){
+	  if(typeof it != 'function')throw TypeError(it + ' is not a function!');
+	  return it;
+	};
+
+/***/ },
+/* 35 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// getting tag from 19.1.3.6 Object.prototype.toString()
+	var cof = __webpack_require__(36)
+	  , TAG = __webpack_require__(4)('toStringTag')
+	  // ES3 wrong here
+	  , ARG = cof(function(){ return arguments; }()) == 'Arguments';
+	
+	// fallback for IE11 Script Access Denied error
+	var tryGet = function(it, key){
+	  try {
+	    return it[key];
+	  } catch(e){ /* empty */ }
+	};
+	
+	module.exports = function(it){
+	  var O, T, B;
+	  return it === undefined ? 'Undefined' : it === null ? 'Null'
+	    // @@toStringTag case
+	    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
+	    // builtinTag case
+	    : ARG ? cof(O)
+	    // ES3 arguments fallback
+	    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
+	};
+
+/***/ },
+/* 36 */
+/***/ function(module, exports) {
+
+	var toString = {}.toString;
+	
+	module.exports = function(it){
+	  return toString.call(it).slice(8, -1);
+	};
+
+/***/ },
+/* 37 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// optional / simple context binding
+	var aFunction = __webpack_require__(34);
+	module.exports = function(fn, that, length){
+	  aFunction(fn);
+	  if(that === undefined)return fn;
+	  switch(length){
+	    case 1: return function(a){
+	      return fn.call(that, a);
+	    };
+	    case 2: return function(a, b){
+	      return fn.call(that, a, b);
+	    };
+	    case 3: return function(a, b, c){
+	      return fn.call(that, a, b, c);
+	    };
+	  }
+	  return function(/* ...args */){
+	    return fn.apply(that, arguments);
+	  };
+	};
+
+/***/ },
+/* 38 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var isObject = __webpack_require__(17)
+	  , document = __webpack_require__(5).document
+	  // in old IE typeof document.createElement is 'object'
+	  , is = isObject(document) && isObject(document.createElement);
+	module.exports = function(it){
+	  return is ? document.createElement(it) : {};
+	};
+
+/***/ },
+/* 39 */
+/***/ function(module, exports) {
+
+	// IE 8- don't enum bug keys
+	module.exports = (
+	  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
+	).split(',');
+
+/***/ },
+/* 40 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// fallback for non-array-like ES3 and non-enumerable old V8 strings
+	var cof = __webpack_require__(36);
+	module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
+	  return cof(it) == 'String' ? it.split('') : Object(it);
+	};
+
+/***/ },
+/* 41 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	var LIBRARY        = __webpack_require__(89)
+	  , $export        = __webpack_require__(3)
+	  , redefine       = __webpack_require__(98)
+	  , hide           = __webpack_require__(11)
+	  , has            = __webpack_require__(16)
+	  , Iterators      = __webpack_require__(7)
+	  , $iterCreate    = __webpack_require__(86)
+	  , setToStringTag = __webpack_require__(43)
+	  , getPrototypeOf = __webpack_require__(94)
+	  , ITERATOR       = __webpack_require__(4)('iterator')
+	  , BUGGY          = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
+	  , FF_ITERATOR    = '@@iterator'
+	  , KEYS           = 'keys'
+	  , VALUES         = 'values';
+	
+	var returnThis = function(){ return this; };
+	
+	module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){
+	  $iterCreate(Constructor, NAME, next);
+	  var getMethod = function(kind){
+	    if(!BUGGY && kind in proto)return proto[kind];
+	    switch(kind){
+	      case KEYS: return function keys(){ return new Constructor(this, kind); };
+	      case VALUES: return function values(){ return new Constructor(this, kind); };
+	    } return function entries(){ return new Constructor(this, kind); };
+	  };
+	  var TAG        = NAME + ' Iterator'
+	    , DEF_VALUES = DEFAULT == VALUES
+	    , VALUES_BUG = false
+	    , proto      = Base.prototype
+	    , $native    = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
+	    , $default   = $native || getMethod(DEFAULT)
+	    , $entries   = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined
+	    , $anyNative = NAME == 'Array' ? proto.entries || $native : $native
+	    , methods, key, IteratorPrototype;
+	  // Fix native
+	  if($anyNative){
+	    IteratorPrototype = getPrototypeOf($anyNative.call(new Base));
+	    if(IteratorPrototype !== Object.prototype){
+	      // Set @@toStringTag to native iterators
+	      setToStringTag(IteratorPrototype, TAG, true);
+	      // fix for some old engines
+	      if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
+	    }
+	  }
+	  // fix Array#{values, @@iterator}.name in V8 / FF
+	  if(DEF_VALUES && $native && $native.name !== VALUES){
+	    VALUES_BUG = true;
+	    $default = function values(){ return $native.call(this); };
+	  }
+	  // Define iterator
+	  if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
+	    hide(proto, ITERATOR, $default);
+	  }
+	  // Plug for library
+	  Iterators[NAME] = $default;
+	  Iterators[TAG]  = returnThis;
+	  if(DEFAULT){
+	    methods = {
+	      values:  DEF_VALUES ? $default : getMethod(VALUES),
+	      keys:    IS_SET     ? $default : getMethod(KEYS),
+	      entries: $entries
+	    };
+	    if(FORCED)for(key in methods){
+	      if(!(key in proto))redefine(proto, key, methods[key]);
+	    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
+	  }
+	  return methods;
+	};
+
+/***/ },
+/* 42 */
+/***/ function(module, exports) {
+
+	exports.f = {}.propertyIsEnumerable;
+
+/***/ },
+/* 43 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var def = __webpack_require__(12).f
+	  , has = __webpack_require__(16)
+	  , TAG = __webpack_require__(4)('toStringTag');
+	
+	module.exports = function(it, tag, stat){
+	  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
+	};
+
+/***/ },
+/* 44 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var global = __webpack_require__(5)
+	  , SHARED = '__core-js_shared__'
+	  , store  = global[SHARED] || (global[SHARED] = {});
+	module.exports = function(key){
+	  return store[key] || (store[key] = {});
+	};
+
+/***/ },
+/* 45 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// 7.1.15 ToLength
+	var toInteger = __webpack_require__(27)
+	  , min       = Math.min;
+	module.exports = function(it){
+	  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
+	};
+
+/***/ },
+/* 46 */
+/***/ function(module, exports) {
+
+	var id = 0
+	  , px = Math.random();
+	module.exports = function(key){
+	  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
+	};
+
+/***/ },
+/* 47 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var classof   = __webpack_require__(35)
+	  , ITERATOR  = __webpack_require__(4)('iterator')
+	  , Iterators = __webpack_require__(7);
+	module.exports = __webpack_require__(1).getIteratorMethod = function(it){
+	  if(it != undefined)return it[ITERATOR]
+	    || it['@@iterator']
+	    || Iterators[classof(it)];
+	};
+
+/***/ },
+/* 48 */
+/***/ function(module, exports, __webpack_require__) {
+
+	__webpack_require__(105);
+	var global        = __webpack_require__(5)
+	  , hide          = __webpack_require__(11)
+	  , Iterators     = __webpack_require__(7)
+	  , TO_STRING_TAG = __webpack_require__(4)('toStringTag');
+	
+	for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
+	  var NAME       = collections[i]
+	    , Collection = global[NAME]
+	    , proto      = Collection && Collection.prototype;
+	  if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);
+	  Iterators[NAME] = Iterators.Array;
+	}
+
+/***/ },
+/* 49 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	
+	var _toConsumableArray2 = __webpack_require__(8);
+	
+	var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
+	
+	var _constants = __webpack_require__(2);
+	
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+	
+	(function () {
+	  'use strict';
+	
+	  var ACCORDION = 'mdlext-accordion';
+	  var ACCORDION_VERTICAL = 'mdlext-accordion--vertical';
+	  var ACCORDION_HORIZONTAL = 'mdlext-accordion--horizontal';
+	  var PANEL = 'mdlext-accordion__panel';
+	  var PANEL_ROLE = 'presentation';
+	  var TAB = 'mdlext-accordion__tab';
+	  var TAB_CAPTION = 'mdlext-accordion__tab__caption';
+	  var TAB_ROLE = 'tab';
+	  var TABPANEL = 'mdlext-accordion__tabpanel';
+	  var TABPANEL_ROLE = 'tabpanel';
+	  var RIPPLE_EFFECT = 'mdlext-js-ripple-effect';
+	  var RIPPLE = 'mdlext-accordion__tab--ripple';
+	  var ANIMATION_EFFECT = 'mdlext-js-animation-effect';
+	  var ANIMATION = 'mdlext-accordion__tabpanel--animation';
+	
+	  /**
+	   * @constructor
+	   * @param {Element} element The element that will be upgraded.
+	   */
+	  var MaterialExtAccordion = function MaterialExtAccordion(element) {
+	
+	    // Stores the Accordion HTML element.
+	    this.element_ = element;
+	
+	    // Initialize instance.
+	    this.init();
+	  };
+	  window['MaterialExtAccordion'] = MaterialExtAccordion;
+	
+	  // Helpers
+	  var accordionPanelElements = function accordionPanelElements(element) {
+	    if (!element) {
+	      return {
+	        panel: null,
+	        tab: null,
+	        tabpanel: null
+	      };
+	    } else if (element.classList.contains(PANEL)) {
+	      return {
+	        panel: element,
+	        tab: element.querySelector('.' + TAB),
+	        tabpanel: element.querySelector('.' + TABPANEL)
+	      };
+	    } else {
+	      return {
+	        panel: element.parentNode,
+	        tab: element.parentNode.querySelector('.' + TAB),
+	        tabpanel: element.parentNode.querySelector('.' + TABPANEL)
+	      };
+	    }
+	  };
+	
+	  // Private methods.
+	
+	  /**
+	   * Handles custom command event, 'open', 'close', 'toggle' or upgrade
+	   * @param event. A custom event
+	   * @private
+	   */
+	  MaterialExtAccordion.prototype.commandHandler_ = function (event) {
+	    event.preventDefault();
+	    event.stopPropagation();
+	
+	    if (event && event.detail) {
+	      this.command(event.detail);
+	    }
+	  };
+	
+	  /**
+	   * Dispatch toggle event
+	   * @param {string} state
+	   * @param {Element} tab
+	   * @param {Element} tabpanel
+	   * @private
+	   */
+	  MaterialExtAccordion.prototype.dispatchToggleEvent_ = function (state, tab, tabpanel) {
+	    var ce = new CustomEvent('toggle', {
+	      bubbles: true,
+	      cancelable: true,
+	      detail: { state: state, tab: tab, tabpanel: tabpanel }
+	    });
+	    this.element_.dispatchEvent(ce);
+	  };
+	
+	  /**
+	   * Open tab
+	   * @param {Element} panel
+	   * @param {Element} tab
+	   * @param {Element} tabpanel
+	   * @private
+	   */
+	  MaterialExtAccordion.prototype.openTab_ = function (panel, tab, tabpanel) {
+	    panel.classList.add(_constants.IS_EXPANDED);
+	    tab.setAttribute(_constants.ARIA_EXPANDED, 'true');
+	    tabpanel.removeAttribute('hidden');
+	    tabpanel.setAttribute(_constants.ARIA_HIDDEN, 'false');
+	    this.dispatchToggleEvent_('open', tab, tabpanel);
+	  };
+	
+	  /**
+	   * Close tab
+	   * @param {Element} panel
+	   * @param {Element} tab
+	   * @param {Element} tabpanel
+	   * @private
+	   */
+	  MaterialExtAccordion.prototype.closeTab_ = function (panel, tab, tabpanel) {
+	    panel.classList.remove(_constants.IS_EXPANDED);
+	    tab.setAttribute(_constants.ARIA_EXPANDED, 'false');
+	    tabpanel.setAttribute('hidden', '');
+	    tabpanel.setAttribute(_constants.ARIA_HIDDEN, 'true');
+	    this.dispatchToggleEvent_('close', tab, tabpanel);
+	  };
+	
+	  /**
+	   * Toggle tab
+	   * @param {Element} panel
+	   * @param {Element} tab
+	   * @param {Element} tabpanel
+	   * @private
+	   */
+	  MaterialExtAccordion.prototype.toggleTab_ = function (panel, tab, tabpanel) {
+	    if (!(this.element_.hasAttribute('disabled') || tab.hasAttribute('disabled'))) {
+	      if (tab.getAttribute(_constants.ARIA_EXPANDED).toLowerCase() === 'true') {
+	        this.closeTab_(panel, tab, tabpanel);
+	      } else {
+	        if (this.element_.getAttribute(_constants.ARIA_MULTISELECTABLE).toLowerCase() !== 'true') {
+	          this.closeTabs_();
+	        }
+	        this.openTab_(panel, tab, tabpanel);
+	      }
+	    }
+	  };
+	
+	  /**
+	   * Open tabs
+	   * @private
+	   */
+	  MaterialExtAccordion.prototype.openTabs_ = function () {
+	    var _this = this;
+	
+	    if (this.element_.getAttribute(_constants.ARIA_MULTISELECTABLE).toLowerCase() === 'true') {
+	      [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + ACCORDION + ' > .' + PANEL))).filter(function (panel) {
+	        return !panel.classList.contains(_constants.IS_EXPANDED);
+	      }).forEach(function (closedItem) {
+	        var tab = closedItem.querySelector('.' + TAB);
+	        if (!tab.hasAttribute('disabled')) {
+	          _this.openTab_(closedItem, tab, closedItem.querySelector('.' + TABPANEL));
+	        }
+	      });
+	    }
+	  };
+	
+	  /**
+	   * Close tabs
+	   * @private
+	   */
+	  MaterialExtAccordion.prototype.closeTabs_ = function () {
+	    var _this2 = this;
+	
+	    [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + ACCORDION + ' > .' + PANEL + '.' + _constants.IS_EXPANDED))).forEach(function (panel) {
+	      var tab = panel.querySelector('.' + TAB);
+	      if (!tab.hasAttribute('disabled')) {
+	        _this2.closeTab_(panel, tab, panel.querySelector('.' + TABPANEL));
+	      }
+	    });
+	  };
+	
+	  // Public methods.
+	
+	  /**
+	   * Upgrade an individual accordion tab
+	   * @public
+	   * @param {Element} tabElement The HTML element for the accordion panel.
+	   */
+	  MaterialExtAccordion.prototype.upgradeTab = function (tabElement) {
+	    var _this3 = this;
+	
+	    var _accordionPanelElemen = accordionPanelElements(tabElement),
+	        panel = _accordionPanelElemen.panel,
+	        tab = _accordionPanelElemen.tab,
+	        tabpanel = _accordionPanelElemen.tabpanel;
+	
+	    var disableTab = function disableTab() {
+	      panel.classList.remove(_constants.IS_EXPANDED);
+	      tab.setAttribute('tabindex', '-1');
+	      tab.setAttribute(_constants.ARIA_EXPANDED, 'false');
+	      tabpanel.setAttribute('hidden', '');
+	      tabpanel.setAttribute(_constants.ARIA_HIDDEN, 'true');
+	    };
+	
+	    var enableTab = function enableTab() {
+	      if (!tab.hasAttribute(_constants.ARIA_EXPANDED)) {
+	        tab.setAttribute(_constants.ARIA_EXPANDED, 'false');
+	      }
+	
+	      tab.setAttribute('tabindex', '0');
+	
+	      if (tab.getAttribute(_constants.ARIA_EXPANDED).toLowerCase() === 'true') {
+	        panel.classList.add(_constants.IS_EXPANDED);
+	        tabpanel.removeAttribute('hidden');
+	        tabpanel.setAttribute(_constants.ARIA_HIDDEN, 'false');
+	      } else {
+	        panel.classList.remove(_constants.IS_EXPANDED);
+	        tabpanel.setAttribute('hidden', '');
+	        tabpanel.setAttribute(_constants.ARIA_HIDDEN, 'true');
+	      }
+	    };
+	
+	    // In horizontal layout, caption must have a max-width defined to prevent pushing elements to the right of the caption out of view.
+	    // In JsDom, offsetWidth and offsetHeight properties do not work, so this function is not testable.
+	    /* istanbul ignore next */
+	    var calcMaxTabCaptionWidth = function calcMaxTabCaptionWidth() {
+	
+	      var tabCaption = tab.querySelector('.' + TAB_CAPTION);
+	      if (tabCaption !== null) {
+	        var w = [].concat((0, _toConsumableArray3.default)(tab.children)).filter(function (el) {
+	          return el.classList && !el.classList.contains(TAB_CAPTION);
+	        }).reduce(function (v, el) {
+	          return v + el.offsetWidth;
+	        }, 0);
+	
+	        var maxWidth = tab.clientHeight - w;
+	        if (maxWidth > 0) {
+	          tabCaption.style['max-width'] = maxWidth + 'px';
+	        }
+	      }
+	    };
+	
+	    var selectTab = function selectTab() {
+	      if (!tab.hasAttribute(_constants.ARIA_SELECTED)) {
+	        [].concat((0, _toConsumableArray3.default)(_this3.element_.querySelectorAll('.' + TAB + '[aria-selected="true"]'))).forEach(function (selectedTab) {
+	          return selectedTab.removeAttribute(_constants.ARIA_SELECTED);
+	        });
+	        tab.setAttribute(_constants.ARIA_SELECTED, 'true');
+	      }
+	    };
+	
+	    var tabClickHandler = function tabClickHandler() {
+	      _this3.toggleTab_(panel, tab, tabpanel);
+	      selectTab();
+	    };
+	
+	    var tabFocusHandler = function tabFocusHandler() {
+	      selectTab();
+	    };
+	
+	    var tabpanelClickHandler = function tabpanelClickHandler() {
+	      selectTab();
+	    };
+	
+	    var tabpanelFocusHandler = function tabpanelFocusHandler() {
+	      selectTab();
+	    };
+	
+	    var tabKeydownHandler = function tabKeydownHandler(e) {
+	
+	      if (_this3.element_.hasAttribute('disabled')) {
+	        return;
+	      }
+	
+	      if (e.keyCode === _constants.VK_END || e.keyCode === _constants.VK_HOME || e.keyCode === _constants.VK_ARROW_UP || e.keyCode === _constants.VK_ARROW_LEFT || e.keyCode === _constants.VK_ARROW_DOWN || e.keyCode === _constants.VK_ARROW_RIGHT) {
+	
+	        var nextTab = null;
+	        var keyCode = e.keyCode;
+	
+	        if (keyCode === _constants.VK_HOME) {
+	          nextTab = _this3.element_.querySelector('.' + PANEL + ':first-child > .' + TAB);
+	          if (nextTab && nextTab.hasAttribute('disabled')) {
+	            nextTab = null;
+	            keyCode = _constants.VK_ARROW_DOWN;
+	          }
+	        } else if (keyCode === _constants.VK_END) {
+	          nextTab = _this3.element_.querySelector('.' + PANEL + ':last-child > .' + TAB);
+	          if (nextTab && nextTab.hasAttribute('disabled')) {
+	            nextTab = null;
+	            keyCode = _constants.VK_ARROW_UP;
+	          }
+	        }
+	
+	        if (!nextTab) {
+	          var nextPanel = panel;
+	
+	          do {
+	            if (keyCode === _constants.VK_ARROW_UP || keyCode === _constants.VK_ARROW_LEFT) {
+	              nextPanel = nextPanel.previousElementSibling;
+	              if (!nextPanel) {
+	                nextPanel = _this3.element_.querySelector('.' + PANEL + ':last-child');
+	              }
+	              if (nextPanel) {
+	                nextTab = nextPanel.querySelector('.' + PANEL + ' > .' + TAB);
+	              }
+	            } else if (keyCode === _constants.VK_ARROW_DOWN || keyCode === _constants.VK_ARROW_RIGHT) {
+	              nextPanel = nextPanel.nextElementSibling;
+	              if (!nextPanel) {
+	                nextPanel = _this3.element_.querySelector('.' + PANEL + ':first-child');
+	              }
+	              if (nextPanel) {
+	                nextTab = nextPanel.querySelector('.' + PANEL + ' > .' + TAB);
+	              }
+	            }
+	
+	            if (nextTab && nextTab.hasAttribute('disabled')) {
+	              nextTab = null;
+	            } else {
+	              break;
+	            }
+	          } while (nextPanel !== panel);
+	        }
+	
+	        if (nextTab) {
+	          e.preventDefault();
+	          e.stopPropagation();
+	          nextTab.focus();
+	
+	          // Workaround for JSDom testing:
+	          // In JsDom 'element.focus()' does not trigger any focus event
+	          if (!nextTab.hasAttribute(_constants.ARIA_SELECTED)) {
+	
+	            [].concat((0, _toConsumableArray3.default)(_this3.element_.querySelectorAll('.' + TAB + '[aria-selected="true"]'))).forEach(function (selectedTab) {
+	              return selectedTab.removeAttribute(_constants.ARIA_SELECTED);
+	            });
+	
+	            nextTab.setAttribute(_constants.ARIA_SELECTED, 'true');
+	          }
+	        }
+	      } else if (e.keyCode === _constants.VK_ENTER || e.keyCode === _constants.VK_SPACE) {
+	        e.preventDefault();
+	        e.stopPropagation();
+	        _this3.toggleTab_(panel, tab, tabpanel);
+	      }
+	    };
+	
+	    if (tab === null) {
+	      throw new Error('There must be a tab element for each accordion panel.');
+	    }
+	
+	    if (tabpanel === null) {
+	      throw new Error('There must be a tabpanel element for each accordion panel.');
+	    }
+	
+	    panel.setAttribute('role', PANEL_ROLE);
+	    tab.setAttribute('role', TAB_ROLE);
+	    tabpanel.setAttribute('role', TABPANEL_ROLE);
+	
+	    if (tab.hasAttribute('disabled')) {
+	      disableTab();
+	    } else {
+	      enableTab();
+	    }
+	
+	    if (this.element_.classList.contains(ACCORDION_HORIZONTAL)) {
+	      calcMaxTabCaptionWidth();
+	    }
+	
+	    if (this.element_.classList.contains(RIPPLE_EFFECT)) {
+	      tab.classList.add(RIPPLE);
+	    }
+	
+	    if (this.element_.classList.contains(ANIMATION_EFFECT)) {
+	      tabpanel.classList.add(ANIMATION);
+	    }
+	
+	    // Remove listeners, just in case ...
+	    tab.removeEventListener('click', tabClickHandler);
+	    tab.removeEventListener('focus', tabFocusHandler);
+	    tab.removeEventListener('keydown', tabKeydownHandler);
+	    tabpanel.removeEventListener('click', tabpanelClickHandler);
+	    tabpanel.removeEventListener('focus', tabpanelFocusHandler);
+	
+	    tab.addEventListener('click', tabClickHandler);
+	    tab.addEventListener('focus', tabFocusHandler);
+	    tab.addEventListener('keydown', tabKeydownHandler);
+	    tabpanel.addEventListener('click', tabpanelClickHandler, true);
+	    tabpanel.addEventListener('focus', tabpanelFocusHandler, true);
+	  };
+	  MaterialExtAccordion.prototype['upgradeTab'] = MaterialExtAccordion.prototype.upgradeTab;
+	
+	  /**
+	   * Execute command
+	   * @param detail
+	   */
+	  MaterialExtAccordion.prototype.command = function (detail) {
+	    var _this4 = this;
+	
+	    var openTab = function openTab(tabElement) {
+	
+	      if (tabElement === undefined) {
+	        _this4.openTabs_();
+	      } else if (tabElement !== null) {
+	        var _accordionPanelElemen2 = accordionPanelElements(tabElement),
+	            panel = _accordionPanelElemen2.panel,
+	            tab = _accordionPanelElemen2.tab,
+	            tabpanel = _accordionPanelElemen2.tabpanel;
+	
+	        if (tab.getAttribute(_constants.ARIA_EXPANDED).toLowerCase() !== 'true') {
+	          _this4.toggleTab_(panel, tab, tabpanel);
+	        }
+	      }
+	    };
+	
+	    var closeTab = function closeTab(tabElement) {
+	      if (tabElement === undefined) {
+	        _this4.closeTabs_();
+	      } else if (tabElement !== null) {
+	        var _accordionPanelElemen3 = accordionPanelElements(tabElement),
+	            panel = _accordionPanelElemen3.panel,
+	            tab = _accordionPanelElemen3.tab,
+	            tabpanel = _accordionPanelElemen3.tabpanel;
+	
+	        if (tab.getAttribute(_constants.ARIA_EXPANDED).toLowerCase() === 'true') {
+	          _this4.toggleTab_(panel, tab, tabpanel);
+	        }
+	      }
+	    };
+	
+	    var toggleTab = function toggleTab(tabElement) {
+	      if (tabElement) {
+	        var _accordionPanelElemen4 = accordionPanelElements(tabElement),
+	            panel = _accordionPanelElemen4.panel,
+	            tab = _accordionPanelElemen4.tab,
+	            tabpanel = _accordionPanelElemen4.tabpanel;
+	
+	        _this4.toggleTab_(panel, tab, tabpanel);
+	      }
+	    };
+	
+	    if (detail && detail.action) {
+	      var action = detail.action,
+	          target = detail.target;
+	
+	
+	      switch (action.toLowerCase()) {
+	        case 'open':
+	          openTab(target);
+	          break;
+	        case 'close':
+	          closeTab(target);
+	          break;
+	        case 'toggle':
+	          toggleTab(target);
+	          break;
+	        case 'upgrade':
+	          if (target) {
+	            this.upgradeTab(target);
+	          }
+	          break;
+	        default:
+	          throw new Error('Unknown action "' + action + '". Action must be one of "open", "close", "toggle" or "upgrade"');
+	      }
+	    }
+	  };
+	  MaterialExtAccordion.prototype['command'] = MaterialExtAccordion.prototype.command;
+	
+	  /**
+	   * Initialize component
+	   */
+	  MaterialExtAccordion.prototype.init = function () {
+	    var _this5 = this;
+	
+	    if (this.element_) {
+	      // Do the init required for this component to work
+	      if (!(this.element_.classList.contains(ACCORDION_HORIZONTAL) || this.element_.classList.contains(ACCORDION_VERTICAL))) {
+	        throw new Error('Accordion must have one of the classes "' + ACCORDION_HORIZONTAL + '" or "' + ACCORDION_VERTICAL + '"');
+	      }
+	
+	      this.element_.setAttribute('role', 'tablist');
+	
+	      if (!this.element_.hasAttribute(_constants.ARIA_MULTISELECTABLE)) {
+	        this.element_.setAttribute(_constants.ARIA_MULTISELECTABLE, 'false');
+	      }
+	
+	      this.element_.removeEventListener('command', this.commandHandler_);
+	      this.element_.addEventListener('command', this.commandHandler_.bind(this), false);
+	
+	      [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + ACCORDION + ' > .' + PANEL))).forEach(function (panel) {
+	        return _this5.upgradeTab(panel);
+	      });
+	
+	      // Set upgraded flag
+	      this.element_.classList.add(_constants.IS_UPGRADED);
+	    }
+	  };
+	
+	  /*
+	   * Downgrade component
+	   * E.g remove listeners and clean up resources
+	   *
+	   * Nothing to downgrade
+	   *
+	   MaterialExtAccordion.prototype.mdlDowngrade_ = function() {
+	     'use strict';
+	     console.log('***** MaterialExtAccordion.mdlDowngrade');
+	   };
+	   */
+	
+	  // The component registers itself. It can assume componentHandler is available
+	  // in the global scope.
+	  /* eslint no-undef: 0 */
+	  componentHandler.register({
+	    constructor: MaterialExtAccordion,
+	    classAsString: 'MaterialExtAccordion',
+	    cssClass: 'mdlext-js-accordion',
+	    widget: true
+	  });
+	})(); /**
+	       * @license
+	       * Copyright 2016 Leif Olsen. All Rights Reserved.
+	       *
+	       * Licensed under the Apache License, Version 2.0 (the "License");
+	       * you may not use this file except in compliance with the License.
+	       * You may obtain a copy of the License at
+	       *
+	       *      http://www.apache.org/licenses/LICENSE-2.0
+	       *
+	       * Unless required by applicable law or agreed to in writing, software
+	       * distributed under the License is distributed on an "AS IS" BASIS,
+	       * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	       * See the License for the specific language governing permissions and
+	       * limitations under the License.
+	       *
+	       * This code is built with Google Material Design Lite,
+	       * which is Licensed under the Apache License, Version 2.0
+	       */
+	
+	/**
+	 * A WAI-ARIA friendly accordion component.
+	 * An accordion is a collection of expandable panels associated with a common outer container. Panels consist
+	 * of a header and an associated content region or tabpanel. The primary use of an Accordion is to present multiple sections
+	 * of content on a single page without scrolling, where all of the sections are peers in the application or object hierarchy.
+	 * The general look is similar to a tree where each root tree node is an expandable accordion header. The user navigates
+	 * and makes the contents of each panel visible (or not) by interacting with the Accordion Header
+	 */
+
+/***/ },
+/* 50 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	
+	var _isInteger = __webpack_require__(32);
+	
+	var _isInteger2 = _interopRequireDefault(_isInteger);
+	
+	var _toConsumableArray2 = __webpack_require__(8);
+	
+	var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
+	
+	var _assign = __webpack_require__(33);
+	
+	var _assign2 = _interopRequireDefault(_assign);
+	
+	var _intervalFunction = __webpack_require__(30);
+	
+	var _intervalFunction2 = _interopRequireDefault(_intervalFunction);
+	
+	var _easing = __webpack_require__(29);
+	
+	var _jsonUtils = __webpack_require__(14);
+	
+	var _constants = __webpack_require__(2);
+	
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+	
+	/**
+	 * @license
+	 * Copyright 2016 Leif Olsen. All Rights Reserved.
+	 *
+	 * Licensed under the Apache License, Version 2.0 (the "License");
+	 * you may not use this file except in compliance with the License.
+	 * You may obtain a copy of the License at
+	 *
+	 *      http://www.apache.org/licenses/LICENSE-2.0
+	 *
+	 * Unless required by applicable law or agreed to in writing, software
+	 * distributed under the License is distributed on an "AS IS" BASIS,
+	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	 * See the License for the specific language governing permissions and
+	 * limitations under the License.
+	 *
+	 * This code is built with Google Material Design Lite,
+	 * which is Licensed under the Apache License, Version 2.0
+	 */
+	
+	/**
+	 * Image carousel
+	 */
+	
+	var MDL_RIPPLE_CONTAINER = 'mdlext-carousel__slide__ripple-container';
+	
+	(function () {
+	  'use strict';
+	
+	  //const CAROUSEL = 'mdlext-carousel';
+	
+	  var SLIDE = 'mdlext-carousel__slide';
+	  var ROLE = 'list';
+	  var SLIDE_ROLE = 'listitem';
+	
+	  /**
+	   * @constructor
+	   * @param {Element} element The element that will be upgraded.
+	   */
+	  var MaterialExtCarousel = function MaterialExtCarousel(element) {
+	    // Stores the element.
+	    this.element_ = element;
+	
+	    // Default config
+	    this.config_ = {
+	      interactive: true,
+	      autostart: false,
+	      type: 'slide',
+	      interval: 1000,
+	      animationLoop: (0, _intervalFunction2.default)(1000)
+	    };
+	
+	    this.scrollAnimation_ = (0, _intervalFunction2.default)(33);
+	
+	    // Initialize instance.
+	    this.init();
+	  };
+	
+	  window['MaterialExtCarousel'] = MaterialExtCarousel;
+	
+	  /**
+	   * Start slideshow animation
+	   * @private
+	   */
+	  MaterialExtCarousel.prototype.startSlideShow_ = function () {
+	    var _this = this;
+	
+	    var nextSlide = function nextSlide() {
+	      var slide = _this.element_.querySelector('.' + SLIDE + '[aria-selected]');
+	      if (slide) {
+	        slide.removeAttribute('aria-selected');
+	        slide = slide.nextElementSibling;
+	      }
+	      if (!slide) {
+	        slide = _this.element_.querySelector('.' + SLIDE + ':first-child');
+	        _this.animateScroll_(0);
+	      }
+	      if (slide) {
+	        _this.moveSlideIntoViewport_(slide);
+	        slide.setAttribute('aria-selected', '');
+	        _this.emitSelectEvent_('next', null, slide);
+	        return true;
+	      }
+	      return false;
+	    };
+	
+	    var nextScroll = function nextScroll(direction) {
+	      var nextDirection = direction;
+	
+	      if ('next' === direction && _this.element_.scrollLeft === _this.element_.scrollWidth - _this.element_.clientWidth) {
+	        nextDirection = 'prev';
+	      } else if (_this.element_.scrollLeft === 0) {
+	        nextDirection = 'next';
+	      }
+	      var x = 'next' === nextDirection ? Math.min(_this.element_.scrollLeft + _this.element_.clientWidth, _this.element_.scrollWidth - _this.element_.clientWidth) : Math.max(_this.element_.scrollLeft - _this.element_.clientWidth, 0);
+	
+	      _this.animateScroll_(x, 1000);
+	      return nextDirection;
+	    };
+	
+	    if (!this.config_.animationLoop.started) {
+	      (function () {
+	        _this.config_.animationLoop.interval = _this.config_.interval;
+	        var direction = 'next';
+	
+	        if ('scroll' === _this.config_.type) {
+	          _this.config_.animationLoop.start(function () {
+	            direction = nextScroll(direction);
+	            return true; // It runs until cancelSlideShow_ is triggered
+	          });
+	        } else {
+	          nextSlide();
+	          _this.config_.animationLoop.start(function () {
+	            return nextSlide(); // It runs until cancelSlideShow_ is triggered
+	          });
+	        }
+	      })();
+	    }
+	
+	    // TODO: Pause animation when carousel is not in browser viewport or user changes tab
+	  };
+	
+	  /**
+	   * Cancel slideshow if running. Emmits a 'pause' event
+	   * @private
+	   */
+	  MaterialExtCarousel.prototype.cancelSlideShow_ = function () {
+	    if (this.config_.animationLoop.started) {
+	      this.config_.animationLoop.stop();
+	      this.emitSelectEvent_('pause', _constants.VK_ESC, this.element_.querySelector('.' + SLIDE + '[aria-selected]'));
+	    }
+	  };
+	
+	  /**
+	   * Animate scroll
+	   * @param newPosition
+	   * @param newDuration
+	   * @param completedCallback
+	   * @private
+	   */
+	  MaterialExtCarousel.prototype.animateScroll_ = function (newPosition, newDuration, completedCallback) {
+	    var _this2 = this;
+	
+	    var start = this.element_.scrollLeft;
+	    var distance = newPosition - start;
+	
+	    if (distance !== 0) {
+	      (function () {
+	        var duration = Math.max(Math.min(Math.abs(distance), newDuration || 400), 100); // duration is between 100 and newDuration||400ms||distance
+	        var t = 0;
+	        _this2.scrollAnimation_.stop();
+	        _this2.scrollAnimation_.start(function (timeElapsed) {
+	          t += timeElapsed;
+	          if (t < duration) {
+	            _this2.element_.scrollLeft = (0, _easing.inOutQuintic)(t, start, distance, duration);
+	            return true;
+	          } else {
+	            _this2.element_.scrollLeft = newPosition;
+	            if (completedCallback) {
+	              completedCallback();
+	            }
+	            return false;
+	          }
+	        });
+	      })();
+	    } else {
+	      if (completedCallback) {
+	        completedCallback();
+	      }
+	    }
+	  };
+	
+	  /**
+	   * Execute commend
+	   * @param event
+	   * @private
+	   */
+	  MaterialExtCarousel.prototype.command_ = function (event) {
+	    var _this3 = this;
+	
+	    var x = 0;
+	    var slide = null;
+	    var a = event.detail.action.toLowerCase();
+	
+	    // Cancel slideshow if running
+	    this.cancelSlideShow_();
+	
+	    switch (a) {
+	      case 'first':
+	        slide = this.element_.querySelector('.' + SLIDE + ':first-child');
+	        break;
+	
+	      case 'last':
+	        x = this.element_.scrollWidth - this.element_.clientWidth;
+	        slide = this.element_.querySelector('.' + SLIDE + ':last-child');
+	        break;
+	
+	      case 'scroll-prev':
+	        x = Math.max(this.element_.scrollLeft - this.element_.clientWidth, 0);
+	        break;
+	
+	      case 'scroll-next':
+	        x = Math.min(this.element_.scrollLeft + this.element_.clientWidth, this.element_.scrollWidth - this.element_.clientWidth);
+	        break;
+	
+	      case 'next':
+	      case 'prev':
+	        slide = this.element_.querySelector('.' + SLIDE + '[aria-selected]');
+	        if (slide) {
+	          slide = a === 'next' ? slide.nextElementSibling : slide.previousElementSibling;
+	          this.setAriaSelected_(slide);
+	          this.emitSelectEvent_(a, null, slide);
+	        }
+	        return;
+	
+	      case 'play':
+	        (0, _assign2.default)(this.config_, event.detail);
+	        this.startSlideShow_();
+	        return;
+	
+	      case 'pause':
+	        return;
+	
+	      default:
+	        return;
+	    }
+	
+	    this.animateScroll_(x, undefined, function () {
+	      if ('scroll-next' === a || 'scroll-prev' === a) {
+	        var slides = _this3.getSlidesInViewport_();
+	        if (slides.length > 0) {
+	          slide = 'scroll-next' === a ? slides[0] : slides[slides.length - 1];
+	        }
+	      }
+	      _this3.setAriaSelected_(slide);
+	      _this3.emitSelectEvent_(a, null, slide);
+	    });
+	  };
+	
+	  /**
+	   * Handles custom command event, 'scroll-prev', 'scroll-next', 'first', 'last', next, prev, play, pause
+	   * @param event. A custom event
+	   * @private
+	   */
+	  MaterialExtCarousel.prototype.commandHandler_ = function (event) {
+	    event.preventDefault();
+	    event.stopPropagation();
+	    if (event.detail && event.detail.action) {
+	      this.command_(event);
+	    }
+	  };
+	
+	  /**
+	   * Handle keypress
+	   * @param event
+	   * @private
+	   */
+	  MaterialExtCarousel.prototype.keyDownHandler_ = function (event) {
+	
+	    if (event && event.target && event.target !== this.element_) {
+	
+	      var action = 'first';
+	
+	      if (event.keyCode === _constants.VK_HOME || event.keyCode === _constants.VK_END || event.keyCode === _constants.VK_PAGE_UP || event.keyCode === _constants.VK_PAGE_DOWN) {
+	
+	        event.preventDefault();
+	        if (event.keyCode === _constants.VK_END) {
+	          action = 'last';
+	        } else if (event.keyCode === _constants.VK_PAGE_UP) {
+	          action = 'scroll-prev';
+	        } else if (event.keyCode === _constants.VK_PAGE_DOWN) {
+	          action = 'scroll-next';
+	        }
+	
+	        var cmd = new CustomEvent('select', {
+	          detail: {
+	            action: action
+	          }
+	        });
+	        this.command_(cmd);
+	      } else if (event.keyCode === _constants.VK_TAB || event.keyCode === _constants.VK_ENTER || event.keyCode === _constants.VK_SPACE || event.keyCode === _constants.VK_ARROW_UP || event.keyCode === _constants.VK_ARROW_LEFT || event.keyCode === _constants.VK_ARROW_DOWN || event.keyCode === _constants.VK_ARROW_RIGHT) {
+	
+	        var slide = getSlide_(event.target);
+	
+	        if (!slide) {
+	          return;
+	        }
+	
+	        // Cancel slideshow if running
+	        this.cancelSlideShow_();
+	
+	        switch (event.keyCode) {
+	          case _constants.VK_ARROW_UP:
+	          case _constants.VK_ARROW_LEFT:
+	            action = 'prev';
+	            slide = slide.previousElementSibling;
+	            break;
+	
+	          case _constants.VK_ARROW_DOWN:
+	          case _constants.VK_ARROW_RIGHT:
+	            action = 'next';
+	            slide = slide.nextElementSibling;
+	            break;
+	
+	          case _constants.VK_TAB:
+	            if (event.shiftKey) {
+	              action = 'prev';
+	              slide = slide.previousElementSibling;
+	            } else {
+	              action = 'next';
+	              slide = slide.nextElementSibling;
+	            }
+	            break;
+	
+	          case _constants.VK_SPACE:
+	          case _constants.VK_ENTER:
+	            action = 'select';
+	            break;
+	        }
+	
+	        if (slide) {
+	          event.preventDefault();
+	          setFocus_(slide);
+	          this.emitSelectEvent_(action, event.keyCode, slide);
+	        }
+	      }
+	    }
+	  };
+	
+	  /**
+	   * Handle dragging
+	   * @param event
+	   * @private
+	   */
+	  MaterialExtCarousel.prototype.dragHandler_ = function (event) {
+	    var _this4 = this;
+	
+	    event.preventDefault();
+	
+	    // Cancel slideshow if running
+	    this.cancelSlideShow_();
+	
+	    var updating = false;
+	    var rAFDragId = 0;
+	
+	    var startX = event.clientX || (event.touches !== undefined ? event.touches[0].clientX : 0);
+	    var prevX = startX;
+	    var targetElement = event.target;
+	
+	    var update = function update(e) {
+	      var currentX = e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0);
+	      var dx = prevX - currentX;
+	
+	      if (dx < 0) {
+	        _this4.element_.scrollLeft = Math.max(_this4.element_.scrollLeft + dx, 0);
+	      } else if (dx > 0) {
+	        _this4.element_.scrollLeft = Math.min(_this4.element_.scrollLeft + dx, _this4.element_.scrollWidth - _this4.element_.clientWidth);
+	      }
+	
+	      prevX = currentX;
+	      updating = false;
+	    };
+	
+	    // drag handler
+	    var drag = function drag(e) {
+	      e.preventDefault();
+	
+	      if (!updating) {
+	        rAFDragId = window.requestAnimationFrame(function () {
+	          return update(e);
+	        });
+	        updating = true;
+	      }
+	    };
+	
+	    // end drag handler
+	    var endDrag = function endDrag(e) {
+	      e.preventDefault();
+	
+	      _this4.element_.removeEventListener('mousemove', drag);
+	      _this4.element_.removeEventListener('touchmove', drag);
+	      window.removeEventListener('mouseup', endDrag);
+	      window.removeEventListener('touchend', endDrag);
+	
+	      // cancel any existing drag rAF, see: http://www.html5rocks.com/en/tutorials/speed/animations/
+	      window.cancelAnimationFrame(rAFDragId);
+	
+	      var slide = getSlide_(targetElement);
+	      setFocus_(slide);
+	      _this4.emitSelectEvent_('click', null, slide);
+	    };
+	
+	    this.element_.addEventListener('mousemove', drag);
+	    this.element_.addEventListener('touchmove', drag);
+	    window.addEventListener('mouseup', endDrag);
+	    window.addEventListener('touchend', endDrag);
+	  };
+	
+	  /**
+	   * Handle click
+	   * @param event
+	   * @private
+	   */
+	  MaterialExtCarousel.prototype.clickHandler_ = function (event) {
+	    // Click is handled by drag
+	    event.preventDefault();
+	  };
+	
+	  /**
+	   * Handle focus
+	   * @param event
+	   * @private
+	   */
+	  MaterialExtCarousel.prototype.focusHandler_ = function (event) {
+	    var slide = getSlide_(event.target);
+	    if (slide) {
+	      // The last focused/selected slide has 'aria-selected', even if focus is lost
+	      this.setAriaSelected_(slide);
+	      slide.classList.add(_constants.IS_FOCUSED);
+	    }
+	  };
+	
+	  /**
+	   * Handle blur
+	   * @param event
+	   * @private
+	   */
+	  MaterialExtCarousel.prototype.blurHandler_ = function (event) {
+	    var slide = getSlide_(event.target);
+	    if (slide) {
+	      slide.classList.remove(_constants.IS_FOCUSED);
+	    }
+	  };
+	
+	  /**
+	   * Emits a custeom 'select' event
+	   * @param command
+	   * @param keyCode
+	   * @param slide
+	   * @private
+	   */
+	  MaterialExtCarousel.prototype.emitSelectEvent_ = function (command, keyCode, slide) {
+	
+	    if (slide) {
+	      this.moveSlideIntoViewport_(slide);
+	
+	      var evt = new CustomEvent('select', {
+	        bubbles: true,
+	        cancelable: true,
+	        detail: {
+	          command: command,
+	          keyCode: keyCode,
+	          source: slide
+	        }
+	      });
+	      this.element_.dispatchEvent(evt);
+	    }
+	  };
+	
+	  /**
+	   * Get the first visible slide in component viewport
+	   * @private
+	   */
+	  MaterialExtCarousel.prototype.getSlidesInViewport_ = function () {
+	    var carouselRect = this.element_.getBoundingClientRect();
+	
+	    var slidesInViewport = [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE))).filter(function (slide) {
+	      var slideRect = slide.getBoundingClientRect();
+	      return slideRect.left >= carouselRect.left && slideRect.right <= carouselRect.right;
+	    });
+	    return slidesInViewport;
+	  };
+	
+	  /**
+	   * Move slide into component viewport - if needed
+	   * @param slide
+	   * @private
+	   */
+	  MaterialExtCarousel.prototype.moveSlideIntoViewport_ = function (slide) {
+	    var carouselRect = this.element_.getBoundingClientRect();
+	    var slideRect = slide.getBoundingClientRect();
+	
+	    if (slideRect.left < carouselRect.left) {
+	      var x = this.element_.scrollLeft - (carouselRect.left - slideRect.left);
+	      this.animateScroll_(x);
+	    } else if (slideRect.right > carouselRect.right) {
+	      var _x = this.element_.scrollLeft - (carouselRect.right - slideRect.right);
+	      this.animateScroll_(_x);
+	    }
+	  };
+	
+	  /**
+	   * Removes 'aria-selected' from all slides in carousel
+	   * @private
+	   */
+	  MaterialExtCarousel.prototype.setAriaSelected_ = function (slide) {
+	    if (slide) {
+	      [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE + '[aria-selected]'))).forEach(function (slide) {
+	        return slide.removeAttribute('aria-selected');
+	      });
+	      slide.setAttribute('aria-selected', '');
+	    }
+	  };
+	
+	  /**
+	   * Removes event listeners
+	   * @private
+	   */
+	  MaterialExtCarousel.prototype.removeListeners_ = function () {
+	    this.element_.removeEventListener('focus', this.focusHandler_);
+	    this.element_.removeEventListener('blur', this.blurHandler_);
+	    this.element_.removeEventListener('keydown', this.keyDownHandler_);
+	    this.element_.removeEventListener('mousedown', this.dragHandler_);
+	    this.element_.removeEventListener('touchstart', this.dragHandler_);
+	    this.element_.removeEventListener('click', this.clickHandler_, false);
+	    this.element_.removeEventListener('command', this.commandHandler_);
+	    this.element_.removeEventListener('mdl-componentdowngraded', this.mdlDowngrade_);
+	  };
+	
+	  // Helpers
+	  var getSlide_ = function getSlide_(element) {
+	    return element.closest('.' + SLIDE);
+	  };
+	
+	  var setFocus_ = function setFocus_(slide) {
+	    if (slide) {
+	      slide.focus();
+	    }
+	  };
+	
+	  var addRipple_ = function addRipple_(slide) {
+	    if (!slide.querySelector('.' + MDL_RIPPLE_CONTAINER)) {
+	      var rippleContainer = document.createElement('span');
+	      rippleContainer.classList.add(MDL_RIPPLE_CONTAINER);
+	      rippleContainer.classList.add(_constants.MDL_RIPPLE_EFFECT);
+	      var ripple = document.createElement('span');
+	      ripple.classList.add(_constants.MDL_RIPPLE);
+	      rippleContainer.appendChild(ripple);
+	
+	      var img = slide.querySelector('img');
+	      if (img) {
+	        // rippleContainer blocks image title
+	        rippleContainer.title = img.title;
+	      }
+	      slide.appendChild(rippleContainer);
+	      componentHandler.upgradeElement(rippleContainer, _constants.MDL_RIPPLE_COMPONENT);
+	    }
+	  };
+	  // End helpers
+	
+	
+	  // Public methods.
+	
+	  /**
+	   * Cancel animation - if running.
+	   *
+	   * @public
+	   */
+	  MaterialExtCarousel.prototype.stopAnimation = function () {
+	    this.config_.animationLoop.stop();
+	  };
+	  MaterialExtCarousel.prototype['stopAnimation'] = MaterialExtCarousel.prototype.stopAnimation;
+	
+	  /**
+	   * Upgrade slides
+	   * Use if more list elements are added later (dynamically)
+	   *
+	   * @public
+	   */
+	  MaterialExtCarousel.prototype.upgradeSlides = function () {
+	    var _this5 = this;
+	
+	    var hasRippleEffect = this.element_.classList.contains(_constants.MDL_RIPPLE_EFFECT);
+	
+	    [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE))).forEach(function (slide) {
+	
+	      slide.setAttribute('role', SLIDE_ROLE);
+	
+	      if (_this5.config_.interactive) {
+	        if (!slide.getAttribute('tabindex')) {
+	          slide.setAttribute('tabindex', '0');
+	        }
+	        if (hasRippleEffect) {
+	          addRipple_(slide);
+	        }
+	      } else {
+	        slide.setAttribute('tabindex', '-1');
+	      }
+	    });
+	  };
+	  MaterialExtCarousel.prototype['upgradeSlides'] = MaterialExtCarousel.prototype.upgradeSlides;
+	
+	  /**
+	   * Get config object
+	   *
+	   * @public
+	   */
+	  MaterialExtCarousel.prototype.getConfig = function () {
+	    return this.config_;
+	  };
+	  MaterialExtCarousel.prototype['getConfig'] = MaterialExtCarousel.prototype.getConfig;
+	
+	  /**
+	   * Initialize component
+	   */
+	  MaterialExtCarousel.prototype.init = function () {
+	
+	    if (this.element_) {
+	      // Config
+	      if (this.element_.hasAttribute('data-config')) {
+	        this.config_ = (0, _jsonUtils.jsonStringToObject)(this.element_.getAttribute('data-config'), this.config_);
+	      }
+	
+	      // Wai-Aria
+	      this.element_.setAttribute('role', ROLE);
+	
+	      // Prefer tabindex -1
+	      if (!(0, _isInteger2.default)(this.element_.getAttribute('tabindex'))) {
+	        this.element_.setAttribute('tabindex', -1);
+	      }
+	
+	      // Remove listeners, just in case ...
+	      this.removeListeners_();
+	
+	      if (this.config_.interactive) {
+	
+	        // Ripple
+	        var hasRippleEffect = this.element_.classList.contains(_constants.MDL_RIPPLE_EFFECT);
+	        if (hasRippleEffect) {
+	          this.element_.classList.add(_constants.MDL_RIPPLE_EFFECT_IGNORE_EVENTS);
+	        }
+	
+	        // Listen to focus/blur events
+	        this.element_.addEventListener('focus', this.focusHandler_.bind(this), true);
+	        this.element_.addEventListener('blur', this.blurHandler_.bind(this), true);
+	
+	        // Listen to keyboard events
+	        this.element_.addEventListener('keydown', this.keyDownHandler_.bind(this), false);
+	
+	        // Listen to drag events
+	        this.element_.addEventListener('mousedown', this.dragHandler_.bind(this), false);
+	        this.element_.addEventListener('touchstart', this.dragHandler_.bind(this), false);
+	
+	        // Listen to click events
+	        this.element_.addEventListener('click', this.clickHandler_.bind(this), false);
+	      }
+	
+	      // Listen to custom 'command' event
+	      this.element_.addEventListener('command', this.commandHandler_.bind(this), false);
+	
+	      // Listen to 'mdl-componentdowngraded' event
+	      this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));
+	
+	      // Slides collection
+	      this.upgradeSlides();
+	
+	      // Set upgraded flag
+	      this.element_.classList.add(_constants.IS_UPGRADED);
+	
+	      if (this.config_.autostart) {
+	        // Start slideshow
+	        this.startSlideShow_();
+	      }
+	    }
+	  };
+	
+	  /*
+	   * Downgrade component
+	   * E.g remove listeners and clean up resources
+	   */
+	  MaterialExtCarousel.prototype.mdlDowngrade_ = function () {
+	    'use strict';
+	    //console.log('***** MaterialExtCarousel.mdlDowngrade_');
+	
+	    // Stop animation - if any
+	
+	    this.stopAnimation();
+	
+	    // Remove listeners
+	    this.removeListeners_();
+	  };
+	
+	  // The component registers itself. It can assume componentHandler is available
+	  // in the global scope.
+	  /* eslint no-undef: 0 */
+	  componentHandler.register({
+	    constructor: MaterialExtCarousel,
+	    classAsString: 'MaterialExtCarousel',
+	    cssClass: 'mdlext-js-carousel',
+	    widget: true
+	  });
+	})();
+
+/***/ },
+/* 51 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	
+	var _classCallCheck2 = __webpack_require__(22);
+	
+	var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
+	
+	var _createClass2 = __webpack_require__(23);
+	
+	var _createClass3 = _interopRequireDefault(_createClass2);
+	
+	var _constants = __webpack_require__(2);
+	
+	var _stringUtils = __webpack_require__(15);
+	
+	var _domUtils = __webpack_require__(21);
+	
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+	
+	var JS_COLLAPSIBLE = 'mdlext-js-collapsible'; /**
+	                                               * @license
+	                                               * Copyright 2016-2017 Leif Olsen. All Rights Reserved.
+	                                               *
+	                                               * Licensed under the Apache License, Version 2.0 (the "License");
+	                                               * you may not use this file except in compliance with the License.
+	                                               * You may obtain a copy of the License at
+	                                               *
+	                                               *      http://www.apache.org/licenses/LICENSE-2.0
+	                                               *
+	                                               * Unless required by applicable law or agreed to in writing, software
+	                                               * distributed under the License is distributed on an "AS IS" BASIS,
+	                                               * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	                                               * See the License for the specific language governing permissions and
+	                                               * limitations under the License.
+	                                               *
+	                                               * This code is built with Google Material Design Lite,
+	                                               * which is Licensed under the Apache License, Version 2.0
+	                                               */
+	
+	/**
+	 * A collapsible is a component to mark expandable and collapsible regions.
+	 * The component use the aria-expanded state to indicate whether regions of
+	 * the content are collapsible, and to expose whether a region is currently
+	 * expanded or collapsed.
+	 * @see https://www.w3.org/WAI/GL/wiki/Using_the_WAI-ARIA_aria-expanded_state_to_mark_expandable_and_collapsible_regions
+	 */
+	
+	var COLLAPSIBLE_CONTROL_CLASS = 'mdlext-collapsible';
+	var COLLAPSIBLE_GROUP_CLASS = 'mdlext-collapsible-group';
+	var COLLAPSIBLE_REGION_CLASS = 'mdlext-collapsible-region';
+	
+	/**
+	 * The collapsible component
+	 */
+	
+	var Collapsible = function () {
+	
+	  /**
+	   * @constructor
+	   * @param {HTMLElement} element The element that this component is connected to.
+	   */
+	  function Collapsible(element) {
+	    var _this = this;
+	
+	    (0, _classCallCheck3.default)(this, Collapsible);
+	    this.element_ = null;
+	    this.controlElement_ = null;
+	
+	    this.keyDownHandler = function (event) {
+	      if (event.keyCode === _constants.VK_ENTER || event.keyCode === _constants.VK_SPACE) {
+	        event.preventDefault();
+	
+	        // Trigger click
+	        (event.target || _this.controlElement).dispatchEvent(new MouseEvent('click', {
+	          bubbles: true,
+	          cancelable: true,
+	          view: window
+	        }));
+	      }
+	    };
+	
+	    this.clickHandler = function (event) {
+	      if (!_this.isDisabled) {
+	        if (event.target !== _this.controlElement) {
+	          // Do not toggle if a focusable element inside the control element triggered the event
+	          var p = (0, _domUtils.getParentElements)(event.target, _this.controlElement);
+	          p.push(event.target);
+	          if (p.find(function (el) {
+	            return (0, _domUtils.isFocusable)(el);
+	          })) {
+	            return;
+	          }
+	        }
+	        _this.toggle();
+	      }
+	    };
+	
+	    this.element_ = element;
+	    this.init();
+	  }
+	
+	  (0, _createClass3.default)(Collapsible, [{
+	    key: 'collapse',
+	    value: function collapse() {
+	      if (!this.isDisabled && this.isExpanded) {
+	        if (this.dispatchToggleEvent('collapse')) {
+	          this.controlElement.setAttribute('aria-expanded', 'false');
+	          var regions = this.regionElements.slice(0);
+	          for (var i = regions.length - 1; i >= 0; --i) {
+	            regions[i].setAttribute('hidden', '');
+	          }
+	        }
+	      }
+	    }
+	  }, {
+	    key: 'expand',
+	    value: function expand() {
+	      if (!this.isDisabled && !this.isExpanded) {
+	        if (this.dispatchToggleEvent('expand')) {
+	          this.controlElement.setAttribute('aria-expanded', 'true');
+	          this.regionElements.forEach(function (region) {
+	            return region.removeAttribute('hidden');
+	          });
+	        }
+	      }
+	    }
+	  }, {
+	    key: 'toggle',
+	    value: function toggle() {
+	      if (this.isExpanded) {
+	        this.collapse();
+	      } else {
+	        this.expand();
+	      }
+	    }
+	  }, {
+	    key: 'dispatchToggleEvent',
+	    value: function dispatchToggleEvent(action) {
+	      return this.element.dispatchEvent(new CustomEvent('toggle', {
+	        bubbles: true,
+	        cancelable: true,
+	        detail: {
+	          action: action
+	        }
+	      }));
+	    }
+	  }, {
+	    key: 'disableToggle',
+	    value: function disableToggle() {
+	      this.controlElement.setAttribute('aria-disabled', true);
+	    }
+	  }, {
+	    key: 'enableToggle',
+	    value: function enableToggle() {
+	      this.controlElement.removeAttribute('aria-disabled');
+	    }
+	  }, {
+	    key: 'addRegionId',
+	    value: function addRegionId(regionId) {
+	      var ids = this.regionIds;
+	      if (!ids.find(function (id) {
+	        return regionId === id;
+	      })) {
+	        ids.push(regionId);
+	        this.controlElement.setAttribute('aria-controls', ids.join(' '));
+	      }
+	    }
+	  }, {
+	    key: 'addRegionElement',
+	    value: function addRegionElement(region) {
+	      if (!(region.classList.contains(COLLAPSIBLE_GROUP_CLASS) || region.classList.contains(COLLAPSIBLE_REGION_CLASS))) {
+	        region.classList.add(COLLAPSIBLE_GROUP_CLASS);
+	      }
+	
+	      if (!region.hasAttribute('role')) {
+	        var role = region.classList.contains(COLLAPSIBLE_GROUP_CLASS) ? 'group' : 'region';
+	        region.setAttribute('role', role);
+	      }
+	
+	      if (!region.hasAttribute('id')) {
+	        region.id = region.getAttribute('role') + '-' + (0, _stringUtils.randomString)();
+	      }
+	
+	      if (this.isExpanded) {
+	        region.removeAttribute('hidden');
+	      } else {
+	        region.setAttribute('hidden', '');
+	      }
+	      this.addRegionId(region.id);
+	    }
+	  }, {
+	    key: 'removeRegionElement',
+	    value: function removeRegionElement(region) {
+	      if (region && region.id) {
+	        var ids = this.regionIds.filter(function (id) {
+	          return id === region.id;
+	        });
+	        this.controlElement.setAttribute('aria-controls', ids.join(' '));
+	      }
+	    }
+	  }, {
+	    key: 'removeListeners',
+	    value: function removeListeners() {
+	      this.controlElement.removeEventListener('keydown', this.keyDownHandler);
+	      this.controlElement.removeEventListener('click', this.clickHandler);
+	    }
+	  }, {
+	    key: 'init',
+	    value: function init() {
+	      var _this2 = this;
+	
+	      var initControl = function initControl() {
+	        // Find the button element
+	        _this2.controlElement_ = _this2.element.querySelector('.' + COLLAPSIBLE_CONTROL_CLASS) || _this2.element;
+	
+	        // Add "aria-expanded" attribute if not present
+	        if (!_this2.controlElement.hasAttribute('aria-expanded')) {
+	          _this2.controlElement.setAttribute('aria-expanded', 'false');
+	        }
+	
+	        // Add role=button if control != <button>
+	        if (_this2.controlElement.nodeName.toLowerCase() !== 'button') {
+	          _this2.controlElement.setAttribute('role', 'button');
+	        }
+	
+	        // Add tabindex
+	        if (!(0, _domUtils.isFocusable)(_this2.controlElement) && !_this2.controlElement.hasAttribute('tabindex')) {
+	          _this2.controlElement.setAttribute('tabindex', '0');
+	        }
+	      };
+	
+	      var initRegions = function initRegions() {
+	        var regions = [];
+	        if (!_this2.controlElement.hasAttribute('aria-controls')) {
+	          // Add siblings as collapsible region(s)
+	          var r = _this2.element.nextElementSibling;
+	          while (r) {
+	            if (r.classList.contains(COLLAPSIBLE_GROUP_CLASS) || r.classList.contains(COLLAPSIBLE_REGION_CLASS)) {
+	              regions.push(r);
+	            } else if (r.classList.contains(JS_COLLAPSIBLE)) {
+	              // A new collapsible component
+	              break;
+	            }
+	            r = r.nextElementSibling;
+	          }
+	        } else {
+	          regions = _this2.regionElements;
+	        }
+	        regions.forEach(function (region) {
+	          return _this2.addRegionElement(region);
+	        });
+	      };
+	
+	      var addListeners = function addListeners() {
+	        _this2.controlElement.addEventListener('keydown', _this2.keyDownHandler);
+	        _this2.controlElement.addEventListener('click', _this2.clickHandler);
+	      };
+	
+	      initControl();
+	      initRegions();
+	      this.removeListeners();
+	      addListeners();
+	    }
+	  }, {
+	    key: 'downgrade',
+	    value: function downgrade() {
+	      this.removeListeners();
+	    }
+	  }, {
+	    key: 'element',
+	    get: function get() {
+	      return this.element_;
+	    }
+	  }, {
+	    key: 'controlElement',
+	    get: function get() {
+	      return this.controlElement_;
+	    }
+	  }, {
+	    key: 'isDisabled',
+	    get: function get() {
+	      return this.controlElement.hasAttribute('disabled') && this.controlElement.getAttribute('disabled').toLowerCase() !== 'false' || this.controlElement.hasAttribute('aria-disabled') && this.controlElement.getAttribute('aria-disabled').toLowerCase() !== 'false';
+	    }
+	  }, {
+	    key: 'isExpanded',
+	    get: function get() {
+	      return this.controlElement.hasAttribute('aria-expanded') && this.controlElement.getAttribute('aria-expanded').toLowerCase() === 'true';
+	    }
+	  }, {
+	    key: 'regionIds',
+	    get: function get() {
+	      return this.controlElement.hasAttribute('aria-controls') ? this.controlElement.getAttribute('aria-controls').split(' ') : [];
+	    }
+	  }, {
+	    key: 'regionElements',
+	    get: function get() {
+	      return this.regionIds.map(function (id) {
+	        return document.querySelector('#' + id);
+	      }).filter(function (el) {
+	        return el != null;
+	      });
+	    }
+	  }]);
+	  return Collapsible;
+	}();
+	
+	(function () {
+	  'use strict';
+	
+	  /**
+	   * @constructor
+	   * @param {HTMLElement} element The element that will be upgraded.
+	   */
+	
+	  var MaterialExtCollapsible = function MaterialExtCollapsible(element) {
+	    this.element_ = element;
+	    this.collapsible = null;
+	
+	    // Initialize instance.
+	    this.init();
+	  };
+	  window['MaterialExtCollapsible'] = MaterialExtCollapsible;
+	
+	  /**
+	   * Initialize component
+	   */
+	  MaterialExtCollapsible.prototype.init = function () {
+	    if (this.element_) {
+	      this.collapsible = new Collapsible(this.element_);
+	      this.element_.classList.add(_constants.IS_UPGRADED);
+	
+	      // Listen to 'mdl-componentdowngraded' event
+	      this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));
+	    }
+	  };
+	
+	  /*
+	   * Downgrade component
+	   * E.g remove listeners and clean up resources
+	   */
+	  MaterialExtCollapsible.prototype.mdlDowngrade_ = function () {
+	    this.collapsible.downgrade();
+	  };
+	
+	  // Public methods.
+	
+	  /**
+	   * Get control element.
+	   * @return {HTMLElement} element The element that controls the collapsible region.
+	   * @public
+	   */
+	  MaterialExtCollapsible.prototype.getControlElement = function () {
+	    return this.collapsible.controlElement;
+	  };
+	  MaterialExtCollapsible.prototype['getControlElement'] = MaterialExtCollapsible.prototype.getControlElement;
+	
+	  /**
+	   * Get region elements controlled by this collapsible
+	   * @returns {Array<HTMLElement>} the collapsible region elements
+	   * @public
+	   */
+	  MaterialExtCollapsible.prototype.getRegionElements = function () {
+	    return this.collapsible.regionElements;
+	  };
+	  MaterialExtCollapsible.prototype['getRegionElements'] = MaterialExtCollapsible.prototype.getRegionElements;
+	
+	  /**
+	   * Add region elements.
+	   * @param {Array<HTMLElement>} elements The element that will be upgraded.
+	   * @return {void}
+	   * @public
+	   */
+	  MaterialExtCollapsible.prototype.addRegionElements = function () {
+	    var _this3 = this;
+	
+	    for (var _len = arguments.length, elements = Array(_len), _key = 0; _key < _len; _key++) {
+	      elements[_key] = arguments[_key];
+	    }
+	
+	    elements.forEach(function (element) {
+	      return _this3.collapsible.addRegionElement(element);
+	    });
+	  };
+	  MaterialExtCollapsible.prototype['addRegionElements'] = MaterialExtCollapsible.prototype.addRegionElements;
+	
+	  /**
+	   * Remove collapsible region(s) from component.
+	   * Note: This operation does not delete the element from the DOM tree.
+	   * @param {Array<HTMLElement>} elements The element that will be upgraded.
+	   * @public
+	   */
+	  MaterialExtCollapsible.prototype.removeRegionElements = function () {
+	    var _this4 = this;
+	
+	    for (var _len2 = arguments.length, elements = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+	      elements[_key2] = arguments[_key2];
+	    }
+	
+	    elements.forEach(function (element) {
+	      return _this4.collapsible.removeRegionElement(element);
+	    });
+	  };
+	  MaterialExtCollapsible.prototype['removeRegionElements'] = MaterialExtCollapsible.prototype.removeRegionElements;
+	
+	  /**
+	   * Expand collapsible region(s)
+	   * @return {void}
+	   * @public
+	   */
+	  MaterialExtCollapsible.prototype.expand = function () {
+	    this.collapsible.expand();
+	  };
+	  MaterialExtCollapsible.prototype['expand'] = MaterialExtCollapsible.prototype.expand;
+	
+	  /**
+	   * Collapse collapsible region(s)
+	   * @return {void}
+	   * @public
+	   */
+	  MaterialExtCollapsible.prototype.collapse = function () {
+	    this.collapsible.collapse();
+	  };
+	  MaterialExtCollapsible.prototype['collapse'] = MaterialExtCollapsible.prototype.collapse;
+	
+	  /**
+	   * Toggle collapsible region(s)
+	   * @return {void}
+	   * @public
+	   */
+	  MaterialExtCollapsible.prototype.toggle = function () {
+	    this.collapsible.toggle();
+	  };
+	  MaterialExtCollapsible.prototype['toggle'] = MaterialExtCollapsible.prototype.toggle;
+	
+	  /**
+	   * Check whether component has aria-expanded state true
+	   * @return {Boolean} true if aria-expanded="true", otherwise false
+	   */
+	  MaterialExtCollapsible.prototype.isExpanded = function () {
+	    return this.collapsible.isExpanded;
+	  };
+	  MaterialExtCollapsible.prototype['isExpanded'] = MaterialExtCollapsible.prototype.isExpanded;
+	
+	  /**
+	   * Check whether component has aria-disabled state set to true
+	   * @return {Boolean} true if aria-disabled="true", otherwise false
+	   */
+	  MaterialExtCollapsible.prototype.isDisabled = function () {
+	    return this.collapsible.isDisabled;
+	  };
+	  MaterialExtCollapsible.prototype['isDisabled'] = MaterialExtCollapsible.prototype.isDisabled;
+	
+	  /**
+	   * Disables toggling of collapsible region(s)
+	   * @return {void}
+	   * @public
+	   */
+	  MaterialExtCollapsible.prototype.disableToggle = function () {
+	    this.collapsible.disableToggle();
+	  };
+	  MaterialExtCollapsible.prototype['disableToggle'] = MaterialExtCollapsible.prototype.disableToggle;
+	
+	  /**
+	   * Enables toggling of collapsible region(s)
+	   * @return {void}
+	   * @public
+	   */
+	  MaterialExtCollapsible.prototype.enableToggle = function () {
+	    this.collapsible.enableToggle();
+	  };
+	  MaterialExtCollapsible.prototype['enableToggle'] = MaterialExtCollapsible.prototype.enableToggle;
+	
+	  // The component registers itself. It can assume componentHandler is available
+	  // in the global scope.
+	  /* eslint no-undef: 0 */
+	  componentHandler.register({
+	    constructor: MaterialExtCollapsible,
+	    classAsString: 'MaterialExtCollapsible',
+	    cssClass: JS_COLLAPSIBLE,
+	    widget: true
+	  });
+	})();
+
+/***/ },
+/* 52 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	
+	var _classCallCheck2 = __webpack_require__(22);
+	
+	var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
+	
+	var _createClass2 = __webpack_require__(23);
+	
+	var _createClass3 = _interopRequireDefault(_createClass2);
+	
+	var _class, _temp; /**
+	                    * @license
+	                    * Copyright 2016-2017 Leif Olsen. All Rights Reserved.
+	                    *
+	                    * Licensed under the Apache License, Version 2.0 (the "License");
+	                    * you may not use this file except in compliance with the License.
+	                    * You may obtain a copy of the License at
+	                    *
+	                    *      http://www.apache.org/licenses/LICENSE-2.0
+	                    *
+	                    * Unless required by applicable law or agreed to in writing, software
+	                    * distributed under the License is distributed on an "AS IS" BASIS,
+	                    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	                    * See the License for the specific language governing permissions and
+	                    * limitations under the License.
+	                    *
+	                    * This code is built with Google Material Design Lite,
+	                    * which is Licensed under the Apache License, Version 2.0
+	                    */
+	
+	var _jsonUtils = __webpack_require__(14);
+	
+	var _constants = __webpack_require__(2);
+	
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+	
+	var JS_FORMAT_FIELD = 'mdlext-js-formatfield';
+	var FORMAT_FIELD_COMPONENT = 'MaterialExtFormatfield';
+	
+	/**
+	 * Detect browser locale
+	 * @returns {string} the locale
+	 * @see http://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference
+	 */
+	var browserLanguage = function browserLanguage() {
+	  return navigator.languages ? navigator.languages[0] : navigator.language || navigator.userLanguage;
+	};
+	
+	/**
+	 * The formatfield  formats an input field  using language sensitive number formatting.
+	 */
+	
+	var FormatField = (_temp = _class = function () {
+	  function FormatField(element) {
+	    var _this = this;
+	
+	    (0, _classCallCheck3.default)(this, FormatField);
+	    this.options_ = {};
+	
+	    this.clickHandler = function () {
+	      clearTimeout(FormatField.timer);
+	    };
+	
+	    this.focusInHandler = function () {
+	      if (!(_this.input.readOnly || _this.input.disabled)) {
+	        _this.input.value = _this.unformatInput();
+	        //setTimeout(() => this.input.setSelectionRange(0, this.input.value.length), 20);
+	        FormatField.timer = setTimeout(function () {
+	          return _this.input.select();
+	        }, 200);
+	      }
+	    };
+	
+	    this.focusOutHandler = function () {
+	      clearTimeout(FormatField.timer);
+	
+	      if (!(_this.input.readOnly || _this.input.disabled)) {
+	        _this.formatValue();
+	      }
+	    };
+	
+	    this.element_ = element;
+	    this.init();
+	  }
+	
+	  (0, _createClass3.default)(FormatField, [{
+	    key: 'stripSeparatorsFromValue',
+	    value: function stripSeparatorsFromValue() {
+	      var _this2 = this;
+	
+	      var doReplace = function doReplace() {
+	        return _this2.input.value.replace(/\s/g, '').replace(new RegExp(_this2.options.groupSeparator, 'g'), '').replace(_this2.options.decimalSeparator, '.');
+	      };
+	      //.replace(this.intlGroupSeparator_, ''),
+	      //.replace(this.intlDecimalSeparator_, '.');
+	
+	      return this.input.value ? doReplace() : this.input.value;
+	    }
+	  }, {
+	    key: 'fixSeparators',
+	    value: function fixSeparators(value) {
+	      var _this3 = this;
+	
+	      var doReplace = function doReplace() {
+	        return value.replace(new RegExp(_this3.intlGroupSeparator_, 'g'), _this3.options.groupSeparator).replace(_this3.intlDecimalSeparator_, _this3.options.decimalSeparator);
+	      };
+	
+	      return value ? doReplace() : value;
+	    }
+	  }, {
+	    key: 'formatValue',
+	    value: function formatValue() {
+	      if (this.input.value) {
+	        var v = new Intl.NumberFormat(this.options.locales, this.options).format(this.stripSeparatorsFromValue());
+	
+	        if ('NaN' !== v) {
+	          this.input.value = this.fixSeparators(v);
+	        }
+	      }
+	    }
+	  }, {
+	    key: 'unformat',
+	    value: function unformat() {
+	      var _this4 = this;
+	
+	      var doReplace = function doReplace() {
+	        return _this4.input.value.replace(/\s/g, '').replace(new RegExp(_this4.options.groupSeparator, 'g'), '').replace(_this4.options.decimalSeparator, '.');
+	      };
+	
+	      return this.input.value ? doReplace() : this.input.value;
+	    }
+	  }, {
+	    key: 'unformatInput',
+	    value: function unformatInput() {
+	      var _this5 = this;
+	
+	      var doReplace = function doReplace() {
+	        return _this5.input.value.replace(/\s/g, '').replace(new RegExp(_this5.options.groupSeparator, 'g'), '');
+	      };
+	
+	      return this.input.value ? doReplace() : this.input.value;
+	    }
+	  }, {
+	    key: 'removeListeners',
+	    value: function removeListeners() {
+	      this.input.removeEventListener('click', this.clickHandler);
+	      this.input.removeEventListener('focusin', this.focusInHandler);
+	      this.input.removeEventListener('focusout', this.focusOutHandler);
+	    }
+	  }, {
+	    key: 'init',
+	    value: function init() {
+	      var _this6 = this;
+	
+	      var addListeners = function addListeners() {
+	        _this6.input.addEventListener('click', _this6.clickHandler);
+	        _this6.input.addEventListener('focusin', _this6.focusInHandler);
+	        _this6.input.addEventListener('focusout', _this6.focusOutHandler);
+	      };
+	
+	      var addOptions = function addOptions() {
+	        var opts = _this6.element.getAttribute('data-formatfield-options') || _this6.input.getAttribute('data-formatfield-options');
+	        if (opts) {
+	          _this6.options_ = (0, _jsonUtils.jsonStringToObject)(opts, _this6.options);
+	        }
+	      };
+	
+	      var addLocale = function addLocale() {
+	        if (!_this6.options.locales) {
+	          _this6.options.locales = browserLanguage() || 'en-US'; //'nb-NO', //'en-US',
+	        }
+	      };
+	
+	      var addGrouping = function addGrouping() {
+	        var s = 1234.5.toLocaleString(_this6.options.locales, {
+	          style: 'decimal',
+	          useGrouping: true,
+	          minimumFractionDigits: 1,
+	          maximumFractionDigits: 1
+	        });
+	
+	        _this6.intlGroupSeparator_ = s.charAt(1);
+	        _this6.intlDecimalSeparator_ = s.charAt(s.length - 2);
+	        _this6.options.groupSeparator = _this6.options.groupSeparator || _this6.intlGroupSeparator_;
+	        _this6.options.decimalSeparator = _this6.options.decimalSeparator || _this6.intlDecimalSeparator_;
+	
+	        if (_this6.options.groupSeparator === _this6.options.decimalSeparator) {
+	          var e = 'Error! options.groupSeparator, "' + _this6.options.groupSeparator + '" ' + 'and options.decimalSeparator, ' + ('"' + _this6.options.decimalSeparator + '" should not be equal');
+	          throw new Error(e);
+	        }
+	      };
+	
+	      this.input_ = this.element.querySelector('input') || this.element;
+	
+	      addOptions();
+	      addLocale();
+	      addGrouping();
+	      this.formatValue();
+	      addListeners();
+	    }
+	  }, {
+	    key: 'downgrade',
+	    value: function downgrade() {
+	      this.removeListeners();
+	    }
+	  }, {
+	    key: 'element',
+	    get: function get() {
+	      return this.element_;
+	    }
+	  }, {
+	    key: 'input',
+	    get: function get() {
+	      return this.input_;
+	    }
+	  }, {
+	    key: 'options',
+	    get: function get() {
+	      return this.options_;
+	    }
+	  }]);
+	  return FormatField;
+	}(), _class.timer = null, _temp);
+	
+	
+	(function () {
+	  'use strict';
+	
+	  /**
+	   * @constructor
+	   * @param {HTMLElement} element The element that will be upgraded.
+	   */
+	
+	  var MaterialExtFormatfield = function MaterialExtFormatfield(element) {
+	    this.element_ = element;
+	    this.formatField_ = null;
+	
+	    // Initialize instance.
+	    this.init();
+	  };
+	  window['MaterialExtFormatfield'] = MaterialExtFormatfield;
+	
+	  /**
+	   * Initialize component
+	   */
+	  MaterialExtFormatfield.prototype.init = function () {
+	    if (this.element_) {
+	      this.element_.classList.add(_constants.IS_UPGRADED);
+	      this.formatField_ = new FormatField(this.element_);
+	
+	      // Listen to 'mdl-componentdowngraded' event
+	      this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));
+	    }
+	  };
+	
+	  /**
+	   * Get options object
+	   *
+	   * @public
+	   *
+	   * @returns {Object} the options object
+	   */
+	  MaterialExtFormatfield.prototype.getOptions = function () {
+	    return this.formatField_.options;
+	  };
+	  MaterialExtFormatfield.prototype['getOptions'] = MaterialExtFormatfield.prototype.getOptions;
+	
+	  /**
+	   * A unformatted value is a string value where the locale specific decimal separator
+	   * is replaced with a '.' separator and group separators are stripped.
+	   * The returned value is suitable for parsing to a JavaScript numerical value.
+	   *
+	   * @example
+	   * input.value = '1 234,5';
+	   * inputElement.MaterialExtFormatfield.getUnformattedValue();
+	   * // Returns '1234.5'
+	   *
+	   * @public
+	   *
+	   * @returns {String} the unformatted value
+	   */
+	  MaterialExtFormatfield.prototype.getUnformattedValue = function () {
+	    return this.formatField_.unformat();
+	  };
+	  MaterialExtFormatfield.prototype['getUnformattedValue'] = MaterialExtFormatfield.prototype.getUnformattedValue;
+	
+	  /*
+	   * Downgrade component
+	   * E.g remove listeners and clean up resources
+	   */
+	  MaterialExtFormatfield.prototype.mdlDowngrade_ = function () {
+	    this.formatField_.downgrade();
+	  };
+	
+	  // The component registers itself. It can assume componentHandler is available
+	  // in the global scope.
+	  /* eslint no-undef: 0 */
+	  componentHandler.register({
+	    constructor: MaterialExtFormatfield,
+	    classAsString: FORMAT_FIELD_COMPONENT,
+	    cssClass: JS_FORMAT_FIELD,
+	    widget: true
+	  });
+	})();
+
+/***/ },
+/* 53 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	
+	__webpack_require__(59);
+	
+	__webpack_require__(49);
+	
+	__webpack_require__(51);
+	
+	__webpack_require__(50);
+	
+	__webpack_require__(54);
+	
+	__webpack_require__(55);
+	
+	__webpack_require__(56);
+	
+	__webpack_require__(57);
+	
+	__webpack_require__(52);
+	
+	__webpack_require__(58);
+
+/***/ },
+/* 54 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	
+	var _toConsumableArray2 = __webpack_require__(8);
+	
+	var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
+	
+	var _constants = __webpack_require__(2);
+	
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+	
+	var MDL_RIPPLE_CONTAINER = 'mdlext-lightboard__slide__ripple-container'; /**
+	                                                                          * @license
+	                                                                          * Copyright 2016 Leif Olsen. All Rights Reserved.
+	                                                                          *
+	                                                                          * Licensed under the Apache License, Version 2.0 (the "License");
+	                                                                          * you may not use this file except in compliance with the License.
+	                                                                          * You may obtain a copy of the License at
+	                                                                          *
+	                                                                          *      http://www.apache.org/licenses/LICENSE-2.0
+	                                                                          *
+	                                                                          * Unless required by applicable law or agreed to in writing, software
+	                                                                          * distributed under the License is distributed on an "AS IS" BASIS,
+	                                                                          * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	                                                                          * See the License for the specific language governing permissions and
+	                                                                          * limitations under the License.
+	                                                                          *
+	                                                                          * This code is built with Google Material Design Lite,
+	                                                                          * which is Licensed under the Apache License, Version 2.0
+	                                                                          */
+	
+	/**
+	 * A lightboard is a translucent surface illuminated from behind, used for situations
+	 * where a shape laid upon the surface needs to be seen with high contrast. In the "old days" of photography
+	 * photograpers used a lightboard to get a quick view of their slides. The goal is to create a responsive lightbox
+	 * design, based on flex layout, similar to what is used in Adobe LightRoom to browse images.
+	 */
+	
+	(function () {
+	  'use strict';
+	
+	  //const LIGHTBOARD = 'mdlext-lightboard';
+	
+	  var LIGHTBOARD_ROLE = 'grid';
+	  var SLIDE = 'mdlext-lightboard__slide';
+	  var SLIDE_ROLE = 'gridcell';
+	  var SLIDE_TABSTOP = 'mdlext-lightboard__slide__frame';
+	  /**
+	   * @constructor
+	   * @param {Element} element The element that will be upgraded.
+	   */
+	  var MaterialExtLightboard = function MaterialExtLightboard(element) {
+	    // Stores the element.
+	    this.element_ = element;
+	
+	    // Initialize instance.
+	    this.init();
+	  };
+	  window['MaterialExtLightboard'] = MaterialExtLightboard;
+	
+	  // Helpers
+	  var getSlide = function getSlide(element) {
+	    return element ? element.closest('.' + SLIDE) : null;
+	  };
+	
+	  // Private methods.
+	
+	  /**
+	   * Select a slide, i.e. set aria-selected="true"
+	   * @param element
+	   * @private
+	   */
+	  MaterialExtLightboard.prototype.selectSlide_ = function (element) {
+	    var slide = getSlide(element);
+	    if (slide && !slide.hasAttribute('aria-selected')) {
+	      [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE + '[aria-selected="true"]'))).forEach(function (selectedSlide) {
+	        return selectedSlide.removeAttribute('aria-selected');
+	      });
+	
+	      slide.setAttribute('aria-selected', 'true');
+	    }
+	  };
+	
+	  /**
+	   * Dispatch select event
+	   * @param {Element} slide The slide that caused the event
+	   * @private
+	   */
+	  MaterialExtLightboard.prototype.dispatchSelectEvent_ = function (slide) {
+	    this.element_.dispatchEvent(new CustomEvent('select', {
+	      bubbles: true,
+	      cancelable: true,
+	      detail: { source: slide }
+	    }));
+	  };
+	
+	  /**
+	   * Handles custom command event, 'first', 'next', 'prev', 'last', 'select' or upgrade
+	   * @param event. A custom event
+	   * @private
+	   */
+	  MaterialExtLightboard.prototype.commandHandler_ = function (event) {
+	    event.preventDefault();
+	    event.stopPropagation();
+	
+	    if (event && event.detail) {
+	      this.command(event.detail);
+	    }
+	  };
+	
+	  // Public methods
+	
+	  /**
+	   * Initialize lightboard slides
+	   * @public
+	   */
+	  MaterialExtLightboard.prototype.upgradeSlides = function () {
+	
+	    var addRipple = function addRipple(slide) {
+	      // Use slide frame as ripple container
+	      if (!slide.querySelector('.' + MDL_RIPPLE_CONTAINER)) {
+	        var a = slide.querySelector('.' + SLIDE_TABSTOP);
+	        if (a) {
+	          var rippleContainer = a;
+	          rippleContainer.classList.add(MDL_RIPPLE_CONTAINER);
+	          rippleContainer.classList.add(_constants.MDL_RIPPLE_EFFECT);
+	          var ripple = document.createElement('span');
+	          ripple.classList.add(_constants.MDL_RIPPLE);
+	          rippleContainer.appendChild(ripple);
+	          componentHandler.upgradeElement(rippleContainer, _constants.MDL_RIPPLE_COMPONENT);
+	        }
+	      }
+	    };
+	
+	    var hasRippleEffect = this.element_.classList.contains(_constants.MDL_RIPPLE_EFFECT);
+	
+	    [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE))).forEach(function (slide) {
+	
+	      slide.setAttribute('role', SLIDE_ROLE);
+	
+	      if (!slide.querySelector('a')) {
+	        slide.setAttribute('tabindex', '0');
+	      }
+	      if (hasRippleEffect) {
+	        addRipple(slide);
+	      }
+	    });
+	  };
+	  MaterialExtLightboard.prototype['upgradeSlides'] = MaterialExtLightboard.prototype.upgradeSlides;
+	
+	  /**
+	   * Execute command
+	   * @param detail
+	   * @public
+	   */
+	  MaterialExtLightboard.prototype.command = function (detail) {
+	    var _this = this;
+	
+	    var firstSlide = function firstSlide() {
+	      return _this.element_.querySelector('.' + SLIDE + ':first-child');
+	    };
+	
+	    var lastSlide = function lastSlide() {
+	      return _this.element_.querySelector('.' + SLIDE + ':last-child');
+	    };
+	
+	    var nextSlide = function nextSlide() {
+	      var slide = _this.element_.querySelector('.' + SLIDE + '[aria-selected="true"]').nextElementSibling;
+	      return slide ? slide : firstSlide();
+	    };
+	
+	    var prevSlide = function prevSlide() {
+	      var slide = _this.element_.querySelector('.' + SLIDE + '[aria-selected="true"]').previousElementSibling;
+	      return slide ? slide : lastSlide();
+	    };
+	
+	    if (detail && detail.action) {
+	      var action = detail.action,
+	          target = detail.target;
+	
+	
+	      var slide = void 0;
+	      switch (action.toLowerCase()) {
+	        case 'select':
+	          slide = getSlide(target);
+	          this.dispatchSelectEvent_(slide);
+	          break;
+	        case 'first':
+	          slide = firstSlide();
+	          break;
+	        case 'next':
+	          slide = nextSlide();
+	          break;
+	        case 'prev':
+	          slide = prevSlide();
+	          break;
+	        case 'last':
+	          slide = lastSlide();
+	          break;
+	        case 'upgrade':
+	          this.upgradeSlides();
+	          break;
+	        default:
+	          throw new Error('Unknown action "' + action + '". Action must be one of "first", "next", "prev", "last", "select" or "upgrade"');
+	      }
+	
+	      if (slide) {
+	        var a = slide.querySelector('a');
+	        if (a) {
+	          a.focus();
+	        } else {
+	          slide.focus();
+	        }
+	
+	        // Workaround for JSDom testing:
+	        // In JsDom 'element.focus()' does not trigger any focus event
+	        if (!slide.hasAttribute('aria-selected')) {
+	          this.selectSlide_(slide);
+	        }
+	      }
+	    }
+	  };
+	  MaterialExtLightboard.prototype['command'] = MaterialExtLightboard.prototype.command;
+	
+	  /**
+	   * Initialize component
+	   */
+	  MaterialExtLightboard.prototype.init = function () {
+	    var _this2 = this;
+	
+	    var keydownHandler = function keydownHandler(event) {
+	
+	      if (event.target !== _this2.element_) {
+	        var action = void 0;
+	        var target = void 0;
+	        switch (event.keyCode) {
+	          case _constants.VK_HOME:
+	            action = 'first';
+	            break;
+	          case _constants.VK_END:
+	            action = 'last';
+	            break;
+	          case _constants.VK_ARROW_UP:
+	          case _constants.VK_ARROW_LEFT:
+	            action = 'prev';
+	            break;
+	          case _constants.VK_ARROW_DOWN:
+	          case _constants.VK_ARROW_RIGHT:
+	            action = 'next';
+	            break;
+	          case _constants.VK_ENTER:
+	          case _constants.VK_SPACE:
+	            action = 'select';
+	            target = event.target;
+	            break;
+	        }
+	        if (action) {
+	          event.preventDefault();
+	          event.stopPropagation();
+	          _this2.command({ action: action, target: target });
+	        }
+	      }
+	    };
+	
+	    var clickHandler = function clickHandler(event) {
+	      event.preventDefault();
+	      event.stopPropagation();
+	
+	      if (event.target !== _this2.element_) {
+	        _this2.command({ action: 'select', target: event.target });
+	      }
+	    };
+	
+	    var focusHandler = function focusHandler(event) {
+	      event.preventDefault();
+	      event.stopPropagation();
+	
+	      if (event.target !== _this2.element_) {
+	        _this2.selectSlide_(event.target);
+	      }
+	    };
+	
+	    if (this.element_) {
+	      this.element_.setAttribute('role', LIGHTBOARD_ROLE);
+	
+	      if (this.element_.classList.contains(_constants.MDL_RIPPLE_EFFECT)) {
+	        this.element_.classList.add(_constants.MDL_RIPPLE_EFFECT_IGNORE_EVENTS);
+	      }
+	
+	      // Remove listeners, just in case ...
+	      this.element_.removeEventListener('command', this.commandHandler_);
+	      this.element_.removeEventListener('keydown', keydownHandler);
+	      this.element_.removeEventListener('click', clickHandler);
+	      this.element_.removeEventListener('focus', focusHandler);
+	
+	      this.element_.addEventListener('command', this.commandHandler_.bind(this), false);
+	      this.element_.addEventListener('keydown', keydownHandler, true);
+	      this.element_.addEventListener('click', clickHandler, true);
+	      this.element_.addEventListener('focus', focusHandler, true);
+	
+	      this.upgradeSlides();
+	
+	      this.element_.classList.add(_constants.IS_UPGRADED);
+	    }
+	  };
+	
+	  // The component registers itself. It can assume componentHandler is available
+	  // in the global scope.
+	  /* eslint no-undef: 0 */
+	  /* jshint undef:false */
+	  componentHandler.register({
+	    constructor: MaterialExtLightboard,
+	    classAsString: 'MaterialExtLightboard',
+	    cssClass: 'mdlext-js-lightboard',
+	    widget: true
+	  });
+	})();
+
+/***/ },
+/* 55 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	
+	var _toConsumableArray2 = __webpack_require__(8);
+	
+	var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
+	
+	var _isInteger = __webpack_require__(32);
+	
+	var _isInteger2 = _interopRequireDefault(_isInteger);
+	
+	var _slicedToArray2 = __webpack_require__(67);
+	
+	var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
+	
+	var _entries = __webpack_require__(64);
+	
+	var _entries2 = _interopRequireDefault(_entries);
+	
+	var _getIterator2 = __webpack_require__(31);
+	
+	var _getIterator3 = _interopRequireDefault(_getIterator2);
+	
+	var _fullThrottle = __webpack_require__(13);
+	
+	var _fullThrottle2 = _interopRequireDefault(_fullThrottle);
+	
+	var _constants = __webpack_require__(2);
+	
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+	
+	/**
+	 * @license
+	 * Copyright 2016 Leif Olsen. All Rights Reserved.
+	 *
+	 * Licensed under the Apache License, Version 2.0 (the "License");
+	 * you may not use this file except in compliance with the License.
+	 * You may obtain a copy of the License at
+	 *
+	 *      http://www.apache.org/licenses/LICENSE-2.0
+	 *
+	 * Unless required by applicable law or agreed to in writing, software
+	 * distributed under the License is distributed on an "AS IS" BASIS,
+	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	 * See the License for the specific language governing permissions and
+	 * limitations under the License.
+	 *
+	 * This code is built with Google Material Design Lite,
+	 * which is Licensed under the Apache License, Version 2.0
+	 */
+	
+	/**
+	 * Responsive Lightbox
+	 */
+	
+	(function () {
+	  'use strict';
+	
+	  var LIGHTBOX = 'mdlext-lightbox';
+	  var LIGHTBOX_SLIDER = 'mdlext-lightbox__slider';
+	  var LIGHTBOX_SLIDER_SLIDE = 'mdlext-lightbox__slider__slide';
+	  var STICKY_FOOTER = 'mdlext-lightbox--sticky-footer';
+	  var BUTTON = 'mdl-button';
+	
+	  /**
+	   * https://github.com/google/material-design-lite/issues/4205
+	   * @constructor
+	   * @param {Element} element The element that will be upgraded.
+	   */
+	  var MaterialExtLightbox = function MaterialExtLightbox(element) {
+	    // Stores the element.
+	    this.element_ = element;
+	
+	    // Initialize instance.
+	    this.init();
+	  };
+	  window['MaterialExtLightbox'] = MaterialExtLightbox;
+	
+	  /**
+	   * Handle keypress
+	   * @param event
+	   * @private
+	   */
+	  MaterialExtLightbox.prototype.keyDownHandler_ = function (event) {
+	
+	    if (event) {
+	      if (event.keyCode === _constants.VK_ESC || event.keyCode === _constants.VK_SPACE || event.keyCode === _constants.VK_END || event.keyCode === _constants.VK_HOME || event.keyCode === _constants.VK_ARROW_UP || event.keyCode === _constants.VK_ARROW_LEFT || event.keyCode === _constants.VK_ARROW_DOWN || event.keyCode === _constants.VK_ARROW_RIGHT) {
+	
+	        if (event.keyCode !== _constants.VK_ESC) {
+	          event.preventDefault();
+	          event.stopPropagation();
+	        }
+	
+	        var action = 'first';
+	        if (event.keyCode === _constants.VK_END) {
+	          action = 'last';
+	        } else if (event.keyCode === _constants.VK_ARROW_UP || event.keyCode === _constants.VK_ARROW_LEFT) {
+	          action = 'prev';
+	        } else if (event.keyCode === _constants.VK_ARROW_DOWN || event.keyCode === _constants.VK_ARROW_RIGHT) {
+	          action = 'next';
+	        } else if (event.keyCode === _constants.VK_SPACE) {
+	          action = 'select';
+	        } else if (event.keyCode === _constants.VK_ESC) {
+	          action = 'cancel';
+	        }
+	
+	        dispatchAction_(action, this);
+	      }
+	    }
+	  };
+	
+	  /**
+	   * Handle button clicks
+	   * @param event
+	   * @private
+	   */
+	  MaterialExtLightbox.prototype.buttonClickHandler_ = function (event) {
+	
+	    if (event) {
+	      event.preventDefault();
+	      event.stopPropagation();
+	
+	      dispatchAction_(this.getAttribute('data-action') || '', this);
+	
+	      var n = this.closest('.' + LIGHTBOX);
+	      if (n) {
+	        n.focus();
+	      }
+	    }
+	  };
+	
+	  /**
+	   * Dispatches an action custom event
+	   * @param action
+	   * @param source
+	   * @param target
+	   * @private
+	   */
+	  var dispatchAction_ = function dispatchAction_(action, source) {
+	    var target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : source;
+	
+	
+	    target.dispatchEvent(new CustomEvent('action', {
+	      bubbles: true,
+	      cancelable: true,
+	      detail: {
+	        action: action || '',
+	        source: source
+	      }
+	    }));
+	  };
+	
+	  /**
+	   * Reposition dialog if component parent element is "DIALOG"
+	   * @param lightboxElement
+	   * @private
+	   */
+	  var repositionDialog_ = function repositionDialog_(lightboxElement) {
+	    var footerHeight = function footerHeight(footer, isSticky) {
+	      return isSticky && footer ? footer.offsetHeight : 0;
+	    };
+	
+	    var reposition = function reposition(dialog, fh) {
+	      if (window.getComputedStyle(dialog).position === 'absolute') {
+	        var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
+	        var topValue = scrollTop + (window.innerHeight - dialog.offsetHeight - fh) / 2;
+	        dialog.style.top = Math.max(scrollTop, topValue) + 'px';
+	      }
+	    };
+	
+	    var p = lightboxElement.parentNode;
+	    var dialog = p && p.nodeName === 'DIALOG' ? p : null;
+	
+	    if (dialog && dialog.hasAttribute('open')) {
+	      lightboxElement.style.width = 'auto';
+	      lightboxElement.style.maxWidth = '100%';
+	      var img = lightboxElement.querySelector('img');
+	      if (img) {
+	        lightboxElement.style.maxWidth = img.naturalWidth !== undefined ? img.naturalWidth + 'px' : img.width + 'px' || '100%';
+	      }
+	
+	      var fh = footerHeight(lightboxElement.querySelector('footer'), lightboxElement.classList.contains(STICKY_FOOTER));
+	      var vh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - fh;
+	      if (dialog.offsetHeight > vh) {
+	        var n = 0;
+	        while (dialog.offsetHeight > vh && ++n < 4) {
+	          lightboxElement.style.width = lightboxElement.offsetWidth * vh / lightboxElement.offsetHeight + 'px';
+	        }
+	      }
+	      reposition(dialog, fh);
+	    }
+	  };
+	
+	  /**
+	   * Handle image load
+	   * @param event
+	   * @private
+	   */
+	
+	  MaterialExtLightbox.prototype.imgLoadHandler_ = function () /*event*/{
+	    repositionDialog_(this);
+	  };
+	
+	  /**
+	   * Handle image drag
+	   * @param event
+	   * @private
+	     */
+	  MaterialExtLightbox.prototype.imgDragHandler_ = function (event) {
+	
+	    var setStyles = function setStyles(element, properties) {
+	      //noinspection JSAnnotator
+	      var _iteratorNormalCompletion = true;
+	      var _didIteratorError = false;
+	      var _iteratorError = undefined;
+	
+	      try {
+	        for (var _iterator = (0, _getIterator3.default)((0, _entries2.default)(properties)), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
+	          var _step$value = (0, _slicedToArray3.default)(_step.value, 2),
+	              key = _step$value[0],
+	              value = _step$value[1];
+	
+	          element.style[key] = value;
+	        }
+	        // ... or:
+	        //for (const key in properties) {
+	        //  element.style[key] = properties[key];
+	        //}
+	      } catch (err) {
+	        _didIteratorError = true;
+	        _iteratorError = err;
+	      } finally {
+	        try {
+	          if (!_iteratorNormalCompletion && _iterator.return) {
+	            _iterator.return();
+	          }
+	        } finally {
+	          if (_didIteratorError) {
+	            throw _iteratorError;
+	          }
+	        }
+	      }
+	    };
+	
+	    event.preventDefault();
+	    //event.stopPropagation();
+	
+	    var x = event.clientX || (event.touches !== undefined ? event.touches[0].clientX : 0);
+	
+	    var img = this;
+	    img.style.opacity = '0.2';
+	
+	    var slider = document.createElement('div');
+	    slider.classList.add(LIGHTBOX_SLIDER);
+	    setStyles(slider, { 'width': img.offsetWidth + 'px', 'height': img.offsetHeight + 'px' });
+	
+	    var slide = document.createElement('div');
+	    slide.classList.add(LIGHTBOX_SLIDER_SLIDE);
+	    slide.textContent = '>';
+	    setStyles(slide, {
+	      'width': img.offsetWidth + 'px',
+	      'height': img.offsetHeight + 'px',
+	      'line-height': img.offsetHeight + 'px',
+	      'font-size': img.offsetHeight / 4 + 'px',
+	      'text-align': 'right',
+	      'background-image': 'url("' + (img.getAttribute('data-img-url-prev') || '') + '")'
+	    });
+	    slider.appendChild(slide);
+	
+	    slide = document.createElement('div');
+	    slide.classList.add(LIGHTBOX_SLIDER_SLIDE);
+	    setStyles(slide, {
+	      'width': img.offsetWidth + 'px',
+	      'height': img.offsetHeight + 'px',
+	      'background-image': 'url("' + img.src + '")'
+	    });
+	    slider.appendChild(slide);
+	
+	    slide = document.createElement('div');
+	    slide.classList.add(LIGHTBOX_SLIDER_SLIDE);
+	    slide.textContent = '<';
+	    setStyles(slide, {
+	      'width': img.offsetWidth + 'px',
+	      'height': img.offsetHeight + 'px',
+	      'line-height': img.offsetHeight + 'px',
+	      'font-size': img.offsetHeight / 4 + 'px',
+	      'text-align': 'left',
+	      'background-image': 'url("' + (img.getAttribute('data-img-url-next') || '') + '")'
+	    });
+	    slider.appendChild(slide);
+	
+	    img.parentNode.appendChild(slider);
+	
+	    // drag handler
+	    var drag = function drag(e) {
+	      e.preventDefault();
+	      var dx = (e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0)) - x; // TODO: maybe rewrite to improve performance
+	
+	      if (slider.offsetWidth - Math.abs(dx) > 19) {
+	        slider.style.left = dx + 'px';
+	      }
+	    };
+	
+	    // end drag handler
+	    var endDrag = function endDrag(e) {
+	      e.preventDefault();
+	      //e.stopPropagation();
+	
+	      window.removeEventListener('mousemove', drag);
+	      window.removeEventListener('touchmove', drag);
+	      window.removeEventListener('mouseup', endDrag);
+	      window.removeEventListener('touchend', endDrag);
+	
+	      var dx = slider.offsetLeft;
+	      img.parentNode.removeChild(slider);
+	      img.style.opacity = '1.0';
+	
+	      if (Math.abs(dx) > 19) {
+	        dispatchAction_(dx > 0 ? 'prev' : 'next', img);
+	      }
+	    };
+	
+	    window.addEventListener('mousemove', drag);
+	    window.addEventListener('touchmove', drag);
+	    window.addEventListener('mouseup', endDrag);
+	    window.addEventListener('touchend', endDrag);
+	  };
+	
+	  /**
+	   * Initialize component
+	   */
+	  MaterialExtLightbox.prototype.init = function () {
+	    var _this = this;
+	
+	    if (this.element_) {
+	      // Do the init required for this component to work
+	      this.element_.addEventListener('keydown', this.keyDownHandler_.bind(this.element_), true);
+	
+	      if (!(0, _isInteger2.default)(this.element_.getAttribute('tabindex'))) {
+	        this.element_.setAttribute('tabindex', 1);
+	      }
+	
+	      [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + BUTTON))).forEach(function (button) {
+	        return button.addEventListener('click', _this.buttonClickHandler_.bind(button), false);
+	      });
+	
+	      var figcaption = this.element_.querySelector('figcaption');
+	      if (figcaption) {
+	        figcaption.addEventListener('click', this.buttonClickHandler_.bind(figcaption), false);
+	      }
+	
+	      var footer = this.element_.querySelector('footer');
+	      if (footer) {
+	        footer.addEventListener('click', this.buttonClickHandler_.bind(footer), false);
+	      }
+	
+	      var img = this.element_.querySelector('img');
+	      if (img) {
+	        img.addEventListener('load', this.imgLoadHandler_.bind(this.element_), false);
+	        img.addEventListener('click', function (e) {
+	          return e.preventDefault();
+	        }, true);
+	        img.addEventListener('mousedown', this.imgDragHandler_.bind(img), true);
+	        img.addEventListener('touchstart', this.imgDragHandler_.bind(img), true);
+	      }
+	      window.addEventListener('resize', (0, _fullThrottle2.default)(function () {
+	        return repositionDialog_(_this.element_);
+	      }));
+	      window.addEventListener('orientationchange', function () {
+	        return repositionDialog_(_this.element_);
+	      });
+	
+	      // Set upgraded flag
+	      this.element_.classList.add(_constants.IS_UPGRADED);
+	    }
+	  };
+	
+	  /*
+	   * Downgrade component
+	   * E.g remove listeners and clean up resources
+	   *
+	   * Nothing to downgrade
+	   *
+	  MaterialExtLightbox.prototype.mdlDowngrade_ = function() {
+	  };
+	  */
+	
+	  /**
+	   * The component registers itself. It can assume componentHandler is available in the global scope.
+	   */
+	  /* jshint undef:false */
+	  componentHandler.register({
+	    constructor: MaterialExtLightbox,
+	    classAsString: 'MaterialExtLightbox',
+	    cssClass: 'mdlext-js-lightbox'
+	  });
+	})();
+
+/***/ },
+/* 56 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	
+	var _classCallCheck2 = __webpack_require__(22);
+	
+	var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
+	
+	var _createClass2 = __webpack_require__(23);
+	
+	var _createClass3 = _interopRequireDefault(_createClass2);
+	
+	var _toConsumableArray2 = __webpack_require__(8);
+	
+	var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
+	
+	var _stringUtils = __webpack_require__(15);
+	
+	var _fullThrottle = __webpack_require__(13);
+	
+	var _fullThrottle2 = _interopRequireDefault(_fullThrottle);
+	
+	var _constants = __webpack_require__(2);
+	
+	var _domUtils = __webpack_require__(21);
+	
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+	
+	/**
+	 * @license
+	 * Copyright 2016 Leif Olsen. All Rights Reserved.
+	 *
+	 * Licensed under the Apache License, Version 2.0 (the "License");
+	 * you may not use this file except in compliance with the License.
+	 * You may obtain a copy of the License at
+	 *
+	 *      http://www.apache.org/licenses/LICENSE-2.0
+	 *
+	 * Unless required by applicable law or agreed to in writing, software
+	 * distributed under the License is distributed on an "AS IS" BASIS,
+	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	 * See the License for the specific language governing permissions and
+	 * limitations under the License.
+	 *
+	 * This code is built with Google Material Design Lite,
+	 * which is Licensed under the Apache License, Version 2.0
+	 */
+	
+	/**
+	 * A menu button is a button that opens a menu. It is often styled as a
+	 * typical push button with a downward pointing arrow or triangle to hint
+	 * that activating the button will display a menu.
+	 */
+	var JS_MENU_BUTTON = 'mdlext-js-menu-button';
+	var MENU_BUTTON_MENU = 'mdlext-menu';
+	var MENU_BUTTON_MENU_ITEM = 'mdlext-menu__item';
+	var MENU_BUTTON_MENU_ITEM_SEPARATOR = 'mdlext-menu__item-separator';
+	//const MDL_LAYOUT_CONTENT = 'mdl-layout__content';
+	
+	/**
+	 * Creates the menu controlled by the menu button
+	 * @param element
+	 * @return {{element: Element, selected: Element, open: (function(*=)), removeListeners: (function()), downgrade: (function())}}
+	 */
+	
+	var menuFactory = function menuFactory(element) {
+	
+	  var ariaControls = null;
+	  var parentNode = null;
+	
+	  var removeAllSelected = function removeAllSelected() {
+	    [].concat((0, _toConsumableArray3.default)(element.querySelectorAll('.' + MENU_BUTTON_MENU_ITEM + '[aria-selected="true"]'))).forEach(function (selectedItem) {
+	      return selectedItem.removeAttribute('aria-selected');
+	    });
+	  };
+	
+	  var setSelected = function setSelected(item) {
+	    var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+	
+	    if (force || item && !item.hasAttribute('aria-selected')) {
+	      removeAllSelected();
+	      if (item) {
+	        item.setAttribute('aria-selected', 'true');
+	      }
+	    }
+	  };
+	
+	  var getSelected = function getSelected() {
+	    return element.querySelector('.' + MENU_BUTTON_MENU_ITEM + '[aria-selected="true"]');
+	  };
+	
+	  var isDisabled = function isDisabled(item) {
+	    return item && item.hasAttribute('disabled');
+	  };
+	
+	  var isSeparator = function isSeparator(item) {
+	    return item && item.classList.contains(MENU_BUTTON_MENU_ITEM_SEPARATOR);
+	  };
+	
+	  var focus = function focus(item) {
+	    if (item) {
+	      item = item.closest('.' + MENU_BUTTON_MENU_ITEM);
+	    }
+	    if (item) {
+	      item.focus();
+	    }
+	  };
+	
+	  var nextItem = function nextItem(current) {
+	    var n = current.nextElementSibling;
+	    if (!n) {
+	      n = element.firstElementChild;
+	    }
+	    if (!isDisabled(n) && !isSeparator(n)) {
+	      focus(n);
+	    } else {
+	      var i = element.children.length;
+	      while (n && i-- > 0) {
+	        if (isDisabled(n) || isSeparator(n)) {
+	          n = n.nextElementSibling;
+	          if (!n) {
+	            n = element.firstElementChild;
+	          }
+	        } else {
+	          focus(n);
+	          break;
+	        }
+	      }
+	    }
+	  };
+	
+	  var previousItem = function previousItem(current) {
+	    var p = current.previousElementSibling;
+	    if (!p) {
+	      p = element.lastElementChild;
+	    }
+	    if (!isDisabled(p) && !isSeparator(p)) {
+	      focus(p);
+	    } else {
+	      var i = element.children.length;
+	      while (p && i-- > 0) {
+	        if (isDisabled(p) || isSeparator(p)) {
+	          p = p.previousElementSibling;
+	          if (!p) {
+	            p = element.lastElementChild;
+	          }
+	        } else {
+	          focus(p);
+	          break;
+	        }
+	      }
+	    }
+	  };
+	
+	  var firstItem = function firstItem() {
+	    var item = element.firstElementChild;
+	    if (isDisabled(item) || isSeparator(item)) {
+	      nextItem(item);
+	    } else {
+	      focus(item);
+	    }
+	  };
+	
+	  var lastItem = function lastItem() {
+	    var item = element.lastElementChild;
+	    if (isDisabled(item) || isSeparator(item)) {
+	      previousItem(item);
+	    } else {
+	      focus(item);
+	    }
+	  };
+	
+	  var selectItem = function selectItem(item) {
+	    if (item && !isDisabled(item) && !isSeparator(item)) {
+	      setSelected(item);
+	      close(true, item);
+	    }
+	  };
+	
+	  var keyDownHandler = function keyDownHandler(event) {
+	
+	    var item = event.target.closest('.' + MENU_BUTTON_MENU_ITEM);
+	
+	    switch (event.keyCode) {
+	      case _constants.VK_ARROW_UP:
+	      case _constants.VK_ARROW_LEFT:
+	        if (item) {
+	          previousItem(item);
+	        } else {
+	          firstItem();
+	        }
+	        break;
+	
+	      case _constants.VK_ARROW_DOWN:
+	      case _constants.VK_ARROW_RIGHT:
+	        if (item) {
+	          nextItem(item);
+	        } else {
+	          lastItem();
+	        }
+	        break;
+	
+	      case _constants.VK_HOME:
+	        firstItem();
+	        break;
+	
+	      case _constants.VK_END:
+	        lastItem();
+	        break;
+	
+	      case _constants.VK_SPACE:
+	      case _constants.VK_ENTER:
+	        selectItem(item);
+	        break;
+	
+	      case _constants.VK_ESC:
+	        close(true);
+	        break;
+	
+	      case _constants.VK_TAB:
+	        // We do not have a "natural" tab order from menu, so the best we can do is to set focus back to the button
+	        close(true);
+	        break;
+	
+	      default:
+	        return;
+	    }
+	    event.preventDefault();
+	  };
+	
+	  var blurHandler = function blurHandler(event) {
+	
+	    // See: https://github.com/facebook/react/issues/2011
+	    var t = event.relatedTarget || event.explicitOriginalTarget || // FF
+	    document.activeElement; // IE11
+	
+	    //console.log('***** blur, target, relatedTarget', event.target, t);
+	
+	    try {
+	      if (t) {
+	        if (t.closest('.' + MENU_BUTTON_MENU) !== element && shouldClose(t)) {
+	          close();
+	        }
+	      } else {
+	        close();
+	      }
+	    } catch (err) {
+	      // FF throws error: "TypeError: n.closest is not a function" if related target is a text node
+	      close();
+	    }
+	  };
+	
+	  var clickHandler = function clickHandler(event) {
+	    //console.log('***** click, target', event.target);
+	
+	    event.preventDefault();
+	    var t = event.target;
+	    if (t && t.closest('.' + MENU_BUTTON_MENU) === element) {
+	      var item = t.closest('.' + MENU_BUTTON_MENU_ITEM);
+	      if (item) {
+	        selectItem(item);
+	      }
+	    } else {
+	      if (shouldClose(t)) {
+	        close();
+	      }
+	    }
+	  };
+	
+	  var touchStartHandler = function touchStartHandler(event) {
+	    //console.log('***** touchStart, target', event.target);
+	
+	    var t = event.target;
+	    if (!(t && t.closest('.' + MENU_BUTTON_MENU) === element)) {
+	      if (event.type === 'touchstart') {
+	        event.preventDefault();
+	      }
+	      close();
+	    }
+	  };
+	
+	  var addListeners = function addListeners() {
+	    element.addEventListener('keydown', keyDownHandler, false);
+	    element.addEventListener('blur', blurHandler, true);
+	    element.addEventListener('click', clickHandler, true);
+	    document.documentElement.addEventListener('touchstart', touchStartHandler, true);
+	  };
+	
+	  var _removeListeners = function _removeListeners() {
+	    element.removeEventListener('keydown', keyDownHandler, false);
+	    element.removeEventListener('blur', blurHandler, true);
+	    element.removeEventListener('click', clickHandler, true);
+	    document.documentElement.removeEventListener('touchstart', touchStartHandler, true);
+	  };
+	
+	  var _open = function _open(controlElement) {
+	    var position = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'first';
+	
+	
+	    ariaControls = controlElement.closest('.' + JS_MENU_BUTTON);
+	
+	    element.style['min-width'] = Math.max(124, controlElement.getBoundingClientRect().width) + 'px';
+	    element.removeAttribute('hidden');
+	    (0, _domUtils.tether)(controlElement, element);
+	
+	    var item = void 0;
+	    switch (position.toLowerCase()) {
+	      case 'first':
+	        firstItem();
+	        break;
+	
+	      case 'last':
+	        lastItem();
+	        break;
+	
+	      case 'selected':
+	        item = getSelected();
+	        if (item && !item.hasAttribute('disabled')) {
+	          focus(item);
+	        } else {
+	          firstItem();
+	        }
+	        break;
+	    }
+	
+	    addListeners();
+	  };
+	
+	  var shouldClose = function shouldClose(target) {
+	    //console.log('***** shouldClose');
+	
+	    var result = false;
+	    var btn = target && target.closest('.' + JS_MENU_BUTTON) || null;
+	    if (!btn) {
+	      result = true;
+	    } else if (btn.getAttribute('aria-controls') === element.id) {
+	      if (btn !== ariaControls) {
+	        result = true;
+	      }
+	    } else {
+	      result = true;
+	    }
+	    return result;
+	  };
+	
+	  var close = function close() {
+	    var forceFocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+	    var item = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
+	
+	    _removeListeners();
+	
+	    element.dispatchEvent(new CustomEvent('_closemenu', {
+	      bubbles: true,
+	      cancelable: true,
+	      detail: { forceFocus: forceFocus, item: item }
+	    }));
+	  };
+	
+	  var addWaiAria = function addWaiAria() {
+	    if (!element.hasAttribute('id')) {
+	      // Generate a random id
+	      element.id = 'menu-button-' + (0, _stringUtils.randomString)();
+	    }
+	    element.setAttribute('tabindex', '-1');
+	    element.setAttribute('role', 'menu');
+	    element.setAttribute('hidden', '');
+	
+	    [].concat((0, _toConsumableArray3.default)(element.querySelectorAll('.' + MENU_BUTTON_MENU_ITEM))).forEach(function (menuitem) {
+	      menuitem.setAttribute('tabindex', '-1');
+	      menuitem.setAttribute('role', 'menuitem');
+	    });
+	
+	    [].concat((0, _toConsumableArray3.default)(element.querySelectorAll('.' + MENU_BUTTON_MENU_ITEM_SEPARATOR))).forEach(function (menuitem) {
+	      menuitem.setAttribute('role', 'separator');
+	    });
+	  };
+	
+	  var init = function init() {
+	    addWaiAria();
+	    parentNode = element.parentNode;
+	    element.classList.add('is-upgraded');
+	  };
+	
+	  var _downgrade = function _downgrade() {
+	    _removeListeners();
+	    if (element.parentNode !== parentNode) {
+	      parentNode.appendChild(element);
+	    }
+	    element.classList.remove('is-upgraded');
+	  };
+	
+	  init();
+	
+	  return {
+	    /**
+	     * Get the menu element
+	     * @returns {Element} the menu element
+	     */
+	    get element() {
+	      return element;
+	    },
+	
+	    /**
+	     * Set selected menu item
+	     * @param item
+	     */
+	    set selected(item) {
+	      setSelected(item, true);
+	    },
+	
+	    /**
+	     * Open menu
+	     * @param {Element} controlElement the element where the menu should be aligned to
+	     * @param {String} position menuElement item to receive focus after menu element is opened
+	     */
+	    open: function open(controlElement) {
+	      var position = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'first';
+	      return _open(controlElement, position);
+	    },
+	
+	    /**
+	     * Remove event listeners.
+	     */
+	    removeListeners: function removeListeners() {
+	      return _removeListeners();
+	    },
+	
+	    /**
+	     * Downgrade menu
+	     */
+	    downgrade: function downgrade() {
+	      return _downgrade();
+	    }
+	  };
+	};
+	
+	/**
+	 * The menubutton component
+	 */
+	
+	var MenuButton = function () {
+	  function MenuButton(element) {
+	    var _this = this;
+	
+	    (0, _classCallCheck3.default)(this, MenuButton);
+	
+	    this.keyDownHandler = function (event) {
+	      if (!_this.isDisabled()) {
+	        switch (event.keyCode) {
+	          case _constants.VK_ARROW_UP:
+	            _this.openMenu('last');
+	            break;
+	
+	          case _constants.VK_ARROW_DOWN:
+	            _this.openMenu();
+	            break;
+	
+	          case _constants.VK_SPACE:
+	          case _constants.VK_ENTER:
+	            _this.openMenu('selected');
+	            break;
+	
+	          case _constants.VK_ESC:
+	            _this.closeMenu();
+	            break;
+	
+	          case _constants.VK_TAB:
+	            _this.closeMenu();
+	            return;
+	
+	          default:
+	            return;
+	        }
+	      }
+	      //event.stopPropagation();
+	      event.preventDefault();
+	    };
+	
+	    this.clickHandler = function () {
+	      if (!_this.isDisabled()) {
+	        if (_this.element.getAttribute('aria-expanded').toLowerCase() === 'true') {
+	          _this.closeMenu(true);
+	        } else {
+	          _this.openMenu('selected');
+	        }
+	      }
+	    };
+	
+	    this.recalcMenuPosition = (0, _fullThrottle2.default)(function () {
+	      var c = _this.focusElement.getBoundingClientRect();
+	      var dx = _this.focusElementLastScrollPosition.left - c.left;
+	      var dy = _this.focusElementLastScrollPosition.top - c.top;
+	      var left = (parseFloat(_this.menu.element.style.left) || 0) - dx;
+	      var top = (parseFloat(_this.menu.element.style.top) || 0) - dy;
+	
+	      _this.menu.element.style.left = left + 'px';
+	      _this.menu.element.style.top = top + 'px';
+	      _this.focusElementLastScrollPosition = c;
+	    });
+	
+	    this.positionChangeHandler = function () {
+	      _this.recalcMenuPosition(_this);
+	    };
+	
+	    this.closeMenuHandler = function (event) {
+	      if (event && event.detail) {
+	        if (event.detail.item && event.detail.item !== _this.selectedItem) {
+	          _this.selectedItem = event.detail.item;
+	          _this.dispatchMenuSelect();
+	        }
+	        _this.closeMenu(event.detail.forceFocus);
+	      }
+	    };
+	
+	    this.element = element;
+	    this.focusElement = undefined;
+	    this.focusElementLastScrollPosition = undefined;
+	    this.scrollElements = [];
+	    this.menu = undefined;
+	    this.selectedItem = null;
+	    this.init();
+	  }
+	
+	  /**
+	   * Re-position menu if content is scrolled, window is resized or orientation change
+	   * @see https://javascriptweblog.wordpress.com/2015/11/02/of-classes-and-arrow-functions-a-cautionary-tale/
+	   */
+	
+	
+	  (0, _createClass3.default)(MenuButton, [{
+	    key: 'dispatchMenuSelect',
+	    value: function dispatchMenuSelect() {
+	      this.element.dispatchEvent(new CustomEvent('menuselect', {
+	        bubbles: true,
+	        cancelable: true,
+	        detail: { source: this.selectedItem }
+	      }));
+	    }
+	  }, {
+	    key: 'isDisabled',
+	    value: function isDisabled() {
+	      return this.element.hasAttribute('disabled');
+	    }
+	  }, {
+	    key: 'removeListeners',
+	    value: function removeListeners() {
+	      this.element.removeEventListener('keydown', this.keyDownHandler);
+	      this.element.removeEventListener('click', this.clickHandler);
+	    }
+	  }, {
+	    key: 'openMenu',
+	    value: function openMenu() {
+	      var _this2 = this;
+	
+	      var position = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';
+	
+	
+	      if (!this.isDisabled() && this.menu) {
+	
+	        // Close the menu if button position change
+	        this.scrollElements = (0, _domUtils.getScrollParents)(this.element);
+	        this.scrollElements.forEach(function (el) {
+	          return el.addEventListener('scroll', _this2.positionChangeHandler);
+	        });
+	
+	        window.addEventListener('resize', this.positionChangeHandler);
+	        window.addEventListener('orientationchange', this.positionChangeHandler);
+	        this.menu.element.addEventListener('_closemenu', this.closeMenuHandler);
+	
+	        this.menu.selected = this.selectedItem;
+	        this.menu.open(this.focusElement, position);
+	        this.element.setAttribute('aria-expanded', 'true');
+	
+	        this.focusElementLastScrollPosition = this.focusElement.getBoundingClientRect();
+	      }
+	    }
+	  }, {
+	    key: 'closeMenu',
+	    value: function closeMenu() {
+	      var _this3 = this;
+	
+	      var forceFocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+	
+	      if (this.menu) {
+	        this.menu.removeListeners();
+	        this.scrollElements.forEach(function (el) {
+	          return el.removeEventListener('scroll', _this3.positionChangeHandler);
+	        });
+	        window.removeEventListener('resize', this.positionChangeHandler);
+	        window.removeEventListener('orientationchange', this.positionChangeHandler);
+	        this.menu.element.removeEventListener('_closemenu', this.closeMenuHandler);
+	
+	        if (forceFocus) {
+	          this.focus();
+	        }
+	        this.element.setAttribute('aria-expanded', 'false');
+	        this.menu.element.setAttribute('hidden', '');
+	      }
+	    }
+	  }, {
+	    key: 'focus',
+	    value: function focus() {
+	      if (!this.isDisabled()) {
+	        this.focusElement.focus();
+	      }
+	    }
+	  }, {
+	    key: 'init',
+	    value: function init() {
+	      var _this4 = this;
+	
+	      var addListeners = function addListeners() {
+	        _this4.element.addEventListener('keydown', _this4.keyDownHandler);
+	        _this4.element.addEventListener('click', _this4.clickHandler);
+	      };
+	
+	      var addWaiAria = function addWaiAria() {
+	        _this4.element.setAttribute('role', 'button');
+	        _this4.element.setAttribute('aria-expanded', 'false');
+	        _this4.element.setAttribute('aria-haspopup', 'true');
+	      };
+	
+	      var addFocusElement = function addFocusElement() {
+	        _this4.focusElement = _this4.element.querySelector('input[type="text"]');
+	        if (!_this4.focusElement) {
+	          _this4.focusElement = _this4.element;
+	
+	          if (!(_this4.focusElement.tagName.toLowerCase() === 'button' || _this4.focusElement.tagName.toLowerCase() === 'input')) {
+	            if (!_this4.focusElement.hasAttribute('tabindex')) {
+	              _this4.focusElement.setAttribute('tabindex', '0');
+	            }
+	          }
+	        }
+	      };
+	
+	      var moveElementToDocumentBody = function moveElementToDocumentBody(element) {
+	        // To position an element on top of all other z-indexed elements, the element should be moved to document.body
+	        //       See: https://philipwalton.com/articles/what-no-one-told-you-about-z-index/
+	
+	        if (element.parentNode !== document.body) {
+	          return document.body.appendChild(element);
+	        }
+	        return element;
+	      };
+	
+	      var findMenuElement = function findMenuElement() {
+	        var menuElement = void 0;
+	        var menuElementId = _this4.element.getAttribute('aria-controls');
+	        if (menuElementId !== null) {
+	          menuElement = document.querySelector('#' + menuElementId);
+	        } else {
+	          menuElement = _this4.element.parentNode.querySelector('.' + MENU_BUTTON_MENU);
+	        }
+	        return menuElement;
+	      };
+	
+	      var addMenu = function addMenu() {
+	        var menuElement = findMenuElement();
+	        if (menuElement) {
+	          if (menuElement.componentInstance) {
+	            _this4.menu = menuElement.componentInstance;
+	          } else {
+	            _this4.menu = menuFactory(menuElement);
+	            menuElement.componentInstance = _this4.menu;
+	            moveElementToDocumentBody(menuElement);
+	          }
+	          _this4.element.setAttribute('aria-controls', _this4.menu.element.id);
+	        }
+	      };
+	
+	      addFocusElement();
+	      addWaiAria();
+	      addMenu();
+	      this.removeListeners();
+	      addListeners();
+	    }
+	  }, {
+	    key: 'downgrade',
+	    value: function downgrade() {
+	      var _this5 = this;
+	
+	      if (this.menu) {
+	        // Do not downgrade menu if there are other buttons sharing this menu
+	        var related = [].concat((0, _toConsumableArray3.default)(document.querySelectorAll('.' + JS_MENU_BUTTON + '[aria-controls="' + this.element.getAttribute('aria-controls') + '"]')));
+	        if (related.filter(function (c) {
+	          return c !== _this5.element && c.getAttribute('data-upgraded').indexOf('MaterialExtMenuButton') >= 0;
+	        }).length === 0) {
+	          this.menu.downgrade();
+	        }
+	      }
+	      this.removeListeners();
+	    }
+	  }]);
+	  return MenuButton;
+	}();
+	
+	(function () {
+	  'use strict';
+	
+	  /**
+	   * https://github.com/google/material-design-lite/issues/4205
+	   * @constructor
+	   * @param {Element} element The element that will be upgraded.
+	   */
+	
+	  var MaterialExtMenuButton = function MaterialExtMenuButton(element) {
+	    this.element_ = element;
+	    this.menuButton_ = null;
+	
+	    // Initialize instance.
+	    this.init();
+	  };
+	  window['MaterialExtMenuButton'] = MaterialExtMenuButton;
+	
+	  // Public methods.
+	
+	  /**
+	   * Get the menu element controlled by this button, null if no menu is controlled by this button
+	   * @public
+	   */
+	  MaterialExtMenuButton.prototype.getMenuElement = function () {
+	    return this.menuButton_.menu ? this.menuButton_.menu.element : null;
+	  };
+	  MaterialExtMenuButton.prototype['getMenuElement'] = MaterialExtMenuButton.prototype.getMenuElement;
+	
+	  /**
+	   * Open menu
+	   * @public
+	   * @param {String} position one of "first", "last" or "selected"
+	   */
+	  MaterialExtMenuButton.prototype.openMenu = function (position) {
+	    this.menuButton_.openMenu(position);
+	  };
+	  MaterialExtMenuButton.prototype['openMenu'] = MaterialExtMenuButton.prototype.openMenu;
+	
+	  /**
+	   * Close menu
+	   * @public
+	   */
+	  MaterialExtMenuButton.prototype.closeMenu = function () {
+	    this.menuButton_.closeMenu(true);
+	  };
+	  MaterialExtMenuButton.prototype['closeMenu'] = MaterialExtMenuButton.prototype.closeMenu;
+	
+	  /**
+	   * Get selected menu item
+	   * @public
+	   * @returns {Element} The selected menu item or null if no item selected
+	   */
+	  MaterialExtMenuButton.prototype.getSelectedMenuItem = function () {
+	    return this.menuButton_.selectedItem;
+	  };
+	  MaterialExtMenuButton.prototype['getSelectedMenuItem'] = MaterialExtMenuButton.prototype.getSelectedMenuItem;
+	
+	  /**
+	   * Set (default) selected menu item
+	   * @param {Element} item
+	   */
+	  MaterialExtMenuButton.prototype.setSelectedMenuItem = function (item) {
+	    this.menuButton_.selectedItem = item;
+	  };
+	  MaterialExtMenuButton.prototype['setSelectedMenuItem'] = MaterialExtMenuButton.prototype.setSelectedMenuItem;
+	
+	  /**
+	   * Initialize component
+	   */
+	  MaterialExtMenuButton.prototype.init = function () {
+	    if (this.element_) {
+	      this.menuButton_ = new MenuButton(this.element_);
+	      this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));
+	      this.element_.classList.add(_constants.IS_UPGRADED);
+	    }
+	  };
+	
+	  /**
+	   * Downgrade component
+	   * E.g remove listeners and clean up resources
+	   */
+	  MaterialExtMenuButton.prototype.mdlDowngrade_ = function () {
+	    this.menuButton_.downgrade();
+	  };
+	
+	  // The component registers itself. It can assume componentHandler is available
+	  // in the global scope.
+	  /* eslint no-undef: 0 */
+	  componentHandler.register({
+	    constructor: MaterialExtMenuButton,
+	    classAsString: 'MaterialExtMenuButton',
+	    cssClass: JS_MENU_BUTTON,
+	    widget: true
+	  });
+	})();
+
+/***/ },
+/* 57 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	
+	var _stringUtils = __webpack_require__(15);
+	
+	var _constants = __webpack_require__(2);
+	
+	/**
+	 * @license
+	 * Copyright 2016 Leif Olsen. All Rights Reserved.
+	 *
+	 * Licensed under the Apache License, Version 2.0 (the "License");
+	 * you may not use this file except in compliance with the License.
+	 * You may obtain a copy of the License at
+	 *
+	 *      http://www.apache.org/licenses/LICENSE-2.0
+	 *
+	 * Unless required by applicable law or agreed to in writing, software
+	 * distributed under the License is distributed on an "AS IS" BASIS,
+	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	 * See the License for the specific language governing permissions and
+	 * limitations under the License.
+	 *
+	 * This code is built with Google Material Design Lite,
+	 * which is Licensed under the Apache License, Version 2.0
+	 */
+	
+	/*
+	 * Copied/Modified from https://github.com/google/material-design-lite/tree/master/src/textfield
+	 */
+	
+	(function () {
+	  'use strict';
+	
+	  var LABEL = 'mdlext-selectfield__label';
+	  var INPUT = 'mdlext-selectfield__select';
+	
+	  /**
+	   * Class constructor for Selectfield MDLEXT component.
+	   * Implements MDL component design pattern defined at:
+	   * https://github.com/jasonmayes/mdl-component-design-pattern
+	   *
+	   * @constructor
+	   * @param {HTMLElement} element The element that will be upgraded.
+	   */
+	  var MaterialExtSelectfield = function MaterialExtSelectfield(element) {
+	    this.element_ = element;
+	    this.init(); // Initialize instance.
+	  };
+	
+	  window['MaterialExtSelectfield'] = MaterialExtSelectfield;
+	
+	  /**
+	   * Handle focus.
+	   *
+	   * @param {Event} event The event that fired.
+	   * @private
+	   */
+	  /*eslint no-unused-vars: 0*/
+	  MaterialExtSelectfield.prototype.onFocus_ = function () /*event*/{
+	    this.element_.classList.add(_constants.IS_FOCUSED);
+	  };
+	
+	  /**
+	   * Handle lost focus.
+	   *
+	   * @param {Event} event The event that fired.
+	   * @private
+	   */
+	  /*eslint no-unused-vars: 0*/
+	  MaterialExtSelectfield.prototype.onBlur_ = function () /*event*/{
+	    this.element_.classList.remove(_constants.IS_FOCUSED);
+	  };
+	
+	  /**
+	   * Handle reset event from out side.
+	   *
+	   * @param {Event} event The event that fired.
+	   * @private
+	   */
+	  MaterialExtSelectfield.prototype.onReset_ = function () /*event*/{
+	    this.updateClasses_();
+	  };
+	
+	  /**
+	   * Handle class updates.
+	   *
+	   * @private
+	   */
+	  MaterialExtSelectfield.prototype.updateClasses_ = function () {
+	    this.checkDisabled();
+	    this.checkValidity();
+	    this.checkDirty();
+	    this.checkFocus();
+	  };
+	
+	  // Public methods.
+	
+	  /**
+	   * Check the disabled state and update field accordingly.
+	   *
+	   * @public
+	   */
+	  MaterialExtSelectfield.prototype.checkDisabled = function () {
+	    if (this.select_.disabled) {
+	      this.element_.classList.add(_constants.IS_DISABLED);
+	    } else {
+	      this.element_.classList.remove(_constants.IS_DISABLED);
+	    }
+	  };
+	  MaterialExtSelectfield.prototype['checkDisabled'] = MaterialExtSelectfield.prototype.checkDisabled;
+	
+	  /**
+	   * Check the focus state and update field accordingly.
+	   *
+	   * @public
+	   */
+	  MaterialExtSelectfield.prototype.checkFocus = function () {
+	    // Note: element.querySelector(':focus') always return null in JsDom, even if select element has focus
+	    /*eslint no-extra-boolean-cast: 0*/
+	    if (Boolean(this.element_.querySelector(':focus'))) {
+	      this.element_.classList.add(_constants.IS_FOCUSED);
+	    } else {
+	      this.element_.classList.remove(_constants.IS_FOCUSED);
+	    }
+	  };
+	
+	  MaterialExtSelectfield.prototype['checkFocus'] = MaterialExtSelectfield.prototype.checkFocus;
+	
+	  /**
+	   * Check the validity state and update field accordingly.
+	   *
+	   * @public
+	   */
+	  MaterialExtSelectfield.prototype.checkValidity = function () {
+	
+	    /* Don't think it makes any sense to check validity.
+	       Tests I've done, so far, indicates that setting an illegal value via JS returns selectedIndex=0
+	     if (this.select_.validity) {
+	      if (this.select_.validity.valid) {
+	        this.element_.classList.remove(this.CssClasses_.IS_INVALID);
+	      } else {
+	        this.element_.classList.add(this.CssClasses_.IS_INVALID);
+	      }
+	    }
+	    */
+	  };
+	
+	  MaterialExtSelectfield.prototype['checkValidity'] = MaterialExtSelectfield.prototype.checkValidity;
+	
+	  /**
+	   * Check the dirty state and update field accordingly.
+	   *
+	   * @public
+	   */
+	  MaterialExtSelectfield.prototype.checkDirty = function () {
+	    if (this.select_.value && this.select_.value.length > 0) {
+	      this.element_.classList.add(_constants.IS_DIRTY);
+	    } else {
+	      this.element_.classList.remove(_constants.IS_DIRTY);
+	    }
+	  };
+	
+	  MaterialExtSelectfield.prototype['checkDirty'] = MaterialExtSelectfield.prototype.checkDirty;
+	
+	  /**
+	   * Disable select field.
+	   *
+	   * @public
+	   */
+	  MaterialExtSelectfield.prototype.disable = function () {
+	    this.select_.disabled = true;
+	    this.updateClasses_();
+	  };
+	
+	  MaterialExtSelectfield.prototype['disable'] = MaterialExtSelectfield.prototype.disable;
+	
+	  /**
+	   * Enable select field.
+	   *
+	   * @public
+	   */
+	  MaterialExtSelectfield.prototype.enable = function () {
+	    this.select_.disabled = false;
+	    this.updateClasses_();
+	  };
+	
+	  MaterialExtSelectfield.prototype['enable'] = MaterialExtSelectfield.prototype.enable;
+	
+	  /**
+	   * Update select field value.
+	   *
+	   * @param {string} value The value to which to set the control (optional).
+	   * @public
+	   */
+	  MaterialExtSelectfield.prototype.change = function (value) {
+	    this.select_.value = value || '';
+	    this.updateClasses_();
+	  };
+	  MaterialExtSelectfield.prototype['change'] = MaterialExtSelectfield.prototype.change;
+	
+	  /**
+	   * Initialize element.
+	   */
+	  MaterialExtSelectfield.prototype.init = function () {
+	    if (this.element_) {
+	      this.label_ = this.element_.querySelector('.' + LABEL);
+	      this.select_ = this.element_.querySelector('.' + INPUT);
+	
+	      if (this.select_) {
+	        // Remove listeners, just in case ...
+	        this.select_.removeEventListener('change', this.updateClasses_);
+	        this.select_.removeEventListener('focus', this.onFocus_);
+	        this.select_.removeEventListener('blur', this.onBlur_);
+	        this.select_.removeEventListener('reset', this.onReset_);
+	
+	        this.select_.addEventListener('change', this.updateClasses_.bind(this));
+	        this.select_.addEventListener('focus', this.onFocus_.bind(this));
+	        this.select_.addEventListener('blur', this.onBlur_.bind(this));
+	        this.select_.addEventListener('reset', this.onReset_.bind(this));
+	
+	        if (this.label_) {
+	          var id = void 0;
+	          if (!this.select_.hasAttribute('id')) {
+	            id = 'select-' + (0, _stringUtils.randomString)();
+	            this.select_.id = id;
+	          } else {
+	            id = this.select_.id;
+	          }
+	
+	          if (!this.label_.hasAttribute('for')) {
+	            this.label_.setAttribute('for', id);
+	          }
+	        }
+	
+	        var invalid = this.element_.classList.contains(_constants.IS_INVALID);
+	        this.updateClasses_();
+	        this.element_.classList.add(_constants.IS_UPGRADED);
+	
+	        if (invalid) {
+	          this.element_.classList.add(_constants.IS_INVALID);
+	        }
+	        if (this.select_.hasAttribute('autofocus')) {
+	          this.element_.focus();
+	          this.checkFocus();
+	        }
+	      }
+	    }
+	  };
+	
+	  /**
+	   * Downgrade component
+	   * E.g remove listeners and clean up resources
+	   *
+	   * Nothing to downgrade
+	   *
+	  MaterialExtSelectfield.prototype.mdlDowngrade_ = function() {
+	    'use strict';
+	    console.log('***** MaterialExtSelectfield.mdlDowngrade ');
+	  };
+	  */
+	
+	  // The component registers itself. It can assume componentHandler is available
+	  // in the global scope.
+	  /*eslint no-undef: 0*/
+	  componentHandler.register({
+	    constructor: MaterialExtSelectfield,
+	    classAsString: 'MaterialExtSelectfield',
+	    cssClass: 'mdlext-js-selectfield',
+	    widget: true
+	  });
+	})();
+
+/***/ },
+/* 58 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	
+	var _fullThrottle = __webpack_require__(13);
+	
+	var _fullThrottle2 = _interopRequireDefault(_fullThrottle);
+	
+	var _jsonUtils = __webpack_require__(14);
+	
+	var _constants = __webpack_require__(2);
+	
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+	
+	(function () {
+	  'use strict';
+	
+	  var MDL_LAYOUT_CONTENT = 'mdl-layout__content';
+	  var IS_SCROLL_CLASS = 'mdlext-is-scroll';
+	
+	  /**
+	   * @constructor
+	   * @param {Element} element The element that will be upgraded.
+	   */
+	  var MaterialExtStickyHeader = function MaterialExtStickyHeader(element) {
+	    // Stores the element.
+	    this.header_ = element;
+	
+	    // Heder listens to scroll events from content
+	    this.content_ = null;
+	    this.lastScrollTop_ = 0;
+	
+	    // Default config
+	    this.config_ = {
+	      visibleAtScrollEnd: false
+	    };
+	
+	    this.mutationObserver_ = null;
+	
+	    this.drawing_ = false;
+	
+	    // Initialize instance.
+	    this.init();
+	  };
+	
+	  window['MaterialExtStickyHeader'] = MaterialExtStickyHeader;
+	
+	  /**
+	   * Update header width
+	   * @private
+	   */
+	  MaterialExtStickyHeader.prototype.recalcWidth_ = function () {
+	    this.header_.style.width = this.content_.clientWidth + 'px';
+	  };
+	
+	  var throttleResize = (0, _fullThrottle2.default)(function (self) {
+	    return self.recalcWidth_();
+	  });
+	
+	  /**
+	   * Adjust header width when window resizes or oreientation changes
+	   * @param event
+	   * @private
+	   */
+	  MaterialExtStickyHeader.prototype.resizeHandler_ = function () /* event */{
+	    throttleResize(this);
+	  };
+	
+	  /**
+	   * Update header position
+	   * @private
+	   */
+	  MaterialExtStickyHeader.prototype.reposition_ = function () {
+	
+	    var currentContentScrollTop = this.content_.scrollTop;
+	    var scrollDiff = this.lastScrollTop_ - currentContentScrollTop;
+	
+	    if (currentContentScrollTop <= 0) {
+	      // Scrolled to the top. Header sticks to the top
+	      this.header_.style.top = '0';
+	      this.header_.classList.remove(IS_SCROLL_CLASS);
+	    } else if (scrollDiff > 0) {
+	
+	      if (scrollDiff >= this.header_.offsetHeight) {
+	
+	        // Scrolled up. Header slides in
+	        var headerTop = parseInt(window.getComputedStyle(this.header_).getPropertyValue('top')) || 0;
+	        if (headerTop != 0) {
+	          this.header_.style.top = '0';
+	          this.header_.classList.add(IS_SCROLL_CLASS);
+	        }
+	        this.lastScrollTop_ = currentContentScrollTop;
+	      }
+	      return;
+	    } else if (scrollDiff < 0) {
+	      // Scrolled down
+	      this.header_.classList.add(IS_SCROLL_CLASS);
+	      var _headerTop = parseInt(window.getComputedStyle(this.header_).getPropertyValue('top')) || 0;
+	
+	      if (this.content_.scrollHeight - this.content_.scrollTop <= this.content_.offsetHeight) {
+	        // Bottom of content
+	        if (_headerTop != 0) {
+	          this.header_.style.top = this.config_.visibleAtScrollEnd ? '0' : '-' + this.header_.offsetHeight + 'px';
+	        }
+	      } else {
+	        _headerTop += scrollDiff;
+	        var offsetHeight = this.header_.offsetHeight;
+	        this.header_.style.top = (Math.abs(_headerTop) > offsetHeight ? -offsetHeight : _headerTop) + 'px';
+	      }
+	    }
+	
+	    this.lastScrollTop_ = currentContentScrollTop;
+	  };
+	
+	  var throttleScroll = (0, _fullThrottle2.default)(function (self) {
+	    return self.reposition_();
+	  });
+	
+	  /**
+	   * Scroll header when content scrolls
+	   * @param event
+	   * @private
+	   */
+	  MaterialExtStickyHeader.prototype.scrollHandler_ = function () /* event */{
+	    throttleScroll(this);
+	  };
+	
+	  /**
+	   * Init header position
+	   * @private
+	   */
+	  MaterialExtStickyHeader.prototype.updatePosition_ = function () /* event */{
+	    this.recalcWidth_();
+	    this.reposition_();
+	  };
+	
+	  /**
+	   * Add mutation observer
+	   * @private
+	   */
+	  MaterialExtStickyHeader.prototype.addMutationObserver_ = function () {
+	    var _this = this;
+	
+	    // jsdom does not support MutationObserver - so this is not testable
+	    /* istanbul ignore next */
+	    this.mutationObserver_ = new MutationObserver(function () /*mutations*/{
+	      // Adjust header width if content changes (e.g. in a SPA)
+	      _this.updatePosition_();
+	    });
+	
+	    this.mutationObserver_.observe(this.content_, {
+	      attributes: false,
+	      childList: true,
+	      characterData: false,
+	      subtree: true
+	    });
+	  };
+	
+	  /**
+	  * Removes event listeners
+	  * @private
+	  */
+	  MaterialExtStickyHeader.prototype.removeListeners_ = function () {
+	
+	    window.removeEventListener('resize', this.resizeHandler_);
+	    window.removeEventListener('orientationchange', this.resizeHandler_);
+	
+	    if (this.content_) {
+	      this.content_.removeEventListener('scroll', this.scrollHandler_);
+	    }
+	
+	    if (this.mutationObserver_) {
+	      this.mutationObserver_.disconnect();
+	      this.mutationObserver_ = null;
+	    }
+	  };
+	
+	  /**
+	   * Initialize component
+	   */
+	  MaterialExtStickyHeader.prototype.init = function () {
+	
+	    if (this.header_) {
+	
+	      this.removeListeners_();
+	
+	      if (this.header_.hasAttribute('data-config')) {
+	        this.config_ = (0, _jsonUtils.jsonStringToObject)(this.header_.getAttribute('data-config'));
+	      }
+	
+	      this.content_ = this.header_.parentNode.querySelector('.' + MDL_LAYOUT_CONTENT) || null;
+	
+	      if (this.content_) {
+	        this.content_.style.paddingTop = this.header_.offsetHeight + 'px'; // Make room for sticky header
+	        this.lastScrollTop_ = this.content_.scrollTop;
+	
+	        this.content_.addEventListener('scroll', this.scrollHandler_.bind(this));
+	        window.addEventListener('resize', this.resizeHandler_.bind(this));
+	        window.addEventListener('orientationchange', this.resizeHandler_.bind(this));
+	
+	        this.addMutationObserver_();
+	        this.updatePosition_();
+	
+	        // Set upgraded flag
+	        this.header_.classList.add(_constants.IS_UPGRADED);
+	      }
+	    }
+	  };
+	
+	  /*
+	   * Downgrade component
+	   * E.g remove listeners and clean up resources
+	   *
+	   * Nothing to clean
+	   *
+	   MaterialExtStickyHeader.prototype.mdlDowngrade_ = function() {
+	     'use strict';
+	     console.log('***** MaterialExtStickyHeader.prototype.mdlDowngrade_');
+	   };
+	   */
+	
+	  // The component registers itself. It can assume componentHandler is available
+	  // in the global scope.
+	  /* eslint no-undef: 0 */
+	  componentHandler.register({
+	    constructor: MaterialExtStickyHeader,
+	    classAsString: 'MaterialExtStickyHeader',
+	    cssClass: 'mdlext-js-sticky-header'
+	  });
+	})(); /**
+	       * @license
+	       * Copyright 2016 Leif Olsen. All Rights Reserved.
+	       *
+	       * Licensed under the Apache License, Version 2.0 (the "License");
+	       * you may not use this file except in compliance with the License.
+	       * You may obtain a copy of the License at
+	       *
+	       *      http://www.apache.org/licenses/LICENSE-2.0
+	       *
+	       * Unless required by applicable law or agreed to in writing, software
+	       * distributed under the License is distributed on an "AS IS" BASIS,
+	       * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+	       * See the License for the specific language governing permissions and
+	       * limitations under the License.
+	       *
+	       * This code is built with Google Material Design Lite,
+	       * which is Licensed under the Apache License, Version 2.0
+	       */
+	
+	/**
+	 * A sticky header makes site navigation easily accessible anywhere on the page and saves content space at the same.
+	 * The header should auto-hide, i.e. hiding the header automatically when a user starts scrolling down the page and
+	 * bringing the header back when a user might need it: they reach the bottom of the page or start scrolling up.
+	 */
+
+/***/ },
+/* 59 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	
+	__webpack_require__(2);
+	
+	__webpack_require__(21);
+	
+	__webpack_require__(15);
+	
+	__webpack_require__(14);
+	
+	__webpack_require__(13);
+	
+	__webpack_require__(29);
+	
+	__webpack_require__(30);
+
+/***/ },
+/* 60 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(68), __esModule: true };
+
+/***/ },
+/* 61 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(70), __esModule: true };
+
+/***/ },
+/* 62 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(72), __esModule: true };
+
+/***/ },
+/* 63 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(74), __esModule: true };
+
+/***/ },
+/* 64 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(75), __esModule: true };
+
+/***/ },
+/* 65 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(76), __esModule: true };
+
+/***/ },
+/* 66 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(77), __esModule: true };
+
+/***/ },
+/* 67 */
+/***/ function(module, exports, __webpack_require__) {
+
+	"use strict";
+	
+	exports.__esModule = true;
+	
+	var _isIterable2 = __webpack_require__(61);
+	
+	var _isIterable3 = _interopRequireDefault(_isIterable2);
+	
+	var _getIterator2 = __webpack_require__(31);
+	
+	var _getIterator3 = _interopRequireDefault(_getIterator2);
+	
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+	
+	exports.default = function () {
+	  function sliceIterator(arr, i) {
+	    var _arr = [];
+	    var _n = true;
+	    var _d = false;
+	    var _e = undefined;
+	
+	    try {
+	      for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {
+	        _arr.push(_s.value);
+	
+	        if (i && _arr.length === i) break;
+	      }
+	    } catch (err) {
+	      _d = true;
+	      _e = err;
+	    } finally {
+	      try {
+	        if (!_n && _i["return"]) _i["return"]();
+	      } finally {
+	        if (_d) throw _e;
+	      }
+	    }
+	
+	    return _arr;
+	  }
+	
+	  return function (arr, i) {
+	    if (Array.isArray(arr)) {
+	      return arr;
+	    } else if ((0, _isIterable3.default)(Object(arr))) {
+	      return sliceIterator(arr, i);
+	    } else {
+	      throw new TypeError("Invalid attempt to destructure non-iterable instance");
+	    }
+	  };
+	}();
+
+/***/ },
+/* 68 */
+/***/ function(module, exports, __webpack_require__) {
+
+	__webpack_require__(28);
+	__webpack_require__(104);
+	module.exports = __webpack_require__(1).Array.from;
+
+/***/ },
+/* 69 */
+/***/ function(module, exports, __webpack_require__) {
+
+	__webpack_require__(48);
+	__webpack_require__(28);
+	module.exports = __webpack_require__(102);
+
+/***/ },
+/* 70 */
+/***/ function(module, exports, __webpack_require__) {
+
+	__webpack_require__(48);
+	__webpack_require__(28);
+	module.exports = __webpack_require__(103);
+
+/***/ },
+/* 71 */
+/***/ function(module, exports, __webpack_require__) {
+
+	__webpack_require__(106);
+	module.exports = __webpack_require__(1).Number.isInteger;
+
+/***/ },
+/* 72 */
+/***/ function(module, exports, __webpack_require__) {
+
+	__webpack_require__(107);
+	module.exports = __webpack_require__(1).Number.isNaN;
+
+/***/ },
+/* 73 */
+/***/ function(module, exports, __webpack_require__) {
+
+	__webpack_require__(108);
+	module.exports = __webpack_require__(1).Object.assign;
+
+/***/ },
+/* 74 */
+/***/ function(module, exports, __webpack_require__) {
+
+	__webpack_require__(109);
+	var $Object = __webpack_require__(1).Object;
+	module.exports = function defineProperty(it, key, desc){
+	  return $Object.defineProperty(it, key, desc);
+	};
+
+/***/ },
+/* 75 */
+/***/ function(module, exports, __webpack_require__) {
+
+	__webpack_require__(112);
+	module.exports = __webpack_require__(1).Object.entries;
+
+/***/ },
+/* 76 */
+/***/ function(module, exports, __webpack_require__) {
+
+	__webpack_require__(110);
+	module.exports = __webpack_require__(1).Object.keys;
+
+/***/ },
+/* 77 */
+/***/ function(module, exports, __webpack_require__) {
+
+	__webpack_require__(111);
+	module.exports = __webpack_require__(1).Reflect.apply;
+
+/***/ },
+/* 78 */
+/***/ function(module, exports) {
+
+	module.exports = function(){ /* empty */ };
+
+/***/ },
+/* 79 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// false -> Array#indexOf
+	// true  -> Array#includes
+	var toIObject = __webpack_require__(19)
+	  , toLength  = __webpack_require__(45)
+	  , toIndex   = __webpack_require__(100);
+	module.exports = function(IS_INCLUDES){
+	  return function($this, el, fromIndex){
+	    var O      = toIObject($this)
+	      , length = toLength(O.length)
+	      , index  = toIndex(fromIndex, length)
+	      , value;
+	    // Array#includes uses SameValueZero equality algorithm
+	    if(IS_INCLUDES && el != el)while(length > index){
+	      value = O[index++];
+	      if(value != value)return true;
+	    // Array#toIndex ignores holes, Array#includes - not
+	    } else for(;length > index; index++)if(IS_INCLUDES || index in O){
+	      if(O[index] === el)return IS_INCLUDES || index || 0;
+	    } return !IS_INCLUDES && -1;
+	  };
+	};
+
+/***/ },
+/* 80 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	var $defineProperty = __webpack_require__(12)
+	  , createDesc      = __webpack_require__(25);
+	
+	module.exports = function(object, index, value){
+	  if(index in object)$defineProperty.f(object, index, createDesc(0, value));
+	  else object[index] = value;
+	};
+
+/***/ },
+/* 81 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = __webpack_require__(5).document && document.documentElement;
+
+/***/ },
+/* 82 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = !__webpack_require__(9) && !__webpack_require__(10)(function(){
+	  return Object.defineProperty(__webpack_require__(38)('div'), 'a', {get: function(){ return 7; }}).a != 7;
+	});
+
+/***/ },
+/* 83 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// check on default Array iterator
+	var Iterators  = __webpack_require__(7)
+	  , ITERATOR   = __webpack_require__(4)('iterator')
+	  , ArrayProto = Array.prototype;
+	
+	module.exports = function(it){
+	  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
+	};
+
+/***/ },
+/* 84 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// 20.1.2.3 Number.isInteger(number)
+	var isObject = __webpack_require__(17)
+	  , floor    = Math.floor;
+	module.exports = function isInteger(it){
+	  return !isObject(it) && isFinite(it) && floor(it) === it;
+	};
+
+/***/ },
+/* 85 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// call something on iterator step with safe closing on error
+	var anObject = __webpack_require__(6);
+	module.exports = function(iterator, fn, value, entries){
+	  try {
+	    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
+	  // 7.4.6 IteratorClose(iterator, completion)
+	  } catch(e){
+	    var ret = iterator['return'];
+	    if(ret !== undefined)anObject(ret.call(iterator));
+	    throw e;
+	  }
+	};
+
+/***/ },
+/* 86 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	var create         = __webpack_require__(91)
+	  , descriptor     = __webpack_require__(25)
+	  , setToStringTag = __webpack_require__(43)
+	  , IteratorPrototype = {};
+	
+	// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
+	__webpack_require__(11)(IteratorPrototype, __webpack_require__(4)('iterator'), function(){ return this; });
+	
+	module.exports = function(Constructor, NAME, next){
+	  Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});
+	  setToStringTag(Constructor, NAME + ' Iterator');
+	};
+
+/***/ },
+/* 87 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var ITERATOR     = __webpack_require__(4)('iterator')
+	  , SAFE_CLOSING = false;
+	
+	try {
+	  var riter = [7][ITERATOR]();
+	  riter['return'] = function(){ SAFE_CLOSING = true; };
+	  Array.from(riter, function(){ throw 2; });
+	} catch(e){ /* empty */ }
+	
+	module.exports = function(exec, skipClosing){
+	  if(!skipClosing && !SAFE_CLOSING)return false;
+	  var safe = false;
+	  try {
+	    var arr  = [7]
+	      , iter = arr[ITERATOR]();
+	    iter.next = function(){ return {done: safe = true}; };
+	    arr[ITERATOR] = function(){ return iter; };
+	    exec(arr);
+	  } catch(e){ /* empty */ }
+	  return safe;
+	};
+
+/***/ },
+/* 88 */
+/***/ function(module, exports) {
+
+	module.exports = function(done, value){
+	  return {value: value, done: !!done};
+	};
+
+/***/ },
+/* 89 */
+/***/ function(module, exports) {
+
+	module.exports = true;
+
+/***/ },
+/* 90 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	// 19.1.2.1 Object.assign(target, source, ...)
+	var getKeys  = __webpack_require__(18)
+	  , gOPS     = __webpack_require__(93)
+	  , pIE      = __webpack_require__(42)
+	  , toObject = __webpack_require__(20)
+	  , IObject  = __webpack_require__(40)
+	  , $assign  = Object.assign;
+	
+	// should work with symbols and should have deterministic property order (V8 bug)
+	module.exports = !$assign || __webpack_require__(10)(function(){
+	  var A = {}
+	    , B = {}
+	    , S = Symbol()
+	    , K = 'abcdefghijklmnopqrst';
+	  A[S] = 7;
+	  K.split('').forEach(function(k){ B[k] = k; });
+	  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
+	}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
+	  var T     = toObject(target)
+	    , aLen  = arguments.length
+	    , index = 1
+	    , getSymbols = gOPS.f
+	    , isEnum     = pIE.f;
+	  while(aLen > index){
+	    var S      = IObject(arguments[index++])
+	      , keys   = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
+	      , length = keys.length
+	      , j      = 0
+	      , key;
+	    while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
+	  } return T;
+	} : $assign;
+
+/***/ },
+/* 91 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
+	var anObject    = __webpack_require__(6)
+	  , dPs         = __webpack_require__(92)
+	  , enumBugKeys = __webpack_require__(39)
+	  , IE_PROTO    = __webpack_require__(26)('IE_PROTO')
+	  , Empty       = function(){ /* empty */ }
+	  , PROTOTYPE   = 'prototype';
+	
+	// Create object with fake `null` prototype: use iframe Object with cleared prototype
+	var createDict = function(){
+	  // Thrash, waste and sodomy: IE GC bug
+	  var iframe = __webpack_require__(38)('iframe')
+	    , i      = enumBugKeys.length
+	    , lt     = '<'
+	    , gt     = '>'
+	    , iframeDocument;
+	  iframe.style.display = 'none';
+	  __webpack_require__(81).appendChild(iframe);
+	  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
+	  // createDict = iframe.contentWindow.Object;
+	  // html.removeChild(iframe);
+	  iframeDocument = iframe.contentWindow.document;
+	  iframeDocument.open();
+	  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
+	  iframeDocument.close();
+	  createDict = iframeDocument.F;
+	  while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];
+	  return createDict();
+	};
+	
+	module.exports = Object.create || function create(O, Properties){
+	  var result;
+	  if(O !== null){
+	    Empty[PROTOTYPE] = anObject(O);
+	    result = new Empty;
+	    Empty[PROTOTYPE] = null;
+	    // add "__proto__" for Object.getPrototypeOf polyfill
+	    result[IE_PROTO] = O;
+	  } else result = createDict();
+	  return Properties === undefined ? result : dPs(result, Properties);
+	};
+
+
+/***/ },
+/* 92 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var dP       = __webpack_require__(12)
+	  , anObject = __webpack_require__(6)
+	  , getKeys  = __webpack_require__(18);
+	
+	module.exports = __webpack_require__(9) ? Object.defineProperties : function defineProperties(O, Properties){
+	  anObject(O);
+	  var keys   = getKeys(Properties)
+	    , length = keys.length
+	    , i = 0
+	    , P;
+	  while(length > i)dP.f(O, P = keys[i++], Properties[P]);
+	  return O;
+	};
+
+/***/ },
+/* 93 */
+/***/ function(module, exports) {
+
+	exports.f = Object.getOwnPropertySymbols;
+
+/***/ },
+/* 94 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
+	var has         = __webpack_require__(16)
+	  , toObject    = __webpack_require__(20)
+	  , IE_PROTO    = __webpack_require__(26)('IE_PROTO')
+	  , ObjectProto = Object.prototype;
+	
+	module.exports = Object.getPrototypeOf || function(O){
+	  O = toObject(O);
+	  if(has(O, IE_PROTO))return O[IE_PROTO];
+	  if(typeof O.constructor == 'function' && O instanceof O.constructor){
+	    return O.constructor.prototype;
+	  } return O instanceof Object ? ObjectProto : null;
+	};
+
+/***/ },
+/* 95 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var has          = __webpack_require__(16)
+	  , toIObject    = __webpack_require__(19)
+	  , arrayIndexOf = __webpack_require__(79)(false)
+	  , IE_PROTO     = __webpack_require__(26)('IE_PROTO');
+	
+	module.exports = function(object, names){
+	  var O      = toIObject(object)
+	    , i      = 0
+	    , result = []
+	    , key;
+	  for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
+	  // Don't enum bug & hidden keys
+	  while(names.length > i)if(has(O, key = names[i++])){
+	    ~arrayIndexOf(result, key) || result.push(key);
+	  }
+	  return result;
+	};
+
+/***/ },
+/* 96 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// most Object methods by ES6 should accept primitives
+	var $export = __webpack_require__(3)
+	  , core    = __webpack_require__(1)
+	  , fails   = __webpack_require__(10);
+	module.exports = function(KEY, exec){
+	  var fn  = (core.Object || {})[KEY] || Object[KEY]
+	    , exp = {};
+	  exp[KEY] = exec(fn);
+	  $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
+	};
+
+/***/ },
+/* 97 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var getKeys   = __webpack_require__(18)
+	  , toIObject = __webpack_require__(19)
+	  , isEnum    = __webpack_require__(42).f;
+	module.exports = function(isEntries){
+	  return function(it){
+	    var O      = toIObject(it)
+	      , keys   = getKeys(O)
+	      , length = keys.length
+	      , i      = 0
+	      , result = []
+	      , key;
+	    while(length > i)if(isEnum.call(O, key = keys[i++])){
+	      result.push(isEntries ? [key, O[key]] : O[key]);
+	    } return result;
+	  };
+	};
+
+/***/ },
+/* 98 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = __webpack_require__(11);
+
+/***/ },
+/* 99 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var toInteger = __webpack_require__(27)
+	  , defined   = __webpack_require__(24);
+	// true  -> String#at
+	// false -> String#codePointAt
+	module.exports = function(TO_STRING){
+	  return function(that, pos){
+	    var s = String(defined(that))
+	      , i = toInteger(pos)
+	      , l = s.length
+	      , a, b;
+	    if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
+	    a = s.charCodeAt(i);
+	    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
+	      ? TO_STRING ? s.charAt(i) : a
+	      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
+	  };
+	};
+
+/***/ },
+/* 100 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var toInteger = __webpack_require__(27)
+	  , max       = Math.max
+	  , min       = Math.min;
+	module.exports = function(index, length){
+	  index = toInteger(index);
+	  return index < 0 ? max(index + length, 0) : min(index, length);
+	};
+
+/***/ },
+/* 101 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// 7.1.1 ToPrimitive(input [, PreferredType])
+	var isObject = __webpack_require__(17);
+	// instead of the ES6 spec version, we didn't implement @@toPrimitive case
+	// and the second argument - flag - preferred type is a string
+	module.exports = function(it, S){
+	  if(!isObject(it))return it;
+	  var fn, val;
+	  if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+	  if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
+	  if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+	  throw TypeError("Can't convert object to primitive value");
+	};
+
+/***/ },
+/* 102 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var anObject = __webpack_require__(6)
+	  , get      = __webpack_require__(47);
+	module.exports = __webpack_require__(1).getIterator = function(it){
+	  var iterFn = get(it);
+	  if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');
+	  return anObject(iterFn.call(it));
+	};
+
+/***/ },
+/* 103 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var classof   = __webpack_require__(35)
+	  , ITERATOR  = __webpack_require__(4)('iterator')
+	  , Iterators = __webpack_require__(7);
+	module.exports = __webpack_require__(1).isIterable = function(it){
+	  var O = Object(it);
+	  return O[ITERATOR] !== undefined
+	    || '@@iterator' in O
+	    || Iterators.hasOwnProperty(classof(O));
+	};
+
+/***/ },
+/* 104 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	var ctx            = __webpack_require__(37)
+	  , $export        = __webpack_require__(3)
+	  , toObject       = __webpack_require__(20)
+	  , call           = __webpack_require__(85)
+	  , isArrayIter    = __webpack_require__(83)
+	  , toLength       = __webpack_require__(45)
+	  , createProperty = __webpack_require__(80)
+	  , getIterFn      = __webpack_require__(47);
+	
+	$export($export.S + $export.F * !__webpack_require__(87)(function(iter){ Array.from(iter); }), 'Array', {
+	  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
+	  from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
+	    var O       = toObject(arrayLike)
+	      , C       = typeof this == 'function' ? this : Array
+	      , aLen    = arguments.length
+	      , mapfn   = aLen > 1 ? arguments[1] : undefined
+	      , mapping = mapfn !== undefined
+	      , index   = 0
+	      , iterFn  = getIterFn(O)
+	      , length, result, step, iterator;
+	    if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
+	    // if object isn't iterable or it's array with default iterator - use simple case
+	    if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
+	      for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
+	        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
+	      }
+	    } else {
+	      length = toLength(O.length);
+	      for(result = new C(length); length > index; index++){
+	        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
+	      }
+	    }
+	    result.length = index;
+	    return result;
+	  }
+	});
+
+
+/***/ },
+/* 105 */
+/***/ function(module, exports, __webpack_require__) {
+
+	'use strict';
+	var addToUnscopables = __webpack_require__(78)
+	  , step             = __webpack_require__(88)
+	  , Iterators        = __webpack_require__(7)
+	  , toIObject        = __webpack_require__(19);
+	
+	// 22.1.3.4 Array.prototype.entries()
+	// 22.1.3.13 Array.prototype.keys()
+	// 22.1.3.29 Array.prototype.values()
+	// 22.1.3.30 Array.prototype[@@iterator]()
+	module.exports = __webpack_require__(41)(Array, 'Array', function(iterated, kind){
+	  this._t = toIObject(iterated); // target
+	  this._i = 0;                   // next index
+	  this._k = kind;                // kind
+	// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
+	}, function(){
+	  var O     = this._t
+	    , kind  = this._k
+	    , index = this._i++;
+	  if(!O || index >= O.length){
+	    this._t = undefined;
+	    return step(1);
+	  }
+	  if(kind == 'keys'  )return step(0, index);
+	  if(kind == 'values')return step(0, O[index]);
+	  return step(0, [index, O[index]]);
+	}, 'values');
+	
+	// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
+	Iterators.Arguments = Iterators.Array;
+	
+	addToUnscopables('keys');
+	addToUnscopables('values');
+	addToUnscopables('entries');
+
+/***/ },
+/* 106 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// 20.1.2.3 Number.isInteger(number)
+	var $export = __webpack_require__(3);
+	
+	$export($export.S, 'Number', {isInteger: __webpack_require__(84)});
+
+/***/ },
+/* 107 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// 20.1.2.4 Number.isNaN(number)
+	var $export = __webpack_require__(3);
+	
+	$export($export.S, 'Number', {
+	  isNaN: function isNaN(number){
+	    return number != number;
+	  }
+	});
+
+/***/ },
+/* 108 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// 19.1.3.1 Object.assign(target, source)
+	var $export = __webpack_require__(3);
+	
+	$export($export.S + $export.F, 'Object', {assign: __webpack_require__(90)});
+
+/***/ },
+/* 109 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var $export = __webpack_require__(3);
+	// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
+	$export($export.S + $export.F * !__webpack_require__(9), 'Object', {defineProperty: __webpack_require__(12).f});
+
+/***/ },
+/* 110 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// 19.1.2.14 Object.keys(O)
+	var toObject = __webpack_require__(20)
+	  , $keys    = __webpack_require__(18);
+	
+	__webpack_require__(96)('keys', function(){
+	  return function keys(it){
+	    return $keys(toObject(it));
+	  };
+	});
+
+/***/ },
+/* 111 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
+	var $export   = __webpack_require__(3)
+	  , aFunction = __webpack_require__(34)
+	  , anObject  = __webpack_require__(6)
+	  , rApply    = (__webpack_require__(5).Reflect || {}).apply
+	  , fApply    = Function.apply;
+	// MS Edge argumentsList argument is optional
+	$export($export.S + $export.F * !__webpack_require__(10)(function(){
+	  rApply(function(){});
+	}), 'Reflect', {
+	  apply: function apply(target, thisArgument, argumentsList){
+	    var T = aFunction(target)
+	      , L = anObject(argumentsList);
+	    return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
+	  }
+	});
+
+/***/ },
+/* 112 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// https://github.com/tc39/proposal-object-values-entries
+	var $export  = __webpack_require__(3)
+	  , $entries = __webpack_require__(97)(true);
+	
+	$export($export.S, 'Object', {
+	  entries: function entries(it){
+	    return $entries(it);
+	  }
+	});
+
+/***/ },
+/* 113 */
+/***/ function(module, exports) {
+
+	// removed by extract-text-webpack-plugin
+
+/***/ }
+/******/ ])
+});
+;
+//# sourceMappingURL=mdl-ext.js.map
\ No newline at end of file
diff --git a/node_modules/mdl-ext/lib/mdl-ext.js.map b/node_modules/mdl-ext/lib/mdl-ext.js.map
new file mode 100644
index 0000000..a401c9f
--- /dev/null
+++ b/node_modules/mdl-ext/lib/mdl-ext.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///webpack/bootstrap 80c672803f0b3533e5b7?a1f3","webpack:///./~/babel-runtime/~/core-js/library/modules/_core.js?d611","webpack:///./src/utils/constants.js?14df","webpack:///./~/babel-runtime/~/core-js/library/modules/_export.js?8e40","webpack:///./~/babel-runtime/~/core-js/library/modules/_wks.js?2014","webpack:///./~/babel-runtime/~/core-js/library/modules/_global.js?3c52","webpack:///./~/babel-runtime/~/core-js/library/modules/_an-object.js?3af2","webpack:///./~/babel-runtime/~/core-js/library/modules/_iterators.js?f3f3","webpack:///./~/babel-runtime/helpers/toConsumableArray.js?1825","webpack:///./~/babel-runtime/~/core-js/library/modules/_descriptors.js?c0f5","webpack:///./~/babel-runtime/~/core-js/library/modules/_fails.js?c6dd","webpack:///./~/babel-runtime/~/core-js/library/modules/_hide.js?0d2e","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-dp.js?5986","webpack:///./src/utils/full-throttle.js?dc07","webpack:///./src/utils/json-utils.js?45f0","webpack:///./src/utils/string-utils.js?37f8","webpack:///./~/babel-runtime/~/core-js/library/modules/_has.js?ddd0","webpack:///./~/babel-runtime/~/core-js/library/modules/_is-object.js?cfda","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-keys.js?5d2e","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-iobject.js?527c","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-object.js?ca4f","webpack:///./src/utils/dom-utils.js?0816","webpack:///./~/babel-runtime/helpers/classCallCheck.js?21af","webpack:///./~/babel-runtime/helpers/createClass.js?1dfe","webpack:///./~/babel-runtime/~/core-js/library/modules/_defined.js?932b","webpack:///./~/babel-runtime/~/core-js/library/modules/_property-desc.js?256b","webpack:///./~/babel-runtime/~/core-js/library/modules/_shared-key.js?5602","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-integer.js?09ce","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.string.iterator.js?ae27","webpack:///./src/utils/easing.js?f6e9","webpack:///./src/utils/interval-function.js?c7e7","webpack:///./~/babel-runtime/core-js/get-iterator.js?1b08","webpack:///./~/babel-runtime/core-js/number/is-integer.js?14ca","webpack:///./~/babel-runtime/core-js/object/assign.js?e6ca","webpack:///./~/babel-runtime/~/core-js/library/modules/_a-function.js?0699","webpack:///./~/babel-runtime/~/core-js/library/modules/_classof.js?4e04","webpack:///./~/babel-runtime/~/core-js/library/modules/_cof.js?7381","webpack:///./~/babel-runtime/~/core-js/library/modules/_ctx.js?4e59","webpack:///./~/babel-runtime/~/core-js/library/modules/_dom-create.js?612f","webpack:///./~/babel-runtime/~/core-js/library/modules/_enum-bug-keys.js?3254","webpack:///./~/babel-runtime/~/core-js/library/modules/_iobject.js?34ed","webpack:///./~/babel-runtime/~/core-js/library/modules/_iter-define.js?4272","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-pie.js?a26b","webpack:///./~/babel-runtime/~/core-js/library/modules/_set-to-string-tag.js?57a7","webpack:///./~/babel-runtime/~/core-js/library/modules/_shared.js?f1ee","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-length.js?f510","webpack:///./~/babel-runtime/~/core-js/library/modules/_uid.js?c10a","webpack:///./~/babel-runtime/~/core-js/library/modules/core.get-iterator-method.js?8a45","webpack:///./~/babel-runtime/~/core-js/library/modules/web.dom.iterable.js?7e82","webpack:///./src/accordion/accordion.js?021c","webpack:///./src/carousel/carousel.js?7189","webpack:///./src/collapsible/collapsible.js?8da8","webpack:///./src/formatfield/formatfield.js?602e","webpack:///./src/index.js?9552","webpack:///./src/lightboard/lightboard.js?4a51","webpack:///./src/lightbox/lightbox.js?4a9b","webpack:///./src/menu-button/menu-button.js?292f","webpack:///./src/selectfield/selectfield.js?4310","webpack:///./src/sticky-header/sticky-header.js?0ce9","webpack:///./src/utils/index.js?d310","webpack:///./~/babel-runtime/core-js/array/from.js?efc2","webpack:///./~/babel-runtime/core-js/is-iterable.js?350e","webpack:///./~/babel-runtime/core-js/number/is-nan.js?f039","webpack:///./~/babel-runtime/core-js/object/define-property.js?5f70","webpack:///./~/babel-runtime/core-js/object/entries.js?41f9","webpack:///./~/babel-runtime/core-js/object/keys.js?fe06","webpack:///./~/babel-runtime/core-js/reflect/apply.js?a3c1","webpack:///./~/babel-runtime/helpers/slicedToArray.js?39c4","webpack:///./~/babel-runtime/~/core-js/library/fn/array/from.js?56e0","webpack:///./~/babel-runtime/~/core-js/library/fn/get-iterator.js?cf7c","webpack:///./~/babel-runtime/~/core-js/library/fn/is-iterable.js?f64a","webpack:///./~/babel-runtime/~/core-js/library/fn/number/is-integer.js?17db","webpack:///./~/babel-runtime/~/core-js/library/fn/number/is-nan.js?e8e9","webpack:///./~/babel-runtime/~/core-js/library/fn/object/assign.js?2fc7","webpack:///./~/babel-runtime/~/core-js/library/fn/object/define-property.js?4d33","webpack:///./~/babel-runtime/~/core-js/library/fn/object/entries.js?eb23","webpack:///./~/babel-runtime/~/core-js/library/fn/object/keys.js?0e2b","webpack:///./~/babel-runtime/~/core-js/library/fn/reflect/apply.js?1fe6","webpack:///./~/babel-runtime/~/core-js/library/modules/_add-to-unscopables.js?7da3","webpack:///./~/babel-runtime/~/core-js/library/modules/_array-includes.js?3a79","webpack:///./~/babel-runtime/~/core-js/library/modules/_create-property.js?f892","webpack:///./~/babel-runtime/~/core-js/library/modules/_html.js?8916","webpack:///./~/babel-runtime/~/core-js/library/modules/_ie8-dom-define.js?b102","webpack:///./~/babel-runtime/~/core-js/library/modules/_is-array-iter.js?a9d0","webpack:///./~/babel-runtime/~/core-js/library/modules/_is-integer.js?9053","webpack:///./~/babel-runtime/~/core-js/library/modules/_iter-call.js?45cd","webpack:///./~/babel-runtime/~/core-js/library/modules/_iter-create.js?0359","webpack:///./~/babel-runtime/~/core-js/library/modules/_iter-detect.js?e400","webpack:///./~/babel-runtime/~/core-js/library/modules/_iter-step.js?8944","webpack:///./~/babel-runtime/~/core-js/library/modules/_library.js?08a9","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-assign.js?82ff","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-create.js?9175","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-dps.js?73bc","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-gops.js?a865","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-gpo.js?5ec8","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-keys-internal.js?6fa8","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-sap.js?2605","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-to-array.js?205b","webpack:///./~/babel-runtime/~/core-js/library/modules/_redefine.js?350a","webpack:///./~/babel-runtime/~/core-js/library/modules/_string-at.js?8678","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-index.js?7bea","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-primitive.js?1a65","webpack:///./~/babel-runtime/~/core-js/library/modules/core.get-iterator.js?74ea","webpack:///./~/babel-runtime/~/core-js/library/modules/core.is-iterable.js?be30","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.array.from.js?f8ab","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.array.iterator.js?8359","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.number.is-integer.js?a48c","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.number.is-nan.js?7944","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.object.assign.js?07f0","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.object.define-property.js?8bde","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.object.keys.js?dfa4","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.reflect.apply.js?2b77","webpack:///./~/babel-runtime/~/core-js/library/modules/es7.object.entries.js?872a","webpack:///./src/mdl-ext-build.scss?16f6"],"names":["VK_TAB","VK_ENTER","VK_ESC","VK_SPACE","VK_PAGE_UP","VK_PAGE_DOWN","VK_END","VK_HOME","VK_ARROW_LEFT","VK_ARROW_UP","VK_ARROW_RIGHT","VK_ARROW_DOWN","ARIA_EXPANDED","ARIA_HIDDEN","ARIA_MULTISELECTABLE","ARIA_SELECTED","IS_DIRTY","IS_DISABLED","IS_EXPANDED","IS_FOCUSED","IS_INVALID","IS_UPGRADED","DATA_UPGRADED","MDL_RIPPLE","MDL_RIPPLE_COMPONENT","MDL_RIPPLE_EFFECT","MDL_RIPPLE_EFFECT_IGNORE_EVENTS","fullThrottle","callback","context","window","throttling","args","requestAnimationFrame","jsonStringToObject","jsonString","source","s","replace","JSON","parse","e","Error","message","stringList","isString","str","flatten","list","reduce","a","b","concat","Array","isArray","objectToStrings","arg","filter","key","map","result","joinStrings","delimiter","join","randomString","n","Math","random","toString","slice","removeChildElements","element","forceReflow","lastChild","removeChild","d","style","display","moveElements","target","ownerDocument","createDocumentFragment","firstChild","appendChild","getWindowViewport","viewportWidth","max","document","documentElement","clientWidth","innerWidth","viewportHeight","clientHeight","innerHeight","isRectInsideWindowViewport","top","left","bottom","right","getScrollParents","elements","el","parentNode","cs","getComputedStyle","overflowY","overflowX","unshift","body","getParentElements","from","to","tether","controlledBy","controlRect","getBoundingClientRect","height","offsetHeight","width","offsetWidth","elementRect","dy","dx","ddy","ddx","r","offsetTop","offsetLeft","isFocusable","hasAttribute","tabindex","getAttribute","parseInt","selector","name","nodeName","test","type","toLowerCase","disabled","href","getPropertyValue","easeInOutQuad","t","c","inOutQuintic","ts","tc","MIN_INERVAL","intervalFunction","interval","lapse","cb","undefined","next","timeElapsed","execute","f","cancel","cancelAnimationFrame","start","timeStart","Date","now","loop","started","value","TypeError","immediate","ReferenceError","stop","ACCORDION","ACCORDION_VERTICAL","ACCORDION_HORIZONTAL","PANEL","PANEL_ROLE","TAB","TAB_CAPTION","TAB_ROLE","TABPANEL","TABPANEL_ROLE","RIPPLE_EFFECT","RIPPLE","ANIMATION_EFFECT","ANIMATION","MaterialExtAccordion","element_","init","accordionPanelElements","panel","tab","tabpanel","classList","contains","querySelector","prototype","commandHandler_","event","preventDefault","stopPropagation","detail","command","dispatchToggleEvent_","state","ce","CustomEvent","bubbles","cancelable","dispatchEvent","openTab_","add","setAttribute","removeAttribute","closeTab_","remove","toggleTab_","closeTabs_","openTabs_","querySelectorAll","forEach","closedItem","upgradeTab","tabElement","disableTab","enableTab","calcMaxTabCaptionWidth","tabCaption","w","children","v","maxWidth","selectTab","selectedTab","tabClickHandler","tabFocusHandler","tabpanelClickHandler","tabpanelFocusHandler","tabKeydownHandler","keyCode","nextTab","nextPanel","previousElementSibling","nextElementSibling","focus","removeEventListener","addEventListener","openTab","closeTab","toggleTab","action","bind","componentHandler","register","constructor","classAsString","cssClass","widget","MDL_RIPPLE_CONTAINER","SLIDE","ROLE","SLIDE_ROLE","MaterialExtCarousel","config_","interactive","autostart","animationLoop","scrollAnimation_","startSlideShow_","nextSlide","slide","animateScroll_","moveSlideIntoViewport_","emitSelectEvent_","nextScroll","nextDirection","direction","scrollLeft","scrollWidth","x","min","cancelSlideShow_","newPosition","newDuration","completedCallback","distance","duration","abs","command_","setAriaSelected_","slides","getSlidesInViewport_","length","keyDownHandler_","cmd","getSlide_","shiftKey","setFocus_","dragHandler_","updating","rAFDragId","startX","clientX","touches","prevX","targetElement","update","currentX","drag","endDrag","clickHandler_","focusHandler_","blurHandler_","evt","carouselRect","slidesInViewport","slideRect","removeListeners_","mdlDowngrade_","closest","addRipple_","rippleContainer","createElement","ripple","img","title","upgradeElement","stopAnimation","upgradeSlides","hasRippleEffect","getConfig","JS_COLLAPSIBLE","COLLAPSIBLE_CONTROL_CLASS","COLLAPSIBLE_GROUP_CLASS","COLLAPSIBLE_REGION_CLASS","Collapsible","controlElement_","keyDownHandler","controlElement","MouseEvent","view","clickHandler","isDisabled","p","push","find","toggle","isExpanded","dispatchToggleEvent","regions","regionElements","i","region","collapse","expand","regionId","ids","regionIds","id","role","addRegionId","initControl","initRegions","addRegionElement","addListeners","removeListeners","split","MaterialExtCollapsible","collapsible","downgrade","getControlElement","getRegionElements","addRegionElements","removeRegionElements","removeRegionElement","disableToggle","enableToggle","JS_FORMAT_FIELD","FORMAT_FIELD_COMPONENT","browserLanguage","navigator","languages","language","userLanguage","FormatField","options_","clearTimeout","timer","focusInHandler","input","readOnly","unformatInput","setTimeout","select","focusOutHandler","formatValue","doReplace","RegExp","options","groupSeparator","decimalSeparator","intlGroupSeparator_","intlDecimalSeparator_","Intl","NumberFormat","locales","format","stripSeparatorsFromValue","fixSeparators","addOptions","opts","addLocale","addGrouping","toLocaleString","useGrouping","minimumFractionDigits","maximumFractionDigits","charAt","input_","MaterialExtFormatfield","formatField_","getOptions","getUnformattedValue","unformat","LIGHTBOARD_ROLE","SLIDE_TABSTOP","MaterialExtLightboard","getSlide","selectSlide_","selectedSlide","dispatchSelectEvent_","addRipple","firstSlide","lastSlide","prevSlide","keydownHandler","focusHandler","LIGHTBOX","LIGHTBOX_SLIDER","LIGHTBOX_SLIDER_SLIDE","STICKY_FOOTER","BUTTON","MaterialExtLightbox","dispatchAction_","buttonClickHandler_","repositionDialog_","footerHeight","footer","isSticky","reposition","dialog","fh","position","scrollTop","topValue","lightboxElement","naturalWidth","vh","imgLoadHandler_","imgDragHandler_","setStyles","properties","opacity","slider","textContent","src","button","figcaption","JS_MENU_BUTTON","MENU_BUTTON_MENU","MENU_BUTTON_MENU_ITEM","MENU_BUTTON_MENU_ITEM_SEPARATOR","menuFactory","ariaControls","removeAllSelected","selectedItem","setSelected","item","force","getSelected","isSeparator","nextItem","current","firstElementChild","previousItem","lastElementChild","firstItem","lastItem","selectItem","close","blurHandler","relatedTarget","explicitOriginalTarget","activeElement","shouldClose","err","touchStartHandler","open","btn","forceFocus","addWaiAria","menuitem","selected","MenuButton","openMenu","closeMenu","recalcMenuPosition","focusElement","focusElementLastScrollPosition","parseFloat","menu","positionChangeHandler","closeMenuHandler","dispatchMenuSelect","scrollElements","addFocusElement","tagName","moveElementToDocumentBody","findMenuElement","menuElement","menuElementId","addMenu","componentInstance","related","indexOf","MaterialExtMenuButton","menuButton_","getMenuElement","getSelectedMenuItem","setSelectedMenuItem","LABEL","INPUT","MaterialExtSelectfield","onFocus_","onBlur_","onReset_","updateClasses_","checkDisabled","checkValidity","checkDirty","checkFocus","select_","Boolean","disable","enable","change","label_","invalid","MDL_LAYOUT_CONTENT","IS_SCROLL_CLASS","MaterialExtStickyHeader","header_","content_","lastScrollTop_","visibleAtScrollEnd","mutationObserver_","drawing_","recalcWidth_","throttleResize","self","resizeHandler_","reposition_","currentContentScrollTop","scrollDiff","headerTop","scrollHeight","throttleScroll","scrollHandler_","updatePosition_","addMutationObserver_","MutationObserver","observe","attributes","childList","characterData","subtree","disconnect","paddingTop"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACtCA,8BAA6B;AAC7B,sCAAqC,gC;;;;;;ACDrC;;;;;AAEA,KAAMA,SAAiB,CAAvB;AACA,KAAMC,WAAiB,EAAvB;AACA,KAAMC,SAAiB,EAAvB;AACA,KAAMC,WAAiB,EAAvB;AACA,KAAMC,aAAiB,EAAvB;AACA,KAAMC,eAAiB,EAAvB;AACA,KAAMC,SAAiB,EAAvB;AACA,KAAMC,UAAiB,EAAvB;AACA,KAAMC,gBAAiB,EAAvB;AACA,KAAMC,cAAiB,EAAvB;AACA,KAAMC,iBAAiB,EAAvB;AACA,KAAMC,gBAAiB,EAAvB;;AAEA,KAAMC,gBAAuB,eAA7B;AACA,KAAMC,cAAuB,aAA7B;AACA,KAAMC,uBAAuB,sBAA7B;AACA,KAAMC,gBAAuB,eAA7B;;AAEA,KAAMC,WAAgB,UAAtB;AACA,KAAMC,cAAgB,aAAtB;AACA,KAAMC,cAAgB,aAAtB;AACA,KAAMC,aAAgB,YAAtB;AACA,KAAMC,aAAgB,YAAtB;AACA,KAAMC,cAAgB,aAAtB;AACA,KAAMC,gBAAgB,eAAtB;;AAEA,KAAMC,aAAkC,YAAxC;AACA,KAAMC,uBAAkC,gBAAxC;AACA,KAAMC,oBAAkC,sBAAxC;AACA,KAAMC,kCAAkC,qCAAxC;;SAGE1B,M,GAAAA,M;SACAC,Q,GAAAA,Q;SACAC,M,GAAAA,M;SACAC,Q,GAAAA,Q;SACAC,U,GAAAA,U;SACAC,Y,GAAAA,Y;SACAC,M,GAAAA,M;SACAC,O,GAAAA,O;SACAC,a,GAAAA,a;SACAC,W,GAAAA,W;SACAC,c,GAAAA,c;SACAC,a,GAAAA,a;SACAC,a,GAAAA,a;SACAC,W,GAAAA,W;SACAC,oB,GAAAA,oB;SACAC,a,GAAAA,a;SACAC,Q,GAAAA,Q;SACAC,W,GAAAA,W;SACAC,W,GAAAA,W;SACAC,U,GAAAA,U;SACAC,U,GAAAA,U;SACAC,W,GAAAA,W;SACAC,a,GAAAA,a;SACAC,U,GAAAA,U;SACAC,oB,GAAAA,oB;SACAC,iB,GAAAA,iB;SACAC,+B,GAAAA,+B;;;;;;AC5DF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAmE;AACnE;AACA,sFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd,eAAc;AACd,eAAc;AACd,gBAAe;AACf,gBAAe;AACf,gBAAe;AACf,iBAAgB;AAChB,0B;;;;;;AC5DA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wB;;;;;;ACVA;AACA;AACA;AACA,wCAAuC,gC;;;;;;ACHvC;AACA;AACA;AACA;AACA,G;;;;;;ACJA,qB;;;;;;ACAA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,8CAA6C,gBAAgB;AAC7D;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA,G;;;;;;ACpBA;AACA;AACA,kCAAiC,QAAQ,gBAAgB,UAAU,GAAG;AACtE,EAAC,E;;;;;;ACHD;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA,G;;;;;;ACPA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG,UAAU;AACb;AACA;AACA;AACA,G;;;;;;;;;;;;;;;;;;ACfA;;;;;;;;;;;;;;;AAeA,KAAMC,eAAe,SAAfA,YAAe,CAACC,QAAD,EAAWC,OAAX,EAAuB;;AAE1C,OAAI,CAACA,OAAL,EAAc;AACZA,e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B;;;;;;;AClFf,mBAAkB,wD;;;;;;ACAlB,mBAAkB,wD;;;;;;ACAlB,mBAAkB,wD;;;;;;ACAlB;AACA;AACA;AACA,G;;;;;;ACHA;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB,EAAE;;AAE7C;AACA;AACA;AACA;AACA,IAAG,UAAU;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACtBA,kBAAiB;;AAEjB;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA,c;;;;;;ACHA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,yCAAwC,oCAAoC;AAC5E,6CAA4C,oCAAoC;AAChF,MAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB,mBAAmB;AACnC;AACA;AACA,kCAAiC,2BAA2B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,G;;;;;;ACrEA,eAAc,sB;;;;;;ACAd;AACA;AACA;;AAEA;AACA,mEAAkE,+BAA+B;AACjG,G;;;;;;ACNA;AACA;AACA,oDAAmD;AACnD;AACA,wCAAuC;AACvC,G;;;;;;ACLA;AACA;AACA;AACA;AACA,4DAA2D;AAC3D,G;;;;;;ACLA;AACA;AACA;AACA;AACA,G;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACPA;AACA;AACA;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;AACA,G;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,G;;;;;;ACXA;AACA;AACA;AACA;AACA;;AAEA;AACA,2FAAgF,aAAa,EAAE;;AAE/F;AACA,sDAAqD,0BAA0B;AAC/E;AACA,G;;;;;;ACZA;AACA;;AAEA;AACA;AACA,gCAA+B,qBAAqB;AACpD,gCAA+B,SAAS,EAAE;AAC1C,EAAC,UAAU;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA,4BAA2B,SAAS,mBAAmB;AACvD,gCAA+B,aAAa;AAC5C;AACA,IAAG,UAAU;AACb;AACA,G;;;;;;ACpBA;AACA,WAAU;AACV,G;;;;;;ACFA,uB;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC,UAAU,EAAE;AAC9C,oBAAmB,sCAAsC;AACzD,EAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,EAAC,W;;;;;;AChCD;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;;;;;;ACxCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACZA,0C;;;;;;ACAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,G;;;;;;ACZA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA,+BAA8B;AAC9B;AACA;AACA,oDAAmD,OAAO,EAAE;AAC5D,G;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,G;;;;;;ACfA,0C;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yEAA0E,kBAAkB,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAoD,gCAAgC;AACpF;AACA;AACA,MAAK;AACL;AACA,kCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;ACpCD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAgC;AAChC,eAAc;AACd,kBAAiB;AACjB;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,6B;;;;;;ACjCA;AACA;;AAEA,+BAA8B,mCAAoC,E;;;;;;ACHlE;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACPD;AACA;;AAEA,2CAA0C,gCAAoC,E;;;;;;ACH9E;AACA;AACA,qEAAuE,0CAA0C,E;;;;;;ACFjH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACRD;AACA;AACA;AACA;AACA,sDAAmD;AACnD;AACA;AACA;AACA,sBAAqB;AACrB,EAAC;AACD;AACA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACfD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC,E;;;;;;ACRD,0C","file":"mdl-ext.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"mdl-ext\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mdl-ext\"] = factory();\n\telse\n\t\troot[\"mdl-ext\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition\n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 80c672803f0b3533e5b7\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 80c672803f0b3533e5b7","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_core.js\n// module id = 1\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_core.js\n// module id = 1\n// module chunks = 0 1","'use strict';\n\nconst VK_TAB         = 9;\nconst VK_ENTER       = 13;\nconst VK_ESC         = 27;\nconst VK_SPACE       = 32;\nconst VK_PAGE_UP     = 33;\nconst VK_PAGE_DOWN   = 34;\nconst VK_END         = 35;\nconst VK_HOME        = 36;\nconst VK_ARROW_LEFT  = 37;\nconst VK_ARROW_UP    = 38;\nconst VK_ARROW_RIGHT = 39;\nconst VK_ARROW_DOWN  = 40;\n\nconst ARIA_EXPANDED        = 'aria-expanded';\nconst ARIA_HIDDEN          = 'aria-hidden';\nconst ARIA_MULTISELECTABLE = 'aria-multiselectable';\nconst ARIA_SELECTED        = 'aria-selected';\n\nconst IS_DIRTY      = 'is-dirty';\nconst IS_DISABLED   = 'is-disabled';\nconst IS_EXPANDED   = 'is-expanded';\nconst IS_FOCUSED    = 'is-focused';\nconst IS_INVALID    = 'is-invalid';\nconst IS_UPGRADED   = 'is-upgraded';\nconst DATA_UPGRADED = 'data-upgraded';\n\nconst MDL_RIPPLE                      = 'mdl-ripple';\nconst MDL_RIPPLE_COMPONENT            = 'MaterialRipple';\nconst MDL_RIPPLE_EFFECT               = 'mdl-js-ripple-effect';\nconst MDL_RIPPLE_EFFECT_IGNORE_EVENTS = 'mdl-js-ripple-effect--ignore-events';\n\nexport {\n  VK_TAB,\n  VK_ENTER,\n  VK_ESC,\n  VK_SPACE,\n  VK_PAGE_UP,\n  VK_PAGE_DOWN ,\n  VK_END,\n  VK_HOME,\n  VK_ARROW_LEFT,\n  VK_ARROW_UP,\n  VK_ARROW_RIGHT,\n  VK_ARROW_DOWN ,\n  ARIA_EXPANDED,\n  ARIA_HIDDEN,\n  ARIA_MULTISELECTABLE,\n  ARIA_SELECTED,\n  IS_DIRTY,\n  IS_DISABLED,\n  IS_EXPANDED,\n  IS_FOCUSED,\n  IS_INVALID,\n  IS_UPGRADED,\n  DATA_UPGRADED ,\n  MDL_RIPPLE,\n  MDL_RIPPLE_COMPONENT,\n  MDL_RIPPLE_EFFECT,\n  MDL_RIPPLE_EFFECT_IGNORE_EVENTS\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/constants.js\n\n\n// WEBPACK FOOTER //\n// ./src/utils/constants.js","var global    = require('./_global')\n  , core      = require('./_core')\n  , ctx       = require('./_ctx')\n  , hide      = require('./_hide')\n  , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n  var IS_FORCED = type & $export.F\n    , IS_GLOBAL = type & $export.G\n    , IS_STATIC = type & $export.S\n    , IS_PROTO  = type & $export.P\n    , IS_BIND   = type & $export.B\n    , IS_WRAP   = type & $export.W\n    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})\n    , expProto  = exports[PROTOTYPE]\n    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n    , key, own, out;\n  if(IS_GLOBAL)source = name;\n  for(key in source){\n    // contains in native\n    own = !IS_FORCED && target && target[key] !== undefined;\n    if(own && key in exports)continue;\n    // export native or passed\n    out = own ? target[key] : source[key];\n    // prevent global pollution for namespaces\n    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n    // bind timers to global for call from export context\n    : IS_BIND && own ? ctx(out, global)\n    // wrap global constructors for prevent change them in library\n    : IS_WRAP && target[key] == out ? (function(C){\n      var F = function(a, b, c){\n        if(this instanceof C){\n          switch(arguments.length){\n            case 0: return new C;\n            case 1: return new C(a);\n            case 2: return new C(a, b);\n          } return new C(a, b, c);\n        } return C.apply(this, arguments);\n      };\n      F[PROTOTYPE] = C[PROTOTYPE];\n      return F;\n    // make static versions for prototype methods\n    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n    if(IS_PROTO){\n      (exports.virtual || (exports.virtual = {}))[key] = out;\n      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n      if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);\n    }\n  }\n};\n// type bitmap\n$export.F = 1;   // forced\n$export.G = 2;   // global\n$export.S = 4;   // static\n$export.P = 8;   // proto\n$export.B = 16;  // bind\n$export.W = 32;  // wrap\n$export.U = 64;  // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_export.js\n// module id = 3\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_export.js\n// module id = 3\n// module chunks = 0 1","var store      = require('./_shared')('wks')\n  , uid        = require('./_uid')\n  , Symbol     = require('./_global').Symbol\n  , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n  return store[name] || (store[name] =\n    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_wks.js\n// module id = 4\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_wks.js\n// module id = 4\n// module chunks = 0 1","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n  ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_global.js\n// module id = 5\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_global.js\n// module id = 5\n// module chunks = 0 1","var isObject = require('./_is-object');\nmodule.exports = function(it){\n  if(!isObject(it))throw TypeError(it + ' is not an object!');\n  return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_an-object.js\n// module id = 6\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_an-object.js\n// module id = 6\n// module chunks = 0 1","module.exports = {};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iterators.js\n// module id = 7\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iterators.js\n// module id = 7\n// module chunks = 0 1","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n      arr2[i] = arr[i];\n    }\n\n    return arr2;\n  } else {\n    return (0, _from2.default)(arr);\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/toConsumableArray.js\n// module id = 8\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/toConsumableArray.js\n// module id = 8\n// module chunks = 0 1","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n  return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_descriptors.js\n// module id = 9\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_descriptors.js\n// module id = 9\n// module chunks = 0 1","module.exports = function(exec){\n  try {\n    return !!exec();\n  } catch(e){\n    return true;\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_fails.js\n// module id = 10\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_fails.js\n// module id = 10\n// module chunks = 0 1","var dP         = require('./_object-dp')\n  , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n  return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n  object[key] = value;\n  return object;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_hide.js\n// module id = 11\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_hide.js\n// module id = 11\n// module chunks = 0 1","var anObject       = require('./_an-object')\n  , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n  , toPrimitive    = require('./_to-primitive')\n  , dP             = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if(IE8_DOM_DEFINE)try {\n    return dP(O, P, Attributes);\n  } catch(e){ /* empty */ }\n  if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n  if('value' in Attributes)O[P] = Attributes.value;\n  return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-dp.js\n// module id = 12\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-dp.js\n// module id = 12\n// module chunks = 0 1","/**\n * Since some events can fire at a high rate, the event handler should be limited to execute computationally\n * expensive operations, such as DOM modifications, inside a single rendered frame.\n * When listening to e.g. scroll and resize events, the browser tends to fire off more events per\n * second than are actually useful. For instance, if your event listener sets some element positions, then it\n * is possible for those positions to be updated multiple times in a single rendered frame. In this case, all of\n * the layout calculations triggered by setting the elements' positions will be wasted except for the one time that\n * it runs immediately prior to the browser rendering the updated layout to the screen.\n * To avoid wasting cycles, we can use requestAnimationFrame to only run the event listener once just before the page\n * is rendered to the screen.\n * *\n * @param callback the function to throttle\n * @param context  optional context of this, default to global\n * @return {function(...[*])}\n */\nconst fullThrottle = (callback, context) => {\n\n  if (!context) {\n    context = this || window;\n  }\n\n  let throttling = false;\n\n  return (...args) => {\n    if(!throttling) {\n      throttling = true;\n      window.requestAnimationFrame( () => {\n        throttling = false;\n        return Reflect.apply(callback, context, args);\n      });\n    }\n  };\n};\n\nexport default fullThrottle;\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/full-throttle.js\n\n\n// WEBPACK FOOTER //\n// ./src/utils/full-throttle.js","'use strict';\n\n/**\n * Converts a JSON string to object\n * @param jsonString\n * @param source\n */\nconst jsonStringToObject = (jsonString, source = {} ) => {\n  const s = jsonString.replace(/'/g, '\"');\n  try {\n    return Object.assign(source, JSON.parse(s));\n  }\n  catch (e) {\n    throw new Error(`Failed to parse json string: ${s}. Error: ${e.message}`);\n  }\n};\n\nexport { jsonStringToObject };\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/json-utils.js\n\n\n// WEBPACK FOOTER //\n// ./src/utils/json-utils.js","'use strict';\n\n/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * A javascript utility for conditionally creating a list of strings.\n * The function takes any number of arguments which can be a string or object.\n * Inspired by (but not copied from) JedWatson/classnames, https://github.com/JedWatson/classnames\n *\n * @param  {*} args the strings and/or objects to\n * @return {Array} a list of strings\n * @example\n * // Returns ['foo', 'bar', 'baz', 'quux']\n * stringList(', ', 'foo', { bar: true, duck: false }, 'baz', { quux: true });\n * @example see the tests for more examples\n */\nconst stringList = (...args) => {\n\n  const isString = str => str != null && typeof str === 'string';\n\n  const flatten = list => list.reduce((a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), []);\n\n  const objectToStrings = arg =>\n    Object.keys(arg)\n      .filter(key => arg[key])\n      .map(key => key);\n\n  return args\n    .filter(arg => !!arg)\n    .map(arg => isString(arg) ? arg : objectToStrings(arg))\n    .reduce((result, arg) => result.concat(Array.isArray(arg) ? flatten(arg) : arg), []);\n};\n\n/**\n * A simple javascript utility for conditionally joining strings together.\n * The function takes a delimiter string and any number of arguments which can be a string or object.\n *\n * @param delimiter delimiter to separate joined strings\n * @param  {*} args the strings and/or objects to join\n * @return {String} the joined strings\n * @example\n * // Returns 'foo, bar, baz, quux'\n * joinStrings(', ', 'foo', { bar: true, duck: false }, 'baz', { quux: true });\n * @example see the tests for more examples\n */\nconst joinStrings = (delimiter = ' ', ...args) => stringList(...args).join(delimiter);\n\n/**\n * Generates a random string with a given length\n * @param n {Integer} length of generated string\n * @see http://stackoverflow.com/questions/1349404/generate-random-string-characters-in-javascript\n * @return {String} the random string\n * @example\n * // Returns e.g. 'pd781w0y'\n * randomString(8);\n * @example see the tests for more examples\n */\nconst randomString = ( n=12 ) => Array( n+1 ).join((`${Math.random().toString(36)}00000000000000000`).slice(2, 18)).slice(0, n);\n\nexport { joinStrings, randomString, stringList };\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/string-utils.js\n\n\n// WEBPACK FOOTER //\n// ./src/utils/string-utils.js","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n  return hasOwnProperty.call(it, key);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_has.js\n// module id = 16\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_has.js\n// module id = 16\n// module chunks = 0 1","module.exports = function(it){\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_is-object.js\n// module id = 17\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_is-object.js\n// module id = 17\n// module chunks = 0 1","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys       = require('./_object-keys-internal')\n  , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n  return $keys(O, enumBugKeys);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-keys.js\n// module id = 18\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-keys.js\n// module id = 18\n// module chunks = 0 1","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n  , defined = require('./_defined');\nmodule.exports = function(it){\n  return IObject(defined(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-iobject.js\n// module id = 19\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-iobject.js\n// module id = 19\n// module chunks = 0 1","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n  return Object(defined(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-object.js\n// module id = 20\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-object.js\n// module id = 20\n// module chunks = 0 1","/**\n * Remove child element(s)\n * element.innerHTNL = '' has a performance penality!\n * @see http://jsperf.com/empty-an-element/16\n * @see http://jsperf.com/force-reflow\n * @param element\n * @param forceReflow\n */\nconst removeChildElements = (element, forceReflow = true) => {\n\n  // See: http://jsperf.com/empty-an-element/16\n  while (element.lastChild) {\n    element.removeChild(element.lastChild);\n  }\n  if(forceReflow) {\n    // See: http://jsperf.com/force-reflow\n    const d = element.style.display;\n\n    element.style.display = 'none';\n    element.style.display = d;\n  }\n};\n\n/**\n * Moves child elements from a DOM node to another dom node.\n * @param source {HTMLElement}\n * @param target {HTMLElement} If the target parameter is ommited, a document fragment is created\n * @return {HTMLElement} The target node\n *\n * @example\n * // Moves child elements from a DOM node to another dom node.\n * moveElements(source, destination);\n *\n * @example\n * // If the second parameter is ommited, a document fragment is created:\n * let fragment = moveElements(source);\n *\n * @See: https://github.com/webmodules/dom-move\n */\nconst moveElements = (source, target) => {\n  if (!target) {\n    target = source.ownerDocument.createDocumentFragment();\n  }\n  while (source.firstChild) {\n    target.appendChild(source.firstChild);\n  }\n  return target;\n};\n\n\n/**\n * Get the browser viewport dimensions\n * @see http://stackoverflow.com/questions/1248081/get-the-browser-viewport-dimensions-with-javascript\n * @return {{windowWidth: number, windowHeight: number}}\n */\nconst getWindowViewport = () => {\n  return {\n    viewportWidth: Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0),\n    viewportHeight: Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0)\n  };\n};\n\n\n/**\n * Check whether an element is in the window viewport\n * @see http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport/\n * @param top\n * @param left\n * @param bottom\n * @param right\n * @return {boolean} true if rectangle is inside window viewport, otherwise false\n */\nconst isRectInsideWindowViewport = ({ top, left, bottom, right }) => {\n  const { viewportWidth, viewportHeight } = getWindowViewport();\n  return top >= 0 &&\n    left >= 0 &&\n    bottom <= viewportHeight &&\n    right <= viewportWidth;\n};\n\n\n/**\n * Get a list of parent elements that can possibly scroll\n * @param el the element to get parents for\n * @returns {Array}\n */\nconst getScrollParents = el => {\n  const elements = [];\n\n  /*\n  for (el = el.parentNode; el; el = el.parentNode) {\n    const cs = window.getComputedStyle(el);\n    if(!(cs.overflowY === 'hidden' && cs.overflowX === 'hidden')) {\n      elements.unshift(el);\n    }\n    if(el === document.body) {\n      break;\n    }\n  }\n  */\n\n  let element = el.parentNode;\n  while (element) {\n    const cs = window.getComputedStyle(element);\n    if(!(cs.overflowY === 'hidden' && cs.overflowX === 'hidden')) {\n      elements.unshift(element);\n    }\n    if(element === document.body) {\n      break;\n    }\n    element = element.parentNode;\n  }\n\n  return elements;\n};\n\n/**\n * Get a list of parent elements, from a given element to a given element\n * @param {HTMLElement} from\n * @param {HTMLElement} to\n * @return {Array<HTMLElement>} the parent elements, not including from and to\n */\nconst getParentElements = (from, to) => {\n  const result = [];\n  let element = from.parentNode;\n  while (element) {\n    if(element === to) {\n      break;\n    }\n    result.unshift(element);\n    element = element.parentNode;\n  }\n  return result;\n};\n\n/**\n * Position element next to button\n *\n * Positioning strategy\n *  1. element.height > viewport.height\n *     let element.height = viewport.heigt\n *     let element.overflow-y = auto\n *  2. element.width > viewport.width\n *     let element.width = viewport.width\n *  3. position element below button, align left edge of element with button left\n *       done if element inside viewport\n *  4. position element below button, align right edge of element with button right\n *       done if element inside viewport\n *  5. positions element above button, aligns left edge of element with button left\n *       done if element inside viewport\n *  6. position element above the control element, aligned to its right.\n *       done if element inside viewport\n *  7. position element at button right hand side, aligns element top with button top\n *       done if element inside viewport\n *  8. position element at button left hand side, aligns element top with button top\n *       done if element inside viewport\n *  9. position element inside viewport\n *     1. position element at viewport bottom\n *     2. position element at button right hand side\n *        done if element inside viewport\n *     3. position element at button left hand side\n *       done if element inside viewport\n *     4. position element at viewport right\n * 10. done\n *\n */\nconst tether = (controlledBy, element) => {\n  const controlRect = controlledBy.getBoundingClientRect();\n\n  // 1. will element height fit inside window viewport?\n  const { viewportWidth, viewportHeight } = getWindowViewport();\n\n  element.style.height = 'auto';\n  //element.style.overflowY = 'hidden';\n  if(element.offsetHeight > viewportHeight) {\n    element.style.height = `${viewportHeight}px`;\n    element.style.overflowY = 'auto';\n  }\n\n  // 2. will element width fit inside window viewport?\n  element.style.width = 'auto';\n  if(element.offsetWidth > viewportWidth) {\n    element.style.width = `${viewportWidth}px`;\n  }\n\n  const elementRect = element.getBoundingClientRect();\n\n  // element to control distance\n  const dy = controlRect.top - elementRect.top;\n  const dx = controlRect.left - elementRect.left;\n\n  // element rect, window coordinates relative to top,left of control\n  const top = elementRect.top + dy;\n  const left = elementRect.left + dx;\n  const bottom = top + elementRect.height;\n  const right = left + elementRect.width;\n\n  // Position relative to control\n  let ddy = dy;\n  let ddx = dx;\n\n  if(isRectInsideWindowViewport({\n    top: top + controlRect.height,\n    left: left,\n    bottom: bottom + controlRect.height,\n    right: right\n  })) {\n    // 3 position element below the control element, aligned to its left\n    ddy = controlRect.height + dy;\n    //console.log('***** 3');\n  }\n  else if(isRectInsideWindowViewport({\n    top: top + controlRect.height,\n    left: left + controlRect.width - elementRect.width,\n    bottom: bottom + controlRect.height,\n    right: left + controlRect.width\n  })) {\n    // 4 position element below the control element, aligned to its right\n    ddy = controlRect.height + dy;\n    ddx = dx + controlRect.width - elementRect.width;\n    //console.log('***** 4');\n  }\n  else if(isRectInsideWindowViewport({\n    top: top - elementRect.height,\n    left: left,\n    bottom: bottom - elementRect.height,\n    right: right\n  })) {\n    // 5. position element above the control element, aligned to its left.\n    ddy = dy - elementRect.height;\n    //console.log('***** 5');\n  }\n  else if(isRectInsideWindowViewport({\n    top: top - elementRect.height,\n    left: left + controlRect.width - elementRect.width,\n    bottom: bottom - elementRect.height,\n    right: left + controlRect.width\n  })) {\n    // 6. position element above the control element, aligned to its right.\n    ddy = dy - elementRect.height;\n    ddx = dx + controlRect.width - elementRect.width;\n    //console.log('***** 6');\n  }\n  else if(isRectInsideWindowViewport({\n    top: top,\n    left: left + controlRect.width,\n    bottom: bottom,\n    right: right + controlRect.width\n  })) {\n    // 7. position element at button right hand side\n    ddx = controlRect.width + dx;\n    //console.log('***** 7');\n  }\n  else if(isRectInsideWindowViewport({\n    top: top,\n    left: left - controlRect.width,\n    bottom: bottom,\n    right: right - controlRect.width\n  })) {\n    // 8. position element at button left hand side\n    ddx = dx - elementRect.width;\n    //console.log('***** 8');\n  }\n  else {\n    // 9. position element inside viewport, near controlrect if possible\n    //console.log('***** 9');\n\n    // 9.1 position element near controlrect bottom\n    ddy =  dy - bottom + viewportHeight;\n    if(top + controlRect.height >= 0 && bottom + controlRect.height <= viewportHeight) {\n      ddy = controlRect.height + dy;\n    }\n    else if(top - elementRect.height >= 0 && bottom - elementRect.height <= viewportHeight) {\n      ddy = dy - elementRect.height;\n    }\n\n    if(left + elementRect.width + controlRect.width <= viewportWidth) {\n      // 9.2 Position element at button right hand side\n      ddx = controlRect.width + dx;\n      //console.log('***** 9.2');\n    }\n    else if(left - elementRect.width >= 0) {\n      // 9.3 Position element at button left hand side\n      ddx = dx - elementRect.width;\n      //console.log('***** 9.3');\n    }\n    else {\n      // 9.4 position element at (near) viewport right\n      const r = left + elementRect.width - viewportWidth;\n      ddx = dx - r;\n      //console.log('***** 9.4');\n    }\n  }\n\n  // 10. done\n  element.style.top = `${element.offsetTop + ddy}px`;\n  element.style.left = `${element.offsetLeft + ddx}px`;\n  //console.log('***** 10. done');\n};\n\n/**\n * Check if the given element can receive focus\n * @param {HTMLElement} element the element to check\n * @return {boolean} true if the element is focusable, otherwise false\n */\nconst isFocusable = (element) => {\n  // https://github.com/stephenmathieson/is-focusable/blob/master/index.js\n  // http://stackoverflow.com/questions/1599660/which-html-elements-can-receive-focus\n\n  if (element.hasAttribute('tabindex')) {\n    const tabindex = element.getAttribute('tabindex');\n    if (!Number.isNaN(tabindex)) {\n      return parseInt(tabindex) > -1;\n    }\n  }\n\n  if (element.hasAttribute('contenteditable') &&\n    element.getAttribute('contenteditable') !== 'false') {\n    // https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-contenteditable\n    return true;\n  }\n\n  // natively focusable, but only when enabled\n  const selector = /input|select|textarea|button|details/i;\n  const name = element.nodeName;\n  if (selector.test(name)) {\n    return element.type.toLowerCase() !== 'hidden' && !element.disabled;\n  }\n\n  // anchors and area must have an href\n  if (name === 'A' || name === 'AREA') {\n    return !!element.href;\n  }\n\n  if (name === 'IFRAME') {\n    // Check visible iframe\n    const cs = window.getComputedStyle(element);\n    return cs.getPropertyValue('display').toLowerCase() !== 'none';\n  }\n\n  return false;\n};\n\n\n/**\n * Get a list of offset parents for given element\n * @see https://www.benpickles.com/articles/51-finding-a-dom-nodes-common-ancestor-using-javascript\n * @param el the element\n * @return {Array} a list of offset parents\n */\n/*\nconst offsetParents = (el) => {\n  const elements = [];\n  for (; el; el = el.offsetParent) {\n    elements.unshift(el);\n  }\n  if(!elements.find(e => e === document.body)) {\n    elements.unshift(document.body);\n  }\n  return elements;\n};\n*/\n\n/**\n * Finds the common offset ancestor of two DOM nodes\n * @see https://www.benpickles.com/articles/51-finding-a-dom-nodes-common-ancestor-using-javascript\n * @see https://gist.github.com/benpickles/4059636\n * @param a\n * @param b\n * @return {Element} The common offset ancestor of a and b\n */\n/*\nconst commonOffsetAncestor = (a, b) => {\n  const parentsA = offsetParents(a);\n  const parentsB = offsetParents(b);\n\n  for (let i = 0; i < parentsA.length; i++) {\n    if (parentsA[i] !== parentsB[i]) return parentsA[i-1];\n  }\n};\n*/\n\n/**\n * Calculate position relative to a target element\n * @see http://stackoverflow.com/questions/21064101/understanding-offsetwidth-clientwidth-scrollwidth-and-height-respectively\n * @param target\n * @param el\n * @return {{top: number, left: number}}\n */\n/*\nconst calcPositionRelativeToTarget = (target, el) => {\n  let top = 0;\n  let left = 0;\n\n  while(el) {\n    top += (el.offsetTop - el.scrollTop + el.clientTop) || 0;\n    left += (el.offsetLeft - el.scrollLeft + el.clientLeft) || 0;\n    el = el.offsetParent;\n\n    if(el === target) {\n      break;\n    }\n  }\n  return { top: top, left: left };\n};\n*/\n\nexport {\n  getWindowViewport,\n  getParentElements,\n  getScrollParents,\n  isFocusable,\n  isRectInsideWindowViewport,\n  moveElements,\n  removeChildElements,\n  tether,\n};\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/dom-utils.js\n\n\n// WEBPACK FOOTER //\n// ./src/utils/dom-utils.js","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/classCallCheck.js\n// module id = 22\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/classCallCheck.js\n// module id = 22\n// module chunks = 0 1","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/createClass.js\n// module id = 23\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/createClass.js\n// module id = 23\n// module chunks = 0 1","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n  if(it == undefined)throw TypeError(\"Can't call method on  \" + it);\n  return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_defined.js\n// module id = 24\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_defined.js\n// module id = 24\n// module chunks = 0 1","module.exports = function(bitmap, value){\n  return {\n    enumerable  : !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable    : !(bitmap & 4),\n    value       : value\n  };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_property-desc.js\n// module id = 25\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_property-desc.js\n// module id = 25\n// module chunks = 0 1","var shared = require('./_shared')('keys')\n  , uid    = require('./_uid');\nmodule.exports = function(key){\n  return shared[key] || (shared[key] = uid(key));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_shared-key.js\n// module id = 26\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_shared-key.js\n// module id = 26\n// module chunks = 0 1","// 7.1.4 ToInteger\nvar ceil  = Math.ceil\n  , floor = Math.floor;\nmodule.exports = function(it){\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-integer.js\n// module id = 27\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-integer.js\n// module id = 27\n// module chunks = 0 1","'use strict';\nvar $at  = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function(iterated){\n  this._t = String(iterated); // target\n  this._i = 0;                // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n  var O     = this._t\n    , index = this._i\n    , point;\n  if(index >= O.length)return {value: undefined, done: true};\n  point = $at(O, index);\n  this._i += point.length;\n  return {value: point, done: false};\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.string.iterator.js\n// module id = 28\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.string.iterator.js\n// module id = 28\n// module chunks = 0 1","'use strict';\n\n// See: http://robertpenner.com/easing/\n\nconst easeInOutQuad = (t, b, c, d) => {\n  t /= d / 2;\n  if(t < 1) return c / 2 * t * t + b;\n  t--;\n  return -c / 2 * (t * (t - 2) - 1) + b;\n};\n\nconst inOutQuintic = (t, b, c, d) => {\n  const ts = (t/=d)*t;\n  const tc = ts*t;\n  return b+c*(6*tc*ts + -15*ts*ts + 10*tc);\n};\n\nexport { easeInOutQuad, inOutQuintic };\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/easing.js\n\n\n// WEBPACK FOOTER //\n// ./src/utils/easing.js","const MIN_INERVAL = 1000/60;\n\n/**\n * Trigger a callback at a given interval\n * @param interval defaults to 1000/60 ms\n * @return {function()} reference to start, stop, immediate and started\n */\n\nconst intervalFunction = ( interval = MIN_INERVAL ) => {\n\n  let lapse = interval < MIN_INERVAL ? MIN_INERVAL : interval;\n  let cb = undefined;\n  let next = null;\n  let timeElapsed = 0;\n\n  const execute = () => {\n    const f = cb(timeElapsed);\n    if (!f) {\n      cancel();\n    }\n  };\n\n  const cancel = () => {\n    if(next) {\n      window.cancelAnimationFrame(next);\n    }\n    next = null;\n    timeElapsed = 0;\n  };\n\n  const start = () => {\n    let timeStart = Date.now();\n\n    const loop = now => {\n      if (next) {\n        next = window.requestAnimationFrame( () => loop( Date.now() ));\n\n        timeElapsed += now - timeStart;\n\n        if(timeElapsed >= lapse) {\n          execute();\n          if( (timeElapsed -= lapse) > lapse) {\n            // time elapsed - interval_ > interval_ , indicates inactivity\n            // Could be due to browser minimized, tab changed, screen saver started, computer sleep, and so on\n            timeElapsed = 0;\n          }\n        }\n        timeStart = now;\n      }\n    };\n\n    next = 1;  // a truthy value for first loop\n    loop( timeStart );\n  };\n\n  return {\n    get started() {\n      return next != null;\n    },\n    get interval() {\n      return lapse;\n    },\n    set interval(value) {\n      lapse = value < MIN_INERVAL ? MIN_INERVAL : value;\n    },\n    start(callback) {\n      if(typeof callback !== 'function') {\n        throw new TypeError('callback parameter must be a function');\n      }\n      cb = callback;\n      start();\n    },\n    immediate() {\n      if(!cb) {\n        throw new ReferenceError('callback parameter is not defined. Call start before immediate.');\n      }\n      execute();\n    },\n    stop: () => cancel(),\n  };\n};\n\nexport default intervalFunction;\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/interval-function.js\n\n\n// WEBPACK FOOTER //\n// ./src/utils/interval-function.js","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/get-iterator.js\n// module id = 31\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/get-iterator.js\n// module id = 31\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/number/is-integer\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/number/is-integer.js\n// module id = 32\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/number/is-integer.js\n// module id = 32\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/assign.js\n// module id = 33\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/assign.js\n// module id = 33\n// module chunks = 0 1","module.exports = function(it){\n  if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n  return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_a-function.js\n// module id = 34\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_a-function.js\n// module id = 34\n// module chunks = 0 1","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof')\n  , TAG = require('./_wks')('toStringTag')\n  // ES3 wrong here\n  , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function(it, key){\n  try {\n    return it[key];\n  } catch(e){ /* empty */ }\n};\n\nmodule.exports = function(it){\n  var O, T, B;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n    // builtinTag case\n    : ARG ? cof(O)\n    // ES3 arguments fallback\n    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_classof.js\n// module id = 35\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_classof.js\n// module id = 35\n// module chunks = 0 1","var toString = {}.toString;\n\nmodule.exports = function(it){\n  return toString.call(it).slice(8, -1);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_cof.js\n// module id = 36\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_cof.js\n// module id = 36\n// module chunks = 0 1","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n  aFunction(fn);\n  if(that === undefined)return fn;\n  switch(length){\n    case 1: return function(a){\n      return fn.call(that, a);\n    };\n    case 2: return function(a, b){\n      return fn.call(that, a, b);\n    };\n    case 3: return function(a, b, c){\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function(/* ...args */){\n    return fn.apply(that, arguments);\n  };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_ctx.js\n// module id = 37\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_ctx.js\n// module id = 37\n// module chunks = 0 1","var isObject = require('./_is-object')\n  , document = require('./_global').document\n  // in old IE typeof document.createElement is 'object'\n  , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n  return is ? document.createElement(it) : {};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_dom-create.js\n// module id = 38\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_dom-create.js\n// module id = 38\n// module chunks = 0 1","// IE 8- don't enum bug keys\nmodule.exports = (\n  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_enum-bug-keys.js\n// module id = 39\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_enum-bug-keys.js\n// module id = 39\n// module chunks = 0 1","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n  return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iobject.js\n// module id = 40\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iobject.js\n// module id = 40\n// module chunks = 0 1","'use strict';\nvar LIBRARY        = require('./_library')\n  , $export        = require('./_export')\n  , redefine       = require('./_redefine')\n  , hide           = require('./_hide')\n  , has            = require('./_has')\n  , Iterators      = require('./_iterators')\n  , $iterCreate    = require('./_iter-create')\n  , setToStringTag = require('./_set-to-string-tag')\n  , getPrototypeOf = require('./_object-gpo')\n  , ITERATOR       = require('./_wks')('iterator')\n  , BUGGY          = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n  , FF_ITERATOR    = '@@iterator'\n  , KEYS           = 'keys'\n  , VALUES         = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n  $iterCreate(Constructor, NAME, next);\n  var getMethod = function(kind){\n    if(!BUGGY && kind in proto)return proto[kind];\n    switch(kind){\n      case KEYS: return function keys(){ return new Constructor(this, kind); };\n      case VALUES: return function values(){ return new Constructor(this, kind); };\n    } return function entries(){ return new Constructor(this, kind); };\n  };\n  var TAG        = NAME + ' Iterator'\n    , DEF_VALUES = DEFAULT == VALUES\n    , VALUES_BUG = false\n    , proto      = Base.prototype\n    , $native    = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n    , $default   = $native || getMethod(DEFAULT)\n    , $entries   = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined\n    , $anyNative = NAME == 'Array' ? proto.entries || $native : $native\n    , methods, key, IteratorPrototype;\n  // Fix native\n  if($anyNative){\n    IteratorPrototype = getPrototypeOf($anyNative.call(new Base));\n    if(IteratorPrototype !== Object.prototype){\n      // Set @@toStringTag to native iterators\n      setToStringTag(IteratorPrototype, TAG, true);\n      // fix for some old engines\n      if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n    }\n  }\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if(DEF_VALUES && $native && $native.name !== VALUES){\n    VALUES_BUG = true;\n    $default = function values(){ return $native.call(this); };\n  }\n  // Define iterator\n  if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n    hide(proto, ITERATOR, $default);\n  }\n  // Plug for library\n  Iterators[NAME] = $default;\n  Iterators[TAG]  = returnThis;\n  if(DEFAULT){\n    methods = {\n      values:  DEF_VALUES ? $default : getMethod(VALUES),\n      keys:    IS_SET     ? $default : getMethod(KEYS),\n      entries: $entries\n    };\n    if(FORCED)for(key in methods){\n      if(!(key in proto))redefine(proto, key, methods[key]);\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n  }\n  return methods;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-define.js\n// module id = 41\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-define.js\n// module id = 41\n// module chunks = 0 1","exports.f = {}.propertyIsEnumerable;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-pie.js\n// module id = 42\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-pie.js\n// module id = 42\n// module chunks = 0 1","var def = require('./_object-dp').f\n  , has = require('./_has')\n  , TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_set-to-string-tag.js\n// module id = 43\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_set-to-string-tag.js\n// module id = 43\n// module chunks = 0 1","var global = require('./_global')\n  , SHARED = '__core-js_shared__'\n  , store  = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n  return store[key] || (store[key] = {});\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_shared.js\n// module id = 44\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_shared.js\n// module id = 44\n// module chunks = 0 1","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n  , min       = Math.min;\nmodule.exports = function(it){\n  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-length.js\n// module id = 45\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-length.js\n// module id = 45\n// module chunks = 0 1","var id = 0\n  , px = Math.random();\nmodule.exports = function(key){\n  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_uid.js\n// module id = 46\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_uid.js\n// module id = 46\n// module chunks = 0 1","var classof   = require('./_classof')\n  , ITERATOR  = require('./_wks')('iterator')\n  , Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function(it){\n  if(it != undefined)return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/core.get-iterator-method.js\n// module id = 47\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/core.get-iterator-method.js\n// module id = 47\n// module chunks = 0 1","require('./es6.array.iterator');\nvar global        = require('./_global')\n  , hide          = require('./_hide')\n  , Iterators     = require('./_iterators')\n  , TO_STRING_TAG = require('./_wks')('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n  var NAME       = collections[i]\n    , Collection = global[NAME]\n    , proto      = Collection && Collection.prototype;\n  if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n  Iterators[NAME] = Iterators.Array;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/web.dom.iterable.js\n// module id = 48\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/web.dom.iterable.js\n// module id = 48\n// module chunks = 0 1","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/**\n * A WAI-ARIA friendly accordion component.\n * An accordion is a collection of expandable panels associated with a common outer container. Panels consist\n * of a header and an associated content region or tabpanel. The primary use of an Accordion is to present multiple sections\n * of content on a single page without scrolling, where all of the sections are peers in the application or object hierarchy.\n * The general look is similar to a tree where each root tree node is an expandable accordion header. The user navigates\n * and makes the contents of each panel visible (or not) by interacting with the Accordion Header\n */\n\nimport {\n  VK_ENTER,\n  VK_SPACE,\n  VK_END,\n  VK_HOME,\n  VK_ARROW_LEFT,\n  VK_ARROW_UP,\n  VK_ARROW_RIGHT,\n  VK_ARROW_DOWN,\n  IS_EXPANDED,\n  IS_UPGRADED,\n  ARIA_MULTISELECTABLE,\n  ARIA_EXPANDED,\n  ARIA_HIDDEN,\n  ARIA_SELECTED\n} from '../utils/constants';\n\n\n(function() {\n  'use strict';\n  const ACCORDION            = 'mdlext-accordion';\n  const ACCORDION_VERTICAL   = 'mdlext-accordion--vertical';\n  const ACCORDION_HORIZONTAL = 'mdlext-accordion--horizontal';\n  const PANEL                = 'mdlext-accordion__panel';\n  const PANEL_ROLE           = 'presentation';\n  const TAB                  = 'mdlext-accordion__tab';\n  const TAB_CAPTION          = 'mdlext-accordion__tab__caption';\n  const TAB_ROLE             = 'tab';\n  const TABPANEL             = 'mdlext-accordion__tabpanel';\n  const TABPANEL_ROLE        = 'tabpanel';\n  const RIPPLE_EFFECT        = 'mdlext-js-ripple-effect';\n  const RIPPLE               = 'mdlext-accordion__tab--ripple';\n  const ANIMATION_EFFECT     = 'mdlext-js-animation-effect';\n  const ANIMATION            = 'mdlext-accordion__tabpanel--animation';\n\n  /**\n   * @constructor\n   * @param {Element} element The element that will be upgraded.\n   */\n  const MaterialExtAccordion = function MaterialExtAccordion( element ) {\n\n    // Stores the Accordion HTML element.\n    this.element_ = element;\n\n    // Initialize instance.\n    this.init();\n  };\n  window['MaterialExtAccordion'] = MaterialExtAccordion;\n\n\n  // Helpers\n  const accordionPanelElements = ( element ) => {\n    if(!element) {\n      return {\n        panel: null,\n        tab: null,\n        tabpanel: null\n      };\n    }\n    else if (element.classList.contains(PANEL)) {\n      return {\n        panel: element,\n        tab: element.querySelector(`.${TAB}`),\n        tabpanel: element.querySelector(`.${TABPANEL}`)\n      };\n    }\n    else {\n      return {\n        panel: element.parentNode,\n        tab: element.parentNode.querySelector(`.${TAB}`),\n        tabpanel: element.parentNode.querySelector(`.${TABPANEL}`)\n      };\n    }\n  };\n\n\n  // Private methods.\n\n  /**\n   * Handles custom command event, 'open', 'close', 'toggle' or upgrade\n   * @param event. A custom event\n   * @private\n   */\n  MaterialExtAccordion.prototype.commandHandler_ = function( event ) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    if(event && event.detail) {\n      this.command(event.detail);\n    }\n  };\n\n  /**\n   * Dispatch toggle event\n   * @param {string} state\n   * @param {Element} tab\n   * @param {Element} tabpanel\n   * @private\n   */\n  MaterialExtAccordion.prototype.dispatchToggleEvent_ = function ( state, tab, tabpanel ) {\n    const ce = new CustomEvent('toggle', {\n      bubbles: true,\n      cancelable: true,\n      detail: { state: state, tab: tab, tabpanel: tabpanel }\n    });\n    this.element_.dispatchEvent(ce);\n  };\n\n  /**\n   * Open tab\n   * @param {Element} panel\n   * @param {Element} tab\n   * @param {Element} tabpanel\n   * @private\n   */\n  MaterialExtAccordion.prototype.openTab_ = function( panel, tab, tabpanel ) {\n    panel.classList.add(IS_EXPANDED);\n    tab.setAttribute(ARIA_EXPANDED, 'true');\n    tabpanel.removeAttribute('hidden');\n    tabpanel.setAttribute(ARIA_HIDDEN, 'false');\n    this.dispatchToggleEvent_('open', tab, tabpanel);\n  };\n\n  /**\n   * Close tab\n   * @param {Element} panel\n   * @param {Element} tab\n   * @param {Element} tabpanel\n   * @private\n   */\n  MaterialExtAccordion.prototype.closeTab_ = function( panel, tab, tabpanel ) {\n    panel.classList.remove(IS_EXPANDED);\n    tab.setAttribute(ARIA_EXPANDED, 'false');\n    tabpanel.setAttribute('hidden', '');\n    tabpanel.setAttribute(ARIA_HIDDEN, 'true');\n    this.dispatchToggleEvent_('close', tab, tabpanel);\n  };\n\n  /**\n   * Toggle tab\n   * @param {Element} panel\n   * @param {Element} tab\n   * @param {Element} tabpanel\n   * @private\n   */\n  MaterialExtAccordion.prototype.toggleTab_ = function( panel, tab, tabpanel ) {\n    if( !(this.element_.hasAttribute('disabled') || tab.hasAttribute('disabled')) ) {\n      if (tab.getAttribute(ARIA_EXPANDED).toLowerCase() === 'true') {\n        this.closeTab_(panel, tab, tabpanel);\n      }\n      else {\n        if (this.element_.getAttribute(ARIA_MULTISELECTABLE).toLowerCase() !== 'true') {\n          this.closeTabs_();\n        }\n        this.openTab_(panel, tab, tabpanel);\n      }\n    }\n  };\n\n  /**\n   * Open tabs\n   * @private\n   */\n  MaterialExtAccordion.prototype.openTabs_ = function() {\n    if (this.element_.getAttribute(ARIA_MULTISELECTABLE).toLowerCase() === 'true') {\n      [...this.element_.querySelectorAll(`.${ACCORDION} > .${PANEL}`)]\n        .filter(panel => !panel.classList.contains(IS_EXPANDED))\n        .forEach(closedItem => {\n          const tab = closedItem.querySelector(`.${TAB}`);\n          if (!tab.hasAttribute('disabled')) {\n            this.openTab_(closedItem, tab, closedItem.querySelector(`.${TABPANEL}`));\n          }\n        });\n    }\n  };\n\n  /**\n   * Close tabs\n   * @private\n   */\n  MaterialExtAccordion.prototype.closeTabs_ = function() {\n    [...this.element_.querySelectorAll(`.${ACCORDION} > .${PANEL}.${IS_EXPANDED}`)]\n      .forEach( panel => {\n        const tab = panel.querySelector(`.${TAB}`);\n        if(!tab.hasAttribute('disabled')) {\n          this.closeTab_(panel, tab, panel.querySelector(`.${TABPANEL}`));\n        }\n      });\n  };\n\n\n  // Public methods.\n\n  /**\n   * Upgrade an individual accordion tab\n   * @public\n   * @param {Element} tabElement The HTML element for the accordion panel.\n   */\n  MaterialExtAccordion.prototype.upgradeTab = function( tabElement ) {\n\n    const { panel, tab, tabpanel } = accordionPanelElements( tabElement );\n\n    const disableTab = () => {\n      panel.classList.remove(IS_EXPANDED);\n      tab.setAttribute('tabindex', '-1');\n      tab.setAttribute(ARIA_EXPANDED, 'false');\n      tabpanel.setAttribute('hidden', '');\n      tabpanel.setAttribute(ARIA_HIDDEN, 'true');\n    };\n\n    const enableTab = () => {\n      if(!tab.hasAttribute(ARIA_EXPANDED)) {\n        tab.setAttribute(ARIA_EXPANDED, 'false');\n      }\n\n      tab.setAttribute('tabindex', '0');\n\n      if(tab.getAttribute(ARIA_EXPANDED).toLowerCase() === 'true') {\n        panel.classList.add(IS_EXPANDED);\n        tabpanel.removeAttribute('hidden');\n        tabpanel.setAttribute(ARIA_HIDDEN, 'false');\n      }\n      else {\n        panel.classList.remove(IS_EXPANDED);\n        tabpanel.setAttribute('hidden', '');\n        tabpanel.setAttribute(ARIA_HIDDEN, 'true');\n      }\n    };\n\n    // In horizontal layout, caption must have a max-width defined to prevent pushing elements to the right of the caption out of view.\n    // In JsDom, offsetWidth and offsetHeight properties do not work, so this function is not testable.\n    /* istanbul ignore next */\n    const calcMaxTabCaptionWidth = () => {\n\n      const tabCaption = tab.querySelector(`.${TAB_CAPTION}`);\n      if(tabCaption !== null) {\n        const w = [...tab.children]\n          .filter( el => el.classList && !el.classList.contains(TAB_CAPTION) )\n          .reduce( (v, el) => v + el.offsetWidth, 0 );\n\n        const maxWidth = tab.clientHeight - w;\n        if(maxWidth > 0) {\n          tabCaption.style['max-width'] = `${maxWidth}px`;\n        }\n      }\n    };\n\n    const selectTab = () => {\n      if( !tab.hasAttribute(ARIA_SELECTED) ) {\n        [...this.element_.querySelectorAll(`.${TAB}[aria-selected=\"true\"]`)].forEach(\n          selectedTab => selectedTab.removeAttribute(ARIA_SELECTED)\n        );\n        tab.setAttribute(ARIA_SELECTED, 'true');\n      }\n    };\n\n    const tabClickHandler = () => {\n      this.toggleTab_(panel, tab, tabpanel);\n      selectTab();\n    };\n\n    const tabFocusHandler = () => {\n      selectTab();\n    };\n\n    const tabpanelClickHandler = () => {\n      selectTab();\n    };\n\n    const tabpanelFocusHandler = () => {\n      selectTab();\n    };\n\n    const tabKeydownHandler = e => {\n\n      if(this.element_.hasAttribute('disabled')) {\n        return;\n      }\n\n      if ( e.keyCode === VK_END        || e.keyCode === VK_HOME\n        || e.keyCode === VK_ARROW_UP   || e.keyCode === VK_ARROW_LEFT\n        || e.keyCode === VK_ARROW_DOWN || e.keyCode === VK_ARROW_RIGHT ) {\n\n        let nextTab = null;\n        let keyCode = e.keyCode;\n\n        if (keyCode === VK_HOME) {\n          nextTab = this.element_.querySelector(`.${PANEL}:first-child > .${TAB}`);\n          if(nextTab && nextTab.hasAttribute('disabled')) {\n            nextTab = null;\n            keyCode = VK_ARROW_DOWN;\n          }\n        }\n        else if (keyCode === VK_END) {\n          nextTab = this.element_.querySelector(`.${PANEL}:last-child > .${TAB}`);\n          if(nextTab && nextTab.hasAttribute('disabled')) {\n            nextTab = null;\n            keyCode = VK_ARROW_UP;\n          }\n        }\n\n        if(!nextTab) {\n          let nextPanel = panel;\n\n          do {\n            if (keyCode === VK_ARROW_UP || keyCode === VK_ARROW_LEFT) {\n              nextPanel = nextPanel.previousElementSibling;\n              if(!nextPanel) {\n                nextPanel = this.element_.querySelector(`.${PANEL}:last-child`);\n              }\n              if (nextPanel) {\n                nextTab = nextPanel.querySelector(`.${PANEL} > .${TAB}`);\n              }\n            }\n            else if (keyCode === VK_ARROW_DOWN || keyCode === VK_ARROW_RIGHT) {\n              nextPanel = nextPanel.nextElementSibling;\n              if(!nextPanel) {\n                nextPanel = this.element_.querySelector(`.${PANEL}:first-child`);\n              }\n              if (nextPanel) {\n                nextTab = nextPanel.querySelector(`.${PANEL} > .${TAB}`);\n              }\n            }\n\n            if(nextTab && nextTab.hasAttribute('disabled')) {\n              nextTab = null;\n            }\n            else {\n              break;\n            }\n          }\n          while(nextPanel !== panel);\n        }\n\n        if (nextTab) {\n          e.preventDefault();\n          e.stopPropagation();\n          nextTab.focus();\n\n          // Workaround for JSDom testing:\n          // In JsDom 'element.focus()' does not trigger any focus event\n          if(!nextTab.hasAttribute(ARIA_SELECTED)) {\n\n            [...this.element_.querySelectorAll(`.${TAB}[aria-selected=\"true\"]`)]\n              .forEach( selectedTab => selectedTab.removeAttribute(ARIA_SELECTED) );\n\n            nextTab.setAttribute(ARIA_SELECTED, 'true');\n          }\n        }\n      }\n      else if (e.keyCode === VK_ENTER || e.keyCode === VK_SPACE) {\n        e.preventDefault();\n        e.stopPropagation();\n        this.toggleTab_(panel, tab, tabpanel);\n      }\n    };\n\n    if(tab === null) {\n      throw new Error('There must be a tab element for each accordion panel.');\n    }\n\n    if(tabpanel === null) {\n      throw new Error('There must be a tabpanel element for each accordion panel.');\n    }\n\n    panel.setAttribute('role', PANEL_ROLE);\n    tab.setAttribute('role', TAB_ROLE);\n    tabpanel.setAttribute('role', TABPANEL_ROLE);\n\n    if(tab.hasAttribute('disabled')) {\n      disableTab();\n    }\n    else {\n      enableTab();\n    }\n\n    if( this.element_.classList.contains(ACCORDION_HORIZONTAL)) {\n      calcMaxTabCaptionWidth();\n    }\n\n    if (this.element_.classList.contains(RIPPLE_EFFECT)) {\n      tab.classList.add(RIPPLE);\n    }\n\n    if (this.element_.classList.contains(ANIMATION_EFFECT)) {\n      tabpanel.classList.add(ANIMATION);\n    }\n\n    // Remove listeners, just in case ...\n    tab.removeEventListener('click', tabClickHandler);\n    tab.removeEventListener('focus', tabFocusHandler);\n    tab.removeEventListener('keydown', tabKeydownHandler);\n    tabpanel.removeEventListener('click', tabpanelClickHandler);\n    tabpanel.removeEventListener('focus', tabpanelFocusHandler);\n\n    tab.addEventListener('click', tabClickHandler);\n    tab.addEventListener('focus', tabFocusHandler);\n    tab.addEventListener('keydown', tabKeydownHandler);\n    tabpanel.addEventListener('click', tabpanelClickHandler, true);\n    tabpanel.addEventListener('focus', tabpanelFocusHandler, true);\n  };\n  MaterialExtAccordion.prototype['upgradeTab'] = MaterialExtAccordion.prototype.upgradeTab;\n\n\n  /**\n   * Execute command\n   * @param detail\n   */\n  MaterialExtAccordion.prototype.command = function( detail ) {\n\n    const openTab = tabElement => {\n\n      if(tabElement === undefined) {\n        this.openTabs_();\n      }\n      else if(tabElement !== null) {\n        const { panel, tab, tabpanel } = accordionPanelElements( tabElement );\n        if(tab.getAttribute(ARIA_EXPANDED).toLowerCase() !== 'true') {\n          this.toggleTab_(panel, tab, tabpanel);\n        }\n      }\n    };\n\n    const closeTab = tabElement => {\n      if(tabElement === undefined) {\n        this.closeTabs_();\n      }\n      else if(tabElement !== null) {\n        const { panel, tab, tabpanel } = accordionPanelElements( tabElement );\n\n        if(tab.getAttribute(ARIA_EXPANDED).toLowerCase() === 'true') {\n          this.toggleTab_(panel, tab, tabpanel);\n        }\n      }\n    };\n\n    const toggleTab = tabElement => {\n      if(tabElement) {\n        const { panel, tab, tabpanel } = accordionPanelElements( tabElement );\n        this.toggleTab_(panel, tab, tabpanel);\n      }\n    };\n\n\n    if(detail && detail.action) {\n      const { action, target } = detail;\n\n      switch (action.toLowerCase()) {\n        case 'open':\n          openTab(target);\n          break;\n        case 'close':\n          closeTab(target);\n          break;\n        case 'toggle':\n          toggleTab(target);\n          break;\n        case 'upgrade':\n          if(target) {\n            this.upgradeTab(target);\n          }\n          break;\n        default:\n          throw new Error(`Unknown action \"${action}\". Action must be one of \"open\", \"close\", \"toggle\" or \"upgrade\"`);\n      }\n    }\n  };\n  MaterialExtAccordion.prototype['command'] = MaterialExtAccordion.prototype.command;\n\n\n  /**\n   * Initialize component\n   */\n  MaterialExtAccordion.prototype.init = function() {\n    if (this.element_) {\n      // Do the init required for this component to work\n      if( !(this.element_.classList.contains(ACCORDION_HORIZONTAL) || this.element_.classList.contains(ACCORDION_VERTICAL))) {\n        throw new Error(`Accordion must have one of the classes \"${ACCORDION_HORIZONTAL}\" or \"${ACCORDION_VERTICAL}\"`);\n      }\n\n      this.element_.setAttribute('role', 'tablist');\n\n      if(!this.element_.hasAttribute(ARIA_MULTISELECTABLE)) {\n        this.element_.setAttribute(ARIA_MULTISELECTABLE, 'false');\n      }\n\n      this.element_.removeEventListener('command', this.commandHandler_);\n      this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\n      [...this.element_.querySelectorAll(`.${ACCORDION} > .${PANEL}`)].forEach( panel => this.upgradeTab(panel) );\n\n      // Set upgraded flag\n      this.element_.classList.add(IS_UPGRADED);\n    }\n  };\n\n\n  /*\n   * Downgrade component\n   * E.g remove listeners and clean up resources\n   *\n   * Nothing to downgrade\n   *\n   MaterialExtAccordion.prototype.mdlDowngrade_ = function() {\n     'use strict';\n     console.log('***** MaterialExtAccordion.mdlDowngrade');\n   };\n   */\n\n\n  // The component registers itself. It can assume componentHandler is available\n  // in the global scope.\n  /* eslint no-undef: 0 */\n  componentHandler.register({\n    constructor: MaterialExtAccordion,\n    classAsString: 'MaterialExtAccordion',\n    cssClass: 'mdlext-js-accordion',\n    widget: true\n  });\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/accordion/accordion.js\n\n\n// WEBPACK FOOTER //\n// ./src/accordion/accordion.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/**\n * Image carousel\n */\n\nimport intervalFunction from '../utils/interval-function';\nimport { inOutQuintic } from '../utils/easing';\nimport { jsonStringToObject} from '../utils/json-utils';\nimport {\n  VK_TAB,\n  VK_ENTER,\n  VK_ESC,\n  VK_SPACE,\n  VK_PAGE_UP,\n  VK_PAGE_DOWN,\n  VK_END,\n  VK_HOME,\n  VK_ARROW_LEFT,\n  VK_ARROW_UP,\n  VK_ARROW_RIGHT,\n  VK_ARROW_DOWN,\n  IS_UPGRADED,\n  IS_FOCUSED,\n  MDL_RIPPLE,\n  MDL_RIPPLE_COMPONENT,\n  MDL_RIPPLE_EFFECT,\n  MDL_RIPPLE_EFFECT_IGNORE_EVENTS\n} from '../utils/constants';\n\nconst MDL_RIPPLE_CONTAINER = 'mdlext-carousel__slide__ripple-container';\n\n\n(function() {\n  'use strict';\n\n  //const CAROUSEL = 'mdlext-carousel';\n  const SLIDE      = 'mdlext-carousel__slide';\n  const ROLE       = 'list';\n  const SLIDE_ROLE = 'listitem';\n\n\n  /**\n   * @constructor\n   * @param {Element} element The element that will be upgraded.\n   */\n  const MaterialExtCarousel = function MaterialExtCarousel(element) {\n    // Stores the element.\n    this.element_ = element;\n\n    // Default config\n    this.config_ = {\n      interactive  : true,\n      autostart    : false,\n      type         : 'slide',\n      interval     : 1000,\n      animationLoop: intervalFunction(1000)\n    };\n\n    this.scrollAnimation_ = intervalFunction(33);\n\n    // Initialize instance.\n    this.init();\n  };\n\n  window['MaterialExtCarousel'] = MaterialExtCarousel;\n\n\n  /**\n   * Start slideshow animation\n   * @private\n   */\n  MaterialExtCarousel.prototype.startSlideShow_ = function() {\n\n    const nextSlide = () => {\n      let slide = this.element_.querySelector(`.${SLIDE}[aria-selected]`);\n      if(slide) {\n        slide.removeAttribute('aria-selected');\n        slide = slide.nextElementSibling;\n      }\n      if(!slide) {\n        slide = this.element_.querySelector(`.${SLIDE}:first-child`);\n        this.animateScroll_(0);\n      }\n      if(slide) {\n        this.moveSlideIntoViewport_(slide);\n        slide.setAttribute('aria-selected', '');\n        this.emitSelectEvent_('next', null, slide);\n        return true;\n      }\n      return false;\n    };\n\n    const nextScroll = direction => {\n      let nextDirection = direction;\n\n      if('next' === direction &&  this.element_.scrollLeft === this.element_.scrollWidth - this.element_.clientWidth) {\n        nextDirection = 'prev';\n      }\n      else if(this.element_.scrollLeft === 0) {\n        nextDirection = 'next';\n      }\n      const x = 'next' === nextDirection\n        ?  Math.min(this.element_.scrollLeft + this.element_.clientWidth, this.element_.scrollWidth - this.element_.clientWidth)\n        :  Math.max(this.element_.scrollLeft - this.element_.clientWidth, 0);\n\n      this.animateScroll_(x, 1000);\n      return nextDirection;\n    };\n\n\n    if(!this.config_.animationLoop.started) {\n      this.config_.animationLoop.interval = this.config_.interval;\n      let direction = 'next';\n\n      if('scroll' === this.config_.type) {\n        this.config_.animationLoop.start( () => {\n          direction = nextScroll(direction);\n          return true; // It runs until cancelSlideShow_ is triggered\n        });\n      }\n      else {\n        nextSlide();\n        this.config_.animationLoop.start( () => {\n          return nextSlide(); // It runs until cancelSlideShow_ is triggered\n        });\n      }\n    }\n\n    // TODO: Pause animation when carousel is not in browser viewport or user changes tab\n  };\n\n  /**\n   * Cancel slideshow if running. Emmits a 'pause' event\n   * @private\n   */\n  MaterialExtCarousel.prototype.cancelSlideShow_ = function() {\n    if(this.config_.animationLoop.started) {\n      this.config_.animationLoop.stop();\n      this.emitSelectEvent_('pause', VK_ESC, this.element_.querySelector(`.${SLIDE}[aria-selected]`));\n    }\n  };\n\n  /**\n   * Animate scroll\n   * @param newPosition\n   * @param newDuration\n   * @param completedCallback\n   * @private\n   */\n  MaterialExtCarousel.prototype.animateScroll_ = function( newPosition, newDuration, completedCallback ) {\n\n    const start = this.element_.scrollLeft;\n    const distance = newPosition - start;\n\n    if(distance !== 0) {\n      const duration = Math.max(Math.min(Math.abs(distance), newDuration||400), 100); // duration is between 100 and newDuration||400ms||distance\n      let t = 0;\n      this.scrollAnimation_.stop();\n      this.scrollAnimation_.start( timeElapsed => {\n        t += timeElapsed;\n        if(t < duration) {\n          this.element_.scrollLeft = inOutQuintic(t, start, distance, duration);\n          return true;\n        }\n        else {\n          this.element_.scrollLeft = newPosition;\n          if(completedCallback) {\n            completedCallback();\n          }\n          return false;\n        }\n      });\n    }\n    else {\n      if(completedCallback) {\n        completedCallback();\n      }\n    }\n  };\n\n  /**\n   * Execute commend\n   * @param event\n   * @private\n   */\n  MaterialExtCarousel.prototype.command_ = function( event ) {\n    let x = 0;\n    let slide = null;\n    const a = event.detail.action.toLowerCase();\n\n    // Cancel slideshow if running\n    this.cancelSlideShow_();\n\n    switch (a) {\n      case 'first':\n        slide = this.element_.querySelector(`.${SLIDE}:first-child`);\n        break;\n\n      case 'last':\n        x = this.element_.scrollWidth - this.element_.clientWidth;\n        slide = this.element_.querySelector(`.${SLIDE}:last-child`);\n        break;\n\n      case 'scroll-prev':\n        x = Math.max(this.element_.scrollLeft - this.element_.clientWidth, 0);\n        break;\n\n      case 'scroll-next':\n        x = Math.min(this.element_.scrollLeft + this.element_.clientWidth, this.element_.scrollWidth - this.element_.clientWidth);\n        break;\n\n      case 'next':\n      case 'prev':\n        slide = this.element_.querySelector(`.${SLIDE}[aria-selected]`);\n        if(slide) {\n          slide = a === 'next' ? slide.nextElementSibling : slide.previousElementSibling;\n          this.setAriaSelected_(slide);\n          this.emitSelectEvent_(a, null,  slide);\n        }\n        return;\n\n      case 'play':\n        Object.assign(this.config_, event.detail);\n        this.startSlideShow_();\n        return;\n\n      case 'pause':\n        return;\n\n      default:\n        return;\n    }\n\n    this.animateScroll_(x, undefined, () => {\n      if ('scroll-next' === a || 'scroll-prev' === a) {\n        const slides = this.getSlidesInViewport_();\n        if (slides.length > 0) {\n          slide = 'scroll-next' === a ? slides[0] : slides[slides.length - 1];\n        }\n      }\n      this.setAriaSelected_(slide);\n      this.emitSelectEvent_(a, null, slide);\n    });\n  };\n\n  /**\n   * Handles custom command event, 'scroll-prev', 'scroll-next', 'first', 'last', next, prev, play, pause\n   * @param event. A custom event\n   * @private\n   */\n  MaterialExtCarousel.prototype.commandHandler_ = function( event ) {\n    event.preventDefault();\n    event.stopPropagation();\n    if(event.detail && event.detail.action) {\n      this.command_(event);\n    }\n  };\n\n  /**\n   * Handle keypress\n   * @param event\n   * @private\n   */\n  MaterialExtCarousel.prototype.keyDownHandler_ = function(event) {\n\n    if (event && event.target && event.target !== this.element_) {\n\n      let action = 'first';\n\n      if ( event.keyCode === VK_HOME    || event.keyCode === VK_END\n        || event.keyCode === VK_PAGE_UP || event.keyCode === VK_PAGE_DOWN) {\n\n        event.preventDefault();\n        if (event.keyCode === VK_END) {\n          action = 'last';\n        }\n        else if (event.keyCode === VK_PAGE_UP) {\n          action = 'scroll-prev';\n        }\n        else if (event.keyCode === VK_PAGE_DOWN) {\n          action = 'scroll-next';\n        }\n\n        const cmd = new CustomEvent('select', {\n          detail: {\n            action: action,\n          }\n        });\n        this.command_(cmd);\n      }\n      else if ( event.keyCode === VK_TAB\n        || event.keyCode === VK_ENTER      || event.keyCode === VK_SPACE\n        || event.keyCode === VK_ARROW_UP   || event.keyCode === VK_ARROW_LEFT\n        || event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n\n        let slide = getSlide_(event.target);\n\n        if(!slide) {\n          return;\n        }\n\n        // Cancel slideshow if running\n        this.cancelSlideShow_();\n\n        switch (event.keyCode) {\n          case VK_ARROW_UP:\n          case VK_ARROW_LEFT:\n            action = 'prev';\n            slide = slide.previousElementSibling;\n            break;\n\n          case VK_ARROW_DOWN:\n          case VK_ARROW_RIGHT:\n            action = 'next';\n            slide = slide.nextElementSibling;\n            break;\n\n          case VK_TAB:\n            if (event.shiftKey) {\n              action = 'prev';\n              slide = slide.previousElementSibling;\n            }\n            else {\n              action = 'next';\n              slide = slide.nextElementSibling;\n            }\n            break;\n\n          case VK_SPACE:\n          case VK_ENTER:\n            action = 'select';\n            break;\n        }\n\n        if(slide) {\n          event.preventDefault();\n          setFocus_(slide);\n          this.emitSelectEvent_(action, event.keyCode, slide);\n        }\n      }\n    }\n  };\n\n  /**\n   * Handle dragging\n   * @param event\n   * @private\n   */\n  MaterialExtCarousel.prototype.dragHandler_ = function(event) {\n    event.preventDefault();\n\n    // Cancel slideshow if running\n    this.cancelSlideShow_();\n\n    let updating = false;\n    let rAFDragId = 0;\n\n    const startX = event.clientX || (event.touches !== undefined ? event.touches[0].clientX : 0);\n    let prevX = startX;\n    const targetElement = event.target;\n\n    const update = e => {\n      const currentX = (e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0));\n      const dx = prevX - currentX;\n\n      if(dx < 0) {\n        this.element_.scrollLeft = Math.max(this.element_.scrollLeft + dx, 0);\n      }\n      else if(dx > 0) {\n        this.element_.scrollLeft = Math.min(this.element_.scrollLeft + dx, this.element_.scrollWidth - this.element_.clientWidth);\n      }\n\n      prevX = currentX;\n      updating = false;\n    };\n\n    // drag handler\n    const drag = e => {\n      e.preventDefault();\n\n      if(!updating) {\n        rAFDragId = window.requestAnimationFrame( () => update(e));\n        updating = true;\n      }\n    };\n\n    // end drag handler\n    const endDrag = e => {\n      e.preventDefault();\n\n      this.element_.removeEventListener('mousemove', drag);\n      this.element_.removeEventListener('touchmove', drag);\n      window.removeEventListener('mouseup', endDrag);\n      window.removeEventListener('touchend', endDrag);\n\n      // cancel any existing drag rAF, see: http://www.html5rocks.com/en/tutorials/speed/animations/\n      window.cancelAnimationFrame(rAFDragId);\n\n      const slide = getSlide_(targetElement);\n      setFocus_(slide);\n      this.emitSelectEvent_('click', null,  slide);\n    };\n\n    this.element_.addEventListener('mousemove', drag);\n    this.element_.addEventListener('touchmove', drag);\n    window.addEventListener('mouseup', endDrag);\n    window.addEventListener('touchend',endDrag);\n  };\n\n  /**\n   * Handle click\n   * @param event\n   * @private\n   */\n  MaterialExtCarousel.prototype.clickHandler_ = function(event) {\n    // Click is handled by drag\n    event.preventDefault();\n  };\n\n  /**\n   * Handle focus\n   * @param event\n   * @private\n   */\n  MaterialExtCarousel.prototype.focusHandler_ = function(event) {\n    const slide = getSlide_(event.target);\n    if(slide) {\n      // The last focused/selected slide has 'aria-selected', even if focus is lost\n      this.setAriaSelected_(slide);\n      slide.classList.add(IS_FOCUSED);\n    }\n  };\n\n  /**\n   * Handle blur\n   * @param event\n   * @private\n   */\n  MaterialExtCarousel.prototype.blurHandler_ = function(event) {\n    const slide = getSlide_(event.target);\n    if(slide) {\n      slide.classList.remove(IS_FOCUSED);\n    }\n  };\n\n  /**\n   * Emits a custeom 'select' event\n   * @param command\n   * @param keyCode\n   * @param slide\n   * @private\n   */\n  MaterialExtCarousel.prototype.emitSelectEvent_ = function(command, keyCode, slide) {\n\n    if(slide) {\n      this.moveSlideIntoViewport_(slide);\n\n      const evt = new CustomEvent('select', {\n        bubbles: true,\n        cancelable: true,\n        detail: {\n          command: command,\n          keyCode: keyCode,\n          source: slide\n        }\n      });\n      this.element_.dispatchEvent(evt);\n    }\n  };\n\n  /**\n   * Get the first visible slide in component viewport\n   * @private\n   */\n  MaterialExtCarousel.prototype.getSlidesInViewport_ = function() {\n    const carouselRect = this.element_.getBoundingClientRect();\n\n    const slidesInViewport = [...this.element_.querySelectorAll(`.${SLIDE}`)].filter( slide => {\n      const slideRect = slide.getBoundingClientRect();\n      return slideRect.left >= carouselRect.left && slideRect.right <= carouselRect.right;\n    });\n    return slidesInViewport;\n  };\n\n  /**\n   * Move slide into component viewport - if needed\n   * @param slide\n   * @private\n   */\n  MaterialExtCarousel.prototype.moveSlideIntoViewport_ = function(slide) {\n    const carouselRect = this.element_.getBoundingClientRect();\n    const slideRect = slide.getBoundingClientRect();\n\n    if(slideRect.left < carouselRect.left) {\n      const x = this.element_.scrollLeft - (carouselRect.left - slideRect.left);\n      this.animateScroll_(x);\n    }\n    else if(slideRect.right > carouselRect.right) {\n      const x = this.element_.scrollLeft - (carouselRect.right - slideRect.right);\n      this.animateScroll_(x);\n    }\n  };\n\n\n  /**\n   * Removes 'aria-selected' from all slides in carousel\n   * @private\n   */\n  MaterialExtCarousel.prototype.setAriaSelected_ = function(slide) {\n    if(slide) {\n      [...this.element_.querySelectorAll(`.${SLIDE}[aria-selected]`)].forEach(\n        slide => slide.removeAttribute('aria-selected')\n      );\n      slide.setAttribute('aria-selected', '');\n    }\n  };\n\n  /**\n   * Removes event listeners\n   * @private\n   */\n  MaterialExtCarousel.prototype.removeListeners_ = function() {\n    this.element_.removeEventListener('focus', this.focusHandler_);\n    this.element_.removeEventListener('blur', this.blurHandler_);\n    this.element_.removeEventListener('keydown', this.keyDownHandler_);\n    this.element_.removeEventListener('mousedown', this.dragHandler_);\n    this.element_.removeEventListener('touchstart', this.dragHandler_);\n    this.element_.removeEventListener('click', this.clickHandler_, false);\n    this.element_.removeEventListener('command', this.commandHandler_);\n    this.element_.removeEventListener('mdl-componentdowngraded', this.mdlDowngrade_);\n  };\n\n\n  // Helpers\n  const getSlide_ = element => {\n    return element.closest(`.${SLIDE}`);\n  };\n\n  const setFocus_ = slide => {\n    if(slide) {\n      slide.focus();\n    }\n  };\n\n  const addRipple_ = slide => {\n    if(!slide.querySelector(`.${MDL_RIPPLE_CONTAINER}`)) {\n      const rippleContainer = document.createElement('span');\n      rippleContainer.classList.add(MDL_RIPPLE_CONTAINER);\n      rippleContainer.classList.add(MDL_RIPPLE_EFFECT);\n      const ripple = document.createElement('span');\n      ripple.classList.add(MDL_RIPPLE);\n      rippleContainer.appendChild(ripple);\n\n      const img = slide.querySelector('img');\n      if (img) {\n        // rippleContainer blocks image title\n        rippleContainer.title = img.title;\n      }\n      slide.appendChild(rippleContainer);\n      componentHandler.upgradeElement(rippleContainer, MDL_RIPPLE_COMPONENT);\n    }\n  };\n  // End helpers\n\n\n  // Public methods.\n\n  /**\n   * Cancel animation - if running.\n   *\n   * @public\n   */\n  MaterialExtCarousel.prototype.stopAnimation = function() {\n    this.config_.animationLoop.stop();\n  };\n  MaterialExtCarousel.prototype['stopAnimation'] = MaterialExtCarousel.prototype.stopAnimation;\n\n\n  /**\n   * Upgrade slides\n   * Use if more list elements are added later (dynamically)\n   *\n   * @public\n   */\n  MaterialExtCarousel.prototype.upgradeSlides = function() {\n\n    const hasRippleEffect = this.element_.classList.contains(MDL_RIPPLE_EFFECT);\n\n    [...this.element_.querySelectorAll(`.${SLIDE}`)].forEach( slide => {\n\n      slide.setAttribute('role', SLIDE_ROLE);\n\n      if(this.config_.interactive) {\n        if(!slide.getAttribute('tabindex')) {\n          slide.setAttribute('tabindex', '0');\n        }\n        if (hasRippleEffect) {\n          addRipple_(slide);\n        }\n      }\n      else {\n        slide.setAttribute('tabindex', '-1');\n      }\n    });\n  };\n  MaterialExtCarousel.prototype['upgradeSlides'] = MaterialExtCarousel.prototype.upgradeSlides;\n\n\n  /**\n   * Get config object\n   *\n   * @public\n   */\n  MaterialExtCarousel.prototype.getConfig = function() {\n    return this.config_;\n  };\n  MaterialExtCarousel.prototype['getConfig'] = MaterialExtCarousel.prototype.getConfig;\n\n  /**\n   * Initialize component\n   */\n  MaterialExtCarousel.prototype.init = function() {\n\n    if (this.element_) {\n      // Config\n      if(this.element_.hasAttribute('data-config')) {\n        this.config_ = jsonStringToObject(this.element_.getAttribute('data-config'), this.config_);\n      }\n\n      // Wai-Aria\n      this.element_.setAttribute('role', ROLE);\n\n      // Prefer tabindex -1\n      if(!Number.isInteger(this.element_.getAttribute('tabindex'))) {\n        this.element_.setAttribute('tabindex', -1);\n      }\n\n      // Remove listeners, just in case ...\n      this.removeListeners_();\n\n      if(this.config_.interactive) {\n\n        // Ripple\n        const hasRippleEffect = this.element_.classList.contains(MDL_RIPPLE_EFFECT);\n        if (hasRippleEffect) {\n          this.element_.classList.add(MDL_RIPPLE_EFFECT_IGNORE_EVENTS);\n        }\n\n        // Listen to focus/blur events\n        this.element_.addEventListener('focus', this.focusHandler_.bind(this), true);\n        this.element_.addEventListener('blur', this.blurHandler_.bind(this), true);\n\n        // Listen to keyboard events\n        this.element_.addEventListener('keydown', this.keyDownHandler_.bind(this), false);\n\n        // Listen to drag events\n        this.element_.addEventListener('mousedown', this.dragHandler_.bind(this), false);\n        this.element_.addEventListener('touchstart', this.dragHandler_.bind(this), false);\n\n        // Listen to click events\n        this.element_.addEventListener('click', this.clickHandler_.bind(this), false);\n      }\n\n      // Listen to custom 'command' event\n      this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\n      // Listen to 'mdl-componentdowngraded' event\n      this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));\n\n      // Slides collection\n      this.upgradeSlides();\n\n      // Set upgraded flag\n      this.element_.classList.add(IS_UPGRADED);\n\n      if(this.config_.autostart) {\n        // Start slideshow\n        this.startSlideShow_();\n      }\n    }\n  };\n\n  /*\n   * Downgrade component\n   * E.g remove listeners and clean up resources\n   */\n  MaterialExtCarousel.prototype.mdlDowngrade_ = function() {\n    'use strict';\n    //console.log('***** MaterialExtCarousel.mdlDowngrade_');\n\n    // Stop animation - if any\n    this.stopAnimation();\n\n    // Remove listeners\n    this.removeListeners_();\n  };\n\n  // The component registers itself. It can assume componentHandler is available\n  // in the global scope.\n  /* eslint no-undef: 0 */\n  componentHandler.register({\n    constructor: MaterialExtCarousel,\n    classAsString: 'MaterialExtCarousel',\n    cssClass: 'mdlext-js-carousel',\n    widget: true\n  });\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/carousel/carousel.js\n\n\n// WEBPACK FOOTER //\n// ./src/carousel/carousel.js","/**\n * @license\n * Copyright 2016-2017 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n\n/**\n * A collapsible is a component to mark expandable and collapsible regions.\n * The component use the aria-expanded state to indicate whether regions of\n * the content are collapsible, and to expose whether a region is currently\n * expanded or collapsed.\n * @see https://www.w3.org/WAI/GL/wiki/Using_the_WAI-ARIA_aria-expanded_state_to_mark_expandable_and_collapsible_regions\n */\n\nimport {\n  IS_UPGRADED,\n  VK_SPACE,\n  VK_ENTER,\n} from '../utils/constants';\n\nimport { randomString } from '../utils/string-utils';\nimport { getParentElements, isFocusable } from '../utils/dom-utils';\n\nconst JS_COLLAPSIBLE = 'mdlext-js-collapsible';\nconst COLLAPSIBLE_CONTROL_CLASS = 'mdlext-collapsible';\nconst COLLAPSIBLE_GROUP_CLASS = 'mdlext-collapsible-group';\nconst COLLAPSIBLE_REGION_CLASS = 'mdlext-collapsible-region';\n\n/**\n * The collapsible component\n */\n\nclass Collapsible {\n  element_ = null;\n  controlElement_ = null;\n\n  /**\n   * @constructor\n   * @param {HTMLElement} element The element that this component is connected to.\n   */\n  constructor(element) {\n    this.element_ = element;\n    this.init();\n  }\n\n  keyDownHandler = event => {\n    if (event.keyCode === VK_ENTER || event.keyCode === VK_SPACE) {\n      event.preventDefault();\n\n      // Trigger click\n      (event.target || this.controlElement).dispatchEvent(\n        new MouseEvent('click', {\n          bubbles: true,\n          cancelable: true,\n          view: window\n        })\n      );\n    }\n  };\n\n  clickHandler = event => {\n    if(!this.isDisabled) {\n      if(event.target !== this.controlElement) {\n        // Do not toggle if a focusable element inside the control element triggered the event\n        const p = getParentElements(event.target, this.controlElement);\n        p.push(event.target);\n        if(p.find( el => isFocusable(el))) {\n          return;\n        }\n      }\n      this.toggle();\n    }\n  };\n\n  get element() {\n    return this.element_;\n  }\n\n  get controlElement() {\n    return this.controlElement_;\n  }\n\n  get isDisabled() {\n    return (this.controlElement.hasAttribute('disabled') &&\n      this.controlElement.getAttribute('disabled').toLowerCase() !== 'false') ||\n      (this.controlElement.hasAttribute('aria-disabled') &&\n      this.controlElement.getAttribute('aria-disabled').toLowerCase() !== 'false');\n  }\n\n  get isExpanded() {\n    return this.controlElement.hasAttribute('aria-expanded') &&\n      this.controlElement.getAttribute('aria-expanded').toLowerCase() === 'true';\n  }\n\n  get regionIds() {\n    return this.controlElement.hasAttribute('aria-controls')\n      ? this.controlElement.getAttribute('aria-controls').split(' ')\n      : [];\n  }\n\n  get regionElements() {\n    return this.regionIds\n      .map(id => document.querySelector(`#${id}`))\n      .filter( el => el != null);\n  }\n\n  collapse() {\n    if(!this.isDisabled && this.isExpanded) {\n      if(this.dispatchToggleEvent('collapse')) {\n        this.controlElement.setAttribute('aria-expanded', 'false');\n        const regions = this.regionElements.slice(0);\n        for (let i = regions.length - 1; i >= 0; --i) {\n          regions[i].setAttribute('hidden', '');\n        }\n      }\n    }\n  }\n\n  expand() {\n    if(!this.isDisabled && !this.isExpanded) {\n      if(this.dispatchToggleEvent('expand')) {\n        this.controlElement.setAttribute('aria-expanded', 'true');\n        this.regionElements.forEach(region => region.removeAttribute('hidden'));\n      }\n    }\n  }\n\n  toggle() {\n    if (this.isExpanded) {\n      this.collapse();\n    }\n    else {\n      this.expand();\n    }\n  }\n\n  dispatchToggleEvent(action) {\n    return this.element.dispatchEvent(\n      new CustomEvent('toggle', {\n        bubbles: true,\n        cancelable: true,\n        detail: {\n          action: action\n        }\n      })\n    );\n  }\n\n  disableToggle() {\n    this.controlElement.setAttribute('aria-disabled', true);\n  }\n\n  enableToggle() {\n    this.controlElement.removeAttribute('aria-disabled');\n  }\n\n  addRegionId(regionId) {\n    const ids = this.regionIds;\n    if(!ids.find(id => regionId === id)) {\n      ids.push(regionId);\n      this.controlElement.setAttribute('aria-controls', ids.join(' '));\n    }\n  }\n\n  addRegionElement(region) {\n    if(!(region.classList.contains(COLLAPSIBLE_GROUP_CLASS) ||\n      region.classList.contains(COLLAPSIBLE_REGION_CLASS))) {\n      region.classList.add(COLLAPSIBLE_GROUP_CLASS);\n    }\n\n    if(!region.hasAttribute('role')) {\n      const role = region.classList.contains(COLLAPSIBLE_GROUP_CLASS) ? 'group' : 'region';\n      region.setAttribute('role', role);\n    }\n\n    if(!region.hasAttribute('id')) {\n      region.id = `${region.getAttribute('role')}-${randomString()}`;\n    }\n\n    if(this.isExpanded) {\n      region.removeAttribute('hidden');\n    }\n    else {\n      region.setAttribute('hidden', '');\n    }\n    this.addRegionId(region.id);\n  }\n\n  removeRegionElement(region) {\n    if(region && region.id) {\n      const ids = this.regionIds.filter(id => id === region.id);\n      this.controlElement.setAttribute('aria-controls', ids.join(' '));\n    }\n  }\n\n  removeListeners() {\n    this.controlElement.removeEventListener('keydown', this.keyDownHandler);\n    this.controlElement.removeEventListener('click', this.clickHandler);\n  }\n\n  init() {\n    const initControl = () => {\n      // Find the button element\n      this.controlElement_ = this.element.querySelector(`.${COLLAPSIBLE_CONTROL_CLASS}`) || this.element;\n\n      // Add \"aria-expanded\" attribute if not present\n      if(!this.controlElement.hasAttribute('aria-expanded')) {\n        this.controlElement.setAttribute('aria-expanded', 'false');\n      }\n\n      // Add role=button if control != <button>\n      if(this.controlElement.nodeName.toLowerCase() !== 'button') {\n        this.controlElement.setAttribute('role', 'button');\n      }\n\n      // Add tabindex\n      if(!isFocusable(this.controlElement) && !this.controlElement.hasAttribute('tabindex')) {\n        this.controlElement.setAttribute('tabindex', '0');\n      }\n    };\n\n    const initRegions = () => {\n      let regions = [];\n      if(!this.controlElement.hasAttribute('aria-controls')) {\n        // Add siblings as collapsible region(s)\n        let r = this.element.nextElementSibling;\n        while(r) {\n          if(r.classList.contains(COLLAPSIBLE_GROUP_CLASS) ||\n            r.classList.contains(COLLAPSIBLE_REGION_CLASS)) {\n            regions.push(r);\n          }\n          else if(r.classList.contains(JS_COLLAPSIBLE)) {\n            // A new collapsible component\n            break;\n          }\n          r = r.nextElementSibling;\n        }\n      }\n      else {\n        regions = this.regionElements;\n      }\n      regions.forEach(region => this.addRegionElement(region));\n    };\n\n    const addListeners = () => {\n      this.controlElement.addEventListener('keydown', this.keyDownHandler);\n      this.controlElement.addEventListener('click', this.clickHandler);\n    };\n\n    initControl();\n    initRegions();\n    this.removeListeners();\n    addListeners();\n  }\n\n  downgrade() {\n    this.removeListeners();\n  }\n\n}\n\n(function() {\n  'use strict';\n\n  /**\n   * @constructor\n   * @param {HTMLElement} element The element that will be upgraded.\n   */\n  const MaterialExtCollapsible = function MaterialExtCollapsible(element) {\n    this.element_ = element;\n    this.collapsible = null;\n\n    // Initialize instance.\n    this.init();\n  };\n  window['MaterialExtCollapsible'] = MaterialExtCollapsible;\n\n  /**\n   * Initialize component\n   */\n  MaterialExtCollapsible.prototype.init = function() {\n    if (this.element_) {\n      this.collapsible = new Collapsible(this.element_);\n      this.element_.classList.add(IS_UPGRADED);\n\n      // Listen to 'mdl-componentdowngraded' event\n      this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));\n    }\n  };\n\n  /*\n   * Downgrade component\n   * E.g remove listeners and clean up resources\n   */\n  MaterialExtCollapsible.prototype.mdlDowngrade_ = function() {\n    this.collapsible.downgrade();\n  };\n\n\n  // Public methods.\n\n  /**\n   * Get control element.\n   * @return {HTMLElement} element The element that controls the collapsible region.\n   * @public\n   */\n  MaterialExtCollapsible.prototype.getControlElement = function() {\n    return this.collapsible.controlElement;\n  };\n  MaterialExtCollapsible.prototype['getControlElement'] = MaterialExtCollapsible.prototype.getControlElement;\n\n  /**\n   * Get region elements controlled by this collapsible\n   * @returns {Array<HTMLElement>} the collapsible region elements\n   * @public\n   */\n  MaterialExtCollapsible.prototype.getRegionElements = function() {\n    return this.collapsible.regionElements;\n  };\n  MaterialExtCollapsible.prototype['getRegionElements'] = MaterialExtCollapsible.prototype.getRegionElements;\n\n  /**\n   * Add region elements.\n   * @param {Array<HTMLElement>} elements The element that will be upgraded.\n   * @return {void}\n   * @public\n   */\n  MaterialExtCollapsible.prototype.addRegionElements = function(...elements) {\n    elements.forEach(element => this.collapsible.addRegionElement(element));\n  };\n  MaterialExtCollapsible.prototype['addRegionElements'] = MaterialExtCollapsible.prototype.addRegionElements;\n\n  /**\n   * Remove collapsible region(s) from component.\n   * Note: This operation does not delete the element from the DOM tree.\n   * @param {Array<HTMLElement>} elements The element that will be upgraded.\n   * @public\n   */\n  MaterialExtCollapsible.prototype.removeRegionElements = function(...elements) {\n    elements.forEach(element => this.collapsible.removeRegionElement(element));\n  };\n  MaterialExtCollapsible.prototype['removeRegionElements'] = MaterialExtCollapsible.prototype.removeRegionElements;\n\n  /**\n   * Expand collapsible region(s)\n   * @return {void}\n   * @public\n   */\n  MaterialExtCollapsible.prototype.expand = function() {\n    this.collapsible.expand();\n  };\n  MaterialExtCollapsible.prototype['expand'] = MaterialExtCollapsible.prototype.expand;\n\n  /**\n   * Collapse collapsible region(s)\n   * @return {void}\n   * @public\n   */\n  MaterialExtCollapsible.prototype.collapse = function() {\n    this.collapsible.collapse();\n  };\n  MaterialExtCollapsible.prototype['collapse'] = MaterialExtCollapsible.prototype.collapse;\n\n  /**\n   * Toggle collapsible region(s)\n   * @return {void}\n   * @public\n   */\n  MaterialExtCollapsible.prototype.toggle = function() {\n    this.collapsible.toggle();\n  };\n  MaterialExtCollapsible.prototype['toggle'] = MaterialExtCollapsible.prototype.toggle;\n\n  /**\n   * Check whether component has aria-expanded state true\n   * @return {Boolean} true if aria-expanded=\"true\", otherwise false\n   */\n  MaterialExtCollapsible.prototype.isExpanded = function() {\n    return this.collapsible.isExpanded;\n  };\n  MaterialExtCollapsible.prototype['isExpanded'] = MaterialExtCollapsible.prototype.isExpanded;\n\n  /**\n   * Check whether component has aria-disabled state set to true\n   * @return {Boolean} true if aria-disabled=\"true\", otherwise false\n   */\n  MaterialExtCollapsible.prototype.isDisabled = function() {\n    return this.collapsible.isDisabled;\n  };\n  MaterialExtCollapsible.prototype['isDisabled'] = MaterialExtCollapsible.prototype.isDisabled;\n\n  /**\n   * Disables toggling of collapsible region(s)\n   * @return {void}\n   * @public\n   */\n  MaterialExtCollapsible.prototype.disableToggle = function() {\n    this.collapsible.disableToggle();\n  };\n  MaterialExtCollapsible.prototype['disableToggle'] = MaterialExtCollapsible.prototype.disableToggle;\n\n  /**\n   * Enables toggling of collapsible region(s)\n   * @return {void}\n   * @public\n   */\n  MaterialExtCollapsible.prototype.enableToggle = function() {\n    this.collapsible.enableToggle();\n  };\n  MaterialExtCollapsible.prototype['enableToggle'] = MaterialExtCollapsible.prototype.enableToggle;\n\n  // The component registers itself. It can assume componentHandler is available\n  // in the global scope.\n  /* eslint no-undef: 0 */\n  componentHandler.register({\n    constructor: MaterialExtCollapsible,\n    classAsString: 'MaterialExtCollapsible',\n    cssClass: JS_COLLAPSIBLE,\n    widget: true\n  });\n\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/collapsible/collapsible.js\n\n\n// WEBPACK FOOTER //\n// ./src/collapsible/collapsible.js","/**\n * @license\n * Copyright 2016-2017 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n\nimport {jsonStringToObject} from '../utils/json-utils';\nimport {\n  IS_UPGRADED,\n} from '../utils/constants';\n\nconst JS_FORMAT_FIELD = 'mdlext-js-formatfield';\nconst FORMAT_FIELD_COMPONENT = 'MaterialExtFormatfield';\n\n/**\n * Detect browser locale\n * @returns {string} the locale\n * @see http://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference\n */\nconst browserLanguage = () => {\n  return navigator.languages\n    ? navigator.languages[0]\n    : navigator.language || navigator.userLanguage;\n};\n\n/**\n * The formatfield  formats an input field  using language sensitive number formatting.\n */\n\nclass FormatField {\n  static timer = null;\n\n  element_;\n  input_;\n  options_ = {};\n  intlGroupSeparator_;\n  intlDecimalSeparator_;\n\n  constructor(element) {\n    this.element_ = element;\n    this.init();\n  }\n\n  clickHandler = () => {\n    clearTimeout(FormatField.timer);\n  };\n\n  focusInHandler = () => {\n    if(!(this.input.readOnly || this.input.disabled)) {\n      this.input.value = this.unformatInput();\n      //setTimeout(() => this.input.setSelectionRange(0, this.input.value.length), 20);\n      FormatField.timer = setTimeout(() => this.input.select(), 200);\n    }\n  };\n\n  focusOutHandler = () => {\n    clearTimeout(FormatField.timer);\n\n    if(!(this.input.readOnly || this.input.disabled)) {\n      this.formatValue();\n    }\n  };\n\n  get element() {\n    return this.element_;\n  }\n\n  get input() {\n    return this.input_;\n  }\n\n  get options() {\n    return this.options_;\n  }\n\n  stripSeparatorsFromValue() {\n    const doReplace = () => this.input.value\n      .replace(/\\s/g, '')\n      .replace(new RegExp(this.options.groupSeparator, 'g'), '')\n      .replace(this.options.decimalSeparator, '.');\n      //.replace(this.intlGroupSeparator_, ''),\n      //.replace(this.intlDecimalSeparator_, '.');\n\n    return this.input.value ? doReplace() : this.input.value;\n  }\n\n  fixSeparators(value) {\n    const doReplace = () => value\n      .replace(new RegExp(this.intlGroupSeparator_, 'g'), this.options.groupSeparator)\n      .replace(this.intlDecimalSeparator_, this.options.decimalSeparator);\n\n    return value ? doReplace() : value;\n  }\n\n  formatValue() {\n    if(this.input.value) {\n      const v = new Intl.NumberFormat(this.options.locales, this.options)\n        .format(this.stripSeparatorsFromValue());\n\n      if('NaN' !== v) {\n        this.input.value = this.fixSeparators(v);\n      }\n    }\n  }\n\n  unformat() {\n    const doReplace = () => this.input.value\n      .replace(/\\s/g, '')\n      .replace(new RegExp(this.options.groupSeparator, 'g'), '')\n      .replace(this.options.decimalSeparator, '.');\n\n    return this.input.value ? doReplace() : this.input.value;\n  }\n\n  unformatInput() {\n    const doReplace = () => this.input.value\n      .replace(/\\s/g, '')\n      .replace(new RegExp(this.options.groupSeparator, 'g'), '');\n\n    return this.input.value ? doReplace() : this.input.value;\n  }\n\n  removeListeners() {\n    this.input.removeEventListener('click', this.clickHandler);\n    this.input.removeEventListener('focusin', this.focusInHandler);\n    this.input.removeEventListener('focusout', this.focusOutHandler);\n  }\n\n  init() {\n    const addListeners = () => {\n      this.input.addEventListener('click', this.clickHandler);\n      this.input.addEventListener('focusin', this.focusInHandler);\n      this.input.addEventListener('focusout', this.focusOutHandler);\n    };\n\n    const addOptions = () => {\n      const opts = this.element.getAttribute('data-formatfield-options') ||\n        this.input.getAttribute('data-formatfield-options');\n      if(opts) {\n        this.options_ = jsonStringToObject(opts, this.options);\n      }\n    };\n\n    const addLocale = () => {\n      if(!this.options.locales) {\n        this.options.locales = browserLanguage() || 'en-US'; //'nb-NO', //'en-US',\n      }\n    };\n\n    const addGrouping = () => {\n      const s = (1234.5).toLocaleString(this.options.locales, {\n        style: 'decimal',\n        useGrouping: true,\n        minimumFractionDigits: 1,\n        maximumFractionDigits: 1\n      });\n\n      this.intlGroupSeparator_ = s.charAt(1);\n      this.intlDecimalSeparator_ = s.charAt(s.length-2);\n      this.options.groupSeparator = this.options.groupSeparator || this.intlGroupSeparator_;\n      this.options.decimalSeparator = this.options.decimalSeparator || this.intlDecimalSeparator_;\n\n      if(this.options.groupSeparator === this.options.decimalSeparator) {\n        const e = `Error! options.groupSeparator, \"${this.options.groupSeparator}\" ` +\n          'and options.decimalSeparator, ' +\n          `\"${this.options.decimalSeparator}\" should not be equal`;\n        throw new Error(e);\n      }\n    };\n\n    this.input_ = this.element.querySelector('input') || this.element;\n\n    addOptions();\n    addLocale();\n    addGrouping();\n    this.formatValue();\n    addListeners();\n  }\n\n  downgrade() {\n    this.removeListeners();\n  }\n\n}\n\n(function() {\n  'use strict';\n\n  /**\n   * @constructor\n   * @param {HTMLElement} element The element that will be upgraded.\n   */\n  const MaterialExtFormatfield = function MaterialExtFormatfield(element) {\n    this.element_ = element;\n    this.formatField_ = null;\n\n    // Initialize instance.\n    this.init();\n  };\n  window['MaterialExtFormatfield'] = MaterialExtFormatfield;\n\n  /**\n   * Initialize component\n   */\n  MaterialExtFormatfield.prototype.init = function() {\n    if (this.element_) {\n      this.element_.classList.add(IS_UPGRADED);\n      this.formatField_ = new FormatField(this.element_);\n\n      // Listen to 'mdl-componentdowngraded' event\n      this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));\n    }\n  };\n\n  /**\n   * Get options object\n   *\n   * @public\n   *\n   * @returns {Object} the options object\n   */\n  MaterialExtFormatfield.prototype.getOptions = function() {\n    return this.formatField_.options;\n  };\n  MaterialExtFormatfield.prototype['getOptions'] = MaterialExtFormatfield.prototype.getOptions;\n\n\n  /**\n   * A unformatted value is a string value where the locale specific decimal separator\n   * is replaced with a '.' separator and group separators are stripped.\n   * The returned value is suitable for parsing to a JavaScript numerical value.\n   *\n   * @example\n   * input.value = '1 234,5';\n   * inputElement.MaterialExtFormatfield.getUnformattedValue();\n   * // Returns '1234.5'\n   *\n   * @public\n   *\n   * @returns {String} the unformatted value\n   */\n  MaterialExtFormatfield.prototype.getUnformattedValue = function() {\n    return this.formatField_.unformat();\n  };\n  MaterialExtFormatfield.prototype['getUnformattedValue'] = MaterialExtFormatfield.prototype.getUnformattedValue;\n\n  /*\n   * Downgrade component\n   * E.g remove listeners and clean up resources\n   */\n  MaterialExtFormatfield.prototype.mdlDowngrade_ = function() {\n    this.formatField_.downgrade();\n  };\n\n  // The component registers itself. It can assume componentHandler is available\n  // in the global scope.\n  /* eslint no-undef: 0 */\n  componentHandler.register({\n    constructor: MaterialExtFormatfield,\n    classAsString: FORMAT_FIELD_COMPONENT,\n    cssClass: JS_FORMAT_FIELD,\n    widget: true\n  });\n\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/formatfield/formatfield.js\n\n\n// WEBPACK FOOTER //\n// ./src/formatfield/formatfield.js","import './utils';\nimport './accordion/accordion';\nimport './collapsible/collapsible';\nimport './carousel/carousel';\nimport './lightboard/lightboard';\nimport './lightbox/lightbox';\nimport './menu-button/menu-button';\nimport './selectfield/selectfield';\nimport './formatfield/formatfield';\nimport './sticky-header/sticky-header';\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/**\n * A lightboard is a translucent surface illuminated from behind, used for situations\n * where a shape laid upon the surface needs to be seen with high contrast. In the \"old days\" of photography\n * photograpers used a lightboard to get a quick view of their slides. The goal is to create a responsive lightbox\n * design, based on flex layout, similar to what is used in Adobe LightRoom to browse images.\n */\n\nimport {\n  VK_ENTER,\n  VK_SPACE,\n  VK_END,\n  VK_HOME,\n  VK_ARROW_LEFT,\n  VK_ARROW_UP,\n  VK_ARROW_RIGHT,\n  VK_ARROW_DOWN,\n  IS_UPGRADED,\n  MDL_RIPPLE,\n  MDL_RIPPLE_COMPONENT,\n  MDL_RIPPLE_EFFECT,\n  MDL_RIPPLE_EFFECT_IGNORE_EVENTS\n} from '../utils/constants';\n\nconst MDL_RIPPLE_CONTAINER = 'mdlext-lightboard__slide__ripple-container';\n\n(function() {\n  'use strict';\n\n  //const LIGHTBOARD = 'mdlext-lightboard';\n  const LIGHTBOARD_ROLE = 'grid';\n  const SLIDE = 'mdlext-lightboard__slide';\n  const SLIDE_ROLE  = 'gridcell';\n  const SLIDE_TABSTOP = 'mdlext-lightboard__slide__frame';\n  /**\n   * @constructor\n   * @param {Element} element The element that will be upgraded.\n   */\n  const MaterialExtLightboard = function MaterialExtLightboard(element) {\n    // Stores the element.\n    this.element_ = element;\n\n    // Initialize instance.\n    this.init();\n  };\n  window['MaterialExtLightboard'] = MaterialExtLightboard;\n\n\n  // Helpers\n  const getSlide = element => {\n    return element ? element.closest(`.${SLIDE}`) : null;\n  };\n\n\n\n  // Private methods.\n\n  /**\n   * Select a slide, i.e. set aria-selected=\"true\"\n   * @param element\n   * @private\n   */\n  MaterialExtLightboard.prototype.selectSlide_ = function(element) {\n    const slide = getSlide(element);\n    if( slide && !slide.hasAttribute('aria-selected') ) {\n      [...this.element_.querySelectorAll(`.${SLIDE}[aria-selected=\"true\"]`)]\n        .forEach(selectedSlide => selectedSlide.removeAttribute('aria-selected'));\n\n      slide.setAttribute('aria-selected', 'true');\n    }\n  };\n\n\n  /**\n   * Dispatch select event\n   * @param {Element} slide The slide that caused the event\n   * @private\n   */\n  MaterialExtLightboard.prototype.dispatchSelectEvent_ = function ( slide ) {\n    this.element_.dispatchEvent(\n      new CustomEvent('select', {\n        bubbles: true,\n        cancelable: true,\n        detail: { source: slide }\n      })\n    );\n  };\n\n  /**\n   * Handles custom command event, 'first', 'next', 'prev', 'last', 'select' or upgrade\n   * @param event. A custom event\n   * @private\n   */\n  MaterialExtLightboard.prototype.commandHandler_ = function( event ) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    if(event && event.detail) {\n      this.command(event.detail);\n    }\n  };\n\n\n  // Public methods\n\n  /**\n   * Initialize lightboard slides\n   * @public\n   */\n  MaterialExtLightboard.prototype.upgradeSlides = function() {\n\n    const addRipple = slide => {\n      // Use slide frame as ripple container\n      if(!slide.querySelector(`.${MDL_RIPPLE_CONTAINER}`)) {\n        const a = slide.querySelector(`.${SLIDE_TABSTOP}`);\n        if(a) {\n          const rippleContainer = a;\n          rippleContainer.classList.add(MDL_RIPPLE_CONTAINER);\n          rippleContainer.classList.add(MDL_RIPPLE_EFFECT);\n          const ripple = document.createElement('span');\n          ripple.classList.add(MDL_RIPPLE);\n          rippleContainer.appendChild(ripple);\n          componentHandler.upgradeElement(rippleContainer, MDL_RIPPLE_COMPONENT);\n        }\n      }\n    };\n\n    const hasRippleEffect = this.element_.classList.contains(MDL_RIPPLE_EFFECT);\n\n    [...this.element_.querySelectorAll(`.${SLIDE}`)].forEach( slide => {\n\n      slide.setAttribute('role', SLIDE_ROLE);\n\n      if(!slide.querySelector('a')) {\n        slide.setAttribute('tabindex', '0');\n      }\n      if(hasRippleEffect) {\n        addRipple(slide);\n      }\n    });\n  };\n  MaterialExtLightboard.prototype['upgradeSlides'] = MaterialExtLightboard.prototype.upgradeSlides;\n\n\n  /**\n   * Execute command\n   * @param detail\n   * @public\n   */\n  MaterialExtLightboard.prototype.command = function( detail ) {\n\n    const firstSlide = () => {\n      return this.element_.querySelector(`.${SLIDE}:first-child`);\n    };\n\n    const lastSlide = () => {\n      return this.element_.querySelector(`.${SLIDE}:last-child`);\n    };\n\n    const nextSlide = () => {\n      const slide = this.element_.querySelector(`.${SLIDE}[aria-selected=\"true\"]`).nextElementSibling;\n      return slide ? slide : firstSlide();\n    };\n\n    const prevSlide = () => {\n      const slide = this.element_.querySelector(`.${SLIDE}[aria-selected=\"true\"]`).previousElementSibling;\n      return slide ? slide : lastSlide();\n    };\n\n    if(detail && detail.action) {\n\n      const { action, target } = detail;\n\n      let slide;\n      switch (action.toLowerCase()) {\n        case 'select':\n          slide = getSlide(target);\n          this.dispatchSelectEvent_(slide);\n          break;\n        case 'first':\n          slide = firstSlide();\n          break;\n        case 'next':\n          slide = nextSlide();\n          break;\n        case 'prev':\n          slide = prevSlide();\n          break;\n        case 'last':\n          slide = lastSlide();\n          break;\n        case 'upgrade':\n          this.upgradeSlides();\n          break;\n        default:\n          throw new Error(`Unknown action \"${action}\". Action must be one of \"first\", \"next\", \"prev\", \"last\", \"select\" or \"upgrade\"`);\n      }\n\n      if (slide) {\n        const a = slide.querySelector('a');\n        if (a) {\n          a.focus();\n        }\n        else {\n          slide.focus();\n        }\n\n        // Workaround for JSDom testing:\n        // In JsDom 'element.focus()' does not trigger any focus event\n        if(!slide.hasAttribute('aria-selected')) {\n          this.selectSlide_(slide);\n        }\n\n      }\n    }\n  };\n  MaterialExtLightboard.prototype['command'] = MaterialExtLightboard.prototype.command;\n\n\n  /**\n   * Initialize component\n   */\n  MaterialExtLightboard.prototype.init = function() {\n\n    const keydownHandler = event => {\n\n      if(event.target !== this.element_) {\n        let action;\n        let target;\n        switch (event.keyCode) {\n          case VK_HOME:\n            action = 'first';\n            break;\n          case VK_END:\n            action = 'last';\n            break;\n          case VK_ARROW_UP:\n          case VK_ARROW_LEFT:\n            action = 'prev';\n            break;\n          case VK_ARROW_DOWN:\n          case VK_ARROW_RIGHT:\n            action = 'next';\n            break;\n          case VK_ENTER:\n          case VK_SPACE:\n            action = 'select';\n            target = event.target;\n            break;\n        }\n        if(action)  {\n          event.preventDefault();\n          event.stopPropagation();\n          this.command( { action: action, target: target } );\n        }\n      }\n    };\n\n    const clickHandler = event => {\n      event.preventDefault();\n      event.stopPropagation();\n\n      if(event.target !== this.element_) {\n        this.command( { action: 'select', target: event.target } );\n      }\n    };\n\n    const focusHandler = event => {\n      event.preventDefault();\n      event.stopPropagation();\n\n      if(event.target !== this.element_) {\n        this.selectSlide_(event.target);\n      }\n    };\n\n\n    if (this.element_) {\n      this.element_.setAttribute('role', LIGHTBOARD_ROLE);\n\n      if (this.element_.classList.contains(MDL_RIPPLE_EFFECT)) {\n        this.element_.classList.add(MDL_RIPPLE_EFFECT_IGNORE_EVENTS);\n      }\n\n      // Remove listeners, just in case ...\n      this.element_.removeEventListener('command', this.commandHandler_);\n      this.element_.removeEventListener('keydown', keydownHandler);\n      this.element_.removeEventListener('click', clickHandler);\n      this.element_.removeEventListener('focus', focusHandler);\n\n      this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n      this.element_.addEventListener('keydown', keydownHandler, true);\n      this.element_.addEventListener('click', clickHandler, true);\n      this.element_.addEventListener('focus', focusHandler, true);\n\n      this.upgradeSlides();\n\n      this.element_.classList.add(IS_UPGRADED);\n    }\n  };\n\n  // The component registers itself. It can assume componentHandler is available\n  // in the global scope.\n  /* eslint no-undef: 0 */\n  /* jshint undef:false */\n  componentHandler.register({\n    constructor: MaterialExtLightboard,\n    classAsString: 'MaterialExtLightboard',\n    cssClass: 'mdlext-js-lightboard',\n    widget: true\n  });\n\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/lightboard/lightboard.js\n\n\n// WEBPACK FOOTER //\n// ./src/lightboard/lightboard.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n\n/**\n * Responsive Lightbox\n */\n\nimport fullThrottle from '../utils/full-throttle';\nimport {\n  VK_ESC,\n  VK_SPACE,\n  VK_END,\n  VK_HOME,\n  VK_ARROW_LEFT,\n  VK_ARROW_UP,\n  VK_ARROW_RIGHT,\n  VK_ARROW_DOWN,\n  IS_UPGRADED\n} from '../utils/constants';\n\n(function() {\n  'use strict';\n\n  const LIGHTBOX = 'mdlext-lightbox';\n  const LIGHTBOX_SLIDER = 'mdlext-lightbox__slider';\n  const LIGHTBOX_SLIDER_SLIDE = 'mdlext-lightbox__slider__slide';\n  const STICKY_FOOTER = 'mdlext-lightbox--sticky-footer';\n  const BUTTON = 'mdl-button';\n\n  /**\n   * https://github.com/google/material-design-lite/issues/4205\n   * @constructor\n   * @param {Element} element The element that will be upgraded.\n   */\n  const MaterialExtLightbox = function MaterialExtLightbox(element) {\n    // Stores the element.\n    this.element_ = element;\n\n    // Initialize instance.\n    this.init();\n  };\n  window['MaterialExtLightbox'] = MaterialExtLightbox;\n\n\n  /**\n   * Handle keypress\n   * @param event\n   * @private\n   */\n  MaterialExtLightbox.prototype.keyDownHandler_ = function(event) {\n\n    if (event) {\n      if ( event.keyCode === VK_ESC || event.keyCode === VK_SPACE\n        || event.keyCode === VK_END || event.keyCode === VK_HOME\n        || event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT\n        || event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n\n        if(event.keyCode !== VK_ESC) {\n          event.preventDefault();\n          event.stopPropagation();\n        }\n\n        let action = 'first';\n        if (event.keyCode === VK_END) {\n          action = 'last';\n        }\n        else if (event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT) {\n          action = 'prev';\n        }\n        else if (event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n          action = 'next';\n        }\n        else if (event.keyCode === VK_SPACE) {\n          action = 'select';\n        }\n        else if (event.keyCode === VK_ESC) {\n          action = 'cancel';\n        }\n\n        dispatchAction_(action, this);\n      }\n    }\n  };\n\n  /**\n   * Handle button clicks\n   * @param event\n   * @private\n   */\n  MaterialExtLightbox.prototype.buttonClickHandler_ = function(event) {\n\n    if (event) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      dispatchAction_(this.getAttribute('data-action') || '', this);\n\n      const n = this.closest(`.${LIGHTBOX}`);\n      if(n) {\n        n.focus();\n      }\n    }\n  };\n\n  /**\n   * Dispatches an action custom event\n   * @param action\n   * @param source\n   * @param target\n   * @private\n   */\n  const dispatchAction_ = (action, source, target = source) => {\n\n    target.dispatchEvent(new CustomEvent('action', {\n      bubbles: true,\n      cancelable: true,\n      detail: {\n        action: action || '',\n        source: source\n      }\n    }));\n  };\n\n  /**\n   * Reposition dialog if component parent element is \"DIALOG\"\n   * @param lightboxElement\n   * @private\n   */\n  const repositionDialog_ = lightboxElement => {\n    const footerHeight = (footer, isSticky) => isSticky && footer ? footer.offsetHeight : 0;\n\n    const reposition = (dialog, fh) => {\n      if (window.getComputedStyle(dialog).position === 'absolute') {\n        const scrollTop = document.body.scrollTop || document.documentElement.scrollTop;\n        const topValue = scrollTop + (window.innerHeight - dialog.offsetHeight - fh) / 2;\n        dialog.style.top = `${Math.max(scrollTop, topValue)}px`;\n      }\n    };\n\n    const p = lightboxElement.parentNode;\n    const dialog = p && p.nodeName === 'DIALOG' ? p : null;\n\n    if(dialog && dialog.hasAttribute('open')) {\n      lightboxElement.style.width = 'auto';\n      lightboxElement.style.maxWidth = '100%';\n      const img = lightboxElement.querySelector('img');\n      if(img) {\n        lightboxElement.style.maxWidth = img.naturalWidth !== undefined ? `${img.naturalWidth}px` : `${img.width}px` || '100%';\n      }\n\n      const fh = footerHeight(lightboxElement.querySelector('footer'), lightboxElement.classList.contains(STICKY_FOOTER));\n      const vh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - fh;\n      if (dialog.offsetHeight > vh) {\n        let n = 0;\n        while(dialog.offsetHeight > vh && ++n < 4) {\n          lightboxElement.style.width = `${lightboxElement.offsetWidth * vh / lightboxElement.offsetHeight}px`;\n        }\n      }\n      reposition(dialog, fh);\n    }\n  };\n\n  /**\n   * Handle image load\n   * @param event\n   * @private\n   */\n\n  MaterialExtLightbox.prototype.imgLoadHandler_ = function( /*event*/ ) {\n    repositionDialog_(this);\n  };\n\n\n  /**\n   * Handle image drag\n   * @param event\n   * @private\n     */\n  MaterialExtLightbox.prototype.imgDragHandler_ = function(event ) {\n\n    const setStyles = ( element, properties ) => {\n      //noinspection JSAnnotator\n      for(const [key, value] of Object.entries(properties)) {\n        element.style[key] = value;\n      }\n      // ... or:\n      //for (const key in properties) {\n      //  element.style[key] = properties[key];\n      //}\n    };\n\n    event.preventDefault();\n    //event.stopPropagation();\n\n    const x = event.clientX || (event.touches !== undefined ? event.touches[0].clientX : 0);\n\n    const img = this;\n    img.style.opacity = '0.2';\n\n    const slider = document.createElement('div');\n    slider.classList.add(LIGHTBOX_SLIDER);\n    setStyles(slider, {'width': `${img.offsetWidth}px`, 'height': `${img.offsetHeight}px`} );\n\n    let slide  = document.createElement('div');\n    slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n    slide.textContent = '>';\n    setStyles(slide, {\n      'width'           : `${img.offsetWidth}px`,\n      'height'          : `${img.offsetHeight}px`,\n      'line-height'     : `${img.offsetHeight}px`,\n      'font-size'       : `${img.offsetHeight/4}px`,\n      'text-align'      : 'right',\n      'background-image': `url(\"${img.getAttribute('data-img-url-prev') || ''}\")`\n    });\n    slider.appendChild(slide);\n\n    slide  = document.createElement('div');\n    slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n    setStyles(slide, {\n      'width'           : `${img.offsetWidth}px`,\n      'height'          : `${img.offsetHeight}px`,\n      'background-image': `url(\"${img.src}\")`\n    });\n    slider.appendChild(slide);\n\n    slide  = document.createElement('div');\n    slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n    slide.textContent = '<';\n    setStyles(slide, {\n      'width'           : `${img.offsetWidth}px`,\n      'height'          : `${img.offsetHeight}px`,\n      'line-height'     : `${img.offsetHeight}px`,\n      'font-size'       : `${img.offsetHeight/4}px`,\n      'text-align'      : 'left',\n      'background-image': `url(\"${img.getAttribute('data-img-url-next') || ''}\")`\n    });\n    slider.appendChild(slide);\n\n    img.parentNode.appendChild(slider);\n\n\n    // drag handler\n    const drag = e => {\n      e.preventDefault();\n      const dx = (e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0)) - x; // TODO: maybe rewrite to improve performance\n\n      if(slider.offsetWidth - Math.abs(dx) > 19) {\n        slider.style.left = `${dx}px`;\n      }\n    };\n\n    // end drag handler\n    const endDrag = e => {\n      e.preventDefault();\n      //e.stopPropagation();\n\n      window.removeEventListener('mousemove', drag);\n      window.removeEventListener('touchmove', drag);\n      window.removeEventListener('mouseup', endDrag);\n      window.removeEventListener('touchend', endDrag);\n\n      const dx = slider.offsetLeft;\n      img.parentNode.removeChild(slider);\n      img.style.opacity = '1.0';\n\n      if(Math.abs(dx) > 19) {\n        dispatchAction_( (dx > 0 ? 'prev' : 'next') , img);\n      }\n    };\n\n    window.addEventListener('mousemove', drag);\n    window.addEventListener('touchmove', drag);\n    window.addEventListener('mouseup', endDrag);\n    window.addEventListener('touchend',endDrag);\n  };\n\n\n  /**\n   * Initialize component\n   */\n  MaterialExtLightbox.prototype.init = function() {\n\n    if (this.element_) {\n      // Do the init required for this component to work\n      this.element_.addEventListener('keydown', this.keyDownHandler_.bind(this.element_), true);\n\n      if(!Number.isInteger(this.element_.getAttribute('tabindex'))) {\n        this.element_.setAttribute('tabindex', 1);\n      }\n\n      [...this.element_.querySelectorAll(`.${BUTTON}`)].forEach( button =>\n        button.addEventListener('click', this.buttonClickHandler_.bind(button), false)\n      );\n\n      const figcaption = this.element_.querySelector('figcaption');\n      if(figcaption) {\n        figcaption.addEventListener('click', this.buttonClickHandler_.bind(figcaption), false);\n      }\n\n      const footer = this.element_.querySelector('footer');\n      if(footer) {\n        footer.addEventListener('click', this.buttonClickHandler_.bind(footer), false);\n      }\n\n      const img = this.element_.querySelector('img');\n      if(img) {\n        img.addEventListener('load', this.imgLoadHandler_.bind(this.element_), false);\n        img.addEventListener('click', e => e.preventDefault(), true);\n        img.addEventListener('mousedown', this.imgDragHandler_.bind(img), true);\n        img.addEventListener('touchstart', this.imgDragHandler_.bind(img), true);\n      }\n      window.addEventListener('resize', fullThrottle( () => repositionDialog_(this.element_) ));\n      window.addEventListener('orientationchange', () => repositionDialog_(this.element_));\n\n      // Set upgraded flag\n      this.element_.classList.add(IS_UPGRADED);\n    }\n  };\n\n  /*\n   * Downgrade component\n   * E.g remove listeners and clean up resources\n   *\n   * Nothing to downgrade\n   *\n  MaterialExtLightbox.prototype.mdlDowngrade_ = function() {\n  };\n  */\n\n  /**\n   * The component registers itself. It can assume componentHandler is available in the global scope.\n   */\n  /* jshint undef:false */\n  componentHandler.register({\n    constructor: MaterialExtLightbox,\n    classAsString: 'MaterialExtLightbox',\n    cssClass: 'mdlext-js-lightbox'\n  });\n\n})();\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/lightbox/lightbox.js\n\n\n// WEBPACK FOOTER //\n// ./src/lightbox/lightbox.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n\n/**\n * A menu button is a button that opens a menu. It is often styled as a\n * typical push button with a downward pointing arrow or triangle to hint\n * that activating the button will display a menu.\n */\nimport { randomString } from '../utils/string-utils';\nimport fullThrottle from '../utils/full-throttle';\nimport {\n  VK_TAB,\n  VK_ENTER,\n  VK_ESC,\n  VK_SPACE,\n  VK_END,\n  VK_HOME,\n  VK_ARROW_LEFT,\n  VK_ARROW_UP,\n  VK_ARROW_RIGHT,\n  VK_ARROW_DOWN,\n  IS_UPGRADED,\n} from '../utils/constants';\n\nimport { getScrollParents, tether } from '../utils/dom-utils';\n\nconst JS_MENU_BUTTON = 'mdlext-js-menu-button';\nconst MENU_BUTTON_MENU = 'mdlext-menu';\nconst MENU_BUTTON_MENU_ITEM = 'mdlext-menu__item';\nconst MENU_BUTTON_MENU_ITEM_SEPARATOR = 'mdlext-menu__item-separator';\n//const MDL_LAYOUT_CONTENT = 'mdl-layout__content';\n\n/**\n * Creates the menu controlled by the menu button\n * @param element\n * @return {{element: Element, selected: Element, open: (function(*=)), removeListeners: (function()), downgrade: (function())}}\n */\n\nconst menuFactory = element => {\n\n  let ariaControls = null;\n  let parentNode = null;\n\n  const removeAllSelected = () => {\n    [...element.querySelectorAll(`.${MENU_BUTTON_MENU_ITEM}[aria-selected=\"true\"]`)]\n      .forEach(selectedItem => selectedItem.removeAttribute('aria-selected'));\n  };\n\n  const setSelected = (item, force=false) => {\n    if(force || (item && !item.hasAttribute('aria-selected'))) {\n      removeAllSelected();\n      if(item) {\n        item.setAttribute('aria-selected', 'true');\n      }\n    }\n  };\n\n  const getSelected = () => {\n    return element.querySelector(`.${MENU_BUTTON_MENU_ITEM}[aria-selected=\"true\"]`);\n  };\n\n  const isDisabled = item => item && item.hasAttribute('disabled');\n\n  const isSeparator = item => item && item.classList.contains(MENU_BUTTON_MENU_ITEM_SEPARATOR);\n\n  const focus = item => {\n    if(item) {\n      item = item.closest(`.${MENU_BUTTON_MENU_ITEM}`);\n    }\n    if(item) {\n      item.focus();\n    }\n  };\n\n  const nextItem = current => {\n    let n = current.nextElementSibling;\n    if(!n) {\n      n = element.firstElementChild;\n    }\n    if(!isDisabled(n) && !isSeparator(n)) {\n      focus(n);\n    }\n    else {\n      let i = element.children.length;\n      while(n && i-- > 0) {\n        if(isDisabled(n) || isSeparator(n)) {\n          n = n.nextElementSibling;\n          if(!n) {\n            n = element.firstElementChild;\n          }\n        }\n        else {\n          focus(n);\n          break;\n        }\n      }\n    }\n  };\n\n  const previousItem = current => {\n    let p = current.previousElementSibling;\n    if(!p) {\n      p = element.lastElementChild;\n    }\n    if(!isDisabled(p) && !isSeparator(p)) {\n      focus(p);\n    }\n    else {\n      let i = element.children.length;\n      while(p && i-- > 0) {\n        if(isDisabled(p) || isSeparator(p)) {\n          p = p.previousElementSibling;\n          if(!p) {\n            p = element.lastElementChild;\n          }\n        }\n        else {\n          focus(p);\n          break;\n        }\n      }\n    }\n  };\n\n  const firstItem = () => {\n    const item = element.firstElementChild;\n    if(isDisabled(item) || isSeparator(item) ) {\n      nextItem(item);\n    }\n    else {\n      focus(item);\n    }\n  };\n\n  const lastItem = () => {\n    const item = element.lastElementChild;\n    if(isDisabled(item) || isSeparator(item)) {\n      previousItem(item);\n    }\n    else {\n      focus(item);\n    }\n  };\n\n  const selectItem = item => {\n    if(item && !isDisabled(item) && !isSeparator(item)) {\n      setSelected(item);\n      close(true, item);\n    }\n  };\n\n  const keyDownHandler = event => {\n\n    const item = event.target.closest(`.${MENU_BUTTON_MENU_ITEM}`);\n\n    switch (event.keyCode) {\n      case VK_ARROW_UP:\n      case VK_ARROW_LEFT:\n        if(item) {\n          previousItem(item);\n        }\n        else {\n          firstItem();\n        }\n        break;\n\n      case VK_ARROW_DOWN:\n      case VK_ARROW_RIGHT:\n        if(item) {\n          nextItem(item);\n        }\n        else {\n          lastItem();\n        }\n        break;\n\n      case VK_HOME:\n        firstItem();\n        break;\n\n      case VK_END:\n        lastItem();\n        break;\n\n      case VK_SPACE:\n      case VK_ENTER:\n        selectItem(item);\n        break;\n\n      case VK_ESC:\n        close(true);\n        break;\n\n      case VK_TAB:\n        // We do not have a \"natural\" tab order from menu, so the best we can do is to set focus back to the button\n        close(true);\n        break;\n\n      default:\n        return;\n    }\n    event.preventDefault();\n  };\n\n\n  const blurHandler = event => {\n\n    // See: https://github.com/facebook/react/issues/2011\n    const t = event.relatedTarget ||\n      event.explicitOriginalTarget || // FF\n      document.activeElement;         // IE11\n\n    //console.log('***** blur, target, relatedTarget', event.target, t);\n\n    try {\n      if (t) {\n        if (t.closest(`.${MENU_BUTTON_MENU}`) !== element && shouldClose(t)) {\n          close();\n        }\n      }\n      else {\n        close();\n      }\n    }\n    catch(err) {\n      // FF throws error: \"TypeError: n.closest is not a function\" if related target is a text node\n      close();\n    }\n  };\n\n  const clickHandler = event => {\n    //console.log('***** click, target', event.target);\n\n    event.preventDefault();\n    const t = event.target;\n    if (t && t.closest(`.${MENU_BUTTON_MENU}`) === element) {\n      const item = t.closest(`.${MENU_BUTTON_MENU_ITEM}`);\n      if (item) {\n        selectItem(item);\n      }\n    }\n    else {\n      if (shouldClose(t)) {\n        close();\n      }\n    }\n  };\n\n  const touchStartHandler = event => {\n    //console.log('***** touchStart, target', event.target);\n\n    const t = event.target;\n    if(!(t && t.closest(`.${MENU_BUTTON_MENU}`) === element)) {\n      if (event.type === 'touchstart') {\n        event.preventDefault();\n      }\n      close();\n    }\n  };\n\n  const addListeners = () => {\n    element.addEventListener('keydown', keyDownHandler, false);\n    element.addEventListener('blur', blurHandler, true);\n    element.addEventListener('click', clickHandler, true);\n    document.documentElement.addEventListener('touchstart', touchStartHandler, true);\n  };\n\n  const removeListeners = () => {\n    element.removeEventListener('keydown', keyDownHandler, false);\n    element.removeEventListener('blur', blurHandler, true);\n    element.removeEventListener('click', clickHandler, true);\n    document.documentElement.removeEventListener('touchstart', touchStartHandler, true);\n  };\n\n  const open = (controlElement, position='first') => {\n\n    ariaControls = controlElement.closest(`.${JS_MENU_BUTTON}`);\n\n    element.style['min-width'] = `${Math.max(124, controlElement.getBoundingClientRect().width)}px`;\n    element.removeAttribute('hidden');\n    tether(controlElement, element);\n\n    let item;\n    switch (position.toLowerCase()) {\n      case 'first':\n        firstItem();\n        break;\n\n      case 'last':\n        lastItem();\n        break;\n\n      case 'selected':\n        item = getSelected();\n        if(item && !item.hasAttribute('disabled')) {\n          focus(item);\n        }\n        else {\n          firstItem();\n        }\n        break;\n    }\n\n    addListeners();\n  };\n\n\n  const shouldClose = target => {\n    //console.log('***** shouldClose');\n\n    let result = false;\n    const btn = (target && target.closest(`.${JS_MENU_BUTTON}`)) || null;\n    if(!btn) {\n      result = true;\n    }\n    else if(btn.getAttribute('aria-controls') === element.id) {\n      if(btn !== ariaControls) {\n        result = true;\n      }\n    }\n    else {\n      result = true;\n    }\n    return result;\n  };\n\n  const close = (forceFocus = false, item = null) => {\n    removeListeners();\n\n    element.dispatchEvent(\n      new CustomEvent('_closemenu', {\n        bubbles: true,\n        cancelable: true,\n        detail: { forceFocus: forceFocus, item: item }\n      })\n    );\n  };\n\n  const addWaiAria = () => {\n    if (!element.hasAttribute('id')) {\n      // Generate a random id\n      element.id = `menu-button-${randomString()}`;\n    }\n    element.setAttribute('tabindex', '-1');\n    element.setAttribute('role', 'menu');\n    element.setAttribute('hidden', '');\n\n    [...element.querySelectorAll(`.${MENU_BUTTON_MENU_ITEM}`)].forEach( menuitem => {\n      menuitem.setAttribute('tabindex', '-1');\n      menuitem.setAttribute('role', 'menuitem');\n    });\n\n    [...element.querySelectorAll(`.${MENU_BUTTON_MENU_ITEM_SEPARATOR}`)].forEach( menuitem => {\n      menuitem.setAttribute('role', 'separator');\n    });\n  };\n\n  const init = () => {\n    addWaiAria();\n    parentNode = element.parentNode;\n    element.classList.add('is-upgraded');\n  };\n\n  const downgrade = () => {\n    removeListeners();\n    if(element.parentNode !== parentNode) {\n      parentNode.appendChild(element);\n    }\n    element.classList.remove('is-upgraded');\n  };\n\n  init();\n\n  return {\n    /**\n     * Get the menu element\n     * @returns {Element} the menu element\n     */\n    get element() {\n      return element;\n    },\n\n    /**\n     * Set selected menu item\n     * @param item\n     */\n    set selected(item) {\n      setSelected(item, true);\n    },\n\n    /**\n     * Open menu\n     * @param {Element} controlElement the element where the menu should be aligned to\n     * @param {String} position menuElement item to receive focus after menu element is opened\n     */\n    open: (controlElement, position='first') => open(controlElement, position),\n\n    /**\n     * Remove event listeners.\n     */\n    removeListeners: () => removeListeners(),\n\n    /**\n     * Downgrade menu\n     */\n    downgrade: () => downgrade(),\n  };\n};\n\n\n/**\n * The menubutton component\n */\n\nclass MenuButton {\n\n  constructor(element) {\n    this.element = element;\n    this.focusElement = undefined;\n    this.focusElementLastScrollPosition = undefined;\n    this.scrollElements = [];\n    this.menu = undefined;\n    this.selectedItem = null;\n    this.init();\n  }\n\n  keyDownHandler = event => {\n    if(!this.isDisabled()) {\n      switch (event.keyCode) {\n        case VK_ARROW_UP:\n          this.openMenu('last');\n          break;\n\n        case VK_ARROW_DOWN:\n          this.openMenu();\n          break;\n\n        case VK_SPACE:\n        case VK_ENTER:\n          this.openMenu('selected');\n          break;\n\n        case VK_ESC:\n          this.closeMenu();\n          break;\n\n        case VK_TAB:\n          this.closeMenu();\n          return;\n\n        default:\n          return;\n      }\n    }\n    //event.stopPropagation();\n    event.preventDefault();\n  };\n\n  clickHandler = () => {\n    if(!this.isDisabled()) {\n      if(this.element.getAttribute('aria-expanded').toLowerCase() === 'true') {\n        this.closeMenu(true);\n      }\n      else {\n        this.openMenu('selected');\n      }\n    }\n  };\n\n  /**\n   * Re-position menu if content is scrolled, window is resized or orientation change\n   * @see https://javascriptweblog.wordpress.com/2015/11/02/of-classes-and-arrow-functions-a-cautionary-tale/\n   */\n  recalcMenuPosition = fullThrottle( () => {\n    const c = this.focusElement.getBoundingClientRect();\n    const dx = this.focusElementLastScrollPosition.left - c.left;\n    const dy = this.focusElementLastScrollPosition.top - c.top;\n    const left = (parseFloat(this.menu.element.style.left) || 0) - dx;\n    const top = (parseFloat(this.menu.element.style.top) || 0) - dy;\n\n    this.menu.element.style.left = `${left}px`;\n    this.menu.element.style.top = `${top}px`;\n    this.focusElementLastScrollPosition = c;\n  });\n\n\n  positionChangeHandler = () => {\n    this.recalcMenuPosition(this);\n  };\n\n  closeMenuHandler = event => {\n    if(event && event.detail) {\n      if(event.detail.item && event.detail.item !== this.selectedItem) {\n        this.selectedItem = event.detail.item;\n        this.dispatchMenuSelect();\n      }\n      this.closeMenu(event.detail.forceFocus);\n    }\n  };\n\n  dispatchMenuSelect() {\n    this.element.dispatchEvent(\n      new CustomEvent('menuselect', {\n        bubbles: true,\n        cancelable: true,\n        detail: { source: this.selectedItem }\n      })\n    );\n  }\n\n  isDisabled() {\n    return this.element.hasAttribute('disabled');\n  }\n\n  removeListeners() {\n    this.element.removeEventListener('keydown', this.keyDownHandler);\n    this.element.removeEventListener('click', this.clickHandler);\n  }\n\n  openMenu(position='first') {\n\n    if(!this.isDisabled() && this.menu) {\n\n      // Close the menu if button position change\n      this.scrollElements = getScrollParents(this.element);\n      this.scrollElements.forEach(el => el.addEventListener('scroll', this.positionChangeHandler));\n\n      window.addEventListener('resize', this.positionChangeHandler);\n      window.addEventListener('orientationchange', this.positionChangeHandler);\n      this.menu.element.addEventListener('_closemenu', this.closeMenuHandler);\n\n      this.menu.selected = this.selectedItem;\n      this.menu.open(this.focusElement, position);\n      this.element.setAttribute('aria-expanded', 'true');\n\n      this.focusElementLastScrollPosition = this.focusElement.getBoundingClientRect();\n    }\n  }\n\n  closeMenu(forceFocus = false) {\n    if(this.menu) {\n      this.menu.removeListeners();\n      this.scrollElements.forEach(el => el.removeEventListener('scroll', this.positionChangeHandler));\n      window.removeEventListener('resize', this.positionChangeHandler);\n      window.removeEventListener('orientationchange', this.positionChangeHandler);\n      this.menu.element.removeEventListener('_closemenu', this.closeMenuHandler);\n\n      if (forceFocus) {\n        this.focus();\n      }\n      this.element.setAttribute('aria-expanded', 'false');\n      this.menu.element.setAttribute('hidden', '');\n    }\n  }\n\n  focus() {\n    if(!this.isDisabled()) {\n      this.focusElement.focus();\n    }\n  }\n\n  init() {\n    const addListeners = () => {\n      this.element.addEventListener('keydown', this.keyDownHandler);\n      this.element.addEventListener('click', this.clickHandler);\n    };\n\n    const addWaiAria = () => {\n      this.element.setAttribute('role', 'button');\n      this.element.setAttribute('aria-expanded', 'false');\n      this.element.setAttribute('aria-haspopup', 'true');\n    };\n\n    const addFocusElement = () => {\n      this.focusElement = this.element.querySelector('input[type=\"text\"]');\n      if(!this.focusElement) {\n        this.focusElement = this.element;\n\n        if(!(this.focusElement.tagName.toLowerCase() === 'button' || this.focusElement.tagName.toLowerCase() === 'input')) {\n          if (!this.focusElement.hasAttribute('tabindex')) {\n            this.focusElement.setAttribute('tabindex', '0');\n          }\n        }\n      }\n    };\n\n    const moveElementToDocumentBody = (element) => {\n      // To position an element on top of all other z-indexed elements, the element should be moved to document.body\n      //       See: https://philipwalton.com/articles/what-no-one-told-you-about-z-index/\n\n      if(element.parentNode !== document.body) {\n        return document.body.appendChild(element);\n      }\n      return element;\n    };\n\n    const findMenuElement = () => {\n      let menuElement;\n      const menuElementId = this.element.getAttribute('aria-controls');\n      if(menuElementId !== null) {\n        menuElement = document.querySelector(`#${menuElementId }`);\n      }\n      else {\n        menuElement = this.element.parentNode.querySelector(`.${MENU_BUTTON_MENU}`);\n      }\n      return menuElement;\n    };\n\n    const addMenu = () => {\n      const menuElement = findMenuElement();\n      if(menuElement) {\n        if(menuElement.componentInstance) {\n          this.menu = menuElement.componentInstance;\n        }\n        else {\n          this.menu = menuFactory(menuElement);\n          menuElement.componentInstance = this.menu;\n          moveElementToDocumentBody(menuElement);\n        }\n        this.element.setAttribute('aria-controls', this.menu.element.id);\n      }\n    };\n\n    addFocusElement();\n    addWaiAria();\n    addMenu();\n    this.removeListeners();\n    addListeners();\n  }\n\n  downgrade() {\n    if(this.menu) {\n      // Do not downgrade menu if there are other buttons sharing this menu\n      const related = [...document.querySelectorAll(`.${JS_MENU_BUTTON}[aria-controls=\"${this.element.getAttribute('aria-controls')}\"]`)];\n      if(related.filter( c => c !== this.element && c.getAttribute('data-upgraded').indexOf('MaterialExtMenuButton') >= 0).length === 0) {\n        this.menu.downgrade();\n      }\n    }\n    this.removeListeners();\n  }\n\n}\n\n(function() {\n  'use strict';\n\n  /**\n   * https://github.com/google/material-design-lite/issues/4205\n   * @constructor\n   * @param {Element} element The element that will be upgraded.\n   */\n  const MaterialExtMenuButton = function MaterialExtMenuButton(element) {\n    this.element_ = element;\n    this.menuButton_ = null;\n\n    // Initialize instance.\n    this.init();\n  };\n  window['MaterialExtMenuButton'] = MaterialExtMenuButton;\n\n\n  // Public methods.\n\n  /**\n   * Get the menu element controlled by this button, null if no menu is controlled by this button\n   * @public\n   */\n  MaterialExtMenuButton.prototype.getMenuElement = function() {\n    return this.menuButton_.menu ? this.menuButton_.menu.element : null;\n  };\n  MaterialExtMenuButton.prototype['getMenuElement'] = MaterialExtMenuButton.prototype.getMenuElement;\n\n  /**\n   * Open menu\n   * @public\n   * @param {String} position one of \"first\", \"last\" or \"selected\"\n   */\n  MaterialExtMenuButton.prototype.openMenu = function(position) {\n    this.menuButton_.openMenu(position);\n  };\n  MaterialExtMenuButton.prototype['openMenu'] = MaterialExtMenuButton.prototype.openMenu;\n\n  /**\n   * Close menu\n   * @public\n   */\n  MaterialExtMenuButton.prototype.closeMenu = function() {\n    this.menuButton_.closeMenu(true);\n  };\n  MaterialExtMenuButton.prototype['closeMenu'] = MaterialExtMenuButton.prototype.closeMenu;\n\n  /**\n   * Get selected menu item\n   * @public\n   * @returns {Element} The selected menu item or null if no item selected\n   */\n  MaterialExtMenuButton.prototype.getSelectedMenuItem = function() {\n    return this.menuButton_.selectedItem;\n  };\n  MaterialExtMenuButton.prototype['getSelectedMenuItem'] = MaterialExtMenuButton.prototype.getSelectedMenuItem;\n\n\n  /**\n   * Set (default) selected menu item\n   * @param {Element} item\n   */\n  MaterialExtMenuButton.prototype.setSelectedMenuItem = function(item) {\n    this.menuButton_.selectedItem = item;\n  };\n  MaterialExtMenuButton.prototype['setSelectedMenuItem'] = MaterialExtMenuButton.prototype.setSelectedMenuItem;\n\n  /**\n   * Initialize component\n   */\n  MaterialExtMenuButton.prototype.init = function() {\n    if (this.element_) {\n      this.menuButton_ = new MenuButton(this.element_);\n      this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));\n      this.element_.classList.add(IS_UPGRADED);\n    }\n  };\n\n  /**\n   * Downgrade component\n   * E.g remove listeners and clean up resources\n   */\n  MaterialExtMenuButton.prototype.mdlDowngrade_ = function() {\n    this.menuButton_.downgrade();\n  };\n\n  // The component registers itself. It can assume componentHandler is available\n  // in the global scope.\n  /* eslint no-undef: 0 */\n  componentHandler.register({\n    constructor: MaterialExtMenuButton,\n    classAsString: 'MaterialExtMenuButton',\n    cssClass: JS_MENU_BUTTON,\n    widget: true\n  });\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/menu-button/menu-button.js\n\n\n// WEBPACK FOOTER //\n// ./src/menu-button/menu-button.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/*\n * Copied/Modified from https://github.com/google/material-design-lite/tree/master/src/textfield\n */\n\nimport { randomString } from '../utils/string-utils';\nimport {\n  IS_DIRTY,\n  IS_FOCUSED,\n  IS_DISABLED,\n  IS_INVALID,\n  IS_UPGRADED\n} from '../utils/constants';\n\n(function() {\n  'use strict';\n  const LABEL = 'mdlext-selectfield__label';\n  const INPUT = 'mdlext-selectfield__select';\n\n  /**\n   * Class constructor for Selectfield MDLEXT component.\n   * Implements MDL component design pattern defined at:\n   * https://github.com/jasonmayes/mdl-component-design-pattern\n   *\n   * @constructor\n   * @param {HTMLElement} element The element that will be upgraded.\n   */\n  const MaterialExtSelectfield = function MaterialExtSelectfield(element) {\n    this.element_ = element;\n    this.init(); // Initialize instance.\n  };\n\n  window['MaterialExtSelectfield'] = MaterialExtSelectfield;\n\n  /**\n   * Handle focus.\n   *\n   * @param {Event} event The event that fired.\n   * @private\n   */\n  /*eslint no-unused-vars: 0*/\n  MaterialExtSelectfield.prototype.onFocus_ = function( /*event*/ ) {\n    this.element_.classList.add(IS_FOCUSED);\n  };\n\n  /**\n   * Handle lost focus.\n   *\n   * @param {Event} event The event that fired.\n   * @private\n   */\n  /*eslint no-unused-vars: 0*/\n  MaterialExtSelectfield.prototype.onBlur_ = function( /*event*/ ) {\n    this.element_.classList.remove(IS_FOCUSED);\n  };\n\n  /**\n   * Handle reset event from out side.\n   *\n   * @param {Event} event The event that fired.\n   * @private\n   */\n  MaterialExtSelectfield.prototype.onReset_ = function( /*event*/ ) {\n    this.updateClasses_();\n  };\n\n  /**\n   * Handle class updates.\n   *\n   * @private\n   */\n  MaterialExtSelectfield.prototype.updateClasses_ = function() {\n    this.checkDisabled();\n    this.checkValidity();\n    this.checkDirty();\n    this.checkFocus();\n  };\n\n  // Public methods.\n\n  /**\n   * Check the disabled state and update field accordingly.\n   *\n   * @public\n   */\n  MaterialExtSelectfield.prototype.checkDisabled = function() {\n    if (this.select_.disabled) {\n      this.element_.classList.add(IS_DISABLED);\n    } else {\n      this.element_.classList.remove(IS_DISABLED);\n    }\n  };\n  MaterialExtSelectfield.prototype['checkDisabled'] = MaterialExtSelectfield.prototype.checkDisabled;\n\n\n  /**\n   * Check the focus state and update field accordingly.\n   *\n   * @public\n   */\n  MaterialExtSelectfield.prototype.checkFocus = function() {\n    // Note: element.querySelector(':focus') always return null in JsDom, even if select element has focus\n    /*eslint no-extra-boolean-cast: 0*/\n    if (Boolean(this.element_.querySelector(':focus'))) {\n      this.element_.classList.add(IS_FOCUSED);\n    } else {\n      this.element_.classList.remove(IS_FOCUSED);\n    }\n  };\n\n  MaterialExtSelectfield.prototype['checkFocus'] = MaterialExtSelectfield.prototype.checkFocus;\n\n\n  /**\n   * Check the validity state and update field accordingly.\n   *\n   * @public\n   */\n  MaterialExtSelectfield.prototype.checkValidity = function() {\n\n    /* Don't think it makes any sense to check validity.\n       Tests I've done, so far, indicates that setting an illegal value via JS returns selectedIndex=0\n\n    if (this.select_.validity) {\n      if (this.select_.validity.valid) {\n        this.element_.classList.remove(this.CssClasses_.IS_INVALID);\n      } else {\n        this.element_.classList.add(this.CssClasses_.IS_INVALID);\n      }\n    }\n    */\n  };\n\n  MaterialExtSelectfield.prototype['checkValidity'] = MaterialExtSelectfield.prototype.checkValidity;\n\n  /**\n   * Check the dirty state and update field accordingly.\n   *\n   * @public\n   */\n  MaterialExtSelectfield.prototype.checkDirty = function() {\n    if (this.select_.value && this.select_.value.length > 0) {\n      this.element_.classList.add(IS_DIRTY);\n    } else {\n      this.element_.classList.remove(IS_DIRTY);\n    }\n  };\n\n  MaterialExtSelectfield.prototype['checkDirty'] = MaterialExtSelectfield.prototype.checkDirty;\n\n  /**\n   * Disable select field.\n   *\n   * @public\n   */\n  MaterialExtSelectfield.prototype.disable = function() {\n    this.select_.disabled = true;\n    this.updateClasses_();\n  };\n\n  MaterialExtSelectfield.prototype['disable'] = MaterialExtSelectfield.prototype.disable;\n\n  /**\n   * Enable select field.\n   *\n   * @public\n   */\n  MaterialExtSelectfield.prototype.enable = function() {\n    this.select_.disabled = false;\n    this.updateClasses_();\n  };\n\n  MaterialExtSelectfield.prototype['enable'] = MaterialExtSelectfield.prototype.enable;\n\n  /**\n   * Update select field value.\n   *\n   * @param {string} value The value to which to set the control (optional).\n   * @public\n   */\n  MaterialExtSelectfield.prototype.change = function(value) {\n    this.select_.value = value || '';\n    this.updateClasses_();\n  };\n  MaterialExtSelectfield.prototype['change'] = MaterialExtSelectfield.prototype.change;\n\n  /**\n   * Initialize element.\n   */\n  MaterialExtSelectfield.prototype.init = function() {\n    if (this.element_) {\n      this.label_ = this.element_.querySelector(`.${LABEL}`);\n      this.select_ = this.element_.querySelector(`.${INPUT}`);\n\n      if (this.select_) {\n        // Remove listeners, just in case ...\n        this.select_.removeEventListener('change', this.updateClasses_);\n        this.select_.removeEventListener('focus', this.onFocus_);\n        this.select_.removeEventListener('blur', this.onBlur_);\n        this.select_.removeEventListener('reset', this.onReset_);\n\n        this.select_.addEventListener('change', this.updateClasses_.bind(this));\n        this.select_.addEventListener('focus', this.onFocus_.bind(this));\n        this.select_.addEventListener('blur', this.onBlur_.bind(this));\n        this.select_.addEventListener('reset', this.onReset_.bind(this));\n\n        if(this.label_) {\n          let id;\n          if(!this.select_.hasAttribute('id')) {\n            id = `select-${randomString()}`;\n            this.select_.id = id;\n          }\n          else {\n            id = this.select_.id;\n          }\n\n          if(!this.label_.hasAttribute('for')) {\n            this.label_.setAttribute('for', id);\n          }\n        }\n\n        const invalid = this.element_.classList.contains(IS_INVALID);\n        this.updateClasses_();\n        this.element_.classList.add(IS_UPGRADED);\n\n        if (invalid) {\n          this.element_.classList.add(IS_INVALID);\n        }\n        if (this.select_.hasAttribute('autofocus')) {\n          this.element_.focus();\n          this.checkFocus();\n        }\n      }\n    }\n  };\n\n  /**\n   * Downgrade component\n   * E.g remove listeners and clean up resources\n   *\n   * Nothing to downgrade\n   *\n  MaterialExtSelectfield.prototype.mdlDowngrade_ = function() {\n    'use strict';\n    console.log('***** MaterialExtSelectfield.mdlDowngrade ');\n  };\n  */\n\n  // The component registers itself. It can assume componentHandler is available\n  // in the global scope.\n  /*eslint no-undef: 0*/\n  componentHandler.register({\n    constructor: MaterialExtSelectfield,\n    classAsString: 'MaterialExtSelectfield',\n    cssClass: 'mdlext-js-selectfield',\n    widget: true\n  });\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/selectfield/selectfield.js\n\n\n// WEBPACK FOOTER //\n// ./src/selectfield/selectfield.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/**\n * A sticky header makes site navigation easily accessible anywhere on the page and saves content space at the same.\n * The header should auto-hide, i.e. hiding the header automatically when a user starts scrolling down the page and\n * bringing the header back when a user might need it: they reach the bottom of the page or start scrolling up.\n */\n\nimport fullThrottle from '../utils/full-throttle';\nimport { jsonStringToObject } from '../utils/json-utils';\nimport {\n  IS_UPGRADED\n} from '../utils/constants';\n\n\n(function() {\n  'use strict';\n  const MDL_LAYOUT_CONTENT  = 'mdl-layout__content';\n  const IS_SCROLL_CLASS  = 'mdlext-is-scroll';\n\n\n  /**\n   * @constructor\n   * @param {Element} element The element that will be upgraded.\n   */\n  const MaterialExtStickyHeader = function MaterialExtStickyHeader(element) {\n    // Stores the element.\n    this.header_ = element;\n\n    // Heder listens to scroll events from content\n    this.content_ = null;\n    this.lastScrollTop_ = 0;\n\n    // Default config\n    this.config_ = {\n      visibleAtScrollEnd: false\n    };\n\n    this.mutationObserver_ = null;\n\n    this.drawing_ = false;\n\n    // Initialize instance.\n    this.init();\n  };\n\n  window['MaterialExtStickyHeader'] = MaterialExtStickyHeader;\n\n\n  /**\n   * Update header width\n   * @private\n   */\n  MaterialExtStickyHeader.prototype.recalcWidth_ = function() {\n    this.header_.style.width = `${this.content_.clientWidth}px`;\n  };\n\n  const throttleResize = fullThrottle(self => self.recalcWidth_() );\n\n  /**\n   * Adjust header width when window resizes or oreientation changes\n   * @param event\n   * @private\n   */\n  MaterialExtStickyHeader.prototype.resizeHandler_ = function( /* event */ ) {\n    throttleResize(this);\n  };\n\n\n  /**\n   * Update header position\n   * @private\n   */\n  MaterialExtStickyHeader.prototype.reposition_ = function() {\n\n    const currentContentScrollTop = this.content_.scrollTop;\n    const scrollDiff = this.lastScrollTop_ - currentContentScrollTop;\n\n    if(currentContentScrollTop <= 0) {\n      // Scrolled to the top. Header sticks to the top\n      this.header_.style.top = '0';\n      this.header_.classList.remove(IS_SCROLL_CLASS);\n    }\n    else if(scrollDiff > 0) {\n\n      if(scrollDiff >= this.header_.offsetHeight) {\n\n        // Scrolled up. Header slides in\n        const headerTop = (parseInt( window.getComputedStyle( this.header_ ).getPropertyValue( 'top' ) ) || 0);\n        if(headerTop != 0) {\n          this.header_.style.top = '0';\n          this.header_.classList.add(IS_SCROLL_CLASS);\n        }\n        this.lastScrollTop_ = currentContentScrollTop;\n      }\n      return;\n    }\n    else if(scrollDiff < 0) {\n      // Scrolled down\n      this.header_.classList.add(IS_SCROLL_CLASS);\n      let headerTop = (parseInt( window.getComputedStyle( this.header_ ).getPropertyValue( 'top' ) ) || 0);\n\n      if (this.content_.scrollHeight - this.content_.scrollTop <= this.content_.offsetHeight) {\n        // Bottom of content\n        if(headerTop != 0) {\n          this.header_.style.top = this.config_.visibleAtScrollEnd ? '0' : `-${this.header_.offsetHeight}px`;\n        }\n      }\n      else {\n        headerTop += scrollDiff;\n        const offsetHeight = this.header_.offsetHeight;\n        this.header_.style.top = `${( Math.abs( headerTop ) > offsetHeight ? -offsetHeight : headerTop )}px`;\n      }\n    }\n\n    this.lastScrollTop_ = currentContentScrollTop;\n  };\n\n\n  const throttleScroll = fullThrottle((self) => self.reposition_());\n\n  /**\n   * Scroll header when content scrolls\n   * @param event\n   * @private\n   */\n  MaterialExtStickyHeader.prototype.scrollHandler_ = function( /* event */ ) {\n    throttleScroll(this);\n  };\n\n  /**\n   * Init header position\n   * @private\n   */\n  MaterialExtStickyHeader.prototype.updatePosition_ = function( /* event */ ) {\n    this.recalcWidth_();\n    this.reposition_();\n  };\n\n  /**\n   * Add mutation observer\n   * @private\n   */\n  MaterialExtStickyHeader.prototype.addMutationObserver_ = function() {\n\n    // jsdom does not support MutationObserver - so this is not testable\n    /* istanbul ignore next */\n    this.mutationObserver_ = new MutationObserver( ( /*mutations*/ ) => {\n      // Adjust header width if content changes (e.g. in a SPA)\n      this.updatePosition_();\n    });\n\n    this.mutationObserver_.observe( this.content_, {\n      attributes: false,\n      childList: true,\n      characterData: false,\n      subtree: true\n    });\n  };\n\n    /**\n   * Removes event listeners\n   * @private\n   */\n  MaterialExtStickyHeader.prototype.removeListeners_ = function() {\n\n    window.removeEventListener('resize', this.resizeHandler_);\n    window.removeEventListener('orientationchange', this.resizeHandler_);\n\n    if(this.content_) {\n      this.content_.removeEventListener('scroll', this.scrollHandler_);\n    }\n\n    if(this.mutationObserver_) {\n      this.mutationObserver_.disconnect();\n      this.mutationObserver_ = null;\n    }\n  };\n\n  /**\n   * Initialize component\n   */\n  MaterialExtStickyHeader.prototype.init = function() {\n\n    if (this.header_) {\n\n      this.removeListeners_();\n\n      if(this.header_.hasAttribute('data-config')) {\n        this.config_ = jsonStringToObject(this.header_.getAttribute('data-config'));\n      }\n\n      this.content_ = this.header_.parentNode.querySelector(`.${MDL_LAYOUT_CONTENT}`) || null;\n\n      if(this.content_) {\n        this.content_.style.paddingTop = `${this.header_.offsetHeight}px`;  // Make room for sticky header\n        this.lastScrollTop_ = this.content_.scrollTop;\n\n        this.content_.addEventListener('scroll', this.scrollHandler_.bind(this));\n        window.addEventListener('resize', this.resizeHandler_.bind(this));\n        window.addEventListener('orientationchange', this.resizeHandler_.bind(this));\n\n        this.addMutationObserver_();\n        this.updatePosition_();\n\n        // Set upgraded flag\n        this.header_.classList.add(IS_UPGRADED);\n      }\n    }\n  };\n\n  /*\n   * Downgrade component\n   * E.g remove listeners and clean up resources\n   *\n   * Nothing to clean\n   *\n   MaterialExtStickyHeader.prototype.mdlDowngrade_ = function() {\n     'use strict';\n     console.log('***** MaterialExtStickyHeader.prototype.mdlDowngrade_');\n   };\n   */\n\n\n  // The component registers itself. It can assume componentHandler is available\n  // in the global scope.\n  /* eslint no-undef: 0 */\n  componentHandler.register({\n    constructor: MaterialExtStickyHeader,\n    classAsString: 'MaterialExtStickyHeader',\n    cssClass: 'mdlext-js-sticky-header'\n  });\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/sticky-header/sticky-header.js\n\n\n// WEBPACK FOOTER //\n// ./src/sticky-header/sticky-header.js","import './constants';\nimport './dom-utils';\nimport './string-utils';\nimport './json-utils';\nimport './full-throttle';\nimport './easing';\nimport './interval-function';\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/index.js\n\n\n// WEBPACK FOOTER //\n// ./src/utils/index.js","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/array/from.js\n// module id = 60\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/array/from.js\n// module id = 60\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/is-iterable\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/is-iterable.js\n// module id = 61\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/is-iterable.js\n// module id = 61\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/number/is-nan\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/number/is-nan.js\n// module id = 62\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/number/is-nan.js\n// module id = 62\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/define-property.js\n// module id = 63\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/define-property.js\n// module id = 63\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/object/entries\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/entries.js\n// module id = 64\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/entries.js\n// module id = 64\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/keys.js\n// module id = 65\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/keys.js\n// module id = 65\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/reflect/apply\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/reflect/apply.js\n// module id = 66\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/reflect/apply.js\n// module id = 66\n// module chunks = 0 1","\"use strict\";\n\nexports.__esModule = true;\n\nvar _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n  function sliceIterator(arr, i) {\n    var _arr = [];\n    var _n = true;\n    var _d = false;\n    var _e = undefined;\n\n    try {\n      for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n        _arr.push(_s.value);\n\n        if (i && _arr.length === i) break;\n      }\n    } catch (err) {\n      _d = true;\n      _e = err;\n    } finally {\n      try {\n        if (!_n && _i[\"return\"]) _i[\"return\"]();\n      } finally {\n        if (_d) throw _e;\n      }\n    }\n\n    return _arr;\n  }\n\n  return function (arr, i) {\n    if (Array.isArray(arr)) {\n      return arr;\n    } else if ((0, _isIterable3.default)(Object(arr))) {\n      return sliceIterator(arr, i);\n    } else {\n      throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n    }\n  };\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/slicedToArray.js\n// module id = 67\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/slicedToArray.js\n// module id = 67\n// module chunks = 0 1","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/array/from.js\n// module id = 68\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/array/from.js\n// module id = 68\n// module chunks = 0 1","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/get-iterator.js\n// module id = 69\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/get-iterator.js\n// module id = 69\n// module chunks = 0 1","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/is-iterable.js\n// module id = 70\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/is-iterable.js\n// module id = 70\n// module chunks = 0 1","require('../../modules/es6.number.is-integer');\nmodule.exports = require('../../modules/_core').Number.isInteger;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/number/is-integer.js\n// module id = 71\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/number/is-integer.js\n// module id = 71\n// module chunks = 0 1","require('../../modules/es6.number.is-nan');\nmodule.exports = require('../../modules/_core').Number.isNaN;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/number/is-nan.js\n// module id = 72\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/number/is-nan.js\n// module id = 72\n// module chunks = 0 1","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/assign.js\n// module id = 73\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/assign.js\n// module id = 73\n// module chunks = 0 1","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n  return $Object.defineProperty(it, key, desc);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/define-property.js\n// module id = 74\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/define-property.js\n// module id = 74\n// module chunks = 0 1","require('../../modules/es7.object.entries');\nmodule.exports = require('../../modules/_core').Object.entries;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/entries.js\n// module id = 75\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/entries.js\n// module id = 75\n// module chunks = 0 1","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/keys.js\n// module id = 76\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/keys.js\n// module id = 76\n// module chunks = 0 1","require('../../modules/es6.reflect.apply');\nmodule.exports = require('../../modules/_core').Reflect.apply;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/reflect/apply.js\n// module id = 77\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/reflect/apply.js\n// module id = 77\n// module chunks = 0 1","module.exports = function(){ /* empty */ };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_add-to-unscopables.js\n// module id = 78\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_add-to-unscopables.js\n// module id = 78\n// module chunks = 0 1","// false -> Array#indexOf\n// true  -> Array#includes\nvar toIObject = require('./_to-iobject')\n  , toLength  = require('./_to-length')\n  , toIndex   = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n  return function($this, el, fromIndex){\n    var O      = toIObject($this)\n      , length = toLength(O.length)\n      , index  = toIndex(fromIndex, length)\n      , value;\n    // Array#includes uses SameValueZero equality algorithm\n    if(IS_INCLUDES && el != el)while(length > index){\n      value = O[index++];\n      if(value != value)return true;\n    // Array#toIndex ignores holes, Array#includes - not\n    } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n      if(O[index] === el)return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_array-includes.js\n// module id = 79\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_array-includes.js\n// module id = 79\n// module chunks = 0 1","'use strict';\nvar $defineProperty = require('./_object-dp')\n  , createDesc      = require('./_property-desc');\n\nmodule.exports = function(object, index, value){\n  if(index in object)$defineProperty.f(object, index, createDesc(0, value));\n  else object[index] = value;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_create-property.js\n// module id = 80\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_create-property.js\n// module id = 80\n// module chunks = 0 1","module.exports = require('./_global').document && document.documentElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_html.js\n// module id = 81\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_html.js\n// module id = 81\n// module chunks = 0 1","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n  return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_ie8-dom-define.js\n// module id = 82\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_ie8-dom-define.js\n// module id = 82\n// module chunks = 0 1","// check on default Array iterator\nvar Iterators  = require('./_iterators')\n  , ITERATOR   = require('./_wks')('iterator')\n  , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_is-array-iter.js\n// module id = 83\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_is-array-iter.js\n// module id = 83\n// module chunks = 0 1","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object')\n  , floor    = Math.floor;\nmodule.exports = function isInteger(it){\n  return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_is-integer.js\n// module id = 84\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_is-integer.js\n// module id = 84\n// module chunks = 0 1","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function(iterator, fn, value, entries){\n  try {\n    return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n  // 7.4.6 IteratorClose(iterator, completion)\n  } catch(e){\n    var ret = iterator['return'];\n    if(ret !== undefined)anObject(ret.call(iterator));\n    throw e;\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-call.js\n// module id = 85\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-call.js\n// module id = 85\n// module chunks = 0 1","'use strict';\nvar create         = require('./_object-create')\n  , descriptor     = require('./_property-desc')\n  , setToStringTag = require('./_set-to-string-tag')\n  , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n  Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n  setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-create.js\n// module id = 86\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-create.js\n// module id = 86\n// module chunks = 0 1","var ITERATOR     = require('./_wks')('iterator')\n  , SAFE_CLOSING = false;\n\ntry {\n  var riter = [7][ITERATOR]();\n  riter['return'] = function(){ SAFE_CLOSING = true; };\n  Array.from(riter, function(){ throw 2; });\n} catch(e){ /* empty */ }\n\nmodule.exports = function(exec, skipClosing){\n  if(!skipClosing && !SAFE_CLOSING)return false;\n  var safe = false;\n  try {\n    var arr  = [7]\n      , iter = arr[ITERATOR]();\n    iter.next = function(){ return {done: safe = true}; };\n    arr[ITERATOR] = function(){ return iter; };\n    exec(arr);\n  } catch(e){ /* empty */ }\n  return safe;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-detect.js\n// module id = 87\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-detect.js\n// module id = 87\n// module chunks = 0 1","module.exports = function(done, value){\n  return {value: value, done: !!done};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-step.js\n// module id = 88\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-step.js\n// module id = 88\n// module chunks = 0 1","module.exports = true;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_library.js\n// module id = 89\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_library.js\n// module id = 89\n// module chunks = 0 1","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys  = require('./_object-keys')\n  , gOPS     = require('./_object-gops')\n  , pIE      = require('./_object-pie')\n  , toObject = require('./_to-object')\n  , IObject  = require('./_iobject')\n  , $assign  = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function(){\n  var A = {}\n    , B = {}\n    , S = Symbol()\n    , K = 'abcdefghijklmnopqrst';\n  A[S] = 7;\n  K.split('').forEach(function(k){ B[k] = k; });\n  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n  var T     = toObject(target)\n    , aLen  = arguments.length\n    , index = 1\n    , getSymbols = gOPS.f\n    , isEnum     = pIE.f;\n  while(aLen > index){\n    var S      = IObject(arguments[index++])\n      , keys   = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n      , length = keys.length\n      , j      = 0\n      , key;\n    while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n  } return T;\n} : $assign;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-assign.js\n// module id = 90\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-assign.js\n// module id = 90\n// module chunks = 0 1","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject    = require('./_an-object')\n  , dPs         = require('./_object-dps')\n  , enumBugKeys = require('./_enum-bug-keys')\n  , IE_PROTO    = require('./_shared-key')('IE_PROTO')\n  , Empty       = function(){ /* empty */ }\n  , PROTOTYPE   = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function(){\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = require('./_dom-create')('iframe')\n    , i      = enumBugKeys.length\n    , lt     = '<'\n    , gt     = '>'\n    , iframeDocument;\n  iframe.style.display = 'none';\n  require('./_html').appendChild(iframe);\n  iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n  // createDict = iframe.contentWindow.Object;\n  // html.removeChild(iframe);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n  iframeDocument.close();\n  createDict = iframeDocument.F;\n  while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];\n  return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties){\n  var result;\n  if(O !== null){\n    Empty[PROTOTYPE] = anObject(O);\n    result = new Empty;\n    Empty[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = createDict();\n  return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-create.js\n// module id = 91\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-create.js\n// module id = 91\n// module chunks = 0 1","var dP       = require('./_object-dp')\n  , anObject = require('./_an-object')\n  , getKeys  = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n  anObject(O);\n  var keys   = getKeys(Properties)\n    , length = keys.length\n    , i = 0\n    , P;\n  while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n  return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-dps.js\n// module id = 92\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-dps.js\n// module id = 92\n// module chunks = 0 1","exports.f = Object.getOwnPropertySymbols;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-gops.js\n// module id = 93\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-gops.js\n// module id = 93\n// module chunks = 0 1","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has         = require('./_has')\n  , toObject    = require('./_to-object')\n  , IE_PROTO    = require('./_shared-key')('IE_PROTO')\n  , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n  O = toObject(O);\n  if(has(O, IE_PROTO))return O[IE_PROTO];\n  if(typeof O.constructor == 'function' && O instanceof O.constructor){\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectProto : null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-gpo.js\n// module id = 94\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-gpo.js\n// module id = 94\n// module chunks = 0 1","var has          = require('./_has')\n  , toIObject    = require('./_to-iobject')\n  , arrayIndexOf = require('./_array-includes')(false)\n  , IE_PROTO     = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n  var O      = toIObject(object)\n    , i      = 0\n    , result = []\n    , key;\n  for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while(names.length > i)if(has(O, key = names[i++])){\n    ~arrayIndexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-keys-internal.js\n// module id = 95\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-keys-internal.js\n// module id = 95\n// module chunks = 0 1","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export')\n  , core    = require('./_core')\n  , fails   = require('./_fails');\nmodule.exports = function(KEY, exec){\n  var fn  = (core.Object || {})[KEY] || Object[KEY]\n    , exp = {};\n  exp[KEY] = exec(fn);\n  $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-sap.js\n// module id = 96\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-sap.js\n// module id = 96\n// module chunks = 0 1","var getKeys   = require('./_object-keys')\n  , toIObject = require('./_to-iobject')\n  , isEnum    = require('./_object-pie').f;\nmodule.exports = function(isEntries){\n  return function(it){\n    var O      = toIObject(it)\n      , keys   = getKeys(O)\n      , length = keys.length\n      , i      = 0\n      , result = []\n      , key;\n    while(length > i)if(isEnum.call(O, key = keys[i++])){\n      result.push(isEntries ? [key, O[key]] : O[key]);\n    } return result;\n  };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-to-array.js\n// module id = 97\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-to-array.js\n// module id = 97\n// module chunks = 0 1","module.exports = require('./_hide');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_redefine.js\n// module id = 98\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_redefine.js\n// module id = 98\n// module chunks = 0 1","var toInteger = require('./_to-integer')\n  , defined   = require('./_defined');\n// true  -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n  return function(that, pos){\n    var s = String(defined(that))\n      , i = toInteger(pos)\n      , l = s.length\n      , a, b;\n    if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n    a = s.charCodeAt(i);\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n      ? TO_STRING ? s.charAt(i) : a\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n  };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_string-at.js\n// module id = 99\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_string-at.js\n// module id = 99\n// module chunks = 0 1","var toInteger = require('./_to-integer')\n  , max       = Math.max\n  , min       = Math.min;\nmodule.exports = function(index, length){\n  index = toInteger(index);\n  return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-index.js\n// module id = 100\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-index.js\n// module id = 100\n// module chunks = 0 1","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n  if(!isObject(it))return it;\n  var fn, val;\n  if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n  if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n  if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-primitive.js\n// module id = 101\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-primitive.js\n// module id = 101\n// module chunks = 0 1","var anObject = require('./_an-object')\n  , get      = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function(it){\n  var iterFn = get(it);\n  if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n  return anObject(iterFn.call(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/core.get-iterator.js\n// module id = 102\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/core.get-iterator.js\n// module id = 102\n// module chunks = 0 1","var classof   = require('./_classof')\n  , ITERATOR  = require('./_wks')('iterator')\n  , Iterators = require('./_iterators');\nmodule.exports = require('./_core').isIterable = function(it){\n  var O = Object(it);\n  return O[ITERATOR] !== undefined\n    || '@@iterator' in O\n    || Iterators.hasOwnProperty(classof(O));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/core.is-iterable.js\n// module id = 103\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/core.is-iterable.js\n// module id = 103\n// module chunks = 0 1","'use strict';\nvar ctx            = require('./_ctx')\n  , $export        = require('./_export')\n  , toObject       = require('./_to-object')\n  , call           = require('./_iter-call')\n  , isArrayIter    = require('./_is-array-iter')\n  , toLength       = require('./_to-length')\n  , createProperty = require('./_create-property')\n  , getIterFn      = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function(iter){ Array.from(iter); }), 'Array', {\n  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n  from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){\n    var O       = toObject(arrayLike)\n      , C       = typeof this == 'function' ? this : Array\n      , aLen    = arguments.length\n      , mapfn   = aLen > 1 ? arguments[1] : undefined\n      , mapping = mapfn !== undefined\n      , index   = 0\n      , iterFn  = getIterFn(O)\n      , length, result, step, iterator;\n    if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n    // if object isn't iterable or it's array with default iterator - use simple case\n    if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){\n      for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){\n        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n      }\n    } else {\n      length = toLength(O.length);\n      for(result = new C(length); length > index; index++){\n        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n      }\n    }\n    result.length = index;\n    return result;\n  }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.array.from.js\n// module id = 104\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.array.from.js\n// module id = 104\n// module chunks = 0 1","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n  , step             = require('./_iter-step')\n  , Iterators        = require('./_iterators')\n  , toIObject        = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n  this._t = toIObject(iterated); // target\n  this._i = 0;                   // next index\n  this._k = kind;                // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n  var O     = this._t\n    , kind  = this._k\n    , index = this._i++;\n  if(!O || index >= O.length){\n    this._t = undefined;\n    return step(1);\n  }\n  if(kind == 'keys'  )return step(0, index);\n  if(kind == 'values')return step(0, O[index]);\n  return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.array.iterator.js\n// module id = 105\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.array.iterator.js\n// module id = 105\n// module chunks = 0 1","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {isInteger: require('./_is-integer')});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.number.is-integer.js\n// module id = 106\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.number.is-integer.js\n// module id = 106\n// module chunks = 0 1","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n  isNaN: function isNaN(number){\n    return number != number;\n  }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.number.is-nan.js\n// module id = 107\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.number.is-nan.js\n// module id = 107\n// module chunks = 0 1","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', {assign: require('./_object-assign')});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.object.assign.js\n// module id = 108\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.object.assign.js\n// module id = 108\n// module chunks = 0 1","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.object.define-property.js\n// module id = 109\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.object.define-property.js\n// module id = 109\n// module chunks = 0 1","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n  , $keys    = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n  return function keys(it){\n    return $keys(toObject(it));\n  };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.object.keys.js\n// module id = 110\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.object.keys.js\n// module id = 110\n// module chunks = 0 1","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export   = require('./_export')\n  , aFunction = require('./_a-function')\n  , anObject  = require('./_an-object')\n  , rApply    = (require('./_global').Reflect || {}).apply\n  , fApply    = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function(){\n  rApply(function(){});\n}), 'Reflect', {\n  apply: function apply(target, thisArgument, argumentsList){\n    var T = aFunction(target)\n      , L = anObject(argumentsList);\n    return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n  }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.reflect.apply.js\n// module id = 111\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.reflect.apply.js\n// module id = 111\n// module chunks = 0 1","// https://github.com/tc39/proposal-object-values-entries\nvar $export  = require('./_export')\n  , $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n  entries: function entries(it){\n    return $entries(it);\n  }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es7.object.entries.js\n// module id = 112\n// module chunks = 0 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es7.object.entries.js\n// module id = 112\n// module chunks = 0 1","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/mdl-ext-build.scss\n// module id = 113\n// module chunks = 1\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/mdl-ext-build.scss\n// module id = 113\n// module chunks = 1"],"sourceRoot":""}
\ No newline at end of file
diff --git a/node_modules/mdl-ext/lib/mdl-ext.min.css b/node_modules/mdl-ext/lib/mdl-ext.min.css
new file mode 100644
index 0000000..742083f
--- /dev/null
+++ b/node_modules/mdl-ext/lib/mdl-ext.min.css
@@ -0,0 +1,2 @@
+.mdlext-aria-expanded-plus-minus{font-family:inherit;font-weight:inherit;font-style:inherit;font-size:24px;display:inline-block;width:1em;height:1em;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;vertical-align:middle;-webkit-font-smoothing:antialiased;-webkit-font-feature-settings:"liga";text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.mdlext-aria-expanded-plus-minus:after{content:"+";margin-left:0}[aria-expanded=true]>.mdlext-aria-expanded-plus-minus:after{content:"-";margin-left:0}.mdlext-aria-expanded-more-less{font-family:Material Icons;font-weight:inherit;font-style:inherit;font-size:24px;display:inline-block;width:1em;height:1em;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;vertical-align:middle;-webkit-font-smoothing:antialiased;-webkit-font-feature-settings:"liga";text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.mdlext-aria-expanded-more-less:after{content:"expand_more";margin-left:0}[aria-expanded=true]>.mdlext-aria-expanded-more-less:after{content:"expand_less";margin-left:0}.mdlext-layout__sticky-header{position:absolute;overflow:visible;background:transparent linear-gradient(180deg,#3f51b5 0,#3f51b5);transition:.1s ease-in-out}.mdlext-layout__sticky-header.mdlext-is-scroll{background:transparent linear-gradient(180deg,rgba(63,81,181,.98) 100%,rgba(63,81,181,.95) 0)}:not(.is-small-screen) .mdlext-layout__sticky-header .mdl-layout__drawer-button{visibility:hidden}:not(.is-small-screen) .mdlext-layout__sticky-header .mdl-layout__header-row{padding-left:16px}.is-small-screen.has-drawer .mdlext-layout__sticky-header,:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header{display:-ms-flexbox;display:flex}.is-small-screen.has-drawer .mdlext-layout__sticky-header .mdl-layout__drawer-button,:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header .mdl-layout__drawer-button{visibility:visible}.is-small-screen.has-drawer .mdlext-layout__sticky-header .mdl-layout__header-row,:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header .mdl-layout__header-row{padding-left:64px}dialog.mdlext-dialog{position:absolute;border:0;opacity:0;padding:0;background-color:transparent}dialog.mdlext-dialog[open]{animation:mdlext-open-dialog .5s .2s forwards}dialog.mdlext-dialog[open]::-webkit-backdrop{animation:mdlext-darken-backdrop .2s forwards}dialog.mdlext-dialog[open]::backdrop{animation:mdlext-darken-backdrop .2s forwards}dialog.mdlext-dialog[open]+.backdrop{animation:mdlext-darken-backdrop .2s forwards}@keyframes mdlext-darken-backdrop{to{background:rgba(0,0,0,.86)}}@keyframes mdlext-open-dialog{to{opacity:1}}.mdlext-grid{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin:0 auto;-ms-flex-align:stretch;align-items:stretch}.mdlext-grid.mdlext-grid--no-spacing{padding:0}.mdlext-cell{box-sizing:border-box}.mdlext-cell--top{-ms-flex-item-align:start;align-self:flex-start}.mdlext-cell--middle{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.mdlext-cell--bottom{-ms-flex-item-align:end;align-self:flex-end}.mdlext-cell--stretch{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell{margin:0}.mdlext-cell--order-1{-ms-flex-order:1;order:1}.mdlext-cell--order-2{-ms-flex-order:2;order:2}.mdlext-cell--order-3{-ms-flex-order:3;order:3}.mdlext-cell--order-4{-ms-flex-order:4;order:4}.mdlext-cell--order-5{-ms-flex-order:5;order:5}.mdlext-cell--order-6{-ms-flex-order:6;order:6}.mdlext-cell--order-7{-ms-flex-order:7;order:7}.mdlext-cell--order-8{-ms-flex-order:8;order:8}.mdlext-cell--order-9{-ms-flex-order:9;order:9}.mdlext-cell--order-10{-ms-flex-order:10;order:10}.mdlext-cell--order-11{-ms-flex-order:11;order:11}.mdlext-cell--order-12{-ms-flex-order:12;order:12}@media (max-width:479px){.mdlext-grid{padding:8px}.mdlext-cell{margin:8px;width:calc(100% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell{width:100%}.mdlext-cell--hide-phone{display:none!important}.mdlext-cell--order-1-phone.mdlext-cell--order-1-phone{-ms-flex-order:1;order:1}.mdlext-cell--order-2-phone.mdlext-cell--order-2-phone{-ms-flex-order:2;order:2}.mdlext-cell--order-3-phone.mdlext-cell--order-3-phone{-ms-flex-order:3;order:3}.mdlext-cell--order-4-phone.mdlext-cell--order-4-phone{-ms-flex-order:4;order:4}.mdlext-cell--order-5-phone.mdlext-cell--order-5-phone{-ms-flex-order:5;order:5}.mdlext-cell--order-6-phone.mdlext-cell--order-6-phone{-ms-flex-order:6;order:6}.mdlext-cell--order-7-phone.mdlext-cell--order-7-phone{-ms-flex-order:7;order:7}.mdlext-cell--order-8-phone.mdlext-cell--order-8-phone{-ms-flex-order:8;order:8}.mdlext-cell--order-9-phone.mdlext-cell--order-9-phone{-ms-flex-order:9;order:9}.mdlext-cell--order-10-phone.mdlext-cell--order-10-phone{-ms-flex-order:10;order:10}.mdlext-cell--order-11-phone.mdlext-cell--order-11-phone{-ms-flex-order:11;order:11}.mdlext-cell--order-12-phone.mdlext-cell--order-12-phone{-ms-flex-order:12;order:12}.mdlext-cell--1-col,.mdlext-cell--1-col-phone.mdlext-cell--1-col-phone{width:calc(25% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--1-col,.mdlext-grid--no-spacing>.mdlext-cell--1-col-phone.mdlext-cell--1-col-phone{width:25%}.mdlext-cell--2-col,.mdlext-cell--2-col-phone.mdlext-cell--2-col-phone{width:calc(50% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--2-col,.mdlext-grid--no-spacing>.mdlext-cell--2-col-phone.mdlext-cell--2-col-phone{width:50%}.mdlext-cell--3-col,.mdlext-cell--3-col-phone.mdlext-cell--3-col-phone{width:calc(75% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--3-col,.mdlext-grid--no-spacing>.mdlext-cell--3-col-phone.mdlext-cell--3-col-phone{width:75%}.mdlext-cell--4-col,.mdlext-cell--4-col-phone.mdlext-cell--4-col-phone{width:calc(100% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--4-col,.mdlext-grid--no-spacing>.mdlext-cell--4-col-phone.mdlext-cell--4-col-phone{width:100%}.mdlext-cell--5-col,.mdlext-cell--5-col-phone.mdlext-cell--5-col-phone{width:calc(100% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--5-col,.mdlext-grid--no-spacing>.mdlext-cell--5-col-phone.mdlext-cell--5-col-phone{width:100%}.mdlext-cell--6-col,.mdlext-cell--6-col-phone.mdlext-cell--6-col-phone{width:calc(100% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--6-col,.mdlext-grid--no-spacing>.mdlext-cell--6-col-phone.mdlext-cell--6-col-phone{width:100%}.mdlext-cell--7-col,.mdlext-cell--7-col-phone.mdlext-cell--7-col-phone{width:calc(100% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--7-col,.mdlext-grid--no-spacing>.mdlext-cell--7-col-phone.mdlext-cell--7-col-phone{width:100%}.mdlext-cell--8-col,.mdlext-cell--8-col-phone.mdlext-cell--8-col-phone{width:calc(100% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--8-col,.mdlext-grid--no-spacing>.mdlext-cell--8-col-phone.mdlext-cell--8-col-phone{width:100%}.mdlext-cell--9-col,.mdlext-cell--9-col-phone.mdlext-cell--9-col-phone{width:calc(100% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--9-col,.mdlext-grid--no-spacing>.mdlext-cell--9-col-phone.mdlext-cell--9-col-phone{width:100%}.mdlext-cell--10-col,.mdlext-cell--10-col-phone.mdlext-cell--10-col-phone{width:calc(100% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--10-col,.mdlext-grid--no-spacing>.mdlext-cell--10-col-phone.mdlext-cell--10-col-phone{width:100%}.mdlext-cell--11-col,.mdlext-cell--11-col-phone.mdlext-cell--11-col-phone{width:calc(100% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--11-col,.mdlext-grid--no-spacing>.mdlext-cell--11-col-phone.mdlext-cell--11-col-phone{width:100%}.mdlext-cell--12-col,.mdlext-cell--12-col-phone.mdlext-cell--12-col-phone{width:calc(100% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--12-col,.mdlext-grid--no-spacing>.mdlext-cell--12-col-phone.mdlext-cell--12-col-phone{width:100%}.mdlext-cell--1-offset,.mdlext-cell--1-offset-phone.mdlext-cell--1-offset-phone{margin-left:calc(25% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--1-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--1-offset-phone.mdlext-cell--1-offset-phone{margin-left:25%}.mdlext-cell--2-offset,.mdlext-cell--2-offset-phone.mdlext-cell--2-offset-phone{margin-left:calc(50% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--2-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--2-offset-phone.mdlext-cell--2-offset-phone{margin-left:50%}.mdlext-cell--3-offset,.mdlext-cell--3-offset-phone.mdlext-cell--3-offset-phone{margin-left:calc(75% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--3-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--3-offset-phone.mdlext-cell--3-offset-phone{margin-left:75%}}@media (min-width:480px) and (max-width:839px){.mdlext-grid{padding:8px}.mdlext-cell{margin:8px;width:calc(50% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell{width:50%}.mdlext-cell--hide-tablet{display:none!important}.mdlext-cell--order-1-tablet.mdlext-cell--order-1-tablet{-ms-flex-order:1;order:1}.mdlext-cell--order-2-tablet.mdlext-cell--order-2-tablet{-ms-flex-order:2;order:2}.mdlext-cell--order-3-tablet.mdlext-cell--order-3-tablet{-ms-flex-order:3;order:3}.mdlext-cell--order-4-tablet.mdlext-cell--order-4-tablet{-ms-flex-order:4;order:4}.mdlext-cell--order-5-tablet.mdlext-cell--order-5-tablet{-ms-flex-order:5;order:5}.mdlext-cell--order-6-tablet.mdlext-cell--order-6-tablet{-ms-flex-order:6;order:6}.mdlext-cell--order-7-tablet.mdlext-cell--order-7-tablet{-ms-flex-order:7;order:7}.mdlext-cell--order-8-tablet.mdlext-cell--order-8-tablet{-ms-flex-order:8;order:8}.mdlext-cell--order-9-tablet.mdlext-cell--order-9-tablet{-ms-flex-order:9;order:9}.mdlext-cell--order-10-tablet.mdlext-cell--order-10-tablet{-ms-flex-order:10;order:10}.mdlext-cell--order-11-tablet.mdlext-cell--order-11-tablet{-ms-flex-order:11;order:11}.mdlext-cell--order-12-tablet.mdlext-cell--order-12-tablet{-ms-flex-order:12;order:12}.mdlext-cell--1-col,.mdlext-cell--1-col-tablet.mdlext-cell--1-col-tablet{width:calc(12.5% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--1-col,.mdlext-grid--no-spacing>.mdlext-cell--1-col-tablet.mdlext-cell--1-col-tablet{width:12.5%}.mdlext-cell--2-col,.mdlext-cell--2-col-tablet.mdlext-cell--2-col-tablet{width:calc(25% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--2-col,.mdlext-grid--no-spacing>.mdlext-cell--2-col-tablet.mdlext-cell--2-col-tablet{width:25%}.mdlext-cell--3-col,.mdlext-cell--3-col-tablet.mdlext-cell--3-col-tablet{width:calc(37.5% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--3-col,.mdlext-grid--no-spacing>.mdlext-cell--3-col-tablet.mdlext-cell--3-col-tablet{width:37.5%}.mdlext-cell--4-col,.mdlext-cell--4-col-tablet.mdlext-cell--4-col-tablet{width:calc(50% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--4-col,.mdlext-grid--no-spacing>.mdlext-cell--4-col-tablet.mdlext-cell--4-col-tablet{width:50%}.mdlext-cell--5-col,.mdlext-cell--5-col-tablet.mdlext-cell--5-col-tablet{width:calc(62.5% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--5-col,.mdlext-grid--no-spacing>.mdlext-cell--5-col-tablet.mdlext-cell--5-col-tablet{width:62.5%}.mdlext-cell--6-col,.mdlext-cell--6-col-tablet.mdlext-cell--6-col-tablet{width:calc(75% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--6-col,.mdlext-grid--no-spacing>.mdlext-cell--6-col-tablet.mdlext-cell--6-col-tablet{width:75%}.mdlext-cell--7-col,.mdlext-cell--7-col-tablet.mdlext-cell--7-col-tablet{width:calc(87.5% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--7-col,.mdlext-grid--no-spacing>.mdlext-cell--7-col-tablet.mdlext-cell--7-col-tablet{width:87.5%}.mdlext-cell--8-col,.mdlext-cell--8-col-tablet.mdlext-cell--8-col-tablet{width:calc(100% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--8-col,.mdlext-grid--no-spacing>.mdlext-cell--8-col-tablet.mdlext-cell--8-col-tablet{width:100%}.mdlext-cell--9-col,.mdlext-cell--9-col-tablet.mdlext-cell--9-col-tablet{width:calc(100% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--9-col,.mdlext-grid--no-spacing>.mdlext-cell--9-col-tablet.mdlext-cell--9-col-tablet{width:100%}.mdlext-cell--10-col,.mdlext-cell--10-col-tablet.mdlext-cell--10-col-tablet{width:calc(100% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--10-col,.mdlext-grid--no-spacing>.mdlext-cell--10-col-tablet.mdlext-cell--10-col-tablet{width:100%}.mdlext-cell--11-col,.mdlext-cell--11-col-tablet.mdlext-cell--11-col-tablet{width:calc(100% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--11-col,.mdlext-grid--no-spacing>.mdlext-cell--11-col-tablet.mdlext-cell--11-col-tablet{width:100%}.mdlext-cell--12-col,.mdlext-cell--12-col-tablet.mdlext-cell--12-col-tablet{width:calc(100% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--12-col,.mdlext-grid--no-spacing>.mdlext-cell--12-col-tablet.mdlext-cell--12-col-tablet{width:100%}.mdlext-cell--1-offset,.mdlext-cell--1-offset-tablet.mdlext-cell--1-offset-tablet{margin-left:calc(12.5% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--1-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--1-offset-tablet.mdlext-cell--1-offset-tablet{margin-left:12.5%}.mdlext-cell--2-offset,.mdlext-cell--2-offset-tablet.mdlext-cell--2-offset-tablet{margin-left:calc(25% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--2-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--2-offset-tablet.mdlext-cell--2-offset-tablet{margin-left:25%}.mdlext-cell--3-offset,.mdlext-cell--3-offset-tablet.mdlext-cell--3-offset-tablet{margin-left:calc(37.5% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--3-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--3-offset-tablet.mdlext-cell--3-offset-tablet{margin-left:37.5%}.mdlext-cell--4-offset,.mdlext-cell--4-offset-tablet.mdlext-cell--4-offset-tablet{margin-left:calc(50% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--4-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--4-offset-tablet.mdlext-cell--4-offset-tablet{margin-left:50%}.mdlext-cell--5-offset,.mdlext-cell--5-offset-tablet.mdlext-cell--5-offset-tablet{margin-left:calc(62.5% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--5-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--5-offset-tablet.mdlext-cell--5-offset-tablet{margin-left:62.5%}.mdlext-cell--6-offset,.mdlext-cell--6-offset-tablet.mdlext-cell--6-offset-tablet{margin-left:calc(75% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--6-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--6-offset-tablet.mdlext-cell--6-offset-tablet{margin-left:75%}.mdlext-cell--7-offset,.mdlext-cell--7-offset-tablet.mdlext-cell--7-offset-tablet{margin-left:calc(87.5% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--7-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--7-offset-tablet.mdlext-cell--7-offset-tablet{margin-left:87.5%}}@media (min-width:840px){.mdlext-grid{padding:8px}.mdlext-cell{margin:8px;width:calc(33.33333% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell{width:33.33333%}.mdlext-cell--hide-desktop{display:none!important}.mdlext-cell--order-1-desktop.mdlext-cell--order-1-desktop{-ms-flex-order:1;order:1}.mdlext-cell--order-2-desktop.mdlext-cell--order-2-desktop{-ms-flex-order:2;order:2}.mdlext-cell--order-3-desktop.mdlext-cell--order-3-desktop{-ms-flex-order:3;order:3}.mdlext-cell--order-4-desktop.mdlext-cell--order-4-desktop{-ms-flex-order:4;order:4}.mdlext-cell--order-5-desktop.mdlext-cell--order-5-desktop{-ms-flex-order:5;order:5}.mdlext-cell--order-6-desktop.mdlext-cell--order-6-desktop{-ms-flex-order:6;order:6}.mdlext-cell--order-7-desktop.mdlext-cell--order-7-desktop{-ms-flex-order:7;order:7}.mdlext-cell--order-8-desktop.mdlext-cell--order-8-desktop{-ms-flex-order:8;order:8}.mdlext-cell--order-9-desktop.mdlext-cell--order-9-desktop{-ms-flex-order:9;order:9}.mdlext-cell--order-10-desktop.mdlext-cell--order-10-desktop{-ms-flex-order:10;order:10}.mdlext-cell--order-11-desktop.mdlext-cell--order-11-desktop{-ms-flex-order:11;order:11}.mdlext-cell--order-12-desktop.mdlext-cell--order-12-desktop{-ms-flex-order:12;order:12}.mdlext-cell--1-col,.mdlext-cell--1-col-desktop.mdlext-cell--1-col-desktop{width:calc(8.33333% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--1-col,.mdlext-grid--no-spacing>.mdlext-cell--1-col-desktop.mdlext-cell--1-col-desktop{width:8.33333%}.mdlext-cell--2-col,.mdlext-cell--2-col-desktop.mdlext-cell--2-col-desktop{width:calc(16.66667% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--2-col,.mdlext-grid--no-spacing>.mdlext-cell--2-col-desktop.mdlext-cell--2-col-desktop{width:16.66667%}.mdlext-cell--3-col,.mdlext-cell--3-col-desktop.mdlext-cell--3-col-desktop{width:calc(25% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--3-col,.mdlext-grid--no-spacing>.mdlext-cell--3-col-desktop.mdlext-cell--3-col-desktop{width:25%}.mdlext-cell--4-col,.mdlext-cell--4-col-desktop.mdlext-cell--4-col-desktop{width:calc(33.33333% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--4-col,.mdlext-grid--no-spacing>.mdlext-cell--4-col-desktop.mdlext-cell--4-col-desktop{width:33.33333%}.mdlext-cell--5-col,.mdlext-cell--5-col-desktop.mdlext-cell--5-col-desktop{width:calc(41.66667% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--5-col,.mdlext-grid--no-spacing>.mdlext-cell--5-col-desktop.mdlext-cell--5-col-desktop{width:41.66667%}.mdlext-cell--6-col,.mdlext-cell--6-col-desktop.mdlext-cell--6-col-desktop{width:calc(50% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--6-col,.mdlext-grid--no-spacing>.mdlext-cell--6-col-desktop.mdlext-cell--6-col-desktop{width:50%}.mdlext-cell--7-col,.mdlext-cell--7-col-desktop.mdlext-cell--7-col-desktop{width:calc(58.33333% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--7-col,.mdlext-grid--no-spacing>.mdlext-cell--7-col-desktop.mdlext-cell--7-col-desktop{width:58.33333%}.mdlext-cell--8-col,.mdlext-cell--8-col-desktop.mdlext-cell--8-col-desktop{width:calc(66.66667% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--8-col,.mdlext-grid--no-spacing>.mdlext-cell--8-col-desktop.mdlext-cell--8-col-desktop{width:66.66667%}.mdlext-cell--9-col,.mdlext-cell--9-col-desktop.mdlext-cell--9-col-desktop{width:calc(75% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--9-col,.mdlext-grid--no-spacing>.mdlext-cell--9-col-desktop.mdlext-cell--9-col-desktop{width:75%}.mdlext-cell--10-col,.mdlext-cell--10-col-desktop.mdlext-cell--10-col-desktop{width:calc(83.33333% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--10-col,.mdlext-grid--no-spacing>.mdlext-cell--10-col-desktop.mdlext-cell--10-col-desktop{width:83.33333%}.mdlext-cell--11-col,.mdlext-cell--11-col-desktop.mdlext-cell--11-col-desktop{width:calc(91.66667% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--11-col,.mdlext-grid--no-spacing>.mdlext-cell--11-col-desktop.mdlext-cell--11-col-desktop{width:91.66667%}.mdlext-cell--12-col,.mdlext-cell--12-col-desktop.mdlext-cell--12-col-desktop{width:calc(100% - 16px)}.mdlext-grid--no-spacing>.mdlext-cell--12-col,.mdlext-grid--no-spacing>.mdlext-cell--12-col-desktop.mdlext-cell--12-col-desktop{width:100%}.mdlext-cell--1-offset,.mdlext-cell--1-offset-desktop.mdlext-cell--1-offset-desktop{margin-left:calc(8.33333% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--1-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--1-offset-desktop.mdlext-cell--1-offset-desktop{margin-left:8.33333%}.mdlext-cell--2-offset,.mdlext-cell--2-offset-desktop.mdlext-cell--2-offset-desktop{margin-left:calc(16.66667% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--2-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--2-offset-desktop.mdlext-cell--2-offset-desktop{margin-left:16.66667%}.mdlext-cell--3-offset,.mdlext-cell--3-offset-desktop.mdlext-cell--3-offset-desktop{margin-left:calc(25% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--3-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--3-offset-desktop.mdlext-cell--3-offset-desktop{margin-left:25%}.mdlext-cell--4-offset,.mdlext-cell--4-offset-desktop.mdlext-cell--4-offset-desktop{margin-left:calc(33.33333% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--4-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--4-offset-desktop.mdlext-cell--4-offset-desktop{margin-left:33.33333%}.mdlext-cell--5-offset,.mdlext-cell--5-offset-desktop.mdlext-cell--5-offset-desktop{margin-left:calc(41.66667% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--5-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--5-offset-desktop.mdlext-cell--5-offset-desktop{margin-left:41.66667%}.mdlext-cell--6-offset,.mdlext-cell--6-offset-desktop.mdlext-cell--6-offset-desktop{margin-left:calc(50% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--6-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--6-offset-desktop.mdlext-cell--6-offset-desktop{margin-left:50%}.mdlext-cell--7-offset,.mdlext-cell--7-offset-desktop.mdlext-cell--7-offset-desktop{margin-left:calc(58.33333% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--7-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--7-offset-desktop.mdlext-cell--7-offset-desktop{margin-left:58.33333%}.mdlext-cell--8-offset,.mdlext-cell--8-offset-desktop.mdlext-cell--8-offset-desktop{margin-left:calc(66.66667% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--8-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--8-offset-desktop.mdlext-cell--8-offset-desktop{margin-left:66.66667%}.mdlext-cell--9-offset,.mdlext-cell--9-offset-desktop.mdlext-cell--9-offset-desktop{margin-left:calc(75% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--9-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--9-offset-desktop.mdlext-cell--9-offset-desktop{margin-left:75%}.mdlext-cell--10-offset,.mdlext-cell--10-offset-desktop.mdlext-cell--10-offset-desktop{margin-left:calc(83.33333% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--10-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--10-offset-desktop.mdlext-cell--10-offset-desktop{margin-left:83.33333%}.mdlext-cell--11-offset,.mdlext-cell--11-offset-desktop.mdlext-cell--11-offset-desktop{margin-left:calc(91.66667% + 8px)}.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--11-offset,.mdlext-grid.mdlext-grid--no-spacing>.mdlext-cell--11-offset-desktop.mdlext-cell--11-offset-desktop{margin-left:91.66667%}}ul.mdlext-lightboard{list-style:none}.mdlext-lightboard{margin:0 auto;padding:0;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:stretch;align-items:stretch}.mdlext-lightboard,.mdlext-lightboard *,.mdlext-lightboard :after,.mdlext-lightboard :before,.mdlext-lightboard input[type=search]{box-sizing:border-box}.mdlext-lightboard .mdlext-lightboard__slide{background-color:#f8f8f8;border:1px solid #d8d8d8;border-radius:5px;box-shadow:2px 2px 6px -1px hsla(300,5%,85%,.5);position:relative;display:block;max-width:250px}.mdlext-lightboard .mdlext-lightboard__slide:before{content:"";display:block;padding-top:100%}.mdlext-lightboard .mdlext-lightboard__slide:active,.mdlext-lightboard .mdlext-lightboard__slide:focus,.mdlext-lightboard .mdlext-lightboard__slide:hover{border-color:#b8b8b8;background-color:#e8e8e8;box-shadow:2px 2px 12px -1px #dbd7db}.mdlext-lightboard .mdlext-lightboard__slide:active figcaption,.mdlext-lightboard .mdlext-lightboard__slide:focus figcaption,.mdlext-lightboard .mdlext-lightboard__slide:hover figcaption{color:#000!important;background-color:hsla(0,0%,100%,.2)}.mdlext-lightboard .mdlext-lightboard__slide:focus{outline-offset:-2px;outline-color:inherit}.mdlext-lightboard .mdlext-lightboard__slide[aria-selected=true]{background-color:#e8e8e8}.mdlext-lightboard .mdlext-lightboard__slide[aria-selected=true] figcaption{color:#000!important;background-color:hsla(0,0%,100%,.2)}.mdlext-lightboard .mdlext-lightboard__slide__frame,.mdlext-lightboard .mdlext-lightboard__slide__ripple-container{text-decoration:none;display:block;overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.mdlext-lightboard .mdlext-lightboard__slide__frame:focus,.mdlext-lightboard .mdlext-lightboard__slide__ripple-container:focus{outline-offset:-2px;outline-color:inherit}.mdlext-lightboard .mdlext-lightboard__slide__frame .mdl-ripple,.mdlext-lightboard .mdlext-lightboard__slide__ripple-container .mdl-ripple{background:#3f51b5}.mdlext-lightboard .mdlext-lightboard__slide__frame figure,.mdlext-lightboard .mdlext-lightboard__slide__ripple-container figure{display:block;position:absolute;top:0;left:0;right:0;bottom:0}.mdlext-lightboard .mdlext-lightboard__slide__frame figure img,.mdlext-lightboard .mdlext-lightboard__slide__ripple-container figure img{position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;max-width:100%;max-height:100%;border-width:0;border-radius:3px}.mdlext-lightboard .mdlext-lightboard__slide__frame figure figcaption,.mdlext-lightboard .mdlext-lightboard__slide__ripple-container figure figcaption{font-family:Roboto,Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1;letter-spacing:0;color:#bdbdbd;position:absolute;bottom:-2px;white-space:nowrap;overflow:hidden;max-width:100%;width:100%;text-align:center;text-overflow:ellipsis;padding:4px 0}.mdlext-lightboard .mdlext-lightboard__slide__frame:hover figcaption,.mdlext-lightboard .mdlext-lightboard__slide__ripple-container:hover figcaption{color:#000!important;background-color:hsla(0,0%,100%,.2)}.mdlext-lightboard{padding:-1px}.mdlext-lightboard .mdlext-lightboard__slide{margin:1px;width:calc(1 / 2 * 100% - 2px)}.mdlext-lightboard .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure{margin:8px}.mdlext-lightboard.mdlext-lightboard--no-spacing{padding:0}.mdlext-lightboard.mdlext-lightboard--no-spacing .mdlext-lightboard__slide{margin:0;width:50%}@media (min-width:480px) and (max-width:659px){.mdlext-lightboard{padding:-2px}.mdlext-lightboard .mdlext-lightboard__slide{margin:2px;width:calc(1 / 4 * 100% - 4px)}.mdlext-lightboard .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure{margin:8px}.mdlext-lightboard.mdlext-lightboard--no-spacing{padding:0}.mdlext-lightboard.mdlext-lightboard--no-spacing .mdlext-lightboard__slide{margin:0;width:25%}}@media (min-width:660px) and (max-width:839px){.mdlext-lightboard{padding:-2px}.mdlext-lightboard .mdlext-lightboard__slide{margin:2px;width:calc(1 / 5 * 100% - 4px)}.mdlext-lightboard .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure{margin:8px}.mdlext-lightboard.mdlext-lightboard--no-spacing{padding:0}.mdlext-lightboard.mdlext-lightboard--no-spacing .mdlext-lightboard__slide{margin:0;width:20%}}@media (min-width:840px) and (max-width:1199px){.mdlext-lightboard{padding:-4px}.mdlext-lightboard .mdlext-lightboard__slide{margin:4px;width:calc(1 / 6 * 100% - 8px)}.mdlext-lightboard .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure{margin:12px}.mdlext-lightboard.mdlext-lightboard--no-spacing{padding:0}.mdlext-lightboard.mdlext-lightboard--no-spacing .mdlext-lightboard__slide{margin:0;width:16.66667%}}@media (min-width:1200px){.mdlext-lightboard{padding:-4px}.mdlext-lightboard .mdlext-lightboard__slide{margin:4px;width:calc(1 / 7 * 100% - 8px)}.mdlext-lightboard .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure{margin:12px}.mdlext-lightboard.mdlext-lightboard--no-spacing{padding:0}.mdlext-lightboard.mdlext-lightboard--no-spacing .mdlext-lightboard__slide{margin:0;width:14.28571%}}.mdlext-lightbox{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;position:relative;width:auto;max-width:100%;margin:0 auto;border:0;border-radius:0;background-color:#fff;outline:0;display:block}.mdlext-lightbox,.mdlext-lightbox *,.mdlext-lightbox :after,.mdlext-lightbox :before,.mdlext-lightbox input[type=search]{box-sizing:border-box}.mdlext-lightbox .mdlext-lightbox__slider{position:absolute;top:0;left:0;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.mdlext-lightbox .mdlext-lightbox__slider .mdlext-lightbox__slider__slide{-ms-flex-negative:0;flex-shrink:0;display:block;text-align:left;color:#7f7f7f;background-size:cover;background-position:50%;background-repeat:no-repeat}.mdlext-lightbox figure{margin:0;padding:0;position:relative}.mdlext-lightbox figure img{width:100%;max-width:100%;height:auto;border:0;outline:0}.mdlext-lightbox figure figcaption{font-family:Roboto,Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1;letter-spacing:0;display:block;position:absolute;bottom:0;left:0;right:0;max-width:100%;height:auto;max-height:50%;overflow:auto;padding:8px;background-color:hsla(0,0%,100%,.76);transform-origin:bottom;transform:scaleY(0);transition:.2s ease-in-out}.mdlext-lightbox figure figcaption.mdlext-lightbox__show-figcaption{transform:scaleY(1)}.mdlext-lightbox figure figcaption tbody th{text-align:left}.mdlext-lightbox figure figcaption tbody td,.mdlext-lightbox figure figcaption tbody th{vertical-align:text-top}.mdlext-lightbox .mdl-card__menu{color:#fff;z-index:1}.mdlext-lightbox footer{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;background-color:hsla(0,0%,100%,.86)}.mdlext-lightbox footer .mdl-card__supporting-text{-ms-flex:1;flex:1;overflow:hidden;padding:0;height:18px;width:100%}.mdlext-lightbox footer nav{display:-ms-flexbox;display:flex}.mdlext-lightbox.mdlext-lightbox--sticky-footer footer{position:fixed;bottom:0;left:0}ul.mdlext-carousel{list-style:none}.mdlext-carousel{overflow:hidden;width:100%;display:block;white-space:nowrap;font-size:0;background-color:transparent}.mdlext-carousel,.mdlext-carousel__slide{box-sizing:border-box;margin:0;padding:0;height:100%}.mdlext-carousel__slide{display:inline-block;position:relative;outline:0;border-top:2px solid transparent}.mdlext-carousel__slide[aria-selected=true] figcaption,.mdlext-carousel__slide[aria-selected] figcaption{color:#000!important;background-color:hsla(0,0%,100%,.25)}.mdlext-carousel__slide[aria-selected=true]:after,.mdlext-carousel__slide[aria-selected]:after{height:2px;width:100%;display:block;content:" ";top:-2px;left:0;position:absolute;background:#ff4081;animation:border-expand .2s cubic-bezier(.4,0,.4,1) .01s alternate forwards;transition:all 1s cubic-bezier(.4,0,1,1)}.mdlext-carousel__slide a{text-decoration:none}.mdlext-carousel__slide figure{box-sizing:border-box;position:relative;height:100%;margin:0;padding:0}.mdlext-carousel__slide figure img{box-sizing:border-box;max-height:100%}.mdlext-carousel__slide figure figcaption{box-sizing:border-box;font-family:Roboto,Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1;letter-spacing:0;color:#bdbdbd;position:absolute;bottom:0;left:0;white-space:nowrap;overflow:hidden;max-width:100%;width:100%;text-align:center;text-overflow:ellipsis;padding:4px 0}.mdlext-carousel__slide figure:hover figcaption{color:#000!important;background-color:hsla(0,0%,100%,.25)}.mdlext-carousel__slide .mdlext-carousel__slide__ripple-container{text-decoration:none;display:block;overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0;outline:0}.mdlext-carousel__slide .mdlext-carousel__slide__ripple-container .mdl-ripple{background:#3f51b5}.mdlext-selectfield{box-sizing:border-box;position:relative;font-size:16px;display:inline-block;width:300px;max-width:100%;margin:0;padding:20px 0}.mdlext-selectfield .mdl-button{bottom:20px;position:absolute}.mdlext-selectfield:after{border-top:.5em solid inherit;border-top-width:.5em;border-top-style:solid;border-top-color:inherit;border-left:.35em solid transparent;border-right:.35em solid transparent;position:absolute;right:.5em;top:50%;transform:translateY(-50%);pointer-events:none}.mdlext-selectfield.is-disabled:after,.mdlext-selectfield:after{content:"";width:0;height:0;font-size:inherit;line-height:inherit}.mdlext-selectfield.is-disabled:after{color:rgba(0,0,0,.12);border-top:.5em solid rgba(0,0,0,.12);border-top-width:.5em;border-top-style:solid;border-top-color:rgba(0,0,0,.12);border-left:.35em solid transparent;border-right:.35em solid transparent}.mdlext-selectfield--align-right{text-align:right}.mdlext-selectfield--full-width{width:100%}.mdlext-selectfield--expandable{min-height:32px;min-width:32px;width:auto}.mdlext-selectfield__select{box-sizing:border-box;border:0;border-radius:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;text-indent:.01px;text-overflow:"";outline:none;box-shadow:none;font-size:16px;font-family:Helvetica,Arial,sans-serif;padding:4px calc(1.2em + 4px) 4px 0;width:100%;border-bottom:1px solid rgba(0,0,0,.12);display:block;margin:0;background:none;text-align:left;color:inherit}.mdlext-selectfield__select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.mdlext-selectfield__select:focus::-ms-value{background-color:inherit;color:inherit}.mdlext-selectfield__select::-ms-expand{display:none}.mdlext-selectfield.is-focused .mdlext-selectfield__select{outline:none}.mdlext-selectfield.is-invalid .mdlext-selectfield__select{border-color:#d50000;box-shadow:none}.mdlext-selectfield.is-disabled .mdlext-selectfield__select,fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select{border-bottom:1px dotted rgba(0,0,0,.12);color:rgba(0,0,0,.26);background-color:transparent}.mdlext-selectfield__select option{color:rgba(0,0,0,.87);box-sizing:border-box;background-color:inherit}.mdlext-selectfield__label{box-sizing:border-box;color:rgba(0,0,0,.26);font-size:16px;top:24px;bottom:0;left:0;right:0;pointer-events:none;position:absolute;display:block;width:100%;overflow:hidden;white-space:nowrap;text-align:left}.mdlext-selectfield.has-placeholder .mdlext-selectfield__label,.mdlext-selectfield.is-dirty .mdlext-selectfield__label{visibility:hidden}.mdlext-selectfield--floating-label .mdlext-selectfield__label{transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label{transition:none}.mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label,fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label{color:rgba(0,0,0,.26)}.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label{color:#3f51b5;font-size:12px;top:4px;visibility:visible}.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__expandable-holder .mdlext-selectfield__label,.mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__expandable-holder .mdlext-selectfield__label,.mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__expandable-holder .mdlext-selectfield__label{top:-16px}.mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label{color:#d50000;font-size:12px}.mdlext-selectfield__label:after{background-color:#3f51b5;bottom:20px;content:"";height:2px;left:45%;position:absolute;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);visibility:hidden;width:10px}.mdlext-selectfield.is-focused .mdlext-selectfield__label:after{left:0;visibility:visible;width:100%}.mdlext-selectfield.is-invalid .mdlext-selectfield__label:after{background-color:#d50000}.mdlext-selectfield__error{color:#d50000;font-size:12px;position:absolute;margin-top:3px;visibility:hidden;display:block}.mdlext-selectfield.is-invalid .mdlext-selectfield__error{visibility:visible}.mdlext-selectfield__expandable-holder{display:inline-block;position:relative;margin-left:32px;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);max-width:.1px}.mdlext-selectfield.is-dirty .mdlext-selectfield__expandable-holder,.mdlext-selectfield.is-focused .mdlext-selectfield__expandable-holder{max-width:600px}.mdlext-selectfield__expandable-holder .mdlext-selectfield__label:after{bottom:0}.mdlext-menu-button{box-sizing:border-box;font-family:Roboto,Helvetica,Arial,sans-serif;font-size:14px;font-weight:500;line-height:1;letter-spacing:0;text-transform:none;position:relative;height:36px;padding:0 16px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-item-align:stretch;align-self:stretch}.mdlext-menu-button>*{margin:0;padding:0 0 0 8px}.mdlext-menu-button>:first-child{padding-left:0}.mdlext-menu-button>:last-child:not(:only-child):not(.mdlext-menu__item__caption){margin-left:auto}.mdlext-menu-button__caption{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.mdlext-menu,.mdlext-menu__item{box-sizing:border-box;margin:0;padding:0;list-style:none;display:-ms-flexbox;display:flex}.mdlext-menu{position:absolute;background:#fff;z-index:1000;min-width:124px;border-radius:2px;box-shadow:0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.2),0 1px 8px 0 rgba(0,0,0,.12);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:column;flex-direction:column;padding:0;overflow:hidden;overflow-y:auto}.mdlext-menu:focus{outline-offset:-1px;outline-width:1px}.mdlext-menu[hidden]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;pointer-events:none}.mdlext-menu__item{font-size:14px;font-weight:400;line-height:24px;letter-spacing:0;color:rgba(0,0,0,.87);background-color:#fff;position:relative;padding:0 16px 0 24px;-ms-flex-align:center;align-items:center;-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch;text-decoration:none;cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-height:40px;overflow:hidden}.mdlext-menu__item[aria-selected=true]{background-color:#e0e0e0}.mdlext-menu__item[aria-selected=true]:before{content:"\2713";position:absolute;font-size:1.4em;left:4px;top:50%;transform:translateY(-50%);pointer-events:none}.mdlext-menu__item:hover:not([disabled]){background-color:#eee}.mdlext-menu__item:focus{outline-offset:-2px;outline-width:1px;outline-color:#bdbdbd;background-color:#eee}.mdlext-menu__item::-moz-focus-inner{border:0}.mdlext-menu__item[disabled]{color:#bdbdbd;background-color:transparent;cursor:auto;pointer-events:none}.mdlext-menu__item[disabled]>*{color:#bdbdbd}.mdlext-menu__item__caption{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mdlext-menu__item>*{margin:0;padding:0 0 0 8px}.mdlext-menu__item>:first-child{padding-left:0}.mdlext-menu__item>:last-child:not(:only-child):not(.mdlext-menu__item__caption){margin-left:auto}.mdlext-menu__item-separator{margin:0;padding:0;border-bottom:1px solid rgba(0,0,0,.12)}.mdlext-bordered-fields,.mdlext-bordered-fields *{box-sizing:border-box}.mdlext-bordered-fields .mdl-textfield,.mdlext-bordered-fields .mdlext-selectfield{padding:0;margin:0 0 20px}.mdlext-bordered-fields .mdl-textfield .mdl-textfield__input,.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input,.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select{height:46px;background-color:hsla(0,0%,100%,.2);border:1px solid rgba(0,0,0,.26);border-radius:3px;padding:20px 8px 4px;font-size:16px;font-weight:400;color:inherit}.mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:disabled,.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:disabled,.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:disabled,.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:disabled{color:rgba(0,0,0,.12);background-color:hsla(0,0%,100%,.2);border-color:rgba(0,0,0,.12)}.mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:focus,.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:focus,.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:focus,.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:focus{background-color:hsla(0,0%,93%,.2);border-color:#3f51b5}.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select{padding-right:calc(1em + 8px)}.mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input,.mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select,.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input,.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select{color:inherit;border-color:#d50000;background-color:hsla(0,100%,92%,.5)}.mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input:focus,.mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select:focus,.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input:focus,.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select:focus{border-color:#a20000;background-color:hsla(0,100%,92%,.5)}.mdlext-bordered-fields .mdlext-selectfield:after{top:auto;bottom:4px}.mdlext-bordered-fields .mdlext-selectfield.is-disabled:after,.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield:after{color:rgba(0,0,0,.12);content:"";width:0;height:0;font-size:inherit;line-height:inherit;border-top:.5em solid rgba(0,0,0,.12);border-top-width:.5em;border-top-style:solid;border-top-color:rgba(0,0,0,.12);border-left:.35em solid transparent;border-right:.35em solid transparent}.mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__input,.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select{color:rgba(0,0,0,.12);background-color:hsla(0,0%,100%,.2);border-color:rgba(0,0,0,.12)}.mdlext-bordered-fields .mdl-textfield.has-placeholder .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.has-placeholder .mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.is-dirty .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.is-dirty .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.has-placeholder .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.has-placeholder .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.is-dirty .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.is-dirty .mdlext-selectfield__label{visibility:hidden}.mdlext-bordered-fields .mdl-textfield .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label{color:rgba(0,0,0,.26);font-size:16px;font-weight:400;padding-left:8px;top:auto;bottom:4px}.mdlext-bordered-fields .mdl-textfield .mdl-textfield__label:after,.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label:after,.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label:after,.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label:after{background-color:transparent!important;visibility:hidden!important}.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label{color:#3f51b5;font-size:12px;font-weight:400;top:auto;bottom:24px;visibility:visible}.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label{color:rgba(0,0,0,.12)}.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label{color:#d50000}.mdlext-bordered-fields fieldset[disabled] .mdl-selectfield .mdl-selectfield__label,.mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__label{color:rgba(0,0,0,.12)}.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>.mdl-button,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>i,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right>.mdl-button,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right>i,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>.mdl-button,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>i,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right>.mdl-button,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right>i{position:absolute;bottom:2px}.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>i,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right>i,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>i,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right>i{bottom:6px}.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>.mdl-button:first-child,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>i:first-child,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>.mdl-button:first-child,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>i:first-child{left:4px}.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>.mdl-button~.mdl-textfield__input,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>.mdl-button~.mdlext-selectfield__select,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>i~.mdl-textfield__input,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>i~.mdlext-selectfield__select,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>.mdl-button~.mdl-textfield__input,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>.mdl-button~.mdlext-selectfield__select,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>i~.mdl-textfield__input,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>i~.mdlext-selectfield__select{padding-left:32px}.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>.mdl-button~.mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>.mdl-button~.mdlext-selectfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>i~.mdl-textfield__label,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left>i~.mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>.mdl-button~.mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>.mdl-button~.mdlext-selectfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>i~.mdl-textfield__label,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left>i~.mdlext-selectfield__label{left:24px}.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right>.mdl-textfield__input,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right>.mdl-textfield__input{padding-right:32px}.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right>.mdl-button:last-child,.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right>i:last-child,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right>.mdl-button:last-child,.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right>i:last-child{left:auto;right:4px}.mdlext-bordered-fields .mdl-textfield.is-disabled .mdl-button,.mdlext-bordered-fields .mdl-textfield.is-disabled i,.mdlext-bordered-fields .mdlext-selectfield.is-disabled .mdl-button,.mdlext-bordered-fields .mdlext-selectfield.is-disabled i,.mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-button,.mdlext-bordered-fields fieldset[disabled] .mdl-textfield i,.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdl-button,.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield i{color:rgba(0,0,0,.12);pointer-events:none}.mdlext-collapsible{cursor:pointer}.mdlext-collapsible,.mdlext-collapsible-group,.mdlext-collapsible-region{box-sizing:border-box}.mdlext-collapsible-group[hidden],.mdlext-collapsible-region[hidden]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;pointer-events:none}.mdlext-aria-toggle-plus-minus{font-family:inherit;font-weight:inherit;font-style:inherit;font-size:1.4em;display:inline-block;width:1em;height:1em;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;vertical-align:middle;-webkit-font-smoothing:antialiased;-webkit-font-feature-settings:"liga";text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.mdlext-aria-toggle-plus-minus:after{content:"+";margin-left:0}[aria-expanded=true]>.mdlext-aria-toggle-plus-minus:after{content:"-";margin-left:0}.mdlext-aria-toggle-material-icons{font-family:Material Icons;font-weight:inherit;font-style:inherit;font-size:1.3em;display:inline-block;width:1em;height:1em;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;vertical-align:middle;-webkit-font-smoothing:antialiased;-webkit-font-feature-settings:"liga";text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.mdlext-aria-toggle-material-icons:after{content:"expand_more";margin-left:-8px}[aria-expanded=true]>.mdlext-aria-toggle-material-icons:after{content:"expand_less";margin-left:-8px}.mdlext-accordion{margin:0;padding:0;list-style:none;display:-ms-flexbox;display:flex}.mdlext-accordion,.mdlext-accordion *{box-sizing:border-box}.mdlext-accordion__panel{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.mdlext-accordion__panel,.mdlext-accordion__tab{box-sizing:border-box;position:relative;overflow:hidden;display:-ms-flexbox;display:flex}.mdlext-accordion__tab{font-family:Roboto,Helvetica,Arial,sans-serif;font-size:20px;font-weight:500;line-height:1;letter-spacing:.02em;font-weight:400;line-height:1.1;margin:0;padding:0;min-width:56px;min-height:56px;-ms-flex-align:center;align-items:center;-ms-flex-item-align:stretch;align-self:stretch;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#000;background-color:hsla(0,0%,62%,.2);cursor:pointer}.mdlext-accordion__tab:focus{outline-offset:-2px;outline-color:invert;outline-width:2px}.mdlext-accordion__tab[aria-expanded=true]{background-color:hsla(0,0%,62%,.3)}.mdlext-accordion__tab[aria-selected=true]{background-color:hsla(0,0%,62%,.4)}.mdlext-accordion__tab[disabled]{background-color:hsla(0,0%,62%,.12);color:rgba(0,0,0,.26);pointer-events:none}.mdlext-accordion__tab[disabled]>*{color:rgba(0,0,0,.26)}.mdlext-accordion__tab:hover:not([disabled]){background-color:hsla(0,0%,62%,.4)}.mdlext-accordion__tab>*{margin:0;padding:0}.mdlext-accordion__tab__caption{padding-left:8px;padding-right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mdlext-accordion__tab>:first-child{padding-left:0}.mdlext-accordion__tab--ripple[aria-selected=true]:before{content:"";position:absolute;top:50%;left:50%;background:hsla(0,0%,100%,.5);opacity:0;border-radius:100%;transform:scale(1) translate(-50%);transform-origin:50% 50%}.mdlext-accordion__tab--ripple[aria-selected=true]:focus:not(:active):before{animation:mdlext-accordion-tab-ripple 1s cubic-bezier(.4,0,.4,1) .01s alternate forwards}.mdlext-accordion__tabpanel{box-sizing:border-box;margin:0;padding:0 8px;color:inherit;background-color:transparent;display:block;overflow:auto;-ms-flex-positive:1;flex-grow:1}.mdlext-accordion__tabpanel[hidden]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.mdlext-accordion--vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.mdlext-accordion--vertical .mdlext-accordion__panel{min-height:56px;-ms-flex-direction:column;flex-direction:column}.mdlext-accordion--vertical .mdlext-accordion__tab{height:56px;border-top:1px solid hsla(0,0%,62%,.5);padding-left:8px;padding-right:8px}.mdlext-accordion--vertical .mdlext-accordion__tab[aria-selected=true]:after{position:absolute;bottom:0;left:0;height:1px;width:100%;display:block;content:" ";background-color:hsla(0,0%,59%,.5);animation:border-expand .2s cubic-bezier(.4,0,.4,1) .01s alternate forwards;transition:all 1s cubic-bezier(.4,0,1,1)}.mdlext-accordion--vertical .mdlext-accordion__tab>*{padding-left:8px}.mdlext-accordion--vertical .mdlext-accordion__tab>:first-child{padding-left:0}.mdlext-accordion--vertical .mdlext-accordion__tab>:last-child:not(:only-child):not(.mdlext-accordion__tab__caption){margin-left:auto}.mdlext-accordion--vertical .mdlext-accordion__tab--ripple[aria-selected=true]:before{width:5%;height:10%}.mdlext-accordion--vertical .mdlext-accordion__tabpanel{border-top:1px solid hsla(0,0%,62%,.5)}.mdlext-accordion--vertical .mdlext-accordion__tabpanel--animation{transform:scaleY(1);animation:mdlext-accordion-show-tabpanel-y .2s ease-in-out}.mdlext-accordion--vertical .mdlext-accordion__tabpanel--animation[hidden]{transform:scaleY(0);animation:mdlext-accordion-hide-tabpanel-y .2s ease-out;animation-delay:.1s}.mdlext-accordion--horizontal .mdlext-accordion__panel{min-width:56px;width:56px}.mdlext-accordion--horizontal[aria-multiselectable=true] .mdlext-accordion__panel.is-expanded{width:100%}.mdlext-accordion--horizontal .mdlext-accordion__tab{-ms-flex-direction:column-reverse;flex-direction:column-reverse;width:56px;white-space:nowrap;border-left:1px solid hsla(0,0%,62%,.5)}.mdlext-accordion--horizontal .mdlext-accordion__tab[aria-selected=true]:after{position:absolute;top:0;right:0;height:100%;width:1px;display:block;content:" ";background-color:hsla(0,0%,59%,.5)}.mdlext-accordion--horizontal .mdlext-accordion__tab>*{transform:rotate(-90deg) translateX(8px)}.mdlext-accordion--horizontal .mdlext-accordion__tab>:last-child:not(:only-child):not(.mdlext-accordion__tab__caption){margin-bottom:auto;transform:rotate(-90deg) translateX(0)}.mdlext-accordion--horizontal .mdlext-accordion__tab__caption{transform:rotate(-90deg) translateX(50%);padding-right:16px}.mdlext-accordion--horizontal .mdlext-accordion__tab--ripple[aria-selected=true]:before{width:10%;height:5%}.mdlext-accordion--horizontal .mdlext-accordion__tabpanel{border-left:1px solid hsla(0,0%,62%,.5)}.mdlext-accordion--horizontal .mdlext-accordion__tabpanel--animation{transform:scaleX(1);animation:mdlext-accordion-show-tabpanel-x .2s ease-in-out}.mdlext-accordion--horizontal .mdlext-accordion__tabpanel--animation[hidden]{transform:scaleX(0);animation:mdlext-accordion-hide-tabpanel-x .2s ease-out}.mdlext-accordion__panel:first-child>.mdlext-accordion__tab{border-top-color:transparent;border-left-color:transparent}.mdlext-accordion[aria-multiselectable=false] .mdlext-accordion__panel.is-expanded{-ms-flex-positive:1;flex-grow:1}.mdlext-accordion[disabled] *{pointer-events:none}.mdlext-accordion[disabled] .mdlext-accordion__tab{background-color:hsla(0,0%,62%,.12);color:rgba(0,0,0,.26)}.mdlext-accordion[disabled] .mdlext-accordion__tab>*{color:rgba(0,0,0,.26)}.mdlext-accordion[disabled] .mdlext-accordion__tabpanel{opacity:.8;filter:blur(1px) grayscale(80%)}@keyframes mdlext-accordion-tab-ripple{0%{transform:scale(0);opacity:1}20%{transform:scale(25);opacity:1}to{opacity:0;transform:scale(40)}}@keyframes mdlext-accordion-show-tabpanel-y{0%{transform:scaleY(0)}60%{transform:scaleY(1.01)}80%{transform:scaleY(.98)}to{transform:scaleY(1)}}@keyframes mdlext-accordion-hide-tabpanel-y{0%{transform:scaleY(1)}60%{transform:scaleY(.98)}80%{transform:scaleY(1.01)}to{transform:scaleY(0)}}@keyframes mdlext-accordion-show-tabpanel-x{0%{transform:scaleX(0)}60%{transform:scaleX(1.01)}80%{transform:scaleX(.98)}to{transform:scaleX(1)}}@keyframes mdlext-accordion-hide-tabpanel-x{0%{transform:scaleX(1)}60%{transform:scaleX(.98)}80%{transform:scaleX(1.01)}to{transform:scaleX(0)}}.mdlext-light-color-theme{background-color:#fafafa;color:rgba(0,0,0,.87)}.mdlext-light-color-theme a{outline-color:inherit}.mdlext-light-color-theme .mdl-color--primary{background-color:#4caf50!important}.mdlext-light-color-theme .mdl-color--primary-contrast{background-color:#c8e6c9!important}.mdlext-light-color-theme .mdl-color--primary-dark{background-color:#388e3c!important}.mdlext-light-color-theme .mdl-color--accent{background-color:#e040fb!important}.mdlext-light-color-theme .mdl-color--accent-contrast{background-color:#fafafa!important}.mdlext-light-color-theme .mdl-color-text--primary{color:#4caf50!important}.mdlext-light-color-theme .mdl-color-text--primary-contrast{color:#c8e6c9!important}.mdlext-light-color-theme .mdl-color-text--primary-dark{color:#388e3c!important}.mdlext-light-color-theme .mdl-color-text--accent{color:#e040fb!important}.mdlext-light-color-theme .mdl-color-text--accent-contrast{color:#fafafa!important}.mdlext-light-color-theme a{color:#e040fb}.mdlext-light-color-theme .mdl-badge[data-badge]:after{background:#e040fb;color:#fafafa}.mdlext-light-color-theme .mdl-badge.mdl-badge--no-background[data-badge]:after{color:#e040fb;background:#fafafa}.mdlext-light-color-theme .mdl-button{background:transparent;color:#000}.mdlext-light-color-theme .mdl-button:hover{background-color:hsla(0,0%,62%,.2)}.mdlext-light-color-theme .mdl-button:focus:not(:active){background-color:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdl-button:active{background-color:hsla(0,0%,62%,.4)}.mdlext-light-color-theme .mdl-button.mdl-button--colored{color:#4caf50}.mdlext-light-color-theme .mdl-button.mdl-button--colored:focus:not(:active){background-color:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdl-button--raised{background:hsla(0,0%,62%,.2)}.mdlext-light-color-theme .mdl-button--raised:active,.mdlext-light-color-theme .mdl-button--raised:focus:not(:active){background-color:hsla(0,0%,62%,.4)}.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored{background:#4caf50;color:#c8e6c9}.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored:active,.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored:focus:not(:active),.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored:hover{background-color:#3d8b40}.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored .mdl-ripple{background:#c8e6c9}.mdlext-light-color-theme .mdl-button--fab{background:hsla(0,0%,62%,.2)}.mdlext-light-color-theme .mdl-button--fab:active,.mdlext-light-color-theme .mdl-button--fab:focus:not(:active){background-color:hsla(0,0%,62%,.4)}.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored{background:#e040fb;color:#fafafa}.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored:active,.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored:focus:not(:active),.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored:hover{background-color:#e040fb}.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored .mdl-ripple{background:#fafafa}.mdlext-light-color-theme .mdl-button--icon{color:inherit}.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary{color:#4caf50}.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary .mdl-ripple{background:#c8e6c9}.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--fab,.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--raised{color:#c8e6c9;background-color:#4caf50}.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent{color:#e040fb}.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent .mdl-ripple{background:#fafafa}.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--fab,.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--raised{color:#fafafa;background-color:#e040fb}.mdlext-light-color-theme .mdl-button.mdl-button--disabled.mdl-button--disabled,.mdlext-light-color-theme .mdl-button[disabled][disabled]{color:rgba(0,0,0,.26);background-color:transparent}.mdlext-light-color-theme .mdl-button--fab.mdl-button--disabled.mdl-button--disabled,.mdlext-light-color-theme .mdl-button--fab[disabled][disabled],.mdlext-light-color-theme .mdl-button--raised.mdl-button--disabled.mdl-button--disabled,.mdlext-light-color-theme .mdl-button--raised[disabled][disabled]{background-color:rgba(0,0,0,.12);color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-button--colored.mdl-button--disabled.mdl-button--disabled,.mdlext-light-color-theme .mdl-button--colored[disabled][disabled]{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded{background:transparent;color:#e040fb}.mdlext-light-color-theme .mdl-slider.is-upgraded::-webkit-slider-runnable-track{background:transparent}.mdlext-light-color-theme .mdl-slider.is-upgraded::-moz-range-track{background:transparent}.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-track{background:none;color:transparent}.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-fill-lower{background:linear-gradient(90deg,transparent,transparent 16px,#e040fb 0,#e040fb 0)}.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-fill-upper{background:linear-gradient(270deg,transparent,transparent 16px,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 0)}.mdlext-light-color-theme .mdl-slider.is-upgraded::-webkit-slider-thumb{background:#e040fb}.mdlext-light-color-theme .mdl-slider.is-upgraded::-moz-range-thumb{background:#e040fb}.mdlext-light-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb{box-shadow:0 0 0 10px rgba(224,64,251,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb{box-shadow:0 0 0 10px rgba(224,64,251,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded:active::-webkit-slider-thumb{background:#e040fb}.mdlext-light-color-theme .mdl-slider.is-upgraded:active::-moz-range-thumb{background:#e040fb}.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-thumb{background:#e040fb}.mdlext-light-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb{background:radial-gradient(circle closest-side,#e040fb 0,#e040fb 37.5%,rgba(224,64,251,.26) 0,rgba(224,64,251,.26) 100%)}.mdlext-light-color-theme .mdl-slider.is-upgraded:active::-ms-thumb{background:#e040fb}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb{border-color:#e040fb;background:transparent}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb{border-color:rgba(0,0,0,.26);background:transparent}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb{box-shadow:0 0 0 10px rgba(0,0,0,.12);background:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb{box-shadow:0 0 0 10px rgba(0,0,0,.12);background:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb{border-color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb{border-color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-thumb{background:radial-gradient(circle closest-side,transparent 0,transparent 66.67%,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 100%)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb{background:radial-gradient(circle closest-side,rgba(0,0,0,.12) 0,rgba(0,0,0,.12) 25%,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 37.5%,rgba(0,0,0,.12) 0,rgba(0,0,0,.12) 100%)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb{background:radial-gradient(circle closest-side,transparent 0,transparent 77.78%,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 100%)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower{background:transparent}.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb{background:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-moz-range-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb{background:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled+.mdl-slider__background-flex>.mdl-slider__background-lower{background-color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb{border-color:rgba(0,0,0,.26);background:transparent}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb{border-color:rgba(0,0,0,.26);background:transparent}.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-ms-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:active::-ms-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:focus::-ms-thumb{background:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb,.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb{background:radial-gradient(circle closest-side,transparent 0,transparent 50%,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 100%)}.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-ms-fill-lower{background:linear-gradient(90deg,transparent,transparent 25px,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 0)}.mdlext-light-color-theme .mdl-slider__background-flex{background:transparent}.mdlext-light-color-theme .mdl-slider__background-lower{background:#e040fb}.mdlext-light-color-theme .mdl-slider__background-upper{background:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-textfield__input{border-bottom-color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-textfield.is-invalid .mdl-textfield__input{border-color:#d32f2f}.mdlext-light-color-theme .mdl-textfield.is-disabled .mdl-textfield__input,.mdlext-light-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__input{background-color:transparent;border-bottom-color:rgba(0,0,0,.12);color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-textfield__label{color:rgba(0,0,0,.54)}.mdlext-light-color-theme .mdl-textfield__label:after{background-color:#e040fb}.mdlext-light-color-theme .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label,.mdlext-light-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__label{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-light-color-theme .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,.mdlext-light-color-theme .mdl-textfield--floating-label.is-focused .mdl-textfield__label{color:#e040fb}.mdlext-light-color-theme .mdl-textfield--floating-label.is-invalid .mdl-textfield__label{color:#d32f2f}.mdlext-light-color-theme .mdl-textfield.is-invalid .mdl-textfield__label:after{background-color:#d32f2f}.mdlext-light-color-theme .mdl-textfield__error{color:#d32f2f}.mdlext-light-color-theme .mdl-checkbox__box-outline{border-color:rgba(0,0,0,.54)}.mdlext-light-color-theme .mdl-checkbox.is-checked .mdl-checkbox__box-outline{border-color:#e040fb}.mdlext-light-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__box-outline,.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline{border-color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-checkbox__focus-helper{background-color:transparent}.mdlext-light-color-theme .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper{box-shadow:0 0 0 8px rgba(224,64,251,.26);background-color:rgba(224,64,251,.26)}.mdlext-light-color-theme .mdl-checkbox__tick-outline{background:transparent}.mdlext-light-color-theme .mdl-checkbox.is-checked .mdl-checkbox__tick-outline{background-color:#e040fb}.mdlext-light-color-theme .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline,.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline{background-color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__label,.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__label{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-checkbox__ripple-container .mdl-ripple{background:#e040fb}.mdlext-light-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple,.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple{background:transparent}.mdlext-light-color-theme .mdl-radio__outer-circle{border-color:rgba(0,0,0,.54)}.mdlext-light-color-theme .mdl-radio.is-checked .mdl-radio__outer-circle{border-color:#e040fb}.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__outer-circle,.mdlext-light-color-theme .mdl-radio__outer-circle fieldset[disabled] .mdl-radio{border-color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-radio__inner-circle{background:#e040fb}.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__inner-circle,.mdlext-light-color-theme fieldset[disabled] .mdl-radio .mdl-radio__inner-circle{background:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__label,.mdlext-light-color-theme fieldset[disabled] .mdl-radio .mdl-radio__label{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-radio__ripple-container .mdl-ripple{background:#e040fb}.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple,.mdlext-light-color-theme fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple{background:transparent}.mdlext-light-color-theme .mdl-icon-toggle__label{color:#616161}.mdlext-light-color-theme .mdl-icon-toggle.is-checked .mdl-icon-toggle__label{color:#e040fb}.mdlext-light-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-icon-toggle.is-focused .mdl-icon-toggle__label{background-color:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label{background-color:rgba(224,64,251,.26)}.mdlext-light-color-theme .mdl-icon-toggle__ripple-container .mdl-ripple{background:#616161}.mdlext-light-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple{background:transparent}.mdlext-light-color-theme .mdl-switch__track{background:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-switch.is-checked .mdl-switch__track{background:rgba(224,64,251,.54)}.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__track,.mdlext-light-color-theme .mdl-switch__track fieldset[disabled] .mdl-switch{background:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdl-switch__thumb{background:#fafafa}.mdlext-light-color-theme .mdl-switch.is-checked .mdl-switch__thumb{background:#e040fb}.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__thumb,.mdlext-light-color-theme .mdl-switch__thumb fieldset[disabled] .mdl-switch{background:#bdbdbd}.mdlext-light-color-theme .mdl-switch__focus-helper{background-color:transparent}.mdlext-light-color-theme .mdl-switch.is-focused .mdl-switch__focus-helper{background-color:rgba(0,0,0,.1)}.mdlext-light-color-theme .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper{box-shadow:0 0 0 20px rgba(224,64,251,.26);background-color:rgba(224,64,251,.26)}.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__label,.mdlext-light-color-theme .mdl-switch__label fieldset[disabled] .mdl-switch{color:#bdbdbd}.mdlext-light-color-theme .mdl-switch__ripple-container .mdl-ripple{background:#e040fb}.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple,.mdlext-light-color-theme fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple{background:transparent}.mdlext-light-color-theme .mdl-data-table{border-color:rgba(0,0,0,.12);background-color:#fafafa}.mdlext-light-color-theme .mdl-data-table tbody tr.is-selected,.mdlext-light-color-theme .mdl-data-table tbody tr:hover{background-color:#eee}.mdlext-light-color-theme .mdl-data-table th{color:rgba(0,0,0,.54)}.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending,.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending{color:rgba(0,0,0,.87)}.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover:before,.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending:hover:before{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdl-menu__outline{background:#fff}.mdlext-light-color-theme .mdl-menu__item{color:rgba(0,0,0,.87);background-color:transparent;outline-color:#bdbdbd}.mdlext-light-color-theme .mdl-menu__item--full-bleed-divider{border-bottom-color:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled],.mdlext-light-color-theme .mdl-menu__item[disabled]{color:#bdbdbd;background-color:transparent}.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled]:focus,.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled]:hover,.mdlext-light-color-theme .mdl-menu__item[disabled]:focus,.mdlext-light-color-theme .mdl-menu__item[disabled]:hover{background-color:transparent}.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled] .mdl-ripple,.mdlext-light-color-theme .mdl-menu__item[disabled] .mdl-ripple{background:transparent}.mdlext-light-color-theme .mdl-menu__item:focus,.mdlext-light-color-theme .mdl-menu__item:hover{background-color:#eee}.mdlext-light-color-theme .mdl-menu__item:active{background-color:#e0e0e0}.mdlext-light-color-theme .mdl-card{background:#fafafa}.mdlext-light-color-theme .mdl-card__media{background-color:#e040fb}.mdlext-light-color-theme .mdl-card__title{color:rgba(0,0,0,.87)}.mdlext-light-color-theme .mdl-card__title.mdl-card--border{border-bottom-color:rgba(0,0,0,.1)}.mdlext-light-color-theme .mdl-card__title-text{color:inherit}.mdlext-light-color-theme .mdl-card__subtitle-text,.mdlext-light-color-theme .mdl-card__supporting-text{color:rgba(0,0,0,.54)}.mdlext-light-color-theme .mdl-card__actions{background-color:transparent}.mdlext-light-color-theme .mdl-card__actions.mdl-card--border{border-top-color:rgba(0,0,0,.1)}.mdlext-light-color-theme .mdlext-selectfield.is-disabled:after{color:rgba(0,0,0,.12);content:"";width:0;height:0;font-size:inherit;line-height:inherit;border-top:.5em solid rgba(0,0,0,.12);border-top-width:.5em;border-top-style:solid;border-top-color:rgba(0,0,0,.12);border-left:.35em solid transparent;border-right:.35em solid transparent}.mdlext-light-color-theme .mdlext-selectfield__select{border-bottom-color:rgba(0,0,0,.26);color:inherit}.mdlext-light-color-theme .mdlext-selectfield__select option{background-color:#fafafa;color:rgba(0,0,0,.87)}.mdlext-light-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__select{border-color:#d32f2f}.mdlext-light-color-theme .mdlext-selectfield.is-disabled .mdlext-selectfield__select,.mdlext-light-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select{background-color:transparent;border-bottom-color:rgba(0,0,0,.12);color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdlext-selectfield__label{color:rgba(0,0,0,.54)}.mdlext-light-color-theme .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-light-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label{color:#e040fb}.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label{color:#d32f2f}.mdlext-light-color-theme .mdlext-selectfield__label:after{background-color:#e040fb}.mdlext-light-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__label:after{background-color:#d32f2f}.mdlext-light-color-theme .mdlext-selectfield__error{color:#d32f2f}.mdlext-light-color-theme .mdlext-menu,.mdlext-menu.mdlext-light-color-theme{background:#fff}.mdlext-light-color-theme .mdlext-menu__item{color:rgba(0,0,0,.87);background-color:#fff}.mdlext-light-color-theme .mdlext-menu__item:active,.mdlext-light-color-theme .mdlext-menu__item[aria-selected=true]{background-color:#e0e0e0}.mdlext-light-color-theme .mdlext-menu__item:hover:not([disabled]){background-color:#eee}.mdlext-light-color-theme .mdlext-menu__item:focus{outline-color:#bdbdbd;background-color:#eee}.mdlext-light-color-theme .mdlext-menu__item[disabled],.mdlext-light-color-theme .mdlext-menu__item[disabled]>*{color:#bdbdbd}.mdlext-light-color-theme .mdlext-menu__item-separator{border-bottom:1px solid rgba(0,0,0,.12)}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select{background-color:hsla(0,0%,98%,.1);border-color:rgba(0,0,0,.26);color:inherit}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:disabled,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:disabled,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:disabled,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:disabled{color:rgba(0,0,0,.26);background-color:hsla(0,0%,98%,.1);border-color:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:focus,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:focus,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:focus,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:focus{background-color:hsla(0,0%,88%,.1);border-color:#e040fb}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select{color:inherit;border-color:#d32f2f;background-color:hsla(0,0%,100%,.5)}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input:focus,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select:focus,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input:focus,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select:focus{border-color:#ab2424;background-color:hsla(0,0%,100%,.5)}.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled:after,.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield:after{color:rgba(0,0,0,.26);content:"";width:0;height:0;font-size:inherit;line-height:inherit;border-top:.5em solid rgba(0,0,0,.26);border-top-width:.5em;border-top-style:solid;border-top-color:rgba(0,0,0,.26);border-left:.35em solid transparent;border-right:.35em solid transparent}.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__input,.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select{color:rgba(0,0,0,.26);background-color:hsla(0,0%,98%,.1);border-color:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label{color:rgba(0,0,0,.54)}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label{color:#e040fb}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label{color:#d32f2f}.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-selectfield .mdl-selectfield__label,.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__label{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled .mdl-button,.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled i,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled .mdl-button,.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled i,.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-button,.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield i,.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdl-button,.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield i{color:rgba(0,0,0,.12)}.mdlext-light-color-theme .mdlext-accordion__tab{color:#000;background-color:hsla(0,0%,46%,.2)}.mdlext-light-color-theme .mdlext-accordion__tab:focus{outline-color:hsla(0,0%,43%,.5)}.mdlext-light-color-theme .mdlext-accordion__tab[aria-expanded=true]{background-color:hsla(0,0%,46%,.3)}.mdlext-light-color-theme .mdlext-accordion__tab[aria-selected=true]{background-color:hsla(0,0%,46%,.4)}.mdlext-light-color-theme .mdlext-accordion__tab[disabled]{background-color:hsla(0,0%,46%,.12);color:rgba(0,0,0,.26);pointer-events:none}.mdlext-light-color-theme .mdlext-accordion__tab[disabled]>*{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdlext-accordion__tab:hover:not([disabled]){background-color:hsla(0,0%,46%,.4)}.mdlext-light-color-theme .mdlext-accordion__tab--ripple[aria-selected=true]:before{background:hsla(0,0%,46%,.4)}.mdlext-light-color-theme .mdlext-accordion__tabpanel{color:inherit;background-color:transparent}.mdlext-light-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab{border-top:1px solid hsla(0,0%,46%,.5)}.mdlext-light-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab[aria-selected=true]:after{background-color:hsla(0,0%,40%,.5)}.mdlext-light-color-theme .mdlext-accordion--vertical .mdlext-accordion__tabpanel{border-top:1px solid hsla(0,0%,46%,.5)}.mdlext-light-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab{border-left:1px solid hsla(0,0%,46%,.5)}.mdlext-light-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab[aria-selected=true]:after{background-color:hsla(0,0%,40%,.5)}.mdlext-light-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tabpanel{border-left:1px solid hsla(0,0%,46%,.5)}.mdlext-light-color-theme .mdlext-accordion__panel:first-child>.mdlext-light-color-theme .mdlext-accordion__tab{border-top-color:transparent;border-left-color:transparent}.mdlext-light-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab{background-color:hsla(0,0%,46%,.12);color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab>*{color:rgba(0,0,0,.26)}.mdlext-light-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tabpanel{opacity:.8;filter:blur(1px) grayscale(80%)}.mdlext-dark-color-theme{background-color:#303030;color:#fff}.mdlext-dark-color-theme a{outline-color:inherit}.mdlext-dark-color-theme .mdl-color--primary{background-color:#ffc107!important}.mdlext-dark-color-theme .mdl-color--primary-contrast{background-color:#fff8e1!important}.mdlext-dark-color-theme .mdl-color--primary-dark{background-color:#ffa000!important}.mdlext-dark-color-theme .mdl-color--accent{background-color:#536dfe!important}.mdlext-dark-color-theme .mdl-color--accent-contrast{background-color:#fff!important}.mdlext-dark-color-theme .mdl-color-text--primary{color:#ffc107!important}.mdlext-dark-color-theme .mdl-color-text--primary-contrast{color:#fff8e1!important}.mdlext-dark-color-theme .mdl-color-text--primary-dark{color:#ffa000!important}.mdlext-dark-color-theme .mdl-color-text--accent{color:#536dfe!important}.mdlext-dark-color-theme .mdl-color-text--accent-contrast{color:#fff!important}.mdlext-dark-color-theme a{color:#536dfe}.mdlext-dark-color-theme .mdl-badge[data-badge]:after{background:#536dfe;color:#fff}.mdlext-dark-color-theme .mdl-badge.mdl-badge--no-background[data-badge]:after{color:#536dfe;background:#fff}.mdlext-dark-color-theme .mdl-button{background:transparent;color:#fff}.mdlext-dark-color-theme .mdl-button:hover{background-color:hsla(0,0%,62%,.2)}.mdlext-dark-color-theme .mdl-button:focus:not(:active){background-color:rgba(0,0,0,.12)}.mdlext-dark-color-theme .mdl-button:active{background-color:hsla(0,0%,62%,.4)}.mdlext-dark-color-theme .mdl-button.mdl-button--colored{color:#ffc107}.mdlext-dark-color-theme .mdl-button.mdl-button--colored:focus:not(:active){background-color:rgba(0,0,0,.12)}.mdlext-dark-color-theme .mdl-button--raised{background:hsla(0,0%,62%,.2)}.mdlext-dark-color-theme .mdl-button--raised:active,.mdlext-dark-color-theme .mdl-button--raised:focus:not(:active){background-color:hsla(0,0%,62%,.4)}.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored{background:#ffc107;color:#fff8e1}.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored:active,.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored:focus:not(:active),.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored:hover{background-color:#d39e00}.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored .mdl-ripple{background:#fff8e1}.mdlext-dark-color-theme .mdl-button--fab{background:hsla(0,0%,62%,.2)}.mdlext-dark-color-theme .mdl-button--fab:active,.mdlext-dark-color-theme .mdl-button--fab:focus:not(:active){background-color:hsla(0,0%,62%,.4)}.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored{background:#536dfe;color:#fff}.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored:active,.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored:focus:not(:active),.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored:hover{background-color:#536dfe}.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored .mdl-ripple{background:#fff}.mdlext-dark-color-theme .mdl-button--icon{color:inherit}.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary{color:#ffc107}.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary .mdl-ripple{background:#fff8e1}.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--fab,.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--raised{color:#fff8e1;background-color:#ffc107}.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent{color:#536dfe}.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent .mdl-ripple{background:#fff}.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--fab,.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--raised{color:#fff;background-color:#536dfe}.mdlext-dark-color-theme .mdl-button.mdl-button--disabled.mdl-button--disabled,.mdlext-dark-color-theme .mdl-button[disabled][disabled]{color:hsla(0,0%,100%,.26);background-color:transparent}.mdlext-dark-color-theme .mdl-button--fab.mdl-button--disabled.mdl-button--disabled,.mdlext-dark-color-theme .mdl-button--fab[disabled][disabled],.mdlext-dark-color-theme .mdl-button--raised.mdl-button--disabled.mdl-button--disabled,.mdlext-dark-color-theme .mdl-button--raised[disabled][disabled]{background-color:hsla(0,0%,100%,.12);color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-button--colored.mdl-button--disabled.mdl-button--disabled,.mdlext-dark-color-theme .mdl-button--colored[disabled][disabled]{color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-slider.is-upgraded{background:transparent;color:#536dfe}.mdlext-dark-color-theme .mdl-slider.is-upgraded::-webkit-slider-runnable-track{background:transparent}.mdlext-dark-color-theme .mdl-slider.is-upgraded::-moz-range-track{background:transparent}.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-track{background:none;color:transparent}.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-fill-lower{background:linear-gradient(90deg,transparent,transparent 16px,#536dfe 0,#536dfe 0)}.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-fill-upper{background:linear-gradient(270deg,transparent,transparent 16px,hsla(0,0%,100%,.87) 0,hsla(0,0%,100%,.87) 0)}.mdlext-dark-color-theme .mdl-slider.is-upgraded::-webkit-slider-thumb{background:#536dfe}.mdlext-dark-color-theme .mdl-slider.is-upgraded::-moz-range-thumb{background:#536dfe}.mdlext-dark-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb{box-shadow:0 0 0 10px rgba(83,109,254,.5)}.mdlext-dark-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb{box-shadow:0 0 0 10px rgba(83,109,254,.5)}.mdlext-dark-color-theme .mdl-slider.is-upgraded:active::-webkit-slider-thumb{background:#536dfe}.mdlext-dark-color-theme .mdl-slider.is-upgraded:active::-moz-range-thumb{background:#536dfe}.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-thumb{background:#536dfe}.mdlext-dark-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb{background:radial-gradient(circle closest-side,#536dfe 0,#536dfe 37.5%,rgba(83,109,254,.5) 0,rgba(83,109,254,.5) 100%)}.mdlext-dark-color-theme .mdl-slider.is-upgraded:active::-ms-thumb{background:#536dfe}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb{border-color:#536dfe;background:transparent}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb{border-color:hsla(0,0%,100%,.87);background:transparent}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb{box-shadow:0 0 0 10px hsla(0,0%,100%,.5);background:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb{box-shadow:0 0 0 10px hsla(0,0%,100%,.5);background:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb{border-color:hsla(0,0%,100%,.87)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb{border-color:hsla(0,0%,100%,.87)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-thumb{background:radial-gradient(circle closest-side,transparent 0,transparent 66.67%,hsla(0,0%,100%,.87) 0,hsla(0,0%,100%,.87) 100%)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb{background:radial-gradient(circle closest-side,hsla(0,0%,100%,.5) 0,hsla(0,0%,100%,.5) 25%,hsla(0,0%,100%,.87) 0,hsla(0,0%,100%,.87) 37.5%,hsla(0,0%,100%,.5) 0,hsla(0,0%,100%,.5) 100%)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb{background:radial-gradient(circle closest-side,transparent 0,transparent 77.78%,hsla(0,0%,100%,.87) 0,hsla(0,0%,100%,.87) 100%)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower{background:transparent}.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb{background:hsla(0,0%,100%,.87)}.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-moz-range-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb{background:hsla(0,0%,100%,.87)}.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled+.mdl-slider__background-flex>.mdl-slider__background-lower{background-color:hsla(0,0%,100%,.87)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb{border-color:hsla(0,0%,100%,.87);background:transparent}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb{border-color:hsla(0,0%,100%,.87);background:transparent}.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-ms-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:active::-ms-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:focus::-ms-thumb{background:hsla(0,0%,100%,.87)}.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb,.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb{background:radial-gradient(circle closest-side,transparent 0,transparent 50%,hsla(0,0%,100%,.87) 0,hsla(0,0%,100%,.87) 100%)}.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-ms-fill-lower{background:linear-gradient(90deg,transparent,transparent 25px,hsla(0,0%,100%,.87) 0,hsla(0,0%,100%,.87) 0)}.mdlext-dark-color-theme .mdl-slider__background-flex{background:transparent}.mdlext-dark-color-theme .mdl-slider__background-lower{background:#536dfe}.mdlext-dark-color-theme .mdl-slider__background-upper{background:hsla(0,0%,100%,.87)}.mdlext-dark-color-theme .mdl-textfield__input{border-bottom-color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-textfield.is-invalid .mdl-textfield__input{border-color:#ff1744}.mdlext-dark-color-theme .mdl-textfield.is-disabled .mdl-textfield__input,.mdlext-dark-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__input{background-color:transparent;border-bottom-color:hsla(0,0%,100%,.12);color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-textfield__label{color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdl-textfield__label:after{background-color:#536dfe}.mdlext-dark-color-theme .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label,.mdlext-dark-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__label{color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-dark-color-theme .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,.mdlext-dark-color-theme .mdl-textfield--floating-label.is-focused .mdl-textfield__label{color:#536dfe}.mdlext-dark-color-theme .mdl-textfield--floating-label.is-invalid .mdl-textfield__label{color:#ff1744}.mdlext-dark-color-theme .mdl-textfield.is-invalid .mdl-textfield__label:after{background-color:#ff1744}.mdlext-dark-color-theme .mdl-textfield__error{color:#ff1744}.mdlext-dark-color-theme .mdl-checkbox__box-outline{border-color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdl-checkbox.is-checked .mdl-checkbox__box-outline{border-color:#536dfe}.mdlext-dark-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__box-outline,.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline{border-color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-checkbox__focus-helper{background-color:transparent}.mdlext-dark-color-theme .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper{box-shadow:0 0 0 8px rgba(83,109,254,.26);background-color:rgba(83,109,254,.26)}.mdlext-dark-color-theme .mdl-checkbox__tick-outline{background:transparent}.mdlext-dark-color-theme .mdl-checkbox.is-checked .mdl-checkbox__tick-outline{background-color:#536dfe}.mdlext-dark-color-theme .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline,.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline{background-color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__label,.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__label{color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-checkbox__ripple-container .mdl-ripple{background:#536dfe}.mdlext-dark-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple,.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple{background:transparent}.mdlext-dark-color-theme .mdl-radio__outer-circle{border-color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdl-radio.is-checked .mdl-radio__outer-circle{border-color:#536dfe}.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__outer-circle,.mdlext-dark-color-theme .mdl-radio__outer-circle fieldset[disabled] .mdl-radio{border-color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-radio__inner-circle{background:#536dfe}.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__inner-circle,.mdlext-dark-color-theme fieldset[disabled] .mdl-radio .mdl-radio__inner-circle{background:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__label,.mdlext-dark-color-theme fieldset[disabled] .mdl-radio .mdl-radio__label{color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-radio__ripple-container .mdl-ripple{background:#536dfe}.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple,.mdlext-dark-color-theme fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple{background:transparent}.mdlext-dark-color-theme .mdl-icon-toggle__label{color:#616161}.mdlext-dark-color-theme .mdl-icon-toggle.is-checked .mdl-icon-toggle__label{color:#536dfe}.mdlext-dark-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label{color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdl-icon-toggle.is-focused .mdl-icon-toggle__label{background-color:rgba(0,0,0,.12)}.mdlext-dark-color-theme .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label{background-color:rgba(83,109,254,.26)}.mdlext-dark-color-theme .mdl-icon-toggle__ripple-container .mdl-ripple{background:#616161}.mdlext-dark-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple{background:transparent}.mdlext-dark-color-theme .mdl-switch__track{background:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-switch.is-checked .mdl-switch__track{background:rgba(83,109,254,.5)}.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__track,.mdlext-dark-color-theme .mdl-switch__track fieldset[disabled] .mdl-switch{background:hsla(0,0%,100%,.12)}.mdlext-dark-color-theme .mdl-switch__thumb{background:#fafafa}.mdlext-dark-color-theme .mdl-switch.is-checked .mdl-switch__thumb{background:#536dfe}.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__thumb,.mdlext-dark-color-theme .mdl-switch__thumb fieldset[disabled] .mdl-switch{background:#fafafa}.mdlext-dark-color-theme .mdl-switch__focus-helper{background-color:transparent}.mdlext-dark-color-theme .mdl-switch.is-focused .mdl-switch__focus-helper{background-color:rgba(0,0,0,.1)}.mdlext-dark-color-theme .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper{box-shadow:0 0 0 20px rgba(83,109,254,.26);background-color:rgba(83,109,254,.26)}.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__label,.mdlext-dark-color-theme .mdl-switch__label fieldset[disabled] .mdl-switch{color:#fafafa}.mdlext-dark-color-theme .mdl-switch__ripple-container .mdl-ripple{background:#536dfe}.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple,.mdlext-dark-color-theme fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple{background:transparent}.mdlext-dark-color-theme .mdl-data-table{border-color:hsla(0,0%,100%,.12);background-color:#303030}.mdlext-dark-color-theme .mdl-data-table tbody tr.is-selected{background-color:#424242}.mdlext-dark-color-theme .mdl-data-table tbody tr:hover{background-color:#212121}.mdlext-dark-color-theme .mdl-data-table th,.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending,.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending{color:hsla(0,0%,100%,.87)}.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover:before,.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending:hover:before{color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdl-menu__outline{background:#000}.mdlext-dark-color-theme .mdl-menu__item{color:hsla(0,0%,100%,.87);background-color:transparent;outline-color:#616161}.mdlext-dark-color-theme .mdl-menu__item--full-bleed-divider{border-bottom-color:hsla(0,0%,100%,.2)}.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled],.mdlext-dark-color-theme .mdl-menu__item[disabled]{color:#9e9e9e;background-color:transparent}.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled]:focus,.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled]:hover,.mdlext-dark-color-theme .mdl-menu__item[disabled]:focus,.mdlext-dark-color-theme .mdl-menu__item[disabled]:hover{background-color:transparent}.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled] .mdl-ripple,.mdlext-dark-color-theme .mdl-menu__item[disabled] .mdl-ripple{background:transparent}.mdlext-dark-color-theme .mdl-menu__item:focus,.mdlext-dark-color-theme .mdl-menu__item:hover{background-color:#212121}.mdlext-dark-color-theme .mdl-menu__item:active{background-color:#424242}.mdlext-dark-color-theme .mdl-card{background:#303030}.mdlext-dark-color-theme .mdl-card__media{background-color:#536dfe}.mdlext-dark-color-theme .mdl-card__title{color:#fff}.mdlext-dark-color-theme .mdl-card__title.mdl-card--border{border-bottom-color:rgba(0,0,0,.1)}.mdlext-dark-color-theme .mdl-card__title-text{color:inherit}.mdlext-dark-color-theme .mdl-card__subtitle-text{color:rgba(0,0,0,.7)}.mdlext-dark-color-theme .mdl-card__supporting-text{color:hsla(0,0%,100%,.7)}.mdlext-dark-color-theme .mdl-card__actions{background-color:hsla(0,0%,100%,0)}.mdlext-dark-color-theme .mdl-card__actions.mdl-card--border{border-top-color:rgba(0,0,0,.1)}.mdlext-dark-color-theme .mdlext-selectfield.is-disabled:after{color:hsla(0,0%,100%,.12);content:"";width:0;height:0;font-size:inherit;line-height:inherit;border-top:.5em solid hsla(0,0%,100%,.12);border-top-width:.5em;border-top-style:solid;border-top-color:hsla(0,0%,100%,.12);border-left:.35em solid transparent;border-right:.35em solid transparent}.mdlext-dark-color-theme .mdlext-selectfield__select{border-bottom-color:hsla(0,0%,100%,.26);color:inherit}.mdlext-dark-color-theme .mdlext-selectfield__select option{background-color:#303030;color:#fff}.mdlext-dark-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__select{border-color:#ff1744}.mdlext-dark-color-theme .mdlext-selectfield.is-disabled .mdlext-selectfield__select,.mdlext-dark-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select{background-color:transparent;border-bottom-color:hsla(0,0%,100%,.12);color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdlext-selectfield__label{color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-dark-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label{color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label{color:#536dfe}.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label{color:#ff1744}.mdlext-dark-color-theme .mdlext-selectfield__label:after{background-color:#536dfe}.mdlext-dark-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__label:after{background-color:#ff1744}.mdlext-dark-color-theme .mdlext-selectfield__error{color:#ff1744}.mdlext-dark-color-theme .mdlext-menu,.mdlext-menu.mdlext-dark-color-theme{background:#000}.mdlext-dark-color-theme .mdlext-menu__item{color:hsla(0,0%,100%,.87);background-color:#000}.mdlext-dark-color-theme .mdlext-menu__item:active,.mdlext-dark-color-theme .mdlext-menu__item[aria-selected=true]{background-color:#424242}.mdlext-dark-color-theme .mdlext-menu__item:hover:not([disabled]){background-color:#212121}.mdlext-dark-color-theme .mdlext-menu__item:focus{outline-color:#616161;background-color:#212121}.mdlext-dark-color-theme .mdlext-menu__item[disabled],.mdlext-dark-color-theme .mdlext-menu__item[disabled]>*{color:#9e9e9e}.mdlext-dark-color-theme .mdlext-menu__item-separator{border-bottom:1px solid hsla(0,0%,100%,.2)}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select{background-color:rgba(48,48,48,.1);border-color:hsla(0,0%,100%,.26);color:inherit}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:disabled,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:disabled,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:disabled,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:disabled{color:hsla(0,0%,100%,.26);background-color:rgba(48,48,48,.1);border-color:hsla(0,0%,100%,.12)}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:focus,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:focus,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:focus,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:focus{background-color:hsla(0,0%,9%,.1);border-color:#536dfe}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select{color:inherit;border-color:#ff1744;background-color:rgba(255,23,68,.1)}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input:focus,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select:focus,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input:focus,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select:focus{border-color:#e3002c;background-color:rgba(255,23,68,.1)}.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled:after,.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield:after{color:hsla(0,0%,100%,.26);content:"";width:0;height:0;font-size:inherit;line-height:inherit;border-top:.5em solid hsla(0,0%,100%,.26);border-top-width:.5em;border-top-style:solid;border-top-color:hsla(0,0%,100%,.26);border-left:.35em solid transparent;border-right:.35em solid transparent}.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__input,.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select{color:hsla(0,0%,100%,.26);background-color:rgba(48,48,48,.1);border-color:hsla(0,0%,100%,.12)}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label{color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label{color:#536dfe}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label{color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label{color:#ff1744}.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-selectfield .mdl-selectfield__label,.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__label{color:hsla(0,0%,100%,.26)}.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled .mdl-button,.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled i,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled .mdl-button,.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled i,.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-button,.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield i,.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdl-button,.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield i{color:hsla(0,0%,100%,.12)}.mdlext-dark-color-theme .mdlext-accordion__tab{color:#fff;background-color:#000}.mdlext-dark-color-theme .mdlext-accordion__tab:focus{outline-color:#a8a8a8}.mdlext-dark-color-theme .mdlext-accordion__tab[aria-expanded=true]{background-color:rgba(0,0,0,.9)}.mdlext-dark-color-theme .mdlext-accordion__tab[aria-selected=true]{background-color:rgba(0,0,0,.6)}.mdlext-dark-color-theme .mdlext-accordion__tab[disabled]{background-color:rgba(0,0,0,.4);color:hsla(0,0%,100%,.5);pointer-events:none}.mdlext-dark-color-theme .mdlext-accordion__tab[disabled]>*{color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdlext-accordion__tab:hover:not([disabled]){background-color:rgba(0,0,0,.5)}.mdlext-dark-color-theme .mdlext-accordion__tab--ripple[aria-selected=true]:before{background:rgba(0,0,0,.3)}.mdlext-dark-color-theme .mdlext-accordion__tabpanel{color:inherit;background-color:transparent}.mdlext-dark-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab{border-top:1px solid #424242}.mdlext-dark-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab[aria-selected=true]:after{background-color:#a8a8a8}.mdlext-dark-color-theme .mdlext-accordion--vertical .mdlext-accordion__tabpanel{border-top:1px solid #424242}.mdlext-dark-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab{border-left:1px solid #424242}.mdlext-dark-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab[aria-selected=true]:after{background-color:#a8a8a8}.mdlext-dark-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tabpanel{border-left:1px solid #424242}.mdlext-dark-color-theme .mdlext-accordion__panel:first-child>.mdlext-dark-color-theme .mdlext-accordion__tab{border-top-color:transparent;border-left-color:transparent}.mdlext-dark-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab{background-color:rgba(0,0,0,.4);color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab>*{color:hsla(0,0%,100%,.5)}.mdlext-dark-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tabpanel{opacity:.8;filter:blur(1px) grayscale(80%)}
+/*# sourceMappingURL=mdl-ext.min.css.map*/
\ No newline at end of file
diff --git a/node_modules/mdl-ext/lib/mdl-ext.min.css.map b/node_modules/mdl-ext/lib/mdl-ext.min.css.map
new file mode 100644
index 0000000..c9b79f3
--- /dev/null
+++ b/node_modules/mdl-ext/lib/mdl-ext.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack:///src/aria-expanded-toggle/_aria-expanded-toggle.scss?d01f","webpack:///webpack:///src/_mixins.scss?c723","webpack:///webpack:///src/mdl-ext-build.scss","webpack:///webpack:///src/sticky-header/_sticky-header.scss?721e","webpack:///webpack:///src/dialog/dialog.scss?6dd1","webpack:///webpack:///src/grid/_grid-media-queries.scss","webpack:///webpack:///src/lightboard/_lightboard.scss?79ea","webpack:///webpack:///~/material-design-lite/src/_mixins.scss?572c","webpack:///webpack:///src/lightboard/_lightboard-media-queries.scss","webpack:///webpack:///src/lightbox/_lightbox.scss?bce5","webpack:///webpack:///src/carousel/_carousel.scss?ab9b","webpack:///webpack:///src/selectfield/_selectfield.scss?910a","webpack:///webpack:///src/menu-button/_menu-button.scss?610a","webpack:///webpack:///src/bordered-fields/_bordered-fields.scss?3072","webpack:///webpack:///src/collapsible/_collapsible.scss?5cb7","webpack:///webpack:///src/accordion/_accordion.scss?b350","webpack:///webpack:///src/color-themes/_light-color-theme.scss?77e1","webpack:///webpack:///src/color-themes/_dark-color-theme.scss?a990"],"names":[],"mappings":"AAwBA,iCCiDE,oBACA,oBACA,mBACA,eACA,qBACA,UACA,WACA,cACA,oBACA,sBACA,iBACA,mBACA,cACA,sBAGA,mCACA,qCAGA,kCAGA,kCAGA,6BC/ED,uCDkFG,YACA,cC9EH,4DDmFK,YACA,cC/EL,gCD2CC,2BACA,oBACA,mBACA,eACA,qBACA,UACA,WACA,cACA,oBACA,sBACA,iBACA,mBACA,cACA,sBAGA,mCACA,qCAGA,kCAGA,kCAGA,6BC/CD,sCDkDG,sBACA,cC9CH,2DDmDK,sBACA,cExFN,8BACE,kBACA,iBACA,iEACA,2BAJF,+CAOI,8FACD,gFAKC,kBACD,6EAEC,kBACD,mIAKD,iCAEA,yLACE,mBACD,mLAEC,kBC3BJ,qBACE,kBACA,SACA,UACA,UACA,6BALF,2BAQI,8CACD,6CAEC,8CAFD,qCAEC,8CAXJ,qCAcI,8CACD,kCAID,GAAK,2BFgFJ,CE9EH,8BACE,GAAK,UFmFJ,CGjGH,aACE,iCACA,0CACA,cACA,2CAJF,qCAOI,UAIJ,aACE,sBAIF,kBACE,gDACD,qBAGC,uEAGF,qBACE,4CACD,sBAGC,0EAGF,kDACE,SAKA,sBACE,yBADF,sBACE,yBADF,sBACE,yBADF,sBACE,yBADF,sBACE,yBADF,sBACE,yBADF,sBACE,yBACD,sBADC,yBACD,sBADC,yBADF,uBACE,2BADF,uBACE,2BADF,uBACE,2BACD,yBAgCD,aACE,YACD,aAGC,kCA/BF,CAE2B,sCACzB,WAgCF,yBACE,uBACD,uDAKG,yBADF,uDACE,yBADF,uDACE,yBADF,uDACE,yBADF,uDACE,yBADF,uDACE,yBADF,uDACE,yBADF,uDACE,yBADF,uDACE,yBADF,yDACE,2BADF,yDACE,2BADF,yDACE,2BAMF,uEAhDF,uBAE2B,yHACzB,UA6CA,uEAhDF,uBAmDG,yHAhDD,UACD,uEAJD,uBAEA,yHACE,UAqDA,uEAxDF,wBAEA,yHACE,WAqDA,uEAxDF,wBA2DG,yHAxDD,WAqDA,uEAxDF,wBAE2B,yHACzB,WAqDA,uEAxDF,wBAE2B,yHACzB,WAqDA,uEAxDF,wBAEA,yH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aADF,6CAII,WACA,+BAEiC,qFAC/B,WACD,iDAGD,UAMD,2EAHG,SACA,UN0mCL,CMlmCH,gDACE,mBACE,aAEA,6CACE,WACA,+BALJ,qFAQM,YARN,iDAYI,UAEA,2EACE,SACA,gBNymCL,CMlmCH,0BACE,mBACE,aADF,6CAII,WACA,+BAEiC,qFAC/B,YACD,iDAGD,UAZJ,2EAeM,SACA,gBNymCL,CO7rCH,iBACE,qFACA,eACA,kBACA,WACA,eACA,cACA,SACA,gBACA,sBAEA,UACA,cAEA,yHAJA,sBAVF,0CAwBI,kBACA,MACA,OACA,iCACA,4CA5BJ,0EA+BM,kCACA,cACA,gBACA,cACA,sBACA,wBACA,4BASJ,wBACE,SACA,UACA,kBAjDJ,4BAoDM,WACA,eACA,YACA,SACA,UAxDN,mCFHI,8CAgIF,eACA,gBACA,cACA,iBEnEI,cACA,kBACA,SACA,OACA,QACA,eACA,YACA,eACA,cACA,YACA,qCACA,wBACA,oBACA,2BAhBF,oEAmBI,oBA7ER,4CAiFU,gBAjFV,wFAqFU,wBACD,iCAKL,WACA,UACD,wBAEC,iCACA,oDACA,yCACA,qCAYD,mDATG,kBACA,gBACA,UACA,YACA,WACD,4BAEC,iCA5GN,uDAiHI,eACA,SACA,OChHJ,mBACE,gBACD,iBAMC,gBAEA,WACA,cACA,mBACA,YACA,6BAGF,yCAZE,sBACA,SACA,UAEA,YAQF,wBAEE,qBACA,kBACA,UAIA,iCAKE,yGAIE,qBACA,qCACD,+FAKD,WACA,WACA,cACA,YACA,SACA,OACA,kBACA,mBACA,4EACA,yCAjCJ,0BAsCI,qBAGF,+BACE,sBACA,kBACA,YACA,SACA,UAEA,mCACE,sBACA,gBACD,0CAGC,oEHmDJ,eACA,gBACA,cACA,iBGnDI,cACA,kBACA,SACA,OACA,mBACA,gBACA,eACA,WACA,kBACA,uBACA,cACD,gDAMG,qBACA,qCACD,kEAKH,qBACA,cACA,gBACA,kBACA,MACA,OACA,QACA,SACA,UAEE,8EACA,mBCtGN,oBACE,sBACA,kBACA,eACA,qBACA,YACA,eACA,SACA,eAGE,gCACA,YACA,kBAbJ,0BVnBE,8BACA,sBACA,uBACA,yBAKE,oCACA,qCU8BA,kBACA,WACA,QACA,2BACA,oBAIJ,gEVpDE,WACA,QACA,SACA,kBACA,oBUgDF,sCAEI,4DVhDF,sBACA,uBACA,iCAKE,oCACA,qCU8CJ,iCACE,iBACD,gCAIC,WAIF,gCACE,gBACA,eACA,WAIF,4BAGE,sBACA,SACA,gBACA,wBACA,qBACA,oBACA,gBACA,kBACA,iBACA,aACA,gBAGA,eACA,uCACA,oCACA,WACA,wCACA,cACA,SACA,gBACA,gBACA,cAzBF,2CA6BI,kBACA,uBACD,6CAIC,yBACA,cACD,wCAGC,aACD,2DAGC,aAGF,2DACE,qBACA,gBAGF,+HAEE,yCACA,sBACA,6BACD,mCAGC,sBACA,sBACA,yBAKJ,2BACE,sBACA,sBACA,eACA,SACA,SACA,OACA,QACA,oBACA,kBACA,cACA,WACA,gBACA,mBACA,gBAE6B,uHAE3B,kBACD,+DJkHD,wBACA,mDI9GC,+EAGC,gBACD,yIAIC,sBAG6C,0OAG7C,cACA,eACA,QACA,mBACD,sVAKC,UACD,0EAGC,cACA,eAIF,iCACE,yBACA,YACA,WACA,WACA,SACA,0CJwEF,mDIrEE,kBACA,WAGF,gEACE,OACA,mBACA,WACD,gEAGC,yBAKJ,2BACE,cACA,eACA,kBACA,eACA,kBACA,cAEA,0DACE,mBAKJ,uCACE,qBACA,kBACA,yCJoCA,mDI5BA,eAE+B,0IAM7B,gBACD,wEAEC,SC7OJ,oBACE,oELuJA,eACA,gBACA,cACA,iBKxJA,oBACA,kBACA,YACA,eACA,iCACA,yCACA,+CATF,sBAYI,SACA,kBAbJ,iCAiBI,eACD,kFAGC,iBACD,6BAKD,mBACA,gBACA,uBACA,gBAGF,gCAEE,sBACA,SACA,UACA,gBACA,iCAGF,aACE,kBACA,gBACA,aACA,gBACA,mHAEA,+CACA,gDACA,UACA,gBACA,gBA8FD,mBA3FG,oBACA,kBAGF,qBX1DA,SACA,mBACA,WACA,YACA,gBACA,UACA,kBACA,UWqDE,oBAGF,mBLsCA,eACA,gBACA,iBACA,iBKvCE,sBACA,sBACA,kBACA,sBACA,yCACA,0EACA,qBACA,eACA,mBACA,qFACA,gBACA,gBAEA,uCACE,yBACD,8CAIC,gBACA,kBACA,gBACA,SACA,QACA,2BACA,oBACD,yCAGC,sBAGF,yBACE,oBACA,kBACA,sBACA,sBACD,qCAGC,SAGF,6BACE,cACA,6BACA,YACA,oBAEE,+BACA,cACD,4BAID,mBACA,gBACA,uBA3DJ,qBA+DI,SACA,kBAGA,gCACA,eACD,iFAGC,iBACD,6BAID,SACA,UACA,wCCpJJ,kDAII,sBAJJ,mFAUI,UACA,gBAEA,0QAEE,YACA,oCACA,iCACA,kBACA,qBACA,eACA,gBACA,cAwBD,8SArBG,sBACA,oCACA,6BAdJ,kSAwBI,mCACA,qBASJ,2IACE,8BAYA,sTAEE,cACA,qBACA,qCAJF,8UAQI,qBACA,qCArEV,kDA4EI,SACA,WAGiB,mIAEjB,iCZrGF,QACA,SACA,kBACA,oBACA,sCACA,sBACA,uBACA,iCAKE,oCACA,qCYMJ,2KAyFI,sBACA,oCACA,6BACD,onBAWK,kBAGJ,wQAEE,sBACA,eACA,gBACA,iBACA,SACA,WAOD,gSAHG,uCACA,4BACD,4vFAWC,cACA,eACA,gBACA,SACA,YACA,mBAMF,o9BAEE,sBA/IR,o8BAuJQ,cACD,oKAMH,sBACD,wpBASK,kBACA,WACD,wTAEC,WAIE,0XAEF,SACD,41BAKC,kBAMM,w1BAEN,UAhMR,qMAqMQ,mBArMR,0XAyMQ,UACA,UAOH,ggBAOC,sBACA,oBChON,oBAEE,eACD,yEAFC,sBAQA,qEbIA,SACA,mBACA,WACA,YACA,gBACA,UACA,kBACA,UaTE,oBCXJ,+BdmDE,oBACA,oBACA,mBACA,gBACA,qBACA,UACA,WACA,cACA,oBACA,sBACA,iBACA,mBACA,cACA,sBAGA,mCACA,qCAGA,kCAGA,kCAGA,6Bc7EF,qCdgFI,YACA,cCohEH,0DD/gEK,YACA,ccnFN,mCd+CE,2BACA,oBACA,mBACA,gBACA,qBACA,UACA,WACA,cACA,oBACA,sBACA,iBACA,mBACA,cACA,sBAGA,mCACA,qCAGA,kCAGA,kCAGA,6BCmjED,yCDhjEG,sBACA,iBCojEH,8DD/iEK,sBACA,iBc/EN,kBAEE,SACA,UACA,gBACA,iCALF,sCACE,sBAUA,yBAKE,sCACD,gDALC,sBACA,kBACA,gBACA,iCAED,uBR3BC,8CAgEF,eACA,gBACA,cACA,qBQnCE,gBACA,gBAGA,SACA,UACA,eACA,gBAEA,yCACA,+CACA,qFACA,WACA,mCACA,eAjBF,6BAqBI,oBACA,qBACA,kBAvBJ,2CA2BI,mCACD,2CAGC,mCA/BJ,iCAmCI,oCACA,sBACA,oBAKD,mCAFG,sBACD,6CAID,mCAGA,yBACA,SACA,UAGF,gCACE,iBACA,kBACA,mBACA,gBACA,uBACD,oCAGC,eACD,0DAIG,WACA,kBACA,QACA,SACA,8BACA,UACA,mBACA,mCACA,yBAVJ,6EAcI,yFACD,4BAKH,sBACA,SACA,cACA,cACA,6BACA,cACA,cACA,gCAEA,oCd5GF,SACA,mBACA,WACA,YACA,gBACA,UACA,kBACA,Uc8GA,4BACE,gDACA,sCAEA,qDACE,gBACA,gDACD,mDAGC,YACA,uCACA,iBACA,kBAJF,6EAOI,kBACA,SACA,OACA,WACA,WACA,cACA,YACA,mCACA,4EACA,yCACD,qDAGC,iBACD,gEAGC,eAjCN,qHAqCM,iBArCN,sFA0CQ,SACA,WACD,wDAMH,uCADF,mEAII,oBACA,2DAtDN,2EAyDQ,oBACA,wDACA,oBAUR,uDAGI,eACA,WAJJ,8FAQI,WACD,qDAGC,gEACA,WACA,mBACA,wCAfJ,+EAkBM,kBACA,MACA,QACA,YACA,UACA,cACA,YACA,mCAKD,uDAIC,yCACD,uHAIC,mBACA,uCA7BJ,8DAiCI,yCACA,mBA7CN,wFAkDQ,UACA,UAnDR,0DAyDI,wCADF,qEAII,oBACA,2DALJ,6EAQM,oBACA,wDACD,4DAUL,6BACA,8BAIA,mFACE,gCACD,8BAQD,oBAEF,mDACE,oCACA,sBAKD,qDAFG,sBACD,wDAGD,WACA,gCACD,uCAKD,GACE,mBACA,UAEF,IACE,oBACA,UAEF,GACE,UACA,oBb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","file":"mdl-ext.min.css","sourcesContent":["@charset \"UTF-8\";\n\n/**\n * @license\n * Copyright 2016-2017 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n@import \"../mixins\";\n\n.mdlext-aria-expanded-plus-minus {\n  @include mdlext-aria-expanded-toggle($font-family: inherit);\n}\n\n.mdlext-aria-expanded-more-less {\n  @include mdlext-aria-expanded-toggle($icon: 'expand_more', $icon-expanded: 'expand_less');\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/aria-expanded-toggle/_aria-expanded-toggle.scss","@import \"functions\";\n\n/// Triangle helper mixin\n/// Modified from: http://blustemy.io/drawing-pure-css-arrows-with-mixins/\n///                https://css-tricks.com/snippets/sass/css-triangle-mixin/\n/// @param {Direction} $direction - Triangle direction, either `top`, `right`, `bottom` or `left`\n/// @param {Color} $color [currentcolor] - Triangle color\n/// @param {Length} $size [1em] - Triangle size\n@mixin mdlext-arrow($direction: bottom, $base-width: 15px, $length: 10px, $color: inherit, $font-size: inherit) {\n  content: '';\n  width: 0;\n  height: 0;\n  font-size: $font-size;\n  line-height: $font-size;\n  border-#{mdlext-opposite-direction($direction)}: $length solid $color;\n  border-#{mdlext-opposite-direction($direction)}-width: $length;\n  border-#{mdlext-opposite-direction($direction)}-style: solid;\n  border-#{mdlext-opposite-direction($direction)}-color: $color;\n\n  $perpendicular-borders: ($base-width / 2) solid transparent;\n\n  @if $direction == top or $direction == bottom {\n    border-left: $perpendicular-borders;\n    border-right: $perpendicular-borders;\n  }\n  @else if $direction == right or $direction == left {\n    border-bottom: $perpendicular-borders;\n    border-top: $perpendicular-borders;\n  }\n}\n\n/// Hide element while making it readable for screen readers\n/// Copied from HTML5Boilerplate:\n/// https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L119-L133\n@mixin mdlext-visually-hidden() {\n  border: 0;\n  clip: rect(0 0 0 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n\n/// Toggle for aria-expanded attribute\n///\n/// @author Leif Olsen\n/// @param {Font} $font-family ['Material Icons'] - Font family\n/// @param {Length} $font-size [24px] - Font size\n/// @param {string} $icon ['+'] - icon to display when 'aria-expanded=\"false\"'\n/// @param {string} $icon-expanded ['-'] - icon to display when 'aria-expanded=\"true\"'\n/// @link https://github.com/google/material-design-icons Modified from '.material-icons' class\n/// @param {Length} $icon-offset [0] - Icon offset\n///\n/// @example - +/- toggle\n///   .plus-minus {\n///     @include mdlext-aria-expanded-toggle($font-family: inherit, $font-size: inherit);\n///   }\n///   <div aria-expanded=\"false\">\n///     <i class=\"plus-minus\"></i>\n///   </div>\n///\n/// @example - Material Icons, expand-more/expand_less\n///   .more-less {\n///     @include mdlext-aria-expanded-toggle($content: 'expand_more', $content-expanded: 'expand_less');\n///   }\n///   <div aria-expanded=\"true\">\n///     <i class=\"more-less\"></i>\n///   </div>\n\n@mixin mdlext-aria-expanded-toggle($font-family: 'Material Icons', $font-size: 24px, $icon: '+', $icon-expanded: '-', $icon-offset: 0) {\n  font-family: $font-family;\n  font-weight: inherit;\n  font-style: inherit;\n  font-size: $font-size;  // Preferred icon size\n  display: inline-block;\n  width: 1em;\n  height: 1em;\n  line-height: 1;\n  text-transform: none;\n  letter-spacing: normal;\n  word-wrap: normal;\n  white-space: nowrap;\n  direction: ltr;\n  vertical-align: middle;\n\n  // Support for all WebKit browsers.\n  -webkit-font-smoothing: antialiased;\n  -webkit-font-feature-settings: 'liga';\n\n  // Support for Safari and Chrome.\n  text-rendering: optimizeLegibility;\n\n  // Support for Firefox.\n  -moz-osx-font-smoothing: grayscale;\n\n  // Support for IE.\n  font-feature-settings: 'liga';\n\n  &::after {\n    content: $icon;\n    margin-left: $icon-offset;\n  }\n\n  [aria-expanded='true'] > & {\n    &::after {\n      content: $icon-expanded;\n      margin-left: $icon-offset;\n    }\n  }\n}\n\n\n/// Keyframe mixin\n/// Modified from: http://sassbreak.com/nested-keyframe-rules-sass/\n/// Modified from: http://sassbreak.com/sass-tools-and-snippets/\n///\n/// @example\n///\n/// .some-element {\n///   animation: 10s linear infinite;\n///\n///   @include mdlext-animation-keyframes {\n///     from {\n///       background-position: 0% 0%;\n///     }\n///     to {\n///       background-position: 114.2857% 0%;\n///     }\n///   }\n/// }\n\n@mixin mdlext-animation-keyframes {\n  $animation-name: unique-id();\n  animation-name: $animation-name;\n\n  @keyframes #{$animation-name} {\n    @content;\n  }\n}\n\n\n/// Flexible title mixin\n/// A flexible title consists of three regions, left, middle and right.\n/// The left and right regions are optional and will typically contain state icons\n/// or act as a toolbar. The middle region should contain the title text.\n///\n/// @author Leif Olsen\n/// @param {String} $class - class name\n/// @gutter {Length} [8px] - horizontal spacing between title elements\n///\n/// @example\n///\n/// @include mdlext-flexible-title(my-title) {\n///   overflow: hidden;\n///   background-color: yellow;\n///   &__text {\n///     font-size: 20px;\n///     letter-spacing: 0.02em;\n///     font-weight: 400;\n///     line-height: 1.1;\n///   }\n/// }\n///\n/// <header class=\"my-title\">\n///   <i class=\"material-icons\" role=\"presentation\" style=\"font-size: 28px;\">info</i>\n///   <h2 class=\"my-title__text\">A title</h2>\n///   <span class=\"my-title__spacer\"></span>\n///   <i class=\"mdlext-aria-expanded-more-less\" role=\"presentation\" style=\"font-size: 28px;\"></i>\n/// </header>\n\n@mixin mdlext-flexible-title($class, $gutter: 8px) {\n  .#{$class} {\n    box-sizing: border-box;\n    position: relative;\n    width: 100%;\n    display: flex;\n    align-self: stretch;\n    align-items: center;\n    margin: 0;\n    padding: 0 $gutter;\n\n    &__text,\n    &__text > * {\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n\n    > * {\n      box-sizing: border-box;\n      margin: 0;\n      padding: 0 $gutter 0 0;\n    }\n\n    > *:last-child {\n      padding-right: 0;\n    }\n\n    // Used to align elements inside a header or drawer, by growing to fill\n    // remaining space. Commonly used for aligning elements to the right.\n    &__spacer {\n      flex: 1;\n    }\n\n    @content;\n  }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/_mixins.scss","@charset \"UTF-8\";\n\n// Material Design Lite\n@import '~material-design-lite/src/variables';\n@import '~material-design-lite/src/mixins';\n\n// mdl-ext\n@import 'mdl-ext';\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/mdl-ext-build.scss","/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n@import \"../variables\";\n\n.mdlext-layout__sticky-header {\n  position: absolute;\n  overflow: visible;\n  background: $mdlext-sticky-header-background;\n  transition: 0.1s ease-in-out;\n\n  &.mdlext-is-scroll {\n    background: $mdlext-sticky-header-background-scroll;\n  }\n}\n\n*:not(.is-small-screen) .mdlext-layout__sticky-header {\n  .mdl-layout__drawer-button {\n    visibility: hidden;\n  }\n  .mdl-layout__header-row {\n    padding-left: $padding;\n  }\n}\n\n*:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header,\n.is-small-screen.has-drawer .mdlext-layout__sticky-header {\n  display: flex;\n\n  .mdl-layout__drawer-button {\n    visibility: visible;\n  }\n  .mdl-layout__header-row {\n    padding-left: $padding + $layout-drawer-button-desktop-size;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/sticky-header/_sticky-header.scss","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SASS based on css from Google Chrome Dialog polyfill, https://github.com/GoogleChrome/dialog-polyfill\n * @include 'node_modules/dialog-polyfill/dialog-polyfill.css' before using this\n */\n\n@import \"../variables\";\n\ndialog.mdlext-dialog {\n  position: absolute;\n  border: 0;\n  opacity: 0;\n  padding: $mdlext-dialog-padding;\n  background-color: $mdlext-dialog-background-color;\n\n  &[open] {\n    animation: mdlext-open-dialog $mdlext-dialog-open-animation;\n  }\n  &[open]::backdrop {\n    animation: mdlext-darken-backdrop $mdlext-dialog-backdrop-animation;\n  }\n  &[open] + .backdrop {\n    animation: mdlext-darken-backdrop $mdlext-dialog-backdrop-animation;\n  }\n}\n\n@keyframes mdlext-darken-backdrop {\n  to { background: $mdlext-dialog-backdrop-color; }\n}\n@keyframes mdlext-open-dialog {\n  to { opacity: 1; }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/dialog/dialog.scss","@charset \"UTF-8\";\n\n/**\n * This code is modified from Material Design Lite _grid.sass,\n * which is Licensed under the Apache License, Version 2.0\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n///////////////////////////////////////////////////////////////////////\n//\n// Grid media queries, modified from Material Design Lite _grid.sass\n//\n///////////////////////////////////////////////////////////////////////\n// Use of this module requires the user to include variables from material-design-lite in hers/his main SASS module\n//@import \"../../node_modules/material-design-lite/src/variables\";\n\n\n.mdlext-grid {\n  display: flex;\n  flex-flow: row wrap;\n  margin: 0 auto;\n  align-items: stretch;\n\n  &.mdlext-grid--no-spacing {\n    padding: 0;\n  }\n}\n\n.mdlext-cell {\n  box-sizing: border-box;\n}\n\n\n.mdlext-cell--top {\n  align-self: flex-start;\n}\n\n.mdlext-cell--middle {\n  align-self: center;\n}\n\n.mdlext-cell--bottom {\n  align-self: flex-end;\n}\n\n.mdlext-cell--stretch {\n  align-self: stretch;\n}\n\n.mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell {\n  margin: 0;\n}\n\n// Define order override classes.\n@for $i from 1 through $grid-max-columns {\n  .mdlext-cell--order-#{$i} {\n    order: $i;\n  }\n}\n\n\n// Mixins for width calculation.\n@mixin partial-size($size, $columns, $gutter) {\n  width: calc(#{(($size / $columns) * 100) + \"%\"} - #{$gutter});\n\n  .mdlext-grid--no-spacing > & {\n    width: #{(($size / $columns) * 100) + \"%\"};\n  }\n}\n\n@mixin full-size($gutter) {\n  @include partial-size(1, 1, $gutter);\n}\n\n@mixin offset-size($size, $columns, $gutter) {\n  margin-left: calc(#{(($size / $columns) * 100) + \"%\"} + #{$gutter / 2});\n\n  .mdlext-grid.mdlext-grid--no-spacing > & {\n    margin-left: #{(($size / $columns) * 100) + \"%\"};\n  }\n}\n\n\n\n////////// Phone //////////\n\n/* stylelint-disable */\n@media (max-width: $grid-tablet-breakpoint - 1) {\n/* stylelint-enable */\n  .mdlext-grid {\n    padding: $grid-phone-margin - ($grid-phone-gutter / 2);\n  }\n\n  .mdlext-cell {\n    margin: $grid-phone-gutter / 2;\n    @include partial-size($grid-cell-default-columns, $grid-phone-columns, $grid-phone-gutter);\n  }\n\n  .mdlext-cell--hide-phone {\n    display: none !important;\n  }\n\n  // Define order override classes.\n  @for $i from 1 through $grid-max-columns {\n    .mdlext-cell--order-#{$i}-phone.mdlext-cell--order-#{$i}-phone {\n      order: $i;\n    }\n  }\n\n  // Define partial sizes for columnNumber < totalColumns.\n  @for $i from 1 through ($grid-phone-columns - 1) {\n    .mdlext-cell--#{$i}-col,\n    .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {\n      @include partial-size($i, $grid-phone-columns, $grid-phone-gutter);\n    }\n  }\n\n  // Define 100% for everything else.\n  @for $i from $grid-phone-columns through $grid-desktop-columns {\n    .mdlext-cell--#{$i}-col,\n    .mdlext-cell--#{$i}-col-phone.mdlext-cell--#{$i}-col-phone {\n      @include full-size($grid-phone-gutter);\n    }\n  }\n\n  // Define valid phone offsets.\n  @for $i from 1 through ($grid-phone-columns - 1) {\n    .mdlext-cell--#{$i}-offset,\n    .mdlext-cell--#{$i}-offset-phone.mdlext-cell--#{$i}-offset-phone {\n      @include offset-size($i, $grid-phone-columns, $grid-phone-gutter);\n    }\n  }\n}\n\n\n////////// Tablet //////////\n\n/* stylelint-disable */\n@media (min-width: $grid-tablet-breakpoint) and (max-width: $grid-desktop-breakpoint - 1) { /* stylelint-enable */\n  .mdlext-grid {\n    padding: $grid-tablet-margin - ($grid-tablet-gutter / 2);\n  }\n\n  .mdlext-cell {\n    margin: $grid-tablet-gutter / 2;\n    @include partial-size($grid-cell-default-columns, $grid-tablet-columns, $grid-tablet-gutter);\n  }\n\n  .mdlext-cell--hide-tablet {\n    display: none !important;\n  }\n\n  // Define order override classes.\n  @for $i from 1 through $grid-max-columns {\n    .mdlext-cell--order-#{$i}-tablet.mdlext-cell--order-#{$i}-tablet {\n      order: $i;\n    }\n  }\n\n  // Define partial sizes for columnNumber < totalColumns.\n  @for $i from 1 through ($grid-tablet-columns - 1) {\n    .mdlext-cell--#{$i}-col,\n    .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {\n      @include partial-size($i, $grid-tablet-columns, $grid-tablet-gutter);\n    }\n  }\n\n  // Define 100% for everything else.\n  @for $i from $grid-tablet-columns through $grid-desktop-columns {\n    .mdlext-cell--#{$i}-col,\n    .mdlext-cell--#{$i}-col-tablet.mdlext-cell--#{$i}-col-tablet {\n      @include full-size($grid-tablet-gutter);\n    }\n  }\n\n  // Define valid tablet offsets.\n  @for $i from 1 through ($grid-tablet-columns - 1) {\n    .mdlext-cell--#{$i}-offset,\n    .mdlext-cell--#{$i}-offset-tablet.mdlext-cell--#{$i}-offset-tablet {\n      @include offset-size($i, $grid-tablet-columns, $grid-tablet-gutter);\n    }\n  }\n}\n\n\n////////// Desktop //////////\n\n@media (min-width: $grid-desktop-breakpoint) {\n  .mdlext-grid {\n    padding: $grid-desktop-margin - ($grid-desktop-gutter / 2);\n  }\n\n  .mdlext-cell {\n    margin: $grid-desktop-gutter / 2;\n    @include partial-size($grid-cell-default-columns, $grid-desktop-columns, $grid-desktop-gutter);\n  }\n\n  .mdlext-cell--hide-desktop {\n    display: none !important;\n  }\n\n  // Define order override classes.\n  @for $i from 1 through $grid-max-columns {\n    .mdlext-cell--order-#{$i}-desktop.mdlext-cell--order-#{$i}-desktop {\n      order: $i;\n    }\n  }\n\n  // Define partial sizes for all numbers of columns.\n  @for $i from 1 through $grid-desktop-columns {\n    .mdlext-cell--#{$i}-col,\n    .mdlext-cell--#{$i}-col-desktop.mdlext-cell--#{$i}-col-desktop {\n      @include partial-size($i, $grid-desktop-columns, $grid-desktop-gutter);\n    }\n  }\n\n  // Define valid desktop offsets.\n  @for $i from 1 through ($grid-desktop-columns - 1) {\n    .mdlext-cell--#{$i}-offset,\n    .mdlext-cell--#{$i}-offset-desktop.mdlext-cell--#{$i}-offset-desktop {\n      @include offset-size($i, $grid-desktop-columns, $grid-desktop-gutter);\n    }\n  }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/grid/_grid-media-queries.scss","@charset \"UTF-8\";\n\n/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * A lightboard is a translucent surface illuminated from behind, used for situations\n * where a shape laid upon the surface needs to be seen with high contrast. In the \"old days\" of photography\n * photograpers used a lightboard to get a quick view of their slides. The goal is to create a responsive lightbox\n * design, based on flex layout, similar to what is used in Adobe LightRoom to browse images.\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n@import \"../variables\";\n\nul.mdlext-lightboard {\n  list-style: none;\n}\n\n.mdlext-lightboard {\n  box-sizing: border-box;\n  margin: 0 auto;\n  padding: 0;\n  display: flex;\n  flex-flow:row wrap;\n  align-items: stretch;\n\n  *,\n  *::before,\n  *::after,\n  input[type=\"search\"] {\n    box-sizing: border-box;\n  }\n\n  .mdlext-lightboard__slide {\n    background-color: $mdlext-lightboard-slide-background-color;\n    border: 1px solid $mdlext-lightboard-slide-border-color;\n    border-radius: $mdlext-lightboard-slide-border-radius;\n    box-shadow: $mdlext-lightboard-slide-box-shadow;\n    position: relative;\n    display: block;\n    max-width: $mdlext-lightboard-slide-max-size;\n\n    &::before {\n      // 1:1 ratio\n      // TODO: Use a class for ratio so the grid can display slides with different ratios (16:9, 16:10, 4:3 ...)\n      content: '';\n      display: block;\n      padding-top: 100%;\n    }\n    &:hover,\n    &:active,\n    &:focus {\n      border-color: $mdlext-lightboard-slide-border-color-hover;\n      background-color: $mdlext-lightboard-slide-background-color-hover;\n      box-shadow: $mdlext-lightboard-slide-box-shadow-hover;\n\n      figcaption {\n        color: rgba(0, 0, 0, 1) !important;\n        background-color: rgba(255, 255, 255, 0.2);\n      }\n    }\n    &:focus {\n      outline-offset: -2px;\n      outline-color: $mdlext-lightboard-focus-outline-color;\n    }\n    &[aria-selected='true'] {\n      background-color: $mdlext-lightboard-slide-active-bacground-color;\n\n      figcaption {\n        color: rgba(0, 0, 0, 1) !important;\n        background-color: rgba(255, 255, 255, 0.2);\n      }\n    }\n    &__frame,\n    &__ripple-container {\n      text-decoration: none;\n      display: block;\n      overflow: hidden;\n      position: absolute;\n      top: 0;\n      left: 0;\n      right: 0;\n      bottom: 0;\n\n      &:focus {\n        outline-offset: -2px;\n        outline-color: $mdlext-lightboard-focus-outline-color;\n      }\n      & .mdl-ripple {\n        background: $mdlext-lightboard-ripple-color;\n      }\n      figure {\n        display: block;\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n\n        img {\n          position: absolute;\n          top: 0;\n          left: 0;\n          right: 0;\n          bottom: 0;\n          margin: auto;\n          max-width: 100%;\n          max-height: 100%;\n          border-width: 0;\n          border-radius: $mdlext-lightboard-slide-inner-border-radius;\n        }\n        figcaption {\n          @include typo-caption($colorContrast: false, $usePreferred: true);\n\n          color: $mdlext-lightboard-figcaption-text-color;\n          position: absolute;\n          bottom: -2px;\n          white-space: nowrap;\n          overflow: hidden;\n          max-width: 100%;\n          width: 100%;\n          text-align: center;\n          text-overflow: ellipsis;\n          padding: 4px 0;\n        }\n      }\n      &:hover {\n        figcaption {\n          // As far as I can see there is no way to darken/lighten a text color\n          // defined by MDL, due to the \"unqote\" functions.\n          // So this is a hack\n          color: rgba(0, 0, 0, 1) !important;\n          background-color: rgba(255, 255, 255, 0.2);\n        }\n      }\n    }\n  }\n}\n\n////// Media / Element queries default, Small //////\n.mdlext-lightboard {\n  padding: calc((#{$mdlext-lightboard-small-margin} - #{$mdlext-lightboard-small-gutter}) / 2);\n\n  .mdlext-lightboard__slide {\n    margin: calc(#{$mdlext-lightboard-small-gutter} / 2);\n    width: calc(1 / #{$mdlext-lightboard-small-columns} * 100% - #{$mdlext-lightboard-small-gutter});\n\n    .mdlext-lightboard__slide__frame figure {\n      margin: $mdlext-lightboard-small-frame-width;\n    }\n  }\n  &.mdlext-lightboard--no-spacing {\n    padding: 0;\n\n    .mdlext-lightboard__slide {\n      margin: 0;\n      width: calc(1 / #{$mdlext-lightboard-small-columns} * 100%);\n    }\n  }\n}\n\n// Import one of _lightboard-media-queries.scss or _lightboard-eq-js.scss to complete SASS\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/lightboard/_lightboard.scss","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* Typography */\n\n@mixin typo-preferred-font($usePreferred: true) {\n  @if $usePreferred {\n    font-family: $preferred_font;\n  }\n}\n\n@mixin typo-display-4($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 112px;\n  font-weight: 300;\n  line-height: 1;\n  letter-spacing: -0.04em;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-display-3($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 56px;\n  font-weight: 400;\n  line-height: 1.35;\n  letter-spacing: -0.02em;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-display-2($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 45px;\n  font-weight: 400;\n  line-height: 48px;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-display-1($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 34px;\n  font-weight: 400;\n  line-height: 40px;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-headline($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 24px;\n  font-weight: 400;\n  line-height: 32px;\n  -moz-osx-font-smoothing: grayscale;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-title($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 20px;\n  font-weight: 500;\n  line-height: 1;\n  letter-spacing: 0.02em;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-subhead($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0.04em;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-subhead-2($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 28px;\n  letter-spacing: 0.04em;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-body-2($colorContrast: false, $usePreferred: false) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  @if $usePreferred {\n    font-weight: 500;\n  } @else {\n    font-weight: bold;\n  }\n  line-height: 24px;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-body-1($colorContrast: false, $usePreferred: false) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-caption($colorContrast: false, $usePreferred: false) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 12px;\n  font-weight: 400;\n  line-height: 1;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-blockquote($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  position: relative;\n  font-size: 24px;\n  font-weight: 300;\n  font-style: italic;\n  line-height: 1.35;\n  letter-spacing: 0.08em;\n\n  &:before {\n    position: absolute;\n    left: -0.5em;\n    content: '“';\n  }\n\n  &:after {\n    content: '”';\n    margin-left: -0.05em;\n  }\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-menu($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  font-weight: 500;\n  line-height: 1;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-button($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  font-weight: 500;\n  text-transform: uppercase;\n  line-height: 1;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-icon() {\n  font-family: 'Material Icons';\n  font-weight: normal;\n  font-style: normal;\n  font-size: 24px;\n  line-height: 1;\n  letter-spacing: normal;\n  text-transform: none;\n  display: inline-block;\n  word-wrap: normal;\n  font-feature-settings: 'liga';\n  -webkit-font-feature-settings: 'liga';\n  -webkit-font-smoothing: antialiased;\n}\n\n/* Shadows */\n\n// Focus shadow mixin.\n@mixin focus-shadow() {\n  box-shadow: 0 0 8px rgba(0,0,0,.18),0 8px 16px rgba(0,0,0,.36);\n}\n\n@mixin shadow-2dp() {\n  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 3px 1px -2px rgba(0, 0, 0, $shadow-key-umbra-opacity),\n              0 1px 5px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity);\n}\n@mixin shadow-3dp() {\n  box-shadow: 0 3px 4px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 3px 3px -2px rgba(0, 0, 0, $shadow-key-umbra-opacity),\n              0 1px 8px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity);\n}\n@mixin shadow-4dp() {\n  box-shadow: 0 4px 5px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 1px 10px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 2px 4px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n@mixin shadow-6dp() {\n  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 1px 18px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 3px 5px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n@mixin shadow-8dp() {\n  box-shadow: 0 8px 10px 1px rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 3px 14px 2px rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 5px 5px -3px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n\n@mixin shadow-16dp() {\n  box-shadow: 0 16px 24px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0  6px 30px 5px rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0  8px 10px -5px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n\n@mixin shadow-24dp() {\n  box-shadow: 0  9px 46px  8px rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 11px 15px -7px rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 24px 38px  3px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n\n/* Animations */\n\n@mixin material-animation-fast-out-slow-in($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-fast-out-slow-in;\n}\n\n@mixin material-animation-linear-out-slow-in($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-linear-out-slow-in;\n}\n\n@mixin material-animation-fast-out-linear-in($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-fast-out-linear-in;\n}\n\n@mixin material-animation-default($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-default;\n}\n\n/* Dialog */\n\n@mixin dialog-width($units:5) {\n  @if(type_of($units) != 'number') {\n    @error \"The unit given to dialog-width should be a number.\";\n  }\n  // 56dp is the base unit width for Dialogs.\n  // With 5 units being the number of units for a mobile device.\n  // https://goo.gl/sK2O5o\n  width: $units * 56px;\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///~/material-design-lite/src/_mixins.scss","@charset \"UTF-8\";\n\n//////////////////////////////\n//\n// Lightboard media queries\n//\n//////////////////////////////\n@import \"../variables\";\n\n////////// Small /////////////\n//@media (max-width: $mdlext-lightboard-medium-small-breakpoint - 1) {\n//  // This is the default, see: _lightboard.scss\n//}\n\n////////// Medium small //////////\n/* stylelint-disable */\n@media (min-width: $mdlext-lightboard-medium-small-breakpoint) and (max-width: $mdlext-lightboard-medium-breakpoint - 1) { /* stylelint-enable */\n  .mdlext-lightboard {\n    padding: calc((#{$mdlext-lightboard-medium-small-margin} - #{$mdlext-lightboard-medium-small-gutter}) / 2);\n\n    .mdlext-lightboard__slide {\n      margin: calc(#{$mdlext-lightboard-medium-small-gutter} / 2);\n      width: calc(1 / #{$mdlext-lightboard-medium-small-columns} * 100% - #{$mdlext-lightboard-medium-small-gutter});\n\n      .mdlext-lightboard__slide__frame figure {\n        margin: $mdlext-lightboard-medium-small-frame-width;\n      }\n    }\n    &.mdlext-lightboard--no-spacing {\n      padding: 0;\n\n      .mdlext-lightboard__slide {\n        margin: 0;\n        width: calc(1 / #{$mdlext-lightboard-medium-small-columns} * 100%);\n      }\n    }\n  }\n}\n\n////////// Medium //////////\n/* stylelint-disable */\n@media (min-width: $mdlext-lightboard-medium-breakpoint) and (max-width: $mdlext-lightboard-medium-large-breakpoint - 1) { /* stylelint-enable */\n  .mdlext-lightboard {\n    padding: calc((#{$mdlext-lightboard-medium-margin} - #{$mdlext-lightboard-medium-gutter}) / 2);\n\n    .mdlext-lightboard__slide {\n      margin: calc(#{$mdlext-lightboard-medium-gutter} / 2);\n      width: calc(1 / #{$mdlext-lightboard-medium-columns} * 100% - #{$mdlext-lightboard-medium-gutter});\n\n      .mdlext-lightboard__slide__frame figure {\n        margin: $mdlext-lightboard-medium-frame-width;\n      }\n    }\n    &.mdlext-lightboard--no-spacing {\n      padding: 0;\n\n      .mdlext-lightboard__slide {\n        margin: 0;\n        width: calc(1 / #{$mdlext-lightboard-medium-columns} * 100%);\n      }\n    }\n  }\n}\n\n////////// Medium large //////////\n/* stylelint-disable */\n@media (min-width: $mdlext-lightboard-medium-large-breakpoint)  and (max-width: $mdlext-lightboard-large-breakpoint - 1) { /* stylelint-enable */\n  .mdlext-lightboard {\n    padding: calc((#{$mdlext-lightboard-medium-large-margin} - #{$mdlext-lightboard-medium-large-gutter}) / 2);\n\n    .mdlext-lightboard__slide {\n      margin: calc(#{$mdlext-lightboard-medium-large-gutter} / 2);\n      width: calc(1 / #{$mdlext-lightboard-medium-large-columns} * 100% - #{$mdlext-lightboard-medium-large-gutter});\n\n      .mdlext-lightboard__slide__frame figure {\n        margin: $mdlext-lightboard-medium-large-frame-width;\n      }\n    }\n    &.mdlext-lightboard--no-spacing {\n      padding: 0;\n\n      .mdlext-lightboard__slide {\n        margin: 0;\n        width: calc(1 / #{$mdlext-lightboard-medium-large-columns} * 100%);\n      }\n    }\n  }\n}\n\n////////// Large //////////\n@media (min-width: $mdlext-lightboard-large-breakpoint) {\n  .mdlext-lightboard {\n    padding: calc((#{$mdlext-lightboard-large-margin} - #{$mdlext-lightboard-large-gutter}) / 2);\n\n    .mdlext-lightboard__slide {\n      margin: calc(#{$mdlext-lightboard-large-gutter} / 2);\n      width: calc(1 / #{$mdlext-lightboard-large-columns} * 100% - #{$mdlext-lightboard-large-gutter});\n\n      .mdlext-lightboard__slide__frame figure {\n        margin: $mdlext-lightboard-large-frame-width;\n      }\n    }\n    &.mdlext-lightboard--no-spacing {\n      padding: 0;\n\n      .mdlext-lightboard__slide {\n        margin: 0;\n        width: calc(1 / #{$mdlext-lightboard-large-columns} * 100%);\n      }\n    }\n  }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/lightboard/_lightboard-media-queries.scss","@charset \"UTF-8\";\n\n/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n@import \"../variables\";\n\n.mdlext-lightbox {\n  user-select: none;\n  cursor: default;\n  position: relative;\n  width: auto;\n  max-width: 100%;\n  margin: 0 auto;\n  border: $mdlext-lightbox-border;\n  border-radius: $mdlext-lightbox-border-radius;\n  background-color: $mdlext-lightbox-background-color;\n  box-sizing: border-box;\n  outline: 0;\n  display: block; // display: flex and IE11 has issues with reposition. Set display:block for now.\n\n  *,\n  *::before,\n  *::after,\n  input[type=\"search\"] {\n    box-sizing: border-box;\n  }\n\n  .mdlext-lightbox__slider {\n    // Displays prevvious, current and next image while dragging\n    // Elements are created by lightbox component when dragging starts\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: flex;\n    justify-content: center;\n\n    .mdlext-lightbox__slider__slide {\n      flex-shrink: 0;\n      display: block;\n      text-align: left;\n      color: #7f7f7f;\n      background-size: cover;\n      background-position: center;\n      background-repeat: no-repeat;\n\n      //&:nth-child(1),\n      //&:nth-child(3) {\n      //  filter: blur(1px);\n      //}\n    }\n  }\n\n  figure {\n    margin: $mdlext-lightbox-figure-margin;\n    padding: $mdlext-lightbox-figure-padding;\n    position: relative;\n\n    img {\n      width: 100%;\n      max-width: 100%;\n      height: auto;\n      border: 0;\n      outline: 0;\n    }\n    figcaption {\n      @include typo-caption($colorContrast: false, $usePreferred: true);\n\n      display: block;\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      max-width: 100%;\n      height: auto;\n      max-height: 50%;\n      overflow: auto;\n      padding: 8px;\n      background-color: $mdlext-lightbox-figcaption-background-color;\n      transform-origin: bottom;\n      transform: scaleY(0);\n      transition: 0.2s ease-in-out;\n\n      &.mdlext-lightbox__show-figcaption {\n        transform: scaleY(1);\n      }\n      tbody {\n        th {\n          text-align: left;\n        }\n        th,\n        td {\n          vertical-align: text-top;\n        }\n      }\n    }\n  }\n  .mdl-card__menu {\n    color: #ffffff;\n    z-index: 1;\n  }\n  footer {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    background-color: $mdlext-lightbox-footer-background-color;\n\n    .mdl-card__supporting-text {\n      flex: 1;\n      overflow: hidden;\n      padding: 0;\n      height: $card-supporting-text-line-height;\n      width: 100%;\n    }\n    nav {\n      display: flex;\n    }\n  }\n\n  &.mdlext-lightbox--sticky-footer footer {\n    position: fixed;\n    bottom: 0;\n    left: 0;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/lightbox/_lightbox.scss","@charset \"UTF-8\";\n\n/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * A carousel ...\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n\nul.mdlext-carousel {\n  list-style: none;\n}\n\n.mdlext-carousel {\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n  height: 100%;  // Use a container to constrain height and width\n  width: 100%;\n  display: block;\n  white-space: nowrap;\n  font-size: 0;\n  background-color: transparent;\n}\n\n.mdlext-carousel__slide {\n  box-sizing: border-box;\n  display: inline-block;\n  position: relative;\n  outline: 0;\n  margin: 0 $mdlext-carousel-slide-margin-horizontal;\n  padding:0;\n  height: 100%;\n  border-top: $mdlext-carousel-slide-border-top-width solid transparent; // Makes room for the animated select/focus line\n\n  //&:focus,\n  &[aria-selected],\n  &[aria-selected='true'] {\n    figcaption {\n      // As far as I can see there is no way to darken/lighten a text color\n      // defined by MDL, due to the \"unqote\" functions.\n      // So this is a hack\n      color: rgba(0, 0, 0, 1) !important;\n      background-color: rgba(255, 255, 255, 0.25);\n    }\n  }\n\n  &[aria-selected]::after,\n  &[aria-selected='true']::after {\n    height: $mdlext-carousel-slide-border-top-width;\n    width: 100%;\n    display: block;\n    content: ' ';\n    top: (-$mdlext-carousel-slide-border-top-width);\n    left: 0;\n    position: absolute;\n    background: $mdlext-carousel-slide-border-top-color;\n    animation: border-expand 0.2s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards;\n    transition: all 1s cubic-bezier(0.4, 0.0, 1, 1);\n  }\n\n\n  a {\n    text-decoration: none;\n  }\n\n  figure {\n    box-sizing: border-box;\n    position: relative;\n    height: 100%;\n    margin: 0;\n    padding: 0;\n\n    img {\n      box-sizing: border-box;\n      max-height: 100%;\n    }\n\n    figcaption {\n      box-sizing: border-box;\n      @include typo-caption($colorContrast: false, $usePreferred: true);\n\n      color: $mdlext-carousel-slide-figcaption-color;\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      white-space: nowrap;\n      overflow: hidden;\n      max-width: 100%;\n      width: 100%;\n      text-align: center;\n      text-overflow: ellipsis;\n      padding: 4px 0;\n    }\n    &:hover {\n      figcaption {\n        // As far as I can see there is no way to darken/lighten a text color\n        // defined by MDL, due to the \"unqote\" functions.\n        // So this is a hack\n        color: rgba(0, 0, 0, 1) !important;\n        background-color: rgba(255, 255, 255, 0.25);\n      }\n    }\n  }\n\n  .mdlext-carousel__slide__ripple-container {\n    text-decoration: none;\n    display: block;\n    overflow: hidden;\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    outline: 0;\n\n    & .mdl-ripple {\n      background: $mdlext-carousel-slide-ripple-color;\n    }\n  }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/carousel/_carousel.scss","/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Copied/Modified/Inspired from/by:\n *   https://github.com/google/material-design-lite/tree/master/src/textfield\n *   http://red-team-design.com/making-html-dropdowns-not-suck/\n *   http://codepen.io/etcpe9/pen/PqyOye,\n *   http://codepen.io/pudgereyem/pen/PqBxQx\n *   https://github.com/MEYVN-digital/mdl-selectfield\n *   https://github.com/mebibou/mdl-selectfield\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n\n@import \"../mixins\";\n\n// The container for the selectfield.\n.mdlext-selectfield {\n  box-sizing: border-box;\n  position: relative;\n  font-size: $input-text-font-size;\n  display: inline-block;\n  width: 300px;\n  max-width: 100%;\n  margin: 0;\n  padding: $input-text-vertical-spacing 0;\n\n  // Align buttons, if used.\n  & .mdl-button {\n    bottom: $input-text-vertical-spacing;\n    position: absolute;\n  }\n\n  // Styling the down arrow\n  &::after {\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length);\n\n    position: absolute;\n    right: 0.5em;\n    top: 50%;\n    transform: translateY(-50%);\n    pointer-events: none;\n  }\n}\n\n.mdlext-selectfield.is-disabled {\n  &::after {\n    color: $input-text-disabled-color;\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $input-text-disabled-color);\n  }\n}\n\n// Optional class to align right.\n.mdlext-selectfield--align-right {\n  text-align: right;\n}\n\n// Optional class to display at full width.\n.mdlext-selectfield--full-width {\n  width: 100%;\n}\n\n// Optional class to make the select field expandable.\n.mdlext-selectfield--expandable {\n  min-height: $input-text-button-size;\n  min-width: $input-text-button-size;\n  width: auto;\n}\n\n// Styling for the select element.\n.mdlext-selectfield__select {\n\n  // Reset select\n  box-sizing: border-box;\n  border: 0;\n  border-radius: 0;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  -ms-appearance: none;\n  appearance: none;\n  text-indent: 0.01px; // Removes default arrow from firefox\n  text-overflow: '';   // Removes default arrow from firefox\n  outline: none;\n  box-shadow: none;\n  // End Reset select\n\n  font-size: $input-text-font-size;\n  font-family: $performance_font;\n  padding: $input-text-padding calc(1.2em + #{$input-text-padding}) $input-text-padding 0;\n  width: $input-text-width;\n  border-bottom: 1px solid $input-text-bottom-border-color;\n  display: block;\n  margin: 0;\n  background: none;\n  text-align: left;\n  color: inherit;\n\n  // Mozilla, remove focusring\n  &:-moz-focusring {\n    color: transparent;\n    text-shadow: 0 0 0 #000000;\n  }\n\n  // MS, remove selected option background color\n  &:focus::-ms-value {\n    background-color: inherit;\n    color: inherit;\n  }\n\n  &::-ms-expand {\n    display: none;\n  }\n\n  .mdlext-selectfield.is-focused & {\n    outline: none;\n  }\n\n  .mdlext-selectfield.is-invalid & {\n    border-color: $input-text-error-color;\n    box-shadow: none;\n  }\n\n  fieldset[disabled] .mdlext-selectfield &,\n  .mdlext-selectfield.is-disabled & {\n    border-bottom: 1px dotted $input-text-disabled-color;\n    color: $input-text-disabled-text-color;\n    background-color: transparent;\n  }\n\n  option {\n    color: $text-color-primary;\n    box-sizing: border-box;\n    background-color: inherit;\n  }\n}\n\n// Styling for the label / floating label.\n.mdlext-selectfield__label {\n  box-sizing: border-box;\n  color: $input-text-label-color;\n  font-size: $input-text-font-size;\n  top: ($input-text-padding + $input-text-vertical-spacing);\n  bottom: 0;\n  left: 0;\n  right: 0;\n  pointer-events: none;\n  position: absolute;\n  display: block;\n  width: 100%;\n  overflow: hidden;\n  white-space: nowrap;\n  text-align: left;\n\n  .mdlext-selectfield.is-dirty &,\n  .mdlext-selectfield.has-placeholder & {\n    visibility: hidden;\n  }\n\n  // Floating Label\n  .mdlext-selectfield--floating-label & {\n    @include material-animation-default();\n  }\n\n  .mdlext-selectfield--floating-label.has-placeholder & {\n    transition: none;\n  }\n\n  fieldset[disabled] .mdlext-selectfield &,\n  .mdlext-selectfield.is-disabled.is-disabled & {\n    color: $input-text-disabled-text-color;\n  }\n\n  .mdlext-selectfield--floating-label.is-focused &,\n  .mdlext-selectfield--floating-label.is-dirty.is-dirty &,\n  .mdlext-selectfield--floating-label.has-placeholder & {\n    color: $input-text-highlight-color;\n    font-size: $input-text-floating-label-fontsize;\n    top: $input-text-vertical-spacing - ($input-text-floating-label-fontsize + $input-text-padding);\n    visibility: visible;\n  }\n\n  .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__expandable-holder &,\n  .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__expandable-holder &,\n  .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__expandable-holder & {\n    top: -($input-text-floating-label-fontsize + $input-text-padding);\n  }\n\n  .mdlext-selectfield--floating-label.is-invalid & {\n    color: $input-text-error-color;\n    font-size: $input-text-floating-label-fontsize;\n  }\n\n  // The after label is the colored underline for the Selectfield.\n  &::after {\n    background-color: $input-text-highlight-color;\n    bottom: $input-text-vertical-spacing;\n    content: '';\n    height: 2px;\n    left: 45%;\n    position: absolute;\n    @include material-animation-default();\n\n    visibility: hidden;\n    width: 10px;\n  }\n\n  .mdlext-selectfield.is-focused &::after {\n    left: 0;\n    visibility: visible;\n    width: 100%;\n  }\n\n  .mdlext-selectfield.is-invalid &::after {\n    background-color: $input-text-error-color;\n  }\n}\n\n// SelectField Error.\n.mdlext-selectfield__error {\n  color: $input-text-error-color;\n  font-size: $input-text-floating-label-fontsize;\n  position: absolute;\n  margin-top: 3px;\n  visibility: hidden;\n  display: block;\n\n  .mdlext-selectfield.is-invalid & {\n    visibility: visible;\n  }\n}\n\n// Expandable Holder.\n.mdlext-selectfield__expandable-holder {\n  display: inline-block;\n  position: relative;\n  margin-left: $input-text-button-size;\n\n  @include material-animation-default();\n\n  // Safari (possibly others) need to be convinced that this field is actually\n  // visible, otherwise it cannot be tabbed to nor focused via a <label>.\n  // TODO: In some cases (Retina displays), this is big enough to render the\n  // inner element :(\n  max-width: 0.1px;\n\n  .mdlext-selectfield.is-focused &,\n  .mdlext-selectfield.is-dirty & {\n    // This is an unfortunate hack. Animating between widths in percent (%)\n    // in many browsers (Chrome, Firefox) only animates the inner visual style\n    // of the input - the outer bounding box still 'jumps'.\n    // Thus assume a sensible maximum, and animate to/from that value.\n    max-width: 600px;\n  }\n  .mdlext-selectfield__label::after {\n    bottom: 0;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/selectfield/_selectfield.scss","@charset \"UTF-8\";\n\n/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/* Moved to aria-expanded-toggle.scss\n\n.mdlext-aria-expanded-plus-minus {\n  @include mdlext-aria-expanded-toggle($font-family: inherit);\n}\n\n.mdlext-aria-expanded-more-less {\n  @include mdlext-aria-expanded-toggle($icon: 'expand_more', $icon-expanded: 'expand_less');\n}\n*/\n\n.mdlext-menu-button {\n  box-sizing: border-box;\n  @include typo-menu();\n  text-transform: none;\n  position: relative;\n  height: $button-height;\n  padding: 0 $button-padding;\n  display: flex;\n  align-items: center;\n  align-self: stretch;\n\n  > * {\n    margin: 0;\n    padding: 0 0 0 8px;\n  }\n\n  > *:first-child {\n    padding-left: 0;\n  }\n\n  > *:last-child:not(:only-child):not(.mdlext-menu__item__caption) {\n    margin-left: auto; // If more than one element, push last element to the right\n  }\n\n}\n\n.mdlext-menu-button__caption {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  line-height: 1.2;\n}\n\n.mdlext-menu,\n.mdlext-menu__item {\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  display: flex;\n}\n\n.mdlext-menu {\n  position: absolute; //fixed;\n  background: $default-dropdown-bg-color;\n  z-index: 1000;\n  min-width: 124px;\n  border-radius: 2px;\n  @include shadow-3dp();\n  display: inline-flex;\n  flex-direction: column;\n  padding: 0;\n  overflow: hidden;\n  overflow-y: auto;\n\n  &:focus {\n    outline-offset: -1px;\n    outline-width: 1px;\n  }\n\n  &[hidden] {\n    @include mdlext-visually-hidden;\n    pointer-events: none;\n  }\n\n  &__item {\n    @include typo-body-1();\n    color: $default-item-text-color;\n    background-color: $default-dropdown-bg-color;\n    position: relative;\n    padding: 0 16px 0 24px;\n    align-items: center;\n    align-self: stretch;\n    text-decoration: none;\n    cursor: pointer;\n    white-space: nowrap;\n    user-select: none;\n    min-height: 40px;\n    overflow: hidden;\n\n    &[aria-selected='true'] {\n      background-color: $default-item-active-bg-color;\n    }\n\n    // checkmark\n    &[aria-selected='true']::before {\n      content:'\\2713';\n      position: absolute;\n      font-size: 1.4em;\n      left: 4px;\n      top: 50%;\n      transform: translateY(-50%);\n      pointer-events: none;\n    }\n\n    &:hover:not([disabled]) {\n      background-color: $default-item-hover-bg-color;\n    }\n\n    &:focus {\n      outline-offset: -2px;\n      outline-width: 1px;\n      outline-color: $default-item-outline-color;\n      background-color: $default-item-focus-bg-color;\n    }\n\n    &::-moz-focus-inner {\n      border: 0;\n    }\n\n    &[disabled] {\n      color: $disabled-item-text-color;\n      background-color: transparent;\n      cursor: auto;\n      pointer-events: none;\n\n      > * {\n        color: $disabled-item-text-color;\n      }\n    }\n\n    &__caption {\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n\n    > * {\n      margin: 0;\n      padding: 0 0 0 8px;\n    }\n\n    > *:first-child {\n      padding-left: 0;\n    }\n\n    > *:last-child:not(:only-child):not(.mdlext-menu__item__caption) {\n      margin-left: auto; // If more than one element, push last element to the right\n    }\n\n  }\n  &__item-separator {\n    margin: 0;\n    padding: 0;\n    border-bottom: 1px solid $default-item-divider-color;\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/menu-button/_menu-button.scss","/**\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * The bordered fields are based on / inspired by this CodePen: http://codepen.io/prajwal078/pen/LVJZXz?editors=010\n */\n\n// Use of this module requires the user to include variables from material-design-lite\n//@import \"../../node_modules/material-design-lite/src/variables\";\n//@import \"../../node_modules/material-design-lite/src/mixins\";\n\n@import \"../variables\";\n@import \"../functions\";\n\n\n// \"Theme\" for this styling\n.mdlext-bordered-fields {\n  box-sizing: border-box;\n\n  * {\n    box-sizing: border-box;\n  }\n\n  // Styling for textfield and selectfield.\n  .mdl-textfield,\n  .mdlext-selectfield {\n    padding: 0;\n    margin: $mdlext-bordered-field-vertical-spacing-top 0 $mdlext-bordered-field-vertical-spacing-bottom 0;\n\n    .mdl-textfield__input,\n    .mdlext-selectfield__select {\n      height: $mdlext-bordered-field-height;\n      background-color: $mdlext-bordered-field-background-color;\n      border: $mdlext-bordered-field-border-width solid $mdlext-bordered-field-border-color;\n      border-radius: $mdlext-bordered-field-border-radius;\n      padding: $mdlext-bordered-field-padding-top $mdlext-bordered-field-padding $mdlext-bordered-field-padding-bottom $mdlext-bordered-field-padding;\n      font-size: $mdlext-bordered-field-input-text-font-size;\n      font-weight: $mdlext-bordered-field-font-weight;\n      color: $mdlext-bordered-field-input-text-color;\n\n      &:disabled {\n        color: $mdlext-bordered-field-input-text-disabled-text-color;\n        background-color: $mdlext-bordered-field-disabled-background-color;\n        border-color: $mdlext-bordered-field-disabled-border-color;\n      }\n\n      // MDL can not handle required attribute properly. Planned for MDL-v2\n      //&:required {\n      //  background-color: $mdlext-bordered-field-required-background-color;\n      //  border-color: $mdlext-bordered-field-required-border-color;\n      //}\n\n      &:focus {\n        background-color: $mdlext-bordered-field-focus-background-color;\n        border-color: $mdlext-bordered-field-focus-border-color;\n      }\n\n      // MDL can not handle required. Planned for MDL-v2\n      //&:required:focus {\n      //  background-color: $mdlext-bordered-field-required-focus-background-color;\n      //  border-color: $mdlext-bordered-field-required-focus-border-color;\n      //}\n    }\n    .mdlext-selectfield__select {\n      padding-right: calc(1em + #{$mdlext-bordered-field-padding});  // space for down arrow\n    }\n\n    /*\n    &.is-dirty {\n      .mdl-textfield__input,\n      .mdlext-selectfield__select {\n      }\n    }\n    */\n\n    &.is-invalid {\n      .mdl-textfield__input,\n      .mdlext-selectfield__select {\n        color: $mdlext-bordered-field-input-text-error-color;\n        border-color: $mdlext-bordered-field-error-border-color;\n        background-color: $mdlext-bordered-field-error-background-color;\n\n        &:focus {\n          //&:required:focus {\n          border-color: $mdlext-bordered-field-error-focus-border-color;\n          background-color: $mdlext-bordered-field-error-focus-background-color;\n        }\n      }\n    }\n  }\n\n  .mdlext-selectfield::after {\n    top: auto;\n    bottom: $mdlext-bordered-field-padding-bottom;  // Position of down arrow\n  }\n\n  fieldset[disabled] .mdlext-selectfield::after,\n  .mdlext-selectfield.is-disabled::after {\n    color: $mdlext-bordered-field-input-text-disabled-text-color;\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-bordered-field-input-text-disabled-text-color);\n  }\n\n\n  fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {\n    color: $mdlext-bordered-field-input-text-disabled-text-color;\n    background-color: $mdlext-bordered-field-disabled-background-color;\n    border-color: $mdlext-bordered-field-disabled-border-color;\n  }\n\n\n  // Styling for the label / floating label.\n  .mdl-textfield,\n  .mdlext-selectfield {\n\n    &.is-dirty,\n    &.has-placeholder {\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        visibility: hidden;\n      }\n    }\n    .mdl-textfield__label,\n    .mdlext-selectfield__label {\n      color: $mdlext-bordered-field-input-text-label-color;\n      font-size: $mdlext-bordered-field-label-font-size;\n      font-weight: $mdlext-bordered-field-font-weight;\n      padding-left: $mdlext-bordered-field-padding;\n      top: auto;\n      bottom: $mdlext-bordered-field-padding-bottom;\n\n      // Hides the colored underline for the textField/selectfield.\n      &::after {\n        background-color: transparent !important;\n        visibility: hidden !important;\n      }\n    }\n    &.mdl-textfield--floating-label.is-focused.is-focused,\n    &.mdl-textfield--floating-label.is-dirty.is-dirty,\n    &.mdl-textfield--floating-label.has-placeholder,\n    &.mdlext-selectfield--floating-label.is-focused.is-focused,\n    &.mdlext-selectfield--floating-label.is-dirty.is-dirty,\n    &.mdlext-selectfield--floating-label.has-placeholder {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-bordered-field-input-text-label-focus-color;\n        font-size: $mdlext-bordered-field-floating-label-font-size;\n        font-weight: $mdlext-bordered-field-floating-label-font-weight;\n        top: auto;\n        bottom: $mdlext-bordered-field-floating-label-focus-bottom;\n        visibility: visible;\n      }\n    }\n    &.mdl-textfield--floating-label.is-disabled.is-disabled,\n    &.mdlext-selectfield--floating-label.is-disabled.is-disabled {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-bordered-field-input-text-label-disabled-color;\n      }\n    }\n    &.mdl-textfield--floating-label.is-invalid.is-invalid,\n    &.mdlext-selectfield--floating-label.is-invalid.is-invalid {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-bordered-field-input-text-label-error-color;\n      }\n    }\n  }\n\n  fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n  fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {\n    color: $mdlext-bordered-field-input-text-label-disabled-color;\n  }\n\n  // Icon(s) and/or button(s) inside textfield\n  .mdl-textfield,\n  .mdlext-selectfield {\n    &.mdlext-bordered-fields__icon-left,\n    &.mdlext-bordered-fields__icon-right {\n      & > i,\n      & > .mdl-button {\n        position: absolute;\n        bottom: $mdlext-bordered-field-padding-bottom - 2px;\n      }\n      & > i {\n        bottom: $mdlext-bordered-field-padding-bottom + 2px;\n      }\n    }\n    &.mdlext-bordered-fields__icon-left {\n      & > i:first-child,\n      & > .mdl-button:first-child {\n        left: $mdlext-bordered-field-padding/2;\n      }\n      & > i ~ .mdl-textfield__input,\n      & > .mdl-button ~ .mdl-textfield__input,\n      & > i ~ .mdlext-selectfield__select,\n      & > .mdl-button ~ .mdlext-selectfield__select {\n        padding-left: $input-text-button-size;\n      }\n      & > i ~ .mdl-textfield__label,\n      & > .mdl-button ~ .mdl-textfield__label {\n        left: $input-text-button-size - $mdlext-bordered-field-padding;\n      }\n      & > i ~ .mdlext-selectfield__label,\n      & > .mdl-button ~ .mdlext-selectfield__label {\n        left: $input-text-button-size - $mdlext-bordered-field-padding;\n      }\n    }\n    &.mdlext-bordered-fields__icon-right {\n      & > .mdl-textfield__input {\n        padding-right: $input-text-button-size;\n      }\n      & > i:last-child,\n      & > .mdl-button:last-child {\n        left: auto;\n        right: $mdlext-bordered-field-padding/2;\n      }\n    }\n    &.is-disabled i,\n    &.is-disabled .mdl-button {\n      color: $mdlext-bordered-field-disabled-border-color;\n      pointer-events: none;\n    }\n  }\n\n  fieldset[disabled] .mdl-textfield,\n  fieldset[disabled] .mdlext-selectfield {\n    i,\n    .mdl-button {\n      color: $mdlext-bordered-field-disabled-border-color;\n      pointer-events: none;\n    }\n  }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/bordered-fields/_bordered-fields.scss","@charset \"UTF-8\";\n\n/**\n * @license\n * Copyright 2016-2017 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n.mdlext-collapsible {\n  box-sizing: border-box;\n  cursor: pointer;\n}\n\n.mdlext-collapsible-group,\n.mdlext-collapsible-region {\n  box-sizing: border-box;\n\n  &[hidden] {\n    @include mdlext-visually-hidden;\n    pointer-events: none;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/collapsible/_collapsible.scss","@charset \"UTF-8\";\n\n/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n.mdlext-aria-toggle-plus-minus {\n  @include mdlext-aria-expanded-toggle($font-family: inherit, $font-size: 1.4em);\n}\n\n.mdlext-aria-toggle-material-icons {\n  @include mdlext-aria-expanded-toggle($font-size: 1.3em, $icon: 'expand_more', $icon-expanded: 'expand_less', $icon-offset: -$mdlext-accordion-header-padding);\n}\n\n.mdlext-accordion {\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  display: flex;\n\n  * {\n    box-sizing: border-box;\n  }\n\n  &__panel {\n    box-sizing: border-box;\n    position: relative;\n    overflow: hidden;\n    display: flex;\n    flex-wrap: nowrap;\n  }\n\n  &__tab {\n    @include typo-title();\n\n    font-weight: 400;\n    line-height: 1.1;\n    box-sizing: border-box;\n    position: relative;\n    margin: 0;\n    padding: 0; // $mdlext-accordion-header-padding;\n    min-width: $mdlext-accordion-header-height;\n    min-height: $mdlext-accordion-header-height;\n    display: flex;\n    align-items: center;\n    align-self: stretch;\n    user-select: none;\n    color: $mdlext-accordion-header-secondary-color;\n    background-color: $mdlext-accordion-header-background-color;\n    cursor: pointer;\n    overflow: hidden;\n\n    &:focus {\n      outline-offset: -2px;\n      outline-color: $mdlext-accordion-header-focus-outline-color;\n      outline-width: 2px;\n    }\n\n    &[aria-expanded='true'] {\n      background-color: $mdlext-accordion-header-background-open-color;\n    }\n\n    &[aria-selected='true'] {\n      background-color: $mdlext-accordion-header-background-active-color;\n    }\n\n    &[disabled] {\n      background-color: $mdlext-accordion-header-disabled-color;\n      color: $mdlext-accordion-header-secondary-color-disabled;\n      pointer-events: none;\n\n      > * {\n        color: $mdlext-accordion-header-secondary-color-disabled;\n      }\n    }\n\n    &:hover:not([disabled]) {\n      background-color: $mdlext-accordion-header-background-hover-color;\n    }\n\n    > * {\n      margin: 0;\n      padding: 0;\n    }\n\n    &__caption {\n      padding-left: $mdlext-accordion-header-padding;\n      padding-right: $mdlext-accordion-header-padding;\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis;\n    }\n\n    > *:first-child {\n      padding-left: 0;\n    }\n\n    &--ripple {\n      &[aria-selected='true']::before {\n        content: '';\n        position: absolute;\n        top: 50%;\n        left: 50%;\n        background: $mdlext-accordion-ripple-color;\n        opacity: 0;\n        border-radius: 100%;\n        transform: scale(1, 1) translate(-50%);\n        transform-origin: 50% 50%;\n      }\n      &[aria-selected='true']:focus:not(:active)::before {\n        // http://easings.net/\n        animation: mdlext-accordion-tab-ripple 1s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards; // cubic-bezier(0.4, 0.0, 1, 1); //cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards; //ease-out;\n      }\n    }\n  }\n\n  &__tabpanel {\n    box-sizing: border-box;\n    margin: 0;\n    padding: 0 $mdlext-accordion-content-padding;\n    color: $mdlext-accordion-content-color;\n    background-color: $mdlext-accordion-content-background-color;\n    display: block;\n    overflow: auto;\n    flex-grow: 1;\n\n    &[hidden] {\n      @include mdlext-visually-hidden;\n    }\n  }\n}\n\n// Vertical layout\n.mdlext-accordion {\n\n  &--vertical {\n    flex-direction: column;\n    flex-wrap: nowrap;\n\n    .mdlext-accordion__panel {\n      min-height: $mdlext-accordion-header-height;\n      flex-direction: column;\n    }\n\n    .mdlext-accordion__tab {\n      height: $mdlext-accordion-header-height;\n      border-top: 1px solid $mdlext-accordion-header-border-color;\n      padding-left: $mdlext-accordion-header-padding;\n      padding-right: $mdlext-accordion-header-padding;\n\n      &[aria-selected='true']::after {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        height: 1px;\n        width: 100%;\n        display: block;\n        content: \" \";\n        background-color: $mdlext-accordion-header-highlight-color;\n        animation: border-expand 0.2s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards;\n        transition: all 1s cubic-bezier(0.4, 0.0, 1, 1);\n      }\n\n      > * {\n        padding-left: $mdlext-accordion-header-padding;\n      }\n\n      > *:first-child {\n        padding-left: 0;\n      }\n\n      > *:last-child:not(:only-child):not(.mdlext-accordion__tab__caption) {\n        margin-left: auto; // If more than one element, push last element to the right\n      }\n\n      &--ripple {\n        &[aria-selected='true']::before {\n          width: 5%;\n          height: 10%;\n        }\n      }\n\n    }\n\n    .mdlext-accordion__tabpanel {\n      border-top: 1px solid $mdlext-accordion-header-border-color;\n\n      &--animation {\n        transform: scaleY(1);\n        animation: mdlext-accordion-show-tabpanel-y 0.2s ease-in-out;\n\n        &[hidden] {\n          transform: scaleY(0);\n          animation: mdlext-accordion-hide-tabpanel-y 0.2s ease-out;\n          animation-delay: 0.1s;\n        }\n      }\n    }\n  }\n}\n\n// Horizontal layout\n.mdlext-accordion {\n\n  &--horizontal {\n\n    .mdlext-accordion__panel {\n      min-width: $mdlext-accordion-header-height;\n      width: $mdlext-accordion-header-height;\n    }\n\n    &[aria-multiselectable='true'] .mdlext-accordion__panel.is-expanded {\n      width: 100%;\n    }\n\n    .mdlext-accordion__tab {\n      flex-direction: column-reverse;\n      width: $mdlext-accordion-header-height;\n      white-space: nowrap;\n      border-left: 1px solid $mdlext-accordion-header-border-color;\n\n      &[aria-selected='true']::after {\n        position: absolute;\n        top: 0;\n        right: 0;\n        height: 100%;\n        width: 1px;\n        display: block;\n        content: \" \";\n        background-color: $mdlext-accordion-header-highlight-color;\n\n        // Figure out how to animate a vertical line\n        //animation: border-expand 0.2s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards;\n        //transition: all 1s cubic-bezier(0.4, 0.0, 1, 1);\n      }\n\n      > * {\n        //transform: rotate(-90deg) translateX(50%);\n        transform: rotate(-90deg) translateX($mdlext-accordion-header-padding);\n      }\n\n      > *:last-child:not(:only-child):not(.mdlext-accordion__tab__caption) {\n        // If more than one element, push last element to top\n        margin-bottom: auto;\n        transform: rotate(-90deg) translateX(0);\n      }\n\n      &__caption {\n        transform: rotate(-90deg) translateX(50%);\n        padding-right: $mdlext-accordion-header-padding + 8px;\n      }\n\n      &--ripple {\n        &[aria-selected='true']::before {\n          width: 10%;\n          height: 5%;\n        }\n      }\n    }\n\n    .mdlext-accordion__tabpanel {\n      border-left: 1px solid $mdlext-accordion-header-border-color;\n\n      &--animation {\n        transform: scaleX(1);\n        animation: mdlext-accordion-show-tabpanel-x 0.2s ease-in-out;\n\n        &[hidden] {\n          transform: scaleX(0);\n          animation: mdlext-accordion-hide-tabpanel-x 0.2s ease-out;\n        }\n      }\n    }\n  }\n}\n\n.mdlext-accordion {\n\n  &__panel:first-child > &__tab {\n    // Use container to set outer borders\n    border-top-color: transparent;\n    border-left-color: transparent;\n  }\n\n  &[aria-multiselectable=\"false\"] {\n    .mdlext-accordion__panel.is-expanded {\n      flex-grow: 1;\n    }\n  }\n}\n\n// Making accordion appear disabled.\n// Note: does not prevent tabbing into a disabled accordion\n.mdlext-accordion[disabled] {\n  * {\n    pointer-events: none;\n  }\n  .mdlext-accordion__tab {\n    background-color: $mdlext-accordion-header-disabled-color;\n    color: $mdlext-accordion-header-secondary-color-disabled;\n\n    > * {\n      color: $mdlext-accordion-header-secondary-color-disabled;\n    }\n  }\n  .mdlext-accordion__tabpanel {\n    opacity: 0.8;\n    filter: blur(1px) grayscale(80%);\n  }\n}\n\n\n@keyframes mdlext-accordion-tab-ripple {\n  0% {\n    transform: scale(0, 0);\n    opacity: 1;\n  }\n  20% {\n    transform: scale(25, 25);\n    opacity: 1;\n  }\n  100% {\n    opacity: 0;\n    transform: scale(40, 40);\n  }\n}\n\n/*\n@keyframes mdlext-accordion-show-tabpanel-y {\n  0% { transform: scaleY(0.1); }\n  40% { transform: scaleY(1.03); }\n  60% { transform: scaleY(0.98); }\n  80% { transform: scaleY(1.03); }\n  100% { transform: scaleY(0.98); }\n  80% { transform: scaleY(1.01); }\n  100% { transform: scaleY(1); }\n}\n*/\n\n@keyframes mdlext-accordion-show-tabpanel-y {\n  0% { transform: scaleY(0); }\n  60% { transform: scaleY(1.01); }\n  80% { transform: scaleY(0.98); }\n  100% { transform: scaleY(1); }\n}\n\n@keyframes mdlext-accordion-hide-tabpanel-y {\n  0% { transform: scaleY(1); }\n  60% { transform: scaleY(0.98); }\n  80% { transform: scaleY(1.01); }\n  100% { transform: scaleY(0); }\n}\n\n/*\n@keyframes mdlext-accordion-show-tabpanel-x {\n  0% { transform: scaleX(0.1); }\n  40% { transform: scaleX(1.03); }\n  60% { transform: scaleX(0.98); }\n  80% { transform: scaleX(1.03); }\n  100% { transform: scaleX(0.98); }\n  80% { transform: scaleX(1.01); }\n  100% { transform: scaleX(1); }\n}\n*/\n\n@keyframes mdlext-accordion-show-tabpanel-x {\n  0% { transform: scaleX(0); }\n  60% { transform: scaleX(1.01); }\n  80% { transform: scaleX(0.98); }\n  100% { transform: scaleX(1); }\n}\n\n@keyframes mdlext-accordion-hide-tabpanel-x {\n  0% { transform: scaleX(1); }\n  60% { transform: scaleX(0.98); }\n  80% { transform: scaleX(1.01); }\n  100% { transform: scaleX(0); }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/accordion/_accordion.scss","@import \"color-themes\";\n\n.mdlext-light-color-theme {\n  background-color: $mdlext-light-content-background-color;\n  color: $mdlext-light-text-color-primary;\n\n  a {\n    outline-color: inherit;\n  }\n}\n\n// mdl/src/palette/_palette.scss\n// -----------------------------\n.mdlext-light-color-theme {\n\n  .mdl-color--primary {\n    background-color: $mdlext-light-color-primary !important;\n  }\n\n  .mdl-color--primary-contrast {\n    background-color: $mdlext-light-color-primary-contrast !important;\n  }\n\n  .mdl-color--primary-dark {\n    background-color: $mdlext-light-color-primary-dark !important;\n  }\n\n  .mdl-color--accent {\n    background-color: $mdlext-light-color-accent !important;\n  }\n\n  .mdl-color--accent-contrast {\n    background-color: $mdlext-light-color-accent-contrast !important;\n  }\n\n  .mdl-color-text--primary {\n    color: $mdlext-light-color-primary !important;\n  }\n\n  .mdl-color-text--primary-contrast {\n    color: $mdlext-light-color-primary-contrast !important;\n  }\n\n  .mdl-color-text--primary-dark {\n    color: $mdlext-light-color-primary-dark !important;\n  }\n\n  .mdl-color-text--accent {\n    color: $mdlext-light-color-accent !important;\n  }\n\n  .mdl-color-text--accent-contrast {\n    color: $mdlext-light-color-accent-contrast !important;\n  }\n\n}\n\n// mdl/src/typography/_typography.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n  a {\n    color: $mdlext-light-text-link-color;\n  }\n}\n\n\n// mdl/src/badge/_badge.scss\n// ---------------------------\n.mdlext-light-color-theme {\n  .mdl-badge {\n\n    &[data-badge]::after {\n      background: $mdlext-light-badge-background;\n      color: $mdlext-light-badge-color;\n    }\n\n    &.mdl-badge--no-background {\n      &[data-badge]::after {\n        color: $mdlext-light-badge-color-inverse;\n        background: $mdlext-light-badge-background-inverse;\n      }\n    }\n  }\n}\n\n\n// mdl/src/button/_button.scss\n// ---------------------------\n.mdlext-light-color-theme {\n\n  .mdl-button {\n    background: transparent;\n    color: $mdlext-light-button-secondary-color;\n\n    &:hover {\n      background-color: $mdlext-light-button-hover-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-light-button-focus-color;\n    }\n\n    &:active {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      color: $mdlext-light-button-primary-color-alt;\n\n      &:focus:not(:active) {\n        background-color: $mdlext-light-button-focus-color-alt;\n      }\n    }\n  }\n\n  // Raised buttons\n  .mdl-button--raised {\n    background: $mdlext-light-button-primary-color;\n\n    &:active {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $mdlext-light-button-primary-color-alt;\n      color: $mdlext-light-button-secondary-color-alt;\n\n      &:hover {\n        background-color: $mdlext-light-button-hover-color-alt;\n      }\n\n      &:active {\n        background-color: $mdlext-light-button-active-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $mdlext-light-button-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $mdlext-light-button-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // FABs\n  .mdl-button--fab {\n    background: $mdlext-light-button-primary-color;\n\n    &:active {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-light-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $mdlext-light-button-fab-color-alt;\n      color: $mdlext-light-button-fab-text-color-alt;\n\n      &:hover {\n        background-color: $mdlext-light-button-fab-hover-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $mdlext-light-button-fab-active-color-alt;\n      }\n\n      &:active {\n        background-color: $mdlext-light-button-fab-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $mdlext-light-button-fab-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // Icon buttons\n  .mdl-button--icon {\n    color: inherit;\n  }\n\n  // Colorized buttons\n\n  .mdl-button--primary.mdl-button--primary {\n    color: $mdlext-light-button-primary-color-alt;\n\n    & .mdl-ripple {\n      background: $mdlext-light-button-secondary-color-alt;\n    }\n    &.mdl-button--raised,\n    &.mdl-button--fab {\n      color: $mdlext-light-button-secondary-color-alt;\n      background-color: $mdlext-light-button-primary-color-alt;\n    }\n  }\n\n  .mdl-button--accent.mdl-button--accent {\n    color: $mdlext-light-button-fab-color-alt;\n\n    & .mdl-ripple {\n      background: $mdlext-light-button-fab-text-color-alt;\n    }\n    &.mdl-button--raised,\n    &.mdl-button--fab {\n      color: $mdlext-light-button-fab-text-color-alt;\n      background-color: $mdlext-light-button-fab-color-alt;\n    }\n  }\n\n  // Disabled buttons\n\n  .mdl-button {\n    // Bump up specificity by using [disabled] twice.\n    &[disabled][disabled],\n    &.mdl-button--disabled.mdl-button--disabled {\n      color: $mdlext-light-button-secondary-color-disabled;\n      background-color: transparent;\n    }\n\n    &--fab {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        background-color: $mdlext-light-button-primary-color-disabled;\n        color: $mdlext-light-button-secondary-color-disabled;\n      }\n    }\n\n    &--raised {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        background-color: $mdlext-light-button-primary-color-disabled;\n        color: $mdlext-light-button-secondary-color-disabled;\n      }\n    }\n    &--colored {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        color: $mdlext-light-button-secondary-color-disabled;\n      }\n    }\n  }\n}\n\n// mdl/src/slider/_slider.scss\n// ---------------------------\n.mdlext-light-color-theme {\n  .mdl-slider {\n\n    &.is-upgraded {\n      background: transparent;\n      color: $mdlext-light-range-color;\n\n      &::-webkit-slider-runnable-track {\n        background: transparent;\n      }\n\n      &::-moz-range-track {\n        background: transparent;\n      }\n\n      &::-ms-track {\n        background: none;\n        color: transparent;\n      }\n\n      /* stylelint-disable */\n      &::-ms-fill-lower {\n        background: linear-gradient(to right,\n          transparent,\n          transparent 16px,\n          $mdlext-light-range-color 16px,\n          $mdlext-light-range-color 0);\n      }\n\n      &::-ms-fill-upper {\n        background: linear-gradient(to left,\n          transparent,\n          transparent 16px,\n          $mdlext-light-range-bg-color 16px,\n          $mdlext-light-range-bg-color 0);\n      }\n      /* stylelint-enable */\n\n\n      /**************************** Thumbs ****************************/\n      &::-webkit-slider-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      &::-moz-range-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      &:focus:not(:active)::-webkit-slider-thumb {\n        box-shadow: 0 0 0 10px $mdlext-light-range-faded-color;\n      }\n\n      &:focus:not(:active)::-moz-range-thumb {\n        box-shadow: 0 0 0 10px $mdlext-light-range-faded-color;\n      }\n\n      &:active::-webkit-slider-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      &:active::-moz-range-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      &::-ms-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n      /* stylelint-disable */\n      &:focus:not(:active)::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          $mdlext-light-range-color 0%,\n          $mdlext-light-range-color 37.5%,\n          $mdlext-light-range-faded-color 37.5%,\n          $mdlext-light-range-faded-color 100%);\n      }\n      /* stylelint-enable */\n\n      &:active::-ms-thumb {\n        background: $mdlext-light-range-color;\n      }\n\n\n      /**************************** 0-value ****************************/\n\n      &.is-lowest-value::-webkit-slider-thumb {\n        border-color: $mdlext-light-range-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value::-moz-range-thumb {\n        border-color: $mdlext-light-range-bg-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {\n        box-shadow: 0 0 0 10px $mdlext-light-range-bg-focus-color;\n        background: $mdlext-light-range-bg-focus-color;\n      }\n\n      &.is-lowest-value:focus:not(:active)::-moz-range-thumb {\n        box-shadow: 0 0 0 10px $mdlext-light-range-bg-focus-color;\n        background: $mdlext-light-range-bg-focus-color;\n      }\n\n      &.is-lowest-value:active::-webkit-slider-thumb {\n        border-color: $mdlext-light-range-bg-color;\n      }\n\n      &.is-lowest-value:active::-moz-range-thumb {\n        border-color: $mdlext-light-range-bg-color;\n      }\n\n      /* stylelint-disable */\n      &.is-lowest-value::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 66.67%,\n          $mdlext-light-range-bg-color 66.67%,\n          $mdlext-light-range-bg-color 100%);\n      }\n\n      &.is-lowest-value:focus:not(:active)::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          $mdlext-light-range-bg-focus-color 0%,\n          $mdlext-light-range-bg-focus-color 25%,\n          $mdlext-light-range-bg-color 25%,\n          $mdlext-light-range-bg-color 37.5%,\n          $mdlext-light-range-bg-focus-color 37.5%,\n          $mdlext-light-range-bg-focus-color 100%);\n      }\n\n      &.is-lowest-value:active::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 77.78%,\n          $mdlext-light-range-bg-color 77.78%,\n          $mdlext-light-range-bg-color 100%);\n      }\n      /* stylelint-enable */\n\n      &.is-lowest-value::-ms-fill-lower {\n        background: transparent;\n      }\n\n      /**************************** Disabled ****************************/\n\n      &:disabled:focus::-webkit-slider-thumb,\n      &:disabled:active::-webkit-slider-thumb,\n      &:disabled::-webkit-slider-thumb {\n        background: $mdlext-light-range-bg-color;\n      }\n\n      &:disabled:focus::-moz-range-thumb,\n      &:disabled:active::-moz-range-thumb,\n      &:disabled::-moz-range-thumb {\n        background: $mdlext-light-range-bg-color;\n      }\n\n      &:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {\n        background-color: $mdlext-light-range-bg-color;\n      }\n\n      &.is-lowest-value:disabled:focus::-webkit-slider-thumb,\n      &.is-lowest-value:disabled:active::-webkit-slider-thumb,\n      &.is-lowest-value:disabled::-webkit-slider-thumb {\n        border-color: $mdlext-light-range-bg-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value:disabled:focus::-moz-range-thumb,\n      &.is-lowest-value:disabled:active::-moz-range-thumb,\n      &.is-lowest-value:disabled::-moz-range-thumb {\n        border-color: $mdlext-light-range-bg-color;\n        background: transparent;\n      }\n\n      &:disabled:focus::-ms-thumb,\n      &:disabled:active::-ms-thumb,\n      &:disabled::-ms-thumb {\n        background: $mdlext-light-range-bg-color;\n      }\n\n      /* stylelint-disable */\n      &.is-lowest-value:disabled:focus::-ms-thumb,\n      &.is-lowest-value:disabled:active::-ms-thumb,\n      &.is-lowest-value:disabled::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 50%,\n          $mdlext-light-range-bg-color 50%,\n          $mdlext-light-range-bg-color 100%);\n      }\n\n      &:disabled::-ms-fill-lower {\n        background: linear-gradient(to right,\n          transparent,\n          transparent 25px,\n          $mdlext-light-range-bg-color 25px,\n          $mdlext-light-range-bg-color 0);\n      }\n      /* stylelint-enable */\n\n    }\n  }\n\n  .mdl-slider__background-flex {\n    background: transparent;\n  }\n\n  .mdl-slider__background-lower {\n    background: $mdlext-light-range-color;\n  }\n\n  // This one styles the upper part of the slider track.\n  .mdl-slider__background-upper {\n    background: $mdlext-light-range-bg-color;\n  }\n}\n\n\n// mdl/src/textfield/_textfield.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-textfield__input {\n    border-bottom-color: $mdlext-light-input-text-bottom-border-color;\n  }\n  .mdl-textfield.is-invalid .mdl-textfield__input {\n    border-color: $mdlext-light-input-text-error-color;\n  }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n  .mdl-textfield.is-disabled .mdl-textfield__input {\n    background-color: transparent;\n    border-bottom-color: $mdlext-light-input-text-disabled-color;\n    color: $mdlext-light-input-text-disabled-text-color;\n  }\n  .mdl-textfield__label {\n    color: $mdlext-light-input-text-label-color;\n  }\n  .mdl-textfield__label::after {\n    background-color: $mdlext-light-input-text-highlight-color;\n  }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n  .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {\n    color: $mdlext-light-input-text-disabled-text-color;\n  }\n  .mdl-textfield--floating-label.is-focused .mdl-textfield__label,\n  .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,\n  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {\n    color: $mdlext-light-input-text-highlight-color;\n  }\n  .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {\n    color: $mdlext-light-input-text-error-color;\n  }\n  .mdl-textfield.is-invalid .mdl-textfield__label::after {\n    background-color: $mdlext-light-input-text-error-color;\n  }\n  .mdl-textfield__error {\n    color: $mdlext-light-input-text-error-color;\n  }\n}\n\n\n// mdl/src/checkbox/_checkbox.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-checkbox__box-outline {\n    border-color: $mdlext-light-checkbox-off-color;\n  }\n  .mdl-checkbox.is-checked .mdl-checkbox__box-outline {\n    border-color: $mdlext-light-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,\n  .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {\n    border-color: $mdlext-light-checkbox-disabled-color;\n  }\n\n  .mdl-checkbox__focus-helper {\n    background-color: transparent;\n  }\n  .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {\n    box-shadow: 0 0 0 ($checkbox-button-size / 2) $mdlext-light-checkbox-focus-color;\n    background-color: $mdlext-light-checkbox-focus-color;\n  }\n\n  .mdl-checkbox__tick-outline {\n    background: transparent;\n  }\n  .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {\n    background-color: $mdlext-light-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,\n  .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {\n    background-color: $mdlext-light-checkbox-disabled-color;\n  }\n\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,\n  .mdl-checkbox.is-disabled .mdl-checkbox__label {\n    color: $mdlext-light-checkbox-disabled-color;\n  }\n\n  .mdl-checkbox__ripple-container .mdl-ripple {\n    background: $mdlext-light-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,\n  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n\n}\n\n// mdl/src/radio/_radio.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n  .mdl-radio__outer-circle {\n    border-color: $mdlext-light-radio-off-color;\n  }\n  .mdl-radio.is-checked .mdl-radio__outer-circle {\n    border-color: $mdlext-light-radio-color;\n  }\n  .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,\n  .mdl-radio.is-disabled .mdl-radio__outer-circle {\n    border-color: $mdlext-light-radio-disabled-color;\n  }\n\n  .mdl-radio__inner-circle {\n    background: $mdlext-light-radio-color;\n  }\n  fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,\n  .mdl-radio.is-disabled .mdl-radio__inner-circle {\n    background: $mdlext-light-radio-disabled-color;\n  }\n\n  fieldset[disabled] .mdl-radio .mdl-radio__label,\n  .mdl-radio.is-disabled .mdl-radio__label {\n    color: $mdlext-light-radio-disabled-color;\n  }\n\n  .mdl-radio__ripple-container .mdl-ripple {\n    background: $mdlext-light-radio-color;\n  }\n  fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,\n  .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n// mdl/src/icon-togglr/_icon-toggle.scss\n// ---------------------------------------\n.mdlext-light-color-theme {\n  .mdl-icon-toggle__label {\n    color: $mdlext-light-icon-toggle-color;\n  }\n  .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {\n    color: $mdlext-light-icon-toggle-checked-color;\n  }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {\n    color: $mdlext-light-icon-toggle-disabled-color;\n  }\n  .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {\n    background-color: $mdlext-light-icon-toggle-focus-color;\n  }\n  .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {\n    background-color: $mdlext-light-icon-toggle-checked-focus-color;\n  }\n  .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: $mdlext-light-icon-toggle-color;\n  }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n\n// mdl/src/switch/_switch.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-switch__track {\n    background: $mdlext-light-switch-off-track-color;\n  }\n  .mdl-switch.is-checked .mdl-switch__track {\n    background: $mdlext-light-switch-track-color;\n  }\n  .mdl-switch__track fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__track {\n    background: $mdlext-light-switch-disabled-track-color;\n  }\n\n  .mdl-switch__thumb {\n    background: $mdlext-light-switch-off-thumb-color;\n  }\n  .mdl-switch.is-checked .mdl-switch__thumb {\n    background: $mdlext-light-switch-thumb-color;\n  }\n  .mdl-switch__thumb fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__thumb {\n    background: $mdlext-light-switch-disabled-thumb-color;\n  }\n\n  .mdl-switch__focus-helper {\n    background-color: transparent;\n  }\n  .mdl-switch.is-focused .mdl-switch__focus-helper {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n  .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {\n    box-shadow: 0 0 0 (($switch-ripple-size - $switch-helper-size) / 2) $mdlext-light-switch-faded-color;\n    background-color: $mdlext-light-switch-faded-color;\n  }\n\n  .mdl-switch__label fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__label {\n    color: $mdlext-light-switch-disabled-thumb-color;\n  }\n\n  .mdl-switch__ripple-container .mdl-ripple {\n    background: $mdlext-light-switch-color;\n  }\n  fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,\n  .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n\n// mdl/src/data-table/_data-table.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-data-table {\n    border-color: $mdlext-light-data-table-divider-color;\n    background-color: $mdlext-light-data-table-background-color;\n\n    tbody {\n      tr {\n        &.is-selected {\n          background-color: $mdlext-light-data-table-selection-color;\n        }\n        &:hover {\n          background-color: $mdlext-light-data-table-hover-color;\n        }\n      }\n    }\n    th {\n      color: $data-table-header-color;\n\n      &.mdl-data-table__header--sorted-ascending,\n      &.mdl-data-table__header--sorted-descending {\n        color: $mdlext-light-data-table-header-sorted-color;\n\n        &:hover {\n          &::before {\n            color: $mdlext-light-data-table-header-sorted-icon-hover-color;\n          }\n        }\n      }\n    }\n  }\n}\n\n\n// mdl/src/menu/_menu.scss\n// -----------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-menu__outline {\n    background: $mdlext-light-default-dropdown-bg-color;\n  }\n\n  .mdl-menu__item {\n    color: $mdlext-light-default-item-text-color;\n    background-color: transparent;\n    outline-color: $mdlext-light-default-item-outline-color;\n\n    &--full-bleed-divider {\n      border-bottom-color: $mdlext-light-default-item-divider-color;\n    }\n\n    &[disabled],\n    &[data-mdl-disabled] {\n      color: $mdlext-light-disabled-item-text-color;\n      background-color: transparent;\n\n      &:hover {\n        background-color: transparent;\n      }\n\n      &:focus {\n        background-color: transparent;\n      }\n\n      & .mdl-ripple {\n        background: transparent;\n      }\n    }\n\n    &:hover {\n      background-color: $mdlext-light-default-item-hover-bg-color;\n    }\n\n    &:focus {\n      background-color: $mdlext-light-default-item-focus-bg-color;\n    }\n\n    &:active {\n      background-color: $mdlext-light-default-item-active-bg-color;\n    }\n  }\n}\n\n\n// mdl/src/card/_card.scss\n// ----------------------------------------\n.mdlext-light-color-theme {\n\n  .mdl-card {\n    background: $mdlext-light-card-background-color;\n  }\n\n  .mdl-card__media {\n    background-color: $mdlext-light-card-image-placeholder-color;\n  }\n\n  .mdl-card__title {\n    color: $mdlext-light-card-text-color;\n\n    &.mdl-card--border {\n      border-bottom-color: $mdlext-light-card-border-color;\n    }\n  }\n\n  .mdl-card__title-text {\n    color: inherit;\n  }\n\n  .mdl-card__subtitle-text {\n    color: $mdlext-light-card-subtitle-color;\n  }\n\n  .mdl-card__supporting-text {\n    color: $mdlext-light-card-supporting-text-text-color;\n  }\n\n  .mdl-card__actions {\n    background-color: rgba(0, 0, 0, 0);\n\n    &.mdl-card--border {\n      border-top-color: $mdlext-light-card-border-color;\n    }\n  }\n}\n\n\n// mdlext/src/selectfield/_selectfield.scss\n// ----------------------------------------\n.mdlext-light-color-theme {\n\n  .mdlext-selectfield.is-disabled::after {\n    color: $mdlext-light-input-text-disabled-color;\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-light-input-text-disabled-color);\n  }\n\n  .mdlext-selectfield__select {\n    border-bottom-color: $mdlext-light-input-text-bottom-border-color;\n    color: inherit;\n\n    option {\n      background-color: $mdlext-light-content-background-color;\n      color: $mdlext-light-text-color-primary;\n    }\n  }\n  .mdlext-selectfield.is-invalid .mdlext-selectfield__select {\n    border-color: $mdlext-light-input-text-error-color;\n  }\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,\n  .mdlext-selectfield.is-disabled .mdlext-selectfield__select {\n    background-color: transparent;\n    border-bottom-color: $mdlext-light-input-text-disabled-color;\n    color: $mdlext-light-input-text-disabled-text-color;\n  }\n\n  .mdlext-selectfield__label {\n    color: $mdlext-light-input-text-label-color;\n  }\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,\n  .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {\n    color: $mdlext-light-input-text-disabled-text-color;\n  }\n  .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {\n    color: $mdlext-light-input-text-highlight-color;\n  }\n  .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {\n    color: $mdlext-light-input-text-error-color;\n  }\n  .mdlext-selectfield__label::after {\n    background-color: $mdlext-light-input-text-highlight-color;\n  }\n  .mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {\n    background-color: $mdlext-light-input-text-error-color;\n  }\n\n  .mdlext-selectfield__error {\n    color: $mdlext-light-input-text-error-color;\n  }\n}\n\n// mdlext/src/menu-button/_menu-button.scss\n// ----------------------------------------\n.mdlext-menu.mdlext-light-color-theme {\n  background: $mdlext-light-default-dropdown-bg-color;\n}\n\n.mdlext-light-color-theme {\n\n  .mdlext-menu {\n    background: $mdlext-light-default-dropdown-bg-color;\n\n    &__item {\n      color: $mdlext-light-default-item-text-color;\n      background-color: $mdlext-light-default-dropdown-bg-color;\n\n      &:active,\n      &[aria-selected='true'] {\n        background-color: $mdlext-light-default-item-active-bg-color;\n      }\n      &:hover:not([disabled]) {\n        background-color: $mdlext-light-default-item-hover-bg-color;\n      }\n      &:focus {\n        outline-color: $mdlext-light-default-item-outline-color;\n        background-color: $mdlext-light-default-item-focus-bg-color;\n      }\n      &[disabled] {\n        color: $mdlext-light-disabled-item-text-color;\n\n        > * {\n          color: $mdlext-light-disabled-item-text-color;\n        }\n      }\n    }\n    &__item-separator {\n      border-bottom: 1px solid $mdlext-light-default-item-divider-color;\n    }\n  }\n}\n\n\n// mdlext/src/bordered-fields/_bordered-fields.scss\n// -------------------------------------------------\n.mdlext-light-color-theme {\n\n  .mdlext-bordered-fields {\n\n    .mdl-textfield,\n    .mdlext-selectfield {\n\n      .mdl-textfield__input,\n      .mdlext-selectfield__select {\n        background-color: $mdlext-light-bordered-field-background-color;\n        border-color: $mdlext-light-bordered-field-border-color;\n        color: $mdlext-light-bordered-field-input-text-color;\n\n        &:disabled {\n          color: $mdlext-light-bordered-field-input-text-disabled-text-color;\n          background-color: $mdlext-light-bordered-field-disabled-background-color;\n          border-color: $mdlext-light-bordered-field-disabled-border-color;\n        }\n        &:focus {\n          background-color: $mdlext-light-bordered-field-focus-background-color;\n          border-color: $mdlext-light-bordered-field-focus-border-color;\n        }\n      }\n      &.is-invalid {\n        .mdl-textfield__input,\n        .mdlext-selectfield__select {\n          color: $mdlext-light-bordered-field-input-text-error-color;\n          border-color: $mdlext-light-bordered-field-error-border-color;\n          background-color: $mdlext-light-bordered-field-error-background-color;\n\n          &:focus {\n            border-color: $mdlext-light-bordered-field-error-focus-border-color;\n            background-color: $mdlext-light-bordered-field-error-focus-background-color;\n          }\n        }\n      }\n    }\n\n    fieldset[disabled] .mdlext-selectfield::after,\n    .mdlext-selectfield.is-disabled::after {\n      color: $mdlext-light-bordered-field-input-text-disabled-text-color;\n      @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-light-bordered-field-input-text-disabled-text-color);\n    }\n\n    fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n    fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {\n      color: $mdlext-light-bordered-field-input-text-disabled-text-color;\n      background-color: $mdlext-light-bordered-field-disabled-background-color;\n      border-color: $mdlext-light-bordered-field-disabled-border-color;\n    }\n\n    .mdl-textfield,\n    .mdlext-selectfield {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-light-bordered-field-input-text-label-color;\n      }\n      &.mdl-textfield--floating-label.is-focused.is-focused,\n      &.mdl-textfield--floating-label.is-dirty.is-dirty,\n      &.mdl-textfield--floating-label.has-placeholder,\n      &.mdlext-selectfield--floating-label.is-focused.is-focused,\n      &.mdlext-selectfield--floating-label.is-dirty.is-dirty,\n      &.mdlext-selectfield--floating-label.has-placeholder {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-light-bordered-field-input-text-label-focus-color;\n        }\n      }\n      &.mdl-textfield--floating-label.is-disabled.is-disabled,\n      &.mdlext-selectfield--floating-label.is-disabled.is-disabled {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-light-bordered-field-input-text-label-disabled-color;\n        }\n      }\n      &.mdl-textfield--floating-label.is-invalid.is-invalid,\n      &.mdlext-selectfield--floating-label.is-invalid.is-invalid {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-light-bordered-field-input-text-label-error-color;\n        }\n      }\n    }\n\n    fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n    fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {\n      color: $mdlext-light-bordered-field-input-text-label-disabled-color;\n    }\n\n    // Icon(s) and/or button(s) inside textfield\n    .mdl-textfield,\n    .mdlext-selectfield {\n      &.is-disabled i,\n      &.is-disabled .mdl-button {\n        color: $mdlext-light-bordered-field-disabled-border-color;\n      }\n    }\n    fieldset[disabled] .mdl-textfield,\n    fieldset[disabled] .mdlext-selectfield {\n      i,\n      .mdl-button {\n        color: $mdlext-light-bordered-field-disabled-border-color;\n      }\n    }\n  }\n}\n\n\n// mdlext/src/accordion/_accordion.scss\n// ----------------------------------------\n.mdlext-light-color-theme {\n\n  .mdlext-accordion {\n\n    &__tab {\n      color: $mdlext-light-accordion-header-secondary-color;\n      background-color: $mdlext-light-accordion-header-background-color;\n\n      &:focus {\n        outline-color: $mdlext-light-accordion-header-focus-outline-color;\n      }\n      &[aria-expanded='true'] {\n        background-color: $mdlext-light-accordion-header-background-open-color;\n      }\n      &[aria-selected='true'] {\n        background-color: $mdlext-light-accordion-header-background-active-color;\n      }\n      &[disabled] {\n        background-color: $mdlext-light-accordion-header-disabled-color;\n        color: $mdlext-light-accordion-header-secondary-color-disabled;\n        pointer-events: none;\n\n        > * {\n          color: $mdlext-light-accordion-header-secondary-color-disabled;\n        }\n      }\n      &:hover:not([disabled]) {\n        background-color: $mdlext-light-accordion-header-background-hover-color;\n      }\n      &--ripple {\n        &[aria-selected='true']::before {\n          background: $mdlext-light-accordion-ripple-color;\n        }\n      }\n    }\n\n    &__tabpanel {\n      color: $mdlext-light-accordion-content-color;\n      background-color: $mdlext-light-accordion-content-background-color;\n    }\n  }\n\n  // Vertical layout\n  .mdlext-accordion {\n\n    &--vertical {\n\n      .mdlext-accordion__tab {\n        border-top: 1px solid $mdlext-light-accordion-header-border-color;\n\n        &[aria-selected='true']::after {\n          background-color: $mdlext-light-accordion-header-highlight-color;\n        }\n      }\n      .mdlext-accordion__tabpanel {\n        border-top: 1px solid $mdlext-light-accordion-header-border-color;\n      }\n    }\n  }\n\n  // Horizontal layout\n  .mdlext-accordion {\n\n    &--horizontal {\n\n      .mdlext-accordion__tab {\n        border-left: 1px solid $mdlext-light-accordion-header-border-color;\n\n        &[aria-selected='true']::after {\n          background-color: $mdlext-light-accordion-header-highlight-color;\n        }\n      }\n      .mdlext-accordion__tabpanel {\n        border-left: 1px solid $mdlext-light-accordion-header-border-color;\n      }\n    }\n  }\n\n  .mdlext-accordion {\n\n    &__panel:first-child > &__tab {\n      // Use container to set outer borders\n      border-top-color: transparent;\n      border-left-color: transparent;\n    }\n  }\n\n  // Making accordion appear disabled.\n  // Note: does not prevent tabbing into a disabled accordion\n  .mdlext-accordion[disabled] {\n    .mdlext-accordion__tab {\n      background-color: $mdlext-light-accordion-header-disabled-color;\n      color: $mdlext-light-accordion-header-secondary-color-disabled;\n\n      > * {\n        color: $mdlext-light-accordion-header-secondary-color-disabled;\n      }\n    }\n    .mdlext-accordion__tabpanel {\n      opacity: 0.8;\n      filter: blur(1px) grayscale(80%);\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/color-themes/_light-color-theme.scss","@import \"color-themes\";\n\n.mdlext-dark-color-theme {\n  background-color: $mdlext-dark-content-background-color;\n  color: $mdlext-dark-text-color-primary;\n  a {\n    outline-color: inherit;\n  }\n}\n\n// mdl/src/palette/_palette.scss\n.mdlext-dark-color-theme {\n\n  .mdl-color--primary {\n    background-color: $mdlext-dark-color-primary !important;\n  }\n\n  .mdl-color--primary-contrast {\n    background-color: $mdlext-dark-color-primary-contrast !important;\n  }\n\n  .mdl-color--primary-dark {\n    background-color: $mdlext-dark-color-primary-dark !important;\n  }\n\n  .mdl-color--accent {\n    background-color: $mdlext-dark-color-accent !important;\n  }\n\n  .mdl-color--accent-contrast {\n    background-color: $mdlext-dark-color-accent-contrast !important;\n  }\n\n  .mdl-color-text--primary {\n    color: $mdlext-dark-color-primary !important;\n  }\n\n  .mdl-color-text--primary-contrast {\n    color: $mdlext-dark-color-primary-contrast !important;\n  }\n\n  .mdl-color-text--primary-dark {\n    color: $mdlext-dark-color-primary-dark !important;\n  }\n\n  .mdl-color-text--accent {\n    color: $mdlext-dark-color-accent !important;\n  }\n\n  .mdl-color-text--accent-contrast {\n    color: $mdlext-dark-color-accent-contrast !important;\n  }\n\n}\n\n// mdl/src/typography/_typography.scss\n.mdlext-dark-color-theme {\n  a {\n    color: $mdlext-dark-text-link-color;\n  }\n}\n\n\n// mdl/src/badge/_badge.scss\n// ---------------------------\n.mdlext-dark-color-theme {\n  .mdl-badge {\n\n    &[data-badge]::after {\n      background: $mdlext-dark-badge-background;\n      color: $mdlext-dark-badge-color;\n    }\n\n    &.mdl-badge--no-background {\n      &[data-badge]::after {\n        color: $mdlext-dark-badge-color-inverse;\n        background: $mdlext-dark-badge-background-inverse;\n      }\n    }\n  }\n}\n\n\n// mdl/src/button/_button.scss\n// ---------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-button {\n    background: transparent;\n    color: $mdlext-dark-button-secondary-color;\n\n    &:hover {\n      background-color: $mdlext-dark-button-hover-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-dark-button-focus-color;\n    }\n\n    &:active {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      color: $mdlext-dark-button-primary-color-alt;\n\n      &:focus:not(:active) {\n        background-color: $mdlext-dark-button-focus-color-alt;\n      }\n    }\n  }\n\n  // Raised buttons\n  .mdl-button--raised {\n    background: $mdlext-dark-button-primary-color;\n\n    &:active {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $mdlext-dark-button-primary-color-alt;\n      color: $mdlext-dark-button-secondary-color-alt;\n\n      &:hover {\n        background-color: $mdlext-dark-button-hover-color-alt;\n      }\n\n      &:active {\n        background-color: $mdlext-dark-button-active-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $mdlext-dark-button-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $mdlext-dark-button-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // FABs\n  .mdl-button--fab {\n    background: $mdlext-dark-button-primary-color;\n\n    &:active {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &:focus:not(:active) {\n      background-color: $mdlext-dark-button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $mdlext-dark-button-fab-color-alt;\n      color: $mdlext-dark-button-fab-text-color-alt;\n\n      &:hover {\n        background-color: $mdlext-dark-button-fab-hover-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $mdlext-dark-button-fab-active-color-alt;\n      }\n\n      &:active {\n        background-color: $mdlext-dark-button-fab-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $mdlext-dark-button-fab-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // Icon buttons\n  .mdl-button--icon {\n    color: inherit;\n  }\n\n  // Colorized buttons\n\n  .mdl-button--primary.mdl-button--primary {\n    color: $mdlext-dark-button-primary-color-alt;\n\n    & .mdl-ripple {\n      background: $mdlext-dark-button-secondary-color-alt;\n    }\n    &.mdl-button--raised,\n    &.mdl-button--fab {\n      color: $mdlext-dark-button-secondary-color-alt;\n      background-color: $mdlext-dark-button-primary-color-alt;\n    }\n  }\n\n  .mdl-button--accent.mdl-button--accent {\n    color: $mdlext-dark-button-fab-color-alt;\n\n    & .mdl-ripple {\n      background: $mdlext-dark-button-fab-text-color-alt;\n    }\n    &.mdl-button--raised,\n    &.mdl-button--fab {\n      color: $mdlext-dark-button-fab-text-color-alt;\n      background-color: $mdlext-dark-button-fab-color-alt;\n    }\n  }\n\n  // Disabled buttons\n\n  .mdl-button {\n    // Bump up specificity by using [disabled] twice.\n    &[disabled][disabled],\n    &.mdl-button--disabled.mdl-button--disabled {\n      color: $mdlext-dark-button-secondary-color-disabled;\n      background-color: transparent;\n    }\n\n    &--fab {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        background-color: $mdlext-dark-button-primary-color-disabled;\n        color: $mdlext-dark-button-secondary-color-disabled;\n      }\n    }\n\n    &--raised {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        background-color: $mdlext-dark-button-primary-color-disabled;\n        color: $mdlext-dark-button-secondary-color-disabled;\n      }\n    }\n    &--colored {\n      // Bump up specificity by using [disabled] twice.\n      &[disabled][disabled],\n      &.mdl-button--disabled.mdl-button--disabled {\n        color: $mdlext-dark-button-secondary-color-disabled;\n      }\n    }\n  }\n}\n\n\n// mdl/src/slider/_slider.scss\n// ---------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-slider {\n\n    &.is-upgraded {\n      background: transparent;\n      color: $mdlext-dark-range-color;\n\n      &::-webkit-slider-runnable-track {\n        background: transparent;\n      }\n\n      &::-moz-range-track {\n        background: transparent;\n      }\n\n      &::-ms-track {\n        background: none;\n        color: transparent;\n      }\n\n      /* stylelint-disable */\n      &::-ms-fill-lower {\n        background: linear-gradient(\n          to right,\n          transparent,\n          transparent 16px,\n          $mdlext-dark-range-color 16px,\n          $mdlext-dark-range-color 0\n        );\n      }\n\n      &::-ms-fill-upper {\n        background: linear-gradient(\n          to left,\n          transparent,\n          transparent 16px,\n          $mdlext-dark-range-bg-color 16px,\n          $mdlext-dark-range-bg-color 0);\n      }\n      /* stylelint-enable */\n\n      &::-webkit-slider-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      &::-moz-range-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      &:focus:not(:active)::-webkit-slider-thumb {\n        box-shadow: 0 0 0 10px $mdlext-dark-range-faded-color;\n      }\n\n      &:focus:not(:active)::-moz-range-thumb {\n        box-shadow: 0 0 0 10px $mdlext-dark-range-faded-color;\n      }\n\n      &:active::-webkit-slider-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      &:active::-moz-range-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      &::-ms-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n      /* stylelint-disable */\n      &:focus:not(:active)::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          $mdlext-dark-range-color 0%,\n          $mdlext-dark-range-color 37.5%,\n          $mdlext-dark-range-faded-color 37.5%,\n          $mdlext-dark-range-faded-color 100%);\n      }\n      /* stylelint-enable */\n\n      &:active::-ms-thumb {\n        background: $mdlext-dark-range-color;\n      }\n\n\n      /**************************** 0-value ****************************/\n\n      &.is-lowest-value::-webkit-slider-thumb {\n        border-color: $mdlext-dark-range-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value::-moz-range-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {\n        box-shadow: 0 0 0 10px $mdlext-dark-range-bg-focus-color;\n        background: $mdlext-dark-range-bg-focus-color;\n      }\n\n      &.is-lowest-value:focus:not(:active)::-moz-range-thumb {\n        box-shadow: 0 0 0 10px $mdlext-dark-range-bg-focus-color;\n        background: $mdlext-dark-range-bg-focus-color;\n      }\n\n      &.is-lowest-value:active::-webkit-slider-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n      }\n\n      &.is-lowest-value:active::-moz-range-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n      }\n\n      /* stylelint-disable */\n      &.is-lowest-value::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 66.67%,\n          $mdlext-dark-range-bg-color 66.67%,\n          $mdlext-dark-range-bg-color 100%);\n      }\n\n      &.is-lowest-value:focus:not(:active)::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          $mdlext-dark-range-bg-focus-color 0%,\n          $mdlext-dark-range-bg-focus-color 25%,\n          $mdlext-dark-range-bg-color 25%,\n          $mdlext-dark-range-bg-color 37.5%,\n          $mdlext-dark-range-bg-focus-color 37.5%,\n          $mdlext-dark-range-bg-focus-color 100%);\n      }\n\n      &.is-lowest-value:active::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 77.78%,\n          $mdlext-dark-range-bg-color 77.78%,\n          $mdlext-dark-range-bg-color 100%);\n      }\n      /* stylelint-enable */\n\n      &.is-lowest-value::-ms-fill-lower {\n        background: transparent;\n      }\n\n      /**************************** Disabled ****************************/\n\n      &:disabled:focus::-webkit-slider-thumb,\n      &:disabled:active::-webkit-slider-thumb,\n      &:disabled::-webkit-slider-thumb {\n        background: $mdlext-dark-range-bg-color;\n      }\n\n      &:disabled:focus::-moz-range-thumb,\n      &:disabled:active::-moz-range-thumb,\n      &:disabled::-moz-range-thumb {\n        background: $mdlext-dark-range-bg-color;\n      }\n\n      &:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {\n        background-color: $mdlext-dark-range-bg-color;\n      }\n\n      &.is-lowest-value:disabled:focus::-webkit-slider-thumb,\n      &.is-lowest-value:disabled:active::-webkit-slider-thumb,\n      &.is-lowest-value:disabled::-webkit-slider-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n        background: transparent;\n      }\n\n      &.is-lowest-value:disabled:focus::-moz-range-thumb,\n      &.is-lowest-value:disabled:active::-moz-range-thumb,\n      &.is-lowest-value:disabled::-moz-range-thumb {\n        border-color: $mdlext-dark-range-bg-color;\n        background: transparent;\n      }\n\n      &:disabled:focus::-ms-thumb,\n      &:disabled:active::-ms-thumb,\n      &:disabled::-ms-thumb {\n        background: $mdlext-dark-range-bg-color;\n      }\n\n      /* stylelint-disable */\n      &.is-lowest-value:disabled:focus::-ms-thumb,\n      &.is-lowest-value:disabled:active::-ms-thumb,\n      &.is-lowest-value:disabled::-ms-thumb {\n        background: radial-gradient(circle closest-side,\n          transparent 0%,\n          transparent 50%,\n          $mdlext-dark-range-bg-color 50%,\n          $mdlext-dark-range-bg-color 100%);\n      }\n\n      &:disabled::-ms-fill-lower {\n        background: linear-gradient(to right,\n          transparent,\n          transparent 25px,\n          $mdlext-dark-range-bg-color 25px,\n          $mdlext-dark-range-bg-color 0);\n      }\n      /* stylelint-enable */\n\n    }\n  }\n\n  .mdl-slider__background-flex {\n    background: transparent;\n  }\n\n  .mdl-slider__background-lower {\n    background: $mdlext-dark-range-color;\n  }\n\n  // This one styles the upper part of the slider track.\n  .mdl-slider__background-upper {\n    background: $mdlext-dark-range-bg-color;\n  }\n}\n\n\n// mdl/src/textfield/_textfield.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-textfield__input {\n    border-bottom-color: $mdlext-dark-input-text-bottom-border-color;\n  }\n  .mdl-textfield.is-invalid .mdl-textfield__input {\n    border-color: $mdlext-dark-input-text-error-color;\n  }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n  .mdl-textfield.is-disabled .mdl-textfield__input {\n    background-color: transparent;\n    border-bottom-color: $mdlext-dark-input-text-disabled-color;\n    color: $mdlext-dark-input-text-disabled-text-color;\n  }\n  .mdl-textfield__label {\n    color: $mdlext-dark-input-text-label-color;\n  }\n  .mdl-textfield__label::after {\n    background-color: $mdlext-dark-input-text-highlight-color;\n  }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n  .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {\n    color: $mdlext-dark-input-text-disabled-text-color;\n  }\n  .mdl-textfield--floating-label.is-focused .mdl-textfield__label,\n  .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,\n  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {\n    color: $mdlext-dark-input-text-highlight-color;\n  }\n  .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {\n    color: $mdlext-dark-input-text-error-color;\n  }\n  .mdl-textfield.is-invalid .mdl-textfield__label::after {\n    background-color: $mdlext-dark-input-text-error-color;\n  }\n  .mdl-textfield__error {\n    color: $mdlext-dark-input-text-error-color;\n  }\n}\n\n\n// mdl/src/checkbox/_checkbox.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-checkbox__box-outline {\n    border-color: $mdlext-dark-checkbox-off-color;\n  }\n  .mdl-checkbox.is-checked .mdl-checkbox__box-outline {\n    border-color: $mdlext-dark-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,\n  .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {\n    border-color: $mdlext-dark-checkbox-disabled-color;\n  }\n\n  .mdl-checkbox__focus-helper {\n    background-color: transparent;\n  }\n  .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {\n    box-shadow: 0 0 0 ($checkbox-button-size / 2) $mdlext-dark-checkbox-focus-color;\n    background-color: $mdlext-dark-checkbox-focus-color;\n  }\n\n  .mdl-checkbox__tick-outline {\n    background: transparent;\n  }\n  .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {\n    background-color: $mdlext-dark-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,\n  .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {\n    background-color: $mdlext-dark-checkbox-disabled-color;\n  }\n\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,\n  .mdl-checkbox.is-disabled .mdl-checkbox__label {\n    color: $mdlext-dark-checkbox-disabled-color;\n  }\n\n  .mdl-checkbox__ripple-container .mdl-ripple {\n    background: $mdlext-dark-checkbox-color;\n  }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,\n  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n\n}\n\n// mdl/src/radio/_radio.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n  .mdl-radio__outer-circle {\n    border-color: $mdlext-dark-radio-off-color;\n  }\n  .mdl-radio.is-checked .mdl-radio__outer-circle {\n    border-color: $mdlext-dark-radio-color;\n  }\n  .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,\n  .mdl-radio.is-disabled .mdl-radio__outer-circle {\n    border-color: $mdlext-dark-radio-disabled-color;\n  }\n\n  .mdl-radio__inner-circle {\n    background: $mdlext-dark-radio-color;\n  }\n  fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,\n  .mdl-radio.is-disabled .mdl-radio__inner-circle {\n    background: $mdlext-dark-radio-disabled-color;\n  }\n\n  fieldset[disabled] .mdl-radio .mdl-radio__label,\n  .mdl-radio.is-disabled .mdl-radio__label {\n    color: $mdlext-dark-radio-disabled-color;\n  }\n\n  .mdl-radio__ripple-container .mdl-ripple {\n    background: $mdlext-dark-radio-color;\n  }\n  fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,\n  .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n// mdl/src/icon-togglr/_icon-toggle.scss\n// ---------------------------------------\n.mdlext-dark-color-theme {\n  .mdl-icon-toggle__label {\n    color: $mdlext-dark-icon-toggle-color;\n  }\n  .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {\n    color: $mdlext-dark-icon-toggle-checked-color;\n  }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {\n    color: $mdlext-dark-icon-toggle-disabled-color;\n  }\n  .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {\n    background-color: $mdlext-dark-icon-toggle-focus-color;\n  }\n  .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {\n    background-color: $mdlext-dark-icon-toggle-checked-focus-color;\n  }\n  .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: $mdlext-dark-icon-toggle-color;\n  }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n}\n\n\n// mdl/src/switch/_switch.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-switch__track {\n    background: $mdlext-dark-switch-off-track-color;\n  }\n  .mdl-switch.is-checked .mdl-switch__track {\n    background: $mdlext-dark-switch-track-color;\n  }\n  .mdl-switch__track fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__track {\n    background: $mdlext-dark-switch-disabled-track-color;\n  }\n\n  .mdl-switch__thumb {\n    background: $mdlext-dark-switch-off-thumb-color;\n  }\n  .mdl-switch.is-checked .mdl-switch__thumb {\n    background: $mdlext-dark-switch-thumb-color;\n  }\n  .mdl-switch__thumb fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__thumb {\n    background: $mdlext-dark-switch-disabled-thumb-color;\n  }\n\n  .mdl-switch__focus-helper {\n    background-color: transparent;\n  }\n  .mdl-switch.is-focused .mdl-switch__focus-helper {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n  .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {\n    box-shadow: 0 0 0 (($switch-ripple-size - $switch-helper-size) / 2) $mdlext-dark-switch-faded-color;\n    background-color: $mdlext-dark-switch-faded-color;\n  }\n\n  .mdl-switch__label fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__label {\n    color: $mdlext-dark-switch-disabled-thumb-color;\n  }\n\n  .mdl-switch__ripple-container .mdl-ripple {\n    background: $mdlext-dark-switch-color;\n  }\n  fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,\n  .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {\n    background: transparent;\n  }\n\n}\n\n\n// mdl/src/data-table/_data-table.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-data-table {\n    border-color: $mdlext-dark-data-table-divider-color;\n    background-color: $mdlext-dark-data-table-background-color;\n\n    tbody {\n      tr {\n        &.is-selected {\n          background-color: $mdlext-dark-data-table-selection-color;\n        }\n\n        &:hover {\n          background-color: $mdlext-dark-data-table-hover-color;\n        }\n      }\n    }\n\n    th {\n      color: $mdlext-dark-data-table-header-color;\n\n      &.mdl-data-table__header--sorted-ascending,\n      &.mdl-data-table__header--sorted-descending {\n        color: $mdlext-dark-data-table-header-sorted-color;\n\n        &:hover {\n          &::before {\n            color: $mdlext-dark-data-table-header-sorted-icon-hover-color;\n          }\n        }\n      }\n    }\n  }\n}\n\n// mdl/src/menu/_menu.scss\n// -----------------------------------\n.mdlext-dark-color-theme {\n\n  .mdl-menu__outline {\n    background: $mdlext-dark-default-dropdown-bg-color;\n  }\n\n  .mdl-menu__item {\n    color: $mdlext-dark-default-item-text-color;\n    background-color: transparent;\n    outline-color: $mdlext-dark-default-item-outline-color;\n\n    &--full-bleed-divider {\n      border-bottom-color: $mdlext-dark-default-item-divider-color;\n    }\n\n    &[disabled],\n    &[data-mdl-disabled] {\n      color: $mdlext-dark-disabled-item-text-color;\n      background-color: transparent;\n\n      &:hover {\n        background-color: transparent;\n      }\n\n      &:focus {\n        background-color: transparent;\n      }\n\n      & .mdl-ripple {\n        background: transparent;\n      }\n    }\n\n    &:hover {\n      background-color: $mdlext-dark-default-item-hover-bg-color;\n    }\n\n    &:focus {\n      background-color: $mdlext-dark-default-item-focus-bg-color;\n    }\n\n    &:active {\n      background-color: $mdlext-dark-default-item-active-bg-color;\n    }\n  }\n}\n\n// mdl/src/card/_card.scss\n// ----------------------------------------\n.mdlext-dark-color-theme {\n  .mdl-card {\n    background: $mdlext-dark-card-background-color;\n  }\n\n  .mdl-card__media {\n    background-color: $mdlext-dark-card-image-placeholder-color;\n  }\n\n  .mdl-card__title {\n    color: $mdlext-dark-card-text-color;\n\n    &.mdl-card--border {\n      border-bottom-color: $mdlext-dark-card-border-color;\n    }\n  }\n\n  .mdl-card__title-text {\n    color: inherit;\n  }\n\n  .mdl-card__subtitle-text {\n    color: $mdlext-dark-card-subtitle-color;\n  }\n\n  .mdl-card__supporting-text {\n    color: $mdlext-dark-card-supporting-text-text-color;\n  }\n\n  .mdl-card__actions {\n    background-color: rgba(255, 255, 255, 0);\n\n    &.mdl-card--border {\n      border-top-color: $mdlext-dark-card-border-color;\n    }\n  }\n}\n\n\n// mdlext/src/selectfield/_selectfield.scss\n// ----------------------------------------\n.mdlext-dark-color-theme {\n\n  .mdlext-selectfield.is-disabled::after {\n    color: $mdlext-dark-input-text-disabled-color;\n    @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-dark-input-text-disabled-color);\n  }\n\n  .mdlext-selectfield__select {\n    border-bottom-color: $mdlext-dark-input-text-bottom-border-color;\n    color: inherit;\n\n    option {\n      background-color: $mdlext-dark-content-background-color;\n      color: $mdlext-dark-text-color-primary;\n    }\n  }\n  .mdlext-selectfield.is-invalid .mdlext-selectfield__select {\n    border-color: $mdlext-dark-input-text-error-color;\n  }\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,\n  .mdlext-selectfield.is-disabled .mdlext-selectfield__select {\n    background-color: transparent;\n    border-bottom-color: $mdlext-dark-input-text-disabled-color;\n    color: $mdlext-dark-input-text-disabled-text-color;\n  }\n\n  .mdlext-selectfield__label {\n    color: $mdlext-dark-input-text-label-color;\n  }\n  fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,\n  .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {\n    color: $mdlext-dark-input-text-disabled-text-color;\n  }\n  .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,\n  .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {\n    color: $mdlext-dark-input-text-highlight-color;\n  }\n  .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {\n    color: $mdlext-dark-input-text-error-color;\n  }\n  .mdlext-selectfield__label::after {\n    background-color: $mdlext-dark-input-text-highlight-color;\n  }\n  .mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {\n    background-color: $mdlext-dark-input-text-error-color;\n  }\n\n  .mdlext-selectfield__error {\n    color: $mdlext-dark-input-text-error-color;\n  }\n}\n\n\n// mdlext/src/menu-button/_menu-button.scss\n// ----------------------------------------\n.mdlext-menu.mdlext-dark-color-theme {\n  background: $mdlext-dark-default-dropdown-bg-color;\n}\n\n.mdlext-dark-color-theme {\n\n  .mdlext-menu {\n    background: $mdlext-dark-default-dropdown-bg-color;\n\n    &__item {\n      color: $mdlext-dark-default-item-text-color;\n      background-color: $mdlext-dark-default-dropdown-bg-color;\n\n      &:active,\n      &[aria-selected='true'] {\n        background-color: $mdlext-dark-default-item-active-bg-color;\n      }\n      &:hover:not([disabled]) {\n        background-color: $mdlext-dark-default-item-hover-bg-color;\n      }\n      &:focus {\n        outline-color: $mdlext-dark-default-item-outline-color;\n        background-color: $mdlext-dark-default-item-focus-bg-color;\n      }\n      &[disabled] {\n        color: $mdlext-dark-disabled-item-text-color;\n\n        > * {\n          color: $mdlext-dark-disabled-item-text-color;\n        }\n      }\n    }\n    &__item-separator {\n      border-bottom: 1px solid $mdlext-dark-default-item-divider-color;\n    }\n  }\n}\n\n\n// mdlext/src/bordered-fields/_bordered-fields.scss\n// -------------------------------------------------\n.mdlext-dark-color-theme {\n\n  .mdlext-bordered-fields {\n\n    .mdl-textfield,\n    .mdlext-selectfield {\n\n      .mdl-textfield__input,\n      .mdlext-selectfield__select {\n        background-color: $mdlext-dark-bordered-field-background-color;\n        border-color: $mdlext-dark-bordered-field-border-color;\n        color: $mdlext-dark-bordered-field-input-text-color;\n\n        &:disabled {\n          color: $mdlext-dark-bordered-field-input-text-disabled-text-color;\n          background-color: $mdlext-dark-bordered-field-disabled-background-color;\n          border-color: $mdlext-dark-bordered-field-disabled-border-color;\n        }\n        &:focus {\n          background-color: $mdlext-dark-bordered-field-focus-background-color;\n          border-color: $mdlext-dark-bordered-field-focus-border-color;\n        }\n      }\n      &.is-invalid {\n        .mdl-textfield__input,\n        .mdlext-selectfield__select {\n          color: $mdlext-dark-bordered-field-input-text-error-color;\n          border-color: $mdlext-dark-bordered-field-error-border-color;\n          background-color: $mdlext-dark-bordered-field-error-background-color;\n\n          &:focus {\n            border-color: $mdlext-dark-bordered-field-error-focus-border-color;\n            background-color: $mdlext-dark-bordered-field-error-focus-background-color;\n          }\n        }\n      }\n    }\n\n    fieldset[disabled] .mdlext-selectfield::after,\n    .mdlext-selectfield.is-disabled::after {\n      color: $mdlext-dark-bordered-field-input-text-disabled-text-color;\n      @include mdlext-arrow(bottom, $mdlext-selectfield-arrow-width, $mdlext-selectfield-arrow-length, $mdlext-dark-bordered-field-input-text-disabled-text-color);\n    }\n\n    fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n    fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {\n      color: $mdlext-dark-bordered-field-input-text-disabled-text-color;\n      background-color: $mdlext-dark-bordered-field-disabled-background-color;\n      border-color: $mdlext-dark-bordered-field-disabled-border-color;\n    }\n\n    .mdl-textfield,\n    .mdlext-selectfield {\n\n      .mdl-textfield__label,\n      .mdlext-selectfield__label {\n        color: $mdlext-dark-bordered-field-input-text-label-color;\n      }\n      &.mdl-textfield--floating-label.is-focused.is-focused,\n      &.mdl-textfield--floating-label.is-dirty.is-dirty,\n      &.mdl-textfield--floating-label.has-placeholder,\n      &.mdlext-selectfield--floating-label.is-focused.is-focused,\n      &.mdlext-selectfield--floating-label.is-dirty.is-dirty,\n      &.mdlext-selectfield--floating-label.has-placeholder {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-dark-bordered-field-input-text-label-focus-color;\n        }\n      }\n      &.mdl-textfield--floating-label.is-disabled.is-disabled,\n      &.mdlext-selectfield--floating-label.is-disabled.is-disabled {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-dark-bordered-field-input-text-label-disabled-color;\n        }\n      }\n      &.mdl-textfield--floating-label.is-invalid.is-invalid,\n      &.mdlext-selectfield--floating-label.is-invalid.is-invalid {\n\n        .mdl-textfield__label,\n        .mdlext-selectfield__label {\n          color: $mdlext-dark-bordered-field-input-text-label-error-color;\n        }\n      }\n    }\n\n    fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n    fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {\n      color: $mdlext-dark-bordered-field-input-text-label-disabled-color;\n    }\n\n    // Icon(s) and/or button(s) inside textfield\n    .mdl-textfield,\n    .mdlext-selectfield {\n      &.is-disabled i,\n      &.is-disabled .mdl-button {\n        color: $mdlext-dark-bordered-field-disabled-border-color;\n      }\n    }\n    fieldset[disabled] .mdl-textfield,\n    fieldset[disabled] .mdlext-selectfield {\n      i,\n      .mdl-button {\n        color: $mdlext-dark-bordered-field-disabled-border-color;\n      }\n    }\n  }\n\n}\n\n\n// mdlext/src/accordion/_accordion.scss\n// ----------------------------------------\n.mdlext-dark-color-theme {\n\n  .mdlext-accordion {\n\n    &__tab {\n      color: $mdlext-dark-accordion-header-secondary-color;\n      background-color: $mdlext-dark-accordion-header-background-color;\n\n      &:focus {\n        outline-color: $mdlext-dark-accordion-header-focus-outline-color;\n      }\n      &[aria-expanded='true'] {\n        background-color: $mdlext-dark-accordion-header-background-open-color;\n      }\n      &[aria-selected='true'] {\n        background-color: $mdlext-dark-accordion-header-background-active-color;\n      }\n      &[disabled] {\n        background-color: $mdlext-dark-accordion-header-disabled-color;\n        color: $mdlext-dark-accordion-header-secondary-color-disabled;\n        pointer-events: none;\n\n        > * {\n          color: $mdlext-dark-accordion-header-secondary-color-disabled;\n        }\n      }\n      &:hover:not([disabled]) {\n        background-color: $mdlext-dark-accordion-header-background-hover-color;\n      }\n      &--ripple {\n        &[aria-selected='true']::before {\n          background: $mdlext-dark-accordion-ripple-color;\n        }\n      }\n    }\n\n    &__tabpanel {\n      color: $mdlext-dark-accordion-content-color;\n      background-color: $mdlext-dark-accordion-content-background-color;\n    }\n  }\n\n  // Vertical layout\n  .mdlext-accordion {\n\n    &--vertical {\n\n      .mdlext-accordion__tab {\n        border-top: 1px solid $mdlext-dark-accordion-header-border-color;\n\n        &[aria-selected='true']::after {\n          background-color: $mdlext-dark-accordion-header-highlight-color;\n        }\n      }\n      .mdlext-accordion__tabpanel {\n        border-top: 1px solid $mdlext-dark-accordion-header-border-color;\n      }\n    }\n  }\n\n  // Horizontal layout\n  .mdlext-accordion {\n\n    &--horizontal {\n\n      .mdlext-accordion__tab {\n        border-left: 1px solid $mdlext-dark-accordion-header-border-color;\n\n        &[aria-selected='true']::after {\n          background-color: $mdlext-dark-accordion-header-highlight-color;\n        }\n      }\n      .mdlext-accordion__tabpanel {\n        border-left: 1px solid $mdlext-dark-accordion-header-border-color;\n      }\n    }\n  }\n\n  .mdlext-accordion {\n\n    &__panel:first-child > &__tab {\n      // Use container to set outer borders\n      border-top-color: transparent;\n      border-left-color: transparent;\n    }\n  }\n\n  // Making accordion appear disabled.\n  // Note: does not prevent tabbing into a disabled accordion\n  .mdlext-accordion[disabled] {\n    .mdlext-accordion__tab {\n      background-color: $mdlext-dark-accordion-header-disabled-color;\n      color: $mdlext-dark-accordion-header-secondary-color-disabled;\n\n      > * {\n        color: $mdlext-dark-accordion-header-secondary-color-disabled;\n      }\n    }\n    .mdlext-accordion__tabpanel {\n      opacity: 0.8;\n      filter: blur(1px) grayscale(80%);\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/color-themes/_dark-color-theme.scss"],"sourceRoot":""}
\ No newline at end of file
diff --git a/node_modules/mdl-ext/lib/mdl-ext.min.js b/node_modules/mdl-ext/lib/mdl-ext.min.js
new file mode 100644
index 0000000..c972548
--- /dev/null
+++ b/node_modules/mdl-ext/lib/mdl-ext.min.js
@@ -0,0 +1,4 @@
+!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("mdl-ext",[],t):"object"==typeof exports?exports["mdl-ext"]=t():e["mdl-ext"]=t()}(this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return e[i].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){n(113),e.exports=n(53)},function(e,t){var n=e.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=9,i=13,r=27,o=32,s=33,a=34,l=35,c=36,u=37,d=38,f=39,h=40,p="aria-expanded",m="aria-hidden",_="aria-multiselectable",v="aria-selected",g="is-dirty",b="is-disabled",E="is-expanded",y="is-focused",A="is-invalid",w="is-upgraded",L="data-upgraded",S="mdl-ripple",x="MaterialRipple",k="mdl-js-ripple-effect",D="mdl-js-ripple-effect--ignore-events";t.VK_TAB=n,t.VK_ENTER=i,t.VK_ESC=r,t.VK_SPACE=o,t.VK_PAGE_UP=s,t.VK_PAGE_DOWN=a,t.VK_END=l,t.VK_HOME=c,t.VK_ARROW_LEFT=u,t.VK_ARROW_UP=d,t.VK_ARROW_RIGHT=f,t.VK_ARROW_DOWN=h,t.ARIA_EXPANDED=p,t.ARIA_HIDDEN=m,t.ARIA_MULTISELECTABLE=_,t.ARIA_SELECTED=v,t.IS_DIRTY=g,t.IS_DISABLED=b,t.IS_EXPANDED=E,t.IS_FOCUSED=y,t.IS_INVALID=A,t.IS_UPGRADED=w,t.DATA_UPGRADED=L,t.MDL_RIPPLE=S,t.MDL_RIPPLE_COMPONENT=x,t.MDL_RIPPLE_EFFECT=k,t.MDL_RIPPLE_EFFECT_IGNORE_EVENTS=D},function(e,t,n){var i=n(5),r=n(1),o=n(37),s=n(11),a="prototype",l=function(e,t,n){var c,u,d,f=e&l.F,h=e&l.G,p=e&l.S,m=e&l.P,_=e&l.B,v=e&l.W,g=h?r:r[t]||(r[t]={}),b=g[a],E=h?i:p?i[t]:(i[t]||{})[a];h&&(n=t);for(c in n)u=!f&&E&&void 0!==E[c],u&&c in g||(d=u?E[c]:n[c],g[c]=h&&"function"!=typeof E[c]?n[c]:_&&u?o(d,i):v&&E[c]==d?function(e){var t=function(t,n,i){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,i)}return e.apply(this,arguments)};return t[a]=e[a],t}(d):m&&"function"==typeof d?o(Function.call,d):d,m&&((g.virtual||(g.virtual={}))[c]=d,e&l.R&&b&&!b[c]&&s(b,c,d)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,e.exports=l},function(e,t,n){var i=n(44)("wks"),r=n(46),o=n(5).Symbol,s="function"==typeof o,a=e.exports=function(e){return i[e]||(i[e]=s&&o[e]||(s?o:r)("Symbol."+e))};a.store=i},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){var i=n(17);e.exports=function(e){if(!i(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports={}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=n(60),o=i(r);t.default=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return(0,o.default)(e)}},function(e,t,n){e.exports=!n(10)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){var i=n(12),r=n(25);e.exports=n(9)?function(e,t,n){return i.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var i=n(6),r=n(82),o=n(101),s=Object.defineProperty;t.f=n(9)?Object.defineProperty:function(e,t,n){if(i(e),t=o(t,!0),i(n),r)try{return s(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(66),o=i(r),s=function(e,t){t||(t=window);var n=!1;return function(){for(var i=arguments.length,r=Array(i),s=0;s<i;s++)r[s]=arguments[s];n||(n=!0,window.requestAnimationFrame(function(){return n=!1,(0,o.default)(e,t,r)}))}};t.default=s,e.exports=t.default},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.jsonStringToObject=void 0;var r=n(33),o=i(r),s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.replace(/'/g,'"');try{return(0,o.default)(t,JSON.parse(n))}catch(e){throw new Error("Failed to parse json string: "+n+". Error: "+e.message)}};t.jsonStringToObject=s},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.stringList=t.randomString=t.joinStrings=void 0;var r=n(65),o=i(r),s=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var i=function(e){return null!=e&&"string"==typeof e},r=function e(t){return t.reduce(function(t,n){return t.concat(Array.isArray(n)?e(n):n)},[])},s=function(e){return(0,o.default)(e).filter(function(t){return e[t]}).map(function(e){return e})};return t.filter(function(e){return!!e}).map(function(e){return i(e)?e:s(e)}).reduce(function(e,t){return e.concat(Array.isArray(t)?r(t):t)},[])},a=function(){for(var e=arguments.length,t=Array(e>1?e-1:0),n=1;n<e;n++)t[n-1]=arguments[n];var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:" ";return s.apply(void 0,t).join(i)},l=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:12;return Array(e+1).join((Math.random().toString(36)+"00000000000000000").slice(2,18)).slice(0,e)};t.joinStrings=a,t.randomString=l,t.stringList=s},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var i=n(95),r=n(39);e.exports=Object.keys||function(e){return i(e,r)}},function(e,t,n){var i=n(40),r=n(24);e.exports=function(e){return i(r(e))}},function(e,t,n){var i=n(24);e.exports=function(e){return Object(i(e))}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.tether=t.removeChildElements=t.moveElements=t.isRectInsideWindowViewport=t.isFocusable=t.getScrollParents=t.getParentElements=t.getWindowViewport=void 0;var r=n(62),o=i(r),s=function(e){for(var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.lastChild;)e.removeChild(e.lastChild);if(t){var n=e.style.display;e.style.display="none",e.style.display=n}},a=function(e,t){for(t||(t=e.ownerDocument.createDocumentFragment());e.firstChild;)t.appendChild(e.firstChild);return t},l=function(){return{viewportWidth:Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),viewportHeight:Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)}},c=function(e){var t=e.top,n=e.left,i=e.bottom,r=e.right,o=l(),s=o.viewportWidth,a=o.viewportHeight;return t>=0&&n>=0&&i<=a&&r<=s},u=function(e){for(var t=[],n=e.parentNode;n;){var i=window.getComputedStyle(n);if("hidden"===i.overflowY&&"hidden"===i.overflowX||t.unshift(n),n===document.body)break;n=n.parentNode}return t},d=function(e,t){for(var n=[],i=e.parentNode;i&&i!==t;)n.unshift(i),i=i.parentNode;return n},f=function(e,t){var n=e.getBoundingClientRect(),i=l(),r=i.viewportWidth,o=i.viewportHeight;t.style.height="auto",t.offsetHeight>o&&(t.style.height=o+"px",t.style.overflowY="auto"),t.style.width="auto",t.offsetWidth>r&&(t.style.width=r+"px");var s=t.getBoundingClientRect(),a=n.top-s.top,u=n.left-s.left,d=s.top+a,f=s.left+u,h=d+s.height,p=f+s.width,m=a,_=u;if(c({top:d+n.height,left:f,bottom:h+n.height,right:p}))m=n.height+a;else if(c({top:d+n.height,left:f+n.width-s.width,bottom:h+n.height,right:f+n.width}))m=n.height+a,_=u+n.width-s.width;else if(c({top:d-s.height,left:f,bottom:h-s.height,right:p}))m=a-s.height;else if(c({top:d-s.height,left:f+n.width-s.width,bottom:h-s.height,right:f+n.width}))m=a-s.height,_=u+n.width-s.width;else if(c({top:d,left:f+n.width,bottom:h,right:p+n.width}))_=n.width+u;else if(c({top:d,left:f-n.width,bottom:h,right:p-n.width}))_=u-s.width;else if(m=a-h+o,d+n.height>=0&&h+n.height<=o?m=n.height+a:d-s.height>=0&&h-s.height<=o&&(m=a-s.height),f+s.width+n.width<=r)_=n.width+u;else if(f-s.width>=0)_=u-s.width;else{var v=f+s.width-r;_=u-v}t.style.top=t.offsetTop+m+"px",t.style.left=t.offsetLeft+_+"px"},h=function(e){if(e.hasAttribute("tabindex")){var t=e.getAttribute("tabindex");if(!(0,o.default)(t))return parseInt(t)>-1}if(e.hasAttribute("contenteditable")&&"false"!==e.getAttribute("contenteditable"))return!0;var n=/input|select|textarea|button|details/i,i=e.nodeName;if(n.test(i))return"hidden"!==e.type.toLowerCase()&&!e.disabled;if("A"===i||"AREA"===i)return!!e.href;if("IFRAME"===i){var r=window.getComputedStyle(e);return"none"!==r.getPropertyValue("display").toLowerCase()}return!1};t.getWindowViewport=l,t.getParentElements=d,t.getScrollParents=u,t.isFocusable=h,t.isRectInsideWindowViewport=c,t.moveElements=a,t.removeChildElements=s,t.tether=f},function(e,t){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=n(63),o=i(r);t.default=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),(0,o.default)(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}()},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on  "+e);return e}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var i=n(44)("keys"),r=n(46);e.exports=function(e){return i[e]||(i[e]=r(e))}},function(e,t){var n=Math.ceil,i=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?i:n)(e)}},function(e,t,n){"use strict";var i=n(99)(!0);n(41)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=i(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e,t,n,i){return e/=i/2,e<1?n/2*e*e+t:(e--,-n/2*(e*(e-2)-1)+t)},i=function(e,t,n,i){var r=(e/=i)*e,o=r*e;return t+n*(6*o*r+-15*r*r+10*o)};t.easeInOutQuad=n,t.inOutQuintic=i},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=1e3/60,i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n,t=e<n?n:e,i=void 0,r=null,o=0,s=function(){var e=i(o);e||a()},a=function(){r&&window.cancelAnimationFrame(r),r=null,o=0},l=function(){var e=Date.now(),n=function n(i){r&&(r=window.requestAnimationFrame(function(){return n(Date.now())}),o+=i-e,o>=t&&(s(),(o-=t)>t&&(o=0)),e=i)};r=1,n(e)};return{get started(){return null!=r},get interval(){return t},set interval(e){t=e<n?n:e},start:function(e){if("function"!=typeof e)throw new TypeError("callback parameter must be a function");i=e,l()},immediate:function(){if(!i)throw new ReferenceError("callback parameter is not defined. Call start before immediate.");s()},stop:function(){return a()}}};t.default=i,e.exports=t.default},function(e,t,n){e.exports={default:n(69),__esModule:!0}},function(e,t,n){e.exports={default:n(71),__esModule:!0}},function(e,t,n){e.exports={default:n(73),__esModule:!0}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){var i=n(36),r=n(4)("toStringTag"),o="Arguments"==i(function(){return arguments}()),s=function(e,t){try{return e[t]}catch(e){}};e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=s(t=Object(e),r))?n:o?i(t):"Object"==(a=i(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var i=n(34);e.exports=function(e,t,n){if(i(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,i){return e.call(t,n,i)};case 3:return function(n,i,r){return e.call(t,n,i,r)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var i=n(17),r=n(5).document,o=i(r)&&i(r.createElement);e.exports=function(e){return o?r.createElement(e):{}}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var i=n(36);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==i(e)?e.split(""):Object(e)}},function(e,t,n){"use strict";var i=n(89),r=n(3),o=n(98),s=n(11),a=n(16),l=n(7),c=n(86),u=n(43),d=n(94),f=n(4)("iterator"),h=!([].keys&&"next"in[].keys()),p="@@iterator",m="keys",_="values",v=function(){return this};e.exports=function(e,t,n,g,b,E,y){c(n,t,g);var A,w,L,S=function(e){if(!h&&e in C)return C[e];switch(e){case m:return function(){return new n(this,e)};case _:return function(){return new n(this,e)}}return function(){return new n(this,e)}},x=t+" Iterator",k=b==_,D=!1,C=e.prototype,R=C[f]||C[p]||b&&C[b],I=R||S(b),O=b?k?S("entries"):I:void 0,M="Array"==t?C.entries||R:R;if(M&&(L=d(M.call(new e)),L!==Object.prototype&&(u(L,x,!0),i||a(L,f)||s(L,f,v))),k&&R&&R.name!==_&&(D=!0,I=function(){return R.call(this)}),i&&!y||!h&&!D&&C[f]||s(C,f,I),l[t]=I,l[x]=v,b)if(A={values:k?I:S(_),keys:E?I:S(m),entries:O},y)for(w in A)w in C||o(C,w,A[w]);else r(r.P+r.F*(h||D),t,A);return A}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var i=n(12).f,r=n(16),o=n(4)("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,o)&&i(e,o,{configurable:!0,value:t})}},function(e,t,n){var i=n(5),r="__core-js_shared__",o=i[r]||(i[r]={});e.exports=function(e){return o[e]||(o[e]={})}},function(e,t,n){var i=n(27),r=Math.min;e.exports=function(e){return e>0?r(i(e),9007199254740991):0}},function(e,t){var n=0,i=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+i).toString(36))}},function(e,t,n){var i=n(35),r=n(4)("iterator"),o=n(7);e.exports=n(1).getIteratorMethod=function(e){if(void 0!=e)return e[r]||e["@@iterator"]||o[i(e)]}},function(e,t,n){n(105);for(var i=n(5),r=n(11),o=n(7),s=n(4)("toStringTag"),a=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],l=0;l<5;l++){var c=a[l],u=i[c],d=u&&u.prototype;d&&!d[s]&&r(d,s,c),o[c]=o.Array}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var r=n(8),o=i(r),s=n(2);!function(){var e="mdlext-accordion",t="mdlext-accordion--vertical",n="mdlext-accordion--horizontal",i="mdlext-accordion__panel",r="presentation",a="mdlext-accordion__tab",l="mdlext-accordion__tab__caption",c="tab",u="mdlext-accordion__tabpanel",d="tabpanel",f="mdlext-js-ripple-effect",h="mdlext-accordion__tab--ripple",p="mdlext-js-animation-effect",m="mdlext-accordion__tabpanel--animation",_=function(e){this.element_=e,this.init()};window.MaterialExtAccordion=_;var v=function(e){return e?e.classList.contains(i)?{panel:e,tab:e.querySelector("."+a),tabpanel:e.querySelector("."+u)}:{panel:e.parentNode,tab:e.parentNode.querySelector("."+a),tabpanel:e.parentNode.querySelector("."+u)}:{panel:null,tab:null,tabpanel:null}};_.prototype.commandHandler_=function(e){e.preventDefault(),e.stopPropagation(),e&&e.detail&&this.command(e.detail)},_.prototype.dispatchToggleEvent_=function(e,t,n){var i=new CustomEvent("toggle",{bubbles:!0,cancelable:!0,detail:{state:e,tab:t,tabpanel:n}});this.element_.dispatchEvent(i)},_.prototype.openTab_=function(e,t,n){e.classList.add(s.IS_EXPANDED),t.setAttribute(s.ARIA_EXPANDED,"true"),n.removeAttribute("hidden"),n.setAttribute(s.ARIA_HIDDEN,"false"),this.dispatchToggleEvent_("open",t,n)},_.prototype.closeTab_=function(e,t,n){e.classList.remove(s.IS_EXPANDED),t.setAttribute(s.ARIA_EXPANDED,"false"),n.setAttribute("hidden",""),n.setAttribute(s.ARIA_HIDDEN,"true"),this.dispatchToggleEvent_("close",t,n)},_.prototype.toggleTab_=function(e,t,n){this.element_.hasAttribute("disabled")||t.hasAttribute("disabled")||("true"===t.getAttribute(s.ARIA_EXPANDED).toLowerCase()?this.closeTab_(e,t,n):("true"!==this.element_.getAttribute(s.ARIA_MULTISELECTABLE).toLowerCase()&&this.closeTabs_(),this.openTab_(e,t,n)))},_.prototype.openTabs_=function(){var t=this;"true"===this.element_.getAttribute(s.ARIA_MULTISELECTABLE).toLowerCase()&&[].concat((0,o.default)(this.element_.querySelectorAll("."+e+" > ."+i))).filter(function(e){return!e.classList.contains(s.IS_EXPANDED)}).forEach(function(e){var n=e.querySelector("."+a);n.hasAttribute("disabled")||t.openTab_(e,n,e.querySelector("."+u))})},_.prototype.closeTabs_=function(){var t=this;[].concat((0,o.default)(this.element_.querySelectorAll("."+e+" > ."+i+"."+s.IS_EXPANDED))).forEach(function(e){var n=e.querySelector("."+a);n.hasAttribute("disabled")||t.closeTab_(e,n,e.querySelector("."+u))})},_.prototype.upgradeTab=function(e){var t=this,u=v(e),_=u.panel,g=u.tab,b=u.tabpanel,E=function(){_.classList.remove(s.IS_EXPANDED),g.setAttribute("tabindex","-1"),g.setAttribute(s.ARIA_EXPANDED,"false"),b.setAttribute("hidden",""),b.setAttribute(s.ARIA_HIDDEN,"true")},y=function(){g.hasAttribute(s.ARIA_EXPANDED)||g.setAttribute(s.ARIA_EXPANDED,"false"),g.setAttribute("tabindex","0"),"true"===g.getAttribute(s.ARIA_EXPANDED).toLowerCase()?(_.classList.add(s.IS_EXPANDED),b.removeAttribute("hidden"),b.setAttribute(s.ARIA_HIDDEN,"false")):(_.classList.remove(s.IS_EXPANDED),b.setAttribute("hidden",""),b.setAttribute(s.ARIA_HIDDEN,"true"))},A=function(){var e=g.querySelector("."+l);if(null!==e){var t=[].concat((0,o.default)(g.children)).filter(function(e){return e.classList&&!e.classList.contains(l)}).reduce(function(e,t){return e+t.offsetWidth},0),n=g.clientHeight-t;n>0&&(e.style["max-width"]=n+"px")}},w=function(){g.hasAttribute(s.ARIA_SELECTED)||([].concat((0,o.default)(t.element_.querySelectorAll("."+a+'[aria-selected="true"]'))).forEach(function(e){return e.removeAttribute(s.ARIA_SELECTED)}),g.setAttribute(s.ARIA_SELECTED,"true"))},L=function(){t.toggleTab_(_,g,b),w()},S=function(){w()},x=function(){w()},k=function(){w()},D=function(e){if(!t.element_.hasAttribute("disabled"))if(e.keyCode===s.VK_END||e.keyCode===s.VK_HOME||e.keyCode===s.VK_ARROW_UP||e.keyCode===s.VK_ARROW_LEFT||e.keyCode===s.VK_ARROW_DOWN||e.keyCode===s.VK_ARROW_RIGHT){var n=null,r=e.keyCode;if(r===s.VK_HOME?(n=t.element_.querySelector("."+i+":first-child > ."+a),n&&n.hasAttribute("disabled")&&(n=null,r=s.VK_ARROW_DOWN)):r===s.VK_END&&(n=t.element_.querySelector("."+i+":last-child > ."+a),n&&n.hasAttribute("disabled")&&(n=null,r=s.VK_ARROW_UP)),!n){var l=_;do{if(r===s.VK_ARROW_UP||r===s.VK_ARROW_LEFT?(l=l.previousElementSibling,l||(l=t.element_.querySelector("."+i+":last-child")),l&&(n=l.querySelector("."+i+" > ."+a))):r!==s.VK_ARROW_DOWN&&r!==s.VK_ARROW_RIGHT||(l=l.nextElementSibling,l||(l=t.element_.querySelector("."+i+":first-child")),l&&(n=l.querySelector("."+i+" > ."+a))),!n||!n.hasAttribute("disabled"))break;n=null}while(l!==_)}n&&(e.preventDefault(),e.stopPropagation(),n.focus(),n.hasAttribute(s.ARIA_SELECTED)||([].concat((0,o.default)(t.element_.querySelectorAll("."+a+'[aria-selected="true"]'))).forEach(function(e){return e.removeAttribute(s.ARIA_SELECTED)}),n.setAttribute(s.ARIA_SELECTED,"true")))}else e.keyCode!==s.VK_ENTER&&e.keyCode!==s.VK_SPACE||(e.preventDefault(),e.stopPropagation(),t.toggleTab_(_,g,b))};if(null===g)throw new Error("There must be a tab element for each accordion panel.");if(null===b)throw new Error("There must be a tabpanel element for each accordion panel.");_.setAttribute("role",r),g.setAttribute("role",c),b.setAttribute("role",d),g.hasAttribute("disabled")?E():y(),this.element_.classList.contains(n)&&A(),this.element_.classList.contains(f)&&g.classList.add(h),this.element_.classList.contains(p)&&b.classList.add(m),g.removeEventListener("click",L),g.removeEventListener("focus",S),g.removeEventListener("keydown",D),b.removeEventListener("click",x),b.removeEventListener("focus",k),g.addEventListener("click",L),g.addEventListener("focus",S),g.addEventListener("keydown",D),b.addEventListener("click",x,!0),b.addEventListener("focus",k,!0)},_.prototype.upgradeTab=_.prototype.upgradeTab,_.prototype.command=function(e){var t=this,n=function(e){if(void 0===e)t.openTabs_();else if(null!==e){var n=v(e),i=n.panel,r=n.tab,o=n.tabpanel;"true"!==r.getAttribute(s.ARIA_EXPANDED).toLowerCase()&&t.toggleTab_(i,r,o)}},i=function(e){if(void 0===e)t.closeTabs_();else if(null!==e){var n=v(e),i=n.panel,r=n.tab,o=n.tabpanel;"true"===r.getAttribute(s.ARIA_EXPANDED).toLowerCase()&&t.toggleTab_(i,r,o)}},r=function(e){if(e){var n=v(e),i=n.panel,r=n.tab,o=n.tabpanel;t.toggleTab_(i,r,o)}};if(e&&e.action){var o=e.action,a=e.target;switch(o.toLowerCase()){case"open":n(a);break;case"close":i(a);break;case"toggle":r(a);break;case"upgrade":a&&this.upgradeTab(a);break;default:throw new Error('Unknown action "'+o+'". Action must be one of "open", "close", "toggle" or "upgrade"')}}},_.prototype.command=_.prototype.command,_.prototype.init=function(){var r=this;if(this.element_){if(!this.element_.classList.contains(n)&&!this.element_.classList.contains(t))throw new Error('Accordion must have one of the classes "'+n+'" or "'+t+'"');this.element_.setAttribute("role","tablist"),this.element_.hasAttribute(s.ARIA_MULTISELECTABLE)||this.element_.setAttribute(s.ARIA_MULTISELECTABLE,"false"),this.element_.removeEventListener("command",this.commandHandler_),this.element_.addEventListener("command",this.commandHandler_.bind(this),!1),[].concat((0,o.default)(this.element_.querySelectorAll("."+e+" > ."+i))).forEach(function(e){return r.upgradeTab(e)}),this.element_.classList.add(s.IS_UPGRADED)}},componentHandler.register({constructor:_,classAsString:"MaterialExtAccordion",cssClass:"mdlext-js-accordion",widget:!0})}()},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var r=n(32),o=i(r),s=n(8),a=i(s),l=n(33),c=i(l),u=n(30),d=i(u),f=n(29),h=n(14),p=n(2),m="mdlext-carousel__slide__ripple-container";!function(){var e="mdlext-carousel__slide",t="list",n="listitem",i=function(e){this.element_=e,this.config_={interactive:!0,autostart:!1,type:"slide",interval:1e3,animationLoop:(0,d.default)(1e3)},this.scrollAnimation_=(0,d.default)(33),this.init()};window.MaterialExtCarousel=i,i.prototype.startSlideShow_=function(){var t=this,n=function(){var n=t.element_.querySelector("."+e+"[aria-selected]");return n&&(n.removeAttribute("aria-selected"),n=n.nextElementSibling),n||(n=t.element_.querySelector("."+e+":first-child"),t.animateScroll_(0)),!!n&&(t.moveSlideIntoViewport_(n),n.setAttribute("aria-selected",""),t.emitSelectEvent_("next",null,n),!0)},i=function(e){var n=e;"next"===e&&t.element_.scrollLeft===t.element_.scrollWidth-t.element_.clientWidth?n="prev":0===t.element_.scrollLeft&&(n="next");var i="next"===n?Math.min(t.element_.scrollLeft+t.element_.clientWidth,t.element_.scrollWidth-t.element_.clientWidth):Math.max(t.element_.scrollLeft-t.element_.clientWidth,0);return t.animateScroll_(i,1e3),n};this.config_.animationLoop.started||!function(){t.config_.animationLoop.interval=t.config_.interval;var e="next";"scroll"===t.config_.type?t.config_.animationLoop.start(function(){return e=i(e),!0}):(n(),t.config_.animationLoop.start(function(){return n()}))}()},i.prototype.cancelSlideShow_=function(){this.config_.animationLoop.started&&(this.config_.animationLoop.stop(),this.emitSelectEvent_("pause",p.VK_ESC,this.element_.querySelector("."+e+"[aria-selected]")))},i.prototype.animateScroll_=function(e,t,n){var i=this,r=this.element_.scrollLeft,o=e-r;0!==o?!function(){var s=Math.max(Math.min(Math.abs(o),t||400),100),a=0;i.scrollAnimation_.stop(),i.scrollAnimation_.start(function(t){return a+=t,a<s?(i.element_.scrollLeft=(0,f.inOutQuintic)(a,r,o,s),!0):(i.element_.scrollLeft=e,n&&n(),!1)})}():n&&n()},i.prototype.command_=function(t){var n=this,i=0,r=null,o=t.detail.action.toLowerCase();switch(this.cancelSlideShow_(),o){case"first":r=this.element_.querySelector("."+e+":first-child");break;case"last":i=this.element_.scrollWidth-this.element_.clientWidth,r=this.element_.querySelector("."+e+":last-child");break;case"scroll-prev":i=Math.max(this.element_.scrollLeft-this.element_.clientWidth,0);break;case"scroll-next":i=Math.min(this.element_.scrollLeft+this.element_.clientWidth,this.element_.scrollWidth-this.element_.clientWidth);break;case"next":case"prev":return r=this.element_.querySelector("."+e+"[aria-selected]"),void(r&&(r="next"===o?r.nextElementSibling:r.previousElementSibling,this.setAriaSelected_(r),this.emitSelectEvent_(o,null,r)));case"play":return(0,c.default)(this.config_,t.detail),void this.startSlideShow_();case"pause":return;default:return}this.animateScroll_(i,void 0,function(){if("scroll-next"===o||"scroll-prev"===o){var e=n.getSlidesInViewport_();e.length>0&&(r="scroll-next"===o?e[0]:e[e.length-1])}n.setAriaSelected_(r),n.emitSelectEvent_(o,null,r)})},i.prototype.commandHandler_=function(e){e.preventDefault(),e.stopPropagation(),e.detail&&e.detail.action&&this.command_(e)},i.prototype.keyDownHandler_=function(e){if(e&&e.target&&e.target!==this.element_){var t="first";if(e.keyCode===p.VK_HOME||e.keyCode===p.VK_END||e.keyCode===p.VK_PAGE_UP||e.keyCode===p.VK_PAGE_DOWN){e.preventDefault(),e.keyCode===p.VK_END?t="last":e.keyCode===p.VK_PAGE_UP?t="scroll-prev":e.keyCode===p.VK_PAGE_DOWN&&(t="scroll-next");var n=new CustomEvent("select",{detail:{action:t}});this.command_(n)}else if(e.keyCode===p.VK_TAB||e.keyCode===p.VK_ENTER||e.keyCode===p.VK_SPACE||e.keyCode===p.VK_ARROW_UP||e.keyCode===p.VK_ARROW_LEFT||e.keyCode===p.VK_ARROW_DOWN||e.keyCode===p.VK_ARROW_RIGHT){var i=r(e.target);if(!i)return;switch(this.cancelSlideShow_(),e.keyCode){case p.VK_ARROW_UP:case p.VK_ARROW_LEFT:t="prev",i=i.previousElementSibling;break;case p.VK_ARROW_DOWN:case p.VK_ARROW_RIGHT:t="next",i=i.nextElementSibling;break;case p.VK_TAB:e.shiftKey?(t="prev",i=i.previousElementSibling):(t="next",i=i.nextElementSibling);break;case p.VK_SPACE:case p.VK_ENTER:t="select"}i&&(e.preventDefault(),s(i),this.emitSelectEvent_(t,e.keyCode,i))}}},i.prototype.dragHandler_=function(e){var t=this;e.preventDefault(),this.cancelSlideShow_();var n=!1,i=0,o=e.clientX||(void 0!==e.touches?e.touches[0].clientX:0),a=o,l=e.target,c=function(e){var i=e.clientX||(void 0!==e.touches?e.touches[0].clientX:0),r=a-i;r<0?t.element_.scrollLeft=Math.max(t.element_.scrollLeft+r,0):r>0&&(t.element_.scrollLeft=Math.min(t.element_.scrollLeft+r,t.element_.scrollWidth-t.element_.clientWidth)),a=i,n=!1},u=function(e){e.preventDefault(),n||(i=window.requestAnimationFrame(function(){return c(e)}),n=!0)},d=function e(n){n.preventDefault(),t.element_.removeEventListener("mousemove",u),t.element_.removeEventListener("touchmove",u),window.removeEventListener("mouseup",e),window.removeEventListener("touchend",e),window.cancelAnimationFrame(i);var o=r(l);s(o),t.emitSelectEvent_("click",null,o)};this.element_.addEventListener("mousemove",u),this.element_.addEventListener("touchmove",u),window.addEventListener("mouseup",d),window.addEventListener("touchend",d)},i.prototype.clickHandler_=function(e){e.preventDefault()},i.prototype.focusHandler_=function(e){var t=r(e.target);t&&(this.setAriaSelected_(t),t.classList.add(p.IS_FOCUSED))},i.prototype.blurHandler_=function(e){var t=r(e.target);t&&t.classList.remove(p.IS_FOCUSED)},i.prototype.emitSelectEvent_=function(e,t,n){if(n){this.moveSlideIntoViewport_(n);var i=new CustomEvent("select",{bubbles:!0,cancelable:!0,detail:{command:e,keyCode:t,source:n}});this.element_.dispatchEvent(i)}},i.prototype.getSlidesInViewport_=function(){var t=this.element_.getBoundingClientRect(),n=[].concat((0,a.default)(this.element_.querySelectorAll("."+e))).filter(function(e){var n=e.getBoundingClientRect();return n.left>=t.left&&n.right<=t.right});return n},i.prototype.moveSlideIntoViewport_=function(e){var t=this.element_.getBoundingClientRect(),n=e.getBoundingClientRect();if(n.left<t.left){var i=this.element_.scrollLeft-(t.left-n.left);this.animateScroll_(i)}else if(n.right>t.right){var r=this.element_.scrollLeft-(t.right-n.right);this.animateScroll_(r)}},i.prototype.setAriaSelected_=function(t){t&&([].concat((0,a.default)(this.element_.querySelectorAll("."+e+"[aria-selected]"))).forEach(function(e){return e.removeAttribute("aria-selected")}),t.setAttribute("aria-selected",""))},i.prototype.removeListeners_=function(){this.element_.removeEventListener("focus",this.focusHandler_),this.element_.removeEventListener("blur",this.blurHandler_),this.element_.removeEventListener("keydown",this.keyDownHandler_),this.element_.removeEventListener("mousedown",this.dragHandler_),this.element_.removeEventListener("touchstart",this.dragHandler_),this.element_.removeEventListener("click",this.clickHandler_,!1),this.element_.removeEventListener("command",this.commandHandler_),this.element_.removeEventListener("mdl-componentdowngraded",this.mdlDowngrade_)};var r=function(t){return t.closest("."+e)},s=function(e){e&&e.focus()},l=function(e){if(!e.querySelector("."+m)){var t=document.createElement("span");t.classList.add(m),t.classList.add(p.MDL_RIPPLE_EFFECT);var n=document.createElement("span");n.classList.add(p.MDL_RIPPLE),t.appendChild(n);var i=e.querySelector("img");i&&(t.title=i.title),e.appendChild(t),componentHandler.upgradeElement(t,p.MDL_RIPPLE_COMPONENT)}};i.prototype.stopAnimation=function(){this.config_.animationLoop.stop()},i.prototype.stopAnimation=i.prototype.stopAnimation,i.prototype.upgradeSlides=function(){var t=this,i=this.element_.classList.contains(p.MDL_RIPPLE_EFFECT);[].concat((0,a.default)(this.element_.querySelectorAll("."+e))).forEach(function(e){e.setAttribute("role",n),t.config_.interactive?(e.getAttribute("tabindex")||e.setAttribute("tabindex","0"),i&&l(e)):e.setAttribute("tabindex","-1")})},i.prototype.upgradeSlides=i.prototype.upgradeSlides,i.prototype.getConfig=function(){return this.config_},i.prototype.getConfig=i.prototype.getConfig,i.prototype.init=function(){if(this.element_){if(this.element_.hasAttribute("data-config")&&(this.config_=(0,h.jsonStringToObject)(this.element_.getAttribute("data-config"),this.config_)),this.element_.setAttribute("role",t),(0,o.default)(this.element_.getAttribute("tabindex"))||this.element_.setAttribute("tabindex",-1),this.removeListeners_(),this.config_.interactive){var e=this.element_.classList.contains(p.MDL_RIPPLE_EFFECT);e&&this.element_.classList.add(p.MDL_RIPPLE_EFFECT_IGNORE_EVENTS),this.element_.addEventListener("focus",this.focusHandler_.bind(this),!0),this.element_.addEventListener("blur",this.blurHandler_.bind(this),!0),this.element_.addEventListener("keydown",this.keyDownHandler_.bind(this),!1),this.element_.addEventListener("mousedown",this.dragHandler_.bind(this),!1),this.element_.addEventListener("touchstart",this.dragHandler_.bind(this),!1),this.element_.addEventListener("click",this.clickHandler_.bind(this),!1)}this.element_.addEventListener("command",this.commandHandler_.bind(this),!1),this.element_.addEventListener("mdl-componentdowngraded",this.mdlDowngrade_.bind(this)),this.upgradeSlides(),this.element_.classList.add(p.IS_UPGRADED),this.config_.autostart&&this.startSlideShow_()}},i.prototype.mdlDowngrade_=function(){this.stopAnimation(),this.removeListeners_()},componentHandler.register({constructor:i,classAsString:"MaterialExtCarousel",cssClass:"mdlext-js-carousel",widget:!0})}()},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var r=n(22),o=i(r),s=n(23),a=i(s),l=n(2),c=n(15),u=n(21),d="mdlext-js-collapsible",f="mdlext-collapsible",h="mdlext-collapsible-group",p="mdlext-collapsible-region",m=function(){function e(t){var n=this;(0,o.default)(this,e),this.element_=null,this.controlElement_=null,this.keyDownHandler=function(e){e.keyCode!==l.VK_ENTER&&e.keyCode!==l.VK_SPACE||(e.preventDefault(),(e.target||n.controlElement).dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window})))},this.clickHandler=function(e){if(!n.isDisabled){if(e.target!==n.controlElement){var t=(0,u.getParentElements)(e.target,n.controlElement);if(t.push(e.target),
+t.find(function(e){return(0,u.isFocusable)(e)}))return}n.toggle()}},this.element_=t,this.init()}return(0,a.default)(e,[{key:"collapse",value:function(){if(!this.isDisabled&&this.isExpanded&&this.dispatchToggleEvent("collapse")){this.controlElement.setAttribute("aria-expanded","false");for(var e=this.regionElements.slice(0),t=e.length-1;t>=0;--t)e[t].setAttribute("hidden","")}}},{key:"expand",value:function(){this.isDisabled||this.isExpanded||this.dispatchToggleEvent("expand")&&(this.controlElement.setAttribute("aria-expanded","true"),this.regionElements.forEach(function(e){return e.removeAttribute("hidden")}))}},{key:"toggle",value:function(){this.isExpanded?this.collapse():this.expand()}},{key:"dispatchToggleEvent",value:function(e){return this.element.dispatchEvent(new CustomEvent("toggle",{bubbles:!0,cancelable:!0,detail:{action:e}}))}},{key:"disableToggle",value:function(){this.controlElement.setAttribute("aria-disabled",!0)}},{key:"enableToggle",value:function(){this.controlElement.removeAttribute("aria-disabled")}},{key:"addRegionId",value:function(e){var t=this.regionIds;t.find(function(t){return e===t})||(t.push(e),this.controlElement.setAttribute("aria-controls",t.join(" ")))}},{key:"addRegionElement",value:function(e){if(e.classList.contains(h)||e.classList.contains(p)||e.classList.add(h),!e.hasAttribute("role")){var t=e.classList.contains(h)?"group":"region";e.setAttribute("role",t)}e.hasAttribute("id")||(e.id=e.getAttribute("role")+"-"+(0,c.randomString)()),this.isExpanded?e.removeAttribute("hidden"):e.setAttribute("hidden",""),this.addRegionId(e.id)}},{key:"removeRegionElement",value:function(e){if(e&&e.id){var t=this.regionIds.filter(function(t){return t===e.id});this.controlElement.setAttribute("aria-controls",t.join(" "))}}},{key:"removeListeners",value:function(){this.controlElement.removeEventListener("keydown",this.keyDownHandler),this.controlElement.removeEventListener("click",this.clickHandler)}},{key:"init",value:function(){var e=this,t=function(){e.controlElement_=e.element.querySelector("."+f)||e.element,e.controlElement.hasAttribute("aria-expanded")||e.controlElement.setAttribute("aria-expanded","false"),"button"!==e.controlElement.nodeName.toLowerCase()&&e.controlElement.setAttribute("role","button"),(0,u.isFocusable)(e.controlElement)||e.controlElement.hasAttribute("tabindex")||e.controlElement.setAttribute("tabindex","0")},n=function(){var t=[];if(e.controlElement.hasAttribute("aria-controls"))t=e.regionElements;else for(var n=e.element.nextElementSibling;n;){if(n.classList.contains(h)||n.classList.contains(p))t.push(n);else if(n.classList.contains(d))break;n=n.nextElementSibling}t.forEach(function(t){return e.addRegionElement(t)})},i=function(){e.controlElement.addEventListener("keydown",e.keyDownHandler),e.controlElement.addEventListener("click",e.clickHandler)};t(),n(),this.removeListeners(),i()}},{key:"downgrade",value:function(){this.removeListeners()}},{key:"element",get:function(){return this.element_}},{key:"controlElement",get:function(){return this.controlElement_}},{key:"isDisabled",get:function(){return this.controlElement.hasAttribute("disabled")&&"false"!==this.controlElement.getAttribute("disabled").toLowerCase()||this.controlElement.hasAttribute("aria-disabled")&&"false"!==this.controlElement.getAttribute("aria-disabled").toLowerCase()}},{key:"isExpanded",get:function(){return this.controlElement.hasAttribute("aria-expanded")&&"true"===this.controlElement.getAttribute("aria-expanded").toLowerCase()}},{key:"regionIds",get:function(){return this.controlElement.hasAttribute("aria-controls")?this.controlElement.getAttribute("aria-controls").split(" "):[]}},{key:"regionElements",get:function(){return this.regionIds.map(function(e){return document.querySelector("#"+e)}).filter(function(e){return null!=e})}}]),e}();!function(){var e=function(e){this.element_=e,this.collapsible=null,this.init()};window.MaterialExtCollapsible=e,e.prototype.init=function(){this.element_&&(this.collapsible=new m(this.element_),this.element_.classList.add(l.IS_UPGRADED),this.element_.addEventListener("mdl-componentdowngraded",this.mdlDowngrade_.bind(this)))},e.prototype.mdlDowngrade_=function(){this.collapsible.downgrade()},e.prototype.getControlElement=function(){return this.collapsible.controlElement},e.prototype.getControlElement=e.prototype.getControlElement,e.prototype.getRegionElements=function(){return this.collapsible.regionElements},e.prototype.getRegionElements=e.prototype.getRegionElements,e.prototype.addRegionElements=function(){for(var e=this,t=arguments.length,n=Array(t),i=0;i<t;i++)n[i]=arguments[i];n.forEach(function(t){return e.collapsible.addRegionElement(t)})},e.prototype.addRegionElements=e.prototype.addRegionElements,e.prototype.removeRegionElements=function(){for(var e=this,t=arguments.length,n=Array(t),i=0;i<t;i++)n[i]=arguments[i];n.forEach(function(t){return e.collapsible.removeRegionElement(t)})},e.prototype.removeRegionElements=e.prototype.removeRegionElements,e.prototype.expand=function(){this.collapsible.expand()},e.prototype.expand=e.prototype.expand,e.prototype.collapse=function(){this.collapsible.collapse()},e.prototype.collapse=e.prototype.collapse,e.prototype.toggle=function(){this.collapsible.toggle()},e.prototype.toggle=e.prototype.toggle,e.prototype.isExpanded=function(){return this.collapsible.isExpanded},e.prototype.isExpanded=e.prototype.isExpanded,e.prototype.isDisabled=function(){return this.collapsible.isDisabled},e.prototype.isDisabled=e.prototype.isDisabled,e.prototype.disableToggle=function(){this.collapsible.disableToggle()},e.prototype.disableToggle=e.prototype.disableToggle,e.prototype.enableToggle=function(){this.collapsible.enableToggle()},e.prototype.enableToggle=e.prototype.enableToggle,componentHandler.register({constructor:e,classAsString:"MaterialExtCollapsible",cssClass:d,widget:!0})}()},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var r,o,s=n(22),a=i(s),l=n(23),c=i(l),u=n(14),d=n(2),f="mdlext-js-formatfield",h="MaterialExtFormatfield",p=function(){return navigator.languages?navigator.languages[0]:navigator.language||navigator.userLanguage},m=(o=r=function(){function e(t){var n=this;(0,a.default)(this,e),this.options_={},this.clickHandler=function(){clearTimeout(e.timer)},this.focusInHandler=function(){n.input.readOnly||n.input.disabled||(n.input.value=n.unformatInput(),e.timer=setTimeout(function(){return n.input.select()},200))},this.focusOutHandler=function(){clearTimeout(e.timer),n.input.readOnly||n.input.disabled||n.formatValue()},this.element_=t,this.init()}return(0,c.default)(e,[{key:"stripSeparatorsFromValue",value:function(){var e=this,t=function(){return e.input.value.replace(/\s/g,"").replace(new RegExp(e.options.groupSeparator,"g"),"").replace(e.options.decimalSeparator,".")};return this.input.value?t():this.input.value}},{key:"fixSeparators",value:function(e){var t=this,n=function(){return e.replace(new RegExp(t.intlGroupSeparator_,"g"),t.options.groupSeparator).replace(t.intlDecimalSeparator_,t.options.decimalSeparator)};return e?n():e}},{key:"formatValue",value:function(){if(this.input.value){var e=new Intl.NumberFormat(this.options.locales,this.options).format(this.stripSeparatorsFromValue());"NaN"!==e&&(this.input.value=this.fixSeparators(e))}}},{key:"unformat",value:function(){var e=this,t=function(){return e.input.value.replace(/\s/g,"").replace(new RegExp(e.options.groupSeparator,"g"),"").replace(e.options.decimalSeparator,".")};return this.input.value?t():this.input.value}},{key:"unformatInput",value:function(){var e=this,t=function(){return e.input.value.replace(/\s/g,"").replace(new RegExp(e.options.groupSeparator,"g"),"")};return this.input.value?t():this.input.value}},{key:"removeListeners",value:function(){this.input.removeEventListener("click",this.clickHandler),this.input.removeEventListener("focusin",this.focusInHandler),this.input.removeEventListener("focusout",this.focusOutHandler)}},{key:"init",value:function(){var e=this,t=function(){e.input.addEventListener("click",e.clickHandler),e.input.addEventListener("focusin",e.focusInHandler),e.input.addEventListener("focusout",e.focusOutHandler)},n=function(){var t=e.element.getAttribute("data-formatfield-options")||e.input.getAttribute("data-formatfield-options");t&&(e.options_=(0,u.jsonStringToObject)(t,e.options))},i=function(){e.options.locales||(e.options.locales=p()||"en-US")},r=function(){var t=1234.5.toLocaleString(e.options.locales,{style:"decimal",useGrouping:!0,minimumFractionDigits:1,maximumFractionDigits:1});if(e.intlGroupSeparator_=t.charAt(1),e.intlDecimalSeparator_=t.charAt(t.length-2),e.options.groupSeparator=e.options.groupSeparator||e.intlGroupSeparator_,e.options.decimalSeparator=e.options.decimalSeparator||e.intlDecimalSeparator_,e.options.groupSeparator===e.options.decimalSeparator){var n='Error! options.groupSeparator, "'+e.options.groupSeparator+'" and options.decimalSeparator, '+('"'+e.options.decimalSeparator+'" should not be equal');throw new Error(n)}};this.input_=this.element.querySelector("input")||this.element,n(),i(),r(),this.formatValue(),t()}},{key:"downgrade",value:function(){this.removeListeners()}},{key:"element",get:function(){return this.element_}},{key:"input",get:function(){return this.input_}},{key:"options",get:function(){return this.options_}}]),e}(),r.timer=null,o);!function(){var e=function(e){this.element_=e,this.formatField_=null,this.init()};window.MaterialExtFormatfield=e,e.prototype.init=function(){this.element_&&(this.element_.classList.add(d.IS_UPGRADED),this.formatField_=new m(this.element_),this.element_.addEventListener("mdl-componentdowngraded",this.mdlDowngrade_.bind(this)))},e.prototype.getOptions=function(){return this.formatField_.options},e.prototype.getOptions=e.prototype.getOptions,e.prototype.getUnformattedValue=function(){return this.formatField_.unformat()},e.prototype.getUnformattedValue=e.prototype.getUnformattedValue,e.prototype.mdlDowngrade_=function(){this.formatField_.downgrade()},componentHandler.register({constructor:e,classAsString:h,cssClass:f,widget:!0})}()},function(e,t,n){"use strict";n(59),n(49),n(51),n(50),n(54),n(55),n(56),n(57),n(52),n(58)},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var r=n(8),o=i(r),s=n(2),a="mdlext-lightboard__slide__ripple-container";!function(){var e="grid",t="mdlext-lightboard__slide",n="gridcell",i="mdlext-lightboard__slide__frame",r=function(e){this.element_=e,this.init()};window.MaterialExtLightboard=r;var l=function(e){return e?e.closest("."+t):null};r.prototype.selectSlide_=function(e){var n=l(e);n&&!n.hasAttribute("aria-selected")&&([].concat((0,o.default)(this.element_.querySelectorAll("."+t+'[aria-selected="true"]'))).forEach(function(e){return e.removeAttribute("aria-selected")}),n.setAttribute("aria-selected","true"))},r.prototype.dispatchSelectEvent_=function(e){this.element_.dispatchEvent(new CustomEvent("select",{bubbles:!0,cancelable:!0,detail:{source:e}}))},r.prototype.commandHandler_=function(e){e.preventDefault(),e.stopPropagation(),e&&e.detail&&this.command(e.detail)},r.prototype.upgradeSlides=function(){var e=function(e){if(!e.querySelector("."+a)){var t=e.querySelector("."+i);if(t){var n=t;n.classList.add(a),n.classList.add(s.MDL_RIPPLE_EFFECT);var r=document.createElement("span");r.classList.add(s.MDL_RIPPLE),n.appendChild(r),componentHandler.upgradeElement(n,s.MDL_RIPPLE_COMPONENT)}}},r=this.element_.classList.contains(s.MDL_RIPPLE_EFFECT);[].concat((0,o.default)(this.element_.querySelectorAll("."+t))).forEach(function(t){t.setAttribute("role",n),t.querySelector("a")||t.setAttribute("tabindex","0"),r&&e(t)})},r.prototype.upgradeSlides=r.prototype.upgradeSlides,r.prototype.command=function(e){var n=this,i=function(){return n.element_.querySelector("."+t+":first-child")},r=function(){return n.element_.querySelector("."+t+":last-child")},o=function(){var e=n.element_.querySelector("."+t+'[aria-selected="true"]').nextElementSibling;return e?e:i()},s=function(){var e=n.element_.querySelector("."+t+'[aria-selected="true"]').previousElementSibling;return e?e:r()};if(e&&e.action){var a=e.action,c=e.target,u=void 0;switch(a.toLowerCase()){case"select":u=l(c),this.dispatchSelectEvent_(u);break;case"first":u=i();break;case"next":u=o();break;case"prev":u=s();break;case"last":u=r();break;case"upgrade":this.upgradeSlides();break;default:throw new Error('Unknown action "'+a+'". Action must be one of "first", "next", "prev", "last", "select" or "upgrade"')}if(u){var d=u.querySelector("a");d?d.focus():u.focus(),u.hasAttribute("aria-selected")||this.selectSlide_(u)}}},r.prototype.command=r.prototype.command,r.prototype.init=function(){var t=this,n=function(e){if(e.target!==t.element_){var n=void 0,i=void 0;switch(e.keyCode){case s.VK_HOME:n="first";break;case s.VK_END:n="last";break;case s.VK_ARROW_UP:case s.VK_ARROW_LEFT:n="prev";break;case s.VK_ARROW_DOWN:case s.VK_ARROW_RIGHT:n="next";break;case s.VK_ENTER:case s.VK_SPACE:n="select",i=e.target}n&&(e.preventDefault(),e.stopPropagation(),t.command({action:n,target:i}))}},i=function(e){e.preventDefault(),e.stopPropagation(),e.target!==t.element_&&t.command({action:"select",target:e.target})},r=function(e){e.preventDefault(),e.stopPropagation(),e.target!==t.element_&&t.selectSlide_(e.target)};this.element_&&(this.element_.setAttribute("role",e),this.element_.classList.contains(s.MDL_RIPPLE_EFFECT)&&this.element_.classList.add(s.MDL_RIPPLE_EFFECT_IGNORE_EVENTS),this.element_.removeEventListener("command",this.commandHandler_),this.element_.removeEventListener("keydown",n),this.element_.removeEventListener("click",i),this.element_.removeEventListener("focus",r),this.element_.addEventListener("command",this.commandHandler_.bind(this),!1),this.element_.addEventListener("keydown",n,!0),this.element_.addEventListener("click",i,!0),this.element_.addEventListener("focus",r,!0),this.upgradeSlides(),this.element_.classList.add(s.IS_UPGRADED))},componentHandler.register({constructor:r,classAsString:"MaterialExtLightboard",cssClass:"mdlext-js-lightboard",widget:!0})}()},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var r=n(8),o=i(r),s=n(32),a=i(s),l=n(67),c=i(l),u=n(64),d=i(u),f=n(31),h=i(f),p=n(13),m=i(p),_=n(2);!function(){var e="mdlext-lightbox",t="mdlext-lightbox__slider",n="mdlext-lightbox__slider__slide",i="mdlext-lightbox--sticky-footer",r="mdl-button",s=function(e){this.element_=e,this.init()};window.MaterialExtLightbox=s,s.prototype.keyDownHandler_=function(e){if(e&&(e.keyCode===_.VK_ESC||e.keyCode===_.VK_SPACE||e.keyCode===_.VK_END||e.keyCode===_.VK_HOME||e.keyCode===_.VK_ARROW_UP||e.keyCode===_.VK_ARROW_LEFT||e.keyCode===_.VK_ARROW_DOWN||e.keyCode===_.VK_ARROW_RIGHT)){e.keyCode!==_.VK_ESC&&(e.preventDefault(),e.stopPropagation());var t="first";e.keyCode===_.VK_END?t="last":e.keyCode===_.VK_ARROW_UP||e.keyCode===_.VK_ARROW_LEFT?t="prev":e.keyCode===_.VK_ARROW_DOWN||e.keyCode===_.VK_ARROW_RIGHT?t="next":e.keyCode===_.VK_SPACE?t="select":e.keyCode===_.VK_ESC&&(t="cancel"),l(t,this)}},s.prototype.buttonClickHandler_=function(t){if(t){t.preventDefault(),t.stopPropagation(),l(this.getAttribute("data-action")||"",this);var n=this.closest("."+e);n&&n.focus()}};var l=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;n.dispatchEvent(new CustomEvent("action",{bubbles:!0,cancelable:!0,detail:{action:e||"",source:t}}))},u=function(e){var t=function(e,t){return t&&e?e.offsetHeight:0},n=function(e,t){if("absolute"===window.getComputedStyle(e).position){var n=document.body.scrollTop||document.documentElement.scrollTop,i=n+(window.innerHeight-e.offsetHeight-t)/2;e.style.top=Math.max(n,i)+"px"}},r=e.parentNode,o=r&&"DIALOG"===r.nodeName?r:null;if(o&&o.hasAttribute("open")){e.style.width="auto",e.style.maxWidth="100%";var s=e.querySelector("img");s&&(e.style.maxWidth=void 0!==s.naturalWidth?s.naturalWidth+"px":s.width+"px"||"100%");var a=t(e.querySelector("footer"),e.classList.contains(i)),l=Math.max(document.documentElement.clientHeight,window.innerHeight||0)-a;if(o.offsetHeight>l)for(var c=0;o.offsetHeight>l&&++c<4;)e.style.width=e.offsetWidth*l/e.offsetHeight+"px";n(o,a)}};s.prototype.imgLoadHandler_=function(){u(this)},s.prototype.imgDragHandler_=function(e){var i=function(e,t){var n=!0,i=!1,r=void 0;try{for(var o,s=(0,h.default)((0,d.default)(t));!(n=(o=s.next()).done);n=!0){var a=(0,c.default)(o.value,2),l=a[0],u=a[1];e.style[l]=u}}catch(e){i=!0,r=e}finally{try{!n&&s.return&&s.return()}finally{if(i)throw r}}};e.preventDefault();var r=e.clientX||(void 0!==e.touches?e.touches[0].clientX:0),o=this;o.style.opacity="0.2";var s=document.createElement("div");s.classList.add(t),i(s,{width:o.offsetWidth+"px",height:o.offsetHeight+"px"});var a=document.createElement("div");a.classList.add(n),a.textContent=">",i(a,{width:o.offsetWidth+"px",height:o.offsetHeight+"px","line-height":o.offsetHeight+"px","font-size":o.offsetHeight/4+"px","text-align":"right","background-image":'url("'+(o.getAttribute("data-img-url-prev")||"")+'")'}),s.appendChild(a),a=document.createElement("div"),a.classList.add(n),i(a,{width:o.offsetWidth+"px",height:o.offsetHeight+"px","background-image":'url("'+o.src+'")'}),s.appendChild(a),a=document.createElement("div"),a.classList.add(n),a.textContent="<",i(a,{width:o.offsetWidth+"px",height:o.offsetHeight+"px","line-height":o.offsetHeight+"px","font-size":o.offsetHeight/4+"px","text-align":"left","background-image":'url("'+(o.getAttribute("data-img-url-next")||"")+'")'}),s.appendChild(a),o.parentNode.appendChild(s);var u=function(e){e.preventDefault();var t=(e.clientX||(void 0!==e.touches?e.touches[0].clientX:0))-r;s.offsetWidth-Math.abs(t)>19&&(s.style.left=t+"px")},f=function e(t){t.preventDefault(),window.removeEventListener("mousemove",u),window.removeEventListener("touchmove",u),window.removeEventListener("mouseup",e),window.removeEventListener("touchend",e);var n=s.offsetLeft;o.parentNode.removeChild(s),o.style.opacity="1.0",Math.abs(n)>19&&l(n>0?"prev":"next",o)};window.addEventListener("mousemove",u),window.addEventListener("touchmove",u),window.addEventListener("mouseup",f),window.addEventListener("touchend",f)},s.prototype.init=function(){var e=this;if(this.element_){this.element_.addEventListener("keydown",this.keyDownHandler_.bind(this.element_),!0),(0,a.default)(this.element_.getAttribute("tabindex"))||this.element_.setAttribute("tabindex",1),[].concat((0,o.default)(this.element_.querySelectorAll("."+r))).forEach(function(t){return t.addEventListener("click",e.buttonClickHandler_.bind(t),!1)});var t=this.element_.querySelector("figcaption");t&&t.addEventListener("click",this.buttonClickHandler_.bind(t),!1);var n=this.element_.querySelector("footer");n&&n.addEventListener("click",this.buttonClickHandler_.bind(n),!1);var i=this.element_.querySelector("img");i&&(i.addEventListener("load",this.imgLoadHandler_.bind(this.element_),!1),i.addEventListener("click",function(e){return e.preventDefault()},!0),i.addEventListener("mousedown",this.imgDragHandler_.bind(i),!0),i.addEventListener("touchstart",this.imgDragHandler_.bind(i),!0)),window.addEventListener("resize",(0,m.default)(function(){return u(e.element_)})),window.addEventListener("orientationchange",function(){return u(e.element_)}),this.element_.classList.add(_.IS_UPGRADED)}},componentHandler.register({constructor:s,classAsString:"MaterialExtLightbox",cssClass:"mdlext-js-lightbox"})}()},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var r=n(22),o=i(r),s=n(23),a=i(s),l=n(8),c=i(l),u=n(15),d=n(13),f=i(d),h=n(2),p=n(21),m="mdlext-js-menu-button",_="mdlext-menu",v="mdlext-menu__item",g="mdlext-menu__item-separator",b=function(e){var t=null,n=null,i=function(){[].concat((0,c.default)(e.querySelectorAll("."+v+'[aria-selected="true"]'))).forEach(function(e){return e.removeAttribute("aria-selected")})},r=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(t||e&&!e.hasAttribute("aria-selected"))&&(i(),e&&e.setAttribute("aria-selected","true"))},o=function(){return e.querySelector("."+v+'[aria-selected="true"]')},s=function(e){return e&&e.hasAttribute("disabled")},a=function(e){return e&&e.classList.contains(g)},l=function(e){e&&(e=e.closest("."+v)),e&&e.focus()},d=function(t){var n=t.nextElementSibling;if(n||(n=e.firstElementChild),s(n)||a(n))for(var i=e.children.length;n&&i-- >0;){if(!s(n)&&!a(n)){l(n);break}n=n.nextElementSibling,n||(n=e.firstElementChild)}else l(n)},f=function(t){var n=t.previousElementSibling;if(n||(n=e.lastElementChild),s(n)||a(n))for(var i=e.children.length;n&&i-- >0;){if(!s(n)&&!a(n)){l(n);break}n=n.previousElementSibling,n||(n=e.lastElementChild)}else l(n)},b=function(){var t=e.firstElementChild;s(t)||a(t)?d(t):l(t)},E=function(){var t=e.lastElementChild;s(t)||a(t)?f(t):l(t)},y=function(e){!e||s(e)||a(e)||(r(e),R(!0,e))},A=function(e){var t=e.target.closest("."+v);switch(e.keyCode){case h.VK_ARROW_UP:case h.VK_ARROW_LEFT:t?f(t):b();break;case h.VK_ARROW_DOWN:case h.VK_ARROW_RIGHT:t?d(t):E();break;case h.VK_HOME:b();break;case h.VK_END:E();break;case h.VK_SPACE:case h.VK_ENTER:y(t);break;case h.VK_ESC:R(!0);break;case h.VK_TAB:R(!0);break;default:return}e.preventDefault()},w=function(t){var n=t.relatedTarget||t.explicitOriginalTarget||document.activeElement;try{n?n.closest("."+_)!==e&&C(n)&&R():R()}catch(e){R()}},L=function(t){t.preventDefault();var n=t.target;if(n&&n.closest("."+_)===e){var i=n.closest("."+v);i&&y(i)}else C(n)&&R()},S=function(t){var n=t.target;n&&n.closest("."+_)===e||("touchstart"===t.type&&t.preventDefault(),R())},x=function(){e.addEventListener("keydown",A,!1),e.addEventListener("blur",w,!0),e.addEventListener("click",L,!0),document.documentElement.addEventListener("touchstart",S,!0)},k=function(){e.removeEventListener("keydown",A,!1),e.removeEventListener("blur",w,!0),e.removeEventListener("click",L,!0),document.documentElement.removeEventListener("touchstart",S,!0)},D=function(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"first";t=n.closest("."+m),e.style["min-width"]=Math.max(124,n.getBoundingClientRect().width)+"px",e.removeAttribute("hidden"),(0,p.tether)(n,e);var r=void 0;switch(i.toLowerCase()){case"first":b();break;case"last":E();break;case"selected":r=o(),r&&!r.hasAttribute("disabled")?l(r):b()}x()},C=function(n){var i=!1,r=n&&n.closest("."+m)||null;return r&&r.getAttribute("aria-controls")===e.id?r!==t&&(i=!0):i=!0,i},R=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;k(),e.dispatchEvent(new CustomEvent("_closemenu",{bubbles:!0,cancelable:!0,detail:{forceFocus:t,item:n}}))},I=function(){e.hasAttribute("id")||(e.id="menu-button-"+(0,u.randomString)()),e.setAttribute("tabindex","-1"),e.setAttribute("role","menu"),e.setAttribute("hidden",""),[].concat((0,c.default)(e.querySelectorAll("."+v))).forEach(function(e){e.setAttribute("tabindex","-1"),e.setAttribute("role","menuitem")}),[].concat((0,c.default)(e.querySelectorAll("."+g))).forEach(function(e){e.setAttribute("role","separator")})},O=function(){I(),n=e.parentNode,e.classList.add("is-upgraded")},M=function(){k(),e.parentNode!==n&&n.appendChild(e),e.classList.remove("is-upgraded")};return O(),{get element(){return e},set selected(e){r(e,!0)},open:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"first";return D(e,t)},removeListeners:function(){return k()},downgrade:function(){return M()}}},E=function(){function e(t){var n=this;(0,o.default)(this,e),this.keyDownHandler=function(e){if(!n.isDisabled())switch(e.keyCode){case h.VK_ARROW_UP:n.openMenu("last");break;case h.VK_ARROW_DOWN:n.openMenu();break;case h.VK_SPACE:case h.VK_ENTER:n.openMenu("selected");break;case h.VK_ESC:n.closeMenu();break;case h.VK_TAB:return void n.closeMenu();default:return}e.preventDefault()},this.clickHandler=function(){n.isDisabled()||("true"===n.element.getAttribute("aria-expanded").toLowerCase()?n.closeMenu(!0):n.openMenu("selected"))},this.recalcMenuPosition=(0,f.default)(function(){var e=n.focusElement.getBoundingClientRect(),t=n.focusElementLastScrollPosition.left-e.left,i=n.focusElementLastScrollPosition.top-e.top,r=(parseFloat(n.menu.element.style.left)||0)-t,o=(parseFloat(n.menu.element.style.top)||0)-i;n.menu.element.style.left=r+"px",n.menu.element.style.top=o+"px",n.focusElementLastScrollPosition=e}),this.positionChangeHandler=function(){n.recalcMenuPosition(n)},this.closeMenuHandler=function(e){e&&e.detail&&(e.detail.item&&e.detail.item!==n.selectedItem&&(n.selectedItem=e.detail.item,n.dispatchMenuSelect()),n.closeMenu(e.detail.forceFocus))},this.element=t,this.focusElement=void 0,this.focusElementLastScrollPosition=void 0,this.scrollElements=[],this.menu=void 0,this.selectedItem=null,this.init()}return(0,a.default)(e,[{key:"dispatchMenuSelect",value:function(){this.element.dispatchEvent(new CustomEvent("menuselect",{bubbles:!0,cancelable:!0,detail:{source:this.selectedItem}}))}},{key:"isDisabled",value:function(){return this.element.hasAttribute("disabled")}},{key:"removeListeners",value:function(){this.element.removeEventListener("keydown",this.keyDownHandler),this.element.removeEventListener("click",this.clickHandler)}},{key:"openMenu",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"first";!this.isDisabled()&&this.menu&&(this.scrollElements=(0,p.getScrollParents)(this.element),this.scrollElements.forEach(function(t){return t.addEventListener("scroll",e.positionChangeHandler)}),window.addEventListener("resize",this.positionChangeHandler),window.addEventListener("orientationchange",this.positionChangeHandler),this.menu.element.addEventListener("_closemenu",this.closeMenuHandler),this.menu.selected=this.selectedItem,this.menu.open(this.focusElement,t),this.element.setAttribute("aria-expanded","true"),this.focusElementLastScrollPosition=this.focusElement.getBoundingClientRect())}},{key:"closeMenu",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.menu&&(this.menu.removeListeners(),this.scrollElements.forEach(function(t){return t.removeEventListener("scroll",e.positionChangeHandler)}),window.removeEventListener("resize",this.positionChangeHandler),window.removeEventListener("orientationchange",this.positionChangeHandler),this.menu.element.removeEventListener("_closemenu",this.closeMenuHandler),t&&this.focus(),this.element.setAttribute("aria-expanded","false"),this.menu.element.setAttribute("hidden",""))}},{key:"focus",value:function(){this.isDisabled()||this.focusElement.focus()}},{key:"init",value:function(){var e=this,t=function(){e.element.addEventListener("keydown",e.keyDownHandler),e.element.addEventListener("click",e.clickHandler)},n=function(){e.element.setAttribute("role","button"),e.element.setAttribute("aria-expanded","false"),e.element.setAttribute("aria-haspopup","true")},i=function(){e.focusElement=e.element.querySelector('input[type="text"]'),e.focusElement||(e.focusElement=e.element,"button"!==e.focusElement.tagName.toLowerCase()&&"input"!==e.focusElement.tagName.toLowerCase()&&(e.focusElement.hasAttribute("tabindex")||e.focusElement.setAttribute("tabindex","0")))},r=function(e){return e.parentNode!==document.body?document.body.appendChild(e):e},o=function(){var t=void 0,n=e.element.getAttribute("aria-controls");return t=null!==n?document.querySelector("#"+n):e.element.parentNode.querySelector("."+_)},s=function(){var t=o();t&&(t.componentInstance?e.menu=t.componentInstance:(e.menu=b(t),t.componentInstance=e.menu,r(t)),e.element.setAttribute("aria-controls",e.menu.element.id))};i(),n(),s(),this.removeListeners(),t()}},{key:"downgrade",value:function(){var e=this;if(this.menu){var t=[].concat((0,c.default)(document.querySelectorAll("."+m+'[aria-controls="'+this.element.getAttribute("aria-controls")+'"]')));0===t.filter(function(t){return t!==e.element&&t.getAttribute("data-upgraded").indexOf("MaterialExtMenuButton")>=0}).length&&this.menu.downgrade()}this.removeListeners()}}]),e}();!function(){var e=function(e){this.element_=e,this.menuButton_=null,this.init()};window.MaterialExtMenuButton=e,e.prototype.getMenuElement=function(){return this.menuButton_.menu?this.menuButton_.menu.element:null},e.prototype.getMenuElement=e.prototype.getMenuElement,e.prototype.openMenu=function(e){this.menuButton_.openMenu(e)},e.prototype.openMenu=e.prototype.openMenu,e.prototype.closeMenu=function(){this.menuButton_.closeMenu(!0)},e.prototype.closeMenu=e.prototype.closeMenu,e.prototype.getSelectedMenuItem=function(){return this.menuButton_.selectedItem},e.prototype.getSelectedMenuItem=e.prototype.getSelectedMenuItem,e.prototype.setSelectedMenuItem=function(e){this.menuButton_.selectedItem=e},e.prototype.setSelectedMenuItem=e.prototype.setSelectedMenuItem,e.prototype.init=function(){this.element_&&(this.menuButton_=new E(this.element_),this.element_.addEventListener("mdl-componentdowngraded",this.mdlDowngrade_.bind(this)),this.element_.classList.add(h.IS_UPGRADED))},e.prototype.mdlDowngrade_=function(){this.menuButton_.downgrade()},componentHandler.register({constructor:e,classAsString:"MaterialExtMenuButton",cssClass:m,widget:!0})}()},function(e,t,n){"use strict";var i=n(15),r=n(2);!function(){var e="mdlext-selectfield__label",t="mdlext-selectfield__select",n=function(e){this.element_=e,this.init()};window.MaterialExtSelectfield=n,n.prototype.onFocus_=function(){this.element_.classList.add(r.IS_FOCUSED)},n.prototype.onBlur_=function(){this.element_.classList.remove(r.IS_FOCUSED)},n.prototype.onReset_=function(){this.updateClasses_()},n.prototype.updateClasses_=function(){this.checkDisabled(),this.checkValidity(),this.checkDirty(),this.checkFocus()},n.prototype.checkDisabled=function(){this.select_.disabled?this.element_.classList.add(r.IS_DISABLED):this.element_.classList.remove(r.IS_DISABLED)},n.prototype.checkDisabled=n.prototype.checkDisabled,n.prototype.checkFocus=function(){Boolean(this.element_.querySelector(":focus"))?this.element_.classList.add(r.IS_FOCUSED):this.element_.classList.remove(r.IS_FOCUSED)},n.prototype.checkFocus=n.prototype.checkFocus,n.prototype.checkValidity=function(){},n.prototype.checkValidity=n.prototype.checkValidity,n.prototype.checkDirty=function(){this.select_.value&&this.select_.value.length>0?this.element_.classList.add(r.IS_DIRTY):this.element_.classList.remove(r.IS_DIRTY)},n.prototype.checkDirty=n.prototype.checkDirty,n.prototype.disable=function(){this.select_.disabled=!0,this.updateClasses_()},n.prototype.disable=n.prototype.disable,n.prototype.enable=function(){this.select_.disabled=!1,this.updateClasses_()},n.prototype.enable=n.prototype.enable,n.prototype.change=function(e){this.select_.value=e||"",this.updateClasses_()},n.prototype.change=n.prototype.change,n.prototype.init=function(){if(this.element_&&(this.label_=this.element_.querySelector("."+e),this.select_=this.element_.querySelector("."+t))){if(this.select_.removeEventListener("change",this.updateClasses_),this.select_.removeEventListener("focus",this.onFocus_),this.select_.removeEventListener("blur",this.onBlur_),this.select_.removeEventListener("reset",this.onReset_),this.select_.addEventListener("change",this.updateClasses_.bind(this)),this.select_.addEventListener("focus",this.onFocus_.bind(this)),this.select_.addEventListener("blur",this.onBlur_.bind(this)),this.select_.addEventListener("reset",this.onReset_.bind(this)),this.label_){var n=void 0;this.select_.hasAttribute("id")?n=this.select_.id:(n="select-"+(0,i.randomString)(),this.select_.id=n),this.label_.hasAttribute("for")||this.label_.setAttribute("for",n)}var o=this.element_.classList.contains(r.IS_INVALID);this.updateClasses_(),this.element_.classList.add(r.IS_UPGRADED),o&&this.element_.classList.add(r.IS_INVALID),this.select_.hasAttribute("autofocus")&&(this.element_.focus(),this.checkFocus())}},componentHandler.register({constructor:n,classAsString:"MaterialExtSelectfield",cssClass:"mdlext-js-selectfield",
+widget:!0})}()},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var r=n(13),o=i(r),s=n(14),a=n(2);!function(){var e="mdl-layout__content",t="mdlext-is-scroll",n=function(e){this.header_=e,this.content_=null,this.lastScrollTop_=0,this.config_={visibleAtScrollEnd:!1},this.mutationObserver_=null,this.drawing_=!1,this.init()};window.MaterialExtStickyHeader=n,n.prototype.recalcWidth_=function(){this.header_.style.width=this.content_.clientWidth+"px"};var i=(0,o.default)(function(e){return e.recalcWidth_()});n.prototype.resizeHandler_=function(){i(this)},n.prototype.reposition_=function(){var e=this.content_.scrollTop,n=this.lastScrollTop_-e;if(e<=0)this.header_.style.top="0",this.header_.classList.remove(t);else{if(n>0){if(n>=this.header_.offsetHeight){var i=parseInt(window.getComputedStyle(this.header_).getPropertyValue("top"))||0;0!=i&&(this.header_.style.top="0",this.header_.classList.add(t)),this.lastScrollTop_=e}return}if(n<0){this.header_.classList.add(t);var r=parseInt(window.getComputedStyle(this.header_).getPropertyValue("top"))||0;if(this.content_.scrollHeight-this.content_.scrollTop<=this.content_.offsetHeight)0!=r&&(this.header_.style.top=this.config_.visibleAtScrollEnd?"0":"-"+this.header_.offsetHeight+"px");else{r+=n;var o=this.header_.offsetHeight;this.header_.style.top=(Math.abs(r)>o?-o:r)+"px"}}}this.lastScrollTop_=e};var r=(0,o.default)(function(e){return e.reposition_()});n.prototype.scrollHandler_=function(){r(this)},n.prototype.updatePosition_=function(){this.recalcWidth_(),this.reposition_()},n.prototype.addMutationObserver_=function(){var e=this;this.mutationObserver_=new MutationObserver(function(){e.updatePosition_()}),this.mutationObserver_.observe(this.content_,{attributes:!1,childList:!0,characterData:!1,subtree:!0})},n.prototype.removeListeners_=function(){window.removeEventListener("resize",this.resizeHandler_),window.removeEventListener("orientationchange",this.resizeHandler_),this.content_&&this.content_.removeEventListener("scroll",this.scrollHandler_),this.mutationObserver_&&(this.mutationObserver_.disconnect(),this.mutationObserver_=null)},n.prototype.init=function(){this.header_&&(this.removeListeners_(),this.header_.hasAttribute("data-config")&&(this.config_=(0,s.jsonStringToObject)(this.header_.getAttribute("data-config"))),this.content_=this.header_.parentNode.querySelector("."+e)||null,this.content_&&(this.content_.style.paddingTop=this.header_.offsetHeight+"px",this.lastScrollTop_=this.content_.scrollTop,this.content_.addEventListener("scroll",this.scrollHandler_.bind(this)),window.addEventListener("resize",this.resizeHandler_.bind(this)),window.addEventListener("orientationchange",this.resizeHandler_.bind(this)),this.addMutationObserver_(),this.updatePosition_(),this.header_.classList.add(a.IS_UPGRADED)))},componentHandler.register({constructor:n,classAsString:"MaterialExtStickyHeader",cssClass:"mdlext-js-sticky-header"})}()},function(e,t,n){"use strict";n(2),n(21),n(15),n(14),n(13),n(29),n(30)},function(e,t,n){e.exports={default:n(68),__esModule:!0}},function(e,t,n){e.exports={default:n(70),__esModule:!0}},function(e,t,n){e.exports={default:n(72),__esModule:!0}},function(e,t,n){e.exports={default:n(74),__esModule:!0}},function(e,t,n){e.exports={default:n(75),__esModule:!0}},function(e,t,n){e.exports={default:n(76),__esModule:!0}},function(e,t,n){e.exports={default:n(77),__esModule:!0}},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=n(61),o=i(r),s=n(31),a=i(s);t.default=function(){function e(e,t){var n=[],i=!0,r=!1,o=void 0;try{for(var s,l=(0,a.default)(e);!(i=(s=l.next()).done)&&(n.push(s.value),!t||n.length!==t);i=!0);}catch(e){r=!0,o=e}finally{try{!i&&l.return&&l.return()}finally{if(r)throw o}}return n}return function(t,n){if(Array.isArray(t))return t;if((0,o.default)(Object(t)))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(e,t,n){n(28),n(104),e.exports=n(1).Array.from},function(e,t,n){n(48),n(28),e.exports=n(102)},function(e,t,n){n(48),n(28),e.exports=n(103)},function(e,t,n){n(106),e.exports=n(1).Number.isInteger},function(e,t,n){n(107),e.exports=n(1).Number.isNaN},function(e,t,n){n(108),e.exports=n(1).Object.assign},function(e,t,n){n(109);var i=n(1).Object;e.exports=function(e,t,n){return i.defineProperty(e,t,n)}},function(e,t,n){n(112),e.exports=n(1).Object.entries},function(e,t,n){n(110),e.exports=n(1).Object.keys},function(e,t,n){n(111),e.exports=n(1).Reflect.apply},function(e,t){e.exports=function(){}},function(e,t,n){var i=n(19),r=n(45),o=n(100);e.exports=function(e){return function(t,n,s){var a,l=i(t),c=r(l.length),u=o(s,c);if(e&&n!=n){for(;c>u;)if(a=l[u++],a!=a)return!0}else for(;c>u;u++)if((e||u in l)&&l[u]===n)return e||u||0;return!e&&-1}}},function(e,t,n){"use strict";var i=n(12),r=n(25);e.exports=function(e,t,n){t in e?i.f(e,t,r(0,n)):e[t]=n}},function(e,t,n){e.exports=n(5).document&&document.documentElement},function(e,t,n){e.exports=!n(9)&&!n(10)(function(){return 7!=Object.defineProperty(n(38)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var i=n(7),r=n(4)("iterator"),o=Array.prototype;e.exports=function(e){return void 0!==e&&(i.Array===e||o[r]===e)}},function(e,t,n){var i=n(17),r=Math.floor;e.exports=function(e){return!i(e)&&isFinite(e)&&r(e)===e}},function(e,t,n){var i=n(6);e.exports=function(e,t,n,r){try{return r?t(i(n)[0],n[1]):t(n)}catch(t){var o=e.return;throw void 0!==o&&i(o.call(e)),t}}},function(e,t,n){"use strict";var i=n(91),r=n(25),o=n(43),s={};n(11)(s,n(4)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=i(s,{next:r(1,n)}),o(e,t+" Iterator")}},function(e,t,n){var i=n(4)("iterator"),r=!1;try{var o=[7][i]();o.return=function(){r=!0},Array.from(o,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!r)return!1;var n=!1;try{var o=[7],s=o[i]();s.next=function(){return{done:n=!0}},o[i]=function(){return s},e(o)}catch(e){}return n}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t){e.exports=!0},function(e,t,n){"use strict";var i=n(18),r=n(93),o=n(42),s=n(20),a=n(40),l=Object.assign;e.exports=!l||n(10)(function(){var e={},t={},n=Symbol(),i="abcdefghijklmnopqrst";return e[n]=7,i.split("").forEach(function(e){t[e]=e}),7!=l({},e)[n]||Object.keys(l({},t)).join("")!=i})?function(e,t){for(var n=s(e),l=arguments.length,c=1,u=r.f,d=o.f;l>c;)for(var f,h=a(arguments[c++]),p=u?i(h).concat(u(h)):i(h),m=p.length,_=0;m>_;)d.call(h,f=p[_++])&&(n[f]=h[f]);return n}:l},function(e,t,n){var i=n(6),r=n(92),o=n(39),s=n(26)("IE_PROTO"),a=function(){},l="prototype",c=function(){var e,t=n(38)("iframe"),i=o.length,r="<",s=">";for(t.style.display="none",n(81).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write(r+"script"+s+"document.F=Object"+r+"/script"+s),e.close(),c=e.F;i--;)delete c[l][o[i]];return c()};e.exports=Object.create||function(e,t){var n;return null!==e?(a[l]=i(e),n=new a,a[l]=null,n[s]=e):n=c(),void 0===t?n:r(n,t)}},function(e,t,n){var i=n(12),r=n(6),o=n(18);e.exports=n(9)?Object.defineProperties:function(e,t){r(e);for(var n,s=o(t),a=s.length,l=0;a>l;)i.f(e,n=s[l++],t[n]);return e}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var i=n(16),r=n(20),o=n(26)("IE_PROTO"),s=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=r(e),i(e,o)?e[o]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?s:null}},function(e,t,n){var i=n(16),r=n(19),o=n(79)(!1),s=n(26)("IE_PROTO");e.exports=function(e,t){var n,a=r(e),l=0,c=[];for(n in a)n!=s&&i(a,n)&&c.push(n);for(;t.length>l;)i(a,n=t[l++])&&(~o(c,n)||c.push(n));return c}},function(e,t,n){var i=n(3),r=n(1),o=n(10);e.exports=function(e,t){var n=(r.Object||{})[e]||Object[e],s={};s[e]=t(n),i(i.S+i.F*o(function(){n(1)}),"Object",s)}},function(e,t,n){var i=n(18),r=n(19),o=n(42).f;e.exports=function(e){return function(t){for(var n,s=r(t),a=i(s),l=a.length,c=0,u=[];l>c;)o.call(s,n=a[c++])&&u.push(e?[n,s[n]]:s[n]);return u}}},function(e,t,n){e.exports=n(11)},function(e,t,n){var i=n(27),r=n(24);e.exports=function(e){return function(t,n){var o,s,a=String(r(t)),l=i(n),c=a.length;return l<0||l>=c?e?"":void 0:(o=a.charCodeAt(l),o<55296||o>56319||l+1===c||(s=a.charCodeAt(l+1))<56320||s>57343?e?a.charAt(l):o:e?a.slice(l,l+2):(o-55296<<10)+(s-56320)+65536)}}},function(e,t,n){var i=n(27),r=Math.max,o=Math.min;e.exports=function(e,t){return e=i(e),e<0?r(e+t,0):o(e,t)}},function(e,t,n){var i=n(17);e.exports=function(e,t){if(!i(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!i(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!i(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!i(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){var i=n(6),r=n(47);e.exports=n(1).getIterator=function(e){var t=r(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return i(t.call(e))}},function(e,t,n){var i=n(35),r=n(4)("iterator"),o=n(7);e.exports=n(1).isIterable=function(e){var t=Object(e);return void 0!==t[r]||"@@iterator"in t||o.hasOwnProperty(i(t))}},function(e,t,n){"use strict";var i=n(37),r=n(3),o=n(20),s=n(85),a=n(83),l=n(45),c=n(80),u=n(47);r(r.S+r.F*!n(87)(function(e){Array.from(e)}),"Array",{from:function(e){var t,n,r,d,f=o(e),h="function"==typeof this?this:Array,p=arguments.length,m=p>1?arguments[1]:void 0,_=void 0!==m,v=0,g=u(f);if(_&&(m=i(m,p>2?arguments[2]:void 0,2)),void 0==g||h==Array&&a(g))for(t=l(f.length),n=new h(t);t>v;v++)c(n,v,_?m(f[v],v):f[v]);else for(d=g.call(f),n=new h;!(r=d.next()).done;v++)c(n,v,_?s(d,m,[r.value,v],!0):r.value);return n.length=v,n}})},function(e,t,n){"use strict";var i=n(78),r=n(88),o=n(7),s=n(19);e.exports=n(41)(Array,"Array",function(e,t){this._t=s(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,r(1)):"keys"==t?r(0,n):"values"==t?r(0,e[n]):r(0,[n,e[n]])},"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},function(e,t,n){var i=n(3);i(i.S,"Number",{isInteger:n(84)})},function(e,t,n){var i=n(3);i(i.S,"Number",{isNaN:function(e){return e!=e}})},function(e,t,n){var i=n(3);i(i.S+i.F,"Object",{assign:n(90)})},function(e,t,n){var i=n(3);i(i.S+i.F*!n(9),"Object",{defineProperty:n(12).f})},function(e,t,n){var i=n(20),r=n(18);n(96)("keys",function(){return function(e){return r(i(e))}})},function(e,t,n){var i=n(3),r=n(34),o=n(6),s=(n(5).Reflect||{}).apply,a=Function.apply;i(i.S+i.F*!n(10)(function(){s(function(){})}),"Reflect",{apply:function(e,t,n){var i=r(e),l=o(n);return s?s(i,t,l):a.call(i,t,l)}})},function(e,t,n){var i=n(3),r=n(97)(!0);i(i.S,"Object",{entries:function(e){return r(e)}})},function(e,t){}])});
+//# sourceMappingURL=mdl-ext.min.js.map
\ No newline at end of file
diff --git a/node_modules/mdl-ext/lib/mdl-ext.min.js.map b/node_modules/mdl-ext/lib/mdl-ext.min.js.map
new file mode 100644
index 0000000..9290e8e
--- /dev/null
+++ b/node_modules/mdl-ext/lib/mdl-ext.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///mdl-ext.min.js?c961","webpack:///webpack/bootstrap 82005ea981e272a97aa0?b88c","webpack:///./~/babel-runtime/~/core-js/library/modules/_core.js?d611","webpack:///./src/utils/constants.js?14df","webpack:///./~/babel-runtime/~/core-js/library/modules/_export.js?8e40","webpack:///./~/babel-runtime/~/core-js/library/modules/_wks.js?2014","webpack:///./~/babel-runtime/~/core-js/library/modules/_global.js?3c52","webpack:///./~/babel-runtime/~/core-js/library/modules/_an-object.js?3af2","webpack:///./~/babel-runtime/~/core-js/library/modules/_iterators.js?f3f3","webpack:///./~/babel-runtime/helpers/toConsumableArray.js?1825","webpack:///./~/babel-runtime/~/core-js/library/modules/_descriptors.js?c0f5","webpack:///./~/babel-runtime/~/core-js/library/modules/_fails.js?c6dd","webpack:///./~/babel-runtime/~/core-js/library/modules/_hide.js?0d2e","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-dp.js?5986","webpack:///./src/utils/full-throttle.js?dc07","webpack:///./src/utils/json-utils.js?45f0","webpack:///./src/utils/string-utils.js?37f8","webpack:///./~/babel-runtime/~/core-js/library/modules/_has.js?ddd0","webpack:///./~/babel-runtime/~/core-js/library/modules/_is-object.js?cfda","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-keys.js?5d2e","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-iobject.js?527c","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-object.js?ca4f","webpack:///./src/utils/dom-utils.js?0816","webpack:///./~/babel-runtime/helpers/classCallCheck.js?21af","webpack:///./~/babel-runtime/helpers/createClass.js?1dfe","webpack:///./~/babel-runtime/~/core-js/library/modules/_defined.js?932b","webpack:///./~/babel-runtime/~/core-js/library/modules/_property-desc.js?256b","webpack:///./~/babel-runtime/~/core-js/library/modules/_shared-key.js?5602","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-integer.js?09ce","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.string.iterator.js?ae27","webpack:///./src/utils/easing.js?f6e9","webpack:///./src/utils/interval-function.js?c7e7","webpack:///./~/babel-runtime/core-js/get-iterator.js?1b08","webpack:///./~/babel-runtime/core-js/number/is-integer.js?14ca","webpack:///./~/babel-runtime/core-js/object/assign.js?e6ca","webpack:///./~/babel-runtime/~/core-js/library/modules/_a-function.js?0699","webpack:///./~/babel-runtime/~/core-js/library/modules/_classof.js?4e04","webpack:///./~/babel-runtime/~/core-js/library/modules/_cof.js?7381","webpack:///./~/babel-runtime/~/core-js/library/modules/_ctx.js?4e59","webpack:///./~/babel-runtime/~/core-js/library/modules/_dom-create.js?612f","webpack:///./~/babel-runtime/~/core-js/library/modules/_enum-bug-keys.js?3254","webpack:///./~/babel-runtime/~/core-js/library/modules/_iobject.js?34ed","webpack:///./~/babel-runtime/~/core-js/library/modules/_iter-define.js?4272","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-pie.js?a26b","webpack:///./~/babel-runtime/~/core-js/library/modules/_set-to-string-tag.js?57a7","webpack:///./~/babel-runtime/~/core-js/library/modules/_shared.js?f1ee","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-length.js?f510","webpack:///./~/babel-runtime/~/core-js/library/modules/_uid.js?c10a","webpack:///./~/babel-runtime/~/core-js/library/modules/core.get-iterator-method.js?8a45","webpack:///./~/babel-runtime/~/core-js/library/modules/web.dom.iterable.js?7e82","webpack:///./src/accordion/accordion.js?021c","webpack:///./src/carousel/carousel.js?7189","webpack:///./src/collapsible/collapsible.js?8da8","webpack:///./src/formatfield/formatfield.js?602e","webpack:///./src/index.js?9552","webpack:///./src/lightboard/lightboard.js?4a51","webpack:///./src/lightbox/lightbox.js?4a9b","webpack:///./src/menu-button/menu-button.js?292f","webpack:///./src/selectfield/selectfield.js?4310","webpack:///./src/sticky-header/sticky-header.js?0ce9","webpack:///./src/utils/index.js?d310","webpack:///./~/babel-runtime/core-js/array/from.js?efc2","webpack:///./~/babel-runtime/core-js/is-iterable.js?350e","webpack:///./~/babel-runtime/core-js/number/is-nan.js?f039","webpack:///./~/babel-runtime/core-js/object/define-property.js?5f70","webpack:///./~/babel-runtime/core-js/object/entries.js?41f9","webpack:///./~/babel-runtime/core-js/object/keys.js?fe06","webpack:///./~/babel-runtime/core-js/reflect/apply.js?a3c1","webpack:///./~/babel-runtime/helpers/slicedToArray.js?39c4","webpack:///./~/babel-runtime/~/core-js/library/fn/array/from.js?56e0","webpack:///./~/babel-runtime/~/core-js/library/fn/get-iterator.js?cf7c","webpack:///./~/babel-runtime/~/core-js/library/fn/is-iterable.js?f64a","webpack:///./~/babel-runtime/~/core-js/library/fn/number/is-integer.js?17db","webpack:///./~/babel-runtime/~/core-js/library/fn/number/is-nan.js?e8e9","webpack:///./~/babel-runtime/~/core-js/library/fn/object/assign.js?2fc7","webpack:///./~/babel-runtime/~/core-js/library/fn/object/define-property.js?4d33","webpack:///./~/babel-runtime/~/core-js/library/fn/object/entries.js?eb23","webpack:///./~/babel-runtime/~/core-js/library/fn/object/keys.js?0e2b","webpack:///./~/babel-runtime/~/core-js/library/fn/reflect/apply.js?1fe6","webpack:///./~/babel-runtime/~/core-js/library/modules/_add-to-unscopables.js?7da3","webpack:///./~/babel-runtime/~/core-js/library/modules/_array-includes.js?3a79","webpack:///./~/babel-runtime/~/core-js/library/modules/_create-property.js?f892","webpack:///./~/babel-runtime/~/core-js/library/modules/_html.js?8916","webpack:///./~/babel-runtime/~/core-js/library/modules/_ie8-dom-define.js?b102","webpack:///./~/babel-runtime/~/core-js/library/modules/_is-array-iter.js?a9d0","webpack:///./~/babel-runtime/~/core-js/library/modules/_is-integer.js?9053","webpack:///./~/babel-runtime/~/core-js/library/modules/_iter-call.js?45cd","webpack:///./~/babel-runtime/~/core-js/library/modules/_iter-create.js?0359","webpack:///./~/babel-runtime/~/core-js/library/modules/_iter-detect.js?e400","webpack:///./~/babel-runtime/~/core-js/library/modules/_iter-step.js?8944","webpack:///./~/babel-runtime/~/core-js/library/modules/_library.js?08a9","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-assign.js?82ff","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-create.js?9175","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-dps.js?73bc","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-gops.js?a865","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-gpo.js?5ec8","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-keys-internal.js?6fa8","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-sap.js?2605","webpack:///./~/babel-runtime/~/core-js/library/modules/_object-to-array.js?205b","webpack:///./~/babel-runtime/~/core-js/library/modules/_redefine.js?350a","webpack:///./~/babel-runtime/~/core-js/library/modules/_string-at.js?8678","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-index.js?7bea","webpack:///./~/babel-runtime/~/core-js/library/modules/_to-primitive.js?1a65","webpack:///./~/babel-runtime/~/core-js/library/modules/core.get-iterator.js?74ea","webpack:///./~/babel-runtime/~/core-js/library/modules/core.is-iterable.js?be30","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.array.from.js?f8ab","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.array.iterator.js?8359","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.number.is-integer.js?a48c","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.number.is-nan.js?7944","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.object.assign.js?07f0","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.object.define-property.js?8bde","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.object.keys.js?dfa4","webpack:///./~/babel-runtime/~/core-js/library/modules/es6.reflect.apply.js?2b77","webpack:///./~/babel-runtime/~/core-js/library/modules/es7.object.entries.js?872a"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","core","version","__e","Object","defineProperty","value","VK_TAB","VK_ENTER","VK_ESC","VK_SPACE","VK_PAGE_UP","VK_PAGE_DOWN","VK_END","VK_HOME","VK_ARROW_LEFT","VK_ARROW_UP","VK_ARROW_RIGHT","VK_ARROW_DOWN","ARIA_EXPANDED","ARIA_HIDDEN","ARIA_MULTISELECTABLE","ARIA_SELECTED","IS_DIRTY","IS_DISABLED","IS_EXPANDED","IS_FOCUSED","IS_INVALID","IS_UPGRADED","DATA_UPGRADED","MDL_RIPPLE","MDL_RIPPLE_COMPONENT","MDL_RIPPLE_EFFECT","MDL_RIPPLE_EFFECT_IGNORE_EVENTS","global","ctx","hide","PROTOTYPE","$export","type","name","source","key","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","expProto","target","undefined","C","a","b","arguments","length","apply","Function","virtual","R","U","store","uid","Symbol","USE_SYMBOL","$exports","window","Math","self","__g","isObject","it","TypeError","_interopRequireDefault","obj","__esModule","default","_from","_from2","arr","Array","isArray","i","arr2","get","exec","e","dP","createDesc","object","f","anObject","IE8_DOM_DEFINE","toPrimitive","O","Attributes","_apply","_apply2","fullThrottle","callback","context","throttling","_len","args","_key","requestAnimationFrame","jsonStringToObject","_assign","_assign2","jsonString","s","replace","JSON","parse","Error","message","stringList","randomString","joinStrings","_keys","_keys2","isString","str","flatten","list","reduce","concat","objectToStrings","arg","filter","map","result","_len2","_key2","delimiter","join","n","random","toString","slice","hasOwnProperty","$keys","enumBugKeys","keys","IObject","defined","tether","removeChildElements","moveElements","isRectInsideWindowViewport","isFocusable","getScrollParents","getParentElements","getWindowViewport","_isNan","_isNan2","element","forceReflow","lastChild","removeChild","d","style","display","ownerDocument","createDocumentFragment","firstChild","appendChild","viewportWidth","max","document","documentElement","clientWidth","innerWidth","viewportHeight","clientHeight","innerHeight","_ref","top","left","bottom","right","_getWindowViewport","el","elements","parentNode","cs","getComputedStyle","overflowY","overflowX","unshift","body","from","to","controlledBy","controlRect","getBoundingClientRect","_getWindowViewport2","height","offsetHeight","width","offsetWidth","elementRect","dy","dx","ddy","ddx","r","offsetTop","offsetLeft","hasAttribute","tabindex","getAttribute","parseInt","selector","nodeName","test","toLowerCase","disabled","href","getPropertyValue","instance","Constructor","_defineProperty","_defineProperty2","defineProperties","props","descriptor","enumerable","configurable","writable","protoProps","staticProps","prototype","bitmap","shared","ceil","floor","isNaN","$at","String","iterated","_t","_i","point","index","done","easeInOutQuad","t","inOutQuintic","ts","tc","MIN_INERVAL","intervalFunction","interval","lapse","cb","next","timeElapsed","execute","cancel","cancelAnimationFrame","start","timeStart","Date","now","loop","started","immediate","ReferenceError","stop","cof","TAG","ARG","tryGet","T","callee","aFunction","fn","that","is","createElement","split","propertyIsEnumerable","LIBRARY","redefine","has","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","values","def","tag","stat","SHARED","toInteger","min","px","classof","getIteratorMethod","TO_STRING_TAG","collections","Collection","_toConsumableArray2","_toConsumableArray3","_constants","ACCORDION","ACCORDION_VERTICAL","ACCORDION_HORIZONTAL","PANEL","PANEL_ROLE","TAB","TAB_CAPTION","TAB_ROLE","TABPANEL","TABPANEL_ROLE","RIPPLE_EFFECT","RIPPLE","ANIMATION_EFFECT","ANIMATION","MaterialExtAccordion","element_","init","accordionPanelElements","classList","contains","panel","tab","querySelector","tabpanel","commandHandler_","event","preventDefault","stopPropagation","detail","command","dispatchToggleEvent_","state","ce","CustomEvent","bubbles","cancelable","dispatchEvent","openTab_","add","setAttribute","removeAttribute","closeTab_","remove","toggleTab_","closeTabs_","openTabs_","_this","querySelectorAll","forEach","closedItem","_this2","upgradeTab","tabElement","_this3","_accordionPanelElemen","disableTab","enableTab","calcMaxTabCaptionWidth","tabCaption","w","children","v","maxWidth","selectTab","selectedTab","tabClickHandler","tabFocusHandler","tabpanelClickHandler","tabpanelFocusHandler","tabKeydownHandler","keyCode","nextTab","nextPanel","previousElementSibling","nextElementSibling","focus","removeEventListener","addEventListener","_this4","openTab","_accordionPanelElemen2","closeTab","_accordionPanelElemen3","toggleTab","_accordionPanelElemen4","action","_this5","bind","componentHandler","register","constructor","classAsString","cssClass","widget","_isInteger","_isInteger2","_intervalFunction","_intervalFunction2","_easing","_jsonUtils","MDL_RIPPLE_CONTAINER","SLIDE","ROLE","SLIDE_ROLE","MaterialExtCarousel","config_","interactive","autostart","animationLoop","scrollAnimation_","startSlideShow_","nextSlide","slide","animateScroll_","moveSlideIntoViewport_","emitSelectEvent_","nextScroll","direction","nextDirection","scrollLeft","scrollWidth","x","cancelSlideShow_","newPosition","newDuration","completedCallback","distance","duration","abs","command_","setAriaSelected_","slides","getSlidesInViewport_","keyDownHandler_","cmd","getSlide_","shiftKey","setFocus_","dragHandler_","updating","rAFDragId","startX","clientX","touches","prevX","targetElement","update","currentX","drag","endDrag","clickHandler_","focusHandler_","blurHandler_","evt","carouselRect","slidesInViewport","slideRect","removeListeners_","mdlDowngrade_","closest","addRipple_","rippleContainer","ripple","img","title","upgradeElement","stopAnimation","upgradeSlides","hasRippleEffect","getConfig","_classCallCheck2","_classCallCheck3","_createClass2","_createClass3","_stringUtils","_domUtils","JS_COLLAPSIBLE","COLLAPSIBLE_CONTROL_CLASS","COLLAPSIBLE_GROUP_CLASS","COLLAPSIBLE_REGION_CLASS","Collapsible","controlElement_","keyDownHandler","controlElement","MouseEvent","view","clickHandler","isDisabled","push","find","toggle","isExpanded","dispatchToggleEvent","regions","regionElements","region","collapse","expand","regionId","ids","regionIds","role","addRegionId","initControl","initRegions","addRegionElement","addListeners","removeListeners","MaterialExtCollapsible","collapsible","downgrade","getControlElement","getRegionElements","addRegionElements","removeRegionElements","removeRegionElement","disableToggle","enableToggle","_class","_temp","JS_FORMAT_FIELD","FORMAT_FIELD_COMPONENT","browserLanguage","navigator","languages","language","userLanguage","FormatField","options_","clearTimeout","timer","focusInHandler","input","readOnly","unformatInput","setTimeout","select","focusOutHandler","formatValue","doReplace","RegExp","options","groupSeparator","decimalSeparator","intlGroupSeparator_","intlDecimalSeparator_","Intl","NumberFormat","locales","format","stripSeparatorsFromValue","fixSeparators","_this6","addOptions","opts","addLocale","addGrouping","toLocaleString","useGrouping","minimumFractionDigits","maximumFractionDigits","charAt","input_","MaterialExtFormatfield","formatField_","getOptions","getUnformattedValue","unformat","LIGHTBOARD_ROLE","SLIDE_TABSTOP","MaterialExtLightboard","getSlide","selectSlide_","selectedSlide","dispatchSelectEvent_","addRipple","firstSlide","lastSlide","prevSlide","keydownHandler","focusHandler","_slicedToArray2","_slicedToArray3","_entries","_entries2","_getIterator2","_getIterator3","_fullThrottle","_fullThrottle2","LIGHTBOX","LIGHTBOX_SLIDER","LIGHTBOX_SLIDER_SLIDE","STICKY_FOOTER","BUTTON","MaterialExtLightbox","dispatchAction_","buttonClickHandler_","repositionDialog_","lightboxElement","footerHeight","footer","isSticky","reposition","dialog","fh","position","scrollTop","topValue","naturalWidth","vh","imgLoadHandler_","imgDragHandler_","setStyles","properties","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_step$value","err","return","opacity","slider","textContent","line-height","font-size","text-align","background-image","src","button","figcaption","JS_MENU_BUTTON","MENU_BUTTON_MENU","MENU_BUTTON_MENU_ITEM","MENU_BUTTON_MENU_ITEM_SEPARATOR","menuFactory","ariaControls","removeAllSelected","selectedItem","setSelected","item","force","getSelected","isSeparator","nextItem","current","firstElementChild","previousItem","lastElementChild","firstItem","lastItem","selectItem","close","blurHandler","relatedTarget","explicitOriginalTarget","activeElement","shouldClose","touchStartHandler","open","btn","forceFocus","addWaiAria","menuitem","selected","MenuButton","openMenu","closeMenu","recalcMenuPosition","focusElement","focusElementLastScrollPosition","parseFloat","menu","positionChangeHandler","closeMenuHandler","dispatchMenuSelect","scrollElements","addFocusElement","tagName","moveElementToDocumentBody","findMenuElement","menuElement","menuElementId","addMenu","componentInstance","related","indexOf","MaterialExtMenuButton","menuButton_","getMenuElement","getSelectedMenuItem","setSelectedMenuItem","LABEL","INPUT","MaterialExtSelectfield","onFocus_","onBlur_","onReset_","updateClasses_","checkDisabled","checkValidity","checkDirty","checkFocus","select_","Boolean","disable","enable","change","label_","invalid","MDL_LAYOUT_CONTENT","IS_SCROLL_CLASS","MaterialExtStickyHeader","header_","content_","lastScrollTop_","visibleAtScrollEnd","mutationObserver_","drawing_","recalcWidth_","throttleResize","resizeHandler_","reposition_","currentContentScrollTop","scrollDiff","headerTop","scrollHeight","throttleScroll","scrollHandler_","updatePosition_","addMutationObserver_","MutationObserver","observe","attributes","childList","characterData","subtree","disconnect","paddingTop","_isIterable2","_isIterable3","sliceIterator","_arr","_n","_d","_e","_s","Number","isInteger","assign","$Object","desc","Reflect","toIObject","toLength","toIndex","IS_INCLUDES","$this","fromIndex","$defineProperty","ArrayProto","isFinite","iterator","ret","create","SAFE_CLOSING","riter","skipClosing","safe","iter","getKeys","gOPS","pIE","toObject","$assign","A","K","k","aLen","getSymbols","isEnum","j","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","lt","gt","contentWindow","write","Properties","getOwnPropertySymbols","ObjectProto","arrayIndexOf","names","fails","KEY","exp","isEntries","TO_STRING","pos","l","charCodeAt","val","valueOf","getIterator","iterFn","isIterable","isArrayIter","createProperty","getIterFn","arrayLike","step","mapfn","mapping","addToUnscopables","_k","Arguments","number","rApply","fApply","thisArgument","argumentsList","L"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,IACA,kBAAAG,gBAAAC,IACAD,OAAA,aAAAH,GACA,gBAAAC,SACAA,QAAA,WAAAD,IAEAD,EAAA,WAAAC,KACCK,KAAA,WACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAP,OAGA,IAAAC,GAAAO,EAAAD,IACAP,WACAS,GAAAF,EACAG,UAUA,OANAL,GAAAE,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAS,UAGAT,EAAAD,QAvBA,GAAAQ,KAqCA,OATAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAQ,EAAA,GAGAR,EAAA,KDgBM,SAASL,EAAQD,EAASM,GAE/BA,EAAoB,KACpBL,EAAOD,QAAUM,EAAoB,KAKhC,SAASL,EAAQD,GE9DvB,GAAAe,GAAAd,EAAAD,SAA6BgB,QAAA,QAC7B,iBAAAC,WAAAF,IFoEM,SAASd,EAAQD,GGrEvB,YHyECkB,QAAOC,eAAenB,EAAS,cAC7BoB,UGxEH,IAAMC,GAAiB,EACjBC,EAAiB,GACjBC,EAAiB,GACjBC,EAAiB,GACjBC,EAAiB,GACjBC,EAAiB,GACjBC,EAAiB,GACjBC,EAAiB,GACjBC,EAAiB,GACjBC,EAAiB,GACjBC,EAAiB,GACjBC,EAAiB,GAEjBC,EAAuB,gBACvBC,EAAuB,cACvBC,EAAuB,uBACvBC,EAAuB,gBAEvBC,EAAgB,WAChBC,EAAgB,cAChBC,EAAgB,cAChBC,EAAgB,aAChBC,EAAgB,aAChBC,EAAgB,cAChBC,EAAgB,gBAEhBC,EAAkC,aAClCC,EAAkC,iBAClCC,EAAkC,uBAClCC,EAAkC,qCH4EvC/C,GGzECqB,SH0EDrB,EGzECsB,WH0EDtB,EGzECuB,SH0EDvB,EGzECwB,WH0EDxB,EGzECyB,aH0EDzB,EGzEC0B,eH0ED1B,EGzEC2B,SH0ED3B,EGzEC4B,UH0ED5B,EGzEC6B,gBH0ED7B,EGzEC8B,cH0ED9B,EGzEC+B,iBH0ED/B,EGzECgC,gBH0EDhC,EGzECiC,gBH0EDjC,EGzECkC,cH0EDlC,EGzECmC,uBH0EDnC,EGzECoC,gBH0EDpC,EGzECqC,WH0EDrC,EGzECsC,cH0EDtC,EGzECuC,cH0EDvC,EGzECwC,aH0EDxC,EGzECyC,aH0EDzC,EGzEC0C,cH0ED1C,EGzEC2C,gBH0ED3C,EGzEC4C,aH0ED5C,EGzEC6C,uBH0ED7C,EGzEC8C,oBH0ED9C,EGzEC+C,mCH6EI,SAAS9C,EAAQD,EAASM,GIzIhC,GAAA0C,GAAA1C,EAAA,GACAS,EAAAT,EAAA,GACA2C,EAAA3C,EAAA,IACA4C,EAAA5C,EAAA,IACA6C,EAAA,YAEAC,EAAA,SAAAC,EAAAC,EAAAC,GACA,GASAC,GAAAC,EAAAC,EATAC,EAAAN,EAAAD,EAAAQ,EACAC,EAAAR,EAAAD,EAAAU,EACAC,EAAAV,EAAAD,EAAAY,EACAC,EAAAZ,EAAAD,EAAAc,EACAC,EAAAd,EAAAD,EAAAgB,EACAC,EAAAhB,EAAAD,EAAAkB,EACAtE,EAAA6D,EAAA9C,IAAAuC,KAAAvC,EAAAuC,OACAiB,EAAAvE,EAAAmD,GACAqB,EAAAX,EAAAb,EAAAe,EAAAf,EAAAM,IAAAN,EAAAM,QAAqFH,EAErFU,KAAAN,EAAAD,EACA,KAAAE,IAAAD,GAEAE,GAAAE,GAAAa,GAAAC,SAAAD,EAAAhB,GACAC,GAAAD,IAAAxD,KAEA0D,EAAAD,EAAAe,EAAAhB,GAAAD,EAAAC,GAEAxD,EAAAwD,GAAAK,GAAA,kBAAAW,GAAAhB,GAAAD,EAAAC,GAEAW,GAAAV,EAAAR,EAAAS,EAAAV,GAEAqB,GAAAG,EAAAhB,IAAAE,EAAA,SAAAgB,GACA,GAAAd,GAAA,SAAAe,EAAAC,EAAA/D,GACA,GAAAT,eAAAsE,GAAA,CACA,OAAAG,UAAAC,QACA,iBAAAJ,EACA,kBAAAA,GAAAC,EACA,kBAAAD,GAAAC,EAAAC,GACW,UAAAF,GAAAC,EAAAC,EAAA/D,GACF,MAAA6D,GAAAK,MAAA3E,KAAAyE,WAGT,OADAjB,GAAAT,GAAAuB,EAAAvB,GACAS,GAEKF,GAAAO,GAAA,kBAAAP,GAAAT,EAAA+B,SAAArE,KAAA+C,KAELO,KACAjE,EAAAiF,UAAAjF,EAAAiF,aAA+CzB,GAAAE,EAE/CL,EAAAD,EAAA8B,GAAAX,MAAAf,IAAAN,EAAAqB,EAAAf,EAAAE,KAKAN,GAAAQ,EAAA,EACAR,EAAAU,EAAA,EACAV,EAAAY,EAAA,EACAZ,EAAAc,EAAA,EACAd,EAAAgB,EAAA,GACAhB,EAAAkB,EAAA,GACAlB,EAAA+B,EAAA,GACA/B,EAAA8B,EAAA,IACAjF,EAAAD,QAAAoD,GJ+IM,SAASnD,EAAQD,EAASM,GK3MhC,GAAA8E,GAAA9E,EAAA,WACA+E,EAAA/E,EAAA,IACAgF,EAAAhF,EAAA,GAAAgF,OACAC,EAAA,kBAAAD,GAEAE,EAAAvF,EAAAD,QAAA,SAAAsD,GACA,MAAA8B,GAAA9B,KAAA8B,EAAA9B,GACAiC,GAAAD,EAAAhC,KAAAiC,EAAAD,EAAAD,GAAA,UAAA/B,IAGAkC,GAAAJ,SLiNM,SAASnF,EAAQD,GM1NvB,GAAAgD,GAAA/C,EAAAD,QAAA,mBAAAyF,gBAAAC,WACAD,OAAA,mBAAAE,YAAAD,WAAAC,KAAAX,SAAA,gBACA,iBAAAY,WAAA5C,INiOM,SAAS/C,EAAQD,EAASM,GOpOhC,GAAAuF,GAAAvF,EAAA,GACAL,GAAAD,QAAA,SAAA8F,GACA,IAAAD,EAAAC,GAAA,KAAAC,WAAAD,EAAA,qBACA,OAAAA,KP2OM,SAAS7F,EAAQD,GQ9OvBC,EAAAD,YRoPM,SAASC,EAAQD,EAASM,GSpPhC,YAQA,SAAA0F,GAAAC,GAAsC,MAAAA,MAAAC,WAAAD,GAAuCE,QAAAF,GAN7EjG,EAAAkG,aAEA,IAAAE,GAAA9F,EAAA,IAEA+F,EAAAL,EAAAI,EAIApG,GAAAmG,QAAA,SAAAG,GACA,GAAAC,MAAAC,QAAAF,GAAA,CACA,OAAAG,GAAA,EAAAC,EAAAH,MAAAD,EAAAxB,QAA6C2B,EAAAH,EAAAxB,OAAgB2B,IAC7DC,EAAAD,GAAAH,EAAAG,EAGA,OAAAC,GAEA,SAAAL,EAAAF,SAAAG,KT4PM,SAASrG,EAAQD,EAASM,GU7QhCL,EAAAD,SAAAM,EAAA,eACA,MAAsE,IAAtEY,OAAAC,kBAAiC,KAAQwF,IAAA,WAAgB,YAAahC,KVqRhE,SAAS1E,EAAQD,GWvRvBC,EAAAD,QAAA,SAAA4G,GACA,IACA,QAAAA,IACG,MAAAC,GACH,YX+RM,SAAS5G,EAAQD,EAASM,GYnShC,GAAAwG,GAAAxG,EAAA,IACAyG,EAAAzG,EAAA,GACAL,GAAAD,QAAAM,EAAA,YAAA0G,EAAAxD,EAAApC,GACA,MAAA0F,GAAAG,EAAAD,EAAAxD,EAAAuD,EAAA,EAAA3F,KACC,SAAA4F,EAAAxD,EAAApC,GAED,MADA4F,GAAAxD,GAAApC,EACA4F,IZ0SM,SAAS/G,EAAQD,EAASM,GahThC,GAAA4G,GAAA5G,EAAA,GACA6G,EAAA7G,EAAA,IACA8G,EAAA9G,EAAA,KACAwG,EAAA5F,OAAAC,cAEAnB,GAAAiH,EAAA3G,EAAA,GAAAY,OAAAC,eAAA,SAAAkG,EAAAnD,EAAAoD,GAIA,GAHAJ,EAAAG,GACAnD,EAAAkD,EAAAlD,MACAgD,EAAAI,GACAH,EAAA,IACA,MAAAL,GAAAO,EAAAnD,EAAAoD,GACG,MAAAT,IACH,UAAAS,IAAA,OAAAA,GAAA,KAAAvB,WAAA,2BAEA,OADA,SAAAuB,KAAAD,EAAAnD,GAAAoD,EAAAlG,OACAiG,IbuTM,SAASpH,EAAQD,EAASM,GAE/B,YAUA,SAAS0F,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GARvF/E,OAAOC,eAAenB,EAAS,cAC7BoB,UAGF,IAAImG,GAASjH,EAAoB,IAE7BkH,EAAUxB,EAAuBuB,GchUhCE,EAAe,SAACC,EAAUC,GAEzBA,IACHA,EAAkBlC,OAGpB,IAAImC,KAEJ,OAAO,YAAa,OAAAC,GAAAhD,UAAAC,OAATgD,EAASvB,MAAAsB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAATD,EAASC,GAAAlD,UAAAkD,EACdH,KACFA,KACAnC,OAAOuC,sBAAuB,WAE5B,MADAJ,OAAa,EACNJ,EAAArB,SAAcuB,EAAUC,EAASG,Od6V/C9H,GAAQmG,QcvVMsB,EdwVdxH,EAAOD,QAAUA,EAAiBmG,SAI7B,SAASlG,EAAQD,EAASM,Ge9XhC,YfiZC,SAAS0F,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GATvF/E,OAAOC,eAAenB,EAAS,cAC7BoB,WAEFpB,EAAQiI,mBAAqBxD,MAE7B,IAAIyD,GAAU5H,EAAoB,IAE9B6H,EAAWnC,EAAuBkC,GexYjCD,EAAqB,SAACG,GAA6B,GAAjB7E,GAAiBsB,UAAAC,OAAA,GAAAL,SAAAI,UAAA,GAAAA,UAAA,MACjDwD,EAAID,EAAWE,QAAQ,KAAM,IACnC,KACE,SAAOH,EAAAhC,SAAc5C,EAAQgF,KAAKC,MAAMH,IAE1C,MAAOxB,GACL,KAAM,IAAI4B,OAAJ,gCAA0CJ,EAA1C,YAAuDxB,EAAE6B,UfiZlE1I,Ge7YQiI,sBfiZH,SAAShI,EAAQD,EAASM,GgBlahC,YhB6cC,SAAS0F,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GATvF/E,OAAOC,eAAenB,EAAS,cAC7BoB,WAEFpB,EAAQ2I,WAAa3I,EAAQ4I,aAAe5I,EAAQ6I,YAAcpE,MAElE,IAAIqE,GAAQxI,EAAoB,IAE5ByI,EAAS/C,EAAuB8C,GgB5a/BH,EAAa,WAAa,OAAAd,GAAAhD,UAAAC,OAATgD,EAASvB,MAAAsB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAATD,EAASC,GAAAlD,UAAAkD,EAE9B,IAAMiB,GAAW,SAAAC,GAAA,MAAc,OAAPA,GAA8B,gBAARA,IAExCC,EAAU,QAAVA,GAAUC,GAAA,MAAQA,GAAKC,OAAO,SAACzE,EAAGC,GAAJ,MAAUD,GAAE0E,OAAO9C,MAAMC,QAAQ5B,GAAKsE,EAAQtE,GAAKA,SAEjF0E,EAAkB,SAAAC,GAAA,SACtBR,EAAA5C,SAAYoD,GACTC,OAAO,SAAAhG,GAAA,MAAO+F,GAAI/F,KAClBiG,IAAI,SAAAjG,GAAA,MAAOA,KAEhB,OAAOsE,GACJ0B,OAAO,SAAAD,GAAA,QAASA,IAChBE,IAAI,SAAAF,GAAA,MAAOP,GAASO,GAAOA,EAAMD,EAAgBC,KACjDH,OAAO,SAACM,EAAQH,GAAT,MAAiBG,GAAOL,OAAO9C,MAAMC,QAAQ+C,GAAOL,EAAQK,GAAOA,SAezEV,EAAc,kBAAAc,GAAA9E,UAAAC,OAAqBgD,EAArBvB,MAAAoD,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAqB9B,EAArB8B,EAAA,GAAA/E,UAAA+E,EAAA,IAACC,GAADhF,UAAAC,OAAA,GAAAL,SAAAI,UAAA,GAAAA,UAAA,GAAa,GAAb,OAA8B8D,gBAAcb,GAAMgC,KAAKD,IAYrEjB,EAAe,cAAEmB,GAAFlF,UAAAC,OAAA,GAAAL,SAAAI,UAAA,GAAAA,UAAA,GAAI,EAAJ,OAAY0B,OAAOwD,EAAE,GAAID,MAASpE,KAAKsE,SAASC,SAAS,IAA3B,qBAAmDC,MAAM,EAAG,KAAKA,MAAM,EAAGH,GhB2c5H/J,GgBzcQ6I,chB0cR7I,EgB1cqB4I,ehB2crB5I,EgB3cmC2I,chB+c9B,SAAS1I,EAAQD,GiBzhBvB,GAAAmK,MAAuBA,cACvBlK,GAAAD,QAAA,SAAA8F,EAAAtC,GACA,MAAA2G,GAAAxJ,KAAAmF,EAAAtC,KjBgiBM,SAASvD,EAAQD,GkBliBvBC,EAAAD,QAAA,SAAA8F,GACA,sBAAAA,GAAA,OAAAA,EAAA,kBAAAA,KlByiBM,SAAS7F,EAAQD,EAASM,GmBziBhC,GAAA8J,GAAA9J,EAAA,IACA+J,EAAA/J,EAAA,GAEAL,GAAAD,QAAAkB,OAAAoJ,MAAA,SAAAjD,GACA,MAAA+C,GAAA/C,EAAAgD,KnBijBM,SAASpK,EAAQD,EAASM,GoBrjBhC,GAAAiK,GAAAjK,EAAA,IACAkK,EAAAlK,EAAA,GACAL,GAAAD,QAAA,SAAA8F,GACA,MAAAyE,GAAAC,EAAA1E,MpB6jBM,SAAS7F,EAAQD,EAASM,GqBhkBhC,GAAAkK,GAAAlK,EAAA,GACAL,GAAAD,QAAA,SAAA8F,GACA,MAAA5E,QAAAsJ,EAAA1E,MrBwkBM,SAAS7F,EAAQD,EAASM,GAE/B,YAWA,SAAS0F,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GATvF/E,OAAOC,eAAenB,EAAS,cAC7BoB,WAEFpB,EAAQyK,OAASzK,EAAQ0K,oBAAsB1K,EAAQ2K,aAAe3K,EAAQ4K,2BAA6B5K,EAAQ6K,YAAc7K,EAAQ8K,iBAAmB9K,EAAQ+K,kBAAoB/K,EAAQgL,kBAAoBvG,MAEpN,IAAIwG,GAAS3K,EAAoB,IAE7B4K,EAAUlF,EAAuBiF,GsB9kBhCP,EAAsB,SAACS,GAG3B,IAH2D,GAAvBC,KAAuBvG,UAAAC,OAAA,GAAAL,SAAAI,UAAA,KAAAA,UAAA,GAGpDsG,EAAQE,WACbF,EAAQG,YAAYH,EAAQE,UAE9B,IAAGD,EAAa,CAEd,GAAMG,GAAIJ,EAAQK,MAAMC,OAExBN,GAAQK,MAAMC,QAAU,OACxBN,EAAQK,MAAMC,QAAUF,IAoBtBZ,EAAe,SAACpH,EAAQiB,GAI5B,IAHKA,IACHA,EAASjB,EAAOmI,cAAcC,0BAEzBpI,EAAOqI,YACZpH,EAAOqH,YAAYtI,EAAOqI,WAE5B,OAAOpH,IASHwG,EAAoB,WACxB,OACEc,cAAepG,KAAKqG,IAAIC,SAASC,gBAAgBC,aAAe,EAAGzG,OAAO0G,YAAc,GACxFC,eAAgB1G,KAAKqG,IAAIC,SAASC,gBAAgBI,cAAgB,EAAG5G,OAAO6G,aAAe,KAczF1B,EAA6B,SAAA2B,GAAkC,GAA/BC,GAA+BD,EAA/BC,IAAKC,EAA0BF,EAA1BE,KAAMC,EAAoBH,EAApBG,OAAQC,EAAYJ,EAAZI,MAAYC,EACzB5B,IAAlCc,EAD2Dc,EAC3Dd,cAAeM,EAD4CQ,EAC5CR,cACvB,OAAOI,IAAO,GACZC,GAAQ,GACRC,GAAUN,GACVO,GAASb,GASPhB,EAAmB,SAAA+B,GAgBvB,IAfA,GAAMC,MAcF3B,EAAU0B,EAAGE,WACV5B,GAAS,CACd,GAAM6B,GAAKvH,OAAOwH,iBAAiB9B,EAInC,IAHsB,WAAjB6B,EAAGE,WAA2C,WAAjBF,EAAGG,WACnCL,EAASM,QAAQjC,GAEhBA,IAAYa,SAASqB,KACtB,KAEFlC,GAAUA,EAAQ4B,WAGpB,MAAOD,IASH/B,EAAoB,SAACuC,EAAMC,GAG/B,IAFA,GAAM7D,MACFyB,EAAUmC,EAAKP,WACZ5B,GACFA,IAAYoC,GAGf7D,EAAO0D,QAAQjC,GACfA,EAAUA,EAAQ4B,UAEpB,OAAOrD,IAkCHe,EAAS,SAAC+C,EAAcrC,GAC5B,GAAMsC,GAAcD,EAAaE,wBADOC,EAIE3C,IAAlCc,EAJgC6B,EAIhC7B,cAAeM,EAJiBuB,EAIjBvB,cAEvBjB,GAAQK,MAAMoC,OAAS,OAEpBzC,EAAQ0C,aAAezB,IACxBjB,EAAQK,MAAMoC,OAAYxB,EAA1B,KACAjB,EAAQK,MAAM0B,UAAY,QAI5B/B,EAAQK,MAAMsC,MAAQ,OACnB3C,EAAQ4C,YAAcjC,IACvBX,EAAQK,MAAMsC,MAAWhC,EAAzB,KAGF,IAAMkC,GAAc7C,EAAQuC,wBAGtBO,EAAKR,EAAYjB,IAAMwB,EAAYxB,IACnC0B,EAAKT,EAAYhB,KAAOuB,EAAYvB,KAGpCD,EAAMwB,EAAYxB,IAAMyB,EACxBxB,EAAOuB,EAAYvB,KAAOyB,EAC1BxB,EAASF,EAAMwB,EAAYJ,OAC3BjB,EAAQF,EAAOuB,EAAYF,MAG7BK,EAAMF,EACNG,EAAMF,CAEV,IAAGtD,GACD4B,IAAKA,EAAMiB,EAAYG,OACvBnB,KAAMA,EACNC,OAAQA,EAASe,EAAYG,OAC7BjB,MAAOA,IAGPwB,EAAMV,EAAYG,OAASK,MAGxB,IAAGrD,GACN4B,IAAKA,EAAMiB,EAAYG,OACvBnB,KAAMA,EAAOgB,EAAYK,MAAQE,EAAYF,MAC7CpB,OAAQA,EAASe,EAAYG,OAC7BjB,MAAOF,EAAOgB,EAAYK,QAG1BK,EAAMV,EAAYG,OAASK,EAC3BG,EAAMF,EAAKT,EAAYK,MAAQE,EAAYF,UAGxC,IAAGlD,GACN4B,IAAKA,EAAMwB,EAAYJ,OACvBnB,KAAMA,EACNC,OAAQA,EAASsB,EAAYJ,OAC7BjB,MAAOA,IAGPwB,EAAMF,EAAKD,EAAYJ,WAGpB,IAAGhD,GACN4B,IAAKA,EAAMwB,EAAYJ,OACvBnB,KAAMA,EAAOgB,EAAYK,MAAQE,EAAYF,MAC7CpB,OAAQA,EAASsB,EAAYJ,OAC7BjB,MAAOF,EAAOgB,EAAYK,QAG1BK,EAAMF,EAAKD,EAAYJ,OACvBQ,EAAMF,EAAKT,EAAYK,MAAQE,EAAYF,UAGxC,IAAGlD,GACN4B,IAAKA,EACLC,KAAMA,EAAOgB,EAAYK,MACzBpB,OAAQA,EACRC,MAAOA,EAAQc,EAAYK,QAG3BM,EAAMX,EAAYK,MAAQI,MAGvB,IAAGtD,GACN4B,IAAKA,EACLC,KAAMA,EAAOgB,EAAYK,MACzBpB,OAAQA,EACRC,MAAOA,EAAQc,EAAYK,QAG3BM,EAAMF,EAAKF,EAAYF,UAgBvB,IARAK,EAAOF,EAAKvB,EAASN,EAClBI,EAAMiB,EAAYG,QAAU,GAAKlB,EAASe,EAAYG,QAAUxB,EACjE+B,EAAMV,EAAYG,OAASK,EAErBzB,EAAMwB,EAAYJ,QAAU,GAAKlB,EAASsB,EAAYJ,QAAUxB,IACtE+B,EAAMF,EAAKD,EAAYJ,QAGtBnB,EAAOuB,EAAYF,MAAQL,EAAYK,OAAShC,EAEjDsC,EAAMX,EAAYK,MAAQI,MAGvB,IAAGzB,EAAOuB,EAAYF,OAAS,EAElCM,EAAMF,EAAKF,EAAYF,UAGpB,CAEH,GAAMO,GAAI5B,EAAOuB,EAAYF,MAAQhC,CACrCsC,GAAMF,EAAKG,EAMflD,EAAQK,MAAMgB,IAASrB,EAAQmD,UAAYH,EAA3C,KACAhD,EAAQK,MAAMiB,KAAUtB,EAAQoD,WAAaH,EAA7C,MASIvD,EAAc,SAACM,GAInB,GAAIA,EAAQqD,aAAa,YAAa,CACpC,GAAMC,GAAWtD,EAAQuD,aAAa,WACtC,QAAKxD,EAAA/E,SAAasI,GAChB,MAAOE,UAASF,MAIpB,GAAItD,EAAQqD,aAAa,oBACqB,UAA5CrD,EAAQuD,aAAa,mBAErB,QAIF,IAAME,GAAW,wCACXtL,EAAO6H,EAAQ0D,QACrB,IAAID,EAASE,KAAKxL,GAChB,MAAsC,WAA/B6H,EAAQ9H,KAAK0L,gBAA+B5D,EAAQ6D,QAI7D,IAAa,MAAT1L,GAAyB,SAATA,EAClB,QAAS6H,EAAQ8D,IAGnB,IAAa,WAAT3L,EAAmB,CAErB,GAAM0J,GAAKvH,OAAOwH,iBAAiB9B,EACnC,OAAwD,SAAjD6B,EAAGkC,iBAAiB,WAAWH,cAGxC,StBypBD/O,GsBrlBCgL,oBtBslBDhL,EsBrlBC+K,oBtBslBD/K,EsBrlBC8K,mBtBslBD9K,EsBrlBC6K,ctBslBD7K,EsBrlBC4K,6BtBslBD5K,EsBrlBC2K,etBslBD3K,EsBrlBC0K,sBtBslBD1K,EsBrlBCyK,UtBylBI,SAASxK,EAAQD,GuBx/BvB,YAEAA,GAAAkG,cAEAlG,EAAAmG,QAAA,SAAAgJ,EAAAC,GACA,KAAAD,YAAAC,IACA,SAAArJ,WAAA,uCvBggCM,SAAS9F,EAAQD,EAASM,GwBtgChC,YAQA,SAAA0F,GAAAC,GAAsC,MAAAA,MAAAC,WAAAD,GAAuCE,QAAAF,GAN7EjG,EAAAkG,aAEA,IAAAmJ,GAAA/O,EAAA,IAEAgP,EAAAtJ,EAAAqJ,EAIArP,GAAAmG,QAAA,WACA,QAAAoJ,GAAA/K,EAAAgL,GACA,OAAA/I,GAAA,EAAmBA,EAAA+I,EAAA1K,OAAkB2B,IAAA,CACrC,GAAAgJ,GAAAD,EAAA/I,EACAgJ,GAAAC,WAAAD,EAAAC,eACAD,EAAAE,gBACA,SAAAF,OAAAG,cAAA,EACAN,EAAAnJ,SAAA3B,EAAAiL,EAAAjM,IAAAiM,IAIA,gBAAAL,EAAAS,EAAAC,GAGA,MAFAD,IAAAN,EAAAH,EAAAW,UAAAF,GACAC,GAAAP,EAAAH,EAAAU,GACAV,OxB8gCM,SAASnP,EAAQD,GyBriCvBC,EAAAD,QAAA,SAAA8F,GACA,GAAArB,QAAAqB,EAAA,KAAAC,WAAA,yBAAAD,EACA,OAAAA,KzB6iCM,SAAS7F,EAAQD,G0BhjCvBC,EAAAD,QAAA,SAAAgQ,EAAA5O,GACA,OACAsO,aAAA,EAAAM,GACAL,eAAA,EAAAK,GACAJ,WAAA,EAAAI,GACA5O,W1BwjCM,SAASnB,EAAQD,EAASM,G2B7jChC,GAAA2P,GAAA3P,EAAA,YACA+E,EAAA/E,EAAA,GACAL,GAAAD,QAAA,SAAAwD,GACA,MAAAyM,GAAAzM,KAAAyM,EAAAzM,GAAA6B,EAAA7B,M3BokCM,SAASvD,EAAQD,G4BtkCvB,GAAAkQ,GAAAxK,KAAAwK,KACAC,EAAAzK,KAAAyK,KACAlQ,GAAAD,QAAA,SAAA8F,GACA,MAAAsK,OAAAtK,MAAA,GAAAA,EAAA,EAAAqK,EAAAD,GAAApK,K5B8kCM,SAAS7F,EAAQD,EAASM,G6BllChC,YACA,IAAA+P,GAAA/P,EAAA,OAGAA,GAAA,IAAAgQ,OAAA,kBAAAC,GACAnQ,KAAAoQ,GAAAF,OAAAC,GACAnQ,KAAAqQ,GAAA,GAEC,WACD,GAEAC,GAFArJ,EAAAjH,KAAAoQ,GACAG,EAAAvQ,KAAAqQ,EAEA,OAAAE,IAAAtJ,EAAAvC,QAA+B1D,MAAAqD,OAAAmM,UAC/BF,EAAAL,EAAAhJ,EAAAsJ,GACAvQ,KAAAqQ,IAAAC,EAAA5L,QACU1D,MAAAsP,EAAAE,a7BylCJ,SAAS3Q,EAAQD,G8BxmCvB,Y9B8mCCkB,QAAOC,eAAenB,EAAS,cAC7BoB,U8B3mCH,IAAMyP,GAAgB,SAACC,EAAGlM,EAAG/D,EAAG0K,GAE9B,MADAuF,IAAKvF,EAAI,EACNuF,EAAI,EAAUjQ,EAAI,EAAIiQ,EAAIA,EAAIlM,GACjCkM,KACQjQ,EAAI,GAAKiQ,GAAKA,EAAI,GAAK,GAAKlM,IAGhCmM,EAAe,SAACD,EAAGlM,EAAG/D,EAAG0K,GAC7B,GAAMyF,IAAMF,GAAGvF,GAAGuF,EACZG,EAAKD,EAAGF,CACd,OAAOlM,GAAE/D,GAAG,EAAEoQ,EAAGD,MAASA,EAAGA,EAAK,GAAGC,G9BgnCtCjR,G8B7mCQ6Q,gB9B8mCR7Q,E8B9mCuB+Q,gB9BknClB,SAAS9Q,EAAQD,GAEtB,YAEAkB,QAAOC,eAAenB,EAAS,cAC7BoB,U+BxoCH,IAAM8P,GAAc,IAAK,GAQnBC,EAAmB,WAA8B,GAA5BC,GAA4BvM,UAAAC,OAAA,GAAAL,SAAAI,UAAA,GAAAA,UAAA,GAAjBqM,EAEhCG,EAAQD,EAAWF,EAAcA,EAAcE,EAC/CE,EAAK7M,OACL8M,EAAO,KACPC,EAAc,EAEZC,EAAU,WACd,GAAMxK,GAAIqK,EAAGE,EACRvK,IACHyK,KAIEA,EAAS,WACVH,GACD9L,OAAOkM,qBAAqBJ,GAE9BA,EAAO,KACPC,EAAc,GAGVI,EAAQ,WACZ,GAAIC,GAAYC,KAAKC,MAEfC,EAAO,QAAPA,GAAOD,GACPR,IACFA,EAAO9L,OAAOuC,sBAAuB,iBAAMgK,GAAMF,KAAKC,SAEtDP,GAAeO,EAAMF,EAElBL,GAAeH,IAChBI,KACKD,GAAeH,GAASA,IAG3BG,EAAc,IAGlBK,EAAYE,GAIhBR,GAAO,EACPS,EAAMH,GAGR,QACEI,GAAIA,WACF,MAAe,OAARV,GAETH,GAAIA,YACF,MAAOC,IAETD,GAAIA,UAAShQ,GACXiQ,EAAQjQ,EAAQ8P,EAAcA,EAAc9P,GAE9CwQ,MAVK,SAUClK,GACJ,GAAuB,kBAAbA,GACR,KAAM,IAAI3B,WAAU,wCAEtBuL,GAAK5J,EACLkK,KAEFM,UAjBK,WAkBH,IAAIZ,EACF,KAAM,IAAIa,gBAAe,kEAE3BV,MAEFW,KAAM,iBAAMV,O/BqpCf1R,GAAQmG,Q+BjpCMgL,E/BkpCdlR,EAAOD,QAAUA,EAAiBmG,SAI7B,SAASlG,EAAQD,EAASM,GgCxuChCL,EAAAD,SAAkBmG,QAAA7F,EAAA,IAAA4F,gBhC8uCZ,SAASjG,EAAQD,EAASM,GiC9uChCL,EAAAD,SAAkBmG,QAAA7F,EAAA,IAAA4F,gBjCovCZ,SAASjG,EAAQD,EAASM,GkCpvChCL,EAAAD,SAAkBmG,QAAA7F,EAAA,IAAA4F,gBlC0vCZ,SAASjG,EAAQD,GmC1vCvBC,EAAAD,QAAA,SAAA8F,GACA,qBAAAA,GAAA,KAAAC,WAAAD,EAAA,sBACA,OAAAA,KnCiwCM,SAAS7F,EAAQD,EAASM,GoClwChC,GAAA+R,GAAA/R,EAAA,IACAgS,EAAAhS,EAAA,kBAEAiS,EAA6C,aAA7CF,EAAA,WAAyB,MAAAxN,eAGzB2N,EAAA,SAAA1M,EAAAtC,GACA,IACA,MAAAsC,GAAAtC,GACG,MAAAqD,KAGH5G,GAAAD,QAAA,SAAA8F,GACA,GAAAuB,GAAAoL,EAAArO,CACA,OAAAK,UAAAqB,EAAA,mBAAAA,EAAA,OAEA,iBAAA2M,EAAAD,EAAAnL,EAAAnG,OAAA4E,GAAAwM,IAAAG,EAEAF,EAAAF,EAAAhL,GAEA,WAAAjD,EAAAiO,EAAAhL,KAAA,kBAAAA,GAAAqL,OAAA,YAAAtO,IpC0wCM,SAASnE,EAAQD,GqC/xCvB,GAAAiK,MAAiBA,QAEjBhK,GAAAD,QAAA,SAAA8F,GACA,MAAAmE,GAAAtJ,KAAAmF,GAAAoE,MAAA,QrCsyCM,SAASjK,EAAQD,EAASM,GsCxyChC,GAAAqS,GAAArS,EAAA,GACAL,GAAAD,QAAA,SAAA4S,EAAAC,EAAA/N,GAEA,GADA6N,EAAAC,GACAnO,SAAAoO,EAAA,MAAAD,EACA,QAAA9N,GACA,uBAAAH,GACA,MAAAiO,GAAAjS,KAAAkS,EAAAlO,GAEA,wBAAAA,EAAAC,GACA,MAAAgO,GAAAjS,KAAAkS,EAAAlO,EAAAC,GAEA,wBAAAD,EAAAC,EAAA/D,GACA,MAAA+R,GAAAjS,KAAAkS,EAAAlO,EAAAC,EAAA/D,IAGA,kBACA,MAAA+R,GAAA7N,MAAA8N,EAAAhO,ctCizCM,SAAS5E,EAAQD,EAASM,GuCl0ChC,GAAAuF,GAAAvF,EAAA,IACA0L,EAAA1L,EAAA,GAAA0L,SAEA8G,EAAAjN,EAAAmG,IAAAnG,EAAAmG,EAAA+G,cACA9S,GAAAD,QAAA,SAAA8F,GACA,MAAAgN,GAAA9G,EAAA+G,cAAAjN,QvCy0CM,SAAS7F,EAAQD,GwC70CvBC,EAAAD,QAAA,gGAEAgT,MAAA,MxCo1CM,SAAS/S,EAAQD,EAASM,GyCt1ChC,GAAA+R,GAAA/R,EAAA,GACAL,GAAAD,QAAAkB,OAAA,KAAA+R,qBAAA,GAAA/R,OAAA,SAAA4E,GACA,gBAAAuM,EAAAvM,KAAAkN,MAAA,IAAA9R,OAAA4E,KzC81CM,SAAS7F,EAAQD,EAASM,G0Cj2ChC,YACA,IAAA4S,GAAA5S,EAAA,IACA8C,EAAA9C,EAAA,GACA6S,EAAA7S,EAAA,IACA4C,EAAA5C,EAAA,IACA8S,EAAA9S,EAAA,IACA+S,EAAA/S,EAAA,GACAgT,EAAAhT,EAAA,IACAiT,EAAAjT,EAAA,IACAkT,EAAAlT,EAAA,IACAmT,EAAAnT,EAAA,eACAoT,OAAApJ,MAAA,WAAAA,QACAqJ,EAAA,aACAC,EAAA,OACAC,EAAA,SAEAC,EAAA,WAA4B,MAAA1T,MAE5BH,GAAAD,QAAA,SAAA+T,EAAAC,EAAA5E,EAAAmC,EAAA0C,EAAAC,EAAAC,GACAb,EAAAlE,EAAA4E,EAAAzC,EACA,IAeA6C,GAAA5Q,EAAA6Q,EAfAC,EAAA,SAAAC,GACA,IAAAb,GAAAa,IAAAC,GAAA,MAAAA,GAAAD,EACA,QAAAA,GACA,IAAAX,GAAA,kBAAwC,UAAAxE,GAAAhP,KAAAmU,GACxC,KAAAV,GAAA,kBAA4C,UAAAzE,GAAAhP,KAAAmU,IACvC,kBAA2B,UAAAnF,GAAAhP,KAAAmU,KAEhCjC,EAAA0B,EAAA,YACAS,EAAAR,GAAAJ,EACAa,KACAF,EAAAT,EAAAhE,UACA4E,EAAAH,EAAAf,IAAAe,EAAAb,IAAAM,GAAAO,EAAAP,GACAW,EAAAD,GAAAL,EAAAL,GACAY,EAAAZ,EAAAQ,EAAAH,EAAA,WAAAM,EAAAnQ,OACAqQ,EAAA,SAAAd,EAAAQ,EAAAO,SAAAJ,GAwBA,IArBAG,IACAT,EAAAb,EAAAsB,EAAAnU,KAAA,GAAAoT,KACAM,IAAAnT,OAAA6O,YAEAwD,EAAAc,EAAA/B,MAEAY,GAAAE,EAAAiB,EAAAZ,IAAAvQ,EAAAmR,EAAAZ,EAAAK,KAIAW,GAAAE,KAAArR,OAAAuQ,IACAa,KACAE,EAAA,WAAiC,MAAAD,GAAAhU,KAAAP,QAGjC8S,IAAAiB,IAAAT,IAAAgB,GAAAF,EAAAf,IACAvQ,EAAAsR,EAAAf,EAAAmB,GAGAvB,EAAAW,GAAAY,EACAvB,EAAAf,GAAAwB,EACAG,EAMA,GALAG,GACAY,OAAAP,EAAAG,EAAAN,EAAAT,GACAvJ,KAAA4J,EAAAU,EAAAN,EAAAV,GACAmB,QAAAF,GAEAV,EAAA,IAAA3Q,IAAA4Q,GACA5Q,IAAAgR,IAAArB,EAAAqB,EAAAhR,EAAA4Q,EAAA5Q,QACKJ,KAAAc,EAAAd,EAAAQ,GAAA8P,GAAAgB,GAAAV,EAAAI,EAEL,OAAAA,K1Cw2CM,SAASnU,EAAQD,G2C56CvBA,EAAAiH,KAAcgM,sB3Ck7CR,SAAShT,EAAQD,EAASM,G4Cl7ChC,GAAA2U,GAAA3U,EAAA,IAAA2G,EACAmM,EAAA9S,EAAA,IACAgS,EAAAhS,EAAA,iBAEAL,GAAAD,QAAA,SAAA8F,EAAAoP,EAAAC,GACArP,IAAAsN,EAAAtN,EAAAqP,EAAArP,IAAAiK,UAAAuC,IAAA2C,EAAAnP,EAAAwM,GAAkE3C,gBAAAvO,MAAA8T,M5Cy7C5D,SAASjV,EAAQD,EAASM,G6C97ChC,GAAA0C,GAAA1C,EAAA,GACA8U,EAAA,qBACAhQ,EAAApC,EAAAoS,KAAApS,EAAAoS,MACAnV,GAAAD,QAAA,SAAAwD,GACA,MAAA4B,GAAA5B,KAAA4B,EAAA5B,S7Cq8CM,SAASvD,EAAQD,EAASM,G8Cx8ChC,GAAA+U,GAAA/U,EAAA,IACAgV,EAAA5P,KAAA4P,GACArV,GAAAD,QAAA,SAAA8F,GACA,MAAAA,GAAA,EAAAwP,EAAAD,EAAAvP,GAAA,sB9Cg9CM,SAAS7F,EAAQD,G+Cp9CvB,GAAAS,GAAA,EACA8U,EAAA7P,KAAAsE,QACA/J,GAAAD,QAAA,SAAAwD,GACA,gBAAA6F,OAAA5E,SAAAjB,EAAA,GAAAA,EAAA,QAAA/C,EAAA8U,GAAAtL,SAAA,O/C29CM,SAAShK,EAAQD,EAASM,GgD99ChC,GAAAkV,GAAAlV,EAAA,IACAmT,EAAAnT,EAAA,eACA+S,EAAA/S,EAAA,EACAL,GAAAD,QAAAM,EAAA,GAAAmV,kBAAA,SAAA3P,GACA,GAAArB,QAAAqB,EAAA,MAAAA,GAAA2N,IACA3N,EAAA,eACAuN,EAAAmC,EAAA1P,MhDq+CM,SAAS7F,EAAQD,EAASM,GiD3+ChCA,EAAA,IAMA,QALA0C,GAAA1C,EAAA,GACA4C,EAAA5C,EAAA,IACA+S,EAAA/S,EAAA,GACAoV,EAAApV,EAAA,kBAEAqV,GAAA,sEAAAlP,EAAA,EAAwGA,EAAA,EAAOA,IAAA,CAC/G,GAAAuN,GAAA2B,EAAAlP,GACAmP,EAAA5S,EAAAgR,GACAQ,EAAAoB,KAAA7F,SACAyE,OAAAkB,IAAAxS,EAAAsR,EAAAkB,EAAA1B,GACAX,EAAAW,GAAAX,EAAA9M,QjDk/CM,SAAStG,EAAQD,EAASM,GAE/B,YAQA,SAAS0F,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GANvF,GAAI4P,GAAsBvV,EAAoB,GAE1CwV,EAAsB9P,EAAuB6P,GkDt+ClDE,EAAAzV,EAAA,IAkBA,WAEE,GAAM0V,GAAuB,mBACvBC,EAAuB,6BACvBC,EAAuB,+BACvBC,EAAuB,0BACvBC,EAAuB,eACvBC,EAAuB,wBACvBC,EAAuB,iCACvBC,EAAuB,MACvBC,EAAuB,6BACvBC,EAAuB,WACvBC,EAAuB,0BACvBC,EAAuB,gCACvBC,EAAuB,6BACvBC,EAAuB,wCAMvBC,EAAuB,SAA+B3L,GAG1D/K,KAAK2W,SAAW5L,EAGhB/K,KAAK4W,OAEPvR,QAAAqR,qBAAiCA,CAIjC,IAAMG,GAAyB,SAAE9L,GAC/B,MAAIA,GAOKA,EAAQ+L,UAAUC,SAAShB,IAEhCiB,MAAOjM,EACPkM,IAAKlM,EAAQmM,cAAR,IAA0BjB,GAC/BkB,SAAUpM,EAAQmM,cAAR,IAA0Bd,KAKpCY,MAAOjM,EAAQ4B,WACfsK,IAAKlM,EAAQ4B,WAAWuK,cAAnB,IAAqCjB,GAC1CkB,SAAUpM,EAAQ4B,WAAWuK,cAAnB,IAAqCd,KAhB/CY,MAAO,KACPC,IAAK,KACLE,SAAU,MA2BhBT,GAAqB/G,UAAUyH,gBAAkB,SAAUC,GACzDA,EAAMC,iBACND,EAAME,kBAEHF,GAASA,EAAMG,QAChBxX,KAAKyX,QAAQJ,EAAMG,SAWvBd,EAAqB/G,UAAU+H,qBAAuB,SAAWC,EAAOV,EAAKE,GAC3E,GAAMS,GAAK,GAAIC,aAAY,UACzBC,WACAC,cACAP,QAAUG,MAAOA,EAAOV,IAAKA,EAAKE,SAAUA,IAE9CnX,MAAK2W,SAASqB,cAAcJ,IAU9BlB,EAAqB/G,UAAUsI,SAAW,SAAUjB,EAAOC,EAAKE,GAC9DH,EAAMF,UAAUoB,IAAhBvC,EAAAxT,aACA8U,EAAIkB,aAAJxC,EAAA9T,cAAgC,QAChCsV,EAASiB,gBAAgB,UACzBjB,EAASgB,aAATxC,EAAA7T,YAAmC,SACnC9B,KAAK0X,qBAAqB,OAAQT,EAAKE,IAUzCT,EAAqB/G,UAAU0I,UAAY,SAAUrB,EAAOC,EAAKE,GAC/DH,EAAMF,UAAUwB,OAAhB3C,EAAAxT,aACA8U,EAAIkB,aAAJxC,EAAA9T,cAAgC,SAChCsV,EAASgB,aAAa,SAAU,IAChChB,EAASgB,aAATxC,EAAA7T,YAAmC,QACnC9B,KAAK0X,qBAAqB,QAAST,EAAKE,IAU1CT,EAAqB/G,UAAU4I,WAAa,SAAUvB,EAAOC,EAAKE,GAC1DnX,KAAK2W,SAASvI,aAAa,aAAe6I,EAAI7I,aAAa,cACT,SAAlD6I,EAAI3I,aAAJqH,EAAA9T,eAAgC8M,cAClC3O,KAAKqY,UAAUrB,EAAOC,EAAKE,IAG4C,SAAnEnX,KAAK2W,SAASrI,aAAdqH,EAAA5T,sBAAiD4M,eACnD3O,KAAKwY,aAEPxY,KAAKiY,SAASjB,EAAOC,EAAKE,MAShCT,EAAqB/G,UAAU8I,UAAY,WAAW,GAAAC,GAAA1Y,IACmB,UAAnEA,KAAK2W,SAASrI,aAAdqH,EAAA5T,sBAAiD4M,kBACnD1F,UAAAyM,EAAA3P,SAAI/F,KAAK2W,SAASgC,iBAAd,IAAmC/C,EAAnC,OAAmDG,KACpD3M,OAAO,SAAA4N,GAAA,OAAUA,EAAMF,UAAUC,SAAhBpB,EAAAxT,eACjByW,QAAQ,SAAAC,GACP,GAAM5B,GAAM4B,EAAW3B,cAAX,IAA6BjB,EACpCgB,GAAI7I,aAAa,aACpBsK,EAAKT,SAASY,EAAY5B,EAAK4B,EAAW3B,cAAX,IAA6Bd,OAUtEM,EAAqB/G,UAAU6I,WAAa,WAAW,GAAAM,GAAA9Y,QACrDiJ,UAAAyM,EAAA3P,SAAI/F,KAAK2W,SAASgC,iBAAd,IAAmC/C,EAAnC,OAAmDG,EAAnD,IAAAJ,EAAAxT,eACDyW,QAAS,SAAA5B,GACR,GAAMC,GAAMD,EAAME,cAAN,IAAwBjB,EAChCgB,GAAI7I,aAAa,aACnB0K,EAAKT,UAAUrB,EAAOC,EAAKD,EAAME,cAAN,IAAwBd,OAa3DM,EAAqB/G,UAAUoJ,WAAa,SAAUC,GAAa,GAAAC,GAAAjZ,KAAAkZ,EAEhCrC,EAAwBmC,GAAjDhC,EAFyDkC,EAEzDlC,MAAOC,EAFkDiC,EAElDjC,IAAKE,EAF6C+B,EAE7C/B,SAEdgC,EAAa,WACjBnC,EAAMF,UAAUwB,OAAhB3C,EAAAxT,aACA8U,EAAIkB,aAAa,WAAY,MAC7BlB,EAAIkB,aAAJxC,EAAA9T,cAAgC,SAChCsV,EAASgB,aAAa,SAAU,IAChChB,EAASgB,aAATxC,EAAA7T,YAAmC,SAG/BsX,EAAY,WACZnC,EAAI7I,aAAJuH,EAAA9T,gBACFoV,EAAIkB,aAAJxC,EAAA9T,cAAgC,SAGlCoV,EAAIkB,aAAa,WAAY,KAEwB,SAAlDlB,EAAI3I,aAAJqH,EAAA9T,eAAgC8M,eACjCqI,EAAMF,UAAUoB,IAAhBvC,EAAAxT,aACAgV,EAASiB,gBAAgB,UACzBjB,EAASgB,aAATxC,EAAA7T,YAAmC,WAGnCkV,EAAMF,UAAUwB,OAAhB3C,EAAAxT,aACAgV,EAASgB,aAAa,SAAU,IAChChB,EAASgB,aAATxC,EAAA7T,YAAmC,UAOjCuX,EAAyB,WAE7B,GAAMC,GAAarC,EAAIC,cAAJ,IAAsBhB,EACzC,IAAkB,OAAfoD,EAAqB,CACtB,GAAMC,MAAItQ,UAAAyM,EAAA3P,SAAIkR,EAAIuC,WACfpQ,OAAQ,SAAAqD,GAAA,MAAMA,GAAGqK,YAAcrK,EAAGqK,UAAUC,SAASb,KACrDlN,OAAQ,SAACyQ,EAAGhN,GAAJ,MAAWgN,GAAIhN,EAAGkB,aAAa,GAEpC+L,EAAWzC,EAAIhL,aAAesN,CACjCG,GAAW,IACZJ,EAAWlO,MAAM,aAAkBsO,EAAnC,QAKAC,EAAY,WACX1C,EAAI7I,aAAJuH,EAAA3T,oBACHiH,UAAAyM,EAAA3P,SAAIkT,EAAKtC,SAASgC,iBAAd,IAAmC1C,EAAnC,4BAAiE2C,QACnE,SAAAgB,GAAA,MAAeA,GAAYxB,gBAAZzC,EAAA3T,iBAEjBiV,EAAIkB,aAAJxC,EAAA3T,cAAgC,UAI9B6X,EAAkB,WACtBZ,EAAKV,WAAWvB,EAAOC,EAAKE,GAC5BwC,KAGIG,EAAkB,WACtBH,KAGII,EAAuB,WAC3BJ,KAGIK,EAAuB,WAC3BL,KAGIM,EAAoB,SAAAxT,GAExB,IAAGwS,EAAKtC,SAASvI,aAAa,YAI9B,GAAK3H,EAAEyT,UAAFvE,EAAApU,QAA+BkF,EAAEyT,UAAFvE,EAAAnU,SAC/BiF,EAAEyT,UAAFvE,EAAAjU,aAA+B+E,EAAEyT,UAAFvE,EAAAlU,eAC/BgF,EAAEyT,UAAFvE,EAAA/T,eAA+B6E,EAAEyT,UAAFvE,EAAAhU,eAA+B,CAEjE,GAAIwY,GAAU,KACVD,EAAUzT,EAAEyT,OAiBhB,IAfIA,eACFC,EAAUlB,EAAKtC,SAASO,cAAd,IAAgCnB,EAAhC,mBAAwDE,GAC/DkE,GAAWA,EAAQ/L,aAAa,cACjC+L,EAAU,KACVD,oBAGKA,eACPC,EAAUlB,EAAKtC,SAASO,cAAd,IAAgCnB,EAAhC,kBAAuDE,GAC9DkE,GAAWA,EAAQ/L,aAAa,cACjC+L,EAAU,KACVD,mBAIAC,EAAS,CACX,GAAIC,GAAYpD,CAEhB,GAAG,CAoBD,GAnBIkD,mBAA2BA,qBAC7BE,EAAYA,EAAUC,uBAClBD,IACFA,EAAYnB,EAAKtC,SAASO,cAAd,IAAgCnB,EAAhC,gBAEVqE,IACFD,EAAUC,EAAUlD,cAAV,IAA4BnB,EAA5B,OAAwCE,KAG7CiE,qBAA6BA,uBACpCE,EAAYA,EAAUE,mBAClBF,IACFA,EAAYnB,EAAKtC,SAASO,cAAd,IAAgCnB,EAAhC,iBAEVqE,IACFD,EAAUC,EAAUlD,cAAV,IAA4BnB,EAA5B,OAAwCE,MAInDkE,IAAWA,EAAQ/L,aAAa,YAIjC,KAHA+L,GAAU,WAMRC,IAAcpD,GAGlBmD,IACF1T,EAAE6Q,iBACF7Q,EAAE8Q,kBACF4C,EAAQI,QAIJJ,EAAQ/L,aAARuH,EAAA3T,oBAEFiH,UAAAyM,EAAA3P,SAAIkT,EAAKtC,SAASgC,iBAAd,IAAmC1C,EAAnC,4BACD2C,QAAS,SAAAgB,GAAA,MAAeA,GAAYxB,gBAAZzC,EAAA3T,iBAE3BmY,EAAQhC,aAARxC,EAAA3T,cAAoC,cAIjCyE,GAAEyT,UAAFvE,EAAAzU,UAA0BuF,EAAEyT,UAAFvE,EAAAvU,WACjCqF,EAAE6Q,iBACF7Q,EAAE8Q,kBACF0B,EAAKV,WAAWvB,EAAOC,EAAKE,IAIhC,IAAW,OAARF,EACD,KAAM,IAAI5O,OAAM,wDAGlB,IAAgB,OAAb8O,EACD,KAAM,IAAI9O,OAAM,6DAGlB2O,GAAMmB,aAAa,OAAQnC,GAC3BiB,EAAIkB,aAAa,OAAQhC,GACzBgB,EAASgB,aAAa,OAAQ9B,GAE3BY,EAAI7I,aAAa,YAClB+K,IAGAC,IAGEpZ,KAAK2W,SAASG,UAAUC,SAASjB,IACnCuD,IAGErZ,KAAK2W,SAASG,UAAUC,SAAST,IACnCW,EAAIH,UAAUoB,IAAI3B,GAGhBvW,KAAK2W,SAASG,UAAUC,SAASP,IACnCW,EAASL,UAAUoB,IAAIzB,GAIzBQ,EAAIuD,oBAAoB,QAASX,GACjC5C,EAAIuD,oBAAoB,QAASV,GACjC7C,EAAIuD,oBAAoB,UAAWP,GACnC9C,EAASqD,oBAAoB,QAAST,GACtC5C,EAASqD,oBAAoB,QAASR,GAEtC/C,EAAIwD,iBAAiB,QAASZ,GAC9B5C,EAAIwD,iBAAiB,QAASX,GAC9B7C,EAAIwD,iBAAiB,UAAWR,GAChC9C,EAASsD,iBAAiB,QAASV,MACnC5C,EAASsD,iBAAiB,QAAST,OAErCtD,EAAqB/G,UAArBoJ,WAA+CrC,EAAqB/G,UAAUoJ,WAO9ErC,EAAqB/G,UAAU8H,QAAU,SAAUD,GAAS,GAAAkD,GAAA1a,KAEpD2a,EAAU,SAAA3B,GAEd,GAAkB3U,SAAf2U,EACD0B,EAAKjC,gBAEF,IAAkB,OAAfO,EAAqB,IAAA4B,GACM/D,EAAwBmC,GAAjDhC,EADmB4D,EACnB5D,MAAOC,EADY2D,EACZ3D,IAAKE,EADOyD,EACPzD,QACiC,UAAlDF,EAAI3I,aAAJqH,EAAA9T,eAAgC8M,eACjC+L,EAAKnC,WAAWvB,EAAOC,EAAKE,KAK5B0D,EAAW,SAAA7B,GACf,GAAkB3U,SAAf2U,EACD0B,EAAKlC,iBAEF,IAAkB,OAAfQ,EAAqB,IAAA8B,GACMjE,EAAwBmC,GAAjDhC,EADmB8D,EACnB9D,MAAOC,EADY6D,EACZ7D,IAAKE,EADO2D,EACP3D,QAEiC,UAAlDF,EAAI3I,aAAJqH,EAAA9T,eAAgC8M,eACjC+L,EAAKnC,WAAWvB,EAAOC,EAAKE,KAK5B4D,EAAY,SAAA/B,GAChB,GAAGA,EAAY,IAAAgC,GACoBnE,EAAwBmC,GAAjDhC,EADKgE,EACLhE,MAAOC,EADF+D,EACE/D,IAAKE,EADP6D,EACO7D,QACpBuD,GAAKnC,WAAWvB,EAAOC,EAAKE,IAKhC,IAAGK,GAAUA,EAAOyD,OAAQ,IAClBA,GAAmBzD,EAAnByD,OAAQ7W,EAAWoT,EAAXpT,MAEhB,QAAQ6W,EAAOtM,eACb,IAAK,OACHgM,EAAQvW,EACR,MACF,KAAK,QACHyW,EAASzW,EACT,MACF,KAAK,SACH2W,EAAU3W,EACV,MACF,KAAK,UACAA,GACDpE,KAAK+Y,WAAW3U,EAElB,MACF,SACE,KAAM,IAAIiE,OAAJ,mBAA6B4S,EAA7B,sEAIdvE,EAAqB/G,UAArB8H,QAA4Cf,EAAqB/G,UAAU8H,QAM3Ef,EAAqB/G,UAAUiH,KAAO,WAAW,GAAAsE,GAAAlb,IAC/C,IAAIA,KAAK2W,SAAU,CAEjB,IAAM3W,KAAK2W,SAASG,UAAUC,SAASjB,KAAyB9V,KAAK2W,SAASG,UAAUC,SAASlB,GAC/F,KAAM,IAAIxN,OAAJ,2CAAqDyN,EAArD,SAAkFD,EAAlF,IAGR7V,MAAK2W,SAASwB,aAAa,OAAQ,WAE/BnY,KAAK2W,SAASvI,aAAduH,EAAA5T,uBACF/B,KAAK2W,SAASwB,aAAdxC,EAAA5T,qBAAiD,SAGnD/B,KAAK2W,SAAS6D,oBAAoB,UAAWxa,KAAKoX,iBAClDpX,KAAK2W,SAAS8D,iBAAiB,UAAWza,KAAKoX,gBAAgB+D,KAAKnb,aAEpEiJ,UAAAyM,EAAA3P,SAAI/F,KAAK2W,SAASgC,iBAAd,IAAmC/C,EAAnC,OAAmDG,KAAU6C,QAAS,SAAA5B,GAAA,MAASkE,GAAKnC,WAAW/B,KAGnGhX,KAAK2W,SAASG,UAAUoB,IAAxBvC,EAAArT,eAqBJ8Y,iBAAiBC,UACfC,YAAa5E,EACb6E,cAAe,uBACfC,SAAU,sBACVC,gBlDkgDE,SAAS5b,EAAQD,EAASM,GAE/B,YAwBA,SAAS0F,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAtBvF,GAAI6V,GAAaxb,EAAoB,IAEjCyb,EAAc/V,EAAuB8V,GAErCjG,EAAsBvV,EAAoB,GAE1CwV,EAAsB9P,EAAuB6P,GAE7C3N,EAAU5H,EAAoB,IAE9B6H,EAAWnC,EAAuBkC,GmD1hEvC8T,EAAA1b,EAAA,InD8hEK2b,EAAqBjW,EAAuBgW,GmD7hEjDE,EAAA5b,EAAA,IACA6b,EAAA7b,EAAA,IACAyV,EAAAzV,EAAA,GAqBM8b,EAAuB,4CAG7B,WAIE,GAAMC,GAAa,yBACbC,EAAa,OACbC,EAAa,WAObC,EAAsB,SAA6BrR,GAEvD/K,KAAK2W,SAAW5L,EAGhB/K,KAAKqc,SACHC,eACAC,aACAtZ,KAAe,QACf+N,SAAe,IACfwL,iBAAeX,EAAA9V,SAAiB,MAGlC/F,KAAKyc,oBAAmBZ,EAAA9V,SAAiB,IAGzC/F,KAAK4W,OAGPvR,QAAA+W,oBAAgCA,EAOhCA,EAAoBzM,UAAU+M,gBAAkB,WAAW,GAAAhE,GAAA1Y,KAEnD2c,EAAY,WAChB,GAAIC,GAAQlE,EAAK/B,SAASO,cAAd,IAAgC+E,EAAhC,kBASZ,OARGW,KACDA,EAAMxE,gBAAgB,iBACtBwE,EAAQA,EAAMtC,oBAEZsC,IACFA,EAAQlE,EAAK/B,SAASO,cAAd,IAAgC+E,EAAhC,gBACRvD,EAAKmE,eAAe,MAEnBD,IACDlE,EAAKoE,uBAAuBF,GAC5BA,EAAMzE,aAAa,gBAAiB,IACpCO,EAAKqE,iBAAiB,OAAQ,KAAMH,QAMlCI,EAAa,SAAAC,GACjB,GAAIC,GAAgBD,CAEjB,UAAWA,GAAcvE,EAAK/B,SAASwG,aAAezE,EAAK/B,SAASyG,YAAc1E,EAAK/B,SAAS7K,YACjGoR,EAAgB,OAEmB,IAA7BxE,EAAK/B,SAASwG,aACpBD,EAAgB,OAElB,IAAMG,GAAI,SAAWH,EAChB5X,KAAK4P,IAAIwD,EAAK/B,SAASwG,WAAazE,EAAK/B,SAAS7K,YAAa4M,EAAK/B,SAASyG,YAAc1E,EAAK/B,SAAS7K,aACzGxG,KAAKqG,IAAI+M,EAAK/B,SAASwG,WAAazE,EAAK/B,SAAS7K,YAAa,EAGpE,OADA4M,GAAKmE,eAAeQ,EAAG,KAChBH,EAILld,MAAKqc,QAAQG,cAAc3K,UAAS,WACtC6G,EAAK2D,QAAQG,cAAcxL,SAAW0H,EAAK2D,QAAQrL,QACnD,IAAIiM,GAAY,MAEb,YAAavE,EAAK2D,QAAQpZ,KAC3ByV,EAAK2D,QAAQG,cAAchL,MAAO,WAEhC,MADAyL,GAAYD,EAAWC,SAKzBN,IACAjE,EAAK2D,QAAQG,cAAchL,MAAO,WAChC,MAAOmL,YAYfP,EAAoBzM,UAAU2N,iBAAmB,WAC5Ctd,KAAKqc,QAAQG,cAAc3K,UAC5B7R,KAAKqc,QAAQG,cAAcxK,OAC3BhS,KAAK+c,iBAAiB,QAAtBpH,EAAAxU,OAAuCnB,KAAK2W,SAASO,cAAd,IAAgC+E,EAAhC,sBAW3CG,EAAoBzM,UAAUkN,eAAiB,SAAUU,EAAaC,EAAaC,GAAoB,GAAA3E,GAAA9Y,KAE/FwR,EAAQxR,KAAK2W,SAASwG,WACtBO,EAAWH,EAAc/L,CAEf,KAAbkM,GAAgB,WACjB,GAAMC,GAAWrY,KAAKqG,IAAIrG,KAAK4P,IAAI5P,KAAKsY,IAAIF,GAAWF,GAAa,KAAM,KACtE9M,EAAI,CACRoI,GAAK2D,iBAAiBzK,OACtB8G,EAAK2D,iBAAiBjL,MAAO,SAAAJ,GAE3B,MADAV,IAAKU,EACFV,EAAIiN,GACL7E,EAAKnC,SAASwG,cAAarB,EAAAnL,cAAaD,EAAGc,EAAOkM,EAAUC,QAI5D7E,EAAKnC,SAASwG,WAAaI,EACxBE,GACDA,aAOHA,GACDA,KAUNrB,EAAoBzM,UAAUkO,SAAW,SAAUxG,GAAQ,GAAA4B,GAAAjZ,KACrDqd,EAAI,EACJT,EAAQ,KACNrY,EAAI8S,EAAMG,OAAOyD,OAAOtM,aAK9B,QAFA3O,KAAKsd,mBAEG/Y,GACN,IAAK,QACHqY,EAAQ5c,KAAK2W,SAASO,cAAd,IAAgC+E,EAAhC,eACR,MAEF,KAAK,OACHoB,EAAIrd,KAAK2W,SAASyG,YAAcpd,KAAK2W,SAAS7K,YAC9C8Q,EAAQ5c,KAAK2W,SAASO,cAAd,IAAgC+E,EAAhC,cACR,MAEF,KAAK,cACHoB,EAAI/X,KAAKqG,IAAI3L,KAAK2W,SAASwG,WAAand,KAAK2W,SAAS7K,YAAa,EACnE,MAEF,KAAK,cACHuR,EAAI/X,KAAK4P,IAAIlV,KAAK2W,SAASwG,WAAand,KAAK2W,SAAS7K,YAAa9L,KAAK2W,SAASyG,YAAcpd,KAAK2W,SAAS7K,YAC7G,MAEF,KAAK,OACL,IAAK,OAOH,MANA8Q,GAAQ5c,KAAK2W,SAASO,cAAd,IAAgC+E,EAAhC,wBACLW,IACDA,EAAc,SAANrY,EAAeqY,EAAMtC,mBAAqBsC,EAAMvC,uBACxDra,KAAK8d,iBAAiBlB,GACtB5c,KAAK+c,iBAAiBxY,EAAG,KAAOqY,IAIpC,KAAK,OAGH,SAFA7U,EAAAhC,SAAc/F,KAAKqc,QAAShF,EAAMG,YAClCxX,MAAK0c,iBAGP,KAAK,QACH,MAEF,SACE,OAGJ1c,KAAK6c,eAAeQ,EAAGhZ,OAAW,WAChC,GAAI,gBAAkBE,GAAK,gBAAkBA,EAAG,CAC9C,GAAMwZ,GAAS9E,EAAK+E,sBAChBD,GAAOrZ,OAAS,IAClBkY,EAAQ,gBAAkBrY,EAAIwZ,EAAO,GAAKA,EAAOA,EAAOrZ,OAAS,IAGrEuU,EAAK6E,iBAAiBlB,GACtB3D,EAAK8D,iBAAiBxY,EAAG,KAAMqY,MASnCR,EAAoBzM,UAAUyH,gBAAkB,SAAUC,GACxDA,EAAMC,iBACND,EAAME,kBACHF,EAAMG,QAAUH,EAAMG,OAAOyD,QAC9Bjb,KAAK6d,SAASxG,IASlB+E,EAAoBzM,UAAUsO,gBAAkB,SAAS5G,GAEvD,GAAIA,GAASA,EAAMjT,QAAUiT,EAAMjT,SAAWpE,KAAK2W,SAAU,CAE3D,GAAIsE,GAAS,OAEb,IAAK5D,EAAM6C,UAANvE,EAAAnU,SAAgC6V,EAAM6C,UAANvE,EAAApU,QAChC8V,EAAM6C,UAANvE,EAAAtU,YAAgCgW,EAAM6C,UAANvE,EAAArU,aAAgC,CAEnE+V,EAAMC,iBACFD,EAAM6C,UAANvE,EAAApU,OACF0Z,EAAS,OAEF5D,EAAM6C,UAANvE,EAAAtU,WACP4Z,EAAS,cAEF5D,EAAM6C,UAANvE,EAAArU,eACP2Z,EAAS,cAGX,IAAMiD,GAAM,GAAIrG,aAAY,UAC1BL,QACEyD,OAAQA,IAGZjb,MAAK6d,SAASK,OAEX,IAAK7G,EAAM6C,UAANvE,EAAA1U,QACLoW,EAAM6C,UAANvE,EAAAzU,UAAmCmW,EAAM6C,UAANvE,EAAAvU,UACnCiW,EAAM6C,UAANvE,EAAAjU,aAAmC2V,EAAM6C,UAANvE,EAAAlU,eACnC4V,EAAM6C,UAANvE,EAAA/T,eAAmCyV,EAAM6C,UAANvE,EAAAhU,eAAkC,CAExE,GAAIib,GAAQuB,EAAU9G,EAAMjT,OAE5B,KAAIwY,EACF,MAMF,QAFA5c,KAAKsd,mBAEGjG,EAAM6C,SACZ,IAAAvE,GAAAjU,YACA,IAAAiU,GAAAlU,cACEwZ,EAAS,OACT2B,EAAQA,EAAMvC,sBACd,MAEF,KAAA1E,GAAA/T,cACA,IAAA+T,GAAAhU,eACEsZ,EAAS,OACT2B,EAAQA,EAAMtC,kBACd,MAEF,KAAA3E,GAAA1U,OACMoW,EAAM+G,UACRnD,EAAS,OACT2B,EAAQA,EAAMvC,yBAGdY,EAAS,OACT2B,EAAQA,EAAMtC,mBAEhB,MAEF,KAAA3E,GAAAvU,SACA,IAAAuU,GAAAzU,SACE+Z,EAAS,SAIV2B,IACDvF,EAAMC,iBACN+G,EAAUzB,GACV5c,KAAK+c,iBAAiB9B,EAAQ5D,EAAM6C,QAAS0C,OAWrDR,EAAoBzM,UAAU2O,aAAe,SAASjH,GAAO,GAAAqD,GAAA1a,IAC3DqX,GAAMC,iBAGNtX,KAAKsd,kBAEL,IAAIiB,MACAC,EAAY,EAEVC,EAASpH,EAAMqH,UAA8Bra,SAAlBgT,EAAMsH,QAAwBtH,EAAMsH,QAAQ,GAAGD,QAAU,GACtFE,EAAQH,EACNI,EAAgBxH,EAAMjT,OAEtB0a,EAAS,SAAArY,GACb,GAAMsY,GAAYtY,EAAEiY,UAA0Bra,SAAdoC,EAAEkY,QAAwBlY,EAAEkY,QAAQ,GAAGD,QAAU,GAC3E5Q,EAAK8Q,EAAQG,CAEhBjR,GAAK,EACN4M,EAAK/D,SAASwG,WAAa7X,KAAKqG,IAAI+O,EAAK/D,SAASwG,WAAarP,EAAI,GAE7DA,EAAK,IACX4M,EAAK/D,SAASwG,WAAa7X,KAAK4P,IAAIwF,EAAK/D,SAASwG,WAAarP,EAAI4M,EAAK/D,SAASyG,YAAc1C,EAAK/D,SAAS7K,cAG/G8S,EAAQG,EACRR,MAIIS,EAAO,SAAAvY,GACXA,EAAE6Q,iBAEEiH,IACFC,EAAYnZ,OAAOuC,sBAAuB,iBAAMkX,GAAOrY,KACvD8X,OAKEU,EAAU,QAAVA,GAAUxY,GACdA,EAAE6Q,iBAEFoD,EAAK/D,SAAS6D,oBAAoB,YAAawE,GAC/CtE,EAAK/D,SAAS6D,oBAAoB,YAAawE,GAC/C3Z,OAAOmV,oBAAoB,UAAWyE,GACtC5Z,OAAOmV,oBAAoB,WAAYyE,GAGvC5Z,OAAOkM,qBAAqBiN,EAE5B,IAAM5B,GAAQuB,EAAUU,EACxBR,GAAUzB,GACVlC,EAAKqC,iBAAiB,QAAS,KAAOH,GAGxC5c,MAAK2W,SAAS8D,iBAAiB,YAAauE,GAC5Chf,KAAK2W,SAAS8D,iBAAiB,YAAauE,GAC5C3Z,OAAOoV,iBAAiB,UAAWwE,GACnC5Z,OAAOoV,iBAAiB,WAAWwE,IAQrC7C,EAAoBzM,UAAUuP,cAAgB,SAAS7H,GAErDA,EAAMC,kBAQR8E,EAAoBzM,UAAUwP,cAAgB,SAAS9H,GACrD,GAAMuF,GAAQuB,EAAU9G,EAAMjT,OAC3BwY,KAED5c,KAAK8d,iBAAiBlB,GACtBA,EAAM9F,UAAUoB,IAAhBvC,EAAAvT,cASJga,EAAoBzM,UAAUyP,aAAe,SAAS/H,GACpD,GAAMuF,GAAQuB,EAAU9G,EAAMjT,OAC3BwY,IACDA,EAAM9F,UAAUwB,OAAhB3C,EAAAvT,aAWJga,EAAoBzM,UAAUoN,iBAAmB,SAAStF,EAASyC,EAAS0C,GAE1E,GAAGA,EAAO,CACR5c,KAAK8c,uBAAuBF,EAE5B,IAAMyC,GAAM,GAAIxH,aAAY,UAC1BC,WACAC,cACAP,QACEC,QAASA,EACTyC,QAASA,EACT/W,OAAQyZ,IAGZ5c,MAAK2W,SAASqB,cAAcqH,KAQhCjD,EAAoBzM,UAAUqO,qBAAuB,WACnD,GAAMsB,GAAetf,KAAK2W,SAASrJ,wBAE7BiS,KAAmBtW,UAAAyM,EAAA3P,SAAI/F,KAAK2W,SAASgC,iBAAd,IAAmCsD,KAAU7S,OAAQ,SAAAwT,GAChF,GAAM4C,GAAY5C,EAAMtP,uBACxB,OAAOkS,GAAUnT,MAAQiT,EAAajT,MAAQmT,EAAUjT,OAAS+S,EAAa/S,OAEhF,OAAOgT,IAQTnD,EAAoBzM,UAAUmN,uBAAyB,SAASF,GAC9D,GAAM0C,GAAetf,KAAK2W,SAASrJ,wBAC7BkS,EAAY5C,EAAMtP,uBAExB,IAAGkS,EAAUnT,KAAOiT,EAAajT,KAAM,CACrC,GAAMgR,GAAIrd,KAAK2W,SAASwG,YAAcmC,EAAajT,KAAOmT,EAAUnT,KACpErM,MAAK6c,eAAeQ,OAEjB,IAAGmC,EAAUjT,MAAQ+S,EAAa/S,MAAO,CAC5C,GAAM8Q,GAAIrd,KAAK2W,SAASwG,YAAcmC,EAAa/S,MAAQiT,EAAUjT,MACrEvM,MAAK6c,eAAeQ,KASxBjB,EAAoBzM,UAAUmO,iBAAmB,SAASlB,GACrDA,OACD3T,UAAAyM,EAAA3P,SAAI/F,KAAK2W,SAASgC,iBAAd,IAAmCsD,EAAnC,qBAA4DrD,QAC9D,SAAAgE,GAAA,MAASA,GAAMxE,gBAAgB,mBAEjCwE,EAAMzE,aAAa,gBAAiB,MAQxCiE,EAAoBzM,UAAU8P,iBAAmB,WAC/Czf,KAAK2W,SAAS6D,oBAAoB,QAASxa,KAAKmf,eAChDnf,KAAK2W,SAAS6D,oBAAoB,OAAQxa,KAAKof,cAC/Cpf,KAAK2W,SAAS6D,oBAAoB,UAAWxa,KAAKie,iBAClDje,KAAK2W,SAAS6D,oBAAoB,YAAaxa,KAAKse,cACpDte,KAAK2W,SAAS6D,oBAAoB,aAAcxa,KAAKse,cACrDte,KAAK2W,SAAS6D,oBAAoB,QAASxa,KAAKkf,kBAChDlf,KAAK2W,SAAS6D,oBAAoB,UAAWxa,KAAKoX,iBAClDpX,KAAK2W,SAAS6D,oBAAoB,0BAA2Bxa,KAAK0f,eAKpE,IAAMvB,GAAY,SAAApT,GAChB,MAAOA,GAAQ4U,QAAR,IAAoB1D,IAGvBoC,EAAY,SAAAzB,GACbA,GACDA,EAAMrC,SAIJqF,EAAa,SAAAhD,GACjB,IAAIA,EAAM1F,cAAN,IAAwB8E,GAAyB,CACnD,GAAM6D,GAAkBjU,SAAS+G,cAAc,OAC/CkN,GAAgB/I,UAAUoB,IAAI8D,GAC9B6D,EAAgB/I,UAAUoB,IAA1BvC,EAAAjT,kBACA,IAAMod,GAASlU,SAAS+G,cAAc,OACtCmN,GAAOhJ,UAAUoB,IAAjBvC,EAAAnT,YACAqd,EAAgBpU,YAAYqU,EAE5B,IAAMC,GAAMnD,EAAM1F,cAAc,MAC5B6I,KAEFF,EAAgBG,MAAQD,EAAIC,OAE9BpD,EAAMnR,YAAYoU,GAClBzE,iBAAiB6E,eAAeJ,EAAhClK,EAAAlT,uBAaJ2Z,GAAoBzM,UAAUuQ,cAAgB,WAC5ClgB,KAAKqc,QAAQG,cAAcxK,QAE7BoK,EAAoBzM,UAApBuQ,cAAiD9D,EAAoBzM,UAAUuQ,cAS/E9D,EAAoBzM,UAAUwQ,cAAgB,WAAW,GAAAjF,GAAAlb,KAEjDogB,EAAkBpgB,KAAK2W,SAASG,UAAUC,SAAxBpB,EAAAjT,sBAExBuG,UAAAyM,EAAA3P,SAAI/F,KAAK2W,SAASgC,iBAAd,IAAmCsD,KAAUrD,QAAS,SAAAgE,GAExDA,EAAMzE,aAAa,OAAQgE,GAExBjB,EAAKmB,QAAQC,aACVM,EAAMtO,aAAa,aACrBsO,EAAMzE,aAAa,WAAY,KAE7BiI,GACFR,EAAWhD,IAIbA,EAAMzE,aAAa,WAAY,SAIrCiE,EAAoBzM,UAApBwQ,cAAiD/D,EAAoBzM,UAAUwQ,cAQ/E/D,EAAoBzM,UAAU0Q,UAAY,WACxC,MAAOrgB,MAAKqc,SAEdD,EAAoBzM,UAApB0Q,UAA6CjE,EAAoBzM,UAAU0Q,UAK3EjE,EAAoBzM,UAAUiH,KAAO,WAEnC,GAAI5W,KAAK2W,SAAU,CAiBjB,GAfG3W,KAAK2W,SAASvI,aAAa,iBAC5BpO,KAAKqc,WAAUN,EAAAlU,oBAAmB7H,KAAK2W,SAASrI,aAAa,eAAgBtO,KAAKqc,UAIpFrc,KAAK2W,SAASwB,aAAa,OAAQ+D,MAG/BP,EAAA5V,SAAiB/F,KAAK2W,SAASrI,aAAa,cAC9CtO,KAAK2W,SAASwB,aAAa,eAI7BnY,KAAKyf,mBAEFzf,KAAKqc,QAAQC,YAAa,CAG3B,GAAM8D,GAAkBpgB,KAAK2W,SAASG,UAAUC,SAAxBpB,EAAAjT,kBACpB0d,IACFpgB,KAAK2W,SAASG,UAAUoB,IAAxBvC,EAAAhT,iCAIF3C,KAAK2W,SAAS8D,iBAAiB,QAASza,KAAKmf,cAAchE,KAAKnb,UAChEA,KAAK2W,SAAS8D,iBAAiB,OAAQza,KAAKof,aAAajE,KAAKnb,UAG9DA,KAAK2W,SAAS8D,iBAAiB,UAAWza,KAAKie,gBAAgB9C,KAAKnb,UAGpEA,KAAK2W,SAAS8D,iBAAiB,YAAaza,KAAKse,aAAanD,KAAKnb,UACnEA,KAAK2W,SAAS8D,iBAAiB,aAAcza,KAAKse,aAAanD,KAAKnb,UAGpEA,KAAK2W,SAAS8D,iBAAiB,QAASza,KAAKkf,cAAc/D,KAAKnb,UAIlEA,KAAK2W,SAAS8D,iBAAiB,UAAWza,KAAKoX,gBAAgB+D,KAAKnb,UAGpEA,KAAK2W,SAAS8D,iBAAiB,0BAA2Bza,KAAK0f,cAAcvE,KAAKnb,OAGlFA,KAAKmgB,gBAGLngB,KAAK2W,SAASG,UAAUoB,IAAxBvC,EAAArT,aAEGtC,KAAKqc,QAAQE,WAEdvc,KAAK0c,oBASXN,EAAoBzM,UAAU+P,cAAgB,WAK5C1f,KAAKkgB,gBAGLlgB,KAAKyf,oBAMPrE,iBAAiBC,UACfC,YAAac,EACbb,cAAe,sBACfC,SAAU,qBACVC,gBnDoiEE,SAAS5b,EAAQD,EAASM,GAE/B,YAgBA,SAAS0F,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAdvF,GAAIya,GAAmBpgB,EAAoB,IAEvCqgB,EAAmB3a,EAAuB0a,GAE1CE,EAAgBtgB,EAAoB,IAEpCugB,EAAgB7a,EAAuB4a,GoDpuF5C7K,EAAAzV,EAAA,GAMAwgB,EAAAxgB,EAAA,IACAygB,EAAAzgB,EAAA,IAEM0gB,EAAiB,wBACjBC,EAA4B,qBAC5BC,EAA0B,2BAC1BC,EAA2B,4BAM3BC,EpDgwFa,WoDxvFjB,QAAAA,GAAYjW,GAAS,GAAA2N,GAAA1Y,QAAAugB,EAAAxa,SAAA/F,KAAAghB,GAAAhhB,KAPrB2W,SAAW,KAOU3W,KANrBihB,gBAAkB,KAMGjhB,KAKrBkhB,eAAiB,SAAA7J,GACXA,EAAM6C,UAANvE,EAAAzU,UAA8BmW,EAAM6C,UAANvE,EAAAvU,WAChCiW,EAAMC,kBAGLD,EAAMjT,QAAUsU,EAAKyI,gBAAgBnJ,cACpC,GAAIoJ,YAAW,SACbtJ,WACAC,cACAsJ,KAAMhc,YAdOrF,KAoBrBshB,aAAe,SAAAjK,GACb,IAAIqB,EAAK6I,WAAY,CACnB,GAAGlK,EAAMjT,SAAWsU,EAAKyI,eAAgB,CAEvC,GAAMzgB,MAAIigB,EAAAhW,mBAAkB0M,EAAMjT,OAAQsU,EAAKyI,eAE/C,IADAzgB,EAAE8gB,KAAKnK,EAAMjT;AACV1D,EAAE+gB,KAAM,SAAAhV,GAAA,SAAMkU,EAAAlW,aAAYgC,KAC3B,OAGJiM,EAAKgJ,WA7BP1hB,KAAK2W,SAAW5L,EAChB/K,KAAK4W,OpD8+FN,SA1MI6J,EAAc1a,SAASib,IACzB5d,IAAK,WACLpC,MAAO,WoDruFR,IAAIhB,KAAKuhB,YAAcvhB,KAAK2hB,YACvB3hB,KAAK4hB,oBAAoB,YAAa,CACvC5hB,KAAKmhB,eAAehJ,aAAa,gBAAiB,QAElD,KAAK,GADC0J,GAAU7hB,KAAK8hB,eAAehY,MAAM,GACjCzD,EAAIwb,EAAQnd,OAAS,EAAG2B,GAAK,IAAKA,EACzCwb,EAAQxb,GAAG8R,aAAa,SAAU,QpD4uFvC/U,IAAK,SACLpC,MAAO,WoDtuFJhB,KAAKuhB,YAAevhB,KAAK2hB,YACxB3hB,KAAK4hB,oBAAoB,YAC1B5hB,KAAKmhB,eAAehJ,aAAa,gBAAiB,QAClDnY,KAAK8hB,eAAelJ,QAAQ,SAAAmJ,GAAA,MAAUA,GAAO3J,gBAAgB,gBpD8uFhEhV,IAAK,SACLpC,MAAO,WoDzuFJhB,KAAK2hB,WACP3hB,KAAKgiB,WAGLhiB,KAAKiiB,YpD6uFN7e,IAAK,sBACLpC,MAAO,SoD1uFUia,GAClB,MAAOjb,MAAK+K,QAAQiN,cAClB,GAAIH,aAAY,UACdC,WACAC,cACAP,QACEyD,OAAQA,SpD8uFb7X,IAAK,gBACLpC,MAAO,WoDxuFRhB,KAAKmhB,eAAehJ,aAAa,uBpD4uFhC/U,IAAK,eACLpC,MAAO,WoDzuFRhB,KAAKmhB,eAAe/I,gBAAgB,oBpD6uFnChV,IAAK,cACLpC,MAAO,SoD3uFEkhB,GACV,GAAMC,GAAMniB,KAAKoiB,SACbD,GAAIV,KAAK,SAAAphB,GAAA,MAAM6hB,KAAa7hB,MAC9B8hB,EAAIX,KAAKU,GACTliB,KAAKmhB,eAAehJ,aAAa,gBAAiBgK,EAAIzY,KAAK,UpDivF5DtG,IAAK,mBACLpC,MAAO,SoD9uFO+gB,GAMf,GALKA,EAAOjL,UAAUC,SAAS+J,IAC7BiB,EAAOjL,UAAUC,SAASgK,IAC1BgB,EAAOjL,UAAUoB,IAAI4I,IAGnBiB,EAAO3T,aAAa,QAAS,CAC/B,GAAMiU,GAAON,EAAOjL,UAAUC,SAAS+J,GAA2B,QAAU,QAC5EiB,GAAO5J,aAAa,OAAQkK,GAG1BN,EAAO3T,aAAa,QACtB2T,EAAO1hB,GAAQ0hB,EAAOzT,aAAa,QAAnC,OAA8CoS,EAAAlY,iBAG7CxI,KAAK2hB,WACNI,EAAO3J,gBAAgB,UAGvB2J,EAAO5J,aAAa,SAAU,IAEhCnY,KAAKsiB,YAAYP,EAAO1hB,OpD+uFvB+C,IAAK,sBACLpC,MAAO,SoD7uFU+gB,GAClB,GAAGA,GAAUA,EAAO1hB,GAAI,CACtB,GAAM8hB,GAAMniB,KAAKoiB,UAAUhZ,OAAO,SAAA/I,GAAA,MAAMA,KAAO0hB,EAAO1hB,IACtDL,MAAKmhB,eAAehJ,aAAa,gBAAiBgK,EAAIzY,KAAK,UpDmvF5DtG,IAAK,kBACLpC,MAAO,WoD/uFRhB,KAAKmhB,eAAe3G,oBAAoB,UAAWxa,KAAKkhB,gBACxDlhB,KAAKmhB,eAAe3G,oBAAoB,QAASxa,KAAKshB,iBpDmvFrDle,IAAK,OACLpC,MAAO,WoDjvFH,GAAA8X,GAAA9Y,KACCuiB,EAAc,WAElBzJ,EAAKmI,gBAAkBnI,EAAK/N,QAAQmM,cAAb,IAA+B2J,IAAgC/H,EAAK/N,QAGvF+N,EAAKqI,eAAe/S,aAAa,kBACnC0K,EAAKqI,eAAehJ,aAAa,gBAAiB,SAIF,WAA/CW,EAAKqI,eAAe1S,SAASE,eAC9BmK,EAAKqI,eAAehJ,aAAa,OAAQ,aAIvCwI,EAAAlW,aAAYqO,EAAKqI,iBAAoBrI,EAAKqI,eAAe/S,aAAa,aACxE0K,EAAKqI,eAAehJ,aAAa,WAAY,MAI3CqK,EAAc,WAClB,GAAIX,KACJ,IAAI/I,EAAKqI,eAAe/S,aAAa,iBAgBnCyT,EAAU/I,EAAKgJ,mBAbf,KADA,GAAI7T,GAAI6K,EAAK/N,QAAQuP,mBACfrM,GAAG,CACP,GAAGA,EAAE6I,UAAUC,SAAS+J,IACtB7S,EAAE6I,UAAUC,SAASgK,GACrBc,EAAQL,KAAKvT,OAEV,IAAGA,EAAE6I,UAAUC,SAAS6J,GAE3B,KAEF3S,GAAIA,EAAEqM,mBAMVuH,EAAQjJ,QAAQ,SAAAmJ,GAAA,MAAUjJ,GAAK2J,iBAAiBV,MAG5CW,EAAe,WACnB5J,EAAKqI,eAAe1G,iBAAiB,UAAW3B,EAAKoI,gBACrDpI,EAAKqI,eAAe1G,iBAAiB,QAAS3B,EAAKwI,cAGrDiB,KACAC,IACAxiB,KAAK2iB,kBACLD,OpDqvFCtf,IAAK,YACLpC,MAAO,WoDlvFRhB,KAAK2iB,qBpDsvFJvf,IAAK,UACLmD,IAAK,WoD56FN,MAAOvG,MAAK2W,YpDg7FXvT,IAAK,iBACLmD,IAAK,WoD76FN,MAAOvG,MAAKihB,mBpDi7FX7d,IAAK,aACLmD,IAAK,WoD96FN,MAAQvG,MAAKmhB,eAAe/S,aAAa,aACwB,UAA/DpO,KAAKmhB,eAAe7S,aAAa,YAAYK,eAC5C3O,KAAKmhB,eAAe/S,aAAa,kBACkC,UAApEpO,KAAKmhB,eAAe7S,aAAa,iBAAiBK,iBpD+6FnDvL,IAAK,aACLmD,IAAK,WoD56FN,MAAOvG,MAAKmhB,eAAe/S,aAAa,kBAC8B,SAApEpO,KAAKmhB,eAAe7S,aAAa,iBAAiBK,iBpD+6FnDvL,IAAK,YACLmD,IAAK,WoD56FN,MAAOvG,MAAKmhB,eAAe/S,aAAa,iBACpCpO,KAAKmhB,eAAe7S,aAAa,iBAAiBsE,MAAM,WpD+6F3DxP,IAAK,iBACLmD,IAAK,WoD36FN,MAAOvG,MAAKoiB,UACT/Y,IAAI,SAAAhJ,GAAA,MAAMuL,UAASsL,cAAT,IAA2B7W,KACrC+I,OAAQ,SAAAqD,GAAA,MAAY,OAANA,QpDi7FXuU,MoDnxFV,WAOE,GAAM4B,GAAyB,SAAgC7X,GAC7D/K,KAAK2W,SAAW5L,EAChB/K,KAAK6iB,YAAc,KAGnB7iB,KAAK4W,OAEPvR,QAAAud,uBAAmCA,EAKnCA,EAAuBjT,UAAUiH,KAAO,WAClC5W,KAAK2W,WACP3W,KAAK6iB,YAAc,GAAI7B,GAAYhhB,KAAK2W,UACxC3W,KAAK2W,SAASG,UAAUoB,IAAxBvC,EAAArT,aAGAtC,KAAK2W,SAAS8D,iBAAiB,0BAA2Bza,KAAK0f,cAAcvE,KAAKnb,SAQtF4iB,EAAuBjT,UAAU+P,cAAgB,WAC/C1f,KAAK6iB,YAAYC,aAWnBF,EAAuBjT,UAAUoT,kBAAoB,WACnD,MAAO/iB,MAAK6iB,YAAY1B,gBAE1ByB,EAAuBjT,UAAvBoT,kBAAwDH,EAAuBjT,UAAUoT,kBAOzFH,EAAuBjT,UAAUqT,kBAAoB,WACnD,MAAOhjB,MAAK6iB,YAAYf,gBAE1Bc,EAAuBjT,UAAvBqT,kBAAwDJ,EAAuBjT,UAAUqT,kBAQzFJ,EAAuBjT,UAAUsT,kBAAoB,WAAsB,OAAAhK,GAAAjZ,KAAAyH,EAAAhD,UAAAC,OAAVgI,EAAUvG,MAAAsB,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAV+E,EAAU/E,GAAAlD,UAAAkD,EACzE+E,GAASkM,QAAQ,SAAA7N,GAAA,MAAWkO,GAAK4J,YAAYJ,iBAAiB1X,MAEhE6X,EAAuBjT,UAAvBsT,kBAAwDL,EAAuBjT,UAAUsT,kBAQzFL,EAAuBjT,UAAUuT,qBAAuB,WAAsB,OAAAxI,GAAA1a,KAAAuJ,EAAA9E,UAAAC,OAAVgI,EAAUvG,MAAAoD,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAVkD,EAAUlD,GAAA/E,UAAA+E,EAC5EkD,GAASkM,QAAQ,SAAA7N,GAAA,MAAW2P,GAAKmI,YAAYM,oBAAoBpY,MAEnE6X,EAAuBjT,UAAvBuT,qBAA2DN,EAAuBjT,UAAUuT,qBAO5FN,EAAuBjT,UAAUsS,OAAS,WACxCjiB,KAAK6iB,YAAYZ,UAEnBW,EAAuBjT,UAAvBsS,OAA6CW,EAAuBjT,UAAUsS,OAO9EW,EAAuBjT,UAAUqS,SAAW,WAC1ChiB,KAAK6iB,YAAYb,YAEnBY,EAAuBjT,UAAvBqS,SAA+CY,EAAuBjT,UAAUqS,SAOhFY,EAAuBjT,UAAU+R,OAAS,WACxC1hB,KAAK6iB,YAAYnB,UAEnBkB,EAAuBjT,UAAvB+R,OAA6CkB,EAAuBjT,UAAU+R,OAM9EkB,EAAuBjT,UAAUgS,WAAa,WAC5C,MAAO3hB,MAAK6iB,YAAYlB,YAE1BiB,EAAuBjT,UAAvBgS,WAAiDiB,EAAuBjT,UAAUgS,WAMlFiB,EAAuBjT,UAAU4R,WAAa,WAC5C,MAAOvhB,MAAK6iB,YAAYtB,YAE1BqB,EAAuBjT,UAAvB4R,WAAiDqB,EAAuBjT,UAAU4R,WAOlFqB,EAAuBjT,UAAUyT,cAAgB,WAC/CpjB,KAAK6iB,YAAYO,iBAEnBR,EAAuBjT,UAAvByT,cAAoDR,EAAuBjT,UAAUyT,cAOrFR,EAAuBjT,UAAU0T,aAAe,WAC9CrjB,KAAK6iB,YAAYQ,gBAEnBT,EAAuBjT,UAAvB0T,aAAmDT,EAAuBjT,UAAU0T,aAKpFjI,iBAAiBC,UACfC,YAAasH,EACbrH,cAAe,yBACfC,SAAUoF,EACVnF,gBpD4yFE,SAAS5b,EAAQD,EAASM,GAE/B,YAkCA,SAAS0F,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAhCvF,GAQIyd,GAAQC,EARRjD,EAAmBpgB,EAAoB,IAEvCqgB,EAAmB3a,EAAuB0a,GAE1CE,EAAgBtgB,EAAoB,IAEpCugB,EAAgB7a,EAAuB4a,GqDltG5CzE,EAAA7b,EAAA,IACAyV,EAAAzV,EAAA,GAIMsjB,EAAkB,wBAClBC,EAAyB,yBAOzBC,EAAkB,WACtB,MAAOC,WAAUC,UACbD,UAAUC,UAAU,GACpBD,UAAUE,UAAYF,UAAUG,cAOhCC,GrDuuGcR,EAAQD,EAAS,WqD9tGnC,QAAAS,GAAYhZ,GAAS,GAAA2N,GAAA1Y,QAAAugB,EAAAxa,SAAA/F,KAAA+jB,GAAA/jB,KAJrBgkB,YAIqBhkB,KAKrBshB,aAAe,WACb2C,aAAaF,EAAYG,QANNlkB,KASrBmkB,eAAiB,WACVzL,EAAK0L,MAAMC,UAAY3L,EAAK0L,MAAMxV,WACrC8J,EAAK0L,MAAMpjB,MAAQ0X,EAAK4L,gBAExBP,EAAYG,MAAQK,WAAW,iBAAM7L,GAAK0L,MAAMI,UAAU,OAbzCxkB,KAiBrBykB,gBAAkB,WAChBR,aAAaF,EAAYG,OAEpBxL,EAAK0L,MAAMC,UAAY3L,EAAK0L,MAAMxV,UACrC8J,EAAKgM,eApBP1kB,KAAK2W,SAAW5L,EAChB/K,KAAK4W,OrDq4GN,SAxII6J,EAAc1a,SAASge,IACzB3gB,IAAK,2BACLpC,MAAO,WqD5tGiB,GAAA8X,GAAA9Y,KACnB2kB,EAAY,iBAAM7L,GAAKsL,MAAMpjB,MAChCkH,QAAQ,MAAO,IACfA,QAAQ,GAAI0c,QAAO9L,EAAK+L,QAAQC,eAAgB,KAAM,IACtD5c,QAAQ4Q,EAAK+L,QAAQE,iBAAkB,KAI1C,OAAO/kB,MAAKokB,MAAMpjB,MAAQ2jB,IAAc3kB,KAAKokB,MAAMpjB,SrDguGlDoC,IAAK,gBACLpC,MAAO,SqD9tGIA,GAAO,GAAAiY,GAAAjZ,KACb2kB,EAAY,iBAAM3jB,GACrBkH,QAAQ,GAAI0c,QAAO3L,EAAK+L,oBAAqB,KAAM/L,EAAK4L,QAAQC,gBAChE5c,QAAQ+Q,EAAKgM,sBAAuBhM,EAAK4L,QAAQE,kBAEpD,OAAO/jB,GAAQ2jB,IAAc3jB,KrDmuG5BoC,IAAK,cACLpC,MAAO,WqDhuGR,GAAGhB,KAAKokB,MAAMpjB,MAAO,CACnB,GAAMyY,GAAI,GAAIyL,MAAKC,aAAanlB,KAAK6kB,QAAQO,QAASplB,KAAK6kB,SACxDQ,OAAOrlB,KAAKslB,2BAEZ,SAAU7L,IACXzZ,KAAKokB,MAAMpjB,MAAQhB,KAAKulB,cAAc9L,QrDquGzCrW,IAAK,WACLpC,MAAO,WqDjuGC,GAAA0Z,GAAA1a,KACH2kB,EAAY,iBAAMjK,GAAK0J,MAAMpjB,MAChCkH,QAAQ,MAAO,IACfA,QAAQ,GAAI0c,QAAOlK,EAAKmK,QAAQC,eAAgB,KAAM,IACtD5c,QAAQwS,EAAKmK,QAAQE,iBAAkB,KAE1C,OAAO/kB,MAAKokB,MAAMpjB,MAAQ2jB,IAAc3kB,KAAKokB,MAAMpjB,SrDquGlDoC,IAAK,gBACLpC,MAAO,WqDnuGM,GAAAka,GAAAlb,KACR2kB,EAAY,iBAAMzJ,GAAKkJ,MAAMpjB,MAChCkH,QAAQ,MAAO,IACfA,QAAQ,GAAI0c,QAAO1J,EAAK2J,QAAQC,eAAgB,KAAM,IAEzD,OAAO9kB,MAAKokB,MAAMpjB,MAAQ2jB,IAAc3kB,KAAKokB,MAAMpjB,SrDwuGlDoC,IAAK,kBACLpC,MAAO,WqDruGRhB,KAAKokB,MAAM5J,oBAAoB,QAASxa,KAAKshB,cAC7CthB,KAAKokB,MAAM5J,oBAAoB,UAAWxa,KAAKmkB,gBAC/CnkB,KAAKokB,MAAM5J,oBAAoB,WAAYxa,KAAKykB,oBrDyuG/CrhB,IAAK,OACLpC,MAAO,WqDvuGH,GAAAwkB,GAAAxlB,KACC0iB,EAAe,WACnB8C,EAAKpB,MAAM3J,iBAAiB,QAAS+K,EAAKlE,cAC1CkE,EAAKpB,MAAM3J,iBAAiB,UAAW+K,EAAKrB,gBAC5CqB,EAAKpB,MAAM3J,iBAAiB,WAAY+K,EAAKf,kBAGzCgB,EAAa,WACjB,GAAMC,GAAOF,EAAKza,QAAQuD,aAAa,6BACrCkX,EAAKpB,MAAM9V,aAAa,2BACvBoX,KACDF,EAAKxB,YAAWjI,EAAAlU,oBAAmB6d,EAAMF,EAAKX,WAI5Cc,EAAY,WACZH,EAAKX,QAAQO,UACfI,EAAKX,QAAQO,QAAU1B,KAAqB,UAI1CkC,EAAc,WAClB,GAAM3d,GAAK,OAAQ4d,eAAeL,EAAKX,QAAQO,SAC7Cha,MAAO,UACP0a,eACAC,sBAAuB,EACvBC,sBAAuB,GAQzB,IALAR,EAAKR,oBAAsB/c,EAAEge,OAAO,GACpCT,EAAKP,sBAAwBhd,EAAEge,OAAOhe,EAAEvD,OAAO,GAC/C8gB,EAAKX,QAAQC,eAAiBU,EAAKX,QAAQC,gBAAkBU,EAAKR,oBAClEQ,EAAKX,QAAQE,iBAAmBS,EAAKX,QAAQE,kBAAoBS,EAAKP,sBAEnEO,EAAKX,QAAQC,iBAAmBU,EAAKX,QAAQE,iBAAkB,CAChE,GAAMte,GAAI,mCAAmC+e,EAAKX,QAAQC,eAAhD,wCAEJU,EAAKX,QAAQE,iBAFT,wBAGV,MAAM,IAAI1c,OAAM5B,IAIpBzG,MAAKkmB,OAASlmB,KAAK+K,QAAQmM,cAAc,UAAYlX,KAAK+K,QAE1D0a,IACAE,IACAC,IACA5lB,KAAK0kB,cACLhC,OrDyuGCtf,IAAK,YACLpC,MAAO,WqDtuGRhB,KAAK2iB,qBrD0uGJvf,IAAK,UACLmD,IAAK,WqD/1GN,MAAOvG,MAAK2W,YrDm2GXvT,IAAK,QACLmD,IAAK,WqDh2GN,MAAOvG,MAAKkmB,UrDo2GX9iB,IAAK,UACLmD,IAAK,WqDj2GN,MAAOvG,MAAKgkB,arDq2GND,KACJT,EqDh5GGY,MAAQ,KrDg5GUX,IqDrvG3B,WAOE,GAAM4C,GAAyB,SAAgCpb,GAC7D/K,KAAK2W,SAAW5L,EAChB/K,KAAKomB,aAAe,KAGpBpmB,KAAK4W,OAEPvR,QAAA8gB,uBAAmCA,EAKnCA,EAAuBxW,UAAUiH,KAAO,WAClC5W,KAAK2W,WACP3W,KAAK2W,SAASG,UAAUoB,IAAxBvC,EAAArT,aACAtC,KAAKomB,aAAe,GAAIrC,GAAY/jB,KAAK2W,UAGzC3W,KAAK2W,SAAS8D,iBAAiB,0BAA2Bza,KAAK0f,cAAcvE,KAAKnb,SAWtFmmB,EAAuBxW,UAAU0W,WAAa,WAC5C,MAAOrmB,MAAKomB,aAAavB,SAE3BsB,EAAuBxW,UAAvB0W,WAAiDF,EAAuBxW,UAAU0W,WAiBlFF,EAAuBxW,UAAU2W,oBAAsB,WACrD,MAAOtmB,MAAKomB,aAAaG,YAE3BJ,EAAuBxW,UAAvB2W,oBAA0DH,EAAuBxW,UAAU2W,oBAM3FH,EAAuBxW,UAAU+P,cAAgB,WAC/C1f,KAAKomB,aAAatD,aAMpB1H,iBAAiBC,UACfC,YAAa6K,EACb5K,cAAekI,EACfjI,SAAUgI,EACV/H,gBrD8vGE,SAAS5b,EAAQD,EAASM,GAE/B,YsDphHDA,GAAA,IACAA,EAAA,IACAA,EAAA,IACAA,EAAA,IACAA,EAAA,IACAA,EAAA,IACAA,EAAA,IACAA,EAAA,IACAA,EAAA,IACAA,EAAA,KtDmiHM,SAASL,EAAQD,EAASM,GAE/B,YAQA,SAAS0F,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GANvF,GAAI4P,GAAsBvV,EAAoB,GAE1CwV,EAAsB9P,EAAuB6P,GuDvhHlDE,EAAAzV,EAAA,GAgBM8b,EAAuB,8CAE7B,WAIE,GAAMwK,GAAkB,OAClBvK,EAAQ,2BACRE,EAAc,WACdsK,EAAgB,kCAKhBC,EAAwB,SAA+B3b,GAE3D/K,KAAK2W,SAAW5L,EAGhB/K,KAAK4W,OAEPvR,QAAAqhB,sBAAkCA,CAIlC,IAAMC,GAAW,SAAA5b,GACf,MAAOA,GAAUA,EAAQ4U,QAAR,IAAoB1D,GAAW,KAYlDyK,GAAsB/W,UAAUiX,aAAe,SAAS7b,GACtD,GAAM6R,GAAQ+J,EAAS5b,EACnB6R,KAAUA,EAAMxO,aAAa,sBAC/BnF,UAAAyM,EAAA3P,SAAI/F,KAAK2W,SAASgC,iBAAd,IAAmCsD,EAAnC,4BACDrD,QAAQ,SAAAiO,GAAA,MAAiBA,GAAczO,gBAAgB,mBAE1DwE,EAAMzE,aAAa,gBAAiB,UAUxCuO,EAAsB/W,UAAUmX,qBAAuB,SAAWlK,GAChE5c,KAAK2W,SAASqB,cACZ,GAAIH,aAAY,UACdC,WACAC,cACAP,QAAUrU,OAAQyZ,OAUxB8J,EAAsB/W,UAAUyH,gBAAkB,SAAUC,GAC1DA,EAAMC,iBACND,EAAME,kBAEHF,GAASA,EAAMG,QAChBxX,KAAKyX,QAAQJ,EAAMG,SAWvBkP,EAAsB/W,UAAUwQ,cAAgB,WAE9C,GAAM4G,GAAY,SAAAnK,GAEhB,IAAIA,EAAM1F,cAAN,IAAwB8E,GAAyB,CACnD,GAAMzX,GAAIqY,EAAM1F,cAAN,IAAwBuP,EAClC,IAAGliB,EAAG,CACJ,GAAMsb,GAAkBtb,CACxBsb,GAAgB/I,UAAUoB,IAAI8D,GAC9B6D,EAAgB/I,UAAUoB,IAA1BvC,EAAAjT,kBACA,IAAMod,GAASlU,SAAS+G,cAAc,OACtCmN,GAAOhJ,UAAUoB,IAAjBvC,EAAAnT,YACAqd,EAAgBpU,YAAYqU,GAC5B1E,iBAAiB6E,eAAeJ,EAAhClK,EAAAlT,yBAKA2d,EAAkBpgB,KAAK2W,SAASG,UAAUC,SAAxBpB,EAAAjT,sBAExBuG,UAAAyM,EAAA3P,SAAI/F,KAAK2W,SAASgC,iBAAd,IAAmCsD,KAAUrD,QAAS,SAAAgE,GAExDA,EAAMzE,aAAa,OAAQgE,GAEvBS,EAAM1F,cAAc,MACtB0F,EAAMzE,aAAa,WAAY,KAE9BiI,GACD2G,EAAUnK,MAIhB8J,EAAsB/W,UAAtBwQ,cAAmDuG,EAAsB/W,UAAUwQ,cAQnFuG,EAAsB/W,UAAU8H,QAAU,SAAUD,GAAS,GAAAkB,GAAA1Y,KAErDgnB,EAAa,WACjB,MAAOtO,GAAK/B,SAASO,cAAd,IAAgC+E,EAAhC,iBAGHgL,EAAY,WAChB,MAAOvO,GAAK/B,SAASO,cAAd,IAAgC+E,EAAhC,gBAGHU,EAAY,WAChB,GAAMC,GAAQlE,EAAK/B,SAASO,cAAd,IAAgC+E,EAAhC,0BAA+D3B,kBAC7E,OAAOsC,GAAQA,EAAQoK,KAGnBE,EAAY,WAChB,GAAMtK,GAAQlE,EAAK/B,SAASO,cAAd,IAAgC+E,EAAhC,0BAA+D5B,sBAC7E,OAAOuC,GAAQA,EAAQqK,IAGzB,IAAGzP,GAAUA,EAAOyD,OAAQ,IAElBA,GAAmBzD,EAAnByD,OAAQ7W,EAAWoT,EAAXpT,OAEZwY,QACJ,QAAQ3B,EAAOtM,eACb,IAAK,SACHiO,EAAQ+J,EAASviB,GACjBpE,KAAK8mB,qBAAqBlK,EAC1B,MACF,KAAK,QACHA,EAAQoK,GACR,MACF,KAAK,OACHpK,EAAQD,GACR,MACF,KAAK,OACHC,EAAQsK,GACR,MACF,KAAK,OACHtK,EAAQqK,GACR,MACF,KAAK,UACHjnB,KAAKmgB,eACL,MACF,SACE,KAAM,IAAI9X,OAAJ,mBAA6B4S,EAA7B,mFAGV,GAAI2B,EAAO,CACT,GAAMrY,GAAIqY,EAAM1F,cAAc,IAC1B3S,GACFA,EAAEgW,QAGFqC,EAAMrC,QAKJqC,EAAMxO,aAAa,kBACrBpO,KAAK4mB,aAAahK,MAM1B8J,EAAsB/W,UAAtB8H,QAA6CiP,EAAsB/W,UAAU8H,QAM7EiP,EAAsB/W,UAAUiH,KAAO,WAAW,GAAAkC,GAAA9Y,KAE1CmnB,EAAiB,SAAA9P,GAErB,GAAGA,EAAMjT,SAAW0U,EAAKnC,SAAU,CACjC,GAAIsE,UACA7W,QACJ,QAAQiT,EAAM6C,SACZ,IAAAvE,GAAAnU,QACEyZ,EAAS,OACT,MACF,KAAAtF,GAAApU,OACE0Z,EAAS,MACT,MACF,KAAAtF,GAAAjU,YACA,IAAAiU,GAAAlU,cACEwZ,EAAS,MACT,MACF,KAAAtF,GAAA/T,cACA,IAAA+T,GAAAhU,eACEsZ,EAAS,MACT,MACF,KAAAtF,GAAAzU,SACA,IAAAyU,GAAAvU,SACE6Z,EAAS,SACT7W,EAASiT,EAAMjT,OAGhB6W,IACD5D,EAAMC,iBACND,EAAME,kBACNuB,EAAKrB,SAAWwD,OAAQA,EAAQ7W,OAAQA,OAKxCkd,EAAe,SAAAjK,GACnBA,EAAMC,iBACND,EAAME,kBAEHF,EAAMjT,SAAW0U,EAAKnC,UACvBmC,EAAKrB,SAAWwD,OAAQ,SAAU7W,OAAQiT,EAAMjT,UAI9CgjB,EAAe,SAAA/P,GACnBA,EAAMC,iBACND,EAAME,kBAEHF,EAAMjT,SAAW0U,EAAKnC,UACvBmC,EAAK8N,aAAavP,EAAMjT,QAKxBpE,MAAK2W,WACP3W,KAAK2W,SAASwB,aAAa,OAAQqO,GAE/BxmB,KAAK2W,SAASG,UAAUC,SAAxBpB,EAAAjT,oBACF1C,KAAK2W,SAASG,UAAUoB,IAAxBvC,EAAAhT,iCAIF3C,KAAK2W,SAAS6D,oBAAoB,UAAWxa,KAAKoX,iBAClDpX,KAAK2W,SAAS6D,oBAAoB,UAAW2M,GAC7CnnB,KAAK2W,SAAS6D,oBAAoB,QAAS8G,GAC3CthB,KAAK2W,SAAS6D,oBAAoB,QAAS4M,GAE3CpnB,KAAK2W,SAAS8D,iBAAiB,UAAWza,KAAKoX,gBAAgB+D,KAAKnb,UACpEA,KAAK2W,SAAS8D,iBAAiB,UAAW0M,MAC1CnnB,KAAK2W,SAAS8D,iBAAiB,QAAS6G,MACxCthB,KAAK2W,SAAS8D,iBAAiB,QAAS2M,MAExCpnB,KAAKmgB,gBAELngB,KAAK2W,SAASG,UAAUoB,IAAxBvC,EAAArT,eAQJ8Y,iBAAiBC,UACfC,YAAaoL,EACbnL,cAAe,wBACfC,SAAU,uBACVC,gBvDqiHE,SAAS5b,EAAQD,EAASM,GAE/B,YA4BA,SAAS0F,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GA1BvF,GAAI4P,GAAsBvV,EAAoB,GAE1CwV,EAAsB9P,EAAuB6P,GAE7CiG,EAAaxb,EAAoB,IAEjCyb,EAAc/V,EAAuB8V,GAErC2L,EAAkBnnB,EAAoB,IAEtConB,EAAkB1hB,EAAuByhB,GAEzCE,EAAWrnB,EAAoB,IAE/BsnB,EAAY5hB,EAAuB2hB,GAEnCE,EAAgBvnB,EAAoB,IAEpCwnB,EAAgB9hB,EAAuB6hB,GwD12H5CE,EAAAznB,EAAA,IxD82HK0nB,EAAiBhiB,EAAuB+hB,GwD72H7ChS,EAAAzV,EAAA,IAYA,WAGE,GAAM2nB,GAAW,kBACXC,EAAkB,0BAClBC,EAAwB,iCACxBC,EAAgB,iCAChBC,EAAS,aAOTC,EAAsB,SAA6Bnd,GAEvD/K,KAAK2W,SAAW5L,EAGhB/K,KAAK4W,OAEPvR,QAAA6iB,oBAAgCA,EAQhCA,EAAoBvY,UAAUsO,gBAAkB,SAAS5G,GAEvD,GAAIA,IACGA,EAAM6C,UAANvE,EAAAxU,QAA4BkW,EAAM6C,UAANvE,EAAAvU,UAC5BiW,EAAM6C,UAANvE,EAAApU,QAA4B8V,EAAM6C,UAANvE,EAAAnU,SAC5B6V,EAAM6C,UAANvE,EAAAjU,aAAiC2V,EAAM6C,UAANvE,EAAAlU,eACjC4V,EAAM6C,UAANvE,EAAA/T,eAAmCyV,EAAM6C,UAANvE,EAAAhU,gBAAkC,CAErE0V,EAAM6C,UAANvE,EAAAxU,SACDkW,EAAMC,iBACND,EAAME,kBAGR,IAAI0D,GAAS,OACT5D,GAAM6C,UAANvE,EAAApU,OACF0Z,EAAS,OAEF5D,EAAM6C,UAANvE,EAAAjU,aAAiC2V,EAAM6C,UAANvE,EAAAlU,cACxCwZ,EAAS,OAEF5D,EAAM6C,UAANvE,EAAA/T,eAAmCyV,EAAM6C,UAANvE,EAAAhU,eAC1CsZ,EAAS,OAEF5D,EAAM6C,UAANvE,EAAAvU,SACP6Z,EAAS,SAEF5D,EAAM6C,UAANvE,EAAAxU,SACP8Z,EAAS,UAGXkN,EAAgBlN,EAAQjb,QAU9BkoB,EAAoBvY,UAAUyY,oBAAsB,SAAS/Q,GAE3D,GAAIA,EAAO,CACTA,EAAMC,iBACND,EAAME,kBAEN4Q,EAAgBnoB,KAAKsO,aAAa,gBAAkB,GAAItO,KAExD,IAAM2J,GAAI3J,KAAK2f,QAAL,IAAiBkI,EACxBle,IACDA,EAAE4Q,SAYR,IAAM4N,GAAkB,SAAClN,EAAQ9X,GAA4B,GAApBiB,GAAoBK,UAAAC,OAAA,GAAAL,SAAAI,UAAA,GAAAA,UAAA,GAAXtB,CAEhDiB,GAAO4T,cAAc,GAAIH,aAAY,UACnCC,WACAC,cACAP,QACEyD,OAAQA,GAAU,GAClB9X,OAAQA,OAURklB,EAAoB,SAAAC,GACxB,GAAMC,GAAe,SAACC,EAAQC,GAAT,MAAsBA,IAAYD,EAASA,EAAO/a,aAAe,GAEhFib,EAAa,SAACC,EAAQC,GAC1B,GAAiD,aAA7CvjB,OAAOwH,iBAAiB8b,GAAQE,SAAyB,CAC3D,GAAMC,GAAYld,SAASqB,KAAK6b,WAAald,SAASC,gBAAgBid,UAChEC,EAAWD,GAAazjB,OAAO6G,YAAcyc,EAAOlb,aAAemb,GAAM,CAC/ED,GAAOvd,MAAMgB,IAAS9G,KAAKqG,IAAImd,EAAWC,GAA1C,OAIEroB,EAAI4nB,EAAgB3b,WACpBgc,EAASjoB,GAAoB,WAAfA,EAAE+N,SAAwB/N,EAAI,IAElD,IAAGioB,GAAUA,EAAOva,aAAa,QAAS,CACxCka,EAAgBld,MAAMsC,MAAQ,OAC9B4a,EAAgBld,MAAMsO,SAAW,MACjC,IAAMqG,GAAMuI,EAAgBpR,cAAc,MACvC6I,KACDuI,EAAgBld,MAAMsO,SAAgCrV,SAArB0b,EAAIiJ,aAAgCjJ,EAAIiJ,aAAxC,KAA8DjJ,EAAIrS,MAAP,MAAoB,OAGlH,IAAMkb,GAAKL,EAAaD,EAAgBpR,cAAc,UAAWoR,EAAgBxR,UAAUC,SAASiR,IAC9FiB,EAAK3jB,KAAKqG,IAAIC,SAASC,gBAAgBI,aAAc5G,OAAO6G,aAAe,GAAK0c,CACtF,IAAID,EAAOlb,aAAewb,EAExB,IADA,GAAItf,GAAI,EACFgf,EAAOlb,aAAewb,KAAQtf,EAAI,GACtC2e,EAAgBld,MAAMsC,MAAW4a,EAAgB3a,YAAcsb,EAAKX,EAAgB7a,aAApF,IAGJib,GAAWC,EAAQC,IAUvBV,GAAoBvY,UAAUuZ,gBAAkB,WAC9Cb,EAAkBroB,OASpBkoB,EAAoBvY,UAAUwZ,gBAAkB,SAAS9R,GAEvD,GAAM+R,GAAY,SAAEre,EAASse,GAAgB,GAAAC,MAAAC,KAAAC,EAAAnlB,MAAA,KAE3C,OAAAolB,GAAAC,KAAAhC,EAAA3hB,YAA0ByhB,EAAAzhB,SAAesjB,MAAzCC,GAAAG,EAAAC,EAAAvY,QAAAX,MAAA8Y,KAAsD,IAAAK,MAAArC,EAAAvhB,SAAA0jB,EAAAzoB,MAAA,GAA3CoC,EAA2CumB,EAAA,GAAtC3oB,EAAsC2oB,EAAA,EACpD5e,GAAQK,MAAMhI,GAAOpC,GAHoB,MAAA4oB,GAAAL,KAAAC,EAAAI,EAAA,aAAAN,GAAAI,EAAAG,QAAAH,EAAAG,SAAA,WAAAN,EAAA,KAAAC,KAW7CnS,GAAMC,gBAGN,IAAM+F,GAAIhG,EAAMqH,UAA8Bra,SAAlBgT,EAAMsH,QAAwBtH,EAAMsH,QAAQ,GAAGD,QAAU,GAE/EqB,EAAM/f,IACZ+f,GAAI3U,MAAM0e,QAAU,KAEpB,IAAMC,GAASne,SAAS+G,cAAc,MACtCoX,GAAOjT,UAAUoB,IAAI4P,GACrBsB,EAAUW,GAASrc,MAAYqS,EAAIpS,YAAhB,KAAiCH,OAAauS,EAAItS,aAAjB,MAEpD,IAAImP,GAAShR,SAAS+G,cAAc,MACpCiK,GAAM9F,UAAUoB,IAAI6P,GACpBnL,EAAMoN,YAAc,IACpBZ,EAAUxM,GACRlP,MAAuBqS,EAAIpS,YAA3B,KACAH,OAAuBuS,EAAItS,aAA3B,KACAwc,cAAuBlK,EAAItS,aAA3B,KACAyc,YAAuBnK,EAAItS,aAAa,EAAxC,KACA0c,aAAoB,QACpBC,mBAAA,SAA4BrK,EAAIzR,aAAa,sBAAwB,IAArE,OAEFyb,EAAOte,YAAYmR,GAEnBA,EAAShR,SAAS+G,cAAc,OAChCiK,EAAM9F,UAAUoB,IAAI6P,GACpBqB,EAAUxM,GACRlP,MAAuBqS,EAAIpS,YAA3B,KACAH,OAAuBuS,EAAItS,aAA3B,KACA2c,mBAAA,QAA4BrK,EAAIsK,IAAhC,OAEFN,EAAOte,YAAYmR,GAEnBA,EAAShR,SAAS+G,cAAc,OAChCiK,EAAM9F,UAAUoB,IAAI6P,GACpBnL,EAAMoN,YAAc,IACpBZ,EAAUxM,GACRlP,MAAuBqS,EAAIpS,YAA3B,KACAH,OAAuBuS,EAAItS,aAA3B,KACAwc,cAAuBlK,EAAItS,aAA3B,KACAyc,YAAuBnK,EAAItS,aAAa,EAAxC,KACA0c,aAAoB,OACpBC,mBAAA,SAA4BrK,EAAIzR,aAAa,sBAAwB,IAArE,OAEFyb,EAAOte,YAAYmR,GAEnBmD,EAAIpT,WAAWlB,YAAYse,EAI3B,IAAM/K,GAAO,SAAAvY,GACXA,EAAE6Q,gBACF,IAAMxJ,IAAMrH,EAAEiY,UAA0Bra,SAAdoC,EAAEkY,QAAwBlY,EAAEkY,QAAQ,GAAGD,QAAU,IAAMrB,CAE9E0M,GAAOpc,YAAcrI,KAAKsY,IAAI9P,GAAM,KACrCic,EAAO3e,MAAMiB,KAAUyB,EAAvB,OAKEmR,EAAU,QAAVA,GAAUxY,GACdA,EAAE6Q,iBAGFjS,OAAOmV,oBAAoB,YAAawE,GACxC3Z,OAAOmV,oBAAoB,YAAawE,GACxC3Z,OAAOmV,oBAAoB,UAAWyE,GACtC5Z,OAAOmV,oBAAoB,WAAYyE,EAEvC,IAAMnR,GAAKic,EAAO5b,UAClB4R,GAAIpT,WAAWzB,YAAY6e,GAC3BhK,EAAI3U,MAAM0e,QAAU,MAEjBxkB,KAAKsY,IAAI9P,GAAM,IAChBqa,EAAkBra,EAAK,EAAI,OAAS,OAAUiS,GAIlD1a,QAAOoV,iBAAiB,YAAauE,GACrC3Z,OAAOoV,iBAAiB,YAAauE,GACrC3Z,OAAOoV,iBAAiB,UAAWwE,GACnC5Z,OAAOoV,iBAAiB,WAAWwE,IAOrCiJ,EAAoBvY,UAAUiH,KAAO,WAAW,GAAA8B,GAAA1Y,IAE9C,IAAIA,KAAK2W,SAAU,CAEjB3W,KAAK2W,SAAS8D,iBAAiB,UAAWza,KAAKie,gBAAgB9C,KAAKnb,KAAK2W,eAAW,EAEhFgF,EAAA5V,SAAiB/F,KAAK2W,SAASrI,aAAa,cAC9CtO,KAAK2W,SAASwB,aAAa,WAAY,MAGzClP,UAAAyM,EAAA3P,SAAI/F,KAAK2W,SAASgC,iBAAd,IAAmCsP,KAAWrP,QAAS,SAAA0R,GAAA,MACzDA,GAAO7P,iBAAiB,QAAS/B,EAAK0P,oBAAoBjN,KAAKmP,QAGjE,IAAMC,GAAavqB,KAAK2W,SAASO,cAAc,aAC5CqT,IACDA,EAAW9P,iBAAiB,QAASza,KAAKooB,oBAAoBjN,KAAKoP,MAGrE,IAAM/B,GAASxoB,KAAK2W,SAASO,cAAc,SACxCsR,IACDA,EAAO/N,iBAAiB,QAASza,KAAKooB,oBAAoBjN,KAAKqN,MAGjE,IAAMzI,GAAM/f,KAAK2W,SAASO,cAAc,MACrC6I,KACDA,EAAItF,iBAAiB,OAAQza,KAAKkpB,gBAAgB/N,KAAKnb,KAAK2W,cAC5DoJ,EAAItF,iBAAiB,QAAS,SAAAhU,GAAA,MAAKA,GAAE6Q,sBACrCyI,EAAItF,iBAAiB,YAAaza,KAAKmpB,gBAAgBhO,KAAK4E,OAC5DA,EAAItF,iBAAiB,aAAcza,KAAKmpB,gBAAgBhO,KAAK4E,QAE/D1a,OAAOoV,iBAAiB,YAAUmN,EAAA7hB,SAAc,iBAAMsiB,GAAkB3P,EAAK/B,aAC7EtR,OAAOoV,iBAAiB,oBAAqB,iBAAM4N,GAAkB3P,EAAK/B,YAG1E3W,KAAK2W,SAASG,UAAUoB,IAAxBvC,EAAArT,eAkBJ8Y,iBAAiBC,UACfC,YAAa4M,EACb3M,cAAe,sBACfC,SAAU,2BxD45HR,SAAS3b,EAAQD,EAASM,GAE/B,YAwBA,SAAS0F,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAtBvF,GAAIya,GAAmBpgB,EAAoB,IAEvCqgB,EAAmB3a,EAAuB0a,GAE1CE,EAAgBtgB,EAAoB,IAEpCugB,EAAgB7a,EAAuB4a,GAEvC/K,EAAsBvV,EAAoB,GAE1CwV,EAAsB9P,EAAuB6P,GyDlvIlDiL,EAAAxgB,EAAA,IACAynB,EAAAznB,EAAA,IzDuvIK0nB,EAAiBhiB,EAAuB+hB,GyDtvI7ChS,EAAAzV,EAAA,GAcAygB,EAAAzgB,EAAA,IAEMsqB,EAAiB,wBACjBC,EAAmB,cACnBC,EAAwB,oBACxBC,EAAkC,8BASlCC,EAAc,SAAA7f,GAElB,GAAI8f,GAAe,KACfle,EAAa,KAEXme,EAAoB,cACxB7hB,UAAAyM,EAAA3P,SAAIgF,EAAQ4N,iBAAR,IAA6B+R,EAA7B,4BACD9R,QAAQ,SAAAmS,GAAA,MAAgBA,GAAa3S,gBAAgB,oBAGpD4S,EAAc,SAACC,GAAsB,GAAhBC,GAAgBzmB,UAAAC,OAAA,GAAAL,SAAAI,UAAA,IAAAA,UAAA,IACtCymB,GAAUD,IAASA,EAAK7c,aAAa,oBACtC0c,IACGG,GACDA,EAAK9S,aAAa,gBAAiB,UAKnCgT,EAAc,WAClB,MAAOpgB,GAAQmM,cAAR,IAA0BwT,EAA1B,2BAGHnJ,EAAa,SAAA0J,GAAA,MAAQA,IAAQA,EAAK7c,aAAa,aAE/Cgd,EAAc,SAAAH,GAAA,MAAQA,IAAQA,EAAKnU,UAAUC,SAAS4T,IAEtDpQ,EAAQ,SAAA0Q,GACTA,IACDA,EAAOA,EAAKtL,QAAL,IAAiB+K,IAEvBO,GACDA,EAAK1Q,SAIH8Q,EAAW,SAAAC,GACf,GAAI3hB,GAAI2hB,EAAQhR,kBAIhB,IAHI3Q,IACFA,EAAIoB,EAAQwgB,mBAEVhK,EAAW5X,IAAOyhB,EAAYzhB,GAKhC,IADA,GAAItD,GAAI0E,EAAQyO,SAAS9U,OACnBiF,GAAKtD,KAAM,GAAG,CAClB,IAAGkb,EAAW5X,KAAMyhB,EAAYzhB,GAM3B,CACH4Q,EAAM5Q,EACN,OAPAA,EAAIA,EAAE2Q,mBACF3Q,IACFA,EAAIoB,EAAQwgB,uBARlBhR,GAAM5Q,IAmBJ6hB,EAAe,SAAAF,GACnB,GAAI5qB,GAAI4qB,EAAQjR,sBAIhB,IAHI3Z,IACFA,EAAIqK,EAAQ0gB,kBAEVlK,EAAW7gB,IAAO0qB,EAAY1qB,GAKhC,IADA,GAAI2F,GAAI0E,EAAQyO,SAAS9U,OACnBhE,GAAK2F,KAAM,GAAG,CAClB,IAAGkb,EAAW7gB,KAAM0qB,EAAY1qB,GAM3B,CACH6Z,EAAM7Z,EACN,OAPAA,EAAIA,EAAE2Z,uBACF3Z,IACFA,EAAIqK,EAAQ0gB,sBARlBlR,GAAM7Z,IAmBJgrB,EAAY,WAChB,GAAMT,GAAOlgB,EAAQwgB,iBAClBhK,GAAW0J,IAASG,EAAYH,GACjCI,EAASJ,GAGT1Q,EAAM0Q,IAIJU,EAAW,WACf,GAAMV,GAAOlgB,EAAQ0gB,gBAClBlK,GAAW0J,IAASG,EAAYH,GACjCO,EAAaP,GAGb1Q,EAAM0Q,IAIJW,EAAa,SAAAX,IACdA,GAAS1J,EAAW0J,IAAUG,EAAYH,KAC3CD,EAAYC,GACZY,KAAYZ,KAIV/J,EAAiB,SAAA7J,GAErB,GAAM4T,GAAO5T,EAAMjT,OAAOub,QAAb,IAAyB+K,EAEtC,QAAQrT,EAAM6C,SACZ,IAAAvE,GAAAjU,YACA,IAAAiU,GAAAlU,cACKwpB,EACDO,EAAaP,GAGbS,GAEF,MAEF,KAAA/V,GAAA/T,cACA,IAAA+T,GAAAhU,eACKspB,EACDI,EAASJ,GAGTU,GAEF,MAEF,KAAAhW,GAAAnU,QACEkqB,GACA,MAEF,KAAA/V,GAAApU,OACEoqB,GACA,MAEF,KAAAhW,GAAAvU,SACA,IAAAuU,GAAAzU,SACE0qB,EAAWX,EACX,MAEF,KAAAtV,GAAAxU,OACE0qB,KACA,MAEF,KAAAlW,GAAA1U,OAEE4qB,KACA,MAEF,SACE,OAEJxU,EAAMC,kBAIFwU,EAAc,SAAAzU,GAGlB,GAAM3G,GAAI2G,EAAM0U,eACd1U,EAAM2U,wBACNpgB,SAASqgB,aAIX,KACMvb,EACEA,EAAEiP,QAAF,IAAc8K,KAAwB1f,GAAWmhB,EAAYxb,IAC/Dmb,IAIFA,IAGJ,MAAMjC,GAEJiC,MAIEvK,EAAe,SAAAjK,GAGnBA,EAAMC,gBACN,IAAM5G,GAAI2G,EAAMjT,MAChB,IAAIsM,GAAKA,EAAEiP,QAAF,IAAc8K,KAAwB1f,EAAS,CACtD,GAAMkgB,GAAOva,EAAEiP,QAAF,IAAc+K,EACvBO,IACFW,EAAWX,OAITiB,GAAYxb,IACdmb,KAKAM,EAAoB,SAAA9U,GAGxB,GAAM3G,GAAI2G,EAAMjT,MACXsM,IAAKA,EAAEiP,QAAF,IAAc8K,KAAwB1f,IAC3B,eAAfsM,EAAMpU,MACRoU,EAAMC,iBAERuU,MAIEnJ,EAAe,WACnB3X,EAAQ0P,iBAAiB,UAAWyG,MACpCnW,EAAQ0P,iBAAiB,OAAQqR,MACjC/gB,EAAQ0P,iBAAiB,QAAS6G,MAClC1V,SAASC,gBAAgB4O,iBAAiB,aAAc0R,OAGpDxJ,EAAkB,WACtB5X,EAAQyP,oBAAoB,UAAW0G,MACvCnW,EAAQyP,oBAAoB,OAAQsR,MACpC/gB,EAAQyP,oBAAoB,QAAS8G,MACrC1V,SAASC,gBAAgB2O,oBAAoB,aAAc2R,OAGvDC,EAAO,SAACjL,GAAqC,GAArB0H,GAAqBpkB,UAAAC,OAAA,GAAAL,SAAAI,UAAA,GAAAA,UAAA,GAAZ,OAErComB,GAAe1J,EAAexB,QAAf,IAA2B6K,GAE1Czf,EAAQK,MAAM,aAAkB9F,KAAKqG,IAAI,IAAKwV,EAAe7T,wBAAwBI,OAArF,KACA3C,EAAQqN,gBAAgB,aACxBuI,EAAAtW,QAAO8W,EAAgBpW,EAEvB,IAAIkgB,SACJ,QAAQpC,EAASla,eACf,IAAK,QACH+c,GACA,MAEF,KAAK,OACHC,GACA,MAEF,KAAK,WACHV,EAAOE,IACJF,IAASA,EAAK7c,aAAa,YAC5BmM,EAAM0Q,GAGNS,IAKNhJ,KAIIwJ,EAAc,SAAA9nB,GAGlB,GAAIkF,MACE+iB,EAAOjoB,GAAUA,EAAOub,QAAP,IAAmB6K,IAAsB,IAYhE,OAXI6B,IAGIA,EAAI/d,aAAa,mBAAqBvD,EAAQ1K,GACjDgsB,IAAQxB,IACTvhB,MAJFA,KAUKA,GAGHuiB,EAAQ,WAAqC,GAApCS,GAAoC7nB,UAAAC,OAAA,GAAAL,SAAAI,UAAA,IAAAA,UAAA,GAAhBwmB,EAAgBxmB,UAAAC,OAAA,GAAAL,SAAAI,UAAA,GAAAA,UAAA,GAAT,IACxCke,KAEA5X,EAAQiN,cACN,GAAIH,aAAY,cACdC,WACAC,cACAP,QAAU8U,WAAYA,EAAYrB,KAAMA,OAKxCsB,EAAa,WACZxhB,EAAQqD,aAAa,QAExBrD,EAAQ1K,GAAR,kBAA4BqgB,EAAAlY,iBAE9BuC,EAAQoN,aAAa,WAAY,MACjCpN,EAAQoN,aAAa,OAAQ,QAC7BpN,EAAQoN,aAAa,SAAU,OAE/BlP,UAAAyM,EAAA3P,SAAIgF,EAAQ4N,iBAAR,IAA6B+R,KAA0B9R,QAAS,SAAA4T,GAClEA,EAASrU,aAAa,WAAY,MAClCqU,EAASrU,aAAa,OAAQ,iBAGhClP,UAAAyM,EAAA3P,SAAIgF,EAAQ4N,iBAAR,IAA6BgS,KAAoC/R,QAAS,SAAA4T,GAC5EA,EAASrU,aAAa,OAAQ,gBAI5BvB,EAAO,WACX2V,IACA5f,EAAa5B,EAAQ4B,WACrB5B,EAAQ+L,UAAUoB,IAAI,gBAGlB4K,EAAY,WAChBH,IACG5X,EAAQ4B,aAAeA,GACxBA,EAAWlB,YAAYV,GAEzBA,EAAQ+L,UAAUwB,OAAO,eAK3B,OAFA1B,MAOE7L,GAAIA,WACF,MAAOA,IAOT0hB,GAAIA,UAASxB,GACXD,EAAYC,OAQdmB,KAAM,SAACjL,GAAD,GAAiB0H,GAAjBpkB,UAAAC,OAAA,GAAAL,SAAAI,UAAA,GAAAA,UAAA,GAA0B,OAA1B,OAAsC2nB,GAAKjL,EAAgB0H,IAKjElG,gBAAiB,iBAAMA,MAKvBG,UAAW,iBAAMA,QASf4J,EzDswIY,WyDpwIhB,QAAAA,GAAY3hB,GAAS,GAAA2N,GAAA1Y,QAAAugB,EAAAxa,SAAA/F,KAAA0sB,GAAA1sB,KAUrBkhB,eAAiB,SAAA7J,GACf,IAAIqB,EAAK6I,aACP,OAAQlK,EAAM6C,SACZ,IAAAvE,GAAAjU,YACEgX,EAAKiU,SAAS,OACd,MAEF,KAAAhX,GAAA/T,cACE8W,EAAKiU,UACL,MAEF,KAAAhX,GAAAvU,SACA,IAAAuU,GAAAzU,SACEwX,EAAKiU,SAAS,WACd,MAEF,KAAAhX,GAAAxU,OACEuX,EAAKkU,WACL,MAEF,KAAAjX,GAAA1U,OAEE,WADAyX,GAAKkU,WAGP,SACE,OAINvV,EAAMC,kBAvCatX,KA0CrBshB,aAAe,WACT5I,EAAK6I,eACyD,SAA7D7I,EAAK3N,QAAQuD,aAAa,iBAAiBK,cAC5C+J,EAAKkU,cAGLlU,EAAKiU,SAAS,cAhDC3sB,KAyDrB6sB,sBAAqBjF,EAAA7hB,SAAc,WACjC,GAAMtF,GAAIiY,EAAKoU,aAAaxf,wBACtBQ,EAAK4K,EAAKqU,+BAA+B1gB,KAAO5L,EAAE4L,KAClDwB,EAAK6K,EAAKqU,+BAA+B3gB,IAAM3L,EAAE2L,IACjDC,GAAQ2gB,WAAWtU,EAAKuU,KAAKliB,QAAQK,MAAMiB,OAAS,GAAKyB,EACzD1B,GAAO4gB,WAAWtU,EAAKuU,KAAKliB,QAAQK,MAAMgB,MAAQ,GAAKyB,CAE7D6K,GAAKuU,KAAKliB,QAAQK,MAAMiB,KAAUA,EAAlC,KACAqM,EAAKuU,KAAKliB,QAAQK,MAAMgB,IAASA,EAAjC,KACAsM,EAAKqU,+BAAiCtsB,IAlEnBT,KAsErBktB,sBAAwB,WACtBxU,EAAKmU,mBAALnU,IAvEmB1Y,KA0ErBmtB,iBAAmB,SAAA9V,GACdA,GAASA,EAAMG,SACbH,EAAMG,OAAOyT,MAAQ5T,EAAMG,OAAOyT,OAASvS,EAAKqS,eACjDrS,EAAKqS,aAAe1T,EAAMG,OAAOyT,KACjCvS,EAAK0U,sBAEP1U,EAAKkU,UAAUvV,EAAMG,OAAO8U,cA/E9BtsB,KAAK+K,QAAUA,EACf/K,KAAK8sB,aAAezoB,OACpBrE,KAAK+sB,+BAAiC1oB,OACtCrE,KAAKqtB,kBACLrtB,KAAKitB,KAAO5oB,OACZrE,KAAK+qB,aAAe,KACpB/qB,KAAK4W,OzD0/IN,SApKI6J,EAAc1a,SAAS2mB,IACzBtpB,IAAK,qBACLpC,MAAO,WyD1wIRhB,KAAK+K,QAAQiN,cACX,GAAIH,aAAY,cACdC,WACAC,cACAP,QAAUrU,OAAQnD,KAAK+qB,oBzD8wI1B3nB,IAAK,aACLpC,MAAO,WyDzwIR,MAAOhB,MAAK+K,QAAQqD,aAAa,ezD6wIhChL,IAAK,kBACLpC,MAAO,WyD1wIRhB,KAAK+K,QAAQyP,oBAAoB,UAAWxa,KAAKkhB,gBACjDlhB,KAAK+K,QAAQyP,oBAAoB,QAASxa,KAAKshB,iBzD8wI9Cle,IAAK,WACLpC,MAAO,WyD5wIiB,GAAA8X,GAAA9Y,KAAlB6oB,EAAkBpkB,UAAAC,OAAA,GAAAL,SAAAI,UAAA,GAAAA,UAAA,GAAT,SAEZzE,KAAKuhB,cAAgBvhB,KAAKitB,OAG5BjtB,KAAKqtB,kBAAiB1M,EAAAjW,kBAAiB1K,KAAK+K,SAC5C/K,KAAKqtB,eAAezU,QAAQ,SAAAnM,GAAA,MAAMA,GAAGgO,iBAAiB,SAAU3B,EAAKoU,yBAErE7nB,OAAOoV,iBAAiB,SAAUza,KAAKktB,uBACvC7nB,OAAOoV,iBAAiB,oBAAqBza,KAAKktB,uBAClDltB,KAAKitB,KAAKliB,QAAQ0P,iBAAiB,aAAcza,KAAKmtB,kBAEtDntB,KAAKitB,KAAKR,SAAWzsB,KAAK+qB,aAC1B/qB,KAAKitB,KAAKb,KAAKpsB,KAAK8sB,aAAcjE,GAClC7oB,KAAK+K,QAAQoN,aAAa,gBAAiB,QAE3CnY,KAAK+sB,+BAAiC/sB,KAAK8sB,aAAaxf,4BzDsxIzDlK,IAAK,YACLpC,MAAO,WyDnxIoB,GAAAiY,GAAAjZ,KAApBssB,EAAoB7nB,UAAAC,OAAA,GAAAL,SAAAI,UAAA,IAAAA,UAAA,EACzBzE,MAAKitB,OACNjtB,KAAKitB,KAAKtK,kBACV3iB,KAAKqtB,eAAezU,QAAQ,SAAAnM,GAAA,MAAMA,GAAG+N,oBAAoB,SAAUvB,EAAKiU,yBACxE7nB,OAAOmV,oBAAoB,SAAUxa,KAAKktB,uBAC1C7nB,OAAOmV,oBAAoB,oBAAqBxa,KAAKktB,uBACrDltB,KAAKitB,KAAKliB,QAAQyP,oBAAoB,aAAcxa,KAAKmtB,kBAErDb,GACFtsB,KAAKua,QAEPva,KAAK+K,QAAQoN,aAAa,gBAAiB,SAC3CnY,KAAKitB,KAAKliB,QAAQoN,aAAa,SAAU,QzD6xI1C/U,IAAK,QACLpC,MAAO,WyDzxIJhB,KAAKuhB,cACPvhB,KAAK8sB,aAAavS,WzD8xInBnX,IAAK,OACLpC,MAAO,WyD3xIH,GAAA0Z,GAAA1a,KACC0iB,EAAe,WACnBhI,EAAK3P,QAAQ0P,iBAAiB,UAAWC,EAAKwG,gBAC9CxG,EAAK3P,QAAQ0P,iBAAiB,QAASC,EAAK4G,eAGxCiL,EAAa,WACjB7R,EAAK3P,QAAQoN,aAAa,OAAQ,UAClCuC,EAAK3P,QAAQoN,aAAa,gBAAiB,SAC3CuC,EAAK3P,QAAQoN,aAAa,gBAAiB,SAGvCmV,EAAkB,WACtB5S,EAAKoS,aAAepS,EAAK3P,QAAQmM,cAAc,sBAC3CwD,EAAKoS,eACPpS,EAAKoS,aAAepS,EAAK3P,QAEwB,WAA5C2P,EAAKoS,aAAaS,QAAQ5e,eAA0E,UAA5C+L,EAAKoS,aAAaS,QAAQ5e,gBAChF+L,EAAKoS,aAAa1e,aAAa,aAClCsM,EAAKoS,aAAa3U,aAAa,WAAY,QAM7CqV,EAA4B,SAACziB,GAIjC,MAAGA,GAAQ4B,aAAef,SAASqB,KAC1BrB,SAASqB,KAAKxB,YAAYV,GAE5BA,GAGH0iB,EAAkB,WACtB,GAAIC,UACEC,EAAgBjT,EAAK3P,QAAQuD,aAAa,gBAOhD,OALEof,GADmB,OAAlBC,EACa/hB,SAASsL,cAAT,IAA2ByW,GAG3BjT,EAAK3P,QAAQ4B,WAAWuK,cAAxB,IAA0CuT,IAKtDmD,EAAU,WACd,GAAMF,GAAcD,GACjBC,KACEA,EAAYG,kBACbnT,EAAKuS,KAAOS,EAAYG,mBAGxBnT,EAAKuS,KAAOrC,EAAY8C,GACxBA,EAAYG,kBAAoBnT,EAAKuS,KACrCO,EAA0BE,IAE5BhT,EAAK3P,QAAQoN,aAAa,gBAAiBuC,EAAKuS,KAAKliB,QAAQ1K,KAIjEitB,KACAf,IACAqB,IACA5tB,KAAK2iB,kBACLD,OzD8xICtf,IAAK,YACLpC,MAAO,WyD5xIE,GAAAka,GAAAlb,IACV,IAAGA,KAAKitB,KAAM,CAEZ,GAAMa,2BAAcliB,SAAS+M,iBAAT,IAA8B6R,EAA9B,mBAA+DxqB,KAAK+K,QAAQuD,aAAa,iBAAzF,OAC4G,KAA7Hwf,EAAQ1kB,OAAQ,SAAA3I,GAAA,MAAKA,KAAMya,EAAKnQ,SAAWtK,EAAE6N,aAAa,iBAAiByf,QAAQ,0BAA4B,IAAGrpB,QACnH1E,KAAKitB,KAAKnK,YAGd9iB,KAAK2iB,sBzDmyIC+J,MyD9xIV,WAQE,GAAMsB,GAAwB,SAA+BjjB,GAC3D/K,KAAK2W,SAAW5L,EAChB/K,KAAKiuB,YAAc,KAGnBjuB,KAAK4W,OAEPvR,QAAA2oB,sBAAkCA,EASlCA,EAAsBre,UAAUue,eAAiB,WAC/C,MAAOluB,MAAKiuB,YAAYhB,KAAOjtB,KAAKiuB,YAAYhB,KAAKliB,QAAU,MAEjEijB,EAAsBre,UAAtBue,eAAoDF,EAAsBre,UAAUue,eAOpFF,EAAsBre,UAAUgd,SAAW,SAAS9D,GAClD7oB,KAAKiuB,YAAYtB,SAAS9D,IAE5BmF,EAAsBre,UAAtBgd,SAA8CqB,EAAsBre,UAAUgd,SAM9EqB,EAAsBre,UAAUid,UAAY,WAC1C5sB,KAAKiuB,YAAYrB,eAEnBoB,EAAsBre,UAAtBid,UAA+CoB,EAAsBre,UAAUid,UAO/EoB,EAAsBre,UAAUwe,oBAAsB,WACpD,MAAOnuB,MAAKiuB,YAAYlD,cAE1BiD,EAAsBre,UAAtBwe,oBAAyDH,EAAsBre,UAAUwe,oBAOzFH,EAAsBre,UAAUye,oBAAsB,SAASnD,GAC7DjrB,KAAKiuB,YAAYlD,aAAeE,GAElC+C,EAAsBre,UAAtBye,oBAAyDJ,EAAsBre,UAAUye,oBAKzFJ,EAAsBre,UAAUiH,KAAO,WACjC5W,KAAK2W,WACP3W,KAAKiuB,YAAc,GAAIvB,GAAW1sB,KAAK2W,UACvC3W,KAAK2W,SAAS8D,iBAAiB,0BAA2Bza,KAAK0f,cAAcvE,KAAKnb,OAClFA,KAAK2W,SAASG,UAAUoB,IAAxBvC,EAAArT,eAQJ0rB,EAAsBre,UAAU+P,cAAgB,WAC9C1f,KAAKiuB,YAAYnL,aAMnB1H,iBAAiBC,UACfC,YAAa0S,EACbzS,cAAe,wBACfC,SAAUgP,EACV/O,gBzDsyIE,SAAS5b,EAAQD,EAASM,GAE/B,Y0DngKD,IAAAwgB,GAAAxgB,EAAA,IACAyV,EAAAzV,EAAA,IAQA,WAEE,GAAMmuB,GAAQ,4BACRC,EAAQ,6BAURC,EAAyB,SAAgCxjB,GAC7D/K,KAAK2W,SAAW5L,EAChB/K,KAAK4W,OAGPvR,QAAAkpB,uBAAmCA,EASnCA,EAAuB5e,UAAU6e,SAAW,WAC1CxuB,KAAK2W,SAASG,UAAUoB,IAAxBvC,EAAAvT,aAUFmsB,EAAuB5e,UAAU8e,QAAU,WACzCzuB,KAAK2W,SAASG,UAAUwB,OAAxB3C,EAAAvT,aASFmsB,EAAuB5e,UAAU+e,SAAW,WAC1C1uB,KAAK2uB,kBAQPJ,EAAuB5e,UAAUgf,eAAiB,WAChD3uB,KAAK4uB,gBACL5uB,KAAK6uB,gBACL7uB,KAAK8uB,aACL9uB,KAAK+uB,cAUPR,EAAuB5e,UAAUif,cAAgB,WAC3C5uB,KAAKgvB,QAAQpgB,SACf5O,KAAK2W,SAASG,UAAUoB,IAAxBvC,EAAAzT,aAEAlC,KAAK2W,SAASG,UAAUwB,OAAxB3C,EAAAzT,cAGJqsB,EAAuB5e,UAAvBif,cAAoDL,EAAuB5e,UAAUif,cAQrFL,EAAuB5e,UAAUof,WAAa,WAGxCE,QAAQjvB,KAAK2W,SAASO,cAAc,WACtClX,KAAK2W,SAASG,UAAUoB,IAAxBvC,EAAAvT,YAEApC,KAAK2W,SAASG,UAAUwB,OAAxB3C,EAAAvT,aAIJmsB,EAAuB5e,UAAvBof,WAAiDR,EAAuB5e,UAAUof,WAQlFR,EAAuB5e,UAAUkf,cAAgB,aAejDN,EAAuB5e,UAAvBkf,cAAoDN,EAAuB5e,UAAUkf,cAOrFN,EAAuB5e,UAAUmf,WAAa,WACxC9uB,KAAKgvB,QAAQhuB,OAAShB,KAAKgvB,QAAQhuB,MAAM0D,OAAS,EACpD1E,KAAK2W,SAASG,UAAUoB,IAAxBvC,EAAA1T,UAEAjC,KAAK2W,SAASG,UAAUwB,OAAxB3C,EAAA1T,WAIJssB,EAAuB5e,UAAvBmf,WAAiDP,EAAuB5e,UAAUmf,WAOlFP,EAAuB5e,UAAUuf,QAAU,WACzClvB,KAAKgvB,QAAQpgB,YACb5O,KAAK2uB,kBAGPJ,EAAuB5e,UAAvBuf,QAA8CX,EAAuB5e,UAAUuf,QAO/EX,EAAuB5e,UAAUwf,OAAS,WACxCnvB,KAAKgvB,QAAQpgB,YACb5O,KAAK2uB,kBAGPJ,EAAuB5e,UAAvBwf,OAA6CZ,EAAuB5e,UAAUwf,OAQ9EZ,EAAuB5e,UAAUyf,OAAS,SAASpuB,GACjDhB,KAAKgvB,QAAQhuB,MAAQA,GAAS,GAC9BhB,KAAK2uB,kBAEPJ,EAAuB5e,UAAvByf,OAA6Cb,EAAuB5e,UAAUyf,OAK9Eb,EAAuB5e,UAAUiH,KAAO,WACtC,GAAI5W,KAAK2W,WACP3W,KAAKqvB,OAASrvB,KAAK2W,SAASO,cAAd,IAAgCmX,GAC9CruB,KAAKgvB,QAAUhvB,KAAK2W,SAASO,cAAd,IAAgCoX,IAE7B,CAYhB,GAVAtuB,KAAKgvB,QAAQxU,oBAAoB,SAAUxa,KAAK2uB,gBAChD3uB,KAAKgvB,QAAQxU,oBAAoB,QAASxa,KAAKwuB,UAC/CxuB,KAAKgvB,QAAQxU,oBAAoB,OAAQxa,KAAKyuB,SAC9CzuB,KAAKgvB,QAAQxU,oBAAoB,QAASxa,KAAK0uB,UAE/C1uB,KAAKgvB,QAAQvU,iBAAiB,SAAUza,KAAK2uB,eAAexT,KAAKnb,OACjEA,KAAKgvB,QAAQvU,iBAAiB,QAASza,KAAKwuB,SAASrT,KAAKnb,OAC1DA,KAAKgvB,QAAQvU,iBAAiB,OAAQza,KAAKyuB,QAAQtT,KAAKnb,OACxDA,KAAKgvB,QAAQvU,iBAAiB,QAASza,KAAK0uB,SAASvT,KAAKnb,OAEvDA,KAAKqvB,OAAQ,CACd,GAAIhvB,SACAL,MAAKgvB,QAAQ5gB,aAAa,MAK5B/N,EAAKL,KAAKgvB,QAAQ3uB,IAJlBA,eAAeqgB,EAAAlY,gBACfxI,KAAKgvB,QAAQ3uB,GAAKA,GAMhBL,KAAKqvB,OAAOjhB,aAAa,QAC3BpO,KAAKqvB,OAAOlX,aAAa,MAAO9X,GAIpC,GAAMivB,GAAUtvB,KAAK2W,SAASG,UAAUC,SAAxBpB,EAAAtT,WAChBrC,MAAK2uB,iBACL3uB,KAAK2W,SAASG,UAAUoB,IAAxBvC,EAAArT,aAEIgtB,GACFtvB,KAAK2W,SAASG,UAAUoB,IAAxBvC,EAAAtT,YAEErC,KAAKgvB,QAAQ5gB,aAAa,eAC5BpO,KAAK2W,SAAS4D,QACdva,KAAK+uB,gBAqBb3T,iBAAiBC,UACfC,YAAaiT,EACbhT,cAAe,yBACfC,SAAU;AACVC,gB1D2hKE,SAAS5b,EAAQD,EAASM,GAE/B,YAUA,SAAS0F,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,G2D/xKxF,GAAA8hB,GAAAznB,EAAA,I3DyxKK0nB,EAAiBhiB,EAAuB+hB,G2DxxK7C5L,EAAA7b,EAAA,IACAyV,EAAAzV,EAAA,IAKA,WAEE,GAAMqvB,GAAsB,sBACtBC,EAAmB,mBAOnBC,EAA0B,SAAiC1kB,GAE/D/K,KAAK0vB,QAAU3kB,EAGf/K,KAAK2vB,SAAW,KAChB3vB,KAAK4vB,eAAiB,EAGtB5vB,KAAKqc,SACHwT,uBAGF7vB,KAAK8vB,kBAAoB,KAEzB9vB,KAAK+vB,YAGL/vB,KAAK4W,OAGPvR,QAAAoqB,wBAAoCA,EAOpCA,EAAwB9f,UAAUqgB,aAAe,WAC/ChwB,KAAK0vB,QAAQtkB,MAAMsC,MAAW1N,KAAK2vB,SAAS7jB,YAA5C,KAGF,IAAMmkB,MAAiBrI,EAAA7hB,SAAa,SAAAR,GAAA,MAAQA,GAAKyqB,gBAOjDP,GAAwB9f,UAAUugB,eAAiB,WACjDD,EAAejwB,OAQjByvB,EAAwB9f,UAAUwgB,YAAc,WAE9C,GAAMC,GAA0BpwB,KAAK2vB,SAAS7G,UACxCuH,EAAarwB,KAAK4vB,eAAiBQ,CAEzC,IAAGA,GAA2B,EAE5BpwB,KAAK0vB,QAAQtkB,MAAMgB,IAAM,IACzBpM,KAAK0vB,QAAQ5Y,UAAUwB,OAAOkX,OAE3B,IAAGa,EAAa,EAAG,CAEtB,GAAGA,GAAcrwB,KAAK0vB,QAAQjiB,aAAc,CAG1C,GAAM6iB,GAAa/hB,SAAUlJ,OAAOwH,iBAAkB7M,KAAK0vB,SAAU5gB,iBAAkB,SAAa,CACpF,IAAbwhB,IACDtwB,KAAK0vB,QAAQtkB,MAAMgB,IAAM,IACzBpM,KAAK0vB,QAAQ5Y,UAAUoB,IAAIsX,IAE7BxvB,KAAK4vB,eAAiBQ,EAExB,OAEG,GAAGC,EAAa,EAAG,CAEtBrwB,KAAK0vB,QAAQ5Y,UAAUoB,IAAIsX,EAC3B,IAAIc,GAAa/hB,SAAUlJ,OAAOwH,iBAAkB7M,KAAK0vB,SAAU5gB,iBAAkB,SAAa,CAElG,IAAI9O,KAAK2vB,SAASY,aAAevwB,KAAK2vB,SAAS7G,WAAa9oB,KAAK2vB,SAASliB,aAExD,GAAb6iB,IACDtwB,KAAK0vB,QAAQtkB,MAAMgB,IAAMpM,KAAKqc,QAAQwT,mBAAqB,IAAlC,IAA4C7vB,KAAK0vB,QAAQjiB,aAAzD,UAGxB,CACH6iB,GAAaD,CACb,IAAM5iB,GAAezN,KAAK0vB,QAAQjiB,YAClCzN,MAAK0vB,QAAQtkB,MAAMgB,KAAW9G,KAAKsY,IAAK0S,GAAc7iB,GAAgBA,EAAe6iB,GAArF,OAIJtwB,KAAK4vB,eAAiBQ,EAIxB,IAAMI,MAAiB5I,EAAA7hB,SAAa,SAACR,GAAD,MAAUA,GAAK4qB,eAOnDV,GAAwB9f,UAAU8gB,eAAiB,WACjDD,EAAexwB,OAOjByvB,EAAwB9f,UAAU+gB,gBAAkB,WAClD1wB,KAAKgwB,eACLhwB,KAAKmwB,eAOPV,EAAwB9f,UAAUghB,qBAAuB,WAAW,GAAAjY,GAAA1Y,IAIlEA,MAAK8vB,kBAAoB,GAAIc,kBAAkB,WAE7ClY,EAAKgY,oBAGP1wB,KAAK8vB,kBAAkBe,QAAS7wB,KAAK2vB,UACnCmB,cACAC,aACAC,iBACAC,cAQJxB,EAAwB9f,UAAU8P,iBAAmB,WAEnDpa,OAAOmV,oBAAoB,SAAUxa,KAAKkwB,gBAC1C7qB,OAAOmV,oBAAoB,oBAAqBxa,KAAKkwB,gBAElDlwB,KAAK2vB,UACN3vB,KAAK2vB,SAASnV,oBAAoB,SAAUxa,KAAKywB,gBAGhDzwB,KAAK8vB,oBACN9vB,KAAK8vB,kBAAkBoB,aACvBlxB,KAAK8vB,kBAAoB,OAO7BL,EAAwB9f,UAAUiH,KAAO,WAEnC5W,KAAK0vB,UAEP1vB,KAAKyf,mBAEFzf,KAAK0vB,QAAQthB,aAAa,iBAC3BpO,KAAKqc,WAAUN,EAAAlU,oBAAmB7H,KAAK0vB,QAAQphB,aAAa,iBAG9DtO,KAAK2vB,SAAW3vB,KAAK0vB,QAAQ/iB,WAAWuK,cAAxB,IAA0CqY,IAAyB,KAEhFvvB,KAAK2vB,WACN3vB,KAAK2vB,SAASvkB,MAAM+lB,WAAgBnxB,KAAK0vB,QAAQjiB,aAAjD,KACAzN,KAAK4vB,eAAiB5vB,KAAK2vB,SAAS7G,UAEpC9oB,KAAK2vB,SAASlV,iBAAiB,SAAUza,KAAKywB,eAAetV,KAAKnb,OAClEqF,OAAOoV,iBAAiB,SAAUza,KAAKkwB,eAAe/U,KAAKnb,OAC3DqF,OAAOoV,iBAAiB,oBAAqBza,KAAKkwB,eAAe/U,KAAKnb,OAEtEA,KAAK2wB,uBACL3wB,KAAK0wB,kBAGL1wB,KAAK0vB,QAAQ5Y,UAAUoB,IAAvBvC,EAAArT,gBAqBN8Y,iBAAiBC,UACfC,YAAamU,EACblU,cAAe,0BACfC,SAAU,gC3DszKR,SAAS3b,EAAQD,EAASM,GAE/B,Y4DhjLDA,GAAA,GACAA,EAAA,IACAA,EAAA,IACAA,EAAA,IACAA,EAAA,IACAA,EAAA,IACAA,EAAA,K5D4jLM,SAASL,EAAQD,EAASM,G6DlkLhCL,EAAAD,SAAkBmG,QAAA7F,EAAA,IAAA4F,gB7DwkLZ,SAASjG,EAAQD,EAASM,G8DxkLhCL,EAAAD,SAAkBmG,QAAA7F,EAAA,IAAA4F,gB9D8kLZ,SAASjG,EAAQD,EAASM,G+D9kLhCL,EAAAD,SAAkBmG,QAAA7F,EAAA,IAAA4F,gB/DolLZ,SAASjG,EAAQD,EAASM,GgEplLhCL,EAAAD,SAAkBmG,QAAA7F,EAAA,IAAA4F,gBhE0lLZ,SAASjG,EAAQD,EAASM,GiE1lLhCL,EAAAD,SAAkBmG,QAAA7F,EAAA,IAAA4F,gBjEgmLZ,SAASjG,EAAQD,EAASM,GkEhmLhCL,EAAAD,SAAkBmG,QAAA7F,EAAA,IAAA4F,gBlEsmLZ,SAASjG,EAAQD,EAASM,GmEtmLhCL,EAAAD,SAAkBmG,QAAA7F,EAAA,IAAA4F,gBnE4mLZ,SAASjG,EAAQD,EAASM,GoE5mLhC,YAYA,SAAA0F,GAAAC,GAAsC,MAAAA,MAAAC,WAAAD,GAAuCE,QAAAF,GAV7EjG,EAAAkG,aAEA,IAAAsrB,GAAAlxB,EAAA,IAEAmxB,EAAAzrB,EAAAwrB,GAEA3J,EAAAvnB,EAAA,IAEAwnB,EAAA9hB,EAAA6hB,EAIA7nB,GAAAmG,QAAA,WACA,QAAAurB,GAAAprB,EAAAG,GACA,GAAAkrB,MACAC,KACAC,KACAC,EAAArtB,MAEA,KACA,OAAAstB,GAAAthB,KAAAqX,EAAA3hB,SAAAG,KAAwDsrB,GAAAG,EAAAthB,EAAAc,QAAAX,QACxD+gB,EAAA/P,KAAAmQ,EAAA3wB,QAEAqF,GAAAkrB,EAAA7sB,SAAA2B,GAHuFmrB,OAKlF,MAAA5H,GACL6H,KACAC,EAAA9H,EACK,QACL,KACA4H,GAAAnhB,EAAAwZ,QAAAxZ,EAAAwZ,SACO,QACP,GAAA4H,EAAA,KAAAC,IAIA,MAAAH,GAGA,gBAAArrB,EAAAG,GACA,GAAAF,MAAAC,QAAAF,GACA,MAAAA,EACK,OAAAmrB,EAAAtrB,SAAAjF,OAAAoF,IACL,MAAAorB,GAAAprB,EAAAG,EAEA,UAAAV,WAAA,6DpEqnLM,SAAS9F,EAAQD,EAASM,GqEpqLhCA,EAAA,IACAA,EAAA,KACAL,EAAAD,QAAAM,EAAA,GAAAiG,MAAA+G,MrE0qLM,SAASrN,EAAQD,EAASM,GsE5qLhCA,EAAA,IACAA,EAAA,IACAL,EAAAD,QAAAM,EAAA,MtEkrLM,SAASL,EAAQD,EAASM,GuEprLhCA,EAAA,IACAA,EAAA,IACAL,EAAAD,QAAAM,EAAA,MvE0rLM,SAASL,EAAQD,EAASM,GwE5rLhCA,EAAA,KACAL,EAAAD,QAAAM,EAAA,GAAA0xB,OAAAC,WxEksLM,SAAShyB,EAAQD,EAASM,GyEnsLhCA,EAAA,KACAL,EAAAD,QAAAM,EAAA,GAAA0xB,OAAA5hB,OzEysLM,SAASnQ,EAAQD,EAASM,G0E1sLhCA,EAAA,KACAL,EAAAD,QAAAM,EAAA,GAAAY,OAAAgxB,Q1EgtLM,SAASjyB,EAAQD,EAASM,G2EjtLhCA,EAAA,IACA,IAAA6xB,GAAA7xB,EAAA,GAAAY,MACAjB,GAAAD,QAAA,SAAA8F,EAAAtC,EAAA4uB,GACA,MAAAD,GAAAhxB,eAAA2E,EAAAtC,EAAA4uB,K3EwtLM,SAASnyB,EAAQD,EAASM,G4E3tLhCA,EAAA,KACAL,EAAAD,QAAAM,EAAA,GAAAY,OAAA6T,S5EiuLM,SAAS9U,EAAQD,EAASM,G6EluLhCA,EAAA,KACAL,EAAAD,QAAAM,EAAA,GAAAY,OAAAoJ,M7EwuLM,SAASrK,EAAQD,EAASM,G8EzuLhCA,EAAA,KACAL,EAAAD,QAAAM,EAAA,GAAA+xB,QAAAttB,O9E+uLM,SAAS9E,EAAQD,G+EhvLvBC,EAAAD,QAAA,c/EsvLM,SAASC,EAAQD,EAASM,GgFpvLhC,GAAAgyB,GAAAhyB,EAAA,IACAiyB,EAAAjyB,EAAA,IACAkyB,EAAAlyB,EAAA,IACAL,GAAAD,QAAA,SAAAyyB,GACA,gBAAAC,EAAA7lB,EAAA8lB,GACA,GAGAvxB,GAHAiG,EAAAirB,EAAAI,GACA5tB,EAAAytB,EAAAlrB,EAAAvC,QACA6L,EAAA6hB,EAAAG,EAAA7tB,EAGA,IAAA2tB,GAAA5lB,MAAA,KAAA/H,EAAA6L,GAEA,GADAvP,EAAAiG,EAAAsJ,KACAvP,KAAA,aAEK,MAAW0D,EAAA6L,EAAeA,IAAA,IAAA8hB,GAAA9hB,IAAAtJ,KAC/BA,EAAAsJ,KAAA9D,EAAA,MAAA4lB,IAAA9hB,GAAA,CACK,QAAA8hB,ShF8vLC,SAASxyB,EAAQD,EAASM,GiFhxLhC,YACA,IAAAsyB,GAAAtyB,EAAA,IACAyG,EAAAzG,EAAA,GAEAL,GAAAD,QAAA,SAAAgH,EAAA2J,EAAAvP,GACAuP,IAAA3J,GAAA4rB,EAAA3rB,EAAAD,EAAA2J,EAAA5J,EAAA,EAAA3F,IACA4F,EAAA2J,GAAAvP,IjFuxLM,SAASnB,EAAQD,EAASM,GkF7xLhCL,EAAAD,QAAAM,EAAA,GAAA0L,mBAAAC,iBlFmyLM,SAAShM,EAAQD,EAASM,GmFnyLhCL,EAAAD,SAAAM,EAAA,KAAAA,EAAA,eACA,MAAmG,IAAnGY,OAAAC,eAAAb,EAAA,gBAAsEqG,IAAA,WAAgB,YAAahC,KnF0yL7F,SAAS1E,EAAQD,EAASM,GoF1yLhC,GAAA+S,GAAA/S,EAAA,GACAmT,EAAAnT,EAAA,eACAuyB,EAAAtsB,MAAAwJ,SAEA9P,GAAAD,QAAA,SAAA8F,GACA,MAAArB,UAAAqB,IAAAuN,EAAA9M,QAAAT,GAAA+sB,EAAApf,KAAA3N,KpFkzLM,SAAS7F,EAAQD,EAASM,GqFvzLhC,GAAAuF,GAAAvF,EAAA,IACA6P,EAAAzK,KAAAyK,KACAlQ,GAAAD,QAAA,SAAA8F,GACA,OAAAD,EAAAC,IAAAgtB,SAAAhtB,IAAAqK,EAAArK,SrF+zLM,SAAS7F,EAAQD,EAASM,GsFl0LhC,GAAA4G,GAAA5G,EAAA,EACAL,GAAAD,QAAA,SAAA+yB,EAAAngB,EAAAxR,EAAA2T,GACA,IACA,MAAAA,GAAAnC,EAAA1L,EAAA9F,GAAA,GAAAA,EAAA,IAAAwR,EAAAxR,GAEG,MAAAyF,GACH,GAAAmsB,GAAAD,EAAA9I,MAEA,MADAxlB,UAAAuuB,GAAA9rB,EAAA8rB,EAAAryB,KAAAoyB,IACAlsB,KtF20LM,SAAS5G,EAAQD,EAASM,GuFp1LhC,YACA,IAAA2yB,GAAA3yB,EAAA,IACAmP,EAAAnP,EAAA,IACAiT,EAAAjT,EAAA,IACA+T,IAGA/T,GAAA,IAAA+T,EAAA/T,EAAA,0BAAgF,MAAAF,QAEhFH,EAAAD,QAAA,SAAAoP,EAAA4E,EAAAzC,GACAnC,EAAAW,UAAAkjB,EAAA5e,GAAqD9C,KAAA9B,EAAA,EAAA8B,KACrDgC,EAAAnE,EAAA4E,EAAA,evF21LM,SAAS/T,EAAQD,EAASM,GwFt2LhC,GAAAmT,GAAAnT,EAAA,eACA4yB,IAEA,KACA,GAAAC,IAAA,GAAA1f,IACA0f,GAAAlJ,OAAA,WAA+BiJ,MAC/B3sB,MAAA+G,KAAA6lB,EAAA,WAA+B,UAC9B,MAAAtsB,IAED5G,EAAAD,QAAA,SAAA4G,EAAAwsB,GACA,IAAAA,IAAAF,EAAA,QACA,IAAAG,KACA,KACA,GAAA/sB,IAAA,GACAgtB,EAAAhtB,EAAAmN,IACA6f,GAAA/hB,KAAA,WAA2B,OAASX,KAAAyiB,OACpC/sB,EAAAmN,GAAA,WAA+B,MAAA6f,IAC/B1sB,EAAAN,GACG,MAAAO,IACH,MAAAwsB,KxF62LM,SAASpzB,EAAQD,GyFh4LvBC,EAAAD,QAAA,SAAA4Q,EAAAxP,GACA,OAAUA,QAAAwP,YzFu4LJ,SAAS3Q,EAAQD,G0Fx4LvBC,EAAAD,Y1F84LM,SAASC,EAAQD,EAASM,G2F94LhC,YAEA,IAAAizB,GAAAjzB,EAAA,IACAkzB,EAAAlzB,EAAA,IACAmzB,EAAAnzB,EAAA,IACAozB,EAAApzB,EAAA,IACAiK,EAAAjK,EAAA,IACAqzB,EAAAzyB,OAAAgxB,MAGAjyB,GAAAD,SAAA2zB,GAAArzB,EAAA,eACA,GAAAszB,MACAxvB,KACAJ,EAAAsB,SACAuuB,EAAA,sBAGA,OAFAD,GAAA5vB,GAAA,EACA6vB,EAAA7gB,MAAA,IAAAgG,QAAA,SAAA8a,GAAkC1vB,EAAA0vB,OACf,GAAnBH,KAAmBC,GAAA5vB,IAAA9C,OAAAoJ,KAAAqpB,KAAsCvvB,IAAA0F,KAAA,KAAA+pB,IACxD,SAAArvB,EAAAjB,GAMD,IALA,GAAAkP,GAAAihB,EAAAlvB,GACAuvB,EAAAlvB,UAAAC,OACA6L,EAAA,EACAqjB,EAAAR,EAAAvsB,EACAgtB,EAAAR,EAAAxsB,EACA8sB,EAAApjB,GAMA,IALA,GAIAnN,GAJAQ,EAAAuG,EAAA1F,UAAA8L,MACArG,EAAA0pB,EAAAT,EAAAvvB,GAAAqF,OAAA2qB,EAAAhwB,IAAAuvB,EAAAvvB,GACAc,EAAAwF,EAAAxF,OACAovB,EAAA,EAEApvB,EAAAovB,GAAAD,EAAAtzB,KAAAqD,EAAAR,EAAA8G,EAAA4pB,QAAAzhB,EAAAjP,GAAAQ,EAAAR,GACG,OAAAiP,IACFkhB,G3Fo5LK,SAAS1zB,EAAQD,EAASM,G4Fn7LhC,GAAA4G,GAAA5G,EAAA,GACA6zB,EAAA7zB,EAAA,IACA+J,EAAA/J,EAAA,IACA8zB,EAAA9zB,EAAA,gBACA+zB,EAAA,aACAlxB,EAAA,YAGAmxB,EAAA,WAEA,GAIAC,GAJAC,EAAAl0B,EAAA,cACAmG,EAAA4D,EAAAvF,OACA2vB,EAAA,IACAC,EAAA,GAYA,KAVAF,EAAAhpB,MAAAC,QAAA,OACAnL,EAAA,IAAAuL,YAAA2oB,GACAA,EAAA/J,IAAA,cAGA8J,EAAAC,EAAAG,cAAA3oB,SACAuoB,EAAA/H,OACA+H,EAAAK,MAAAH,EAAA,SAAAC,EAAA,oBAAAD,EAAA,UAAAC,GACAH,EAAAtI,QACAqI,EAAAC,EAAA3wB,EACA6C,WAAA6tB,GAAAnxB,GAAAkH,EAAA5D,GACA,OAAA6tB,KAGAr0B,GAAAD,QAAAkB,OAAA+xB,QAAA,SAAA5rB,EAAAwtB,GACA,GAAAnrB,EAQA,OAPA,QAAArC,GACAgtB,EAAAlxB,GAAA+D,EAAAG,GACAqC,EAAA,GAAA2qB,GACAA,EAAAlxB,GAAA,KAEAuG,EAAA0qB,GAAA/sB,GACGqC,EAAA4qB,IACH7vB,SAAAowB,EAAAnrB,EAAAyqB,EAAAzqB,EAAAmrB,K5F47LM,SAAS50B,EAAQD,EAASM,G6Fn+LhC,GAAAwG,GAAAxG,EAAA,IACA4G,EAAA5G,EAAA,GACAizB,EAAAjzB,EAAA,GAEAL,GAAAD,QAAAM,EAAA,GAAAY,OAAAqO,iBAAA,SAAAlI,EAAAwtB,GACA3tB,EAAAG,EAKA,KAJA,GAGAnD,GAHAoG,EAAAipB,EAAAsB,GACA/vB,EAAAwF,EAAAxF,OACA2B,EAAA,EAEA3B,EAAA2B,GAAAK,EAAAG,EAAAI,EAAAnD,EAAAoG,EAAA7D,KAAAouB,EAAA3wB,GACA,OAAAmD,K7F0+LM,SAASpH,EAAQD,G8Fr/LvBA,EAAAiH,EAAA/F,OAAA4zB,uB9F2/LM,SAAS70B,EAAQD,EAASM,G+F1/LhC,GAAA8S,GAAA9S,EAAA,IACAozB,EAAApzB,EAAA,IACA8zB,EAAA9zB,EAAA,gBACAy0B,EAAA7zB,OAAA6O,SAEA9P,GAAAD,QAAAkB,OAAAsS,gBAAA,SAAAnM,GAEA,MADAA,GAAAqsB,EAAArsB,GACA+L,EAAA/L,EAAA+sB,GAAA/sB,EAAA+sB,GACA,kBAAA/sB,GAAAqU,aAAArU,eAAAqU,YACArU,EAAAqU,YAAA3L,UACG1I,YAAAnG,QAAA6zB,EAAA,O/FkgMG,SAAS90B,EAAQD,EAASM,GgG7gMhC,GAAA8S,GAAA9S,EAAA,IACAgyB,EAAAhyB,EAAA,IACA00B,EAAA10B,EAAA,QACA8zB,EAAA9zB,EAAA,eAEAL,GAAAD,QAAA,SAAAgH,EAAAiuB,GACA,GAGAzxB,GAHA6D,EAAAirB,EAAAtrB,GACAP,EAAA,EACAiD,IAEA,KAAAlG,IAAA6D,GAAA7D,GAAA4wB,GAAAhhB,EAAA/L,EAAA7D,IAAAkG,EAAAkY,KAAApe,EAEA,MAAAyxB,EAAAnwB,OAAA2B,GAAA2M,EAAA/L,EAAA7D,EAAAyxB,EAAAxuB,SACAuuB,EAAAtrB,EAAAlG,IAAAkG,EAAAkY,KAAApe,GAEA,OAAAkG,KhGohMM,SAASzJ,EAAQD,EAASM,GiGliMhC,GAAA8C,GAAA9C,EAAA,GACAS,EAAAT,EAAA,GACA40B,EAAA50B,EAAA,GACAL,GAAAD,QAAA,SAAAm1B,EAAAvuB,GACA,GAAAgM,IAAA7R,EAAAG,YAA8Bi0B,IAAAj0B,OAAAi0B,GAC9BC,IACAA,GAAAD,GAAAvuB,EAAAgM,GACAxP,IAAAY,EAAAZ,EAAAQ,EAAAsxB,EAAA,WAAmDtiB,EAAA,KAAS,SAAAwiB,KjG0iMtD,SAASn1B,EAAQD,EAASM,GkGljMhC,GAAAizB,GAAAjzB,EAAA,IACAgyB,EAAAhyB,EAAA,IACA2zB,EAAA3zB,EAAA,IAAA2G,CACAhH,GAAAD,QAAA,SAAAq1B,GACA,gBAAAvvB,GAOA,IANA,GAKAtC,GALA6D,EAAAirB,EAAAxsB,GACAwE,EAAAipB,EAAAlsB,GACAvC,EAAAwF,EAAAxF,OACA2B,EAAA,EACAiD,KAEA5E,EAAA2B,GAAAwtB,EAAAtzB,KAAA0G,EAAA7D,EAAA8G,EAAA7D,OACAiD,EAAAkY,KAAAyT,GAAA7xB,EAAA6D,EAAA7D,IAAA6D,EAAA7D,GACK,OAAAkG,MlG0jMC,SAASzJ,EAAQD,EAASM,GmGvkMhCL,EAAAD,QAAAM,EAAA,KnG6kMM,SAASL,EAAQD,EAASM,GoG7kMhC,GAAA+U,GAAA/U,EAAA,IACAkK,EAAAlK,EAAA,GAGAL,GAAAD,QAAA,SAAAs1B,GACA,gBAAAziB,EAAA0iB,GACA,GAGA5wB,GAAAC,EAHAyD,EAAAiI,OAAA9F,EAAAqI,IACApM,EAAA4O,EAAAkgB,GACAC,EAAAntB,EAAAvD,MAEA,OAAA2B,GAAA,GAAAA,GAAA+uB,EAAAF,EAAA,GAAA7wB,QACAE,EAAA0D,EAAAotB,WAAAhvB,GACA9B,EAAA,OAAAA,EAAA,OAAA8B,EAAA,IAAA+uB,IAAA5wB,EAAAyD,EAAAotB,WAAAhvB,EAAA,WAAA7B,EAAA,MACA0wB,EAAAjtB,EAAAge,OAAA5f,GAAA9B,EACA2wB,EAAAjtB,EAAA6B,MAAAzD,IAAA,IAAA9B,EAAA,YAAAC,EAAA,iBpGqlMM,SAAS3E,EAAQD,EAASM,GqGnmMhC,GAAA+U,GAAA/U,EAAA,IACAyL,EAAArG,KAAAqG,IACAuJ,EAAA5P,KAAA4P,GACArV,GAAAD,QAAA,SAAA2Q,EAAA7L,GAEA,MADA6L,GAAA0E,EAAA1E,GACAA,EAAA,EAAA5E,EAAA4E,EAAA7L,EAAA,GAAAwQ,EAAA3E,EAAA7L,KrG0mMM,SAAS7E,EAAQD,EAASM,GsG9mMhC,GAAAuF,GAAAvF,EAAA,GAGAL,GAAAD,QAAA,SAAA8F,EAAA9B,GACA,IAAA6B,EAAAC,GAAA,MAAAA,EACA,IAAA8M,GAAA8iB,CACA,IAAA1xB,GAAA,mBAAA4O,EAAA9M,EAAAmE,YAAApE,EAAA6vB,EAAA9iB,EAAAjS,KAAAmF,IAAA,MAAA4vB,EACA,uBAAA9iB,EAAA9M,EAAA6vB,WAAA9vB,EAAA6vB,EAAA9iB,EAAAjS,KAAAmF,IAAA,MAAA4vB,EACA,KAAA1xB,GAAA,mBAAA4O,EAAA9M,EAAAmE,YAAApE,EAAA6vB,EAAA9iB,EAAAjS,KAAAmF,IAAA,MAAA4vB,EACA,MAAA3vB,WAAA,6CtGsnMM,SAAS9F,EAAQD,EAASM,GuGhoMhC,GAAA4G,GAAA5G,EAAA,GACAqG,EAAArG,EAAA,GACAL,GAAAD,QAAAM,EAAA,GAAAs1B,YAAA,SAAA9vB,GACA,GAAA+vB,GAAAlvB,EAAAb,EACA,sBAAA+vB,GAAA,KAAA9vB,WAAAD,EAAA,oBACA,OAAAoB,GAAA2uB,EAAAl1B,KAAAmF,MvGuoMM,SAAS7F,EAAQD,EAASM,GwG5oMhC,GAAAkV,GAAAlV,EAAA,IACAmT,EAAAnT,EAAA,eACA+S,EAAA/S,EAAA,EACAL,GAAAD,QAAAM,EAAA,GAAAw1B,WAAA,SAAAhwB,GACA,GAAAuB,GAAAnG,OAAA4E,EACA,OAAArB,UAAA4C,EAAAoM,IACA,cAAApM,IACAgM,EAAAlJ,eAAAqL,EAAAnO,MxGmpMM,SAASpH,EAAQD,EAASM,GyG1pMhC,YACA,IAAA2C,GAAA3C,EAAA,IACA8C,EAAA9C,EAAA,GACAozB,EAAApzB,EAAA,IACAK,EAAAL,EAAA,IACAy1B,EAAAz1B,EAAA,IACAiyB,EAAAjyB,EAAA,IACA01B,EAAA11B,EAAA,IACA21B,EAAA31B,EAAA,GAEA8C,KAAAY,EAAAZ,EAAAQ,GAAAtD,EAAA,aAAAgzB,GAA0E/sB,MAAA+G,KAAAgmB,KAAoB,SAE9FhmB,KAAA,SAAA4oB,GACA,GAOApxB,GAAA4E,EAAAysB,EAAApD,EAPA1rB,EAAAqsB,EAAAwC,GACAxxB,EAAA,kBAAAtE,WAAAmG,MACAwtB,EAAAlvB,UAAAC,OACAsxB,EAAArC,EAAA,EAAAlvB,UAAA,GAAAJ,OACA4xB,EAAA5xB,SAAA2xB,EACAzlB,EAAA,EACAklB,EAAAI,EAAA5uB,EAIA,IAFAgvB,IAAAD,EAAAnzB,EAAAmzB,EAAArC,EAAA,EAAAlvB,UAAA,GAAAJ,OAAA,IAEAA,QAAAoxB,GAAAnxB,GAAA6B,OAAAwvB,EAAAF,GAMA,IADA/wB,EAAAytB,EAAAlrB,EAAAvC,QACA4E,EAAA,GAAAhF,GAAAI,GAAiCA,EAAA6L,EAAgBA,IACjDqlB,EAAAtsB,EAAAiH,EAAA0lB,EAAAD,EAAA/uB,EAAAsJ,MAAAtJ,EAAAsJ,QANA,KAAAoiB,EAAA8C,EAAAl1B,KAAA0G,GAAAqC,EAAA,GAAAhF,KAAoDyxB,EAAApD,EAAAxhB,QAAAX,KAAgCD,IACpFqlB,EAAAtsB,EAAAiH,EAAA0lB,EAAA11B,EAAAoyB,EAAAqD,GAAAD,EAAA/0B,MAAAuP,OAAAwlB,EAAA/0B,MASA,OADAsI,GAAA5E,OAAA6L,EACAjH,MzGmqMM,SAASzJ,EAAQD,EAASM,G0GrsMhC,YACA,IAAAg2B,GAAAh2B,EAAA,IACA61B,EAAA71B,EAAA,IACA+S,EAAA/S,EAAA,GACAgyB,EAAAhyB,EAAA,GAMAL,GAAAD,QAAAM,EAAA,IAAAiG,MAAA,iBAAAgK,EAAAgE,GACAnU,KAAAoQ,GAAA8hB,EAAA/hB,GACAnQ,KAAAqQ,GAAA,EACArQ,KAAAm2B,GAAAhiB,GAEC,WACD,GAAAlN,GAAAjH,KAAAoQ,GACA+D,EAAAnU,KAAAm2B,GACA5lB,EAAAvQ,KAAAqQ,IACA,QAAApJ,GAAAsJ,GAAAtJ,EAAAvC,QACA1E,KAAAoQ,GAAA/L,OACA0xB,EAAA,IAEA,QAAA5hB,EAAA4hB,EAAA,EAAAxlB,GACA,UAAA4D,EAAA4hB,EAAA,EAAA9uB,EAAAsJ,IACAwlB,EAAA,GAAAxlB,EAAAtJ,EAAAsJ,MACC,UAGD0C,EAAAmjB,UAAAnjB,EAAA9M,MAEA+vB,EAAA,QACAA,EAAA,UACAA,EAAA,Y1G2sMM,SAASr2B,EAAQD,EAASM,G2G3uMhC,GAAA8C,GAAA9C,EAAA,EAEA8C,KAAAY,EAAA,UAA8BiuB,UAAA3xB,EAAA,O3GkvMxB,SAASL,EAAQD,EAASM,G4GpvMhC,GAAA8C,GAAA9C,EAAA,EAEA8C,KAAAY,EAAA,UACAoM,MAAA,SAAAqmB,GACA,MAAAA,U5G6vMM,SAASx2B,EAAQD,EAASM,G6GjwMhC,GAAA8C,GAAA9C,EAAA,EAEA8C,KAAAY,EAAAZ,EAAAQ,EAAA,UAA0CsuB,OAAA5xB,EAAA,O7GwwMpC,SAASL,EAAQD,EAASM,G8G3wMhC,GAAA8C,GAAA9C,EAAA,EAEA8C,KAAAY,EAAAZ,EAAAQ,GAAAtD,EAAA,aAAuEa,eAAAb,EAAA,IAAA2G,K9GixMjE,SAAShH,EAAQD,EAASM,G+GlxMhC,GAAAozB,GAAApzB,EAAA,IACA8J,EAAA9J,EAAA,GAEAA,GAAA,sBACA,gBAAAwF,GACA,MAAAsE,GAAAspB,EAAA5tB,Q/G2xMM,SAAS7F,EAAQD,EAASM,GgHhyMhC,GAAA8C,GAAA9C,EAAA,GACAqS,EAAArS,EAAA,IACA4G,EAAA5G,EAAA,GACAo2B,GAAAp2B,EAAA,GAAA+xB,aAAmDttB,MACnD4xB,EAAA3xB,SAAAD,KAEA3B,KAAAY,EAAAZ,EAAAQ,GAAAtD,EAAA,eACAo2B,EAAA,gBACC,WACD3xB,MAAA,SAAAP,EAAAoyB,EAAAC,GACA,GAAApkB,GAAAE,EAAAnO,GACAsyB,EAAA5vB,EAAA2vB,EACA,OAAAH,KAAAjkB,EAAAmkB,EAAAE,GAAAH,EAAAh2B,KAAA8R,EAAAmkB,EAAAE,OhHyyMM,SAAS72B,EAAQD,EAASM,GiHrzMhC,GAAA8C,GAAA9C,EAAA,GACAuU,EAAAvU,EAAA,OAEA8C,KAAAY,EAAA,UACA+Q,QAAA,SAAAjP,GACA,MAAA+O,GAAA/O,OjH8zMM,SAAS7F,EAAQD","file":"mdl-ext.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"mdl-ext\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mdl-ext\"] = factory();\n\telse\n\t\troot[\"mdl-ext\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"mdl-ext\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mdl-ext\"] = factory();\n\telse\n\t\troot[\"mdl-ext\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(113);\n\tmodule.exports = __webpack_require__(53);\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tvar core = module.exports = {version: '2.4.0'};\n\tif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t  value: true\n\t});\n\tvar VK_TAB = 9;\n\tvar VK_ENTER = 13;\n\tvar VK_ESC = 27;\n\tvar VK_SPACE = 32;\n\tvar VK_PAGE_UP = 33;\n\tvar VK_PAGE_DOWN = 34;\n\tvar VK_END = 35;\n\tvar VK_HOME = 36;\n\tvar VK_ARROW_LEFT = 37;\n\tvar VK_ARROW_UP = 38;\n\tvar VK_ARROW_RIGHT = 39;\n\tvar VK_ARROW_DOWN = 40;\n\t\n\tvar ARIA_EXPANDED = 'aria-expanded';\n\tvar ARIA_HIDDEN = 'aria-hidden';\n\tvar ARIA_MULTISELECTABLE = 'aria-multiselectable';\n\tvar ARIA_SELECTED = 'aria-selected';\n\t\n\tvar IS_DIRTY = 'is-dirty';\n\tvar IS_DISABLED = 'is-disabled';\n\tvar IS_EXPANDED = 'is-expanded';\n\tvar IS_FOCUSED = 'is-focused';\n\tvar IS_INVALID = 'is-invalid';\n\tvar IS_UPGRADED = 'is-upgraded';\n\tvar DATA_UPGRADED = 'data-upgraded';\n\t\n\tvar MDL_RIPPLE = 'mdl-ripple';\n\tvar MDL_RIPPLE_COMPONENT = 'MaterialRipple';\n\tvar MDL_RIPPLE_EFFECT = 'mdl-js-ripple-effect';\n\tvar MDL_RIPPLE_EFFECT_IGNORE_EVENTS = 'mdl-js-ripple-effect--ignore-events';\n\t\n\texports.VK_TAB = VK_TAB;\n\texports.VK_ENTER = VK_ENTER;\n\texports.VK_ESC = VK_ESC;\n\texports.VK_SPACE = VK_SPACE;\n\texports.VK_PAGE_UP = VK_PAGE_UP;\n\texports.VK_PAGE_DOWN = VK_PAGE_DOWN;\n\texports.VK_END = VK_END;\n\texports.VK_HOME = VK_HOME;\n\texports.VK_ARROW_LEFT = VK_ARROW_LEFT;\n\texports.VK_ARROW_UP = VK_ARROW_UP;\n\texports.VK_ARROW_RIGHT = VK_ARROW_RIGHT;\n\texports.VK_ARROW_DOWN = VK_ARROW_DOWN;\n\texports.ARIA_EXPANDED = ARIA_EXPANDED;\n\texports.ARIA_HIDDEN = ARIA_HIDDEN;\n\texports.ARIA_MULTISELECTABLE = ARIA_MULTISELECTABLE;\n\texports.ARIA_SELECTED = ARIA_SELECTED;\n\texports.IS_DIRTY = IS_DIRTY;\n\texports.IS_DISABLED = IS_DISABLED;\n\texports.IS_EXPANDED = IS_EXPANDED;\n\texports.IS_FOCUSED = IS_FOCUSED;\n\texports.IS_INVALID = IS_INVALID;\n\texports.IS_UPGRADED = IS_UPGRADED;\n\texports.DATA_UPGRADED = DATA_UPGRADED;\n\texports.MDL_RIPPLE = MDL_RIPPLE;\n\texports.MDL_RIPPLE_COMPONENT = MDL_RIPPLE_COMPONENT;\n\texports.MDL_RIPPLE_EFFECT = MDL_RIPPLE_EFFECT;\n\texports.MDL_RIPPLE_EFFECT_IGNORE_EVENTS = MDL_RIPPLE_EFFECT_IGNORE_EVENTS;\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global    = __webpack_require__(5)\n\t  , core      = __webpack_require__(1)\n\t  , ctx       = __webpack_require__(37)\n\t  , hide      = __webpack_require__(11)\n\t  , PROTOTYPE = 'prototype';\n\t\n\tvar $export = function(type, name, source){\n\t  var IS_FORCED = type & $export.F\n\t    , IS_GLOBAL = type & $export.G\n\t    , IS_STATIC = type & $export.S\n\t    , IS_PROTO  = type & $export.P\n\t    , IS_BIND   = type & $export.B\n\t    , IS_WRAP   = type & $export.W\n\t    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})\n\t    , expProto  = exports[PROTOTYPE]\n\t    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n\t    , key, own, out;\n\t  if(IS_GLOBAL)source = name;\n\t  for(key in source){\n\t    // contains in native\n\t    own = !IS_FORCED && target && target[key] !== undefined;\n\t    if(own && key in exports)continue;\n\t    // export native or passed\n\t    out = own ? target[key] : source[key];\n\t    // prevent global pollution for namespaces\n\t    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n\t    // bind timers to global for call from export context\n\t    : IS_BIND && own ? ctx(out, global)\n\t    // wrap global constructors for prevent change them in library\n\t    : IS_WRAP && target[key] == out ? (function(C){\n\t      var F = function(a, b, c){\n\t        if(this instanceof C){\n\t          switch(arguments.length){\n\t            case 0: return new C;\n\t            case 1: return new C(a);\n\t            case 2: return new C(a, b);\n\t          } return new C(a, b, c);\n\t        } return C.apply(this, arguments);\n\t      };\n\t      F[PROTOTYPE] = C[PROTOTYPE];\n\t      return F;\n\t    // make static versions for prototype methods\n\t    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n\t    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n\t    if(IS_PROTO){\n\t      (exports.virtual || (exports.virtual = {}))[key] = out;\n\t      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n\t      if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);\n\t    }\n\t  }\n\t};\n\t// type bitmap\n\t$export.F = 1;   // forced\n\t$export.G = 2;   // global\n\t$export.S = 4;   // static\n\t$export.P = 8;   // proto\n\t$export.B = 16;  // bind\n\t$export.W = 32;  // wrap\n\t$export.U = 64;  // safe\n\t$export.R = 128; // real proto method for `library` \n\tmodule.exports = $export;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar store      = __webpack_require__(44)('wks')\n\t  , uid        = __webpack_require__(46)\n\t  , Symbol     = __webpack_require__(5).Symbol\n\t  , USE_SYMBOL = typeof Symbol == 'function';\n\t\n\tvar $exports = module.exports = function(name){\n\t  return store[name] || (store[name] =\n\t    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n\t};\n\t\n\t$exports.store = store;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\t// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\tvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n\t  ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\n\tif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar isObject = __webpack_require__(17);\n\tmodule.exports = function(it){\n\t  if(!isObject(it))throw TypeError(it + ' is not an object!');\n\t  return it;\n\t};\n\n/***/ },\n/* 7 */\n/***/ function(module, exports) {\n\n\tmodule.exports = {};\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _from = __webpack_require__(60);\n\t\n\tvar _from2 = _interopRequireDefault(_from);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (arr) {\n\t  if (Array.isArray(arr)) {\n\t    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n\t      arr2[i] = arr[i];\n\t    }\n\t\n\t    return arr2;\n\t  } else {\n\t    return (0, _from2.default)(arr);\n\t  }\n\t};\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Thank's IE8 for his funny defineProperty\n\tmodule.exports = !__webpack_require__(10)(function(){\n\t  return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n\t});\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(exec){\n\t  try {\n\t    return !!exec();\n\t  } catch(e){\n\t    return true;\n\t  }\n\t};\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar dP         = __webpack_require__(12)\n\t  , createDesc = __webpack_require__(25);\n\tmodule.exports = __webpack_require__(9) ? function(object, key, value){\n\t  return dP.f(object, key, createDesc(1, value));\n\t} : function(object, key, value){\n\t  object[key] = value;\n\t  return object;\n\t};\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar anObject       = __webpack_require__(6)\n\t  , IE8_DOM_DEFINE = __webpack_require__(82)\n\t  , toPrimitive    = __webpack_require__(101)\n\t  , dP             = Object.defineProperty;\n\t\n\texports.f = __webpack_require__(9) ? Object.defineProperty : function defineProperty(O, P, Attributes){\n\t  anObject(O);\n\t  P = toPrimitive(P, true);\n\t  anObject(Attributes);\n\t  if(IE8_DOM_DEFINE)try {\n\t    return dP(O, P, Attributes);\n\t  } catch(e){ /* empty */ }\n\t  if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n\t  if('value' in Attributes)O[P] = Attributes.value;\n\t  return O;\n\t};\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t  value: true\n\t});\n\t\n\tvar _apply = __webpack_require__(66);\n\t\n\tvar _apply2 = _interopRequireDefault(_apply);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * Since some events can fire at a high rate, the event handler should be limited to execute computationally\n\t * expensive operations, such as DOM modifications, inside a single rendered frame.\n\t * When listening to e.g. scroll and resize events, the browser tends to fire off more events per\n\t * second than are actually useful. For instance, if your event listener sets some element positions, then it\n\t * is possible for those positions to be updated multiple times in a single rendered frame. In this case, all of\n\t * the layout calculations triggered by setting the elements' positions will be wasted except for the one time that\n\t * it runs immediately prior to the browser rendering the updated layout to the screen.\n\t * To avoid wasting cycles, we can use requestAnimationFrame to only run the event listener once just before the page\n\t * is rendered to the screen.\n\t * *\n\t * @param callback the function to throttle\n\t * @param context  optional context of this, default to global\n\t * @return {function(...[*])}\n\t */\n\tvar fullThrottle = function fullThrottle(callback, context) {\n\t\n\t  if (!context) {\n\t    context = undefined || window;\n\t  }\n\t\n\t  var throttling = false;\n\t\n\t  return function () {\n\t    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t      args[_key] = arguments[_key];\n\t    }\n\t\n\t    if (!throttling) {\n\t      throttling = true;\n\t      window.requestAnimationFrame(function () {\n\t        throttling = false;\n\t        return (0, _apply2.default)(callback, context, args);\n\t      });\n\t    }\n\t  };\n\t};\n\t\n\texports.default = fullThrottle;\n\tmodule.exports = exports[\"default\"];\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t/**\n\t * Converts a JSON string to object\n\t * @param jsonString\n\t * @param source\n\t */\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t  value: true\n\t});\n\texports.jsonStringToObject = undefined;\n\t\n\tvar _assign = __webpack_require__(33);\n\t\n\tvar _assign2 = _interopRequireDefault(_assign);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar jsonStringToObject = function jsonStringToObject(jsonString) {\n\t  var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t\n\t  var s = jsonString.replace(/'/g, '\"');\n\t  try {\n\t    return (0, _assign2.default)(source, JSON.parse(s));\n\t  } catch (e) {\n\t    throw new Error('Failed to parse json string: ' + s + '. Error: ' + e.message);\n\t  }\n\t};\n\t\n\texports.jsonStringToObject = jsonStringToObject;\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t *      http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/**\n\t * A javascript utility for conditionally creating a list of strings.\n\t * The function takes any number of arguments which can be a string or object.\n\t * Inspired by (but not copied from) JedWatson/classnames, https://github.com/JedWatson/classnames\n\t *\n\t * @param  {*} args the strings and/or objects to\n\t * @return {Array} a list of strings\n\t * @example\n\t * // Returns ['foo', 'bar', 'baz', 'quux']\n\t * stringList(', ', 'foo', { bar: true, duck: false }, 'baz', { quux: true });\n\t * @example see the tests for more examples\n\t */\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t  value: true\n\t});\n\texports.stringList = exports.randomString = exports.joinStrings = undefined;\n\t\n\tvar _keys = __webpack_require__(65);\n\t\n\tvar _keys2 = _interopRequireDefault(_keys);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar stringList = function stringList() {\n\t  for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t    args[_key] = arguments[_key];\n\t  }\n\t\n\t  var isString = function isString(str) {\n\t    return str != null && typeof str === 'string';\n\t  };\n\t\n\t  var flatten = function flatten(list) {\n\t    return list.reduce(function (a, b) {\n\t      return a.concat(Array.isArray(b) ? flatten(b) : b);\n\t    }, []);\n\t  };\n\t\n\t  var objectToStrings = function objectToStrings(arg) {\n\t    return (0, _keys2.default)(arg).filter(function (key) {\n\t      return arg[key];\n\t    }).map(function (key) {\n\t      return key;\n\t    });\n\t  };\n\t\n\t  return args.filter(function (arg) {\n\t    return !!arg;\n\t  }).map(function (arg) {\n\t    return isString(arg) ? arg : objectToStrings(arg);\n\t  }).reduce(function (result, arg) {\n\t    return result.concat(Array.isArray(arg) ? flatten(arg) : arg);\n\t  }, []);\n\t};\n\t\n\t/**\n\t * A simple javascript utility for conditionally joining strings together.\n\t * The function takes a delimiter string and any number of arguments which can be a string or object.\n\t *\n\t * @param delimiter delimiter to separate joined strings\n\t * @param  {*} args the strings and/or objects to join\n\t * @return {String} the joined strings\n\t * @example\n\t * // Returns 'foo, bar, baz, quux'\n\t * joinStrings(', ', 'foo', { bar: true, duck: false }, 'baz', { quux: true });\n\t * @example see the tests for more examples\n\t */\n\tvar joinStrings = function joinStrings() {\n\t  for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n\t    args[_key2 - 1] = arguments[_key2];\n\t  }\n\t\n\t  var delimiter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' ';\n\t  return stringList.apply(undefined, args).join(delimiter);\n\t};\n\t\n\t/**\n\t * Generates a random string with a given length\n\t * @param n {Integer} length of generated string\n\t * @see http://stackoverflow.com/questions/1349404/generate-random-string-characters-in-javascript\n\t * @return {String} the random string\n\t * @example\n\t * // Returns e.g. 'pd781w0y'\n\t * randomString(8);\n\t * @example see the tests for more examples\n\t */\n\tvar randomString = function randomString() {\n\t  var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 12;\n\t  return Array(n + 1).join((Math.random().toString(36) + '00000000000000000').slice(2, 18)).slice(0, n);\n\t};\n\t\n\texports.joinStrings = joinStrings;\n\texports.randomString = randomString;\n\texports.stringList = stringList;\n\n/***/ },\n/* 16 */\n/***/ function(module, exports) {\n\n\tvar hasOwnProperty = {}.hasOwnProperty;\n\tmodule.exports = function(it, key){\n\t  return hasOwnProperty.call(it, key);\n\t};\n\n/***/ },\n/* 17 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t  return typeof it === 'object' ? it !== null : typeof it === 'function';\n\t};\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.14 / 15.2.3.14 Object.keys(O)\n\tvar $keys       = __webpack_require__(95)\n\t  , enumBugKeys = __webpack_require__(39);\n\t\n\tmodule.exports = Object.keys || function keys(O){\n\t  return $keys(O, enumBugKeys);\n\t};\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// to indexed object, toObject with fallback for non-array-like ES3 strings\n\tvar IObject = __webpack_require__(40)\n\t  , defined = __webpack_require__(24);\n\tmodule.exports = function(it){\n\t  return IObject(defined(it));\n\t};\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.13 ToObject(argument)\n\tvar defined = __webpack_require__(24);\n\tmodule.exports = function(it){\n\t  return Object(defined(it));\n\t};\n\n/***/ },\n/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t  value: true\n\t});\n\texports.tether = exports.removeChildElements = exports.moveElements = exports.isRectInsideWindowViewport = exports.isFocusable = exports.getScrollParents = exports.getParentElements = exports.getWindowViewport = undefined;\n\t\n\tvar _isNan = __webpack_require__(62);\n\t\n\tvar _isNan2 = _interopRequireDefault(_isNan);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * Remove child element(s)\n\t * element.innerHTNL = '' has a performance penality!\n\t * @see http://jsperf.com/empty-an-element/16\n\t * @see http://jsperf.com/force-reflow\n\t * @param element\n\t * @param forceReflow\n\t */\n\tvar removeChildElements = function removeChildElements(element) {\n\t  var forceReflow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\t\n\t\n\t  // See: http://jsperf.com/empty-an-element/16\n\t  while (element.lastChild) {\n\t    element.removeChild(element.lastChild);\n\t  }\n\t  if (forceReflow) {\n\t    // See: http://jsperf.com/force-reflow\n\t    var d = element.style.display;\n\t\n\t    element.style.display = 'none';\n\t    element.style.display = d;\n\t  }\n\t};\n\t\n\t/**\n\t * Moves child elements from a DOM node to another dom node.\n\t * @param source {HTMLElement}\n\t * @param target {HTMLElement} If the target parameter is ommited, a document fragment is created\n\t * @return {HTMLElement} The target node\n\t *\n\t * @example\n\t * // Moves child elements from a DOM node to another dom node.\n\t * moveElements(source, destination);\n\t *\n\t * @example\n\t * // If the second parameter is ommited, a document fragment is created:\n\t * let fragment = moveElements(source);\n\t *\n\t * @See: https://github.com/webmodules/dom-move\n\t */\n\tvar moveElements = function moveElements(source, target) {\n\t  if (!target) {\n\t    target = source.ownerDocument.createDocumentFragment();\n\t  }\n\t  while (source.firstChild) {\n\t    target.appendChild(source.firstChild);\n\t  }\n\t  return target;\n\t};\n\t\n\t/**\n\t * Get the browser viewport dimensions\n\t * @see http://stackoverflow.com/questions/1248081/get-the-browser-viewport-dimensions-with-javascript\n\t * @return {{windowWidth: number, windowHeight: number}}\n\t */\n\tvar getWindowViewport = function getWindowViewport() {\n\t  return {\n\t    viewportWidth: Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0),\n\t    viewportHeight: Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0)\n\t  };\n\t};\n\t\n\t/**\n\t * Check whether an element is in the window viewport\n\t * @see http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport/\n\t * @param top\n\t * @param left\n\t * @param bottom\n\t * @param right\n\t * @return {boolean} true if rectangle is inside window viewport, otherwise false\n\t */\n\tvar isRectInsideWindowViewport = function isRectInsideWindowViewport(_ref) {\n\t  var top = _ref.top,\n\t      left = _ref.left,\n\t      bottom = _ref.bottom,\n\t      right = _ref.right;\n\t\n\t  var _getWindowViewport = getWindowViewport(),\n\t      viewportWidth = _getWindowViewport.viewportWidth,\n\t      viewportHeight = _getWindowViewport.viewportHeight;\n\t\n\t  return top >= 0 && left >= 0 && bottom <= viewportHeight && right <= viewportWidth;\n\t};\n\t\n\t/**\n\t * Get a list of parent elements that can possibly scroll\n\t * @param el the element to get parents for\n\t * @returns {Array}\n\t */\n\tvar getScrollParents = function getScrollParents(el) {\n\t  var elements = [];\n\t\n\t  /*\n\t  for (el = el.parentNode; el; el = el.parentNode) {\n\t    const cs = window.getComputedStyle(el);\n\t    if(!(cs.overflowY === 'hidden' && cs.overflowX === 'hidden')) {\n\t      elements.unshift(el);\n\t    }\n\t    if(el === document.body) {\n\t      break;\n\t    }\n\t  }\n\t  */\n\t\n\t  var element = el.parentNode;\n\t  while (element) {\n\t    var cs = window.getComputedStyle(element);\n\t    if (!(cs.overflowY === 'hidden' && cs.overflowX === 'hidden')) {\n\t      elements.unshift(element);\n\t    }\n\t    if (element === document.body) {\n\t      break;\n\t    }\n\t    element = element.parentNode;\n\t  }\n\t\n\t  return elements;\n\t};\n\t\n\t/**\n\t * Get a list of parent elements, from a given element to a given element\n\t * @param {HTMLElement} from\n\t * @param {HTMLElement} to\n\t * @return {Array<HTMLElement>} the parent elements, not including from and to\n\t */\n\tvar getParentElements = function getParentElements(from, to) {\n\t  var result = [];\n\t  var element = from.parentNode;\n\t  while (element) {\n\t    if (element === to) {\n\t      break;\n\t    }\n\t    result.unshift(element);\n\t    element = element.parentNode;\n\t  }\n\t  return result;\n\t};\n\t\n\t/**\n\t * Position element next to button\n\t *\n\t * Positioning strategy\n\t *  1. element.height > viewport.height\n\t *     let element.height = viewport.heigt\n\t *     let element.overflow-y = auto\n\t *  2. element.width > viewport.width\n\t *     let element.width = viewport.width\n\t *  3. position element below button, align left edge of element with button left\n\t *       done if element inside viewport\n\t *  4. position element below button, align right edge of element with button right\n\t *       done if element inside viewport\n\t *  5. positions element above button, aligns left edge of element with button left\n\t *       done if element inside viewport\n\t *  6. position element above the control element, aligned to its right.\n\t *       done if element inside viewport\n\t *  7. position element at button right hand side, aligns element top with button top\n\t *       done if element inside viewport\n\t *  8. position element at button left hand side, aligns element top with button top\n\t *       done if element inside viewport\n\t *  9. position element inside viewport\n\t *     1. position element at viewport bottom\n\t *     2. position element at button right hand side\n\t *        done if element inside viewport\n\t *     3. position element at button left hand side\n\t *       done if element inside viewport\n\t *     4. position element at viewport right\n\t * 10. done\n\t *\n\t */\n\tvar tether = function tether(controlledBy, element) {\n\t  var controlRect = controlledBy.getBoundingClientRect();\n\t\n\t  // 1. will element height fit inside window viewport?\n\t\n\t  var _getWindowViewport2 = getWindowViewport(),\n\t      viewportWidth = _getWindowViewport2.viewportWidth,\n\t      viewportHeight = _getWindowViewport2.viewportHeight;\n\t\n\t  element.style.height = 'auto';\n\t  //element.style.overflowY = 'hidden';\n\t  if (element.offsetHeight > viewportHeight) {\n\t    element.style.height = viewportHeight + 'px';\n\t    element.style.overflowY = 'auto';\n\t  }\n\t\n\t  // 2. will element width fit inside window viewport?\n\t  element.style.width = 'auto';\n\t  if (element.offsetWidth > viewportWidth) {\n\t    element.style.width = viewportWidth + 'px';\n\t  }\n\t\n\t  var elementRect = element.getBoundingClientRect();\n\t\n\t  // element to control distance\n\t  var dy = controlRect.top - elementRect.top;\n\t  var dx = controlRect.left - elementRect.left;\n\t\n\t  // element rect, window coordinates relative to top,left of control\n\t  var top = elementRect.top + dy;\n\t  var left = elementRect.left + dx;\n\t  var bottom = top + elementRect.height;\n\t  var right = left + elementRect.width;\n\t\n\t  // Position relative to control\n\t  var ddy = dy;\n\t  var ddx = dx;\n\t\n\t  if (isRectInsideWindowViewport({\n\t    top: top + controlRect.height,\n\t    left: left,\n\t    bottom: bottom + controlRect.height,\n\t    right: right\n\t  })) {\n\t    // 3 position element below the control element, aligned to its left\n\t    ddy = controlRect.height + dy;\n\t    //console.log('***** 3');\n\t  } else if (isRectInsideWindowViewport({\n\t    top: top + controlRect.height,\n\t    left: left + controlRect.width - elementRect.width,\n\t    bottom: bottom + controlRect.height,\n\t    right: left + controlRect.width\n\t  })) {\n\t    // 4 position element below the control element, aligned to its right\n\t    ddy = controlRect.height + dy;\n\t    ddx = dx + controlRect.width - elementRect.width;\n\t    //console.log('***** 4');\n\t  } else if (isRectInsideWindowViewport({\n\t    top: top - elementRect.height,\n\t    left: left,\n\t    bottom: bottom - elementRect.height,\n\t    right: right\n\t  })) {\n\t    // 5. position element above the control element, aligned to its left.\n\t    ddy = dy - elementRect.height;\n\t    //console.log('***** 5');\n\t  } else if (isRectInsideWindowViewport({\n\t    top: top - elementRect.height,\n\t    left: left + controlRect.width - elementRect.width,\n\t    bottom: bottom - elementRect.height,\n\t    right: left + controlRect.width\n\t  })) {\n\t    // 6. position element above the control element, aligned to its right.\n\t    ddy = dy - elementRect.height;\n\t    ddx = dx + controlRect.width - elementRect.width;\n\t    //console.log('***** 6');\n\t  } else if (isRectInsideWindowViewport({\n\t    top: top,\n\t    left: left + controlRect.width,\n\t    bottom: bottom,\n\t    right: right + controlRect.width\n\t  })) {\n\t    // 7. position element at button right hand side\n\t    ddx = controlRect.width + dx;\n\t    //console.log('***** 7');\n\t  } else if (isRectInsideWindowViewport({\n\t    top: top,\n\t    left: left - controlRect.width,\n\t    bottom: bottom,\n\t    right: right - controlRect.width\n\t  })) {\n\t    // 8. position element at button left hand side\n\t    ddx = dx - elementRect.width;\n\t    //console.log('***** 8');\n\t  } else {\n\t    // 9. position element inside viewport, near controlrect if possible\n\t    //console.log('***** 9');\n\t\n\t    // 9.1 position element near controlrect bottom\n\t    ddy = dy - bottom + viewportHeight;\n\t    if (top + controlRect.height >= 0 && bottom + controlRect.height <= viewportHeight) {\n\t      ddy = controlRect.height + dy;\n\t    } else if (top - elementRect.height >= 0 && bottom - elementRect.height <= viewportHeight) {\n\t      ddy = dy - elementRect.height;\n\t    }\n\t\n\t    if (left + elementRect.width + controlRect.width <= viewportWidth) {\n\t      // 9.2 Position element at button right hand side\n\t      ddx = controlRect.width + dx;\n\t      //console.log('***** 9.2');\n\t    } else if (left - elementRect.width >= 0) {\n\t      // 9.3 Position element at button left hand side\n\t      ddx = dx - elementRect.width;\n\t      //console.log('***** 9.3');\n\t    } else {\n\t      // 9.4 position element at (near) viewport right\n\t      var r = left + elementRect.width - viewportWidth;\n\t      ddx = dx - r;\n\t      //console.log('***** 9.4');\n\t    }\n\t  }\n\t\n\t  // 10. done\n\t  element.style.top = element.offsetTop + ddy + 'px';\n\t  element.style.left = element.offsetLeft + ddx + 'px';\n\t  //console.log('***** 10. done');\n\t};\n\t\n\t/**\n\t * Check if the given element can receive focus\n\t * @param {HTMLElement} element the element to check\n\t * @return {boolean} true if the element is focusable, otherwise false\n\t */\n\tvar isFocusable = function isFocusable(element) {\n\t  // https://github.com/stephenmathieson/is-focusable/blob/master/index.js\n\t  // http://stackoverflow.com/questions/1599660/which-html-elements-can-receive-focus\n\t\n\t  if (element.hasAttribute('tabindex')) {\n\t    var tabindex = element.getAttribute('tabindex');\n\t    if (!(0, _isNan2.default)(tabindex)) {\n\t      return parseInt(tabindex) > -1;\n\t    }\n\t  }\n\t\n\t  if (element.hasAttribute('contenteditable') && element.getAttribute('contenteditable') !== 'false') {\n\t    // https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-contenteditable\n\t    return true;\n\t  }\n\t\n\t  // natively focusable, but only when enabled\n\t  var selector = /input|select|textarea|button|details/i;\n\t  var name = element.nodeName;\n\t  if (selector.test(name)) {\n\t    return element.type.toLowerCase() !== 'hidden' && !element.disabled;\n\t  }\n\t\n\t  // anchors and area must have an href\n\t  if (name === 'A' || name === 'AREA') {\n\t    return !!element.href;\n\t  }\n\t\n\t  if (name === 'IFRAME') {\n\t    // Check visible iframe\n\t    var cs = window.getComputedStyle(element);\n\t    return cs.getPropertyValue('display').toLowerCase() !== 'none';\n\t  }\n\t\n\t  return false;\n\t};\n\t\n\t/**\n\t * Get a list of offset parents for given element\n\t * @see https://www.benpickles.com/articles/51-finding-a-dom-nodes-common-ancestor-using-javascript\n\t * @param el the element\n\t * @return {Array} a list of offset parents\n\t */\n\t/*\n\tconst offsetParents = (el) => {\n\t  const elements = [];\n\t  for (; el; el = el.offsetParent) {\n\t    elements.unshift(el);\n\t  }\n\t  if(!elements.find(e => e === document.body)) {\n\t    elements.unshift(document.body);\n\t  }\n\t  return elements;\n\t};\n\t*/\n\t\n\t/**\n\t * Finds the common offset ancestor of two DOM nodes\n\t * @see https://www.benpickles.com/articles/51-finding-a-dom-nodes-common-ancestor-using-javascript\n\t * @see https://gist.github.com/benpickles/4059636\n\t * @param a\n\t * @param b\n\t * @return {Element} The common offset ancestor of a and b\n\t */\n\t/*\n\tconst commonOffsetAncestor = (a, b) => {\n\t  const parentsA = offsetParents(a);\n\t  const parentsB = offsetParents(b);\n\t\n\t  for (let i = 0; i < parentsA.length; i++) {\n\t    if (parentsA[i] !== parentsB[i]) return parentsA[i-1];\n\t  }\n\t};\n\t*/\n\t\n\t/**\n\t * Calculate position relative to a target element\n\t * @see http://stackoverflow.com/questions/21064101/understanding-offsetwidth-clientwidth-scrollwidth-and-height-respectively\n\t * @param target\n\t * @param el\n\t * @return {{top: number, left: number}}\n\t */\n\t/*\n\tconst calcPositionRelativeToTarget = (target, el) => {\n\t  let top = 0;\n\t  let left = 0;\n\t\n\t  while(el) {\n\t    top += (el.offsetTop - el.scrollTop + el.clientTop) || 0;\n\t    left += (el.offsetLeft - el.scrollLeft + el.clientLeft) || 0;\n\t    el = el.offsetParent;\n\t\n\t    if(el === target) {\n\t      break;\n\t    }\n\t  }\n\t  return { top: top, left: left };\n\t};\n\t*/\n\t\n\texports.getWindowViewport = getWindowViewport;\n\texports.getParentElements = getParentElements;\n\texports.getScrollParents = getScrollParents;\n\texports.isFocusable = isFocusable;\n\texports.isRectInsideWindowViewport = isRectInsideWindowViewport;\n\texports.moveElements = moveElements;\n\texports.removeChildElements = removeChildElements;\n\texports.tether = tether;\n\n/***/ },\n/* 22 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\texports.default = function (instance, Constructor) {\n\t  if (!(instance instanceof Constructor)) {\n\t    throw new TypeError(\"Cannot call a class as a function\");\n\t  }\n\t};\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _defineProperty = __webpack_require__(63);\n\t\n\tvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function () {\n\t  function defineProperties(target, props) {\n\t    for (var i = 0; i < props.length; i++) {\n\t      var descriptor = props[i];\n\t      descriptor.enumerable = descriptor.enumerable || false;\n\t      descriptor.configurable = true;\n\t      if (\"value\" in descriptor) descriptor.writable = true;\n\t      (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n\t    }\n\t  }\n\t\n\t  return function (Constructor, protoProps, staticProps) {\n\t    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n\t    if (staticProps) defineProperties(Constructor, staticProps);\n\t    return Constructor;\n\t  };\n\t}();\n\n/***/ },\n/* 24 */\n/***/ function(module, exports) {\n\n\t// 7.2.1 RequireObjectCoercible(argument)\n\tmodule.exports = function(it){\n\t  if(it == undefined)throw TypeError(\"Can't call method on  \" + it);\n\t  return it;\n\t};\n\n/***/ },\n/* 25 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(bitmap, value){\n\t  return {\n\t    enumerable  : !(bitmap & 1),\n\t    configurable: !(bitmap & 2),\n\t    writable    : !(bitmap & 4),\n\t    value       : value\n\t  };\n\t};\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar shared = __webpack_require__(44)('keys')\n\t  , uid    = __webpack_require__(46);\n\tmodule.exports = function(key){\n\t  return shared[key] || (shared[key] = uid(key));\n\t};\n\n/***/ },\n/* 27 */\n/***/ function(module, exports) {\n\n\t// 7.1.4 ToInteger\n\tvar ceil  = Math.ceil\n\t  , floor = Math.floor;\n\tmodule.exports = function(it){\n\t  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n\t};\n\n/***/ },\n/* 28 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $at  = __webpack_require__(99)(true);\n\t\n\t// 21.1.3.27 String.prototype[@@iterator]()\n\t__webpack_require__(41)(String, 'String', function(iterated){\n\t  this._t = String(iterated); // target\n\t  this._i = 0;                // next index\n\t// 21.1.5.2.1 %StringIteratorPrototype%.next()\n\t}, function(){\n\t  var O     = this._t\n\t    , index = this._i\n\t    , point;\n\t  if(index >= O.length)return {value: undefined, done: true};\n\t  point = $at(O, index);\n\t  this._i += point.length;\n\t  return {value: point, done: false};\n\t});\n\n/***/ },\n/* 29 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t// See: http://robertpenner.com/easing/\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t  value: true\n\t});\n\tvar easeInOutQuad = function easeInOutQuad(t, b, c, d) {\n\t  t /= d / 2;\n\t  if (t < 1) return c / 2 * t * t + b;\n\t  t--;\n\t  return -c / 2 * (t * (t - 2) - 1) + b;\n\t};\n\t\n\tvar inOutQuintic = function inOutQuintic(t, b, c, d) {\n\t  var ts = (t /= d) * t;\n\t  var tc = ts * t;\n\t  return b + c * (6 * tc * ts + -15 * ts * ts + 10 * tc);\n\t};\n\t\n\texports.easeInOutQuad = easeInOutQuad;\n\texports.inOutQuintic = inOutQuintic;\n\n/***/ },\n/* 30 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t  value: true\n\t});\n\tvar MIN_INERVAL = 1000 / 60;\n\t\n\t/**\n\t * Trigger a callback at a given interval\n\t * @param interval defaults to 1000/60 ms\n\t * @return {function()} reference to start, stop, immediate and started\n\t */\n\t\n\tvar intervalFunction = function intervalFunction() {\n\t  var interval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MIN_INERVAL;\n\t\n\t\n\t  var lapse = interval < MIN_INERVAL ? MIN_INERVAL : interval;\n\t  var cb = undefined;\n\t  var next = null;\n\t  var timeElapsed = 0;\n\t\n\t  var execute = function execute() {\n\t    var f = cb(timeElapsed);\n\t    if (!f) {\n\t      cancel();\n\t    }\n\t  };\n\t\n\t  var cancel = function cancel() {\n\t    if (next) {\n\t      window.cancelAnimationFrame(next);\n\t    }\n\t    next = null;\n\t    timeElapsed = 0;\n\t  };\n\t\n\t  var _start = function _start() {\n\t    var timeStart = Date.now();\n\t\n\t    var loop = function loop(now) {\n\t      if (next) {\n\t        next = window.requestAnimationFrame(function () {\n\t          return loop(Date.now());\n\t        });\n\t\n\t        timeElapsed += now - timeStart;\n\t\n\t        if (timeElapsed >= lapse) {\n\t          execute();\n\t          if ((timeElapsed -= lapse) > lapse) {\n\t            // time elapsed - interval_ > interval_ , indicates inactivity\n\t            // Could be due to browser minimized, tab changed, screen saver started, computer sleep, and so on\n\t            timeElapsed = 0;\n\t          }\n\t        }\n\t        timeStart = now;\n\t      }\n\t    };\n\t\n\t    next = 1; // a truthy value for first loop\n\t    loop(timeStart);\n\t  };\n\t\n\t  return {\n\t    get started() {\n\t      return next != null;\n\t    },\n\t    get interval() {\n\t      return lapse;\n\t    },\n\t    set interval(value) {\n\t      lapse = value < MIN_INERVAL ? MIN_INERVAL : value;\n\t    },\n\t    start: function start(callback) {\n\t      if (typeof callback !== 'function') {\n\t        throw new TypeError('callback parameter must be a function');\n\t      }\n\t      cb = callback;\n\t      _start();\n\t    },\n\t    immediate: function immediate() {\n\t      if (!cb) {\n\t        throw new ReferenceError('callback parameter is not defined. Call start before immediate.');\n\t      }\n\t      execute();\n\t    },\n\t\n\t    stop: function stop() {\n\t      return cancel();\n\t    }\n\t  };\n\t};\n\t\n\texports.default = intervalFunction;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(69), __esModule: true };\n\n/***/ },\n/* 32 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(71), __esModule: true };\n\n/***/ },\n/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(73), __esModule: true };\n\n/***/ },\n/* 34 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t  if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n\t  return it;\n\t};\n\n/***/ },\n/* 35 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// getting tag from 19.1.3.6 Object.prototype.toString()\n\tvar cof = __webpack_require__(36)\n\t  , TAG = __webpack_require__(4)('toStringTag')\n\t  // ES3 wrong here\n\t  , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\t\n\t// fallback for IE11 Script Access Denied error\n\tvar tryGet = function(it, key){\n\t  try {\n\t    return it[key];\n\t  } catch(e){ /* empty */ }\n\t};\n\t\n\tmodule.exports = function(it){\n\t  var O, T, B;\n\t  return it === undefined ? 'Undefined' : it === null ? 'Null'\n\t    // @@toStringTag case\n\t    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n\t    // builtinTag case\n\t    : ARG ? cof(O)\n\t    // ES3 arguments fallback\n\t    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n\t};\n\n/***/ },\n/* 36 */\n/***/ function(module, exports) {\n\n\tvar toString = {}.toString;\n\t\n\tmodule.exports = function(it){\n\t  return toString.call(it).slice(8, -1);\n\t};\n\n/***/ },\n/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// optional / simple context binding\n\tvar aFunction = __webpack_require__(34);\n\tmodule.exports = function(fn, that, length){\n\t  aFunction(fn);\n\t  if(that === undefined)return fn;\n\t  switch(length){\n\t    case 1: return function(a){\n\t      return fn.call(that, a);\n\t    };\n\t    case 2: return function(a, b){\n\t      return fn.call(that, a, b);\n\t    };\n\t    case 3: return function(a, b, c){\n\t      return fn.call(that, a, b, c);\n\t    };\n\t  }\n\t  return function(/* ...args */){\n\t    return fn.apply(that, arguments);\n\t  };\n\t};\n\n/***/ },\n/* 38 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar isObject = __webpack_require__(17)\n\t  , document = __webpack_require__(5).document\n\t  // in old IE typeof document.createElement is 'object'\n\t  , is = isObject(document) && isObject(document.createElement);\n\tmodule.exports = function(it){\n\t  return is ? document.createElement(it) : {};\n\t};\n\n/***/ },\n/* 39 */\n/***/ function(module, exports) {\n\n\t// IE 8- don't enum bug keys\n\tmodule.exports = (\n\t  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n\t).split(',');\n\n/***/ },\n/* 40 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for non-array-like ES3 and non-enumerable old V8 strings\n\tvar cof = __webpack_require__(36);\n\tmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n\t  return cof(it) == 'String' ? it.split('') : Object(it);\n\t};\n\n/***/ },\n/* 41 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar LIBRARY        = __webpack_require__(89)\n\t  , $export        = __webpack_require__(3)\n\t  , redefine       = __webpack_require__(98)\n\t  , hide           = __webpack_require__(11)\n\t  , has            = __webpack_require__(16)\n\t  , Iterators      = __webpack_require__(7)\n\t  , $iterCreate    = __webpack_require__(86)\n\t  , setToStringTag = __webpack_require__(43)\n\t  , getPrototypeOf = __webpack_require__(94)\n\t  , ITERATOR       = __webpack_require__(4)('iterator')\n\t  , BUGGY          = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n\t  , FF_ITERATOR    = '@@iterator'\n\t  , KEYS           = 'keys'\n\t  , VALUES         = 'values';\n\t\n\tvar returnThis = function(){ return this; };\n\t\n\tmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n\t  $iterCreate(Constructor, NAME, next);\n\t  var getMethod = function(kind){\n\t    if(!BUGGY && kind in proto)return proto[kind];\n\t    switch(kind){\n\t      case KEYS: return function keys(){ return new Constructor(this, kind); };\n\t      case VALUES: return function values(){ return new Constructor(this, kind); };\n\t    } return function entries(){ return new Constructor(this, kind); };\n\t  };\n\t  var TAG        = NAME + ' Iterator'\n\t    , DEF_VALUES = DEFAULT == VALUES\n\t    , VALUES_BUG = false\n\t    , proto      = Base.prototype\n\t    , $native    = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n\t    , $default   = $native || getMethod(DEFAULT)\n\t    , $entries   = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined\n\t    , $anyNative = NAME == 'Array' ? proto.entries || $native : $native\n\t    , methods, key, IteratorPrototype;\n\t  // Fix native\n\t  if($anyNative){\n\t    IteratorPrototype = getPrototypeOf($anyNative.call(new Base));\n\t    if(IteratorPrototype !== Object.prototype){\n\t      // Set @@toStringTag to native iterators\n\t      setToStringTag(IteratorPrototype, TAG, true);\n\t      // fix for some old engines\n\t      if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n\t    }\n\t  }\n\t  // fix Array#{values, @@iterator}.name in V8 / FF\n\t  if(DEF_VALUES && $native && $native.name !== VALUES){\n\t    VALUES_BUG = true;\n\t    $default = function values(){ return $native.call(this); };\n\t  }\n\t  // Define iterator\n\t  if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n\t    hide(proto, ITERATOR, $default);\n\t  }\n\t  // Plug for library\n\t  Iterators[NAME] = $default;\n\t  Iterators[TAG]  = returnThis;\n\t  if(DEFAULT){\n\t    methods = {\n\t      values:  DEF_VALUES ? $default : getMethod(VALUES),\n\t      keys:    IS_SET     ? $default : getMethod(KEYS),\n\t      entries: $entries\n\t    };\n\t    if(FORCED)for(key in methods){\n\t      if(!(key in proto))redefine(proto, key, methods[key]);\n\t    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n\t  }\n\t  return methods;\n\t};\n\n/***/ },\n/* 42 */\n/***/ function(module, exports) {\n\n\texports.f = {}.propertyIsEnumerable;\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar def = __webpack_require__(12).f\n\t  , has = __webpack_require__(16)\n\t  , TAG = __webpack_require__(4)('toStringTag');\n\t\n\tmodule.exports = function(it, tag, stat){\n\t  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n\t};\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(5)\n\t  , SHARED = '__core-js_shared__'\n\t  , store  = global[SHARED] || (global[SHARED] = {});\n\tmodule.exports = function(key){\n\t  return store[key] || (store[key] = {});\n\t};\n\n/***/ },\n/* 45 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.15 ToLength\n\tvar toInteger = __webpack_require__(27)\n\t  , min       = Math.min;\n\tmodule.exports = function(it){\n\t  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n\t};\n\n/***/ },\n/* 46 */\n/***/ function(module, exports) {\n\n\tvar id = 0\n\t  , px = Math.random();\n\tmodule.exports = function(key){\n\t  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n\t};\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar classof   = __webpack_require__(35)\n\t  , ITERATOR  = __webpack_require__(4)('iterator')\n\t  , Iterators = __webpack_require__(7);\n\tmodule.exports = __webpack_require__(1).getIteratorMethod = function(it){\n\t  if(it != undefined)return it[ITERATOR]\n\t    || it['@@iterator']\n\t    || Iterators[classof(it)];\n\t};\n\n/***/ },\n/* 48 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(105);\n\tvar global        = __webpack_require__(5)\n\t  , hide          = __webpack_require__(11)\n\t  , Iterators     = __webpack_require__(7)\n\t  , TO_STRING_TAG = __webpack_require__(4)('toStringTag');\n\t\n\tfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n\t  var NAME       = collections[i]\n\t    , Collection = global[NAME]\n\t    , proto      = Collection && Collection.prototype;\n\t  if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n\t  Iterators[NAME] = Iterators.Array;\n\t}\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _toConsumableArray2 = __webpack_require__(8);\n\t\n\tvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\t\n\tvar _constants = __webpack_require__(2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t(function () {\n\t  'use strict';\n\t\n\t  var ACCORDION = 'mdlext-accordion';\n\t  var ACCORDION_VERTICAL = 'mdlext-accordion--vertical';\n\t  var ACCORDION_HORIZONTAL = 'mdlext-accordion--horizontal';\n\t  var PANEL = 'mdlext-accordion__panel';\n\t  var PANEL_ROLE = 'presentation';\n\t  var TAB = 'mdlext-accordion__tab';\n\t  var TAB_CAPTION = 'mdlext-accordion__tab__caption';\n\t  var TAB_ROLE = 'tab';\n\t  var TABPANEL = 'mdlext-accordion__tabpanel';\n\t  var TABPANEL_ROLE = 'tabpanel';\n\t  var RIPPLE_EFFECT = 'mdlext-js-ripple-effect';\n\t  var RIPPLE = 'mdlext-accordion__tab--ripple';\n\t  var ANIMATION_EFFECT = 'mdlext-js-animation-effect';\n\t  var ANIMATION = 'mdlext-accordion__tabpanel--animation';\n\t\n\t  /**\n\t   * @constructor\n\t   * @param {Element} element The element that will be upgraded.\n\t   */\n\t  var MaterialExtAccordion = function MaterialExtAccordion(element) {\n\t\n\t    // Stores the Accordion HTML element.\n\t    this.element_ = element;\n\t\n\t    // Initialize instance.\n\t    this.init();\n\t  };\n\t  window['MaterialExtAccordion'] = MaterialExtAccordion;\n\t\n\t  // Helpers\n\t  var accordionPanelElements = function accordionPanelElements(element) {\n\t    if (!element) {\n\t      return {\n\t        panel: null,\n\t        tab: null,\n\t        tabpanel: null\n\t      };\n\t    } else if (element.classList.contains(PANEL)) {\n\t      return {\n\t        panel: element,\n\t        tab: element.querySelector('.' + TAB),\n\t        tabpanel: element.querySelector('.' + TABPANEL)\n\t      };\n\t    } else {\n\t      return {\n\t        panel: element.parentNode,\n\t        tab: element.parentNode.querySelector('.' + TAB),\n\t        tabpanel: element.parentNode.querySelector('.' + TABPANEL)\n\t      };\n\t    }\n\t  };\n\t\n\t  // Private methods.\n\t\n\t  /**\n\t   * Handles custom command event, 'open', 'close', 'toggle' or upgrade\n\t   * @param event. A custom event\n\t   * @private\n\t   */\n\t  MaterialExtAccordion.prototype.commandHandler_ = function (event) {\n\t    event.preventDefault();\n\t    event.stopPropagation();\n\t\n\t    if (event && event.detail) {\n\t      this.command(event.detail);\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Dispatch toggle event\n\t   * @param {string} state\n\t   * @param {Element} tab\n\t   * @param {Element} tabpanel\n\t   * @private\n\t   */\n\t  MaterialExtAccordion.prototype.dispatchToggleEvent_ = function (state, tab, tabpanel) {\n\t    var ce = new CustomEvent('toggle', {\n\t      bubbles: true,\n\t      cancelable: true,\n\t      detail: { state: state, tab: tab, tabpanel: tabpanel }\n\t    });\n\t    this.element_.dispatchEvent(ce);\n\t  };\n\t\n\t  /**\n\t   * Open tab\n\t   * @param {Element} panel\n\t   * @param {Element} tab\n\t   * @param {Element} tabpanel\n\t   * @private\n\t   */\n\t  MaterialExtAccordion.prototype.openTab_ = function (panel, tab, tabpanel) {\n\t    panel.classList.add(_constants.IS_EXPANDED);\n\t    tab.setAttribute(_constants.ARIA_EXPANDED, 'true');\n\t    tabpanel.removeAttribute('hidden');\n\t    tabpanel.setAttribute(_constants.ARIA_HIDDEN, 'false');\n\t    this.dispatchToggleEvent_('open', tab, tabpanel);\n\t  };\n\t\n\t  /**\n\t   * Close tab\n\t   * @param {Element} panel\n\t   * @param {Element} tab\n\t   * @param {Element} tabpanel\n\t   * @private\n\t   */\n\t  MaterialExtAccordion.prototype.closeTab_ = function (panel, tab, tabpanel) {\n\t    panel.classList.remove(_constants.IS_EXPANDED);\n\t    tab.setAttribute(_constants.ARIA_EXPANDED, 'false');\n\t    tabpanel.setAttribute('hidden', '');\n\t    tabpanel.setAttribute(_constants.ARIA_HIDDEN, 'true');\n\t    this.dispatchToggleEvent_('close', tab, tabpanel);\n\t  };\n\t\n\t  /**\n\t   * Toggle tab\n\t   * @param {Element} panel\n\t   * @param {Element} tab\n\t   * @param {Element} tabpanel\n\t   * @private\n\t   */\n\t  MaterialExtAccordion.prototype.toggleTab_ = function (panel, tab, tabpanel) {\n\t    if (!(this.element_.hasAttribute('disabled') || tab.hasAttribute('disabled'))) {\n\t      if (tab.getAttribute(_constants.ARIA_EXPANDED).toLowerCase() === 'true') {\n\t        this.closeTab_(panel, tab, tabpanel);\n\t      } else {\n\t        if (this.element_.getAttribute(_constants.ARIA_MULTISELECTABLE).toLowerCase() !== 'true') {\n\t          this.closeTabs_();\n\t        }\n\t        this.openTab_(panel, tab, tabpanel);\n\t      }\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Open tabs\n\t   * @private\n\t   */\n\t  MaterialExtAccordion.prototype.openTabs_ = function () {\n\t    var _this = this;\n\t\n\t    if (this.element_.getAttribute(_constants.ARIA_MULTISELECTABLE).toLowerCase() === 'true') {\n\t      [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + ACCORDION + ' > .' + PANEL))).filter(function (panel) {\n\t        return !panel.classList.contains(_constants.IS_EXPANDED);\n\t      }).forEach(function (closedItem) {\n\t        var tab = closedItem.querySelector('.' + TAB);\n\t        if (!tab.hasAttribute('disabled')) {\n\t          _this.openTab_(closedItem, tab, closedItem.querySelector('.' + TABPANEL));\n\t        }\n\t      });\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Close tabs\n\t   * @private\n\t   */\n\t  MaterialExtAccordion.prototype.closeTabs_ = function () {\n\t    var _this2 = this;\n\t\n\t    [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + ACCORDION + ' > .' + PANEL + '.' + _constants.IS_EXPANDED))).forEach(function (panel) {\n\t      var tab = panel.querySelector('.' + TAB);\n\t      if (!tab.hasAttribute('disabled')) {\n\t        _this2.closeTab_(panel, tab, panel.querySelector('.' + TABPANEL));\n\t      }\n\t    });\n\t  };\n\t\n\t  // Public methods.\n\t\n\t  /**\n\t   * Upgrade an individual accordion tab\n\t   * @public\n\t   * @param {Element} tabElement The HTML element for the accordion panel.\n\t   */\n\t  MaterialExtAccordion.prototype.upgradeTab = function (tabElement) {\n\t    var _this3 = this;\n\t\n\t    var _accordionPanelElemen = accordionPanelElements(tabElement),\n\t        panel = _accordionPanelElemen.panel,\n\t        tab = _accordionPanelElemen.tab,\n\t        tabpanel = _accordionPanelElemen.tabpanel;\n\t\n\t    var disableTab = function disableTab() {\n\t      panel.classList.remove(_constants.IS_EXPANDED);\n\t      tab.setAttribute('tabindex', '-1');\n\t      tab.setAttribute(_constants.ARIA_EXPANDED, 'false');\n\t      tabpanel.setAttribute('hidden', '');\n\t      tabpanel.setAttribute(_constants.ARIA_HIDDEN, 'true');\n\t    };\n\t\n\t    var enableTab = function enableTab() {\n\t      if (!tab.hasAttribute(_constants.ARIA_EXPANDED)) {\n\t        tab.setAttribute(_constants.ARIA_EXPANDED, 'false');\n\t      }\n\t\n\t      tab.setAttribute('tabindex', '0');\n\t\n\t      if (tab.getAttribute(_constants.ARIA_EXPANDED).toLowerCase() === 'true') {\n\t        panel.classList.add(_constants.IS_EXPANDED);\n\t        tabpanel.removeAttribute('hidden');\n\t        tabpanel.setAttribute(_constants.ARIA_HIDDEN, 'false');\n\t      } else {\n\t        panel.classList.remove(_constants.IS_EXPANDED);\n\t        tabpanel.setAttribute('hidden', '');\n\t        tabpanel.setAttribute(_constants.ARIA_HIDDEN, 'true');\n\t      }\n\t    };\n\t\n\t    // In horizontal layout, caption must have a max-width defined to prevent pushing elements to the right of the caption out of view.\n\t    // In JsDom, offsetWidth and offsetHeight properties do not work, so this function is not testable.\n\t    /* istanbul ignore next */\n\t    var calcMaxTabCaptionWidth = function calcMaxTabCaptionWidth() {\n\t\n\t      var tabCaption = tab.querySelector('.' + TAB_CAPTION);\n\t      if (tabCaption !== null) {\n\t        var w = [].concat((0, _toConsumableArray3.default)(tab.children)).filter(function (el) {\n\t          return el.classList && !el.classList.contains(TAB_CAPTION);\n\t        }).reduce(function (v, el) {\n\t          return v + el.offsetWidth;\n\t        }, 0);\n\t\n\t        var maxWidth = tab.clientHeight - w;\n\t        if (maxWidth > 0) {\n\t          tabCaption.style['max-width'] = maxWidth + 'px';\n\t        }\n\t      }\n\t    };\n\t\n\t    var selectTab = function selectTab() {\n\t      if (!tab.hasAttribute(_constants.ARIA_SELECTED)) {\n\t        [].concat((0, _toConsumableArray3.default)(_this3.element_.querySelectorAll('.' + TAB + '[aria-selected=\"true\"]'))).forEach(function (selectedTab) {\n\t          return selectedTab.removeAttribute(_constants.ARIA_SELECTED);\n\t        });\n\t        tab.setAttribute(_constants.ARIA_SELECTED, 'true');\n\t      }\n\t    };\n\t\n\t    var tabClickHandler = function tabClickHandler() {\n\t      _this3.toggleTab_(panel, tab, tabpanel);\n\t      selectTab();\n\t    };\n\t\n\t    var tabFocusHandler = function tabFocusHandler() {\n\t      selectTab();\n\t    };\n\t\n\t    var tabpanelClickHandler = function tabpanelClickHandler() {\n\t      selectTab();\n\t    };\n\t\n\t    var tabpanelFocusHandler = function tabpanelFocusHandler() {\n\t      selectTab();\n\t    };\n\t\n\t    var tabKeydownHandler = function tabKeydownHandler(e) {\n\t\n\t      if (_this3.element_.hasAttribute('disabled')) {\n\t        return;\n\t      }\n\t\n\t      if (e.keyCode === _constants.VK_END || e.keyCode === _constants.VK_HOME || e.keyCode === _constants.VK_ARROW_UP || e.keyCode === _constants.VK_ARROW_LEFT || e.keyCode === _constants.VK_ARROW_DOWN || e.keyCode === _constants.VK_ARROW_RIGHT) {\n\t\n\t        var nextTab = null;\n\t        var keyCode = e.keyCode;\n\t\n\t        if (keyCode === _constants.VK_HOME) {\n\t          nextTab = _this3.element_.querySelector('.' + PANEL + ':first-child > .' + TAB);\n\t          if (nextTab && nextTab.hasAttribute('disabled')) {\n\t            nextTab = null;\n\t            keyCode = _constants.VK_ARROW_DOWN;\n\t          }\n\t        } else if (keyCode === _constants.VK_END) {\n\t          nextTab = _this3.element_.querySelector('.' + PANEL + ':last-child > .' + TAB);\n\t          if (nextTab && nextTab.hasAttribute('disabled')) {\n\t            nextTab = null;\n\t            keyCode = _constants.VK_ARROW_UP;\n\t          }\n\t        }\n\t\n\t        if (!nextTab) {\n\t          var nextPanel = panel;\n\t\n\t          do {\n\t            if (keyCode === _constants.VK_ARROW_UP || keyCode === _constants.VK_ARROW_LEFT) {\n\t              nextPanel = nextPanel.previousElementSibling;\n\t              if (!nextPanel) {\n\t                nextPanel = _this3.element_.querySelector('.' + PANEL + ':last-child');\n\t              }\n\t              if (nextPanel) {\n\t                nextTab = nextPanel.querySelector('.' + PANEL + ' > .' + TAB);\n\t              }\n\t            } else if (keyCode === _constants.VK_ARROW_DOWN || keyCode === _constants.VK_ARROW_RIGHT) {\n\t              nextPanel = nextPanel.nextElementSibling;\n\t              if (!nextPanel) {\n\t                nextPanel = _this3.element_.querySelector('.' + PANEL + ':first-child');\n\t              }\n\t              if (nextPanel) {\n\t                nextTab = nextPanel.querySelector('.' + PANEL + ' > .' + TAB);\n\t              }\n\t            }\n\t\n\t            if (nextTab && nextTab.hasAttribute('disabled')) {\n\t              nextTab = null;\n\t            } else {\n\t              break;\n\t            }\n\t          } while (nextPanel !== panel);\n\t        }\n\t\n\t        if (nextTab) {\n\t          e.preventDefault();\n\t          e.stopPropagation();\n\t          nextTab.focus();\n\t\n\t          // Workaround for JSDom testing:\n\t          // In JsDom 'element.focus()' does not trigger any focus event\n\t          if (!nextTab.hasAttribute(_constants.ARIA_SELECTED)) {\n\t\n\t            [].concat((0, _toConsumableArray3.default)(_this3.element_.querySelectorAll('.' + TAB + '[aria-selected=\"true\"]'))).forEach(function (selectedTab) {\n\t              return selectedTab.removeAttribute(_constants.ARIA_SELECTED);\n\t            });\n\t\n\t            nextTab.setAttribute(_constants.ARIA_SELECTED, 'true');\n\t          }\n\t        }\n\t      } else if (e.keyCode === _constants.VK_ENTER || e.keyCode === _constants.VK_SPACE) {\n\t        e.preventDefault();\n\t        e.stopPropagation();\n\t        _this3.toggleTab_(panel, tab, tabpanel);\n\t      }\n\t    };\n\t\n\t    if (tab === null) {\n\t      throw new Error('There must be a tab element for each accordion panel.');\n\t    }\n\t\n\t    if (tabpanel === null) {\n\t      throw new Error('There must be a tabpanel element for each accordion panel.');\n\t    }\n\t\n\t    panel.setAttribute('role', PANEL_ROLE);\n\t    tab.setAttribute('role', TAB_ROLE);\n\t    tabpanel.setAttribute('role', TABPANEL_ROLE);\n\t\n\t    if (tab.hasAttribute('disabled')) {\n\t      disableTab();\n\t    } else {\n\t      enableTab();\n\t    }\n\t\n\t    if (this.element_.classList.contains(ACCORDION_HORIZONTAL)) {\n\t      calcMaxTabCaptionWidth();\n\t    }\n\t\n\t    if (this.element_.classList.contains(RIPPLE_EFFECT)) {\n\t      tab.classList.add(RIPPLE);\n\t    }\n\t\n\t    if (this.element_.classList.contains(ANIMATION_EFFECT)) {\n\t      tabpanel.classList.add(ANIMATION);\n\t    }\n\t\n\t    // Remove listeners, just in case ...\n\t    tab.removeEventListener('click', tabClickHandler);\n\t    tab.removeEventListener('focus', tabFocusHandler);\n\t    tab.removeEventListener('keydown', tabKeydownHandler);\n\t    tabpanel.removeEventListener('click', tabpanelClickHandler);\n\t    tabpanel.removeEventListener('focus', tabpanelFocusHandler);\n\t\n\t    tab.addEventListener('click', tabClickHandler);\n\t    tab.addEventListener('focus', tabFocusHandler);\n\t    tab.addEventListener('keydown', tabKeydownHandler);\n\t    tabpanel.addEventListener('click', tabpanelClickHandler, true);\n\t    tabpanel.addEventListener('focus', tabpanelFocusHandler, true);\n\t  };\n\t  MaterialExtAccordion.prototype['upgradeTab'] = MaterialExtAccordion.prototype.upgradeTab;\n\t\n\t  /**\n\t   * Execute command\n\t   * @param detail\n\t   */\n\t  MaterialExtAccordion.prototype.command = function (detail) {\n\t    var _this4 = this;\n\t\n\t    var openTab = function openTab(tabElement) {\n\t\n\t      if (tabElement === undefined) {\n\t        _this4.openTabs_();\n\t      } else if (tabElement !== null) {\n\t        var _accordionPanelElemen2 = accordionPanelElements(tabElement),\n\t            panel = _accordionPanelElemen2.panel,\n\t            tab = _accordionPanelElemen2.tab,\n\t            tabpanel = _accordionPanelElemen2.tabpanel;\n\t\n\t        if (tab.getAttribute(_constants.ARIA_EXPANDED).toLowerCase() !== 'true') {\n\t          _this4.toggleTab_(panel, tab, tabpanel);\n\t        }\n\t      }\n\t    };\n\t\n\t    var closeTab = function closeTab(tabElement) {\n\t      if (tabElement === undefined) {\n\t        _this4.closeTabs_();\n\t      } else if (tabElement !== null) {\n\t        var _accordionPanelElemen3 = accordionPanelElements(tabElement),\n\t            panel = _accordionPanelElemen3.panel,\n\t            tab = _accordionPanelElemen3.tab,\n\t            tabpanel = _accordionPanelElemen3.tabpanel;\n\t\n\t        if (tab.getAttribute(_constants.ARIA_EXPANDED).toLowerCase() === 'true') {\n\t          _this4.toggleTab_(panel, tab, tabpanel);\n\t        }\n\t      }\n\t    };\n\t\n\t    var toggleTab = function toggleTab(tabElement) {\n\t      if (tabElement) {\n\t        var _accordionPanelElemen4 = accordionPanelElements(tabElement),\n\t            panel = _accordionPanelElemen4.panel,\n\t            tab = _accordionPanelElemen4.tab,\n\t            tabpanel = _accordionPanelElemen4.tabpanel;\n\t\n\t        _this4.toggleTab_(panel, tab, tabpanel);\n\t      }\n\t    };\n\t\n\t    if (detail && detail.action) {\n\t      var action = detail.action,\n\t          target = detail.target;\n\t\n\t\n\t      switch (action.toLowerCase()) {\n\t        case 'open':\n\t          openTab(target);\n\t          break;\n\t        case 'close':\n\t          closeTab(target);\n\t          break;\n\t        case 'toggle':\n\t          toggleTab(target);\n\t          break;\n\t        case 'upgrade':\n\t          if (target) {\n\t            this.upgradeTab(target);\n\t          }\n\t          break;\n\t        default:\n\t          throw new Error('Unknown action \"' + action + '\". Action must be one of \"open\", \"close\", \"toggle\" or \"upgrade\"');\n\t      }\n\t    }\n\t  };\n\t  MaterialExtAccordion.prototype['command'] = MaterialExtAccordion.prototype.command;\n\t\n\t  /**\n\t   * Initialize component\n\t   */\n\t  MaterialExtAccordion.prototype.init = function () {\n\t    var _this5 = this;\n\t\n\t    if (this.element_) {\n\t      // Do the init required for this component to work\n\t      if (!(this.element_.classList.contains(ACCORDION_HORIZONTAL) || this.element_.classList.contains(ACCORDION_VERTICAL))) {\n\t        throw new Error('Accordion must have one of the classes \"' + ACCORDION_HORIZONTAL + '\" or \"' + ACCORDION_VERTICAL + '\"');\n\t      }\n\t\n\t      this.element_.setAttribute('role', 'tablist');\n\t\n\t      if (!this.element_.hasAttribute(_constants.ARIA_MULTISELECTABLE)) {\n\t        this.element_.setAttribute(_constants.ARIA_MULTISELECTABLE, 'false');\n\t      }\n\t\n\t      this.element_.removeEventListener('command', this.commandHandler_);\n\t      this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\t\n\t      [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + ACCORDION + ' > .' + PANEL))).forEach(function (panel) {\n\t        return _this5.upgradeTab(panel);\n\t      });\n\t\n\t      // Set upgraded flag\n\t      this.element_.classList.add(_constants.IS_UPGRADED);\n\t    }\n\t  };\n\t\n\t  /*\n\t   * Downgrade component\n\t   * E.g remove listeners and clean up resources\n\t   *\n\t   * Nothing to downgrade\n\t   *\n\t   MaterialExtAccordion.prototype.mdlDowngrade_ = function() {\n\t     'use strict';\n\t     console.log('***** MaterialExtAccordion.mdlDowngrade');\n\t   };\n\t   */\n\t\n\t  // The component registers itself. It can assume componentHandler is available\n\t  // in the global scope.\n\t  /* eslint no-undef: 0 */\n\t  componentHandler.register({\n\t    constructor: MaterialExtAccordion,\n\t    classAsString: 'MaterialExtAccordion',\n\t    cssClass: 'mdlext-js-accordion',\n\t    widget: true\n\t  });\n\t})(); /**\n\t       * @license\n\t       * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t       *\n\t       * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t       * you may not use this file except in compliance with the License.\n\t       * You may obtain a copy of the License at\n\t       *\n\t       *      http://www.apache.org/licenses/LICENSE-2.0\n\t       *\n\t       * Unless required by applicable law or agreed to in writing, software\n\t       * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t       * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t       * See the License for the specific language governing permissions and\n\t       * limitations under the License.\n\t       *\n\t       * This code is built with Google Material Design Lite,\n\t       * which is Licensed under the Apache License, Version 2.0\n\t       */\n\t\n\t/**\n\t * A WAI-ARIA friendly accordion component.\n\t * An accordion is a collection of expandable panels associated with a common outer container. Panels consist\n\t * of a header and an associated content region or tabpanel. The primary use of an Accordion is to present multiple sections\n\t * of content on a single page without scrolling, where all of the sections are peers in the application or object hierarchy.\n\t * The general look is similar to a tree where each root tree node is an expandable accordion header. The user navigates\n\t * and makes the contents of each panel visible (or not) by interacting with the Accordion Header\n\t */\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _isInteger = __webpack_require__(32);\n\t\n\tvar _isInteger2 = _interopRequireDefault(_isInteger);\n\t\n\tvar _toConsumableArray2 = __webpack_require__(8);\n\t\n\tvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\t\n\tvar _assign = __webpack_require__(33);\n\t\n\tvar _assign2 = _interopRequireDefault(_assign);\n\t\n\tvar _intervalFunction = __webpack_require__(30);\n\t\n\tvar _intervalFunction2 = _interopRequireDefault(_intervalFunction);\n\t\n\tvar _easing = __webpack_require__(29);\n\t\n\tvar _jsonUtils = __webpack_require__(14);\n\t\n\tvar _constants = __webpack_require__(2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t *      http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/**\n\t * Image carousel\n\t */\n\t\n\tvar MDL_RIPPLE_CONTAINER = 'mdlext-carousel__slide__ripple-container';\n\t\n\t(function () {\n\t  'use strict';\n\t\n\t  //const CAROUSEL = 'mdlext-carousel';\n\t\n\t  var SLIDE = 'mdlext-carousel__slide';\n\t  var ROLE = 'list';\n\t  var SLIDE_ROLE = 'listitem';\n\t\n\t  /**\n\t   * @constructor\n\t   * @param {Element} element The element that will be upgraded.\n\t   */\n\t  var MaterialExtCarousel = function MaterialExtCarousel(element) {\n\t    // Stores the element.\n\t    this.element_ = element;\n\t\n\t    // Default config\n\t    this.config_ = {\n\t      interactive: true,\n\t      autostart: false,\n\t      type: 'slide',\n\t      interval: 1000,\n\t      animationLoop: (0, _intervalFunction2.default)(1000)\n\t    };\n\t\n\t    this.scrollAnimation_ = (0, _intervalFunction2.default)(33);\n\t\n\t    // Initialize instance.\n\t    this.init();\n\t  };\n\t\n\t  window['MaterialExtCarousel'] = MaterialExtCarousel;\n\t\n\t  /**\n\t   * Start slideshow animation\n\t   * @private\n\t   */\n\t  MaterialExtCarousel.prototype.startSlideShow_ = function () {\n\t    var _this = this;\n\t\n\t    var nextSlide = function nextSlide() {\n\t      var slide = _this.element_.querySelector('.' + SLIDE + '[aria-selected]');\n\t      if (slide) {\n\t        slide.removeAttribute('aria-selected');\n\t        slide = slide.nextElementSibling;\n\t      }\n\t      if (!slide) {\n\t        slide = _this.element_.querySelector('.' + SLIDE + ':first-child');\n\t        _this.animateScroll_(0);\n\t      }\n\t      if (slide) {\n\t        _this.moveSlideIntoViewport_(slide);\n\t        slide.setAttribute('aria-selected', '');\n\t        _this.emitSelectEvent_('next', null, slide);\n\t        return true;\n\t      }\n\t      return false;\n\t    };\n\t\n\t    var nextScroll = function nextScroll(direction) {\n\t      var nextDirection = direction;\n\t\n\t      if ('next' === direction && _this.element_.scrollLeft === _this.element_.scrollWidth - _this.element_.clientWidth) {\n\t        nextDirection = 'prev';\n\t      } else if (_this.element_.scrollLeft === 0) {\n\t        nextDirection = 'next';\n\t      }\n\t      var x = 'next' === nextDirection ? Math.min(_this.element_.scrollLeft + _this.element_.clientWidth, _this.element_.scrollWidth - _this.element_.clientWidth) : Math.max(_this.element_.scrollLeft - _this.element_.clientWidth, 0);\n\t\n\t      _this.animateScroll_(x, 1000);\n\t      return nextDirection;\n\t    };\n\t\n\t    if (!this.config_.animationLoop.started) {\n\t      (function () {\n\t        _this.config_.animationLoop.interval = _this.config_.interval;\n\t        var direction = 'next';\n\t\n\t        if ('scroll' === _this.config_.type) {\n\t          _this.config_.animationLoop.start(function () {\n\t            direction = nextScroll(direction);\n\t            return true; // It runs until cancelSlideShow_ is triggered\n\t          });\n\t        } else {\n\t          nextSlide();\n\t          _this.config_.animationLoop.start(function () {\n\t            return nextSlide(); // It runs until cancelSlideShow_ is triggered\n\t          });\n\t        }\n\t      })();\n\t    }\n\t\n\t    // TODO: Pause animation when carousel is not in browser viewport or user changes tab\n\t  };\n\t\n\t  /**\n\t   * Cancel slideshow if running. Emmits a 'pause' event\n\t   * @private\n\t   */\n\t  MaterialExtCarousel.prototype.cancelSlideShow_ = function () {\n\t    if (this.config_.animationLoop.started) {\n\t      this.config_.animationLoop.stop();\n\t      this.emitSelectEvent_('pause', _constants.VK_ESC, this.element_.querySelector('.' + SLIDE + '[aria-selected]'));\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Animate scroll\n\t   * @param newPosition\n\t   * @param newDuration\n\t   * @param completedCallback\n\t   * @private\n\t   */\n\t  MaterialExtCarousel.prototype.animateScroll_ = function (newPosition, newDuration, completedCallback) {\n\t    var _this2 = this;\n\t\n\t    var start = this.element_.scrollLeft;\n\t    var distance = newPosition - start;\n\t\n\t    if (distance !== 0) {\n\t      (function () {\n\t        var duration = Math.max(Math.min(Math.abs(distance), newDuration || 400), 100); // duration is between 100 and newDuration||400ms||distance\n\t        var t = 0;\n\t        _this2.scrollAnimation_.stop();\n\t        _this2.scrollAnimation_.start(function (timeElapsed) {\n\t          t += timeElapsed;\n\t          if (t < duration) {\n\t            _this2.element_.scrollLeft = (0, _easing.inOutQuintic)(t, start, distance, duration);\n\t            return true;\n\t          } else {\n\t            _this2.element_.scrollLeft = newPosition;\n\t            if (completedCallback) {\n\t              completedCallback();\n\t            }\n\t            return false;\n\t          }\n\t        });\n\t      })();\n\t    } else {\n\t      if (completedCallback) {\n\t        completedCallback();\n\t      }\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Execute commend\n\t   * @param event\n\t   * @private\n\t   */\n\t  MaterialExtCarousel.prototype.command_ = function (event) {\n\t    var _this3 = this;\n\t\n\t    var x = 0;\n\t    var slide = null;\n\t    var a = event.detail.action.toLowerCase();\n\t\n\t    // Cancel slideshow if running\n\t    this.cancelSlideShow_();\n\t\n\t    switch (a) {\n\t      case 'first':\n\t        slide = this.element_.querySelector('.' + SLIDE + ':first-child');\n\t        break;\n\t\n\t      case 'last':\n\t        x = this.element_.scrollWidth - this.element_.clientWidth;\n\t        slide = this.element_.querySelector('.' + SLIDE + ':last-child');\n\t        break;\n\t\n\t      case 'scroll-prev':\n\t        x = Math.max(this.element_.scrollLeft - this.element_.clientWidth, 0);\n\t        break;\n\t\n\t      case 'scroll-next':\n\t        x = Math.min(this.element_.scrollLeft + this.element_.clientWidth, this.element_.scrollWidth - this.element_.clientWidth);\n\t        break;\n\t\n\t      case 'next':\n\t      case 'prev':\n\t        slide = this.element_.querySelector('.' + SLIDE + '[aria-selected]');\n\t        if (slide) {\n\t          slide = a === 'next' ? slide.nextElementSibling : slide.previousElementSibling;\n\t          this.setAriaSelected_(slide);\n\t          this.emitSelectEvent_(a, null, slide);\n\t        }\n\t        return;\n\t\n\t      case 'play':\n\t        (0, _assign2.default)(this.config_, event.detail);\n\t        this.startSlideShow_();\n\t        return;\n\t\n\t      case 'pause':\n\t        return;\n\t\n\t      default:\n\t        return;\n\t    }\n\t\n\t    this.animateScroll_(x, undefined, function () {\n\t      if ('scroll-next' === a || 'scroll-prev' === a) {\n\t        var slides = _this3.getSlidesInViewport_();\n\t        if (slides.length > 0) {\n\t          slide = 'scroll-next' === a ? slides[0] : slides[slides.length - 1];\n\t        }\n\t      }\n\t      _this3.setAriaSelected_(slide);\n\t      _this3.emitSelectEvent_(a, null, slide);\n\t    });\n\t  };\n\t\n\t  /**\n\t   * Handles custom command event, 'scroll-prev', 'scroll-next', 'first', 'last', next, prev, play, pause\n\t   * @param event. A custom event\n\t   * @private\n\t   */\n\t  MaterialExtCarousel.prototype.commandHandler_ = function (event) {\n\t    event.preventDefault();\n\t    event.stopPropagation();\n\t    if (event.detail && event.detail.action) {\n\t      this.command_(event);\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Handle keypress\n\t   * @param event\n\t   * @private\n\t   */\n\t  MaterialExtCarousel.prototype.keyDownHandler_ = function (event) {\n\t\n\t    if (event && event.target && event.target !== this.element_) {\n\t\n\t      var action = 'first';\n\t\n\t      if (event.keyCode === _constants.VK_HOME || event.keyCode === _constants.VK_END || event.keyCode === _constants.VK_PAGE_UP || event.keyCode === _constants.VK_PAGE_DOWN) {\n\t\n\t        event.preventDefault();\n\t        if (event.keyCode === _constants.VK_END) {\n\t          action = 'last';\n\t        } else if (event.keyCode === _constants.VK_PAGE_UP) {\n\t          action = 'scroll-prev';\n\t        } else if (event.keyCode === _constants.VK_PAGE_DOWN) {\n\t          action = 'scroll-next';\n\t        }\n\t\n\t        var cmd = new CustomEvent('select', {\n\t          detail: {\n\t            action: action\n\t          }\n\t        });\n\t        this.command_(cmd);\n\t      } else if (event.keyCode === _constants.VK_TAB || event.keyCode === _constants.VK_ENTER || event.keyCode === _constants.VK_SPACE || event.keyCode === _constants.VK_ARROW_UP || event.keyCode === _constants.VK_ARROW_LEFT || event.keyCode === _constants.VK_ARROW_DOWN || event.keyCode === _constants.VK_ARROW_RIGHT) {\n\t\n\t        var slide = getSlide_(event.target);\n\t\n\t        if (!slide) {\n\t          return;\n\t        }\n\t\n\t        // Cancel slideshow if running\n\t        this.cancelSlideShow_();\n\t\n\t        switch (event.keyCode) {\n\t          case _constants.VK_ARROW_UP:\n\t          case _constants.VK_ARROW_LEFT:\n\t            action = 'prev';\n\t            slide = slide.previousElementSibling;\n\t            break;\n\t\n\t          case _constants.VK_ARROW_DOWN:\n\t          case _constants.VK_ARROW_RIGHT:\n\t            action = 'next';\n\t            slide = slide.nextElementSibling;\n\t            break;\n\t\n\t          case _constants.VK_TAB:\n\t            if (event.shiftKey) {\n\t              action = 'prev';\n\t              slide = slide.previousElementSibling;\n\t            } else {\n\t              action = 'next';\n\t              slide = slide.nextElementSibling;\n\t            }\n\t            break;\n\t\n\t          case _constants.VK_SPACE:\n\t          case _constants.VK_ENTER:\n\t            action = 'select';\n\t            break;\n\t        }\n\t\n\t        if (slide) {\n\t          event.preventDefault();\n\t          setFocus_(slide);\n\t          this.emitSelectEvent_(action, event.keyCode, slide);\n\t        }\n\t      }\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Handle dragging\n\t   * @param event\n\t   * @private\n\t   */\n\t  MaterialExtCarousel.prototype.dragHandler_ = function (event) {\n\t    var _this4 = this;\n\t\n\t    event.preventDefault();\n\t\n\t    // Cancel slideshow if running\n\t    this.cancelSlideShow_();\n\t\n\t    var updating = false;\n\t    var rAFDragId = 0;\n\t\n\t    var startX = event.clientX || (event.touches !== undefined ? event.touches[0].clientX : 0);\n\t    var prevX = startX;\n\t    var targetElement = event.target;\n\t\n\t    var update = function update(e) {\n\t      var currentX = e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0);\n\t      var dx = prevX - currentX;\n\t\n\t      if (dx < 0) {\n\t        _this4.element_.scrollLeft = Math.max(_this4.element_.scrollLeft + dx, 0);\n\t      } else if (dx > 0) {\n\t        _this4.element_.scrollLeft = Math.min(_this4.element_.scrollLeft + dx, _this4.element_.scrollWidth - _this4.element_.clientWidth);\n\t      }\n\t\n\t      prevX = currentX;\n\t      updating = false;\n\t    };\n\t\n\t    // drag handler\n\t    var drag = function drag(e) {\n\t      e.preventDefault();\n\t\n\t      if (!updating) {\n\t        rAFDragId = window.requestAnimationFrame(function () {\n\t          return update(e);\n\t        });\n\t        updating = true;\n\t      }\n\t    };\n\t\n\t    // end drag handler\n\t    var endDrag = function endDrag(e) {\n\t      e.preventDefault();\n\t\n\t      _this4.element_.removeEventListener('mousemove', drag);\n\t      _this4.element_.removeEventListener('touchmove', drag);\n\t      window.removeEventListener('mouseup', endDrag);\n\t      window.removeEventListener('touchend', endDrag);\n\t\n\t      // cancel any existing drag rAF, see: http://www.html5rocks.com/en/tutorials/speed/animations/\n\t      window.cancelAnimationFrame(rAFDragId);\n\t\n\t      var slide = getSlide_(targetElement);\n\t      setFocus_(slide);\n\t      _this4.emitSelectEvent_('click', null, slide);\n\t    };\n\t\n\t    this.element_.addEventListener('mousemove', drag);\n\t    this.element_.addEventListener('touchmove', drag);\n\t    window.addEventListener('mouseup', endDrag);\n\t    window.addEventListener('touchend', endDrag);\n\t  };\n\t\n\t  /**\n\t   * Handle click\n\t   * @param event\n\t   * @private\n\t   */\n\t  MaterialExtCarousel.prototype.clickHandler_ = function (event) {\n\t    // Click is handled by drag\n\t    event.preventDefault();\n\t  };\n\t\n\t  /**\n\t   * Handle focus\n\t   * @param event\n\t   * @private\n\t   */\n\t  MaterialExtCarousel.prototype.focusHandler_ = function (event) {\n\t    var slide = getSlide_(event.target);\n\t    if (slide) {\n\t      // The last focused/selected slide has 'aria-selected', even if focus is lost\n\t      this.setAriaSelected_(slide);\n\t      slide.classList.add(_constants.IS_FOCUSED);\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Handle blur\n\t   * @param event\n\t   * @private\n\t   */\n\t  MaterialExtCarousel.prototype.blurHandler_ = function (event) {\n\t    var slide = getSlide_(event.target);\n\t    if (slide) {\n\t      slide.classList.remove(_constants.IS_FOCUSED);\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Emits a custeom 'select' event\n\t   * @param command\n\t   * @param keyCode\n\t   * @param slide\n\t   * @private\n\t   */\n\t  MaterialExtCarousel.prototype.emitSelectEvent_ = function (command, keyCode, slide) {\n\t\n\t    if (slide) {\n\t      this.moveSlideIntoViewport_(slide);\n\t\n\t      var evt = new CustomEvent('select', {\n\t        bubbles: true,\n\t        cancelable: true,\n\t        detail: {\n\t          command: command,\n\t          keyCode: keyCode,\n\t          source: slide\n\t        }\n\t      });\n\t      this.element_.dispatchEvent(evt);\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Get the first visible slide in component viewport\n\t   * @private\n\t   */\n\t  MaterialExtCarousel.prototype.getSlidesInViewport_ = function () {\n\t    var carouselRect = this.element_.getBoundingClientRect();\n\t\n\t    var slidesInViewport = [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE))).filter(function (slide) {\n\t      var slideRect = slide.getBoundingClientRect();\n\t      return slideRect.left >= carouselRect.left && slideRect.right <= carouselRect.right;\n\t    });\n\t    return slidesInViewport;\n\t  };\n\t\n\t  /**\n\t   * Move slide into component viewport - if needed\n\t   * @param slide\n\t   * @private\n\t   */\n\t  MaterialExtCarousel.prototype.moveSlideIntoViewport_ = function (slide) {\n\t    var carouselRect = this.element_.getBoundingClientRect();\n\t    var slideRect = slide.getBoundingClientRect();\n\t\n\t    if (slideRect.left < carouselRect.left) {\n\t      var x = this.element_.scrollLeft - (carouselRect.left - slideRect.left);\n\t      this.animateScroll_(x);\n\t    } else if (slideRect.right > carouselRect.right) {\n\t      var _x = this.element_.scrollLeft - (carouselRect.right - slideRect.right);\n\t      this.animateScroll_(_x);\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Removes 'aria-selected' from all slides in carousel\n\t   * @private\n\t   */\n\t  MaterialExtCarousel.prototype.setAriaSelected_ = function (slide) {\n\t    if (slide) {\n\t      [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE + '[aria-selected]'))).forEach(function (slide) {\n\t        return slide.removeAttribute('aria-selected');\n\t      });\n\t      slide.setAttribute('aria-selected', '');\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Removes event listeners\n\t   * @private\n\t   */\n\t  MaterialExtCarousel.prototype.removeListeners_ = function () {\n\t    this.element_.removeEventListener('focus', this.focusHandler_);\n\t    this.element_.removeEventListener('blur', this.blurHandler_);\n\t    this.element_.removeEventListener('keydown', this.keyDownHandler_);\n\t    this.element_.removeEventListener('mousedown', this.dragHandler_);\n\t    this.element_.removeEventListener('touchstart', this.dragHandler_);\n\t    this.element_.removeEventListener('click', this.clickHandler_, false);\n\t    this.element_.removeEventListener('command', this.commandHandler_);\n\t    this.element_.removeEventListener('mdl-componentdowngraded', this.mdlDowngrade_);\n\t  };\n\t\n\t  // Helpers\n\t  var getSlide_ = function getSlide_(element) {\n\t    return element.closest('.' + SLIDE);\n\t  };\n\t\n\t  var setFocus_ = function setFocus_(slide) {\n\t    if (slide) {\n\t      slide.focus();\n\t    }\n\t  };\n\t\n\t  var addRipple_ = function addRipple_(slide) {\n\t    if (!slide.querySelector('.' + MDL_RIPPLE_CONTAINER)) {\n\t      var rippleContainer = document.createElement('span');\n\t      rippleContainer.classList.add(MDL_RIPPLE_CONTAINER);\n\t      rippleContainer.classList.add(_constants.MDL_RIPPLE_EFFECT);\n\t      var ripple = document.createElement('span');\n\t      ripple.classList.add(_constants.MDL_RIPPLE);\n\t      rippleContainer.appendChild(ripple);\n\t\n\t      var img = slide.querySelector('img');\n\t      if (img) {\n\t        // rippleContainer blocks image title\n\t        rippleContainer.title = img.title;\n\t      }\n\t      slide.appendChild(rippleContainer);\n\t      componentHandler.upgradeElement(rippleContainer, _constants.MDL_RIPPLE_COMPONENT);\n\t    }\n\t  };\n\t  // End helpers\n\t\n\t\n\t  // Public methods.\n\t\n\t  /**\n\t   * Cancel animation - if running.\n\t   *\n\t   * @public\n\t   */\n\t  MaterialExtCarousel.prototype.stopAnimation = function () {\n\t    this.config_.animationLoop.stop();\n\t  };\n\t  MaterialExtCarousel.prototype['stopAnimation'] = MaterialExtCarousel.prototype.stopAnimation;\n\t\n\t  /**\n\t   * Upgrade slides\n\t   * Use if more list elements are added later (dynamically)\n\t   *\n\t   * @public\n\t   */\n\t  MaterialExtCarousel.prototype.upgradeSlides = function () {\n\t    var _this5 = this;\n\t\n\t    var hasRippleEffect = this.element_.classList.contains(_constants.MDL_RIPPLE_EFFECT);\n\t\n\t    [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE))).forEach(function (slide) {\n\t\n\t      slide.setAttribute('role', SLIDE_ROLE);\n\t\n\t      if (_this5.config_.interactive) {\n\t        if (!slide.getAttribute('tabindex')) {\n\t          slide.setAttribute('tabindex', '0');\n\t        }\n\t        if (hasRippleEffect) {\n\t          addRipple_(slide);\n\t        }\n\t      } else {\n\t        slide.setAttribute('tabindex', '-1');\n\t      }\n\t    });\n\t  };\n\t  MaterialExtCarousel.prototype['upgradeSlides'] = MaterialExtCarousel.prototype.upgradeSlides;\n\t\n\t  /**\n\t   * Get config object\n\t   *\n\t   * @public\n\t   */\n\t  MaterialExtCarousel.prototype.getConfig = function () {\n\t    return this.config_;\n\t  };\n\t  MaterialExtCarousel.prototype['getConfig'] = MaterialExtCarousel.prototype.getConfig;\n\t\n\t  /**\n\t   * Initialize component\n\t   */\n\t  MaterialExtCarousel.prototype.init = function () {\n\t\n\t    if (this.element_) {\n\t      // Config\n\t      if (this.element_.hasAttribute('data-config')) {\n\t        this.config_ = (0, _jsonUtils.jsonStringToObject)(this.element_.getAttribute('data-config'), this.config_);\n\t      }\n\t\n\t      // Wai-Aria\n\t      this.element_.setAttribute('role', ROLE);\n\t\n\t      // Prefer tabindex -1\n\t      if (!(0, _isInteger2.default)(this.element_.getAttribute('tabindex'))) {\n\t        this.element_.setAttribute('tabindex', -1);\n\t      }\n\t\n\t      // Remove listeners, just in case ...\n\t      this.removeListeners_();\n\t\n\t      if (this.config_.interactive) {\n\t\n\t        // Ripple\n\t        var hasRippleEffect = this.element_.classList.contains(_constants.MDL_RIPPLE_EFFECT);\n\t        if (hasRippleEffect) {\n\t          this.element_.classList.add(_constants.MDL_RIPPLE_EFFECT_IGNORE_EVENTS);\n\t        }\n\t\n\t        // Listen to focus/blur events\n\t        this.element_.addEventListener('focus', this.focusHandler_.bind(this), true);\n\t        this.element_.addEventListener('blur', this.blurHandler_.bind(this), true);\n\t\n\t        // Listen to keyboard events\n\t        this.element_.addEventListener('keydown', this.keyDownHandler_.bind(this), false);\n\t\n\t        // Listen to drag events\n\t        this.element_.addEventListener('mousedown', this.dragHandler_.bind(this), false);\n\t        this.element_.addEventListener('touchstart', this.dragHandler_.bind(this), false);\n\t\n\t        // Listen to click events\n\t        this.element_.addEventListener('click', this.clickHandler_.bind(this), false);\n\t      }\n\t\n\t      // Listen to custom 'command' event\n\t      this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\t\n\t      // Listen to 'mdl-componentdowngraded' event\n\t      this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));\n\t\n\t      // Slides collection\n\t      this.upgradeSlides();\n\t\n\t      // Set upgraded flag\n\t      this.element_.classList.add(_constants.IS_UPGRADED);\n\t\n\t      if (this.config_.autostart) {\n\t        // Start slideshow\n\t        this.startSlideShow_();\n\t      }\n\t    }\n\t  };\n\t\n\t  /*\n\t   * Downgrade component\n\t   * E.g remove listeners and clean up resources\n\t   */\n\t  MaterialExtCarousel.prototype.mdlDowngrade_ = function () {\n\t    'use strict';\n\t    //console.log('***** MaterialExtCarousel.mdlDowngrade_');\n\t\n\t    // Stop animation - if any\n\t\n\t    this.stopAnimation();\n\t\n\t    // Remove listeners\n\t    this.removeListeners_();\n\t  };\n\t\n\t  // The component registers itself. It can assume componentHandler is available\n\t  // in the global scope.\n\t  /* eslint no-undef: 0 */\n\t  componentHandler.register({\n\t    constructor: MaterialExtCarousel,\n\t    classAsString: 'MaterialExtCarousel',\n\t    cssClass: 'mdlext-js-carousel',\n\t    widget: true\n\t  });\n\t})();\n\n/***/ },\n/* 51 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _classCallCheck2 = __webpack_require__(22);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(23);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _constants = __webpack_require__(2);\n\t\n\tvar _stringUtils = __webpack_require__(15);\n\t\n\tvar _domUtils = __webpack_require__(21);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar JS_COLLAPSIBLE = 'mdlext-js-collapsible'; /**\n\t                                               * @license\n\t                                               * Copyright 2016-2017 Leif Olsen. All Rights Reserved.\n\t                                               *\n\t                                               * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t                                               * you may not use this file except in compliance with the License.\n\t                                               * You may obtain a copy of the License at\n\t                                               *\n\t                                               *      http://www.apache.org/licenses/LICENSE-2.0\n\t                                               *\n\t                                               * Unless required by applicable law or agreed to in writing, software\n\t                                               * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t                                               * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t                                               * See the License for the specific language governing permissions and\n\t                                               * limitations under the License.\n\t                                               *\n\t                                               * This code is built with Google Material Design Lite,\n\t                                               * which is Licensed under the Apache License, Version 2.0\n\t                                               */\n\t\n\t/**\n\t * A collapsible is a component to mark expandable and collapsible regions.\n\t * The component use the aria-expanded state to indicate whether regions of\n\t * the content are collapsible, and to expose whether a region is currently\n\t * expanded or collapsed.\n\t * @see https://www.w3.org/WAI/GL/wiki/Using_the_WAI-ARIA_aria-expanded_state_to_mark_expandable_and_collapsible_regions\n\t */\n\t\n\tvar COLLAPSIBLE_CONTROL_CLASS = 'mdlext-collapsible';\n\tvar COLLAPSIBLE_GROUP_CLASS = 'mdlext-collapsible-group';\n\tvar COLLAPSIBLE_REGION_CLASS = 'mdlext-collapsible-region';\n\t\n\t/**\n\t * The collapsible component\n\t */\n\t\n\tvar Collapsible = function () {\n\t\n\t  /**\n\t   * @constructor\n\t   * @param {HTMLElement} element The element that this component is connected to.\n\t   */\n\t  function Collapsible(element) {\n\t    var _this = this;\n\t\n\t    (0, _classCallCheck3.default)(this, Collapsible);\n\t    this.element_ = null;\n\t    this.controlElement_ = null;\n\t\n\t    this.keyDownHandler = function (event) {\n\t      if (event.keyCode === _constants.VK_ENTER || event.keyCode === _constants.VK_SPACE) {\n\t        event.preventDefault();\n\t\n\t        // Trigger click\n\t        (event.target || _this.controlElement).dispatchEvent(new MouseEvent('click', {\n\t          bubbles: true,\n\t          cancelable: true,\n\t          view: window\n\t        }));\n\t      }\n\t    };\n\t\n\t    this.clickHandler = function (event) {\n\t      if (!_this.isDisabled) {\n\t        if (event.target !== _this.controlElement) {\n\t          // Do not toggle if a focusable element inside the control element triggered the event\n\t          var p = (0, _domUtils.getParentElements)(event.target, _this.controlElement);\n\t          p.push(event.target);\n\t          if (p.find(function (el) {\n\t            return (0, _domUtils.isFocusable)(el);\n\t          })) {\n\t            return;\n\t          }\n\t        }\n\t        _this.toggle();\n\t      }\n\t    };\n\t\n\t    this.element_ = element;\n\t    this.init();\n\t  }\n\t\n\t  (0, _createClass3.default)(Collapsible, [{\n\t    key: 'collapse',\n\t    value: function collapse() {\n\t      if (!this.isDisabled && this.isExpanded) {\n\t        if (this.dispatchToggleEvent('collapse')) {\n\t          this.controlElement.setAttribute('aria-expanded', 'false');\n\t          var regions = this.regionElements.slice(0);\n\t          for (var i = regions.length - 1; i >= 0; --i) {\n\t            regions[i].setAttribute('hidden', '');\n\t          }\n\t        }\n\t      }\n\t    }\n\t  }, {\n\t    key: 'expand',\n\t    value: function expand() {\n\t      if (!this.isDisabled && !this.isExpanded) {\n\t        if (this.dispatchToggleEvent('expand')) {\n\t          this.controlElement.setAttribute('aria-expanded', 'true');\n\t          this.regionElements.forEach(function (region) {\n\t            return region.removeAttribute('hidden');\n\t          });\n\t        }\n\t      }\n\t    }\n\t  }, {\n\t    key: 'toggle',\n\t    value: function toggle() {\n\t      if (this.isExpanded) {\n\t        this.collapse();\n\t      } else {\n\t        this.expand();\n\t      }\n\t    }\n\t  }, {\n\t    key: 'dispatchToggleEvent',\n\t    value: function dispatchToggleEvent(action) {\n\t      return this.element.dispatchEvent(new CustomEvent('toggle', {\n\t        bubbles: true,\n\t        cancelable: true,\n\t        detail: {\n\t          action: action\n\t        }\n\t      }));\n\t    }\n\t  }, {\n\t    key: 'disableToggle',\n\t    value: function disableToggle() {\n\t      this.controlElement.setAttribute('aria-disabled', true);\n\t    }\n\t  }, {\n\t    key: 'enableToggle',\n\t    value: function enableToggle() {\n\t      this.controlElement.removeAttribute('aria-disabled');\n\t    }\n\t  }, {\n\t    key: 'addRegionId',\n\t    value: function addRegionId(regionId) {\n\t      var ids = this.regionIds;\n\t      if (!ids.find(function (id) {\n\t        return regionId === id;\n\t      })) {\n\t        ids.push(regionId);\n\t        this.controlElement.setAttribute('aria-controls', ids.join(' '));\n\t      }\n\t    }\n\t  }, {\n\t    key: 'addRegionElement',\n\t    value: function addRegionElement(region) {\n\t      if (!(region.classList.contains(COLLAPSIBLE_GROUP_CLASS) || region.classList.contains(COLLAPSIBLE_REGION_CLASS))) {\n\t        region.classList.add(COLLAPSIBLE_GROUP_CLASS);\n\t      }\n\t\n\t      if (!region.hasAttribute('role')) {\n\t        var role = region.classList.contains(COLLAPSIBLE_GROUP_CLASS) ? 'group' : 'region';\n\t        region.setAttribute('role', role);\n\t      }\n\t\n\t      if (!region.hasAttribute('id')) {\n\t        region.id = region.getAttribute('role') + '-' + (0, _stringUtils.randomString)();\n\t      }\n\t\n\t      if (this.isExpanded) {\n\t        region.removeAttribute('hidden');\n\t      } else {\n\t        region.setAttribute('hidden', '');\n\t      }\n\t      this.addRegionId(region.id);\n\t    }\n\t  }, {\n\t    key: 'removeRegionElement',\n\t    value: function removeRegionElement(region) {\n\t      if (region && region.id) {\n\t        var ids = this.regionIds.filter(function (id) {\n\t          return id === region.id;\n\t        });\n\t        this.controlElement.setAttribute('aria-controls', ids.join(' '));\n\t      }\n\t    }\n\t  }, {\n\t    key: 'removeListeners',\n\t    value: function removeListeners() {\n\t      this.controlElement.removeEventListener('keydown', this.keyDownHandler);\n\t      this.controlElement.removeEventListener('click', this.clickHandler);\n\t    }\n\t  }, {\n\t    key: 'init',\n\t    value: function init() {\n\t      var _this2 = this;\n\t\n\t      var initControl = function initControl() {\n\t        // Find the button element\n\t        _this2.controlElement_ = _this2.element.querySelector('.' + COLLAPSIBLE_CONTROL_CLASS) || _this2.element;\n\t\n\t        // Add \"aria-expanded\" attribute if not present\n\t        if (!_this2.controlElement.hasAttribute('aria-expanded')) {\n\t          _this2.controlElement.setAttribute('aria-expanded', 'false');\n\t        }\n\t\n\t        // Add role=button if control != <button>\n\t        if (_this2.controlElement.nodeName.toLowerCase() !== 'button') {\n\t          _this2.controlElement.setAttribute('role', 'button');\n\t        }\n\t\n\t        // Add tabindex\n\t        if (!(0, _domUtils.isFocusable)(_this2.controlElement) && !_this2.controlElement.hasAttribute('tabindex')) {\n\t          _this2.controlElement.setAttribute('tabindex', '0');\n\t        }\n\t      };\n\t\n\t      var initRegions = function initRegions() {\n\t        var regions = [];\n\t        if (!_this2.controlElement.hasAttribute('aria-controls')) {\n\t          // Add siblings as collapsible region(s)\n\t          var r = _this2.element.nextElementSibling;\n\t          while (r) {\n\t            if (r.classList.contains(COLLAPSIBLE_GROUP_CLASS) || r.classList.contains(COLLAPSIBLE_REGION_CLASS)) {\n\t              regions.push(r);\n\t            } else if (r.classList.contains(JS_COLLAPSIBLE)) {\n\t              // A new collapsible component\n\t              break;\n\t            }\n\t            r = r.nextElementSibling;\n\t          }\n\t        } else {\n\t          regions = _this2.regionElements;\n\t        }\n\t        regions.forEach(function (region) {\n\t          return _this2.addRegionElement(region);\n\t        });\n\t      };\n\t\n\t      var addListeners = function addListeners() {\n\t        _this2.controlElement.addEventListener('keydown', _this2.keyDownHandler);\n\t        _this2.controlElement.addEventListener('click', _this2.clickHandler);\n\t      };\n\t\n\t      initControl();\n\t      initRegions();\n\t      this.removeListeners();\n\t      addListeners();\n\t    }\n\t  }, {\n\t    key: 'downgrade',\n\t    value: function downgrade() {\n\t      this.removeListeners();\n\t    }\n\t  }, {\n\t    key: 'element',\n\t    get: function get() {\n\t      return this.element_;\n\t    }\n\t  }, {\n\t    key: 'controlElement',\n\t    get: function get() {\n\t      return this.controlElement_;\n\t    }\n\t  }, {\n\t    key: 'isDisabled',\n\t    get: function get() {\n\t      return this.controlElement.hasAttribute('disabled') && this.controlElement.getAttribute('disabled').toLowerCase() !== 'false' || this.controlElement.hasAttribute('aria-disabled') && this.controlElement.getAttribute('aria-disabled').toLowerCase() !== 'false';\n\t    }\n\t  }, {\n\t    key: 'isExpanded',\n\t    get: function get() {\n\t      return this.controlElement.hasAttribute('aria-expanded') && this.controlElement.getAttribute('aria-expanded').toLowerCase() === 'true';\n\t    }\n\t  }, {\n\t    key: 'regionIds',\n\t    get: function get() {\n\t      return this.controlElement.hasAttribute('aria-controls') ? this.controlElement.getAttribute('aria-controls').split(' ') : [];\n\t    }\n\t  }, {\n\t    key: 'regionElements',\n\t    get: function get() {\n\t      return this.regionIds.map(function (id) {\n\t        return document.querySelector('#' + id);\n\t      }).filter(function (el) {\n\t        return el != null;\n\t      });\n\t    }\n\t  }]);\n\t  return Collapsible;\n\t}();\n\t\n\t(function () {\n\t  'use strict';\n\t\n\t  /**\n\t   * @constructor\n\t   * @param {HTMLElement} element The element that will be upgraded.\n\t   */\n\t\n\t  var MaterialExtCollapsible = function MaterialExtCollapsible(element) {\n\t    this.element_ = element;\n\t    this.collapsible = null;\n\t\n\t    // Initialize instance.\n\t    this.init();\n\t  };\n\t  window['MaterialExtCollapsible'] = MaterialExtCollapsible;\n\t\n\t  /**\n\t   * Initialize component\n\t   */\n\t  MaterialExtCollapsible.prototype.init = function () {\n\t    if (this.element_) {\n\t      this.collapsible = new Collapsible(this.element_);\n\t      this.element_.classList.add(_constants.IS_UPGRADED);\n\t\n\t      // Listen to 'mdl-componentdowngraded' event\n\t      this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));\n\t    }\n\t  };\n\t\n\t  /*\n\t   * Downgrade component\n\t   * E.g remove listeners and clean up resources\n\t   */\n\t  MaterialExtCollapsible.prototype.mdlDowngrade_ = function () {\n\t    this.collapsible.downgrade();\n\t  };\n\t\n\t  // Public methods.\n\t\n\t  /**\n\t   * Get control element.\n\t   * @return {HTMLElement} element The element that controls the collapsible region.\n\t   * @public\n\t   */\n\t  MaterialExtCollapsible.prototype.getControlElement = function () {\n\t    return this.collapsible.controlElement;\n\t  };\n\t  MaterialExtCollapsible.prototype['getControlElement'] = MaterialExtCollapsible.prototype.getControlElement;\n\t\n\t  /**\n\t   * Get region elements controlled by this collapsible\n\t   * @returns {Array<HTMLElement>} the collapsible region elements\n\t   * @public\n\t   */\n\t  MaterialExtCollapsible.prototype.getRegionElements = function () {\n\t    return this.collapsible.regionElements;\n\t  };\n\t  MaterialExtCollapsible.prototype['getRegionElements'] = MaterialExtCollapsible.prototype.getRegionElements;\n\t\n\t  /**\n\t   * Add region elements.\n\t   * @param {Array<HTMLElement>} elements The element that will be upgraded.\n\t   * @return {void}\n\t   * @public\n\t   */\n\t  MaterialExtCollapsible.prototype.addRegionElements = function () {\n\t    var _this3 = this;\n\t\n\t    for (var _len = arguments.length, elements = Array(_len), _key = 0; _key < _len; _key++) {\n\t      elements[_key] = arguments[_key];\n\t    }\n\t\n\t    elements.forEach(function (element) {\n\t      return _this3.collapsible.addRegionElement(element);\n\t    });\n\t  };\n\t  MaterialExtCollapsible.prototype['addRegionElements'] = MaterialExtCollapsible.prototype.addRegionElements;\n\t\n\t  /**\n\t   * Remove collapsible region(s) from component.\n\t   * Note: This operation does not delete the element from the DOM tree.\n\t   * @param {Array<HTMLElement>} elements The element that will be upgraded.\n\t   * @public\n\t   */\n\t  MaterialExtCollapsible.prototype.removeRegionElements = function () {\n\t    var _this4 = this;\n\t\n\t    for (var _len2 = arguments.length, elements = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t      elements[_key2] = arguments[_key2];\n\t    }\n\t\n\t    elements.forEach(function (element) {\n\t      return _this4.collapsible.removeRegionElement(element);\n\t    });\n\t  };\n\t  MaterialExtCollapsible.prototype['removeRegionElements'] = MaterialExtCollapsible.prototype.removeRegionElements;\n\t\n\t  /**\n\t   * Expand collapsible region(s)\n\t   * @return {void}\n\t   * @public\n\t   */\n\t  MaterialExtCollapsible.prototype.expand = function () {\n\t    this.collapsible.expand();\n\t  };\n\t  MaterialExtCollapsible.prototype['expand'] = MaterialExtCollapsible.prototype.expand;\n\t\n\t  /**\n\t   * Collapse collapsible region(s)\n\t   * @return {void}\n\t   * @public\n\t   */\n\t  MaterialExtCollapsible.prototype.collapse = function () {\n\t    this.collapsible.collapse();\n\t  };\n\t  MaterialExtCollapsible.prototype['collapse'] = MaterialExtCollapsible.prototype.collapse;\n\t\n\t  /**\n\t   * Toggle collapsible region(s)\n\t   * @return {void}\n\t   * @public\n\t   */\n\t  MaterialExtCollapsible.prototype.toggle = function () {\n\t    this.collapsible.toggle();\n\t  };\n\t  MaterialExtCollapsible.prototype['toggle'] = MaterialExtCollapsible.prototype.toggle;\n\t\n\t  /**\n\t   * Check whether component has aria-expanded state true\n\t   * @return {Boolean} true if aria-expanded=\"true\", otherwise false\n\t   */\n\t  MaterialExtCollapsible.prototype.isExpanded = function () {\n\t    return this.collapsible.isExpanded;\n\t  };\n\t  MaterialExtCollapsible.prototype['isExpanded'] = MaterialExtCollapsible.prototype.isExpanded;\n\t\n\t  /**\n\t   * Check whether component has aria-disabled state set to true\n\t   * @return {Boolean} true if aria-disabled=\"true\", otherwise false\n\t   */\n\t  MaterialExtCollapsible.prototype.isDisabled = function () {\n\t    return this.collapsible.isDisabled;\n\t  };\n\t  MaterialExtCollapsible.prototype['isDisabled'] = MaterialExtCollapsible.prototype.isDisabled;\n\t\n\t  /**\n\t   * Disables toggling of collapsible region(s)\n\t   * @return {void}\n\t   * @public\n\t   */\n\t  MaterialExtCollapsible.prototype.disableToggle = function () {\n\t    this.collapsible.disableToggle();\n\t  };\n\t  MaterialExtCollapsible.prototype['disableToggle'] = MaterialExtCollapsible.prototype.disableToggle;\n\t\n\t  /**\n\t   * Enables toggling of collapsible region(s)\n\t   * @return {void}\n\t   * @public\n\t   */\n\t  MaterialExtCollapsible.prototype.enableToggle = function () {\n\t    this.collapsible.enableToggle();\n\t  };\n\t  MaterialExtCollapsible.prototype['enableToggle'] = MaterialExtCollapsible.prototype.enableToggle;\n\t\n\t  // The component registers itself. It can assume componentHandler is available\n\t  // in the global scope.\n\t  /* eslint no-undef: 0 */\n\t  componentHandler.register({\n\t    constructor: MaterialExtCollapsible,\n\t    classAsString: 'MaterialExtCollapsible',\n\t    cssClass: JS_COLLAPSIBLE,\n\t    widget: true\n\t  });\n\t})();\n\n/***/ },\n/* 52 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _classCallCheck2 = __webpack_require__(22);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(23);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _class, _temp; /**\n\t                    * @license\n\t                    * Copyright 2016-2017 Leif Olsen. All Rights Reserved.\n\t                    *\n\t                    * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t                    * you may not use this file except in compliance with the License.\n\t                    * You may obtain a copy of the License at\n\t                    *\n\t                    *      http://www.apache.org/licenses/LICENSE-2.0\n\t                    *\n\t                    * Unless required by applicable law or agreed to in writing, software\n\t                    * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t                    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t                    * See the License for the specific language governing permissions and\n\t                    * limitations under the License.\n\t                    *\n\t                    * This code is built with Google Material Design Lite,\n\t                    * which is Licensed under the Apache License, Version 2.0\n\t                    */\n\t\n\tvar _jsonUtils = __webpack_require__(14);\n\t\n\tvar _constants = __webpack_require__(2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar JS_FORMAT_FIELD = 'mdlext-js-formatfield';\n\tvar FORMAT_FIELD_COMPONENT = 'MaterialExtFormatfield';\n\t\n\t/**\n\t * Detect browser locale\n\t * @returns {string} the locale\n\t * @see http://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference\n\t */\n\tvar browserLanguage = function browserLanguage() {\n\t  return navigator.languages ? navigator.languages[0] : navigator.language || navigator.userLanguage;\n\t};\n\t\n\t/**\n\t * The formatfield  formats an input field  using language sensitive number formatting.\n\t */\n\t\n\tvar FormatField = (_temp = _class = function () {\n\t  function FormatField(element) {\n\t    var _this = this;\n\t\n\t    (0, _classCallCheck3.default)(this, FormatField);\n\t    this.options_ = {};\n\t\n\t    this.clickHandler = function () {\n\t      clearTimeout(FormatField.timer);\n\t    };\n\t\n\t    this.focusInHandler = function () {\n\t      if (!(_this.input.readOnly || _this.input.disabled)) {\n\t        _this.input.value = _this.unformatInput();\n\t        //setTimeout(() => this.input.setSelectionRange(0, this.input.value.length), 20);\n\t        FormatField.timer = setTimeout(function () {\n\t          return _this.input.select();\n\t        }, 200);\n\t      }\n\t    };\n\t\n\t    this.focusOutHandler = function () {\n\t      clearTimeout(FormatField.timer);\n\t\n\t      if (!(_this.input.readOnly || _this.input.disabled)) {\n\t        _this.formatValue();\n\t      }\n\t    };\n\t\n\t    this.element_ = element;\n\t    this.init();\n\t  }\n\t\n\t  (0, _createClass3.default)(FormatField, [{\n\t    key: 'stripSeparatorsFromValue',\n\t    value: function stripSeparatorsFromValue() {\n\t      var _this2 = this;\n\t\n\t      var doReplace = function doReplace() {\n\t        return _this2.input.value.replace(/\\s/g, '').replace(new RegExp(_this2.options.groupSeparator, 'g'), '').replace(_this2.options.decimalSeparator, '.');\n\t      };\n\t      //.replace(this.intlGroupSeparator_, ''),\n\t      //.replace(this.intlDecimalSeparator_, '.');\n\t\n\t      return this.input.value ? doReplace() : this.input.value;\n\t    }\n\t  }, {\n\t    key: 'fixSeparators',\n\t    value: function fixSeparators(value) {\n\t      var _this3 = this;\n\t\n\t      var doReplace = function doReplace() {\n\t        return value.replace(new RegExp(_this3.intlGroupSeparator_, 'g'), _this3.options.groupSeparator).replace(_this3.intlDecimalSeparator_, _this3.options.decimalSeparator);\n\t      };\n\t\n\t      return value ? doReplace() : value;\n\t    }\n\t  }, {\n\t    key: 'formatValue',\n\t    value: function formatValue() {\n\t      if (this.input.value) {\n\t        var v = new Intl.NumberFormat(this.options.locales, this.options).format(this.stripSeparatorsFromValue());\n\t\n\t        if ('NaN' !== v) {\n\t          this.input.value = this.fixSeparators(v);\n\t        }\n\t      }\n\t    }\n\t  }, {\n\t    key: 'unformat',\n\t    value: function unformat() {\n\t      var _this4 = this;\n\t\n\t      var doReplace = function doReplace() {\n\t        return _this4.input.value.replace(/\\s/g, '').replace(new RegExp(_this4.options.groupSeparator, 'g'), '').replace(_this4.options.decimalSeparator, '.');\n\t      };\n\t\n\t      return this.input.value ? doReplace() : this.input.value;\n\t    }\n\t  }, {\n\t    key: 'unformatInput',\n\t    value: function unformatInput() {\n\t      var _this5 = this;\n\t\n\t      var doReplace = function doReplace() {\n\t        return _this5.input.value.replace(/\\s/g, '').replace(new RegExp(_this5.options.groupSeparator, 'g'), '');\n\t      };\n\t\n\t      return this.input.value ? doReplace() : this.input.value;\n\t    }\n\t  }, {\n\t    key: 'removeListeners',\n\t    value: function removeListeners() {\n\t      this.input.removeEventListener('click', this.clickHandler);\n\t      this.input.removeEventListener('focusin', this.focusInHandler);\n\t      this.input.removeEventListener('focusout', this.focusOutHandler);\n\t    }\n\t  }, {\n\t    key: 'init',\n\t    value: function init() {\n\t      var _this6 = this;\n\t\n\t      var addListeners = function addListeners() {\n\t        _this6.input.addEventListener('click', _this6.clickHandler);\n\t        _this6.input.addEventListener('focusin', _this6.focusInHandler);\n\t        _this6.input.addEventListener('focusout', _this6.focusOutHandler);\n\t      };\n\t\n\t      var addOptions = function addOptions() {\n\t        var opts = _this6.element.getAttribute('data-formatfield-options') || _this6.input.getAttribute('data-formatfield-options');\n\t        if (opts) {\n\t          _this6.options_ = (0, _jsonUtils.jsonStringToObject)(opts, _this6.options);\n\t        }\n\t      };\n\t\n\t      var addLocale = function addLocale() {\n\t        if (!_this6.options.locales) {\n\t          _this6.options.locales = browserLanguage() || 'en-US'; //'nb-NO', //'en-US',\n\t        }\n\t      };\n\t\n\t      var addGrouping = function addGrouping() {\n\t        var s = 1234.5.toLocaleString(_this6.options.locales, {\n\t          style: 'decimal',\n\t          useGrouping: true,\n\t          minimumFractionDigits: 1,\n\t          maximumFractionDigits: 1\n\t        });\n\t\n\t        _this6.intlGroupSeparator_ = s.charAt(1);\n\t        _this6.intlDecimalSeparator_ = s.charAt(s.length - 2);\n\t        _this6.options.groupSeparator = _this6.options.groupSeparator || _this6.intlGroupSeparator_;\n\t        _this6.options.decimalSeparator = _this6.options.decimalSeparator || _this6.intlDecimalSeparator_;\n\t\n\t        if (_this6.options.groupSeparator === _this6.options.decimalSeparator) {\n\t          var e = 'Error! options.groupSeparator, \"' + _this6.options.groupSeparator + '\" ' + 'and options.decimalSeparator, ' + ('\"' + _this6.options.decimalSeparator + '\" should not be equal');\n\t          throw new Error(e);\n\t        }\n\t      };\n\t\n\t      this.input_ = this.element.querySelector('input') || this.element;\n\t\n\t      addOptions();\n\t      addLocale();\n\t      addGrouping();\n\t      this.formatValue();\n\t      addListeners();\n\t    }\n\t  }, {\n\t    key: 'downgrade',\n\t    value: function downgrade() {\n\t      this.removeListeners();\n\t    }\n\t  }, {\n\t    key: 'element',\n\t    get: function get() {\n\t      return this.element_;\n\t    }\n\t  }, {\n\t    key: 'input',\n\t    get: function get() {\n\t      return this.input_;\n\t    }\n\t  }, {\n\t    key: 'options',\n\t    get: function get() {\n\t      return this.options_;\n\t    }\n\t  }]);\n\t  return FormatField;\n\t}(), _class.timer = null, _temp);\n\t\n\t\n\t(function () {\n\t  'use strict';\n\t\n\t  /**\n\t   * @constructor\n\t   * @param {HTMLElement} element The element that will be upgraded.\n\t   */\n\t\n\t  var MaterialExtFormatfield = function MaterialExtFormatfield(element) {\n\t    this.element_ = element;\n\t    this.formatField_ = null;\n\t\n\t    // Initialize instance.\n\t    this.init();\n\t  };\n\t  window['MaterialExtFormatfield'] = MaterialExtFormatfield;\n\t\n\t  /**\n\t   * Initialize component\n\t   */\n\t  MaterialExtFormatfield.prototype.init = function () {\n\t    if (this.element_) {\n\t      this.element_.classList.add(_constants.IS_UPGRADED);\n\t      this.formatField_ = new FormatField(this.element_);\n\t\n\t      // Listen to 'mdl-componentdowngraded' event\n\t      this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Get options object\n\t   *\n\t   * @public\n\t   *\n\t   * @returns {Object} the options object\n\t   */\n\t  MaterialExtFormatfield.prototype.getOptions = function () {\n\t    return this.formatField_.options;\n\t  };\n\t  MaterialExtFormatfield.prototype['getOptions'] = MaterialExtFormatfield.prototype.getOptions;\n\t\n\t  /**\n\t   * A unformatted value is a string value where the locale specific decimal separator\n\t   * is replaced with a '.' separator and group separators are stripped.\n\t   * The returned value is suitable for parsing to a JavaScript numerical value.\n\t   *\n\t   * @example\n\t   * input.value = '1 234,5';\n\t   * inputElement.MaterialExtFormatfield.getUnformattedValue();\n\t   * // Returns '1234.5'\n\t   *\n\t   * @public\n\t   *\n\t   * @returns {String} the unformatted value\n\t   */\n\t  MaterialExtFormatfield.prototype.getUnformattedValue = function () {\n\t    return this.formatField_.unformat();\n\t  };\n\t  MaterialExtFormatfield.prototype['getUnformattedValue'] = MaterialExtFormatfield.prototype.getUnformattedValue;\n\t\n\t  /*\n\t   * Downgrade component\n\t   * E.g remove listeners and clean up resources\n\t   */\n\t  MaterialExtFormatfield.prototype.mdlDowngrade_ = function () {\n\t    this.formatField_.downgrade();\n\t  };\n\t\n\t  // The component registers itself. It can assume componentHandler is available\n\t  // in the global scope.\n\t  /* eslint no-undef: 0 */\n\t  componentHandler.register({\n\t    constructor: MaterialExtFormatfield,\n\t    classAsString: FORMAT_FIELD_COMPONENT,\n\t    cssClass: JS_FORMAT_FIELD,\n\t    widget: true\n\t  });\n\t})();\n\n/***/ },\n/* 53 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t__webpack_require__(59);\n\t\n\t__webpack_require__(49);\n\t\n\t__webpack_require__(51);\n\t\n\t__webpack_require__(50);\n\t\n\t__webpack_require__(54);\n\t\n\t__webpack_require__(55);\n\t\n\t__webpack_require__(56);\n\t\n\t__webpack_require__(57);\n\t\n\t__webpack_require__(52);\n\t\n\t__webpack_require__(58);\n\n/***/ },\n/* 54 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _toConsumableArray2 = __webpack_require__(8);\n\t\n\tvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\t\n\tvar _constants = __webpack_require__(2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar MDL_RIPPLE_CONTAINER = 'mdlext-lightboard__slide__ripple-container'; /**\n\t                                                                          * @license\n\t                                                                          * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t                                                                          *\n\t                                                                          * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t                                                                          * you may not use this file except in compliance with the License.\n\t                                                                          * You may obtain a copy of the License at\n\t                                                                          *\n\t                                                                          *      http://www.apache.org/licenses/LICENSE-2.0\n\t                                                                          *\n\t                                                                          * Unless required by applicable law or agreed to in writing, software\n\t                                                                          * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t                                                                          * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t                                                                          * See the License for the specific language governing permissions and\n\t                                                                          * limitations under the License.\n\t                                                                          *\n\t                                                                          * This code is built with Google Material Design Lite,\n\t                                                                          * which is Licensed under the Apache License, Version 2.0\n\t                                                                          */\n\t\n\t/**\n\t * A lightboard is a translucent surface illuminated from behind, used for situations\n\t * where a shape laid upon the surface needs to be seen with high contrast. In the \"old days\" of photography\n\t * photograpers used a lightboard to get a quick view of their slides. The goal is to create a responsive lightbox\n\t * design, based on flex layout, similar to what is used in Adobe LightRoom to browse images.\n\t */\n\t\n\t(function () {\n\t  'use strict';\n\t\n\t  //const LIGHTBOARD = 'mdlext-lightboard';\n\t\n\t  var LIGHTBOARD_ROLE = 'grid';\n\t  var SLIDE = 'mdlext-lightboard__slide';\n\t  var SLIDE_ROLE = 'gridcell';\n\t  var SLIDE_TABSTOP = 'mdlext-lightboard__slide__frame';\n\t  /**\n\t   * @constructor\n\t   * @param {Element} element The element that will be upgraded.\n\t   */\n\t  var MaterialExtLightboard = function MaterialExtLightboard(element) {\n\t    // Stores the element.\n\t    this.element_ = element;\n\t\n\t    // Initialize instance.\n\t    this.init();\n\t  };\n\t  window['MaterialExtLightboard'] = MaterialExtLightboard;\n\t\n\t  // Helpers\n\t  var getSlide = function getSlide(element) {\n\t    return element ? element.closest('.' + SLIDE) : null;\n\t  };\n\t\n\t  // Private methods.\n\t\n\t  /**\n\t   * Select a slide, i.e. set aria-selected=\"true\"\n\t   * @param element\n\t   * @private\n\t   */\n\t  MaterialExtLightboard.prototype.selectSlide_ = function (element) {\n\t    var slide = getSlide(element);\n\t    if (slide && !slide.hasAttribute('aria-selected')) {\n\t      [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE + '[aria-selected=\"true\"]'))).forEach(function (selectedSlide) {\n\t        return selectedSlide.removeAttribute('aria-selected');\n\t      });\n\t\n\t      slide.setAttribute('aria-selected', 'true');\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Dispatch select event\n\t   * @param {Element} slide The slide that caused the event\n\t   * @private\n\t   */\n\t  MaterialExtLightboard.prototype.dispatchSelectEvent_ = function (slide) {\n\t    this.element_.dispatchEvent(new CustomEvent('select', {\n\t      bubbles: true,\n\t      cancelable: true,\n\t      detail: { source: slide }\n\t    }));\n\t  };\n\t\n\t  /**\n\t   * Handles custom command event, 'first', 'next', 'prev', 'last', 'select' or upgrade\n\t   * @param event. A custom event\n\t   * @private\n\t   */\n\t  MaterialExtLightboard.prototype.commandHandler_ = function (event) {\n\t    event.preventDefault();\n\t    event.stopPropagation();\n\t\n\t    if (event && event.detail) {\n\t      this.command(event.detail);\n\t    }\n\t  };\n\t\n\t  // Public methods\n\t\n\t  /**\n\t   * Initialize lightboard slides\n\t   * @public\n\t   */\n\t  MaterialExtLightboard.prototype.upgradeSlides = function () {\n\t\n\t    var addRipple = function addRipple(slide) {\n\t      // Use slide frame as ripple container\n\t      if (!slide.querySelector('.' + MDL_RIPPLE_CONTAINER)) {\n\t        var a = slide.querySelector('.' + SLIDE_TABSTOP);\n\t        if (a) {\n\t          var rippleContainer = a;\n\t          rippleContainer.classList.add(MDL_RIPPLE_CONTAINER);\n\t          rippleContainer.classList.add(_constants.MDL_RIPPLE_EFFECT);\n\t          var ripple = document.createElement('span');\n\t          ripple.classList.add(_constants.MDL_RIPPLE);\n\t          rippleContainer.appendChild(ripple);\n\t          componentHandler.upgradeElement(rippleContainer, _constants.MDL_RIPPLE_COMPONENT);\n\t        }\n\t      }\n\t    };\n\t\n\t    var hasRippleEffect = this.element_.classList.contains(_constants.MDL_RIPPLE_EFFECT);\n\t\n\t    [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + SLIDE))).forEach(function (slide) {\n\t\n\t      slide.setAttribute('role', SLIDE_ROLE);\n\t\n\t      if (!slide.querySelector('a')) {\n\t        slide.setAttribute('tabindex', '0');\n\t      }\n\t      if (hasRippleEffect) {\n\t        addRipple(slide);\n\t      }\n\t    });\n\t  };\n\t  MaterialExtLightboard.prototype['upgradeSlides'] = MaterialExtLightboard.prototype.upgradeSlides;\n\t\n\t  /**\n\t   * Execute command\n\t   * @param detail\n\t   * @public\n\t   */\n\t  MaterialExtLightboard.prototype.command = function (detail) {\n\t    var _this = this;\n\t\n\t    var firstSlide = function firstSlide() {\n\t      return _this.element_.querySelector('.' + SLIDE + ':first-child');\n\t    };\n\t\n\t    var lastSlide = function lastSlide() {\n\t      return _this.element_.querySelector('.' + SLIDE + ':last-child');\n\t    };\n\t\n\t    var nextSlide = function nextSlide() {\n\t      var slide = _this.element_.querySelector('.' + SLIDE + '[aria-selected=\"true\"]').nextElementSibling;\n\t      return slide ? slide : firstSlide();\n\t    };\n\t\n\t    var prevSlide = function prevSlide() {\n\t      var slide = _this.element_.querySelector('.' + SLIDE + '[aria-selected=\"true\"]').previousElementSibling;\n\t      return slide ? slide : lastSlide();\n\t    };\n\t\n\t    if (detail && detail.action) {\n\t      var action = detail.action,\n\t          target = detail.target;\n\t\n\t\n\t      var slide = void 0;\n\t      switch (action.toLowerCase()) {\n\t        case 'select':\n\t          slide = getSlide(target);\n\t          this.dispatchSelectEvent_(slide);\n\t          break;\n\t        case 'first':\n\t          slide = firstSlide();\n\t          break;\n\t        case 'next':\n\t          slide = nextSlide();\n\t          break;\n\t        case 'prev':\n\t          slide = prevSlide();\n\t          break;\n\t        case 'last':\n\t          slide = lastSlide();\n\t          break;\n\t        case 'upgrade':\n\t          this.upgradeSlides();\n\t          break;\n\t        default:\n\t          throw new Error('Unknown action \"' + action + '\". Action must be one of \"first\", \"next\", \"prev\", \"last\", \"select\" or \"upgrade\"');\n\t      }\n\t\n\t      if (slide) {\n\t        var a = slide.querySelector('a');\n\t        if (a) {\n\t          a.focus();\n\t        } else {\n\t          slide.focus();\n\t        }\n\t\n\t        // Workaround for JSDom testing:\n\t        // In JsDom 'element.focus()' does not trigger any focus event\n\t        if (!slide.hasAttribute('aria-selected')) {\n\t          this.selectSlide_(slide);\n\t        }\n\t      }\n\t    }\n\t  };\n\t  MaterialExtLightboard.prototype['command'] = MaterialExtLightboard.prototype.command;\n\t\n\t  /**\n\t   * Initialize component\n\t   */\n\t  MaterialExtLightboard.prototype.init = function () {\n\t    var _this2 = this;\n\t\n\t    var keydownHandler = function keydownHandler(event) {\n\t\n\t      if (event.target !== _this2.element_) {\n\t        var action = void 0;\n\t        var target = void 0;\n\t        switch (event.keyCode) {\n\t          case _constants.VK_HOME:\n\t            action = 'first';\n\t            break;\n\t          case _constants.VK_END:\n\t            action = 'last';\n\t            break;\n\t          case _constants.VK_ARROW_UP:\n\t          case _constants.VK_ARROW_LEFT:\n\t            action = 'prev';\n\t            break;\n\t          case _constants.VK_ARROW_DOWN:\n\t          case _constants.VK_ARROW_RIGHT:\n\t            action = 'next';\n\t            break;\n\t          case _constants.VK_ENTER:\n\t          case _constants.VK_SPACE:\n\t            action = 'select';\n\t            target = event.target;\n\t            break;\n\t        }\n\t        if (action) {\n\t          event.preventDefault();\n\t          event.stopPropagation();\n\t          _this2.command({ action: action, target: target });\n\t        }\n\t      }\n\t    };\n\t\n\t    var clickHandler = function clickHandler(event) {\n\t      event.preventDefault();\n\t      event.stopPropagation();\n\t\n\t      if (event.target !== _this2.element_) {\n\t        _this2.command({ action: 'select', target: event.target });\n\t      }\n\t    };\n\t\n\t    var focusHandler = function focusHandler(event) {\n\t      event.preventDefault();\n\t      event.stopPropagation();\n\t\n\t      if (event.target !== _this2.element_) {\n\t        _this2.selectSlide_(event.target);\n\t      }\n\t    };\n\t\n\t    if (this.element_) {\n\t      this.element_.setAttribute('role', LIGHTBOARD_ROLE);\n\t\n\t      if (this.element_.classList.contains(_constants.MDL_RIPPLE_EFFECT)) {\n\t        this.element_.classList.add(_constants.MDL_RIPPLE_EFFECT_IGNORE_EVENTS);\n\t      }\n\t\n\t      // Remove listeners, just in case ...\n\t      this.element_.removeEventListener('command', this.commandHandler_);\n\t      this.element_.removeEventListener('keydown', keydownHandler);\n\t      this.element_.removeEventListener('click', clickHandler);\n\t      this.element_.removeEventListener('focus', focusHandler);\n\t\n\t      this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\t      this.element_.addEventListener('keydown', keydownHandler, true);\n\t      this.element_.addEventListener('click', clickHandler, true);\n\t      this.element_.addEventListener('focus', focusHandler, true);\n\t\n\t      this.upgradeSlides();\n\t\n\t      this.element_.classList.add(_constants.IS_UPGRADED);\n\t    }\n\t  };\n\t\n\t  // The component registers itself. It can assume componentHandler is available\n\t  // in the global scope.\n\t  /* eslint no-undef: 0 */\n\t  /* jshint undef:false */\n\t  componentHandler.register({\n\t    constructor: MaterialExtLightboard,\n\t    classAsString: 'MaterialExtLightboard',\n\t    cssClass: 'mdlext-js-lightboard',\n\t    widget: true\n\t  });\n\t})();\n\n/***/ },\n/* 55 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _toConsumableArray2 = __webpack_require__(8);\n\t\n\tvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\t\n\tvar _isInteger = __webpack_require__(32);\n\t\n\tvar _isInteger2 = _interopRequireDefault(_isInteger);\n\t\n\tvar _slicedToArray2 = __webpack_require__(67);\n\t\n\tvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\t\n\tvar _entries = __webpack_require__(64);\n\t\n\tvar _entries2 = _interopRequireDefault(_entries);\n\t\n\tvar _getIterator2 = __webpack_require__(31);\n\t\n\tvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\t\n\tvar _fullThrottle = __webpack_require__(13);\n\t\n\tvar _fullThrottle2 = _interopRequireDefault(_fullThrottle);\n\t\n\tvar _constants = __webpack_require__(2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t *      http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/**\n\t * Responsive Lightbox\n\t */\n\t\n\t(function () {\n\t  'use strict';\n\t\n\t  var LIGHTBOX = 'mdlext-lightbox';\n\t  var LIGHTBOX_SLIDER = 'mdlext-lightbox__slider';\n\t  var LIGHTBOX_SLIDER_SLIDE = 'mdlext-lightbox__slider__slide';\n\t  var STICKY_FOOTER = 'mdlext-lightbox--sticky-footer';\n\t  var BUTTON = 'mdl-button';\n\t\n\t  /**\n\t   * https://github.com/google/material-design-lite/issues/4205\n\t   * @constructor\n\t   * @param {Element} element The element that will be upgraded.\n\t   */\n\t  var MaterialExtLightbox = function MaterialExtLightbox(element) {\n\t    // Stores the element.\n\t    this.element_ = element;\n\t\n\t    // Initialize instance.\n\t    this.init();\n\t  };\n\t  window['MaterialExtLightbox'] = MaterialExtLightbox;\n\t\n\t  /**\n\t   * Handle keypress\n\t   * @param event\n\t   * @private\n\t   */\n\t  MaterialExtLightbox.prototype.keyDownHandler_ = function (event) {\n\t\n\t    if (event) {\n\t      if (event.keyCode === _constants.VK_ESC || event.keyCode === _constants.VK_SPACE || event.keyCode === _constants.VK_END || event.keyCode === _constants.VK_HOME || event.keyCode === _constants.VK_ARROW_UP || event.keyCode === _constants.VK_ARROW_LEFT || event.keyCode === _constants.VK_ARROW_DOWN || event.keyCode === _constants.VK_ARROW_RIGHT) {\n\t\n\t        if (event.keyCode !== _constants.VK_ESC) {\n\t          event.preventDefault();\n\t          event.stopPropagation();\n\t        }\n\t\n\t        var action = 'first';\n\t        if (event.keyCode === _constants.VK_END) {\n\t          action = 'last';\n\t        } else if (event.keyCode === _constants.VK_ARROW_UP || event.keyCode === _constants.VK_ARROW_LEFT) {\n\t          action = 'prev';\n\t        } else if (event.keyCode === _constants.VK_ARROW_DOWN || event.keyCode === _constants.VK_ARROW_RIGHT) {\n\t          action = 'next';\n\t        } else if (event.keyCode === _constants.VK_SPACE) {\n\t          action = 'select';\n\t        } else if (event.keyCode === _constants.VK_ESC) {\n\t          action = 'cancel';\n\t        }\n\t\n\t        dispatchAction_(action, this);\n\t      }\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Handle button clicks\n\t   * @param event\n\t   * @private\n\t   */\n\t  MaterialExtLightbox.prototype.buttonClickHandler_ = function (event) {\n\t\n\t    if (event) {\n\t      event.preventDefault();\n\t      event.stopPropagation();\n\t\n\t      dispatchAction_(this.getAttribute('data-action') || '', this);\n\t\n\t      var n = this.closest('.' + LIGHTBOX);\n\t      if (n) {\n\t        n.focus();\n\t      }\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Dispatches an action custom event\n\t   * @param action\n\t   * @param source\n\t   * @param target\n\t   * @private\n\t   */\n\t  var dispatchAction_ = function dispatchAction_(action, source) {\n\t    var target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : source;\n\t\n\t\n\t    target.dispatchEvent(new CustomEvent('action', {\n\t      bubbles: true,\n\t      cancelable: true,\n\t      detail: {\n\t        action: action || '',\n\t        source: source\n\t      }\n\t    }));\n\t  };\n\t\n\t  /**\n\t   * Reposition dialog if component parent element is \"DIALOG\"\n\t   * @param lightboxElement\n\t   * @private\n\t   */\n\t  var repositionDialog_ = function repositionDialog_(lightboxElement) {\n\t    var footerHeight = function footerHeight(footer, isSticky) {\n\t      return isSticky && footer ? footer.offsetHeight : 0;\n\t    };\n\t\n\t    var reposition = function reposition(dialog, fh) {\n\t      if (window.getComputedStyle(dialog).position === 'absolute') {\n\t        var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;\n\t        var topValue = scrollTop + (window.innerHeight - dialog.offsetHeight - fh) / 2;\n\t        dialog.style.top = Math.max(scrollTop, topValue) + 'px';\n\t      }\n\t    };\n\t\n\t    var p = lightboxElement.parentNode;\n\t    var dialog = p && p.nodeName === 'DIALOG' ? p : null;\n\t\n\t    if (dialog && dialog.hasAttribute('open')) {\n\t      lightboxElement.style.width = 'auto';\n\t      lightboxElement.style.maxWidth = '100%';\n\t      var img = lightboxElement.querySelector('img');\n\t      if (img) {\n\t        lightboxElement.style.maxWidth = img.naturalWidth !== undefined ? img.naturalWidth + 'px' : img.width + 'px' || '100%';\n\t      }\n\t\n\t      var fh = footerHeight(lightboxElement.querySelector('footer'), lightboxElement.classList.contains(STICKY_FOOTER));\n\t      var vh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - fh;\n\t      if (dialog.offsetHeight > vh) {\n\t        var n = 0;\n\t        while (dialog.offsetHeight > vh && ++n < 4) {\n\t          lightboxElement.style.width = lightboxElement.offsetWidth * vh / lightboxElement.offsetHeight + 'px';\n\t        }\n\t      }\n\t      reposition(dialog, fh);\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Handle image load\n\t   * @param event\n\t   * @private\n\t   */\n\t\n\t  MaterialExtLightbox.prototype.imgLoadHandler_ = function () /*event*/{\n\t    repositionDialog_(this);\n\t  };\n\t\n\t  /**\n\t   * Handle image drag\n\t   * @param event\n\t   * @private\n\t     */\n\t  MaterialExtLightbox.prototype.imgDragHandler_ = function (event) {\n\t\n\t    var setStyles = function setStyles(element, properties) {\n\t      //noinspection JSAnnotator\n\t      var _iteratorNormalCompletion = true;\n\t      var _didIteratorError = false;\n\t      var _iteratorError = undefined;\n\t\n\t      try {\n\t        for (var _iterator = (0, _getIterator3.default)((0, _entries2.default)(properties)), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t          var _step$value = (0, _slicedToArray3.default)(_step.value, 2),\n\t              key = _step$value[0],\n\t              value = _step$value[1];\n\t\n\t          element.style[key] = value;\n\t        }\n\t        // ... or:\n\t        //for (const key in properties) {\n\t        //  element.style[key] = properties[key];\n\t        //}\n\t      } catch (err) {\n\t        _didIteratorError = true;\n\t        _iteratorError = err;\n\t      } finally {\n\t        try {\n\t          if (!_iteratorNormalCompletion && _iterator.return) {\n\t            _iterator.return();\n\t          }\n\t        } finally {\n\t          if (_didIteratorError) {\n\t            throw _iteratorError;\n\t          }\n\t        }\n\t      }\n\t    };\n\t\n\t    event.preventDefault();\n\t    //event.stopPropagation();\n\t\n\t    var x = event.clientX || (event.touches !== undefined ? event.touches[0].clientX : 0);\n\t\n\t    var img = this;\n\t    img.style.opacity = '0.2';\n\t\n\t    var slider = document.createElement('div');\n\t    slider.classList.add(LIGHTBOX_SLIDER);\n\t    setStyles(slider, { 'width': img.offsetWidth + 'px', 'height': img.offsetHeight + 'px' });\n\t\n\t    var slide = document.createElement('div');\n\t    slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n\t    slide.textContent = '>';\n\t    setStyles(slide, {\n\t      'width': img.offsetWidth + 'px',\n\t      'height': img.offsetHeight + 'px',\n\t      'line-height': img.offsetHeight + 'px',\n\t      'font-size': img.offsetHeight / 4 + 'px',\n\t      'text-align': 'right',\n\t      'background-image': 'url(\"' + (img.getAttribute('data-img-url-prev') || '') + '\")'\n\t    });\n\t    slider.appendChild(slide);\n\t\n\t    slide = document.createElement('div');\n\t    slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n\t    setStyles(slide, {\n\t      'width': img.offsetWidth + 'px',\n\t      'height': img.offsetHeight + 'px',\n\t      'background-image': 'url(\"' + img.src + '\")'\n\t    });\n\t    slider.appendChild(slide);\n\t\n\t    slide = document.createElement('div');\n\t    slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n\t    slide.textContent = '<';\n\t    setStyles(slide, {\n\t      'width': img.offsetWidth + 'px',\n\t      'height': img.offsetHeight + 'px',\n\t      'line-height': img.offsetHeight + 'px',\n\t      'font-size': img.offsetHeight / 4 + 'px',\n\t      'text-align': 'left',\n\t      'background-image': 'url(\"' + (img.getAttribute('data-img-url-next') || '') + '\")'\n\t    });\n\t    slider.appendChild(slide);\n\t\n\t    img.parentNode.appendChild(slider);\n\t\n\t    // drag handler\n\t    var drag = function drag(e) {\n\t      e.preventDefault();\n\t      var dx = (e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0)) - x; // TODO: maybe rewrite to improve performance\n\t\n\t      if (slider.offsetWidth - Math.abs(dx) > 19) {\n\t        slider.style.left = dx + 'px';\n\t      }\n\t    };\n\t\n\t    // end drag handler\n\t    var endDrag = function endDrag(e) {\n\t      e.preventDefault();\n\t      //e.stopPropagation();\n\t\n\t      window.removeEventListener('mousemove', drag);\n\t      window.removeEventListener('touchmove', drag);\n\t      window.removeEventListener('mouseup', endDrag);\n\t      window.removeEventListener('touchend', endDrag);\n\t\n\t      var dx = slider.offsetLeft;\n\t      img.parentNode.removeChild(slider);\n\t      img.style.opacity = '1.0';\n\t\n\t      if (Math.abs(dx) > 19) {\n\t        dispatchAction_(dx > 0 ? 'prev' : 'next', img);\n\t      }\n\t    };\n\t\n\t    window.addEventListener('mousemove', drag);\n\t    window.addEventListener('touchmove', drag);\n\t    window.addEventListener('mouseup', endDrag);\n\t    window.addEventListener('touchend', endDrag);\n\t  };\n\t\n\t  /**\n\t   * Initialize component\n\t   */\n\t  MaterialExtLightbox.prototype.init = function () {\n\t    var _this = this;\n\t\n\t    if (this.element_) {\n\t      // Do the init required for this component to work\n\t      this.element_.addEventListener('keydown', this.keyDownHandler_.bind(this.element_), true);\n\t\n\t      if (!(0, _isInteger2.default)(this.element_.getAttribute('tabindex'))) {\n\t        this.element_.setAttribute('tabindex', 1);\n\t      }\n\t\n\t      [].concat((0, _toConsumableArray3.default)(this.element_.querySelectorAll('.' + BUTTON))).forEach(function (button) {\n\t        return button.addEventListener('click', _this.buttonClickHandler_.bind(button), false);\n\t      });\n\t\n\t      var figcaption = this.element_.querySelector('figcaption');\n\t      if (figcaption) {\n\t        figcaption.addEventListener('click', this.buttonClickHandler_.bind(figcaption), false);\n\t      }\n\t\n\t      var footer = this.element_.querySelector('footer');\n\t      if (footer) {\n\t        footer.addEventListener('click', this.buttonClickHandler_.bind(footer), false);\n\t      }\n\t\n\t      var img = this.element_.querySelector('img');\n\t      if (img) {\n\t        img.addEventListener('load', this.imgLoadHandler_.bind(this.element_), false);\n\t        img.addEventListener('click', function (e) {\n\t          return e.preventDefault();\n\t        }, true);\n\t        img.addEventListener('mousedown', this.imgDragHandler_.bind(img), true);\n\t        img.addEventListener('touchstart', this.imgDragHandler_.bind(img), true);\n\t      }\n\t      window.addEventListener('resize', (0, _fullThrottle2.default)(function () {\n\t        return repositionDialog_(_this.element_);\n\t      }));\n\t      window.addEventListener('orientationchange', function () {\n\t        return repositionDialog_(_this.element_);\n\t      });\n\t\n\t      // Set upgraded flag\n\t      this.element_.classList.add(_constants.IS_UPGRADED);\n\t    }\n\t  };\n\t\n\t  /*\n\t   * Downgrade component\n\t   * E.g remove listeners and clean up resources\n\t   *\n\t   * Nothing to downgrade\n\t   *\n\t  MaterialExtLightbox.prototype.mdlDowngrade_ = function() {\n\t  };\n\t  */\n\t\n\t  /**\n\t   * The component registers itself. It can assume componentHandler is available in the global scope.\n\t   */\n\t  /* jshint undef:false */\n\t  componentHandler.register({\n\t    constructor: MaterialExtLightbox,\n\t    classAsString: 'MaterialExtLightbox',\n\t    cssClass: 'mdlext-js-lightbox'\n\t  });\n\t})();\n\n/***/ },\n/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _classCallCheck2 = __webpack_require__(22);\n\t\n\tvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\t\n\tvar _createClass2 = __webpack_require__(23);\n\t\n\tvar _createClass3 = _interopRequireDefault(_createClass2);\n\t\n\tvar _toConsumableArray2 = __webpack_require__(8);\n\t\n\tvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\t\n\tvar _stringUtils = __webpack_require__(15);\n\t\n\tvar _fullThrottle = __webpack_require__(13);\n\t\n\tvar _fullThrottle2 = _interopRequireDefault(_fullThrottle);\n\t\n\tvar _constants = __webpack_require__(2);\n\t\n\tvar _domUtils = __webpack_require__(21);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t *      http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/**\n\t * A menu button is a button that opens a menu. It is often styled as a\n\t * typical push button with a downward pointing arrow or triangle to hint\n\t * that activating the button will display a menu.\n\t */\n\tvar JS_MENU_BUTTON = 'mdlext-js-menu-button';\n\tvar MENU_BUTTON_MENU = 'mdlext-menu';\n\tvar MENU_BUTTON_MENU_ITEM = 'mdlext-menu__item';\n\tvar MENU_BUTTON_MENU_ITEM_SEPARATOR = 'mdlext-menu__item-separator';\n\t//const MDL_LAYOUT_CONTENT = 'mdl-layout__content';\n\t\n\t/**\n\t * Creates the menu controlled by the menu button\n\t * @param element\n\t * @return {{element: Element, selected: Element, open: (function(*=)), removeListeners: (function()), downgrade: (function())}}\n\t */\n\t\n\tvar menuFactory = function menuFactory(element) {\n\t\n\t  var ariaControls = null;\n\t  var parentNode = null;\n\t\n\t  var removeAllSelected = function removeAllSelected() {\n\t    [].concat((0, _toConsumableArray3.default)(element.querySelectorAll('.' + MENU_BUTTON_MENU_ITEM + '[aria-selected=\"true\"]'))).forEach(function (selectedItem) {\n\t      return selectedItem.removeAttribute('aria-selected');\n\t    });\n\t  };\n\t\n\t  var setSelected = function setSelected(item) {\n\t    var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\t\n\t    if (force || item && !item.hasAttribute('aria-selected')) {\n\t      removeAllSelected();\n\t      if (item) {\n\t        item.setAttribute('aria-selected', 'true');\n\t      }\n\t    }\n\t  };\n\t\n\t  var getSelected = function getSelected() {\n\t    return element.querySelector('.' + MENU_BUTTON_MENU_ITEM + '[aria-selected=\"true\"]');\n\t  };\n\t\n\t  var isDisabled = function isDisabled(item) {\n\t    return item && item.hasAttribute('disabled');\n\t  };\n\t\n\t  var isSeparator = function isSeparator(item) {\n\t    return item && item.classList.contains(MENU_BUTTON_MENU_ITEM_SEPARATOR);\n\t  };\n\t\n\t  var focus = function focus(item) {\n\t    if (item) {\n\t      item = item.closest('.' + MENU_BUTTON_MENU_ITEM);\n\t    }\n\t    if (item) {\n\t      item.focus();\n\t    }\n\t  };\n\t\n\t  var nextItem = function nextItem(current) {\n\t    var n = current.nextElementSibling;\n\t    if (!n) {\n\t      n = element.firstElementChild;\n\t    }\n\t    if (!isDisabled(n) && !isSeparator(n)) {\n\t      focus(n);\n\t    } else {\n\t      var i = element.children.length;\n\t      while (n && i-- > 0) {\n\t        if (isDisabled(n) || isSeparator(n)) {\n\t          n = n.nextElementSibling;\n\t          if (!n) {\n\t            n = element.firstElementChild;\n\t          }\n\t        } else {\n\t          focus(n);\n\t          break;\n\t        }\n\t      }\n\t    }\n\t  };\n\t\n\t  var previousItem = function previousItem(current) {\n\t    var p = current.previousElementSibling;\n\t    if (!p) {\n\t      p = element.lastElementChild;\n\t    }\n\t    if (!isDisabled(p) && !isSeparator(p)) {\n\t      focus(p);\n\t    } else {\n\t      var i = element.children.length;\n\t      while (p && i-- > 0) {\n\t        if (isDisabled(p) || isSeparator(p)) {\n\t          p = p.previousElementSibling;\n\t          if (!p) {\n\t            p = element.lastElementChild;\n\t          }\n\t        } else {\n\t          focus(p);\n\t          break;\n\t        }\n\t      }\n\t    }\n\t  };\n\t\n\t  var firstItem = function firstItem() {\n\t    var item = element.firstElementChild;\n\t    if (isDisabled(item) || isSeparator(item)) {\n\t      nextItem(item);\n\t    } else {\n\t      focus(item);\n\t    }\n\t  };\n\t\n\t  var lastItem = function lastItem() {\n\t    var item = element.lastElementChild;\n\t    if (isDisabled(item) || isSeparator(item)) {\n\t      previousItem(item);\n\t    } else {\n\t      focus(item);\n\t    }\n\t  };\n\t\n\t  var selectItem = function selectItem(item) {\n\t    if (item && !isDisabled(item) && !isSeparator(item)) {\n\t      setSelected(item);\n\t      close(true, item);\n\t    }\n\t  };\n\t\n\t  var keyDownHandler = function keyDownHandler(event) {\n\t\n\t    var item = event.target.closest('.' + MENU_BUTTON_MENU_ITEM);\n\t\n\t    switch (event.keyCode) {\n\t      case _constants.VK_ARROW_UP:\n\t      case _constants.VK_ARROW_LEFT:\n\t        if (item) {\n\t          previousItem(item);\n\t        } else {\n\t          firstItem();\n\t        }\n\t        break;\n\t\n\t      case _constants.VK_ARROW_DOWN:\n\t      case _constants.VK_ARROW_RIGHT:\n\t        if (item) {\n\t          nextItem(item);\n\t        } else {\n\t          lastItem();\n\t        }\n\t        break;\n\t\n\t      case _constants.VK_HOME:\n\t        firstItem();\n\t        break;\n\t\n\t      case _constants.VK_END:\n\t        lastItem();\n\t        break;\n\t\n\t      case _constants.VK_SPACE:\n\t      case _constants.VK_ENTER:\n\t        selectItem(item);\n\t        break;\n\t\n\t      case _constants.VK_ESC:\n\t        close(true);\n\t        break;\n\t\n\t      case _constants.VK_TAB:\n\t        // We do not have a \"natural\" tab order from menu, so the best we can do is to set focus back to the button\n\t        close(true);\n\t        break;\n\t\n\t      default:\n\t        return;\n\t    }\n\t    event.preventDefault();\n\t  };\n\t\n\t  var blurHandler = function blurHandler(event) {\n\t\n\t    // See: https://github.com/facebook/react/issues/2011\n\t    var t = event.relatedTarget || event.explicitOriginalTarget || // FF\n\t    document.activeElement; // IE11\n\t\n\t    //console.log('***** blur, target, relatedTarget', event.target, t);\n\t\n\t    try {\n\t      if (t) {\n\t        if (t.closest('.' + MENU_BUTTON_MENU) !== element && shouldClose(t)) {\n\t          close();\n\t        }\n\t      } else {\n\t        close();\n\t      }\n\t    } catch (err) {\n\t      // FF throws error: \"TypeError: n.closest is not a function\" if related target is a text node\n\t      close();\n\t    }\n\t  };\n\t\n\t  var clickHandler = function clickHandler(event) {\n\t    //console.log('***** click, target', event.target);\n\t\n\t    event.preventDefault();\n\t    var t = event.target;\n\t    if (t && t.closest('.' + MENU_BUTTON_MENU) === element) {\n\t      var item = t.closest('.' + MENU_BUTTON_MENU_ITEM);\n\t      if (item) {\n\t        selectItem(item);\n\t      }\n\t    } else {\n\t      if (shouldClose(t)) {\n\t        close();\n\t      }\n\t    }\n\t  };\n\t\n\t  var touchStartHandler = function touchStartHandler(event) {\n\t    //console.log('***** touchStart, target', event.target);\n\t\n\t    var t = event.target;\n\t    if (!(t && t.closest('.' + MENU_BUTTON_MENU) === element)) {\n\t      if (event.type === 'touchstart') {\n\t        event.preventDefault();\n\t      }\n\t      close();\n\t    }\n\t  };\n\t\n\t  var addListeners = function addListeners() {\n\t    element.addEventListener('keydown', keyDownHandler, false);\n\t    element.addEventListener('blur', blurHandler, true);\n\t    element.addEventListener('click', clickHandler, true);\n\t    document.documentElement.addEventListener('touchstart', touchStartHandler, true);\n\t  };\n\t\n\t  var _removeListeners = function _removeListeners() {\n\t    element.removeEventListener('keydown', keyDownHandler, false);\n\t    element.removeEventListener('blur', blurHandler, true);\n\t    element.removeEventListener('click', clickHandler, true);\n\t    document.documentElement.removeEventListener('touchstart', touchStartHandler, true);\n\t  };\n\t\n\t  var _open = function _open(controlElement) {\n\t    var position = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'first';\n\t\n\t\n\t    ariaControls = controlElement.closest('.' + JS_MENU_BUTTON);\n\t\n\t    element.style['min-width'] = Math.max(124, controlElement.getBoundingClientRect().width) + 'px';\n\t    element.removeAttribute('hidden');\n\t    (0, _domUtils.tether)(controlElement, element);\n\t\n\t    var item = void 0;\n\t    switch (position.toLowerCase()) {\n\t      case 'first':\n\t        firstItem();\n\t        break;\n\t\n\t      case 'last':\n\t        lastItem();\n\t        break;\n\t\n\t      case 'selected':\n\t        item = getSelected();\n\t        if (item && !item.hasAttribute('disabled')) {\n\t          focus(item);\n\t        } else {\n\t          firstItem();\n\t        }\n\t        break;\n\t    }\n\t\n\t    addListeners();\n\t  };\n\t\n\t  var shouldClose = function shouldClose(target) {\n\t    //console.log('***** shouldClose');\n\t\n\t    var result = false;\n\t    var btn = target && target.closest('.' + JS_MENU_BUTTON) || null;\n\t    if (!btn) {\n\t      result = true;\n\t    } else if (btn.getAttribute('aria-controls') === element.id) {\n\t      if (btn !== ariaControls) {\n\t        result = true;\n\t      }\n\t    } else {\n\t      result = true;\n\t    }\n\t    return result;\n\t  };\n\t\n\t  var close = function close() {\n\t    var forceFocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\t    var item = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\t\n\t    _removeListeners();\n\t\n\t    element.dispatchEvent(new CustomEvent('_closemenu', {\n\t      bubbles: true,\n\t      cancelable: true,\n\t      detail: { forceFocus: forceFocus, item: item }\n\t    }));\n\t  };\n\t\n\t  var addWaiAria = function addWaiAria() {\n\t    if (!element.hasAttribute('id')) {\n\t      // Generate a random id\n\t      element.id = 'menu-button-' + (0, _stringUtils.randomString)();\n\t    }\n\t    element.setAttribute('tabindex', '-1');\n\t    element.setAttribute('role', 'menu');\n\t    element.setAttribute('hidden', '');\n\t\n\t    [].concat((0, _toConsumableArray3.default)(element.querySelectorAll('.' + MENU_BUTTON_MENU_ITEM))).forEach(function (menuitem) {\n\t      menuitem.setAttribute('tabindex', '-1');\n\t      menuitem.setAttribute('role', 'menuitem');\n\t    });\n\t\n\t    [].concat((0, _toConsumableArray3.default)(element.querySelectorAll('.' + MENU_BUTTON_MENU_ITEM_SEPARATOR))).forEach(function (menuitem) {\n\t      menuitem.setAttribute('role', 'separator');\n\t    });\n\t  };\n\t\n\t  var init = function init() {\n\t    addWaiAria();\n\t    parentNode = element.parentNode;\n\t    element.classList.add('is-upgraded');\n\t  };\n\t\n\t  var _downgrade = function _downgrade() {\n\t    _removeListeners();\n\t    if (element.parentNode !== parentNode) {\n\t      parentNode.appendChild(element);\n\t    }\n\t    element.classList.remove('is-upgraded');\n\t  };\n\t\n\t  init();\n\t\n\t  return {\n\t    /**\n\t     * Get the menu element\n\t     * @returns {Element} the menu element\n\t     */\n\t    get element() {\n\t      return element;\n\t    },\n\t\n\t    /**\n\t     * Set selected menu item\n\t     * @param item\n\t     */\n\t    set selected(item) {\n\t      setSelected(item, true);\n\t    },\n\t\n\t    /**\n\t     * Open menu\n\t     * @param {Element} controlElement the element where the menu should be aligned to\n\t     * @param {String} position menuElement item to receive focus after menu element is opened\n\t     */\n\t    open: function open(controlElement) {\n\t      var position = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'first';\n\t      return _open(controlElement, position);\n\t    },\n\t\n\t    /**\n\t     * Remove event listeners.\n\t     */\n\t    removeListeners: function removeListeners() {\n\t      return _removeListeners();\n\t    },\n\t\n\t    /**\n\t     * Downgrade menu\n\t     */\n\t    downgrade: function downgrade() {\n\t      return _downgrade();\n\t    }\n\t  };\n\t};\n\t\n\t/**\n\t * The menubutton component\n\t */\n\t\n\tvar MenuButton = function () {\n\t  function MenuButton(element) {\n\t    var _this = this;\n\t\n\t    (0, _classCallCheck3.default)(this, MenuButton);\n\t\n\t    this.keyDownHandler = function (event) {\n\t      if (!_this.isDisabled()) {\n\t        switch (event.keyCode) {\n\t          case _constants.VK_ARROW_UP:\n\t            _this.openMenu('last');\n\t            break;\n\t\n\t          case _constants.VK_ARROW_DOWN:\n\t            _this.openMenu();\n\t            break;\n\t\n\t          case _constants.VK_SPACE:\n\t          case _constants.VK_ENTER:\n\t            _this.openMenu('selected');\n\t            break;\n\t\n\t          case _constants.VK_ESC:\n\t            _this.closeMenu();\n\t            break;\n\t\n\t          case _constants.VK_TAB:\n\t            _this.closeMenu();\n\t            return;\n\t\n\t          default:\n\t            return;\n\t        }\n\t      }\n\t      //event.stopPropagation();\n\t      event.preventDefault();\n\t    };\n\t\n\t    this.clickHandler = function () {\n\t      if (!_this.isDisabled()) {\n\t        if (_this.element.getAttribute('aria-expanded').toLowerCase() === 'true') {\n\t          _this.closeMenu(true);\n\t        } else {\n\t          _this.openMenu('selected');\n\t        }\n\t      }\n\t    };\n\t\n\t    this.recalcMenuPosition = (0, _fullThrottle2.default)(function () {\n\t      var c = _this.focusElement.getBoundingClientRect();\n\t      var dx = _this.focusElementLastScrollPosition.left - c.left;\n\t      var dy = _this.focusElementLastScrollPosition.top - c.top;\n\t      var left = (parseFloat(_this.menu.element.style.left) || 0) - dx;\n\t      var top = (parseFloat(_this.menu.element.style.top) || 0) - dy;\n\t\n\t      _this.menu.element.style.left = left + 'px';\n\t      _this.menu.element.style.top = top + 'px';\n\t      _this.focusElementLastScrollPosition = c;\n\t    });\n\t\n\t    this.positionChangeHandler = function () {\n\t      _this.recalcMenuPosition(_this);\n\t    };\n\t\n\t    this.closeMenuHandler = function (event) {\n\t      if (event && event.detail) {\n\t        if (event.detail.item && event.detail.item !== _this.selectedItem) {\n\t          _this.selectedItem = event.detail.item;\n\t          _this.dispatchMenuSelect();\n\t        }\n\t        _this.closeMenu(event.detail.forceFocus);\n\t      }\n\t    };\n\t\n\t    this.element = element;\n\t    this.focusElement = undefined;\n\t    this.focusElementLastScrollPosition = undefined;\n\t    this.scrollElements = [];\n\t    this.menu = undefined;\n\t    this.selectedItem = null;\n\t    this.init();\n\t  }\n\t\n\t  /**\n\t   * Re-position menu if content is scrolled, window is resized or orientation change\n\t   * @see https://javascriptweblog.wordpress.com/2015/11/02/of-classes-and-arrow-functions-a-cautionary-tale/\n\t   */\n\t\n\t\n\t  (0, _createClass3.default)(MenuButton, [{\n\t    key: 'dispatchMenuSelect',\n\t    value: function dispatchMenuSelect() {\n\t      this.element.dispatchEvent(new CustomEvent('menuselect', {\n\t        bubbles: true,\n\t        cancelable: true,\n\t        detail: { source: this.selectedItem }\n\t      }));\n\t    }\n\t  }, {\n\t    key: 'isDisabled',\n\t    value: function isDisabled() {\n\t      return this.element.hasAttribute('disabled');\n\t    }\n\t  }, {\n\t    key: 'removeListeners',\n\t    value: function removeListeners() {\n\t      this.element.removeEventListener('keydown', this.keyDownHandler);\n\t      this.element.removeEventListener('click', this.clickHandler);\n\t    }\n\t  }, {\n\t    key: 'openMenu',\n\t    value: function openMenu() {\n\t      var _this2 = this;\n\t\n\t      var position = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';\n\t\n\t\n\t      if (!this.isDisabled() && this.menu) {\n\t\n\t        // Close the menu if button position change\n\t        this.scrollElements = (0, _domUtils.getScrollParents)(this.element);\n\t        this.scrollElements.forEach(function (el) {\n\t          return el.addEventListener('scroll', _this2.positionChangeHandler);\n\t        });\n\t\n\t        window.addEventListener('resize', this.positionChangeHandler);\n\t        window.addEventListener('orientationchange', this.positionChangeHandler);\n\t        this.menu.element.addEventListener('_closemenu', this.closeMenuHandler);\n\t\n\t        this.menu.selected = this.selectedItem;\n\t        this.menu.open(this.focusElement, position);\n\t        this.element.setAttribute('aria-expanded', 'true');\n\t\n\t        this.focusElementLastScrollPosition = this.focusElement.getBoundingClientRect();\n\t      }\n\t    }\n\t  }, {\n\t    key: 'closeMenu',\n\t    value: function closeMenu() {\n\t      var _this3 = this;\n\t\n\t      var forceFocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\t\n\t      if (this.menu) {\n\t        this.menu.removeListeners();\n\t        this.scrollElements.forEach(function (el) {\n\t          return el.removeEventListener('scroll', _this3.positionChangeHandler);\n\t        });\n\t        window.removeEventListener('resize', this.positionChangeHandler);\n\t        window.removeEventListener('orientationchange', this.positionChangeHandler);\n\t        this.menu.element.removeEventListener('_closemenu', this.closeMenuHandler);\n\t\n\t        if (forceFocus) {\n\t          this.focus();\n\t        }\n\t        this.element.setAttribute('aria-expanded', 'false');\n\t        this.menu.element.setAttribute('hidden', '');\n\t      }\n\t    }\n\t  }, {\n\t    key: 'focus',\n\t    value: function focus() {\n\t      if (!this.isDisabled()) {\n\t        this.focusElement.focus();\n\t      }\n\t    }\n\t  }, {\n\t    key: 'init',\n\t    value: function init() {\n\t      var _this4 = this;\n\t\n\t      var addListeners = function addListeners() {\n\t        _this4.element.addEventListener('keydown', _this4.keyDownHandler);\n\t        _this4.element.addEventListener('click', _this4.clickHandler);\n\t      };\n\t\n\t      var addWaiAria = function addWaiAria() {\n\t        _this4.element.setAttribute('role', 'button');\n\t        _this4.element.setAttribute('aria-expanded', 'false');\n\t        _this4.element.setAttribute('aria-haspopup', 'true');\n\t      };\n\t\n\t      var addFocusElement = function addFocusElement() {\n\t        _this4.focusElement = _this4.element.querySelector('input[type=\"text\"]');\n\t        if (!_this4.focusElement) {\n\t          _this4.focusElement = _this4.element;\n\t\n\t          if (!(_this4.focusElement.tagName.toLowerCase() === 'button' || _this4.focusElement.tagName.toLowerCase() === 'input')) {\n\t            if (!_this4.focusElement.hasAttribute('tabindex')) {\n\t              _this4.focusElement.setAttribute('tabindex', '0');\n\t            }\n\t          }\n\t        }\n\t      };\n\t\n\t      var moveElementToDocumentBody = function moveElementToDocumentBody(element) {\n\t        // To position an element on top of all other z-indexed elements, the element should be moved to document.body\n\t        //       See: https://philipwalton.com/articles/what-no-one-told-you-about-z-index/\n\t\n\t        if (element.parentNode !== document.body) {\n\t          return document.body.appendChild(element);\n\t        }\n\t        return element;\n\t      };\n\t\n\t      var findMenuElement = function findMenuElement() {\n\t        var menuElement = void 0;\n\t        var menuElementId = _this4.element.getAttribute('aria-controls');\n\t        if (menuElementId !== null) {\n\t          menuElement = document.querySelector('#' + menuElementId);\n\t        } else {\n\t          menuElement = _this4.element.parentNode.querySelector('.' + MENU_BUTTON_MENU);\n\t        }\n\t        return menuElement;\n\t      };\n\t\n\t      var addMenu = function addMenu() {\n\t        var menuElement = findMenuElement();\n\t        if (menuElement) {\n\t          if (menuElement.componentInstance) {\n\t            _this4.menu = menuElement.componentInstance;\n\t          } else {\n\t            _this4.menu = menuFactory(menuElement);\n\t            menuElement.componentInstance = _this4.menu;\n\t            moveElementToDocumentBody(menuElement);\n\t          }\n\t          _this4.element.setAttribute('aria-controls', _this4.menu.element.id);\n\t        }\n\t      };\n\t\n\t      addFocusElement();\n\t      addWaiAria();\n\t      addMenu();\n\t      this.removeListeners();\n\t      addListeners();\n\t    }\n\t  }, {\n\t    key: 'downgrade',\n\t    value: function downgrade() {\n\t      var _this5 = this;\n\t\n\t      if (this.menu) {\n\t        // Do not downgrade menu if there are other buttons sharing this menu\n\t        var related = [].concat((0, _toConsumableArray3.default)(document.querySelectorAll('.' + JS_MENU_BUTTON + '[aria-controls=\"' + this.element.getAttribute('aria-controls') + '\"]')));\n\t        if (related.filter(function (c) {\n\t          return c !== _this5.element && c.getAttribute('data-upgraded').indexOf('MaterialExtMenuButton') >= 0;\n\t        }).length === 0) {\n\t          this.menu.downgrade();\n\t        }\n\t      }\n\t      this.removeListeners();\n\t    }\n\t  }]);\n\t  return MenuButton;\n\t}();\n\t\n\t(function () {\n\t  'use strict';\n\t\n\t  /**\n\t   * https://github.com/google/material-design-lite/issues/4205\n\t   * @constructor\n\t   * @param {Element} element The element that will be upgraded.\n\t   */\n\t\n\t  var MaterialExtMenuButton = function MaterialExtMenuButton(element) {\n\t    this.element_ = element;\n\t    this.menuButton_ = null;\n\t\n\t    // Initialize instance.\n\t    this.init();\n\t  };\n\t  window['MaterialExtMenuButton'] = MaterialExtMenuButton;\n\t\n\t  // Public methods.\n\t\n\t  /**\n\t   * Get the menu element controlled by this button, null if no menu is controlled by this button\n\t   * @public\n\t   */\n\t  MaterialExtMenuButton.prototype.getMenuElement = function () {\n\t    return this.menuButton_.menu ? this.menuButton_.menu.element : null;\n\t  };\n\t  MaterialExtMenuButton.prototype['getMenuElement'] = MaterialExtMenuButton.prototype.getMenuElement;\n\t\n\t  /**\n\t   * Open menu\n\t   * @public\n\t   * @param {String} position one of \"first\", \"last\" or \"selected\"\n\t   */\n\t  MaterialExtMenuButton.prototype.openMenu = function (position) {\n\t    this.menuButton_.openMenu(position);\n\t  };\n\t  MaterialExtMenuButton.prototype['openMenu'] = MaterialExtMenuButton.prototype.openMenu;\n\t\n\t  /**\n\t   * Close menu\n\t   * @public\n\t   */\n\t  MaterialExtMenuButton.prototype.closeMenu = function () {\n\t    this.menuButton_.closeMenu(true);\n\t  };\n\t  MaterialExtMenuButton.prototype['closeMenu'] = MaterialExtMenuButton.prototype.closeMenu;\n\t\n\t  /**\n\t   * Get selected menu item\n\t   * @public\n\t   * @returns {Element} The selected menu item or null if no item selected\n\t   */\n\t  MaterialExtMenuButton.prototype.getSelectedMenuItem = function () {\n\t    return this.menuButton_.selectedItem;\n\t  };\n\t  MaterialExtMenuButton.prototype['getSelectedMenuItem'] = MaterialExtMenuButton.prototype.getSelectedMenuItem;\n\t\n\t  /**\n\t   * Set (default) selected menu item\n\t   * @param {Element} item\n\t   */\n\t  MaterialExtMenuButton.prototype.setSelectedMenuItem = function (item) {\n\t    this.menuButton_.selectedItem = item;\n\t  };\n\t  MaterialExtMenuButton.prototype['setSelectedMenuItem'] = MaterialExtMenuButton.prototype.setSelectedMenuItem;\n\t\n\t  /**\n\t   * Initialize component\n\t   */\n\t  MaterialExtMenuButton.prototype.init = function () {\n\t    if (this.element_) {\n\t      this.menuButton_ = new MenuButton(this.element_);\n\t      this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));\n\t      this.element_.classList.add(_constants.IS_UPGRADED);\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Downgrade component\n\t   * E.g remove listeners and clean up resources\n\t   */\n\t  MaterialExtMenuButton.prototype.mdlDowngrade_ = function () {\n\t    this.menuButton_.downgrade();\n\t  };\n\t\n\t  // The component registers itself. It can assume componentHandler is available\n\t  // in the global scope.\n\t  /* eslint no-undef: 0 */\n\t  componentHandler.register({\n\t    constructor: MaterialExtMenuButton,\n\t    classAsString: 'MaterialExtMenuButton',\n\t    cssClass: JS_MENU_BUTTON,\n\t    widget: true\n\t  });\n\t})();\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _stringUtils = __webpack_require__(15);\n\t\n\tvar _constants = __webpack_require__(2);\n\t\n\t/**\n\t * @license\n\t * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t *\n\t * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t * you may not use this file except in compliance with the License.\n\t * You may obtain a copy of the License at\n\t *\n\t *      http://www.apache.org/licenses/LICENSE-2.0\n\t *\n\t * Unless required by applicable law or agreed to in writing, software\n\t * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t * See the License for the specific language governing permissions and\n\t * limitations under the License.\n\t *\n\t * This code is built with Google Material Design Lite,\n\t * which is Licensed under the Apache License, Version 2.0\n\t */\n\t\n\t/*\n\t * Copied/Modified from https://github.com/google/material-design-lite/tree/master/src/textfield\n\t */\n\t\n\t(function () {\n\t  'use strict';\n\t\n\t  var LABEL = 'mdlext-selectfield__label';\n\t  var INPUT = 'mdlext-selectfield__select';\n\t\n\t  /**\n\t   * Class constructor for Selectfield MDLEXT component.\n\t   * Implements MDL component design pattern defined at:\n\t   * https://github.com/jasonmayes/mdl-component-design-pattern\n\t   *\n\t   * @constructor\n\t   * @param {HTMLElement} element The element that will be upgraded.\n\t   */\n\t  var MaterialExtSelectfield = function MaterialExtSelectfield(element) {\n\t    this.element_ = element;\n\t    this.init(); // Initialize instance.\n\t  };\n\t\n\t  window['MaterialExtSelectfield'] = MaterialExtSelectfield;\n\t\n\t  /**\n\t   * Handle focus.\n\t   *\n\t   * @param {Event} event The event that fired.\n\t   * @private\n\t   */\n\t  /*eslint no-unused-vars: 0*/\n\t  MaterialExtSelectfield.prototype.onFocus_ = function () /*event*/{\n\t    this.element_.classList.add(_constants.IS_FOCUSED);\n\t  };\n\t\n\t  /**\n\t   * Handle lost focus.\n\t   *\n\t   * @param {Event} event The event that fired.\n\t   * @private\n\t   */\n\t  /*eslint no-unused-vars: 0*/\n\t  MaterialExtSelectfield.prototype.onBlur_ = function () /*event*/{\n\t    this.element_.classList.remove(_constants.IS_FOCUSED);\n\t  };\n\t\n\t  /**\n\t   * Handle reset event from out side.\n\t   *\n\t   * @param {Event} event The event that fired.\n\t   * @private\n\t   */\n\t  MaterialExtSelectfield.prototype.onReset_ = function () /*event*/{\n\t    this.updateClasses_();\n\t  };\n\t\n\t  /**\n\t   * Handle class updates.\n\t   *\n\t   * @private\n\t   */\n\t  MaterialExtSelectfield.prototype.updateClasses_ = function () {\n\t    this.checkDisabled();\n\t    this.checkValidity();\n\t    this.checkDirty();\n\t    this.checkFocus();\n\t  };\n\t\n\t  // Public methods.\n\t\n\t  /**\n\t   * Check the disabled state and update field accordingly.\n\t   *\n\t   * @public\n\t   */\n\t  MaterialExtSelectfield.prototype.checkDisabled = function () {\n\t    if (this.select_.disabled) {\n\t      this.element_.classList.add(_constants.IS_DISABLED);\n\t    } else {\n\t      this.element_.classList.remove(_constants.IS_DISABLED);\n\t    }\n\t  };\n\t  MaterialExtSelectfield.prototype['checkDisabled'] = MaterialExtSelectfield.prototype.checkDisabled;\n\t\n\t  /**\n\t   * Check the focus state and update field accordingly.\n\t   *\n\t   * @public\n\t   */\n\t  MaterialExtSelectfield.prototype.checkFocus = function () {\n\t    // Note: element.querySelector(':focus') always return null in JsDom, even if select element has focus\n\t    /*eslint no-extra-boolean-cast: 0*/\n\t    if (Boolean(this.element_.querySelector(':focus'))) {\n\t      this.element_.classList.add(_constants.IS_FOCUSED);\n\t    } else {\n\t      this.element_.classList.remove(_constants.IS_FOCUSED);\n\t    }\n\t  };\n\t\n\t  MaterialExtSelectfield.prototype['checkFocus'] = MaterialExtSelectfield.prototype.checkFocus;\n\t\n\t  /**\n\t   * Check the validity state and update field accordingly.\n\t   *\n\t   * @public\n\t   */\n\t  MaterialExtSelectfield.prototype.checkValidity = function () {\n\t\n\t    /* Don't think it makes any sense to check validity.\n\t       Tests I've done, so far, indicates that setting an illegal value via JS returns selectedIndex=0\n\t     if (this.select_.validity) {\n\t      if (this.select_.validity.valid) {\n\t        this.element_.classList.remove(this.CssClasses_.IS_INVALID);\n\t      } else {\n\t        this.element_.classList.add(this.CssClasses_.IS_INVALID);\n\t      }\n\t    }\n\t    */\n\t  };\n\t\n\t  MaterialExtSelectfield.prototype['checkValidity'] = MaterialExtSelectfield.prototype.checkValidity;\n\t\n\t  /**\n\t   * Check the dirty state and update field accordingly.\n\t   *\n\t   * @public\n\t   */\n\t  MaterialExtSelectfield.prototype.checkDirty = function () {\n\t    if (this.select_.value && this.select_.value.length > 0) {\n\t      this.element_.classList.add(_constants.IS_DIRTY);\n\t    } else {\n\t      this.element_.classList.remove(_constants.IS_DIRTY);\n\t    }\n\t  };\n\t\n\t  MaterialExtSelectfield.prototype['checkDirty'] = MaterialExtSelectfield.prototype.checkDirty;\n\t\n\t  /**\n\t   * Disable select field.\n\t   *\n\t   * @public\n\t   */\n\t  MaterialExtSelectfield.prototype.disable = function () {\n\t    this.select_.disabled = true;\n\t    this.updateClasses_();\n\t  };\n\t\n\t  MaterialExtSelectfield.prototype['disable'] = MaterialExtSelectfield.prototype.disable;\n\t\n\t  /**\n\t   * Enable select field.\n\t   *\n\t   * @public\n\t   */\n\t  MaterialExtSelectfield.prototype.enable = function () {\n\t    this.select_.disabled = false;\n\t    this.updateClasses_();\n\t  };\n\t\n\t  MaterialExtSelectfield.prototype['enable'] = MaterialExtSelectfield.prototype.enable;\n\t\n\t  /**\n\t   * Update select field value.\n\t   *\n\t   * @param {string} value The value to which to set the control (optional).\n\t   * @public\n\t   */\n\t  MaterialExtSelectfield.prototype.change = function (value) {\n\t    this.select_.value = value || '';\n\t    this.updateClasses_();\n\t  };\n\t  MaterialExtSelectfield.prototype['change'] = MaterialExtSelectfield.prototype.change;\n\t\n\t  /**\n\t   * Initialize element.\n\t   */\n\t  MaterialExtSelectfield.prototype.init = function () {\n\t    if (this.element_) {\n\t      this.label_ = this.element_.querySelector('.' + LABEL);\n\t      this.select_ = this.element_.querySelector('.' + INPUT);\n\t\n\t      if (this.select_) {\n\t        // Remove listeners, just in case ...\n\t        this.select_.removeEventListener('change', this.updateClasses_);\n\t        this.select_.removeEventListener('focus', this.onFocus_);\n\t        this.select_.removeEventListener('blur', this.onBlur_);\n\t        this.select_.removeEventListener('reset', this.onReset_);\n\t\n\t        this.select_.addEventListener('change', this.updateClasses_.bind(this));\n\t        this.select_.addEventListener('focus', this.onFocus_.bind(this));\n\t        this.select_.addEventListener('blur', this.onBlur_.bind(this));\n\t        this.select_.addEventListener('reset', this.onReset_.bind(this));\n\t\n\t        if (this.label_) {\n\t          var id = void 0;\n\t          if (!this.select_.hasAttribute('id')) {\n\t            id = 'select-' + (0, _stringUtils.randomString)();\n\t            this.select_.id = id;\n\t          } else {\n\t            id = this.select_.id;\n\t          }\n\t\n\t          if (!this.label_.hasAttribute('for')) {\n\t            this.label_.setAttribute('for', id);\n\t          }\n\t        }\n\t\n\t        var invalid = this.element_.classList.contains(_constants.IS_INVALID);\n\t        this.updateClasses_();\n\t        this.element_.classList.add(_constants.IS_UPGRADED);\n\t\n\t        if (invalid) {\n\t          this.element_.classList.add(_constants.IS_INVALID);\n\t        }\n\t        if (this.select_.hasAttribute('autofocus')) {\n\t          this.element_.focus();\n\t          this.checkFocus();\n\t        }\n\t      }\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Downgrade component\n\t   * E.g remove listeners and clean up resources\n\t   *\n\t   * Nothing to downgrade\n\t   *\n\t  MaterialExtSelectfield.prototype.mdlDowngrade_ = function() {\n\t    'use strict';\n\t    console.log('***** MaterialExtSelectfield.mdlDowngrade ');\n\t  };\n\t  */\n\t\n\t  // The component registers itself. It can assume componentHandler is available\n\t  // in the global scope.\n\t  /*eslint no-undef: 0*/\n\t  componentHandler.register({\n\t    constructor: MaterialExtSelectfield,\n\t    classAsString: 'MaterialExtSelectfield',\n\t    cssClass: 'mdlext-js-selectfield',\n\t    widget: true\n\t  });\n\t})();\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _fullThrottle = __webpack_require__(13);\n\t\n\tvar _fullThrottle2 = _interopRequireDefault(_fullThrottle);\n\t\n\tvar _jsonUtils = __webpack_require__(14);\n\t\n\tvar _constants = __webpack_require__(2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t(function () {\n\t  'use strict';\n\t\n\t  var MDL_LAYOUT_CONTENT = 'mdl-layout__content';\n\t  var IS_SCROLL_CLASS = 'mdlext-is-scroll';\n\t\n\t  /**\n\t   * @constructor\n\t   * @param {Element} element The element that will be upgraded.\n\t   */\n\t  var MaterialExtStickyHeader = function MaterialExtStickyHeader(element) {\n\t    // Stores the element.\n\t    this.header_ = element;\n\t\n\t    // Heder listens to scroll events from content\n\t    this.content_ = null;\n\t    this.lastScrollTop_ = 0;\n\t\n\t    // Default config\n\t    this.config_ = {\n\t      visibleAtScrollEnd: false\n\t    };\n\t\n\t    this.mutationObserver_ = null;\n\t\n\t    this.drawing_ = false;\n\t\n\t    // Initialize instance.\n\t    this.init();\n\t  };\n\t\n\t  window['MaterialExtStickyHeader'] = MaterialExtStickyHeader;\n\t\n\t  /**\n\t   * Update header width\n\t   * @private\n\t   */\n\t  MaterialExtStickyHeader.prototype.recalcWidth_ = function () {\n\t    this.header_.style.width = this.content_.clientWidth + 'px';\n\t  };\n\t\n\t  var throttleResize = (0, _fullThrottle2.default)(function (self) {\n\t    return self.recalcWidth_();\n\t  });\n\t\n\t  /**\n\t   * Adjust header width when window resizes or oreientation changes\n\t   * @param event\n\t   * @private\n\t   */\n\t  MaterialExtStickyHeader.prototype.resizeHandler_ = function () /* event */{\n\t    throttleResize(this);\n\t  };\n\t\n\t  /**\n\t   * Update header position\n\t   * @private\n\t   */\n\t  MaterialExtStickyHeader.prototype.reposition_ = function () {\n\t\n\t    var currentContentScrollTop = this.content_.scrollTop;\n\t    var scrollDiff = this.lastScrollTop_ - currentContentScrollTop;\n\t\n\t    if (currentContentScrollTop <= 0) {\n\t      // Scrolled to the top. Header sticks to the top\n\t      this.header_.style.top = '0';\n\t      this.header_.classList.remove(IS_SCROLL_CLASS);\n\t    } else if (scrollDiff > 0) {\n\t\n\t      if (scrollDiff >= this.header_.offsetHeight) {\n\t\n\t        // Scrolled up. Header slides in\n\t        var headerTop = parseInt(window.getComputedStyle(this.header_).getPropertyValue('top')) || 0;\n\t        if (headerTop != 0) {\n\t          this.header_.style.top = '0';\n\t          this.header_.classList.add(IS_SCROLL_CLASS);\n\t        }\n\t        this.lastScrollTop_ = currentContentScrollTop;\n\t      }\n\t      return;\n\t    } else if (scrollDiff < 0) {\n\t      // Scrolled down\n\t      this.header_.classList.add(IS_SCROLL_CLASS);\n\t      var _headerTop = parseInt(window.getComputedStyle(this.header_).getPropertyValue('top')) || 0;\n\t\n\t      if (this.content_.scrollHeight - this.content_.scrollTop <= this.content_.offsetHeight) {\n\t        // Bottom of content\n\t        if (_headerTop != 0) {\n\t          this.header_.style.top = this.config_.visibleAtScrollEnd ? '0' : '-' + this.header_.offsetHeight + 'px';\n\t        }\n\t      } else {\n\t        _headerTop += scrollDiff;\n\t        var offsetHeight = this.header_.offsetHeight;\n\t        this.header_.style.top = (Math.abs(_headerTop) > offsetHeight ? -offsetHeight : _headerTop) + 'px';\n\t      }\n\t    }\n\t\n\t    this.lastScrollTop_ = currentContentScrollTop;\n\t  };\n\t\n\t  var throttleScroll = (0, _fullThrottle2.default)(function (self) {\n\t    return self.reposition_();\n\t  });\n\t\n\t  /**\n\t   * Scroll header when content scrolls\n\t   * @param event\n\t   * @private\n\t   */\n\t  MaterialExtStickyHeader.prototype.scrollHandler_ = function () /* event */{\n\t    throttleScroll(this);\n\t  };\n\t\n\t  /**\n\t   * Init header position\n\t   * @private\n\t   */\n\t  MaterialExtStickyHeader.prototype.updatePosition_ = function () /* event */{\n\t    this.recalcWidth_();\n\t    this.reposition_();\n\t  };\n\t\n\t  /**\n\t   * Add mutation observer\n\t   * @private\n\t   */\n\t  MaterialExtStickyHeader.prototype.addMutationObserver_ = function () {\n\t    var _this = this;\n\t\n\t    // jsdom does not support MutationObserver - so this is not testable\n\t    /* istanbul ignore next */\n\t    this.mutationObserver_ = new MutationObserver(function () /*mutations*/{\n\t      // Adjust header width if content changes (e.g. in a SPA)\n\t      _this.updatePosition_();\n\t    });\n\t\n\t    this.mutationObserver_.observe(this.content_, {\n\t      attributes: false,\n\t      childList: true,\n\t      characterData: false,\n\t      subtree: true\n\t    });\n\t  };\n\t\n\t  /**\n\t  * Removes event listeners\n\t  * @private\n\t  */\n\t  MaterialExtStickyHeader.prototype.removeListeners_ = function () {\n\t\n\t    window.removeEventListener('resize', this.resizeHandler_);\n\t    window.removeEventListener('orientationchange', this.resizeHandler_);\n\t\n\t    if (this.content_) {\n\t      this.content_.removeEventListener('scroll', this.scrollHandler_);\n\t    }\n\t\n\t    if (this.mutationObserver_) {\n\t      this.mutationObserver_.disconnect();\n\t      this.mutationObserver_ = null;\n\t    }\n\t  };\n\t\n\t  /**\n\t   * Initialize component\n\t   */\n\t  MaterialExtStickyHeader.prototype.init = function () {\n\t\n\t    if (this.header_) {\n\t\n\t      this.removeListeners_();\n\t\n\t      if (this.header_.hasAttribute('data-config')) {\n\t        this.config_ = (0, _jsonUtils.jsonStringToObject)(this.header_.getAttribute('data-config'));\n\t      }\n\t\n\t      this.content_ = this.header_.parentNode.querySelector('.' + MDL_LAYOUT_CONTENT) || null;\n\t\n\t      if (this.content_) {\n\t        this.content_.style.paddingTop = this.header_.offsetHeight + 'px'; // Make room for sticky header\n\t        this.lastScrollTop_ = this.content_.scrollTop;\n\t\n\t        this.content_.addEventListener('scroll', this.scrollHandler_.bind(this));\n\t        window.addEventListener('resize', this.resizeHandler_.bind(this));\n\t        window.addEventListener('orientationchange', this.resizeHandler_.bind(this));\n\t\n\t        this.addMutationObserver_();\n\t        this.updatePosition_();\n\t\n\t        // Set upgraded flag\n\t        this.header_.classList.add(_constants.IS_UPGRADED);\n\t      }\n\t    }\n\t  };\n\t\n\t  /*\n\t   * Downgrade component\n\t   * E.g remove listeners and clean up resources\n\t   *\n\t   * Nothing to clean\n\t   *\n\t   MaterialExtStickyHeader.prototype.mdlDowngrade_ = function() {\n\t     'use strict';\n\t     console.log('***** MaterialExtStickyHeader.prototype.mdlDowngrade_');\n\t   };\n\t   */\n\t\n\t  // The component registers itself. It can assume componentHandler is available\n\t  // in the global scope.\n\t  /* eslint no-undef: 0 */\n\t  componentHandler.register({\n\t    constructor: MaterialExtStickyHeader,\n\t    classAsString: 'MaterialExtStickyHeader',\n\t    cssClass: 'mdlext-js-sticky-header'\n\t  });\n\t})(); /**\n\t       * @license\n\t       * Copyright 2016 Leif Olsen. All Rights Reserved.\n\t       *\n\t       * Licensed under the Apache License, Version 2.0 (the \"License\");\n\t       * you may not use this file except in compliance with the License.\n\t       * You may obtain a copy of the License at\n\t       *\n\t       *      http://www.apache.org/licenses/LICENSE-2.0\n\t       *\n\t       * Unless required by applicable law or agreed to in writing, software\n\t       * distributed under the License is distributed on an \"AS IS\" BASIS,\n\t       * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\t       * See the License for the specific language governing permissions and\n\t       * limitations under the License.\n\t       *\n\t       * This code is built with Google Material Design Lite,\n\t       * which is Licensed under the Apache License, Version 2.0\n\t       */\n\t\n\t/**\n\t * A sticky header makes site navigation easily accessible anywhere on the page and saves content space at the same.\n\t * The header should auto-hide, i.e. hiding the header automatically when a user starts scrolling down the page and\n\t * bringing the header back when a user might need it: they reach the bottom of the page or start scrolling up.\n\t */\n\n/***/ },\n/* 59 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t__webpack_require__(2);\n\t\n\t__webpack_require__(21);\n\t\n\t__webpack_require__(15);\n\t\n\t__webpack_require__(14);\n\t\n\t__webpack_require__(13);\n\t\n\t__webpack_require__(29);\n\t\n\t__webpack_require__(30);\n\n/***/ },\n/* 60 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(68), __esModule: true };\n\n/***/ },\n/* 61 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(70), __esModule: true };\n\n/***/ },\n/* 62 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(72), __esModule: true };\n\n/***/ },\n/* 63 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(74), __esModule: true };\n\n/***/ },\n/* 64 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(75), __esModule: true };\n\n/***/ },\n/* 65 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(76), __esModule: true };\n\n/***/ },\n/* 66 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(77), __esModule: true };\n\n/***/ },\n/* 67 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _isIterable2 = __webpack_require__(61);\n\t\n\tvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\t\n\tvar _getIterator2 = __webpack_require__(31);\n\t\n\tvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function () {\n\t  function sliceIterator(arr, i) {\n\t    var _arr = [];\n\t    var _n = true;\n\t    var _d = false;\n\t    var _e = undefined;\n\t\n\t    try {\n\t      for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n\t        _arr.push(_s.value);\n\t\n\t        if (i && _arr.length === i) break;\n\t      }\n\t    } catch (err) {\n\t      _d = true;\n\t      _e = err;\n\t    } finally {\n\t      try {\n\t        if (!_n && _i[\"return\"]) _i[\"return\"]();\n\t      } finally {\n\t        if (_d) throw _e;\n\t      }\n\t    }\n\t\n\t    return _arr;\n\t  }\n\t\n\t  return function (arr, i) {\n\t    if (Array.isArray(arr)) {\n\t      return arr;\n\t    } else if ((0, _isIterable3.default)(Object(arr))) {\n\t      return sliceIterator(arr, i);\n\t    } else {\n\t      throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n\t    }\n\t  };\n\t}();\n\n/***/ },\n/* 68 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(28);\n\t__webpack_require__(104);\n\tmodule.exports = __webpack_require__(1).Array.from;\n\n/***/ },\n/* 69 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(48);\n\t__webpack_require__(28);\n\tmodule.exports = __webpack_require__(102);\n\n/***/ },\n/* 70 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(48);\n\t__webpack_require__(28);\n\tmodule.exports = __webpack_require__(103);\n\n/***/ },\n/* 71 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(106);\n\tmodule.exports = __webpack_require__(1).Number.isInteger;\n\n/***/ },\n/* 72 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(107);\n\tmodule.exports = __webpack_require__(1).Number.isNaN;\n\n/***/ },\n/* 73 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(108);\n\tmodule.exports = __webpack_require__(1).Object.assign;\n\n/***/ },\n/* 74 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(109);\n\tvar $Object = __webpack_require__(1).Object;\n\tmodule.exports = function defineProperty(it, key, desc){\n\t  return $Object.defineProperty(it, key, desc);\n\t};\n\n/***/ },\n/* 75 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(112);\n\tmodule.exports = __webpack_require__(1).Object.entries;\n\n/***/ },\n/* 76 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(110);\n\tmodule.exports = __webpack_require__(1).Object.keys;\n\n/***/ },\n/* 77 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(111);\n\tmodule.exports = __webpack_require__(1).Reflect.apply;\n\n/***/ },\n/* 78 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(){ /* empty */ };\n\n/***/ },\n/* 79 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// false -> Array#indexOf\n\t// true  -> Array#includes\n\tvar toIObject = __webpack_require__(19)\n\t  , toLength  = __webpack_require__(45)\n\t  , toIndex   = __webpack_require__(100);\n\tmodule.exports = function(IS_INCLUDES){\n\t  return function($this, el, fromIndex){\n\t    var O      = toIObject($this)\n\t      , length = toLength(O.length)\n\t      , index  = toIndex(fromIndex, length)\n\t      , value;\n\t    // Array#includes uses SameValueZero equality algorithm\n\t    if(IS_INCLUDES && el != el)while(length > index){\n\t      value = O[index++];\n\t      if(value != value)return true;\n\t    // Array#toIndex ignores holes, Array#includes - not\n\t    } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n\t      if(O[index] === el)return IS_INCLUDES || index || 0;\n\t    } return !IS_INCLUDES && -1;\n\t  };\n\t};\n\n/***/ },\n/* 80 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $defineProperty = __webpack_require__(12)\n\t  , createDesc      = __webpack_require__(25);\n\t\n\tmodule.exports = function(object, index, value){\n\t  if(index in object)$defineProperty.f(object, index, createDesc(0, value));\n\t  else object[index] = value;\n\t};\n\n/***/ },\n/* 81 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(5).document && document.documentElement;\n\n/***/ },\n/* 82 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = !__webpack_require__(9) && !__webpack_require__(10)(function(){\n\t  return Object.defineProperty(__webpack_require__(38)('div'), 'a', {get: function(){ return 7; }}).a != 7;\n\t});\n\n/***/ },\n/* 83 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// check on default Array iterator\n\tvar Iterators  = __webpack_require__(7)\n\t  , ITERATOR   = __webpack_require__(4)('iterator')\n\t  , ArrayProto = Array.prototype;\n\t\n\tmodule.exports = function(it){\n\t  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n\t};\n\n/***/ },\n/* 84 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.1.2.3 Number.isInteger(number)\n\tvar isObject = __webpack_require__(17)\n\t  , floor    = Math.floor;\n\tmodule.exports = function isInteger(it){\n\t  return !isObject(it) && isFinite(it) && floor(it) === it;\n\t};\n\n/***/ },\n/* 85 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// call something on iterator step with safe closing on error\n\tvar anObject = __webpack_require__(6);\n\tmodule.exports = function(iterator, fn, value, entries){\n\t  try {\n\t    return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n\t  // 7.4.6 IteratorClose(iterator, completion)\n\t  } catch(e){\n\t    var ret = iterator['return'];\n\t    if(ret !== undefined)anObject(ret.call(iterator));\n\t    throw e;\n\t  }\n\t};\n\n/***/ },\n/* 86 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar create         = __webpack_require__(91)\n\t  , descriptor     = __webpack_require__(25)\n\t  , setToStringTag = __webpack_require__(43)\n\t  , IteratorPrototype = {};\n\t\n\t// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n\t__webpack_require__(11)(IteratorPrototype, __webpack_require__(4)('iterator'), function(){ return this; });\n\t\n\tmodule.exports = function(Constructor, NAME, next){\n\t  Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n\t  setToStringTag(Constructor, NAME + ' Iterator');\n\t};\n\n/***/ },\n/* 87 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar ITERATOR     = __webpack_require__(4)('iterator')\n\t  , SAFE_CLOSING = false;\n\t\n\ttry {\n\t  var riter = [7][ITERATOR]();\n\t  riter['return'] = function(){ SAFE_CLOSING = true; };\n\t  Array.from(riter, function(){ throw 2; });\n\t} catch(e){ /* empty */ }\n\t\n\tmodule.exports = function(exec, skipClosing){\n\t  if(!skipClosing && !SAFE_CLOSING)return false;\n\t  var safe = false;\n\t  try {\n\t    var arr  = [7]\n\t      , iter = arr[ITERATOR]();\n\t    iter.next = function(){ return {done: safe = true}; };\n\t    arr[ITERATOR] = function(){ return iter; };\n\t    exec(arr);\n\t  } catch(e){ /* empty */ }\n\t  return safe;\n\t};\n\n/***/ },\n/* 88 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(done, value){\n\t  return {value: value, done: !!done};\n\t};\n\n/***/ },\n/* 89 */\n/***/ function(module, exports) {\n\n\tmodule.exports = true;\n\n/***/ },\n/* 90 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// 19.1.2.1 Object.assign(target, source, ...)\n\tvar getKeys  = __webpack_require__(18)\n\t  , gOPS     = __webpack_require__(93)\n\t  , pIE      = __webpack_require__(42)\n\t  , toObject = __webpack_require__(20)\n\t  , IObject  = __webpack_require__(40)\n\t  , $assign  = Object.assign;\n\t\n\t// should work with symbols and should have deterministic property order (V8 bug)\n\tmodule.exports = !$assign || __webpack_require__(10)(function(){\n\t  var A = {}\n\t    , B = {}\n\t    , S = Symbol()\n\t    , K = 'abcdefghijklmnopqrst';\n\t  A[S] = 7;\n\t  K.split('').forEach(function(k){ B[k] = k; });\n\t  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n\t}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n\t  var T     = toObject(target)\n\t    , aLen  = arguments.length\n\t    , index = 1\n\t    , getSymbols = gOPS.f\n\t    , isEnum     = pIE.f;\n\t  while(aLen > index){\n\t    var S      = IObject(arguments[index++])\n\t      , keys   = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n\t      , length = keys.length\n\t      , j      = 0\n\t      , key;\n\t    while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n\t  } return T;\n\t} : $assign;\n\n/***/ },\n/* 91 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n\tvar anObject    = __webpack_require__(6)\n\t  , dPs         = __webpack_require__(92)\n\t  , enumBugKeys = __webpack_require__(39)\n\t  , IE_PROTO    = __webpack_require__(26)('IE_PROTO')\n\t  , Empty       = function(){ /* empty */ }\n\t  , PROTOTYPE   = 'prototype';\n\t\n\t// Create object with fake `null` prototype: use iframe Object with cleared prototype\n\tvar createDict = function(){\n\t  // Thrash, waste and sodomy: IE GC bug\n\t  var iframe = __webpack_require__(38)('iframe')\n\t    , i      = enumBugKeys.length\n\t    , lt     = '<'\n\t    , gt     = '>'\n\t    , iframeDocument;\n\t  iframe.style.display = 'none';\n\t  __webpack_require__(81).appendChild(iframe);\n\t  iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n\t  // createDict = iframe.contentWindow.Object;\n\t  // html.removeChild(iframe);\n\t  iframeDocument = iframe.contentWindow.document;\n\t  iframeDocument.open();\n\t  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n\t  iframeDocument.close();\n\t  createDict = iframeDocument.F;\n\t  while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];\n\t  return createDict();\n\t};\n\t\n\tmodule.exports = Object.create || function create(O, Properties){\n\t  var result;\n\t  if(O !== null){\n\t    Empty[PROTOTYPE] = anObject(O);\n\t    result = new Empty;\n\t    Empty[PROTOTYPE] = null;\n\t    // add \"__proto__\" for Object.getPrototypeOf polyfill\n\t    result[IE_PROTO] = O;\n\t  } else result = createDict();\n\t  return Properties === undefined ? result : dPs(result, Properties);\n\t};\n\n\n/***/ },\n/* 92 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar dP       = __webpack_require__(12)\n\t  , anObject = __webpack_require__(6)\n\t  , getKeys  = __webpack_require__(18);\n\t\n\tmodule.exports = __webpack_require__(9) ? Object.defineProperties : function defineProperties(O, Properties){\n\t  anObject(O);\n\t  var keys   = getKeys(Properties)\n\t    , length = keys.length\n\t    , i = 0\n\t    , P;\n\t  while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n\t  return O;\n\t};\n\n/***/ },\n/* 93 */\n/***/ function(module, exports) {\n\n\texports.f = Object.getOwnPropertySymbols;\n\n/***/ },\n/* 94 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\n\tvar has         = __webpack_require__(16)\n\t  , toObject    = __webpack_require__(20)\n\t  , IE_PROTO    = __webpack_require__(26)('IE_PROTO')\n\t  , ObjectProto = Object.prototype;\n\t\n\tmodule.exports = Object.getPrototypeOf || function(O){\n\t  O = toObject(O);\n\t  if(has(O, IE_PROTO))return O[IE_PROTO];\n\t  if(typeof O.constructor == 'function' && O instanceof O.constructor){\n\t    return O.constructor.prototype;\n\t  } return O instanceof Object ? ObjectProto : null;\n\t};\n\n/***/ },\n/* 95 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar has          = __webpack_require__(16)\n\t  , toIObject    = __webpack_require__(19)\n\t  , arrayIndexOf = __webpack_require__(79)(false)\n\t  , IE_PROTO     = __webpack_require__(26)('IE_PROTO');\n\t\n\tmodule.exports = function(object, names){\n\t  var O      = toIObject(object)\n\t    , i      = 0\n\t    , result = []\n\t    , key;\n\t  for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n\t  // Don't enum bug & hidden keys\n\t  while(names.length > i)if(has(O, key = names[i++])){\n\t    ~arrayIndexOf(result, key) || result.push(key);\n\t  }\n\t  return result;\n\t};\n\n/***/ },\n/* 96 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// most Object methods by ES6 should accept primitives\n\tvar $export = __webpack_require__(3)\n\t  , core    = __webpack_require__(1)\n\t  , fails   = __webpack_require__(10);\n\tmodule.exports = function(KEY, exec){\n\t  var fn  = (core.Object || {})[KEY] || Object[KEY]\n\t    , exp = {};\n\t  exp[KEY] = exec(fn);\n\t  $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n\t};\n\n/***/ },\n/* 97 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar getKeys   = __webpack_require__(18)\n\t  , toIObject = __webpack_require__(19)\n\t  , isEnum    = __webpack_require__(42).f;\n\tmodule.exports = function(isEntries){\n\t  return function(it){\n\t    var O      = toIObject(it)\n\t      , keys   = getKeys(O)\n\t      , length = keys.length\n\t      , i      = 0\n\t      , result = []\n\t      , key;\n\t    while(length > i)if(isEnum.call(O, key = keys[i++])){\n\t      result.push(isEntries ? [key, O[key]] : O[key]);\n\t    } return result;\n\t  };\n\t};\n\n/***/ },\n/* 98 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(11);\n\n/***/ },\n/* 99 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(27)\n\t  , defined   = __webpack_require__(24);\n\t// true  -> String#at\n\t// false -> String#codePointAt\n\tmodule.exports = function(TO_STRING){\n\t  return function(that, pos){\n\t    var s = String(defined(that))\n\t      , i = toInteger(pos)\n\t      , l = s.length\n\t      , a, b;\n\t    if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n\t    a = s.charCodeAt(i);\n\t    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n\t      ? TO_STRING ? s.charAt(i) : a\n\t      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n\t  };\n\t};\n\n/***/ },\n/* 100 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(27)\n\t  , max       = Math.max\n\t  , min       = Math.min;\n\tmodule.exports = function(index, length){\n\t  index = toInteger(index);\n\t  return index < 0 ? max(index + length, 0) : min(index, length);\n\t};\n\n/***/ },\n/* 101 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.1 ToPrimitive(input [, PreferredType])\n\tvar isObject = __webpack_require__(17);\n\t// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n\t// and the second argument - flag - preferred type is a string\n\tmodule.exports = function(it, S){\n\t  if(!isObject(it))return it;\n\t  var fn, val;\n\t  if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n\t  if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n\t  if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n\t  throw TypeError(\"Can't convert object to primitive value\");\n\t};\n\n/***/ },\n/* 102 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar anObject = __webpack_require__(6)\n\t  , get      = __webpack_require__(47);\n\tmodule.exports = __webpack_require__(1).getIterator = function(it){\n\t  var iterFn = get(it);\n\t  if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n\t  return anObject(iterFn.call(it));\n\t};\n\n/***/ },\n/* 103 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar classof   = __webpack_require__(35)\n\t  , ITERATOR  = __webpack_require__(4)('iterator')\n\t  , Iterators = __webpack_require__(7);\n\tmodule.exports = __webpack_require__(1).isIterable = function(it){\n\t  var O = Object(it);\n\t  return O[ITERATOR] !== undefined\n\t    || '@@iterator' in O\n\t    || Iterators.hasOwnProperty(classof(O));\n\t};\n\n/***/ },\n/* 104 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar ctx            = __webpack_require__(37)\n\t  , $export        = __webpack_require__(3)\n\t  , toObject       = __webpack_require__(20)\n\t  , call           = __webpack_require__(85)\n\t  , isArrayIter    = __webpack_require__(83)\n\t  , toLength       = __webpack_require__(45)\n\t  , createProperty = __webpack_require__(80)\n\t  , getIterFn      = __webpack_require__(47);\n\t\n\t$export($export.S + $export.F * !__webpack_require__(87)(function(iter){ Array.from(iter); }), 'Array', {\n\t  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n\t  from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){\n\t    var O       = toObject(arrayLike)\n\t      , C       = typeof this == 'function' ? this : Array\n\t      , aLen    = arguments.length\n\t      , mapfn   = aLen > 1 ? arguments[1] : undefined\n\t      , mapping = mapfn !== undefined\n\t      , index   = 0\n\t      , iterFn  = getIterFn(O)\n\t      , length, result, step, iterator;\n\t    if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n\t    // if object isn't iterable or it's array with default iterator - use simple case\n\t    if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){\n\t      for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){\n\t        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n\t      }\n\t    } else {\n\t      length = toLength(O.length);\n\t      for(result = new C(length); length > index; index++){\n\t        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n\t      }\n\t    }\n\t    result.length = index;\n\t    return result;\n\t  }\n\t});\n\n\n/***/ },\n/* 105 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar addToUnscopables = __webpack_require__(78)\n\t  , step             = __webpack_require__(88)\n\t  , Iterators        = __webpack_require__(7)\n\t  , toIObject        = __webpack_require__(19);\n\t\n\t// 22.1.3.4 Array.prototype.entries()\n\t// 22.1.3.13 Array.prototype.keys()\n\t// 22.1.3.29 Array.prototype.values()\n\t// 22.1.3.30 Array.prototype[@@iterator]()\n\tmodule.exports = __webpack_require__(41)(Array, 'Array', function(iterated, kind){\n\t  this._t = toIObject(iterated); // target\n\t  this._i = 0;                   // next index\n\t  this._k = kind;                // kind\n\t// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n\t}, function(){\n\t  var O     = this._t\n\t    , kind  = this._k\n\t    , index = this._i++;\n\t  if(!O || index >= O.length){\n\t    this._t = undefined;\n\t    return step(1);\n\t  }\n\t  if(kind == 'keys'  )return step(0, index);\n\t  if(kind == 'values')return step(0, O[index]);\n\t  return step(0, [index, O[index]]);\n\t}, 'values');\n\t\n\t// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\n\tIterators.Arguments = Iterators.Array;\n\t\n\taddToUnscopables('keys');\n\taddToUnscopables('values');\n\taddToUnscopables('entries');\n\n/***/ },\n/* 106 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.1.2.3 Number.isInteger(number)\n\tvar $export = __webpack_require__(3);\n\t\n\t$export($export.S, 'Number', {isInteger: __webpack_require__(84)});\n\n/***/ },\n/* 107 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.1.2.4 Number.isNaN(number)\n\tvar $export = __webpack_require__(3);\n\t\n\t$export($export.S, 'Number', {\n\t  isNaN: function isNaN(number){\n\t    return number != number;\n\t  }\n\t});\n\n/***/ },\n/* 108 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.3.1 Object.assign(target, source)\n\tvar $export = __webpack_require__(3);\n\t\n\t$export($export.S + $export.F, 'Object', {assign: __webpack_require__(90)});\n\n/***/ },\n/* 109 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(3);\n\t// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n\t$export($export.S + $export.F * !__webpack_require__(9), 'Object', {defineProperty: __webpack_require__(12).f});\n\n/***/ },\n/* 110 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.14 Object.keys(O)\n\tvar toObject = __webpack_require__(20)\n\t  , $keys    = __webpack_require__(18);\n\t\n\t__webpack_require__(96)('keys', function(){\n\t  return function keys(it){\n\t    return $keys(toObject(it));\n\t  };\n\t});\n\n/***/ },\n/* 111 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\n\tvar $export   = __webpack_require__(3)\n\t  , aFunction = __webpack_require__(34)\n\t  , anObject  = __webpack_require__(6)\n\t  , rApply    = (__webpack_require__(5).Reflect || {}).apply\n\t  , fApply    = Function.apply;\n\t// MS Edge argumentsList argument is optional\n\t$export($export.S + $export.F * !__webpack_require__(10)(function(){\n\t  rApply(function(){});\n\t}), 'Reflect', {\n\t  apply: function apply(target, thisArgument, argumentsList){\n\t    var T = aFunction(target)\n\t      , L = anObject(argumentsList);\n\t    return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n\t  }\n\t});\n\n/***/ },\n/* 112 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://github.com/tc39/proposal-object-values-entries\n\tvar $export  = __webpack_require__(3)\n\t  , $entries = __webpack_require__(97)(true);\n\t\n\t$export($export.S, 'Object', {\n\t  entries: function entries(it){\n\t    return $entries(it);\n\t  }\n\t});\n\n/***/ },\n/* 113 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// mdl-ext.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 82005ea981e272a97aa0","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_core.js\n// module id = 1\n// module chunks = 0 1","'use strict';\n\nconst VK_TAB         = 9;\nconst VK_ENTER       = 13;\nconst VK_ESC         = 27;\nconst VK_SPACE       = 32;\nconst VK_PAGE_UP     = 33;\nconst VK_PAGE_DOWN   = 34;\nconst VK_END         = 35;\nconst VK_HOME        = 36;\nconst VK_ARROW_LEFT  = 37;\nconst VK_ARROW_UP    = 38;\nconst VK_ARROW_RIGHT = 39;\nconst VK_ARROW_DOWN  = 40;\n\nconst ARIA_EXPANDED        = 'aria-expanded';\nconst ARIA_HIDDEN          = 'aria-hidden';\nconst ARIA_MULTISELECTABLE = 'aria-multiselectable';\nconst ARIA_SELECTED        = 'aria-selected';\n\nconst IS_DIRTY      = 'is-dirty';\nconst IS_DISABLED   = 'is-disabled';\nconst IS_EXPANDED   = 'is-expanded';\nconst IS_FOCUSED    = 'is-focused';\nconst IS_INVALID    = 'is-invalid';\nconst IS_UPGRADED   = 'is-upgraded';\nconst DATA_UPGRADED = 'data-upgraded';\n\nconst MDL_RIPPLE                      = 'mdl-ripple';\nconst MDL_RIPPLE_COMPONENT            = 'MaterialRipple';\nconst MDL_RIPPLE_EFFECT               = 'mdl-js-ripple-effect';\nconst MDL_RIPPLE_EFFECT_IGNORE_EVENTS = 'mdl-js-ripple-effect--ignore-events';\n\nexport {\n  VK_TAB,\n  VK_ENTER,\n  VK_ESC,\n  VK_SPACE,\n  VK_PAGE_UP,\n  VK_PAGE_DOWN ,\n  VK_END,\n  VK_HOME,\n  VK_ARROW_LEFT,\n  VK_ARROW_UP,\n  VK_ARROW_RIGHT,\n  VK_ARROW_DOWN ,\n  ARIA_EXPANDED,\n  ARIA_HIDDEN,\n  ARIA_MULTISELECTABLE,\n  ARIA_SELECTED,\n  IS_DIRTY,\n  IS_DISABLED,\n  IS_EXPANDED,\n  IS_FOCUSED,\n  IS_INVALID,\n  IS_UPGRADED,\n  DATA_UPGRADED ,\n  MDL_RIPPLE,\n  MDL_RIPPLE_COMPONENT,\n  MDL_RIPPLE_EFFECT,\n  MDL_RIPPLE_EFFECT_IGNORE_EVENTS\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/constants.js","var global    = require('./_global')\n  , core      = require('./_core')\n  , ctx       = require('./_ctx')\n  , hide      = require('./_hide')\n  , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n  var IS_FORCED = type & $export.F\n    , IS_GLOBAL = type & $export.G\n    , IS_STATIC = type & $export.S\n    , IS_PROTO  = type & $export.P\n    , IS_BIND   = type & $export.B\n    , IS_WRAP   = type & $export.W\n    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})\n    , expProto  = exports[PROTOTYPE]\n    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n    , key, own, out;\n  if(IS_GLOBAL)source = name;\n  for(key in source){\n    // contains in native\n    own = !IS_FORCED && target && target[key] !== undefined;\n    if(own && key in exports)continue;\n    // export native or passed\n    out = own ? target[key] : source[key];\n    // prevent global pollution for namespaces\n    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n    // bind timers to global for call from export context\n    : IS_BIND && own ? ctx(out, global)\n    // wrap global constructors for prevent change them in library\n    : IS_WRAP && target[key] == out ? (function(C){\n      var F = function(a, b, c){\n        if(this instanceof C){\n          switch(arguments.length){\n            case 0: return new C;\n            case 1: return new C(a);\n            case 2: return new C(a, b);\n          } return new C(a, b, c);\n        } return C.apply(this, arguments);\n      };\n      F[PROTOTYPE] = C[PROTOTYPE];\n      return F;\n    // make static versions for prototype methods\n    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n    if(IS_PROTO){\n      (exports.virtual || (exports.virtual = {}))[key] = out;\n      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n      if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);\n    }\n  }\n};\n// type bitmap\n$export.F = 1;   // forced\n$export.G = 2;   // global\n$export.S = 4;   // static\n$export.P = 8;   // proto\n$export.B = 16;  // bind\n$export.W = 32;  // wrap\n$export.U = 64;  // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_export.js\n// module id = 3\n// module chunks = 0 1","var store      = require('./_shared')('wks')\n  , uid        = require('./_uid')\n  , Symbol     = require('./_global').Symbol\n  , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n  return store[name] || (store[name] =\n    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_wks.js\n// module id = 4\n// module chunks = 0 1","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n  ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_global.js\n// module id = 5\n// module chunks = 0 1","var isObject = require('./_is-object');\nmodule.exports = function(it){\n  if(!isObject(it))throw TypeError(it + ' is not an object!');\n  return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_an-object.js\n// module id = 6\n// module chunks = 0 1","module.exports = {};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iterators.js\n// module id = 7\n// module chunks = 0 1","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n      arr2[i] = arr[i];\n    }\n\n    return arr2;\n  } else {\n    return (0, _from2.default)(arr);\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/toConsumableArray.js\n// module id = 8\n// module chunks = 0 1","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n  return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_descriptors.js\n// module id = 9\n// module chunks = 0 1","module.exports = function(exec){\n  try {\n    return !!exec();\n  } catch(e){\n    return true;\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_fails.js\n// module id = 10\n// module chunks = 0 1","var dP         = require('./_object-dp')\n  , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n  return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n  object[key] = value;\n  return object;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_hide.js\n// module id = 11\n// module chunks = 0 1","var anObject       = require('./_an-object')\n  , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n  , toPrimitive    = require('./_to-primitive')\n  , dP             = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if(IE8_DOM_DEFINE)try {\n    return dP(O, P, Attributes);\n  } catch(e){ /* empty */ }\n  if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n  if('value' in Attributes)O[P] = Attributes.value;\n  return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-dp.js\n// module id = 12\n// module chunks = 0 1","/**\n * Since some events can fire at a high rate, the event handler should be limited to execute computationally\n * expensive operations, such as DOM modifications, inside a single rendered frame.\n * When listening to e.g. scroll and resize events, the browser tends to fire off more events per\n * second than are actually useful. For instance, if your event listener sets some element positions, then it\n * is possible for those positions to be updated multiple times in a single rendered frame. In this case, all of\n * the layout calculations triggered by setting the elements' positions will be wasted except for the one time that\n * it runs immediately prior to the browser rendering the updated layout to the screen.\n * To avoid wasting cycles, we can use requestAnimationFrame to only run the event listener once just before the page\n * is rendered to the screen.\n * *\n * @param callback the function to throttle\n * @param context  optional context of this, default to global\n * @return {function(...[*])}\n */\nconst fullThrottle = (callback, context) => {\n\n  if (!context) {\n    context = this || window;\n  }\n\n  let throttling = false;\n\n  return (...args) => {\n    if(!throttling) {\n      throttling = true;\n      window.requestAnimationFrame( () => {\n        throttling = false;\n        return Reflect.apply(callback, context, args);\n      });\n    }\n  };\n};\n\nexport default fullThrottle;\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/full-throttle.js","'use strict';\n\n/**\n * Converts a JSON string to object\n * @param jsonString\n * @param source\n */\nconst jsonStringToObject = (jsonString, source = {} ) => {\n  const s = jsonString.replace(/'/g, '\"');\n  try {\n    return Object.assign(source, JSON.parse(s));\n  }\n  catch (e) {\n    throw new Error(`Failed to parse json string: ${s}. Error: ${e.message}`);\n  }\n};\n\nexport { jsonStringToObject };\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/json-utils.js","'use strict';\n\n/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * A javascript utility for conditionally creating a list of strings.\n * The function takes any number of arguments which can be a string or object.\n * Inspired by (but not copied from) JedWatson/classnames, https://github.com/JedWatson/classnames\n *\n * @param  {*} args the strings and/or objects to\n * @return {Array} a list of strings\n * @example\n * // Returns ['foo', 'bar', 'baz', 'quux']\n * stringList(', ', 'foo', { bar: true, duck: false }, 'baz', { quux: true });\n * @example see the tests for more examples\n */\nconst stringList = (...args) => {\n\n  const isString = str => str != null && typeof str === 'string';\n\n  const flatten = list => list.reduce((a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), []);\n\n  const objectToStrings = arg =>\n    Object.keys(arg)\n      .filter(key => arg[key])\n      .map(key => key);\n\n  return args\n    .filter(arg => !!arg)\n    .map(arg => isString(arg) ? arg : objectToStrings(arg))\n    .reduce((result, arg) => result.concat(Array.isArray(arg) ? flatten(arg) : arg), []);\n};\n\n/**\n * A simple javascript utility for conditionally joining strings together.\n * The function takes a delimiter string and any number of arguments which can be a string or object.\n *\n * @param delimiter delimiter to separate joined strings\n * @param  {*} args the strings and/or objects to join\n * @return {String} the joined strings\n * @example\n * // Returns 'foo, bar, baz, quux'\n * joinStrings(', ', 'foo', { bar: true, duck: false }, 'baz', { quux: true });\n * @example see the tests for more examples\n */\nconst joinStrings = (delimiter = ' ', ...args) => stringList(...args).join(delimiter);\n\n/**\n * Generates a random string with a given length\n * @param n {Integer} length of generated string\n * @see http://stackoverflow.com/questions/1349404/generate-random-string-characters-in-javascript\n * @return {String} the random string\n * @example\n * // Returns e.g. 'pd781w0y'\n * randomString(8);\n * @example see the tests for more examples\n */\nconst randomString = ( n=12 ) => Array( n+1 ).join((`${Math.random().toString(36)}00000000000000000`).slice(2, 18)).slice(0, n);\n\nexport { joinStrings, randomString, stringList };\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/string-utils.js","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n  return hasOwnProperty.call(it, key);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_has.js\n// module id = 16\n// module chunks = 0 1","module.exports = function(it){\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_is-object.js\n// module id = 17\n// module chunks = 0 1","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys       = require('./_object-keys-internal')\n  , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n  return $keys(O, enumBugKeys);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-keys.js\n// module id = 18\n// module chunks = 0 1","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n  , defined = require('./_defined');\nmodule.exports = function(it){\n  return IObject(defined(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-iobject.js\n// module id = 19\n// module chunks = 0 1","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n  return Object(defined(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-object.js\n// module id = 20\n// module chunks = 0 1","/**\n * Remove child element(s)\n * element.innerHTNL = '' has a performance penality!\n * @see http://jsperf.com/empty-an-element/16\n * @see http://jsperf.com/force-reflow\n * @param element\n * @param forceReflow\n */\nconst removeChildElements = (element, forceReflow = true) => {\n\n  // See: http://jsperf.com/empty-an-element/16\n  while (element.lastChild) {\n    element.removeChild(element.lastChild);\n  }\n  if(forceReflow) {\n    // See: http://jsperf.com/force-reflow\n    const d = element.style.display;\n\n    element.style.display = 'none';\n    element.style.display = d;\n  }\n};\n\n/**\n * Moves child elements from a DOM node to another dom node.\n * @param source {HTMLElement}\n * @param target {HTMLElement} If the target parameter is ommited, a document fragment is created\n * @return {HTMLElement} The target node\n *\n * @example\n * // Moves child elements from a DOM node to another dom node.\n * moveElements(source, destination);\n *\n * @example\n * // If the second parameter is ommited, a document fragment is created:\n * let fragment = moveElements(source);\n *\n * @See: https://github.com/webmodules/dom-move\n */\nconst moveElements = (source, target) => {\n  if (!target) {\n    target = source.ownerDocument.createDocumentFragment();\n  }\n  while (source.firstChild) {\n    target.appendChild(source.firstChild);\n  }\n  return target;\n};\n\n\n/**\n * Get the browser viewport dimensions\n * @see http://stackoverflow.com/questions/1248081/get-the-browser-viewport-dimensions-with-javascript\n * @return {{windowWidth: number, windowHeight: number}}\n */\nconst getWindowViewport = () => {\n  return {\n    viewportWidth: Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0),\n    viewportHeight: Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0)\n  };\n};\n\n\n/**\n * Check whether an element is in the window viewport\n * @see http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport/\n * @param top\n * @param left\n * @param bottom\n * @param right\n * @return {boolean} true if rectangle is inside window viewport, otherwise false\n */\nconst isRectInsideWindowViewport = ({ top, left, bottom, right }) => {\n  const { viewportWidth, viewportHeight } = getWindowViewport();\n  return top >= 0 &&\n    left >= 0 &&\n    bottom <= viewportHeight &&\n    right <= viewportWidth;\n};\n\n\n/**\n * Get a list of parent elements that can possibly scroll\n * @param el the element to get parents for\n * @returns {Array}\n */\nconst getScrollParents = el => {\n  const elements = [];\n\n  /*\n  for (el = el.parentNode; el; el = el.parentNode) {\n    const cs = window.getComputedStyle(el);\n    if(!(cs.overflowY === 'hidden' && cs.overflowX === 'hidden')) {\n      elements.unshift(el);\n    }\n    if(el === document.body) {\n      break;\n    }\n  }\n  */\n\n  let element = el.parentNode;\n  while (element) {\n    const cs = window.getComputedStyle(element);\n    if(!(cs.overflowY === 'hidden' && cs.overflowX === 'hidden')) {\n      elements.unshift(element);\n    }\n    if(element === document.body) {\n      break;\n    }\n    element = element.parentNode;\n  }\n\n  return elements;\n};\n\n/**\n * Get a list of parent elements, from a given element to a given element\n * @param {HTMLElement} from\n * @param {HTMLElement} to\n * @return {Array<HTMLElement>} the parent elements, not including from and to\n */\nconst getParentElements = (from, to) => {\n  const result = [];\n  let element = from.parentNode;\n  while (element) {\n    if(element === to) {\n      break;\n    }\n    result.unshift(element);\n    element = element.parentNode;\n  }\n  return result;\n};\n\n/**\n * Position element next to button\n *\n * Positioning strategy\n *  1. element.height > viewport.height\n *     let element.height = viewport.heigt\n *     let element.overflow-y = auto\n *  2. element.width > viewport.width\n *     let element.width = viewport.width\n *  3. position element below button, align left edge of element with button left\n *       done if element inside viewport\n *  4. position element below button, align right edge of element with button right\n *       done if element inside viewport\n *  5. positions element above button, aligns left edge of element with button left\n *       done if element inside viewport\n *  6. position element above the control element, aligned to its right.\n *       done if element inside viewport\n *  7. position element at button right hand side, aligns element top with button top\n *       done if element inside viewport\n *  8. position element at button left hand side, aligns element top with button top\n *       done if element inside viewport\n *  9. position element inside viewport\n *     1. position element at viewport bottom\n *     2. position element at button right hand side\n *        done if element inside viewport\n *     3. position element at button left hand side\n *       done if element inside viewport\n *     4. position element at viewport right\n * 10. done\n *\n */\nconst tether = (controlledBy, element) => {\n  const controlRect = controlledBy.getBoundingClientRect();\n\n  // 1. will element height fit inside window viewport?\n  const { viewportWidth, viewportHeight } = getWindowViewport();\n\n  element.style.height = 'auto';\n  //element.style.overflowY = 'hidden';\n  if(element.offsetHeight > viewportHeight) {\n    element.style.height = `${viewportHeight}px`;\n    element.style.overflowY = 'auto';\n  }\n\n  // 2. will element width fit inside window viewport?\n  element.style.width = 'auto';\n  if(element.offsetWidth > viewportWidth) {\n    element.style.width = `${viewportWidth}px`;\n  }\n\n  const elementRect = element.getBoundingClientRect();\n\n  // element to control distance\n  const dy = controlRect.top - elementRect.top;\n  const dx = controlRect.left - elementRect.left;\n\n  // element rect, window coordinates relative to top,left of control\n  const top = elementRect.top + dy;\n  const left = elementRect.left + dx;\n  const bottom = top + elementRect.height;\n  const right = left + elementRect.width;\n\n  // Position relative to control\n  let ddy = dy;\n  let ddx = dx;\n\n  if(isRectInsideWindowViewport({\n    top: top + controlRect.height,\n    left: left,\n    bottom: bottom + controlRect.height,\n    right: right\n  })) {\n    // 3 position element below the control element, aligned to its left\n    ddy = controlRect.height + dy;\n    //console.log('***** 3');\n  }\n  else if(isRectInsideWindowViewport({\n    top: top + controlRect.height,\n    left: left + controlRect.width - elementRect.width,\n    bottom: bottom + controlRect.height,\n    right: left + controlRect.width\n  })) {\n    // 4 position element below the control element, aligned to its right\n    ddy = controlRect.height + dy;\n    ddx = dx + controlRect.width - elementRect.width;\n    //console.log('***** 4');\n  }\n  else if(isRectInsideWindowViewport({\n    top: top - elementRect.height,\n    left: left,\n    bottom: bottom - elementRect.height,\n    right: right\n  })) {\n    // 5. position element above the control element, aligned to its left.\n    ddy = dy - elementRect.height;\n    //console.log('***** 5');\n  }\n  else if(isRectInsideWindowViewport({\n    top: top - elementRect.height,\n    left: left + controlRect.width - elementRect.width,\n    bottom: bottom - elementRect.height,\n    right: left + controlRect.width\n  })) {\n    // 6. position element above the control element, aligned to its right.\n    ddy = dy - elementRect.height;\n    ddx = dx + controlRect.width - elementRect.width;\n    //console.log('***** 6');\n  }\n  else if(isRectInsideWindowViewport({\n    top: top,\n    left: left + controlRect.width,\n    bottom: bottom,\n    right: right + controlRect.width\n  })) {\n    // 7. position element at button right hand side\n    ddx = controlRect.width + dx;\n    //console.log('***** 7');\n  }\n  else if(isRectInsideWindowViewport({\n    top: top,\n    left: left - controlRect.width,\n    bottom: bottom,\n    right: right - controlRect.width\n  })) {\n    // 8. position element at button left hand side\n    ddx = dx - elementRect.width;\n    //console.log('***** 8');\n  }\n  else {\n    // 9. position element inside viewport, near controlrect if possible\n    //console.log('***** 9');\n\n    // 9.1 position element near controlrect bottom\n    ddy =  dy - bottom + viewportHeight;\n    if(top + controlRect.height >= 0 && bottom + controlRect.height <= viewportHeight) {\n      ddy = controlRect.height + dy;\n    }\n    else if(top - elementRect.height >= 0 && bottom - elementRect.height <= viewportHeight) {\n      ddy = dy - elementRect.height;\n    }\n\n    if(left + elementRect.width + controlRect.width <= viewportWidth) {\n      // 9.2 Position element at button right hand side\n      ddx = controlRect.width + dx;\n      //console.log('***** 9.2');\n    }\n    else if(left - elementRect.width >= 0) {\n      // 9.3 Position element at button left hand side\n      ddx = dx - elementRect.width;\n      //console.log('***** 9.3');\n    }\n    else {\n      // 9.4 position element at (near) viewport right\n      const r = left + elementRect.width - viewportWidth;\n      ddx = dx - r;\n      //console.log('***** 9.4');\n    }\n  }\n\n  // 10. done\n  element.style.top = `${element.offsetTop + ddy}px`;\n  element.style.left = `${element.offsetLeft + ddx}px`;\n  //console.log('***** 10. done');\n};\n\n/**\n * Check if the given element can receive focus\n * @param {HTMLElement} element the element to check\n * @return {boolean} true if the element is focusable, otherwise false\n */\nconst isFocusable = (element) => {\n  // https://github.com/stephenmathieson/is-focusable/blob/master/index.js\n  // http://stackoverflow.com/questions/1599660/which-html-elements-can-receive-focus\n\n  if (element.hasAttribute('tabindex')) {\n    const tabindex = element.getAttribute('tabindex');\n    if (!Number.isNaN(tabindex)) {\n      return parseInt(tabindex) > -1;\n    }\n  }\n\n  if (element.hasAttribute('contenteditable') &&\n    element.getAttribute('contenteditable') !== 'false') {\n    // https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-contenteditable\n    return true;\n  }\n\n  // natively focusable, but only when enabled\n  const selector = /input|select|textarea|button|details/i;\n  const name = element.nodeName;\n  if (selector.test(name)) {\n    return element.type.toLowerCase() !== 'hidden' && !element.disabled;\n  }\n\n  // anchors and area must have an href\n  if (name === 'A' || name === 'AREA') {\n    return !!element.href;\n  }\n\n  if (name === 'IFRAME') {\n    // Check visible iframe\n    const cs = window.getComputedStyle(element);\n    return cs.getPropertyValue('display').toLowerCase() !== 'none';\n  }\n\n  return false;\n};\n\n\n/**\n * Get a list of offset parents for given element\n * @see https://www.benpickles.com/articles/51-finding-a-dom-nodes-common-ancestor-using-javascript\n * @param el the element\n * @return {Array} a list of offset parents\n */\n/*\nconst offsetParents = (el) => {\n  const elements = [];\n  for (; el; el = el.offsetParent) {\n    elements.unshift(el);\n  }\n  if(!elements.find(e => e === document.body)) {\n    elements.unshift(document.body);\n  }\n  return elements;\n};\n*/\n\n/**\n * Finds the common offset ancestor of two DOM nodes\n * @see https://www.benpickles.com/articles/51-finding-a-dom-nodes-common-ancestor-using-javascript\n * @see https://gist.github.com/benpickles/4059636\n * @param a\n * @param b\n * @return {Element} The common offset ancestor of a and b\n */\n/*\nconst commonOffsetAncestor = (a, b) => {\n  const parentsA = offsetParents(a);\n  const parentsB = offsetParents(b);\n\n  for (let i = 0; i < parentsA.length; i++) {\n    if (parentsA[i] !== parentsB[i]) return parentsA[i-1];\n  }\n};\n*/\n\n/**\n * Calculate position relative to a target element\n * @see http://stackoverflow.com/questions/21064101/understanding-offsetwidth-clientwidth-scrollwidth-and-height-respectively\n * @param target\n * @param el\n * @return {{top: number, left: number}}\n */\n/*\nconst calcPositionRelativeToTarget = (target, el) => {\n  let top = 0;\n  let left = 0;\n\n  while(el) {\n    top += (el.offsetTop - el.scrollTop + el.clientTop) || 0;\n    left += (el.offsetLeft - el.scrollLeft + el.clientLeft) || 0;\n    el = el.offsetParent;\n\n    if(el === target) {\n      break;\n    }\n  }\n  return { top: top, left: left };\n};\n*/\n\nexport {\n  getWindowViewport,\n  getParentElements,\n  getScrollParents,\n  isFocusable,\n  isRectInsideWindowViewport,\n  moveElements,\n  removeChildElements,\n  tether,\n};\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/dom-utils.js","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/classCallCheck.js\n// module id = 22\n// module chunks = 0 1","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/createClass.js\n// module id = 23\n// module chunks = 0 1","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n  if(it == undefined)throw TypeError(\"Can't call method on  \" + it);\n  return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_defined.js\n// module id = 24\n// module chunks = 0 1","module.exports = function(bitmap, value){\n  return {\n    enumerable  : !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable    : !(bitmap & 4),\n    value       : value\n  };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_property-desc.js\n// module id = 25\n// module chunks = 0 1","var shared = require('./_shared')('keys')\n  , uid    = require('./_uid');\nmodule.exports = function(key){\n  return shared[key] || (shared[key] = uid(key));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_shared-key.js\n// module id = 26\n// module chunks = 0 1","// 7.1.4 ToInteger\nvar ceil  = Math.ceil\n  , floor = Math.floor;\nmodule.exports = function(it){\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-integer.js\n// module id = 27\n// module chunks = 0 1","'use strict';\nvar $at  = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function(iterated){\n  this._t = String(iterated); // target\n  this._i = 0;                // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n  var O     = this._t\n    , index = this._i\n    , point;\n  if(index >= O.length)return {value: undefined, done: true};\n  point = $at(O, index);\n  this._i += point.length;\n  return {value: point, done: false};\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.string.iterator.js\n// module id = 28\n// module chunks = 0 1","'use strict';\n\n// See: http://robertpenner.com/easing/\n\nconst easeInOutQuad = (t, b, c, d) => {\n  t /= d / 2;\n  if(t < 1) return c / 2 * t * t + b;\n  t--;\n  return -c / 2 * (t * (t - 2) - 1) + b;\n};\n\nconst inOutQuintic = (t, b, c, d) => {\n  const ts = (t/=d)*t;\n  const tc = ts*t;\n  return b+c*(6*tc*ts + -15*ts*ts + 10*tc);\n};\n\nexport { easeInOutQuad, inOutQuintic };\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/easing.js","const MIN_INERVAL = 1000/60;\n\n/**\n * Trigger a callback at a given interval\n * @param interval defaults to 1000/60 ms\n * @return {function()} reference to start, stop, immediate and started\n */\n\nconst intervalFunction = ( interval = MIN_INERVAL ) => {\n\n  let lapse = interval < MIN_INERVAL ? MIN_INERVAL : interval;\n  let cb = undefined;\n  let next = null;\n  let timeElapsed = 0;\n\n  const execute = () => {\n    const f = cb(timeElapsed);\n    if (!f) {\n      cancel();\n    }\n  };\n\n  const cancel = () => {\n    if(next) {\n      window.cancelAnimationFrame(next);\n    }\n    next = null;\n    timeElapsed = 0;\n  };\n\n  const start = () => {\n    let timeStart = Date.now();\n\n    const loop = now => {\n      if (next) {\n        next = window.requestAnimationFrame( () => loop( Date.now() ));\n\n        timeElapsed += now - timeStart;\n\n        if(timeElapsed >= lapse) {\n          execute();\n          if( (timeElapsed -= lapse) > lapse) {\n            // time elapsed - interval_ > interval_ , indicates inactivity\n            // Could be due to browser minimized, tab changed, screen saver started, computer sleep, and so on\n            timeElapsed = 0;\n          }\n        }\n        timeStart = now;\n      }\n    };\n\n    next = 1;  // a truthy value for first loop\n    loop( timeStart );\n  };\n\n  return {\n    get started() {\n      return next != null;\n    },\n    get interval() {\n      return lapse;\n    },\n    set interval(value) {\n      lapse = value < MIN_INERVAL ? MIN_INERVAL : value;\n    },\n    start(callback) {\n      if(typeof callback !== 'function') {\n        throw new TypeError('callback parameter must be a function');\n      }\n      cb = callback;\n      start();\n    },\n    immediate() {\n      if(!cb) {\n        throw new ReferenceError('callback parameter is not defined. Call start before immediate.');\n      }\n      execute();\n    },\n    stop: () => cancel(),\n  };\n};\n\nexport default intervalFunction;\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/interval-function.js","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/get-iterator.js\n// module id = 31\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/number/is-integer\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/number/is-integer.js\n// module id = 32\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/assign.js\n// module id = 33\n// module chunks = 0 1","module.exports = function(it){\n  if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n  return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_a-function.js\n// module id = 34\n// module chunks = 0 1","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof')\n  , TAG = require('./_wks')('toStringTag')\n  // ES3 wrong here\n  , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function(it, key){\n  try {\n    return it[key];\n  } catch(e){ /* empty */ }\n};\n\nmodule.exports = function(it){\n  var O, T, B;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n    // builtinTag case\n    : ARG ? cof(O)\n    // ES3 arguments fallback\n    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_classof.js\n// module id = 35\n// module chunks = 0 1","var toString = {}.toString;\n\nmodule.exports = function(it){\n  return toString.call(it).slice(8, -1);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_cof.js\n// module id = 36\n// module chunks = 0 1","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n  aFunction(fn);\n  if(that === undefined)return fn;\n  switch(length){\n    case 1: return function(a){\n      return fn.call(that, a);\n    };\n    case 2: return function(a, b){\n      return fn.call(that, a, b);\n    };\n    case 3: return function(a, b, c){\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function(/* ...args */){\n    return fn.apply(that, arguments);\n  };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_ctx.js\n// module id = 37\n// module chunks = 0 1","var isObject = require('./_is-object')\n  , document = require('./_global').document\n  // in old IE typeof document.createElement is 'object'\n  , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n  return is ? document.createElement(it) : {};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_dom-create.js\n// module id = 38\n// module chunks = 0 1","// IE 8- don't enum bug keys\nmodule.exports = (\n  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_enum-bug-keys.js\n// module id = 39\n// module chunks = 0 1","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n  return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iobject.js\n// module id = 40\n// module chunks = 0 1","'use strict';\nvar LIBRARY        = require('./_library')\n  , $export        = require('./_export')\n  , redefine       = require('./_redefine')\n  , hide           = require('./_hide')\n  , has            = require('./_has')\n  , Iterators      = require('./_iterators')\n  , $iterCreate    = require('./_iter-create')\n  , setToStringTag = require('./_set-to-string-tag')\n  , getPrototypeOf = require('./_object-gpo')\n  , ITERATOR       = require('./_wks')('iterator')\n  , BUGGY          = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n  , FF_ITERATOR    = '@@iterator'\n  , KEYS           = 'keys'\n  , VALUES         = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n  $iterCreate(Constructor, NAME, next);\n  var getMethod = function(kind){\n    if(!BUGGY && kind in proto)return proto[kind];\n    switch(kind){\n      case KEYS: return function keys(){ return new Constructor(this, kind); };\n      case VALUES: return function values(){ return new Constructor(this, kind); };\n    } return function entries(){ return new Constructor(this, kind); };\n  };\n  var TAG        = NAME + ' Iterator'\n    , DEF_VALUES = DEFAULT == VALUES\n    , VALUES_BUG = false\n    , proto      = Base.prototype\n    , $native    = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n    , $default   = $native || getMethod(DEFAULT)\n    , $entries   = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined\n    , $anyNative = NAME == 'Array' ? proto.entries || $native : $native\n    , methods, key, IteratorPrototype;\n  // Fix native\n  if($anyNative){\n    IteratorPrototype = getPrototypeOf($anyNative.call(new Base));\n    if(IteratorPrototype !== Object.prototype){\n      // Set @@toStringTag to native iterators\n      setToStringTag(IteratorPrototype, TAG, true);\n      // fix for some old engines\n      if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n    }\n  }\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if(DEF_VALUES && $native && $native.name !== VALUES){\n    VALUES_BUG = true;\n    $default = function values(){ return $native.call(this); };\n  }\n  // Define iterator\n  if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n    hide(proto, ITERATOR, $default);\n  }\n  // Plug for library\n  Iterators[NAME] = $default;\n  Iterators[TAG]  = returnThis;\n  if(DEFAULT){\n    methods = {\n      values:  DEF_VALUES ? $default : getMethod(VALUES),\n      keys:    IS_SET     ? $default : getMethod(KEYS),\n      entries: $entries\n    };\n    if(FORCED)for(key in methods){\n      if(!(key in proto))redefine(proto, key, methods[key]);\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n  }\n  return methods;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-define.js\n// module id = 41\n// module chunks = 0 1","exports.f = {}.propertyIsEnumerable;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-pie.js\n// module id = 42\n// module chunks = 0 1","var def = require('./_object-dp').f\n  , has = require('./_has')\n  , TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_set-to-string-tag.js\n// module id = 43\n// module chunks = 0 1","var global = require('./_global')\n  , SHARED = '__core-js_shared__'\n  , store  = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n  return store[key] || (store[key] = {});\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_shared.js\n// module id = 44\n// module chunks = 0 1","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n  , min       = Math.min;\nmodule.exports = function(it){\n  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-length.js\n// module id = 45\n// module chunks = 0 1","var id = 0\n  , px = Math.random();\nmodule.exports = function(key){\n  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_uid.js\n// module id = 46\n// module chunks = 0 1","var classof   = require('./_classof')\n  , ITERATOR  = require('./_wks')('iterator')\n  , Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function(it){\n  if(it != undefined)return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/core.get-iterator-method.js\n// module id = 47\n// module chunks = 0 1","require('./es6.array.iterator');\nvar global        = require('./_global')\n  , hide          = require('./_hide')\n  , Iterators     = require('./_iterators')\n  , TO_STRING_TAG = require('./_wks')('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n  var NAME       = collections[i]\n    , Collection = global[NAME]\n    , proto      = Collection && Collection.prototype;\n  if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n  Iterators[NAME] = Iterators.Array;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/web.dom.iterable.js\n// module id = 48\n// module chunks = 0 1","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/**\n * A WAI-ARIA friendly accordion component.\n * An accordion is a collection of expandable panels associated with a common outer container. Panels consist\n * of a header and an associated content region or tabpanel. The primary use of an Accordion is to present multiple sections\n * of content on a single page without scrolling, where all of the sections are peers in the application or object hierarchy.\n * The general look is similar to a tree where each root tree node is an expandable accordion header. The user navigates\n * and makes the contents of each panel visible (or not) by interacting with the Accordion Header\n */\n\nimport {\n  VK_ENTER,\n  VK_SPACE,\n  VK_END,\n  VK_HOME,\n  VK_ARROW_LEFT,\n  VK_ARROW_UP,\n  VK_ARROW_RIGHT,\n  VK_ARROW_DOWN,\n  IS_EXPANDED,\n  IS_UPGRADED,\n  ARIA_MULTISELECTABLE,\n  ARIA_EXPANDED,\n  ARIA_HIDDEN,\n  ARIA_SELECTED\n} from '../utils/constants';\n\n\n(function() {\n  'use strict';\n  const ACCORDION            = 'mdlext-accordion';\n  const ACCORDION_VERTICAL   = 'mdlext-accordion--vertical';\n  const ACCORDION_HORIZONTAL = 'mdlext-accordion--horizontal';\n  const PANEL                = 'mdlext-accordion__panel';\n  const PANEL_ROLE           = 'presentation';\n  const TAB                  = 'mdlext-accordion__tab';\n  const TAB_CAPTION          = 'mdlext-accordion__tab__caption';\n  const TAB_ROLE             = 'tab';\n  const TABPANEL             = 'mdlext-accordion__tabpanel';\n  const TABPANEL_ROLE        = 'tabpanel';\n  const RIPPLE_EFFECT        = 'mdlext-js-ripple-effect';\n  const RIPPLE               = 'mdlext-accordion__tab--ripple';\n  const ANIMATION_EFFECT     = 'mdlext-js-animation-effect';\n  const ANIMATION            = 'mdlext-accordion__tabpanel--animation';\n\n  /**\n   * @constructor\n   * @param {Element} element The element that will be upgraded.\n   */\n  const MaterialExtAccordion = function MaterialExtAccordion( element ) {\n\n    // Stores the Accordion HTML element.\n    this.element_ = element;\n\n    // Initialize instance.\n    this.init();\n  };\n  window['MaterialExtAccordion'] = MaterialExtAccordion;\n\n\n  // Helpers\n  const accordionPanelElements = ( element ) => {\n    if(!element) {\n      return {\n        panel: null,\n        tab: null,\n        tabpanel: null\n      };\n    }\n    else if (element.classList.contains(PANEL)) {\n      return {\n        panel: element,\n        tab: element.querySelector(`.${TAB}`),\n        tabpanel: element.querySelector(`.${TABPANEL}`)\n      };\n    }\n    else {\n      return {\n        panel: element.parentNode,\n        tab: element.parentNode.querySelector(`.${TAB}`),\n        tabpanel: element.parentNode.querySelector(`.${TABPANEL}`)\n      };\n    }\n  };\n\n\n  // Private methods.\n\n  /**\n   * Handles custom command event, 'open', 'close', 'toggle' or upgrade\n   * @param event. A custom event\n   * @private\n   */\n  MaterialExtAccordion.prototype.commandHandler_ = function( event ) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    if(event && event.detail) {\n      this.command(event.detail);\n    }\n  };\n\n  /**\n   * Dispatch toggle event\n   * @param {string} state\n   * @param {Element} tab\n   * @param {Element} tabpanel\n   * @private\n   */\n  MaterialExtAccordion.prototype.dispatchToggleEvent_ = function ( state, tab, tabpanel ) {\n    const ce = new CustomEvent('toggle', {\n      bubbles: true,\n      cancelable: true,\n      detail: { state: state, tab: tab, tabpanel: tabpanel }\n    });\n    this.element_.dispatchEvent(ce);\n  };\n\n  /**\n   * Open tab\n   * @param {Element} panel\n   * @param {Element} tab\n   * @param {Element} tabpanel\n   * @private\n   */\n  MaterialExtAccordion.prototype.openTab_ = function( panel, tab, tabpanel ) {\n    panel.classList.add(IS_EXPANDED);\n    tab.setAttribute(ARIA_EXPANDED, 'true');\n    tabpanel.removeAttribute('hidden');\n    tabpanel.setAttribute(ARIA_HIDDEN, 'false');\n    this.dispatchToggleEvent_('open', tab, tabpanel);\n  };\n\n  /**\n   * Close tab\n   * @param {Element} panel\n   * @param {Element} tab\n   * @param {Element} tabpanel\n   * @private\n   */\n  MaterialExtAccordion.prototype.closeTab_ = function( panel, tab, tabpanel ) {\n    panel.classList.remove(IS_EXPANDED);\n    tab.setAttribute(ARIA_EXPANDED, 'false');\n    tabpanel.setAttribute('hidden', '');\n    tabpanel.setAttribute(ARIA_HIDDEN, 'true');\n    this.dispatchToggleEvent_('close', tab, tabpanel);\n  };\n\n  /**\n   * Toggle tab\n   * @param {Element} panel\n   * @param {Element} tab\n   * @param {Element} tabpanel\n   * @private\n   */\n  MaterialExtAccordion.prototype.toggleTab_ = function( panel, tab, tabpanel ) {\n    if( !(this.element_.hasAttribute('disabled') || tab.hasAttribute('disabled')) ) {\n      if (tab.getAttribute(ARIA_EXPANDED).toLowerCase() === 'true') {\n        this.closeTab_(panel, tab, tabpanel);\n      }\n      else {\n        if (this.element_.getAttribute(ARIA_MULTISELECTABLE).toLowerCase() !== 'true') {\n          this.closeTabs_();\n        }\n        this.openTab_(panel, tab, tabpanel);\n      }\n    }\n  };\n\n  /**\n   * Open tabs\n   * @private\n   */\n  MaterialExtAccordion.prototype.openTabs_ = function() {\n    if (this.element_.getAttribute(ARIA_MULTISELECTABLE).toLowerCase() === 'true') {\n      [...this.element_.querySelectorAll(`.${ACCORDION} > .${PANEL}`)]\n        .filter(panel => !panel.classList.contains(IS_EXPANDED))\n        .forEach(closedItem => {\n          const tab = closedItem.querySelector(`.${TAB}`);\n          if (!tab.hasAttribute('disabled')) {\n            this.openTab_(closedItem, tab, closedItem.querySelector(`.${TABPANEL}`));\n          }\n        });\n    }\n  };\n\n  /**\n   * Close tabs\n   * @private\n   */\n  MaterialExtAccordion.prototype.closeTabs_ = function() {\n    [...this.element_.querySelectorAll(`.${ACCORDION} > .${PANEL}.${IS_EXPANDED}`)]\n      .forEach( panel => {\n        const tab = panel.querySelector(`.${TAB}`);\n        if(!tab.hasAttribute('disabled')) {\n          this.closeTab_(panel, tab, panel.querySelector(`.${TABPANEL}`));\n        }\n      });\n  };\n\n\n  // Public methods.\n\n  /**\n   * Upgrade an individual accordion tab\n   * @public\n   * @param {Element} tabElement The HTML element for the accordion panel.\n   */\n  MaterialExtAccordion.prototype.upgradeTab = function( tabElement ) {\n\n    const { panel, tab, tabpanel } = accordionPanelElements( tabElement );\n\n    const disableTab = () => {\n      panel.classList.remove(IS_EXPANDED);\n      tab.setAttribute('tabindex', '-1');\n      tab.setAttribute(ARIA_EXPANDED, 'false');\n      tabpanel.setAttribute('hidden', '');\n      tabpanel.setAttribute(ARIA_HIDDEN, 'true');\n    };\n\n    const enableTab = () => {\n      if(!tab.hasAttribute(ARIA_EXPANDED)) {\n        tab.setAttribute(ARIA_EXPANDED, 'false');\n      }\n\n      tab.setAttribute('tabindex', '0');\n\n      if(tab.getAttribute(ARIA_EXPANDED).toLowerCase() === 'true') {\n        panel.classList.add(IS_EXPANDED);\n        tabpanel.removeAttribute('hidden');\n        tabpanel.setAttribute(ARIA_HIDDEN, 'false');\n      }\n      else {\n        panel.classList.remove(IS_EXPANDED);\n        tabpanel.setAttribute('hidden', '');\n        tabpanel.setAttribute(ARIA_HIDDEN, 'true');\n      }\n    };\n\n    // In horizontal layout, caption must have a max-width defined to prevent pushing elements to the right of the caption out of view.\n    // In JsDom, offsetWidth and offsetHeight properties do not work, so this function is not testable.\n    /* istanbul ignore next */\n    const calcMaxTabCaptionWidth = () => {\n\n      const tabCaption = tab.querySelector(`.${TAB_CAPTION}`);\n      if(tabCaption !== null) {\n        const w = [...tab.children]\n          .filter( el => el.classList && !el.classList.contains(TAB_CAPTION) )\n          .reduce( (v, el) => v + el.offsetWidth, 0 );\n\n        const maxWidth = tab.clientHeight - w;\n        if(maxWidth > 0) {\n          tabCaption.style['max-width'] = `${maxWidth}px`;\n        }\n      }\n    };\n\n    const selectTab = () => {\n      if( !tab.hasAttribute(ARIA_SELECTED) ) {\n        [...this.element_.querySelectorAll(`.${TAB}[aria-selected=\"true\"]`)].forEach(\n          selectedTab => selectedTab.removeAttribute(ARIA_SELECTED)\n        );\n        tab.setAttribute(ARIA_SELECTED, 'true');\n      }\n    };\n\n    const tabClickHandler = () => {\n      this.toggleTab_(panel, tab, tabpanel);\n      selectTab();\n    };\n\n    const tabFocusHandler = () => {\n      selectTab();\n    };\n\n    const tabpanelClickHandler = () => {\n      selectTab();\n    };\n\n    const tabpanelFocusHandler = () => {\n      selectTab();\n    };\n\n    const tabKeydownHandler = e => {\n\n      if(this.element_.hasAttribute('disabled')) {\n        return;\n      }\n\n      if ( e.keyCode === VK_END        || e.keyCode === VK_HOME\n        || e.keyCode === VK_ARROW_UP   || e.keyCode === VK_ARROW_LEFT\n        || e.keyCode === VK_ARROW_DOWN || e.keyCode === VK_ARROW_RIGHT ) {\n\n        let nextTab = null;\n        let keyCode = e.keyCode;\n\n        if (keyCode === VK_HOME) {\n          nextTab = this.element_.querySelector(`.${PANEL}:first-child > .${TAB}`);\n          if(nextTab && nextTab.hasAttribute('disabled')) {\n            nextTab = null;\n            keyCode = VK_ARROW_DOWN;\n          }\n        }\n        else if (keyCode === VK_END) {\n          nextTab = this.element_.querySelector(`.${PANEL}:last-child > .${TAB}`);\n          if(nextTab && nextTab.hasAttribute('disabled')) {\n            nextTab = null;\n            keyCode = VK_ARROW_UP;\n          }\n        }\n\n        if(!nextTab) {\n          let nextPanel = panel;\n\n          do {\n            if (keyCode === VK_ARROW_UP || keyCode === VK_ARROW_LEFT) {\n              nextPanel = nextPanel.previousElementSibling;\n              if(!nextPanel) {\n                nextPanel = this.element_.querySelector(`.${PANEL}:last-child`);\n              }\n              if (nextPanel) {\n                nextTab = nextPanel.querySelector(`.${PANEL} > .${TAB}`);\n              }\n            }\n            else if (keyCode === VK_ARROW_DOWN || keyCode === VK_ARROW_RIGHT) {\n              nextPanel = nextPanel.nextElementSibling;\n              if(!nextPanel) {\n                nextPanel = this.element_.querySelector(`.${PANEL}:first-child`);\n              }\n              if (nextPanel) {\n                nextTab = nextPanel.querySelector(`.${PANEL} > .${TAB}`);\n              }\n            }\n\n            if(nextTab && nextTab.hasAttribute('disabled')) {\n              nextTab = null;\n            }\n            else {\n              break;\n            }\n          }\n          while(nextPanel !== panel);\n        }\n\n        if (nextTab) {\n          e.preventDefault();\n          e.stopPropagation();\n          nextTab.focus();\n\n          // Workaround for JSDom testing:\n          // In JsDom 'element.focus()' does not trigger any focus event\n          if(!nextTab.hasAttribute(ARIA_SELECTED)) {\n\n            [...this.element_.querySelectorAll(`.${TAB}[aria-selected=\"true\"]`)]\n              .forEach( selectedTab => selectedTab.removeAttribute(ARIA_SELECTED) );\n\n            nextTab.setAttribute(ARIA_SELECTED, 'true');\n          }\n        }\n      }\n      else if (e.keyCode === VK_ENTER || e.keyCode === VK_SPACE) {\n        e.preventDefault();\n        e.stopPropagation();\n        this.toggleTab_(panel, tab, tabpanel);\n      }\n    };\n\n    if(tab === null) {\n      throw new Error('There must be a tab element for each accordion panel.');\n    }\n\n    if(tabpanel === null) {\n      throw new Error('There must be a tabpanel element for each accordion panel.');\n    }\n\n    panel.setAttribute('role', PANEL_ROLE);\n    tab.setAttribute('role', TAB_ROLE);\n    tabpanel.setAttribute('role', TABPANEL_ROLE);\n\n    if(tab.hasAttribute('disabled')) {\n      disableTab();\n    }\n    else {\n      enableTab();\n    }\n\n    if( this.element_.classList.contains(ACCORDION_HORIZONTAL)) {\n      calcMaxTabCaptionWidth();\n    }\n\n    if (this.element_.classList.contains(RIPPLE_EFFECT)) {\n      tab.classList.add(RIPPLE);\n    }\n\n    if (this.element_.classList.contains(ANIMATION_EFFECT)) {\n      tabpanel.classList.add(ANIMATION);\n    }\n\n    // Remove listeners, just in case ...\n    tab.removeEventListener('click', tabClickHandler);\n    tab.removeEventListener('focus', tabFocusHandler);\n    tab.removeEventListener('keydown', tabKeydownHandler);\n    tabpanel.removeEventListener('click', tabpanelClickHandler);\n    tabpanel.removeEventListener('focus', tabpanelFocusHandler);\n\n    tab.addEventListener('click', tabClickHandler);\n    tab.addEventListener('focus', tabFocusHandler);\n    tab.addEventListener('keydown', tabKeydownHandler);\n    tabpanel.addEventListener('click', tabpanelClickHandler, true);\n    tabpanel.addEventListener('focus', tabpanelFocusHandler, true);\n  };\n  MaterialExtAccordion.prototype['upgradeTab'] = MaterialExtAccordion.prototype.upgradeTab;\n\n\n  /**\n   * Execute command\n   * @param detail\n   */\n  MaterialExtAccordion.prototype.command = function( detail ) {\n\n    const openTab = tabElement => {\n\n      if(tabElement === undefined) {\n        this.openTabs_();\n      }\n      else if(tabElement !== null) {\n        const { panel, tab, tabpanel } = accordionPanelElements( tabElement );\n        if(tab.getAttribute(ARIA_EXPANDED).toLowerCase() !== 'true') {\n          this.toggleTab_(panel, tab, tabpanel);\n        }\n      }\n    };\n\n    const closeTab = tabElement => {\n      if(tabElement === undefined) {\n        this.closeTabs_();\n      }\n      else if(tabElement !== null) {\n        const { panel, tab, tabpanel } = accordionPanelElements( tabElement );\n\n        if(tab.getAttribute(ARIA_EXPANDED).toLowerCase() === 'true') {\n          this.toggleTab_(panel, tab, tabpanel);\n        }\n      }\n    };\n\n    const toggleTab = tabElement => {\n      if(tabElement) {\n        const { panel, tab, tabpanel } = accordionPanelElements( tabElement );\n        this.toggleTab_(panel, tab, tabpanel);\n      }\n    };\n\n\n    if(detail && detail.action) {\n      const { action, target } = detail;\n\n      switch (action.toLowerCase()) {\n        case 'open':\n          openTab(target);\n          break;\n        case 'close':\n          closeTab(target);\n          break;\n        case 'toggle':\n          toggleTab(target);\n          break;\n        case 'upgrade':\n          if(target) {\n            this.upgradeTab(target);\n          }\n          break;\n        default:\n          throw new Error(`Unknown action \"${action}\". Action must be one of \"open\", \"close\", \"toggle\" or \"upgrade\"`);\n      }\n    }\n  };\n  MaterialExtAccordion.prototype['command'] = MaterialExtAccordion.prototype.command;\n\n\n  /**\n   * Initialize component\n   */\n  MaterialExtAccordion.prototype.init = function() {\n    if (this.element_) {\n      // Do the init required for this component to work\n      if( !(this.element_.classList.contains(ACCORDION_HORIZONTAL) || this.element_.classList.contains(ACCORDION_VERTICAL))) {\n        throw new Error(`Accordion must have one of the classes \"${ACCORDION_HORIZONTAL}\" or \"${ACCORDION_VERTICAL}\"`);\n      }\n\n      this.element_.setAttribute('role', 'tablist');\n\n      if(!this.element_.hasAttribute(ARIA_MULTISELECTABLE)) {\n        this.element_.setAttribute(ARIA_MULTISELECTABLE, 'false');\n      }\n\n      this.element_.removeEventListener('command', this.commandHandler_);\n      this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\n      [...this.element_.querySelectorAll(`.${ACCORDION} > .${PANEL}`)].forEach( panel => this.upgradeTab(panel) );\n\n      // Set upgraded flag\n      this.element_.classList.add(IS_UPGRADED);\n    }\n  };\n\n\n  /*\n   * Downgrade component\n   * E.g remove listeners and clean up resources\n   *\n   * Nothing to downgrade\n   *\n   MaterialExtAccordion.prototype.mdlDowngrade_ = function() {\n     'use strict';\n     console.log('***** MaterialExtAccordion.mdlDowngrade');\n   };\n   */\n\n\n  // The component registers itself. It can assume componentHandler is available\n  // in the global scope.\n  /* eslint no-undef: 0 */\n  componentHandler.register({\n    constructor: MaterialExtAccordion,\n    classAsString: 'MaterialExtAccordion',\n    cssClass: 'mdlext-js-accordion',\n    widget: true\n  });\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/accordion/accordion.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/**\n * Image carousel\n */\n\nimport intervalFunction from '../utils/interval-function';\nimport { inOutQuintic } from '../utils/easing';\nimport { jsonStringToObject} from '../utils/json-utils';\nimport {\n  VK_TAB,\n  VK_ENTER,\n  VK_ESC,\n  VK_SPACE,\n  VK_PAGE_UP,\n  VK_PAGE_DOWN,\n  VK_END,\n  VK_HOME,\n  VK_ARROW_LEFT,\n  VK_ARROW_UP,\n  VK_ARROW_RIGHT,\n  VK_ARROW_DOWN,\n  IS_UPGRADED,\n  IS_FOCUSED,\n  MDL_RIPPLE,\n  MDL_RIPPLE_COMPONENT,\n  MDL_RIPPLE_EFFECT,\n  MDL_RIPPLE_EFFECT_IGNORE_EVENTS\n} from '../utils/constants';\n\nconst MDL_RIPPLE_CONTAINER = 'mdlext-carousel__slide__ripple-container';\n\n\n(function() {\n  'use strict';\n\n  //const CAROUSEL = 'mdlext-carousel';\n  const SLIDE      = 'mdlext-carousel__slide';\n  const ROLE       = 'list';\n  const SLIDE_ROLE = 'listitem';\n\n\n  /**\n   * @constructor\n   * @param {Element} element The element that will be upgraded.\n   */\n  const MaterialExtCarousel = function MaterialExtCarousel(element) {\n    // Stores the element.\n    this.element_ = element;\n\n    // Default config\n    this.config_ = {\n      interactive  : true,\n      autostart    : false,\n      type         : 'slide',\n      interval     : 1000,\n      animationLoop: intervalFunction(1000)\n    };\n\n    this.scrollAnimation_ = intervalFunction(33);\n\n    // Initialize instance.\n    this.init();\n  };\n\n  window['MaterialExtCarousel'] = MaterialExtCarousel;\n\n\n  /**\n   * Start slideshow animation\n   * @private\n   */\n  MaterialExtCarousel.prototype.startSlideShow_ = function() {\n\n    const nextSlide = () => {\n      let slide = this.element_.querySelector(`.${SLIDE}[aria-selected]`);\n      if(slide) {\n        slide.removeAttribute('aria-selected');\n        slide = slide.nextElementSibling;\n      }\n      if(!slide) {\n        slide = this.element_.querySelector(`.${SLIDE}:first-child`);\n        this.animateScroll_(0);\n      }\n      if(slide) {\n        this.moveSlideIntoViewport_(slide);\n        slide.setAttribute('aria-selected', '');\n        this.emitSelectEvent_('next', null, slide);\n        return true;\n      }\n      return false;\n    };\n\n    const nextScroll = direction => {\n      let nextDirection = direction;\n\n      if('next' === direction &&  this.element_.scrollLeft === this.element_.scrollWidth - this.element_.clientWidth) {\n        nextDirection = 'prev';\n      }\n      else if(this.element_.scrollLeft === 0) {\n        nextDirection = 'next';\n      }\n      const x = 'next' === nextDirection\n        ?  Math.min(this.element_.scrollLeft + this.element_.clientWidth, this.element_.scrollWidth - this.element_.clientWidth)\n        :  Math.max(this.element_.scrollLeft - this.element_.clientWidth, 0);\n\n      this.animateScroll_(x, 1000);\n      return nextDirection;\n    };\n\n\n    if(!this.config_.animationLoop.started) {\n      this.config_.animationLoop.interval = this.config_.interval;\n      let direction = 'next';\n\n      if('scroll' === this.config_.type) {\n        this.config_.animationLoop.start( () => {\n          direction = nextScroll(direction);\n          return true; // It runs until cancelSlideShow_ is triggered\n        });\n      }\n      else {\n        nextSlide();\n        this.config_.animationLoop.start( () => {\n          return nextSlide(); // It runs until cancelSlideShow_ is triggered\n        });\n      }\n    }\n\n    // TODO: Pause animation when carousel is not in browser viewport or user changes tab\n  };\n\n  /**\n   * Cancel slideshow if running. Emmits a 'pause' event\n   * @private\n   */\n  MaterialExtCarousel.prototype.cancelSlideShow_ = function() {\n    if(this.config_.animationLoop.started) {\n      this.config_.animationLoop.stop();\n      this.emitSelectEvent_('pause', VK_ESC, this.element_.querySelector(`.${SLIDE}[aria-selected]`));\n    }\n  };\n\n  /**\n   * Animate scroll\n   * @param newPosition\n   * @param newDuration\n   * @param completedCallback\n   * @private\n   */\n  MaterialExtCarousel.prototype.animateScroll_ = function( newPosition, newDuration, completedCallback ) {\n\n    const start = this.element_.scrollLeft;\n    const distance = newPosition - start;\n\n    if(distance !== 0) {\n      const duration = Math.max(Math.min(Math.abs(distance), newDuration||400), 100); // duration is between 100 and newDuration||400ms||distance\n      let t = 0;\n      this.scrollAnimation_.stop();\n      this.scrollAnimation_.start( timeElapsed => {\n        t += timeElapsed;\n        if(t < duration) {\n          this.element_.scrollLeft = inOutQuintic(t, start, distance, duration);\n          return true;\n        }\n        else {\n          this.element_.scrollLeft = newPosition;\n          if(completedCallback) {\n            completedCallback();\n          }\n          return false;\n        }\n      });\n    }\n    else {\n      if(completedCallback) {\n        completedCallback();\n      }\n    }\n  };\n\n  /**\n   * Execute commend\n   * @param event\n   * @private\n   */\n  MaterialExtCarousel.prototype.command_ = function( event ) {\n    let x = 0;\n    let slide = null;\n    const a = event.detail.action.toLowerCase();\n\n    // Cancel slideshow if running\n    this.cancelSlideShow_();\n\n    switch (a) {\n      case 'first':\n        slide = this.element_.querySelector(`.${SLIDE}:first-child`);\n        break;\n\n      case 'last':\n        x = this.element_.scrollWidth - this.element_.clientWidth;\n        slide = this.element_.querySelector(`.${SLIDE}:last-child`);\n        break;\n\n      case 'scroll-prev':\n        x = Math.max(this.element_.scrollLeft - this.element_.clientWidth, 0);\n        break;\n\n      case 'scroll-next':\n        x = Math.min(this.element_.scrollLeft + this.element_.clientWidth, this.element_.scrollWidth - this.element_.clientWidth);\n        break;\n\n      case 'next':\n      case 'prev':\n        slide = this.element_.querySelector(`.${SLIDE}[aria-selected]`);\n        if(slide) {\n          slide = a === 'next' ? slide.nextElementSibling : slide.previousElementSibling;\n          this.setAriaSelected_(slide);\n          this.emitSelectEvent_(a, null,  slide);\n        }\n        return;\n\n      case 'play':\n        Object.assign(this.config_, event.detail);\n        this.startSlideShow_();\n        return;\n\n      case 'pause':\n        return;\n\n      default:\n        return;\n    }\n\n    this.animateScroll_(x, undefined, () => {\n      if ('scroll-next' === a || 'scroll-prev' === a) {\n        const slides = this.getSlidesInViewport_();\n        if (slides.length > 0) {\n          slide = 'scroll-next' === a ? slides[0] : slides[slides.length - 1];\n        }\n      }\n      this.setAriaSelected_(slide);\n      this.emitSelectEvent_(a, null, slide);\n    });\n  };\n\n  /**\n   * Handles custom command event, 'scroll-prev', 'scroll-next', 'first', 'last', next, prev, play, pause\n   * @param event. A custom event\n   * @private\n   */\n  MaterialExtCarousel.prototype.commandHandler_ = function( event ) {\n    event.preventDefault();\n    event.stopPropagation();\n    if(event.detail && event.detail.action) {\n      this.command_(event);\n    }\n  };\n\n  /**\n   * Handle keypress\n   * @param event\n   * @private\n   */\n  MaterialExtCarousel.prototype.keyDownHandler_ = function(event) {\n\n    if (event && event.target && event.target !== this.element_) {\n\n      let action = 'first';\n\n      if ( event.keyCode === VK_HOME    || event.keyCode === VK_END\n        || event.keyCode === VK_PAGE_UP || event.keyCode === VK_PAGE_DOWN) {\n\n        event.preventDefault();\n        if (event.keyCode === VK_END) {\n          action = 'last';\n        }\n        else if (event.keyCode === VK_PAGE_UP) {\n          action = 'scroll-prev';\n        }\n        else if (event.keyCode === VK_PAGE_DOWN) {\n          action = 'scroll-next';\n        }\n\n        const cmd = new CustomEvent('select', {\n          detail: {\n            action: action,\n          }\n        });\n        this.command_(cmd);\n      }\n      else if ( event.keyCode === VK_TAB\n        || event.keyCode === VK_ENTER      || event.keyCode === VK_SPACE\n        || event.keyCode === VK_ARROW_UP   || event.keyCode === VK_ARROW_LEFT\n        || event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n\n        let slide = getSlide_(event.target);\n\n        if(!slide) {\n          return;\n        }\n\n        // Cancel slideshow if running\n        this.cancelSlideShow_();\n\n        switch (event.keyCode) {\n          case VK_ARROW_UP:\n          case VK_ARROW_LEFT:\n            action = 'prev';\n            slide = slide.previousElementSibling;\n            break;\n\n          case VK_ARROW_DOWN:\n          case VK_ARROW_RIGHT:\n            action = 'next';\n            slide = slide.nextElementSibling;\n            break;\n\n          case VK_TAB:\n            if (event.shiftKey) {\n              action = 'prev';\n              slide = slide.previousElementSibling;\n            }\n            else {\n              action = 'next';\n              slide = slide.nextElementSibling;\n            }\n            break;\n\n          case VK_SPACE:\n          case VK_ENTER:\n            action = 'select';\n            break;\n        }\n\n        if(slide) {\n          event.preventDefault();\n          setFocus_(slide);\n          this.emitSelectEvent_(action, event.keyCode, slide);\n        }\n      }\n    }\n  };\n\n  /**\n   * Handle dragging\n   * @param event\n   * @private\n   */\n  MaterialExtCarousel.prototype.dragHandler_ = function(event) {\n    event.preventDefault();\n\n    // Cancel slideshow if running\n    this.cancelSlideShow_();\n\n    let updating = false;\n    let rAFDragId = 0;\n\n    const startX = event.clientX || (event.touches !== undefined ? event.touches[0].clientX : 0);\n    let prevX = startX;\n    const targetElement = event.target;\n\n    const update = e => {\n      const currentX = (e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0));\n      const dx = prevX - currentX;\n\n      if(dx < 0) {\n        this.element_.scrollLeft = Math.max(this.element_.scrollLeft + dx, 0);\n      }\n      else if(dx > 0) {\n        this.element_.scrollLeft = Math.min(this.element_.scrollLeft + dx, this.element_.scrollWidth - this.element_.clientWidth);\n      }\n\n      prevX = currentX;\n      updating = false;\n    };\n\n    // drag handler\n    const drag = e => {\n      e.preventDefault();\n\n      if(!updating) {\n        rAFDragId = window.requestAnimationFrame( () => update(e));\n        updating = true;\n      }\n    };\n\n    // end drag handler\n    const endDrag = e => {\n      e.preventDefault();\n\n      this.element_.removeEventListener('mousemove', drag);\n      this.element_.removeEventListener('touchmove', drag);\n      window.removeEventListener('mouseup', endDrag);\n      window.removeEventListener('touchend', endDrag);\n\n      // cancel any existing drag rAF, see: http://www.html5rocks.com/en/tutorials/speed/animations/\n      window.cancelAnimationFrame(rAFDragId);\n\n      const slide = getSlide_(targetElement);\n      setFocus_(slide);\n      this.emitSelectEvent_('click', null,  slide);\n    };\n\n    this.element_.addEventListener('mousemove', drag);\n    this.element_.addEventListener('touchmove', drag);\n    window.addEventListener('mouseup', endDrag);\n    window.addEventListener('touchend',endDrag);\n  };\n\n  /**\n   * Handle click\n   * @param event\n   * @private\n   */\n  MaterialExtCarousel.prototype.clickHandler_ = function(event) {\n    // Click is handled by drag\n    event.preventDefault();\n  };\n\n  /**\n   * Handle focus\n   * @param event\n   * @private\n   */\n  MaterialExtCarousel.prototype.focusHandler_ = function(event) {\n    const slide = getSlide_(event.target);\n    if(slide) {\n      // The last focused/selected slide has 'aria-selected', even if focus is lost\n      this.setAriaSelected_(slide);\n      slide.classList.add(IS_FOCUSED);\n    }\n  };\n\n  /**\n   * Handle blur\n   * @param event\n   * @private\n   */\n  MaterialExtCarousel.prototype.blurHandler_ = function(event) {\n    const slide = getSlide_(event.target);\n    if(slide) {\n      slide.classList.remove(IS_FOCUSED);\n    }\n  };\n\n  /**\n   * Emits a custeom 'select' event\n   * @param command\n   * @param keyCode\n   * @param slide\n   * @private\n   */\n  MaterialExtCarousel.prototype.emitSelectEvent_ = function(command, keyCode, slide) {\n\n    if(slide) {\n      this.moveSlideIntoViewport_(slide);\n\n      const evt = new CustomEvent('select', {\n        bubbles: true,\n        cancelable: true,\n        detail: {\n          command: command,\n          keyCode: keyCode,\n          source: slide\n        }\n      });\n      this.element_.dispatchEvent(evt);\n    }\n  };\n\n  /**\n   * Get the first visible slide in component viewport\n   * @private\n   */\n  MaterialExtCarousel.prototype.getSlidesInViewport_ = function() {\n    const carouselRect = this.element_.getBoundingClientRect();\n\n    const slidesInViewport = [...this.element_.querySelectorAll(`.${SLIDE}`)].filter( slide => {\n      const slideRect = slide.getBoundingClientRect();\n      return slideRect.left >= carouselRect.left && slideRect.right <= carouselRect.right;\n    });\n    return slidesInViewport;\n  };\n\n  /**\n   * Move slide into component viewport - if needed\n   * @param slide\n   * @private\n   */\n  MaterialExtCarousel.prototype.moveSlideIntoViewport_ = function(slide) {\n    const carouselRect = this.element_.getBoundingClientRect();\n    const slideRect = slide.getBoundingClientRect();\n\n    if(slideRect.left < carouselRect.left) {\n      const x = this.element_.scrollLeft - (carouselRect.left - slideRect.left);\n      this.animateScroll_(x);\n    }\n    else if(slideRect.right > carouselRect.right) {\n      const x = this.element_.scrollLeft - (carouselRect.right - slideRect.right);\n      this.animateScroll_(x);\n    }\n  };\n\n\n  /**\n   * Removes 'aria-selected' from all slides in carousel\n   * @private\n   */\n  MaterialExtCarousel.prototype.setAriaSelected_ = function(slide) {\n    if(slide) {\n      [...this.element_.querySelectorAll(`.${SLIDE}[aria-selected]`)].forEach(\n        slide => slide.removeAttribute('aria-selected')\n      );\n      slide.setAttribute('aria-selected', '');\n    }\n  };\n\n  /**\n   * Removes event listeners\n   * @private\n   */\n  MaterialExtCarousel.prototype.removeListeners_ = function() {\n    this.element_.removeEventListener('focus', this.focusHandler_);\n    this.element_.removeEventListener('blur', this.blurHandler_);\n    this.element_.removeEventListener('keydown', this.keyDownHandler_);\n    this.element_.removeEventListener('mousedown', this.dragHandler_);\n    this.element_.removeEventListener('touchstart', this.dragHandler_);\n    this.element_.removeEventListener('click', this.clickHandler_, false);\n    this.element_.removeEventListener('command', this.commandHandler_);\n    this.element_.removeEventListener('mdl-componentdowngraded', this.mdlDowngrade_);\n  };\n\n\n  // Helpers\n  const getSlide_ = element => {\n    return element.closest(`.${SLIDE}`);\n  };\n\n  const setFocus_ = slide => {\n    if(slide) {\n      slide.focus();\n    }\n  };\n\n  const addRipple_ = slide => {\n    if(!slide.querySelector(`.${MDL_RIPPLE_CONTAINER}`)) {\n      const rippleContainer = document.createElement('span');\n      rippleContainer.classList.add(MDL_RIPPLE_CONTAINER);\n      rippleContainer.classList.add(MDL_RIPPLE_EFFECT);\n      const ripple = document.createElement('span');\n      ripple.classList.add(MDL_RIPPLE);\n      rippleContainer.appendChild(ripple);\n\n      const img = slide.querySelector('img');\n      if (img) {\n        // rippleContainer blocks image title\n        rippleContainer.title = img.title;\n      }\n      slide.appendChild(rippleContainer);\n      componentHandler.upgradeElement(rippleContainer, MDL_RIPPLE_COMPONENT);\n    }\n  };\n  // End helpers\n\n\n  // Public methods.\n\n  /**\n   * Cancel animation - if running.\n   *\n   * @public\n   */\n  MaterialExtCarousel.prototype.stopAnimation = function() {\n    this.config_.animationLoop.stop();\n  };\n  MaterialExtCarousel.prototype['stopAnimation'] = MaterialExtCarousel.prototype.stopAnimation;\n\n\n  /**\n   * Upgrade slides\n   * Use if more list elements are added later (dynamically)\n   *\n   * @public\n   */\n  MaterialExtCarousel.prototype.upgradeSlides = function() {\n\n    const hasRippleEffect = this.element_.classList.contains(MDL_RIPPLE_EFFECT);\n\n    [...this.element_.querySelectorAll(`.${SLIDE}`)].forEach( slide => {\n\n      slide.setAttribute('role', SLIDE_ROLE);\n\n      if(this.config_.interactive) {\n        if(!slide.getAttribute('tabindex')) {\n          slide.setAttribute('tabindex', '0');\n        }\n        if (hasRippleEffect) {\n          addRipple_(slide);\n        }\n      }\n      else {\n        slide.setAttribute('tabindex', '-1');\n      }\n    });\n  };\n  MaterialExtCarousel.prototype['upgradeSlides'] = MaterialExtCarousel.prototype.upgradeSlides;\n\n\n  /**\n   * Get config object\n   *\n   * @public\n   */\n  MaterialExtCarousel.prototype.getConfig = function() {\n    return this.config_;\n  };\n  MaterialExtCarousel.prototype['getConfig'] = MaterialExtCarousel.prototype.getConfig;\n\n  /**\n   * Initialize component\n   */\n  MaterialExtCarousel.prototype.init = function() {\n\n    if (this.element_) {\n      // Config\n      if(this.element_.hasAttribute('data-config')) {\n        this.config_ = jsonStringToObject(this.element_.getAttribute('data-config'), this.config_);\n      }\n\n      // Wai-Aria\n      this.element_.setAttribute('role', ROLE);\n\n      // Prefer tabindex -1\n      if(!Number.isInteger(this.element_.getAttribute('tabindex'))) {\n        this.element_.setAttribute('tabindex', -1);\n      }\n\n      // Remove listeners, just in case ...\n      this.removeListeners_();\n\n      if(this.config_.interactive) {\n\n        // Ripple\n        const hasRippleEffect = this.element_.classList.contains(MDL_RIPPLE_EFFECT);\n        if (hasRippleEffect) {\n          this.element_.classList.add(MDL_RIPPLE_EFFECT_IGNORE_EVENTS);\n        }\n\n        // Listen to focus/blur events\n        this.element_.addEventListener('focus', this.focusHandler_.bind(this), true);\n        this.element_.addEventListener('blur', this.blurHandler_.bind(this), true);\n\n        // Listen to keyboard events\n        this.element_.addEventListener('keydown', this.keyDownHandler_.bind(this), false);\n\n        // Listen to drag events\n        this.element_.addEventListener('mousedown', this.dragHandler_.bind(this), false);\n        this.element_.addEventListener('touchstart', this.dragHandler_.bind(this), false);\n\n        // Listen to click events\n        this.element_.addEventListener('click', this.clickHandler_.bind(this), false);\n      }\n\n      // Listen to custom 'command' event\n      this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n\n      // Listen to 'mdl-componentdowngraded' event\n      this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));\n\n      // Slides collection\n      this.upgradeSlides();\n\n      // Set upgraded flag\n      this.element_.classList.add(IS_UPGRADED);\n\n      if(this.config_.autostart) {\n        // Start slideshow\n        this.startSlideShow_();\n      }\n    }\n  };\n\n  /*\n   * Downgrade component\n   * E.g remove listeners and clean up resources\n   */\n  MaterialExtCarousel.prototype.mdlDowngrade_ = function() {\n    'use strict';\n    //console.log('***** MaterialExtCarousel.mdlDowngrade_');\n\n    // Stop animation - if any\n    this.stopAnimation();\n\n    // Remove listeners\n    this.removeListeners_();\n  };\n\n  // The component registers itself. It can assume componentHandler is available\n  // in the global scope.\n  /* eslint no-undef: 0 */\n  componentHandler.register({\n    constructor: MaterialExtCarousel,\n    classAsString: 'MaterialExtCarousel',\n    cssClass: 'mdlext-js-carousel',\n    widget: true\n  });\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/carousel/carousel.js","/**\n * @license\n * Copyright 2016-2017 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n\n/**\n * A collapsible is a component to mark expandable and collapsible regions.\n * The component use the aria-expanded state to indicate whether regions of\n * the content are collapsible, and to expose whether a region is currently\n * expanded or collapsed.\n * @see https://www.w3.org/WAI/GL/wiki/Using_the_WAI-ARIA_aria-expanded_state_to_mark_expandable_and_collapsible_regions\n */\n\nimport {\n  IS_UPGRADED,\n  VK_SPACE,\n  VK_ENTER,\n} from '../utils/constants';\n\nimport { randomString } from '../utils/string-utils';\nimport { getParentElements, isFocusable } from '../utils/dom-utils';\n\nconst JS_COLLAPSIBLE = 'mdlext-js-collapsible';\nconst COLLAPSIBLE_CONTROL_CLASS = 'mdlext-collapsible';\nconst COLLAPSIBLE_GROUP_CLASS = 'mdlext-collapsible-group';\nconst COLLAPSIBLE_REGION_CLASS = 'mdlext-collapsible-region';\n\n/**\n * The collapsible component\n */\n\nclass Collapsible {\n  element_ = null;\n  controlElement_ = null;\n\n  /**\n   * @constructor\n   * @param {HTMLElement} element The element that this component is connected to.\n   */\n  constructor(element) {\n    this.element_ = element;\n    this.init();\n  }\n\n  keyDownHandler = event => {\n    if (event.keyCode === VK_ENTER || event.keyCode === VK_SPACE) {\n      event.preventDefault();\n\n      // Trigger click\n      (event.target || this.controlElement).dispatchEvent(\n        new MouseEvent('click', {\n          bubbles: true,\n          cancelable: true,\n          view: window\n        })\n      );\n    }\n  };\n\n  clickHandler = event => {\n    if(!this.isDisabled) {\n      if(event.target !== this.controlElement) {\n        // Do not toggle if a focusable element inside the control element triggered the event\n        const p = getParentElements(event.target, this.controlElement);\n        p.push(event.target);\n        if(p.find( el => isFocusable(el))) {\n          return;\n        }\n      }\n      this.toggle();\n    }\n  };\n\n  get element() {\n    return this.element_;\n  }\n\n  get controlElement() {\n    return this.controlElement_;\n  }\n\n  get isDisabled() {\n    return (this.controlElement.hasAttribute('disabled') &&\n      this.controlElement.getAttribute('disabled').toLowerCase() !== 'false') ||\n      (this.controlElement.hasAttribute('aria-disabled') &&\n      this.controlElement.getAttribute('aria-disabled').toLowerCase() !== 'false');\n  }\n\n  get isExpanded() {\n    return this.controlElement.hasAttribute('aria-expanded') &&\n      this.controlElement.getAttribute('aria-expanded').toLowerCase() === 'true';\n  }\n\n  get regionIds() {\n    return this.controlElement.hasAttribute('aria-controls')\n      ? this.controlElement.getAttribute('aria-controls').split(' ')\n      : [];\n  }\n\n  get regionElements() {\n    return this.regionIds\n      .map(id => document.querySelector(`#${id}`))\n      .filter( el => el != null);\n  }\n\n  collapse() {\n    if(!this.isDisabled && this.isExpanded) {\n      if(this.dispatchToggleEvent('collapse')) {\n        this.controlElement.setAttribute('aria-expanded', 'false');\n        const regions = this.regionElements.slice(0);\n        for (let i = regions.length - 1; i >= 0; --i) {\n          regions[i].setAttribute('hidden', '');\n        }\n      }\n    }\n  }\n\n  expand() {\n    if(!this.isDisabled && !this.isExpanded) {\n      if(this.dispatchToggleEvent('expand')) {\n        this.controlElement.setAttribute('aria-expanded', 'true');\n        this.regionElements.forEach(region => region.removeAttribute('hidden'));\n      }\n    }\n  }\n\n  toggle() {\n    if (this.isExpanded) {\n      this.collapse();\n    }\n    else {\n      this.expand();\n    }\n  }\n\n  dispatchToggleEvent(action) {\n    return this.element.dispatchEvent(\n      new CustomEvent('toggle', {\n        bubbles: true,\n        cancelable: true,\n        detail: {\n          action: action\n        }\n      })\n    );\n  }\n\n  disableToggle() {\n    this.controlElement.setAttribute('aria-disabled', true);\n  }\n\n  enableToggle() {\n    this.controlElement.removeAttribute('aria-disabled');\n  }\n\n  addRegionId(regionId) {\n    const ids = this.regionIds;\n    if(!ids.find(id => regionId === id)) {\n      ids.push(regionId);\n      this.controlElement.setAttribute('aria-controls', ids.join(' '));\n    }\n  }\n\n  addRegionElement(region) {\n    if(!(region.classList.contains(COLLAPSIBLE_GROUP_CLASS) ||\n      region.classList.contains(COLLAPSIBLE_REGION_CLASS))) {\n      region.classList.add(COLLAPSIBLE_GROUP_CLASS);\n    }\n\n    if(!region.hasAttribute('role')) {\n      const role = region.classList.contains(COLLAPSIBLE_GROUP_CLASS) ? 'group' : 'region';\n      region.setAttribute('role', role);\n    }\n\n    if(!region.hasAttribute('id')) {\n      region.id = `${region.getAttribute('role')}-${randomString()}`;\n    }\n\n    if(this.isExpanded) {\n      region.removeAttribute('hidden');\n    }\n    else {\n      region.setAttribute('hidden', '');\n    }\n    this.addRegionId(region.id);\n  }\n\n  removeRegionElement(region) {\n    if(region && region.id) {\n      const ids = this.regionIds.filter(id => id === region.id);\n      this.controlElement.setAttribute('aria-controls', ids.join(' '));\n    }\n  }\n\n  removeListeners() {\n    this.controlElement.removeEventListener('keydown', this.keyDownHandler);\n    this.controlElement.removeEventListener('click', this.clickHandler);\n  }\n\n  init() {\n    const initControl = () => {\n      // Find the button element\n      this.controlElement_ = this.element.querySelector(`.${COLLAPSIBLE_CONTROL_CLASS}`) || this.element;\n\n      // Add \"aria-expanded\" attribute if not present\n      if(!this.controlElement.hasAttribute('aria-expanded')) {\n        this.controlElement.setAttribute('aria-expanded', 'false');\n      }\n\n      // Add role=button if control != <button>\n      if(this.controlElement.nodeName.toLowerCase() !== 'button') {\n        this.controlElement.setAttribute('role', 'button');\n      }\n\n      // Add tabindex\n      if(!isFocusable(this.controlElement) && !this.controlElement.hasAttribute('tabindex')) {\n        this.controlElement.setAttribute('tabindex', '0');\n      }\n    };\n\n    const initRegions = () => {\n      let regions = [];\n      if(!this.controlElement.hasAttribute('aria-controls')) {\n        // Add siblings as collapsible region(s)\n        let r = this.element.nextElementSibling;\n        while(r) {\n          if(r.classList.contains(COLLAPSIBLE_GROUP_CLASS) ||\n            r.classList.contains(COLLAPSIBLE_REGION_CLASS)) {\n            regions.push(r);\n          }\n          else if(r.classList.contains(JS_COLLAPSIBLE)) {\n            // A new collapsible component\n            break;\n          }\n          r = r.nextElementSibling;\n        }\n      }\n      else {\n        regions = this.regionElements;\n      }\n      regions.forEach(region => this.addRegionElement(region));\n    };\n\n    const addListeners = () => {\n      this.controlElement.addEventListener('keydown', this.keyDownHandler);\n      this.controlElement.addEventListener('click', this.clickHandler);\n    };\n\n    initControl();\n    initRegions();\n    this.removeListeners();\n    addListeners();\n  }\n\n  downgrade() {\n    this.removeListeners();\n  }\n\n}\n\n(function() {\n  'use strict';\n\n  /**\n   * @constructor\n   * @param {HTMLElement} element The element that will be upgraded.\n   */\n  const MaterialExtCollapsible = function MaterialExtCollapsible(element) {\n    this.element_ = element;\n    this.collapsible = null;\n\n    // Initialize instance.\n    this.init();\n  };\n  window['MaterialExtCollapsible'] = MaterialExtCollapsible;\n\n  /**\n   * Initialize component\n   */\n  MaterialExtCollapsible.prototype.init = function() {\n    if (this.element_) {\n      this.collapsible = new Collapsible(this.element_);\n      this.element_.classList.add(IS_UPGRADED);\n\n      // Listen to 'mdl-componentdowngraded' event\n      this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));\n    }\n  };\n\n  /*\n   * Downgrade component\n   * E.g remove listeners and clean up resources\n   */\n  MaterialExtCollapsible.prototype.mdlDowngrade_ = function() {\n    this.collapsible.downgrade();\n  };\n\n\n  // Public methods.\n\n  /**\n   * Get control element.\n   * @return {HTMLElement} element The element that controls the collapsible region.\n   * @public\n   */\n  MaterialExtCollapsible.prototype.getControlElement = function() {\n    return this.collapsible.controlElement;\n  };\n  MaterialExtCollapsible.prototype['getControlElement'] = MaterialExtCollapsible.prototype.getControlElement;\n\n  /**\n   * Get region elements controlled by this collapsible\n   * @returns {Array<HTMLElement>} the collapsible region elements\n   * @public\n   */\n  MaterialExtCollapsible.prototype.getRegionElements = function() {\n    return this.collapsible.regionElements;\n  };\n  MaterialExtCollapsible.prototype['getRegionElements'] = MaterialExtCollapsible.prototype.getRegionElements;\n\n  /**\n   * Add region elements.\n   * @param {Array<HTMLElement>} elements The element that will be upgraded.\n   * @return {void}\n   * @public\n   */\n  MaterialExtCollapsible.prototype.addRegionElements = function(...elements) {\n    elements.forEach(element => this.collapsible.addRegionElement(element));\n  };\n  MaterialExtCollapsible.prototype['addRegionElements'] = MaterialExtCollapsible.prototype.addRegionElements;\n\n  /**\n   * Remove collapsible region(s) from component.\n   * Note: This operation does not delete the element from the DOM tree.\n   * @param {Array<HTMLElement>} elements The element that will be upgraded.\n   * @public\n   */\n  MaterialExtCollapsible.prototype.removeRegionElements = function(...elements) {\n    elements.forEach(element => this.collapsible.removeRegionElement(element));\n  };\n  MaterialExtCollapsible.prototype['removeRegionElements'] = MaterialExtCollapsible.prototype.removeRegionElements;\n\n  /**\n   * Expand collapsible region(s)\n   * @return {void}\n   * @public\n   */\n  MaterialExtCollapsible.prototype.expand = function() {\n    this.collapsible.expand();\n  };\n  MaterialExtCollapsible.prototype['expand'] = MaterialExtCollapsible.prototype.expand;\n\n  /**\n   * Collapse collapsible region(s)\n   * @return {void}\n   * @public\n   */\n  MaterialExtCollapsible.prototype.collapse = function() {\n    this.collapsible.collapse();\n  };\n  MaterialExtCollapsible.prototype['collapse'] = MaterialExtCollapsible.prototype.collapse;\n\n  /**\n   * Toggle collapsible region(s)\n   * @return {void}\n   * @public\n   */\n  MaterialExtCollapsible.prototype.toggle = function() {\n    this.collapsible.toggle();\n  };\n  MaterialExtCollapsible.prototype['toggle'] = MaterialExtCollapsible.prototype.toggle;\n\n  /**\n   * Check whether component has aria-expanded state true\n   * @return {Boolean} true if aria-expanded=\"true\", otherwise false\n   */\n  MaterialExtCollapsible.prototype.isExpanded = function() {\n    return this.collapsible.isExpanded;\n  };\n  MaterialExtCollapsible.prototype['isExpanded'] = MaterialExtCollapsible.prototype.isExpanded;\n\n  /**\n   * Check whether component has aria-disabled state set to true\n   * @return {Boolean} true if aria-disabled=\"true\", otherwise false\n   */\n  MaterialExtCollapsible.prototype.isDisabled = function() {\n    return this.collapsible.isDisabled;\n  };\n  MaterialExtCollapsible.prototype['isDisabled'] = MaterialExtCollapsible.prototype.isDisabled;\n\n  /**\n   * Disables toggling of collapsible region(s)\n   * @return {void}\n   * @public\n   */\n  MaterialExtCollapsible.prototype.disableToggle = function() {\n    this.collapsible.disableToggle();\n  };\n  MaterialExtCollapsible.prototype['disableToggle'] = MaterialExtCollapsible.prototype.disableToggle;\n\n  /**\n   * Enables toggling of collapsible region(s)\n   * @return {void}\n   * @public\n   */\n  MaterialExtCollapsible.prototype.enableToggle = function() {\n    this.collapsible.enableToggle();\n  };\n  MaterialExtCollapsible.prototype['enableToggle'] = MaterialExtCollapsible.prototype.enableToggle;\n\n  // The component registers itself. It can assume componentHandler is available\n  // in the global scope.\n  /* eslint no-undef: 0 */\n  componentHandler.register({\n    constructor: MaterialExtCollapsible,\n    classAsString: 'MaterialExtCollapsible',\n    cssClass: JS_COLLAPSIBLE,\n    widget: true\n  });\n\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/collapsible/collapsible.js","/**\n * @license\n * Copyright 2016-2017 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n\nimport {jsonStringToObject} from '../utils/json-utils';\nimport {\n  IS_UPGRADED,\n} from '../utils/constants';\n\nconst JS_FORMAT_FIELD = 'mdlext-js-formatfield';\nconst FORMAT_FIELD_COMPONENT = 'MaterialExtFormatfield';\n\n/**\n * Detect browser locale\n * @returns {string} the locale\n * @see http://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference\n */\nconst browserLanguage = () => {\n  return navigator.languages\n    ? navigator.languages[0]\n    : navigator.language || navigator.userLanguage;\n};\n\n/**\n * The formatfield  formats an input field  using language sensitive number formatting.\n */\n\nclass FormatField {\n  static timer = null;\n\n  element_;\n  input_;\n  options_ = {};\n  intlGroupSeparator_;\n  intlDecimalSeparator_;\n\n  constructor(element) {\n    this.element_ = element;\n    this.init();\n  }\n\n  clickHandler = () => {\n    clearTimeout(FormatField.timer);\n  };\n\n  focusInHandler = () => {\n    if(!(this.input.readOnly || this.input.disabled)) {\n      this.input.value = this.unformatInput();\n      //setTimeout(() => this.input.setSelectionRange(0, this.input.value.length), 20);\n      FormatField.timer = setTimeout(() => this.input.select(), 200);\n    }\n  };\n\n  focusOutHandler = () => {\n    clearTimeout(FormatField.timer);\n\n    if(!(this.input.readOnly || this.input.disabled)) {\n      this.formatValue();\n    }\n  };\n\n  get element() {\n    return this.element_;\n  }\n\n  get input() {\n    return this.input_;\n  }\n\n  get options() {\n    return this.options_;\n  }\n\n  stripSeparatorsFromValue() {\n    const doReplace = () => this.input.value\n      .replace(/\\s/g, '')\n      .replace(new RegExp(this.options.groupSeparator, 'g'), '')\n      .replace(this.options.decimalSeparator, '.');\n      //.replace(this.intlGroupSeparator_, ''),\n      //.replace(this.intlDecimalSeparator_, '.');\n\n    return this.input.value ? doReplace() : this.input.value;\n  }\n\n  fixSeparators(value) {\n    const doReplace = () => value\n      .replace(new RegExp(this.intlGroupSeparator_, 'g'), this.options.groupSeparator)\n      .replace(this.intlDecimalSeparator_, this.options.decimalSeparator);\n\n    return value ? doReplace() : value;\n  }\n\n  formatValue() {\n    if(this.input.value) {\n      const v = new Intl.NumberFormat(this.options.locales, this.options)\n        .format(this.stripSeparatorsFromValue());\n\n      if('NaN' !== v) {\n        this.input.value = this.fixSeparators(v);\n      }\n    }\n  }\n\n  unformat() {\n    const doReplace = () => this.input.value\n      .replace(/\\s/g, '')\n      .replace(new RegExp(this.options.groupSeparator, 'g'), '')\n      .replace(this.options.decimalSeparator, '.');\n\n    return this.input.value ? doReplace() : this.input.value;\n  }\n\n  unformatInput() {\n    const doReplace = () => this.input.value\n      .replace(/\\s/g, '')\n      .replace(new RegExp(this.options.groupSeparator, 'g'), '');\n\n    return this.input.value ? doReplace() : this.input.value;\n  }\n\n  removeListeners() {\n    this.input.removeEventListener('click', this.clickHandler);\n    this.input.removeEventListener('focusin', this.focusInHandler);\n    this.input.removeEventListener('focusout', this.focusOutHandler);\n  }\n\n  init() {\n    const addListeners = () => {\n      this.input.addEventListener('click', this.clickHandler);\n      this.input.addEventListener('focusin', this.focusInHandler);\n      this.input.addEventListener('focusout', this.focusOutHandler);\n    };\n\n    const addOptions = () => {\n      const opts = this.element.getAttribute('data-formatfield-options') ||\n        this.input.getAttribute('data-formatfield-options');\n      if(opts) {\n        this.options_ = jsonStringToObject(opts, this.options);\n      }\n    };\n\n    const addLocale = () => {\n      if(!this.options.locales) {\n        this.options.locales = browserLanguage() || 'en-US'; //'nb-NO', //'en-US',\n      }\n    };\n\n    const addGrouping = () => {\n      const s = (1234.5).toLocaleString(this.options.locales, {\n        style: 'decimal',\n        useGrouping: true,\n        minimumFractionDigits: 1,\n        maximumFractionDigits: 1\n      });\n\n      this.intlGroupSeparator_ = s.charAt(1);\n      this.intlDecimalSeparator_ = s.charAt(s.length-2);\n      this.options.groupSeparator = this.options.groupSeparator || this.intlGroupSeparator_;\n      this.options.decimalSeparator = this.options.decimalSeparator || this.intlDecimalSeparator_;\n\n      if(this.options.groupSeparator === this.options.decimalSeparator) {\n        const e = `Error! options.groupSeparator, \"${this.options.groupSeparator}\" ` +\n          'and options.decimalSeparator, ' +\n          `\"${this.options.decimalSeparator}\" should not be equal`;\n        throw new Error(e);\n      }\n    };\n\n    this.input_ = this.element.querySelector('input') || this.element;\n\n    addOptions();\n    addLocale();\n    addGrouping();\n    this.formatValue();\n    addListeners();\n  }\n\n  downgrade() {\n    this.removeListeners();\n  }\n\n}\n\n(function() {\n  'use strict';\n\n  /**\n   * @constructor\n   * @param {HTMLElement} element The element that will be upgraded.\n   */\n  const MaterialExtFormatfield = function MaterialExtFormatfield(element) {\n    this.element_ = element;\n    this.formatField_ = null;\n\n    // Initialize instance.\n    this.init();\n  };\n  window['MaterialExtFormatfield'] = MaterialExtFormatfield;\n\n  /**\n   * Initialize component\n   */\n  MaterialExtFormatfield.prototype.init = function() {\n    if (this.element_) {\n      this.element_.classList.add(IS_UPGRADED);\n      this.formatField_ = new FormatField(this.element_);\n\n      // Listen to 'mdl-componentdowngraded' event\n      this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));\n    }\n  };\n\n  /**\n   * Get options object\n   *\n   * @public\n   *\n   * @returns {Object} the options object\n   */\n  MaterialExtFormatfield.prototype.getOptions = function() {\n    return this.formatField_.options;\n  };\n  MaterialExtFormatfield.prototype['getOptions'] = MaterialExtFormatfield.prototype.getOptions;\n\n\n  /**\n   * A unformatted value is a string value where the locale specific decimal separator\n   * is replaced with a '.' separator and group separators are stripped.\n   * The returned value is suitable for parsing to a JavaScript numerical value.\n   *\n   * @example\n   * input.value = '1 234,5';\n   * inputElement.MaterialExtFormatfield.getUnformattedValue();\n   * // Returns '1234.5'\n   *\n   * @public\n   *\n   * @returns {String} the unformatted value\n   */\n  MaterialExtFormatfield.prototype.getUnformattedValue = function() {\n    return this.formatField_.unformat();\n  };\n  MaterialExtFormatfield.prototype['getUnformattedValue'] = MaterialExtFormatfield.prototype.getUnformattedValue;\n\n  /*\n   * Downgrade component\n   * E.g remove listeners and clean up resources\n   */\n  MaterialExtFormatfield.prototype.mdlDowngrade_ = function() {\n    this.formatField_.downgrade();\n  };\n\n  // The component registers itself. It can assume componentHandler is available\n  // in the global scope.\n  /* eslint no-undef: 0 */\n  componentHandler.register({\n    constructor: MaterialExtFormatfield,\n    classAsString: FORMAT_FIELD_COMPONENT,\n    cssClass: JS_FORMAT_FIELD,\n    widget: true\n  });\n\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/formatfield/formatfield.js","import './utils';\nimport './accordion/accordion';\nimport './collapsible/collapsible';\nimport './carousel/carousel';\nimport './lightboard/lightboard';\nimport './lightbox/lightbox';\nimport './menu-button/menu-button';\nimport './selectfield/selectfield';\nimport './formatfield/formatfield';\nimport './sticky-header/sticky-header';\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/**\n * A lightboard is a translucent surface illuminated from behind, used for situations\n * where a shape laid upon the surface needs to be seen with high contrast. In the \"old days\" of photography\n * photograpers used a lightboard to get a quick view of their slides. The goal is to create a responsive lightbox\n * design, based on flex layout, similar to what is used in Adobe LightRoom to browse images.\n */\n\nimport {\n  VK_ENTER,\n  VK_SPACE,\n  VK_END,\n  VK_HOME,\n  VK_ARROW_LEFT,\n  VK_ARROW_UP,\n  VK_ARROW_RIGHT,\n  VK_ARROW_DOWN,\n  IS_UPGRADED,\n  MDL_RIPPLE,\n  MDL_RIPPLE_COMPONENT,\n  MDL_RIPPLE_EFFECT,\n  MDL_RIPPLE_EFFECT_IGNORE_EVENTS\n} from '../utils/constants';\n\nconst MDL_RIPPLE_CONTAINER = 'mdlext-lightboard__slide__ripple-container';\n\n(function() {\n  'use strict';\n\n  //const LIGHTBOARD = 'mdlext-lightboard';\n  const LIGHTBOARD_ROLE = 'grid';\n  const SLIDE = 'mdlext-lightboard__slide';\n  const SLIDE_ROLE  = 'gridcell';\n  const SLIDE_TABSTOP = 'mdlext-lightboard__slide__frame';\n  /**\n   * @constructor\n   * @param {Element} element The element that will be upgraded.\n   */\n  const MaterialExtLightboard = function MaterialExtLightboard(element) {\n    // Stores the element.\n    this.element_ = element;\n\n    // Initialize instance.\n    this.init();\n  };\n  window['MaterialExtLightboard'] = MaterialExtLightboard;\n\n\n  // Helpers\n  const getSlide = element => {\n    return element ? element.closest(`.${SLIDE}`) : null;\n  };\n\n\n\n  // Private methods.\n\n  /**\n   * Select a slide, i.e. set aria-selected=\"true\"\n   * @param element\n   * @private\n   */\n  MaterialExtLightboard.prototype.selectSlide_ = function(element) {\n    const slide = getSlide(element);\n    if( slide && !slide.hasAttribute('aria-selected') ) {\n      [...this.element_.querySelectorAll(`.${SLIDE}[aria-selected=\"true\"]`)]\n        .forEach(selectedSlide => selectedSlide.removeAttribute('aria-selected'));\n\n      slide.setAttribute('aria-selected', 'true');\n    }\n  };\n\n\n  /**\n   * Dispatch select event\n   * @param {Element} slide The slide that caused the event\n   * @private\n   */\n  MaterialExtLightboard.prototype.dispatchSelectEvent_ = function ( slide ) {\n    this.element_.dispatchEvent(\n      new CustomEvent('select', {\n        bubbles: true,\n        cancelable: true,\n        detail: { source: slide }\n      })\n    );\n  };\n\n  /**\n   * Handles custom command event, 'first', 'next', 'prev', 'last', 'select' or upgrade\n   * @param event. A custom event\n   * @private\n   */\n  MaterialExtLightboard.prototype.commandHandler_ = function( event ) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    if(event && event.detail) {\n      this.command(event.detail);\n    }\n  };\n\n\n  // Public methods\n\n  /**\n   * Initialize lightboard slides\n   * @public\n   */\n  MaterialExtLightboard.prototype.upgradeSlides = function() {\n\n    const addRipple = slide => {\n      // Use slide frame as ripple container\n      if(!slide.querySelector(`.${MDL_RIPPLE_CONTAINER}`)) {\n        const a = slide.querySelector(`.${SLIDE_TABSTOP}`);\n        if(a) {\n          const rippleContainer = a;\n          rippleContainer.classList.add(MDL_RIPPLE_CONTAINER);\n          rippleContainer.classList.add(MDL_RIPPLE_EFFECT);\n          const ripple = document.createElement('span');\n          ripple.classList.add(MDL_RIPPLE);\n          rippleContainer.appendChild(ripple);\n          componentHandler.upgradeElement(rippleContainer, MDL_RIPPLE_COMPONENT);\n        }\n      }\n    };\n\n    const hasRippleEffect = this.element_.classList.contains(MDL_RIPPLE_EFFECT);\n\n    [...this.element_.querySelectorAll(`.${SLIDE}`)].forEach( slide => {\n\n      slide.setAttribute('role', SLIDE_ROLE);\n\n      if(!slide.querySelector('a')) {\n        slide.setAttribute('tabindex', '0');\n      }\n      if(hasRippleEffect) {\n        addRipple(slide);\n      }\n    });\n  };\n  MaterialExtLightboard.prototype['upgradeSlides'] = MaterialExtLightboard.prototype.upgradeSlides;\n\n\n  /**\n   * Execute command\n   * @param detail\n   * @public\n   */\n  MaterialExtLightboard.prototype.command = function( detail ) {\n\n    const firstSlide = () => {\n      return this.element_.querySelector(`.${SLIDE}:first-child`);\n    };\n\n    const lastSlide = () => {\n      return this.element_.querySelector(`.${SLIDE}:last-child`);\n    };\n\n    const nextSlide = () => {\n      const slide = this.element_.querySelector(`.${SLIDE}[aria-selected=\"true\"]`).nextElementSibling;\n      return slide ? slide : firstSlide();\n    };\n\n    const prevSlide = () => {\n      const slide = this.element_.querySelector(`.${SLIDE}[aria-selected=\"true\"]`).previousElementSibling;\n      return slide ? slide : lastSlide();\n    };\n\n    if(detail && detail.action) {\n\n      const { action, target } = detail;\n\n      let slide;\n      switch (action.toLowerCase()) {\n        case 'select':\n          slide = getSlide(target);\n          this.dispatchSelectEvent_(slide);\n          break;\n        case 'first':\n          slide = firstSlide();\n          break;\n        case 'next':\n          slide = nextSlide();\n          break;\n        case 'prev':\n          slide = prevSlide();\n          break;\n        case 'last':\n          slide = lastSlide();\n          break;\n        case 'upgrade':\n          this.upgradeSlides();\n          break;\n        default:\n          throw new Error(`Unknown action \"${action}\". Action must be one of \"first\", \"next\", \"prev\", \"last\", \"select\" or \"upgrade\"`);\n      }\n\n      if (slide) {\n        const a = slide.querySelector('a');\n        if (a) {\n          a.focus();\n        }\n        else {\n          slide.focus();\n        }\n\n        // Workaround for JSDom testing:\n        // In JsDom 'element.focus()' does not trigger any focus event\n        if(!slide.hasAttribute('aria-selected')) {\n          this.selectSlide_(slide);\n        }\n\n      }\n    }\n  };\n  MaterialExtLightboard.prototype['command'] = MaterialExtLightboard.prototype.command;\n\n\n  /**\n   * Initialize component\n   */\n  MaterialExtLightboard.prototype.init = function() {\n\n    const keydownHandler = event => {\n\n      if(event.target !== this.element_) {\n        let action;\n        let target;\n        switch (event.keyCode) {\n          case VK_HOME:\n            action = 'first';\n            break;\n          case VK_END:\n            action = 'last';\n            break;\n          case VK_ARROW_UP:\n          case VK_ARROW_LEFT:\n            action = 'prev';\n            break;\n          case VK_ARROW_DOWN:\n          case VK_ARROW_RIGHT:\n            action = 'next';\n            break;\n          case VK_ENTER:\n          case VK_SPACE:\n            action = 'select';\n            target = event.target;\n            break;\n        }\n        if(action)  {\n          event.preventDefault();\n          event.stopPropagation();\n          this.command( { action: action, target: target } );\n        }\n      }\n    };\n\n    const clickHandler = event => {\n      event.preventDefault();\n      event.stopPropagation();\n\n      if(event.target !== this.element_) {\n        this.command( { action: 'select', target: event.target } );\n      }\n    };\n\n    const focusHandler = event => {\n      event.preventDefault();\n      event.stopPropagation();\n\n      if(event.target !== this.element_) {\n        this.selectSlide_(event.target);\n      }\n    };\n\n\n    if (this.element_) {\n      this.element_.setAttribute('role', LIGHTBOARD_ROLE);\n\n      if (this.element_.classList.contains(MDL_RIPPLE_EFFECT)) {\n        this.element_.classList.add(MDL_RIPPLE_EFFECT_IGNORE_EVENTS);\n      }\n\n      // Remove listeners, just in case ...\n      this.element_.removeEventListener('command', this.commandHandler_);\n      this.element_.removeEventListener('keydown', keydownHandler);\n      this.element_.removeEventListener('click', clickHandler);\n      this.element_.removeEventListener('focus', focusHandler);\n\n      this.element_.addEventListener('command', this.commandHandler_.bind(this), false);\n      this.element_.addEventListener('keydown', keydownHandler, true);\n      this.element_.addEventListener('click', clickHandler, true);\n      this.element_.addEventListener('focus', focusHandler, true);\n\n      this.upgradeSlides();\n\n      this.element_.classList.add(IS_UPGRADED);\n    }\n  };\n\n  // The component registers itself. It can assume componentHandler is available\n  // in the global scope.\n  /* eslint no-undef: 0 */\n  /* jshint undef:false */\n  componentHandler.register({\n    constructor: MaterialExtLightboard,\n    classAsString: 'MaterialExtLightboard',\n    cssClass: 'mdlext-js-lightboard',\n    widget: true\n  });\n\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/lightboard/lightboard.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n\n/**\n * Responsive Lightbox\n */\n\nimport fullThrottle from '../utils/full-throttle';\nimport {\n  VK_ESC,\n  VK_SPACE,\n  VK_END,\n  VK_HOME,\n  VK_ARROW_LEFT,\n  VK_ARROW_UP,\n  VK_ARROW_RIGHT,\n  VK_ARROW_DOWN,\n  IS_UPGRADED\n} from '../utils/constants';\n\n(function() {\n  'use strict';\n\n  const LIGHTBOX = 'mdlext-lightbox';\n  const LIGHTBOX_SLIDER = 'mdlext-lightbox__slider';\n  const LIGHTBOX_SLIDER_SLIDE = 'mdlext-lightbox__slider__slide';\n  const STICKY_FOOTER = 'mdlext-lightbox--sticky-footer';\n  const BUTTON = 'mdl-button';\n\n  /**\n   * https://github.com/google/material-design-lite/issues/4205\n   * @constructor\n   * @param {Element} element The element that will be upgraded.\n   */\n  const MaterialExtLightbox = function MaterialExtLightbox(element) {\n    // Stores the element.\n    this.element_ = element;\n\n    // Initialize instance.\n    this.init();\n  };\n  window['MaterialExtLightbox'] = MaterialExtLightbox;\n\n\n  /**\n   * Handle keypress\n   * @param event\n   * @private\n   */\n  MaterialExtLightbox.prototype.keyDownHandler_ = function(event) {\n\n    if (event) {\n      if ( event.keyCode === VK_ESC || event.keyCode === VK_SPACE\n        || event.keyCode === VK_END || event.keyCode === VK_HOME\n        || event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT\n        || event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n\n        if(event.keyCode !== VK_ESC) {\n          event.preventDefault();\n          event.stopPropagation();\n        }\n\n        let action = 'first';\n        if (event.keyCode === VK_END) {\n          action = 'last';\n        }\n        else if (event.keyCode === VK_ARROW_UP || event.keyCode === VK_ARROW_LEFT) {\n          action = 'prev';\n        }\n        else if (event.keyCode === VK_ARROW_DOWN || event.keyCode === VK_ARROW_RIGHT) {\n          action = 'next';\n        }\n        else if (event.keyCode === VK_SPACE) {\n          action = 'select';\n        }\n        else if (event.keyCode === VK_ESC) {\n          action = 'cancel';\n        }\n\n        dispatchAction_(action, this);\n      }\n    }\n  };\n\n  /**\n   * Handle button clicks\n   * @param event\n   * @private\n   */\n  MaterialExtLightbox.prototype.buttonClickHandler_ = function(event) {\n\n    if (event) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      dispatchAction_(this.getAttribute('data-action') || '', this);\n\n      const n = this.closest(`.${LIGHTBOX}`);\n      if(n) {\n        n.focus();\n      }\n    }\n  };\n\n  /**\n   * Dispatches an action custom event\n   * @param action\n   * @param source\n   * @param target\n   * @private\n   */\n  const dispatchAction_ = (action, source, target = source) => {\n\n    target.dispatchEvent(new CustomEvent('action', {\n      bubbles: true,\n      cancelable: true,\n      detail: {\n        action: action || '',\n        source: source\n      }\n    }));\n  };\n\n  /**\n   * Reposition dialog if component parent element is \"DIALOG\"\n   * @param lightboxElement\n   * @private\n   */\n  const repositionDialog_ = lightboxElement => {\n    const footerHeight = (footer, isSticky) => isSticky && footer ? footer.offsetHeight : 0;\n\n    const reposition = (dialog, fh) => {\n      if (window.getComputedStyle(dialog).position === 'absolute') {\n        const scrollTop = document.body.scrollTop || document.documentElement.scrollTop;\n        const topValue = scrollTop + (window.innerHeight - dialog.offsetHeight - fh) / 2;\n        dialog.style.top = `${Math.max(scrollTop, topValue)}px`;\n      }\n    };\n\n    const p = lightboxElement.parentNode;\n    const dialog = p && p.nodeName === 'DIALOG' ? p : null;\n\n    if(dialog && dialog.hasAttribute('open')) {\n      lightboxElement.style.width = 'auto';\n      lightboxElement.style.maxWidth = '100%';\n      const img = lightboxElement.querySelector('img');\n      if(img) {\n        lightboxElement.style.maxWidth = img.naturalWidth !== undefined ? `${img.naturalWidth}px` : `${img.width}px` || '100%';\n      }\n\n      const fh = footerHeight(lightboxElement.querySelector('footer'), lightboxElement.classList.contains(STICKY_FOOTER));\n      const vh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - fh;\n      if (dialog.offsetHeight > vh) {\n        let n = 0;\n        while(dialog.offsetHeight > vh && ++n < 4) {\n          lightboxElement.style.width = `${lightboxElement.offsetWidth * vh / lightboxElement.offsetHeight}px`;\n        }\n      }\n      reposition(dialog, fh);\n    }\n  };\n\n  /**\n   * Handle image load\n   * @param event\n   * @private\n   */\n\n  MaterialExtLightbox.prototype.imgLoadHandler_ = function( /*event*/ ) {\n    repositionDialog_(this);\n  };\n\n\n  /**\n   * Handle image drag\n   * @param event\n   * @private\n     */\n  MaterialExtLightbox.prototype.imgDragHandler_ = function(event ) {\n\n    const setStyles = ( element, properties ) => {\n      //noinspection JSAnnotator\n      for(const [key, value] of Object.entries(properties)) {\n        element.style[key] = value;\n      }\n      // ... or:\n      //for (const key in properties) {\n      //  element.style[key] = properties[key];\n      //}\n    };\n\n    event.preventDefault();\n    //event.stopPropagation();\n\n    const x = event.clientX || (event.touches !== undefined ? event.touches[0].clientX : 0);\n\n    const img = this;\n    img.style.opacity = '0.2';\n\n    const slider = document.createElement('div');\n    slider.classList.add(LIGHTBOX_SLIDER);\n    setStyles(slider, {'width': `${img.offsetWidth}px`, 'height': `${img.offsetHeight}px`} );\n\n    let slide  = document.createElement('div');\n    slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n    slide.textContent = '>';\n    setStyles(slide, {\n      'width'           : `${img.offsetWidth}px`,\n      'height'          : `${img.offsetHeight}px`,\n      'line-height'     : `${img.offsetHeight}px`,\n      'font-size'       : `${img.offsetHeight/4}px`,\n      'text-align'      : 'right',\n      'background-image': `url(\"${img.getAttribute('data-img-url-prev') || ''}\")`\n    });\n    slider.appendChild(slide);\n\n    slide  = document.createElement('div');\n    slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n    setStyles(slide, {\n      'width'           : `${img.offsetWidth}px`,\n      'height'          : `${img.offsetHeight}px`,\n      'background-image': `url(\"${img.src}\")`\n    });\n    slider.appendChild(slide);\n\n    slide  = document.createElement('div');\n    slide.classList.add(LIGHTBOX_SLIDER_SLIDE);\n    slide.textContent = '<';\n    setStyles(slide, {\n      'width'           : `${img.offsetWidth}px`,\n      'height'          : `${img.offsetHeight}px`,\n      'line-height'     : `${img.offsetHeight}px`,\n      'font-size'       : `${img.offsetHeight/4}px`,\n      'text-align'      : 'left',\n      'background-image': `url(\"${img.getAttribute('data-img-url-next') || ''}\")`\n    });\n    slider.appendChild(slide);\n\n    img.parentNode.appendChild(slider);\n\n\n    // drag handler\n    const drag = e => {\n      e.preventDefault();\n      const dx = (e.clientX || (e.touches !== undefined ? e.touches[0].clientX : 0)) - x; // TODO: maybe rewrite to improve performance\n\n      if(slider.offsetWidth - Math.abs(dx) > 19) {\n        slider.style.left = `${dx}px`;\n      }\n    };\n\n    // end drag handler\n    const endDrag = e => {\n      e.preventDefault();\n      //e.stopPropagation();\n\n      window.removeEventListener('mousemove', drag);\n      window.removeEventListener('touchmove', drag);\n      window.removeEventListener('mouseup', endDrag);\n      window.removeEventListener('touchend', endDrag);\n\n      const dx = slider.offsetLeft;\n      img.parentNode.removeChild(slider);\n      img.style.opacity = '1.0';\n\n      if(Math.abs(dx) > 19) {\n        dispatchAction_( (dx > 0 ? 'prev' : 'next') , img);\n      }\n    };\n\n    window.addEventListener('mousemove', drag);\n    window.addEventListener('touchmove', drag);\n    window.addEventListener('mouseup', endDrag);\n    window.addEventListener('touchend',endDrag);\n  };\n\n\n  /**\n   * Initialize component\n   */\n  MaterialExtLightbox.prototype.init = function() {\n\n    if (this.element_) {\n      // Do the init required for this component to work\n      this.element_.addEventListener('keydown', this.keyDownHandler_.bind(this.element_), true);\n\n      if(!Number.isInteger(this.element_.getAttribute('tabindex'))) {\n        this.element_.setAttribute('tabindex', 1);\n      }\n\n      [...this.element_.querySelectorAll(`.${BUTTON}`)].forEach( button =>\n        button.addEventListener('click', this.buttonClickHandler_.bind(button), false)\n      );\n\n      const figcaption = this.element_.querySelector('figcaption');\n      if(figcaption) {\n        figcaption.addEventListener('click', this.buttonClickHandler_.bind(figcaption), false);\n      }\n\n      const footer = this.element_.querySelector('footer');\n      if(footer) {\n        footer.addEventListener('click', this.buttonClickHandler_.bind(footer), false);\n      }\n\n      const img = this.element_.querySelector('img');\n      if(img) {\n        img.addEventListener('load', this.imgLoadHandler_.bind(this.element_), false);\n        img.addEventListener('click', e => e.preventDefault(), true);\n        img.addEventListener('mousedown', this.imgDragHandler_.bind(img), true);\n        img.addEventListener('touchstart', this.imgDragHandler_.bind(img), true);\n      }\n      window.addEventListener('resize', fullThrottle( () => repositionDialog_(this.element_) ));\n      window.addEventListener('orientationchange', () => repositionDialog_(this.element_));\n\n      // Set upgraded flag\n      this.element_.classList.add(IS_UPGRADED);\n    }\n  };\n\n  /*\n   * Downgrade component\n   * E.g remove listeners and clean up resources\n   *\n   * Nothing to downgrade\n   *\n  MaterialExtLightbox.prototype.mdlDowngrade_ = function() {\n  };\n  */\n\n  /**\n   * The component registers itself. It can assume componentHandler is available in the global scope.\n   */\n  /* jshint undef:false */\n  componentHandler.register({\n    constructor: MaterialExtLightbox,\n    classAsString: 'MaterialExtLightbox',\n    cssClass: 'mdlext-js-lightbox'\n  });\n\n})();\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/lightbox/lightbox.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n\n/**\n * A menu button is a button that opens a menu. It is often styled as a\n * typical push button with a downward pointing arrow or triangle to hint\n * that activating the button will display a menu.\n */\nimport { randomString } from '../utils/string-utils';\nimport fullThrottle from '../utils/full-throttle';\nimport {\n  VK_TAB,\n  VK_ENTER,\n  VK_ESC,\n  VK_SPACE,\n  VK_END,\n  VK_HOME,\n  VK_ARROW_LEFT,\n  VK_ARROW_UP,\n  VK_ARROW_RIGHT,\n  VK_ARROW_DOWN,\n  IS_UPGRADED,\n} from '../utils/constants';\n\nimport { getScrollParents, tether } from '../utils/dom-utils';\n\nconst JS_MENU_BUTTON = 'mdlext-js-menu-button';\nconst MENU_BUTTON_MENU = 'mdlext-menu';\nconst MENU_BUTTON_MENU_ITEM = 'mdlext-menu__item';\nconst MENU_BUTTON_MENU_ITEM_SEPARATOR = 'mdlext-menu__item-separator';\n//const MDL_LAYOUT_CONTENT = 'mdl-layout__content';\n\n/**\n * Creates the menu controlled by the menu button\n * @param element\n * @return {{element: Element, selected: Element, open: (function(*=)), removeListeners: (function()), downgrade: (function())}}\n */\n\nconst menuFactory = element => {\n\n  let ariaControls = null;\n  let parentNode = null;\n\n  const removeAllSelected = () => {\n    [...element.querySelectorAll(`.${MENU_BUTTON_MENU_ITEM}[aria-selected=\"true\"]`)]\n      .forEach(selectedItem => selectedItem.removeAttribute('aria-selected'));\n  };\n\n  const setSelected = (item, force=false) => {\n    if(force || (item && !item.hasAttribute('aria-selected'))) {\n      removeAllSelected();\n      if(item) {\n        item.setAttribute('aria-selected', 'true');\n      }\n    }\n  };\n\n  const getSelected = () => {\n    return element.querySelector(`.${MENU_BUTTON_MENU_ITEM}[aria-selected=\"true\"]`);\n  };\n\n  const isDisabled = item => item && item.hasAttribute('disabled');\n\n  const isSeparator = item => item && item.classList.contains(MENU_BUTTON_MENU_ITEM_SEPARATOR);\n\n  const focus = item => {\n    if(item) {\n      item = item.closest(`.${MENU_BUTTON_MENU_ITEM}`);\n    }\n    if(item) {\n      item.focus();\n    }\n  };\n\n  const nextItem = current => {\n    let n = current.nextElementSibling;\n    if(!n) {\n      n = element.firstElementChild;\n    }\n    if(!isDisabled(n) && !isSeparator(n)) {\n      focus(n);\n    }\n    else {\n      let i = element.children.length;\n      while(n && i-- > 0) {\n        if(isDisabled(n) || isSeparator(n)) {\n          n = n.nextElementSibling;\n          if(!n) {\n            n = element.firstElementChild;\n          }\n        }\n        else {\n          focus(n);\n          break;\n        }\n      }\n    }\n  };\n\n  const previousItem = current => {\n    let p = current.previousElementSibling;\n    if(!p) {\n      p = element.lastElementChild;\n    }\n    if(!isDisabled(p) && !isSeparator(p)) {\n      focus(p);\n    }\n    else {\n      let i = element.children.length;\n      while(p && i-- > 0) {\n        if(isDisabled(p) || isSeparator(p)) {\n          p = p.previousElementSibling;\n          if(!p) {\n            p = element.lastElementChild;\n          }\n        }\n        else {\n          focus(p);\n          break;\n        }\n      }\n    }\n  };\n\n  const firstItem = () => {\n    const item = element.firstElementChild;\n    if(isDisabled(item) || isSeparator(item) ) {\n      nextItem(item);\n    }\n    else {\n      focus(item);\n    }\n  };\n\n  const lastItem = () => {\n    const item = element.lastElementChild;\n    if(isDisabled(item) || isSeparator(item)) {\n      previousItem(item);\n    }\n    else {\n      focus(item);\n    }\n  };\n\n  const selectItem = item => {\n    if(item && !isDisabled(item) && !isSeparator(item)) {\n      setSelected(item);\n      close(true, item);\n    }\n  };\n\n  const keyDownHandler = event => {\n\n    const item = event.target.closest(`.${MENU_BUTTON_MENU_ITEM}`);\n\n    switch (event.keyCode) {\n      case VK_ARROW_UP:\n      case VK_ARROW_LEFT:\n        if(item) {\n          previousItem(item);\n        }\n        else {\n          firstItem();\n        }\n        break;\n\n      case VK_ARROW_DOWN:\n      case VK_ARROW_RIGHT:\n        if(item) {\n          nextItem(item);\n        }\n        else {\n          lastItem();\n        }\n        break;\n\n      case VK_HOME:\n        firstItem();\n        break;\n\n      case VK_END:\n        lastItem();\n        break;\n\n      case VK_SPACE:\n      case VK_ENTER:\n        selectItem(item);\n        break;\n\n      case VK_ESC:\n        close(true);\n        break;\n\n      case VK_TAB:\n        // We do not have a \"natural\" tab order from menu, so the best we can do is to set focus back to the button\n        close(true);\n        break;\n\n      default:\n        return;\n    }\n    event.preventDefault();\n  };\n\n\n  const blurHandler = event => {\n\n    // See: https://github.com/facebook/react/issues/2011\n    const t = event.relatedTarget ||\n      event.explicitOriginalTarget || // FF\n      document.activeElement;         // IE11\n\n    //console.log('***** blur, target, relatedTarget', event.target, t);\n\n    try {\n      if (t) {\n        if (t.closest(`.${MENU_BUTTON_MENU}`) !== element && shouldClose(t)) {\n          close();\n        }\n      }\n      else {\n        close();\n      }\n    }\n    catch(err) {\n      // FF throws error: \"TypeError: n.closest is not a function\" if related target is a text node\n      close();\n    }\n  };\n\n  const clickHandler = event => {\n    //console.log('***** click, target', event.target);\n\n    event.preventDefault();\n    const t = event.target;\n    if (t && t.closest(`.${MENU_BUTTON_MENU}`) === element) {\n      const item = t.closest(`.${MENU_BUTTON_MENU_ITEM}`);\n      if (item) {\n        selectItem(item);\n      }\n    }\n    else {\n      if (shouldClose(t)) {\n        close();\n      }\n    }\n  };\n\n  const touchStartHandler = event => {\n    //console.log('***** touchStart, target', event.target);\n\n    const t = event.target;\n    if(!(t && t.closest(`.${MENU_BUTTON_MENU}`) === element)) {\n      if (event.type === 'touchstart') {\n        event.preventDefault();\n      }\n      close();\n    }\n  };\n\n  const addListeners = () => {\n    element.addEventListener('keydown', keyDownHandler, false);\n    element.addEventListener('blur', blurHandler, true);\n    element.addEventListener('click', clickHandler, true);\n    document.documentElement.addEventListener('touchstart', touchStartHandler, true);\n  };\n\n  const removeListeners = () => {\n    element.removeEventListener('keydown', keyDownHandler, false);\n    element.removeEventListener('blur', blurHandler, true);\n    element.removeEventListener('click', clickHandler, true);\n    document.documentElement.removeEventListener('touchstart', touchStartHandler, true);\n  };\n\n  const open = (controlElement, position='first') => {\n\n    ariaControls = controlElement.closest(`.${JS_MENU_BUTTON}`);\n\n    element.style['min-width'] = `${Math.max(124, controlElement.getBoundingClientRect().width)}px`;\n    element.removeAttribute('hidden');\n    tether(controlElement, element);\n\n    let item;\n    switch (position.toLowerCase()) {\n      case 'first':\n        firstItem();\n        break;\n\n      case 'last':\n        lastItem();\n        break;\n\n      case 'selected':\n        item = getSelected();\n        if(item && !item.hasAttribute('disabled')) {\n          focus(item);\n        }\n        else {\n          firstItem();\n        }\n        break;\n    }\n\n    addListeners();\n  };\n\n\n  const shouldClose = target => {\n    //console.log('***** shouldClose');\n\n    let result = false;\n    const btn = (target && target.closest(`.${JS_MENU_BUTTON}`)) || null;\n    if(!btn) {\n      result = true;\n    }\n    else if(btn.getAttribute('aria-controls') === element.id) {\n      if(btn !== ariaControls) {\n        result = true;\n      }\n    }\n    else {\n      result = true;\n    }\n    return result;\n  };\n\n  const close = (forceFocus = false, item = null) => {\n    removeListeners();\n\n    element.dispatchEvent(\n      new CustomEvent('_closemenu', {\n        bubbles: true,\n        cancelable: true,\n        detail: { forceFocus: forceFocus, item: item }\n      })\n    );\n  };\n\n  const addWaiAria = () => {\n    if (!element.hasAttribute('id')) {\n      // Generate a random id\n      element.id = `menu-button-${randomString()}`;\n    }\n    element.setAttribute('tabindex', '-1');\n    element.setAttribute('role', 'menu');\n    element.setAttribute('hidden', '');\n\n    [...element.querySelectorAll(`.${MENU_BUTTON_MENU_ITEM}`)].forEach( menuitem => {\n      menuitem.setAttribute('tabindex', '-1');\n      menuitem.setAttribute('role', 'menuitem');\n    });\n\n    [...element.querySelectorAll(`.${MENU_BUTTON_MENU_ITEM_SEPARATOR}`)].forEach( menuitem => {\n      menuitem.setAttribute('role', 'separator');\n    });\n  };\n\n  const init = () => {\n    addWaiAria();\n    parentNode = element.parentNode;\n    element.classList.add('is-upgraded');\n  };\n\n  const downgrade = () => {\n    removeListeners();\n    if(element.parentNode !== parentNode) {\n      parentNode.appendChild(element);\n    }\n    element.classList.remove('is-upgraded');\n  };\n\n  init();\n\n  return {\n    /**\n     * Get the menu element\n     * @returns {Element} the menu element\n     */\n    get element() {\n      return element;\n    },\n\n    /**\n     * Set selected menu item\n     * @param item\n     */\n    set selected(item) {\n      setSelected(item, true);\n    },\n\n    /**\n     * Open menu\n     * @param {Element} controlElement the element where the menu should be aligned to\n     * @param {String} position menuElement item to receive focus after menu element is opened\n     */\n    open: (controlElement, position='first') => open(controlElement, position),\n\n    /**\n     * Remove event listeners.\n     */\n    removeListeners: () => removeListeners(),\n\n    /**\n     * Downgrade menu\n     */\n    downgrade: () => downgrade(),\n  };\n};\n\n\n/**\n * The menubutton component\n */\n\nclass MenuButton {\n\n  constructor(element) {\n    this.element = element;\n    this.focusElement = undefined;\n    this.focusElementLastScrollPosition = undefined;\n    this.scrollElements = [];\n    this.menu = undefined;\n    this.selectedItem = null;\n    this.init();\n  }\n\n  keyDownHandler = event => {\n    if(!this.isDisabled()) {\n      switch (event.keyCode) {\n        case VK_ARROW_UP:\n          this.openMenu('last');\n          break;\n\n        case VK_ARROW_DOWN:\n          this.openMenu();\n          break;\n\n        case VK_SPACE:\n        case VK_ENTER:\n          this.openMenu('selected');\n          break;\n\n        case VK_ESC:\n          this.closeMenu();\n          break;\n\n        case VK_TAB:\n          this.closeMenu();\n          return;\n\n        default:\n          return;\n      }\n    }\n    //event.stopPropagation();\n    event.preventDefault();\n  };\n\n  clickHandler = () => {\n    if(!this.isDisabled()) {\n      if(this.element.getAttribute('aria-expanded').toLowerCase() === 'true') {\n        this.closeMenu(true);\n      }\n      else {\n        this.openMenu('selected');\n      }\n    }\n  };\n\n  /**\n   * Re-position menu if content is scrolled, window is resized or orientation change\n   * @see https://javascriptweblog.wordpress.com/2015/11/02/of-classes-and-arrow-functions-a-cautionary-tale/\n   */\n  recalcMenuPosition = fullThrottle( () => {\n    const c = this.focusElement.getBoundingClientRect();\n    const dx = this.focusElementLastScrollPosition.left - c.left;\n    const dy = this.focusElementLastScrollPosition.top - c.top;\n    const left = (parseFloat(this.menu.element.style.left) || 0) - dx;\n    const top = (parseFloat(this.menu.element.style.top) || 0) - dy;\n\n    this.menu.element.style.left = `${left}px`;\n    this.menu.element.style.top = `${top}px`;\n    this.focusElementLastScrollPosition = c;\n  });\n\n\n  positionChangeHandler = () => {\n    this.recalcMenuPosition(this);\n  };\n\n  closeMenuHandler = event => {\n    if(event && event.detail) {\n      if(event.detail.item && event.detail.item !== this.selectedItem) {\n        this.selectedItem = event.detail.item;\n        this.dispatchMenuSelect();\n      }\n      this.closeMenu(event.detail.forceFocus);\n    }\n  };\n\n  dispatchMenuSelect() {\n    this.element.dispatchEvent(\n      new CustomEvent('menuselect', {\n        bubbles: true,\n        cancelable: true,\n        detail: { source: this.selectedItem }\n      })\n    );\n  }\n\n  isDisabled() {\n    return this.element.hasAttribute('disabled');\n  }\n\n  removeListeners() {\n    this.element.removeEventListener('keydown', this.keyDownHandler);\n    this.element.removeEventListener('click', this.clickHandler);\n  }\n\n  openMenu(position='first') {\n\n    if(!this.isDisabled() && this.menu) {\n\n      // Close the menu if button position change\n      this.scrollElements = getScrollParents(this.element);\n      this.scrollElements.forEach(el => el.addEventListener('scroll', this.positionChangeHandler));\n\n      window.addEventListener('resize', this.positionChangeHandler);\n      window.addEventListener('orientationchange', this.positionChangeHandler);\n      this.menu.element.addEventListener('_closemenu', this.closeMenuHandler);\n\n      this.menu.selected = this.selectedItem;\n      this.menu.open(this.focusElement, position);\n      this.element.setAttribute('aria-expanded', 'true');\n\n      this.focusElementLastScrollPosition = this.focusElement.getBoundingClientRect();\n    }\n  }\n\n  closeMenu(forceFocus = false) {\n    if(this.menu) {\n      this.menu.removeListeners();\n      this.scrollElements.forEach(el => el.removeEventListener('scroll', this.positionChangeHandler));\n      window.removeEventListener('resize', this.positionChangeHandler);\n      window.removeEventListener('orientationchange', this.positionChangeHandler);\n      this.menu.element.removeEventListener('_closemenu', this.closeMenuHandler);\n\n      if (forceFocus) {\n        this.focus();\n      }\n      this.element.setAttribute('aria-expanded', 'false');\n      this.menu.element.setAttribute('hidden', '');\n    }\n  }\n\n  focus() {\n    if(!this.isDisabled()) {\n      this.focusElement.focus();\n    }\n  }\n\n  init() {\n    const addListeners = () => {\n      this.element.addEventListener('keydown', this.keyDownHandler);\n      this.element.addEventListener('click', this.clickHandler);\n    };\n\n    const addWaiAria = () => {\n      this.element.setAttribute('role', 'button');\n      this.element.setAttribute('aria-expanded', 'false');\n      this.element.setAttribute('aria-haspopup', 'true');\n    };\n\n    const addFocusElement = () => {\n      this.focusElement = this.element.querySelector('input[type=\"text\"]');\n      if(!this.focusElement) {\n        this.focusElement = this.element;\n\n        if(!(this.focusElement.tagName.toLowerCase() === 'button' || this.focusElement.tagName.toLowerCase() === 'input')) {\n          if (!this.focusElement.hasAttribute('tabindex')) {\n            this.focusElement.setAttribute('tabindex', '0');\n          }\n        }\n      }\n    };\n\n    const moveElementToDocumentBody = (element) => {\n      // To position an element on top of all other z-indexed elements, the element should be moved to document.body\n      //       See: https://philipwalton.com/articles/what-no-one-told-you-about-z-index/\n\n      if(element.parentNode !== document.body) {\n        return document.body.appendChild(element);\n      }\n      return element;\n    };\n\n    const findMenuElement = () => {\n      let menuElement;\n      const menuElementId = this.element.getAttribute('aria-controls');\n      if(menuElementId !== null) {\n        menuElement = document.querySelector(`#${menuElementId }`);\n      }\n      else {\n        menuElement = this.element.parentNode.querySelector(`.${MENU_BUTTON_MENU}`);\n      }\n      return menuElement;\n    };\n\n    const addMenu = () => {\n      const menuElement = findMenuElement();\n      if(menuElement) {\n        if(menuElement.componentInstance) {\n          this.menu = menuElement.componentInstance;\n        }\n        else {\n          this.menu = menuFactory(menuElement);\n          menuElement.componentInstance = this.menu;\n          moveElementToDocumentBody(menuElement);\n        }\n        this.element.setAttribute('aria-controls', this.menu.element.id);\n      }\n    };\n\n    addFocusElement();\n    addWaiAria();\n    addMenu();\n    this.removeListeners();\n    addListeners();\n  }\n\n  downgrade() {\n    if(this.menu) {\n      // Do not downgrade menu if there are other buttons sharing this menu\n      const related = [...document.querySelectorAll(`.${JS_MENU_BUTTON}[aria-controls=\"${this.element.getAttribute('aria-controls')}\"]`)];\n      if(related.filter( c => c !== this.element && c.getAttribute('data-upgraded').indexOf('MaterialExtMenuButton') >= 0).length === 0) {\n        this.menu.downgrade();\n      }\n    }\n    this.removeListeners();\n  }\n\n}\n\n(function() {\n  'use strict';\n\n  /**\n   * https://github.com/google/material-design-lite/issues/4205\n   * @constructor\n   * @param {Element} element The element that will be upgraded.\n   */\n  const MaterialExtMenuButton = function MaterialExtMenuButton(element) {\n    this.element_ = element;\n    this.menuButton_ = null;\n\n    // Initialize instance.\n    this.init();\n  };\n  window['MaterialExtMenuButton'] = MaterialExtMenuButton;\n\n\n  // Public methods.\n\n  /**\n   * Get the menu element controlled by this button, null if no menu is controlled by this button\n   * @public\n   */\n  MaterialExtMenuButton.prototype.getMenuElement = function() {\n    return this.menuButton_.menu ? this.menuButton_.menu.element : null;\n  };\n  MaterialExtMenuButton.prototype['getMenuElement'] = MaterialExtMenuButton.prototype.getMenuElement;\n\n  /**\n   * Open menu\n   * @public\n   * @param {String} position one of \"first\", \"last\" or \"selected\"\n   */\n  MaterialExtMenuButton.prototype.openMenu = function(position) {\n    this.menuButton_.openMenu(position);\n  };\n  MaterialExtMenuButton.prototype['openMenu'] = MaterialExtMenuButton.prototype.openMenu;\n\n  /**\n   * Close menu\n   * @public\n   */\n  MaterialExtMenuButton.prototype.closeMenu = function() {\n    this.menuButton_.closeMenu(true);\n  };\n  MaterialExtMenuButton.prototype['closeMenu'] = MaterialExtMenuButton.prototype.closeMenu;\n\n  /**\n   * Get selected menu item\n   * @public\n   * @returns {Element} The selected menu item or null if no item selected\n   */\n  MaterialExtMenuButton.prototype.getSelectedMenuItem = function() {\n    return this.menuButton_.selectedItem;\n  };\n  MaterialExtMenuButton.prototype['getSelectedMenuItem'] = MaterialExtMenuButton.prototype.getSelectedMenuItem;\n\n\n  /**\n   * Set (default) selected menu item\n   * @param {Element} item\n   */\n  MaterialExtMenuButton.prototype.setSelectedMenuItem = function(item) {\n    this.menuButton_.selectedItem = item;\n  };\n  MaterialExtMenuButton.prototype['setSelectedMenuItem'] = MaterialExtMenuButton.prototype.setSelectedMenuItem;\n\n  /**\n   * Initialize component\n   */\n  MaterialExtMenuButton.prototype.init = function() {\n    if (this.element_) {\n      this.menuButton_ = new MenuButton(this.element_);\n      this.element_.addEventListener('mdl-componentdowngraded', this.mdlDowngrade_.bind(this));\n      this.element_.classList.add(IS_UPGRADED);\n    }\n  };\n\n  /**\n   * Downgrade component\n   * E.g remove listeners and clean up resources\n   */\n  MaterialExtMenuButton.prototype.mdlDowngrade_ = function() {\n    this.menuButton_.downgrade();\n  };\n\n  // The component registers itself. It can assume componentHandler is available\n  // in the global scope.\n  /* eslint no-undef: 0 */\n  componentHandler.register({\n    constructor: MaterialExtMenuButton,\n    classAsString: 'MaterialExtMenuButton',\n    cssClass: JS_MENU_BUTTON,\n    widget: true\n  });\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/menu-button/menu-button.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/*\n * Copied/Modified from https://github.com/google/material-design-lite/tree/master/src/textfield\n */\n\nimport { randomString } from '../utils/string-utils';\nimport {\n  IS_DIRTY,\n  IS_FOCUSED,\n  IS_DISABLED,\n  IS_INVALID,\n  IS_UPGRADED\n} from '../utils/constants';\n\n(function() {\n  'use strict';\n  const LABEL = 'mdlext-selectfield__label';\n  const INPUT = 'mdlext-selectfield__select';\n\n  /**\n   * Class constructor for Selectfield MDLEXT component.\n   * Implements MDL component design pattern defined at:\n   * https://github.com/jasonmayes/mdl-component-design-pattern\n   *\n   * @constructor\n   * @param {HTMLElement} element The element that will be upgraded.\n   */\n  const MaterialExtSelectfield = function MaterialExtSelectfield(element) {\n    this.element_ = element;\n    this.init(); // Initialize instance.\n  };\n\n  window['MaterialExtSelectfield'] = MaterialExtSelectfield;\n\n  /**\n   * Handle focus.\n   *\n   * @param {Event} event The event that fired.\n   * @private\n   */\n  /*eslint no-unused-vars: 0*/\n  MaterialExtSelectfield.prototype.onFocus_ = function( /*event*/ ) {\n    this.element_.classList.add(IS_FOCUSED);\n  };\n\n  /**\n   * Handle lost focus.\n   *\n   * @param {Event} event The event that fired.\n   * @private\n   */\n  /*eslint no-unused-vars: 0*/\n  MaterialExtSelectfield.prototype.onBlur_ = function( /*event*/ ) {\n    this.element_.classList.remove(IS_FOCUSED);\n  };\n\n  /**\n   * Handle reset event from out side.\n   *\n   * @param {Event} event The event that fired.\n   * @private\n   */\n  MaterialExtSelectfield.prototype.onReset_ = function( /*event*/ ) {\n    this.updateClasses_();\n  };\n\n  /**\n   * Handle class updates.\n   *\n   * @private\n   */\n  MaterialExtSelectfield.prototype.updateClasses_ = function() {\n    this.checkDisabled();\n    this.checkValidity();\n    this.checkDirty();\n    this.checkFocus();\n  };\n\n  // Public methods.\n\n  /**\n   * Check the disabled state and update field accordingly.\n   *\n   * @public\n   */\n  MaterialExtSelectfield.prototype.checkDisabled = function() {\n    if (this.select_.disabled) {\n      this.element_.classList.add(IS_DISABLED);\n    } else {\n      this.element_.classList.remove(IS_DISABLED);\n    }\n  };\n  MaterialExtSelectfield.prototype['checkDisabled'] = MaterialExtSelectfield.prototype.checkDisabled;\n\n\n  /**\n   * Check the focus state and update field accordingly.\n   *\n   * @public\n   */\n  MaterialExtSelectfield.prototype.checkFocus = function() {\n    // Note: element.querySelector(':focus') always return null in JsDom, even if select element has focus\n    /*eslint no-extra-boolean-cast: 0*/\n    if (Boolean(this.element_.querySelector(':focus'))) {\n      this.element_.classList.add(IS_FOCUSED);\n    } else {\n      this.element_.classList.remove(IS_FOCUSED);\n    }\n  };\n\n  MaterialExtSelectfield.prototype['checkFocus'] = MaterialExtSelectfield.prototype.checkFocus;\n\n\n  /**\n   * Check the validity state and update field accordingly.\n   *\n   * @public\n   */\n  MaterialExtSelectfield.prototype.checkValidity = function() {\n\n    /* Don't think it makes any sense to check validity.\n       Tests I've done, so far, indicates that setting an illegal value via JS returns selectedIndex=0\n\n    if (this.select_.validity) {\n      if (this.select_.validity.valid) {\n        this.element_.classList.remove(this.CssClasses_.IS_INVALID);\n      } else {\n        this.element_.classList.add(this.CssClasses_.IS_INVALID);\n      }\n    }\n    */\n  };\n\n  MaterialExtSelectfield.prototype['checkValidity'] = MaterialExtSelectfield.prototype.checkValidity;\n\n  /**\n   * Check the dirty state and update field accordingly.\n   *\n   * @public\n   */\n  MaterialExtSelectfield.prototype.checkDirty = function() {\n    if (this.select_.value && this.select_.value.length > 0) {\n      this.element_.classList.add(IS_DIRTY);\n    } else {\n      this.element_.classList.remove(IS_DIRTY);\n    }\n  };\n\n  MaterialExtSelectfield.prototype['checkDirty'] = MaterialExtSelectfield.prototype.checkDirty;\n\n  /**\n   * Disable select field.\n   *\n   * @public\n   */\n  MaterialExtSelectfield.prototype.disable = function() {\n    this.select_.disabled = true;\n    this.updateClasses_();\n  };\n\n  MaterialExtSelectfield.prototype['disable'] = MaterialExtSelectfield.prototype.disable;\n\n  /**\n   * Enable select field.\n   *\n   * @public\n   */\n  MaterialExtSelectfield.prototype.enable = function() {\n    this.select_.disabled = false;\n    this.updateClasses_();\n  };\n\n  MaterialExtSelectfield.prototype['enable'] = MaterialExtSelectfield.prototype.enable;\n\n  /**\n   * Update select field value.\n   *\n   * @param {string} value The value to which to set the control (optional).\n   * @public\n   */\n  MaterialExtSelectfield.prototype.change = function(value) {\n    this.select_.value = value || '';\n    this.updateClasses_();\n  };\n  MaterialExtSelectfield.prototype['change'] = MaterialExtSelectfield.prototype.change;\n\n  /**\n   * Initialize element.\n   */\n  MaterialExtSelectfield.prototype.init = function() {\n    if (this.element_) {\n      this.label_ = this.element_.querySelector(`.${LABEL}`);\n      this.select_ = this.element_.querySelector(`.${INPUT}`);\n\n      if (this.select_) {\n        // Remove listeners, just in case ...\n        this.select_.removeEventListener('change', this.updateClasses_);\n        this.select_.removeEventListener('focus', this.onFocus_);\n        this.select_.removeEventListener('blur', this.onBlur_);\n        this.select_.removeEventListener('reset', this.onReset_);\n\n        this.select_.addEventListener('change', this.updateClasses_.bind(this));\n        this.select_.addEventListener('focus', this.onFocus_.bind(this));\n        this.select_.addEventListener('blur', this.onBlur_.bind(this));\n        this.select_.addEventListener('reset', this.onReset_.bind(this));\n\n        if(this.label_) {\n          let id;\n          if(!this.select_.hasAttribute('id')) {\n            id = `select-${randomString()}`;\n            this.select_.id = id;\n          }\n          else {\n            id = this.select_.id;\n          }\n\n          if(!this.label_.hasAttribute('for')) {\n            this.label_.setAttribute('for', id);\n          }\n        }\n\n        const invalid = this.element_.classList.contains(IS_INVALID);\n        this.updateClasses_();\n        this.element_.classList.add(IS_UPGRADED);\n\n        if (invalid) {\n          this.element_.classList.add(IS_INVALID);\n        }\n        if (this.select_.hasAttribute('autofocus')) {\n          this.element_.focus();\n          this.checkFocus();\n        }\n      }\n    }\n  };\n\n  /**\n   * Downgrade component\n   * E.g remove listeners and clean up resources\n   *\n   * Nothing to downgrade\n   *\n  MaterialExtSelectfield.prototype.mdlDowngrade_ = function() {\n    'use strict';\n    console.log('***** MaterialExtSelectfield.mdlDowngrade ');\n  };\n  */\n\n  // The component registers itself. It can assume componentHandler is available\n  // in the global scope.\n  /*eslint no-undef: 0*/\n  componentHandler.register({\n    constructor: MaterialExtSelectfield,\n    classAsString: 'MaterialExtSelectfield',\n    cssClass: 'mdlext-js-selectfield',\n    widget: true\n  });\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/selectfield/selectfield.js","/**\n * @license\n * Copyright 2016 Leif Olsen. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * This code is built with Google Material Design Lite,\n * which is Licensed under the Apache License, Version 2.0\n */\n\n/**\n * A sticky header makes site navigation easily accessible anywhere on the page and saves content space at the same.\n * The header should auto-hide, i.e. hiding the header automatically when a user starts scrolling down the page and\n * bringing the header back when a user might need it: they reach the bottom of the page or start scrolling up.\n */\n\nimport fullThrottle from '../utils/full-throttle';\nimport { jsonStringToObject } from '../utils/json-utils';\nimport {\n  IS_UPGRADED\n} from '../utils/constants';\n\n\n(function() {\n  'use strict';\n  const MDL_LAYOUT_CONTENT  = 'mdl-layout__content';\n  const IS_SCROLL_CLASS  = 'mdlext-is-scroll';\n\n\n  /**\n   * @constructor\n   * @param {Element} element The element that will be upgraded.\n   */\n  const MaterialExtStickyHeader = function MaterialExtStickyHeader(element) {\n    // Stores the element.\n    this.header_ = element;\n\n    // Heder listens to scroll events from content\n    this.content_ = null;\n    this.lastScrollTop_ = 0;\n\n    // Default config\n    this.config_ = {\n      visibleAtScrollEnd: false\n    };\n\n    this.mutationObserver_ = null;\n\n    this.drawing_ = false;\n\n    // Initialize instance.\n    this.init();\n  };\n\n  window['MaterialExtStickyHeader'] = MaterialExtStickyHeader;\n\n\n  /**\n   * Update header width\n   * @private\n   */\n  MaterialExtStickyHeader.prototype.recalcWidth_ = function() {\n    this.header_.style.width = `${this.content_.clientWidth}px`;\n  };\n\n  const throttleResize = fullThrottle(self => self.recalcWidth_() );\n\n  /**\n   * Adjust header width when window resizes or oreientation changes\n   * @param event\n   * @private\n   */\n  MaterialExtStickyHeader.prototype.resizeHandler_ = function( /* event */ ) {\n    throttleResize(this);\n  };\n\n\n  /**\n   * Update header position\n   * @private\n   */\n  MaterialExtStickyHeader.prototype.reposition_ = function() {\n\n    const currentContentScrollTop = this.content_.scrollTop;\n    const scrollDiff = this.lastScrollTop_ - currentContentScrollTop;\n\n    if(currentContentScrollTop <= 0) {\n      // Scrolled to the top. Header sticks to the top\n      this.header_.style.top = '0';\n      this.header_.classList.remove(IS_SCROLL_CLASS);\n    }\n    else if(scrollDiff > 0) {\n\n      if(scrollDiff >= this.header_.offsetHeight) {\n\n        // Scrolled up. Header slides in\n        const headerTop = (parseInt( window.getComputedStyle( this.header_ ).getPropertyValue( 'top' ) ) || 0);\n        if(headerTop != 0) {\n          this.header_.style.top = '0';\n          this.header_.classList.add(IS_SCROLL_CLASS);\n        }\n        this.lastScrollTop_ = currentContentScrollTop;\n      }\n      return;\n    }\n    else if(scrollDiff < 0) {\n      // Scrolled down\n      this.header_.classList.add(IS_SCROLL_CLASS);\n      let headerTop = (parseInt( window.getComputedStyle( this.header_ ).getPropertyValue( 'top' ) ) || 0);\n\n      if (this.content_.scrollHeight - this.content_.scrollTop <= this.content_.offsetHeight) {\n        // Bottom of content\n        if(headerTop != 0) {\n          this.header_.style.top = this.config_.visibleAtScrollEnd ? '0' : `-${this.header_.offsetHeight}px`;\n        }\n      }\n      else {\n        headerTop += scrollDiff;\n        const offsetHeight = this.header_.offsetHeight;\n        this.header_.style.top = `${( Math.abs( headerTop ) > offsetHeight ? -offsetHeight : headerTop )}px`;\n      }\n    }\n\n    this.lastScrollTop_ = currentContentScrollTop;\n  };\n\n\n  const throttleScroll = fullThrottle((self) => self.reposition_());\n\n  /**\n   * Scroll header when content scrolls\n   * @param event\n   * @private\n   */\n  MaterialExtStickyHeader.prototype.scrollHandler_ = function( /* event */ ) {\n    throttleScroll(this);\n  };\n\n  /**\n   * Init header position\n   * @private\n   */\n  MaterialExtStickyHeader.prototype.updatePosition_ = function( /* event */ ) {\n    this.recalcWidth_();\n    this.reposition_();\n  };\n\n  /**\n   * Add mutation observer\n   * @private\n   */\n  MaterialExtStickyHeader.prototype.addMutationObserver_ = function() {\n\n    // jsdom does not support MutationObserver - so this is not testable\n    /* istanbul ignore next */\n    this.mutationObserver_ = new MutationObserver( ( /*mutations*/ ) => {\n      // Adjust header width if content changes (e.g. in a SPA)\n      this.updatePosition_();\n    });\n\n    this.mutationObserver_.observe( this.content_, {\n      attributes: false,\n      childList: true,\n      characterData: false,\n      subtree: true\n    });\n  };\n\n    /**\n   * Removes event listeners\n   * @private\n   */\n  MaterialExtStickyHeader.prototype.removeListeners_ = function() {\n\n    window.removeEventListener('resize', this.resizeHandler_);\n    window.removeEventListener('orientationchange', this.resizeHandler_);\n\n    if(this.content_) {\n      this.content_.removeEventListener('scroll', this.scrollHandler_);\n    }\n\n    if(this.mutationObserver_) {\n      this.mutationObserver_.disconnect();\n      this.mutationObserver_ = null;\n    }\n  };\n\n  /**\n   * Initialize component\n   */\n  MaterialExtStickyHeader.prototype.init = function() {\n\n    if (this.header_) {\n\n      this.removeListeners_();\n\n      if(this.header_.hasAttribute('data-config')) {\n        this.config_ = jsonStringToObject(this.header_.getAttribute('data-config'));\n      }\n\n      this.content_ = this.header_.parentNode.querySelector(`.${MDL_LAYOUT_CONTENT}`) || null;\n\n      if(this.content_) {\n        this.content_.style.paddingTop = `${this.header_.offsetHeight}px`;  // Make room for sticky header\n        this.lastScrollTop_ = this.content_.scrollTop;\n\n        this.content_.addEventListener('scroll', this.scrollHandler_.bind(this));\n        window.addEventListener('resize', this.resizeHandler_.bind(this));\n        window.addEventListener('orientationchange', this.resizeHandler_.bind(this));\n\n        this.addMutationObserver_();\n        this.updatePosition_();\n\n        // Set upgraded flag\n        this.header_.classList.add(IS_UPGRADED);\n      }\n    }\n  };\n\n  /*\n   * Downgrade component\n   * E.g remove listeners and clean up resources\n   *\n   * Nothing to clean\n   *\n   MaterialExtStickyHeader.prototype.mdlDowngrade_ = function() {\n     'use strict';\n     console.log('***** MaterialExtStickyHeader.prototype.mdlDowngrade_');\n   };\n   */\n\n\n  // The component registers itself. It can assume componentHandler is available\n  // in the global scope.\n  /* eslint no-undef: 0 */\n  componentHandler.register({\n    constructor: MaterialExtStickyHeader,\n    classAsString: 'MaterialExtStickyHeader',\n    cssClass: 'mdlext-js-sticky-header'\n  });\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./src/sticky-header/sticky-header.js","import './constants';\nimport './dom-utils';\nimport './string-utils';\nimport './json-utils';\nimport './full-throttle';\nimport './easing';\nimport './interval-function';\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils/index.js","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/array/from.js\n// module id = 60\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/is-iterable\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/is-iterable.js\n// module id = 61\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/number/is-nan\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/number/is-nan.js\n// module id = 62\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/define-property.js\n// module id = 63\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/object/entries\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/entries.js\n// module id = 64\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/keys.js\n// module id = 65\n// module chunks = 0 1","module.exports = { \"default\": require(\"core-js/library/fn/reflect/apply\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/reflect/apply.js\n// module id = 66\n// module chunks = 0 1","\"use strict\";\n\nexports.__esModule = true;\n\nvar _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n  function sliceIterator(arr, i) {\n    var _arr = [];\n    var _n = true;\n    var _d = false;\n    var _e = undefined;\n\n    try {\n      for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n        _arr.push(_s.value);\n\n        if (i && _arr.length === i) break;\n      }\n    } catch (err) {\n      _d = true;\n      _e = err;\n    } finally {\n      try {\n        if (!_n && _i[\"return\"]) _i[\"return\"]();\n      } finally {\n        if (_d) throw _e;\n      }\n    }\n\n    return _arr;\n  }\n\n  return function (arr, i) {\n    if (Array.isArray(arr)) {\n      return arr;\n    } else if ((0, _isIterable3.default)(Object(arr))) {\n      return sliceIterator(arr, i);\n    } else {\n      throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n    }\n  };\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/slicedToArray.js\n// module id = 67\n// module chunks = 0 1","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/array/from.js\n// module id = 68\n// module chunks = 0 1","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/get-iterator.js\n// module id = 69\n// module chunks = 0 1","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/is-iterable.js\n// module id = 70\n// module chunks = 0 1","require('../../modules/es6.number.is-integer');\nmodule.exports = require('../../modules/_core').Number.isInteger;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/number/is-integer.js\n// module id = 71\n// module chunks = 0 1","require('../../modules/es6.number.is-nan');\nmodule.exports = require('../../modules/_core').Number.isNaN;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/number/is-nan.js\n// module id = 72\n// module chunks = 0 1","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/assign.js\n// module id = 73\n// module chunks = 0 1","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n  return $Object.defineProperty(it, key, desc);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/define-property.js\n// module id = 74\n// module chunks = 0 1","require('../../modules/es7.object.entries');\nmodule.exports = require('../../modules/_core').Object.entries;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/entries.js\n// module id = 75\n// module chunks = 0 1","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/object/keys.js\n// module id = 76\n// module chunks = 0 1","require('../../modules/es6.reflect.apply');\nmodule.exports = require('../../modules/_core').Reflect.apply;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/fn/reflect/apply.js\n// module id = 77\n// module chunks = 0 1","module.exports = function(){ /* empty */ };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_add-to-unscopables.js\n// module id = 78\n// module chunks = 0 1","// false -> Array#indexOf\n// true  -> Array#includes\nvar toIObject = require('./_to-iobject')\n  , toLength  = require('./_to-length')\n  , toIndex   = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n  return function($this, el, fromIndex){\n    var O      = toIObject($this)\n      , length = toLength(O.length)\n      , index  = toIndex(fromIndex, length)\n      , value;\n    // Array#includes uses SameValueZero equality algorithm\n    if(IS_INCLUDES && el != el)while(length > index){\n      value = O[index++];\n      if(value != value)return true;\n    // Array#toIndex ignores holes, Array#includes - not\n    } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n      if(O[index] === el)return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_array-includes.js\n// module id = 79\n// module chunks = 0 1","'use strict';\nvar $defineProperty = require('./_object-dp')\n  , createDesc      = require('./_property-desc');\n\nmodule.exports = function(object, index, value){\n  if(index in object)$defineProperty.f(object, index, createDesc(0, value));\n  else object[index] = value;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_create-property.js\n// module id = 80\n// module chunks = 0 1","module.exports = require('./_global').document && document.documentElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_html.js\n// module id = 81\n// module chunks = 0 1","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n  return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_ie8-dom-define.js\n// module id = 82\n// module chunks = 0 1","// check on default Array iterator\nvar Iterators  = require('./_iterators')\n  , ITERATOR   = require('./_wks')('iterator')\n  , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_is-array-iter.js\n// module id = 83\n// module chunks = 0 1","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object')\n  , floor    = Math.floor;\nmodule.exports = function isInteger(it){\n  return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_is-integer.js\n// module id = 84\n// module chunks = 0 1","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function(iterator, fn, value, entries){\n  try {\n    return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n  // 7.4.6 IteratorClose(iterator, completion)\n  } catch(e){\n    var ret = iterator['return'];\n    if(ret !== undefined)anObject(ret.call(iterator));\n    throw e;\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-call.js\n// module id = 85\n// module chunks = 0 1","'use strict';\nvar create         = require('./_object-create')\n  , descriptor     = require('./_property-desc')\n  , setToStringTag = require('./_set-to-string-tag')\n  , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n  Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n  setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-create.js\n// module id = 86\n// module chunks = 0 1","var ITERATOR     = require('./_wks')('iterator')\n  , SAFE_CLOSING = false;\n\ntry {\n  var riter = [7][ITERATOR]();\n  riter['return'] = function(){ SAFE_CLOSING = true; };\n  Array.from(riter, function(){ throw 2; });\n} catch(e){ /* empty */ }\n\nmodule.exports = function(exec, skipClosing){\n  if(!skipClosing && !SAFE_CLOSING)return false;\n  var safe = false;\n  try {\n    var arr  = [7]\n      , iter = arr[ITERATOR]();\n    iter.next = function(){ return {done: safe = true}; };\n    arr[ITERATOR] = function(){ return iter; };\n    exec(arr);\n  } catch(e){ /* empty */ }\n  return safe;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-detect.js\n// module id = 87\n// module chunks = 0 1","module.exports = function(done, value){\n  return {value: value, done: !!done};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_iter-step.js\n// module id = 88\n// module chunks = 0 1","module.exports = true;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_library.js\n// module id = 89\n// module chunks = 0 1","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys  = require('./_object-keys')\n  , gOPS     = require('./_object-gops')\n  , pIE      = require('./_object-pie')\n  , toObject = require('./_to-object')\n  , IObject  = require('./_iobject')\n  , $assign  = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function(){\n  var A = {}\n    , B = {}\n    , S = Symbol()\n    , K = 'abcdefghijklmnopqrst';\n  A[S] = 7;\n  K.split('').forEach(function(k){ B[k] = k; });\n  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n  var T     = toObject(target)\n    , aLen  = arguments.length\n    , index = 1\n    , getSymbols = gOPS.f\n    , isEnum     = pIE.f;\n  while(aLen > index){\n    var S      = IObject(arguments[index++])\n      , keys   = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n      , length = keys.length\n      , j      = 0\n      , key;\n    while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n  } return T;\n} : $assign;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-assign.js\n// module id = 90\n// module chunks = 0 1","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject    = require('./_an-object')\n  , dPs         = require('./_object-dps')\n  , enumBugKeys = require('./_enum-bug-keys')\n  , IE_PROTO    = require('./_shared-key')('IE_PROTO')\n  , Empty       = function(){ /* empty */ }\n  , PROTOTYPE   = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function(){\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = require('./_dom-create')('iframe')\n    , i      = enumBugKeys.length\n    , lt     = '<'\n    , gt     = '>'\n    , iframeDocument;\n  iframe.style.display = 'none';\n  require('./_html').appendChild(iframe);\n  iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n  // createDict = iframe.contentWindow.Object;\n  // html.removeChild(iframe);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n  iframeDocument.close();\n  createDict = iframeDocument.F;\n  while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];\n  return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties){\n  var result;\n  if(O !== null){\n    Empty[PROTOTYPE] = anObject(O);\n    result = new Empty;\n    Empty[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = createDict();\n  return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-create.js\n// module id = 91\n// module chunks = 0 1","var dP       = require('./_object-dp')\n  , anObject = require('./_an-object')\n  , getKeys  = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n  anObject(O);\n  var keys   = getKeys(Properties)\n    , length = keys.length\n    , i = 0\n    , P;\n  while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n  return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-dps.js\n// module id = 92\n// module chunks = 0 1","exports.f = Object.getOwnPropertySymbols;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-gops.js\n// module id = 93\n// module chunks = 0 1","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has         = require('./_has')\n  , toObject    = require('./_to-object')\n  , IE_PROTO    = require('./_shared-key')('IE_PROTO')\n  , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n  O = toObject(O);\n  if(has(O, IE_PROTO))return O[IE_PROTO];\n  if(typeof O.constructor == 'function' && O instanceof O.constructor){\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectProto : null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-gpo.js\n// module id = 94\n// module chunks = 0 1","var has          = require('./_has')\n  , toIObject    = require('./_to-iobject')\n  , arrayIndexOf = require('./_array-includes')(false)\n  , IE_PROTO     = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n  var O      = toIObject(object)\n    , i      = 0\n    , result = []\n    , key;\n  for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while(names.length > i)if(has(O, key = names[i++])){\n    ~arrayIndexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-keys-internal.js\n// module id = 95\n// module chunks = 0 1","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export')\n  , core    = require('./_core')\n  , fails   = require('./_fails');\nmodule.exports = function(KEY, exec){\n  var fn  = (core.Object || {})[KEY] || Object[KEY]\n    , exp = {};\n  exp[KEY] = exec(fn);\n  $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-sap.js\n// module id = 96\n// module chunks = 0 1","var getKeys   = require('./_object-keys')\n  , toIObject = require('./_to-iobject')\n  , isEnum    = require('./_object-pie').f;\nmodule.exports = function(isEntries){\n  return function(it){\n    var O      = toIObject(it)\n      , keys   = getKeys(O)\n      , length = keys.length\n      , i      = 0\n      , result = []\n      , key;\n    while(length > i)if(isEnum.call(O, key = keys[i++])){\n      result.push(isEntries ? [key, O[key]] : O[key]);\n    } return result;\n  };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_object-to-array.js\n// module id = 97\n// module chunks = 0 1","module.exports = require('./_hide');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_redefine.js\n// module id = 98\n// module chunks = 0 1","var toInteger = require('./_to-integer')\n  , defined   = require('./_defined');\n// true  -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n  return function(that, pos){\n    var s = String(defined(that))\n      , i = toInteger(pos)\n      , l = s.length\n      , a, b;\n    if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n    a = s.charCodeAt(i);\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n      ? TO_STRING ? s.charAt(i) : a\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n  };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_string-at.js\n// module id = 99\n// module chunks = 0 1","var toInteger = require('./_to-integer')\n  , max       = Math.max\n  , min       = Math.min;\nmodule.exports = function(index, length){\n  index = toInteger(index);\n  return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-index.js\n// module id = 100\n// module chunks = 0 1","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n  if(!isObject(it))return it;\n  var fn, val;\n  if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n  if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n  if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/_to-primitive.js\n// module id = 101\n// module chunks = 0 1","var anObject = require('./_an-object')\n  , get      = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function(it){\n  var iterFn = get(it);\n  if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n  return anObject(iterFn.call(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/core.get-iterator.js\n// module id = 102\n// module chunks = 0 1","var classof   = require('./_classof')\n  , ITERATOR  = require('./_wks')('iterator')\n  , Iterators = require('./_iterators');\nmodule.exports = require('./_core').isIterable = function(it){\n  var O = Object(it);\n  return O[ITERATOR] !== undefined\n    || '@@iterator' in O\n    || Iterators.hasOwnProperty(classof(O));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/core.is-iterable.js\n// module id = 103\n// module chunks = 0 1","'use strict';\nvar ctx            = require('./_ctx')\n  , $export        = require('./_export')\n  , toObject       = require('./_to-object')\n  , call           = require('./_iter-call')\n  , isArrayIter    = require('./_is-array-iter')\n  , toLength       = require('./_to-length')\n  , createProperty = require('./_create-property')\n  , getIterFn      = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function(iter){ Array.from(iter); }), 'Array', {\n  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n  from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){\n    var O       = toObject(arrayLike)\n      , C       = typeof this == 'function' ? this : Array\n      , aLen    = arguments.length\n      , mapfn   = aLen > 1 ? arguments[1] : undefined\n      , mapping = mapfn !== undefined\n      , index   = 0\n      , iterFn  = getIterFn(O)\n      , length, result, step, iterator;\n    if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n    // if object isn't iterable or it's array with default iterator - use simple case\n    if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){\n      for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){\n        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n      }\n    } else {\n      length = toLength(O.length);\n      for(result = new C(length); length > index; index++){\n        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n      }\n    }\n    result.length = index;\n    return result;\n  }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.array.from.js\n// module id = 104\n// module chunks = 0 1","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n  , step             = require('./_iter-step')\n  , Iterators        = require('./_iterators')\n  , toIObject        = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n  this._t = toIObject(iterated); // target\n  this._i = 0;                   // next index\n  this._k = kind;                // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n  var O     = this._t\n    , kind  = this._k\n    , index = this._i++;\n  if(!O || index >= O.length){\n    this._t = undefined;\n    return step(1);\n  }\n  if(kind == 'keys'  )return step(0, index);\n  if(kind == 'values')return step(0, O[index]);\n  return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.array.iterator.js\n// module id = 105\n// module chunks = 0 1","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {isInteger: require('./_is-integer')});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.number.is-integer.js\n// module id = 106\n// module chunks = 0 1","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n  isNaN: function isNaN(number){\n    return number != number;\n  }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.number.is-nan.js\n// module id = 107\n// module chunks = 0 1","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', {assign: require('./_object-assign')});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.object.assign.js\n// module id = 108\n// module chunks = 0 1","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.object.define-property.js\n// module id = 109\n// module chunks = 0 1","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n  , $keys    = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n  return function keys(it){\n    return $keys(toObject(it));\n  };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.object.keys.js\n// module id = 110\n// module chunks = 0 1","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export   = require('./_export')\n  , aFunction = require('./_a-function')\n  , anObject  = require('./_an-object')\n  , rApply    = (require('./_global').Reflect || {}).apply\n  , fApply    = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function(){\n  rApply(function(){});\n}), 'Reflect', {\n  apply: function apply(target, thisArgument, argumentsList){\n    var T = aFunction(target)\n      , L = anObject(argumentsList);\n    return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n  }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es6.reflect.apply.js\n// module id = 111\n// module chunks = 0 1","// https://github.com/tc39/proposal-object-values-entries\nvar $export  = require('./_export')\n  , $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n  entries: function entries(it){\n    return $entries(it);\n  }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/~/core-js/library/modules/es7.object.entries.js\n// module id = 112\n// module chunks = 0 1"],"sourceRoot":""}
\ No newline at end of file